diff --git a/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl b/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl index 13498810f..a307c5edb 100644 --- a/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl +++ b/SSL/src/BusinessProcesses/Задание/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -43,7 +43,7 @@ // // Параметры: // ЗадачаСсылка - ЗадачаСсылка.ЗадачаИсполнителя - задача. -// ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка - точка маршрута. +// ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка.Задание - точка маршрута. // // Возвращаемое значение: // Структура - структуру с описанием формы выполнения задачи. @@ -123,7 +123,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl b/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl index 61e947060..9ab26cfd7 100644 --- a/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl +++ b/SSL/src/BusinessProcesses/Задание/ObjectModule.bsl @@ -14,8 +14,6 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступом.ЗаполнитьНаборыЗначенийДоступа. -// // Параметры: // Таблица - см. УправлениеДоступом.ТаблицаНаборыЗначенийДоступа // diff --git a/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Form.form b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Form.form new file mode 100644 index 000000000..9a6960a83 --- /dev/null +++ b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Form.form @@ -0,0 +1,797 @@ + + + + ЦелаяЧасть + 100 + + ЦелаяЧастьЕдинственноеЧисло + 104 + + <key>ru</key> + <value>Один</value> + + true + true + + true + + + ЦелаяЧастьЕдинственноеЧисло + + + OnChange + ПолеВводаПриИзменении + + + ЦелаяЧастьЕдинственноеЧислоРасширеннаяПодсказка + 106 + Label + true + true + + Left + + + + ЦелаяЧастьЕдинственноеЧислоКонтекстноеМеню + 105 + true + + InputField + Enter + true + Left + true + + + EditTextChange + ПолеВводаИзменениеТекстаРедактирования + + true + true + false + true + true + true + true + Normal + + + + ЦелаяЧастьМножественноеЧисло + 107 + + <key>ru</key> + <value>Два</value> + + true + true + + true + + + ЦелаяЧастьМножественноеЧисло + + + OnChange + ПолеВводаПриИзменении + + + ЦелаяЧастьМножественноеЧислоРасширеннаяПодсказка + 109 + Label + true + true + + Left + + + + ЦелаяЧастьМножественноеЧислоКонтекстноеМеню + 108 + true + + InputField + Enter + true + Left + true + + + EditTextChange + ПолеВводаИзменениеТекстаРедактирования + + true + true + false + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Целая часть</value> + + + ЦелаяЧастьРасширеннаяПодсказка + 101 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + auto + Auto + Auto + + + + ДробнаяЧасть + 102 + + ДробнаяЧастьЕдинственноеЧисло + 110 + + <key>ru</key> + <value>Один</value> + + true + true + + true + + + ДробнаяЧастьЕдинственноеЧисло + + + OnChange + ПолеВводаПриИзменении + + + ДробнаяЧастьЕдинственноеЧислоРасширеннаяПодсказка + 112 + Label + true + true + + Left + + + + ДробнаяЧастьЕдинственноеЧислоКонтекстноеМеню + 111 + true + + InputField + Enter + true + Left + true + + + EditTextChange + ПолеВводаИзменениеТекстаРедактирования + + true + true + false + true + true + true + true + Normal + + + + ДробнаяЧастьМножественноеЧисло + 113 + + <key>ru</key> + <value>Два</value> + + true + true + + true + + + ДробнаяЧастьМножественноеЧисло + + + OnChange + ПолеВводаПриИзменении + + + ДробнаяЧастьМножественноеЧислоРасширеннаяПодсказка + 115 + Label + true + true + + Left + + + + ДробнаяЧастьМножественноеЧислоКонтекстноеМеню + 114 + true + + InputField + Enter + true + Left + true + + + EditTextChange + ПолеВводаИзменениеТекстаРедактирования + + true + true + false + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Дробная часть</value> + + + ДробнаяЧастьРасширеннаяПодсказка + 103 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + auto + Auto + Auto + + + + ГруппаЧислоРазрядовДробнойЧасти + 56 + + ДлинаДробнойЧасти + 20 + true + true + + true + + + ДлинаДробнойЧасти + + + OnChange + ПолеВводаПриИзменении + + + ДлинаДробнойЧастиExtendedTooltip + 96 + Label + true + true + + Left + + + + ДлинаДробнойЧастиКонтекстноеМеню + 33 + true + + InputField + Enter + true + Left + true + Left + + 15 + true + true + false + true + + + ru + 2 знака + + + 2 + + + + + ru + 1 знак + + + 1 + + + + + ru + 3 знака + + + 3 + + + + Style.BorderColor + + Normal + + + true + true + + true + + + ГруппаЧислоРазрядовДробнойЧастиExtendedTooltip + 95 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + ГруппаПримерПрописи + 61 + + СуммаЧисло + 59 + + <key>ru</key> + <value>Сумма</value> + + true + true + + true + + + СуммаЧисло + + + OnChange + ПолеВводаПриИзменении + + + СуммаЧислоExtendedTooltip + 98 + Label + true + true + + Left + + + + СуммаЧислоКонтекстноеМеню + 60 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + СуммаПрописью + 62 + true + true + + true + + + СуммаПрописью + + + СуммаПрописьюExtendedTooltip + 99 + Label + true + true + + Left + + + + СуммаПрописьюКонтекстноеМеню + 63 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Пример прописи суммы</value> + + + ГруппаПримерПрописиExtendedTooltip + 97 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + auto + Auto + Auto + + + None + false + + ФормаКоманднаяПанель + -1 + + ФормаЗаписатьИЗакрыть + 116 + true + true + + true + + + ФормаЗаписатьИЗакрытьРасширеннаяПодсказка + 117 + Label + true + true + + Left + + + Form.Command.ЗаписатьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + ФормаЗаписать + 118 + true + true + + true + + + ФормаЗаписатьРасширеннаяПодсказка + 119 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + OnOpen + ПриОткрытии + + + OnCreateAtServer + ПриСозданииНаСервере + + Abort + Close + CustomizeForm + Ignore + No + OK + RestoreValues + Retry + SaveValues + Yes + LockOwner + true + true + true + Vertical + true + true + true + auto + true + + ДлинаДробнойЧасти + + <key>ru</key> + <value>Число разрядов дробной части</value> + + 11 + + String + + + + true + + + true + + true + + + СуммаЧисло + + <key>ru</key> + <value>Сумма число</value> + + 12 + + Number + + 10 + 2 + true + + + + true + + + true + + + + СуммаПрописью + + <key>ru</key> + <value>Сумма прописью</value> + + 13 + + String + + + + true + + + true + + + + ЦелаяЧастьЕдинственноеЧисло + + <key>ru</key> + <value>Целая часть единственное число</value> + + 1 + + String + + + + true + + + true + + + + ЦелаяЧастьМножественноеЧисло + + <key>ru</key> + <value>Целая часть единственное число</value> + + 2 + + String + + + + true + + + true + + + + ДробнаяЧастьЕдинственноеЧисло + + <key>ru</key> + <value>Дробная часть единственное число</value> + + 3 + + String + + + + true + + + true + + + + ДробнаяЧастьМножественноеЧисло + + <key>ru</key> + <value>Дробная часть множественное число</value> + + 4 + + String + + + + true + + + true + + + + Записать + + <key>ru</key> + <value>Записать</value> + + 1 + + ru + Записать + + + true + + + + Записать + + + Auto + Auto + + + ЗаписатьИЗакрыть + + <key>ru</key> + <value>Записать и закрыть</value> + + 2 + + ru + Записать и закрыть + + + true + + + + ЗаписатьИЗакрыть + + + Auto + Auto + + + ПараметрыПрописи + + String + + + + + КодЯзыка + + String + + + true + + + + + + diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Help/ru.html b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Help/ru.html similarity index 100% rename from SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Help/ru.html rename to SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Help/ru.html diff --git a/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Module.bsl new file mode 100644 index 000000000..82e2b52a6 --- /dev/null +++ b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалюты_en/Module.bsl @@ -0,0 +1,138 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ПрочитатьПараметрыПрописи(); + + Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда + Элементы.ГруппаПримерПрописи.ВыравниваниеЭлементовИЗаголовков = ВариантВыравниванияЭлементовИЗаголовков.ЭлементыПравоЗаголовкиЛево; + Элементы.СуммаПрописью.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх; + Элементы.СуммаПрописью.Высота = 2; + Элементы.СуммаПрописью.МногострочныйРежим = Истина; + ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + СуммаЧисло = 123.45; + УстановитьСуммуПрописью(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ПолеВводаПриИзменении(Элемент) + + Модифицированность = Истина; + УстановитьСуммуПрописью(); + ОповеститьВладельца(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПолеВводаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка) + + Модифицированность = Истина; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ЗаписатьИЗакрыть(Команда) + + ОповеститьВладельца(Истина, Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура Записать(Команда) + + ОповеститьВладельца(Истина); + Модифицированность = ВладелецФормы.Модифицированность; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаКлиентеНаСервереБезКонтекста +Функция ПараметрыПрописи(Форма) + + ПараметрыПрописи = Новый Массив; + ПараметрыПрописи.Добавить(Форма.ЦелаяЧастьЕдинственноеЧисло); + ПараметрыПрописи.Добавить(Форма.ЦелаяЧастьМножественноеЧисло); + ПараметрыПрописи.Добавить(Форма.ДробнаяЧастьЕдинственноеЧисло); + ПараметрыПрописи.Добавить(Форма.ДробнаяЧастьМножественноеЧисло); + ПараметрыПрописи.Добавить(Форма.ДлинаДробнойЧасти); + + Возврат СтрСоединить(ПараметрыПрописи, ", ");; + +КонецФункции + +&НаКлиенте +Процедура УстановитьСуммуПрописью() + + Если ЗначениеЗаполнено(Параметры.КодЯзыка) Тогда + СуммаПрописью = ЧислоПрописью(СуммаЧисло, "L=" + Параметры.КодЯзыка + ";ДП=Ложь", ПараметрыПрописи(ЭтотОбъект)); // АПК:1357 + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПрочитатьПараметрыПрописи() + + ПараметрыПрописи = СтрРазделить(Параметры.ПараметрыПрописи, ",", Истина); + Если ПараметрыПрописи.Количество() <> 5 Тогда + Возврат; + КонецЕсли; + + ЦелаяЧастьЕдинственноеЧисло = СокрЛП(ПараметрыПрописи[0]); + ЦелаяЧастьМножественноеЧисло = СокрЛП(ПараметрыПрописи[1]); + ДробнаяЧастьЕдинственноеЧисло = СокрЛП(ПараметрыПрописи[2]); + ДробнаяЧастьМножественноеЧисло = СокрЛП(ПараметрыПрописи[3]); + ДлинаДробнойЧасти = ОчиститьСтрокуСЧисломОтПостороннихСимволов(ПараметрыПрописи[4]); + +КонецПроцедуры + +&НаСервере +Функция ОчиститьСтрокуСЧисломОтПостороннихСимволов(СтрокаСЧислом) + + ПосторонниеСимволы = СтрСоединить(СтрРазделить(СтрокаСЧислом, "0123456789", Ложь), ""); + Возврат СтрСоединить(СтрРазделить(СтрокаСЧислом, ПосторонниеСимволы, Ложь), ""); + +КонецФункции + +&НаКлиенте +Процедура ОповеститьВладельца(Записать = Ложь, Закрыть = Ложь) + + ПараметрыПрописи = Новый Структура; + ПараметрыПрописи.Вставить("КодЯзыка", Параметры.КодЯзыка); + ПараметрыПрописи.Вставить("ПараметрыПрописи", ПараметрыПрописи(ЭтотОбъект)); + ПараметрыПрописи.Вставить("Записать", Записать); + ПараметрыПрописи.Вставить("Закрыть", Закрыть); + + Оповестить("ПараметрыПрописиВалюты", ПараметрыПрописи, ВладелецФормы); + +КонецПроцедуры + +#КонецОбласти + diff --git a/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Form.form b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Form.form new file mode 100644 index 000000000..bea48a229 --- /dev/null +++ b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Form.form @@ -0,0 +1,512 @@ + + + + <key>ru</key> + <value>Параметры прописи</value> + + + ГруппаЯзыки + 5 + true + true + + true + + + <key>ru</key> + <value>Языки</value> + + + ГруппаЯзыкиРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + Страницы + 17 + true + true + + true + + + <key>ru</key> + <value>Страницы</value> + + + СтраницыРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + Pages + + + OnCurrentPageChange + СтраницыПриСменеСтраницы + + TabsOnLeftHorizontal + Auto + + + + ГруппаПримерПрописи + 19 + + СуммаЧисло + 21 + + <key>ru</key> + <value>Сумма</value> + + true + true + + true + + + СуммаЧисло + + + OnChange + СуммаЧислоПриИзменении + + + СуммаЧислоExtendedTooltip + 23 + Label + true + true + + Left + + + + СуммаЧислоКонтекстноеМеню + 22 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + СуммаПрописью + 24 + true + true + + true + + + СуммаПрописью + + Left + + СуммаПрописьюExtendedTooltip + 26 + Label + true + true + + Left + + + + СуммаПрописьюКонтекстноеМеню + 25 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Пример прописи суммы</value> + + + ГруппаПримерПрописиExtendedTooltip + 20 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + NormalSeparation + true + true + auto + Auto + Auto + + + None + false + + ФормаКоманднаяПанель + -1 + + ФормаЗаписатьИЗакрыть + 27 + true + true + + true + + + ФормаЗаписатьИЗакрытьРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + Form.Command.ЗаписатьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + ФормаЗаписать + 29 + true + true + + true + + + ФормаЗаписатьРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + Auto + + Left + + + OnOpen + ПриОткрытии + + + OnCreateAtServer + ПриСозданииНаСервере + + 15 + LockOwner + true + true + Vertical + true + true + true + auto + true + + ОсновнойЯзык + 1 + + + true + + + true + + + + Языки + 3 + + ValueTable + + + true + + + true + + + КодЯзыка + 1 + + String + + 10 + + + + true + + + true + + + + Представление + 2 + + String + + + + true + + + true + + + + Имя + 3 + + String + + 32 + + + + true + + + true + + + + Суффикс + 4 + + String + + 10 + + + + true + + + true + + + + ФормаРедактирования + 5 + + String + + + + true + + + true + + + + Страница + 6 + + String + + + + true + + + true + + + + + МультиязычныеСтрокиВРеквизитах + 2 + + Boolean + + + true + + + true + + + + СуммаПрописью + + <key>ru</key> + <value>Сумма прописью</value> + + 4 + + String + + + + true + + + true + + + + СуммаЧисло + + <key>ru</key> + <value>Сумма число</value> + + 5 + + Number + + 10 + 2 + true + + + + true + + + true + + + + Записать + + <key>ru</key> + <value>Записать</value> + + 2 + + ru + Записать + + + true + + + + Записать + + + Auto + Auto + + + ЗаписатьИЗакрыть + + <key>ru</key> + <value>Записать и закрыть</value> + + 3 + + ru + Записать и закрыть + + + true + + + + ЗаписатьИЗакрыть + + + Auto + Auto + + + ИмяРеквизита + + String + + + + + Представления + + + + ТекущееЗначение + + String + + + + + ТолькоПросмотр + + Boolean + + + + + + + diff --git a/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Module.bsl new file mode 100644 index 000000000..25193dde8 --- /dev/null +++ b/SSL/src/Catalogs/Валюты/Forms/ПараметрыПрописиВалютыНаДругихЯзыках/Module.bsl @@ -0,0 +1,530 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + НаборЯзыков = Новый ТаблицаЗначений; + НаборЯзыков.Колонки.Добавить("КодЯзыка", ОбщегоНазначения.ОписаниеТипаСтрока(10)); + НаборЯзыков.Колонки.Добавить("Представление", ОбщегоНазначения.ОписаниеТипаСтрока(150)); + + ДоступныеЯзыки = Новый Массив; + Для Каждого Язык Из Метаданные.Языки Цикл + ДоступныеЯзыки.Добавить(Язык.КодЯзыка); + КонецЦикла; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда + МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); + ДоступныеЯзыки = МодульУправлениеПечатьюМультиязычность.ДоступныеЯзыки(); + КонецЕсли; + + Для Каждого КодЯзыка Из ДоступныеЯзыки Цикл + НовыйЯзык = НаборЯзыков.Добавить(); + НовыйЯзык.КодЯзыка = КодЯзыка; + НовыйЯзык.Представление = РаботаСКурсамиВалютСлужебный.ПредставлениеЯзыка(КодЯзыка); + КонецЦикла; + + ИмеющиесяЯзыкиВводаПрописей = ИмеющиесяЯзыкиВводаПрописей(); + + Для Каждого ЯзыкКонфигурации Из НаборЯзыков Цикл + Если ИмеющиесяЯзыкиВводаПрописей.Найти(ЯзыкКонфигурации.КодЯзыка) <> Неопределено Тогда + Продолжить; + КонецЕсли; + НоваяСтрока = Языки.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, ЯзыкКонфигурации); + НоваяСтрока.Имя = "_" + СтрЗаменить(Новый УникальныйИдентификатор, "-", ""); + КонецЦикла; + + СформироватьПоляВводаНаРазныхЯзыках(Ложь, Параметры.ТолькоПросмотр); + + ОписаниеЯзыка = ОписаниеЯзыка(ТекущийЯзык().КодЯзыка); + Если ОписаниеЯзыка <> Неопределено Тогда + ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущееЗначение; + КонецЕсли; + + ОсновнойЯзык = Метаданные.ОсновнойЯзык.КодЯзыка; + + Для каждого Представление Из Параметры.Представления Цикл + + ОписаниеЯзыка = ОписаниеЯзыка(Представление.КодЯзыка); + Если ОписаниеЯзыка <> Неопределено Тогда + Если СтрСравнить(ОписаниеЯзыка.КодЯзыка, ТекущийЯзык().КодЯзыка) = 0 Тогда + ЭтотОбъект[ОписаниеЯзыка.Имя] = ?(ЗначениеЗаполнено(Параметры.ТекущееЗначение), Параметры.ТекущееЗначение, Представление[Параметры.ИмяРеквизита]); + Иначе + ЭтотОбъект[ОписаниеЯзыка.Имя] = Представление[Параметры.ИмяРеквизита]; + КонецЕсли; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + СуммаЧисло = 123.45; + УстановитьСуммуПрописью(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиЭлементовШапкиФормы + +&НаКлиенте +Процедура СтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница) + + УстановитьСуммуПрописью(); + +КонецПроцедуры + +&НаКлиенте +Процедура СуммаЧислоПриИзменении(Элемент) + + УстановитьСуммуПрописью(); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПолеВводаПриИзменении(Элемент) + + Модифицированность = Истина; + УстановитьСуммуПрописью(); + ОповеститьВладельца(); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПолеВводаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка) + + Модифицированность = Истина; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ЗаписатьИЗакрыть(Команда) + + ОповеститьВладельца(Истина, Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура Записать(Команда) + + ОповеститьВладельца(Истина); + Модифицированность = ВладелецФормы.Модифицированность; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура СформироватьПоляВводаНаРазныхЯзыках(МногострочныйРежим, ТолькоПросмотр) + + Добавлять = Новый Массив; + ТипСтрока = Новый ОписаниеТипов("Строка"); + Для Каждого ЯзыкКонфигурации Из Языки Цикл + Добавлять.Добавить(Новый РеквизитФормы(ЯзыкКонфигурации.Имя, ТипСтрока,, ЯзыкКонфигурации.Представление)); + Добавлять.Добавить(Новый РеквизитФормы("ПодсказкаВвода" + ЯзыкКонфигурации.Имя, ТипСтрока,, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Подсказка ввода для языка %1'"), ЯзыкКонфигурации.Представление))); + КонецЦикла; + + ИзменитьРеквизиты(Добавлять); + РодительЭлементов = Элементы.Страницы; + + Для Каждого ЯзыкКонфигурации Из Языки Цикл + + Если СтрСравнить(ЯзыкКонфигурации.КодЯзыка, ТекущийЯзык().КодЯзыка) = 0 И РодительЭлементов.ПодчиненныеЭлементы.Количество() > 0 Тогда + Страница = Элементы.Вставить("Страница" + ЯзыкКонфигурации.Имя, Тип("ГруппаФормы"), РодительЭлементов, + РодительЭлементов.ПодчиненныеЭлементы.Получить(0)); + Иначе + Страница = Элементы.Добавить("Страница" + ЯзыкКонфигурации.Имя, Тип("ГруппаФормы"), РодительЭлементов); + КонецЕсли; + + ЯзыкКонфигурации.Страница = Страница.Имя; + + Страница.Вид = ВидГруппыФормы.Страница; + Страница.Заголовок = ЯзыкКонфигурации.Представление; + + ПолеВвода = Элементы.Добавить(ЯзыкКонфигурации.Имя, Тип("ПолеФормы"), Страница); + ПолеВвода.ПутьКДанным = ЯзыкКонфигурации.Имя; + + Если ЗначениеЗаполнено(ЯзыкКонфигурации.ФормаРедактирования) Тогда + ПолеВвода.Вид = ВидПоляФормы.ПолеНадписи; + ПолеВвода.Гиперссылка = Истина; + ПолеВвода.УстановитьДействие("Нажатие", "Подключаемый_Нажатие"); + Иначе + ПолеВвода.Вид = ВидПоляФормы.ПолеВвода; + ПолеВвода.Ширина = 40; + ПолеВвода.МногострочныйРежим = МногострочныйРежим; + ПолеВвода.ТолькоПросмотр = ТолькоПросмотр; + ПолеВвода.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; + ПолеВвода.УстановитьДействие("ПриИзменении", "Подключаемый_ПолеВводаПриИзменении"); + ПолеВвода.УстановитьДействие("ИзменениеТекстаРедактирования", "Подключаемый_ПолеВводаИзменениеТекстаРедактирования"); + + Подсказка = ПодсказкаЗаполненияПараметровПрописей(ЯзыкКонфигурации.КодЯзыка); + ПолеВвода.ПодсказкаВвода = Подсказка.ПодсказкаВвода; + + ПодсказкаВвода = Элементы.Добавить("ПодсказкаВвода" + ЯзыкКонфигурации.Имя, Тип("ПолеФормы"), Страница); + ПодсказкаВвода.ПутьКДанным = "ПодсказкаВвода" + ЯзыкКонфигурации.Имя; + ПодсказкаВвода.Вид = ВидПоляФормы.ПолеВвода; + ПодсказкаВвода.ТолькоПросмотр = Истина; + ПодсказкаВвода.ЦветТекста = ЦветаСтиля.ПоясняющийТекст; + ПодсказкаВвода.РастягиватьПоВертикали = Истина; + ПодсказкаВвода.АвтоМаксимальнаяВысота = Ложь; + ПодсказкаВвода.МногострочныйРежим = Истина; + ПодсказкаВвода.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; + ПодсказкаВвода.ЦветРамки = ЦветаСтиля.ЦветФонаФормы; + + Если Не ЗначениеЗаполнено(Подсказка.Инструкция) Тогда + Подсказка.Инструкция = НСтр("ru = 'Для данного языка настройка прописи не предусмотрена.'") + КонецЕсли; + ЭтотОбъект["ПодсказкаВвода" + ЯзыкКонфигурации.Имя] = Подсказка.Инструкция; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Функция ОписаниеЯзыка(КодЯзыка) + + Отбор = Новый Структура("КодЯзыка", КодЯзыка); + НайденныеЭлементы = Языки.НайтиСтроки(Отбор); + Если НайденныеЭлементы.Количество() > 0 Тогда + Возврат НайденныеЭлементы[0]; + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +&НаКлиенте +Процедура УстановитьСуммуПрописью() + + ТекущийЯзык = ОписаниеТекущегоЯзыка(); + Если ТекущийЯзык = Неопределено Тогда + Возврат; + КонецЕсли; + + ПараметрыПрописи = ЭтотОбъект[ТекущийЯзык.Имя]; + СуммаПрописью = ЧислоПрописью(СуммаЧисло, "L=" + ТекущийЯзык.КодЯзыка + ";ДП=Ложь", ПараметрыПрописи); // АПК:1357 + +КонецПроцедуры + +&НаКлиенте +Функция ОписаниеТекущегоЯзыка() + + ТекущаяСтраница = Элементы.Страницы.ТекущаяСтраница; + Если ТекущаяСтраница = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + Возврат Языки.НайтиСтроки(Новый Структура("Страница", ТекущаяСтраница.Имя))[0]; + +КонецФункции + +&НаКлиенте +Процедура ОповеститьВладельца(Записать = Ложь, Закрыть = Ложь) + + ТекущийЯзык = ОписаниеТекущегоЯзыка(); + + ПараметрыПрописи = Новый Структура; + ПараметрыПрописи.Вставить("КодЯзыка", ТекущийЯзык.КодЯзыка); + ПараметрыПрописи.Вставить("ПараметрыПрописи", ЭтотОбъект[ТекущийЯзык.Имя]); + ПараметрыПрописи.Вставить("Записать", Записать); + ПараметрыПрописи.Вставить("Закрыть", Закрыть); + + Оповестить("ПараметрыПрописиВалюты", ПараметрыПрописи, ВладелецФормы); + +КонецПроцедуры + +&НаСервере +Функция ИмеющиесяЯзыкиВводаПрописей() + + Возврат РаботаСКурсамиВалютСлужебный.ФормыВводаПрописей().ВыгрузитьЗначения(); + +КонецФункции + +&НаСервере +Функция ПодсказкаЗаполненияПараметровПрописей(Знач КодЯзыка) + + Результат = Новый Структура; + Результат.Вставить("Инструкция", ""); + Результат.Вставить("ПодсказкаВвода", ""); + + Если Не ЗначениеЗаполнено(КодЯзыка) Тогда + Возврат Результат; + КонецЕсли; + + КодЯзыка = СтрРазделить(КодЯзыка, "_", Истина)[0]; + + Если КодЯзыка = "ru" Или КодЯзыка = "be" Тогда + + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( + "ru = 'Параметры прописи необходимо перечислить через запятую. + |Образец заполнения для русского и белорусского языков (ru_RU, be_BY): + | + |рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2 + | + |""рубль, рубля, рублей, м"" – предмет исчисления: + |рубль – единственное число именительный падеж; + |рубля – единственное число родительный падеж; + |рублей – множественное число родительный падеж; + |м – мужской род (ж – женский род, с - средний род); + |""копейка, копейки, копеек, ж"" – дробная часть, аналогично предмету исчисления (может отсутствовать); + |""2"" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'")); + + Результат.ПодсказкаВвода = НСтр("ru = 'рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2'"); + + ИначеЕсли КодЯзыка = "uk" Тогда + + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( + "ru = 'Параметры прописи необходимо перечислить через запятую. + |Образец заполнения для украинского языка (uk_UA): + | + |гривна, гривны, гривен, м, копейка, копейки, копеек, ж, 2 + | + |""гривна, гривны, гривен, м"" – предмет исчисления: + |""гривна – единственное число именительный падеж; + |гривны – единственное число родительный падеж; + |гривен – множественное число родительный падеж; + |м – мужской род (ж – женский род, с - средний род); + |""копейка, копейки, копеек, ж"" – дробная часть, аналогично предмету исчисления (может отсутствовать); + |""2"" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'")); + + Результат.ПодсказкаВвода = НСтр("ru = 'гривна, гривны, гривен, м, копейка, копейки, копеек, ж, 2'"); + + ИначеЕсли КодЯзыка = "pl" Тогда + + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( + "ru = 'Параметры прописи необходимо перечислить через запятую. + |Образец заполнения для польского языка (pl_PL): + | + |złoty, złote, złotych, m, grosz, grosze, groszy, m, 2 + | + |""złoty, złote, złotych, m "" - предмет исчисления (m - мужской род, ż - женский род, ń - средний род, mo – личностный мужской род). + |złoty - единственное число именительный падеж; + |złote - единственное число винительный падеж; + |złotych - множественное число винительный падеж; + |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): + | + |dollar, dollars, cent, cents, 2 + | + |""dollar, dollars"" – предмет исчисления в единственном и множественном числе; + |""cent, cents"" – дробная часть в единственном и множественном числе (может отсутствовать); + |""2"" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'")); + + Результат.ПодсказкаВвода = НСтр("ru = 'dollar, dollars, cent, cents, 2'"); + + ИначеЕсли КодЯзыка = "de" Тогда + + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( + "ru = 'Параметры прописи необходимо перечислить через запятую. + |Образец заполнения для немецкого языка (de_DE): + | + |EURO, EURO, М, Cent, Cent, M, 2 + | + |""EURO, EURO, М"" – предмет исчисления: + |EURO, EURO – предмет исчисления в единственном и множественном числе; + |М – мужской род (F – женский род, N - средний род); + |""Cent, Cent, M"" – дробная часть, аналогично предмету исчисления (может отсутствовать); + |""2"" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'")); + + Результат.ПодсказкаВвода = НСтр("ru = 'EURO, EURO, М, Cent, Cent, M, 2'"); + + ИначеЕсли КодЯзыка = "lv" Тогда + + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( + "ru = 'Параметры прописи необходимо перечислить через запятую. + |Образец заполнения для латышского языка (lv_LV): + | + |lats, lati, latu, V, santīms, santīmi, santīmu, V, 2, J, J + | + |""lats, lati, latu, v"" – предмет исчисления: + |lats – для чисел заканчивающихся на 1, кроме 11; + |lati – для чисел заканчивающихся на 2-9 и 11; + |latu – множественное число (родительный падеж) используется после числительных 0, 10, 20,..., 90, 100, 200, ..., 1000, ..., 100000; + |v – мужской род (s – женский род); + |""santīms, santīmi, santīmu, V"" – дробная часть, аналогично предмету исчисления (может отсутствовать); + |""2"" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2); + |""J"" - число 100 выводится как ""Одна сотня"" для предмета исчисления (N - как ""Сто""); + |может отсутствовать, по умолчанию равно ""J""; + |""J"" - число 100 выводится как ""Одна сотня"" для дробной части (N - как ""Сто""); + |может отсутствовать, по умолчанию равно ""J"".'")); + + Результат.ПодсказкаВвода = НСтр("ru = 'lats, lati, latu, V, santīms, santīmi, santīmu, V, 2, J, J'"); + + ИначеЕсли КодЯзыка = "lt" Тогда + + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( + "ru = 'Параметры прописи необходимо перечислить через запятую. + |Образец заполнения для литовского языка (lt_LT): + | + |litas, litai, litų, М, centas, centai, centų, М, 2 + | + |""litas, litai, litų, М"" – предмет исчисления: + |litas - единственное число целой части; + |litai - множественное число целой части от 2 до 9; + |litų - множественное число целой части прочие; + |m - род целой части (f - женский род), + |""centas, centai, centų, М"" – дробная часть, аналогично предмету исчисления (может отсутствовать); + |""2"" - количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'")); + + Результат.ПодсказкаВвода = НСтр("ru = 'litas, litai, litų, М, centas, centai, centų, М, 2'"); + + ИначеЕсли КодЯзыка = "et" Тогда + + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( + "ru = 'Параметры прописи необходимо перечислить через запятую. + |Образец заполнения для эстонского языка (et_EE): + | + |kroon, krooni, sent, senti, 2 + | + |""kroon, krooni"" – – предмет исчисления в единственном и множественном числе; + |""sent, senti"" – дробная часть в единственном и множественном числе (может отсутствовать); + |2 – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).'")); + + Результат.ПодсказкаВвода = НСтр("ru = 'kroon, krooni, sent, senti, 2'"); + + ИначеЕсли КодЯзыка = "bg" Тогда + + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( + "ru = 'Параметры прописи необходимо перечислить через запятую. + |Образец заполнения для болгарского языка (bg_BG): + | + |лев, лева, м, стотинка, стотинки, ж, 2 + | + |""лев, лева, м"" – предмет исчисления: + |лев - единственное число целой части; + |лева - множественное число целой части; + |м - род целой части, + |""стотинка, стотинки, ж"" - дробная часть: + |стотинка - единственное число дробной части; + |стотинки - множественное число дробной части; + |ж - род дробной части, + |""2"" - количество разрядов дробной части.'")); + + Результат.ПодсказкаВвода = НСтр("ru = 'лев, лева, м, стотинка, стотинки, ж, 2'"); + + ИначеЕсли КодЯзыка = "ro" Тогда + + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( + "ru = 'Параметры прописи необходимо перечислить через запятую. + |Образец заполнения для румынского языка (ro_RO): + | + |leu, lei, M, ban, bani, W, 2 + | + |""leu, lei, M"" – предмет исчисления: + |leu - единственное число целой части; + |lei - множественное число целой части; + |M - род целой части; + |""ban, bani, W"" - дробная часть: + |ban - единственное число дробной части; + |bani - множественное число дробной части; + |W - род дробной части; + |""2"" - количество разрядов дробной части.'")); + + Результат.ПодсказкаВвода = НСтр("ru = 'leu, lei, M, ban, bani, W, 2'"); + + ИначеЕсли КодЯзыка = "ka" Тогда + + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( + "ru = 'Параметры прописи необходимо перечислить через запятую. + |Образец заполнения для грузинского языка (ka_GE): + | + |ლარი, თეთრი, 2 + | + |ლარი - целая часть; + |თეთრი - дробная часть; + |""2"" - количество разрядов дробной части.'")); + + Результат.ПодсказкаВвода = НСтр("ru = 'ლარი, თეთრი, 2'"); + + ИначеЕсли КодЯзыка = "az" Или КодЯзыка = "tk" Тогда + + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( + "ru = 'Параметры прописи необходимо перечислить через запятую. + |Образец заполнения для азербайджанского(az) и туркменского языков(tk): + | + |TL,Kr,2 + | + |""TL"" - предмет исчисления; + |""Kr"" - дробная часть (может отсутствовать); + |2 - количество разрядов дробной части (может отсутствовать, по умолчанию - 2)'")); + + Результат.ПодсказкаВвода = НСтр("ru = 'TL,Kr,2'"); + + ИначеЕсли КодЯзыка = "vi" Тогда + + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( + "ru = 'Параметры прописи необходимо перечислить через запятую. + |Образец заполнения для вьетнамского языка (vi_VN): + | + |dong, xu, 2 + | + |dong, - целая часть; + |xu, - дробная часть; + |2 - количество разрядов дробной части.'")); + + Результат.ПодсказкаВвода = НСтр("ru = 'dong, xu, 2'"); + + ИначеЕсли КодЯзыка = "tr" Тогда + + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( + "ru = 'Параметры прописи необходимо перечислить через запятую. + |Образец заполнения для турецкого языка (tr_TR): + | + |TL,Kr,2,Separate + | + |TL - целая часть; + |Kr - дробная часть (может отсутствовать); + |2 - количество разрядов дробной части (может отсутствовать, значение по умолчанию - 2); + |""Separate"" - признак написания прописи раздельно, ""Solid"" - слитно (может отсутствовать, по умолчанию слитно).'")); + + Результат.ПодсказкаВвода = НСтр("ru = 'TL,Kr,2,Separate'"); + + ИначеЕсли КодЯзыка = "hu" Тогда + + Результат.Инструкция = СтроковыеФункции.ФорматированнаяСтрока(НСтр( + "ru = 'Параметры прописи необходимо перечислить через запятую. + |Образец заполнения для венгерского языка (hu): + | + |Forint, fillér, 2 + | + |Forint - целая часть; + |fillér - дробная часть; + |""2"" - количество разрядов дробной части.'")); + + Результат.ПодсказкаВвода = НСтр("ru = 'Forint, fillér, 2'"); + + КонецЕсли; + + Возврат Результат; + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Form.form index 64b5ed1b2..963f22b37 100644 --- a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Form.form @@ -785,7 +785,7 @@ - ПараметрыПрописиВалюты + ГиперссылкаПараметрыПрописиВалюты 145 <key>ru</key> @@ -797,7 +797,7 @@ <common>true</common> </userVisible> <extendedTooltip> - <name>ПараметрыПрописиВалютыРасширеннаяПодсказка</name> + <name>ГиперссылкаПараметрыПрописиВалютыРасширеннаяПодсказка</name> <id>147</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -807,7 +807,7 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>ПараметрыПрописиВалютыКонтекстноеМеню</name> + <name>ГиперссылкаПараметрыПрописиВалютыКонтекстноеМеню</name> <id>146</id> <autoFill>true</autoFill> </contextMenu> @@ -823,14 +823,44 @@ <horizontalAlign>Left</horizontalAlign> </extInfo> </items> - <commandBarLocation>Top</commandBarLocation> - <showCommandBar>true</showCommandBar> <autoCommandBar> <name>ФормаКоманднаяПанель</name> <id>-1</id> + <items xsi:type="form:FormGroup"> + <name>ГруппаПараметрыПрописиВалюты</name> + <id>154</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <title> + <key>ru</key> + <value>Параметры прописи</value> + + + ГруппаПараметрыПрописиВалютыРасширеннаяПодсказка + 155 + Label + true + true + + Left + + + Popup + + Auto + Normal + + Left true + + NotificationProcessing + ОбработкаОповещения + OnCreateAtServer ПриСозданииНаСервере @@ -861,13 +891,10 @@ true - ПолеПрописи1наРусском - 2 + ФормыВводаПрописей + 14 - String - - 25 - + ValueList true @@ -875,201 +902,47 @@ true - true + + + - - ПолеПрописи2наРусском - 3 - - String - - 25 - - - + + ПараметрыПрописиВалютыНаДругихЯзыках + + <key>ru</key> + <value>На других языках...</value> + + 1 + + ru + Параметры прописи валюты на других языках + + true - - - true - - true - - - ПолеПрописи3наРусском - 4 - - String - - 25 - - - - true - - - true - - true - - - ПолеПрописи4наРусском - 5 - - String - - - - true - - - true - - true - - - ПолеПрописи5наРусском - 6 - - String - - 25 - - - - true - - - true - - true - - - ПолеПрописи6наРусском - 7 - - String - - 25 - - - - true - - - true - - true - - - ПолеПрописи7наРусском - 8 - - String - - 25 - - - - true - - - true - - true - - - ПолеПрописи8наРусском - 9 - - String - - 25 - - - - true - - - true - - true - - - ДлинаДробнойЧасти - 11 - - String - - - - true - - - true - - true - - - ЗависимыйКурсВалют - 10 - - Boolean - - - true - - - true - - true - - - СуммаЧисло - 12 - - Number - - 10 - 2 - true - - - - true - - - true - - - - СуммаПрописью - 13 - - String - - - - true - - - true - - - - ЕстьФормаПараметрыПрописиВалюты - 16 - - Boolean - - - true - - - true - - + + + + ПараметрыПрописиВалютыНаДругихЯзыках + + + Auto + Auto + - + + + 0 + + + + 0 + + + + 0 + + + diff --git a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl index a8aa82cc0..f02d601f1 100644 --- a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl @@ -38,13 +38,13 @@ КонецЕсли; ОбработкаЗагрузкаКурсовВалют = Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют"); - Если ОбработкаЗагрузкаКурсовВалют <> Неопределено Тогда - ЕстьФормаПараметрыПрописиВалюты = ОбработкаЗагрузкаКурсовВалют.Формы.Найти("ПараметрыПрописиВалюты") <> Неопределено; - КонецЕсли; - Элементы.КурсВалютыЗагружаетсяИзИнтернета.Видимость = ОбработкаЗагрузкаКурсовВалют <> Неопределено; УстановитьДоступностьЭлементов(ЭтотОбъект); + ЗаполнитьПодменюПараметрыПрописиВалюты(); + Элементы.ГиперссылкаПараметрыПрописиВалюты.Видимость = ФормыВводаПрописей.Количество() = 1; + Элементы.ГруппаПараметрыПрописиВалюты.Видимость = ФормыВводаПрописей.Количество() > 1; + Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда Элементы.ФормулаРасчетаКурса.ОтображениеПодсказки = ОтображениеПодсказки.ОтображатьСнизу; Элементы.ОсновнаяВалюта.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто; @@ -54,6 +54,23 @@ КонецПроцедуры +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если Источник = ЭтотОбъект И ИмяСобытия = "ПараметрыПрописиВалюты" Тогда + УстановитьПрописиНаЯзыке(Параметр.ПараметрыПрописи, Параметр.КодЯзыка); + Если Параметр.Записать Тогда + Записать(); + Иначе + Модифицированность = Истина; + КонецЕсли; + Если Параметр.Закрыть Тогда + Закрыть(); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиСобытийЭлементовШапкиФормы @@ -77,16 +94,7 @@ &НаКлиенте Процедура ПараметрыПрописиВалютыНажатие(Элемент) - ОписаниеОповещения = Новый ОписаниеОповещения("ПриИзмененииПараметровПрописиВалюты", ЭтотОбъект); - Если ЕстьФормаПараметрыПрописиВалюты Тогда - ПараметрыОткрытия = Новый Структура; - ПараметрыОткрытия.Вставить("ТолькоПросмотр", ТолькоПросмотр); - ПараметрыОткрытия.Вставить("ПараметрыПрописи", Объект.ПараметрыПрописи); - ИмяФормыРедактированияПрописей = "Обработка.ЗагрузкаКурсовВалют.Форма.ПараметрыПрописиВалюты"; - ОткрытьФорму(ИмяФормыРедактированияПрописей, ПараметрыОткрытия, ЭтотОбъект, , , , ОписаниеОповещения); - Иначе - ПоказатьВводСтроки(ОписаниеОповещения, Объект.ПараметрыПрописи, НСтр("ru = 'Параметры прописи валюты'")); - КонецЕсли; + ОткрытьПараметрыПрописиВалюты(0); КонецПроцедуры @@ -137,13 +145,128 @@ КонецПроцедуры &НаКлиенте -Процедура ПриИзмененииПараметровПрописиВалюты(Результат, ДополнительныеПараметры) Экспорт - Если Результат = Неопределено Или Результат = КодВозвратаДиалога.Отмена Тогда +Процедура УстановитьПрописиНаЯзыке(ПараметрыПрописи, КодЯзыка) + + Если КодЯзыка = ОбщегоНазначенияКлиент.КодОсновногоЯзыка() Тогда + Объект.ПараметрыПрописи = ПараметрыПрописи; Возврат; КонецЕсли; - Объект.ПараметрыПрописи = Результат; - Модифицированность = Истина; + НайденнаяСтрока = Неопределено; + Для Каждого СтрокаТаблицы Из Объект.Представления Цикл + Если СтрокаТаблицы.КодЯзыка = КодЯзыка Тогда + НайденнаяСтрока = СтрокаТаблицы; + Прервать; + КонецЕсли; + КонецЦикла; + + Если НайденнаяСтрока = Неопределено Тогда + НайденнаяСтрока = Объект.Представления.Добавить(); + НайденнаяСтрока.КодЯзыка = КодЯзыка; + КонецЕсли; + + НайденнаяСтрока.ПараметрыПрописи = ПараметрыПрописи; + +КонецПроцедуры + +&НаКлиенте +Функция ПараметрыПрописиВалютыНаЯзыке(КодЯзыка) + + Если КодЯзыка = ОбщегоНазначенияКлиент.КодОсновногоЯзыка() Тогда + Возврат Объект.ПараметрыПрописи; + КонецЕсли; + + НайденнаяСтрока = Неопределено; + Для Каждого СтрокаТаблицы Из Объект.Представления Цикл + Если СтрокаТаблицы.КодЯзыка = КодЯзыка Тогда + НайденнаяСтрока = СтрокаТаблицы; + КонецЕсли; + КонецЦикла; + + Если НайденнаяСтрока = Неопределено Тогда + Возврат ""; + КонецЕсли; + + Возврат НайденнаяСтрока.ПараметрыПрописи; + +КонецФункции + +&НаСервере +Процедура ЗаполнитьПодменюПараметрыПрописиВалюты() + + Кнопка = Неопределено; + ФормыВводаПрописей = РаботаСКурсамиВалютСлужебный.ФормыВводаПрописей(); + Для Индекс = 0 По ФормыВводаПрописей.Количество() - 1 Цикл + ИмяКоманды = "ПараметрыПрописиВалюты_" + XMLСтрока(Индекс); + + КодЯзыка = ФормыВводаПрописей[Индекс].Значение; + Команда = Команды.Добавить(ИмяКоманды); + Если ЗначениеЗаполнено(КодЯзыка) Тогда + Команда.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1...'"), + РаботаСКурсамиВалютСлужебный.ПредставлениеЯзыка(КодЯзыка));; + Иначе + Команда.Заголовок = НСтр("ru = 'На других языках...'"); + КонецЕсли; + + Команда.Действие = "Подключаемый_ОткрытьФормуПараметрыПрописиВалюты"; + + Кнопка = Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), Элементы.ГруппаПараметрыПрописиВалюты); + Кнопка.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели; + Кнопка.ИмяКоманды = ИмяКоманды; + КонецЦикла; + +КонецПроцедуры + +// Параметры: +// Команда - КомандаФормы +// +&НаКлиенте +Процедура Подключаемый_ОткрытьФормуПараметрыПрописиВалюты(Команда) + + Индекс = Число(Сред(Команда.Имя, СтрДлина("ПараметрыПрописиВалюты_") + 1)); + ОткрытьПараметрыПрописиВалюты(Индекс); + +КонецПроцедуры + +&НаКлиенте +Процедура ОткрытьПараметрыПрописиВалюты(Индекс) + + ИмяФормыПрописей = ФормыВводаПрописей[Индекс].Представление; + КодЯзыка = ФормыВводаПрописей[Индекс].Значение; + + Если ИмяФормыПрописей = "ПараметрыПрописиВалютыНаДругихЯзыках" Тогда + ПараметрыПрописиВалютыНаДругихЯзыках(); + Иначе + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ПараметрыПрописи", ПараметрыПрописиВалютыНаЯзыке(КодЯзыка)); + ПараметрыФормы.Вставить("КодЯзыка", КодЯзыка); + + ОткрытьФорму(ИмяФормыПрописей, ПараметрыФормы, ЭтотОбъект, , , НавигационнаяСсылка); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПараметрыПрописиВалютыНаДругихЯзыках(Команда) + + ПараметрыПрописиВалютыНаДругихЯзыках(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПараметрыПрописиВалютыНаДругихЯзыках() + + ИмяРеквизита = "ПараметрыПрописи"; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ИмяРеквизита", ИмяРеквизита); + ПараметрыФормы.Вставить("ТекущееЗначение", Объект.ПараметрыПрописи); + ПараметрыФормы.Вставить("ТолькоПросмотр", ТолькоПросмотр); + ПараметрыФормы.Вставить("Представления", Объект.Представления); + + ОткрытьФорму("Справочник.Валюты.Форма.ПараметрыПрописиВалютыНаДругихЯзыках", ПараметрыФормы, ЭтотОбъект, , , , , РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/Валюты/ManagerModule.bsl b/SSL/src/Catalogs/Валюты/ManagerModule.bsl index 37800e1d8..3f1d6d737 100644 --- a/SSL/src/Catalogs/Валюты/ManagerModule.bsl +++ b/SSL/src/Catalogs/Валюты/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт diff --git a/SSL/src/Catalogs/Валюты/Валюты.mdo b/SSL/src/Catalogs/Валюты/Валюты.mdo index 5a1c43cf9..84275885f 100644 --- a/SSL/src/Catalogs/Валюты/Валюты.mdo +++ b/SSL/src/Catalogs/Валюты/Валюты.mdo @@ -302,6 +302,64 @@ Use Use + + + + + + Представления + + ru + Представления + + + Use + LineNumber + + Use + + + + + КодЯзыка + + ru + Код языка + + + String + + 10 + + + + + Use + Index + Use + + + ПараметрыПрописи + + ru + Параметры прописи + + + String + + 200 + + + + ru + Настройки представления суммы прописью + + + + Use + Use + + ФормаСписка @@ -325,4 +383,28 @@ PersonalComputer MobileDevice + + ПараметрыПрописиВалюты_en + + ru + Параметры прописи валюты на английском языке + + АПК:58 + + + ru + + + PersonalComputer + MobileDevice + + + ПараметрыПрописиВалютыНаДругихЯзыках + + ru + Параметры прописи + + PersonalComputer + MobileDevice + diff --git a/SSL/src/Catalogs/ВариантыОтветовАнкет/ManagerModule.bsl b/SSL/src/Catalogs/ВариантыОтветовАнкет/ManagerModule.bsl index 4ba53c400..153f6ef3e 100644 --- a/SSL/src/Catalogs/ВариантыОтветовАнкет/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВариантыОтветовАнкет/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl index d5d235720..c41644bf6 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Module.bsl @@ -347,8 +347,7 @@ // Добавляет рекурсивно строку в дерево подсистем. // // Параметры: -// ПриемникРодитель - СтрокаДереваЗначений -// - ДеревоЗначений: +// ПриемникРодитель - ДеревоЗначений: // * Ссылка - СправочникСсылка.ИдентификаторыОбъектовРасширений // - СправочникСсылка.ИдентификаторыОбъектовМетаданных // * Имя - Строка diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl index 6a3fd1469..a41f763b0 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаСписка/Module.bsl @@ -94,7 +94,7 @@ Список.Параметры.УстановитьЗначениеПараметра("ДоступныеОтчеты", ВариантыОтчетов.ОтчетыТекущегоПользователя()); Список.Параметры.УстановитьЗначениеПараметра("ОтключенныеВариантыПрограммы", Новый Массив(ВариантыОтчетовПовтИсп.ОтключенныеВариантыПрограммы())); - Список.Параметры.УстановитьЗначениеПараметра("ЭтоОсновнойЯзык", ВариантыОтчетов.ЭтоОсновнойЯзык()); + Список.Параметры.УстановитьЗначениеПараметра("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык()); Список.Параметры.УстановитьЗначениеПараметра("КодЯзыка", ТекущийЯзык().КодЯзыка); Список.Параметры.УстановитьЗначениеПараметра("ВерсияРасширений", ПараметрыСеанса.ВерсияРасширений); diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl index 79f51c909..24abf915e 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/ФормаЭлемента/Module.bsl @@ -59,7 +59,10 @@ ПерезаполнитьДерево(Ложь); - МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + КонецЕсли; ВариантыОтчетов.ОпределитьПоведениеСпискаПользователейВариантаОтчета(ЭтотОбъект); @@ -95,7 +98,11 @@ Если ЭтоПредопределенный Тогда ПредопределенныйВариант = ТекущийОбъект.ПредопределенныйВариант.ПолучитьОбъект(); - МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ПредопределенныйВариант); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ПредопределенныйВариант); + КонецЕсли; ОписаниеИзменено = Не ПустаяСтрока(Объект.Описание) И НРег(СокрЛП(Объект.Описание)) <> НРег(СокрЛП(ПредопределенныйВариант.Описание)); Если Не ОписаниеИзменено Тогда @@ -115,7 +122,11 @@ КонецЕсли; ВариантыОтчетов.ДеревоПодсистемЗаписать(ТекущийОбъект, ИзмененныеРазделы); - МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + КонецЕсли; + Если ЭтоПредопределенный И Не ОписаниеИзменено Тогда ТекущийОбъект.Представления.Очистить(); КонецЕсли; @@ -126,17 +137,22 @@ &НаСервере Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) - + // СтандартныеПодсистемы.УправлениеДоступом Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); МодульУправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи); КонецЕсли; // Конец СтандартныеПодсистемы.УправлениеДоступом - + ПерезаполнитьДерево(Ложь); ЗаполнитьИзПредопределенного(ТекущийОбъект); - МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -156,7 +172,11 @@ // Конец СтандартныеПодсистемы.УправлениеДоступом ЗаполнитьИзПредопределенного(ТекущийОбъект); - МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; РегистрыСведений.НастройкиВариантовОтчетов.ПрочитатьНастройкиДоступностиВариантаОтчета( ТекущийОбъект.Ссылка, ПользователиВарианта, ИспользоватьГруппыПользователей, ИспользоватьВнешнихПользователей); @@ -183,7 +203,12 @@ &НаКлиенте Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка) - МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент"); + МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + КонецЕсли; + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl index 4037d5e13..26676adfe 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -35,7 +35,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = @@ -132,7 +134,17 @@ Данные.Ссылка = Данные.ПредопределенныйВариант; КонецЕсли; - МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#Иначе + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#КонецЕсли КонецПроцедуры diff --git a/SSL/src/Catalogs/ВариантыОтчетов/ObjectModule.bsl b/SSL/src/Catalogs/ВариантыОтчетов/ObjectModule.bsl index acdb0c002..babbd5c53 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/ObjectModule.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/ObjectModule.bsl @@ -193,7 +193,10 @@ Процедура ПриЧтенииПредставленийНаСервере() Экспорт - МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); + КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl b/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl index 30ba26869..7eb035085 100644 --- a/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl @@ -379,7 +379,8 @@ // Для общих форм Расширения, УстановленныеИсправления. // // Возвращаемое значение: -// РасширениеКонфигурации, Неопределено +// РасширениеКонфигурации +// Неопределено // Функция НайтиРасширение(ИдентификаторРасширения) Экспорт @@ -511,7 +512,7 @@ // Для общих форм Расширения, УстановленныеИсправления. // // Возвращаемое значение: -// Массив Из УникальныйИдентификатор +// Массив из УникальныйИдентификатор // Функция ЗапросыНаОтменуРазрешенийИспользованияВнешнегоМодуля(ИдентификаторыРасширений) Экспорт diff --git a/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl b/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl index db5f0ca3f..53f2ca34f 100644 --- a/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl +++ b/SSL/src/Catalogs/ВерсииФайлов/Forms/ВерсииФайла/Module.bsl @@ -317,7 +317,7 @@ | ВерсииФайлов.Расширение КАК Расширение, | ВерсииФайлов.НомерВерсии КАК НомерВерсии |ИЗ - | Справочник." + ИмяСправочникаХранилищаВерсийФайлов + " КАК ВерсииФайлов + | &ИмяСправочника КАК ВерсииФайлов |ГДЕ | ВерсииФайлов.Владелец = &Владелец"; diff --git a/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl b/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl index a4f097806..9b16e6517 100644 --- a/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -33,7 +33,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl b/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl index e990daf40..11c1a5cb7 100644 --- a/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl +++ b/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl @@ -51,10 +51,12 @@ "ВЫБРАТЬ | ВерсииФайлов.Ссылка КАК Ссылка |ИЗ - | Справочник." + Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).Имя + " КАК ВерсииФайлов + | &ИмяСправочникаВерсииФайлов КАК ВерсииФайлов |ГДЕ | ВерсииФайлов.РодительскаяВерсия = &РодительскаяВерсия"; + ИмяСправочникаВерсииФайлов = "Справочник." + Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).Имя; + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяСправочникаВерсииФайлов", ИмяСправочникаВерсииФайлов); Запрос.УстановитьПараметр("РодительскаяВерсия", Ссылка); Результат = Запрос.Выполнить(); diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Module.bsl index 357ba3a26..7f243b8fc 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/Forms/ФормаЭлемента/Module.bsl @@ -83,7 +83,10 @@ ДоступныДополнительныеНастройкиАдреса = (Метаданные.Обработки.Найти("РасширенныйВводКонтактнойИнформации") <> Неопределено И Метаданные.Обработки["РасширенныйВводКонтактнойИнформации"].Формы.Найти("НастройкиАдреса") <> Неопределено); - МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + КонецЕсли; Элементы.ЗаполнитьИдентификаторДляФормул.Доступность = НЕ Элементы.ИдентификаторДляФормул.ТолькоПросмотр; @@ -102,7 +105,10 @@ &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) - МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; КонецПроцедуры @@ -135,9 +141,7 @@ Новый ОписаниеОповещения("ПослеОтветаНаВопросКогдаИдентификаторДляФормулУжеИспользуется", ЭтотОбъект, ПараметрыЗаписи), ТекстВопроса, Кнопки, , "ПродолжитьЗапись"); - ОтказПриЗаписи = Истина; Отказ = Истина; - Возврат; Иначе ПараметрыЗаписи.Вставить("ПроверкаИдентификатораДляФормулВыполнена"); @@ -166,7 +170,10 @@ ТекущийОбъект.ДополнительныеСвойства.Вставить("ПроверкаИдентификатораДляФормулВыполнена"); КонецЕсли; - МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + КонецЕсли; КонецПроцедуры @@ -183,7 +190,10 @@ Элементы.ЗаполнитьИдентификаторДляФормул.Доступность = НЕ Элементы.ИдентификаторДляФормул.ТолькоПросмотр; - МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; КонецПроцедуры @@ -271,7 +281,12 @@ &НаКлиенте Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка) - МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент"); + МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -427,7 +442,7 @@ &НаСервереБезКонтекста Функция НаименованиеДляФормированияИдентификатора(Знач Наименование, Знач Представления) - Если ТекущийЯзык() <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда + Если ТекущийЯзык().КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда Отбор = Новый Структура(); Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка()); НайденныеСтроки = Представления.НайтиСтроки(Отбор); diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ManagerModule.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ManagerModule.bsl index 9ad692ec0..14c87bb12 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт @@ -32,7 +32,9 @@ // СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов -// См. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами. +// Возвращаемое значение: +// см. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииЗаблокированныхРеквизитов.ЗаблокированныеРеквизиты. +// Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт БлокируемыеРеквизиты = Новый Массив; @@ -54,7 +56,9 @@ // Проверки на запрет замены групп и ссылок разных типов производятся автоматически при начале замены. // // Параметры: -// ПарыЗамен - Соответствие - Ключ - что будет заменено, значение - на что будет заменено. +// ПарыЗамен - Соответствие из КлючИЗначение: +// * Ключ - ЛюбаяСсылка - что будет заменено +// * Значение - ЛюбаяСсылка - на что будет заменено // Параметры - Структура - набор флагов, описывающих действие с заменяемыми элементами. // Содержит необязательные реквизиты: // * СпособУдаления - Строка - может принимать значения: @@ -65,8 +69,9 @@ // Любые другие значения говорят о том, что заменяемая ссылка не будет изменена. // // Возвращаемое значение: -// Соответствие - Ключ - исходная ссылка, значение - строка - описание, почему замена недопустима. -// Если все замены допустимы, то возвращается пустое соответствие; +// Соответствие из КлючИЗначение: +// * Ключ - ЛюбаяСсылка - исходная ссылка +// * Значение - Строка - описание, почему замена недопустима. Если все замены допустимы, то возвращается пустое соответствие // Функция ВозможностьЗаменыЭлементов(Знач ПарыЗамен, Знач Параметры = Неопределено) Экспорт @@ -173,7 +178,17 @@ #Область ОбработчикиСобытий Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка) - МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#Иначе + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#КонецЕсли КонецПроцедуры #КонецОбласти @@ -188,10 +203,10 @@ // информации (родитель) а также соответствие идентификатора правилам написания. // // Параметры: -// ИдентификаторДляФормул - Строка - идентификатор для формул. -// Ссылка - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на текущий объект. -// Родитель - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на родитель текущего объекта. -// Отказ - Булево - флаг отказа при наличии ошибки. +// ИдентификаторДляФормул - Строка - идентификатор для формул. +// Ссылка - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на текущий объект. +// Родитель - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на родитель текущего объекта. +// Отказ - Булево - флаг отказа при наличии ошибки. // Процедура ПроверитьУникальностьИдентификатора(ИдентификаторДляФормул, Ссылка, Родитель, Отказ) Экспорт @@ -276,11 +291,11 @@ // Возвращает уникальный идентификатора для формул (после проверки на уникальность) // // Параметры: -// ПредставлениеОбъекта - Строка - представление, из которого будет сформирован идентификатор для формул. -// СсылкаНаТекущийОбъект - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на текущий элемент. -// Родитель - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на родитель текущего объекта. +// ПредставлениеОбъекта - Строка - представление, из которого будет сформирован идентификатор для формул. +// СсылкаНаТекущийОбъект - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на текущий элемент. +// Родитель - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на родитель текущего объекта. // Возвращаемое значение: -// Строка - уникальное значение идентификатора для формул. +// Строка - уникальное значение идентификатора для формул. // Функция УникальныйИдентификаторДляФормул(ПредставлениеОбъекта, СсылкаНаТекущийОбъект, Родитель) Экспорт diff --git a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ObjectModule.bsl b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ObjectModule.bsl index 736b13b77..52295a7fa 100644 --- a/SSL/src/Catalogs/ВидыКонтактнойИнформации/ObjectModule.bsl +++ b/SSL/src/Catalogs/ВидыКонтактнойИнформации/ObjectModule.bsl @@ -90,7 +90,7 @@ Функция НаименованиеДляФормированияИдентификатора() НаименованиеДляИдентификатора = Наименование; - Если ТекущийЯзык() <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда + Если ТекущийЯзык().КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда Отбор = Новый Структура(); Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка()); НайденныеСтроки = Представления.НайтиСтроки(Отбор); @@ -104,7 +104,10 @@ Процедура ПриЧтенииПредставленийНаСервере() Экспорт - МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); + КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Catalogs/ВидыПроверок/ManagerModule.bsl b/SSL/src/Catalogs/ВидыПроверок/ManagerModule.bsl index 3de8f8906..9974d705d 100644 --- a/SSL/src/Catalogs/ВидыПроверок/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВидыПроверок/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт @@ -32,7 +32,9 @@ // СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов -// См. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами. +// Возвращаемое значение: +// см. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииЗаблокированныхРеквизитов.ЗаблокированныеРеквизиты. +// Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт БлокируемыеРеквизиты = Новый Массив; diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Form.form b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Form.form index 6c875138e..622e13405 100644 --- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Form.form +++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Form.form @@ -41,7 +41,7 @@ false - CommonPicture.Предупреждение32 + CommonPicture.Вопрос32 @@ -53,7 +53,7 @@ %1 -Проверить обновление компоненты? +Проверить и загрузить обновление компоненты? true true @@ -91,10 +91,6 @@ true - - <key>ru</key> - <value>Шапка</value> - ШапкаРасширеннаяПодсказка 12 @@ -127,10 +123,6 @@ ПодключитьИнтернетПоддержкуРасширеннаяПодсказка 23 - - <key>ru</key> - <value>Для использования веб-сервиса 1С и загрузки внешних компонент необходимо выполнить подключение к Интернет-поддержке пользователей.</value> - Label true true @@ -145,7 +137,6 @@ true true UserCmds - Button Auto true @@ -482,10 +473,6 @@ true - - <key>ru</key> - <value>Страницы</value> - СтраницыРасширеннаяПодсказка 2 diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Module.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Module.bsl index c1716a58a..b9d035790 100644 --- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Module.bsl +++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ОбновлениеКомпонентСПортала1СИТС/Module.bsl @@ -39,7 +39,7 @@ Элементы.ДекорацияПояснение.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = '%1 - |Проверить обновление компоненты?'"), + |Проверить и загрузить обновление компоненты?'"), ТекстПояснения); Элементы.ПодключитьИнтернетПоддержку.Видимость = Не ДанныеАутентификацииПорталаСохранены; diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ПоискКомпонентыНаПортале1СИТС/Form.form b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ПоискКомпонентыНаПортале1СИТС/Form.form index 165265ca0..c4b74ec4f 100644 --- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ПоискКомпонентыНаПортале1СИТС/Form.form +++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ПоискКомпонентыНаПортале1СИТС/Form.form @@ -92,10 +92,6 @@ true - - <key>ru</key> - <value>Шапка</value> - ШапкаРасширеннаяПодсказка 12 @@ -381,10 +377,6 @@ true - - <key>ru</key> - <value>Страницы</value> - СтраницыРасширеннаяПодсказка 2 diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl index a06b13796..79697d09b 100644 --- a/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВнешниеКомпоненты/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -39,7 +39,7 @@ // // Параметры: // Идентификатор - Строка - идентификатор объекта внешнего компонента. -// Версия - Строка - (необязательный) версия компоненты. +// Версия - Строка - версия компоненты. // // Возвращаемое значение: // СправочникСсылка.ВнешниеКомпоненты - ссылка на контейнер внешней компоненты в информационной базе. diff --git a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Module.bsl index 7efbf83ec..ac9fddff1 100644 --- a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаСписка/Module.bsl @@ -661,14 +661,14 @@ #Область СлужебныеПроцедурыИФункции // Возвращаемое значение: -// Структура: -// * ВыборГруппВнешнихПользователей - Булево -// * ОтборОбъектАвторизации - ОпределяемыйТип.ВнешнийПользователь -// * РасширенныйПодбор - Булево -// * ГруппаВсеПользователи - СправочникСсылка.ГруппыВнешнихПользователей -// * ТекущаяСтрока - Число -// * ЗаголовокФормыПодбора - Строка -// * ИспользоватьГруппы - Булево +// Структура: +// * ВыборГруппВнешнихПользователей - Булево +// * ОтборОбъектАвторизации - ОпределяемыйТип.ВнешнийПользователь +// * РасширенныйПодбор - Булево +// * ГруппаВсеПользователи - СправочникСсылка.ГруппыВнешнихПользователей +// * ТекущаяСтрока - Число +// * ЗаголовокФормыПодбора - Строка +// * ИспользоватьГруппы - Булево // &НаСервере Функция НовыйХранимыеПараметры() @@ -1180,7 +1180,7 @@ // Параметры: // Ответ - КодВозвратаДиалога // ДополнительныеПараметры - Структура: -// * ПараметрыПеретаскивания - ПараметрыПеретаскивания +// * ПараметрыПеретаскивания - Массив из СправочникСсылка.ВнешниеПользователи // * Строка - СправочникСсылка.ГруппыВнешнихПользователей // * Перемещение - ДействиеПеретаскивания // diff --git a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Form.form index 936228c91..b30b11622 100644 --- a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Form.form @@ -1025,6 +1025,40 @@ true + + ПользовательИБЗапрещеноВосстанавливатьПароль + 361 + true + true + + true + + + ПользовательИБЗапрещеноВосстанавливатьПароль + + Right + + ПользовательИБЗапрещеноВосстанавливатьПарольРасширеннаяПодсказка + 363 + Label + true + true + + Left + + + + ПользовательИБЗапрещеноВосстанавливатьПарольКонтекстноеМеню + 362 + true + + CheckBoxField + Enter + true + Left + true + + true true @@ -1846,6 +1880,68 @@ false + + СтраницаКонтактнаяИнформация + 357 + + ГруппаКонтактнаяИнформация + 359 + true + true + + true + + + <key>ru</key> + <value>Контактная информация</value> + + + ГруппаКонтактнаяИнформацияРасширеннаяПодсказка + 360 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Адреса, телефоны</value> + + + СтраницаКонтактнаяИнформацияРасширеннаяПодсказка + 358 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + СтраницаДополнительныеРеквизиты 300 @@ -2759,6 +2855,65 @@ true + + ПользовательИБАдресЭлектроннойПочты + 4 + + String + + 256 + + + + true + + + true + + + + ИмяРеквизитаСПочтойДляВосстановленияПароля + 7 + + String + + + + true + + + true + + + + ПарольДляПодтвержденияИзмененияПочты + 32 + + + true + + + true + + + + ПользовательИБЗапрещеноВосстанавливатьПароль + + <key>ru</key> + <value>Пользователю запрещено восстанавливать пароль</value> + + 41 + + Boolean + + + true + + + true + + true + ПоказатьТолькоВыбранныеРоли diff --git a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl index fa0c6c3a0..43cd0b846 100644 --- a/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВнешниеПользователи/Forms/ФормаЭлемента/Module.bsl @@ -48,6 +48,7 @@ ЗначениеКопирования = Параметры.ЗначениеКопирования; Объект.Наименование = ""; Объект.ОбъектАвторизации = Неопределено; + ПользовательИБАдресЭлектроннойПочты = ""; Если Не ПользователиСлужебный.УровеньДоступаПользователяВыше(ЗначениеКопирования, УровеньДоступа) Тогда ПрочитатьПользователяИБ(ЗначениеЗаполнено(ЗначениеКопирования.ИдентификаторПользователяИБ)); @@ -131,10 +132,44 @@ МодульУправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры); КонецЕсли; + ПарольДляПодтвержденияИзмененияПочты = Неопределено; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + + МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); + + Если МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(Объект.ОбъектАвторизации) Тогда + ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации)); + + МодульУправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]); + + Если ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда + + Если Не ПользователиСлужебный.ИнтерактивноЗапрашиватьВводПароля(УровеньДоступа, Объект) Тогда + ПарольДляПодтвержденияИзмененияПочты = ""; + КонецЕсли; + + ИмяРеквизитаСПочтойДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.ОпределитьЭлементСПочтойДляВосстановленияПароля( + ЭтотОбъект, + ПользовательИБАдресЭлектроннойПочты, + ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект), + Истина); + + КонецЕсли; + + Элементы.ГруппаКонтактнаяИнформация.Доступность = Пользователи.ЭтоПолноправныйПользователь(); + + КонецЕсли; + КонецЕсли; + Если Не ПользователиСлужебныйПовтИсп.Настройки().ОбщиеНастройкиВхода Тогда Элементы.ГруппаИзменитьОграничение.Видимость = Ложь; КонецЕсли; + Если Не ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() + Или ОбщегоНазначения.РазделениеВключено() Тогда + Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.Видимость = Ложь; + КонецЕсли; + Элементы.ПотребоватьСменуПароляПриВходе.РасширеннаяПодсказка.Заголовок = ПользователиСлужебный.ПодсказкаПотребоватьСменуПароляПриВходе(Истина); @@ -185,86 +220,24 @@ МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); КонецЕсли; // Конец СтандартныеПодсистемы.УправлениеДоступом - -КонецПроцедуры - -&НаСервере -Процедура ОбработатьИнтерфейсРолейУстановитьТолькоПросмотрРолей(ТекущийОбъект = Неопределено) - Если ТекущийОбъект = Неопределено Тогда - ТекущийОбъект = Объект; + // СтандартныеПодсистемы.КонтактнаяИнформация + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); + Если МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(Объект.ОбъектАвторизации) Тогда + ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации)); + МодульУправлениеКонтактнойИнформацией.ПриЧтенииНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]); + + Если ТипЗнч(УровеньДоступа) = Тип("Структура") И ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда + ИмяРеквизитаСПочтойДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.ОпределитьЭлементСПочтойДляВосстановленияПароля( + ЭтотОбъект, + ПользовательИБАдресЭлектроннойПочты, + ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект.ОбъектАвторизации), Истина); + КонецЕсли; + + КонецЕсли; КонецЕсли; - - ОбработатьИнтерфейсРолей("УстановитьТолькоПросмотрРолей", - ЗапретРедактированияРолей - Или ДействияВФорме.Роли <> "Редактирование" - Или Не УровеньДоступа.НастройкиДляВхода - Или Не ТекущийОбъект.УстановитьРолиНепосредственно); - -КонецПроцедуры - -&НаСервере -Процедура НастроитьФорму(ТекущийОбъект, ПриСозданииНаСервере = Ложь, ПараметрыЗаписи = Неопределено) - - Если НачальноеОписаниеПользователяИБ = Неопределено Тогда - Возврат; // Вызов ПриЧтенииНаСервере до вызова ПриСозданииНаСервере. - КонецЕсли; - - Если Не ПриСозданииНаСервере Тогда - ПрочитатьПользователяИБ(); - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - ПользователиСлужебный.ПрочитатьСведенияОПользователе(ЭтотОбъект); - УстановитьПривилегированныйРежим(Ложь); - - УровеньДоступа = ПользователиСлужебный.УровеньДоступаКСвойствамПользователя(ТекущийОбъект); - - ОпределитьДействияВФорме(); - - ОпределитьНесоответствияПользователяСПользователемИБ(ПараметрыЗаписи); - - ОбработатьИнтерфейсРолейУстановитьТолькоПросмотрРолей(ТекущийОбъект); - - // Установка постоянной доступности свойств. - Элементы.СвойстваПользователяИБ.Видимость = - ЗначениеЗаполнено(ДействияВФорме.СвойстваПользователяИБ); - - Элементы.ОтображениеРолей.Видимость = - ЗначениеЗаполнено(ДействияВФорме.Роли); - - Элементы.УстановитьРолиНепосредственно.Видимость = - ЗначениеЗаполнено(ДействияВФорме.Роли) И НЕ ПользователиСлужебный.ЗапретРедактированияРолей(); - - ОбновитьОтображаемыйТипПользователя(); - - ТолькоПросмотр = ТолькоПросмотр - ИЛИ ДействияВФорме.Роли <> "Редактирование" - И ДействияВФорме.СвойстваЭлемента <> "Редактирование" - И ДействияВФорме.СвойстваПользователяИБ <> "Редактирование"; - - - ДоступностьКнопки = Не ТолькоПросмотр И ПравоДоступа("Редактирование", - Метаданные.Справочники.ВнешниеПользователи); - - Если Элементы.ФормаЗаписатьИЗакрыть.Доступность <> ДоступностьКнопки Тогда - Элементы.ФормаЗаписатьИЗакрыть.Доступность = ДоступностьКнопки; - КонецЕсли; - - Если Элементы.ИзменитьОграничениеНаВходВПрограмму.Доступность <> ДоступностьКнопки Тогда - Элементы.ИзменитьОграничениеНаВходВПрограмму.Доступность = ДоступностьКнопки; - КонецЕсли; - - Если Элементы.СменитьПароль.Доступность <> ДоступностьКнопки Тогда - Элементы.СменитьПароль.Доступность = ДоступностьКнопки; - КонецЕсли; - - Элементы.РекомендуетсяПроверитьНастройкиДляВхода.Видимость = - УровеньДоступа.ИзменениеРазрешенияНаВход - И ТекущийОбъект.Подготовлен - И Не ПриЧтенииВходВПрограммуРазрешен; - - УстановитьДоступностьСвойств(ЭтотОбъект); + // Конец СтандартныеПодсистемы.КонтактнаяИнформация КонецПроцедуры @@ -310,6 +283,26 @@ КонецЕсли; КонецЕсли; + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + + Если ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля) + И ПользовательИБАдресЭлектроннойПочты <> ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] Тогда + + Если ПарольДляПодтвержденияИзмененияПочты = Неопределено Тогда + + Отказ = Истина; + + ДополнительныеПараметры = Новый Структура("ПараметрыЗаписи", ПараметрыЗаписи); + Оповещение = Новый ОписаниеОповещения("ПослеЗапросаПароляДляИзмененияПочты", ЭтотОбъект, ДополнительныеПараметры); + ОткрытьФорму("Справочник.Пользователи.Форма.ВводПароля",, ЭтотОбъект,,,, Оповещение, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + + Возврат; + + КонецЕсли; + + КонецЕсли; + КонецЕсли; + КонецПроцедуры &НаСервере @@ -327,6 +320,52 @@ Если ТребуетсяЗаписьПользователяИБ(ЭтотОбъект) Тогда + Если ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда + + Если ПользовательИБЗапрещеноИзменятьПароль Тогда + ПользовательИБЗапрещеноВосстанавливатьПароль = Истина; + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + + Если ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект) Тогда + + Если ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля) + И ПользовательИБАдресЭлектроннойПочты <> ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] Тогда + + Если ЗначениеЗаполнено(ТекущийОбъект.Ссылка) Тогда + Подготовлен = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийОбъект.Ссылка, "Подготовлен"); + Иначе + Подготовлен = УровеньДоступа.УправлениеСписком; + КонецЕсли; + + ИзменятьПочтуБезПодтвержденияПаролем = Пользователи.ЭтоПолноправныйПользователь() Или Подготовлен; + + Если Не ИзменятьПочтуБезПодтвержденияПаролем Тогда + + ПарольСовпадаетССохраненным = Ложь; + + Если ТипЗнч(ПарольДляПодтвержденияИзмененияПочты) = Тип("Строка") Тогда + УстановитьПривилегированныйРежим(Истина); + ПарольСовпадаетССохраненным = ПользователиСлужебный.СтарыйПарольСовпадаетССохраненным( + ПарольДляПодтвержденияИзмененияПочты, Объект.ИдентификаторПользователяИБ); + УстановитьПривилегированныйРежим(Ложь); + КонецЕсли; + + // проверка пароля + Если Не ПарольСовпадаетССохраненным Тогда + ПарольДляПодтвержденияИзмененияПочты = Неопределено; + ВызватьИсключение НСтр("ru = 'Пароль указан неверно'"); + КонецЕсли; + КонецЕсли; + + ПользовательИБАдресЭлектроннойПочты = ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля]; + + КонецЕсли; + КонецЕсли; + КонецЕсли; + КонецЕсли; + ОписаниеПользователяИБ = ОписаниеПользователяИБ(); Если ЗначениеЗаполнено(Объект.ИдентификаторПользователяИБ) Тогда @@ -350,11 +389,33 @@ МодульУправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект); КонецЕсли; + // СтандартныеПодсистемы.КонтактнаяИнформация + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации)); + МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); + МодульУправлениеКонтактнойИнформацией.ПередЗаписьюНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]); + КонецЕсли; + // Конец СтандартныеПодсистемы.КонтактнаяИнформация + КонецПроцедуры &НаСервере Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + // СтандартныеПодсистемы.КонтактнаяИнформация + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") + И Пользователи.ЭтоПолноправныйПользователь() Тогда + + ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации)); + + ОбъектАвторизацииОбъект = РеквизитФормыВЗначение(ИмяРеквизитаОбъектАвторизации); + Если Не ОбъектАвторизацииОбъект.Ссылка.Пустая() Тогда + ОбъектАвторизацииОбъект.Записать(); + ЗначениеВРеквизитФормы(ОбъектАвторизацииОбъект, ИмяРеквизитаОбъектАвторизации); + КонецЕсли; + КонецЕсли; + // Конец СтандартныеПодсистемы.КонтактнаяИнформация + УстановитьПривилегированныйРежим(Истина); ПользователиСлужебный.ЗаписатьСведенияОПользователе(ЭтотОбъект, ТекущийОбъект); @@ -490,6 +551,17 @@ МодульУправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты); КонецЕсли; + // СтандартныеПодсистемы.КонтактнаяИнформация + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); + Если МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(Объект.ОбъектАвторизации) Тогда + ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации)); + ОбъектАвторизацииОбъект = РеквизитФормыВЗначение(ИмяРеквизитаОбъектАвторизации); + МодульУправлениеКонтактнойИнформацией.ОбработкаПроверкиЗаполненияНаСервере(ЭтотОбъект, ОбъектАвторизацииОбъект, Отказ); + КонецЕсли; + КонецЕсли; + // Конец СтандартныеПодсистемы.КонтактнаяИнформация + КонецПроцедуры &НаСервере @@ -507,6 +579,7 @@ Процедура ОбъектАвторизацииПриИзменении(Элемент) ОбъектАвторизацииПриИзмененииНаКлиентеНаСервере(ЭтотОбъект, Объект); + ИзменитьРеквизитОбъектАвторизации(); КонецПроцедуры @@ -614,6 +687,7 @@ Если ПользовательИБЗапрещеноИзменятьПароль Тогда ПотребоватьСменуПароляПриВходе = Ложь; + ПользовательИБЗапрещеноВосстанавливатьПароль = Истина; КонецЕсли; УстановитьДоступностьСвойств(ЭтотОбъект); @@ -670,6 +744,93 @@ ОткрытьФорму("ОбщаяФорма.НастройкиВходаПользователей", ПараметрыФормы, ЭтотОбъект); КонецПроцедуры +// СтандартныеПодсистемы.КонтактнаяИнформация + +&НаКлиенте +Процедура Подключаемый_КонтактнаяИнформацияПриИзменении(Элемент) + МодульУправлениеКонтактнойИнформациейКлиент = + ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент"); + МодульУправлениеКонтактнойИнформациейКлиент.НачатьИзменение(ЭтотОбъект, Элемент); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_КонтактнаяИнформацияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + МодульУправлениеКонтактнойИнформациейКлиент = + ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент"); + МодульУправлениеКонтактнойИнформациейКлиент.НачатьВыбор(ЭтотОбъект, Элемент, , СтандартнаяОбработка); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_КонтактнаяИнформацияПриНажатии(Элемент, СтандартнаяОбработка) + МодульУправлениеКонтактнойИнформациейКлиент = + ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент"); + МодульУправлениеКонтактнойИнформациейКлиент.НачатьВыбор(ЭтотОбъект, Элемент, , СтандартнаяОбработка); +КонецПроцедуры + +// Параметры: +// Элемент - ПолеФормы +// СтандартнаяОбработка - Булево +// +&НаКлиенте +Процедура Подключаемый_КонтактнаяИнформацияОчистка(Элемент, СтандартнаяОбработка) + МодульУправлениеКонтактнойИнформациейКлиент = + ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент"); + МодульУправлениеКонтактнойИнформациейКлиент.НачатьОчистку(ЭтотОбъект, Элемент.Имя); +КонецПроцедуры + +// Параметры: +// Команда - КомандаФормы +// +&НаКлиенте +Процедура Подключаемый_КонтактнаяИнформацияВыполнитьКоманду(Команда) + МодульУправлениеКонтактнойИнформациейКлиент = + ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент"); + МодульУправлениеКонтактнойИнформациейКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда.Имя); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_КонтактнаяИнформацияАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка) + МодульУправлениеКонтактнойИнформациейКлиент = + ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент"); + МодульУправлениеКонтактнойИнформациейКлиент.АвтоПодборАдреса(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка); + +КонецПроцедуры + +// Параметры: +// Элемент - ПолеФормы +// ВыбранноеЗначение - Произвольный +// СтандартнаяОбработка -Булево +// +&НаКлиенте +Процедура Подключаемый_КонтактнаяИнформацияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + МодульУправлениеКонтактнойИнформациейКлиент = + ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент"); + МодульУправлениеКонтактнойИнформациейКлиент.ОбработкаВыбора(ЭтотОбъект, ВыбранноеЗначение, Элемент.Имя, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_КонтактнаяИнформацияОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + МодульУправлениеКонтактнойИнформациейКлиент = + ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент"); + МодульУправлениеКонтактнойИнформациейКлиент.НачатьОбработкуНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПродолжитьОбновлениеКонтактнойИнформации(Результат, ДополнительныеПараметры) Экспорт + ОбновитьКонтактнуюИнформацию(Результат); +КонецПроцедуры + +&НаСервере +Процедура ОбновитьКонтактнуюИнформацию(Результат) + МодульУправлениеКонтактнойИнформацией = + ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); + МодульУправлениеКонтактнойИнформацией.ОбновитьКонтактнуюИнформацию(ЭтотОбъект, Объект, Результат); +КонецПроцедуры + +// Конец СтандартныеПодсистемы.КонтактнаяИнформация + #КонецОбласти #Область ОбработчикиСобытийЭлементовТаблицыФормыРоли @@ -761,6 +922,200 @@ #Область СлужебныеПроцедурыИФункции +&НаСервере +Процедура СоздатьРеквизитОбъектАвторизации() + + ЗначениеОбъектаАвторизации = ОбъектАвторизации("ОбъектАвторизации"); + + Если ЗначениеОбъектаАвторизации = Неопределено Тогда + Возврат; + КонецЕсли; + + ТекущийТипОбъектАвторизации = ТипЗнч(ЗначениеОбъектаАвторизации); + + ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТекущийТипОбъектАвторизации); + + ОписаниеТипаНаФорме = Неопределено; + РеквизитыФормы = ПолучитьРеквизиты(); + Для каждого РеквизитФормы Из РеквизитыФормы Цикл + Если РеквизитФормы.Имя = ИмяРеквизитаОбъектАвторизации Тогда + ОписаниеТипаНаФорме = РеквизитФормы.ТипЗначения.Типы()[0]; + Прервать; + КонецЕсли; + КонецЦикла; + + Если ТекущийТипОбъектАвторизации <> ОписаниеТипаНаФорме Тогда + + ДобавляемыеРеквизиты = Новый Массив; + + МассивТипов = Новый Массив; + МассивТипов.Добавить(ТекущийТипОбъектАвторизации); + + ОписаниеТипа = Новый ОписаниеТипов(МассивТипов); + ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяРеквизитаОбъектАвторизации, ОписаниеТипа)); + ИзменитьРеквизиты(ДобавляемыеРеквизиты); + КонецЕсли; + + ЗначениеВРеквизитФормы(ЗначениеОбъектаАвторизации, ИмяРеквизитаОбъектАвторизации); + +КонецПроцедуры + +&НаСервере +Функция ОбъектАвторизации(ИмяРеквизитаОбъектАвторизации) + + Если ТипЗнч(Объект[ИмяРеквизитаОбъектАвторизации])= Тип("Строка") + Или Не ЗначениеЗаполнено(Объект[ИмяРеквизитаОбъектАвторизации]) Тогда + Возврат Неопределено; + КонецЕсли; + + ЗначениеОбъектаАвторизации = Объект[ИмяРеквизитаОбъектАвторизации].ПолучитьОбъект(); + + Возврат ЗначениеОбъектаАвторизации; + +КонецФункции + +&НаСервереБезКонтекста +Функция ИмяРеквизитаОбъектАвторизации(ТипОбъектАвторизации) + Префикс = Метаданные.НайтиПоТипу(ТипОбъектАвторизации).Имя; + Возврат "ОбъектАвторизацииВнешнегоПользователя" + Префикс; +КонецФункции + +&НаСервере +Процедура ИзменитьРеквизитОбъектАвторизации() + + // СтандартныеПодсистемы.КонтактнаяИнформация + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + СоздатьРеквизитОбъектАвторизации(); + МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); + + Если Не ЗначениеЗаполнено(Объект.ОбъектАвторизации) + Или Не МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(Объект.ОбъектАвторизации) Тогда + Возврат; + КонецЕсли; + + ИмяРеквизитаОбъектАвторизации = ИмяРеквизитаОбъектАвторизации(ТипЗнч(Объект.ОбъектАвторизации)); + + Если Элементы.ГруппаКонтактнаяИнформация.ПодчиненныеЭлементы.Количество() = 0 Тогда + + Если МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(Объект.ОбъектАвторизации) Тогда + МодульУправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]); + КонецЕсли; + + Иначе + + МодульУправлениеКонтактнойИнформацией.ПриЧтенииНаСервере(ЭтотОбъект, ЭтотОбъект[ИмяРеквизитаОбъектАвторизации]); + + КонецЕсли; + + ПарольДляПодтвержденияИзмененияПочты = Неопределено; + Если Пользователи.ЭтоПолноправныйПользователь() Тогда + + Если Не ПользователиСлужебный.ИнтерактивноЗапрашиватьВводПароля(УровеньДоступа, Объект) Тогда + ПарольДляПодтвержденияИзмененияПочты = ""; + КонецЕсли; + + ИмяРеквизитаСПочтойДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.ОпределитьЭлементСПочтойДляВосстановленияПароля( + ЭтотОбъект, + ПользовательИБАдресЭлектроннойПочты, + ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект), + Истина); + + Элементы.ГруппаКонтактнаяИнформация.Доступность = Истина; + + Иначе + + Элементы.ГруппаКонтактнаяИнформация.Доступность = Ложь; + + КонецЕсли; + + + КонецЕсли; + // Конец СтандартныеПодсистемы.КонтактнаяИнформация + +КонецПроцедуры + +&НаСервере +Процедура ОбработатьИнтерфейсРолейУстановитьТолькоПросмотрРолей(ТекущийОбъект = Неопределено) + + Если ТекущийОбъект = Неопределено Тогда + ТекущийОбъект = Объект; + КонецЕсли; + + ОбработатьИнтерфейсРолей("УстановитьТолькоПросмотрРолей", + ЗапретРедактированияРолей + Или ДействияВФорме.Роли <> "Редактирование" + Или Не УровеньДоступа.НастройкиДляВхода + Или Не ТекущийОбъект.УстановитьРолиНепосредственно); + +КонецПроцедуры + +&НаСервере +Процедура НастроитьФорму(ТекущийОбъект, ПриСозданииНаСервере = Ложь, ПараметрыЗаписи = Неопределено) + + СоздатьРеквизитОбъектАвторизации(); + + Если НачальноеОписаниеПользователяИБ = Неопределено Тогда + Возврат; // Вызов ПриЧтенииНаСервере до вызова ПриСозданииНаСервере. + КонецЕсли; + + Если Не ПриСозданииНаСервере Тогда + ПрочитатьПользователяИБ(); + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + ПользователиСлужебный.ПрочитатьСведенияОПользователе(ЭтотОбъект); + УстановитьПривилегированныйРежим(Ложь); + + УровеньДоступа = ПользователиСлужебный.УровеньДоступаКСвойствамПользователя(ТекущийОбъект); + + ОпределитьДействияВФорме(); + + ОпределитьНесоответствияПользователяСПользователемИБ(ПараметрыЗаписи); + + ОбработатьИнтерфейсРолейУстановитьТолькоПросмотрРолей(ТекущийОбъект); + + // Установка постоянной доступности свойств. + Элементы.СвойстваПользователяИБ.Видимость = + ЗначениеЗаполнено(ДействияВФорме.СвойстваПользователяИБ); + + Элементы.ОтображениеРолей.Видимость = + ЗначениеЗаполнено(ДействияВФорме.Роли); + + Элементы.УстановитьРолиНепосредственно.Видимость = + ЗначениеЗаполнено(ДействияВФорме.Роли) И НЕ ПользователиСлужебный.ЗапретРедактированияРолей(); + + ОбновитьОтображаемыйТипПользователя(); + + ТолькоПросмотр = ТолькоПросмотр + ИЛИ ДействияВФорме.Роли <> "Редактирование" + И ДействияВФорме.СвойстваЭлемента <> "Редактирование" + И ДействияВФорме.СвойстваПользователяИБ <> "Редактирование"; + + + ДоступностьКнопки = Не ТолькоПросмотр И ПравоДоступа("Редактирование", + Метаданные.Справочники.ВнешниеПользователи); + + Если Элементы.ФормаЗаписатьИЗакрыть.Доступность <> ДоступностьКнопки Тогда + Элементы.ФормаЗаписатьИЗакрыть.Доступность = ДоступностьКнопки; + КонецЕсли; + + Если Элементы.ИзменитьОграничениеНаВходВПрограмму.Доступность <> ДоступностьКнопки Тогда + Элементы.ИзменитьОграничениеНаВходВПрограмму.Доступность = ДоступностьКнопки; + КонецЕсли; + + Если Элементы.СменитьПароль.Доступность <> ДоступностьКнопки Тогда + Элементы.СменитьПароль.Доступность = ДоступностьКнопки; + КонецЕсли; + + Элементы.РекомендуетсяПроверитьНастройкиДляВхода.Видимость = + УровеньДоступа.ИзменениеРазрешенияНаВход + И ТекущийОбъект.Подготовлен + И Не ПриЧтенииВходВПрограммуРазрешен; + + УстановитьДоступностьСвойств(ЭтотОбъект); + +КонецПроцедуры + &НаКлиентеНаСервереБезКонтекста Процедура ОбновитьИмяДляВхода(Форма, ПриИзмененииНаименования = Ложь) @@ -1072,6 +1427,17 @@ КонецПроцедуры +// Продолжение обработчика события ПередЗаписью. +&НаКлиенте +Процедура ПослеЗапросаПароляДляИзмененияПочты(Результат, ДополнительныеПараметры) Экспорт + + Если ТипЗнч(Результат) = Тип("Строка") Тогда + ПарольДляПодтвержденияИзмененияПочты = Результат; + Записать(ДополнительныеПараметры.ПараметрыЗаписи); + КонецЕсли; + +КонецПроцедуры + //////////////////////////////////////////////////////////////////////////////// // Обработка пользователя ИБ @@ -1192,7 +1558,7 @@ |ОсновнойИнтерфейс, |РежимЗапуска" + ?(Не Элементы.ПользовательИБЯзык.Видимость, "", ", |Язык") + ?(ПользователиСлужебный.ЗапретРедактированияРолей(), "", ", - |Роли")); + |Роли") + ПользователиСлужебный.ПоляВосстановленияПаролей()); КонецЕсли; Если ПрочитанныеСвойства = Неопределено Тогда @@ -1393,8 +1759,11 @@ Элементы.ПользовательИБАутентификацияOpenID.ТолькоПросмотр = Не УровеньДоступа.НастройкиДляВхода; Элементы.УстановитьРолиНепосредственно.ТолькоПросмотр = Не УровеньДоступа.НастройкиДляВхода; - Элементы.ПотребоватьСменуПароляПриВходе.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком; - Элементы.ПользовательИБЗапрещеноИзменятьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком; + Элементы.ПотребоватьСменуПароляПриВходе.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком; + Элементы.ПользовательИБЗапрещеноИзменятьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком; + Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком; + + Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.Доступность = Не Форма.ПользовательИБЗапрещеноИзменятьПароль; Элементы.СменитьПароль.Доступность = ( УровеньДоступа.НастройкиДляВхода @@ -1480,4 +1849,4 @@ КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl b/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl index 684fdb9e0..6d1d36ca5 100644 --- a/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВнешниеПользователи/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт @@ -37,7 +37,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.ТекстДляВнешнихПользователей = @@ -104,4 +106,66 @@ #КонецОбласти +#Область СлужебныеПроцедурыИФункции + +Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт + + Если ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + СписокВнешнихПользователей = ПользователиСлужебный.ВнешниеПользователиДляВключенияВосстановленияПароля(); + + Если СписокВнешнихПользователей.Количество() > 0 Тогда + ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, СписокВнешнихПользователей); + КонецЕсли; + +КонецПроцедуры + +Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + Параметры.ОбработкаЗавершена = Истина; + Возврат; + КонецЕсли; + + ВнешнийПользовательСсылка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.ВнешниеПользователи"); + + ПроблемныхОбъектов = 0; + ОбъектовОбработано = 0; + + Пока ВнешнийПользовательСсылка.Следующий() Цикл + + ОбъектАвторизации = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВнешнийПользовательСсылка.Ссылка, "ОбъектАвторизации"); + Результат = ПользователиСлужебный.ОбновитьПочтуДляВосстановленияПароля(ВнешнийПользовательСсылка.Ссылка, ОбъектАвторизации); + + Если Результат = "Ошибка" Тогда + ПроблемныхОбъектов = ПроблемныхОбъектов + 1; + Иначе + ОбъектовОбработано = ОбъектовОбработано + 1; + ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(ВнешнийПользовательСсылка.Ссылка); + КонецЕсли; + + КонецЦикла; + + Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ВнешниеПользователи"); + + Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Процедуре ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторых внешних пользователей (пропущены): %1'"), + ПроблемныхОбъектов); + ВызватьИсключение ТекстСообщения; + Иначе + ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, + Метаданные.Справочники.ВнешниеПользователи,, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию обработала очередную порцию внешних пользователей: %1'"), + ОбъектовОбработано)); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + + #КонецЕсли diff --git a/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ManagerModule.bsl b/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ManagerModule.bsl index cf29d1f39..3be988703 100644 --- a/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВопросыШаблонаАнкеты/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт diff --git a/SSL/src/Catalogs/ВстречаПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ВстречаПрисоединенныеФайлы/ManagerModule.bsl index ec189d0e3..595f7cf7b 100644 --- a/SSL/src/Catalogs/ВстречаПрисоединенныеФайлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВстречаПрисоединенныеФайлы/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -30,7 +30,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl index 7e7761afd..994b663cc 100644 --- a/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl +++ b/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт @@ -34,7 +34,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.ТекстДляВнешнихПользователей = @@ -50,4 +52,43 @@ #КонецОбласти +#Область СлужебныеПроцедурыИФункции + +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов +// +// Параметры: +// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки +// +Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт + + Настройки.ПриНачальномЗаполненииЭлемента = Ложь; + +КонецПроцедуры + +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов +// +// Параметры: +// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков +// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы +// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти +// +Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт + + Элемент = Элементы.Добавить(); + Элемент.ИмяПредопределенныхДанных = "ВсеВнешниеПользователи"; + Элемент.Наименование = НСтр("ru = 'Все внешние пользователи'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ПустыеСсылки = ПользователиСлужебныйПовтИсп.ПустыеСсылкиТиповОбъектовАвторизации(); + Для Каждого ПустаяСсылка Из ПустыеСсылки Цикл + ТаблицаНазначение = ТабличныеЧасти.Назначение; // ТаблицаЗначений + НоваяСтрока = ТаблицаНазначение.Добавить(); + НоваяСтрока.ТипПользователей = ПустаяСсылка; + КонецЦикла; + Элемент.Назначение = ТабличныеЧасти.Назначение; + +КонецПроцедуры + +#КонецОбласти + + #КонецЕсли diff --git a/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl index 7b04475eb..f81aa3eac 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт @@ -37,7 +37,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = @@ -53,7 +55,30 @@ // ТехнологияСервиса.ВыгрузкаЗагрузкаДанных -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. +// Подключается в ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. +// +// Параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера +// МенеджерВыгрузкиОбъекта - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерВыгрузкиДанныхИнформационнойБазы +// Сериализатор - СериализаторXDTO +// Объект - КонстантаМенеджерЗначения +// - СправочникОбъект +// - ДокументОбъект +// - БизнесПроцессОбъект +// - ЗадачаОбъект +// - ПланСчетовОбъект +// - ПланОбменаОбъект +// - ПланВидовХарактеристикОбъект +// - ПланВидовРасчетаОбъект +// - РегистрСведенийНаборЗаписей +// - РегистрНакопленияНаборЗаписей +// - РегистрБухгалтерииНаборЗаписей +// - РегистрРасчетаНаборЗаписей +// - ПоследовательностьНаборЗаписей +// - ПерерасчетНаборЗаписей +// Артефакты - Массив из ОбъектXDTO +// Отказ - Булево +// Процедура ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ) Экспорт УправлениеДоступомСлужебный.ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ); @@ -818,6 +843,37 @@ КонецПроцедуры +//////////////////////////////////////////////////////////////////////////////// +// Начальное заполнение + +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов +// +// Параметры: +// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки +// +Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт + + Настройки.ПриНачальномЗаполненииЭлемента = Ложь; + +КонецПроцедуры + +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов +// +// Параметры: +// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков +// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы +// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти +// +Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт + + Элемент = Элементы.Добавить(); + Элемент.ИмяПредопределенныхДанных = "Администраторы"; + Элемент.Наименование = НСтр("ru = 'Администраторы'", ОбщегоНазначения.КодОсновногоЯзыка()); + Элемент.Профиль = Справочники.ПрофилиГруппДоступа.Администратор; + +КонецПроцедуры + + //////////////////////////////////////////////////////////////////////////////// // Обновление информационной базы. diff --git a/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ManagerModule.bsl index 363a488fa..944d95552 100644 --- a/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ManagerModule.bsl +++ b/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт diff --git a/SSL/src/Catalogs/ГруппыПользователей/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыПользователей/ManagerModule.bsl index e69de29bb..95407273d 100644 --- a/SSL/src/Catalogs/ГруппыПользователей/ManagerModule.bsl +++ b/SSL/src/Catalogs/ГруппыПользователей/ManagerModule.bsl @@ -0,0 +1,42 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныеПроцедурыИФункции + +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов +// +// Параметры: +// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки +// +Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт + + Настройки.ПриНачальномЗаполненииЭлемента = Ложь; + +КонецПроцедуры + +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов +// +// Параметры: +// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков +// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы +// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти +// +Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт + + Элемент = Элементы.Добавить(); + Элемент.ИмяПредопределенныхДанных = "ВсеПользователи"; + Элемент.Наименование = НСтр("ru = 'Все пользователи'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецПроцедуры + +#КонецОбласти + + +#КонецЕсли diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Module.bsl index 5b7ec54fb..1461780ad 100644 --- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Module.bsl @@ -904,8 +904,8 @@ КонецПроцедуры // Параметры: -// Ответ - КодВозвратаДиалога -// ДополнительныеПараметры - Структура +// Ответ - КодВозвратаДиалога +// ДополнительныеПараметры - Структура // &НаКлиенте Процедура ВариантыДополнительногоОтчетаПередУдалениемЗавершение(Ответ, ДополнительныеПараметры) Экспорт diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ManagerModule.bsl b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ManagerModule.bsl index d7d199fe3..83badec4b 100644 --- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ManagerModule.bsl +++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -36,7 +36,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Catalogs/ЗакладкиВзаимодействий/ManagerModule.bsl b/SSL/src/Catalogs/ЗакладкиВзаимодействий/ManagerModule.bsl index a7705d0b2..5d753878d 100644 --- a/SSL/src/Catalogs/ЗакладкиВзаимодействий/ManagerModule.bsl +++ b/SSL/src/Catalogs/ЗакладкиВзаимодействий/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт diff --git a/SSL/src/Catalogs/Заметки/ManagerModule.bsl b/SSL/src/Catalogs/Заметки/ManagerModule.bsl index 4b6443cd6..b162462ed 100644 --- a/SSL/src/Catalogs/Заметки/ManagerModule.bsl +++ b/SSL/src/Catalogs/Заметки/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -34,7 +34,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ManagerModule.bsl index ec189d0e3..595f7cf7b 100644 --- a/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -30,7 +30,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Module.bsl index f8e4c6df8..a9a44b7d0 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Module.bsl @@ -23,13 +23,21 @@ УстановитьЗаголовок(); - МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + КонецЕсли; КонецПроцедуры &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) - МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + КонецЕсли; + КонецПроцедуры &НаСервере @@ -43,7 +51,12 @@ // Конец СтандартныеПодсистемы.УправлениеДоступом УстановитьЗаголовок(); - МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; + КонецПроцедуры &НаСервере @@ -55,7 +68,11 @@ КонецЕсли; // Конец СтандартныеПодсистемы.УправлениеДоступом - МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -64,7 +81,12 @@ &НаКлиенте Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка) - МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент"); + МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + КонецЕсли; + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl index 2ebc4596d..f185db816 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl @@ -38,7 +38,10 @@ УстановитьЗаголовок(); - МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + КонецЕсли; КонецПроцедуры @@ -60,7 +63,12 @@ &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) - МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + КонецЕсли; + КонецПроцедуры &НаСервере @@ -74,7 +82,11 @@ // Конец СтандартныеПодсистемы.УправлениеДоступом УстановитьЗаголовок(); - МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; КонецПроцедуры @@ -88,6 +100,7 @@ &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) + // СтандартныеПодсистемы.УправлениеДоступом Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); @@ -95,7 +108,11 @@ КонецЕсли; // Конец СтандартныеПодсистемы.УправлениеДоступом - МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -104,7 +121,12 @@ &НаКлиенте Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка) - МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент"); + МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + КонецЕсли; + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl index 9369a691d..59893edd0 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -34,7 +34,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = @@ -56,7 +58,17 @@ #Область ОбработчикиСобытий Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка) - МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#Иначе + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#КонецЕсли КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ObjectModule.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ObjectModule.bsl index ae1aa847b..bc0439833 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ObjectModule.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ObjectModule.bsl @@ -42,7 +42,12 @@ #Область СлужебныйПрограммныйИнтерфейс Процедура ПриЧтенииПредставленийНаСервере() Экспорт - МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); + КонецЕсли; + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl index c4b718e43..90928f100 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl @@ -38,7 +38,10 @@ УстановитьЗаголовок(); - МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + КонецЕсли; КонецПроцедуры @@ -60,7 +63,12 @@ &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) - МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + КонецЕсли; + КонецПроцедуры &НаСервере @@ -74,7 +82,11 @@ // Конец СтандартныеПодсистемы.УправлениеДоступом УстановитьЗаголовок(); - МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; КонецПроцедуры @@ -88,6 +100,7 @@ &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) + // СтандартныеПодсистемы.УправлениеДоступом Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); @@ -95,7 +108,11 @@ КонецЕсли; // Конец СтандартныеПодсистемы.УправлениеДоступом - МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -104,7 +121,12 @@ &НаКлиенте Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка) - МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент"); + МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + КонецЕсли; + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl index 012483383..4c811dfd0 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -34,7 +34,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = @@ -56,7 +58,17 @@ #Область ОбработчикиСобытий Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка) - МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#Иначе + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#КонецЕсли КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ObjectModule.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ObjectModule.bsl index ae1aa847b..bc0439833 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ObjectModule.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ObjectModule.bsl @@ -42,7 +42,12 @@ #Область СлужебныйПрограммныйИнтерфейс Процедура ПриЧтенииПредставленийНаСервере() Экспорт - МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); + КонецЕсли; + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl index f2aa4a103..d21b871fc 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -35,7 +35,7 @@ // Возвращает реквизиты справочника, которые образуют естественный ключ для элементов справочника. // // Возвращаемое значение: -// Массив Из Строка - массив имен реквизитов, образующих естественный ключ. +// Массив из Строка - массив имен реквизитов, образующих естественный ключ. // Функция ПоляЕстественногоКлюча() Экспорт diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ManagerModule.bsl b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ManagerModule.bsl index 3ae5bb329..1eadd4cd0 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ManagerModule.bsl +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -33,7 +33,7 @@ // Возвращает реквизиты справочника, которые образуют естественный ключ для элементов справочника. // // Возвращаемое значение: -// Массив Из Строка - массив имен реквизитов, образующих естественный ключ. +// Массив из Строка - массив имен реквизитов, образующих естественный ключ. // Функция ПоляЕстественногоКлюча() Экспорт diff --git a/SSL/src/Catalogs/КлассификаторБанков/ManagerModule.bsl b/SSL/src/Catalogs/КлассификаторБанков/ManagerModule.bsl index b2d9209ea..7a58c3706 100644 --- a/SSL/src/Catalogs/КлассификаторБанков/ManagerModule.bsl +++ b/SSL/src/Catalogs/КлассификаторБанков/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl index 2a8b91a62..20e53ae82 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl @@ -134,8 +134,6 @@ &НаСервереБезКонтекста Процедура НаборыСвойствПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки) - ЭтоОсновнойЯзык = (ТекущийЯзык() = Метаданные.ОсновнойЯзык); - Для Каждого СтрокаДинамическогоСписка Из Строки Цикл Данные = СтрокаДинамическогоСписка.Значение.Данные; Если Данные.ЭтоГруппа Тогда diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ManagerModule.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ManagerModule.bsl index 1b5f0d2af..dc472f217 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ManagerModule.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -53,7 +53,17 @@ КонецЕсли; Если ЗначениеЗаполнено(Данные.Родитель) Тогда - МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#Иначе + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#КонецЕсли Возврат; КонецЕсли; @@ -300,7 +310,7 @@ // * Используется - Булево // * Ссылка - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений // * Родитель - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений -// * ДочерниеНаборы - Соответствие: +// * ДочерниеНаборы - Соответствие из КлючИЗначение: // ** Ключ - Строка // ** Значение - см. СвойстваНабора // * Наименование - Строка diff --git a/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ManagerModule.bsl b/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ManagerModule.bsl index 7fb0b0a9c..3e28cfbad 100644 --- a/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ManagerModule.bsl +++ b/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -39,7 +39,7 @@ // // Параметры: // Идентификатор - Строка - идентификатор объекта внешнего компонента. -// Версия - Строка - (необязательный) версия компоненты. +// Версия - Строка - версия компоненты. // // Возвращаемое значение: // СправочникСсылка.ВнешниеКомпоненты - ссылка на контейнер внешней компоненты в информационной базе. diff --git a/SSL/src/Catalogs/ПапкиФайлов/ManagerModule.bsl b/SSL/src/Catalogs/ПапкиФайлов/ManagerModule.bsl index 1cd9b7f0c..a001f3de4 100644 --- a/SSL/src/Catalogs/ПапкиФайлов/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПапкиФайлов/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -35,7 +35,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = @@ -75,27 +77,23 @@ #Область СлужебныйПрограммныйИнтерфейс -// Начальное заполнение - +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов +// +// Параметры: +// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки +// Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт Настройки.ПриНачальномЗаполненииЭлемента = Ложь; КонецПроцедуры -// Вызывается при начальном заполнении справочника ПапкиФайлов. -// +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов +// // Параметры: -// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций. -// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов -// справочника ПапкиФайлов. -// ТабличныеЧасти - Структура - описание табличных частей объекта, где: -// * Ключ - Строка - имя табличной части; -// * Значение - ТаблицаЗначений - табличная часть в виде таблицы значений, структуру которой -// необходимо скопировать перед заполнением. Например: -// Элемент.Ключи = ТабличныеЧасти.Ключи.Скопировать(); -// ЭлементТЧ = Элемент.Ключи.Добавить(); -// ЭлементТЧ.ИмяКлюча = "Первичный"; +// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков +// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы +// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти // Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт diff --git a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаВыбора/Module.bsl index fb8bffac9..1aa7c2862 100644 --- a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаВыбора/Module.bsl @@ -41,13 +41,10 @@ &НаСервере Процедура ОбработатьПереданныеПараметры() - - УчетнаяЗаписьУказана = Ложь; Если Параметры.Отбор.Свойство("Владелец") И ЗначениеЗаполнено(Параметры.Отбор.Владелец) Тогда - УчетнаяЗаписьУказана = Истина; Владелец = Параметры.Отбор.Владелец; Элементы.Владелец.Видимость = Ложь; diff --git a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ManagerModule.bsl b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ManagerModule.bsl index 326ce048a..44c39bb79 100644 --- a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт @@ -34,7 +34,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Catalogs/Пользователи/Forms/ВводПароля/Form.form b/SSL/src/Catalogs/Пользователи/Forms/ВводПароля/Form.form new file mode 100644 index 000000000..7fca219c1 --- /dev/null +++ b/SSL/src/Catalogs/Пользователи/Forms/ВводПароля/Form.form @@ -0,0 +1,197 @@ +<?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"> + <items xsi:type="form:Decoration"> + <name>ПояснениеПриВходе</name> + <id>10</id> + <title> + <key>ru</key> + <value>Для изменения электронной почты, используемой для восстановления пароля, необходимо ввести пароль</value> + + true + true + + true + + + ПояснениеПриВходеРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + ПояснениеПриВходеКонтекстноеМеню + 11 + true + + Label + true + + Left + 2 + + + + Пароль + 1 + + <key>ru</key> + <value>Пароль</value> + + true + true + + true + + + Пароль + + None + + ПарольРасширеннаяПодсказка + 3 + Label + true + true + + Left + + + + ПарольКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + ФормаОК + 8 + true + true + + true + + true + + ФормаОКРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + Form.Command.ОК + Auto + true + true + true + UserCmds + Auto + + + ФормаОтмена + 6 + true + true + + true + + + ФормаОтменаРасширеннаяПодсказка + 7 + Label + true + true + + Left + + + Form.StandardCommand.Cancel + Normal + Auto + true + true + UserCmds + Auto + + Right + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + true + auto + true + + Пароль + 1 + + String + + + + true + + + true + + + + ОК + + <key>ru</key> + <value>ОК</value> + + 1 + + ru + ОК + + + 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..6678cc38f --- /dev/null +++ b/SSL/src/Catalogs/Пользователи/Forms/ВводПароля/Module.bsl @@ -0,0 +1,27 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + Заголовок = НСтр("ru='Введите текущий пароль'"); + АвтоЗаголовок = Ложь; +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ОК(Команда) + Закрыть(Пароль); +КонецПроцедуры + +#КонецОбласти + diff --git a/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Form.form index 8d5e6077f..5fd60f950 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Form.form @@ -35,6 +35,90 @@ КоманднаяПанель 158 + + ПодменюСоздать + 299 + + СоздатьПользователя + 54 + + <key>ru</key> + <value>Создать</value> + + true + true + + true + + false + + СоздатьПользователяExtendedTooltip + 101 + Label + true + true + + Left + + + Form.Item.ПользователиСписок.StandardCommand.Create + Normal + PictureAndText + true + true + UserCmds + Auto + + + СоздатьГруппуПользователей + 55 + true + true + + true + + false + + СоздатьГруппуПользователейExtendedTooltip + 102 + Label + true + true + + Left + + + Form.Command.СоздатьГруппуПользователей + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Создать</value> + + + ПодменюСоздатьРасширеннаяПодсказка + 300 + Label + true + true + + Left + + + + Compact + + ЗавершитьИЗакрыть 95 @@ -131,60 +215,6 @@ UserCmds Auto - - СоздатьПользователя - 54 - true - true - - true - - false - - СоздатьПользователяExtendedTooltip - 101 - Label - true - true - - Left - - - Form.Item.ПользователиСписок.StandardCommand.Create - Normal - Auto - true - true - UserCmds - Auto - - - СоздатьГруппуПользователей - 55 - true - true - - true - - false - - СоздатьГруппуПользователейExtendedTooltip - 102 - Label - true - true - - Left - - - Form.Command.СоздатьГруппуПользователей - Normal - Auto - true - true - UserCmds - Auto - НазначитьГруппы 72 @@ -264,7 +294,7 @@ true true UserCmds - Auto + OnlyInContextMenu ФормаИзменить @@ -292,33 +322,6 @@ UserCmds Auto - - ФормаУстановитьПароль - 198 - true - true - - true - - - ФормаУстановитьПарольРасширеннаяПодсказка - 199 - Label - true - true - - Left - - - Form.Command.УстановитьПароль - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - ПользователиСтандартныеКоманды 210 @@ -345,17 +348,21 @@ Form - - СведенияОПользователях - 132 + + ПодменюСоздатьНаОсновании + 311 true true true + + <key>ru</key> + <value>Создать на основании</value> + - СведенияОПользователяхРасширеннаяПодсказка - 133 + ПодменюСоздатьНаОснованииРасширеннаяПодсказка + 312 Label true true @@ -363,26 +370,137 @@ Left - Form.Command.СведенияОПользователях - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu + Popup + + + StdPicture.InputOnBasis + + Picture + Normal + - - ПользователиИБ - 6 + + ПодменюОтчеты + 303 + + ПодменюОтчетыВажное + 305 + true + true + + true + + + <key>ru</key> + <value>Подменю отчеты важное</value> + + + ПодменюОтчетыВажноеРасширеннаяПодсказка + 306 + Label + true + true + + Left + + + + + + ПодменюОтчетыПерейти + 307 + true + true + + true + + + <key>ru</key> + <value>Подменю отчеты перейти</value> + + + ru + Подменю отчеты важное + + + ПодменюОтчетыПерейтиРасширеннаяПодсказка + 308 + Label + true + true + + Left + + + + + + ПодменюОтчетыСмТакже + 309 + + СведенияОПользователях + 132 + true + true + + true + + + СведенияОПользователяхРасширеннаяПодсказка + 133 + Label + true + true + + Left + + + Form.Command.СведенияОПользователях + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Подменю отчеты см также</value> + + + ru + Подменю отчеты важное + + + ПодменюОтчетыСмТакжеРасширеннаяПодсказка + 310 + Label + true + true + + Left + + + + true true true + + <key>ru</key> + <value>Отчеты</value> + - ПользователиИБExtendedTooltip - 106 + ПодменюОтчетыРасширеннаяПодсказка + 304 Label true true @@ -390,51 +508,136 @@ Left - Catalog.Пользователи.Command.ПользователиИнформационнойБазы - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu + Popup + + + CommonPicture.Отчеты + + PictureAndText + Normal + - - ФормаИзменитьВыделенные - 196 - true - true - - true - - - ФормаИзменитьВыделенныеРасширеннаяПодсказка - 197 - Label - true - true - - Left - - - Form.Command.ИзменитьВыделенные - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействий + + ПодменюДополнительно 297 + + ФормаИзменитьВыделенные + 196 + true + true + + true + + + ФормаИзменитьВыделенныеРасширеннаяПодсказка + 197 + Label + true + true + + Left + + + Form.Command.ИзменитьВыделенные + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ПользователиИБ + 6 + true + true + + true + + + ПользователиИБExtendedTooltip + 106 + Label + true + true + + Left + + + Catalog.Пользователи.Command.ПользователиИнформационнойБазы + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ФормаУстановитьПароль + 198 + true + true + + true + + + ФормаУстановитьПарольРасширеннаяПодсказка + 199 + Label + true + true + + Left + + + Form.Command.УстановитьПароль + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействий + 301 + true + + true + + + ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействийРасширеннаяПодсказка + 302 + Label + true + true + + Left + + + Form.Command.ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействий + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + true true true + + <key>ru</key> + <value>Дополнительно</value> + - ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействийРасширеннаяПодсказка + ПодменюДополнительноРасширеннаяПодсказка 298 Label true @@ -443,13 +646,11 @@ Left - Form.Command.ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействий - Normal - Auto - true - true - UserCmds - Auto + Popup + + Auto + Normal + true true @@ -3263,7 +3464,9 @@ BeforeLoadDataFromSettingsAtServer ПередЗагрузкеДанныхИзНастроекНаСервере + Close Create + Delete DontBlock Use true diff --git a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Form.form index 80e4f4eb0..4a4e52649 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Form.form @@ -1395,6 +1395,40 @@ true + + ПользовательИБЗапрещеноВосстанавливатьПароль + 366 + true + true + + true + + + ПользовательИБЗапрещеноВосстанавливатьПароль + + Right + + ПользовательИБЗапрещеноВосстанавливатьПарольРасширеннаяПодсказка + 368 + Label + true + true + + Left + + + + ПользовательИБЗапрещеноВосстанавливатьПарольКонтекстноеМеню + 367 + true + + CheckBoxField + Enter + true + Left + true + + ПользовательИБПоказыватьВСпискеВыбора 25 @@ -2668,6 +2702,117 @@ Auto InAdditionalSubmenu + + ПодменюОтчеты + 358 + + ПодменюОтчетыВажное + 360 + true + true + + true + + + <key>ru</key> + <value>Подменю отчеты важное</value> + + + ПодменюОтчетыВажноеРасширеннаяПодсказка + 361 + Label + true + true + + Left + + + + + + ПодменюОтчетыПерейти + 362 + true + true + + true + + + <key>ru</key> + <value>Подменю отчеты перейти</value> + + + ru + Подменю отчеты важное + + + ПодменюОтчетыПерейтиРасширеннаяПодсказка + 363 + Label + true + true + + Left + + + + + + ПодменюОтчетыСмТакже + 364 + true + true + + true + + + <key>ru</key> + <value>Подменю отчеты см также</value> + + + ru + Подменю отчеты важное + + + ПодменюОтчетыСмТакжеРасширеннаяПодсказка + 365 + Label + true + true + + Left + + + + + true + true + + true + + + <key>ru</key> + <value>Отчеты</value> + + + ПодменюОтчетыРасширеннаяПодсказка + 359 + Label + true + true + + Left + + + Popup + + + CommonPicture.Отчеты + + PictureAndText + Normal + + Left @@ -3465,6 +3610,67 @@ true + + ПользовательИБАдресЭлектроннойПочты + 34 + + String + + 256 + + + + true + + + true + + FunctionalOption.ИспользоватьВнешнихПользователей + true + + + ПарольДляПодтвержденияИзмененияПочты + 45 + + + true + + + true + + + + ИмяРеквизитаСПочтойДляВосстановленияПароля + 46 + + String + + + + true + + + true + + + + ПользовательИБЗапрещеноВосстанавливатьПароль + + <key>ru</key> + <value>Пользователю запрещено восстанавливать пароль</value> + + 47 + + Boolean + + + true + + + true + + true + ПоказатьТолькоВыбранныеРоли diff --git a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl index b1ab06b30..748846008 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl @@ -53,6 +53,7 @@ Элементы.ПользовательИБАутентификацияСтандартная.Видимость = Ложь; Элементы.ПотребоватьСменуПароляПриВходе.Видимость = Ложь; Элементы.ПользовательИБЗапрещеноИзменятьПароль.Видимость = Ложь; + Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.Видимость = Ложь; Элементы.СвойстваАутентификацииОС.Видимость = Ложь; Элементы.ПользовательИБРежимЗапуска.Видимость = Ложь; КонецЕсли; @@ -107,6 +108,8 @@ ВходВПрограммуРазрешен = Ложь; ВходВПрограммуРазрешенЗначениеПрямогоИзменения = Ложь; КонецЕсли; + + ПользовательИБАдресЭлектроннойПочты = ""; Иначе // Добавление элемента. @@ -138,9 +141,28 @@ НачальноеОписаниеПользователяИБ = НачальноеОписаниеПользователяИБ(); ТребуетсяСинхронизацияССервисом = Объект.Ссылка.Пустая(); + ПарольДляПодтвержденияИзмененияПочты = Неопределено; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); - МодульУправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, Объект, "КонтактнаяИнформация"); + ДополнительныеПараметры = МодульУправлениеКонтактнойИнформацией.ПараметрыКонтактнойИнформации(); + ДополнительныеПараметры.ИмяЭлементаДляРазмещения = "КонтактнаяИнформация"; + + МодульУправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, Объект, ДополнительныеПараметры); + + Если ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда + + Если Не ПользователиСлужебный.ИнтерактивноЗапрашиватьВводПароля(УровеньДоступа, Объект) Тогда + ПарольДляПодтвержденияИзмененияПочты = ""; + КонецЕсли; + + ИмяРеквизитаСПочтойДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.ОпределитьЭлементСПочтойДляВосстановленияПароля( + ЭтотОбъект, + ПользовательИБАдресЭлектроннойПочты, + ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект)); + + КонецЕсли; + ПереопределитьРедактированиеКонтактнойИнформацииВСервисе(); КонецЕсли; @@ -193,6 +215,10 @@ АдресФотографии = ПоместитьВоВременноеХранилище(БиблиотекаКартинок.ПользовательБезФотографии, УникальныйИдентификатор); КонецЕсли; + Если Не ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда + Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.Видимость = Ложь; + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -246,6 +272,14 @@ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); МодульУправлениеКонтактнойИнформацией.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект, "КонтактнаяИнформация"); + + Если ТипЗнч(УровеньДоступа) = Тип("Структура") И ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда + ИмяРеквизитаСПочтойДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.ОпределитьЭлементСПочтойДляВосстановленияПароля( + ЭтотОбъект, + ПользовательИБАдресЭлектроннойПочты, + ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, ТекущийОбъект)); + КонецЕсли; + КонецЕсли; НастроитьФорму(ТекущийОбъект); @@ -276,6 +310,26 @@ Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) ОчиститьСообщения(); + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + + Если ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля) + И ПользовательИБАдресЭлектроннойПочты <> ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] Тогда + + Если ПарольДляПодтвержденияИзмененияПочты = Неопределено Тогда + + Отказ = Истина; + + ДополнительныеПараметры = Новый Структура("ПараметрыЗаписи", ПараметрыЗаписи); + Оповещение = Новый ОписаниеОповещения("ПослеЗапросаПароляДляИзмененияПочты", ЭтотОбъект, ДополнительныеПараметры); + ОткрытьФорму("Справочник.Пользователи.Форма.ВводПароля",, ЭтотОбъект,,,, Оповещение, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + Возврат; + + КонецЕсли; + + КонецЕсли; + КонецЕсли; + ЗаголовокВопросов = НСтр("ru = 'Запись пользователя информационной базы'"); // Копирование прав пользователя. @@ -347,6 +401,53 @@ Если ТребуетсяЗаписьПользователяИБ(ЭтотОбъект) Тогда + Если ПользователиСлужебный.ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Тогда + + Если ПользовательИБЗапрещеноИзменятьПароль Тогда + ПользовательИБЗапрещеноВосстанавливатьПароль = Истина; + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + + Если ПользователиСлужебный.ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект) Тогда + + Если ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля) + И ПользовательИБАдресЭлектроннойПочты <> ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] Тогда + + Если ЗначениеЗаполнено(ТекущийОбъект.Ссылка) Тогда + Подготовлен = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийОбъект.Ссылка, "Подготовлен"); + Иначе + Подготовлен = УровеньДоступа.УправлениеСписком; + КонецЕсли; + + ИзменятьПочтуБезПодтвержденияПаролем = Пользователи.ЭтоПолноправныйПользователь() Или Подготовлен; + + Если Не ИзменятьПочтуБезПодтвержденияПаролем Тогда + + ПарольСовпадаетССохраненным = Ложь; + + Если ТипЗнч(ПарольДляПодтвержденияИзмененияПочты) = Тип("Строка") Тогда + УстановитьПривилегированныйРежим(Истина); + ПарольСовпадаетССохраненным = ПользователиСлужебный.СтарыйПарольСовпадаетССохраненным( + ПарольДляПодтвержденияИзмененияПочты, Объект.ИдентификаторПользователяИБ); + УстановитьПривилегированныйРежим(Ложь); + КонецЕсли; + + // проверка пароля + Если Не ПарольСовпадаетССохраненным Тогда + ПарольДляПодтвержденияИзмененияПочты = Неопределено; + ВызватьИсключение НСтр("ru = 'Пароль указан неверно'"); + КонецЕсли; + + КонецЕсли; + + ПользовательИБАдресЭлектроннойПочты = ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля]; + + КонецЕсли; + КонецЕсли; + КонецЕсли; + КонецЕсли; + ОписаниеПользователяИБ = ОписаниеПользователяИБ(); Если ЗначениеЗаполнено(Объект.ИдентификаторПользователяИБ) Тогда @@ -470,6 +571,8 @@ Возврат; КонецЕсли; + ПарольДляПодтвержденияИзмененияПочты = Неопределено; + ПослеЗаписиЗавершение(Неопределено, ПараметрыЗаписи); КонецПроцедуры @@ -480,7 +583,14 @@ Если ТребуетсяЗаписьПользователяИБ(ЭтотОбъект) Тогда ОписаниеПользователяИБ = ОписаниеПользователяИБ(); ОписаниеПользователяИБ.Вставить("ИдентификаторПользователяИБ", Объект.ИдентификаторПользователяИБ); + + Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() + И ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля) Тогда + ОписаниеПользователяИБ.АдресЭлектроннойПочты = ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля]; + КонецЕсли; + ПользователиСлужебный.ПроверитьОписаниеПользователяИБ(ОписаниеПользователяИБ, Отказ, Ложь); + КонецЕсли; Если ВходВПрограммуРазрешен @@ -680,7 +790,8 @@ Процедура ПользовательИБЗапрещеноИзменятьПарольПриИзменении(Элемент) Если ПользовательИБЗапрещеноИзменятьПароль Тогда - ПотребоватьСменуПароляПриВходе = Ложь; + ПотребоватьСменуПароляПриВходе = Ложь; + ПользовательИБЗапрещеноВосстанавливатьПароль = Истина; КонецЕсли; УстановитьДоступностьСвойств(ЭтотОбъект); @@ -1274,10 +1385,11 @@ Элементы.ПользовательИБАутентификацияОС.ТолькоПросмотр = Не УровеньДоступа.НастройкиДляВхода; Элементы.ПользовательИБПользовательОС.ТолькоПросмотр = Не УровеньДоступа.НастройкиДляВхода; - Элементы.ПользовательИБПоказыватьВСпискеВыбора.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком; - Элементы.ПотребоватьСменуПароляПриВходе.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком; - Элементы.ПользовательИБЗапрещеноИзменятьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком; - Элементы.ПользовательИБРежимЗапуска.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком; + Элементы.ПользовательИБПоказыватьВСпискеВыбора.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком; + Элементы.ПотребоватьСменуПароляПриВходе.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком; + Элементы.ПользовательИБЗапрещеноИзменятьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком; + Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком; + Элементы.ПользовательИБРежимЗапуска.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком; Элементы.Комментарий.ТолькоПросмотр = Не (ДействияВФорме.СвойстваЭлемента = "Редактирование" И УровеньДоступа.УправлениеСписком); @@ -1331,6 +1443,17 @@ КонецПроцедуры +// Продолжение обработчика события ПередЗаписью. +&НаКлиенте +Процедура ПослеЗапросаПароляДляИзмененияПочты(Результат, ДополнительныеПараметры) Экспорт + + Если ТипЗнч(Результат) = Тип("Строка") Тогда + ПарольДляПодтвержденияИзмененияПочты = Результат; + Записать(ДополнительныеПараметры.ПараметрыЗаписи); + КонецЕсли; + +КонецПроцедуры + &НаКлиентеНаСервереБезКонтекста Процедура ОбновитьИмяДляВхода(Форма, ПриИзмененииНаименования = Ложь) @@ -1378,10 +1501,17 @@ И НЕ ПользовательИБАутентификацияСтандартная И НЕ ПользовательИБАутентификацияОС Тогда - ВходВПрограммуРазрешен = Ложь; + ВходВПрограммуРазрешен = Ложь; + ПользовательИБЗапрещеноВосстанавливатьПароль = Истина; ИначеЕсли Не ВходВПрограммуРазрешен Тогда ВходВПрограммуРазрешен = ВходВПрограммуРазрешенЗначениеПрямогоИзменения; + + Если ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля) + И ЗначениеЗаполнено(ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля]) Тогда + ПользовательИБЗапрещеноВосстанавливатьПароль = Ложь; + КонецЕсли; + КонецЕсли; УстановитьДоступностьСвойств(ЭтотОбъект); @@ -1564,17 +1694,25 @@ Результат = Новый Структура; Если УровеньДоступа.ИзменениеТекущего Тогда - Результат.Вставить("Пароль", ПользовательИБПароль); - Результат.Вставить("Язык", ПользовательИБЯзык); + Результат.Вставить("Пароль", ПользовательИБПароль); + Результат.Вставить("Язык", ПользовательИБЯзык); + Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда + Результат.Вставить("АдресЭлектроннойПочты", ПользовательИБАдресЭлектроннойПочты); + КонецЕсли; КонецЕсли; Если УровеньДоступа.УправлениеСписком Тогда - Результат.Вставить("ВходВПрограммуРазрешен", ВходВПрограммуРазрешен); - Результат.Вставить("ПоказыватьВСпискеВыбора", ПользовательИБПоказыватьВСпискеВыбора + Результат.Вставить("ВходВПрограммуРазрешен", ВходВПрограммуРазрешен); + Результат.Вставить("ПоказыватьВСпискеВыбора", ПользовательИБПоказыватьВСпискеВыбора И Не ПолучитьФункциональнуюОпцию("ИспользоватьВнешнихПользователей")); - Результат.Вставить("ЗапрещеноИзменятьПароль", ПользовательИБЗапрещеноИзменятьПароль); - Результат.Вставить("Язык", ПользовательИБЯзык); - Результат.Вставить("РежимЗапуска", ПользовательИБРежимЗапуска); + Результат.Вставить("ЗапрещеноИзменятьПароль", ПользовательИБЗапрещеноИзменятьПароль); + + Результат.Вставить("Язык", ПользовательИБЯзык); + Результат.Вставить("РежимЗапуска", ПользовательИБРежимЗапуска); + Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда + Результат.Вставить("ЗапрещеноВосстанавливатьПароль", ПользовательИБЗапрещеноВосстанавливатьПароль); + Результат.Вставить("АдресЭлектроннойПочты", ПользовательИБАдресЭлектроннойПочты); + КонецЕсли; Если ДействияВФорме.СвойстваЭлемента = "Редактирование" Тогда Результат.Вставить("ПолноеИмя", ПользовательИБПолноеИмя); @@ -1961,7 +2099,7 @@ |ОсновнойИнтерфейс, |РежимЗапуска" + ?(Не Элементы.ПользовательИБЯзык.Видимость, "", ", |Язык") + ?(ПользователиСлужебный.ЗапретРедактированияРолей(), "", ", - |Роли")); + |Роли") + ПользователиСлужебный.ПоляВосстановленияПаролей()); КонецЕсли; Если ПрочитанныеСвойства = Неопределено Тогда @@ -2028,6 +2166,28 @@ УточнениеСвойств.Вставить(0, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Полное имя ""%1""'"), ПользовательИБПолноеИмя)); КонецЕсли; + + // Проверка на соответствие почты + Если УровеньДоступа.ИзменениеТекущего Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + + МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); + + ВидEmailПользователя = МодульУправлениеКонтактнойИнформацией.ВидКонтактнойИнформацииПоИмени("EmailПользователя"); + + СтрокаОписания = МодульУправлениеКонтактнойИнформацией.СтрокаОписанияПочтыДляВосстановленияПароляИзДанныхФормы( + ЭтотОбъект, ВидEmailПользователя, ПользовательИБАдресЭлектроннойПочты); + + Если СтрокаОписания = Неопределено Тогда + ПоказатьКомандыУстраненияРазличий = + ПоказатьКомандыУстраненияРазличий + Или ДействияВФорме.СвойстваЭлемента = "Редактирование"; + + УточнениеСвойств.Вставить(0, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Почта для восстановления пароля ""%1""'"), + ПользовательИБАдресЭлектроннойПочты)); + КонецЕсли; + КонецЕсли; + КонецЕсли; Если УточнениеСвойств.Количество() > 0 Тогда СтрокаУточненияСвойств = ""; @@ -2111,6 +2271,8 @@ И ДействияВФорме.СвойстваЭлемента = "Редактирование" Тогда Объект.Наименование = ПользовательИБПолноеИмя; + ЗаполнитьПолеПочтыДляВосстановленияПароляИзИБ(); + КонецЕсли; ОпределитьНесоответствияПользователяСПользователемИБ(); @@ -2121,6 +2283,33 @@ КонецПроцедуры +&НаСервере +Процедура ЗаполнитьПолеПочтыДляВосстановленияПароляИзИБ() + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + + МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); + + Если ПустаяСтрока(ИмяРеквизитаСПочтойДляВосстановленияПароля) + Или ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] <> ПользовательИБАдресЭлектроннойПочты Тогда + + ВидEmailПользователя = МодульУправлениеКонтактнойИнформацией.ВидКонтактнойИнформацииПоИмени("EmailПользователя"); + ОписаниеПочты = МодульУправлениеКонтактнойИнформацией.СтрокаОписанияПочтыДляВосстановленияПароляИзДанныхФормы(ЭтотОбъект, ВидEmailПользователя, ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля]); + + Если ОписаниеПочты <> Неопределено Тогда + ОписаниеПочты.Представление = ПользовательИБАдресЭлектроннойПочты; + ОписаниеПочты.Значение = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению( + ПользовательИБАдресЭлектроннойПочты, ВидEmailПользователя); + + ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] = ПользовательИБАдресЭлектроннойПочты; + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + //////////////////////////////////////////////////////////////////////////////// // Начальное заполнение, проверка заполнения, доступность свойств. @@ -2155,6 +2344,8 @@ Элементы.ПараметрыАутентификации1СПредприятия.Доступность = Форма.ПользовательИБАутентификацияСтандартная; Элементы.ПользовательИБПользовательОС.Доступность = Форма.ПользовательИБАутентификацияОС; + Элементы.ПользовательИБЗапрещеноВосстанавливатьПароль.Доступность = Не Форма.ПользовательИБЗапрещеноИзменятьПароль; + // Уточнение настроек в модели сервиса. Если ДействияСПользователемСервиса <> Неопределено Тогда @@ -2202,7 +2393,7 @@ Функция ОпределитьДоступностьЭлементовКонтактнойИнформации() Результат = Новый Соответствие; - Для Каждого СтрокаКонтактнойИнформации Из ЭтотОбъект.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов Цикл + Для Каждого СтрокаКонтактнойИнформации Из ЭтотОбъект.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов Цикл // СтрокаТаблицыЗначений: см. УправлениеКонтактнойИнформацией.НоваяКонтактнаяИнформация ДействияВидаКонтактнойИнформации = ДействияСПользователемСервиса.КонтактнаяИнформация.Получить(СтрокаКонтактнойИнформации.Вид); Если ДействияВидаКонтактнойИнформации = Неопределено Тогда // Возможность редактирования этого вида КИ не регулируется менеджером сервиса. @@ -2247,21 +2438,27 @@ Если Форма.ПользовательИБСуществует ИЛИ Форма.ВходВПрограммуРазрешен - ИЛИ Форма.ПользовательИБИмя <> ТекущееИмя - ИЛИ Форма.ПользовательИБАутентификацияСтандартная <> Шаблон.АутентификацияСтандартная - ИЛИ Форма.ПользовательИБПоказыватьВСпискеВыбора <> Шаблон.ПоказыватьВСпискеВыбора - ИЛИ Форма.ПользовательИБЗапрещеноИзменятьПароль <> Шаблон.ЗапрещеноИзменятьПароль - ИЛИ Форма.ПользовательИБПароль <> Неопределено - ИЛИ Форма.ПользовательИБАутентификацияОС <> Шаблон.АутентификацияОС - ИЛИ Форма.ПользовательИБПользовательОС <> "" - ИЛИ Форма.ПользовательИБАутентификацияOpenID <> Шаблон.АутентификацияOpenID - ИЛИ Форма.ПользовательИБРежимЗапуска <> Шаблон.РежимЗапуска - ИЛИ Форма.ПользовательИБЯзык <> Шаблон.Язык - ИЛИ Форма.ПользовательИБРоли.Количество() <> 0 Тогда + ИЛИ Форма.ПользовательИБИмя <> ТекущееИмя + ИЛИ Форма.ПользовательИБАутентификацияСтандартная <> Шаблон.АутентификацияСтандартная + ИЛИ Форма.ПользовательИБПоказыватьВСпискеВыбора <> Шаблон.ПоказыватьВСпискеВыбора + ИЛИ Форма.ПользовательИБЗапрещеноИзменятьПароль <> Шаблон.ЗапрещеноИзменятьПароль + ИЛИ Форма.ПользовательИБПароль <> Неопределено + ИЛИ Форма.ПользовательИБАутентификацияОС <> Шаблон.АутентификацияОС + ИЛИ Форма.ПользовательИБПользовательОС <> "" + ИЛИ Форма.ПользовательИБАутентификацияOpenID <> Шаблон.АутентификацияOpenID + ИЛИ Форма.ПользовательИБРежимЗапуска <> Шаблон.РежимЗапуска + ИЛИ Форма.ПользовательИБЯзык <> Шаблон.Язык + ИЛИ Форма.ПользовательИБРоли.Количество() <> 0 Тогда Возврат Истина; КонецЕсли; + // Поддерживается в новых версиях платформы + Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() + И Форма.ПользовательИБЗапрещеноВосстанавливатьПароль <> Шаблон.ЗапрещеноВосстанавливатьПароль Тогда + Возврат Истина; + КонецЕсли; + Возврат Ложь; КонецФункции @@ -2321,4 +2518,4 @@ // Конец СтандартныеПодсистемы.ПодключаемыеКоманды -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/Пользователи/ManagerModule.bsl b/SSL/src/Catalogs/Пользователи/ManagerModule.bsl index c1f8cdfa9..299b55971 100644 --- a/SSL/src/Catalogs/Пользователи/ManagerModule.bsl +++ b/SSL/src/Catalogs/Пользователи/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт @@ -36,7 +36,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = @@ -118,4 +120,76 @@ #КонецОбласти +#Область СлужебныеПроцедурыИФункции + +Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт + + Если ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + СписокПользователей = ПользователиСлужебный.ПользователиДляВключенияВосстановленияПароля(); + + Если СписокПользователей.Количество() > 0 Тогда + ВключитьСтандартныеНастройкиВосстановленияПароля(); + ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, СписокПользователей); + КонецЕсли; + +КонецПроцедуры + +Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + Параметры.ОбработкаЗавершена = Истина; + Возврат; + КонецЕсли; + + ПользовательСсылка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.Пользователи"); + + ПроблемныхОбъектов = 0; + ОбъектовОбработано = 0; + + Пока ПользовательСсылка.Следующий() Цикл + Результат = ПользователиСлужебный.ОбновитьПочтуДляВосстановленияПароля(ПользовательСсылка.Ссылка); + + Если Результат = "Ошибка" Тогда + ПроблемныхОбъектов = ПроблемныхОбъектов + 1; + Иначе + ОбъектовОбработано = ОбъектовОбработано + 1; + ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(ПользовательСсылка.Ссылка); + КонецЕсли; + + КонецЦикла; + + Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.Пользователи"); + + Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Процедуре ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторых пользователей (пропущены): %1'"), + ПроблемныхОбъектов); + ВызватьИсключение ТекстСообщения; + Иначе + ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, + Метаданные.Справочники.Пользователи,, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию обработала очередную порцию пользователей: %1'"), + ОбъектовОбработано)); + КонецЕсли; + +КонецПроцедуры + +Процедура ВключитьСтандартныеНастройкиВосстановленияПароля() + + Настройки = ПользователиСлужебный.НастройкиВосстановленияПароля(); + + Если Настройки = Неопределено Тогда + Возврат; + КонецЕсли; + + Настройки.СпособВосстановленияПароля = ПользователиСлужебный.СпособВосстановленияПароляПользователяИнформационнойБазы("ОтправкаКодаПодтвержденияЧерезСтандартныйСервис"); + ПользователиСлужебный.УстановитьНастройкиВосстановленияПароля(Настройки); + +КонецПроцедуры + +#КонецОбласти + #КонецЕсли diff --git a/SSL/src/Catalogs/Пользователи/ObjectModule.bsl b/SSL/src/Catalogs/Пользователи/ObjectModule.bsl index 8be786e04..0b119891e 100644 --- a/SSL/src/Catalogs/Пользователи/ObjectModule.bsl +++ b/SSL/src/Catalogs/Пользователи/ObjectModule.bsl @@ -102,7 +102,7 @@ Блокировка.Добавить("Справочник.ГруппыПользователей"); Блокировка.Заблокировать(); - ОбъектГруппы = ДополнительныеСвойства.ГруппаНовогоПользователя.ПолучитьОбъект(); + ОбъектГруппы = ДополнительныеСвойства.ГруппаНовогоПользователя.ПолучитьОбъект(); // СправочникОбъект.ГруппыПользователей ОбъектГруппы.Состав.Добавить().Пользователь = Ссылка; ОбъектГруппы.Записать(); КонецЕсли; diff --git a/SSL/src/Catalogs/Пользователи/Пользователи.mdo b/SSL/src/Catalogs/Пользователи/Пользователи.mdo index e975e3b28..3f03cab78 100644 --- a/SSL/src/Catalogs/Пользователи/Пользователи.mdo +++ b/SSL/src/Catalogs/Пользователи/Пользователи.mdo @@ -820,6 +820,15 @@ <usePurposes>PersonalComputer</usePurposes> <usePurposes>MobileDevice</usePurposes> </forms> + <forms uuid="cfc0adf6-87b4-4c8a-91e2-46c2616b319b"> + <name>ВводПароля</name> + <synonym> + <key>ru</key> + <value>Ввод пароля</value> + </synonym> + <usePurposes>PersonalComputer</usePurposes> + <usePurposes>MobileDevice</usePurposes> + </forms> <commands uuid="bed3f0b2-40c6-4323-9bca-cb8864e38ec0"> <name>ПользователиИнформационнойБазы</name> <synonym> diff --git a/SSL/src/Catalogs/ПользовательскиеНастройкиОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/ПользовательскиеНастройкиОтчетов/ManagerModule.bsl index 79c06de94..fa1f51769 100644 --- a/SSL/src/Catalogs/ПользовательскиеНастройкиОтчетов/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПользовательскиеНастройкиОтчетов/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -32,7 +32,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Module.bsl b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Module.bsl index 893de0a52..7a2c8d289 100644 --- a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Module.bsl +++ b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Module.bsl @@ -185,7 +185,7 @@ КонецПроцедуры &НаСервере -Функция ЗагрузитьРезультат(АдресРезультата) +Процедура ЗагрузитьРезультат(АдресРезультата) Результат = ПолучитьИзВременногоХранилища(АдресРезультата); Если ТипЗнч(Результат) = Тип("Строка") @@ -193,6 +193,6 @@ ТекстСообщенияПользователю = Результат; КонецЕсли; -КонецФункции +КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/ManagerModule.bsl b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/ManagerModule.bsl index d218ebdfe..ff14bd217 100644 --- a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт @@ -37,7 +37,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Catalogs/ПравилаПроверкиУчета/ObjectModule.bsl b/SSL/src/Catalogs/ПравилаПроверкиУчета/ObjectModule.bsl index e9de914b7..7f5136b95 100644 --- a/SSL/src/Catalogs/ПравилаПроверкиУчета/ObjectModule.bsl +++ b/SSL/src/Catalogs/ПравилаПроверкиУчета/ObjectModule.bsl @@ -72,6 +72,8 @@ КонецЦикла; + Возврат Ложь; + КонецФункции #КонецОбласти diff --git a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ManagerModule.bsl index 0ac162e5a..930021d8c 100644 --- a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетов/ManagerModule.bsl @@ -17,7 +17,7 @@ // Имена реквизитов справочника, значения которых разрешено изменять массово. // // Возвращаемое значение: -// Массив Из Строка - имена реквизитов справочника. +// Массив из Строка - имена реквизитов справочника. // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -34,7 +34,7 @@ // Имена реквизитов справочника, в разрезе которых контролируется уникальность элементов. // // Возвращаемое значение: -// Массив Из Строка - имена реквизитов справочника. +// Массив из Строка - имена реквизитов справочника. // Функция ПоляЕстественногоКлюча() Экспорт @@ -59,7 +59,17 @@ Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка) - МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#Иначе + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#КонецЕсли КонецПроцедуры diff --git a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ManagerModule.bsl b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ManagerModule.bsl index 0ac162e5a..930021d8c 100644 --- a/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПредопределенныеВариантыОтчетовРасширений/ManagerModule.bsl @@ -17,7 +17,7 @@ // Имена реквизитов справочника, значения которых разрешено изменять массово. // // Возвращаемое значение: -// Массив Из Строка - имена реквизитов справочника. +// Массив из Строка - имена реквизитов справочника. // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -34,7 +34,7 @@ // Имена реквизитов справочника, в разрезе которых контролируется уникальность элементов. // // Возвращаемое значение: -// Массив Из Строка - имена реквизитов справочника. +// Массив из Строка - имена реквизитов справочника. // Функция ПоляЕстественногоКлюча() Экспорт @@ -59,7 +59,17 @@ Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка) - МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#Иначе + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#КонецЕсли КонецПроцедуры diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОшибкаОбращенияКПрограмме/Module.bsl b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОшибкаОбращенияКПрограмме/Module.bsl index e97a43458..7d53b268b 100644 --- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОшибкаОбращенияКПрограмме/Module.bsl +++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОшибкаОбращенияКПрограмме/Module.bsl @@ -235,9 +235,9 @@ КонецПроцедуры // Параметры: -// ОписаниеОшибки - ДанныеФормыКоллекция: -// * Ошибки - Массив из Структура -// ОшибкаНаСервере - Булево +// ОписаниеОшибки - ДанныеФормыКоллекция: +// * Ошибки - Массив из Структура +// ОшибкаНаСервере - Булево // &НаСервере Процедура ДобавитьОшибки(ОписаниеОшибок, ОшибкаНаСервере = Ложь) diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form index e1c2bd44a..58277e43a 100644 --- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form @@ -5,7 +5,7 @@ <id>55</id> <title> <key>ru</key> - <value>Настройка программы электронной подписи и шифрования выполнена в главном узле</value> + <value>Настройка программы электронной подписи и шифрования выполнена в корневом узле</value> true true diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl index d2e579d06..aab5d8391 100644 --- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт diff --git a/SSL/src/Catalogs/ПроизводственныеКалендари/ManagerModule.bsl b/SSL/src/Catalogs/ПроизводственныеКалендари/ManagerModule.bsl index 371d840b7..08e9a8e82 100644 --- a/SSL/src/Catalogs/ПроизводственныеКалендари/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПроизводственныеКалендари/ManagerModule.bsl @@ -70,11 +70,10 @@ #Область СлужебныйПрограммныйИнтерфейс -// Функция выявляет последний день, за который заполнены данные -// указанного производственного календаря. +// Выявляет последний день, за который заполнены данные указанного производственного календаря. // // Параметры: -// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - календарь. +// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - календарь. // // Возвращаемое значение: // Дата - дата, по которую заполнен производственный календарь, Неопределено, если календарь не заполнен. @@ -103,14 +102,14 @@ КонецФункции -// Функция читает данные производственного календаря из регистра. +// Возвращает сведения о виде дня на каждую дату производственного календаря. // // Параметры: -// ПроизводственныйКалендарь - ссылка на текущий элемент справочника. -// НомерГода - номер года, за который необходимо прочитать производственный календарь. +// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - текущий элемент справочника. +// НомерГода - Число - номер года, за который необходимо прочитать производственный календарь. // -// Возвращаемое значение -// ДанныеПроизводственногоКалендаря - таблица значений, в которой хранятся сведения о виде дня на каждую дату календаря. +// Возвращаемое значение: +// ТаблицаЗначений // Функция ДанныеПроизводственногоКалендаря(ПроизводственныйКалендарь, НомерГода) Экспорт @@ -469,8 +468,8 @@ // Преобразовывает данные производственных календарей, поставляемые в виде макета в конфигурации. // // Параметры: -// КодыКалендарей - необязательный, массив, если не задан, то будут получены все имеющиеся данные из макета. -// ФормироватьПолныйНабор - необязательный, булево, если ложь, то будут сформированы только данные по отклонениям от календаря по умолчанию. +// КодыКалендарей - Массив - если не задан, то будут получены все имеющиеся данные из макета. +// ФормироватьПолныйНабор - Булево - если ложь, то будут сформированы только данные по отклонениям от календаря по умолчанию. // // Возвращаемое значение: // см. ДанныеПроизводственныхКалендарейИзXML. @@ -481,8 +480,8 @@ Возврат НовыеДанныеПроизводственныхКалендарей(); КонецЕсли; - МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); - ТекстовыйДокумент = МодульКалендарныеГрафики.ПолучитьМакет("ДанныеПроизводственныхКалендарей"); + МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); + ТекстовыйДокумент = МодульЗаполнениеКалендарныхГрафиков.ПолучитьМакет("ДанныеПроизводственныхКалендарей"); ДанныеXML = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ТекстовыйДокумент.ПолучитьТекст()); @@ -495,18 +494,18 @@ // Преобразовывает данные производственных календарей, представленные в виде XML. // // Параметры: -// ДанныеXML - структура - извлеченная из файла XML методом ОбщегоНазначения.ПрочитатьXMLВТаблицу. -// ТаблицаКалендарей - таблица значений, список производственных календарей, поддерживаемых в конфигурации. -// КодыКалендарей - необязательный, массив, если не задан, то отбор не будет установлен. -// ФормироватьПолныйНабор - необязательный, булево, если ложь, то будут сформированы только данные по отклонениям от календаря по умолчанию. +// ДанныеXML - Структура - извлеченная из файла XML методом ОбщегоНазначения.ПрочитатьXMLВТаблицу. +// ТаблицаКалендарей - ТаблицаЗначений - список производственных календарей, поддерживаемых в конфигурации. +// КодыКалендарей - Массив - если не задан, то отбор не будет установлен. +// ФормироватьПолныйНабор - Булево - если ложь, то будут сформированы только данные по отклонениям от календаря по умолчанию. // // Возвращаемое значение: // ТаблицаЗначений: -// * КодПроизводственногоКалендаря -// * ВидДня -// * Год -// * Дата -// * ДатаПереноса. +// * КодПроизводственногоКалендаря +// * ВидДня +// * Год +// * Дата +// * ДатаПереноса. // Функция ДанныеПроизводственныхКалендарейИзXML(Знач ДанныеXML, ТаблицаКалендарей, КодыКалендарей = Неопределено, ФормироватьПолныйНабор = Истина) Экспорт @@ -601,8 +600,8 @@ Возврат Новый ТаблицаЗначений; КонецЕсли; - МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); - ТекстовыйДокумент = МодульКалендарныеГрафики.ПолучитьМакет("ПериодыНерабочихДней"); + МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); + ТекстовыйДокумент = МодульЗаполнениеКалендарныхГрафиков.ПолучитьМакет("ПериодыНерабочихДней"); ТаблицаПериодов = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ТекстовыйДокумент.ПолучитьТекст()); ТаблицаКалендарей = ПроизводственныеКалендариИзМакета(); @@ -613,7 +612,7 @@ // Получает таблицу поставляемых в составе программы производственных календарей. // // Возвращаемое значение: -// ТаблицаЗначений +// ТаблицаЗначений // Функция ПроизводственныеКалендариИзМакета() Экспорт @@ -621,8 +620,8 @@ Возврат Новый ТаблицаЗначений; КонецЕсли; - МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); - ТекстовыйДокумент = МодульКалендарныеГрафики.ПолучитьМакет("ПроизводственныеКалендари"); + МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); + ТекстовыйДокумент = МодульЗаполнениеКалендарныхГрафиков.ПолучитьМакет("ПроизводственныеКалендари"); ТаблицаКалендарей = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ТекстовыйДокумент.ПолучитьТекст()).Данные; Возврат ТаблицаКалендарей; @@ -766,51 +765,59 @@ | И (ИзмененияЗависимыхКалендарей.Год = ИзмененияБазовыхКалендарей.Год) |ГДЕ | ИзмененияЗависимыхКалендарей.Год ЕСТЬ NULL"; - РезультатЗапроса = Запрос.Выполнить(); - Если РезультатЗапроса.Пустой() Тогда - Возврат; - КонецЕсли; + + Блокировка = Новый БлокировкаДанных(); + Блокировка.Добавить(Метаданные.Справочники.ПроизводственныеКалендари.ПолноеИмя()); - КодыЗависимых = РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Код"); - ДанныеИзМакета = ДанныеПроизводственныхКалендарейПоУмолчанию(КодыЗависимых); - - ОтборСтрок = Новый Структура( - "КодПроизводственногоКалендаря, - |Год"); - - Выборка = РезультатЗапроса.Выбрать(); - Пока Выборка.Следующий() Цикл - ОтборСтрок.КодПроизводственногоКалендаря = Выборка.Код; - ОтборСтрок.Год = Выборка.Год; - НайденныеСтроки = ДанныеИзМакета.НайтиСтроки(ОтборСтрок); - Если НайденныеСтроки.Количество() > 0 Тогда - // Если есть данные в макете, считаем, что перезаполнять не нужно. - Продолжить; + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + РезультатЗапроса = Запрос.Выполнить(); + Если Не РезультатЗапроса.Пустой() Тогда + КодыЗависимых = РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Код"); + ДанныеИзМакета = ДанныеПроизводственныхКалендарейПоУмолчанию(КодыЗависимых); + ОтборСтрок = Новый Структура( + "КодПроизводственногоКалендаря, + |Год"); + Выборка = РезультатЗапроса.Выбрать(); + Пока Выборка.Следующий() Цикл + ОтборСтрок.КодПроизводственногоКалендаря = Выборка.Код; + ОтборСтрок.Год = Выборка.Год; + НайденныеСтроки = ДанныеИзМакета.НайтиСтроки(ОтборСтрок); + Если НайденныеСтроки.Количество() > 0 Тогда + // Если есть данные в макете, считаем, что перезаполнять не нужно. + Продолжить; + КонецЕсли; + ДанныеКалендаря = РезультатЗаполненияПроизводственногоКалендаряПоУмолчанию(Выборка.Код, Выборка.Год, Выборка.КодБазовогоКалендаря); + ДанныеКалендаря.Колонки.Добавить("ПроизводственныйКалендарь"); + ДанныеКалендаря.ЗаполнитьЗначения(Выборка.ПроизводственныйКалендарь, "ПроизводственныйКалендарь"); + НаборЗаписей = РегистрыСведений.ДанныеПроизводственногоКалендаря.СоздатьНаборЗаписей(); + НаборЗаписей.Загрузить(ДанныеКалендаря); + НаборЗаписей.Отбор.ПроизводственныйКалендарь.Установить(Выборка.ПроизводственныйКалендарь); + НаборЗаписей.Отбор.Год.Установить(Выборка.Год); + Если ОбновлениеИнформационнойБазы.ЭтоВызовИзОбработчикаОбновления() Тогда + ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей); + Иначе + НаборЗаписей.Записать(); + КонецЕсли; + // Добавляем в таблицу изменений. + НоваяСтрока = ИзмененияКалендарей.Добавить(); + НоваяСтрока.КодПроизводственногоКалендаря = Выборка.Код; + НоваяСтрока.Год = Выборка.Год; + КонецЦикла; КонецЕсли; - ДанныеКалендаря = РезультатЗаполненияПроизводственногоКалендаряПоУмолчанию(Выборка.Код, Выборка.Год, Выборка.КодБазовогоКалендаря); - ДанныеКалендаря.Колонки.Добавить("ПроизводственныйКалендарь"); - ДанныеКалендаря.ЗаполнитьЗначения(Выборка.ПроизводственныйКалендарь, "ПроизводственныйКалендарь"); - НаборЗаписей = РегистрыСведений.ДанныеПроизводственногоКалендаря.СоздатьНаборЗаписей(); - НаборЗаписей.Загрузить(ДанныеКалендаря); - НаборЗаписей.Отбор.ПроизводственныйКалендарь.Установить(Выборка.ПроизводственныйКалендарь); - НаборЗаписей.Отбор.Год.Установить(Выборка.Год); - Если ОбновлениеИнформационнойБазы.ЭтоВызовИзОбработчикаОбновления() Тогда - ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей); - Иначе - НаборЗаписей.Записать(); - КонецЕсли; - // Добавляем в таблицу изменений. - НоваяСтрока = ИзмененияКалендарей.Добавить(); - НоваяСтрока.КодПроизводственногоКалендаря = Выборка.Код; - НоваяСтрока.Год = Выборка.Год; - КонецЦикла; + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; КонецПроцедуры // Определяет источник актуального перечня поддерживаемых производственных календарей (макет или поставка классификатора). // // Возвращаемое значение: -// ТаблицаЗначений +// ТаблицаЗначений // Функция ПроизводственныеКалендариПоУмолчанию() Экспорт @@ -837,7 +844,7 @@ // Определяет источник актуальных данных производственного календаря (макет или поставка классификатора). // // Параметры: -// КодыКалендарей - Массив. +// КодыКалендарей - Массив. // // Возвращаемое значение: // см. Справочники.ПроизводственныеКалендари.ДанныеПроизводственныхКалендарейИзXML. @@ -909,12 +916,9 @@ // Процедура записывает данные одного производственного календаря за 1 год. // // Параметры: -// ПроизводственныйКалендарь - ссылка на текущий элемент справочника. -// НомерГода - номер года, за который необходимо записать производственный календарь. -// ДанныеПроизводственногоКалендаря - таблица значений, в которой хранятся сведения о виде дня на каждую дату календаря. -// -// Возвращаемое значение -// Нет +// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - текущий элемент справочника. +// НомерГода - Число - номер года, за который необходимо записать производственный календарь. +// ДанныеПроизводственногоКалендаря - см. Справочник.ПроизводственныеКалендари.ДанныеПроизводственногоКалендаря. // Процедура ЗаписатьДанныеПроизводственногоКалендаря(ПроизводственныйКалендарь, НомерГода, ДанныеПроизводственногоКалендаря) Экспорт @@ -945,7 +949,7 @@ // этого дня в поле календаря. // // Возвращаемое значение -// ЦветаОформления - соответствие видов дня и цветов оформления. +// ЦветаОформления - соответствие видов дня и цветов оформления. // Функция ЦветаОформленияВидовДнейПроизводственногоКалендаря() Экспорт @@ -965,7 +969,7 @@ // по метаданным перечисления ВидыДнейПроизводственногоКалендаря. // // Возвращаемое значение -// СписокВидовДня - список значений, содержащий значение перечисления +// СписокВидовДня - СписокЗначений - содержащий значение перечисления // и его синоним в качестве представления. // Функция СписокВидовДня() Экспорт @@ -1016,8 +1020,8 @@ ПраздничныеДни.Колонки.Добавить("ТолькоНерабочий", Новый ОписаниеТипов("Булево")); Если Метаданные.Обработки.Найти("ЗаполнениеКалендарныхГрафиков") <> Неопределено Тогда - МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); - МодульКалендарныеГрафики.ЗаполнитьПраздничныеДни(КодПроизводственногоКалендаря, НомерГода, ПраздничныеДни); + МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); + МодульЗаполнениеКалендарныхГрафиков.ЗаполнитьПраздничныеДни(КодПроизводственногоКалендаря, НомерГода, ПраздничныеДни); КонецЕсли; Возврат ПраздничныеДни; diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl index 2ec713dc6..c66ef683e 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт @@ -36,7 +36,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = @@ -58,7 +60,30 @@ // ТехнологияСервиса.ВыгрузкаЗагрузкаДанных -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. +// Подключается в ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. +// +// Параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера +// МенеджерВыгрузкиОбъекта - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерВыгрузкиДанныхИнформационнойБазы +// Сериализатор - СериализаторXDTO +// Объект - КонстантаМенеджерЗначения +// - СправочникОбъект +// - ДокументОбъект +// - БизнесПроцессОбъект +// - ЗадачаОбъект +// - ПланСчетовОбъект +// - ПланОбменаОбъект +// - ПланВидовХарактеристикОбъект +// - ПланВидовРасчетаОбъект +// - РегистрСведенийНаборЗаписей +// - РегистрНакопленияНаборЗаписей +// - РегистрБухгалтерииНаборЗаписей +// - РегистрРасчетаНаборЗаписей +// - ПоследовательностьНаборЗаписей +// - ПерерасчетНаборЗаписей +// Артефакты - Массив из ОбъектXDTO +// Отказ - Булево +// Процедура ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ) Экспорт УправлениеДоступомСлужебный.ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ); @@ -291,10 +316,8 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. -// // Параметры: -// ТекущиеДела - см. ТекущиеДелаСлужебный.ТекущиеДела +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт @@ -505,7 +528,8 @@ Для каждого ОписаниеЗначенияДоступа Из СвойстваПрофиля.ЗначенияДоступа Цикл Отбор = Новый Структура; - Запрос = Новый Запрос(СтрЗаменить("ВЫБРАТЬ Значение(%1) КАК Значение", "%1", ОписаниеЗначенияДоступа.ЗначениеДоступа)); + Запрос = Новый Запрос(СтрЗаменить("ВЫБРАТЬ Значение(ЗначениеДоступа) КАК Значение", + "ЗначениеДоступа", ОписаниеЗначенияДоступа.ЗначениеДоступа)); Отбор.Вставить("ЗначениеДоступа", Запрос.Выполнить().Выгрузить()[0].Значение); Если Профиль.ЗначенияДоступа.НайтиСтроки(Отбор).Количество() = 0 Тогда Возврат Истина; @@ -675,7 +699,7 @@ // // Возвращаемое значение: // ФиксированнаяСтруктура: -// * ОписанияПрофилей - Соответствие: +// * ОписанияПрофилей - Соответствие из КлючИЗначение: // ** Ключ - Строка // ** Значение - см. СвойстваПоставляемогоПрофиля // * ОписанияПрофилейМассив - Массив из см. СвойстваПоставляемогоПрофиля @@ -746,6 +770,35 @@ КонецФункции +//////////////////////////////////////////////////////////////////////////////// +// Начальное заполнение + +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов +// +// Параметры: +// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки +// +Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт + + Настройки.ПриНачальномЗаполненииЭлемента = Ложь; + +КонецПроцедуры + +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов +// +// Параметры: +// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков +// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы +// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти +// +Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт + + Элемент = Элементы.Добавить(); + Элемент.ИмяПредопределенныхДанных = "Администратор"; + Элемент.Наименование = НСтр("ru = 'Администратор'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецПроцедуры + //////////////////////////////////////////////////////////////////////////////// // Процедуры и функции для поддержки обмена данными в РИБ. @@ -804,14 +857,32 @@ ЕстьИзменения = Ложь; + // АПК:1328-выкл. См. 648.1.1. Допустимо чтение без предварительной + // управляемой разделяемой блокировки, так как используется только + // для очистки и какой сеанс очистит первым не важно. Выборка = Запрос.Выполнить().Выбрать(); + // АПК:1328-вкл. + Пока Выборка.Следующий() Цикл - ПрофильОбъект = Выборка.Ссылка.ПолучитьОбъект(); - УдалитьРолиРасширений(ПрофильОбъект); - Если ПрофильОбъект.Модифицированность() Тогда - ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ПрофильОбъект, Ложь); - ЕстьИзменения = Истина; - КонецЕсли; + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.ПрофилиГруппДоступа"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка); + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + ПрофильОбъект = Выборка.Ссылка.ПолучитьОбъект(); + Если ПрофильОбъект <> Неопределено Тогда + УдалитьРолиРасширений(ПрофильОбъект); + Если ПрофильОбъект.Модифицированность() Тогда + ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ПрофильОбъект, Ложь); + ЕстьИзменения = Истина; + КонецЕсли; + КонецЕсли; + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; КонецЦикла; Если ЕстьИзменения Тогда @@ -938,6 +1009,10 @@ КонецФункции // Для функции ЗаполненныеПоставляемыеПрофили. +// +// Параметры: +// ОписаниеПрофиляАдминистратор - см. УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа +// Процедура ЗаполнитьПрофильАдминистратор(ОписаниеПрофиляАдминистратор, КромеОписания = Ложь) Если КромеОписания Тогда @@ -1297,7 +1372,7 @@ // * Наименование - Строка // * Роли - ФиксированныйМассив из Строка // * Назначение - ФиксированныйМассив из ОпределяемыйТип.Пользователь -// * ВидыДоступа - ФиксированноеСоответствие: +// * ВидыДоступа - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка // * Значение - Строка // * ЗначенияДоступа - ФиксированныйМассив из Структура: @@ -1315,7 +1390,7 @@ КонецФункции // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка - строковый идентификатор поставляемого профиля // * Значение - Строка - описание поставляемого профиля // @@ -1460,7 +1535,8 @@ СвойстваВидаДоступа = УправлениеДоступомСлужебный.СвойстваВидаДоступа(ОписаниеЗначенияДоступа.ВидДоступа); СтрокаЗначения = ПрофильОбъект.ЗначенияДоступа.Добавить(); СтрокаЗначения.ВидДоступа = СвойстваВидаДоступа.Ссылка; - Запрос = Новый Запрос(СтрЗаменить("ВЫБРАТЬ Значение(%1) КАК Значение", "%1", ОписаниеЗначенияДоступа.ЗначениеДоступа)); + Запрос = Новый Запрос(СтрЗаменить("ВЫБРАТЬ Значение(ЗначениеДоступа) КАК Значение", + "ЗначениеДоступа", ОписаниеЗначенияДоступа.ЗначениеДоступа)); СтрокаЗначения.ЗначениеДоступа = Запрос.Выполнить().Выгрузить()[0].Значение; КонецЦикла; diff --git a/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Module.bsl index 39dd22762..ac6c206d3 100644 --- a/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Module.bsl @@ -207,10 +207,10 @@ &НаСервере Процедура ЗагрузитьПрофильКлючевыхОперацийНаСервере(АдресХранилища) - ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилища); + ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилища); // ДвоичныеДанные ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xml"); - ДвоичныеДанные.Записать(ИмяВременногоФайла); // ДвоичныеДанные + ДвоичныеДанные.Записать(ИмяВременногоФайла); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(ИмяВременногоФайла); diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl index a557dc441..8705a727e 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl @@ -243,9 +243,8 @@ &НаСервере Процедура ЗаполнитьПочтовыеАдреса() - НаборПараметров = "Ссылка, ВидПочтовогоАдресаПолучателей, Личная, Получатели, ТипПолучателейРассылки"; - ПараметрыПолучателей = Новый Структура(НаборПараметров); + ПараметрыПолучателей = Новый Структура("Ссылка, ВидПочтовогоАдресаПолучателей, Личная, Получатели, ТипПолучателейРассылки"); ЗаполнитьЗначенияСвойств(ПараметрыПолучателей, ЭтотОбъект); ПараметрыПолучателей.Личная = Ложь; ПараметрыПолучателей.ТипПолучателейРассылки = ИдентификаторОбъектаМетаданных; diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Form.form b/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Form.form index 643a84632..b49daf8bb 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Form.form +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Form.form @@ -120,10 +120,6 @@ true - - <key>ru</key> - <value>Основное</value> - ОсновноеРасширеннаяПодсказка 25 @@ -209,10 +205,6 @@ true - - <key>ru</key> - <value>Основные команды</value> - ОсновныеКомандыРасширеннаяПодсказка 13 @@ -233,10 +225,6 @@ true - - <key>ru</key> - <value>Командная панель</value> - КоманднаяПанельРасширеннаяПодсказка 11 diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Module.bsl index e44af4388..64a1e621d 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/Предупреждение/Module.bsl @@ -84,20 +84,27 @@ Текст.Добавить(, Тип("ПереводСтрокиФорматированногоДокумента")); Текст.Добавить(, Тип("ПереводСтрокиФорматированногоДокумента")); - // АПК:1299-выкл Строка текста добавляется фрагментами, чтобы для одного из них установить навигационную ссылку - - Текст.Добавить(НСтр("ru = 'Перейдите к '"), Тип("ТекстФорматированногоДокумента")); - ЭлементСсылки = Текст.Добавить(НСтр("ru = 'настройкам учетной записи электронной почты'"), Тип("ТекстФорматированногоДокумента")); - Текст.Добавить(НСтр("ru = ' для корректировки логина, пароля.'"), Тип("ТекстФорматированногоДокумента")); - - // АПК:1299-вкл Строка текста добавляется фрагментами, чтобы для одного из них установить навигационную ссылку - Ссылка = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "Ссылка"); Если ЗначениеЗаполнено(Ссылка) Тогда - ЭлементСсылки.НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Ссылка); + + ШаблонСтроки = НСтр("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 de1edccbd..9785ab2af 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Form.form @@ -40,8 +40,9 @@ Left true - 15 + 12 true + 15 true true true @@ -118,7 +119,7 @@ Left true - 35 + 25 true true true @@ -170,7 +171,7 @@ Left true - 35 + 25 true true true diff --git a/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl index 15ff5deee..555d9b54e 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт @@ -35,7 +35,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = @@ -55,25 +57,23 @@ #Область СлужебныеПроцедурыИФункции +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов +// +// Параметры: +// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки +// Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт Настройки.ПриНачальномЗаполненииЭлемента = Ложь; КонецПроцедуры -// Вызывается при начальном заполнении справочника РолиИсполнителей. -// +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов +// // Параметры: -// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций. -// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов -// справочника РолиИсполнителей. -// ТабличныеЧасти - Структура - описание табличных частей объекта, где: -// * Ключ - Строка - имя табличной части; -// * Значение - ТаблицаЗначений - табличная часть в виде таблицы значений, структуру которой -// необходимо скопировать перед заполнением. Например: -// Элемент.Ключи = ТабличныеЧасти.Ключи.Скопировать(); -// ЭлементТЧ = Элемент.Ключи.Добавить(); -// ЭлементТЧ.ИмяКлюча = "Первичный"; +// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков +// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы +// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти // Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт @@ -83,17 +83,6 @@ КонецПроцедуры -// Вызывается РолиИсполнителей при начальном заполнении создаваемой роли исполнителя. -// -// Параметры: -// Объект - СправочникОбъект.РолиИсполнителей - заполняемый объект. -// Данные - СтрокаТаблицыЗначений - данные заполнения. -// ДополнительныеПараметры - Структура -// -Процедура ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры) Экспорт - -КонецПроцедуры - #КонецОбласти #КонецЕсли diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl index f58bf3466..e9eadaa8a 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl @@ -40,7 +40,10 @@ СвойстваСписка.ТекстЗапроса = Список.ТекстЗапроса + СтрокаОтбораВТекстеЗапроса; ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СвойстваСписка); - МультиязычностьСервер.ИзменениеТекстаЗапросаСпискаДляТекущегоЯзыка(ЭтотОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ИзменениеТекстаЗапросаСпискаДляТекущегоЯзыка(ЭтотОбъект); + КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl index 8c8245eda..efc0e4898 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl @@ -15,7 +15,10 @@ НастроитьОтображениеСпискаРолей(); - МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект); + КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl index 34c066ed4..77e656fae 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl @@ -18,23 +18,41 @@ ОбновитьДоступность(); - МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + КонецЕсли; КонецПроцедуры &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) - МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; + КонецПроцедуры &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) - МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + КонецЕсли; + КонецПроцедуры &НаСервере Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) - МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -84,7 +102,12 @@ &НаКлиенте Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка) - МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент"); + МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + КонецЕсли; + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl b/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl index 6134a254c..160c44b7d 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт @@ -58,17 +58,21 @@ КонецЕсли; ТекстПоискаДляДополнительныхЯзыков = ""; - Если МультиязычностьСервер.ИспользуетсяПервыйДополнительныйЯзык() Тогда - ТекстПоискаДляДополнительныхЯзыков = " ИЛИ РолиИсполнителей.НаименованиеЯзык1 ПОДОБНО &СтрокаПоиска"; - КонецЕсли; - Если МультиязычностьСервер.ИспользуетсяПервыйДополнительныйЯзык() Тогда - ТекстПоискаДляДополнительныхЯзыков = ТекстПоискаДляДополнительныхЯзыков - + " ИЛИ РолиИсполнителей.НаименованиеЯзык2 ПОДОБНО &СтрокаПоиска"; - КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); - Если МультиязычностьСервер.ИспользуетсяВторойДополнительныйЯзык() Тогда - СуффиксЯзыка = МультиязычностьСервер.СуффиксТекущегоЯзыка(); + Если МодульМультиязычностьСервер.ИспользуетсяПервыйДополнительныйЯзык() Тогда + ТекстПоискаДляДополнительныхЯзыков = "РолиИсполнителей.НаименованиеЯзык1 ПОДОБНО &СтрокаПоиска"; + КонецЕсли; + + Если МодульМультиязычностьСервер.ИспользуетсяВторойДополнительныйЯзык() Тогда + Если Не ПустаяСтрока(ТекстПоискаДляДополнительныхЯзыков) Тогда + ТекстПоискаДляДополнительныхЯзыков = ТекстПоискаДляДополнительныхЯзыков + " " + "ИЛИ" + " "; + КонецЕсли; + ТекстПоискаДляДополнительныхЯзыков = ТекстПоискаДляДополнительныхЯзыков + + " ИЛИ РолиИсполнителей.НаименованиеЯзык2 ПОДОБНО &СтрокаПоиска"; + КонецЕсли; КонецЕсли; ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 20 @@ -79,12 +83,17 @@ | ПО РолиИсполнителейНазначение.Ссылка = РолиИсполнителей.Ссылка |ГДЕ | РолиИсполнителейНазначение.ТипПользователей = &Тип - | И (РолиИсполнителей.Наименование ПОДОБНО &СтрокаПоиска " + ТекстПоискаДляДополнительныхЯзыков + " + | И (РолиИсполнителей.Наименование ПОДОБНО &СтрокаПоиска + | ИЛИ &ПоискДляДополнительныхЯзыков | ИЛИ РолиИсполнителей.Код ПОДОБНО &СтрокаПоиска) | И НЕ РолиИсполнителей.Ссылка ЕСТЬ NULL"; + Если ПустаяСтрока(ТекстПоискаДляДополнительныхЯзыков) Тогда + ТекстПоискаДляДополнительныхЯзыков = "ЛОЖЬ"; + КонецЕсли; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоискДляДополнительныхЯзыков", ТекстПоискаДляДополнительныхЯзыков); + Запрос = Новый Запрос(ТекстЗапроса); - Запрос.УстановитьПараметр("Тип", ОбъектАвторизации); Запрос.УстановитьПараметр("СтрокаПоиска", "%" + Параметры.СтрокаПоиска + "%"); РезультатЗапроса = Запрос.Выполнить().Выбрать(); @@ -100,13 +109,33 @@ Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка) - МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#Иначе + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#КонецЕсли КонецПроцедуры Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка) - МультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка); +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка); + КонецЕсли; + #Иначе + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка); + КонецЕсли; +#КонецЕсли КонецПроцедуры @@ -116,32 +145,35 @@ #Область СлужебныйПрограммныйИнтерфейс +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов +// +// Параметры: +// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки +// Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт Настройки.ПриНачальномЗаполненииЭлемента = Истина; КонецПроцедуры -// Вызывается при начальном заполнении справочника РолиИсполнителей. +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов // // Параметры: -// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций. -// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов -// справочника РолиИсполнителей. -// ТабличныеЧасти - Структура - описание табличных частей объекта, где: -// * Ключ - Строка - имя табличной части; -// * Значение - ТаблицаЗначений - табличная часть в виде таблицы значений, структуру которой -// необходимо скопировать перед заполнением. Например: -// Элемент.Ключи = ТабличныеЧасти.Ключи.Скопировать(); -// ЭлементТЧ = Элемент.Ключи.Добавить(); -// ЭлементТЧ.ИмяКлюча = "Первичный"; +// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков +// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы +// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти // Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт Элемент = Элементы.Добавить(); Элемент.ИмяПредопределенныхДанных = "ОтветственныйЗаКонтрольИсполнения"; - МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", - "ru='Координатор выполнения задач'", КодыЯзыков); // @НСтр + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", + "ru='Координатор выполнения задач'", КодыЯзыков); // @НСтр-2 + КонецЕсли; + Элемент.ИспользуетсяБезОбъектовАдресации = Истина; Элемент.ИспользуетсяСОбъектамиАдресации = Истина; Элемент.ВнешняяРоль = Ложь; @@ -157,12 +189,10 @@ КонецПроцедуры -// Вызывается РолиИсполнителей при начальном заполнении создаваемой роли исполнителя. +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов // // Параметры: -// Объект - СправочникОбъект.РолиИсполнителей - заполняемый объект. -// Данные - СтрокаТаблицыЗначений - данные заполнения. -// ДополнительныеПараметры - Структура +// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки // Процедура ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры) Экспорт diff --git a/SSL/src/Catalogs/РолиИсполнителей/ObjectModule.bsl b/SSL/src/Catalogs/РолиИсполнителей/ObjectModule.bsl index 20afc9314..773008ee3 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/ObjectModule.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/ObjectModule.bsl @@ -60,7 +60,10 @@ Процедура ПриЧтенииПредставленийНаСервере() Экспорт - МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); + КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl index a0b67f03c..087ff95e4 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl @@ -642,8 +642,8 @@ // Продолжение процедуры ПерейтиКВыборуТекущегоСертификата. // // Параметры: -// РезультатПоиска - СертификатКриптографии -// Контекст - Структура +// РезультатПоиска - СертификатКриптографии +// Контекст - Структура // &НаКлиенте Процедура ПерейтиКВыборуТекущегоСертификатаПослеПоискаСертификата(РезультатПоиска, Контекст) Экспорт @@ -669,11 +669,11 @@ // Продолжение процедуры ПерейтиКВыборуТекущегоСертификата. // // Параметры: -// РезультатПоиска - Структура: -// * Выполнено - Булево -// * ОписаниеОшибки - Структура: -// ** Описание - Строка -// Контекст - Структура +// РезультатПоиска - Структура: +// * Выполнено - Булево +// * ОписаниеОшибки - Структура: +// ** Описание - Строка +// Контекст - Структура // &НаКлиенте Процедура ПерейтиКВыборуТекущегоСертификатаПослеПоискаСертификатаВОблачномСервисе(РезультатПоиска, Контекст) Экспорт diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl index 6f935fb5c..3d2a73841 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl @@ -284,10 +284,10 @@ // Продолжение процедуры Далее. // // Параметры: -// Результат - Структура: -// * ОписаниеОшибки - Структура: -// ** Описание - Строка -// Контекст - Структура +// Результат - Структура: +// * ОписаниеОшибки - Структура: +// ** Описание - Строка +// Контекст - Структура // &НаКлиенте Процедура ДалееПослеПоискаСертификатаВОблачномСервисе(Результат, Контекст) Экспорт diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl index 7cbc026de..badb1bc71 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl @@ -1412,7 +1412,7 @@ Процедура УстановитьЭлемент(Форма, НачалоЭлемента, НаСервере, ОписаниеОшибки = Неопределено, ЭтоОшибка = Ложь, ОбъединятьРезультаты = "НеОбъединять") - ЭлементНадпись = Форма.Элементы[НачалоЭлемента + "Надпись"]; // ДекорацияФормы, Надпись + ЭлементНадпись = Форма.Элементы[НачалоЭлемента + "Надпись"]; // ДекорацияФормы, РасширениеДекорацииФормыДляНадписи Если ОбъединятьРезультаты = "ОбъединятьПоИ" Или ОбъединятьРезультаты = "ОбъединятьПоИли" Тогда diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl index 123730941..71eb71925 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/Штамп/Template.mxlx b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/Штамп/Template.mxlx index 32920e00c..18c798aaa 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/Штамп/Template.mxlx +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/Штамп/Template.mxlx @@ -80,7 +80,6 @@ 9 - ДатаПодписи @@ -114,33 +113,6 @@ 4 - - - - 10 - - - - - 11 - - - ru - Кем выдан: - - - - - - - 12 - ВыдалСертификат - - - - - - 5 @@ -167,7 +139,7 @@ - 6 + 5 @@ -194,7 +166,7 @@ - 7 + 6 @@ -211,30 +183,20 @@ true 18 - 12 - 12 + 11 + 11 1 1 1 - 7 + 6 1 1 ВладелецСертификата - - Rectangle - 5 - 5 - 2 - 2 - - - - ВыдалСертификат Rectangle 4 @@ -268,27 +230,27 @@ Rows 1 - 7 - 0 - 0 + 6 + -1 + -1 Отступ Rows - 10 - 10 - 0 - 0 + 9 + 9 + -1 + -1 ОтступЛев Rectangle - 10 - 11 + 9 + 10 1 1 @@ -297,8 +259,8 @@ ОтступПрав Rectangle - 10 - 11 + 9 + 10 2 2 @@ -308,7 +270,7 @@ Rectangle 1 - 7 + 6 0 0 @@ -317,8 +279,8 @@ СрокДействия Rectangle - 6 - 6 + 5 + 5 2 2 @@ -327,8 +289,8 @@ ТекстОтметки Rectangle - 7 - 7 + 6 + 6 1 2 @@ -338,7 +300,7 @@ Rectangle 1 - 7 + 6 1 2 @@ -348,7 +310,7 @@ Rectangle 1 - 6 + 5 1 1 @@ -358,7 +320,7 @@ Rectangle 1 - 6 + 5 2 2 @@ -399,7 +361,7 @@ Text true 1 - RealSize + Proportionally Center Center @@ -428,7 +390,6 @@ 1 219 Center - Parameter true diff --git a/SSL/src/Catalogs/СообщениеSMSПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/СообщениеSMSПрисоединенныеФайлы/ManagerModule.bsl index eb31279f0..595f7cf7b 100644 --- a/SSL/src/Catalogs/СообщениеSMSПрисоединенныеФайлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/СообщениеSMSПрисоединенныеФайлы/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -30,7 +30,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = @@ -45,6 +47,7 @@ КонецПроцедуры // Конец СтандартныеПодсистемы.УправлениеДоступом + #КонецОбласти #КонецОбласти diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl index 12c642570..17c8aefb2 100644 --- a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/Forms/ФормаСписка/Module.bsl @@ -35,6 +35,10 @@ #Область ОбработчикиКомандФормы // СтандартныеПодсистемы.ПодключаемыеКоманды + +// Параметры: +// Команда - КомандаФормы +// &НаКлиенте Процедура Подключаемый_ВыполнитьКоманду(Команда) @@ -53,23 +57,31 @@ КонецЕсли; Если Перемещать Тогда - ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список); + ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список); Иначе ПоказатьПредупреждение(,НСтр("ru = 'Начальное и конечное состояние перемещать нельзя.'")); КонецЕсли; КонецЕсли; Иначе - ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список); + ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список); КонецЕсли; КонецПроцедуры -&НаСервере -Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт - ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат); +&НаКлиенте +Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт + + ВыполнитьКомандуНаСервере(ПараметрыВыполнения); + КонецПроцедуры +&НаСервере +Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения) + + ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список); + +КонецПроцедуры &НаКлиенте Процедура Подключаемый_ОбновитьКоманды() ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список); diff --git a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl index 4d0facc23..b42219df0 100644 --- a/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl +++ b/SSL/src/Catalogs/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl @@ -10,18 +10,23 @@ #Область СлужебныйПрограммныйИнтерфейс +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов +// +// Параметры: +// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки +// Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт Настройки.ПриНачальномЗаполненииЭлемента = Ложь; КонецПроцедуры -// Вызывается при начальном заполнении справочника. -// +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов +// // Параметры: -// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций. -// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов -// справочника РолиИсполнителей. +// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков +// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы +// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти // Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт diff --git a/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl b/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl index b6ae8fe58..32873bb4b 100644 --- a/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl +++ b/SSL/src/Catalogs/СтраныМира/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт @@ -125,25 +125,23 @@ #Область СлужебныеПроцедурыИФункции +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов +// +// Параметры: +// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки +// Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт Настройки.ПриНачальномЗаполненииЭлемента = Ложь; КонецПроцедуры -// Вызывается при начальном заполнении справочника СтраныМира. -// +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов +// // Параметры: -// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций. -// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов -// справочника СтраныМира. -// ТабличныеЧасти - Структура - описание табличных частей объекта, где: -// * Ключ - Строка - имя табличной части; -// * Значение - ТаблицаЗначений - табличная часть в виде таблицы значений, структуру которой -// необходимо скопировать перед заполнением. Например: -// Элемент.Ключи = ТабличныеЧасти.Ключи.Скопировать(); -// ЭлементТЧ = Элемент.Ключи.Добавить(); -// ЭлементТЧ.ИмяКлюча = "Первичный"; +// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков +// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы +// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти // Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт @@ -165,8 +163,15 @@ // Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт - // Если наименования были обновлены, то их следует обновить - МультиязычностьСервер.ЗарегистрироватьПредопределенныеЭлементыДляОбновления(Параметры, Метаданные.Справочники.СтраныМира); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + // Обновление мультиязычных строк, если они были изменены. + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("РежимОбновления", "МультиязычныеСтроки"); + + ОбновлениеИнформационнойБазы.ЗарегистрироватьПредопределенныеЭлементыДляОбновления(Параметры, + Метаданные.Справочники.СтраныМира, ДополнительныеПараметры); + + КонецЕсли; СписокСтран = УправлениеКонтактнойИнформацией.СтраныУчастникиЕАЭС(); @@ -225,7 +230,11 @@ Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт СтранаМираСсылка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.СтраныМира"); - НастройкиОбновления = МультиязычностьСервер.НастройкиОбновлениеПредопределенныхДанных(Метаданные.Справочники.СтраныМира); + НастройкиОбновления = Неопределено; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + НастройкиОбновления = МодульМультиязычностьСервер.НастройкиОбновлениеПредопределенныхДанных(Метаданные.Справочники.СтраныМира); + КонецЕсли; ПроблемныхОбъектов = 0; ОбъектовОбработано = 0; @@ -244,8 +253,11 @@ КонецЕсли; // Обновление наименований - Если НастройкиОбновления.ЛокализуемыеРеквизитыОбъекта.Количество() > 0 Тогда - МультиязычностьСервер.ОбновитьМультиязычныеСтрокиПредопределенногоЭлемента(СтранаМираСсылка, НастройкиОбновления); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + Если НастройкиОбновления.ЛокализуемыеРеквизитыОбъекта.Количество() > 0 Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ОбновитьМультиязычныеСтрокиПредопределенногоЭлемента(СтранаМираСсылка, НастройкиОбновления); + КонецЕсли; КонецЕсли; ОбъектовОбработано = ОбъектовОбработано + 1; diff --git a/SSL/src/Catalogs/СтраныМира/ObjectModule.bsl b/SSL/src/Catalogs/СтраныМира/ObjectModule.bsl index 616369b34..6ec03b75c 100644 --- a/SSL/src/Catalogs/СтраныМира/ObjectModule.bsl +++ b/SSL/src/Catalogs/СтраныМира/ObjectModule.bsl @@ -11,21 +11,34 @@ #Область ОбработчикиСобытий Процедура ПередЗаписью(Отказ) + Если ОбменДанными.Загрузка Или ДополнительныеСвойства.Свойство("НеПроверятьУникальность") Тогда Возврат; КонецЕсли; + Если Предопределенный И Не ЭтоНовый() Тогда + + ПроверитьИзменениеПредопределенногоЭлемента(); + + КонецЕсли; + Если Не ПроверитьЗаполнение() Тогда Отказ = Истина; КонецЕсли; + КонецПроцедуры Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) - Существующий = СуществующийЭлемент(); - Если Существующий<>Неопределено Тогда + СписокОшибок = ПроверитьУникальностьЭлементов(); + + Если СписокОшибок.Количество() > 0 Тогда + Отказ = Истина; - ОбщегоНазначения.СообщитьПользователю(Существующий.ОписаниеОшибки,, "Объект.Наименование"); + Для каждого ОписаниеОшибки Из СписокОшибок Цикл + ОбщегоНазначения.СообщитьПользователю(ОписаниеОшибки.ТекстСообщения,, ОписаниеОшибки.ИмяПоля); + КонецЦикла; + КонецЕсли; КонецПроцедуры @@ -41,35 +54,26 @@ #Область СлужебныеПроцедурыИФункции // Контролирует уникальность элемента в базе. +// В случае выявления дублей кодов или наименование возвращает их список. // // Возвращаемое значение: -// Неопределено - нет ошибок. -// Структура - описание элемента, существующего в базе. Свойства: -// * ОписаниеОшибки - Строка - текст ошибки. -// * Код - Строка - реквизит уже существующего элемента. -// * Наименование - Строка - реквизит уже существующего элемента. -// * НаименованиеПолное - Строка - реквизит уже существующего элемента. -// * КодАльфа2 - Строка - реквизит уже существующего элемента. -// * КодАльфа3 - Строка - реквизит уже существующего элемента. -// * Ссылка - СправочникаСсылка.СтраныМира - реквизит уже существующего элемента. +// Массив из см. НовыйСообщениеОбОшибке - если в программе были найдены дубли, то содержит описание элементов +// существующих в базе. // -Функция СуществующийЭлемент() +Функция ПроверитьУникальностьЭлементов() - Результат = Неопределено; + Результат = Новый Массив; // Нецифровые коды пропускаем ТипЧисло = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(3, 0, ДопустимыйЗнак.Неотрицательный)); - Если Код="0" Или Код="00" Или Код="000" Тогда + Если Код= "0" Или Код = "00" Или Код = "000" Тогда КодПоиска = "000"; Иначе КодПоиска = Формат(ТипЧисло.ПривестиЗначение(Код), "ЧЦ=3; ЧН=; ЧВН="); - Если КодПоиска="000" Тогда - Возврат Результат; // Не число - КонецЕсли; КонецЕсли; Запрос = Новый Запрос(" - |ВЫБРАТЬ ПЕРВЫЕ 1 + |ВЫБРАТЬ ПЕРВЫЕ 10 | Код КАК Код, | Наименование КАК Наименование, | НаименованиеПолное КАК НаименованиеПолное, @@ -80,27 +84,110 @@ |ИЗ | Справочник.СтраныМира |ГДЕ - | Код=&Код + | (Код = &Код + | ИЛИ Наименование = &Наименование + | ИЛИ КодАльфа2 = &КодАльфа2 + | ИЛИ КодАльфа3 = &КодАльфа3 + | ИЛИ НаименованиеПолное = &НаименованиеПолное) | И Ссылка <> &Ссылка |"); - Запрос.УстановитьПараметр("Ссылка", Ссылка); - Запрос.УстановитьПараметр("Код", КодПоиска); + Запрос.УстановитьПараметр("Ссылка", Ссылка); + Запрос.УстановитьПараметр("Код", КодПоиска); + Запрос.УстановитьПараметр("Наименование", Наименование); + Запрос.УстановитьПараметр("НаименованиеПолное", НаименованиеПолное); + Запрос.УстановитьПараметр("КодАльфа2", КодАльфа2); + Запрос.УстановитьПараметр("КодАльфа3", КодАльфа3); РезультатЗапроса = Запрос.Выполнить(); - Выборка = РезультатЗапроса.Выбрать(); - Если Выборка.Следующий() Тогда - Результат = Новый Структура("ОписаниеОшибки", - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'С кодом %1 уже существует страна %2. Измените код или используйте уже существующие данные.'"), - Код, Выборка.Наименование)); - - Для Каждого Поле Из РезультатЗапроса.Колонки Цикл - Результат.Вставить(Поле.Имя, Выборка[Поле.Имя]); - КонецЦикла; + Если РезультатЗапроса.Пустой() Тогда + Возврат Результат; КонецЕсли; + Выборка = РезультатЗапроса.Выбрать(); + Пока Выборка.Следующий() Цикл + + Сообщение = НовыйСообщениеОбОшибке(); + Если СтрСравнить(Выборка.Код, Код) = 0 Тогда + + Сообщение.ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'С кодом %1 уже существует страна %2. Измените код или используйте уже существующие данные.'"), + Код, Выборка.Наименование); + Сообщение.ИмяПоля = "Объект.Код"; + + ИначеЕсли СтрСравнить(Выборка.Наименование, Наименование) = 0 Тогда + + Сообщение.ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Страна с наименованием %1 уже существует. Измените наименование или используйте уже существующие данные.'"), + Выборка.Наименование); + Сообщение.ИмяПоля = "Объект.Наименование"; + + ИначеЕсли СтрСравнить(Выборка.НаименованиеПолное, НаименованиеПолное) = 0 Тогда + + Сообщение.ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Уже существует страна %2 с полным наименованием %1. Измените полное наименование или используйте уже существующие данные.'"), + НаименованиеПолное, Выборка.Наименование); + Сообщение.ИмяПоля = "Объект.НаименованиеПолное"; + + ИначеЕсли СтрСравнить(Выборка.КодАльфа2, КодАльфа2) = 0 Тогда + + Сообщение.ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'С кодом Альфа-2 %1 уже существует страна %2. Измените код Альфа-2 или используйте уже существующие данные.'"), + КодАльфа2, Выборка.Наименование); + Сообщение.ИмяПоля = "Объект.КодАльфа2"; + + ИначеЕсли СтрСравнить(Выборка.КодАльфа3, КодАльфа3) = 0 Тогда + + Сообщение.ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'С кодом Альфа-3 %1 уже существует страна %2. Измените код Альфа-3 или используйте уже существующие данные.'"), + КодАльфа3, Выборка.Наименование); + Сообщение.ИмяПоля = "Объект.КодАльфа3"; + + КонецЕсли; + + Результат.Добавить(Сообщение); + + КонецЦикла; + Возврат Результат; + КонецФункции +// Возвращаемое значение: +// Структура: +// ИмяПоля - Строка +// ТекстСообщения - Строка +// +Функция НовыйСообщениеОбОшибке() + + Результат = Новый Структура; + Результат.Вставить("ИмяПоля", ""); + Результат.Вставить("ТекстСообщения", ""); + + Возврат Результат; + +КонецФункции + +Процедура ПроверитьИзменениеПредопределенногоЭлемента() + + ПредыдущиеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "Код, Наименование"); + Если СтрСравнить(ПредыдущиеЗначения.Наименование, Наименование) <> 0 Тогда + + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не допускается изменение наименования для страны %1'"), ПредыдущиеЗначения.Наименование); + ВызватьИсключение ТекстСообщения; + + КонецЕсли; + + Если СтрСравнить(ПредыдущиеЗначения.Код, Код) <> 0 Тогда + + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не допускается изменение кода для страны %1'"), ПредыдущиеЗначения.Наименование); + ВызватьИсключение ТекстСообщения; + + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Иначе diff --git a/SSL/src/Catalogs/СтроковыеКонтактыВзаимодействий/ManagerModule.bsl b/SSL/src/Catalogs/СтроковыеКонтактыВзаимодействий/ManagerModule.bsl index 2548cb15d..3bddcdfa1 100644 --- a/SSL/src/Catalogs/СтроковыеКонтактыВзаимодействий/ManagerModule.bsl +++ b/SSL/src/Catalogs/СтроковыеКонтактыВзаимодействий/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl index 068732bfd..76bc5aca0 100644 --- a/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl +++ b/SSL/src/Catalogs/СценарииОбменовДанными/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт diff --git a/SSL/src/Catalogs/ТелефонныйЗвонокПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ТелефонныйЗвонокПрисоединенныеФайлы/ManagerModule.bsl index ec189d0e3..595f7cf7b 100644 --- a/SSL/src/Catalogs/ТелефонныйЗвонокПрисоединенныеФайлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/ТелефонныйЗвонокПрисоединенныеФайлы/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -30,7 +30,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Form.form b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Form.form index 223babf5e..d74c10e97 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Form.form +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Form.form @@ -88,10 +88,6 @@ true - - <key>ru</key> - <value>Лишние файлы</value> - ГруппаЛишниеФайлыРасширеннаяПодсказка 17 @@ -195,10 +191,6 @@ true - - <key>ru</key> - <value>Комментарий</value> - ГруппаКомментарийРасширеннаяПодсказка 6 @@ -318,10 +310,6 @@ true - - <key>ru</key> - <value>Настройки удаления</value> - НастройкиУдаленияРасширеннаяПодсказка 28 diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl index 693e0ff56..7819cc50f 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl @@ -207,11 +207,10 @@ // Возвращаемое значение: -// Структура: +// Структура: // * КаталогДляКопирования - Строка // * ПоследняяИтерация - Булево -// * ТекущийФайл - ОпределяемыйТип.ПрисоединенныйФайл: -// ** Имя - Строка +// * ТекущийФайл - Файл // * ИтоговоеОповещение - ОписаниеОповещения // &НаКлиенте @@ -240,8 +239,8 @@ КонецПроцедуры // Параметры: -// КаталогСуществует - Булево -// ДополнительныеПараметры - см. ПараметрыТекущегоФайла +// КаталогСуществует - Булево +// ДополнительныеПараметры - см. ПараметрыТекущегоФайла // &НаКлиенте Процедура КаталогДняСуществуетЗавершение(КаталогСуществует, ДополнительныеПараметры) Экспорт @@ -257,8 +256,8 @@ КонецПроцедуры // Параметры: -// ИмяКаталога - Строка -// ДополнительныеПараметры - см. ПараметрыТекущегоФайла +// ИмяКаталога - Строка +// ДополнительныеПараметры - см. ПараметрыТекущегоФайла // &НаКлиенте Процедура СоздатьКаталогДняЗавершение(ИмяКаталога, ДополнительныеПараметры) Экспорт @@ -348,7 +347,7 @@ КонецПроцедуры // Возвращаемое значение: -// Структура: +// Структура: // * Имя - Строка // * Ошибка - Строка // @@ -506,8 +505,8 @@ КонецПроцедуры // Параметры: -// ОтчетОбОшибках - ТабличныйДокумент -// МассивФайловСОшибками - Массив из см. СтруктураОшибки +// ОтчетОбОшибках - ТабличныйДокумент +// МассивФайловСОшибками - Массив из см. СтруктураОшибки // &НаСервере Процедура СформироватьОтчетОбОшибках(ОтчетОбОшибках, МассивФайловСОшибками) diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Form.form index 0afd5e2de..ee25fc983 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Form.form @@ -129,7 +129,7 @@ 5 <key>ru</key> - <value>Полный путь для сервера 1С:Предприятия под управлением Microsoft Windows</value> + <value>Полный путь к общей папке на компьютере под управлением Microsoft Windows</value> true true @@ -179,7 +179,7 @@ Normal ru - \\servername\resource + \\computername\foldername @@ -188,7 +188,7 @@ 23 <key>ru</key> - <value>Полный путь для сервера 1С:Предприятия под управлением Linux</value> + <value>Полный путь к общей папке на компьютере под управлением Linux</value> true true diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Help/ru.html index a504ce4af..8cd7cfdff 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Help/ru.html @@ -1,23 +1,34 @@

Описание свойств тома хранения файлов.

-

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

+

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

Для каждого тома необходимо указать:

  • Наименование - полное наименование тома для хранения файлов; -
  • Код - заполняется автоматически; -
  • Полный путь для сервера 1С:Предприятия под управлением Microsoft Windows - напишите путь к каталогу тома для сервера под управлением Microsoft Windows в формате UNC - \\Имя компьютера\Наименование папки\Наименование файла\;

или

-
    • Полный путь для сервера 1С:Предприятия под управлением Linux - напишите путь к каталогу для сервера под управлением Linux;
  • Порядок - введите целое число, по умолчанию равно 1. Заполнение томов осуществляется по порядку заполнения (по возрастанию) до полного заполнения тома. Эту особенность можно использовать, например, для временного отключения тома путем увеличения ему порядка заполнения. -
  • Предел, МБ -можно указать максимальный размер всех файлов на томе (квота тома). Если суммарный размер файлов в томе превышает установленную квоту, то будет использован следующий по порядку том. Если ни на одном из доступных томов не будет достаточно места для размещения файла, то информация об этом будет записана в журнал регистрации и будет выдано сообщение об ошибке. Если квота установлена равной нулю, то при размещении файлов в томе она не проверяется; -
  • Текущий размер, МБ - проставляется программой автоматически по мере наполнения тома, показывает, насколько том заполнен; -
  • На вкладке Комментарий напишите подробную информацию о томе.

Особенности заполнения поля Полный путь для Linux

-
  • Если сервер 1С:Предприятия работает под Linux, то путь к тому хранения файлов можно указать только локальный, например /home/path. Для того чтобы использовать UNC путь, нужно сделать на него ссылку.Для этого под правами администратора сделайте следующее: +
  • +
  • Код - заполняется автоматически; +
  • +
  • Полный путь к общей папке на компьютере под управлением Microsoft Windows - напишите путь к каталогу тома для сервера под управлением Microsoft Windows в формате UNC - \\Имя компьютера\Наименование папки;

или

+
    • Полный путь к общей папке на компьютере под управлением Linux - напишите путь к каталогу для сервера под управлением Linux;
  • Порядок - введите целое число, по умолчанию равно 1. Заполнение томов осуществляется по порядку заполнения (по возрастанию) до полного заполнения тома. Эту особенность можно использовать, например, для временного отключения тома путем увеличения ему порядка заполнения. +
  • +
  • Предел, МБ -можно указать максимальный размер всех файлов на томе (квота тома). Если суммарный размер файлов в томе превышает установленную квоту, то будет использован следующий по порядку том. Если ни на одном из доступных томов не будет достаточно места для размещения файла, то информация об этом будет записана в журнал регистрации и будет выдано сообщение об ошибке. Если квота установлена равной нулю, то при размещении файлов в томе она не проверяется; +
  • +
  • Текущий размер, МБ - проставляется программой автоматически по мере наполнения тома, показывает, насколько том заполнен; +
  • +
  • На вкладке Комментарий напишите подробную информацию о томе.

Особенности заполнения поля Полный путь для Linux

+
  • Если сервер 1С:Предприятия работает под Linux, то путь к тому хранения файлов можно указать только локальный, например /home/path. Для того чтобы использовать UNC путь, нужно сделать на него ссылку. Для этого под правами администратора сделайте следующее:
    • выполните команду вида mkdir folder, где вместо "folder" напишите имя своего каталога. Например, в каталоге /home выполните команду mkdir shared - будет создан каталог shared с полным путем /home/shared. -
    • выполните команду видаmount -t cifs //server/share folder -o //domain/user, password=pwd, где
      - где //server/share - UNC путь к другому компьютеру , folder - путь к каталогу на Linux компьютере, например \home\shared, //domain/user - имя домена/пользователя, если необходимо, pwd - пароль пользователя (если необходимо). -
    •  Если имя и пароль не нужны, команда выглядит так:mount -t cifs //server/share folder.
  • После этого в пути к тому указываем folder, например /home/shared.

Просмотр списка файлов в томе

+ +
  • выполните команду видаmount -t cifs //server/share folder -o //domain/user, password=pwd, где
    - где //server/share - UNC путь к другому компьютеру , folder - путь к каталогу на Linux компьютере, например \home\shared, //domain/user - имя домена/пользователя, если необходимо, pwd - пароль пользователя (если необходимо). +
  • +
  •  Если имя и пароль не нужны, команда выглядит так:mount -t cifs //server/share folder.
  • +
  • После этого в пути к тому указываем folder, например /home/shared.
  • Просмотр списка файлов в томе

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

    См. также:

    + +
  • Для того чтобы просмотреть список файлов в томе, выполните команду Файлы в томе на панели навигации тома. 
  • См. также:

    \ No newline at end of file diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Help/ru.html b/SSL/src/Catalogs/ТомаХраненияФайлов/Help/ru.html index 54533d630..fef23b376 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Help/ru.html +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Help/ru.html @@ -3,28 +3,45 @@

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

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

    • Наименование - наименование тома хранения файлов; -
    • Порядок - целое число. Заполнение томов осуществляется по порядку заполнения по возрастанию до полного заполнения тома; -
    • Полный путь Microsoft Windows - путь к каталогу тома для сервера под управлением Microsoft Windows в формате UNC: \\Имя компьютера\Наименование папки\Наименование файла\; -
    • Комментарий - подробная информация о томе. -
    • Предел, Мб - можно указать максимальный размер всех файлов в томе (квота тома). Если квота установлена равной нулю, то при размещении файлов в томе она не проверяется. При установленном ненулевом значении Максимальный размер, если суммарный размер файлов в томе уже превышает установленную квоту, то будет использован следующий по порядку заполнения том. Если ни в одном из доступных томов не будет достаточно места для размещения файла, то информация об этом записывается в журнал регистрации и выводится сообщение об ошибке; -
    • Полный путь Linux - путь к каталогу для сервера под управлением Linux.

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

    + +
  • Порядок - целое число. Заполнение томов осуществляется по порядку заполнения по возрастанию до полного заполнения тома; +
  • +
  • Полный путь Microsoft Windows - путь к каталогу тома для сервера под управлением Microsoft Windows в формате UNC: \\Имя компьютера\Наименование папки; +
  • +
  • Комментарий - подробная информация о томе. +
  • +
  • Предел, Мб - можно указать максимальный размер всех файлов в томе (квота тома). Если квота установлена равной нулю, то при размещении файлов в томе она не проверяется. При установленном ненулевом значении Максимальный размер, если суммарный размер файлов в томе уже превышает установленную квоту, то будет использован следующий по порядку заполнения том. Если ни в одном из доступных томов не будет достаточно места для размещения файла, то информация об этом записывается в журнал регистрации и выводится сообщение об ошибке; +
  • +
  • Полный путь Linux - путь к каталогу для сервера под управлением Linux.
  • Ввод тома хранения файлов

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

    Правила хранения файлов в томах

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

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

    Работа с томами хранения файлов

    • При создании нового тома автоматически проверяется доступ к указанному в поле Полный путь каталогу, в случае ошибки выводится соответствующее сообщение. -
    • Заполнение томов осуществляется по порядку (по возрастанию) до полного заполнения тома. Эту особенность можно использовать для временного отключения тома путем увеличения ему порядка заполнения. -
    • Уже созданному тому нельзя поменять пути. -
    • Созданный том нельзя удалить до тех пор, пока на него ссылаются какие-либо версии файлов. -
    • Ошибки доступа к томам помещаются в журнал регистрации и могут быть просмотрены администратором программы. -
    • В каждом томе файлы хранятся в подкаталогах по дате так, что на каждый день создается свой подкаталог. Все файлы в томах хранятся с оригинальным именем и расширением, между которыми добавляется номер версии, например "Приказ.1.txt". -
    • После переключения режима хранения файлов (например, в значение В томах на диске) все ранее накопленные файлы не перемещаются в тома - только вновь добавленные файлы будут размещаться в соответствии с настройкой. Для того чтобы перенести ранее накопленные файлы из информационной базы в тома, воспользуйтесь командой Перенос файлов в тома. -
    • Если используется синхронизация данных между программой-источником и программой-приемником и при этом в программе-источнике используется хранение файлов в томах на дисках, то в процессе создания начального образа необходимо будет создать архивный файл с томами хранимых файлов. -
    • В процессе получения начального образа в программу-приемник необходимо будет указать и расположение архивного файла с томами хранимых файлов. Для получения файлов в томах из архива выполните команду Разместить файлы начального образа.
    + +
  • Заполнение томов осуществляется по порядку (по возрастанию) до полного заполнения тома. Эту особенность можно использовать для временного отключения тома путем увеличения ему порядка заполнения. +
  • +
  • Уже созданному тому нельзя поменять пути. +
  • +
  • Созданный том нельзя удалить до тех пор, пока на него ссылаются какие-либо версии файлов. +
  • +
  • Ошибки доступа к томам помещаются в журнал регистрации и могут быть просмотрены администратором программы. +
  • +
  • В каждом томе файлы хранятся в подкаталогах по дате так, что на каждый день создается свой подкаталог. Все файлы в томах хранятся с оригинальным именем и расширением, между которыми добавляется номер версии, например "Приказ.1.txt". +
  • +
  • После переключения режима хранения файлов (например, в значение В томах на диске) все ранее накопленные файлы не перемещаются в тома - только вновь добавленные файлы будут размещаться в соответствии с настройкой. Для того чтобы перенести ранее накопленные файлы из информационной базы в тома, воспользуйтесь командой Перенос файлов в тома. +
  • +
  • Если используется синхронизация данных между программой-источником и программой-приемником и при этом в программе-источнике используется хранение файлов в томах на дисках, то в процессе создания начального образа необходимо будет создать архивный файл с томами хранимых файлов. +
  • +
  • В процессе получения начального образа в программу-приемник необходимо будет указать и расположение архивного файла с томами хранимых файлов. Для получения файлов в томах из архива выполните команду Разместить файлы начального образа.
  • Примечание
    Для использования томов, расположенных на сетевых дисках, сервер 1С:Предприятия 8 нужно запускать от лица доменного пользователя вида domain1\user1, имеющего права доступа к тому, указанному в виде UNC пути. Этот пользователь должен входить в группу Users локального компьютера,иметь права "Run as service" и "Run as batch job" и права на каталоги, в которых сервер 1С:Предприятия 8 хранит служебные файлы - журнал регистрации, каталог временных файлов и пр.

    См. также:

    \ No newline at end of file + +
  • Работа с формами.
  • \ No newline at end of file diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/ManagerModule.bsl b/SSL/src/Catalogs/ТомаХраненияФайлов/ManagerModule.bsl index ab53e7119..2ef8b3bcf 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/ManagerModule.bsl +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -40,7 +40,7 @@ // Только для внутреннего использования. // // Параметры: -// Запросы - Массив +// Запросы - Массив // Процедура ДобавитьЗапросыНаИспользованиеВнешнихРесурсовВсехТомов(Запросы) Экспорт @@ -72,7 +72,7 @@ // Только для внутреннего использования. // // Параметры: -// Запросы - Массив +// Запросы - Массив // Процедура ДобавитьЗапросыНаОтменуИспользованияВнешнихРесурсовВсехТомов(Запросы) Экспорт diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/ObjectModule.bsl b/SSL/src/Catalogs/ТомаХраненияФайлов/ObjectModule.bsl index 7c26c9557..8f24e6567 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/ObjectModule.bsl +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/ObjectModule.bsl @@ -81,7 +81,8 @@ Если ИспользуютсяПрофилиБезопасности Тогда ШаблонОшибки = - НСтр("ru = 'Путь к тому некорректен. + НСтр("ru = 'Некорректный путь к тому или сервер с томом в данный момент недоступен. + |Проверьте корректность пути к общей папке и доступность сервера. |Возможно не настроены разрешения в профилях безопасности, |или учетная запись, от лица которой работает |сервер 1С:Предприятия, не имеет прав доступа к каталогу тома. @@ -89,7 +90,8 @@ |%1'"); Иначе ШаблонОшибки = - НСтр("ru = 'Путь к тому некорректен. + НСтр("ru = 'Некорректный путь к тому или сервер с томом в данный момент недоступен. + |Проверьте корректность пути к общей папке и доступность сервера. |Возможно учетная запись, от лица которой работает |сервер 1С:Предприятия, не имеет прав доступа к каталогу тома. | diff --git a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/ManagerModule.bsl b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/ManagerModule.bsl index a9e668ee7..8243722ca 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/ManagerModule.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов -// См. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами. +// Возвращаемое значение: +// см. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииЗаблокированныхРеквизитов.ЗаблокированныеРеквизиты. +// Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт Результат = Новый Массив; diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl index 118d048c3..7aa0bf983 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl @@ -49,6 +49,8 @@ УстановитьПривилегированныйРежим(Ложь); КонецЕсли; + РаботаСПочтовымиСообщениямиСлужебный.ОбновитьНастройкиСервераВосстановленияПочты(ТекущийОбъект.Ссылка); + КонецПроцедуры &НаСервере @@ -632,7 +634,7 @@ Если ОбработчикиОжидания.Количество() > 0 Тогда ОписаниеОповещения = ОбработчикиОжидания[0]; ИмяПроцедуры = ОбработчикиОжидания[0].ИмяПроцедуры; - Форма = ОбработчикиОжидания[0].Модуль; + Форма = ОбработчикиОжидания[0].Модуль; // РасширениеУправляемойФормыДляСправочника ПараметрыЗаписи = ОбработчикиОжидания[0].ДополнительныеПараметры; ОбработчикиОжидания.Удалить(0); ПараметрыЗаписи.ОбработчикиПередЗаписью[ИмяПроцедуры] = Истина; diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl index a705d7086..70301d409 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -33,7 +33,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = @@ -193,25 +195,23 @@ // Начальное заполнение +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов +// +// Параметры: +// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки +// Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт Настройки.ПриНачальномЗаполненииЭлемента = Ложь; КонецПроцедуры -// Вызывается при начальном заполнении справочника УчетныеЗаписиЭлектроннойПочты. -// +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов +// // Параметры: -// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций. -// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов -// справочника УчетныеЗаписиЭлектроннойПочты. -// ТабличныеЧасти - Структура - описание табличных частей объекта, где: -// * Ключ - Строка - имя табличной части; -// * Значение - ТаблицаЗначений - табличная часть в виде таблицы значений, структуру которой -// необходимо скопировать перед заполнением. Например: -// Элемент.Ключи = ТабличныеЧасти.Ключи.Скопировать(); -// ЭлементТЧ = Элемент.Ключи.Добавить(); -// ЭлементТЧ.ИмяКлюча = "Первичный"; +// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков +// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы +// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти // Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ObjectModule.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ObjectModule.bsl index f493d1301..166bcfa07 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ObjectModule.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ObjectModule.bsl @@ -82,6 +82,46 @@ КонецПроцедуры +Процедура ПриЗаписи(Отказ) + + Если ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + УчетнаяЗаписьДляВосстановленияПароля = РаботаСПочтовымиСообщениямиСлужебный.НастройкиУчетнойЗаписиДляВосстановленияПароля(); + + Если УчетнаяЗаписьДляВосстановленияПароля.Используется + И УчетнаяЗаписьДляВосстановленияПароля.УчетнаяЗаписьПочты = Ссылка Тогда + + Если Пользователи.ЭтоПолноправныйПользователь() Тогда + + УстановитьПривилегированныйРежим(Истина); + ПарольSMTP = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Ссылка, "ПарольSMTP"); + УстановитьПривилегированныйРежим(Ложь); + + Настройки = ПользователиСлужебный.НастройкиВосстановленияПароля(); + + Если Настройки <> Неопределено Тогда + + Настройки.АдресСервераSMTP = СерверИсходящейПочты; + Настройки.ИмяОтправителя = ИмяПользователя; + Настройки.ИспользоватьSSL = ИспользоватьЗащищенноеСоединениеДляИсходящейПочты; + Настройки.ПарольSMTP = ПарольSMTP; + Настройки.ПользовательSMTP = ПользовательSMTP; + Настройки.ПортSMTP = ПортСервераИсходящейПочты; + + ПользователиСлужебный.УстановитьНастройкиВосстановленияПароля(Настройки); + КонецЕсли; + + Иначе + ВызватьИсключение НСтр("ru='Настройки почты используются для восстановления пароля и + |могут быть изменены только администратором.'"); + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Form.form b/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Form.form index 2465f8bee..1f3a68d38 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Form.form +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Form.form @@ -166,10 +166,6 @@ true - - <key>ru</key> - <value>Основная командная панель</value> - ОсновнаяКоманднаяПанельExtendedTooltip 11 diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаПеретаскивания/Form.form b/SSL/src/Catalogs/Файлы/Forms/ФормаПеретаскивания/Form.form index 924c06388..f2d7e005c 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаПеретаскивания/Form.form +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаПеретаскивания/Form.form @@ -55,10 +55,6 @@ true - - <key>ru</key> - <value>Заголовок</value> - ЗаголовокExtendedTooltip 48 @@ -82,10 +78,6 @@ ДеревоФайлов 31 - - <key>ru</key> - <value>Дерево файлов</value> - true true @@ -227,10 +219,6 @@ true - - <key>ru</key> - <value>Картинка и наименование</value> - КартинкаИНаименованиеExtendedTooltip 51 @@ -371,10 +359,6 @@ true - - <key>ru</key> - <value>Файлы</value> - ГруппаФайлыРасширеннаяПодсказка 47 @@ -571,10 +555,6 @@ true - - <key>ru</key> - <value>Реквизиты файлов</value> - РеквизитыФайловExtendedTooltip 57 @@ -664,10 +644,6 @@ true - - <key>ru</key> - <value>Кодировка</value> - ГруппаКодировкаExtendedTooltip 60 @@ -768,10 +744,6 @@ true - - <key>ru</key> - <value>Основная командная панель</value> - ОсновнаяКоманднаяПанельExtendedTooltip 63 diff --git a/SSL/src/Catalogs/Файлы/ManagerModule.bsl b/SSL/src/Catalogs/Файлы/ManagerModule.bsl index 54752f682..899a38ea6 100644 --- a/SSL/src/Catalogs/Файлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/Файлы/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -30,7 +30,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = @@ -205,7 +207,7 @@ БлокировкаДанных.Заблокировать(); - ОбновляемыйФайл = Строка.Ссылка.ПолучитьОбъект(); + ОбновляемыйФайл = Строка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.Файлы ОбновляемыйФайл.ДатаМодификацииУниверсальная = ОбновляемыйФайл.ТекущаяВерсия.ДатаМодификацииУниверсальная; ОбновляемыйФайл.ТипХраненияФайла = ОбновляемыйФайл.ТекущаяВерсия.ТипХраненияФайла; diff --git a/SSL/src/Catalogs/ШаблоныАнкет/ManagerModule.bsl b/SSL/src/Catalogs/ШаблоныАнкет/ManagerModule.bsl index 8d2cbc3dc..84986a83a 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/ManagerModule.bsl +++ b/SSL/src/Catalogs/ШаблоныАнкет/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ЗаполнитьПроизвольныеПараметры/Module.bsl b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ЗаполнитьПроизвольныеПараметры/Module.bsl index 7b801ff4c..1e6335903 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ЗаполнитьПроизвольныеПараметры/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ЗаполнитьПроизвольныеПараметры/Module.bsl @@ -93,6 +93,7 @@ КонецЕсли; ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(Реквизит.Имя, ОписаниеТипаПараметра,, Реквизит.Представление)); + КонецЦикла; КонецЕсли; diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаСписка/Module.bsl index 8a80abbb4..526a18def 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаСписка/Module.bsl @@ -26,9 +26,34 @@ // кнопки в группе, если одна кнопка, то группа не нужна Элементы.ФормаСоздатьШаблонСообщенияSMS.Видимость = ВключенаОтправкаSMS; Элементы.ФормаСоздатьШаблонЭлектронногоПисьма.Видимость = ВключенаРаботаСПочтовымиСообщениями; - Элементы.ФормаПоказыватьКонтекстныеШаблоны.Видимость = Пользователи.ЭтоПолноправныйПользователь(); + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОтправкаSMS") Тогда + + СпрятатьЭлементыКогдаНедоступнаОднаИзПодсистем(); + + Заголовок = НСтр("ru='Шаблоны сообщений электронных писем'"); + Элементы.ФормаСоздатьШаблонСообщенияSMS.Видимость = Ложь; + Элементы.ФормаСоздатьШаблонЭлектронногоПисьма.Заголовок = НСтр("ru='Создать'"); + ШаблонДля = ШаблоныСообщенийКлиентСервер.ИмяШаблонаЭлектронныхПисем(); + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, + "ШаблонДля", НСтр("ru = 'Электронного письма'"), ВидСравненияКомпоновкиДанных.Равно); + + КонецЕсли; + + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда + + СпрятатьЭлементыКогдаНедоступнаОднаИзПодсистем(); + + Заголовок = НСтр("ru='Шаблоны SMS сообщений'"); + Элементы.ФормаСоздатьШаблонЭлектронногоПисьма.Видимость = Ложь; + Элементы.ФормаСоздатьШаблонСообщенияSMS.Заголовок = НСтр("ru='Создать'"); + ШаблонДля = ШаблоныСообщенийКлиентСервер.ИмяШаблонаSMS(); + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, + "ШаблонДля", НСтр("ru = 'Сообщения SMS'"), ВидСравненияКомпоновкиДанных.Равно); + + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -50,13 +75,9 @@ &НаКлиенте Процедура ШаблонДляФильтрОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) - Если ВыбранноеЗначение = "SMS" Тогда - ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ШаблонДля", НСтр("ru = 'Сообщения SMS'"), ВидСравненияКомпоновкиДанных.Равно); - ИначеЕсли ВыбранноеЗначение = "Email" Тогда - ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ШаблонДля", НСтр("ru = 'Электронного письма'"), ВидСравненияКомпоновкиДанных.Равно); - Иначе - ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбора(Список.Отбор, "ШаблонДля"); - КонецЕсли; + + УстановитьОтборВСпискеШаблонов(ВыбранноеЗначение); + КонецПроцедуры #КонецОбласти @@ -139,6 +160,19 @@ ОткрытьФорму("Справочник.ШаблоныСообщений.ФормаОбъекта", ПараметрыФормы, ЭтотОбъект); КонецПроцедуры +&НаКлиенте +Процедура УстановитьОтборВСпискеШаблонов(Знач ВыбранноеЗначение) + + Если ВыбранноеЗначение = ШаблоныСообщенийКлиентСервер.ИмяШаблонаSMS() Тогда + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ШаблонДля", НСтр("ru = 'Сообщения SMS'"), ВидСравненияКомпоновкиДанных.Равно); + ИначеЕсли ВыбранноеЗначение = ШаблоныСообщенийКлиентСервер.ИмяШаблонаЭлектронныхПисем() Тогда + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ШаблонДля", НСтр("ru = 'Электронного письма'"), ВидСравненияКомпоновкиДанных.Равно); + Иначе + ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбора(Список.Отбор, "ШаблонДля"); + КонецЕсли; + +КонецПроцедуры + &НаКлиенте Процедура УстановитьФильтрНазначение(Знач ВыбранноеЗначение) @@ -210,6 +244,16 @@ КонецПроцедуры +&НаСервере +Процедура СпрятатьЭлементыКогдаНедоступнаОднаИзПодсистем() + + Элементы.ШаблонДляФильтр.Видимость = Ложь; + Элементы.ШаблонДля.Видимость = Ложь; + АвтоЗаголовок = Ложь; + Элементы.ФормаГруппаСоздать.Вид = ВидГруппыФормы.ГруппаКнопок; + +КонецПроцедуры + &НаСервере Процедура УстановитьУсловноеОформление() diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl index e393c42a1..e6c03805e 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl @@ -1417,7 +1417,6 @@ Для Каждого ВыбранныйФайл Из ВыбранныеФайлы Цикл - ИмяФайла = ""; Расширение = ПолучитьРасширениеФайла(ВыбранныйФайл.Имя); НоваяСтрока = Вложения.Добавить(); diff --git a/SSL/src/Catalogs/ШаблоныСообщений/ManagerModule.bsl b/SSL/src/Catalogs/ШаблоныСообщений/ManagerModule.bsl index 7c9466123..47fe52286 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/ManagerModule.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/ManagerModule.bsl @@ -16,7 +16,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Catalogs/ШаблоныСообщенийПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ШаблоныСообщенийПрисоединенныеФайлы/ManagerModule.bsl index ec189d0e3..595f7cf7b 100644 --- a/SSL/src/Catalogs/ШаблоныСообщенийПрисоединенныеФайлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщенийПрисоединенныеФайлы/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -30,7 +30,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Catalogs/ЭлектронноеПисьмоВходящееПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ЭлектронноеПисьмоВходящееПрисоединенныеФайлы/ManagerModule.bsl index ec189d0e3..595f7cf7b 100644 --- a/SSL/src/Catalogs/ЭлектронноеПисьмоВходящееПрисоединенныеФайлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/ЭлектронноеПисьмоВходящееПрисоединенныеФайлы/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -30,7 +30,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Catalogs/ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы/ManagerModule.bsl index ec189d0e3..595f7cf7b 100644 --- a/SSL/src/Catalogs/ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы/ManagerModule.bsl +++ b/SSL/src/Catalogs/ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -30,7 +30,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ПодборЯзыкаИзСпискаДоступных/Form.form b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ПодборЯзыкаИзСпискаДоступных/Form.form new file mode 100644 index 000000000..7ee7dc333 --- /dev/null +++ b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ПодборЯзыкаИзСпискаДоступных/Form.form @@ -0,0 +1,579 @@ + + + + <key>ru</key> + <value>Выбор языков печатных форм</value> + + + КоманднаяПанель + 31 + + СписокВыбрать + 22 + true + true + + true + + + СписокВыбратьРасширеннаяПодсказка + 23 + Label + true + true + + Left + + + UsualButton + Form.Command.Выбрать + Auto + true + true + true + UserCmds + Auto + + + Поиск + 24 + true + true + + true + + + СтрокаПоиска + + None + + OnChange + ПоискПриИзменении + + + ПоискРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + + ПоискКонтекстноеМеню + 25 + true + + InputField + Enter + true + Left + true + + + AutoComplete + ПоискАвтоПодбор + + + Clearing + ПоискОчистка + + true + true + true + true + true + true + true + Normal + + ru + Найти... + + + + + КоманднаяПанельПраваяЧасть + 41 + + КомандыСПиска + 27 + true + true + + true + + + <key>ru</key> + <value>Команды с писка</value> + + + КомандыСПискаРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + + Item.Список + + + true + true + + true + + + <key>ru</key> + <value>Командная панель правая часть</value> + + + КоманднаяПанельПраваяЧастьРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + CommandBar + + Left + Form + + + true + true + + true + + + <key>ru</key> + <value>Командная панель</value> + + + КоманднаяПанельРасширеннаяПодсказка + 32 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + + Список + 1 + + <key>ru</key> + <value>Список</value> + + true + true + + true + + + Список + + None + Add + Change + Copy + Delete + EndEdit + MoveDown + MoveUp + ShowRowRearrangement + + СписокНаименование + 17 + true + true + + true + + + Список.Наименование + + + СписокНаименованиеРасширеннаяПодсказка + 19 + Label + true + true + + Left + + + + СписокНаименованиеКонтекстноеМеню + 18 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + СписокКод + 33 + + <key>ru</key> + <value>Код локализации</value> + + true + true + + true + + + Список.Код + + + СписокКодРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + + СписокКодКонтекстноеМеню + 34 + true + + InputField + Auto + true + Left + true + + 15 + true + true + false + true + true + true + true + Normal + + + None + + СписокКоманднаяПанель + 3 + Left + true + + + Selection + СписокВыбор + + + СписокСтрокаПоиска + 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 + MultiRow +
    true
    + 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + true + true + true + true + AsFileRef + None + true + +
    + None + false + + ФормаКоманднаяПанель + -1 + Left + + + OnCreateAtServer + ПриСозданииНаСервере + + 50 + LockOwner + true + true + Vertical + true + true + true + auto + true + + Список + + <key>ru</key> + <value>Список</value> + + 1 + + ValueTable + + + true + + + true + + + Код + + <key>ru</key> + <value>Код языка</value> + + 1 + + String + + + + true + + + true + + + + Наименование + + <key>ru</key> + <value>Язык</value> + + 2 + + String + + + + true + + + true + + + + СтрокаПоиска + 3 + + String + + + + true + + + true + + + + Страны + 4 + + String + + + + true + + + true + + + + + СтрокаПоиска + + <key>ru</key> + <value>Строка поиска</value> + + 2 + + String + + + + true + + + true + + + + Сворачивать + 3 + + Boolean + + + true + + + true + + + + Выбрать + + <key>ru</key> + <value>Выбрать</value> + + 1 + + ru + Выбрать + + + true + + + + Выбрать + + + Auto + Auto + + + Отбор + + String + + + true + + + + + +
    diff --git a/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ПодборЯзыкаИзСпискаДоступных/Module.bsl b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ПодборЯзыкаИзСпискаДоступных/Module.bsl new file mode 100644 index 000000000..13961bf26 --- /dev/null +++ b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ПодборЯзыкаИзСпискаДоступных/Module.bsl @@ -0,0 +1,166 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ТекущийЭлемент = Элементы.Поиск; + Элементы.Список.МножественныйВыбор = Не ЗначениеЗаполнено(Параметры.Отбор); + + Если ЗначениеЗаполнено(Параметры.Отбор) Тогда + Отбор = СтрРазделить(Параметры.Отбор, "_", Истина)[0]; + Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( + "ru = 'Выбор региональных настроек для языка %1'"), + МультиязычностьСервер.ПредставлениеЯзыка(Отбор)); + КонецЕсли; + + ЗаполнитьСписокДоступныхЯзыков(Сворачивать); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ПоискОчистка(Элемент, СтандартнаяОбработка) + + УстановитьОтбор(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПоискПриИзменении(Элемент) + + УстановитьОтбор(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок + +&НаКлиенте +Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + Закрыть(ВыбранныеЯзыки()); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Выбрать(Команда) + + Закрыть(ВыбранныеЯзыки()); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ЗаполнитьСписокДоступныхЯзыков(Свернуть = Истина) + + Список.Очистить(); + + Отбор = СтрРазделить(Параметры.Отбор, "_", Истина)[0]; + + Для Каждого Язык Из ПолучитьДопустимыеКодыЛокализации() Цикл + Если ЗначениеЗаполнено(Отбор) И Не СтрНачинаетсяС(Язык, Отбор) Тогда + Продолжить; + КонецЕсли; + + Представление = ПредставлениеКодаЛокализации(Язык); + ЧастиСтроки = СтрРазделить(Представление, " ", Истина); + ЧастиСтроки[0] = ТРег(ЧастиСтроки[0]); + Представление = СтрСоединить(ЧастиСтроки, " "); + + Если СтрНайти(Язык, "_") И Свернуть Тогда + ОписаниеЯзыка = Список.НайтиСтроки(Новый Структура("Код", СтрРазделить(Язык, "_", Истина)[0]))[0]; + Представление = Сред(Представление, СтрДлина(ОписаниеЯзыка.Наименование) + 1); + + Страны = СтрРазделить(ОписаниеЯзыка.Страны, ",", Ложь); + + ПозицияНачала = СтрНайти(Представление, "("); + Если ПозицияНачала > 0 Тогда + ПозицияКонца = СтрНайти(Представление, ")", НаправлениеПоиска.СКонца); + Если ПозицияКонца > 0 Тогда + СписокСтранСтрокой = Сред(Представление, ПозицияНачала + 1, ПозицияКонца - ПозицияНачала - 1); + СтраныЯзыка = СтрРазделить(СписокСтранСтрокой, ",", Ложь); + Для Каждого Страна Из СтраныЯзыка Цикл + Страна = СокрЛП(Страна); + Если Страны.Найти(Страна) = Неопределено Тогда + Страны.Добавить(Страна); + КонецЕсли; + КонецЦикла; + КонецЕсли; + КонецЕсли; + + ОписаниеЯзыка.Страны = СтрСоединить(Страны, ","); + ОписаниеЯзыка.СтрокаПоиска = СтрокаПоиска(ОписаниеЯзыка.Наименование) + " " + ОписаниеЯзыка.Код + " " + СтрокаПоиска(ОписаниеЯзыка.Страны); + Иначе + ОписаниеЯзыка = Список.Добавить(); + ОписаниеЯзыка.Код = Язык; + ОписаниеЯзыка.Наименование = Представление; + ОписаниеЯзыка.СтрокаПоиска = СтрокаПоиска(ОписаниеЯзыка.Наименование) + " " + ОписаниеЯзыка.Код; + КонецЕсли; + + КонецЦикла; + + Для Каждого ОписаниеЯзыка Из Список Цикл + ОписаниеЯзыка.Страны = СтрЗаменить(ОписаниеЯзыка.Страны, ",", ", "); + КонецЦикла; + + Список.Сортировать("СтрокаПоиска"); + +КонецПроцедуры + +&НаСервере +Функция СтрокаПоиска(Строка) + Возврат СтрСоединить(СтрРазделить(Строка, "(), ", Ложь), " "); +КонецФункции + +&НаКлиенте +Функция ВыбранныеЯзыки() + + Результат = Новый Массив; + Для Каждого ВыделеннаяСтрока Из Элементы.Список.ВыделенныеСтроки Цикл + Результат.Добавить(Новый Структура("Код,Наименование", Список.НайтиПоИдентификатору(ВыделеннаяСтрока).Код, Список.НайтиПоИдентификатору(ВыделеннаяСтрока).Наименование)); + КонецЦикла; + + Возврат Результат; + +КонецФункции + +&НаКлиенте +Процедура ПоискАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка) + + УстановитьОтбор(Текст); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьОтбор(Текст = Неопределено); + + Если Текст = Неопределено Тогда + Текст = СтрокаПоиска; + КонецЕсли; + + СтруктураОтбора = Новый Структура; + СтруктураОтбора.Вставить("СтрокаПоиска", Текст); + Элементы.Список.ОтборСтрок = Новый ФиксированнаяСтруктура(СтруктураОтбора); + +КонецПроцедуры + +#КонецОбласти 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..3c82ef846 --- /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..43b309bcb --- /dev/null +++ b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаСписка/Form.form @@ -0,0 +1,580 @@ + + + + СписокКомпоновщикНастроекПользовательскиеНастройки + 1 + true + true + + true + + + <key>ru</key> + <value>Группа пользовательских настроек</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + + + Список + 3 + + <key>ru</key> + <value>Список</value> + + true + true + + true + + + Список + + true + None + + Наименование + 16 + + <key>ru</key> + <value>Наименование</value> + + true + true + + true + + + Список.Наименование + + true + + НаименованиеРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + + НаименованиеКонтекстноеМеню + 17 + true + + LabelField + Enter + true + Left + true + + true + true + + + + Код + 19 + true + true + + true + + + Список.Code + + + КодРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + КодКонтекстноеМеню + 20 + true + + LabelField + Enter + true + Left + true + + true + true + + + + Ссылка + 26 + true + true + + + Список.Ref + + + СсылкаРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + + СсылкаКонтекстноеМеню + 27 + true + + LabelField + Enter + true + Left + true + + true + true + + + None + + СписокКоманднаяПанель + 5 + Left + + + OnActivateRow + СписокПриАктивизацииСтроки + + + СписокСтрокаПоиска + 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 + + + OnGetDataAtServer + СписокПриПолученииДанныхНаСервере + + 60 + + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + + true + true + СписокКомпоновщикНастроекПользовательскиеНастройки + +
    + + ГруппаАвтоматическийПеревод + 35 + + ВключитьАвтоматическийПеревод + 29 + + <key>ru</key> + <value>Автоперевод с помощью:</value> + + true + true + + true + + + ВключитьАвтоматическийПеревод + + Right + + OnChange + ВключитьАвтоматическийПереводПриИзменении + + + ВключитьАвтоматическийПереводРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + + ВключитьАвтоматическийПереводКонтекстноеМеню + 30 + true + + CheckBoxField + Enter + true + Left + true + + + + Параметры + 37 + + <key>ru</key> + <value><настроить></value> + + true + true + + true + + + ПараметрыРасширеннаяПодсказка + 39 + Label + true + true + + Left + + + + ПараметрыКонтекстноеМеню + 38 + true + + Label + true + true + + + Click + ПараметрыНажатие + + true + Left + + + true + true + + true + + + <key>ru</key> + <value>Автоматический перевод</value> + + + ГруппаАвтоматическийПереводРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + ФормаСоздать + 22 + + <key>ru</key> + <value>Добавить язык</value> + + true + true + + true + + + ФормаСоздатьРасширеннаяПодсказка + 23 + Label + true + true + + Left + + + Form.Command.Создать + Auto + true + true + true + UserCmds + Auto + + + Группа1 + 24 + true + true + + true + + + Группа1РасширеннаяПодсказка + 25 + Label + true + true + + Left + + + + Form + + + Left + + + OnCreateAtServer + ПриСозданииНаСервере + + Change + Copy + Create + DontBlock + true + true + true + Vertical + true + true + true + auto + true + + Список + 1 + + DynamicList + + + true + + + true + + + Список.Ref + +
    true
    + + ВЫБРАТЬ + СправочникЯзыкиПечатныхФорм.Ссылка, + СправочникЯзыкиПечатныхФорм.ПометкаУдаления, + СправочникЯзыкиПечатныхФорм.Код, + ВЫРАЗИТЬ(NULL КАК СТРОКА(80)) КАК Наименование, + СправочникЯзыкиПечатныхФорм.РеквизитДопУпорядочивания, + СправочникЯзыкиПечатныхФорм.Предопределенный, + СправочникЯзыкиПечатныхФорм.ИмяПредопределенныхДанных +ИЗ + Справочник.ЯзыкиПечатныхФорм КАК СправочникЯзыкиПечатныхФорм + Catalog.ЯзыкиПечатныхФорм + true + true + true + true + true + +
    + + ВключитьАвтоматическийПеревод + + <key>ru</key> + <value>Включить автоматический перевод</value> + + 2 + + Boolean + + + true + + + true + + + + Переводчик + 3 + + EnumRef.СервисыПереводаТекста + + + true + + + true + + + + Создать + + <key>ru</key> + <value>Создать</value> + + 1 + + ru + Создать + + + 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..d6e90b901 --- /dev/null +++ b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаСписка/Module.bsl @@ -0,0 +1,233 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // СтандартныеПодсистемы.ПодключаемыеКоманды + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда + МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); + МодульПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект); + КонецЕсли; + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + + + Элементы.ГруппаАвтоматическийПеревод.Видимость = Ложь; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.ПереводТекста") Тогда + МодульПереводТекстаНаДругиеЯзыки = ОбщегоНазначения.ОбщийМодуль("ПереводТекстаНаДругиеЯзыки"); + ВключитьАвтоматическийПеревод = МодульПереводТекстаНаДругиеЯзыки.ДоступенПереводТекста(); + Элементы.ГруппаАвтоматическийПеревод.Видимость = Истина; + Переводчик = МодульПереводТекстаНаДругиеЯзыки.СервисПереводаТекста(); + Если ЗначениеЗаполнено(Переводчик) Тогда + Элементы.Параметры.Заголовок = Переводчик; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ВключитьАвтоматическийПереводПриИзменении(Элемент) + + Если ЗначениеЗаполнено(Переводчик) Или Не ВключитьАвтоматическийПеревод Тогда + УстановитьИспользованиеСервисаПереводаТекста(ВключитьАвтоматическийПеревод); + ИначеЕсли ВключитьАвтоматическийПеревод Тогда + ПерейтиКНастройкамПереводчика(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПараметрыНажатие(Элемент) + + ПерейтиКНастройкамПереводчика(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок + +&НаКлиенте +Процедура СписокПриАктивизацииСтроки(Элемент) + + // СтандартныеПодсистемы.ПодключаемыеКоманды + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда + МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент"); + МодульПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); + КонецЕсли; + // Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки) + + Для Каждого Строка Из Строки Цикл + Строка.Значение.Данные["Наименование"] = МультиязычностьСервер.ПредставлениеЯзыка(Строка.Значение.Данные["Код"]); + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура Создать(Команда) + + ОписаниеОповещения = Новый ОписаниеОповещения("ПриВыбореЯзыка", ЭтотОбъект); + ОткрытьФорму("Справочник.ЯзыкиПечатныхФорм.Форма.ПодборЯзыкаИзСпискаДоступных", , ЭтотОбъект, , , , ОписаниеОповещения); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// СтандартныеПодсистемы.ПодключаемыеКоманды +&НаКлиенте +Процедура Подключаемый_ВыполнитьКоманду(Команда) + МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент"); + МодульПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт + ВыполнитьКомандуНаСервере(ПараметрыВыполнения); +КонецПроцедуры + +&НаСервере +Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения) + МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); + МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список); +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ОбновитьКоманды() + МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер"); + МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список); +КонецПроцедуры + +// Конец СтандартныеПодсистемы.ПодключаемыеКоманды + +// Параметры: +// ВыбранныеЯзыки - Массив из Структура: +// * Код - Строка +// * Наименование - Строка +// +&НаКлиенте +Процедура ПриВыбореЯзыка(ВыбранныеЯзыки, ДополнительныеПараметры) Экспорт + + Если ВыбранныеЯзыки = Неопределено Тогда + Возврат; + КонецЕсли; + + ДобавленныеЯзыки = ДобавитьЯзыки(ВыбранныеЯзыки); + ОбщегоНазначенияКлиент.ОповеститьОбИзмененииОбъектов(ДобавленныеЯзыки); + Элементы.Список.ТекущаяСтрока = ДобавленныеЯзыки[0]; + Элементы.Список.ВыделенныеСтроки.Очистить(); + Для Каждого Язык Из ДобавленныеЯзыки Цикл + Элементы.Список.ВыделенныеСтроки.Добавить(Язык); + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Функция ДобавитьЯзыки(ВыбранныеЯзыки) + + Результат = Новый Массив; + Для Каждого ОписаниеЯзыка Из ВыбранныеЯзыки Цикл + ЯзыкСсылка = Справочники.ЯзыкиПечатныхФорм.НайтиПоКоду(ОписаниеЯзыка.Код); + Если ЗначениеЗаполнено(ЯзыкСсылка) Тогда + ЯзыкОбъект = ЯзыкСсылка.ПолучитьОбъект(); + Иначе + ЯзыкОбъект = Справочники.ЯзыкиПечатныхФорм.СоздатьЭлемент(); + КонецЕсли; + ЗаполнитьЗначенияСвойств(ЯзыкОбъект, ОписаниеЯзыка); + ЯзыкОбъект.ПометкаУдаления = Ложь; + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.ЯзыкиПечатныхФорм"); + ЭлементБлокировки.УстановитьЗначение("Код", ЯзыкОбъект.Код); + + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + ЯзыкОбъект.Записать(); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + + Результат.Добавить(ЯзыкОбъект.Ссылка); + КонецЦикла; + + Возврат Результат; + +КонецФункции + +&НаСервереБезКонтекста +Процедура УстановитьИспользованиеСервисаПереводаТекста(Использовать); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.ПереводТекста") Тогда + МодульПереводТекстаНаДругиеЯзыки = ОбщегоНазначения.ОбщийМодуль("ПереводТекстаНаДругиеЯзыки"); + МодульПереводТекстаНаДругиеЯзыки.УстановитьИспользованиеСервисаПереводаТекста(Использовать); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПерейтиКНастройкамПереводчика() + + ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗавершенииНастройки", ЭтотОбъект); + ОткрытьФорму("ОбщаяФорма.НастройкаПереводаТекста", , ЭтотОбъект, , , , ОписаниеОповещения); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриЗавершенииНастройки(Знач ВыбранныйПереводчик, ДополнительныеПараметры) Экспорт + + Если ВыбранныйПереводчик = Неопределено Тогда + ВыбранныйПереводчик = ТекущийПереводчик(); + КонецЕсли; + + Если ВключитьАвтоматическийПеревод Тогда + Если Не ЗначениеЗаполнено(ВыбранныйПереводчик) Тогда + ВключитьАвтоматическийПеревод = Ложь; + КонецЕсли; + УстановитьИспользованиеСервисаПереводаТекста(ВключитьАвтоматическийПеревод); + КонецЕсли; + + Переводчик = ВыбранныйПереводчик; + + Если ЗначениеЗаполнено(Переводчик) Тогда + Элементы.Параметры.Заголовок = Переводчик; + Иначе + Элементы.Параметры.Заголовок = НСтр("ru = '<настроить>'"); + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ТекущийПереводчик() + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.ПереводТекста") Тогда + МодульПереводТекстаНаДругиеЯзыки = ОбщегоНазначения.ОбщийМодуль("ПереводТекстаНаДругиеЯзыки"); + Возврат МодульПереводТекстаНаДругиеЯзыки.СервисПереводаТекста(); + КонецЕсли; + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаЭлемента/Form.form new file mode 100644 index 000000000..040cf1ed8 --- /dev/null +++ b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаЭлемента/Form.form @@ -0,0 +1,157 @@ + + + + Язык + 4 + true + true + + true + + + Язык + + + ЯзыкРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + ЯзыкКонтекстноеМеню + 5 + true + + InputField + Enter + true + Left + true + + + StartChoice + ЯзыкНачалоВыбора + + true + true + true + true + true + true + true + + Style.ФонУправляющегоПоля + + Normal + + + + Код + 1 + true + true + + true + + + Объект.Code + + + КодРасширеннаяПодсказка + 3 + Label + true + true + + Left + + + + КодКонтекстноеМеню + 2 + true + + InputField + Show + + ru + Изменение кода локализации вручную не рекомендуется + + Auto + true + Left + true + + true + true + false + true + true + true + true + Normal + + + + ФормаКоманднаяПанель + -1 + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + LockOwner + true + true + true + Vertical + true + true + true + auto + true + + Объект + 1 + + CatalogObject.ЯзыкиПечатныхФорм + + + true + + + true + +
    true
    + true +
    + + Язык + + <key>ru</key> + <value>Язык</value> + + 2 + + String + + + + true + + + true + + + + + + + +
    diff --git a/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаЭлемента/Module.bsl new file mode 100644 index 000000000..b2ede49d3 --- /dev/null +++ b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/Forms/ФормаЭлемента/Module.bsl @@ -0,0 +1,54 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если ЗначениеЗаполнено(Объект.Код) Тогда + Язык = МультиязычностьСервер.ПредставлениеЯзыка(Объект.Код); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ЯзыкНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + ОписаниеОповещения = Новый ОписаниеОповещения("ПриВыбореЯзыка", ЭтотОбъект); + ОткрытьФорму("Справочник.ЯзыкиПечатныхФорм.Форма.ПодборЯзыкаИзСпискаДоступных", Новый Структура("Отбор", Объект.Код), ЭтотОбъект, , , , ОписаниеОповещения); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Параметры: +// ВыбранныеЯзыки - Массив из Структура: +// * Код - Строка +// * Наименование - Строка +// +&НаКлиенте +Процедура ПриВыбореЯзыка(ВыбранныеЯзыки, ДополнительныеПараметры) Экспорт + + Если Не ЗначениеЗаполнено(ВыбранныеЯзыки) Тогда + Возврат; + КонецЕсли; + + ЗаполнитьЗначенияСвойств(Объект, ВыбранныеЯзыки[0]); + Язык = ВыбранныеЯзыки[0].Наименование; + Модифицированность = Истина; + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/Catalogs/ЯзыкиПечатныхФорм/ManagerModule.bsl b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/ManagerModule.bsl new file mode 100644 index 000000000..e2e6575da --- /dev/null +++ b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/ManagerModule.bsl @@ -0,0 +1,105 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ЗаполнитьПоставляемыеЯзыки() Экспорт + + Для Каждого КодЯзыка Из СтандартныеПодсистемыСервер.ЯзыкиКонфигурации() Цикл + + НачатьТранзакцию(); + Попытка + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.ЯзыкиПечатныхФорм"); + ЭлементБлокировки.УстановитьЗначение("Код", КодЯзыка); + Блокировка.Заблокировать(); + + Если Не ЗначениеЗаполнено(Справочники.ЯзыкиПечатныхФорм.НайтиПоКоду(КодЯзыка)) Тогда + Язык = Справочники.ЯзыкиПечатныхФорм.СоздатьЭлемент(); + Язык.Код = КодЯзыка; + Язык.Записать(); + КонецЕсли; + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ДоступныеЯзыки(СРегиональнымиНастройками = Ложь) Экспорт + + ТекстЗапроса = + "ВЫБРАТЬ + | ЯзыкиПечатныхФорм.Код КАК Код + |ИЗ + | Справочник.ЯзыкиПечатныхФорм КАК ЯзыкиПечатныхФорм + |ГДЕ + | НЕ ЯзыкиПечатныхФорм.ПометкаУдаления + | + |УПОРЯДОЧИТЬ ПО + | ЯзыкиПечатныхФорм.РеквизитДопУпорядочивания, + | ЯзыкиПечатныхФорм.Ссылка"; + + Запрос = Новый Запрос(ТекстЗапроса); + Языки = Запрос.Выполнить().Выгрузить(); + + Если Не СРегиональнымиНастройками Тогда + Для Каждого Язык Из Языки Цикл + Язык.Код = СтрРазделить(Язык.Код, "_", Истина)[0]; + КонецЦикла; + Языки.Свернуть("Код"); + КонецЕсли; + + Возврат Языки.ВыгрузитьКолонку("Код"); + +КонецФункции + +Функция ДополнительныеЯзыкиПечатныхФорм() Экспорт + + ТекстЗапроса = + "ВЫБРАТЬ + | ЯзыкиПечатныхФорм.Код КАК КодЯзыка + |ИЗ + | Справочник.ЯзыкиПечатныхФорм КАК ЯзыкиПечатныхФорм + |ГДЕ + | НЕ ЯзыкиПечатныхФорм.ПометкаУдаления + | И НЕ ЯзыкиПечатныхФорм.Код В (&ЯзыкиКонфигурации) + | + |УПОРЯДОЧИТЬ ПО + | ЯзыкиПечатныхФорм.РеквизитДопУпорядочивания"; + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("ЯзыкиКонфигурации", СтандартныеПодсистемыСервер.ЯзыкиКонфигурации()); + + Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("КодЯзыка"); + +КонецФункции + +Функция ЭтоДополнительныйЯзыкПечатныхФорм(КодЯзыка) Экспорт + + Если Не ЗначениеЗаполнено(КодЯзыка) Тогда + Возврат Ложь; + КонецЕсли; + + Возврат СтандартныеПодсистемыСервер.ЯзыкиКонфигурации().Найти(КодЯзыка) = Неопределено; + +КонецФункции + +#КонецОбласти + +#КонецЕсли \ 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..c8d70e035 --- /dev/null +++ b/SSL/src/Catalogs/ЯзыкиПечатныхФорм/ЯзыкиПечатныхФорм.mdo @@ -0,0 +1,167 @@ + + + + + + + + + + ЯзыкиПечатныхФорм + + ru + Языки печатных форм + + true + Catalog.ЯзыкиПечатныхФорм.StandardAttribute.Code + 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 + + ru + Код локализации + + + Use + + + + Use + Catalog.ЯзыкиПечатныхФорм.StandardAttribute.Code + Managed + Use + + ru + Язык + + 2 + true + 13 + String + Variable + true + InDialog + BothWays + Catalog.ЯзыкиПечатныхФорм.Form.ФормаЭлемента + Catalog.ЯзыкиПечатныхФорм.Form.ФормаСписка + + РеквизитДопУпорядочивания + + ru + Порядок + + + Number + + 5 + + + + ru + Используется для упорядочивания (служебный) + + + + + 0 + + IndexWithAdditionalOrder + Use + + + ФормаСписка + + ru + Форма списка + + PersonalComputer + MobileDevice + + + ПодборЯзыкаИзСпискаДоступных + + ru + Подбор языка из списка доступных + + PersonalComputer + MobileDevice + + + ФормаЭлемента + + ru + Форма элемента + + PersonalComputer + MobileDevice + + diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl index ca3268fe4..8f32296e0 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl index 623409d61..f313f3fc1 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl @@ -64,7 +64,10 @@ Элементы.ЗаполнитьИдентификаторДляФормул.Доступность = НЕ Элементы.ИдентификаторДляФормул.ТолькоПросмотр; - МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + КонецЕсли; ТекущийЗаголовок = Объект.Заголовок; @@ -229,6 +232,10 @@ ТекущийОбъект.Имя = ТекущийОбъект.Имя + ВРег(Лев(ЧастьЗаголовка, 1)) + Сред(ЧастьЗаголовка, 2); КонецЦикла; + Если ИмяНачинаетсяСЦифры(ТекущийОбъект.Имя) Тогда + ТекущийОбъект.Имя = "_" + ТекущийОбъект.Имя; + КонецЕсли; + УИД = Новый УникальныйИдентификатор(); СтрокаУИД = СтрЗаменить(Строка(УИД), "-", ""); ТекущийОбъект.Имя = ТекущийОбъект.Имя + "_" + СтрокаУИД; @@ -247,7 +254,10 @@ ТекущийОбъект.ДополнительныеСвойства.Вставить("ПроверкаИдентификатораДляФормулВыполнена"); КонецЕсли; - МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + КонецЕсли; КонецПроцедуры @@ -301,7 +311,10 @@ // Обработчик подсистемы запрета редактирования реквизитов объектов. ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект); - МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; ОбновитьСоставЭлементовФормы(); @@ -385,7 +398,10 @@ КонецЕсли; // Конец СтандартныеПодсистемы.УправлениеДоступом - МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; КонецПроцедуры @@ -510,7 +526,12 @@ &НаКлиенте Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка) - МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент"); + МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -615,7 +636,6 @@ Если ПереданныеПараметрыФормы.Перетаскивание Тогда Результат.Вставить("Перетаскивание", Истина); КонецЕсли; - КонвертироватьДополнительныйРеквизитВОбщий(); ОповеститьОВыборе(Результат); Возврат; КонецЕсли; @@ -794,7 +814,7 @@ &НаСервереБезКонтекста Функция ЗаголовокДляФормированияИдентификатора(Знач Заголовок, Знач Представления) - Если ТекущийЯзык() <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда + Если ТекущийЯзык().КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда Отбор = Новый Структура(); Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка()); НайденныеСтроки = Представления.НайтиСтроки(Отбор); @@ -1022,35 +1042,6 @@ КонецПроцедуры -&НаСервере -Процедура КонвертироватьДополнительныйРеквизитВОбщий() - Возврат; - - ВыбранныйРеквизит = ПереданныеПараметрыФормы.ВладелецДополнительныхЗначений; // ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - НаборСвойств = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВыбранныйРеквизит, "НаборСвойств"); - Если Не ЗначениеЗаполнено(НаборСвойств) Тогда - Возврат; - КонецЕсли; - - НачатьТранзакцию(); - Попытка - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения"); - ЭлементБлокировки.УстановитьЗначение("Ссылка", ВыбранныйРеквизит); - Блокировка.Заблокировать(); - - ВыбранныйРеквизитОбъект = ВыбранныйРеквизит.ПолучитьОбъект(); - ВыбранныйРеквизитОбъект.НаборСвойств = Справочники.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка(); - ВыбранныйРеквизитОбъект.Наименование = ВыбранныйРеквизитОбъект.Заголовок; - ВыбранныйРеквизитОбъект.Записать(); - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; -КонецПроцедуры - &НаСервере Процедура ЗаполнитьКарточкуРеквизитаИлиСведения() @@ -2204,7 +2195,6 @@ ЗаданаЗависимостьДоступности = Ложь; ЗаданаЗависимостьОбязательностиЗаполнения = Ложь; ЗаданаЗависимостьВидимости = Ложь; - ЗависимостиСвойств = Объект.ЗависимостиДополнительныхРеквизитов; ОтборПоНабору = Новый Структура; ОтборПоНабору.Вставить("НаборСвойств", ТекущийНаборСвойств); @@ -2569,7 +2559,7 @@ &НаСервереБезКонтекста Функция НаименованиеУжеИспользуется(Знач Заголовок, Знач ТекущееСвойство, Знач НаборСвойств, НовоеНаименование, Знач Представления) - Если ТекущийЯзык() <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда + Если ТекущийЯзык().КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда Отбор = Новый Структура(); Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка()); НайденныеСтроки = Представления.НайтиСтроки(Отбор); @@ -2647,6 +2637,16 @@ &НаСервереБезКонтекста Функция ИмяУжеИспользуется(Знач Имя, Знач ТекущееСвойство, НовоеНаименование) + НовоеИмя = Имя; + УправлениеСвойствамиСлужебный.УдалитьНедопустимыеСимволы(НовоеИмя); + Если НовоеИмя <> Имя + Или ИмяНачинаетсяСЦифры(Имя) + Или СтрРазделить(НовоеИмя, " ", Истина).Количество() > 1 Тогда + + ТекстВопроса = НСтр("ru = 'Имя (группа Для разработчиков) должно состоять из одного слова, начинаться с буквы и не содержать специальных символов, кроме «_».'"); + Возврат ТекстВопроса; + КонецЕсли; + Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 @@ -2694,6 +2694,16 @@ КонецФункции +&НаСервереБезКонтекста +Функция ИмяНачинаетсяСЦифры(ИмяРеквизита) + ПервыйСимвол = Лев(ИмяРеквизита, 1); + Если СтрНайти("0123456789", ПервыйСимвол) > 0 Тогда + Возврат Истина; + КонецЕсли; + + Возврат Ложь; +КонецФункции + &НаСервереБезКонтекста Функция ИдентификаторДляФормулУжеИспользуется(Знач ИдентификаторДляФормул, Знач ТекущееСвойство) diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl index aebaab451..1b225884d 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -39,7 +39,9 @@ // СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов -// См. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами. +// Возвращаемое значение: +// см. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииЗаблокированныхРеквизитов.ЗаблокированныеРеквизиты. +// Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт Результат = Новый Массив; @@ -56,7 +58,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = @@ -98,7 +102,19 @@ КонецПроцедуры Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка) - МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка, "Заголовок"); + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка, "Заголовок"); + КонецЕсли; +#Иначе + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка, "Заголовок"); + КонецЕсли; +#КонецЕсли + Если Не ЗначениеЗаполнено(Представление) Тогда Представление = Данные.Заголовок; КонецЕсли; @@ -120,9 +136,9 @@ // Проверяет уникальность идентификатора, а также соответствие идентификатора правилам написания // // Параметры: -// ИдентификаторДляФормул - Строка - идентификатор для формул. -// Ссылка - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - ссылка на текущий объект. -// Отказ - Булево - флаг отказа при наличии ошибки. +// ИдентификаторДляФормул - Строка - идентификатор для формул. +// Ссылка - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - ссылка на текущий объект. +// Отказ - Булево - флаг отказа при наличии ошибки. // Процедура ПроверитьУникальностьИдентификатора(ИдентификаторДляФормул, Ссылка, Отказ) Экспорт @@ -198,10 +214,10 @@ // Возвращает уникальный идентификатора для формул (после проверки на уникальность) // // Параметры: -// ПредставлениеОбъекта - Строка - представление, из которого будет сформирован идентификатор для формул. -// СсылкаНаТекущийОбъект - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - ссылка на текущий элемент. +// ПредставлениеОбъекта - Строка - представление, из которого будет сформирован идентификатор для формул. +// СсылкаНаТекущийОбъект - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - ссылка на текущий элемент. // Возвращаемое значение: -// Строка - уникальное значение идентификатора для формул. +// Строка - уникальное значение идентификатора для формул. // Функция УникальныйИдентификаторДляФормул(ПредставлениеОбъекта, СсылкаНаТекущийОбъект) Экспорт diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl index e2093f4e3..c332d7e10 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ObjectModule.bsl @@ -93,7 +93,7 @@ "ВЫБРАТЬ | Наборы.Ссылка КАК Ссылка |ИЗ - | %1 КАК Свойства + | &ИмяТаблицы КАК Свойства | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений КАК Наборы | ПО (Свойства.Ссылка = Наборы.Ссылка) |ГДЕ @@ -104,7 +104,7 @@ Иначе ИмяТаблицы = "Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты"; КонецЕсли; - Запрос.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Запрос.Текст, ИмяТаблицы); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицы", ИмяТаблицы); Запрос.УстановитьПараметр("Свойство", Ссылка); Запрос.УстановитьПараметр("ПометкаУдаления", СвойстваОбъекта.ПометкаУдаления); @@ -186,7 +186,11 @@ #Область СлужебныйПрограммныйИнтерфейс Процедура ПриЧтенииПредставленийНаСервере() Экспорт - МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); + КонецЕсли; КонецПроцедуры #КонецОбласти diff --git a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Forms/ФормаСписка/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Forms/ФормаСписка/Module.bsl index 32ee7e880..9f47b390f 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Forms/ФормаСписка/Module.bsl @@ -11,7 +11,10 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект); + КонецЕсли; КонецПроцедуры diff --git a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Forms/ФормаЭлемента/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Forms/ФормаЭлемента/Module.bsl index f171303a1..c65bc1d08 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Forms/ФормаЭлемента/Module.bsl @@ -11,23 +11,41 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + КонецЕсли; КонецПроцедуры &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) - МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; + КонецПроцедуры &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) - МультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ТекущийОбъект); + КонецЕсли; + КонецПроцедуры &НаСервере Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) - МультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -36,7 +54,12 @@ &НаКлиенте Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка) - МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент"); + МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + КонецЕсли; + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ManagerModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ManagerModule.bsl index 4f6bc995a..b25ccc4c3 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ManagerModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт @@ -43,7 +43,11 @@ Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) - МультиязычностьСервер.ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка, Метаданные.ПланыВидовХарактеристик.ОбъектыАдресацииЗадач); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ОбработкаПолученияДанныхВыбора( + ДанныеВыбора, Параметры, СтандартнаяОбработка, Метаданные.ПланыВидовХарактеристик.ОбъектыАдресацииЗадач); + КонецЕсли; КонецПроцедуры @@ -51,13 +55,33 @@ Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка) - МультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка); +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка); + КонецЕсли; + #Иначе + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка); + КонецЕсли; +#КонецЕсли КонецПроцедуры Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка) - МультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#Иначе + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиентСервер"); + МодульМультиязычностьКлиентСервер.ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка); + КонецЕсли; +#КонецЕсли КонецПроцедуры @@ -67,52 +91,46 @@ #Область СлужебныйПрограммныйИнтерфейс -// Определяет настройки начального заполнения элементов -// +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов +// // Параметры: -// Настройки - Структура: -// * ПриНачальномЗаполненииЭлемента - Булево - если Истина, то для каждого элемента будет -// вызвана процедура индивидуального заполнения ПриНачальномЗаполненииЭлемента. -// +// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки +// Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт Настройки.ПриНачальномЗаполненииЭлемента = Истина; КонецПроцедуры -// Вызывается при начальном заполнении объектов адресации задач. -// Стандартный реквизит ТипЗначения заполняется в процедуре ПриНачальномЗаполненииЭлемента. -// +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов +// // Параметры: -// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций. -// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов -// объекта ПВХ ОбъектыАдресацииЗада. -// ТабличныеЧасти - Структура - описание табличных частей объекта, где: -// * Ключ - Строка - имя табличной части; -// * Значение - ТаблицаЗначений - табличная часть в виде таблицы значений, структуру которой -// необходимо скопировать перед заполнением. Например: -// Элемент.Ключи = ТабличныеЧасти.Ключи.Скопировать(); -// ЭлементТЧ = Элемент.Ключи.Добавить(); -// ЭлементТЧ.ИмяКлюча = "Первичный"; -// +// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков +// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы +// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти +// Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт Элемент = Элементы.Добавить(); Элемент.ИмяПредопределенныхДанных = "ВсеОбъектыАдресации"; - МультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", - "ru='Все объекты адресации'", КодыЯзыков); // @НСтр + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ЗаполнитьМультиязычныйРеквизит(Элемент, "Наименование", + "ru='Все объекты адресации'", КодыЯзыков); // @НСтр-2 + КонецЕсли; БизнесПроцессыИЗадачиПереопределяемый.ПриНачальномЗаполненииОбъектовАдресацииЗадач(КодыЯзыков, Элементы, ТабличныеЧасти); КонецПроцедуры -// Вызывается при начальном заполнении создаваемого объекта адресации задач. -// +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлемента +// // Параметры: -// Объект - ПланВидовХарактеристикОбъект.ОбъектыАдресацииЗадач - заполняемый объект. -// Данные - СтрокаТаблицыЗначений - данные заполнения. -// ДополнительныеПараметры - Структура -// +// Объект - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлемента.Объект +// Данные - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлемента.Данные +// ДополнительныеПараметры - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлемента.ДополнительныеПараметры +// Процедура ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры) Экспорт БизнесПроцессыИЗадачиПереопределяемый.ПриНачальномЗаполненииЭлементаОбъектаАдресацииЗадачи(Объект, Данные, ДополнительныеПараметры); diff --git a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ObjectModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ObjectModule.bsl index aa9279780..cddba4602 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ObjectModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/ObjectModule.bsl @@ -12,7 +12,10 @@ Процедура ПриЧтенииПредставленийНаСервере() Экспорт - МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ЭтотОбъект); + КонецЕсли; КонецПроцедуры diff --git a/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/ManagerModule.bsl b/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/ManagerModule.bsl index eb48a0011..5b031ba86 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/ManagerModule.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/ManagerModule.bsl @@ -17,7 +17,7 @@ // Возвращает реквизиты справочника, которые образуют естественный ключ для элементов справочника. // // Возвращаемое значение: -// Массив Из Строка - массив имен реквизитов, образующих естественный ключ. +// Массив из Строка - массив имен реквизитов, образующих естественный ключ. // Функция ПоляЕстественногоКлюча() Экспорт diff --git a/SSL/src/CommonCommands/ПредупрежденияПриЗавершенииРаботы/CommandModule.bsl b/SSL/src/CommonCommands/ПредупрежденияПриЗавершенииРаботы/CommandModule.bsl index cb14f2a42..35453414f 100644 --- a/SSL/src/CommonCommands/ПредупрежденияПриЗавершенииРаботы/CommandModule.bsl +++ b/SSL/src/CommonCommands/ПредупрежденияПриЗавершенииРаботы/CommandModule.bsl @@ -11,21 +11,7 @@ &НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) - Параметры = Новый Структура; - - // Внешние параметры описания результата. - Параметры.Вставить("Отказ", Ложь); - Параметры.Вставить("Предупреждения", СтандартныеПодсистемыКлиент.ПараметрКлиента("ПредупрежденияПриЗавершенииРаботы")); - - // Внешние параметры управления выполнением. - Параметры.Вставить("ИнтерактивнаяОбработка", Неопределено); // ОписаниеОповещения. - Параметры.Вставить("ОбработкаПродолжения", Неопределено); // ОписаниеОповещения. - Параметры.Вставить("НепрерывноеВыполнение", Истина); - - // Внутренние параметры. - Параметры.Вставить("ОбработкаЗавершения", Новый ОписаниеОповещения( - "ДействияПередЗавершениемРаботыСистемыОбработкаЗавершения", СтандартныеПодсистемыКлиент, Параметры)); - + Параметры = СтандартныеПодсистемыКлиент.ПараметрыДействийПередЗавершениемРаботыСистемы(); СтандартныеПодсистемыКлиент.ДействияПередЗавершениемРаботыСистемы(Параметры); КонецПроцедуры diff --git a/SSL/src/CommonForms/АвтономнаяРабота/Form.form b/SSL/src/CommonForms/АвтономнаяРабота/Form.form index 72c456f7f..7c9118cb4 100644 --- a/SSL/src/CommonForms/АвтономнаяРабота/Form.form +++ b/SSL/src/CommonForms/АвтономнаяРабота/Form.form @@ -774,10 +774,6 @@ true - - <key>ru</key> - <value>Настройка автоматической синхронизации</value> - НастройкаАвтоматическойСинхронизацииExtendedTooltip 86 @@ -1129,10 +1125,6 @@ true - - <key>ru</key> - <value>Автономная работа</value> - АвтономнаяРаботаExtendedTooltip 68 diff --git a/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Form.form b/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Form.form index d78e50a4f..5bba811ec 100644 --- a/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Form.form +++ b/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Form.form @@ -959,10 +959,6 @@ СписокАвтономныхРабочихМест 78 - - <key>ru</key> - <value>Список автономных рабочих мест</value> - true true @@ -1222,10 +1218,6 @@ true - - <key>ru</key> - <value>Список автономных рабочих мест группа 3</value> - СписокАвтономныхРабочихМестГруппа3ExtendedTooltip 157 @@ -1300,10 +1292,6 @@ true - - <key>ru</key> - <value>Список автономных рабочих мест группа 1</value> - СписокАвтономныхРабочихМестГруппа1ExtendedTooltip 159 @@ -1378,10 +1366,6 @@ true - - <key>ru</key> - <value>Список автономных рабочих мест группа 2</value> - СписокАвтономныхРабочихМестГруппа2ExtendedTooltip 162 @@ -1684,10 +1668,6 @@ true - - <key>ru</key> - <value>Список автономных рабочих мест группа 4</value> - СписокАвтономныхРабочихМестГруппа4ExtendedTooltip 151 @@ -1785,10 +1765,6 @@ true - - <key>ru</key> - <value>Автономная работа</value> - true АвтономнаяРаботаExtendedTooltip diff --git a/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Module.bsl b/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Module.bsl index 44304ba0f..4ca4f344c 100644 --- a/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Module.bsl @@ -142,10 +142,10 @@ Процедура КакНастроитьАвтономноеРабочееМесто(Команда) ПараметрыФормы = Новый Структура; - ПараметрыФормы.Вставить("ИмяМакета", "ИнструкцияПоНастройкеАвтономногоРабочегоМеста"); + ПараметрыФормы.Вставить("ИмяМакета", "ИнструкцияПоНастройкеАРМ"); ПараметрыФормы.Вставить("Заголовок", НСтр("ru = 'Как настроить автономное рабочее место'")); - ОткрытьФорму("Обработка.ПомощникСозданияАвтономногоРабочегоМеста.Форма.ДополнительноеОписание", ПараметрыФормы, ЭтотОбъект, "ИнструкцияПоНастройкеАвтономногоРабочегоМеста"); + ОткрытьФорму("Обработка.ПомощникСозданияАвтономногоРабочегоМеста.Форма.ДополнительноеОписание", ПараметрыФормы, ЭтотОбъект, "ИнструкцияПоНастройкеАРМ"); КонецПроцедуры diff --git a/SSL/src/CommonForms/АутентификацияВСервисе/Module.bsl b/SSL/src/CommonForms/АутентификацияВСервисе/Module.bsl index 9873c59d6..c6559432d 100644 --- a/SSL/src/CommonForms/АутентификацияВСервисе/Module.bsl +++ b/SSL/src/CommonForms/АутентификацияВСервисе/Module.bsl @@ -34,8 +34,25 @@ &НаКлиенте Процедура ОК(Команда) - ПарольПользователяСервиса = Пароль; - Закрыть(ПарольПользователяСервиса); + ТекстОшибки = ""; + + Если ТипЗнч(ЭтотОбъект.ОписаниеОповещенияОЗакрытии) = Тип("ОписаниеОповещения") Тогда + ПарольПользователяСервиса = Пароль; + Попытка + ВыполнитьОбработкуОповещения(ЭтотОбъект.ОписаниеОповещенияОЗакрытии, ПарольПользователяСервиса); + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ЗаписатьОшибкуВЖурнал(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке) + Символы.ПС + + НСтр("ru = 'Возможно пароль введен неверно, повторите ввод пароля.'"); + КонецПопытки; + КонецЕсли; + + Закрыть(); + + Если ЗначениеЗаполнено(ТекстОшибки) Тогда + ПоказатьПредупреждение(, ТекстОшибки); + КонецЕсли; КонецПроцедуры @@ -46,4 +63,17 @@ КонецПроцедуры -#КонецОбласти \ No newline at end of file +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервереБезКонтекста +Процедура ЗаписатьОшибкуВЖурнал(ТекстОшибки) + + ЗаписьЖурналаРегистрации( + НСтр("ru = 'Ошибка выполнения'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка,,, ТекстОшибки); + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/CommonForms/БлокировкаРаботыСВнешнимиРесурсами/Form.form b/SSL/src/CommonForms/БлокировкаРаботыСВнешнимиРесурсами/Form.form index 416289453..78c232cdf 100644 --- a/SSL/src/CommonForms/БлокировкаРаботыСВнешнимиРесурсами/Form.form +++ b/SSL/src/CommonForms/БлокировкаРаботыСВнешнимиРесурсами/Form.form @@ -236,10 +236,6 @@ true - - <key>ru</key> - <value>Командная панель</value> - ГруппаКоманднаяПанельРасширеннаяПодсказка 28 @@ -318,10 +314,6 @@ true - - <key>ru</key> - <value>Командная панель параметры</value> - ГруппаКоманднаяПанельПараметрыРасширеннаяПодсказка 33 @@ -403,10 +395,6 @@ true - - <key>ru</key> - <value>Параметры формы</value> - ГруппаПараметрыФормыРасширеннаяПодсказка 19 diff --git a/SSL/src/CommonForms/ВводНаРазныхЯзыках/Form.form b/SSL/src/CommonForms/ВводНаРазныхЯзыках/Form.form index ac1957bcd..f8321fd72 100644 --- a/SSL/src/CommonForms/ВводНаРазныхЯзыках/Form.form +++ b/SSL/src/CommonForms/ВводНаРазныхЯзыках/Form.form @@ -1,5 +1,71 @@ - + + + КоманднаяПанель + 9 + + Перевести + 11 + + <key>ru</key> + <value>Перевести автоматически</value> + + true + true + + true + + + ПеревестиРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + UsualButton + Form.Command.Перевести + Normal + PictureAndText + true + true + UserCmds + + CommonPicture.ЗаполнитьФорму + + Auto + + true + true + + true + + + <key>ru</key> + <value>Командная панель</value> + + + КоманднаяПанельРасширеннаяПодсказка + 10 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + ГруппаЯзыки 5 @@ -190,6 +256,20 @@ true + + ФормаРедактирования + 5 + + String + + + + true + + + true + + МультиязычныеСтрокиВРеквизитах @@ -226,6 +306,28 @@ Auto Auto
    + + Перевести + + <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 a15a7d510..32ce7446e 100644 --- a/SSL/src/CommonForms/ВводНаРазныхЯзыках/Module.bsl +++ b/SSL/src/CommonForms/ВводНаРазныхЯзыках/Module.bsl @@ -76,8 +76,17 @@ Иначе + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда + МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); + МодульУправлениеПечатьюМультиязычность.ПриЗаполненииНабораЯзыков(НаборЯзыков); + КонецЕсли; + Для Каждого ЯзыкКонфигурации Из Метаданные.Языки Цикл + Если НаборЯзыков.НайтиСтроки(Новый Структура("КодЯзыка", ЯзыкКонфигурации.КодЯзыка)).Количество() > 0 Тогда + Продолжить; + КонецЕсли; + НовыйЯзык = НаборЯзыков.Добавить(); НовыйЯзык.КодЯзыка = ЯзыкКонфигурации.КодЯзыка; НовыйЯзык.Представление = ЯзыкКонфигурации.Представление(); @@ -166,6 +175,13 @@ КонецЦикла; КонецЕсли; + Элементы.Перевести.Видимость = Ложь; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.ПереводТекста") Тогда + МодульПереводТекстаНаДругиеЯзыки = ОбщегоНазначения.ОбщийМодуль("ПереводТекстаНаДругиеЯзыки"); + Элементы.Перевести.Видимость = МодульПереводТекстаНаДругиеЯзыки.ДоступенПереводТекста() + И Не Параметры.ТолькоПросмотр И Не ТолькоПросмотр; + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -180,9 +196,12 @@ Возврат; КонецЕсли; - Результат = Новый Структура("ОсновнойЯзык", ОсновнойЯзык); - Результат.Вставить("ЗначенияНаРазныхЯзыках", Новый Массив); + Результат = Новый Структура; + + Результат.Вставить("ОсновнойЯзык", ОсновнойЯзык); Результат.Вставить("ХранениеВТабличнойЧасти", Не МультиязычныеСтрокиВРеквизитах); + Результат.Вставить("Модифицированность", Модифицированность); + Результат.Вставить("ЗначенияНаРазныхЯзыках", Новый Массив); Для каждого Язык Из Языки Цикл @@ -206,6 +225,13 @@ КонецПроцедуры +&НаКлиенте +Процедура Перевести(Команда) + + ПеревестиНаСервере(); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -234,11 +260,18 @@ КонецЕсли; Элемент.ПутьКДанным = ЯзыкКонфигурации.Имя; - Элемент.Вид = ВидПоляФормы.ПолеВвода; - Элемент.Ширина = 40; - Элемент.МногострочныйРежим = МногострочныйРежим; - Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх; - Элемент.ТолькоПросмотр = ТолькоПросмотр; + + Если ЗначениеЗаполнено(ЯзыкКонфигурации.ФормаРедактирования) Тогда + Элемент.Вид = ВидПоляФормы.ПолеНадписи; + Элемент.Гиперссылка = Истина; + Элемент.УстановитьДействие("Нажатие", "Подключаемый_Нажатие"); + Иначе + Элемент.Вид = ВидПоляФормы.ПолеВвода; + Элемент.Ширина = 40; + Элемент.МногострочныйРежим = МногострочныйРежим; + Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх; + Элемент.ТолькоПросмотр = ТолькоПросмотр; + КонецЕсли; КонецЦикла; @@ -257,5 +290,49 @@ КонецФункции +&НаСервере +Процедура ПеревестиНаСервере() + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.ПереводТекста") Тогда + МодульПереводТекстаНаДругиеЯзыки = ОбщегоНазначения.ОбщийМодуль("ПереводТекстаНаДругиеЯзыки"); + Иначе + Возврат; + КонецЕсли; + + ЗначениеДляПеревода = Языки[0]; + ИсходныйЯзык = СтрРазделить(ЗначениеДляПеревода.КодЯзыка, "_", Ложь)[0]; + ПредставлениеНаИсходномЯзыке = ЭтотОбъект[ЗначениеДляПеревода.Имя]; + + ДоступныеЯзыки = МодульПереводТекстаНаДругиеЯзыки.ДоступныеЯзыки(); + Если ДоступныеЯзыки.НайтиПоЗначению(ИсходныйЯзык) = Неопределено Тогда + Возврат; + КонецЕсли; + + Для Индекс = 1 По Языки.Количество() - 1 Цикл + СтрокаТаблицы = Языки[Индекс]; + ЯзыкПеревода = СтрРазделить(СтрокаТаблицы.КодЯзыка, "_", Ложь)[0]; + Если ДоступныеЯзыки.НайтиПоЗначению(ЯзыкПеревода) = Неопределено Тогда + Продолжить; + КонецЕсли; + Если ЗначениеЗаполнено(ЭтотОбъект[СтрокаТаблицы.Имя]) Тогда + Элементы[СтрокаТаблицы.Имя].ЦветФона = Новый Цвет; + Иначе + ЭтотОбъект[СтрокаТаблицы.Имя] = ПеревестиТекстНаСервере(ПредставлениеНаИсходномЯзыке, ЯзыкПеревода, ИсходныйЯзык); + Элементы[СтрокаТаблицы.Имя].ЦветФона = ЦветаСтиля.ЦветИзмененногоПоля; + Модифицированность = Истина; + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ПеревестиТекстНаСервере(ИсходныйТекст, ЯзыкПеревода, ИсходныйЯзык) + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.ПереводТекста") Тогда + МодульПереводТекстаНаДругиеЯзыки = ОбщегоНазначения.ОбщийМодуль("ПереводТекстаНаДругиеЯзыки"); + Возврат МодульПереводТекстаНаДругиеЯзыки.ПеревестиТекст(ИсходныйТекст, ЯзыкПеревода, ИсходныйЯзык); + КонецЕсли; + +КонецФункции #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonForms/Вопрос/Form.form b/SSL/src/CommonForms/Вопрос/Form.form index ca571b49f..34c4e5453 100644 --- a/SSL/src/CommonForms/Вопрос/Form.form +++ b/SSL/src/CommonForms/Вопрос/Form.form @@ -78,7 +78,6 @@ Left true - true true true true @@ -131,10 +130,6 @@ true - - <key>ru</key> - <value>Строки</value> - 35 СтрокиExtendedTooltip @@ -161,10 +156,6 @@ true - - <key>ru</key> - <value>Колонки</value> - КолонкиExtendedTooltip 17 diff --git a/SSL/src/CommonForms/ВопросОбУстановкеВнешнейКомпоненты/Form.form b/SSL/src/CommonForms/ВопросОбУстановкеВнешнейКомпоненты/Form.form index 50a9c1edc..88fc9b316 100644 --- a/SSL/src/CommonForms/ВопросОбУстановкеВнешнейКомпоненты/Form.form +++ b/SSL/src/CommonForms/ВопросОбУстановкеВнешнейКомпоненты/Form.form @@ -51,10 +51,6 @@ true - - <key>ru</key> - <value>Шапка</value> - ШапкаРасширеннаяПодсказка 17 diff --git a/SSL/src/CommonForms/ВосстановлениеПаролей/Form.form b/SSL/src/CommonForms/ВосстановлениеПаролей/Form.form new file mode 100644 index 000000000..7ff498d6d --- /dev/null +++ b/SSL/src/CommonForms/ВосстановлениеПаролей/Form.form @@ -0,0 +1,2386 @@ + + + + <key>ru</key> + <value>Помощь и восстановление паролей при входе</value> + + + ОтображатьГиперссылкуПомощи + 1 + true + true + + true + + + ОтображатьГиперссылкуПомощи + + Right + + OnChange + НужнаПомощьПриИзменении + + + ОтображатьГиперссылкуПомощиРасширеннаяПодсказка + 3 + Label + true + true + + Left + + + + ОтображатьГиперссылкуПомощиКонтекстноеМеню + 2 + true + + CheckBoxField + Enter + true + Left + true + + + + НавигационнаяСсылкаПомощи + 4 + true + true + + true + + + НавигационнаяСсылкаПомощи + + None + + НавигационнаяСсылкаПомощиРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + НавигационнаяСсылкаПомощиКонтекстноеМеню + 5 + true + + InputField + Enter + true + Left + true + + + Opening + НавигационнаяСсылкаПомощиОткрытие + + true + true + true + true + true + true + true + Normal + + ru + http://server/help + + + + + ВосстановлениеПароля + 7 + + ВосстанавливатьПароль + 45 + true + true + + true + + + ВосстанавливатьПароль + + Right + + OnChange + ВосстанавливатьПарольПриИзменении + + + ВосстанавливатьПарольРасширеннаяПодсказка + 47 + Label + true + true + + Left + + + + ВосстанавливатьПарольКонтекстноеМеню + 46 + true + + CheckBoxField + Enter + true + Left + true + + + + ВариантВосстановленияПароля + 9 + + <key>ru</key> + <value>Восстанавливать пароль</value> + + true + true + + true + + + ВариантВосстановленияПароля + + + OnChange + ВариантВосстановленияПароляПриИзменении + + + ВариантВосстановленияПароляРасширеннаяПодсказка + 11 + Label + true + true + + Left + + + + ВариантВосстановленияПароляКонтекстноеМеню + 10 + true + + RadioButtonField + Enter + true + Left + true + + Tumbler + + + ru + по электронной почте + + + ЧерезЭлектроннуюПочту + + + + + ru + переходом по ссылке + + + ПереходПоСсылке + + + Vertical + + + + ВариантыВосстановления + 17 + + ЭлектроннаяПочта + 19 + + ГруппаОтправкиПоПочте + 106 + + ДекорацияОтправлятьОт + 108 + + <key>ru</key> + <value>Отправлять письмо от:</value> + + true + true + + true + + + ДекорацияОтправлятьОтРасширеннаяПодсказка + 110 + Label + true + true + + Left + + + + ДекорацияОтправлятьОтКонтекстноеМеню + 109 + true + + Label + true + true + + Left + + + + ГруппаВарианты + 69 + + ВариантОтправкиПоПочтеСтандартныйСервис + 100 + + <key>ru</key> + <value>Сервер отправки</value> + + true + true + + true + + + ВариантОтправкиПоПочте + + None + + OnChange + ВариантОтправкиСтандартныйСервисПриИзменении + + + ВариантОтправкиПоПочтеСтандартныйСервисРасширеннаяПодсказка + 102 + Label + true + true + + Left + + + + ВариантОтправкиПоПочтеСтандартныйСервисКонтекстноеМеню + 101 + true + + RadioButtonField + Enter + true + Left + true + + 1 + + + ru + Стандартный сервис отправки + + + СтандартныйСервис + + + Vertical + + + + ГруппаНастройкиПочты + 111 + + ВариантОтправкиПоПочтеУчетнаяЗапись + 103 + + <key>ru</key> + <value>Сервер отправки</value> + + true + true + + true + + + ВариантОтправкиПоПочте + + None + + OnChange + ВариантОтправкиПоНастройкеПочтыПриИзменении + + + ВариантОтправкиПоПочтеУчетнаяЗаписьРасширеннаяПодсказка + 105 + Label + true + true + + Left + + + + ВариантОтправкиПоПочтеУчетнаяЗаписьКонтекстноеМеню + 104 + true + + RadioButtonField + Enter + true + Left + true + + 1 + + + ru + Настройки почты: + + + ВнешнийПочтовыйСервер + + + Vertical + + + + УчетнаяЗаписьПочты + 35 + true + true + + true + + + УчетнаяЗаписьПочты + + None + + УчетнаяЗаписьПочтыРасширеннаяПодсказка + 37 + Label + true + true + + Left + + + + УчетнаяЗаписьПочтыКонтекстноеМеню + 36 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Настройки почты</value> + + + ГруппаНастройкиПочтыРасширеннаяПодсказка + 112 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + + ВариантОтправкиПоПочтеСвоиНастройки + 40 + + <key>ru</key> + <value>Сервер отправки</value> + + true + true + + true + + + ВариантОтправкиПоПочте + + None + + OnChange + ВариантОтправкиПоПочтеПриИзменении + + + ВариантОтправкиПоПочтеСвоиНастройкиРасширеннаяПодсказка + 42 + Label + true + true + + Left + + + + ВариантОтправкиПоПочтеСвоиНастройкиКонтекстноеМеню + 41 + true + + RadioButtonField + Enter + true + Left + true + + 1 + + + ru + Указанный почтовый сервер + + + РучнаяНастройка + + + Vertical + + + true + true + + true + + + <key>ru</key> + <value>Варианты</value> + + + ГруппаВариантыРасширеннаяПодсказка + 70 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Отправки по почте</value> + + + ГруппаОтправкиПоПочтеРасширеннаяПодсказка + 107 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + + ГруппаРучныеНастройкиПочты + 71 + + ГруппаСерверSMTP + 88 + + АдресСервераSMTP + 85 + true + true + + true + + + АдресСервераSMTP + + + АдресСервераSMTPРасширеннаяПодсказка + 87 + Label + true + true + + Left + + + + АдресСервераSMTPКонтекстноеМеню + 86 + true + + InputField + Enter + true + Left + true + + 27 + true + true + true + true + true + true + Normal + + + + ШифрованиеПриОтправкеПочты + 113 + true + true + + true + + + ШифрованиеПриОтправкеПочты + + + OnChange + ШифрованиеПриПолученииПочтыПриИзменении + + + ШифрованиеПриОтправкеПочтыРасширеннаяПодсказка + 115 + Label + true + true + + Left + + + + ШифрованиеПриОтправкеПочтыКонтекстноеМеню + 114 + true + + RadioButtonField + Enter + true + Left + true + + 2 + + + ru + STARTTLS + + + Авто + + + + + ru + SSL + + + SSL + + + Vertical + + + + ПортSMTP + 73 + true + true + + true + + + ПортSMTP + + + ПортSMTPРасширеннаяПодсказка + 75 + Label + true + true + + Left + + + + ПортSMTPКонтекстноеМеню + 74 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Сервер SMTP</value> + + + ГруппаСерверSMTPРасширеннаяПодсказка + 89 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + + ГруппаПользовательSMTP + 90 + + ПользовательSMTP + 76 + true + true + + true + + + ПользовательSMTP + + + ПользовательSMTPРасширеннаяПодсказка + 78 + Label + true + true + + Left + + + + ПользовательSMTPКонтекстноеМеню + 77 + true + + InputField + Enter + true + Left + true + + 10 + true + true + true + true + true + true + Normal + + + + ПарольSMTP + 79 + true + true + + true + + + ПарольSMTP + + + ПарольSMTPРасширеннаяПодсказка + 81 + Label + true + true + + Left + + + + ПарольSMTPКонтекстноеМеню + 80 + true + + InputField + Enter + true + Left + true + + 10 + true + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Пользователь SMTP</value> + + + ГруппаПользовательSMTPРасширеннаяПодсказка + 91 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + + ИмяОтправителя + 82 + true + true + + true + + + ИмяОтправителя + + + ИмяОтправителяРасширеннаяПодсказка + 84 + Label + true + true + + Left + + + + ИмяОтправителяКонтекстноеМеню + 83 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + ru + Имя отправителя почтовых сообщений + + + + true + true + + true + + + <key>ru</key> + <value>Настройки почтового сервера</value> + + + ГруппаРучныеНастройкиПочтыРасширеннаяПодсказка + 72 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Collapsible + true + Button + true + true + auto + Auto + Auto + + + + ГруппаТекстСообщения + 57 + + ТемаПисьма + 59 + + <key>ru</key> + <value>Тема</value> + + true + true + + true + + + ТемаПисьма + + + ТемаПисьмаРасширеннаяПодсказка + 61 + Label + true + true + + Left + + + + ТемаПисьмаКонтекстноеМеню + 60 + + ВставитьПараметрКонтекстноеМенюГруппа + 120 + + ТемаПисьмаКонтекстноеМенюИмяПользователя + 118 + true + true + + true + + + ТемаПисьмаКонтекстноеМенюИмяПользователяРасширеннаяПодсказка + 119 + Label + true + true + + Left + + + Form.Command.ИмяПользователя + Normal + Auto + true + true + UserCmds + Auto + + + ТемаПисьмаКонтекстноеМенюНаименованиеКонфигурации + 124 + true + true + + true + + + ТемаПисьмаКонтекстноеМенюНаименованиеКонфигурацииРасширеннаяПодсказка + 125 + Label + true + true + + Left + + + Form.Command.НаименованиеКонфигурации + Normal + Auto + true + true + UserCmds + Auto + + + ТемаПисьмаКонтекстноеМенюКодПодтверждения + 122 + true + true + + true + + + ТемаПисьмаКонтекстноеМенюКодПодтвержденияРасширеннаяПодсказка + 123 + Label + true + true + + Left + + + Form.Command.КодПодтверждения + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Вставить параметр</value> + + + ВставитьПараметрКонтекстноеМенюГруппаРасширеннаяПодсказка + 121 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ГруппаКнопкиФорматированногоДокумента + 67 + + ТелоГруппаПараметры + 92 + + ИмяПользователя + 94 + true + true + + true + + + ИмяПользователяРасширеннаяПодсказка + 95 + Label + true + true + + Left + + + Form.Command.ИмяПользователя + Normal + Auto + true + true + UserCmds + Auto + + + ИмяКонфигурации + 96 + true + true + + true + + + ИмяКонфигурацииРасширеннаяПодсказка + 97 + Label + true + true + + Left + + + Form.Command.НаименованиеКонфигурации + Normal + Auto + true + true + UserCmds + Auto + + + КодПодтверждения + 98 + true + true + + true + + + КодПодтвержденияРасширеннаяПодсказка + 99 + Label + true + true + + Left + + + Form.Command.КодПодтверждения + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Вставить параметр</value> + + + ТелоГруппаПараметрыРасширеннаяПодсказка + 93 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + + ГруппаКнопки + 65 + true + true + + true + + + <key>ru</key> + <value>Кнопки</value> + + + ГруппаКнопкиРасширеннаяПодсказка + 66 + Label + true + true + + Left + + + + Item.ТекстСообщения + + + true + true + + true + + + <key>ru</key> + <value>Кнопки форматированного документа</value> + + + ГруппаКнопкиФорматированногоДокументаРасширеннаяПодсказка + 68 + Label + true + true + + Left + + + CommandBar + + Left + + + + ТекстСообщения + 62 + true + true + + true + + + ТекстСообщения + + None + + ТекстСообщенияРасширеннаяПодсказка + 64 + Label + true + true + + Left + + + + ТекстСообщенияКонтекстноеМеню + 63 + + ВставитьПараметрТелоКонтекстноеМенюГруппа + 132 + + ТекстСообщенияКонтекстноеМенюИмяПользователя + 126 + true + true + + true + + + ТекстСообщенияКонтекстноеМенюИмяПользователяРасширеннаяПодсказка + 127 + Label + true + true + + Left + + + Form.Command.ИмяПользователя + Normal + Auto + true + true + UserCmds + Auto + + + ТекстСообщенияКонтекстноеМенюНаименованиеКонфигурации + 130 + true + true + + true + + + ТекстСообщенияКонтекстноеМенюНаименованиеКонфигурацииРасширеннаяПодсказка + 131 + Label + true + true + + Left + + + Form.Command.НаименованиеКонфигурации + Normal + Auto + true + true + UserCmds + Auto + + + ТекстСообщенияКонтекстноеМенюКодПодтверждения + 128 + true + true + + true + + + ТекстСообщенияКонтекстноеМенюКодПодтвержденияРасширеннаяПодсказка + 129 + 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 + + + Popup + + Auto + Normal + + + true + + FormattedDocumentField + Enter + true + Left + true + + 50 + true + 5 + true + true + true + + + true + true + + true + + + <key>ru</key> + <value>Шаблон сообщения с кодом восстановления пароля</value> + + + ГруппаТекстСообщенияРасширеннаяПодсказка + 58 + Label + true + true + + Left + + + UsualGroup + + Vertical + Collapsible + Button + true + true + auto + Auto + Auto + + + + ПараметрыКодаПодтверждения + 48 + + ДлинаКода + 12 + true + true + + true + + + ДлинаКодаПодтверждения + + + ДлинаКодаРасширеннаяПодсказка + 14 + Label + true + true + + Left + + + + ДлинаКодаКонтекстноеМеню + 13 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + ГруппаДлительностьБлокировкиЗапроса + 50 + + ДлительностьБлокировкиЗапроса + 23 + true + true + + true + + + ДлительностьБлокировкиЗапросаОбновленияКодаПодтверждения + + + ДлительностьБлокировкиЗапросаРасширеннаяПодсказка + 25 + Label + true + true + + Left + + + + ДлительностьБлокировкиЗапросаКонтекстноеМеню + 24 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + ДекорацияСек + 52 + + <key>ru</key> + <value>сек.</value> + + true + true + + true + + + ДекорацияСекРасширеннаяПодсказка + 54 + Label + true + true + + Left + + + + ДекорацияСекКонтекстноеМеню + 53 + true + + Label + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Длительность блокировки запроса</value> + + + ГруппаДлительностьБлокировкиЗапросаРасширеннаяПодсказка + 51 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + true + true + Auto + Auto + + + + МаксимальноеКоличествоПопыток + 26 + true + true + + true + + + МаксимальноеКоличествоНеуспешныхПопытокПроверкиКодаПодтверждения + + + МаксимальноеКоличествоПопытокРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + + МаксимальноеКоличествоПопытокКонтекстноеМеню + 27 + true + + InputField + Enter + true + Left + true + + 3 + true + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Код подтверждения</value> + + + ПараметрыКодаПодтвержденияРасширеннаяПодсказка + 49 + Label + true + true + + Left + + + UsualGroup + + Vertical + Collapsible + Button + true + true + auto + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Электронная почта</value> + + + ЭлектроннаяПочтаРасширеннаяПодсказка + 20 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + ПереходПоСсылке + 21 + + АдресСсылкиДляВосстановленияПароля + 29 + + <key>ru</key> + <value>Адрес страницы восстановления пароля</value> + + true + true + + true + + + НавигационнаяСсылкаВосстановленияПароля + + Top + + АдресСсылкиДляВосстановленияПароляРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + + АдресСсылкиДляВосстановленияПароляКонтекстноеМеню + 30 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + ru + http://server/password + + + + true + true + + true + + + <key>ru</key> + <value>Переход по ссылке</value> + + + ПереходПоСсылкеРасширеннаяПодсказка + 22 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Варианты восстановления</value> + + + ВариантыВосстановленияРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + Pages + + Auto + + + true + true + + true + + + <key>ru</key> + <value>Восстановление пароля</value> + + + ВосстановлениеПароляРасширеннаяПодсказка + 8 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + ФормаЗаписатьИЗакрыть + 43 + true + true + + true + + true + + ФормаЗаписатьИЗакрытьРасширеннаяПодсказка + 44 + Label + true + true + + Left + + + Form.Command.ЗаписатьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + ФормаЗаписать + 116 + true + true + + true + + + ФормаЗаписатьРасширеннаяПодсказка + 117 + Label + true + true + + Left + + + Form.Command.Записать + Normal + Auto + true + true + UserCmds + + StdPicture.SaveFile + + Auto + + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + true + auto + true + + ОтображатьГиперссылкуПомощи + + <key>ru</key> + <value>Отображать гиперссылку "Нужна помощь?" в диалоге аутентификации:</value> + + 1 + + Boolean + + + true + + + true + + true + + + НавигационнаяСсылкаПомощи + + <key>ru</key> + <value>Навигационная ссылка помощи</value> + + 2 + + String + + + + true + + + true + + true + + + ДлинаКодаПодтверждения + + <key>ru</key> + <value>Длина генерируемого кода</value> + + 3 + + Number + + 3 + true + + + + true + + + true + + true + + + МаксимальноеКоличествоНеуспешныхПопытокПроверкиКодаПодтверждения + + <key>ru</key> + <value>Допустимое количество неудачных попыток ввода</value> + + 4 + + Number + + 2 + true + + + + true + + + true + + true + + + ДлительностьБлокировкиЗапросаОбновленияКодаПодтверждения + + <key>ru</key> + <value>Минимальное время между повторными запросами</value> + + 5 + + Number + + 3 + true + + + + true + + + true + + true + + + ВариантОтправкиПоПочте + + <key>ru</key> + <value>Вариант отправки по почте</value> + + 6 + + String + + + + true + + + true + + true + + + ВариантВосстановленияПароля + + <key>ru</key> + <value>Вариант восстановления пароля</value> + + 7 + + String + + + + true + + + true + + true + + + УчетнаяЗаписьПочты + + <key>ru</key> + <value>Учетная запись почты</value> + + 8 + + CatalogRef.УчетныеЗаписиЭлектроннойПочты + + + true + + + true + + true + + + НавигационнаяСсылкаВосстановленияПароля + + <key>ru</key> + <value>Навигационная ссылка восстановления пароля</value> + + 9 + + String + + + + true + + + true + + true + + + ВосстанавливатьПароль + + <key>ru</key> + <value>Отображать гиперссылку "Забыли пароль?":</value> + + 10 + + Boolean + + + true + + + true + + true + + + ТекстСообщенияHTML + 11 + + String + + + + true + + + true + + + + ТемаПисьма + + <key>ru</key> + <value>Тема письма</value> + + 12 + + String + + + + true + + + true + + true + + + ТекстСообщения + + <key>ru</key> + <value>Текст сообщения</value> + + 13 + + FormattedDocument + + + true + + + true + + true + + + ПортSMTP + + <key>ru</key> + <value>Порт</value> + + 14 + + Number + + 5 + true + + + + true + + + true + + true + + + АдресСервераSMTP + + <key>ru</key> + <value>Сервер SMTP</value> + + 15 + + String + + 200 + + + + true + + + true + + true + + + ИмяОтправителя + + <key>ru</key> + <value>Отправитель</value> + + 16 + + String + + 200 + + + + true + + + true + + true + + + ПарольSMTP + + <key>ru</key> + <value>Пароль</value> + + 17 + + String + + 100 + + + + true + + + true + + true + + + ПользовательSMTP + + <key>ru</key> + <value>Пользователь</value> + + 18 + + String + + 200 + + + + true + + + true + + true + + + SSL + 19 + + String + + + + true + + + true + + + + ШифрованиеПриОтправкеПочты + + <key>ru</key> + <value>Шифрование</value> + + 20 + + String + + + + true + + + true + + true + + + ПарольИзменен + 21 + + Boolean + + + true + + + true + + + + ИспользоватьSSL + 22 + + Boolean + + + true + + + true + + + + ЗаписатьИЗакрыть + + <key>ru</key> + <value>Записать и закрыть</value> + + 2 + + ru + Записать и закрыть + + + true + + + + ЗаписатьИЗакрыть + + + Auto + Auto + + + ИмяПользователя + + <key>ru</key> + <value>Имя пользователя</value> + + 3 + + ru + Имя пользователя + + + true + + + + ПараметрИмяПользователя + + + Auto + Auto + + + НаименованиеКонфигурации + + <key>ru</key> + <value>Наименование конфигурации</value> + + 4 + + true + + + + НаименованиеКонфигурации + + + Auto + Auto + + + КодПодтверждения + + <key>ru</key> + <value>Код подтверждения</value> + + 5 + + ru + Код подтверждения + + + true + + + + КодПодтверждения + + + Auto + Auto + + + Записать + + <key>ru</key> + <value>Записать</value> + + 1 + + ru + Записать + + + true + + + + Записать + + + Picture + Auto + Auto + + + + + + diff --git a/SSL/src/CommonForms/ВосстановлениеПаролей/Module.bsl b/SSL/src/CommonForms/ВосстановлениеПаролей/Module.bsl new file mode 100644 index 000000000..ee2a30cec --- /dev/null +++ b/SSL/src/CommonForms/ВосстановлениеПаролей/Module.bsl @@ -0,0 +1,535 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда + ВызватьИсключение НСтр("ru = 'Недостаточно прав для выполнения операции.'"); + КонецЕсли; + + Если Не ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда + ВызватьИсключение НСтр("ru = 'Восстановление паролей пользователей не поддерживается. + |Необходимо обновить версию платформы 1С: Предприятие.'"); + КонецЕсли; + + ПрочитьНастройкиВосстановленияПароля(); + + Если ОтображатьГиперссылкуПомощи И ПустаяСтрока(НавигационнаяСсылкаПомощи) Тогда + Элементы.НавигационнаяСсылкаПомощи.ОтметкаНезаполненного = Истина; + КонецЕсли; + + Флаг = ВариантОтправкиПоПочте = "РучнаяНастройка"; + Элементы.ГруппаСерверSMTP.Доступность = Флаг; + Элементы.ГруппаПользовательSMTP.Доступность = Флаг; + Элементы.ИмяОтправителя.Доступность = Флаг; + + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда + УчетнаяЗаписьПочты = Неопределено; + Элементы.ГруппаНастройкиПочты.Видимость = Ложь; + КонецЕсли; + + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда + Элементы.ГруппаНастройкиПочты.Видимость = Ложь; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ВариантВосстановленияПароляПриИзменении(Элемент) + + Если ВариантВосстановленияПароля = "ЧерезЭлектроннуюПочту" Тогда + Элементы.ВариантыВосстановления.ТекущаяСтраница = Элементы.ЭлектроннаяПочта; + Иначе + Элементы.ВариантыВосстановления.ТекущаяСтраница = Элементы.ПереходПоСсылке; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВосстанавливатьПарольПриИзменении(Элемент) + + Если ВосстанавливатьПароль Тогда + Элементы.ВариантВосстановленияПароля.Доступность = Истина; + Элементы.ВариантыВосстановления.Доступность = Истина; + Иначе + Элементы.ВариантВосстановленияПароля.Доступность = Ложь; + Элементы.ВариантыВосстановления.Доступность = Ложь; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура НужнаПомощьПриИзменении(Элемент) + + Элементы.НавигационнаяСсылкаПомощи.Доступность = ОтображатьГиперссылкуПомощи; + +КонецПроцедуры + +&НаКлиенте +Процедура ВариантОтправкиПоПочтеПриИзменении(Элемент) + + Флаг = ВариантОтправкиПоПочте = "РучнаяНастройка"; + Элементы.ГруппаСерверSMTP.Доступность = Флаг; + Элементы.ГруппаПользовательSMTP.Доступность = Флаг; + Элементы.ИмяОтправителя.Доступность = Флаг; + + Если Флаг Тогда + Элементы.ГруппаРучныеНастройкиПочты.Показать(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВариантОтправкиПоНастройкеПочтыПриИзменении(Элемент) + + Элементы.ГруппаСерверSMTP.Доступность = Ложь; + Элементы.ГруппаПользовательSMTP.Доступность = Ложь; + Элементы.ИмяОтправителя.Доступность = Ложь; + +КонецПроцедуры + +&НаКлиенте +Процедура ВариантОтправкиСтандартныйСервисПриИзменении(Элемент) + + Элементы.ГруппаСерверSMTP.Доступность = Ложь; + Элементы.ГруппаПользовательSMTP.Доступность = Ложь; + Элементы.ИмяОтправителя.Доступность = Ложь; + +КонецПроцедуры + +&НаКлиенте +Процедура ШифрованиеПриПолученииПочтыПриИзменении(Элемент) + + Если ШифрованиеПриОтправкеПочты = "Авто" Тогда + ПортSMTP = 25; + Иначе + ПортSMTP = 465 + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ЗаписатьИЗакрыть(Команда) + + Если НастройкиВосстановленияПароляКорректные() Тогда + СохранитьНастройкиВосстановленияПароля(); + Закрыть(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура Записать(Команда) + + Если НастройкиВосстановленияПароляКорректные() Тогда + СохранитьНастройкиВосстановленияПароля(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура НавигационнаяСсылкаПомощиОткрытие(Элемент, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(НавигационнаяСсылкаПомощи); + +КонецПроцедуры + +&НаКлиенте +Процедура КодПодтверждения(Команда) + + ВставитьПараметрВШаблон("&VerificationCode"); + +КонецПроцедуры + +&НаКлиенте +Процедура ПараметрИмяПользователя(Команда) + + ВставитьПараметрВШаблон("&UserPresentation"); + +КонецПроцедуры + +&НаКлиенте +Процедура НаименованиеКонфигурации(Команда) + + ВставитьПараметрВШаблон("&ConfigurationPresentation"); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаКлиенте +Функция НастройкиВосстановленияПароляКорректные() + + ОчиститьСообщения(); + + НастройкиКорректные = Истина; + + Если ОтображатьГиперссылкуПомощи И ПустаяСтрока(НавигационнаяСсылкаПомощи) Тогда + + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru='Не заполнен адрес страницы помощи'"),, + "НавигационнаяСсылкаПомощи"); + НастройкиКорректные = Ложь; + + КонецЕсли; + + Если ВариантВосстановленияПароля <> "ЧерезЭлектроннуюПочту" Тогда + + Если ПустаяСтрока(НавигационнаяСсылкаВосстановленияПароля) Тогда + + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru='Не заполнен адрес страницы восстановления пароля'"),, + "НавигационнаяСсылкаВосстановленияПароля"); + НастройкиКорректные = Ложь; + + КонецЕсли; + + Возврат НастройкиКорректные; + + КонецЕсли; + + Если ВариантОтправкиПоПочте = "ВнешнийПочтовыйСервер" Тогда + + Если Не ЗначениеЗаполнено(УчетнаяЗаписьПочты) Тогда + + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru='Не заполнены настройки почты'"),, + "УчетнаяЗаписьПочты"); + НастройкиКорректные = Ложь; + + ИначеЕсли Не УчетнаяЗаписьНастроена(УчетнаяЗаписьПочты) Тогда + + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru='Почта не настроена для отправки писем'"),, + "УчетнаяЗаписьПочты"); + НастройкиКорректные = Ложь; + + КонецЕсли; + + ИначеЕсли ВариантОтправкиПоПочте = "РучнаяНастройка" Тогда + + Если ПустаяСтрока(АдресСервераSMTP) Тогда + + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru='Не заполнен адрес сервера SMTP'"),, + "АдресСервераSMTP"); + НастройкиКорректные = Ложь; + + КонецЕсли; + + Если ПустаяСтрока(ПользовательSMTP) Тогда + + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru='Не заполнен пользователь SMTP'"),, + "ПользовательSMTP"); + НастройкиКорректные = Ложь; + + КонецЕсли; + + Если ПустаяСтрока(ПарольSMTP) Тогда + + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru='Не заполнен пароль SMTP'"),, + "ПарольSMTP"); + НастройкиКорректные = Ложь; + + КонецЕсли; + + Если ПустаяСтрока(ИмяОтправителя) Тогда + + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru='Не заполнено имя отправителя'"),, + "ИмяОтправителя"); + НастройкиКорректные = Ложь; + + КонецЕсли; + + + КонецЕсли; + + Возврат НастройкиКорректные; + +КонецФункции + +&НаСервереБезКонтекста +Функция УчетнаяЗаписьНастроена(УчетнаяЗапись) + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда + + МодульРаботаСПочтовымиСообщениями = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениями"); + Возврат МодульРаботаСПочтовымиСообщениями.УчетнаяЗаписьНастроена(УчетнаяЗапись, Истина, Ложь); + + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +&НаКлиенте +Процедура ВставитьПараметрВШаблон(ИмяПараметра) + + Если ТекущийЭлемент.Имя = Элементы.ТемаПисьма.Имя Тогда + ТемаПисьма = ТемаПисьма + " " + ИмяПараметра; + Иначе + ЗакладкаДляВставкиНачало = Неопределено; + ЗакладкаДляВставкиКонец = Неопределено; + Элементы.ТекстСообщения.ПолучитьГраницыВыделения(ЗакладкаДляВставкиНачало, ЗакладкаДляВставкиКонец); + ТекстСообщения.Вставить(ЗакладкаДляВставкиКонец, ИмяПараметра); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ЗапуститьФоновоеЗаполнениеПочтыПользователей() + + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); + ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Заполнение почты пользователей для восстановления пароля'"); + + ДлительныеОперации.ВыполнитьВФоне("ПользователиСлужебный.ЗаполнитьПочтуДляВосстановленияПароляУПользователейВФоне", + Новый Структура, ПараметрыВыполнения); + +КонецПроцедуры + +&НаСервере +Функция ТребуетсяЗапускЗаполненияПочтыПользователей() + + Если Не ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда + Возврат Ложь; + КонецЕсли; + + Если Не ВосстанавливатьПароль Тогда + Возврат Ложь; + КонецЕсли; + + Настройки = ПользователиСлужебный.НастройкиВосстановленияПароля(); + Если Настройки = Неопределено Тогда + Возврат Ложь; + КонецЕсли; + + // Предыдущие значение + Если Настройки.СпособВосстановленияПароля <> ПользователиСлужебный.СпособВосстановленияПароляПользователяИнформационнойБазы("Нет") Тогда + Возврат Ложь; + КонецЕсли; + + ПользователиИБ = ПользователиИнформационнойБазы.ПолучитьПользователей(); + Для Каждого ПользовательИБ Из ПользователиИБ Цикл + Если ПользовательИБ.ЗапрещеноВосстанавливатьПароль = Ложь Тогда + Возврат Ложь; + КонецЕсли; + КонецЦикла; + + Возврат Истина; + +КонецФункции + +&НаСервере +Процедура СохранитьНастройкиВосстановленияПароля() + + ЗапуститьФоновоеЗаполнениеПочтыПользователей = ТребуетсяЗапускЗаполненияПочтыПользователей(); + + Если ПарольИзменен Тогда + ТекущийПарольSMTP = ПарольSMTP; + Иначе + ТекущиеНастройки = ПользователиСлужебный.НастройкиВосстановленияПароля(); + Если ТекущиеНастройки <> Неопределено Тогда + ТекущийПарольSMTP = ТекущиеНастройки.ПарольSMTP; + Иначе + ТекущийПарольSMTP = ""; + КонецЕсли; + КонецЕсли; + + Вложения = Новый Структура; + ТекстСообщения.ПолучитьHTML(ТекстСообщенияHTML, Вложения); + + Для каждого Вложение Из Вложения Цикл + + ФорматИзображения = ?(Вложение.Значение.Формат() <> ФорматКартинки.НеизвестныйФормат, + НРег(Вложение.Значение.Формат()), НРег(ФорматКартинки.PNG)); + + ТекстКартинки = "src=""data:image/" + ФорматИзображения + ";base64," + Base64Строка(Вложение.Значение.ПолучитьДвоичныеДанные()) + """"; + ТекстСообщенияHTML = СтрЗаменить(ТекстСообщенияHTML, + "src=""" + Вложение.Ключ + """", + ТекстКартинки); + + КонецЦикла; + + Настройки = ПользователиСлужебный.НовыеНастройкиВосстановленияПароля(); + Если Настройки = Неопределено Тогда + Возврат; + КонецЕсли; + + ЗаполнитьЗначенияСвойств(Настройки, ЭтотОбъект, СписокПолейНастроек()); + + Настройки.Заголовок = ТемаПисьма; + Настройки.ПарольSMTP = ТекущийПарольSMTP; + + Если ВосстанавливатьПароль Тогда + + Если ВариантВосстановленияПароля = "ПереходПоСсылке" Тогда + Настройки.СпособВосстановленияПароля = + ПользователиСлужебный.СпособВосстановленияПароляПользователяИнформационнойБазы("ПереходПоНавигационнойСсылке"); + ИначеЕсли ВариантОтправкиПоПочте = "СтандартныйСервис" Тогда + Настройки.СпособВосстановленияПароля = + ПользователиСлужебный.СпособВосстановленияПароляПользователяИнформационнойБазы("ОтправкаКодаПодтвержденияЧерезСтандартныйСервис"); + ИначеЕсли ВариантОтправкиПоПочте = "ВнешнийПочтовыйСервер" Тогда + Настройки.СпособВосстановленияПароля = + ПользователиСлужебный.СпособВосстановленияПароляПользователяИнформационнойБазы("ОтправкаКодаПодтвержденияПоЗаданнымПараметрам"); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда + + МодульРаботаСПочтовымиСообщениямиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениямиСлужебный"); + НастройкиУчетнойЗаписиДляОтправкиПочта = МодульРаботаСПочтовымиСообщениямиСлужебный.НастройкиУчетнойЗаписиДляОтправкиПочта(УчетнаяЗаписьПочты); + ЗаполнитьЗначенияСвойств(Настройки, НастройкиУчетнойЗаписиДляОтправкиПочта); + + КонецЕсли; + + Иначе + + Настройки.СпособВосстановленияПароля = + ПользователиСлужебный.СпособВосстановленияПароляПользователяИнформационнойБазы("ОтправкаКодаПодтвержденияПоЗаданнымПараметрам"); + ЗаполнитьЗначенияСвойств(Настройки, ЭтотОбъект, "АдресСервераSMTP, ПарольSMTP, ПользовательSMTP, ПортSMTP,ИмяОтправителя"); + Настройки.ИспользоватьSSL = ШифрованиеПриОтправкеПочты = "SSL"; + + КонецЕсли; + Иначе + Настройки.СпособВосстановленияПароля = ПользователиСлужебный.СпособВосстановленияПароляПользователяИнформационнойБазы("Нет"); + КонецЕсли; + + УстановитьУчетнуюЗаписьДляВосстановленияПароля(УчетнаяЗаписьПочты, ВариантОтправкиПоПочте = "ВнешнийПочтовыйСервер"); + ПользователиСлужебный.УстановитьНастройкиВосстановленияПароля(Настройки); + + Если ЗапуститьФоновоеЗаполнениеПочтыПользователей Тогда + ЗапуститьФоновоеЗаполнениеПочтыПользователей(); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПрочитьНастройкиВосстановленияПароля() + + ВариантОтправкиПоПочте = "СтандартныйСервис"; + ВариантВосстановленияПароля = "ЧерезЭлектроннуюПочту"; + + СведенияОбУчетнойЗаписи = НастройкиУчетнойЗаписиДляВосстановленияПароля(); + + Если ТипЗнч(СведенияОбУчетнойЗаписи) = Тип("Структура") Тогда + УчетнаяЗаписьПочты = СведенияОбУчетнойЗаписи.УчетнаяЗаписьПочты; + КонецЕсли; + + Настройки = ПользователиСлужебный.НастройкиВосстановленияПароля(); + Если Настройки = Неопределено Тогда + Возврат; + КонецЕсли; + + ЗаполнитьЗначенияСвойств(ЭтотОбъект, Настройки, СписокПолейНастроек()); + + Если ЗначениеЗаполнено(Настройки.ПарольSMTP) Тогда + ПарольSMTP = Строка(Новый УникальныйИдентификатор); + КонецЕсли; + + ШифрованиеПриОтправкеПочты = ?(Настройки.ИспользоватьSSL, "SSL", "Авто"); + + Если ПустаяСтрока(ТекстСообщенияHTML) Тогда + ТекстСообщенияHTML = ТекстПоУмолчанию(); + КонецЕсли; + ТекстСообщения.УстановитьHTML(ТекстСообщенияHTML, Новый Структура); + + ТемаПисьма = ?(ЗначениеЗаполнено(Настройки.Заголовок), + Настройки.Заголовок, НСтр("ru='Восстановление пароля'")); + + Если Настройки.СпособВосстановленияПароля = ПользователиСлужебный.СпособВосстановленияПароляПользователяИнформационнойБазы("Нет") Тогда + ВосстанавливатьПароль = Ложь; + + Иначе + ВосстанавливатьПароль = Истина; + Если Настройки.СпособВосстановленияПароля = ПользователиСлужебный.СпособВосстановленияПароляПользователяИнформационнойБазы("ОтправкаКодаПодтвержденияЧерезСтандартныйСервис") Тогда + ВариантОтправкиПоПочте = "СтандартныйСервис"; + Иначе + Если Настройки.СпособВосстановленияПароля = + ПользователиСлужебный.СпособВосстановленияПароляПользователяИнформационнойБазы("ОтправкаКодаПодтвержденияПоЗаданнымПараметрам") Тогда + Элементы.ВариантыВосстановления.ТекущаяСтраница = Элементы.ЭлектроннаяПочта; + ВариантВосстановленияПароля = "ЧерезЭлектроннуюПочту"; + Если СведенияОбУчетнойЗаписи.Используется Тогда + ВариантОтправкиПоПочте = "ВнешнийПочтовыйСервер"; + Иначе + ВариантОтправкиПоПочте = "РучнаяНастройка"; + Элементы.ГруппаРучныеНастройкиПочты.Показать(); + КонецЕсли; + Иначе + Элементы.ВариантыВосстановления.ТекущаяСтраница = Элементы.ПереходПоСсылке; + ВариантВосстановленияПароля = "ПереходПоСсылке"; + КонецЕсли; + + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция СписокПолейНастроек() + + Возврат "ДлительностьБлокировкиЗапросаОбновленияКодаПодтверждения, + |МаксимальноеКоличествоНеуспешныхПопытокПроверкиКодаПодтверждения,НавигационнаяСсылкаВосстановленияПароля, + |ОтображатьГиперссылкуПомощи,НавигационнаяСсылкаПомощи,ДлинаКодаПодтверждения,ТекстСообщенияHTML, + |АдресСервераSMTP,ПортSMTP,ИспользоватьSSL,ПользовательSMTP,ИмяОтправителя"; + +КонецФункции + +&НаСервереБезКонтекста +Функция ТекстПоУмолчанию() + + ТекстСообщенияHTML = НСтр("ru='Здравствуйте, &UserPresentation + | + |Мы получили запрос на восстановление пароля от &ConfigurationPresentation. + | + |Введите код &VerificationCode для сброса пароля. + | + |Если восстановление пароля не запрашивалось, сообщите об этом техническому специалисту.'"); + + Возврат ТекстСообщенияHTML; + +КонецФункции + +&НаСервереБезКонтекста +Процедура УстановитьУчетнуюЗаписьДляВосстановленияПароля(УчетнаяЗаписьПочты, Используется) + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда + + МодульРаботаСПочтовымиСообщениямиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениямиСлужебный"); + + СведенияОбУчетнойЗаписи = МодульРаботаСПочтовымиСообщениямиСлужебный.ОписаниеНастроекУчетнойЗаписиДляВосстановленияПароля(); + СведенияОбУчетнойЗаписи.УчетнаяЗаписьПочты = УчетнаяЗаписьПочты; + СведенияОбУчетнойЗаписи.Используется = Используется; + + МодульРаботаСПочтовымиСообщениямиСлужебный.СохранитьНастройкиУчетнойЗаписиДляВосстановленияПароля(СведенияОбУчетнойЗаписи); + + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция НастройкиУчетнойЗаписиДляВосстановленияПароля() + + СведенияОбУчетнойЗаписи = Неопределено; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда + МодульРаботаСПочтовымиСообщениямиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениямиСлужебный"); + СведенияОбУчетнойЗаписи = МодульРаботаСПочтовымиСообщениямиСлужебный.НастройкиУчетнойЗаписиДляВосстановленияПароля(); + КонецЕсли; + + Возврат СведенияОбУчетнойЗаписи; + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonForms/ВосстановлениеПаролей/ВосстановлениеПаролей.mdo b/SSL/src/CommonForms/ВосстановлениеПаролей/ВосстановлениеПаролей.mdo new file mode 100644 index 000000000..fd07b6556 --- /dev/null +++ b/SSL/src/CommonForms/ВосстановлениеПаролей/ВосстановлениеПаролей.mdo @@ -0,0 +1,11 @@ + + + ВосстановлениеПаролей + + ru + Восстановление паролей + + PersonalComputer + MobileDevice + true + diff --git a/SSL/src/CommonForms/ВыборДействияПриОбнаруженииОтличийФайла/Form.form b/SSL/src/CommonForms/ВыборДействияПриОбнаруженииОтличийФайла/Form.form index 3aea1a980..c4d89cf29 100644 --- a/SSL/src/CommonForms/ВыборДействияПриОбнаруженииОтличийФайла/Form.form +++ b/SSL/src/CommonForms/ВыборДействияПриОбнаруженииОтличийФайла/Form.form @@ -82,10 +82,6 @@ true - - <key>ru</key> - <value>Сообщение для пользователя</value> - СообщениеДляПользователяExtendedTooltip 42 @@ -185,10 +181,6 @@ true - - <key>ru</key> - <value>Файл и кнопка</value> - ФайлИКнопкаExtendedTooltip 47 @@ -522,10 +514,6 @@ true - - <key>ru</key> - <value>Свойства файлов</value> - СвойстваФайловExtendedTooltip 50 diff --git a/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl b/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl index 693c866a0..350fdb653 100644 --- a/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl +++ b/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl @@ -35,6 +35,13 @@ // список при открытии формы. // +#Область ОписаниеПеременных + +&НаСервере +Перем ПодчиненныеСправочники; + +#КонецОбласти + #Область ОбработчикиСобытийФормы &НаСервере @@ -389,12 +396,11 @@ // КартинкаОбъекта - Число - код картинки подэлемента. // Родитель - ссылка на элемента дерева значений, который является корнем // для добавляемого элемента. -// Подсистемы - если заполнен, то содержит значение Метаданные.Подсистемы (коллекцию элементов). +// Подсистемы - КоллекцияОбъектовМетаданных - если заполнен, то содержит значение Метаданные.Подсистемы (коллекцию элементов). // Проверять - Булево - признак проверки на принадлежность родительским подсистемам. // // Возвращаемое значение: -// -// Строка дерева объектов метаданных. +// ДанныеФормыЭлементДерева // &НаСервере Функция ДобавитьЭлементДереваОбъектовМетаданных(ПараметрыЭлемента, Подсистемы = Неопределено, Проверять = Истина) @@ -491,11 +497,13 @@ // конфигурации. // // Параметры: -// Имя - имя объекта метаданных или вида объекта метаданных. -// Синоним - синоним объекта метаданных. -// Картинка - картинка поставленная в соответствие объекту метаданных -// или виду объекта метаданных. -// ЭтоКоллекцияОбщие - признак того, что текущий элемент содержит подэлементы. +// Имя - Строка - имя объекта метаданных или вида объекта метаданных. +// Синоним - Строка - синоним объекта метаданных. +// Картинка - Число - картинка поставленная в соответствие объекту метаданных +// или виду объекта метаданных. +// КартинкаОбъекта - Число +// ЭтоКоллекцияОбщие - Булево - признак того, что текущий элемент содержит подэлементы. +// Таб - ТаблицаЗначений // &НаСервере Процедура КоллекцииОбъектовМетаданных_НоваяСтрока(Имя, Синоним, Картинка, КартинкаОбъекта, ЭтоКоллекцияОбщие, Таб) @@ -791,18 +799,27 @@ КонецФункции -&НаСервереБезКонтекста +&НаСервере Функция ПодчиненныеСправочники(ОбъектМетаданных) - Результат = Новый Массив; + Если ПодчиненныеСправочники = Неопределено Тогда + ПодчиненныеСправочники = Новый Соответствие; + + Для Каждого Справочник Из Метаданные.Справочники Цикл + Если ПодчиненныеСправочники[Справочник] = Неопределено Тогда + ПодчиненныеСправочники[Справочник] = Новый Массив; + КонецЕсли; + Для Каждого ВладелецСправочника Из Справочник.Владельцы Цикл + Если ПодчиненныеСправочники[ВладелецСправочника] = Неопределено Тогда + ПодчиненныеСправочники[ВладелецСправочника] = Новый Массив; + КонецЕсли; + СписокСправочников = ПодчиненныеСправочники[ВладелецСправочника]; // Массив + СписокСправочников.Добавить(Справочник); + КонецЦикла; + КонецЦикла; + КонецЕсли; - Для Каждого Справочник Из Метаданные.Справочники Цикл - Если Справочник.Владельцы.Содержит(ОбъектМетаданных) Тогда - Результат.Добавить(Справочник); - КонецЕсли; - КонецЦикла; - - Возврат Результат; + Возврат ПодчиненныеСправочники[ОбъектМетаданных]; КонецФункции @@ -810,10 +827,6 @@ Процедура ЗаполнитьДеревоОбъектов() Если СпособГруппировкиОбъектов = "ПоРазделам" Тогда - Если ВыбранныеОбъектыМетаданных.Количество() > 0 - И ЗначениеЗаполнено(ВыбранныеОбъектыМетаданных[0].Представление) Тогда - ИскатьВыбранныеПоАдресу = Истина; - КонецЕсли; ДеревоОбъектовМетаданныхЗаполнитьПоРазделам(); Иначе ДеревоОбъектовМетаданныхЗаполнить(); diff --git a/SSL/src/CommonForms/ВыборРолиИсполнителя/Form.form b/SSL/src/CommonForms/ВыборРолиИсполнителя/Form.form index afc831eb5..672dec715 100644 --- a/SSL/src/CommonForms/ВыборРолиИсполнителя/Form.form +++ b/SSL/src/CommonForms/ВыборРолиИсполнителя/Form.form @@ -177,10 +177,6 @@ true - - <key>ru</key> - <value>Отступ</value> - ГруппаОтступРасширеннаяПодсказка 28 @@ -206,10 +202,6 @@ true - - <key>ru</key> - <value>Уточнение</value> - ГруппаУточнениеРасширеннаяПодсказка 26 diff --git a/SSL/src/CommonForms/ГруппыПользователей/Module.bsl b/SSL/src/CommonForms/ГруппыПользователей/Module.bsl index 4f14a472f..2b6aa6a69 100644 --- a/SSL/src/CommonForms/ГруппыПользователей/Module.bsl +++ b/SSL/src/CommonForms/ГруппыПользователей/Module.bsl @@ -403,7 +403,7 @@ // Параметры: // ДеревоГруппИсточник - ДанныеФормыКоллекцияЭлементовДерева // МассивПеремещенныхПользователей - Массив из СправочникСсылка.Пользователи -// НеПеремещенныеПользователи - Соответствие: +// НеПеремещенныеПользователи - Соответствие из КлючИЗначение: // * Ключ - СправочникСсылка.Пользователи // * Значение - Массив из СправочникСсылка.ГруппыПользователей // - СправочникСсылка.ГруппыВнешнихПользователей diff --git a/SSL/src/CommonForms/ДлительнаяОперация/Form.form b/SSL/src/CommonForms/ДлительнаяОперация/Form.form index 09747da52..6916b46ac 100644 --- a/SSL/src/CommonForms/ДлительнаяОперация/Form.form +++ b/SSL/src/CommonForms/ДлительнаяОперация/Form.form @@ -79,10 +79,6 @@ true - - <key>ru</key> - <value>Картинка и надпись</value> - КартинкаИНадписьРасширеннаяПодсказка 15 diff --git a/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Form.form b/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Form.form index 12367176d..9123a0dad 100644 --- a/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Form.form +++ b/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Form.form @@ -52,10 +52,6 @@ true - - <key>ru</key> - <value>Представление данных</value> - ГруппаПредставлениеДанныхРасширеннаяПодсказка 32 @@ -80,10 +76,6 @@ Подписи 1 - - <key>ru</key> - <value>Подписи</value> - true true diff --git a/SSL/src/CommonForms/ДополнительныеПараметрыПроксиСервера/Module.bsl b/SSL/src/CommonForms/ДополнительныеПараметрыПроксиСервера/Module.bsl index e68ef7670..bbda3569a 100644 --- a/SSL/src/CommonForms/ДополнительныеПараметрыПроксиСервера/Module.bsl +++ b/SSL/src/CommonForms/ДополнительныеПараметрыПроксиСервера/Module.bsl @@ -163,13 +163,11 @@ // Находит и возвращает недопустимые символы в строке, перечисленные через запятую. // // Параметры: -// ПроверяемаяСтрока (Строка) - строка - проверяемая на предмет наличия недопустимых -// символов. -// ДопустимыеСимволы (Строка) - строка допустимых символов. +// ПроверяемаяСтрока - Строка - проверяемая на предмет наличия недопустимых символов. +// ДопустимыеСимволы - Строка - допустимые символы. // // Возвращаемое значение: -// Строка - строка недопустимых символов. Пустая строка, если -// в проверяемой строке недопустимые символы не обнаружены. +// Строка // &НаКлиенте Функция НедопустимыеСимволыВСтроке(ПроверяемаяСтрока, ДопустимыеСимволы) diff --git a/SSL/src/CommonForms/КонтрольДинамическогоОбновления/Form.form b/SSL/src/CommonForms/КонтрольДинамическогоОбновления/Form.form index 9a4c338e4..c5bfe79d8 100644 --- a/SSL/src/CommonForms/КонтрольДинамическогоОбновления/Form.form +++ b/SSL/src/CommonForms/КонтрольДинамическогоОбновления/Form.form @@ -98,6 +98,10 @@ true + + <key>ru</key> + <value>Текст</value> + ГруппаТекстРасширеннаяПодсказка 19 @@ -172,6 +176,10 @@ true + + <key>ru</key> + <value>Расписание</value> + ГруппаРасписаниеРасширеннаяПодсказка 21 @@ -198,6 +206,10 @@ true + + <key>ru</key> + <value>Текст и расписание</value> + ГруппаТекстИРасписаниеРасширеннаяПодсказка 23 diff --git a/SSL/src/CommonForms/НастройкаКолонтитулов/Module.bsl b/SSL/src/CommonForms/НастройкаКолонтитулов/Module.bsl index 12e5d9ff2..048377d31 100644 --- a/SSL/src/CommonForms/НастройкаКолонтитулов/Module.bsl +++ b/SSL/src/CommonForms/НастройкаКолонтитулов/Module.bsl @@ -21,7 +21,7 @@ ЭтоИндивидуальныеНастройки = Параметры.Свойство("Настройки", Настройки); Если Не ЭтоИндивидуальныеНастройки Тогда - Элементы.ФормаОК.Заголовок = "Сохранить"; + Элементы.ФормаОК.Заголовок = НСтр("ru = 'Сохранить'"); КонецЕсли; Элементы.ФормаОтмена.Видимость = Не ЭтоИндивидуальныеНастройки; Элементы.ФормаУстановитьСтандартныеНастройки.Видимость = ЭтоИндивидуальныеНастройки; diff --git a/SSL/src/CommonForms/НастройкаКомандПечати/Module.bsl b/SSL/src/CommonForms/НастройкаКомандПечати/Module.bsl index 0837f4119..819bfcd21 100644 --- a/SSL/src/CommonForms/НастройкаКомандПечати/Module.bsl +++ b/SSL/src/CommonForms/НастройкаКомандПечати/Module.bsl @@ -110,7 +110,7 @@ Процедура ЗаписатьНастройкиКоманд() Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.НастройкиКомандПечати"); + Блокировка.Добавить("РегистрСведений.НастройкиКомандПечати"); НачатьТранзакцию(); Попытка diff --git a/SSL/src/CommonForms/НастройкаПереводаТекста/Form.form b/SSL/src/CommonForms/НастройкаПереводаТекста/Form.form new file mode 100644 index 000000000..4dfe976da --- /dev/null +++ b/SSL/src/CommonForms/НастройкаПереводаТекста/Form.form @@ -0,0 +1,275 @@ + + + + СервисПереводаТекста + 1 + true + true + + true + + + НаборКонстант.СервисПереводаТекста + + ShowBottom + + OnChange + СервисПереводаТекстаПриИзменении + + + СервисПереводаТекстаРасширеннаяПодсказка + 3 + Label + true + true + + Left + + + + СервисПереводаТекстаКонтекстноеМеню + 2 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + + Style.ФонУправляющегоПоля + + Normal + + + + Инструкция + 6 + true + true + + true + + + ИнструкцияРасширеннаяПодсказка + 8 + Label + true + true + + Left + + + + ИнструкцияКонтекстноеМеню + 7 + true + + Label + true + + Left + + + + ПараметрыАвторизации + 4 + true + true + + true + + + <key>ru</key> + <value>Параметры авторизации</value> + + + ПараметрыАвторизацииРасширеннаяПодсказка + 5 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + + ЗаписатьИЗакрыть + 9 + true + true + + true + + + ЗаписатьИЗакрытьРасширеннаяПодсказка + 10 + Label + true + true + + Left + + + Form.Command.ЗаписатьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + СтандартныеКоманды + 11 + true + true + + true + + + <key>ru</key> + <value>Стандартные команды</value> + + + СтандартныеКомандыРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + Form + + + + ФормаСправка + 13 + true + true + + true + + + ФормаСправкаРасширеннаяПодсказка + 14 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + + Left + + WriteAndClose + LockOwner + true + true + true + Vertical + true + true + true + auto + true + + НаборКонстант + 1 + + ConstantsSet + + + true + + + true + +
    true
    + true +
    + + ПараметрыАвторизации + 5 + + ValueList + + + true + + + true + + + + + + + ЗаписатьИЗакрыть + + <key>ru</key> + <value>Записать и закрыть</value> + + 1 + + ru + Записать и закрыть + + + true + + + + ЗаписатьИЗакрыть + + + Auto + Auto + + + + + + + + OnReadAtServer + ПриЧтенииНаСервере + + + OnWriteAtServer + ПриЗаписиНаСервере + + +
    diff --git a/SSL/src/CommonForms/НастройкаПереводаТекста/Module.bsl b/SSL/src/CommonForms/НастройкаПереводаТекста/Module.bsl new file mode 100644 index 000000000..ccf011be8 --- /dev/null +++ b/SSL/src/CommonForms/НастройкаПереводаТекста/Module.bsl @@ -0,0 +1,132 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Константа.СервисПереводаТекста"); + + УстановитьПривилегированныйРежим(Истина); + Для Каждого Параметр Из ПараметрыАвторизации Цикл + Если Параметр.Представление <> Строка(УникальныйИдентификатор) Тогда + ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, Параметр.Представление, Параметр.Значение); + КонецЕсли; + КонецЦикла; + УстановитьПривилегированныйРежим(Ложь); + +КонецПроцедуры + +&НаСервере +Процедура ПриЧтенииНаСервере(ТекущийОбъект) + + ЗаполнитьНастройки(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура СервисПереводаТекстаПриИзменении(Элемент) + + ЗаполнитьНастройки(); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПараметрАвторизацииИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка) + Элемент.КнопкаВыбора = Истина; +КонецПроцедуры + +// Параметры: +// Элемент - ПолеФормы +// +&НаКлиенте +Процедура Подключаемый_ПараметрАвторизацииНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + Индекс = ПараметрыАвторизации.Индекс(ПараметрыАвторизации.НайтиПоЗначению(Элемент.Имя)); + ПереключитьРежимПароля(Элемент, ПараметрыАвторизации[Индекс].Представление, СтандартнаяОбработка); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ЗаписатьИЗакрыть(Команда) + Записать(); + Закрыть(НаборКонстант.СервисПереводаТекста); +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ЗаполнитьНастройки() + + СервисПереводаТекста = НаборКонстант.СервисПереводаТекста; + + Для Каждого Параметр Из ПараметрыАвторизации Цикл + Элементы.Удалить(Элементы[Параметр.Значение]); + КонецЦикла; + ПараметрыАвторизации.Очистить(); + + Элементы.Инструкция.Заголовок = ""; + + УстановитьПривилегированныйРежим(Истина); + + НастройкиАвторизации = ПереводТекстаНаДругиеЯзыки.НастройкиАвторизации(СервисПереводаТекста); + Если НастройкиАвторизации = Неопределено Тогда + Возврат; + КонецЕсли; + + НастройкиСервисаПереводаТекста = ПереводТекстаНаДругиеЯзыки.НастройкиСервисаПереводаТекста(СервисПереводаТекста); + Элементы.Инструкция.Заголовок = НастройкиСервисаПереводаТекста.ИнструкцияПоПодключению; + + Для Индекс = 0 По НастройкиСервисаПереводаТекста.ПараметрыАвторизации.Количество() - 1 Цикл + ОписаниеПараметра = НастройкиСервисаПереводаТекста.ПараметрыАвторизации[Индекс]; + ЗначениеПараметра = НастройкиАвторизации[ОписаниеПараметра.Имя]; + ПараметрыАвторизации.Добавить(ОписаниеПараметра.Имя, ?(ЗначениеЗаполнено(ЗначениеПараметра), УникальныйИдентификатор, "")); + + ПолеВвода = Элементы.Добавить(ОписаниеПараметра.Имя, Тип("ПолеФормы"), Элементы.ПараметрыАвторизации); + ПолеВвода.Вид = ВидПоляФормы.ПолеВвода; + ПолеВвода.Заголовок = ОписаниеПараметра.Представление; + ПолеВвода.ПутьКДанным = "ПараметрыАвторизации[" + Индекс + "].Представление"; + ПолеВвода.ОтображениеПодсказки = ОписаниеПараметра.ОтображениеПодсказки; + ПолеВвода.РасширеннаяПодсказка.Заголовок = ОписаниеПараметра.Подсказка; + ПолеВвода.УстановитьДействие("НачалоВыбора", "Подключаемый_ПараметрАвторизацииНачалоВыбора"); + ПолеВвода.УстановитьДействие("ИзменениеТекстаРедактирования", "Подключаемый_ПараметрАвторизацииИзменениеТекстаРедактирования"); + ПолеВвода.РежимПароля = Истина; + ПолеВвода.КнопкаВыбора = Не ЗначениеЗаполнено(ЗначениеПараметра); + ПолеВвода.КартинкаКнопкиВыбора = БиблиотекаКартинок.ВводимыеСимволыСкрыты; + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ПереключитьРежимПароля(Элемент, Реквизит, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + Реквизит = Элемент.ТекстРедактирования; + Элемент.РежимПароля = Не Элемент.РежимПароля; + Если Элемент.РежимПароля Тогда + Элемент.КартинкаКнопкиВыбора = БиблиотекаКартинок.ВводимыеСимволыСкрыты; + Иначе + Элемент.КартинкаКнопкиВыбора = БиблиотекаКартинок.ВводимыеСимволыВидны; + КонецЕсли; + +КонецПроцедуры + + +#КонецОбласти + diff --git a/SSL/src/CommonForms/НастройкаПереводаТекста/НастройкаПереводаТекста.mdo b/SSL/src/CommonForms/НастройкаПереводаТекста/НастройкаПереводаТекста.mdo new file mode 100644 index 000000000..866e8765a --- /dev/null +++ b/SSL/src/CommonForms/НастройкаПереводаТекста/НастройкаПереводаТекста.mdo @@ -0,0 +1,11 @@ + + + НастройкаПереводаТекста + + ru + Настройка перевода текста + + PersonalComputer + MobileDevice + true + diff --git a/SSL/src/CommonForms/НастройкаРабочегоКаталога/Form.form b/SSL/src/CommonForms/НастройкаРабочегоКаталога/Form.form index fc86c53e9..3d8c98514 100644 --- a/SSL/src/CommonForms/НастройкаРабочегоКаталога/Form.form +++ b/SSL/src/CommonForms/НастройкаРабочегоКаталога/Form.form @@ -93,10 +93,6 @@ true - - <key>ru</key> - <value>Расположение</value> - ГруппаРасположениеExtendedTooltip 30 diff --git a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Form.form b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Form.form index b11159aca..47190879e 100644 --- a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Form.form +++ b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Form.form @@ -884,7 +884,7 @@ 355 <key>ru</key> - <value>Настройка программ электронной подписи и шифрования выполнена в главном узле</value> + <value>Настройка программ электронной подписи и шифрования выполнена в корневом узле</value> true true diff --git a/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Form.form b/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Form.form index c39f00559..e6b66f9d5 100644 --- a/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Form.form +++ b/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Form.form @@ -392,10 +392,6 @@ true - - <key>ru</key> - <value>Панель основная</value> - true ПанельОсновнаяExtendedTooltip @@ -685,10 +681,6 @@ true - - <key>ru</key> - <value>Панель навигации</value> - ПанельНавигацииExtendedTooltip 44 diff --git a/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Module.bsl b/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Module.bsl index 843e4e19e..573e903aa 100644 --- a/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Module.bsl +++ b/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Module.bsl @@ -333,25 +333,6 @@ КонецПроцедуры -// Добавляет новую строку в конец текущей таблицы переходов -// -// Параметры: -// -// ПорядковыйНомерПерехода (обязательный) - Число - порядковый номер перехода, который соответствует текущему шагу перехода -// ИмяОсновнойСтраницы (обязательный) - Строка - имя страницы панели "ПанельОсновная", которая соответствует текущему -// номеру перехода -// ИмяСтраницыНавигации (обязательный) - Строка - имя страницы панели "ПанельНавигации", которая соответствует текущему -// номеру перехода -// ИмяСтраницыДекорации (необязательный) - Строка - имя страницы панели "ПанельДекорации", которая соответствует -// текущему номеру перехода -// ИмяОбработчикаПриОткрытии (необязательный) - Строка - имя функции-обработчика события открытия текущей страницы помощника -// ИмяОбработчикаПриПереходеДалее (необязательный) - Строка - имя функции-обработчика события перехода на следующую -// страницу помощника -// ИмяОбработчикаПриПереходеНазад (необязательный) - Строка - имя функции-обработчика события перехода на предыдущую -// страницу помощника -// ДлительнаяОперация (необязательный) - Булево - признак отображения страницы длительной операции. -// Истина - отображается страница длительной операции; Ложь - отображается обычная страница. Значение по умолчанию - Ложь. -// &НаСервере Функция ТаблицаПереходовНоваяСтрока(ИмяОсновнойСтраницы, ИмяСтраницыНавигации, ИмяСтраницыДекорации = "") diff --git a/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl b/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl index e0bad50c4..f81be7743 100644 --- a/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl +++ b/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl @@ -583,7 +583,7 @@ ИмяВременногоФайла = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ИмяВременногоКаталога) + ВыбранноеВложение.Представление; ТабличныйДокумент = ПолучитьТабличныйДокументПоДвоичнымДанным(ВыбранноеВложение.АдресВоВременномХранилище); - ДвоичныеДанные = ПолучитьИзВременногоХранилища(ВыбранноеВложение.АдресВоВременномХранилище); + ДвоичныеДанные = ПолучитьИзВременногоХранилища(ВыбранноеВложение.АдресВоВременномХранилище); // ДвоичныеДанные ДвоичныеДанные.Записать(ИмяВременногоФайла); Файл = Новый Файл(ИмяВременногоФайла); Файл.УстановитьТолькоЧтение(Истина); @@ -622,7 +622,7 @@ Если ТипЗнч(ДвоичныеДанные) = Тип("Строка") Тогда // Передан адрес двоичных данных во временном хранилище. - ДвоичныеДанные = ПолучитьИзВременногоХранилища(ДвоичныеДанные); + ДвоичныеДанные = ПолучитьИзВременногоХранилища(ДвоичныеДанные); // ДвоичныеДанные КонецЕсли; ИмяФайла = ПолучитьИмяВременногоФайла("mxl"); diff --git a/SSL/src/CommonForms/ПанельОтчетов/Module.bsl b/SSL/src/CommonForms/ПанельОтчетов/Module.bsl index 59198092b..c775b711f 100644 --- a/SSL/src/CommonForms/ПанельОтчетов/Module.bsl +++ b/SSL/src/CommonForms/ПанельОтчетов/Module.bsl @@ -910,7 +910,6 @@ ПараметрыПоиска.Вставить("ИскатьВоВсехРазделах", ИскатьВоВсехРазделах); ПараметрыПоиска.Вставить("ТекущийРазделСсылка", ТекущийРазделСсылка); - ПоискПоСтроке = ЗначениеЗаполнено(СтрокаПоиска); ТолькоТекущийРаздел = РежимНастройки Или Не ЗначениеЗаполнено(СтрокаПоиска) Или ИскатьВоВсехРазделах = 0; Если ТолькоТекущийРаздел Тогда ТаблицаПодсистем = ПодсистемыПрограммы.Выгрузить(Новый Структура("РазделСсылка", ТекущийРазделСсылка)); @@ -1610,14 +1609,14 @@ // СтрокаРодителя - см. ДеревоРаспределения // СтрокаДерева - см. ДеревоРаспределения // Рекурсия - Структура: -// ** ВсегоОсталосьВывести - Число -// ** СвободноКолонок - Число -// ** КоличествоКолонок - Число -// ** ГруппаУровня3Отсечка - Число -// ** НомерТекущейКолонки - Число -// ** ЭтоПоследняяКолонка - Булево -// ** СвободноСтрок - Число -// ** НачатВыводВТекущейКолонке - Булево +// * ВсегоОсталосьВывести - Число +// * СвободноКолонок - Число +// * КоличествоКолонок - Число +// * ГруппаУровня3Отсечка - Число +// * НомерТекущейКолонки - Число +// * ЭтоПоследняяКолонка - Булево +// * СвободноСтрок - Число +// * НачатВыводВТекущейКолонке - Булево // ПараметрыЗаполнения - см. ВариантыОтчетов.ВариантыОтчетовДляВывода // &НаСервере diff --git a/SSL/src/CommonForms/ПараметрыПроксиСервера/Module.bsl b/SSL/src/CommonForms/ПараметрыПроксиСервера/Module.bsl index c94284b22..3e22419e1 100644 --- a/SSL/src/CommonForms/ПараметрыПроксиСервера/Module.bsl +++ b/SSL/src/CommonForms/ПараметрыПроксиСервера/Module.bsl @@ -414,7 +414,7 @@ // обрезается до первого пробела. // // Параметры: -// АдресПроксиСервера (Строка) - нормализуемый адрес прокси-сервера. +// АдресПроксиСервера - Строка - нормализуемый адрес прокси-сервера. // // Возвращаемое значение: // Строка - нормализованный адрес прокси-сервера. diff --git a/SSL/src/CommonForms/ПечатьДокументов/Form.form b/SSL/src/CommonForms/ПечатьДокументов/Form.form index 45c60b676..9241881a0 100644 --- a/SSL/src/CommonForms/ПечатьДокументов/Form.form +++ b/SSL/src/CommonForms/ПечатьДокументов/Form.form @@ -282,6 +282,34 @@ UserCmds Auto
    + + Язык + 284 + true + true + + true + + + <key>ru</key> + <value>Язык</value> + + + ЯзыкРасширеннаяПодсказка + 285 + Label + true + true + + Left + + + Popup + + Auto + Normal + + true true @@ -2767,6 +2795,47 @@ true + + ДоступенВыводНаДругихЯзыках + 13 + + Boolean + + + true + + + true + + + + ТекущийЯзык + 14 + + String + + + + true + + + true + + + + ДоступныеЯзыки + 15 + + String + + + + true + + + true + + ПечатнаяФормаОбразец @@ -3124,6 +3193,20 @@ РазвернутьОбластьПоказателей + + ТекущийЯзык + 10 + + String + + + + true + + + true + + Отправить diff --git a/SSL/src/CommonForms/ПечатьДокументов/Module.bsl b/SSL/src/CommonForms/ПечатьДокументов/Module.bsl index fbfd24684..6028d8e93 100644 --- a/SSL/src/CommonForms/ПечатьДокументов/Module.bsl +++ b/SSL/src/CommonForms/ПечатьДокументов/Module.bsl @@ -104,6 +104,11 @@ ИнтеграцияПодсистемБСП.ПечатьДокументовПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка); УправлениеПечатьюПереопределяемый.ПечатьДокументовПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда + МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); + МодульУправлениеПечатьюМультиязычность.ЗаполнитьПодменюЯзык(ЭтотОбъект, , ДоступныеЯзыкиПечатныхФорм()); + КонецЕсли; + КонецПроцедуры &НаСервере @@ -211,7 +216,7 @@ И Источник.ВладелецФормы = ЭтотОбъект Тогда Макет = Параметр.ТабличныйДокумент; АдресМакетаВоВременномХранилище = ПоместитьВоВременноеХранилище(Макет); - ЗаписатьМакет(Параметр.ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище); + ЗаписатьМакет(Параметр.ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище, Параметр.КодЯзыка); ПодключитьОбработчикОжидания("ОбновитьТекущуюПечатнуюФорму",0.1,Истина); КонецЕсли; @@ -453,6 +458,20 @@ КонецПроцедуры +&НаКлиенте +Процедура Подключаемый_ПереключитьЯзык(Команда) + + УправлениеПечатьюКлиент.ПереключитьЯзык(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПриПереключенииЯзыка(КодЯзыка, ДополнительныеПараметры) Экспорт + + ОбновитьТекущуюПечатнуюФорму(); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -488,6 +507,9 @@ Результат = Неопределено; // Формирование табличных документов. Если ЗначениеЗаполнено(Параметры.ИсточникДанных) Тогда + Если ТипЗнч(ПараметрыВывода) = Тип("Структура") И ПараметрыВывода.Свойство("КодЯзыка") Тогда + ПараметрыВывода.КодЯзыка = ТекущийЯзык; + КонецЕсли; УправлениеПечатью.ПечатьПоВнешнемуИсточнику( Параметры.ИсточникДанных, Параметры.ПараметрыИсточника, @@ -502,7 +524,7 @@ Параметры.ПараметрыПечати.Свойство("ДополнительныеПараметры", ДополнительныеПараметры); ПечатныеФормы = УправлениеПечатью.СформироватьПечатныеФормы(Параметры.ИмяМенеджераПечати, ИменаМакетов, - Параметры.ПараметрКоманды, ДополнительныеПараметры, ТипыОбъектовПечати); + Параметры.ПараметрКоманды, ДополнительныеПараметры, ТипыОбъектовПечати, ТекущийЯзык); ОбъектыПечати = ПечатныеФормы.ОбъектыПечати; ПараметрыВывода = ПечатныеФормы.ПараметрыВывода; Результат = ПечатныеФормы.КоллекцияПечатныхФорм; @@ -592,6 +614,13 @@ НоваяНастройкаПечатнойФормы.ИмяФайлаПечатнойФормы = ОбщегоНазначения.ЗначениеВСтрокуXML(ОписаниеПечатнойФормы.ИмяФайлаПечатнойФормы); НоваяНастройкаПечатнойФормы.ОфисныеДокументы = ?(ПустаяСтрока(ОписаниеПечатнойФормы.ОфисныеДокументы), "", ОбщегоНазначения.ЗначениеВСтрокуXML(ОписаниеПечатнойФормы.ОфисныеДокументы)); НоваяНастройкаПечатнойФормы.ПодписьИПечать = ЕстьПодписьИПечать(ОписаниеПечатнойФормы.ТабличныйДокумент); + НоваяНастройкаПечатнойФормы.ДоступенВыводНаДругихЯзыках = ОписаниеПечатнойФормы.ДоступенВыводНаДругихЯзыках; + Если ЗначениеЗаполнено(НоваяНастройкаПечатнойФормы.ПутьКМакету) Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда + МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); + НоваяНастройкаПечатнойФормы.ДоступныеЯзыки = СтрСоединить(МодульУправлениеПечатьюМультиязычность.ЯзыкиМакета(НоваяНастройкаПечатнойФормы.ПутьКМакету), ","); + КонецЕсли; + КонецЕсли; ПечатьОфисныхДокументов = ПечатьОфисныхДокументов ИЛИ НЕ ПустаяСтрока(НоваяНастройкаПечатнойФормы.ОфисныеДокументы); @@ -804,6 +833,8 @@ УстановитьДоступностьИзмененияМакета(); УстановитьДоступностьКомандВывода(); + Элементы.Язык.Доступность = НастройкаПечатнойФормы.ДоступенВыводНаДругихЯзыках; + КонецПроцедуры &НаСервере @@ -890,7 +921,7 @@ Для Каждого ФайлОфисногоДокумента Из ФайлыОфисныхДокументов Цикл ИмяФайла = УправлениеПечатью.ИмяФайлаОфисногоДокумента(ФайлОфисногоДокумента.Значение); Если ЗаписьZipФайла <> Неопределено Тогда - ПолноеИмяФайла = УникальноеИмяФайла(ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ИмяВременногоКаталога) + ПолноеИмяФайла = ФайловаяСистема.УникальноеИмяФайла(ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ИмяВременногоКаталога) + ИмяФайла); ДвоичныеДанные = ПолучитьИзВременногоХранилища(ФайлОфисногоДокумента.Ключ); // ДвоичныеДанные - ДвоичныеДанные.Записать(ПолноеИмяФайла); @@ -951,7 +982,7 @@ ИмяФайла = ИмяФайла + "." + НастройкиФормата.Расширение; - ПолноеИмяФайла = УникальноеИмяФайла(ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ИмяВременногоКаталога) + ИмяФайла); + ПолноеИмяФайла = ФайловаяСистема.УникальноеИмяФайла(ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ИмяВременногоКаталога) + ИмяФайла); ПечатнаяФорма.Записать(ПолноеИмяФайла, ТипФайла); Если ТипФайла = ТипФайлаТабличногоДокумента.HTML Тогда @@ -1057,7 +1088,7 @@ ИмяКаталога = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ИмяКаталога); Для Каждого ФайлДляЗаписи Из СписокФайловВоВременномХранилище Цикл ДвоичныеДанные = ПолучитьИзВременногоХранилища(ФайлДляЗаписи.АдресВоВременномХранилище); // ДвоичныеДанные - - ДвоичныеДанные.Записать(УникальноеИмяФайла(ИмяКаталога + ФайлДляЗаписи.Представление)); + ДвоичныеДанные.Записать(ФайловаяСистемаКлиент.УникальноеИмяФайла(ИмяКаталога + ФайлДляЗаписи.Представление)); КонецЦикла; ПоказатьОповещениеПользователя(НСтр("ru = 'Сохранение успешно завершено'"), "file:///" + ИмяКаталога, @@ -1065,24 +1096,6 @@ КонецПроцедуры -&НаКлиентеНаСервереБезКонтекста -Функция УникальноеИмяФайла(ИмяФайла) - - Файл = Новый Файл(ИмяФайла); - ИмяБезРасширения = Файл.ИмяБезРасширения; - Расширение = Файл.Расширение; - ИмяКаталога = Файл.Путь; - - Счетчик = 1; - Пока Файл.Существует() Цикл - Счетчик = Счетчик + 1; - Файл = Новый Файл(ИмяКаталога + ИмяБезРасширения + " (" + Счетчик + ")" + Расширение); - КонецЦикла; - - Возврат Файл.ПолноеИмя; - -КонецФункции - &НаСервере Функция ПрисоединитьПечатныеФормыКОбъекту(ФайлыВоВременномХранилище, ОбъектДляПрисоединения) Результат = Новый Массив; @@ -1175,7 +1188,7 @@ Для Каждого ПодписиИПечатиОбъекта Из ПодписиИПечатиОбъектов Цикл КоллекцияПодписейИПечатей = ПодписиИПечатиОбъекта.Значение; Для Каждого ПодписьПечать Из КоллекцияПодписейИПечатей Цикл - Картинка = ПодписьПечать.Значение; + Картинка = ПодписьПечать.Значение; // Картинка Если Картинка.Вид <> ВидКартинки.Пустая Тогда Возврат Истина; КонецЕсли; @@ -1201,6 +1214,7 @@ ПараметрыОткрытия.Вставить("ИмяДокумента", НастройкаПечатнойФормы.Представление); ПараметрыОткрытия.Вставить("ТипМакета", "MXL"); ПараметрыОткрытия.Вставить("Редактирование", Истина); + ПараметрыОткрытия.Вставить("КодЯзыка", СтрРазделить(ТекущийЯзык, "_", Истина)[0]); ОткрытьФорму("ОбщаяФорма.РедактированиеТабличногоДокумента", ПараметрыОткрытия, ЭтотОбъект); @@ -1291,6 +1305,9 @@ КонецЕсли; ПереформироватьПечатнуюФорму(НастройкаПечатнойФормы.ИмяМакета, НастройкаПечатнойФормы.ИмяРеквизита); + НастройкаПечатнойФормы.ТекущийЯзык = ТекущийЯзык; + + ДобавитьУдалитьПодписьПечать(); ОтобразитьСостояниеТекущейПечатнойФормы(); КонецПроцедуры @@ -1320,8 +1337,8 @@ КонецФункции &НаСервереБезКонтекста -Процедура ЗаписатьМакет(ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище) - УправлениеПечатью.ЗаписатьМакет(ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище); +Процедура ЗаписатьМакет(ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище, КодЯзыка) + УправлениеПечатью.ЗаписатьМакет(ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище, КодЯзыка); КонецПроцедуры &НаКлиенте @@ -1353,7 +1370,7 @@ КонецПроцедуры // Параметры: -// ВыбранныеПараметры - см. УправлениеПечатью.НастройкиСохранения +// ВыбранныеПараметры - см. УправлениеПечатью.НастройкиСохранения // &НаСервере Функция ПараметрыОтправкиПисьма(ВыбранныеПараметры) @@ -1517,9 +1534,9 @@ КонецФункции // Параметры: -// ТабличныйДокумент - ТабличныйДокумент +// ТабличныйДокумент - ТабличныйДокумент // Возвращаемое значение: -// Булево +// Булево // &НаСервереБезКонтекста Функция ЕстьПодписьИПечать(ТабличныйДокумент) @@ -1582,7 +1599,6 @@ &НаСервере Процедура УбратьПодписьИПечать() - ПодписиИПечати = Новый Структура; СкрыватьПодписиИПечати = УправлениеПечатью.НастройкиПечати().СкрыватьПодписиИПечатиДляРедактирования; Для Каждого НастройкаПечатнойФормы Из НастройкиПечатныхФорм Цикл @@ -1662,4 +1678,24 @@ ОбщегоНазначенияСлужебныйКлиент.РассчитатьПоказатели(ЭтотОбъект, "ТекущаяПечатнаяФорма"); КонецПроцедуры +&НаСервере +Функция ДоступныеЯзыкиПечатныхФорм() + + Результат = Новый Массив; + + Для Каждого НастройкаПечатнойФормы Из НастройкиПечатныхФорм Цикл + Если Не НастройкаПечатнойФормы.ДоступенВыводНаДругихЯзыках Тогда + Продолжить; + КонецЕсли; + Для Каждого КодЯзыка Из СтрРазделить(НастройкаПечатнойФормы.ДоступныеЯзыки, ",", Ложь) Цикл + Если Результат.Найти(КодЯзыка) = Неопределено Тогда + Результат.Добавить(КодЯзыка); + КонецЕсли; + КонецЦикла; + КонецЦикла; + + Возврат Результат; + +КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Form.form b/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Form.form index 9104f8e36..6e6def019 100644 --- a/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Form.form +++ b/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Form.form @@ -536,10 +536,6 @@ <userVisible> <common>true</common> </userVisible> - <title> - <key>ru</key> - <value>Windows</value> - true ГруппаWindowsРасширеннаяПодсказка @@ -961,10 +957,6 @@ true - - <key>ru</key> - <value>Linux</value> - true ГруппаLinuxРасширеннаяПодсказка @@ -1193,10 +1185,6 @@ true - - <key>ru</key> - <value>Mac OS</value> - true ГруппаMacOSРасширеннаяПодсказка @@ -1224,10 +1212,6 @@ true - - <key>ru</key> - <value>Подсказка</value> - ПодсказкаРасширеннаяПодсказка 4 diff --git a/SSL/src/CommonForms/ПредупрежденияПриЗавершенииРаботы/Module.bsl b/SSL/src/CommonForms/ПредупрежденияПриЗавершенииРаботы/Module.bsl index 46987d1bd..dee7aee67 100644 --- a/SSL/src/CommonForms/ПредупрежденияПриЗавершенииРаботы/Module.bsl +++ b/SSL/src/CommonForms/ПредупрежденияПриЗавершенииРаботы/Module.bsl @@ -347,6 +347,7 @@ Индекс = 0; ФлагПоиска = Истина; + Имя = ""; Пока ФлагПоиска Цикл ИндексСтрока = Строка(Формат(Индекс, "ЧН=-")); ИндексСтрока = СтрЗаменить(ИндексСтрока, "-", ""); @@ -354,12 +355,14 @@ НайденныйЭлемент = Элементы.Найти(Имя); Если НайденныйЭлемент = Неопределено Тогда - Возврат Имя; + Прервать; КонецЕсли; Индекс = Индекс + 1; КонецЦикла; -КонецФункции + + Возврат Имя; +КонецФункции &НаКлиенте Функция ИдентификаторМассиваЗадачПоИмени(ИмяЭлемента) diff --git a/SSL/src/CommonForms/ПустойРабочийСтол/Form.form b/SSL/src/CommonForms/ПустойРабочийСтол/Form.form index 7a75822a2..ee05d0c55 100644 --- a/SSL/src/CommonForms/ПустойРабочийСтол/Form.form +++ b/SSL/src/CommonForms/ПустойРабочийСтол/Form.form @@ -82,10 +82,6 @@ true - - <key>ru</key> - <value>Тестовый режим</value> - ТестовыйРежимРасширеннаяПодсказка 2 diff --git a/SSL/src/CommonForms/Расширения/Module.bsl b/SSL/src/CommonForms/Расширения/Module.bsl index 4b0fe32bf..b0a453a47 100644 --- a/SSL/src/CommonForms/Расширения/Module.bsl +++ b/SSL/src/CommonForms/Расширения/Module.bsl @@ -750,9 +750,9 @@ // Параметры: // ПомещенныеФайлы - Массив из ОписаниеПереданногоФайла -// МодульОбновлениеКонфигурацииКлиент - CommonModule.ОбновлениеКонфигурацииКлиент +// МодульОбновлениеКонфигурацииКлиент - CommonModule.ОбновлениеКонфигурацииКлиент // Возвращаемое значение: -// Булево +// Булево // &НаКлиенте Функция ВыбранныеФайлыСодержатТолькоИсправления(ПомещенныеФайлы, МодульОбновлениеКонфигурацииКлиент) @@ -919,7 +919,6 @@ КонецЕсли; КонецЦикла; Иначе - ОписаниеНовыхРасширений = Новый СписокЗначений; Для Каждого ПомещенныйФайл Из ПомещенныеФайлы Цикл ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(ПомещенныйФайл.Хранение); ОписаниеРасширения = Новый ОписаниеКонфигурации(ДвоичныеДанныеФайла); diff --git a/SSL/src/CommonForms/РегиональныеНастройки/Module.bsl b/SSL/src/CommonForms/РегиональныеНастройки/Module.bsl index 01448a001..1faa3c404 100644 --- a/SSL/src/CommonForms/РегиональныеНастройки/Module.bsl +++ b/SSL/src/CommonForms/РегиональныеНастройки/Module.bsl @@ -260,14 +260,10 @@ Элементы.Страницы.ТекущаяСтраница = Элементы.Ожидание; Элементы.ОК.Доступность = Ложь; - ОповещениеОПрогрессеВыполнения = Новый ОписаниеОповещения("ПрогрессВыполнения", ЭтотОбъект); - Задание = ЗапуститьФоновоеПерезаполнениеНаСервере(УникальныйИдентификатор); - ИдентификаторЗадания = Задание.ИдентификаторЗадания; НастройкиОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); НастройкиОжидания.ВыводитьОкноОжидания = Ложь; - НастройкиОжидания.ОповещениеОПрогрессеВыполнения = ОповещениеОПрогрессеВыполнения; Обработчик = Новый ОписаниеОповещения("ПослеФоновогоПерезаполнения", ЭтотОбъект); ДлительныеОперацииКлиент.ОжидатьЗавершение(Задание, Обработчик, НастройкиОжидания); @@ -313,23 +309,6 @@ КонецПроцедуры -&НаСервереБезКонтекста -Функция ПрочитатьПрогресс(ИдентификаторЗадания) - Возврат ДлительныеОперации.ПрочитатьПрогресс(ИдентификаторЗадания); -КонецФункции - -&НаКлиенте -Процедура ПрогрессВыполнения(Результат, ДополнительныеПараметры) Экспорт - - Если Результат.Статус = "Выполняется" Тогда - Прогресс = ПрочитатьПрогресс(Результат.ИдентификаторЗадания); - Если Прогресс <> Неопределено Тогда - ТекстСостоянияОчистки = Прогресс.Текст; - КонецЕсли; - КонецЕсли; - -КонецПроцедуры - &НаКлиенте Функция ДанныеКорректны() diff --git a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Form.form b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Form.form index dae88e1a6..457b98e4f 100644 --- a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Form.form +++ b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Form.form @@ -136,6 +136,89 @@ + + Язык + 265 + true + true + + true + + + <key>ru</key> + <value>Язык</value> + + + ЯзыкРасширеннаяПодсказка + 266 + Label + true + true + + Left + + + Popup + + Auto + Normal + + + + Перевести + 267 + true + true + + true + + + ПеревестиРасширеннаяПодсказка + 268 + Label + true + true + + Left + + + Form.Command.Перевести + Normal + Auto + true + true + UserCmds + Auto + + + КнопкаПоказатьСкрытьОригинал + 274 + true + true + + true + + + КнопкаПоказатьСкрытьОригиналРасширеннаяПодсказка + 275 + Label + true + true + + Left + + + Form.Command.ПоказатьСкрытьОригинал + Normal + Auto + true + true + UserCmds + + StdPicture.Document + + Auto + ВсеДействия 83 @@ -395,7 +478,9 @@ Left - + + Compact + Начертание @@ -527,7 +612,9 @@ Left - + + Compact + Выравнивание @@ -1343,21 +1430,136 @@ Auto - - ТабличныйДокумент - 1 + + Макеты + 272 + + ПоставляемыйМакет + 269 + true + + true + + + ПоставляемыйМакет + + + ПоставляемыйМакетРасширеннаяПодсказка + 271 + Label + true + true + + Left + + + + ПоставляемыйМакетКонтекстноеМеню + 270 + true + + SpreadsheetDocumentField + Enter + true + Left + true + + + OnActivate + ПоставляемыйМакетПриАктивизации + + 50 + true + 10 + true + true + true + true + true + true + true + Special + ScrollAuto + ScrollAuto + Always + Auto + true + true + true + + + + ТабличныйДокумент + 1 + + <key>ru</key> + <value>Измененный макет</value> + + true + true + + true + + + ТабличныйДокумент + + None + + ТабличныйДокументExtendedTooltip + 144 + Label + true + true + + Left + + + + ТабличныйДокументКонтекстноеМеню + 2 + true + + SpreadsheetDocumentField + Enter + true + Left + true + + + OnActivate + ТабличныйДокументПриАктивизации + + 50 + true + 10 + true + true + true + true + true + Special + ScrollAlways + ScrollAlways + Always + Auto + true + true + true + true + + true true true - - ТабличныйДокумент - - None + + <key>ru</key> + <value>Макеты</value> + - ТабличныйДокументExtendedTooltip - 144 + МакетыРасширеннаяПодсказка + 273 Label true true @@ -1365,38 +1567,14 @@ Left
    - - ТабличныйДокументКонтекстноеМеню - 2 - true - - SpreadsheetDocumentField - Enter - true - Left - true - - - OnActivate - ТабличныйДокументПриАктивизации - - 50 - true - 10 - true - true - true - true - true - Special - ScrollAlways - ScrollAlways - Always - Auto - true - true - true - true + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto None @@ -1493,6 +1671,77 @@ true + + Язык + 1 + + CatalogRef.ЯзыкиПечатныхФорм + + + true + + + true + + + + ТекущийЯзык + 6 + + String + + + + true + + + true + + + + ТребуетсяПеревод + 7 + + Boolean + + + true + + + true + + + + ПоставляемыйМакет + + <key>ru</key> + <value>Поставляемый макет</value> + + 8 + + SpreadsheetDocument + + + true + + + true + + + + + ДоступенАвтоматическийПеревод + 9 + + Boolean + + + true + + + true + + ЗаписатьИЗакрыть @@ -1663,6 +1912,50 @@ <currentRowUse>DontUse</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> + <formCommands> + <name>Перевести</name> + <title> + <key>ru</key> + <value>Перевести</value> + + 2 + + ru + Перевести + + + true + + + + Перевести + + + Auto + Auto + + + ПоказатьСкрытьОригинал + + <key>ru</key> + <value>Показывать поставляемый макет</value> + + 4 + + ru + Показать скрыть оригинал + + + true + + + + ПоказатьСкрытьОригинал + + + Auto + Auto + ТабличныйДокумент @@ -1709,6 +2002,13 @@ true + + КодЯзыка + + String + + + diff --git a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl index 23de51919..a2a60ab7e 100644 --- a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl +++ b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl @@ -18,7 +18,7 @@ Если Параметры.ТабличныйДокумент = Неопределено Тогда Если Не ПустаяСтрока(Параметры.ИмяОбъектаМетаданныхМакета) Тогда РедактированиеЗапрещено = Не Параметры.Редактирование; - ЗагрузитьТабличныйДокументИзМетаданных(); + ЗагрузитьТабличныйДокументИзМетаданных(Параметры.КодЯзыка); КонецЕсли; ИначеЕсли ТипЗнч(Параметры.ТабличныйДокумент) = Тип("ТабличныйДокумент") Тогда @@ -47,6 +47,15 @@ Элементы.ТабличныйДокумент.ОтображатьИменаСтрокИКолонок = ТабличныйДокумент.Макет; Элементы.ТабличныйДокумент.ОтображатьИменаЯчеек = ТабличныйДокумент.Макет; + Если ЭтоМакет Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда + МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); + МодульУправлениеПечатьюМультиязычность.ЗаполнитьПодменюЯзык(ЭтотОбъект, Параметры.КодЯзыка); + ДоступенАвтоматическийПеревод = МодульУправлениеПечатьюМультиязычность.ДоступенАвтоматическийПеревод(ТекущийЯзык); + КонецЕсли; + КонецЕсли; + Элементы.Перевести.Видимость = ДоступенАвтоматическийПеревод; + Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "КоманднаяПанель", "Видимость", Ложь); @@ -83,16 +92,7 @@ Возврат; КонецЕсли; - ПараметрыОповещения = Новый Структура; - ПараметрыОповещения.Вставить("ПутьКФайлу", Параметры.ПутьКФайлу); - ПараметрыОповещения.Вставить("ИмяОбъектаМетаданныхМакета", Параметры.ИмяОбъектаМетаданныхМакета); - Если ЗаписьВыполнена Тогда - ИмяСобытия = "Запись_ТабличныйДокумент"; - ПараметрыОповещения.Вставить("ТабличныйДокумент", ТабличныйДокумент); - Иначе - ИмяСобытия = "ОтменаРедактированияТабличногоДокумента"; - КонецЕсли; - Оповестить(ИмяСобытия, ПараметрыОповещения, ЭтотОбъект); + ОповеститьОЗаписиТабличногоДокумента(); КонецПроцедуры @@ -122,6 +122,14 @@ &НаКлиенте Процедура ТабличныйДокументПриАктивизации(Элемент) ОбновитьПометкиКнопокКоманднойПанели(); + СинхронизироватьОбластьПросмотраМакетов(); +КонецПроцедуры + +&НаКлиенте +Процедура ПоставляемыйМакетПриАктивизации(Элемент) + + СинхронизироватьОбластьПросмотраМакетов(); + КонецПроцедуры #КонецОбласти @@ -139,6 +147,7 @@ &НаКлиенте Процедура Записать(Команда) ЗаписатьТабличныйДокумент(); + ОповеститьОЗаписиТабличногоДокумента(); КонецПроцедуры &НаКлиенте @@ -203,16 +212,45 @@ КонецПроцедуры +&НаКлиенте +Процедура Перевести(Команда) + + ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Выполнить автоматический перевод на %1 язык?'"), Элементы.Язык.Заголовок); + Кнопки = Новый СписокЗначений; + Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Выполнить перевод'")); + Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Не выполнять'")); + + ОписаниеОповещения = Новый ОписаниеОповещения("ПриОтветеНаВопросОПереводеМакета", ЭтотОбъект); + ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции &НаСервере -Процедура ЗагрузитьТабличныйДокументИзМетаданных() +Процедура ЗагрузитьТабличныйДокументИзМетаданных(Знач КодЯзыка = Неопределено) + + ТребуетсяПеревод = Ложь; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда МодульУправлениеПечатью = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатью"); - ТабличныйДокумент = МодульУправлениеПечатью.МакетПечатнойФормы(Параметры.ИмяОбъектаМетаданныхМакета); + ТабличныйДокумент = МодульУправлениеПечатью.МакетПечатнойФормы(Параметры.ИмяОбъектаМетаданныхМакета, КодЯзыка); + ПоставляемыйМакет = МодульУправлениеПечатью.ПоставляемыйМакет(Параметры.ИмяОбъектаМетаданныхМакета, КодЯзыка); КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда + МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); + Если ЗначениеЗаполнено(КодЯзыка) Тогда + ДоступныеЯзыкиТабличногоДокумента = МодульУправлениеПечатьюМультиязычность.ЯзыкиМакета(Параметры.ИмяОбъектаМетаданныхМакета); + ТребуетсяПеревод = ДоступныеЯзыкиТабличногоДокумента.Найти(КодЯзыка) = Неопределено; + КонецЕсли; + + ДоступенАвтоматическийПеревод = МодульУправлениеПечатьюМультиязычность.ДоступенАвтоматическийПеревод(ТекущийЯзык); + Элементы.Перевести.Видимость = ДоступенАвтоматическийПеревод; + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -290,7 +328,7 @@ КонецФункции // Возвращаемое значение: -// Массив из ОбластьЯчеекТабличногоДокумента +// Массив из ОбластьЯчеекТабличногоДокумента // &НаКлиенте Функция СписокОбластейДляИзмененияШрифта() @@ -559,4 +597,180 @@ КонецПроцедуры +&НаКлиенте +Процедура Подключаемый_ПереключитьЯзык(Команда) + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда + МодульУправлениеПечатьюКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеПечатьюКлиент"); + МодульУправлениеПечатьюКлиент.ПереключитьЯзык(ЭтотОбъект, Команда); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура Подключаемый_ПриПереключенииЯзыка(КодЯзыка, ДополнительныеПараметры) Экспорт + + ЗагрузитьТабличныйДокументИзМетаданных(КодЯзыка); + Если ТребуетсяПеревод Тогда + Если ДоступенАвтоматическийПеревод Тогда + ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Макет еще не переведен на %1 язык. + |Выполнить автоматический перевод?'"), Элементы.Язык.Заголовок); + Кнопки = Новый СписокЗначений; + Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Выполнить перевод'")); + Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Не выполнять'")); + + ОписаниеОповещения = Новый ОписаниеОповещения("ПриОтветеНаВопросОПереводеМакета", ЭтотОбъект); + ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОтветеНаВопросОПереводеМакета(Ответ, ДополнительныеПараметры) Экспорт + + Если Ответ <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + ПеревестиТекстыМакета(); + +КонецПроцедуры + +&НаСервере +Процедура ПеревестиТекстыМакета() + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.ПереводТекста") Тогда + МодульПереводТекстаНаДругиеЯзыки = ОбщегоНазначения.ОбщийМодуль("ПереводТекстаНаДругиеЯзыки"); + Иначе + Возврат; + КонецЕсли; + + ТекстыЯчеек = Новый Соответствие; + + Для НомерСтроки = 1 По ТабличныйДокумент.ВысотаТаблицы Цикл + Для НомерКолонки = 1 По ТабличныйДокумент.ШиринаТаблицы Цикл + Область = ТабличныйДокумент.Область(НомерСтроки, НомерКолонки); + Если ЗначениеЗаполнено(Область.Текст) Тогда + Текст = УбратьПараметрыИзТекста(Область.Текст).Текст; + ТекстыЯчеек.Вставить(Текст, Истина); + КонецЕсли; + КонецЦикла; + КонецЦикла; + + ТекстыДляПеревода = Новый Массив; + Для Каждого Элемент Из ТекстыЯчеек Цикл + ТекстыДляПеревода.Добавить(Элемент.Ключ); + КонецЦикла; + + Переводы = МодульПереводТекстаНаДругиеЯзыки.ПеревестиТексты(ТекстыДляПеревода, ТекущийЯзык, ОбщегоНазначения.КодОсновногоЯзыка()); + + Для НомерСтроки = 1 По ТабличныйДокумент.ВысотаТаблицы Цикл + Для НомерКолонки = 1 По ТабличныйДокумент.ШиринаТаблицы Цикл + Область = ТабличныйДокумент.Область(НомерСтроки, НомерКолонки); + Если ЗначениеЗаполнено(Область.Текст) Тогда + РезультатОбработки = УбратьПараметрыИзТекста(Область.Текст); + Текст = РезультатОбработки.Текст; + Если ЗначениеЗаполнено(Переводы[Текст]) Тогда + Область.Текст = ВернутьПараметрыВТекст(Переводы[Текст], РезультатОбработки.Параметры); + КонецЕсли; + КонецЕсли; + КонецЦикла; + КонецЦикла; + + Модифицированность = Истина; + +КонецПроцедуры + +&НаСервере +Функция УбратьПараметрыИзТекста(Знач Текст) + + НайденныеПараметры = Новый Массив; + + ЧастиСтроки = СтрРазделить(Текст, "[]", Истина); + Для Индекс = 1 По ЧастиСтроки.ВГраница() Цикл + НайденныеПараметры.Добавить("[" + ЧастиСтроки[Индекс] + "]"); + Индекс = Индекс + 1; + КонецЦикла; + + ОбработанныеПараметры = Новый Массив; + Счетчик = 0; + Для Каждого Параметр Из НайденныеПараметры Цикл + Если СтрНайти(Текст, Параметр) Тогда + Счетчик = Счетчик + 1; + Идентификатор = "%" + XMLСтрока(Счетчик); + Текст = СтрЗаменить(Текст, Параметр, Идентификатор); + ОбработанныеПараметры.Добавить(Параметр); + КонецЕсли; + КонецЦикла; + + Результат = Новый Структура; + Результат.Вставить("Текст", Текст); + Результат.Вставить("Параметры", ОбработанныеПараметры); + + Возврат Результат; + +КонецФункции + +&НаСервере +Функция ВернутьПараметрыВТекст(Знач Текст, ОбработанныеПараметры) + + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтрокуИзМассива(Текст, ОбработанныеПараметры); + +КонецФункции + +&НаКлиенте +Процедура ПоказатьСкрытьОригинал(Команда) + + Элементы.КнопкаПоказатьСкрытьОригинал.Пометка = Не Элементы.КнопкаПоказатьСкрытьОригинал.Пометка; + Элементы.ПоставляемыйМакет.Видимость = Элементы.КнопкаПоказатьСкрытьОригинал.Пометка; + Если Элементы.КнопкаПоказатьСкрытьОригинал.Пометка Тогда + Элементы.ТабличныйДокумент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто; + Иначе + Элементы.ТабличныйДокумент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СинхронизироватьОбластьПросмотраМакетов() + + Если Не Элементы.ПоставляемыйМакет.Видимость Тогда + Возврат; + КонецЕсли; + + УправляемыйЭлемент = Элементы.ПоставляемыйМакет; + Если ТекущийЭлемент <> Элементы.ТабличныйДокумент Тогда + УправляемыйЭлемент = Элементы.ТабличныйДокумент; + КонецЕсли; + + Область = ТекущийЭлемент.ТекущаяОбласть; + Если Область = Неопределено Тогда + Возврат; + КонецЕсли; + + УправляемыйЭлемент.ТекущаяОбласть = ЭтотОбъект[ТекущийЭлемент.Имя].Область( + Область.Верх, Область.Лево, Область.Низ, Область.Право); + +КонецПроцедуры + +&НаКлиенте +Процедура ОповеститьОЗаписиТабличногоДокумента() + + ПараметрыОповещения = Новый Структура; + ПараметрыОповещения.Вставить("ПутьКФайлу", Параметры.ПутьКФайлу); + ПараметрыОповещения.Вставить("ИмяОбъектаМетаданныхМакета", Параметры.ИмяОбъектаМетаданныхМакета); + ПараметрыОповещения.Вставить("КодЯзыка", ТекущийЯзык); + + Если ЗаписьВыполнена Тогда + ИмяСобытия = "Запись_ТабличныйДокумент"; + ПараметрыОповещения.Вставить("ТабличныйДокумент", ТабличныйДокумент); + Иначе + ИмяСобытия = "ОтменаРедактированияТабличногоДокумента"; + КонецЕсли; + Оповестить(ИмяСобытия, ПараметрыОповещения, ЭтотОбъект); + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/CommonForms/СвязанныеДокументы/Module.bsl b/SSL/src/CommonForms/СвязанныеДокументы/Module.bsl index 79fda82ef..ccb49d642 100644 --- a/SSL/src/CommonForms/СвязанныеДокументы/Module.bsl +++ b/SSL/src/CommonForms/СвязанныеДокументы/Module.bsl @@ -470,10 +470,11 @@ "ВЫБРАТЬ РАЗРЕШЕННЫЕ | 1 |ИЗ - | " + ОсновнойОбъект.Метаданные().ПолноеИмя() + " КАК Таб + | &ИмяТаблицы КАК Таб |ГДЕ | Таб.Ссылка = &ТекущийОбъект |"); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицы", ОсновнойОбъект.Метаданные().ПолноеИмя()); Запрос.УстановитьПараметр("ТекущийОбъект", ОсновнойОбъект); Возврат Не Запрос.Выполнить().Пустой(); @@ -498,17 +499,18 @@ ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Ссылка, - | #Проведен, + | &Проведен КАК Проведен, | ПометкаУдаления, - | #Сумма , - | #Валюта, - | #Представление + | &Сумма КАК СуммаДокумента, + | &Валюта КАК Валюта, + | &Представление |ИЗ - | " + МетаданныеОбъекта.ПолноеИмя() + " + | &ИмяТаблицы |ГДЕ | Ссылка = &Ссылка |"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицы", МетаданныеОбъекта.ПолноеИмя()); Если ОбщегоНазначения.ЭтоДокумент(МетаданныеОбъекта) Тогда ИмяРеквизитаСумма = ИмяРеквизитаДокумента(МетаданныеОбъекта, "СуммаДокумента"); ИмяРеквизитаВалюта = ИмяРеквизитаДокумента(МетаданныеОбъекта, "Валюта"); @@ -519,9 +521,9 @@ ИмяРеквизитаПроведен = "Ложь"; КонецЕсли; - ЗаменитьТекстЗапроса(ТекстЗапроса, МетаданныеОбъекта, "#Проведен", ИмяРеквизитаПроведен, "Проведен", Истина); - ЗаменитьТекстЗапроса(ТекстЗапроса, МетаданныеОбъекта, "#Сумма", ИмяРеквизитаСумма, "СуммаДокумента"); - ЗаменитьТекстЗапроса(ТекстЗапроса, МетаданныеОбъекта, "#Валюта", ИмяРеквизитаВалюта, "Валюта"); + ЗаменитьТекстЗапроса(ТекстЗапроса, МетаданныеОбъекта, "&Проведен", ИмяРеквизитаПроведен, Истина); + ЗаменитьТекстЗапроса(ТекстЗапроса, МетаданныеОбъекта, "&Сумма", ИмяРеквизитаСумма); + ЗаменитьТекстЗапроса(ТекстЗапроса, МетаданныеОбъекта, "&Валюта", ИмяРеквизитаВалюта); МассивДопРеквизитов = РеквизитыДляПредставления(МетаданныеОбъекта.ПолноеИмя(), МетаданныеОбъекта.Имя); ДополнитьТекстЗапросаПоРеквизитамОбъекта(ТекстЗапроса, МассивДопРеквизитов); @@ -692,7 +694,7 @@ // СтрокаРодитель - ДанныеФормыДерево // - ДанныеФормыЭлементДерева - родитель, для // которого предполагается добавить строку дерева. -// ИскомыйОбъект - Ссылка - ссылка на объект метаданных, на наличие которого выполняется проверка. +// ИскомыйОбъект - ЛюбаяСсылка - ссылка на объект метаданных, на наличие которого выполняется проверка. // // Возвращаемое значение: // Булево - Истина если найден, Ложь в обратном случае. @@ -721,13 +723,10 @@ КонецФункции &НаСервере -Процедура ЗаменитьТекстЗапроса(ТекстЗапроса, МетаданныеОбъекта, ЧтоЗаменять, ИмяРеквизита, Представление, НеИскатьВРеквизитах = Ложь) +Процедура ЗаменитьТекстЗапроса(ТекстЗапроса, МетаданныеОбъекта, ЧтоЗаменять, ИмяРеквизита, НеИскатьВРеквизитах = Ложь) - Если НеИскатьВРеквизитах Или МетаданныеОбъекта.Реквизиты.Найти(ИмяРеквизита) <> Неопределено Тогда - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ЧтоЗаменять, ИмяРеквизита + " КАК " + Представление); - Иначе - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ЧтоЗаменять, " NULL КАК " + Представление); - КонецЕсли; + ЕстьРеквизит = НеИскатьВРеквизитах Или МетаданныеОбъекта.Реквизиты.Найти(ИмяРеквизита) <> Неопределено; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ЧтоЗаменять, ?(ЕстьРеквизит, ИмяРеквизита, "NULL")); КонецПроцедуры @@ -794,7 +793,7 @@ // // Возвращаемое значение: // ТаблицаЗначений: -// - Ссылка - СправочникСсылка +// * Ссылка - СправочникСсылка // - ДокументСсылка // &НаСервере @@ -860,8 +859,18 @@ Возврат; КонецЕсли; - ТекстЗапросаНачало = "ВЫБРАТЬ РАЗРЕШЕННЫЕ * ИЗ ("; - ТекстЗапросаКонец = ") КАК ПодчиненныеОбъекты УПОРЯДОЧИТЬ ПО ПодчиненныеОбъекты.Дата"; + ШаблонПодзапроса = "ВЫБРАТЬ + | &Дата КАК Дата, + | Ссылка, + | &Проведен КАК Проведен, + | ПометкаУдаления, + | &СуммаДокумента КАК СуммаДокумента, + | &Валюта КАК Валюта, + | &Представление + |ИЗ + | &ИмяТаблицы + |ГДЕ + | Ссылка В (&ИмяОбъекта)"; Запрос = Новый Запрос; ТекстЗапроса = ""; @@ -874,29 +883,34 @@ Продолжить; КонецЕсли; - ТекстПоТипуОбъекта = " - |" + КэшРеквизитовОбъекта[КлючИЗначение.Ключ]["Дата"] + " КАК Дата, - | Ссылка, - |" + КэшРеквизитовОбъекта[КлючИЗначение.Ключ]["Проведен"] + " КАК Проведен, - | ПометкаУдаления, - |" + КэшРеквизитовОбъекта[КлючИЗначение.Ключ]["СуммаДокумента"] + " КАК СуммаДокумента, - |" + КэшРеквизитовОбъекта[КлючИЗначение.Ключ]["Валюта"] + " КАК Валюта, - | #Представление - |ИЗ - | " + КлючИЗначение.Ключ + " - |ГДЕ - | Ссылка В (&" + ИмяОбъекта + ")"; - + ТекстПоТипуОбъекта = СтрЗаменить(ШаблонПодзапроса, "&Дата", КэшРеквизитовОбъекта[КлючИЗначение.Ключ]["Дата"]); + ТекстПоТипуОбъекта = СтрЗаменить(ТекстПоТипуОбъекта, "&Проведен", КэшРеквизитовОбъекта[КлючИЗначение.Ключ]["Проведен"]); + ТекстПоТипуОбъекта = СтрЗаменить(ТекстПоТипуОбъекта, "&СуммаДокумента", КэшРеквизитовОбъекта[КлючИЗначение.Ключ]["СуммаДокумента"]); + ТекстПоТипуОбъекта = СтрЗаменить(ТекстПоТипуОбъекта, "&Валюта", КэшРеквизитовОбъекта[КлючИЗначение.Ключ]["Валюта"]); + ТекстПоТипуОбъекта = СтрЗаменить(ТекстПоТипуОбъекта, "&ИмяТаблицы", КлючИЗначение.Ключ); + ТекстПоТипуОбъекта = СтрЗаменить(ТекстПоТипуОбъекта, "&ИмяОбъекта", "&" + ИмяОбъекта); Запрос.УстановитьПараметр(ИмяОбъекта, КлючИЗначение.Значение); МассивДопРеквизитов = РеквизитыДляПредставления(КлючИЗначение.Ключ, ИмяОбъекта); ДополнитьТекстЗапросаПоРеквизитамОбъекта(ТекстПоТипуОбъекта, МассивДопРеквизитов); - ТекстЗапроса = ТекстЗапроса + ?(ТекстЗапроса = "", " ВЫБРАТЬ ", " ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ") + ТекстПоТипуОбъекта; + Если Не ПустаяСтрока(ТекстЗапроса) Тогда + ТекстЗапроса = ТекстЗапроса + " + | ОБЪЕДИНИТЬ ВСЕ + |"; + КонецЕсли; + ТекстЗапроса = ТекстЗапроса + ТекстПоТипуОбъекта; КонецЦикла; - Запрос.Текст = ТекстЗапросаНачало + ТекстЗапроса + ТекстЗапросаКонец; + ШаблонЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | * + |ИЗ + | (ВЫБРАТЬ 1 ИЗ #Подзапрос) КАК ПодчиненныеОбъекты + |УПОРЯДОЧИТЬ ПО + | ПодчиненныеОбъекты.Дата"; + + Запрос.Текст = СтрЗаменить(ШаблонЗапроса, "ВЫБРАТЬ 1 ИЗ #Подзапрос", ТекстЗапроса); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл @@ -1053,7 +1067,7 @@ КонецЦикла; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#Представление", ТекстПредставление); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Представление", ТекстПредставление); КонецПроцедуры @@ -1216,6 +1230,14 @@ КонецФункции +// Возвращаемое значение: +// Структура: +// * Пояснение - Строка +// * Ссылка - Строка +// * Оповещение - Строка +// * Вопрос - Строка +// * Пометка - Булево +// &НаКлиенте Функция СценарийИзмененияПометкиУдаления(ВыбранныеЭлементы, СтатистикаПоВыбраннымЭлементам) @@ -1291,6 +1313,10 @@ КонецФункции +// Параметры: +// Ответ - КодВозвратаДиалога +// Сценарий - см. СценарийИзмененияПометкиУдаления +// &НаКлиенте Процедура ВыполнитьСценарийИзмененияПометкиУдаления(Ответ, Сценарий) Экспорт @@ -1406,7 +1432,7 @@ Иначе - ВыбранныйОбъект = Документ.ПолучитьОбъект(); + ВыбранныйОбъект = Документ.ПолучитьОбъект(); // ДокументОбъект ВыбранныйОбъект.Записать(Режим); ОбработанныеДокументы.Вставить(Документ, СвойстваДокумента.Представление); diff --git a/SSL/src/CommonForms/Сертификат/Form.form b/SSL/src/CommonForms/Сертификат/Form.form index df3b1a941..318c9cf25 100644 --- a/SSL/src/CommonForms/Сертификат/Form.form +++ b/SSL/src/CommonForms/Сертификат/Form.form @@ -257,10 +257,6 @@ true - - <key>ru</key> - <value>Основное назначение</value> - ВертикальнаяГруппаРасширеннаяПодсказка 132 @@ -391,10 +387,6 @@ Субъект 105 - - <key>ru</key> - <value>Субъект</value> - true true @@ -645,10 +637,6 @@ Издатель 115 - - <key>ru</key> - <value>Издатель</value> - true true @@ -989,10 +977,6 @@ ВнутреннееСодержание 95 - - <key>ru</key> - <value>Внутреннее содержание</value> - true true @@ -1290,10 +1274,6 @@ true - - <key>ru</key> - <value>Страницы</value> - СтраницыРасширеннаяПодсказка 21 diff --git a/SSL/src/CommonForms/СохранениеВместеСЭлектроннойПодписью/Form.form b/SSL/src/CommonForms/СохранениеВместеСЭлектроннойПодписью/Form.form index 96f194005..65dc42c20 100644 --- a/SSL/src/CommonForms/СохранениеВместеСЭлектроннойПодписью/Form.form +++ b/SSL/src/CommonForms/СохранениеВместеСЭлектроннойПодписью/Form.form @@ -52,10 +52,6 @@ true - - <key>ru</key> - <value>Представление данных</value> - ГруппаПредставлениеДанныхРасширеннаяПодсказка 87 @@ -83,10 +79,6 @@ ТаблицаПодписей 34 - - <key>ru</key> - <value>Таблица подписей</value> - true true diff --git a/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Form.form b/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Form.form index f84814d16..057246059 100644 --- a/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Form.form +++ b/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Form.form @@ -94,10 +94,6 @@ true - - <key>ru</key> - <value>Шапка</value> - ШапкаРасширеннаяПодсказка 91 diff --git a/SSL/src/CommonForms/ФормаНастроекОтчета/Form.form b/SSL/src/CommonForms/ФормаНастроекОтчета/Form.form index 76568caf0..614dd269f 100644 --- a/SSL/src/CommonForms/ФормаНастроекОтчета/Form.form +++ b/SSL/src/CommonForms/ФормаНастроекОтчета/Form.form @@ -6277,84 +6277,6 @@ - - КомандыСтруктурыВарианта_ДвижениеПоИерархии - 456 - - СтруктураВарианта_ПереместитьВышеИЛевее - 500 - true - true - - true - - - СтруктураВарианта_ПереместитьВышеИЛевееРасширеннаяПодсказка - 501 - Label - true - true - - Left - - - Form.Command.СтруктураВарианта_ПереместитьВышеИЛевее - Normal - Auto - true - true - UserCmds - Auto - - - СтруктураВарианта_ПереместитьНижеИПравее - 502 - true - true - - true - - - СтруктураВарианта_ПереместитьНижеИПравееРасширеннаяПодсказка - 503 - Label - true - true - - Left - - - Form.Command.СтруктураВарианта_ПереместитьНижеИПравее - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Команды структуры варианта движение по иерархии</value> - - - КомандыСтруктурыВарианта_ДвижениеПоИерархииРасширеннаяПодсказка - 457 - Label - true - true - - Left - - - - Compact - - КомандыСтруктурыВарианта_ДвижениеВнутриРодителя 462 @@ -6433,6 +6355,162 @@ Compact + + КомандыСтруктурыВарианта_ДвижениеВИерархии + 1363 + + СтруктураВарианта_ПереместитьНаУровеньВыше + 1365 + true + true + + true + + + СтруктураВарианта_ПереместитьНаУровеньВышеРасширеннаяПодсказка + 1366 + Label + true + true + + Left + + + Form.Command.СтруктураВарианта_ПереместитьНаУровеньВыше + Normal + Auto + true + true + UserCmds + Auto + + + СтруктураВарианта_ПереместитьНаУровеньНиже + 1367 + true + true + + true + + + СтруктураВарианта_ПереместитьНаУровеньНижеРасширеннаяПодсказка + 1368 + Label + true + true + + Left + + + Form.Command.СтруктураВарианта_ПереместитьНаУровеньНиже + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Команды структуры варианта движение в иерархии</value> + + + КомандыСтруктурыВарианта_ДвижениеВИерархииРасширеннаяПодсказка + 1364 + Label + true + true + + Left + + + + Compact + + + + КомандыСтруктурыВарианта_ДвижениеПоИерархии + 456 + + СтруктураВарианта_ПереместитьВышеИЛевее + 500 + true + true + + true + + + СтруктураВарианта_ПереместитьВышеИЛевееРасширеннаяПодсказка + 501 + Label + true + true + + Left + + + Form.Command.СтруктураВарианта_ПереместитьВышеИЛевее + Normal + Auto + true + true + UserCmds + Auto + + + СтруктураВарианта_ПереместитьНижеИПравее + 502 + true + true + + true + + + СтруктураВарианта_ПереместитьНижеИПравееРасширеннаяПодсказка + 503 + Label + true + true + + Left + + + Form.Command.СтруктураВарианта_ПереместитьНижеИПравее + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Команды структуры варианта движение по иерархии</value> + + + КомандыСтруктурыВарианта_ДвижениеПоИерархииРасширеннаяПодсказка + 457 + Label + true + true + + Left + + + + Compact + + КомандыСтруктурыВарианта_Флажки 518 @@ -6884,82 +6962,6 @@ - - КомандыСтруктурыВарианта_ДвижениеПоИерархии1 - 755 - - СтруктураВарианта_ПереместитьВышеИЛевее1 - 757 - true - true - - true - - - СтруктураВарианта_ПереместитьВышеИЛевее1РасширеннаяПодсказка - 758 - Label - true - true - - Left - - - Form.Command.СтруктураВарианта_ПереместитьВышеИЛевее - Normal - Auto - true - true - UserCmds - Auto - - - СтруктураВарианта_ПереместитьНижеИПравее1 - 759 - true - true - - true - - - СтруктураВарианта_ПереместитьНижеИПравее1РасширеннаяПодсказка - 760 - Label - true - true - - Left - - - Form.Command.СтруктураВарианта_ПереместитьНижеИПравее - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Команды структуры варианта движение по иерархии 1</value> - - - КомандыСтруктурыВарианта_ДвижениеПоИерархии1РасширеннаяПодсказка - 756 - Label - true - true - - Left - - - - КомандыСтруктурыВарианта_ДвижениеВнутриРодителя1 761 @@ -7036,6 +7038,160 @@ + + КомандыСтруктурыВарианта_ДвижениеВИерархии1 + 1369 + + СтруктураВарианта_ПереместитьНаУровеньВыше1 + 1371 + true + true + + true + + + СтруктураВарианта_ПереместитьНаУровеньВыше1РасширеннаяПодсказка + 1372 + Label + true + true + + Left + + + Form.Command.СтруктураВарианта_ПереместитьНаУровеньВыше + Normal + Auto + true + true + UserCmds + Auto + + + СтруктураВарианта_ПереместитьНаУровеньНиже1 + 1373 + true + true + + true + + + СтруктураВарианта_ПереместитьНаУровеньНиже1РасширеннаяПодсказка + 1374 + Label + true + true + + Left + + + Form.Command.СтруктураВарианта_ПереместитьНаУровеньНиже + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Команды структуры варианта движение в иерархии</value> + + + КомандыСтруктурыВарианта_ДвижениеВИерархии1РасширеннаяПодсказка + 1370 + Label + true + true + + Left + + + + Compact + + + + КомандыСтруктурыВарианта_ДвижениеПоИерархии1 + 755 + + СтруктураВарианта_ПереместитьВышеИЛевее1 + 757 + true + true + + true + + + СтруктураВарианта_ПереместитьВышеИЛевее1РасширеннаяПодсказка + 758 + Label + true + true + + Left + + + Form.Command.СтруктураВарианта_ПереместитьВышеИЛевее + Normal + Auto + true + true + UserCmds + Auto + + + СтруктураВарианта_ПереместитьНижеИПравее1 + 759 + true + true + + true + + + СтруктураВарианта_ПереместитьНижеИПравее1РасширеннаяПодсказка + 760 + Label + true + true + + Left + + + Form.Command.СтруктураВарианта_ПереместитьНижеИПравее + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Команды структуры варианта движение по иерархии 1</value> + + + КомандыСтруктурыВарианта_ДвижениеПоИерархии1РасширеннаяПодсказка + 756 + Label + true + true + + Left + + + + КомандыСтруктурыВарианта_Флажки1 767 @@ -12816,6 +12972,58 @@ Auto Auto + + СтруктураВарианта_ПереместитьНаУровеньВыше + + <key>ru</key> + <value>Переместить на уровень выше</value> + + 59 + + ru + Переместить на уровень выше + + + true + + + StdPicture.MoveLeft + + + + СтруктураВарианта_ПереместитьНаУровеньВыше + + + Picture + DontUse + Auto + + + СтруктураВарианта_ПереместитьНаУровеньНиже + + <key>ru</key> + <value>Переместить на уровень ниже</value> + + 60 + + ru + Переместить на уровень ниже + + + true + + + StdPicture.MoveRight + + + + СтруктураВарианта_ПереместитьНаУровеньНиже + + + Picture + DontUse + Auto + diff --git a/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl b/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl index 7d464d7b9..4540df2bf 100644 --- a/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl +++ b/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl @@ -42,7 +42,9 @@ ВызватьИсключение НСтр("ru = 'Не передан служебный параметр ""ВариантНаименование"".'"); КонецЕсли; - КлючСохраненияПоложенияОкна = НастройкиОтчета.ПолноеИмя; + ОписаниеНастроекОтчета = ОписаниеНастроекОтчета(НастройкиОтчета); + + КлючСохраненияПоложенияОкна = ОписаниеНастроекОтчета.ПолноеИмя; Если ЗначениеЗаполнено(КлючТекущегоВарианта) Тогда КлючСохраненияПоложенияОкна = КлючСохраненияПоложенияОкна + "." + КлючТекущегоВарианта; КонецЕсли; @@ -75,7 +77,7 @@ КонецЕсли; Иначе Если Не ЗначениеЗаполнено(ВариантНаименование) Тогда - ВариантНаименование = НастройкиОтчета.Наименование; + ВариантНаименование = ОписаниеНастроекОтчета.Наименование; КонецЕсли; Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( @@ -90,8 +92,8 @@ ИмяСтраницы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ИмяСтраницы", "СтраницаСоставГруппировки"); РасширенныйРежим = 1; Иначе - РасширенныйРежим = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(НастройкиОтчета, "ФормаНастроекРасширенныйРежим", 0); - ИмяСтраницы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(НастройкиОтчета, "ФормаНастроекИмяСтраницы", "СтраницаОтборы"); + РасширенныйРежим = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ОписаниеНастроекОтчета, "ФормаНастроекРасширенныйРежим", 0); + ИмяСтраницы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ОписаниеНастроекОтчета, "ФормаНастроекИмяСтраницы", "СтраницаОтборы"); КонецЕсли; Страница = Элементы.Найти(ИмяСтраницы); @@ -99,8 +101,8 @@ Элементы.СтраницыНастроек.ТекущаяСтраница = Страница; КонецЕсли; - Если НастройкиОтчета.СхемаМодифицирована Тогда - Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(НастройкиОтчета.АдресСхемы)); + Если ОписаниеНастроекОтчета.СхемаМодифицирована Тогда + Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(ОписаниеНастроекОтчета.АдресСхемы)); КонецЕсли; ШрифтВажнойНадписи = Метаданные.ЭлементыСтиля.ВажнаяНадписьШрифт; @@ -328,8 +330,7 @@ КонецЕсли; ЭлементНастройки.Использование = Истина; - ОтчетыКлиент.КэшироватьЗначениеОтбора( - Список, ЭлементНастройки.ИдентификаторПользовательскойНастройки, КомпоновщикНастроек); + ОтчетыКлиент.КэшироватьЗначениеОтбора(КомпоновщикНастроек, ЭлементНастройки, Список); ОформитьСписок(Элемент, ЭлементНастройки); КонецПроцедуры @@ -385,8 +386,7 @@ БиблиотекаКартинок.ВыполнитьЗадачу); КонецЕсли; - ОтчетыКлиент.КэшироватьЗначениеОтбора( - Список, ЭлементНастройки.ИдентификаторПользовательскойНастройки, КомпоновщикНастроек); + ОтчетыКлиент.КэшироватьЗначениеОтбора(КомпоновщикНастроек, ЭлементНастройки, Список); УстановитьМодифицированность(); КонецПроцедуры @@ -1310,6 +1310,34 @@ СдвинутьСтроки(Контекст); КонецПроцедуры +&НаКлиенте +Процедура СтруктураВарианта_ПереместитьНаУровеньВыше(Команда) + Контекст = НовыйКонтекст("СтруктураВарианта", "ПереместитьВИерархии"); + Контекст.Вставить("Направление", -1); + ОпределитьВыделенныеСтроки(Контекст); + + Если ЗначениеЗаполнено(Контекст.ПричинаОтказа) Тогда + ПоказатьПредупреждение(, Контекст.ПричинаОтказа); + Возврат; + КонецЕсли; + + ПереместитьВИерархии(Контекст); +КонецПроцедуры + +&НаКлиенте +Процедура СтруктураВарианта_ПереместитьНаУровеньНиже(Команда) + Контекст = НовыйКонтекст("СтруктураВарианта", "ПереместитьВИерархии"); + Контекст.Вставить("Направление", 1); + ОпределитьВыделенныеСтроки(Контекст); + + Если ЗначениеЗаполнено(Контекст.ПричинаОтказа) Тогда + ПоказатьПредупреждение(, Контекст.ПричинаОтказа); + Возврат; + КонецЕсли; + + ПереместитьВИерархии(Контекст); +КонецПроцедуры + &НаКлиенте Процедура СтруктураВарианта_Изменить(Команда) ТаблицаЭлемент = Элементы.СтруктураВарианта; @@ -1733,6 +1761,19 @@ #Область СлужебныеПроцедурыИФункции +// Параметры: +// Описание - см. ВариантыОтчетов.НастройкиФормыОтчета +// +// Возвращаемое значение: +// см. ВариантыОтчетов.НастройкиФормыОтчета +// +&НаКлиентеНаСервереБезКонтекста +Функция ОписаниеНастроекОтчета(Описание) + + Возврат Описание; + +КонецФункции + #Область ПоляГруппировки // Чтение настроек. @@ -2097,7 +2138,7 @@ Отчет.КомпоновщикНастроек, "Отбор", ИдентификаторЭлементаСтруктурыНастроек); Если ИдентификаторСтроки = Неопределено Тогда - Родитель = Элементы.Отборы.ТекущиеДанные; + Родитель = Элементы.Отборы.ТекущиеДанные; // см. ЭлементКоллекцииФормыНастроек Если Не Родитель.ЭтоРаздел И Не Родитель.ЭтоГруппа Тогда Родитель = Родитель.ПолучитьРодителя(); КонецЕсли; @@ -2222,11 +2263,12 @@ // Изменение группировки элементов. // Возвращаемое значение: -// Неопределено, Структура: +// Структура: // * Строки - Массив из ДанныеФормыЭлементДерева: // * Родитель - ДанныеФормыЭлементДерева: // ** Идентификатор - ИдентификаторКомпоновкиДанных // * Индекс - Число +// Неопределено // &НаКлиенте Функция ПараметрыГруппировкиОтборов() @@ -2304,11 +2346,12 @@ &НаКлиенте Процедура УдалитьБазовыеЭлементыГруппировкиОтборов(ОтборыУзлаНастроек, ПараметрыГруппировки) - Строки = ПараметрыГруппировки.Родитель.ПолучитьЭлементы(); + Родитель = ПараметрыГруппировки.Родитель; // см. ЭлементКоллекцииФормыНастроек + Строки = Родитель.ПолучитьЭлементы(); ЭлементыНастроек = ОтборыУзлаНастроек.Элементы; - Если ТипЗнч(ПараметрыГруппировки.Родитель.Идентификатор) = Тип("ИдентификаторКомпоновкиДанных") Тогда - ЭлементыНастроек = ОтборыУзлаНастроек.ПолучитьОбъектПоИдентификатору(ПараметрыГруппировки.Родитель.Идентификатор).Элементы; + Если ТипЗнч(Родитель.Идентификатор) = Тип("ИдентификаторКомпоновкиДанных") Тогда + ЭлементыНастроек = ОтборыУзлаНастроек.ПолучитьОбъектПоИдентификатору(Родитель.Идентификатор).Элементы; КонецЕсли; Индекс = ПараметрыГруппировки.Строки.ВГраница(); @@ -2337,8 +2380,8 @@ Для Каждого Строка Из ПараметрыСдвига.Строки Цикл ЭлементНастройки = ЭлементНастройки(СвойствоЭлементаСтруктуры, Строка); - ЭлементыНастроек = СвойствоЭлементаСтруктуры.Элементы; + Если ЭлементНастройки.Родитель <> Неопределено Тогда ЭлементыНастроек = ЭлементНастройки.Родитель.Элементы; КонецЕсли; @@ -2532,13 +2575,13 @@ Отчет.КомпоновщикНастроек, "Выбор", ИдентификаторЭлементаСтруктурыНастроек, РасширенныйРежим); Если ИдентификаторСтроки = Неопределено Тогда - Родитель = Элементы.ВыбранныеПоля.ТекущиеДанные; + Родитель = Элементы.ВыбранныеПоля.ТекущиеДанные; // см. ЭлементКоллекцииФормыНастроек Если Родитель = Неопределено Тогда - Родитель = КорневаяСтрокаПоУмолчанию("ВыбранныеПоля"); + Родитель = КорневаяСтрокаПоУмолчанию("ВыбранныеПоля"); // см. ЭлементКоллекцииФормыНастроек КонецЕсли; Если Не Родитель.ЭтоРаздел И Не Родитель.ЭтоГруппа Тогда - Родитель = Родитель.ПолучитьРодителя(); + Родитель = Родитель.ПолучитьРодителя(); // см. ЭлементКоллекцииФормыНастроек КонецЕсли; Строка = Родитель.ПолучитьЭлементы().Добавить(); @@ -2701,8 +2744,10 @@ Строки = ПараметрыГруппировки.Родитель.ПолучитьЭлементы(); ЭлементыНастроек = ВыбранныеПоляУзлаНастроек.Элементы; - Если ТипЗнч(ПараметрыГруппировки.Родитель.Идентификатор) = Тип("ИдентификаторКомпоновкиДанных") Тогда - ЭлементыНастроек = ВыбранныеПоляУзлаНастроек.ПолучитьОбъектПоИдентификатору(ПараметрыГруппировки.Родитель.Идентификатор).Элементы; + Родитель = ПараметрыГруппировки.Родитель; // см. ЭлементКоллекцииФормыНастроек + + Если ТипЗнч(Родитель.Идентификатор) = Тип("ИдентификаторКомпоновкиДанных") Тогда + ЭлементыНастроек = ВыбранныеПоляУзлаНастроек.ПолучитьОбъектПоИдентификатору(Родитель.Идентификатор).Элементы; КонецЕсли; Индекс = ПараметрыГруппировки.Строки.ВГраница(); @@ -3063,17 +3108,11 @@ Отчет.КомпоновщикНастроек, ?(Строка.ЭтоПараметр, "ПараметрыДанных", "Отбор")); ЭлементНастройки = ЭлементНастройки(СвойствоЭлементаСтруктуры, Строка); - Если Не ЗначениеЗаполнено(ЭлементНастройки.ИдентификаторПользовательскойНастройки) Тогда + Если ЭлементНастройки = Неопределено Тогда Возврат ЗначенияДляВыбора; КонецЕсли; - КэшЗначенийОтборов = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( - Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства, "КэшЗначенийОтборов"); - Если КэшЗначенийОтборов = Неопределено Тогда - Возврат ЗначенияДляВыбора; - КонецЕсли; - - ЗначениеОтбора = КэшЗначенийОтборов.Получить(ЭлементНастройки.ИдентификаторПользовательскойНастройки); + ЗначениеОтбора = ОтчетыКлиент.КэшЗначенияОтбора(Отчет.КомпоновщикНастроек, ЭлементНастройки); Если ЗначениеОтбора <> Неопределено Тогда ОтчетыКлиентСервер.ДополнитьСписок(ЗначенияДляВыбора, ЗначениеОтбора); КонецЕсли; @@ -3117,8 +3156,7 @@ ЭлементНастройки = ЭлементНастройки(СвойствоЭлементаСтруктуры, Строка); ЗаполнитьЗначенияСвойств(ЭлементНастройки, Строка, "Использование, " + ИмяПоляЗначения); - ОтчетыКлиент.КэшироватьЗначениеОтбора( - Список, ЭлементНастройки.ИдентификаторПользовательскойНастройки, КомпоновщикНастроек); + ОтчетыКлиент.КэшироватьЗначениеОтбора(КомпоновщикНастроек, ЭлементНастройки, Список); УстановитьМодифицированность(); КонецПроцедуры @@ -4059,6 +4097,9 @@ ПараметрыВыполнения.Оборачивать = Ложь; ИначеЕсли Строка.ПолучитьЭлементы().Количество() > 1 Тогда ПараметрыВыполнения.Оборачивать = Ложь; + ИначеЕсли Строка.Тип = "КоллекцияЭлементовСтруктурыТаблицыКомпоновкиДанных" + И Строка.Подтип = "ТаблицаКолонки" Тогда + ПараметрыВыполнения.Оборачивать = Ложь; КонецЕсли; КонецЕсли; @@ -4371,6 +4412,8 @@ Процедура УстановитьДоступностьКомандСтруктурыВарианта(ИдентификаторСтроки) Строка = СтруктураВарианта.НайтиПоИдентификатору(ИдентификаторСтроки); Родитель = Строка.ПолучитьРодителя(); + ЕстьРодитель = (Родитель <> Неопределено); + ЕстьПотенциальныеРодители = ЕстьРодитель И ПолучитьЭлементы(СтруктураВарианта, Родитель).Индекс(Строка) > 0; ЕстьПодчиненные = (Строка.ПолучитьЭлементы().Количество() > 0); ЕстьСоседние = ПолучитьЭлементы(СтруктураВарианта, Родитель).Количество() > 1; @@ -4398,7 +4441,7 @@ Или Строка.Тип = "НастройкиВложенногоОбъектаКомпоновкиДанных" Или Строка.Тип = "ГруппировкаКомпоновкиДанных"); - РодителяМожноПеремещать = (Родитель <> Неопределено + РодителяМожноПеремещать = (ЕстьРодитель И Родитель.Тип <> "НастройкиКомпоновкиДанных" И Родитель.Тип <> "КоллекцияЭлементовСтруктурыТаблицыКомпоновкиДанных" И Родитель.Тип <> "КоллекцияЭлементовСтруктурыДиаграммыКомпоновкиДанных"); @@ -4423,6 +4466,10 @@ Элементы.СтруктураВарианта_ПереместитьВверх1.Доступность = МожноУдалятьИПеремещать И ЕстьСоседние; Элементы.СтруктураВарианта_ПереместитьВниз.Доступность = МожноУдалятьИПеремещать И ЕстьСоседние; Элементы.СтруктураВарианта_ПереместитьВниз1.Доступность = МожноУдалятьИПеремещать И ЕстьСоседние; + Элементы.СтруктураВарианта_ПереместитьНаУровеньВыше.Доступность = ЕстьРодитель И РодителяМожноПеремещать; + Элементы.СтруктураВарианта_ПереместитьНаУровеньВыше1.Доступность = ЕстьРодитель И РодителяМожноПеремещать; + Элементы.СтруктураВарианта_ПереместитьНаУровеньНиже.Доступность = ЕстьПотенциальныеРодители; + Элементы.СтруктураВарианта_ПереместитьНаУровеньНиже1.Доступность = ЕстьПотенциальныеРодители; КонецПроцедуры &НаКлиенте @@ -5047,6 +5094,19 @@ КонецЕсли; КонецПроцедуры +// Параметры: +// ТаблицаИмя - Строка +// Действие - Строка +// +// Возвращаемое значение: +// Структура: +// * Действие - Строка +// * ТаблицаИмя - Строка +// * ПричинаОтказа - Строка +// * СтрокиДерева - Массив из ДанныеФормыЭлементДерева +// * ТекущаяСтрока - см. ЭлементКоллекцииФормыНастроек +// * ТекущийРодитель - см. ЭлементКоллекцииФормыНастроек +// &НаКлиенте Функция НовыйКонтекст(Знач ТаблицаИмя, Знач Действие) Результат = Новый Структура; @@ -5072,7 +5132,9 @@ Или Контекст.ТаблицаИмя = "Оформление"); Особенности.МогутБытьПараметры = (Контекст.ТаблицаИмя = "Отборы"); Особенности.МогутБытьПараметрыВывода = (Контекст.ТаблицаИмя = "Оформление"); - Особенности.ТребоватьОдногоРодителя = (Контекст.Действие = "Переместить" Или Контекст.Действие = "Сгруппировать"); + Особенности.ТребоватьОдногоРодителя = (Контекст.Действие = "Переместить" + Или Контекст.Действие = "ПереместитьВИерархии" + Или Контекст.Действие = "Сгруппировать"); Особенности.МогутБытьГруппы = (Контекст.ТаблицаИмя = "Отборы" Или Контекст.ТаблицаИмя = "ВыбранныеПоля"); Если Особенности.ТребоватьОдногоРодителя Тогда Контекст.Вставить("ТекущийРодитель", -1); @@ -5214,6 +5276,52 @@ УстановитьМодифицированность(); КонецПроцедуры +// Параметры: +// Контекст - см. НовыйКонтекст +// +&НаКлиенте +Процедура ПереместитьВИерархии(Контекст) + + Если Контекст.ТекущийРодитель = Неопределено Тогда + Возврат; + КонецЕсли; + + Если Контекст.Направление > 0 Тогда + + Строки = Контекст.ТекущийРодитель.ПолучитьЭлементы(); + Индекс = Строки.Индекс(Контекст.ТекущаяСтрока) - 1; + НовыйРодитель = ?(Индекс < 0, Неопределено, Строки.Получить(Индекс)); + + Иначе + НовыйРодитель = ПолучитьРодителя(Контекст.ТаблицаИмя, Контекст.ТекущийРодитель); + КонецЕсли; + + Если НовыйРодитель = Неопределено + Или НовыйРодитель.Тип = "ТаблицаКомпоновкиДанных" + Или НовыйРодитель.Тип = "ДиаграммаКомпоновкиДанных" Тогда + + Возврат; + КонецЕсли; + + Если Контекст.Направление > 0 Тогда + Индекс = НовыйРодитель.ПолучитьЭлементы().Количество(); + Иначе + Индекс = НовыйРодитель.ПолучитьЭлементы().Индекс(Контекст.ТекущийРодитель) + 1; + КонецЕсли; + + Если Индекс < 0 Тогда + Индекс = 0; + КонецЕсли; + + Результат = ПереместитьЭлементыСтруктурыВарианта(Контекст.ТекущаяСтрока, НовыйРодитель,, Индекс, Индекс); + + Элементы.СтруктураВарианта.Развернуть(НовыйРодитель.ПолучитьИдентификатор(), Истина); + Элементы.СтруктураВарианта.ТекущаяСтрока = Результат.Строка.ПолучитьИдентификатор(); + + УстановитьМодифицированность(); + +КонецПроцедуры + //////////////////////////////////////////////////////////////////////////////// // Клиент - Таблицы полей (универсальные точки входа). @@ -5394,21 +5502,24 @@ // - НастройкиКомпоновкиДанных // - НастройкиВложенногоОбъектаКомпоновкиДанных // - СтруктураНастроекКомпоновкиДанных -// - ДиаграммаКомпоновкиДанных -// - ПорядокКомпоновкиДанных // - ГруппировкаКомпоновкиДанных +// - ТаблицаКомпоновкиДанных +// - КоллекцияЭлементовСтруктурыТаблицыКомпоновкиДанных // - ГруппировкаТаблицыКомпоновкиДанных +// - ДиаграммаКомпоновкиДанных +// - КоллекцияЭлементовСтруктурыДиаграммыКомпоновкиДанных // - ГруппировкаДиаграммыКомпоновкиДанных -// - УсловноеОформлениеКомпоновкиДанных -// - ГруппаВыбранныхПолейКомпоновкиДанных -// - ГруппаЭлементовОтбораКомпоновкиДанных +// - ОтборКомпоновкиДанных // - ЭлементОтбораКомпоновкиДанных +// - ГруппаЭлементовОтбораКомпоновкиДанных // - ЭлементУсловногоОформленияКомпоновкиДанных // - ЗначенияПараметровВыводаКомпоновкиДанных // - ЗначениеПараметраНастроекКомпоновкиДанных -// - ОтборКомпоновкиДанных // - ВыбранныеПоляКомпоновкиДанных -// - ТаблицаКомпоновкиДанных +// - ГруппаВыбранныхПолейКомпоновкиДанных +// - ПорядокКомпоновкиДанных +// - УсловноеОформлениеКомпоновкиДанных +// - КоллекцияЭлементовУсловногоОформленияКомпоновкиДанных // - Неопределено // &НаКлиентеНаСервереБезКонтекста @@ -5811,6 +5922,8 @@ Элементы.КомандыСтруктурыВарианта_ДвижениеПоИерархии1.Видимость = ЭтоРасширенныйРежим; Элементы.КомандыСтруктурыВарианта_ДвижениеВнутриРодителя.Видимость = ЭтоРасширенныйРежим; Элементы.КомандыСтруктурыВарианта_ДвижениеВнутриРодителя1.Видимость = ЭтоРасширенныйРежим; + Элементы.КомандыСтруктурыВарианта_ДвижениеВИерархии.Видимость = ЭтоРасширенныйРежим; + Элементы.КомандыСтруктурыВарианта_ДвижениеВИерархии1.Видимость = ЭтоРасширенныйРежим; Элементы.СтруктураВарианта.ИзменятьСоставСтрок = ЭтоРасширенныйРежим; Элементы.СтруктураВарианта.ИзменятьПорядокСтрок = ЭтоРасширенныйРежим; @@ -5828,7 +5941,9 @@ #Область ОбщиеСвойстваЭлементов - Если Не ЭтоРасширенныйРежим + Если Параметры.Свойство("ОтображатьСтраницы") Тогда + ОтображатьСтраницы = (Параметры.ОтображатьСтраницы <> Ложь); + ИначеЕсли Не ЭтоРасширенныйРежим И ЭтоМобильныйКлиент Тогда ОтображатьСтраницы = Ложь; Иначе @@ -6635,6 +6750,9 @@ Индекс = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Индекс(ЭлементНастройки); ПутьКСписку = ПутьКДаннымЭлементов.ПоИндексу[Индекс]; + Если ПутьКСписку = Неопределено Тогда + Возврат; + КонецЕсли; Список = Элементы.Найти(ПутьКСписку); Если ЭлементНастройки.Использование Тогда diff --git a/SSL/src/CommonForms/ФормаОтчета/Form.form b/SSL/src/CommonForms/ФормаОтчета/Form.form index 498acad00..4dadf8dcf 100644 --- a/SSL/src/CommonForms/ФормаОтчета/Form.form +++ b/SSL/src/CommonForms/ФормаОтчета/Form.form @@ -2537,7 +2537,6 @@ ОтчетТабличныйДокументКонтекстноеМенюОтчетСкомпоноватьРезультат 168 - true true true @@ -2617,7 +2616,6 @@ Auto InCommandBarAndInAdditionalSubmenu - true true true @@ -2638,7 +2636,1944 @@ - true + + КонтекстноеМенюОбластиЗаголовка + 834 + + КонтекстноеМенюОбластиЗаголовкаИзменитьСоставПолей + 836 + + КонтекстноеМенюОбластиЗаголовкаВставить + 838 + + КонтекстноеМенюОбластиЗаголовкаВставитьПолеСправа + 840 + true + true + + true + + + КонтекстноеМенюОбластиЗаголовкаВставитьПолеСправаРасширеннаяПодсказка + 841 + Label + true + true + + Left + + + Form.Command.ВставитьПолеСправа + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиЗаголовкаВставитьГруппировкуНиже + 842 + true + true + + true + + + КонтекстноеМенюОбластиЗаголовкаВставитьГруппировкуНижеРасширеннаяПодсказка + 843 + Label + true + true + + Left + + + Form.Command.ВставитьГруппировкуНиже + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Вставить</value> + + + КонтекстноеМенюОбластиЗаголовкаВставитьРасширеннаяПодсказка + 839 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиЗаголовкаПереместить + 844 + + КонтекстноеМенюОбластиЗаголовкаПереместитьПолеВлево + 846 + true + true + + true + + + КонтекстноеМенюОбластиЗаголовкаПереместитьПолеВлевоРасширеннаяПодсказка + 847 + Label + true + true + + Left + + + Form.Command.ПереместитьПолеВлево + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиЗаголовкаПереместитьПолеВправо + 848 + true + true + + true + + + КонтекстноеМенюОбластиЗаголовкаПереместитьПолеВправоРасширеннаяПодсказка + 849 + Label + true + true + + Left + + + Form.Command.ПереместитьПолеВправо + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиЗаголовкаПереместитьПолеВыше + 850 + true + true + + true + + + КонтекстноеМенюОбластиЗаголовкаПереместитьПолеВышеРасширеннаяПодсказка + 851 + Label + true + true + + Left + + + Form.Command.ПереместитьПолеВыше + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиЗаголовкаПереместитьПолеНиже + 852 + true + true + + true + + + КонтекстноеМенюОбластиЗаголовкаПереместитьПолеНижеРасширеннаяПодсказка + 853 + Label + true + true + + Left + + + Form.Command.ПереместитьПолеНиже + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Переместить</value> + + + КонтекстноеМенюОбластиЗаголовкаПереместитьРасширеннаяПодсказка + 845 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиЗаголовкаСкрытьПоле + 854 + true + true + + true + + + КонтекстноеМенюОбластиЗаголовкаСкрытьПолеРасширеннаяПодсказка + 855 + Label + true + true + + Left + + + Form.Command.СкрытьПоле + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиЗаголовкаПереименоватьПоле + 856 + true + true + + true + + + КонтекстноеМенюОбластиЗаголовкаПереименоватьПолеРасширеннаяПодсказка + 857 + Label + true + true + + Left + + + Form.Command.ПереименоватьПоле + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Изменить состав полей</value> + + + КонтекстноеМенюОбластиЗаголовкаИзменитьСоставПолейРасширеннаяПодсказка + 837 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиЗаголовкаМенюФильтровать + 980 + + КонтекстноеМенюОбластиЗаголовкаФильтровать + 858 + true + true + + true + + + КонтекстноеМенюОбластиЗаголовкаФильтроватьРасширеннаяПодсказка + 859 + Label + true + true + + Left + + + Form.Command.Фильтровать + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиЗаголовкаСнятьФильтр + 982 + true + true + + true + + + КонтекстноеМенюОбластиЗаголовкаСнятьФильтрРасширеннаяПодсказка + 983 + Label + true + true + + Left + + + Form.Command.СнятьФильтр + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Фильтровать</value> + + + КонтекстноеМенюОбластиЗаголовкаМенюФильтроватьРасширеннаяПодсказка + 981 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиЗаголовкаСортировать + 860 + + КонтекстноеМенюОбластиЗаголовкаСортироватьПоВозрастанию + 862 + true + true + + true + + + КонтекстноеМенюОбластиЗаголовкаСортироватьПоВозрастаниюРасширеннаяПодсказка + 863 + Label + true + true + + Left + + + Form.Command.СортироватьПоВозрастанию + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиЗаголовкаСортироватьПоУбыванию + 864 + true + true + + true + + + КонтекстноеМенюОбластиЗаголовкаСортироватьПоУбываниюРасширеннаяПодсказка + 865 + Label + true + true + + Left + + + Form.Command.СортироватьПоУбыванию + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Сортировать</value> + + + КонтекстноеМенюОбластиЗаголовкаСортироватьРасширеннаяПодсказка + 861 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиЗаголовкаМенюОформить + 866 + + КонтекстноеМенюОбластиЗаголовкаОформитьОтрицательныеПоложительные + 868 + + КонтекстноеМенюОбластиЗаголовкаОформитьОтрицательные + 870 + true + true + + true + + + КонтекстноеМенюОбластиЗаголовкаОформитьОтрицательныеРасширеннаяПодсказка + 871 + Label + true + true + + Left + + + Form.Command.ОформитьОтрицательные + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиЗаголовкаОформитьПоложительные + 872 + true + true + + true + + + КонтекстноеМенюОбластиЗаголовкаОформитьПоложительныеРасширеннаяПодсказка + 873 + Label + true + true + + Left + + + Form.Command.ОформитьПоложительные + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Оформить отрицательные, положительные</value> + + + КонтекстноеМенюОбластиЗаголовкаОформитьОтрицательныеПоложительныеРасширеннаяПодсказка + 869 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиЗаголовкаУстановитьВысотуШирину + 874 + + КонтекстноеМенюОбластиЗаголовкаУстановитьВысотуСтроки + 876 + true + true + + true + + + КонтекстноеМенюОбластиЗаголовкаУстановитьВысотуСтрокиРасширеннаяПодсказка + 877 + Label + true + true + + Left + + + Form.Command.УстановитьВысотуСтроки + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиЗаголовкаУстановитьШиринуКолонки + 878 + true + true + + true + + + КонтекстноеМенюОбластиЗаголовкаУстановитьШиринуКолонкиРасширеннаяПодсказка + 879 + Label + true + true + + Left + + + Form.Command.УстановитьШиринуКолонки + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Установить высоту, ширину</value> + + + КонтекстноеМенюОбластиЗаголовкаУстановитьВысотуШиринуРасширеннаяПодсказка + 875 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиЗаголовкаМенюОформитьЕще + 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> + + + КонтекстноеМенюОбластиЗаголовкаМенюОформитьРасширеннаяПодсказка + 867 + Label + true + true + + Left + + + Popup + + + StdPicture.DataCompositionConditionalAppearance + + Auto + Normal + + + true + + true + + + <key>ru</key> + <value>Контекстное меню области заголовка</value> + + + КонтекстноеМенюОбластиЗаголовкаРасширеннаяПодсказка + 835 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиДанных + 882 + + КонтекстноеМенюОбластиДанныхОткрыть + 884 + true + + true + + + КонтекстноеМенюОбластиДанныхОткрытьРасширеннаяПодсказка + 885 + Label + true + true + + Left + + + Form.Command.Открыть + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхМенюФильтровать + 886 + + КонтекстноеМенюОбластиДанныхФильтроватьРавноСнятьФильтр + 984 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьРавноСнятьФильтрРасширеннаяПодсказка + 985 + Label + true + true + + Left + + + Form.Command.СнятьФильтр + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхФильтроватьРавноНеРавно + 888 + + КонтекстноеМенюОбластиДанныхФильтроватьРавно + 890 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьРавноРасширеннаяПодсказка + 891 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхФильтроватьНеРавно + 892 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьНеРавноРасширеннаяПодсказка + 893 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Равно, не равно</value> + + + КонтекстноеМенюОбластиДанныхФильтроватьРавноНеРавноРасширеннаяПодсказка + 889 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиДанныхФильтроватьБольшеМеньше + 894 + + КонтекстноеМенюОбластиДанныхФильтроватьБольше + 896 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьБольшеРасширеннаяПодсказка + 897 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхФильтроватьМеньше + 898 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьМеньшеРасширеннаяПодсказка + 899 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Больше, меньше</value> + + + КонтекстноеМенюОбластиДанныхФильтроватьБольшеМеньшеРасширеннаяПодсказка + 895 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиДанныхФильтроватьБольшеИлиРавноМеньшеИлиРавно + 900 + + КонтекстноеМенюОбластиДанныхФильтроватьБольшеИлиРавно + 902 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьБольшеИлиРавноРасширеннаяПодсказка + 903 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхФильтроватьМеньшеИлиРавно + 904 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьМеньшеИлиРавноРасширеннаяПодсказка + 905 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Больше или равно, меньше или равно</value> + + + КонтекстноеМенюОбластиДанныхФильтроватьБольшеИлиРавноМеньшеИлиРавноРасширеннаяПодсказка + 901 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиДанныхФильтроватьСодержитНеСодержит + 906 + + КонтекстноеМенюОбластиДанныхФильтроватьСодержит + 908 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьСодержитРасширеннаяПодсказка + 909 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхФильтроватьНеСодержит + 910 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьНеСодержитРасширеннаяПодсказка + 911 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Содержит, не содержит</value> + + + КонтекстноеМенюОбластиДанныхФильтроватьСодержитНеСодержитРасширеннаяПодсказка + 907 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиДанныхФильтроватьВСпискеНеВСписке + 912 + + КонтекстноеМенюОбластиДанныхФильтроватьВСписке + 914 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьВСпискеРасширеннаяПодсказка + 915 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхФильтроватьНеВСписке + 916 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьНеВСпискеРасширеннаяПодсказка + 917 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>В списке, не в списке</value> + + + КонтекстноеМенюОбластиДанныхФильтроватьВСпискеНеВСпискеРасширеннаяПодсказка + 913 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиДанныхФильтроватьВСпискеПоИерархииНеВСпискеПоИерархии + 918 + + КонтекстноеМенюОбластиДанныхФильтроватьВСпискеПоИерархии + 920 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьВСпискеПоИерархииРасширеннаяПодсказка + 921 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхФильтроватьНеВСпискеПоИерархии + 922 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьНеВСпискеПоИерархииРасширеннаяПодсказка + 923 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>В списке по иерархии, не в списке по иерархии</value> + + + КонтекстноеМенюОбластиДанныхФильтроватьВСпискеПоИерархииНеВСпискеПоИерархииРасширеннаяПодсказка + 919 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиДанныхФильтроватьВИерархииНеВИерархии + 924 + + КонтекстноеМенюОбластиДанныхФильтроватьВИерархии + 926 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьВИерархииРасширеннаяПодсказка + 927 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхФильтроватьНеВИерархии + 928 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьНеВИерархииРасширеннаяПодсказка + 929 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>В иерархии, не в иерархии</value> + + + КонтекстноеМенюОбластиДанныхФильтроватьВИерархииНеВИерархииРасширеннаяПодсказка + 925 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиДанныхФильтроватьЗаполненоНеЗаполнено + 930 + + КонтекстноеМенюОбластиДанныхФильтроватьЗаполнено + 932 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьЗаполненоРасширеннаяПодсказка + 933 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхФильтроватьНеЗаполнено + 934 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьНеЗаполненоРасширеннаяПодсказка + 935 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Заполнено, не заполнено</value> + + + КонтекстноеМенюОбластиДанныхФильтроватьЗаполненоНеЗаполненоРасширеннаяПодсказка + 931 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиДанныхФильтроватьНачинаетсяСНеНачинаетсяС + 936 + + КонтекстноеМенюОбластиДанныхФильтроватьНачинаетсяС + 938 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьНачинаетсяСРасширеннаяПодсказка + 939 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхФильтроватьНеНачинаетсяС + 940 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьНеНачинаетсяСРасширеннаяПодсказка + 941 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Начинается с, не начинается С</value> + + + КонтекстноеМенюОбластиДанныхФильтроватьНачинаетсяСНеНачинаетсяСРасширеннаяПодсказка + 937 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиДанныхФильтроватьПодобноНеПодобно + 942 + + КонтекстноеМенюОбластиДанныхФильтроватьПодобно + 944 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьПодобноРасширеннаяПодсказка + 945 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхФильтроватьНеПодобно + 946 + true + true + + true + + + КонтекстноеМенюОбластиДанныхФильтроватьНеПодобноРасширеннаяПодсказка + 947 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Подобно, не подобно</value> + + + КонтекстноеМенюОбластиДанныхФильтроватьПодобноНеПодобноРасширеннаяПодсказка + 943 + Label + true + true + + Left + + + + + true + + true + + + <key>ru</key> + <value>Фильтровать</value> + + + КонтекстноеМенюОбластиДанныхМенюФильтроватьРасширеннаяПодсказка + 887 + Label + true + true + + Left + + + Popup + + + StdPicture.DataCompositionFilter + + Auto + Normal + + + + КонтекстноеМенюОбластиДанныхСортировать + 948 + + КонтекстноеМенюОбластиДанныхСортироватьПоВозрастанию + 950 + true + true + + true + + + КонтекстноеМенюОбластиДанныхСортироватьПоВозрастаниюРасширеннаяПодсказка + 951 + Label + true + true + + Left + + + Form.Command.СортироватьПоВозрастанию + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхСортироватьПоУбыванию + 952 + true + true + + true + + + КонтекстноеМенюОбластиДанныхСортироватьПоУбываниюРасширеннаяПодсказка + 953 + Label + true + true + + Left + + + Form.Command.СортироватьПоУбыванию + Normal + Auto + true + true + UserCmds + Auto + + true + + true + + + <key>ru</key> + <value>Сортировать</value> + + + КонтекстноеМенюОбластиДанныхСортироватьРасширеннаяПодсказка + 949 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиДанныхМенюОформить + 954 + + КонтекстноеМенюОбластиДанныхОформитьКраснымЖелтымЗеленым + 956 + + КонтекстноеМенюОбластиДанныхОформитьКрасным + 958 + true + true + + true + + + КонтекстноеМенюОбластиДанныхОформитьКраснымРасширеннаяПодсказка + 959 + Label + true + true + + Left + + + Form.Command.ОформитьКрасным + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхОформитьЖелтым + 960 + true + true + + true + + + КонтекстноеМенюОбластиДанныхОформитьЖелтымРасширеннаяПодсказка + 961 + Label + true + true + + Left + + + Form.Command.ОформитьЖелтым + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхОформитьЗеленым + 962 + true + true + + true + + + КонтекстноеМенюОбластиДанныхОформитьЗеленымРасширеннаяПодсказка + 963 + Label + true + true + + Left + + + Form.Command.ОформитьЗеленым + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Оформить красным, желтым, зеленым</value> + + + КонтекстноеМенюОбластиДанныхОформитьКраснымЖелтымЗеленымРасширеннаяПодсказка + 957 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиДанныхОформитьОтрицательныеПоложительные + 964 + + КонтекстноеМенюОбластиДанныхОформитьОтрицательные + 966 + true + true + + true + + + КонтекстноеМенюОбластиДанныхОформитьОтрицательныеРасширеннаяПодсказка + 967 + Label + true + true + + Left + + + Form.Command.ОформитьОтрицательные + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхОформитьПоложительные + 968 + true + true + + true + + + КонтекстноеМенюОбластиДанныхОформитьПоложительныеРасширеннаяПодсказка + 969 + Label + true + true + + Left + + + Form.Command.ОформитьПоложительные + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Оформить отрицательные, положительные</value> + + + КонтекстноеМенюОбластиДанныхОформитьОтрицательныеПоложительныеРасширеннаяПодсказка + 965 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиДанныхУстановитьВысотуШирину + 970 + + КонтекстноеМенюОбластиДанныхУстановитьВысотуСтроки + 972 + true + true + + true + + + КонтекстноеМенюОбластиДанныхУстановитьВысотуСтрокиРасширеннаяПодсказка + 973 + Label + true + true + + Left + + + Form.Command.УстановитьВысотуСтроки + Normal + Auto + true + true + UserCmds + Auto + + + КонтекстноеМенюОбластиДанныхУстановитьШиринуКолонки + 974 + true + true + + true + + + КонтекстноеМенюОбластиДанныхУстановитьШиринуКолонкиРасширеннаяПодсказка + 975 + Label + true + true + + Left + + + Form.Command.УстановитьШиринуКолонки + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Установить высоту, ширину</value> + + + КонтекстноеМенюОбластиДанныхУстановитьВысотуШиринуРасширеннаяПодсказка + 971 + Label + true + true + + Left + + + + + + КонтекстноеМенюОбластиДанныхОформитьЕще + 976 + true + true + + true + + + КонтекстноеМенюОбластиДанныхОформитьЕщеРасширеннаяПодсказка + 977 + Label + true + true + + Left + + + Form.Command.ОформитьЕще + Normal + Auto + true + true + UserCmds + Auto + + true + + true + + + <key>ru</key> + <value>Оформить</value> + + + КонтекстноеМенюОбластиДанныхМенюОформитьРасширеннаяПодсказка + 955 + Label + true + true + + Left + + + Popup + + + StdPicture.DataCompositionConditionalAppearance + + Auto + Normal + + + + КонтекстноеМенюОбластиДанныхРасшифровать + 978 + true + + true + + + КонтекстноеМенюОбластиДанныхРасшифроватьРасширеннаяПодсказка + 979 + Label + true + true + + Left + + + Form.Command.Расшифровать + Normal + Auto + true + true + UserCmds + Auto + + true + + true + + + <key>ru</key> + <value>Контекстное меню области данных</value> + + + КонтекстноеМенюОбластиДанныхРасширеннаяПодсказка + 883 + Label + true + true + + Left + + + + SpreadsheetDocumentField Enter @@ -4226,6 +6161,19 @@
    + + ОбработкаРасшифровки + 14 + + Boolean + + + true + + + true + + ВсеНастройки @@ -4809,6 +6757,443 @@ <currentRowUse>Auto</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> + <formCommands> + <name>ВставитьПолеСправа</name> + <title> + <key>ru</key> + <value>Вставить поле справа...</value> + + 26 + + true + + + CommonPicture.ВставитьКолонкуСправа + + + + ВставитьПолеСправа + + + Auto + Auto + + + ВставитьГруппировкуНиже + + <key>ru</key> + <value>Вставить группировку ниже...</value> + + 27 + + true + + + CommonPicture.ВставитьГруппировкуНиже + + + + ВставитьГруппировкуНиже + + + Auto + Auto + + + ПереместитьПолеВлево + + <key>ru</key> + <value>Переместить влево</value> + + 28 + + true + + + CommonPicture.ПереместитьКолонкуВлево + + + + ПереместитьПолеВлево + + + Auto + Auto + + + ПереместитьПолеВправо + + <key>ru</key> + <value>Переместить вправо</value> + + 29 + + true + + + CommonPicture.ПереместитьКолонкуВправо + + + + ПереместитьПолеВправо + + + Auto + Auto + + + ПереместитьПолеВыше + + <key>ru</key> + <value>Переместить выше</value> + + 30 + + true + + + CommonPicture.ПереместитьГруппировкуВыше + + + + ПереместитьПолеВыше + + + Auto + Auto + + + ПереместитьПолеНиже + + <key>ru</key> + <value>Переместить ниже</value> + + 31 + + true + + + CommonPicture.ПереместитьГруппировкуНиже + + + + ПереместитьПолеНиже + + + Auto + Auto + + + СкрытьПоле + + <key>ru</key> + <value>Скрыть</value> + + 32 + + true + + + + СкрытьПоле + + + Auto + Auto + + + ПереименоватьПоле + + <key>ru</key> + <value>Переименовать...</value> + + 33 + + true + + + + ПереименоватьПоле + + + Auto + Auto + + + Фильтровать + + <key>ru</key> + <value>Фильтровать...</value> + + 34 + + true + + + StdPicture.DataCompositionFilter + + + + Фильтровать + + + Auto + Auto + + + СортироватьПоВозрастанию + + <key>ru</key> + <value>Сортировать по возрастанию</value> + + 35 + + true + + + CommonPicture.СортироватьСтрокиПоВозрастанию + + + + СортироватьПоВозрастанию + + + Auto + Auto + + + СортироватьПоУбыванию + + <key>ru</key> + <value>Сортировать по убыванию</value> + + 36 + + true + + + CommonPicture.СортироватьСтрокиПоУбыванию + + + + СортироватьПоУбыванию + + + Auto + Auto + + + ОформитьЖелтым + + <key>ru</key> + <value>Желтым</value> + + 37 + + ru + Оформить желтым + + + true + + TextPicture + Auto + Auto + + + ОформитьЗеленым + + <key>ru</key> + <value>Зеленым</value> + + 38 + + ru + Оформить зеленым + + + true + + TextPicture + Auto + Auto + + + ОформитьКрасным + + <key>ru</key> + <value>Красным</value> + + 39 + + ru + Оформить красным + + + true + + TextPicture + Auto + Auto + + + ОформитьОтрицательные + + <key>ru</key> + <value>Отрицательные красным</value> + + 40 + + ru + Оформить отрицательные значения красным + + + true + + + + ОформитьОтрицательные + + + Auto + Auto + + + ОформитьПоложительные + + <key>ru</key> + <value>Положительные зеленым</value> + + 41 + + ru + Оформить отрицательные значения зеленым + + + true + + + + ОформитьПоложительные + + + Auto + Auto + + + УстановитьВысотуСтроки + + <key>ru</key> + <value>Высота строки...</value> + + 42 + + ru + Установить высоту строки + + + true + + + CommonPicture.ВысотаСтроки + + + + УстановитьВысотуСтроки + + + TextPicture + Auto + Auto + + + УстановитьШиринуКолонки + + <key>ru</key> + <value>Ширина колонки...</value> + + 43 + + ru + Установить ширину колонки + + + true + + + CommonPicture.ШиринаКолонки + + + + УстановитьШиринуКолонки + + + TextPicture + Auto + Auto + + + ОформитьЕще + + <key>ru</key> + <value>Еще...</value> + + 44 + + true + + + + ОформитьЕще + + + Auto + Auto + + + Открыть + + <key>ru</key> + <value>Открыть</value> + + 45 + + true + + Auto + Auto + + + Расшифровать + + <key>ru</key> + <value>Расшифровать...</value> + + 46 + + true + + Auto + Auto + + + СнятьФильтр + + <key>ru</key> + <value>Снять фильтр</value> + + 47 + + true + + + + СнятьФильтр + + + Auto + Auto + Ссылка diff --git a/SSL/src/CommonForms/ФормаОтчета/Module.bsl b/SSL/src/CommonForms/ФормаОтчета/Module.bsl index 4cf57fa56..d5b50d36b 100644 --- a/SSL/src/CommonForms/ФормаОтчета/Module.bsl +++ b/SSL/src/CommonForms/ФормаОтчета/Module.bsl @@ -94,7 +94,7 @@ ПостоянныеКоманды.Добавить(Команда.Имя); КонецЦикла; - Если Не РежимВариантаОтчета() Тогда + Если Не ВариантыОтчетовСлужебный.РежимВариантаОтчета(КлючТекущегоВарианта) Тогда УстановитьВидимостьДоступность(); КонецЕсли; @@ -179,15 +179,20 @@ // Приемка результата из стандартных форм. Если ТипЗнч(ПодчиненнаяФорма) = Тип("ФормаКлиентскогоПриложения") Тогда + ИмяПодчиненнойФормы = ПодчиненнаяФорма.ИмяФормы; Если ИмяПодчиненнойФормы = "ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.НастройкиОтчета" Или ПодчиненнаяФорма.ОписаниеОповещенияОЗакрытии <> Неопределено Тогда + РезультатОбработан = Истина; // См. ВсеНастройкиЗавершение. + ИначеЕсли ТипЗнч(Результат) = Тип("Структура") Тогда + ПозицияТочки = СтрДлина(ИмяПодчиненнойФормы); Пока КодСимвола(ИмяПодчиненнойФормы, ПозицияТочки) <> 46 Цикл // Не точка. ПозицияТочки = ПозицияТочки - 1; КонецЦикла; + СуффиксФормыИсточника = ВРег(Сред(ИмяПодчиненнойФормы, ПозицияТочки + 1)); Если СуффиксФормыИсточника = ВРег("ФормаНастроекОтчета") Или СуффиксФормыИсточника = ВРег("ФормаНастроек") @@ -198,32 +203,13 @@ РезультатОбработан = Истина; КонецЕсли; КонецЕсли; + + ПрименитьНастройкиИзКонтекстногоМеню(Результат); + ИначеЕсли ТипЗнч(ПодчиненнаяФорма) = Тип("КонструкторСхемыКомпоновкиДанных") Тогда -#Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда - Если ТипЗнч(Результат) = Тип("СхемаКомпоновкиДанных") Тогда - НастройкиОтчета.АдресСхемы = ПоместитьВоВременноеХранилище(Результат, УникальныйИдентификатор); - - Путь = ПолучитьИмяВременногоФайла(); - - ЗаписьXML = Новый ЗаписьXML; - ЗаписьXML.ОткрытьФайл(Путь, "UTF-8"); - СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Результат, "dataCompositionSchema", "http://v8.1c.ru/8.1/data-composition-system/schema"); - ЗаписьXML.Закрыть(); - - ДвоичныеДанные = Новый ДвоичныеДанные(Путь); - НачатьУдалениеФайлов(, Путь); - - Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("СхемаКомпоновкиДанных", ДвоичныеДанные); - Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ОтчетИнициализирован", Ложь); - - ПараметрыЗаполнения = Новый Структура; - ПараметрыЗаполнения.Вставить("ПользовательскиеНастройкиМодифицированы", Истина); - ПараметрыЗаполнения.Вставить("КомпоновщикНастроекКД", Отчет.КомпоновщикНастроек); - ПараметрыЗаполнения.Вставить("ИмяСобытия", "НастройкиПоУмолчанию"); - - ОбновитьЭлементыФормыНастроек(ПараметрыЗаполнения); - КонецЕсли; -#КонецЕсли + + ПрименитьСхемуИзКонструктора(Результат); + КонецЕсли; // Механизмы расширения. @@ -267,6 +253,8 @@ КонецЕсли; + ПрименитьНастройкиИзКонтекстногоМеню(Параметр); + ИнтеграцияПодсистемБСПКлиент.ПриОбработкеОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник, ОповещениеОбработано); ОтчетыКлиентПереопределяемый.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник, ОповещениеОбработано); КонецПроцедуры @@ -274,7 +262,9 @@ &НаСервере Процедура ПередЗагрузкойВариантаНаСервере(НовыеНастройкиКД) // Ничего не делать если отчет не на СКД и никаких настроек не загружено. - Если НовыеНастройкиКД = Неопределено Или Не РежимВариантаОтчета() Тогда + Если НовыеНастройкиКД = Неопределено + Или Не ВариантыОтчетовСлужебный.РежимВариантаОтчета(КлючТекущегоВарианта) Тогда + Возврат; КонецЕсли; @@ -311,7 +301,9 @@ &НаСервере Процедура ПриЗагрузкеВариантаНаСервере(НовыеНастройкиКД) // Ничего не делать если отчет не на СКД и никаких настроек не загружено. - Если Не РежимВариантаОтчета() И НовыеНастройкиКД = Неопределено Тогда + Если Не ВариантыОтчетовСлужебный.РежимВариантаОтчета(КлючТекущегоВарианта) + И НовыеНастройкиКД = Неопределено Тогда + Возврат; КонецЕсли; @@ -364,7 +356,7 @@ &НаСервере Процедура ПриЗагрузкеПользовательскихНастроекНаСервере(НовыеПользовательскиеНастройкиКД) - Если Не РежимВариантаОтчета() Тогда + Если Не ВариантыОтчетовСлужебный.РежимВариантаОтчета(КлючТекущегоВарианта) Тогда Возврат; КонецЕсли; @@ -376,7 +368,7 @@ &НаСервере Процедура ПриОбновленииСоставаПользовательскихНастроекНаСервере(СтандартнаяОбработка) - Если Не РежимВариантаОтчета() Тогда + Если Не ВариантыОтчетовСлужебный.РежимВариантаОтчета(КлючТекущегоВарианта) Тогда Возврат; КонецЕсли; @@ -388,7 +380,7 @@ &НаСервере Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) - Если Не РежимВариантаОтчета() Тогда + Если Не ВариантыОтчетовСлужебный.РежимВариантаОтчета(КлючТекущегоВарианта) Тогда Возврат; КонецЕсли; @@ -430,7 +422,7 @@ &НаСервере Процедура ПриСохраненииВариантаНаСервере(НастройкиКД) - Если Не РежимВариантаОтчета() Тогда + Если Не ВариантыОтчетовСлужебный.РежимВариантаОтчета(КлючТекущегоВарианта) Тогда Возврат; КонецЕсли; НовыеНастройкиКД = Отчет.КомпоновщикНастроек.ПолучитьНастройки(); @@ -444,7 +436,7 @@ &НаСервере Процедура ПриСохраненииПользовательскихНастроекНаСервере(ПользовательскиеНастройкиКД) - Если Не РежимВариантаОтчета() Тогда + Если Не ВариантыОтчетовСлужебный.РежимВариантаОтчета(КлючТекущегоВарианта) Тогда Возврат; КонецЕсли; ВариантыОтчетов.ПриСохраненииПользовательскихНастроекНаСервере(ЭтотОбъект, ПользовательскиеНастройкиКД); @@ -461,12 +453,17 @@ &НаКлиенте Процедура ОтчетТабличныйДокументВыбор(Элемент, Область, СтандартнаяОбработка) + ОбработкаРасшифровки = Ложь; + Если СтандартнаяОбработка Тогда ИнтеграцияПодсистемБСПКлиент.ПриОбработкеВыбораТабличногоДокумента(ЭтотОбъект, Элемент, Область, СтандартнаяОбработка); ОтчетыКлиентПереопределяемый.ОбработкаВыбораТабличногоДокумента(ЭтотОбъект, Элемент, Область, СтандартнаяОбработка); КонецЕсли; - Если СтандартнаяОбработка И ТипЗнч(Область) = Тип("ОбластьЯчеекТабличногоДокумента") Тогда + Если Не ОбработкаРасшифровки + И СтандартнаяОбработка + И ТипЗнч(Область) = Тип("ОбластьЯчеекТабличногоДокумента") Тогда + Если ПерейтиПоСсылке(Область.Текст) Тогда СтандартнаяОбработка = Ложь; Возврат; @@ -480,30 +477,42 @@ // чтение расшифровки недоступно, поэтому делается попытка-исключение. КонецПопытки; - Если ЗначениеРасшифровки <> Неопределено И ПерейтиПоСсылке(ЗначениеРасшифровки) Тогда + Если ЗначениеРасшифровки <> Неопределено + И ПерейтиПоСсылке(ЗначениеРасшифровки) Тогда + СтандартнаяОбработка = Ложь; Возврат; КонецЕсли; + Если ПерейтиПоСсылке(Область.Маска) Тогда СтандартнаяОбработка = Ложь; Возврат; КонецЕсли; КонецЕсли; + + Если Не ОбработкаРасшифровки + И СтандартнаяОбработка Тогда + + ВариантыОтчетовСлужебныйКлиент.ПоказатьКонтекстнуюНастройкуОтчета(ЭтотОбъект, Элемент, Область, СтандартнаяОбработка); + КонецЕсли; + КонецПроцедуры &НаКлиенте Процедура ОтчетТабличныйДокументОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.АнализЖурналаРегистрации") Тогда - МодульАнализЖурналаРегистрацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АнализЖурналаРегистрацииКлиент"); - МодульАнализЖурналаРегистрацииКлиент.ФормаОтчетаОбработкаРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); - КонецЕсли; ИнтеграцияПодсистемБСПКлиент.ПриОбработкеРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); ОтчетыКлиентПереопределяемый.ОбработкаРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); + + Если СтандартнаяОбработка Тогда + ВариантыОтчетовСлужебныйКлиент.ОбработкаРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); + КонецЕсли; + КонецПроцедуры &НаКлиенте Процедура ОтчетТабличныйДокументОбработкаДополнительнойРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.АнализЖурналаРегистрации") Тогда МодульАнализЖурналаРегистрацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АнализЖурналаРегистрацииКлиент"); МодульАнализЖурналаРегистрацииКлиент.ФормаОтчетаОбработкаДополнительнойРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); @@ -511,11 +520,20 @@ ИнтеграцияПодсистемБСПКлиент.ПриОбработкеДополнительнойРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); ОтчетыКлиентПереопределяемый.ОбработкаДополнительнойРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); + + Если СтандартнаяОбработка Тогда + Данные = ДанныеЭлементаРасшифровки(Расшифровка); + ВариантыОтчетовСлужебныйКлиент.ОбработкаДополнительнойРасшифровки(ЭтотОбъект, Данные, Элемент, Расшифровка, СтандартнаяОбработка); + КонецЕсли; + КонецПроцедуры &НаКлиенте Процедура ОтчетТабличныйДокументПриАктивизации(Элемент) + + ПодключитьОбработчикОжидания("ПодготовитьКомандыКонтекстнойНастройки", 0.1, Истина); ПодключитьОбработчикОжидания("РассчитатьПоказателиДинамически", 0.2, Истина); + КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// @@ -788,6 +806,132 @@ ВариантыОтчетовКлиент.ПоделитьсяПользовательскимиНастройками(ОписаниеНастроек); КонецПроцедуры +//////////////////////////////////////////////////////////////////////////////// +// Обработчики команд контекстного меню табличного документа - результат отчета. + +&НаКлиенте +Процедура ВставитьПолеСправа(Команда) + + ВариантыОтчетовСлужебныйКлиент.ВставитьПолеСправа(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ВставитьГруппировкуНиже(Команда) + + ВариантыОтчетовСлужебныйКлиент.ВставитьГруппировкуНиже(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ПереместитьПолеВлево(Команда) + + ВариантыОтчетовСлужебныйКлиент.ПереместитьПолеВлево(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ПереместитьПолеВправо(Команда) + + ВариантыОтчетовСлужебныйКлиент.ПереместитьПолеВправо(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ПереместитьПолеВыше(Команда) + + ВариантыОтчетовСлужебныйКлиент.ПереместитьПолеВыше(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ПереместитьПолеНиже(Команда) + + ВариантыОтчетовСлужебныйКлиент.ПереместитьПолеНиже(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура СкрытьПоле(Команда) + + ВариантыОтчетовСлужебныйКлиент.СкрытьПоле(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ПереименоватьПоле(Команда) + + ВариантыОтчетовСлужебныйКлиент.ПереименоватьПоле(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура СнятьФильтр(Команда) + + СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета + СвойстваЗаголовка = СвойстваРезультата.Заголовки[Элементы.ОтчетТабличныйДокумент.ТекущаяОбласть.Имя]; + ВариантыОтчетовСлужебныйКлиент.СнятьФильтр(ЭтотОбъект, СвойстваЗаголовка); + +КонецПроцедуры + +&НаКлиенте +Процедура Фильтровать(Команда) + + СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета + СвойстваЗаголовка = СвойстваРезультата.Заголовки[Элементы.ОтчетТабличныйДокумент.ТекущаяОбласть.Имя]; + ВариантыОтчетовСлужебныйКлиент.ПоказатьРасширеннуюНастройкуФильтра(ЭтотОбъект, СвойстваЗаголовка); + +КонецПроцедуры + +&НаКлиенте +Процедура СортироватьПоВозрастанию(Команда) + + ВариантыОтчетовСлужебныйКлиент.Сортировать(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура СортироватьПоУбыванию(Команда) + + ВариантыОтчетовСлужебныйКлиент.Сортировать(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ОформитьОтрицательные(Команда) + + ВариантыОтчетовСлужебныйКлиент.ОформитьКрасным(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ОформитьПоложительные(Команда) + + ВариантыОтчетовСлужебныйКлиент.ОформитьЗеленым(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьВысотуСтроки(Команда) + + ВариантыОтчетовСлужебныйКлиент.УстановитьВысотуСтроки(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьШиринуКолонки(Команда) + + ВариантыОтчетовСлужебныйКлиент.УстановитьШиринуКолонки(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ОформитьЕще(Команда) + + ВариантыОтчетовСлужебныйКлиент.ОформитьЕще(ЭтотОбъект, Команда); + +КонецПроцедуры + //////////////////////////////////////////////////////////////////////////////// // Обработчики команд расчета показателей. @@ -830,7 +974,6 @@ //////////////////////////////////////////////////////////////////////////////// // Подключаемые - // Параметры: // Команда - КомандаФормы // @@ -963,6 +1106,7 @@ ПараметрыФормирования = Новый Структура; ПараметрыФормирования.Вставить("ЗагрузитьРезультат", Ложь); ПараметрыФормирования.Вставить("ИдентификаторЗадания", Результат.ИдентификаторЗадания); + ПараметрыФормирования.Вставить("ВремяНачалаФормирования", ТекущаяУниверсальнаяДатаВМиллисекундах()); Если Результат.Статус <> "Выполняется" Тогда ПослеФормирования(Результат, ПараметрыФормирования); @@ -985,16 +1129,26 @@ КонецЕсли; Если Результат = Неопределено Тогда + ПоказатьОшибкиФормирования(НСтр("ru = 'Формирование отчета прервано администратором'")); ПоказатьОповещениеПользователя(НСтр("ru = 'Отчет не сформирован'"),, Заголовок); + ИначеЕсли Результат.Статус = "Выполнено" Тогда + Если ПараметрыФормирования.ЗагрузитьРезультат Тогда ЗагрузитьРезультатФормированияОтчета(); КонецЕсли; + + НастройкиОтчета.СвойстваРезультата.ВремяФормирования = (ТекущаяУниверсальнаяДатаВМиллисекундах() + - ПараметрыФормирования.ВремяНачалаФормирования) / 1000; + ПоказатьОповещениеПользователя(НСтр("ru = 'Отчет сформирован'"),, Заголовок); + ИначеЕсли Результат.Статус = "Ошибка" Тогда + ПоказатьОшибкиФормирования(Результат.КраткоеПредставлениеОшибки); ПоказатьОповещениеПользователя(НСтр("ru = 'Отчет не сформирован'"),, Заголовок); + КонецЕсли; ФормированиеПриОткрытии = Ложь; @@ -1156,8 +1310,11 @@ КонецЕсли; ОтчетДанныеРасшифровки = ПоместитьВоВременноеХранилище(Результат.Расшифровка, УникальныйИдентификатор); + ВариантыОтчетовСлужебный.ИнициализироватьЗаголовкиОтчета(ЭтотОбъект); + Если Не Результат.ВариантМодифицирован И Не Результат.ПользовательскиеНастройкиМодифицированы Тогда + Возврат; КонецЕсли; @@ -1232,7 +1389,7 @@ ЗначенияДляВыбора = ЗначенияДляВыбора( Элемент.СписокВыбора, - Сведения.ЭлементПользовательскойНастройки.ИдентификаторПользовательскойНастройки, + Сведения.ЭлементПользовательскойНастройки, Элемент.ДоступныеТипы); ОграничиватьВыборУказаннымиЗначениями = ДоступныеЗначения <> Неопределено; @@ -1264,21 +1421,15 @@ КонецПроцедуры &НаКлиенте -Функция ЗначенияДляВыбора(СписокВыбора, ИдентификаторПользовательскойНастройки, ТипЗначения) +Функция ЗначенияДляВыбора(СписокВыбора, ЭлементНастройки, ТипЗначения) ЗначенияДляВыбора = СписокВыбора; - Если Не ЗначениеЗаполнено(ИдентификаторПользовательскойНастройки) Тогда + Если ЭлементНастройки = Неопределено Тогда Возврат ЗначенияДляВыбора; КонецЕсли; ЗначенияДляВыбора.ТипЗначения = ТипЗначения; - КэшЗначенийОтборов = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( - Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства, "КэшЗначенийОтборов"); - Если КэшЗначенийОтборов = Неопределено Тогда - Возврат ЗначенияДляВыбора; - КонецЕсли; - - ЗначениеОтбора = КэшЗначенийОтборов.Получить(ИдентификаторПользовательскойНастройки); + ЗначениеОтбора = ОтчетыКлиент.КэшЗначенияОтбора(Отчет.КомпоновщикНастроек, ЭлементНастройки); Если ЗначениеОтбора <> Неопределено Тогда ОтчетыКлиентСервер.ДополнитьСписок(ЗначенияДляВыбора, ЗначениеОтбора); КонецЕсли; @@ -1335,8 +1486,7 @@ КонецЕсли; КонецЕсли; - ОтчетыКлиент.КэшироватьЗначениеОтбора( - Список, ЭлементПользовательскойНастройки.ИдентификаторПользовательскойНастройки, Отчет.КомпоновщикНастроек); + ОтчетыКлиент.КэшироватьЗначениеОтбора(Отчет.КомпоновщикНастроек, ЭлементПользовательскойНастройки, Список); ОтчетыКлиентСервер.ОповеститьОИзмененииНастроек(ЭтотОбъект); КонецПроцедуры @@ -1392,6 +1542,11 @@ Сформировать(); КонецПроцедуры +&НаКлиенте +Процедура ПодготовитьКомандыКонтекстнойНастройки() + ВариантыОтчетовСлужебныйКлиент.ПриАктивизацииРезультатаОтчета(ЭтотОбъект, Элементы.ОтчетТабличныйДокумент); +КонецПроцедуры + // Выполняет расчет и вывод показателей выделенной области ячеек. // См. обработчик события ОтчетТабличныйДокументПриАктивизацииОбласти. // @@ -1405,7 +1560,9 @@ &НаСервере Процедура УстановитьВидимостьДоступность(ПриСохраненииВарианта = Ложь) - ПоказыватьКомандыВыбораВариантов = РежимВариантаОтчета() И НастройкиОтчета.РазрешеноВыбиратьВарианты; + ПоказыватьКомандыВыбораВариантов = + ВариантыОтчетовСлужебный.РежимВариантаОтчета(КлючТекущегоВарианта) + И НастройкиОтчета.РазрешеноВыбиратьВарианты; Если Не ПриСохраненииВарианта Тогда ПоказыватьКомандыИзмененияВарианта = ПоказыватьКомандыВыбораВариантов И НастройкиОтчета.РазрешеноИзменятьВарианты; @@ -1443,7 +1600,9 @@ ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( Элементы, "ПоделитьсяНастройками", "Видимость", РазрешеноИспользоватьНастройки); - Элементы.ИзменитьУсловияОтборов.Видимость = КоличествоДоступныхНастроек.Итог > 0 И РежимВариантаОтчета(); + Элементы.ИзменитьУсловияОтборов.Видимость = + КоличествоДоступныхНастроек.Итог > 0 + И ВариантыОтчетовСлужебный.РежимВариантаОтчета(КлючТекущегоВарианта); Если РазрешеноВыбиратьИНастраиватьВариантыБезСохранения Тогда ВариантМодифицирован = Ложь; @@ -1496,7 +1655,7 @@ &НаСервере Процедура ПроверитьДоступностьОбменаНастройкамиВарианта(МетаданныеОтчета) - ОбменНастройкамиВариантаДоступен = РежимВариантаОтчета() + ОбменНастройкамиВариантаДоступен = ВариантыОтчетовСлужебный.РежимВариантаОтчета(КлючТекущегоВарианта) И ВариантыОтчетов.ОтчетПодключенКХранилищу(МетаданныеОтчета); Элементы.ГруппаОбменНастройкамиЕще.Видимость = ОбменНастройкамиВариантаДоступен; @@ -1712,6 +1871,9 @@ Настройки.Вставить("Безопасный", БезопасныйРежим() <> Ложь); Настройки.Вставить("ИспользуемыеТаблицы", ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "ИспользуемыеТаблицы")); + // Свойства для контекстной настройки отчета. + Настройки.Вставить("СвойстваРезультата", ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета()); + Возврат Настройки; КонецФункции @@ -1784,6 +1946,13 @@ КонецЕсли; КонецПроцедуры +&НаСервере +Функция ДанныеЭлементаРасшифровки(Расшифровка) + + Возврат ВариантыОтчетовСлужебный.ДанныеЭлементаРасшифровки(ЭтотОбъект, Расшифровка); + +КонецФункции + &НаСервере Процедура ОбновитьЭлементыФормыНастроекНаСервере(ПараметрыОбновления = Неопределено) ЗагрузитьНастройкиВКомпоновщик(ПараметрыОбновления); @@ -2100,11 +2269,6 @@ КонецЕсли; КонецПроцедуры -&НаСервере -Функция РежимВариантаОтчета() - Возврат ТипЗнч(КлючТекущегоВарианта) = Тип("Строка") И Не ПустаяСтрока(КлючТекущегоВарианта); -КонецФункции - &НаКлиентеНаСервереБезКонтекста Функция ПустойКлючВарианта() Возврат " - "; @@ -2121,4 +2285,67 @@ КонецПроцедуры +&НаКлиенте +Процедура ПрименитьСхемуИзКонструктора(Результат) + +#Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда + Если ТипЗнч(Результат) <> Тип("СхемаКомпоновкиДанных") Тогда + Возврат; + КонецЕсли; + + НастройкиОтчета.АдресСхемы = ПоместитьВоВременноеХранилище(Результат, УникальныйИдентификатор); + + Путь = ПолучитьИмяВременногоФайла(); + + ЗаписьXML = Новый ЗаписьXML; + ЗаписьXML.ОткрытьФайл(Путь, "UTF-8"); + СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Результат, "dataCompositionSchema", "http://v8.1c.ru/8.1/data-composition-system/schema"); + ЗаписьXML.Закрыть(); + + ДвоичныеДанные = Новый ДвоичныеДанные(Путь); + НачатьУдалениеФайлов(, Путь); + + Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("СхемаКомпоновкиДанных", ДвоичныеДанные); + Отчет.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ОтчетИнициализирован", Ложь); + + ПараметрыЗаполнения = Новый Структура; + ПараметрыЗаполнения.Вставить("ПользовательскиеНастройкиМодифицированы", Истина); + ПараметрыЗаполнения.Вставить("КомпоновщикНастроекКД", Отчет.КомпоновщикНастроек); + ПараметрыЗаполнения.Вставить("ИмяСобытия", "НастройкиПоУмолчанию"); + + ОбновитьЭлементыФормыНастроек(ПараметрыЗаполнения); +#КонецЕсли + +КонецПроцедуры + +&НаКлиенте +Процедура ПрименитьНастройкиИзКонтекстногоМеню(Результат) + + Если ТипЗнч(Результат) <> Тип("Структура") Тогда + Возврат; + КонецЕсли; + + Действие = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Результат, "Действие"); + + Если Не ВариантыОтчетовСлужебныйКлиент.ЭтоСобытиеКонтекстнойНастройки(Действие) + Или Результат.ИдентификаторВладельца <> УникальныйИдентификатор Тогда + + Возврат; + КонецЕсли; + + Если Не Результат.Переформировать Тогда + Результат.Переформировать = (НастройкиОтчета.СвойстваРезультата.ВремяФормирования <= 5); + КонецЕсли; + + ВсеНастройкиЗавершение(Результат, Неопределено); + +КонецПроцедуры + +&НаКлиенте +Процедура ПослеВыбораПоля(ВыбранноеПоле, ДополнительныеПараметры) Экспорт + + ВариантыОтчетовСлужебныйКлиент.ПослеВыбораПоля(ВыбранноеПоле, ДополнительныеПараметры); + +КонецПроцедуры + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonForms/ФормаПоиска/Form.form b/SSL/src/CommonForms/ФормаПоиска/Form.form index b202e9561..e0233216d 100644 --- a/SSL/src/CommonForms/ФормаПоиска/Form.form +++ b/SSL/src/CommonForms/ФормаПоиска/Form.form @@ -84,10 +84,6 @@ true - - <key>ru</key> - <value>Состояние поиска</value> - true СостояниеПоискаРасширеннаяПодсказка @@ -256,10 +252,6 @@ true - - <key>ru</key> - <value>Шапка</value> - ШапкаРасширеннаяПодсказка 52 @@ -332,10 +324,6 @@ true - - <key>ru</key> - <value>Область поиска</value> - ОбластьПоискаРасширеннаяПодсказка 74 @@ -433,10 +421,6 @@ true - - <key>ru</key> - <value>Навигация</value> - false ГруппаНавигацияExtendedTooltip @@ -499,10 +483,6 @@ true - - <key>ru</key> - <value>Информация о найденном</value> - true ГруппаИнформацияОНайденномExtendedTooltip diff --git a/SSL/src/CommonModules/GoogleПереводчик/GoogleПереводчик.mdo b/SSL/src/CommonModules/GoogleПереводчик/GoogleПереводчик.mdo new file mode 100644 index 000000000..24a2fd713 --- /dev/null +++ b/SSL/src/CommonModules/GoogleПереводчик/GoogleПереводчик.mdo @@ -0,0 +1,11 @@ + + + GoogleПереводчик + + ru + Google переводчик + + true + true + true + diff --git a/SSL/src/CommonModules/GoogleПереводчик/Module.bsl b/SSL/src/CommonModules/GoogleПереводчик/Module.bsl new file mode 100644 index 000000000..13730c72f --- /dev/null +++ b/SSL/src/CommonModules/GoogleПереводчик/Module.bsl @@ -0,0 +1,211 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныеПроцедурыИФункции + +Функция ПеревестиТекст(Текст, ЯзыкПеревода = Неопределено, ИсходныйЯзык = Неопределено) Экспорт + + Если Не ЗначениеЗаполнено(Текст) Тогда + Возврат Текст; + КонецЕсли; + + Возврат ПеревестиТексты(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Текст), ЯзыкПеревода, ИсходныйЯзык)[Текст]; + +КонецФункции + +Функция ПеревестиТексты(Тексты, ЯзыкПеревода = Неопределено, ИсходныйЯзык = Неопределено) Экспорт + + ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("ПеревестиТексты", "Тексты", Тексты, Тип("Массив")); + + Если Не ЗначениеЗаполнено(ЯзыкПеревода) Тогда + ЯзыкПеревода = ОбщегоНазначения.КодОсновногоЯзыка(); + КонецЕсли; + + ИмяХоста = "translation.googleapis.com"; + + УстановитьПривилегированныйРежим(Истина); + HTTPЗапрос = Новый HTTPЗапрос("/language/translate/v2?key=" + НастройкиАвторизации().КлючAPI); + УстановитьПривилегированныйРежим(Ложь); + + ПараметрыЗапроса = Новый Структура; + ПараметрыЗапроса.Вставить("format", "text"); + ПараметрыЗапроса.Вставить("q", Тексты); + ПараметрыЗапроса.Вставить("target", ЯзыкПеревода); + + Если ЗначениеЗаполнено(ИсходныйЯзык) Тогда + ПараметрыЗапроса.Вставить("source", ИсходныйЯзык); + КонецЕсли; + + HTTPЗапрос.УстановитьТелоИзСтроки(ЗначениеВJSON(ПараметрыЗапроса)); + РезультатЗапроса = ВыполнитьЗапрос(HTTPЗапрос, ИмяХоста); + + Если Не РезультатЗапроса.ЗапросВыполнен Тогда + ВызватьИсключение ТекстОшибки(НСтр("ru = 'Не удалось выполнить перевод текста.'")); + КонецЕсли; + + ОтветСервера = JSONВЗначение(РезультатЗапроса.ОтветСервера); + + Результат = Новый Соответствие; + Для Индекс = 0 По Тексты.ВГраница() Цикл + Перевод = ОтветСервера["data"]["translations"][Индекс]; + Результат.Вставить(Тексты[Индекс], Перевод["translatedText"]); + Если Не ЗначениеЗаполнено(ИсходныйЯзык) Тогда + ИсходныйЯзык = Перевод["detectedSourceLanguage"]; + КонецЕсли; + КонецЦикла; + + Возврат Результат; + +КонецФункции + +Функция МаксимальныйРазмерПорции() Экспорт + + Возврат 10000; + +КонецФункции + +Функция ДоступныеЯзыки() Экспорт + + ИмяХоста = "translation.googleapis.com"; + + УстановитьПривилегированныйРежим(Истина); + HTTPЗапрос = Новый HTTPЗапрос("/language/translate/v2/languages?key=" + НастройкиАвторизации().КлючAPI); + УстановитьПривилегированныйРежим(Ложь); + + РезультатЗапроса = ВыполнитьЗапрос(HTTPЗапрос, ИмяХоста); + + Если Не РезультатЗапроса.ЗапросВыполнен Тогда + ВызватьИсключение ТекстОшибки(НСтр("ru = 'Не удалось получить список доступных языков.'")); + КонецЕсли; + + Результат = Новый Массив; + ДоступныеЯзыки = JSONВЗначение(РезультатЗапроса.ОтветСервера); + Для Каждого Язык Из ДоступныеЯзыки["data"]["languages"] Цикл + КодЯзыка = Язык["language"]; + Результат.Добавить(КодЯзыка); + КонецЦикла; + + Возврат Результат; + +КонецФункции + +Функция ВыполнитьЗапрос(Знач HTTPЗапрос, Знач ИмяХоста) + + Прокси = ПолучениеФайловИзИнтернета.ПолучитьПрокси("https"); + ЗащищенноеСоединение = ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение(); + + Попытка + Соединение = Новый HTTPСоединение(ИмяХоста, , , , Прокси, 60, ЗащищенноеСоединение); + HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос); + Исключение + ЗаписатьОшибкуВЖурналРегистрации(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось установить соединение с сервером %1 по причине: + |%2'"), ИмяХоста, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); + ВызватьИсключение; + КонецПопытки; + + Результат = Новый Структура; + Результат.Вставить("ЗапросВыполнен", Ложь); + Результат.Вставить("ОтветСервера", ""); + + Если HTTPОтвет.КодСостояния <> 200 Тогда + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Запрос ""%1"" не выполнен. Код состояния: %2.'"), HTTPЗапрос.АдресРесурса, HTTPОтвет.КодСостояния) + Символы.ПС + + HTTPОтвет.ПолучитьТелоКакСтроку(); + ЗаписатьОшибкуВЖурналРегистрации(ТекстОшибки); + КонецЕсли; + + Если HTTPОтвет.КодСостояния = 401 + Или HTTPОтвет.КодСостояния = 403 Тогда + ИнформацияОбОшибке = JSONВЗначение(HTTPОтвет.ПолучитьТелоКакСтроку()); + ВызватьИсключение ИнформацияОбОшибке["error"]["message"]; + КонецЕсли; + + Результат.ЗапросВыполнен = HTTPОтвет.КодСостояния = 200; + Результат.ОтветСервера = HTTPОтвет.ПолучитьТелоКакСтроку(); + + Возврат Результат; + +КонецФункции + +Функция НастройкиАвторизации() Экспорт + + ИменаПараметров = "КлючAPI"; + Результат = Новый Структура(ИменаПараметров); + + Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Константа.СервисПереводаТекста"); + Настройки = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Владелец, ИменаПараметров); + + Если ТипЗнч(Настройки) = Тип("Структура") Тогда + ЗаполнитьЗначенияСвойств(Результат, Настройки); + ИначеЕсли ТипЗнч(Настройки) = Тип("Строка") Тогда + Результат.КлючAPI = Настройки; + КонецЕсли; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Параметры: +// Настройки - см. ПереводТекстаНаДругиеЯзыки.НастройкиСервисаПереводаТекста +// +Процедура ПриОпределенииНастроек(Настройки) Экспорт + + Настройки.ИнструкцияПоПодключению = СтроковыеФункции.ФорматированнаяСтрока(НСтр( + "ru = 'Как настроить: + |1. Активируйте платежный аккаунт в Google Cloud. + |2. На странице Учетные данные нажмите на кнопку Создать учетные данные, выберите Ключ API. + |3. Скопируйте полученную строку из поля Ваш ключ API в поле Ключ API.'")); + + Параметр = Настройки.ПараметрыАвторизации.Добавить(); + Параметр.Имя = "КлючAPI"; + Параметр.Представление = НСтр("ru = 'Ключ API'"); + Параметр.ОтображениеПодсказки = ОтображениеПодсказки.ОтображатьСверху; + +КонецПроцедуры + +Функция НастройкаВыполнена() Экспорт + + УстановитьПривилегированныйРежим(Истина); + Возврат ЗначениеЗаполнено(НастройкиАвторизации().КлючAPI); + +КонецФункции + +Функция ЗначениеВJSON(Значение) + ЗаписьJSON = Новый ЗаписьJSON; + ЗаписьJSON.УстановитьСтроку(); + ЗаписатьJSON(ЗаписьJSON, Значение); + Возврат ЗаписьJSON.Закрыть(); +КонецФункции + +Функция JSONВЗначение(Строка, ИменаСвойствСоЗначениямиДата = Неопределено) + ЧтениеJSON = Новый ЧтениеJSON; + ЧтениеJSON.УстановитьСтроку(Строка); + Возврат ПрочитатьJSON(ЧтениеJSON, Истина, ИменаСвойствСоЗначениямиДата); +КонецФункции + +Процедура ЗаписатьОшибкуВЖурналРегистрации(Комментарий) + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Перевод текста'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, , Перечисления.СервисыПереводаТекста.ЯндексПереводчик, Комментарий); + +КонецПроцедуры + +Функция ТекстОшибки(ТекстОшибки) + + Если Пользователи.ЭтоПолноправныйПользователь() Тогда + Возврат ТекстОшибки + Символы.ПС + НСтр("ru = 'Подробности см. в журнале регистрации.'"); + КонецЕсли; + + Возврат ТекстОшибки + Символы.ПС + НСтр("ru = 'Обратитесь к администратору.'"); + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/АвтономнаяРабота/Module.bsl b/SSL/src/CommonModules/АвтономнаяРабота/Module.bsl index c429efb19..a744894a1 100644 --- a/SSL/src/CommonModules/АвтономнаяРабота/Module.bsl +++ b/SSL/src/CommonModules/АвтономнаяРабота/Module.bsl @@ -27,7 +27,7 @@ // - РегистрНакопленияМенеджерЗаписи // - РегистрБухгалтерииМенеджерЗаписи // - РегистрРасчетаМенеджерЗаписи - менеджер записи. -// ТолькоПросмотр - Булево - свойство ТолькоПросмотр формы. +// ТолькоПросмотр - Булево - свойство ТолькоПросмотр формы. // Процедура ОбъектПриЧтенииНаСервере(ТекущийОбъект, ТолькоПросмотр) Экспорт @@ -44,7 +44,7 @@ // и автономным рабочим местом в случаях когда, не задан пароль для установки подключения. // // Параметры: -// Источник - РегистрСведенийНаборЗаписей.НастройкиТранспортаОбменаДанными - запись регистра настроек транспорта, +// Источник - РегистрСведенийНаборЗаписей.НастройкиТранспортаОбменаДанными - запись регистра настроек транспорта, // которая была изменена. // Процедура ОтключитьАвтоматическуюСинхронизациюДанныхСПриложениемВИнтернете(Источник) Экспорт diff --git a/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl b/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl index 64b356f7c..8bf4ba169 100644 --- a/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl @@ -109,16 +109,19 @@ // Функция КоличествоАвтономныхРабочихМест() Экспорт + ШаблонТекста = "ПланОбмена.%1"; + ИмяПланаОбменаСтрокой = СтрШаблон(ШаблонТекста, ПланОбменаАвтономнойРаботы()); + ТекстЗапроса = " |ВЫБРАТЬ | КОЛИЧЕСТВО(*) КАК Количество |ИЗ - | ПланОбмена.[ИмяПланаОбмена] КАК Таблица + | &ИмяПланаОбмена КАК Таблица |ГДЕ | Таблица.Ссылка <> &ПриложениеВСервисе | И НЕ Таблица.ПометкаУдаления"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяПланаОбмена]", ПланОбменаАвтономнойРаботы()); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяПланаОбмена", ИмяПланаОбменаСтрокой); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ПриложениеВСервисе", ПриложениеВСервисе()); @@ -152,16 +155,19 @@ // Функция АвтономноеРабочееМесто() Экспорт + ШаблонТекста = "ПланОбмена.%1"; + ИмяПланаОбменаСтрокой = СтрШаблон(ШаблонТекста, ПланОбменаАвтономнойРаботы()); + ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1 | Таблица.Ссылка КАК АвтономноеРабочееМесто |ИЗ - | ПланОбмена.[ИмяПланаОбмена] КАК Таблица + | &ИмяПланаОбмена КАК Таблица |ГДЕ | Таблица.Ссылка <> &ПриложениеВСервисе | И НЕ Таблица.ПометкаУдаления"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяПланаОбмена]", ПланОбменаАвтономнойРаботы()); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяПланаОбмена", ИмяПланаОбменаСтрокой); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ПриложениеВСервисе", ПриложениеВСервисе()); @@ -205,15 +211,15 @@ "ВЫБРАТЬ | МИНИМУМ(СостоянияУспешныхОбменовДанными.ДатаОкончания) КАК ДатаСинхронизации |ИЗ - | [СостоянияУспешныхОбменовДанными] КАК СостоянияУспешныхОбменовДанными + | &СостоянияУспешныхОбменовДанными КАК СостоянияУспешныхОбменовДанными |ГДЕ | СостоянияУспешныхОбменовДанными.УзелИнформационнойБазы = &АвтономноеРабочееМесто"; Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[СостоянияУспешныхОбменовДанными]", "РегистрСведений.СостоянияУспешныхОбменовДаннымиОбластейДанных"); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&СостоянияУспешныхОбменовДанными", "РегистрСведений.СостоянияУспешныхОбменовДаннымиОбластейДанных"); Иначе - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[СостоянияУспешныхОбменовДанными]", "РегистрСведений.СостоянияУспешныхОбменовДанными"); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&СостоянияУспешныхОбменовДанными", "РегистрСведений.СостоянияУспешныхОбменовДанными"); КонецЕсли; Запрос = Новый Запрос; @@ -230,15 +236,18 @@ // Функция СформироватьНаименованиеАвтономногоРабочегоМестаПоУмолчанию() Экспорт - ТекстЗапроса = " - |ВЫБРАТЬ + ШаблонТекста = "ПланОбмена.%1"; + ИмяПланаОбменаСтрокой = СтрШаблон(ШаблонТекста, ПланОбменаАвтономнойРаботы()); + + ТекстЗапроса = + "ВЫБРАТЬ | КОЛИЧЕСТВО(*) КАК Количество |ИЗ - | ПланОбмена.[ИмяПланаОбмена] КАК Таблица + | &ИмяПланаОбмена КАК Таблица |ГДЕ | Таблица.Наименование ПОДОБНО &ШаблонИмени"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяПланаОбмена]", ПланОбменаАвтономнойРаботы()); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяПланаОбмена", ИмяПланаОбменаСтрокой); Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; @@ -355,36 +364,35 @@ // Функция МониторАвтономныхРабочихМест() Экспорт - ТекстЗапроса = " - |ВЫБРАТЬ + ШаблонТекста = "ПланОбмена.%1"; + ИмяПланаОбменаСтрокой = СтрШаблон(ШаблонТекста, ПланОбменаАвтономнойРаботы()); + + ТекстЗапроса = "ВЫБРАТЬ | СостоянияУспешныхОбменовДанными.УзелИнформационнойБазы КАК АвтономноеРабочееМесто, | МИНИМУМ(СостоянияУспешныхОбменовДанными.ДатаОкончания) КАК ДатаСинхронизации |ПОМЕСТИТЬ СостоянияУспешныхОбменовДанными |ИЗ | РегистрСведений.СостоянияУспешныхОбменовДаннымиОбластейДанных КАК СостоянияУспешныхОбменовДанными - | |СГРУППИРОВАТЬ ПО | СостоянияУспешныхОбменовДанными.УзелИнформационнойБазы |; | + | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ПланОбмена.Ссылка КАК АвтономноеРабочееМесто, | ЕСТЬNULL(СостоянияУспешныхОбменовДанными.ДатаСинхронизации, Неопределено) КАК ДатаСинхронизации |ИЗ - | ПланОбмена.[ИмяПланаОбмена] КАК ПланОбмена - | - | ЛЕВОЕ СОЕДИНЕНИЕ СостоянияУспешныхОбменовДанными КАК СостоянияУспешныхОбменовДанными - | ПО ПланОбмена.Ссылка = СостоянияУспешныхОбменовДанными.АвтономноеРабочееМесто - | + | &ИмяПланаОбмена КАК ПланОбмена + | ЛЕВОЕ СОЕДИНЕНИЕ СостоянияУспешныхОбменовДанными КАК СостоянияУспешныхОбменовДанными + | ПО ПланОбмена.Ссылка = СостоянияУспешныхОбменовДанными.АвтономноеРабочееМесто |ГДЕ | ПланОбмена.Ссылка <> &ПриложениеВСервисе | И НЕ ПланОбмена.ПометкаУдаления - | |УПОРЯДОЧИТЬ ПО | ПланОбмена.Представление"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяПланаОбмена]", ПланОбменаАвтономнойРаботы()); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяПланаОбмена", ИмяПланаОбменаСтрокой); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ПриложениеВСервисе", ПриложениеВСервисе()); diff --git a/SSL/src/CommonModules/АдминистрированиеКластера/Module.bsl b/SSL/src/CommonModules/АдминистрированиеКластера/Module.bsl index 7f80b7f1c..34f071eaf 100644 --- a/SSL/src/CommonModules/АдминистрированиеКластера/Module.bsl +++ b/SSL/src/CommonModules/АдминистрированиеКластера/Module.bsl @@ -626,6 +626,53 @@ КонецПроцедуры +// Свойства фильтра сеансов. +// Для использования в функциях СеансыИнформационнойБазы, УдалитьСеансыИнформационнойБазы и аналогичных. +// +// Возвращаемое значение: +// Структура: +// * Свойство - Строка - имя свойства, по которому осуществляется фильтрация. +// Допустимые значения - см. возвращаемое значение функции АдминистрированиеКластера.СвойстваСеанса. +// * ВидСравнения - ВидСравнения - вид сравнения значений сеансов с указанным в условии фильтра. +// Допустимые значения: +// ВидСравнения.Равно, +// ВидСравнения.НеРавно, +// ВидСравнения.Больше (только для числовых значений), +// ВидСравнения.БольшеИлиРавно (только для числовых значений), +// ВидСравнения.Меньше (только для числовых значений), +// ВидСравнения.МеньшеИлиРавно (только для числовых значений), +// ВидСравнения.ВСписке, +// ВидСравнения.НеВСписке, +// ВидСравнения.Интервал (только для числовых значений), +// ВидСравнения.ИнтервалВключаяГраницы (только для числовых значений), +// ВидСравнения.ИнтервалВключаяНачало (только для числовых значений), +// ВидСравнения.ИнтервалВключаяОкончание (только для числовых значений). +// * Значение - Число +// - Строка +// - Дата +// - Булево +// - СписокЗначений +// - Массив +// - Структура - значение, с которым +// сравнивается значение соответствующего свойства сеанса. При ВидСравнения.ВСписке и ВидСравнения.НеВСписке +// в качестве значения должны передаваться СписокЗначений или Массив, содержащие набор значений, с которыми +// будет выполняться сравнение. При ВидСравнения.Интервал, ВидСравнения.ИнтервалВключаяГраницы, +// ВидСравнения.ИнтервалВключаяНачало и ВидСравнения.ИнтервалВключаяОкончание в качестве значения должны +// передаваться структуры с полями С и По, значения которых образуют интервал, с которым будет выполняться +// соответствующее сравнение. +// +Функция ФильтрСеансов() Экспорт + + Результат = Новый Структура(); + + Результат.Вставить("Свойство"); + Результат.Вставить("ВидСравнения", ВидСравнения.Равно); + Результат.Вставить("Значение"); + + Возврат Результат; + +КонецФункции + #КонецОбласти #Область СоединенияСИнформационнойБазой @@ -784,6 +831,53 @@ КонецПроцедуры +// Свойства фильтра соединений. +// Для использования в функциях СоединенияСИнформационнойБазой, РазорватьСоединенияСИнформационнойБазой и аналогичных. +// +// Возвращаемое значение: +// Структура: +// * Свойство - Строка - имя свойства, по которому осуществляется фильтрация. +// Допустимые значения - см. возвращаемое значение функции АдминистрированиеКластера.СвойстваСоединения. +// * ВидСравнения - ВидСравнения - вид сравнения значений сеансов с указанным в условии фильтра. +// Допустимые значения: +// ВидСравнения.Равно, +// ВидСравнения.НеРавно, +// ВидСравнения.Больше (только для числовых значений), +// ВидСравнения.БольшеИлиРавно (только для числовых значений), +// ВидСравнения.Меньше (только для числовых значений), +// ВидСравнения.МеньшеИлиРавно (только для числовых значений), +// ВидСравнения.ВСписке, +// ВидСравнения.НеВСписке, +// ВидСравнения.Интервал (только для числовых значений), +// ВидСравнения.ИнтервалВключаяГраницы (только для числовых значений), +// ВидСравнения.ИнтервалВключаяНачало (только для числовых значений), +// ВидСравнения.ИнтервалВключаяОкончание (только для числовых значений). +// * Значение - Число +// - Строка +// - Дата +// - Булево +// - СписокЗначений +// - Массив +// - Структура - значение, с которым +// сравнивается значение соответствующего свойства сеанса. При ВидСравнения.ВСписке и ВидСравнения.НеВСписке +// в качестве значения должны передаваться СписокЗначений или Массив, содержащие набор значений, с которыми +// будет выполняться сравнение. При ВидСравнения.Интервал, ВидСравнения.ИнтервалВключаяГраницы, +// ВидСравнения.ИнтервалВключаяНачало и ВидСравнения.ИнтервалВключаяОкончание в качестве значения должны +// передаваться структуры с полями С и По, значения которых образуют интервал, с которым будет выполняться +// соответствующее сравнение. +// +Функция ФильтрСоединений() Экспорт + + Результат = Новый Структура(); + + Результат.Вставить("Свойство"); + Результат.Вставить("ВидСравнения", ВидСравнения.Равно); + Результат.Вставить("Значение"); + + Возврат Результат; + +КонецФункции + #КонецОбласти #Область ПрофилиБезопасности @@ -1437,100 +1531,6 @@ #Область СлужебныеПроцедурыИФункции -// Свойства фильтра сеансов. -// Для использования в функциях СеансыИнформационнойБазы, УдалитьСеансыИнформационнойБазы и аналогичных. -// -// Возвращаемое значение: -// Структура: -// * Свойство - Строка - имя свойства, по которому осуществляется фильтрация. -// Допустимые значения - см. возвращаемое значение функции АдминистрированиеКластера.СвойстваСеанса. -// * ВидСравнения - ВидСравнения - вид сравнения значений сеансов с указанным в условии фильтра. -// Допустимые значения: -// ВидСравнения.Равно, -// ВидСравнения.НеРавно, -// ВидСравнения.Больше (только для числовых значений), -// ВидСравнения.БольшеИлиРавно (только для числовых значений), -// ВидСравнения.Меньше (только для числовых значений), -// ВидСравнения.МеньшеИлиРавно (только для числовых значений), -// ВидСравнения.ВСписке, -// ВидСравнения.НеВСписке, -// ВидСравнения.Интервал (только для числовых значений), -// ВидСравнения.ИнтервалВключаяГраницы (только для числовых значений), -// ВидСравнения.ИнтервалВключаяНачало (только для числовых значений), -// ВидСравнения.ИнтервалВключаяОкончание (только для числовых значений). -// * Значение - Число -// - Строка -// - Дата -// - Булево -// - СписокЗначений -// - Массив -// - Структура - значение, с которым -// сравнивается значение соответствующего свойства сеанса. При ВидСравнения.ВСписке и ВидСравнения.НеВСписке -// в качестве значения должны передаваться СписокЗначений или Массив, содержащие набор значений, с которыми -// будет выполняться сравнение. При ВидСравнения.Интервал, ВидСравнения.ИнтервалВключаяГраницы, -// ВидСравнения.ИнтервалВключаяНачало и ВидСравнения.ИнтервалВключаяОкончание в качестве значения должны -// передаваться структуры с полями С и По, значения которых образуют интервал, с которым будет выполняться -// соответствующее сравнение. -// -Функция ФильтрСеансов() Экспорт - - Результат = Новый Структура(); - - Результат.Вставить("Свойство"); - Результат.Вставить("ВидСравнения", ВидСравнения.Равно); - Результат.Вставить("Значение"); - - Возврат Результат; - -КонецФункции - -// Свойства фильтра соединений. -// Для использования в функциях СоединенияСИнформационнойБазой, РазорватьСоединенияСИнформационнойБазой и аналогичных. -// -// Возвращаемое значение: -// Структура: -// * Свойство - Строка - имя свойства, по которому осуществляется фильтрация. -// Допустимые значения - см. возвращаемое значение функции АдминистрированиеКластера.СвойстваСоединения. -// * ВидСравнения - ВидСравнения - вид сравнения значений сеансов с указанным в условии фильтра. -// Допустимые значения: -// ВидСравнения.Равно, -// ВидСравнения.НеРавно, -// ВидСравнения.Больше (только для числовых значений), -// ВидСравнения.БольшеИлиРавно (только для числовых значений), -// ВидСравнения.Меньше (только для числовых значений), -// ВидСравнения.МеньшеИлиРавно (только для числовых значений), -// ВидСравнения.ВСписке, -// ВидСравнения.НеВСписке, -// ВидСравнения.Интервал (только для числовых значений), -// ВидСравнения.ИнтервалВключаяГраницы (только для числовых значений), -// ВидСравнения.ИнтервалВключаяНачало (только для числовых значений), -// ВидСравнения.ИнтервалВключаяОкончание (только для числовых значений). -// * Значение - Число -// - Строка -// - Дата -// - Булево -// - СписокЗначений -// - Массив -// - Структура - значение, с которым -// сравнивается значение соответствующего свойства сеанса. При ВидСравнения.ВСписке и ВидСравнения.НеВСписке -// в качестве значения должны передаваться СписокЗначений или Массив, содержащие набор значений, с которыми -// будет выполняться сравнение. При ВидСравнения.Интервал, ВидСравнения.ИнтервалВключаяГраницы, -// ВидСравнения.ИнтервалВключаяНачало и ВидСравнения.ИнтервалВключаяОкончание в качестве значения должны -// передаваться структуры с полями С и По, значения которых образуют интервал, с которым будет выполняться -// соответствующее сравнение. -// -Функция ФильтрСоединений() Экспорт - - Результат = Новый Структура(); - - Результат.Вставить("Свойство"); - Результат.Вставить("ВидСравнения", ВидСравнения.Равно); - Результат.Вставить("Значение"); - - Возврат Результат; - -КонецФункции - Процедура ДобавитьУсловиеФильтра(Фильтр, Знач Свойство, Знач ВидСравненияЗначений, Знач Значение) Экспорт Если Фильтр = Неопределено Тогда diff --git a/SSL/src/CommonModules/АдминистрированиеКластераRASКлиентСервер/Module.bsl b/SSL/src/CommonModules/АдминистрированиеКластераRASКлиентСервер/Module.bsl index a09164107..d747db024 100644 --- a/SSL/src/CommonModules/АдминистрированиеКластераRASКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/АдминистрированиеКластераRASКлиентСервер/Module.bsl @@ -609,7 +609,7 @@ // Фильтр - Структура - параметры фильтрации информационных баз. // // Возвращаемое значение: -// Массив(Структура). +// Массив из Структура // Функция СвойстваИнформационныхБаз(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач Фильтр = Неопределено) Экспорт diff --git a/SSL/src/CommonModules/АдминистрированиеКластераКлиентСервер/Module.bsl b/SSL/src/CommonModules/АдминистрированиеКластераКлиентСервер/Module.bsl index 6f79d12e5..b8ae8d498 100644 --- a/SSL/src/CommonModules/АдминистрированиеКластераКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/АдминистрированиеКластераКлиентСервер/Module.bsl @@ -624,7 +624,7 @@ // Возвращаемое значение: // Строка - имя профиля безопасности, назначенного для информационной базы в качестве профиля // безопасности безопасного режима. Если для информационной базы не назначен профиль безопасности - возвращается пустая -// строка. +// Строка // Функция ПрофильБезопасностиБезопасногоРежимаИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ = Неопределено) Экспорт diff --git a/SSL/src/CommonModules/АдресныйКлассификаторКлиент/Module.bsl b/SSL/src/CommonModules/АдресныйКлассификаторКлиент/Module.bsl index d31b3d813..e9a83ead2 100644 --- a/SSL/src/CommonModules/АдресныйКлассификаторКлиент/Module.bsl +++ b/SSL/src/CommonModules/АдресныйКлассификаторКлиент/Module.bsl @@ -147,18 +147,6 @@ // "САЙТ", "ИТС". // * ПолеОшибки - Строка - имя реквизита для привязки сообщений об ошибке. // -// Возвращаемое значение: -// Структура: -// * КодыРегионов - Массив - содержит числовые значения кодов регионов-субъектов для которых доступны -// все файлы. -// * ЕстьВсеФайлы - Булево - флаг того, что можно загружать все регионы. -// * Ошибки - Структура - см. описание ОбщегоНазначенияКлиентСервер.ДобавитьОшибкуПользователю. -// * ФайлыПоРегионам - Соответствие - соответствие файлов регионам. Ключ может быть: -// - числом (код региона), тогда значение - массив имен файлов, необходимых -// для загрузки этого региона -// - символом "*", тогда значение - массив имен файлов, необходимых для -// загрузки всех регионов. -// Процедура АнализДоступностиФайловКлассификатораВКаталоге(ОписаниеЗавершения, КодыРегионов, Каталог, ПараметрыЗагрузки) Экспорт РабочийКаталог = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(Каталог); @@ -185,7 +173,7 @@ // Параметры загрузки файлов. // // Возвращаемое значение: -// Структура: +// Структура: // * ИндексРегиона - Неопределено - индекс региона; // * ИмяФайла - Строка - имя файла региона; // * КодРегиона - Неопределено -цифровой код региона; diff --git a/SSL/src/CommonModules/АдресныйКлассификаторСлужебный/Module.bsl b/SSL/src/CommonModules/АдресныйКлассификаторСлужебный/Module.bsl index d03e8b2bd..f9494d42d 100644 --- a/SSL/src/CommonModules/АдресныйКлассификаторСлужебный/Module.bsl +++ b/SSL/src/CommonModules/АдресныйКлассификаторСлужебный/Module.bsl @@ -327,7 +327,7 @@ // Проверка адрес на соответствие ФИАС // // Параметры: -// Адреса - Соответствие: +// Адреса - Соответствие из КлючИЗначение: // * Ключ - Число - уникальный ключ адреса, // * Значение - Строка - строка в формате JSON с адресом. // ПроверятьУстареваниеАдресов - Булево @@ -719,8 +719,7 @@ КонецЕсли; - ВариантыДомов.Индексы.Добавить("ДомЧислом, Дом, Корпус, Строение"); - ВариантыДомов.Сортировать("ДомЧислом, Дом, Строение, Корпус"); + ВариантыДомов.Сортировать("ПредставлениеДляСортировки"); Возврат ВариантыДомов; @@ -824,8 +823,6 @@ Возврат ВариантыЗемельныхУчастков; КонецЕсли; - НаименованиеЗданийИСтроений = АдресныйКлассификаторПовтИсп.НаименованиеВладенийИСтроений(); - Для каждого СведенияОДоме Из РезультатВебСервис.Данные Цикл ОписаниеУчастка = ОписаниеДомаИЗемельногоУчастка(); @@ -1034,7 +1031,7 @@ // НаборАдресов - Соответствие // ПроверятьУстареваниеАдресов - Булево // Возвращаемое значение: -// Соответствие из КлючИЗначение - где: +// Соответствие из КлючИЗначение: // * Ключ - Число // * Значение - см. РезультатПроверкиАдреса // @@ -1270,7 +1267,7 @@ КонецФункции // Возвращаемое значение: -// Соответствие Из КлючИЗначение - где: +// Соответствие из КлючИЗначение: // * Ключ - Число // * Значение - Структура: // ** Отказ - Булево - поставщик не доступен. @@ -1683,16 +1680,18 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. - Функция НавигационнаяСсылкаЗагрузкиАдресногоКлассификатора() Экспорт Возврат "e1cib/command/РегистрСведений.АдресныеОбъекты.Команда.ЗагрузитьАдресныйКлассификатор"; КонецФункции -// Параметры: -// НазначениеРолей - см. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей.НазначениеРолей -// +Функция ЕстьПравоДобавлениеИзменениеАдресныхСведений() Экспорт + Возврат ПравоДоступа("Изменение", Метаданные.РегистрыСведений.АдресныеОбъекты); +КонецФункции + +//////////////////////////////////////////////////////////////////////////////// +// Обработчики событий подсистем конфигурации. + +// См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей Процедура ПриОпределенииНазначенияРолей(НазначениеРолей) Экспорт // ТолькоДляПользователейСистемы. @@ -1709,10 +1708,6 @@ КонецПроцедуры // См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. -// -// Параметры: -// ЗапросыРазрешений - см. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам.ЗапросыРазрешений -// Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт Если ОбщегоНазначения.РазделениеВключено() Тогда @@ -1761,10 +1756,6 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт // Заполнение начальных данных. @@ -1777,10 +1768,8 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. -// // Параметры: -// ТекущиеДела - см. ТекущиеДелаСлужебный.ТекущиеДела +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт @@ -1841,10 +1830,6 @@ КонецПроцедуры -Функция ЕстьПравоДобавлениеИзменениеАдресныхСведений() Экспорт - Возврат ПравоДоступа("Изменение", Метаданные.РегистрыСведений.АдресныеОбъекты); -КонецФункции - #Область АдресныйКлассификаторВМоделиСервиса //////////////////////////////////////////////////////////////////////////////// @@ -1857,9 +1842,7 @@ КонецПроцедуры -// Параметры: -// Типы - см. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки.Типы -// +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт Типы.Добавить(Метаданные.Константы.ИсточникДанныхАдресногоКлассификатора); @@ -4534,16 +4517,16 @@ // Проверка адрес на соответствие ФИАС // // Параметры: -// Адреса - Соответствие: +// Адреса - Соответствие из КлючИЗначение: // * Ключ - Число - уникальный ключ адреса, // * Значение - Строка - строка в формате JSON с адресом. // // Возвращаемое значение: -// Соответствие Из КлючИЗначение- где: +// Соответствие из КлючИЗначение: // * Ключ - Число - уникальный ключ адреса, // * Значение - Структура: // * Ошибки - Массив из Строка - список ошибок -// * Варианты - Массив Из Строка - варианты нового адреса, если адрес устарел +// * Варианты - Массив из Строка - варианты нового адреса, если адрес устарел // * АдресПроверен - Булево - признак, что адрес был проверен // * АдресКорректный - Булево - признак, что адрес корректный // @@ -6560,16 +6543,14 @@ // Получает идентификаторы адреса через веб-сервис. // // Параметры: +// Результат - Структура: +// * ИдентификаторАдресногоОбъекта - УникальныйИдентификатор - идентификатор адресного объекта (улицы, нас. пункта). +// * ИдентификаторДома - УникальныйИдентификатор - идентификатор дома адресного объекта. +// * Отказ - Булево - поставщик не доступен. +// * ПодробноеПредставлениеОшибки - Строка - описание ошибки, если поставщик недоступен иначе Неопределено. +// * КраткоеПредставлениеОшибки - Строка - описание ошибки, если поставщик недоступен иначе Неопределено. // АдресДляПроверки - Строка - строка XML контактной информации содержащая адрес. // -// Возвращаемое значение: -// Структура: -// * ИдентификаторАдресногоОбъекта - УникальныйИдентификатор - идентификатор адресного объекта (улицы, нас. пункта). -// * ИдентификаторДома - УникальныйИдентификатор - идентификатор дома адресного объекта. -// * Отказ - Булево - поставщик не доступен. -// * ПодробноеПредставлениеОшибки - Строка - описание ошибки, если поставщик недоступен иначе Неопределено. -// * КраткоеПредставлениеОшибки - Строка - описание ошибки, если поставщик недоступен иначе Неопределено. -// Процедура ОпределитьИдентификаторыАдресаСервис1С(Результат, АдресДляПроверки) Сервис = АдресныйКлассификаторПовтИсп.СервисКлассификатора1С(); @@ -6741,7 +6722,7 @@ // Возвращаемое значение: // Структура: -// * Данные - соответствие из КлючИЗначение - где: +// * Данные - Соответствие из КлючИЗначение: // ** Ключ - Число - идентификатор адреса // ** Значение - см. РезультатПроверкиАдреса // * КраткоеПредставлениеОшибки - Строка @@ -7097,10 +7078,10 @@ // Выполняет обратное действие для функции УникальныйИдентификаторВДвоичныеДанные. // // Параметры: -// ДвоичныеДанные - исходные данные. +// ДвоичныеДанные - ДвоичныеДанные - исходные данные // // Возвращаемое значение: -// УникальныйИдентификатор - результат преобразования. +// УникальныйИдентификатор // Функция УникальныйИдентификаторИзДвоичныхДанных(ДвоичныеДанные) @@ -7114,13 +7095,13 @@ КонецФункции // Преобразует строку base64 в УникальныйИдентификатор. +// Возвращаемый идентификатор зависит от регистра букв, передавай строки. // // Параметры: // Строка - Строка - регистрозависимые исходные данные. // // Возвращаемое значение: -// Идентификатор - результат преобразования. -// Возвращаемый идентификатор зависит от регистра букв, передавай строки. +// УникальныйИдентификатор // Функция УникальныйИдентификаторИзСтроки64(Строка) @@ -7131,12 +7112,12 @@ // Преобразует строку в ДвоичныеДанные. // // Параметры: -// Строка - исходные данные. +// Строка - Строка - исходные данные. // // Возвращаемое значение: // ДвоичныеДанные - результат преобразования. // -Функция ДвоичныеДанныеИзСтроки(Строка) +Функция ДвоичныеДанныеИзСтроки(Строка) Возврат XMLЗначение(Тип("ДвоичныеДанные"), Строка); @@ -7186,6 +7167,9 @@ // Имя событие для записи в журнал регистрации. // +// Возвращаемое значение: +// Строка +// Функция СобытиеЖурналаРегистрации() Экспорт Возврат НСтр("ru = 'Адресный классификатор'", ОбщегоНазначения.КодОсновногоЯзыка()); @@ -7334,7 +7318,7 @@ // Параметры: // СтрокаСоСпискомДомов - Строка - описание списка домов из регистра сведения. // СтрокаПоиска - Строка - строка отбора. -// ВариантыДомов - Список значений - список домов. +// ВариантыДомов - СписокЗначений - список домов. // Процедура ИзвлечьСписокДомов(СтрокаСоСпискомДомов, СтрокаПоиска, ВариантыДомов, Запись, ТочноеСовпадение) @@ -7348,15 +7332,10 @@ ОписаниеДома = ОписаниеДомаИЗемельногоУчастка(); ОписаниеДома.Идентификатор = УникальныйИдентификаторИзСтроки64(Лев(Дом, 24)); - Если ЗначениеЗаполнено(НомерДома[0]) Тогда - ОписаниеДома.ВидВладения = ТипЧисло.ПривестиЗначение(Лев(НомерДома[0], 1)); - ОписаниеДома.Дом = Сред(НомерДома[0], 2); - ДомЧислом = Формат(НомерДомаЧислом(ОписаниеДома.Дом), "ЧЦ=4; ЧН=; ЧВН=; ЧГ=0; ЧФ=1Ч"); - Если ЗначениеЗаполнено(ОписаниеДома.ВидВладения) Тогда - ОписаниеДома.НазваниеВладения = НаименованиеЗданийИСтроений.Владения.Получить(ОписаниеДома.ВидВладения); - КонецЕсли; - Иначе - ДомЧислом = "10000"; + ОписаниеДома.ВидВладения = ТипЧисло.ПривестиЗначение(Лев(НомерДома[0], 1)); + ОписаниеДома.Дом = СокрЛП(Сред(НомерДома[0], 2)); + Если ЗначениеЗаполнено(ОписаниеДома.ВидВладения) Тогда + ОписаниеДома.НазваниеВладения = НаименованиеЗданийИСтроений.Владения.Получить(ОписаниеДома.ВидВладения); КонецЕсли; ОписаниеДома.Индекс = Формат(Запись.ПочтовыйИндекс, "ЧГ=0"); @@ -7369,18 +7348,16 @@ ОписаниеДома.КодКЛАДР = Формат(Запись.КодКЛАДР, "ЧГ=0"); Если НомерДома.Количество() > 1 Тогда + ОписаниеДома.Корпус = НомерДома[1]; - КорпусЧислом = Формат(НомерДомаЧислом(ОписаниеДома.Корпус), "ЧЦ=4; ЧН=; ЧВН=; ЧГ=0; ЧФ=1Ч"); Если НомерДома.Количество() > 2 Тогда ОписаниеДома.ВидСтроения = ТипЧисло.ПривестиЗначение(НомерДома[2]); Если НомерДома.Количество() > 3 Тогда ОписаниеДома.Строение = НомерДома[3]; КонецЕсли; КонецЕсли; - Иначе - КорпусЧислом = "10000"; + КонецЕсли; - ОписаниеДома.ДомЧислом = ТипЧисло.ПривестиЗначение(ДомЧислом + КорпусЧислом); Если ЗначениеЗаполнено(СтрокаПоиска) Тогда Если ТочноеСовпадение Тогда @@ -7449,9 +7426,9 @@ Если ЗначениеЗаполнено(ОписаниеДома.Корпус) Тогда Если ПустаяСтрока(СтрокаПоиска) Или Не СтрНачинаетсяС(ОписаниеДома.Корпус, СтрокаПоиска) Тогда - ТекстПроСтроения = "корпус" + " " + ОписаниеДома.Корпус; + ТекстПроСтроения = "Корпус" + " " + ОписаниеДома.Корпус; Иначе - ТекстПроСтроения = СтроковыеФункции.ФорматированнаяСтрока("корпус %1%2", + ТекстПроСтроения = СтроковыеФункции.ФорматированнаяСтрока("Корпус %1%2", СтрокаПоиска, Сред(ОписаниеДома.Корпус, СтрДлина(СтрокаПоиска) + 1)); КонецЕсли; @@ -7468,6 +7445,8 @@ Если ЗначениеЗаполнено(ОписаниеДома.Строение) Тогда НазваниеСтроения = ?(ПустаяСтрока(ОписаниеДома.НазваниеСтроения), НРег(НаименованиеЗданийИСтроений.Строения.Получить(ОписаниеДома.ВидСтроения)), ОписаниеДома.НазваниеСтроения); + + НазваниеСтроения = ТРег(НазваниеСтроения); Разделитель = ?(ПустаяСтрока(ТекстПроСтроения), "", ", "); @@ -7497,11 +7476,19 @@ ЗаполнитьЗначенияСвойств(НомерДомаИСтроения, ОписаниеДома, "Идентификатор, Индекс, ОКТМО, ОКАТО, КодИФНСФЛ, КодИФНСЮЛ, КодУчасткаИФНСФЛ, КодУчасткаИФНСЮЛ, КодКЛАДР"); + Если ВариантыДомов.Найти(Строка(ТекстПроДомФормат), "Представление") <> Неопределено Тогда + Возврат; // Дубль дома + КонецЕсли; + ИнформацияОДоме = ВариантыДомов.Добавить(); ЗаполнитьЗначенияСвойств(ИнформацияОДоме, ОписаниеДома); ИнформацияОДоме.Значение = НомерДомаИСтроения; ИнформацияОДоме.Представление = ТекстПроДомФормат; + ИнформацияОДоме.ПредставлениеДляСортировки = СокрЛП(ОписаниеДома.НазваниеВладения) + НомераДляСортировки(ОписаниеДома.Дом) + + ?(ЗначениеЗаполнено(ОписаниеДома.Корпус), "корпус", "") + НомераДляСортировки(ОписаниеДома.Корпус) + + СокрЛП(НазваниеСтроения) + НомераДляСортировки(ОписаниеДома.Строение); + КонецПроцедуры // Возвращаемое значение: @@ -7535,14 +7522,22 @@ КонецФункции -Функция НомерДомаЧислом(ИсходнаяСтрока) +Функция НомераДляСортировки(ИсходнаяСтрока) НаборСимволов = СтрРазделить(ИсходнаяСтрока, "0123456789", Ложь); СимволыДляУдаления = СтрСоединить(НаборСимволов); НаборЦифр = СтрРазделить(ИсходнаяСтрока, СимволыДляУдаления, Ложь); ИтоговоеЧисло = СтрСоединить(НаборЦифр); - Возврат ?(ПустаяСтрока(ИтоговоеЧисло), 0, Число(ИтоговоеЧисло)); + ТипЧисло = ОбщегоНазначения.ОписаниеТипаЧисло(6); + Результат = ТипЧисло.ПривестиЗначение(ИтоговоеЧисло); + + Если Результат = 0 Тогда + Возврат ""; + КонецЕсли; + + Возврат Формат(Результат ,"ЧЦ=6; ЧН=; ЧВН=; ЧГ=0" ); + КонецФункции Функция КодыДомовВладенийИСтроений() @@ -7777,7 +7772,8 @@ // Проверяет наличие обновлений адресного классификатора на веб сервере // для тех объектов, которые ранее уже загружались. // -// Возвращаемое значение - ТаблицаЗначений - описание добавленных и измененных субъектов. Содержит Колонки: +// Возвращаемое значение: +// ТаблицаЗначений - описание добавленных и измененных субъектов. Содержит Колонки: // * КодСубъектаРФ - Число - код субъекта РФ. // * Наименование - Строка - наименование субъекта РФ. // * Сокращение - Строка - сокращение субъекта РФ. @@ -8006,7 +8002,6 @@ Если ФайлЗагрузки = Неопределено Тогда ВызватьИсключение НСтр("ru = 'Загрузка адресных сведений прервана. В загружаемых файлах не найден файл с адресными сведениями.'"); - Возврат; КонецЕсли; ТекущаяЗапись = ФайлЗагрузки.ФайлЧтения; @@ -8190,7 +8185,6 @@ Процедура ЗагрузитьСвязиАдресныхОбъектов(КодСубъектаРФ, КаталогФайлов, ЗагружатьОднимНабором) - Сжатие = Новый СжатиеДанных(9); ФайлЗагрузки = ФайлЗагрузкиСубъектаРФ(КодСубъектаРФ, КаталогФайлов, "LINK", "Links"); Если ФайлЗагрузки = Неопределено Тогда @@ -8303,7 +8297,6 @@ Если ФайлЗагрузки = Неопределено Тогда ВызватьИсключение НСтр("ru = 'Загрузка адресных сведений прервана. В загружаемых файлах не найден файл с адресными сведениями.'"); - Возврат; КонецЕсли; ТекущаяЗапись = ФайлЗагрузки.ФайлЧтения; @@ -8572,7 +8565,7 @@ Попытка БлокировкаДанных = Новый БлокировкаДанных; - ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.УровниСокращенийАдресныхСведений"); + БлокировкаДанных.Добавить("РегистрСведений.УровниСокращенийАдресныхСведений"); БлокировкаДанных.Заблокировать(); // Т.к. адресный классификатор не содержит сведений, то очищаем таблицу адресных сведений. @@ -9105,27 +9098,30 @@ // Возвращаемое значение: // ТаблицаЗначений: -// * ДомЧислом - Число +// * ПредставлениеДляСортировки - Строка // * Дом - Строка // * Корпус - Строка // * Строение - Строка // * Значение - см. ОписаниеДомаИСтроения // * Представление - Строка -// * Идентификатор - Строка +// * Идентификатор - УникальныйИдентификатор // Функция КонструкторСпискаДомов() Экспорт ВариантыДомов = Новый ТаблицаЗначений; - ВариантыДомов.Колонки.Добавить("ДомЧислом", ОбщегоНазначения.ОписаниеТипаЧисло(12)); + ВариантыДомов.Колонки.Добавить("ПредставлениеДляСортировки", ОбщегоНазначения.ОписаниеТипаСтрока(250)); ВариантыДомов.Колонки.Добавить("Дом", ОбщегоНазначения.ОписаниеТипаСтрока(20)); ВариантыДомов.Колонки.Добавить("Корпус", ОбщегоНазначения.ОписаниеТипаСтрока(20)); ВариантыДомов.Колонки.Добавить("Строение", ОбщегоНазначения.ОписаниеТипаСтрока(20)); - ВариантыДомов.Колонки.Добавить("Значение"); - ВариантыДомов.Колонки.Добавить("Представление"); - ВариантыДомов.Колонки.Добавить("Идентификатор"); + ВариантыДомов.Колонки.Добавить("Значение", Новый ОписаниеТипов("Структура")); + ВариантыДомов.Колонки.Добавить("Представление", ОбщегоНазначения.ОписаниеТипаСтрока(250)); + ВариантыДомов.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("УникальныйИдентификатор")); + + ВариантыДомов.Индексы.Добавить("ПредставлениеДляСортировки"); + ВариантыДомов.Индексы.Добавить("Представление"); Возврат ВариантыДомов; - + КонецФункции Функция СопоставлениеУровнейАдреса() diff --git a/SSL/src/CommonModules/Анкетирование/Module.bsl b/SSL/src/CommonModules/Анкетирование/Module.bsl index 7d8092c7a..daa03e259 100644 --- a/SSL/src/CommonModules/Анкетирование/Module.bsl +++ b/SSL/src/CommonModules/Анкетирование/Module.bsl @@ -24,10 +24,6 @@ КонецПроцедуры // См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей -// -// Параметры: -// НазначениеРолей - см. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей.НазначениеРолей -// Процедура ПриОпределенииНазначенияРолей(НазначениеРолей) Экспорт // СовместноДляПользователейИВнешнихПользователей. @@ -50,10 +46,6 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -361,7 +353,7 @@ // СтрокаРодитель - СтрокаДереваЗначений - родительская строка дерева значений: // * Наименование - Строка // -Процедура ДобавитьСтрокиДереваАнкеты(Выборка,СтрокаРодитель,УровеньРекурсии,Форма) +Процедура ДобавитьСтрокиДереваАнкеты(Выборка,СтрокаРодитель, УровеньРекурсии, Форма) Пока Выборка.Следующий() Цикл @@ -493,7 +485,7 @@ // ТекущиеДанныеДеревоРазделов - ДанныеФормыЭлементДерева - текущий раздел, для которого строится форма заполнения, где: // * Ссылка - СправочникСсылка.ВопросыШаблонаАнкеты // -Процедура ПостроениеФормыЗаполненияПоРазделу(Форма,ТекущиеДанныеДеревоРазделов) Экспорт +Процедура ПостроениеФормыЗаполненияПоРазделу(Форма, ТекущиеДанныеДеревоРазделов) Экспорт ДобавляемыеРеквизиты = Новый Массив; Форма.ТаблицаВопросовРаздела.Очистить(); @@ -549,9 +541,9 @@ // // Параметры: // ДобавляемыеРеквизиты - Массив - предназначен для аккумулирования создаваемых реквизитов формы. -// Форма - Управляемая форма - форма для которой формируется массив реквизитов. +// Форма - ФормаКлиентскогоПриложения - форма, для которой формируется массив реквизитов. // -Процедура СформироватьДобавляемыеРеквизитыДляРаздела(ДобавляемыеРеквизиты,Форма) +Процедура СформироватьДобавляемыеРеквизитыДляРаздела(ДобавляемыеРеквизиты, Форма) Для каждого Строка Из Форма.ТаблицаВопросовРаздела Цикл @@ -567,7 +559,7 @@ // СтрокаДерева - СтрокаДереваЗначений - строка дерева шаблона анкеты. // ДобавляемыеРеквизиты - Массив - предназначен для аккумулирования добавляемых реквизитов формы. // -Процедура ДобавитьРеквизитыДляВопроса(СтрокаДерева,ДобавляемыеРеквизиты,Форма) +Процедура ДобавитьРеквизитыДляВопроса(СтрокаДерева, ДобавляемыеРеквизиты, Форма) ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки); @@ -653,7 +645,7 @@ // СтрокаДерева - СтрокаДереваЗначений - строка дерева шаблона анкеты. // ДобавляемыеРеквизиты - Массив - предназначен для аккумулирования добавляемых реквизитов формы. // -Процедура ДобавитьРеквизитыТабличныйВопрос(СтрокаДерева,ДобавляемыеРеквизиты,Форма) +Процедура ДобавитьРеквизитыТабличныйВопрос(СтрокаДерева, ДобавляемыеРеквизиты, Форма) ТипТабличногоВопроса = СтрокаДерева.ТипТабличногоВопроса; ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки); @@ -737,10 +729,10 @@ // СтрокаДерева - СтрокаДереваЗначений - строка дерева шаблона анкеты. // ДобавляемыеРеквизиты - Массив - предназначен для аккумулирования добавляемых реквизитов формы. // -Процедура ДобавитьРеквизитыКомплексныйВопрос(СтрокаДерева,ДобавляемыеРеквизиты,Форма) +Процедура ДобавитьРеквизитыКомплексныйВопрос(СтрокаДерева, ДобавляемыеРеквизиты, Форма) ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаДерева.КлючСтроки); - Для каждого СтрокаКомплексногоВопроса Из СтрокаДерева.СоставКомплексногоВопроса Цикл + Для каждого СтрокаКомплексногоВопроса Из СтрокаДерева.СоставКомплексногоВопроса Цикл // СтрокаТабличнойЧасти: см. СправочникТабличнаяЧасть.ВопросыШаблонаАнкеты.СоставКомплексногоВопроса НайденныеСтроки = Форма.ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос",СтрокаКомплексногоВопроса.ЭлементарныйВопрос)); Если НайденныеСтроки.Количество() > 0 Тогда @@ -798,11 +790,8 @@ Процедура СформироватьЭлементыФормыДляРаздела(Форма) Для каждого СтрокаТаблицы Из Форма.ТаблицаВопросовРаздела Цикл - ДобавитьЭлементыФормыПоСтрокеТаблицы(СтрокаТаблицы,Форма.Элементы.ГруппаТелоАнкеты,Форма); - КонецЦикла; - СпозиционироватьсяНаПервомВопросеРаздела(Форма); КонецПроцедуры @@ -810,7 +799,7 @@ // Устанавливает фокус на первом вопросе открывшегося раздела. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - форма для которой выполняется действие. +// Форма - см. Документ.Анкета.Форма.ФормаДокумента // Процедура СпозиционироватьсяНаПервомВопросеРаздела(Форма) @@ -842,60 +831,50 @@ // Параметры: // СтрокаДерева - СтрокаДереваЗначений - строка дерева шаблона анкеты. // ЭлементГруппы - ГруппаФормы - группа формы, для которой будут подчиняться добавляемые реквизиты. -// УровеньРекурсии - Число - уровень рекурсии вызова процедуры. -// Форма - Управляемая форма - форма для которой добавляются элементы. +// Форма - ФормаКлиентскогоПриложения - форма, для которой добавляются элементы. // -// Возвращаемое значение: -// ГруппаФормы - группа созданных элементов. -// -Функция ДобавитьЭлементыФормыПоСтрокеТаблицы(СтрокаТаблицы,ЭлементГруппы,Форма) +Процедура ДобавитьЭлементыФормыПоСтрокеТаблицы(СтрокаТаблицы, ЭлементГруппы, Форма) Если СтрокаТаблицы.ТипСтроки = "Раздел" Тогда - Возврат ДобавитьЭлементыРаздел(СтрокаТаблицы,ЭлементГруппы,Форма); + ДобавитьЭлементыРаздел(СтрокаТаблицы, ЭлементГруппы, Форма); ИначеЕсли СтрокаТаблицы.ТипСтроки = "Вопрос" Тогда - ДобавитьЭлементыВопрос(СтрокаТаблицы,ЭлементГруппы,Форма); + ДобавитьЭлементыВопрос(СтрокаТаблицы, ЭлементГруппы, Форма); КонецЕсли; -КонецФункции +КонецПроцедуры // Добавляет элементы формы для разделов. // // Параметры: // СтрокаДерева - СтрокаДереваЗначений - строка дерева шаблона анкеты. // ЭлементГруппы - ГруппаФормы - группа формы, для которой будут подчиняться добавляемые реквизиты. -// УровеньРекурсии - Число - уровень рекурсии вызова процедуры. -// Форма - Управляемая форма - форма для которой добавляются элементы. +// Форма - ФормаКлиентскогоПриложения - форма, для которой добавляются элементы. // -// Возвращаемое значение: -// ГруппаФормы - группа созданных элементов. -// -Функция ДобавитьЭлементыРаздел(СтрокаТаблицы,ЭлементГруппы,Форма) +Процедура ДобавитьЭлементыРаздел(СтрокаТаблицы, ЭлементГруппы, Форма) - ИмяРаздела = "Раздел_" + СтрЗаменить(СтрокаТаблицы.КлючСтроки,"-","_"); + ИмяРаздела = "Раздел_" + СтрЗаменить(СтрокаТаблицы.КлючСтроки, "-", "_"); - ЭлементРаздел = Форма.Элементы.Добавить(ИмяРаздела,Тип("ГруппаФормы"),ЭлементГруппы); + ЭлементРаздел = Форма.Элементы.Добавить(ИмяРаздела, Тип("ГруппаФормы"), ЭлементГруппы); ЭлементРаздел.Вид = ВидГруппыФормы.ОбычнаяГруппа; ЭлементРаздел.Заголовок = ПолныйКодНаименование(СтрокаТаблицы); ЭлементРаздел.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; ЭлементРаздел.РастягиватьПоВертикали = Ложь; - Возврат ЭлементРаздел; - -КонецФункции +КонецПроцедуры // Добавляет элементы формы для вопросов. // // Параметры: // СтрокаТаблицы - ДанныеФормыЭлементКоллекции - строка таблицы вопросов раздела. // ЭлементГруппы - ГруппаФормы - группа формы, для которой будут подчиняться добавляемые реквизиты. -// Форма - ФормаКлиентскогоПриложения- - форма для которой добавляются элементы. +// Форма - ФормаКлиентскогоПриложения - форма для которой добавляются элементы. // -Процедура ДобавитьЭлементыВопрос(СтрокаТаблицы,ЭлементГруппа,Форма) +Процедура ДобавитьЭлементыВопрос(СтрокаТаблицы, ЭлементГруппа, Форма) ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаТаблицы.КлючСтроки); // Зададим элемент группы для вопроса. - ЭлементГруппаВопроса = Форма.Элементы.Добавить(ИмяВопроса + "_Группа" ,Тип("ГруппаФормы"),ЭлементГруппа); + ЭлементГруппаВопроса = Форма.Элементы.Добавить(ИмяВопроса + "_Группа", Тип("ГруппаФормы"), ЭлементГруппа); ЭлементГруппаВопроса.Вид = ВидГруппыФормы.ОбычнаяГруппа; ЭлементГруппаВопроса.ОтображатьЗаголовок = Ложь; ЭлементГруппаВопроса.Отображение = ОтображениеОбычнойГруппы.Нет; @@ -1126,9 +1105,9 @@ // Параметры: // СтрокаТаблицы - ДанныеФормыЭлементКоллекции - строка таблицы вопросов раздела. // ЭлементГруппы - ГруппаФормы - группа формы, для которой будут подчиняться добавляемые реквизиты. -// Форма - Управляемая форма. +// Форма - ФормаКлиентскогоПриложения // -Процедура ДобавитьЭлементыТабличныйВопрос(СтрокаТаблицы,ЭлементГруппа,Форма) +Процедура ДобавитьЭлементыТабличныйВопрос(СтрокаТаблицы, ЭлементГруппа, Форма) ТипТабличногоВопроса = СтрокаТаблицы.ТипТабличногоВопроса; ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаТаблицы.КлючСтроки); @@ -1311,10 +1290,10 @@ // Параметры: // Форма - ФормаКлиентскогоПриложения // -Процедура ДобавитьЭлементыКомплексныйВопрос(СтрокаТаблицы,ЭлементГруппа,Форма) +Процедура ДобавитьЭлементыКомплексныйВопрос(СтрокаТаблицы, ЭлементГруппа, Форма) ИмяВопроса = АнкетированиеКлиентСервер.ПолучитьИмяВопроса(СтрокаТаблицы.КлючСтроки); - Для каждого СтрокаКомплексногоВопроса Из СтрокаТаблицы.СоставКомплексногоВопроса Цикл + Для каждого СтрокаКомплексногоВопроса Из СтрокаТаблицы.СоставКомплексногоВопроса Цикл // СтрокаТабличнойЧасти: см. СправочникТабличнаяЧасть.ВопросыШаблонаАнкеты.СоставКомплексногоВопроса НайденныеСтроки = Форма.ВопросыПредставлениеТипы.НайтиСтроки(Новый Структура("Вопрос",СтрокаКомплексногоВопроса.ЭлементарныйВопрос)); Если НайденныеСтроки.Количество() > 0 Тогда @@ -1526,14 +1505,14 @@ // // Параметры: // ЭлементарныйВопрос - ПланВидовХарактеристикСсылка.ВопросыДляАнкетирования - вопрос для которого получаются ответы. -// Форма - Управляемая форма - форма из которой происходит вызов. +// Форма - ФормаКлиентскогоПриложения - форма, из которой происходит вызов. // // Возвращаемое значение: -// Массив - массив строк таблицы значений, в которых содержаться варианты ответов на вопрос. +// Массив - строки таблицы значений, в которых содержатся варианты ответов на вопрос. // -Функция ПолучитьВариантыОтветовНаВопрос(ЭлементарныйВопрос,Форма) Экспорт +Функция ПолучитьВариантыОтветовНаВопрос(ЭлементарныйВопрос, Форма) Экспорт - Возврат (Форма.ВариантыОтветовНаВопросы.НайтиСтроки(Новый Структура("Вопрос",ЭлементарныйВопрос))); + Возврат (Форма.ВариантыОтветовНаВопросы.НайтиСтроки(Новый Структура("Вопрос", ЭлементарныйВопрос))); КонецФункции @@ -1583,11 +1562,11 @@ // Удаляет ранее динамически сформированные элементы формы заполнения анкеты. // // Параметры: -// Форма - Управляемая форма - форма у которой удаляются элементы. -// УдаляемыеРеквизиты - массив - массив имен удаляемых реквизитов формы, на основании которого удаляются +// Форма - ФормаКлиентскогоПриложения - форма, у которой удаляются элементы. +// УдаляемыеРеквизиты - Массив из Строка - имена удаляемых реквизитов формы, на основании которых удаляются // элементы формы. // -Процедура УдалитьЭлементыФормыЗаполнения(Форма,УдаляемыеРеквизиты) +Процедура УдалитьЭлементыФормыЗаполнения(Форма, УдаляемыеРеквизиты) Для каждого УдаляемыйРеквизит Из УдаляемыеРеквизиты Цикл @@ -1610,10 +1589,10 @@ // Заполняет дерево разделов на форме. // // Параметры: -// Форма - Управляемая форма - форма для которой выполняется операция. +// Форма - ФормаКлиентскогоПриложения - форма, для которой выполняется операция. // ДеревоРазделов - ДанныеФормыДерево - дерево, для которого получаются данные. // -Процедура ЗаполнитьДеревоРазделов(Форма,ДеревоРазделов) Экспорт +Процедура ЗаполнитьДеревоРазделов(Форма, ДеревоРазделов) Экспорт ВыборкаРазделы = ПолучитьВыборкуРазделовПоШаблонуАнкеты(Форма.ШаблонАнкеты); ДобавитьСтрокиВДеревоРазделов(ВыборкаРазделы, ДеревоРазделов); @@ -2083,7 +2062,9 @@ // ШаблонАнкеты - СправочникСсылка.ШаблоныАнкет, по которому проводился опрос. // // ВозвращаемоеЗначение: -// Соответствие - в качестве ключа выступает ссылка на вопрос, в качестве значения его формулировка. +// Соответствие из КлючИЗначение: +// * Ключ - ссылка на вопрос +// * Значение - его формулировка // Функция ПолучитьПредставленияЭлементарныхВопросовТабличногоВопроса(ШаблонАнкеты) Экспорт diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиВызовСервера/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиВызовСервера/Module.bsl index 022946790..aa60a3072 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиВызовСервера/Module.bsl @@ -11,10 +11,10 @@ // Получить структуру с описанием формы выполнения задачи. // // Параметры: -// ЗадачаСсылка - ЗадачаСсылка.ЗадачаИсполнителя - задача. +// ЗадачаСсылка - ЗадачаСсылка.ЗадачаИсполнителя // // Возвращаемое значение: -// Структура - структуру с описанием формы выполнения задачи. +// Структура // Функция ФормаВыполненияЗадачи(Знач ЗадачаСсылка) Экспорт @@ -41,8 +41,8 @@ КонецФункции -// Проверяет, находится ли в ячейке отчета ссылка на задачу и в параметре. -// ЗначениеРасшифровки возвращает значение расшифровки. +// Проверяет, находится ли в ячейке отчета ссылка на задачу и в параметре +// ЗначениеРасшифровки возвращает значение расшифровки. // // Параметры: // Расшифровка - Строка - имя ячейки. @@ -51,7 +51,7 @@ // - Произвольный - значение расшифровки из ячейки. // // Возвращаемое значение: -// Булево -если Истина, то это задача исполнителю. +// Булево - Истина, если это задача исполнителю. // Функция ЭтоЗадачаИсполнителю(Знач Расшифровка, Знач ДанныеРасшифровкиОтчета, ЗначениеРасшифровки) Экспорт @@ -62,12 +62,12 @@ КонецФункции // Выполнить задачу ЗадачаСсылка, при необходимости выполнив обработчик. -// ОбработкаВыполненияПоУмолчанию модуля менеджера бизнес-процесса, -// к которому относится задача ЗадачаСсылка. +// ОбработкаВыполненияПоУмолчанию модуля менеджера бизнес-процесса, +// к которому относится задача ЗадачаСсылка. // // Параметры: -// ЗадачаСсылка - ЗадачаСсылка - ссылка на задачу. -// ДействиеПоУмолчанию - Булево -признак необходимости вызова процедуры +// ЗадачаСсылка - ЗадачаСсылка +// ДействиеПоУмолчанию - Булево - признак необходимости вызова процедуры // ОбработкаВыполненияПоУмолчанию у бизнес-процесса задачи. // Процедура ВыполнитьЗадачу(ЗадачаСсылка, ДействиеПоУмолчанию = Ложь) Экспорт @@ -98,29 +98,27 @@ КонецПроцедуры -// Перенаправить задачи МассивЗадач новому исполнителю, указанному в структуре. -// ИнфоОПеренаправлении. +// Перенаправить задачи МассивЗадач новому исполнителю, указанному в структуре ИнфоОПеренаправлении. // // Параметры: -// МассивЗадач - Массив - массив задач для перенаправления. -// ИнфоОПеренаправлении - Структура - содержит новые значения реквизитов адресации задачи. -// ТолькоПроверка - Булево - если Истина, то функция не будет выполнять -// физического перенаправления задач, а только -// проверит возможность перенаправления. -// МассивПеренаправленныхЗадач - Массив - массив перенаправленных задач. -// Может отличаться по составу элементов от -// массива МассивЗадач, если какие-то задачи -// не удалось перенаправить. +// ПеренаправляемыеЗадачи - Массив из ЗадачаСсылка.ЗадачаИсполнителя +// ИнфоОПеренаправлении - Структура - новые значения реквизитов адресации задачи. +// ТолькоПроверка - Булево - если Истина, то функция не будет выполнять +// физического перенаправления задач, а только +// проверит возможность перенаправления. +// ПеренаправленныеЗадачи - Массив из ЗадачаСсылка.ЗадачаИсполнителя - перенаправленные задачи. +// Может отличаться по составу элементов от массива +// ПеренаправляемыеЗадачи, если не все задачи удалось перенаправить. // // Возвращаемое значение: // Булево - Истина, если перенаправление выполнено успешно. // -Функция ПеренаправитьЗадачи(Знач МассивЗадач, Знач ИнфоОПеренаправлении, Знач ТолькоПроверка = Ложь, - МассивПеренаправленныхЗадач = Неопределено) Экспорт +Функция ПеренаправитьЗадачи(Знач ПеренаправляемыеЗадачи, Знач ИнфоОПеренаправлении, Знач ТолькоПроверка = Ложь, + ПеренаправленныеЗадачи = Неопределено) Экспорт Результат = Истина; - СведенияОЗадачах = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(МассивЗадач, "БизнесПроцесс,Выполнена"); + СведенияОЗадачах = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(ПеренаправляемыеЗадачи, "БизнесПроцесс,Выполнена"); НачатьТранзакцию(); Попытка Для Каждого Задача Из СведенияОЗадачах Цикл @@ -152,8 +150,8 @@ Для Каждого Задача Из СведенияОЗадачах Цикл - Если НЕ ЗначениеЗаполнено(МассивПеренаправленныхЗадач) Тогда - МассивПеренаправленныхЗадач = Новый Массив(); + Если НЕ ЗначениеЗаполнено(ПеренаправленныеЗадачи) Тогда + ПеренаправленныеЗадачи = Новый Массив(); КонецЕсли; // Не устанавливаем объектную блокировку на задачу Задача для того, чтобы @@ -168,7 +166,7 @@ НоваяЗадача.Записать(); УстановитьПривилегированныйРежим(Ложь); - МассивПеренаправленныхЗадач.Добавить(НоваяЗадача.Ссылка); + ПеренаправленныеЗадачи.Добавить(НоваяЗадача.Ссылка); ЗадачаОбъект.РезультатВыполнения = ИнфоОПеренаправлении.Комментарий; ЗадачаОбъект.Выполнена = Ложь; @@ -211,7 +209,7 @@ // Отмечает указанные бизнес-процессы как активные. // // Параметры: -// БизнесПроцессы - Массив - массив ссылок на бизнес-процессы. +// БизнесПроцессы - Массив из ОпределяемыйТип.БизнесПроцесс // Процедура СделатьАктивнымБизнесПроцессы(БизнесПроцессы) Экспорт @@ -234,7 +232,7 @@ // Отмечает указанный бизнес-процесс как активный. // // Параметры: -// БизнесПроцесс - БизнесПроцессСсылка - ссылка на бизнес-процесс. +// БизнесПроцесс - ОпределяемыйТип.БизнесПроцесс // Процедура СделатьАктивнымБизнесПроцесс(БизнесПроцесс) Экспорт @@ -274,7 +272,7 @@ // Отмечает указанные бизнес-процессы как остановленные. // // Параметры: -// БизнесПроцессы - Массив - массив ссылок на бизнес-процессы. +// БизнесПроцессы - Массив из ОпределяемыйТип.БизнесПроцесс // Процедура ОстановитьБизнесПроцессы(БизнесПроцессы) Экспорт @@ -298,7 +296,7 @@ // Отмечает указанный бизнес-процесс как остановленный. // // Параметры: -// БизнесПроцесс - БизнесПроцессСсылка - ссылка на бизнес-процесс. +// БизнесПроцесс - ОпределяемыйТип.БизнесПроцесс // Процедура ОстановитьБизнесПроцесс(БизнесПроцесс) Экспорт @@ -338,7 +336,7 @@ // Отмечает указанные задачи как принятые к исполнению. // // Параметры: -// Задачи - Массив - массив ссылок на задачи. +// Задачи - Массив из ЗадачаСсылка.ЗадачаИсполнителя // Процедура ПринятьЗадачиКИсполнению(Задачи) Экспорт @@ -383,7 +381,7 @@ // Отмечает указанные задачи как не принятые к исполнению. // // Параметры: -// Задачи - Массив - массив ссылок на задачи. +// Задачи - Массив из ЗадачаСсылка.ЗадачаИсполнителя // Процедура ОтменитьПринятиеЗадачКИсполнению(Задачи) Экспорт @@ -428,7 +426,7 @@ // Проверяет, является ли указанная задача ведущей. // // Параметры: -// ЗадачаСсылка - ЗадачаСсылка.ЗадачаИсполнителя - задача. +// ЗадачаСсылка - ЗадачаСсылка.ЗадачаИсполнителя // // Возвращаемое значение: // Булево - если Истина, то задача является ведущей. @@ -442,7 +440,7 @@ КонецФункции // Формирует список подбора для указания исполнителя в полях -// ввода составного типа (Пользователь и Роль). +// ввода составного типа (Пользователь и Роль). // // Параметры: // Текст - Строка - фрагмент текста для поиска возможных исполнителей. @@ -496,6 +494,9 @@ // Возвращает число невыполненных задач по указанным бизнес-процессам. // +// Возвращаемое значение: +// Число +// Функция КоличествоНевыполненныхЗадачБизнесПроцессов(БизнесПроцессы) Экспорт КоличествоЗадач = 0; @@ -516,6 +517,9 @@ // Возвращает число невыполненных задач по указанному бизнес-процессу. // +// Возвращаемое значение: +// Число +// Функция КоличествоНевыполненныхЗадачБизнесПроцесса(БизнесПроцесс) Экспорт Если ТипЗнч(БизнесПроцесс) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда @@ -542,7 +546,12 @@ // Помечает на удаление указанные бизнес-процессы. // +// Возвращаемое значение: +// БизнесПроцессСсылка +// Неопределено +// Функция ПометитьНаУдалениеБизнесПроцессы(ВыделенныеСтроки) Экспорт + Количество = 0; Для Каждого СтрокаТаблицы Из ВыделенныеСтроки Цикл БизнесПроцессСсылка = СтрокаТаблицы.Владелец; diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиент/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиент/Module.bsl index d5b823664..97f2735d2 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиент/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиент/Module.bsl @@ -11,11 +11,11 @@ //////////////////////////////////////////////////////////////////////////////// // Команды работы с бизнес-процессами. -// Отмечает указанный бизнес-процесс как остановленный. +// Отмечает указанные бизнес-процессы как остановленные. // // Параметры: -// ПараметрКоманды - Массив -// - БизнесПроцессСсылка - массив ссылок на бизнес процессы или ссылка на бизнес-процесс. +// ПараметрКоманды - Массив из ОпределяемыйТип.БизнесПроцесс +// - ОпределяемыйТип.БизнесПроцесс // Процедура Остановить(Знач ПараметрКоманды) Экспорт @@ -82,7 +82,7 @@ // Параметры: // Форма - ФормаКлиентскогоПриложения // - РасширениеУправляемойФормыДляОбъектов - форма бизнес-процесса, где: -// * Объект - БизнесПроцессОбъект - бизнес-процесс. +// * Объект - ОпределяемыйТип.БизнесПроцессОбъект - бизнес-процесс. // Процедура ОстановитьБизнесПроцессИзФормыОбъекта(Форма) Экспорт Форма.Объект.Состояние = ПредопределенноеЗначение("Перечисление.СостоянияБизнесПроцессов.Остановлен"); @@ -97,12 +97,12 @@ КонецПроцедуры -// Отмечает указанный бизнес-процесс как активный. +// Отмечает указанные бизнес-процессы как активные. // // Параметры: -// ПараметрКоманды - Массив +// ПараметрКоманды - Массив из ОпределяемыйТип.БизнесПроцесс // - СтрокаГруппировкиДинамическогоСписка -// - БизнесПроцессСсылка - бизнес процесс. +// - ОпределяемыйТип.БизнесПроцесс - бизнес процесс. // Процедура СделатьАктивным(Знач ПараметрКоманды) Экспорт @@ -152,12 +152,12 @@ КонецПроцедуры // Отмечает указанный бизнес-процесс как активный. -// Предназначена для вызова из формы бизнес-процесса. +// Предназначена для вызова из формы бизнес-процесса. // // Параметры: // Форма - ФормаКлиентскогоПриложения // - РасширениеУправляемойФормыДляОбъектов - форма бизнес-процесса, где: -// * Объект - БизнесПроцессОбъект - бизнес-процесс. +// * Объект - ОпределяемыйТип.БизнесПроцессОбъект - бизнес-процесс. // Процедура ПродолжитьБизнесПроцессИзФормыОбъекта(Форма) Экспорт @@ -176,7 +176,7 @@ // Отмечает указанные задачи как принятые к исполнению. // // Параметры: -// МассивЗадач - Массив - массив ссылок на задачи. +// МассивЗадач - Массив из ЗадачаСсылка.ЗадачаИсполнителя // Процедура ПринятьЗадачиКИсполнению(Знач МассивЗадач) Экспорт @@ -230,7 +230,7 @@ // Отмечает указанные задачи как не принятые к исполнению. // // Параметры: -// МассивЗадач - Массив - массив ссылок на задачи. +// МассивЗадач - Массив из ЗадачаСсылка.ЗадачаИсполнителя // Процедура ОтменитьПринятиеЗадачКИсполнению(Знач МассивЗадач) Экспорт @@ -306,9 +306,8 @@ // Открывает форму для настройки отложенного старта бизнес процесса. // // Параметры: -// БизнесПроцесс - - БизнесПроцессСсылка - процесс, для которого следует открыть форму настройки -// отложенного старта. -// СрокИсполнения - Дата - дата, указывающая на срок исполнения. +// БизнесПроцесс - ОпределяемыйТип.БизнесПроцесс +// СрокИсполнения - Дата // Процедура НастроитьОтложенныйСтарт(БизнесПроцесс, СрокИсполнения) Экспорт @@ -444,29 +443,29 @@ // Открыть форму для перенаправления одной или нескольких задач другому исполнителю. // // Параметры: -// МассивЗадач - Массив - список задач, которые необходимо перенаправить. +// ПеренаправляемыеЗадачи - Массив из ЗадачаСсылка.ЗадачаИсполнителя // ВладелецФорма - ФормаКлиентскогоПриложения - форма, которая должна быть владельцем для открываемой -// формы перенаправления задач. +// формы перенаправления задач. // -Процедура ПеренаправитьЗадачи(МассивЗадач, ВладелецФорма) Экспорт +Процедура ПеренаправитьЗадачи(ПеренаправляемыеЗадачи, ВладелецФорма) Экспорт - Если МассивЗадач = Неопределено Тогда + Если ПеренаправляемыеЗадачи = Неопределено Тогда ПоказатьПредупреждение(,НСтр("ru = 'Не выбраны задачи.'")); Возврат; КонецЕсли; ЗадачиМогутБытьПеренаправлены = БизнесПроцессыИЗадачиВызовСервера.ПеренаправитьЗадачи( - МассивЗадач, Неопределено, Истина); - Если НЕ ЗадачиМогутБытьПеренаправлены И МассивЗадач.Количество() = 1 Тогда + ПеренаправляемыеЗадачи, Неопределено, Истина); + Если НЕ ЗадачиМогутБытьПеренаправлены И ПеренаправляемыеЗадачи.Количество() = 1 Тогда ПоказатьПредупреждение(,НСтр("ru = 'Невозможно перенаправить уже выполненную задачу или направленную другому исполнителю.'")); Возврат; КонецЕсли; - Оповещение = Новый ОписаниеОповещения("ПеренаправитьЗадачиЗавершение", ЭтотОбъект, МассивЗадач); + Оповещение = Новый ОписаниеОповещения("ПеренаправитьЗадачиЗавершение", ЭтотОбъект, ПеренаправляемыеЗадачи); ОткрытьФорму("Задача.ЗадачаИсполнителя.Форма.ПеренаправитьЗадачи", Новый Структура("Задача,КоличествоЗадач,ЗаголовокФормы", - МассивЗадач[0], МассивЗадач.Количество(), - ?(МассивЗадач.Количество() > 1, НСтр("ru = 'Перенаправить задачи'"), + ПеренаправляемыеЗадачи[0], ПеренаправляемыеЗадачи.Количество(), + ?(ПеренаправляемыеЗадачи.Количество() > 1, НСтр("ru = 'Перенаправить задачи'"), НСтр("ru = 'Перенаправить задачу'"))), ВладелецФорма,,,,Оповещение); @@ -475,11 +474,8 @@ // Открыть форму с дополнительной информацией о задаче. // // Параметры: -// ЗадачаСсылка - ЗадачаСсылка - ссылка на задачу. +// ЗадачаСсылка - ЗадачаСсылка.ЗадачаИсполнителя // -// Возвращаемое значение: -// ФормаКлиентскогоПриложения - форма дополнительной задачи исполнителя. -// Процедура ОткрытьДопИнформациюОЗадаче(Знач ЗадачаСсылка) Экспорт ОткрытьФорму("Задача.ЗадачаИсполнителя.Форма.Дополнительно", @@ -546,13 +542,13 @@ // Открывает форму выбора исполнителя. // // Параметры: -// ЭлементИсполнитель - элемент формы, в которой выполняется выбора исполнителя, +// ЭлементИсполнитель - ПолеФормы - элемент формы, в которой выполняется выбора исполнителя, // который будет указан как владелец формы выбора исполнителя. -// РеквизитИсполнитель - выбранное ранее значение исполнителя. +// РеквизитИсполнитель - СправочникСсылка.Пользователи - выбранное ранее значение исполнителя. // Используется для установки текущей строки в форме выбора исполнителя. // ТолькоПростыеРоли - Булево - если Истина, то указывает что для выбора нужно // использовать только роли без объектов адресации. -// БезВнешнихРолей - Булево - если Истина, то указывает, что для выбора надо +// БезВнешнихРолей - Булево - если Истина, то указывает, что для выбора надо // использовать только роли, у которых не установлен признак ВнешняяРоль. // Процедура ВыбратьИсполнителя(ЭлементИсполнитель, РеквизитИсполнитель, ТолькоПростыеРоли = Ложь, БезВнешнихРолей = Ложь) Экспорт diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентПереопределяемый/Module.bsl index a0c663162..874630780 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентПереопределяемый/Module.bsl @@ -9,16 +9,16 @@ #Область ПрограммныйИнтерфейс // Вызывается при открытии формы выбор исполнителя. -// Позволяет переопределить стандартную форму выбора. +// Позволяет переопределить стандартную форму выбора. // // Параметры: // ЭлементИсполнитель - ЭлементФормы - элемент формы, в которой выбирается исполнитель. // РеквизитИсполнитель - СправочникСсылка.Пользователи - выбранный ранее исполнитель. // Используется для установки текущей строки в форме выбора исполнителя. // ТолькоПростыеРоли - Булево - если Истина, то указывает что для выбора нужно -// использовать только роли без объектов адресации. +// использовать только роли без объектов адресации. // БезВнешнихРолей - Булево - если Истина, то указывает, что для выбора надо использовать только роли, -// у которых не установлен признак ВнешняяРоль. +// у которых не установлен признак ВнешняяРоль. // СтандартнаяОбработка - Булево - если Ложь, то не требуется выводить стандартную форму выбора исполнителя. // Процедура ПриВыбореИсполнителя(ЭлементИсполнитель, РеквизитИсполнитель, ТолькоПростыеРоли, diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентСервер/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентСервер/Module.bsl index 896713848..2c716efe4 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиентСервер/Module.bsl @@ -50,7 +50,7 @@ Представление = НСтр("ru = 'Бизнес-процесс'"); #КонецЕсли - ПолученияПредставленияБизнесПроцесса(МенеджерОбъекта, Данные, Дата, Представление, СтандартнаяОбработка); + ПредставлениеБизнесПроцесса(МенеджерОбъекта, Данные, Дата, Представление, СтандартнаяОбработка); КонецПроцедуры @@ -71,7 +71,7 @@ // СтандартнаяОбработка - Булево - если установить Ложь, то стандартная обработка заполнения не будет // выполнена. // -Процедура ПолученияПредставленияБизнесПроцесса(МенеджерОбъекта, Данные, Дата, Представление, СтандартнаяОбработка) +Процедура ПредставлениеБизнесПроцесса(МенеджерОбъекта, Данные, Дата, Представление, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ШаблонПредставления = НСтр("ru = '%1 от %2 (%3)'"); diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиПереопределяемый/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиПереопределяемый/Module.bsl index 1988278be..c620daa5b 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиПереопределяемый/Module.bsl @@ -21,9 +21,9 @@ // у текущего пользователя. // // Параметры: -// БизнесПроцесс - БизнесПроцессСсылка - ссылка на бизнес-процесс. -// ЕстьПрава - Булево - если установить Ложь, то прав нет. -// СтандартнаяОбработка - Булево - если установить Ложь, то стандартная проверка прав не будет выполнена. +// БизнесПроцесс - ОпределяемыйТип.БизнесПроцессОбъект +// ЕстьПрава - Булево - если установить Ложь, то прав нет. +// СтандартнаяОбработка - Булево - если установить Ложь, то стандартная проверка прав не будет выполнена. // Процедура ПриПроверкеПравНаОстановкуБизнесПроцесса(БизнесПроцесс, ЕстьПрава, СтандартнаяОбработка) Экспорт @@ -32,7 +32,7 @@ // Вызывается для заполнения реквизита ГлавнаяЗадача из данных заполнения. // // Параметры: -// БизнесПроцессОбъект - БизнесПроцессОбъект - бизнес-процесс. +// БизнесПроцессОбъект - ОпределяемыйТип.БизнесПроцессОбъект // ДанныеЗаполнения - Произвольный - данные заполнения, которые передаются в обработчик заполнения. // СтандартнаяОбработка - Булево - если установить Ложь, то стандартная обработка заполнения не будет // выполнена. @@ -45,9 +45,9 @@ // // Параметры: // ИмяБизнесПроцесса - Строка - название бизнес-процесса. -// ЗадачаСсылка - ЗадачаСсылка.ЗадачаИсполнителя - задача. +// ЗадачаСсылка - ЗадачаСсылка.ЗадачаИсполнителя // ТочкаМаршрутаБизнесПроцесса - ТочкаМаршрутаБизнесПроцессаСсылка.Задание - действие. -// ПараметрыФормы - Структура - описание выполнения задачи со свойствами: +// ПараметрыФормы - Структура: // * ИмяФормы - имя формы, передаваемое в метод ОткрытьФорму. // * ПараметрыФормы - содержит параметры открываемой формы. // @@ -69,9 +69,9 @@ // - ОбработкаВыполненияПоУмолчанию. // // Параметры: -// ПодключенныеБизнесПроцессы - Соответствие - в качестве ключа указать полное имя объекта метаданных, -// подключенного к подсистеме "Бизнес-процессы и задачи". -// В качестве значения - пустую строку. +// ПодключенныеБизнесПроцессы - Соответствие из КлючИЗначение: +// * Ключ - Строка - полное имя объекта метаданных, подключенного к подсистеме; +// * Значение - Строка - пустая строка. // // Пример: // ПодключенныеБизнесПроцессы.Вставить(Метаданные.БизнесПроцессы.ЗаданиеСРолевойАдресацией.ПолноеИмя(), ""); @@ -102,7 +102,7 @@ // ролей исполнителей в прикладном решении. // // Параметры: -// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций. +// КодыЯзыков - Массив из Строка - список языков конфигурации. Актуально для мультиязычных конфигураций. // Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов // справочника РолиИсполнителей. // ТабличныеЧасти - Структура - описание табличных частей объекта, где: @@ -138,7 +138,7 @@ // Стандартный реквизит ТипЗначения следует заполнять в процедуре ПриНачальномЗаполненииЭлементаОбъектаАдресацииЗадачи. // // Параметры: -// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций. +// КодыЯзыков - Массив из Строка - список языков конфигурации. Актуально для мультиязычных конфигураций. // Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов объекта ПВХ ОбъектыАдресацииЗада. // ТабличныеЧасти - Структура - описание табличных частей объекта, где: // * Ключ - Строка - имя табличной части; diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl index 1cb3d1cf7..e1a853d95 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl @@ -77,8 +77,7 @@ // // Параметры: // СписокЗадачИлиЕгоУсловноеОформление - ДинамическийСписок -// - УсловноеОформлениеКомпоновкиДанных - условное -// оформление списка задач. +// - УсловноеОформлениеКомпоновкиДанных - условное оформление списка задач. // Процедура УстановитьОформлениеЗадач(Знач СписокЗадачИлиЕгоУсловноеОформление) Экспорт @@ -237,8 +236,8 @@ // либо указанного в параметрах РольИсполнителя, ОсновнойОбъектАдресации и ДополнительныйОбъектАдресации. // // Параметры: -// Исполнитель - ПользовательСсылка - исполнитель задачи. -// РольИсполнителя - Справочники.РолиИсполнителей - роль. +// Исполнитель - СправочникСсылка.Пользователи - исполнитель задачи. +// РольИсполнителя - СправочникСсылка.РолиИсполнителей - роль. // ОсновнойОбъектАдресации - ЛюбаяСсылка - ссылка на основной объект адресации. // ДополнительныйОбъектАдресации - ЛюбаяСсылка - ссылка на дополнительный объект адресации. // @@ -265,7 +264,7 @@ // Возвращает строковое представление роли РольИсполнителя и ее объектов адресации, если они заданы. // // Параметры: -// РольИсполнителя - Справочники.РолиИсполнителей - роль. +// РольИсполнителя - СправочникСсылка.РолиИсполнителей - роль. // ОсновнойОбъектАдресации - ЛюбаяСсылка - ссылка на основной объект адресации. // ДополнительныйОбъектАдресации - ЛюбаяСсылка - ссылка на дополнительный объект адресации. // @@ -297,7 +296,7 @@ // Помечает на удаление все задачи указанного бизнес-процесса (или снимает отметку). // // Параметры: -// БизнесПроцессСсылка - БизнесПроцессСсылка - бизнес-процесс, задачи которого нужно пометить на удаление. +// БизнесПроцессСсылка - ОпределяемыйТип.БизнесПроцесс - бизнес-процесс, задачи которого нужно пометить на удаление. // ПометкаУдаления - Булево - значение свойства ПометкаУдаления для задач. // Процедура УстановитьПометкуУдаленияЗадач(БизнесПроцессСсылка, ПометкаУдаления) Экспорт @@ -334,7 +333,7 @@ КонецПроцедуры // Установить формат отображения и редактирования поля формы типа Дата -// в зависимости от настроек подсистемы. +// в зависимости от настроек подсистемы. // // Параметры: // ПолеДаты - ПолеФормы - элемент управления формы, поле со значением типа Дата. @@ -359,7 +358,7 @@ // ДляИзменения - Булево - если Истина, то следует установить исключительную управляемую блокировку // на все бизнес-процессы указанной ведущей задачи. По умолчанию, Ложь. // Возвращаемое значение: -// Массив - ссылки на бизнес-процессы (БизнесПроцессСсылка.<Имя бизнес-процесса>). +// Массив из ОпределяемыйТип.БизнесПроцесс // Функция БизнесПроцессыВедущейЗадачи(ЗадачаСсылка, ДляИзменения = Ложь) Экспорт @@ -369,13 +368,13 @@ КонецФункции // Возвращает дату завершения указанного бизнес-процесса, -// полученную как максимальная дата исполнения задач бизнес-процесса. +// полученную как максимальная дата исполнения задач бизнес-процесса. // // Параметры: -// БизнесПроцессСсылка - БизнесПроцессСсылка - ссылка на бизнес- процесс. +// БизнесПроцессСсылка - ОпределяемыйТип.БизнесПроцесс // // Возвращаемое значение: -// Дата - дата завершения указанного бизнес-процесса. +// Дата // Функция ДатаЗавершенияБизнесПроцесса(БизнесПроцессСсылка) Экспорт @@ -406,12 +405,12 @@ // Возвращает массив подчиненных указанной задаче бизнес-процессов. // // Параметры: -// ЗадачаСсылка - ЗадачаСсылка.ЗадачаИсполнителя - задача. +// ЗадачаСсылка - ЗадачаСсылка.ЗадачаИсполнителя // ДляИзменения - Булево - если Истина, то следует установить исключительную управляемую блокировку // на все бизнес-процессы, подчиненные указанной задаче. По умолчанию, Ложь. // // Возвращаемое значение: -// Массив - ссылки на бизнес-процессы (БизнесПроцессСсылка.<Имя бизнес-процесса>). +// Массив из ОпределяемыйТип.БизнесПроцесс // Функция БизнесПроцессыГлавнойЗадачи(ЗадачаСсылка, ДляИзменения = Ложь) Экспорт @@ -441,14 +440,18 @@ Продолжить; КонецЕсли; - ТекстЗапроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "ВЫБРАТЬ РАЗРЕШЕННЫЕ - | %1.Ссылка КАК Ссылка + ТекстЗапроса = " + |ВЫБРАТЬ РАЗРЕШЕННЫЕ + | Таблица.Ссылка КАК Ссылка |ИЗ - | %2 КАК %1 + | #Таблица КАК Таблица |ГДЕ - | %1.ГлавнаяЗадача = &ГлавнаяЗадача", - МетаданныеБизнесПроцесса.Имя, МетаданныеБизнесПроцесса.ПолноеИмя()); + | Таблица.ГлавнаяЗадача = &ГлавнаяЗадача"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "#Таблица", + МетаданныеБизнесПроцесса.ПолноеИмя()); + Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("ГлавнаяЗадача", ЗадачаСсылка); @@ -467,7 +470,7 @@ // Проверяет у текущего пользователя наличие прав на изменение состояния бизнес-процесса. // // Параметры: -// БизнесПроцессОбъект - БизнесПроцессОбъект - объект бизнес-процесса. +// БизнесПроцессОбъект - ОпределяемыйТип.БизнесПроцессОбъект // Процедура ПроверитьПраваНаИзменениеСостоянияБизнесПроцесса(БизнесПроцессОбъект) Экспорт @@ -521,8 +524,8 @@ // Строки группировки динамического списка игнорируются. // // Параметры: -// БизнесПроцессы - Массив - ссылки на бизнес-процессы (БизнесПроцессСсылка.<Имя бизнес-процесса>), -// или одна ссылка на бизнес-процесс. +// БизнесПроцессы - ОпределяемыйТип.БизнесПроцесс +// - Массив из ОпределяемыйТип.БизнесПроцесс // Процедура ЗаблокироватьБизнесПроцессы(БизнесПроцессы) Экспорт @@ -553,8 +556,8 @@ // Строки группировки динамического списка игнорируются. // // Параметры: -// Задачи - Массив -// - ЗадачаСсылка.ЗадачаИсполнителя - ссылки на задачи, или одна ссылка. +// Задачи - Массив из ЗадачаСсылка.ЗадачаИсполнителя +// - ЗадачаСсылка.ЗадачаИсполнителя // Процедура ЗаблокироватьЗадачи(Задачи) Экспорт @@ -584,7 +587,7 @@ // См. также БизнесПроцессыИЗадачиПереопределяемый.ПриЗаполненииГлавнойЗадачиБизнесПроцесса. // // Параметры: -// БизнесПроцессОбъект - БизнесПроцессОбъект - бизнес-процесс, который требуется заполнить. +// БизнесПроцессОбъект - ОпределяемыйТип.БизнесПроцессОбъект // ДанныеЗаполнения - ЗадачаСсылка // - Произвольный - данные заполнения, которые передаются в обработчик заполнения. // @@ -615,7 +618,7 @@ // ДополнительныйОбъектАдресации - ЛюбаяСсылка - ссылка на дополнительный объект адресации. // // Возвращаемое значение: -// СправочникСсылка.ГруппыИсполнителейЗадач - найденная по роли группа исполнителей задач. +// СправочникСсылка.ГруппыИсполнителейЗадач // Функция ГруппаИсполнителейЗадач(РольИсполнителя, ОсновнойОбъектАдресации, ДополнительныйОбъектАдресации) Экспорт @@ -667,7 +670,7 @@ // Добавляет процесс в очередь для отложенного старта. // // Параметры: -// Процесс - БизнесПроцессСсылка - бизнес процесс для отложенного старта. +// Процесс - ОпределяемыйТип.БизнесПроцесс // ДатаСтарта - Дата - дата отложенного старта. // Процедура ДобавитьПроцессДляОтложенногоСтарта(Процесс, ДатаСтарта) Экспорт @@ -691,7 +694,7 @@ // Отключает отложенный старт процесса. // // Параметры: -// Процесс - БизнесПроцессСсылка -бизнес-процесс, у которого требуется отключить отложенный старт. +// Процесс - ОпределяемыйТип.БизнесПроцесс // Процедура ОтключитьОтложенныйСтартПроцесса(Процесс) Экспорт @@ -712,7 +715,7 @@ // Стартует отложенный бизнес-процесс, устанавливая признак старта. // // Параметры: -// - БизнесПроцесс - БизнесПроцессОбъект - процесс, который следует запустить отложенно. +// БизнесПроцесс - ОпределяемыйТип.БизнесПроцессОбъект // Процедура СтартоватьОтложенныйПроцесс(БизнесПроцесс) Экспорт @@ -734,17 +737,13 @@ Исключение ОтменитьТранзакцию(); - ОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - ТекстОшибки = НСтр("ru = 'Во время отложенного старта этого процесса произошла ошибка: |%1 |Попробуйте запустить процесс вручную, а не отложенно.'"); - Описание = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстОшибки, ОписаниеОшибки); - РегистрыСведений.ПроцессыДляЗапуска.ЗарегистрироватьОтменуСтарта(БизнесПроцесс, Описание); КонецПопытки; @@ -754,12 +753,12 @@ // Возвращает сведения о запуске для процесса. // // Параметры: -// Процесс - БизнесПроцессСсылка -бизнес процесс у которого требуется получить сведения о запуске. +// Процесс - ОпределяемыйТип.БизнесПроцесс // // Возвращаемое значение: -// - Неопределено - возвращается, если сведений нет. +// - Неопределено - если сведений нет. // - Структура: -// * БизнесПроцесс - БизнесПроцессСсылка. +// * БизнесПроцесс - ОпределяемыйТип.БизнесПроцесс. // * ДатаОтложенногоСтарта - ДатаИВремя. // * Состояние - ПеречислениеСсылка.СостоянияПроцессовДляЗапуска. // * ПричинаОтменыСтарта - Строка - причина отмены старта. @@ -802,10 +801,10 @@ // ожидает отложенного старта. В противном случае возвращает пустую дату. // // Параметры: -// БизнесПроцесс - БизнесПроцессСсылка -бизнес процесс для которого требуется получить дату отложенного старта. +// БизнесПроцесс - ОпределяемыйТип.БизнесПроцесс // // Возвращаемое значение: -// Дата - дата отложенного старта. +// Дата // Функция ДатаОтложенногоСтартаПроцесса(БизнесПроцесс) Экспорт @@ -913,7 +912,7 @@ // // Параметры: // Параметры - Структура - структура параметров отложенного обработчика обновления. -// БизнесПроцесс - ОбъектМетаданных.БизнесПроцесс - метаданные бизнес-процесса, наборы значений доступа +// БизнесПроцесс - ОбъектМетаданныхБизнесПроцесс - метаданные бизнес-процесса, наборы значений доступа // которого требуется обновить. // ИмяПроцедуры - Строка - имя процедуры отложенного обработчика обновления для журнала регистрации. // РазмерПорции - Число - количество объектов, обрабатываемых за один вызов. @@ -927,9 +926,9 @@ | КОЛИЧЕСТВО(ТаблицаСНаборамиЗначенийДоступа.Ссылка) КАК Количество, | МАКСИМУМ(ТаблицаСНаборамиЗначенийДоступа.Дата) КАК Дата |ИЗ - | %1 КАК ТаблицаСНаборамиЗначенийДоступа"; + | #Таблица КАК ТаблицаСНаборамиЗначенийДоступа"; - Запрос.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Запрос.Текст, БизнесПроцесс.ПолноеИмя()); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "#Таблица", БизнесПроцесс.ПолноеИмя()); РезультатЗапроса = Запрос.Выполнить().Выгрузить(); Параметры.ПрогрессВыполнения.ВсегоОбъектов = РезультатЗапроса[0].Количество; @@ -949,18 +948,19 @@ Запрос = Новый Запрос; Запрос.Текст = - "ВЫБРАТЬ ПЕРВЫЕ %1 + "ВЫБРАТЬ ПЕРВЫЕ 1 | ТаблицаСНаборамиЗначенийДоступа.Ссылка КАК Ссылка, | ТаблицаСНаборамиЗначенийДоступа.Дата КАК Дата |ИЗ - | %2 КАК ТаблицаСНаборамиЗначенийДоступа + | #Таблица КАК ТаблицаСНаборамиЗначенийДоступа |ГДЕ ТаблицаСНаборамиЗначенийДоступа.Дата <= &НачальнаяДатаКОбработке | И ТаблицаСНаборамиЗначенийДоступа.Ссылка > &НачальнаяСсылкаКОбработке |УПОРЯДОЧИТЬ ПО | Дата УБЫВ, | Ссылка"; - Запрос.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Запрос.Текст, Формат(РазмерПорции, "ЧГ=0"), БизнесПроцесс.ПолноеИмя()); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "ВЫБРАТЬ ПЕРВЫЕ 1", "ВЫБРАТЬ ПЕРВЫЕ " + Формат(РазмерПорции, "ЧГ=0")); //@Query-part-1, @Query-part-2 + Запрос.Текст = СтрЗаменить(Запрос.Текст, "#Таблица", БизнесПроцесс.ПолноеИмя()); Запрос.УстановитьПараметр("НачальнаяДатаКОбработке", Параметры.НачальнаяДатаКОбработке); Запрос.УстановитьПараметр("НачальнаяСсылкаКОбработке", Параметры.НачальнаяСсылкаКОбработке); @@ -997,7 +997,7 @@ // Для вызова из отложенных обработчиков обновления при изменении логики формирования наборов значений доступа. // // Параметры: -// Параметры - Структура - структура параметров отложенного обработчика обновления. +// Параметры - Структура - параметры отложенного обработчика обновления. // Процедура ЗавершитьОбновлениеПорцииНаборовЗначенийДоступа(Параметры) Экспорт @@ -1030,10 +1030,6 @@ // Обработчики событий подсистем конфигурации. // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -1123,9 +1119,7 @@ Объекты.Вставить(Метаданные.Справочники.РолиИсполнителей.ПолноеИмя(), "РеквизитыНеРедактируемыеВГрупповойОбработке"); КонецПроцедуры -// Параметры: -// Настройки - см. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий.Настройки -// +// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт Настройка = Настройки.Добавить(); Настройка.РегламентноеЗадание = Метаданные.РегламентныеЗадания.МониторингЗадач; @@ -1144,9 +1138,7 @@ КонецПроцедуры -// Параметры: -// ИсключенияПоискаСсылок - см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.ИсключенияПоискаСсылок -// +// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.ИсполнителиЗадач.ПолноеИмя()); @@ -1154,9 +1146,8 @@ КонецПроцедуры -// Параметры: -// ШаблоныЗаданий - см. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.ШаблоныЗаданий -// +// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов +// Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт ШаблоныЗаданий.Добавить("МониторингЗадач"); @@ -1175,9 +1166,7 @@ КонецПроцедуры -// Параметры: -// ЗависимостиПрав - см. УправлениеДоступомПереопределяемый.ПриЗаполненииЗависимостейПравДоступа.ЗависимостиПрав -// +// См. УправлениеДоступомПереопределяемый.ПриЗаполненииЗависимостейПравДоступа. Процедура ПриЗаполненииЗависимостейПравДоступа(ЗависимостиПрав) Экспорт // Задача исполнителя может быть изменена, когда бизнес-процесс доступен только для чтения, @@ -1238,10 +1227,8 @@ МодульВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.ПросроченныеЗадачи); КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. -// // Параметры: -// ТекущиеДела - см. ТекущиеДелаСлужебный.ТекущиеДела +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт @@ -1319,10 +1306,10 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыПереопределяемый.ПриОпределенииНастроек -// +// // Параметры: -// Объекты - Массив -// +// Объекты - Массив из ОбъектМетаданных +// Процедура ПриОпределенииОбъектовСНачальнымЗаполнением(Объекты) Экспорт Объекты.Добавить(Метаданные.Справочники.РолиИсполнителей); @@ -1330,9 +1317,7 @@ КонецПроцедуры -// Параметры: -// Объекты - см. СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании.Объекты -// +// См. СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании. Процедура ПриОпределенииОбъектовСКомандамиСозданияНаОсновании(Объекты) Экспорт Объекты.Добавить(Метаданные.БизнесПроцессы.Задание); @@ -1822,9 +1807,6 @@ //////////////////////////////////////////////////////////////////////////////// // Вспомогательные процедуры и функции. -// Выбрать список ролей, которые могут быть назначены в ОсновнойОбъектАдресации, -// и посчитать список назначений. -// Функция ВыбратьРолиСКоличествомИсполнителей(ОсновнойОбъектАдресации) Экспорт Если ОсновнойОбъектАдресации <> Неопределено Тогда ТекстЗапроса = @@ -1891,7 +1873,7 @@ // Есть ли хотя бы один исполнитель, назначенный на указанную роль. // -// Результат: +// Возвращаемое значение: // Булево // Функция ЕстьИсполнителиРоли(РольСсылка, ОсновнойОбъектАдресации = Неопределено, @@ -1931,8 +1913,6 @@ КонецФункции -// Выбрать одного любого исполнителя, назначенного на РольИсполнителя в ОсновнойОбъектАдресации. -// Функция ВыбратьИсполнителя(ОсновнойОбъектАдресации, РольИсполнителя) Экспорт Запрос = Новый Запрос( @@ -1952,7 +1932,6 @@ Функция ВыбратьБизнесПроцессыВедущейЗадачи(ЗадачаСсылка, ДляИзменения = Ложь) Экспорт - Итерация = 1; ТекстЗапроса = ""; Для Каждого МетаданныеБизнесПроцесса Из Метаданные.БизнесПроцессы Цикл @@ -1970,28 +1949,28 @@ |"; КонецЕсли; - ФрагментЗапроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "ВЫБРАТЬ %3 - | %1.Ссылка КАК Ссылка + + ФрагментЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | Таблица.Ссылка КАК Ссылка |ИЗ - | %2 КАК %1 + | &ИмяТаблицы КАК Таблица |ГДЕ - | %1.ВедущаяЗадача = &ВедущаяЗадача", - МетаданныеБизнесПроцесса.Имя, МетаданныеБизнесПроцесса.ПолноеИмя(), - ?(Итерация = 1, "РАЗРЕШЕННЫЕ", "")); + | Таблица.ВедущаяЗадача = &ВедущаяЗадача"; + Если НЕ ПустаяСтрока(ТекстЗапроса) Тогда + ФрагментЗапроса = СтрЗаменить(ФрагментЗапроса, "ВЫБРАТЬ РАЗРЕШЕННЫЕ", "ВЫБРАТЬ"); //@Query-part-1, @Query-part-2 + КонецЕсли; + ФрагментЗапроса = СтрЗаменить(ФрагментЗапроса, "&ИмяТаблицы", МетаданныеБизнесПроцесса.ПолноеИмя()); + ТекстЗапроса = ТекстЗапроса + ФрагментЗапроса; - Итерация = Итерация + 1; - КонецЦикла; + КонецЦикла; Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("ВедущаяЗадача", ЗадачаСсылка); Результат = Запрос.Выполнить(); Возврат Результат; - -КонецФункции + +КонецФункции -// Вид события журнала регистрации для событий данной подсистемы. -// Функция СобытиеЖурналаРегистрации() Экспорт Возврат НСтр("ru = 'Бизнес-процессы и задачи'", ОбщегоНазначения.КодОсновногоЯзыка()); КонецФункции @@ -2001,8 +1980,8 @@ // бизнес-процесса. // // Параметры: -// БизнесПроцессОбъект - БизнесПроцессОбъект -// СтароеСостояние - ПеречислениеСсылка.СостоянияБизнесПроцессов +// БизнесПроцессОбъект - ОпределяемыйТип.БизнесПроцессОбъект +// СтароеСостояние - ПеречислениеСсылка.СостоянияБизнесПроцессов // Процедура ПриИзмененииСостоянияБизнесПроцесса(БизнесПроцессОбъект, СтароеСостояние) Экспорт @@ -2129,7 +2108,7 @@ // регистра сведений ИсполнителиЗадач. // // Возвращаемое значение: -// Массив - с элементами типа СправочникСсылка.ГруппыИсполнителейЗадач. +// Массив из СправочникСсылка.ГруппыИсполнителейЗадач. // Функция ГруппыИсполнителейЗадач(НовыеИсполнителиЗадач) Экспорт @@ -2234,10 +2213,10 @@ // как остановленный или активный. // // Параметры: -// БизнесПроцесс - бизнес-процесс ссылка. +// БизнесПроцесс - ОпределяемыйТип.БизнесПроцессОбъект // -// ВозвращаемоеЗначение -// Если права есть - Истина, иначе Ложь. +// Возвращаемое значение: +// Булево - Истина, если права есть. // Функция ЕстьПраваНаОстановкуБизнесПроцесса(БизнесПроцесс) @@ -2261,7 +2240,7 @@ КонецФункции // Параметры: -// Список - ДинамическийСписок +// Список - ДинамическийСписок // Процедура УстановитьПараметрыСпискаМоихЗадач(Список) Экспорт diff --git a/SSL/src/CommonModules/БлокировкаРаботыСВнешнимиРесурсами/Module.bsl b/SSL/src/CommonModules/БлокировкаРаботыСВнешнимиРесурсами/Module.bsl index d22e37184..318cb7828 100644 --- a/SSL/src/CommonModules/БлокировкаРаботыСВнешнимиРесурсами/Module.bsl +++ b/SSL/src/CommonModules/БлокировкаРаботыСВнешнимиРесурсами/Module.bsl @@ -356,85 +356,40 @@ Процедура ОтключитьРегламентноеЗадание(ПараметрыБлокировки, РегламентноеЗадание) - Если ОбщегоНазначения.РазделениеВключено() Тогда - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ОбластьДанных = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); - ИмяМетода = РегламентноеЗадание.ИмяМетода; - - ПараметрыЗадания = Новый Структура; - ПараметрыЗадания.Вставить("ОбластьДанных", ОбластьДанных); - ПараметрыЗадания.Вставить("ИмяМетода", ИмяМетода); - ПараметрыЗадания.Вставить("Использование", Истина); - МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); - СписокЗаданий = МодульОчередьЗаданий.ПолучитьЗадания(ПараметрыЗадания); - - ПараметрыЗадания = Новый Структура("Использование", Ложь); - Для Каждого Задание Из СписокЗаданий Цикл - МодульОчередьЗаданий.ИзменитьЗадание(Задание.Идентификатор, ПараметрыЗадания); - ПараметрыБлокировки.ОтключенныеЗадания.Добавить(Задание.Идентификатор); - КонецЦикла; - КонецЕсли; - - Иначе - - Отбор = Новый Структура; - Отбор.Вставить("Метаданные", РегламентноеЗадание); - Отбор.Вставить("Использование", Истина); - МассивЗаданий = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Отбор); // Массив из РегламентноеЗадание - - Для Каждого Задание Из МассивЗаданий Цикл - - Задание.Использование = Ложь; - Задание.Записать(); - - ПараметрыБлокировки.ОтключенныеЗадания.Добавить(Задание.УникальныйИдентификатор); - - КонецЦикла; - - КонецЕсли; + Отбор = Новый Структура; + Отбор.Вставить("Метаданные", РегламентноеЗадание); + Отбор.Вставить("Использование", Истина); + + НайденныеЗадания = РегламентныеЗаданияСервер.НайтиЗадания(Отбор); + + Для Каждого Задание Из НайденныеЗадания Цикл + РегламентныеЗаданияСервер.ИзменитьЗадание(Задание, Новый Структура("Использование", Ложь)); + ПараметрыБлокировки.ОтключенныеЗадания.Добавить(Задание.УникальныйИдентификатор); + КонецЦикла; КонецПроцедуры Процедура ВключитьОтключенныеРегламентныеЗадания(ПараметрыБлокировки) + РазделениеВключено = ОбщегоНазначения.РазделениеВключено(); + Для Каждого ИдентификаторЗадания Из ПараметрыБлокировки.ОтключенныеЗадания Цикл - Если ОбщегоНазначения.РазделениеВключено() Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда - Если ТипЗнч(ИдентификаторЗадания) = Тип("УникальныйИдентификатор") Тогда - Продолжить; - КонецЕсли; - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - - ПараметрыЗадания = Новый Структура; - ПараметрыЗадания.Вставить("ОбластьДанных", МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); - ПараметрыЗадания.Вставить("Идентификатор", ИдентификаторЗадания); - ПараметрыЗадания.Вставить("Использование", Ложь); - МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); - СписокЗаданий = МодульОчередьЗаданий.ПолучитьЗадания(ПараметрыЗадания); - - ПараметрыЗадания = Новый Структура("Использование", Истина); - Для Каждого Задание Из СписокЗаданий Цикл - МодульОчередьЗаданий.ИзменитьЗадание(Задание.Идентификатор, ПараметрыЗадания); - КонецЦикла; - КонецЕсли; - Иначе - Если ТипЗнч(ИдентификаторЗадания) <> Тип("УникальныйИдентификатор") Тогда - Продолжить; - КонецЕсли; - - Отбор = Новый Структура("УникальныйИдентификатор"); - Отбор.УникальныйИдентификатор = ИдентификаторЗадания; - НайденныеЗадания = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Отбор); - - Для Каждого ОтключенноеЗадание Из НайденныеЗадания Цикл - ОтключенноеЗадание.Использование = Истина; - ОтключенноеЗадание.Записать(); - КонецЦикла; + Если РазделениеВключено = (ТипЗнч(ИдентификаторЗадания) = Тип("УникальныйИдентификатор")) Тогда + Продолжить; КонецЕсли; + Отбор = Новый Структура; + Отбор.Вставить("УникальныйИдентификатор", ИдентификаторЗадания); + Отбор.Вставить("Использование", Ложь); + + НайденныеЗадания = РегламентныеЗаданияСервер.НайтиЗадания(Отбор); + + Для Каждого Задание Из НайденныеЗадания Цикл + РегламентныеЗаданияСервер.ИзменитьЗадание(Задание, Новый Структура("Использование", Истина)); + ПараметрыБлокировки.ОтключенныеЗадания.Добавить(Задание.УникальныйИдентификатор); + КонецЦикла; + КонецЦикла; КонецПроцедуры diff --git a/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl index 0b860d4e3..f2f18f925 100644 --- a/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl +++ b/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl @@ -149,7 +149,7 @@ // Для вызова из процедуры ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. // // Параметры: -// Настройки - см. ВариантыОтчетов.КоллекцияПредопределенныхВариантовОтчетов +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. // ОтчетМетаданные - ОбъектМетаданных - метаданные отчета, в модуле менеджера которого расположена // экспортная процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета). // @@ -172,7 +172,7 @@ // в ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. // // Параметры: -// Настройки - см. КоллекцияПредопределенныхВариантовОтчетов +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. // Отчет - ОбъектМетаданныхОтчет // - СправочникСсылка.ИдентификаторыОбъектовМетаданных - метаданные или ссылка отчета. // @@ -180,12 +180,12 @@ // СтрокаДереваЗначений - настройки отчета и настройки "по умолчанию" для вариантов этого отчета, где: // * Включен - Булево - если Ложь, то вариант отчета не регистрируется в подсистеме. // * ВидимостьПоУмолчанию - Булево - если Ложь, то вариант отчета по умолчанию скрыт в панели отчетов. -// * Размещение - Соответствие - настройки размещения варианта отчета в разделах, где: +// * Размещение - Соответствие из КлючИЗначение - настройки размещения варианта отчета в разделах, где: // ** Ключ - ОбъектМетаданных - подсистема, в которой размещается отчет или вариант отчета. // ** Значение - Строка - настройки размещения в подсистеме (группе), с вариантами значений: -// *** "" - вывод отчета в подсистеме без специального выделение. -// *** "Важный" - вывод отчета в подсистеме с выделением жирным шрифтом. -// *** "СмТакже" - вывод отчета в группе "См. также". +// "" - вывод отчета в подсистеме без специального выделение. +// "Важный" - вывод отчета в подсистеме с выделением жирным шрифтом. +// "СмТакже" - вывод отчета в группе "См. также". // * ФункциональныеОпции - Массив из Строка - имена функциональных опций варианта отчета. // * НастройкиДляПоиска - Структура - дополнительные настройки для поиска этого варианта отчета, где: // ** НаименованияПолей - Строка - имена полей варианта отчета. @@ -247,7 +247,7 @@ // Для использования в ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. // // Параметры: -// Настройки - см. ВариантыОтчетов.КоллекцияПредопределенныхВариантовОтчетов +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. // Отчет - СтрокаДерева // - ОбъектМетаданных - описание настроек, метаданные или ссылка отчета. // КлючВарианта - Строка - имя варианта отчета как оно задано в схеме компоновки данных. @@ -258,12 +258,12 @@ // * ВидимостьПоУмолчанию - Булево - если Ложь, то вариант отчета по умолчанию скрыт в панели отчетов. // * Наименование - Строка - наименование варианта отчета. // * Описание - Строка - подсказка к варианту отчета. -// * Размещение - Соответствие - настройки размещения варианта отчета в разделах, где: +// * Размещение - Соответствие из КлючИЗначение - настройки размещения варианта отчета в разделах, где: // ** Ключ - ОбъектМетаданных - подсистема, в которой размещается отчет или вариант отчета. // ** Значение - Строка - настройки размещения в подсистеме (группе), с вариантами значений: -// *** "" - вывод варианта в подсистеме без специального выделение. -// *** "Важный" - вывод варианта в подсистеме с выделением жирным шрифтом. -// *** "СмТакже" - вывод варианта в группе "См. также". +// "" - вывод варианта в подсистеме без специального выделение. +// "Важный" - вывод варианта в подсистеме с выделением жирным шрифтом. +// "СмТакже" - вывод варианта в группе "См. также". // * ФункциональныеОпции - Массив из Строка - имена функциональных опций варианта отчета. // * НастройкиДляПоиска - Структура - дополнительные настройки для поиска этого варианта отчета, где: // ** НаименованияПолей - Строка - имена полей варианта отчета. @@ -291,8 +291,9 @@ // // Код процедуры. // КонецПроцедуры // -// * Отчет - <см. Справочники.ВариантыОтчетов.Реквизиты.Отчет> - полное имя или ссылка на отчет. -// * Метаданные - ОбъектМетаданных: Отчет - метаданные отчета. +// * Отчет - <см. Справочники.ВариантыОтчетов.Реквизиты.Отчет> - полное имя или ссылка на отчет. +// * Описание - Строка +// * Метаданные - ОбъектМетаданныхОтчет - метаданные отчета. // * КлючВарианта - Строка - имя варианта отчета. // * ОписаниеПолучено - Булево - флажок что описание строки уже получено. // Описание получается методом ОписаниеВарианта(). @@ -334,7 +335,7 @@ // и из процедуры НастроитьВариантыОтчета модуля объекта отчета. // // Параметры: -// Настройки - см. ВариантыОтчетов.КоллекцияПредопределенныхВариантовОтчетов +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. // ОтчетИлиПодсистема - СтрокаДереваЗначений // - ОбъектМетаданныхОтчет // - ОбъектМетаданныхПодсистема - описание отчета или @@ -587,7 +588,7 @@ // - Строка - полное имя варианта отчета, для которого требуется сбросить настройки. // Заполняется в формате "<ИмяОтчета>/<ИмяВарианта>". // Если передать "*", то будут сброшены настройки всех отчетов конфигурации. -// ТипыНастроек - Структура - необязательный. Типы пользовательских настроек, которые требуется сбросить. +// ТипыНастроек - Структура - типы пользовательских настроек, которые требуется сбросить. // Ключи структуры тоже являются необязательными. Значение по умолчанию указано в скобках: // * ЭлементОтбора - Булево - (Ложь) сбрасывать настройку "ЭлементОтбораКомпоновкиДанных". // * ЗначениеПараметраНастроек - Булево - (Ложь) сбрасывать настройку "ЗначениеПараметраНастроекКомпоновкиДанных". @@ -1015,7 +1016,7 @@ // * СсылкаОтчета - Произвольный - ссылка отчета. // * ПолноеИмя - Строка - полное имя отчета. // * Метаданные - ОбъектМетаданных - метаданные отчета. -// * Объект - ОтчетОбъект.<Имя отчета> +// * Объект - ОтчетОбъект // - ВнешнийОтчет - объект отчета: // ** КомпоновщикНастроек - КомпоновщикНастроекКомпоновкиДанных - настройки отчета. // ** СхемаКомпоновкиДанных - СхемаКомпоновкиДанных - схема отчета. @@ -1272,10 +1273,20 @@ ПредопределенныеВарианты.Удалить(ВариантОтчета.КлючВарианта); ВариантОбъект = ВариантОтчета.Ссылка.ПолучитьОбъект(); - МультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ВариантОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриЧтенииПредставленийНаСервере(ВариантОбъект); + КонецЕсли; + ВариантОбъект.Наименование = Представление; ВариантОбъект.ДополнительныеСвойства.Вставить("ОтчетОбъект", ВнешнийОбъект); - МультиязычностьСервер.ПередЗаписьюНаСервере(ВариантОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ВариантОбъект); + КонецЕсли; + ВариантОбъект.Записать(); КонецЕсли; КонецЦикла; @@ -1290,7 +1301,12 @@ ВариантОбъект.Наименование = Представление.Значение; ВариантОбъект.Пользовательский = Ложь; ВариантОбъект.ДополнительныеСвойства.Вставить("ОтчетОбъект", ВнешнийОбъект); - МультиязычностьСервер.ПередЗаписьюНаСервере(ВариантОбъект); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ВариантОбъект); + КонецЕсли; + ВариантОбъект.Записать(); КонецЦикла; КонецЕсли; @@ -1873,7 +1889,7 @@ // * ТипОтчета - Перечисления.ТипыОтчетов // * ОтчетИмя - Строка - например, "ДинамикаИзмененийФайлов". // * ОтчетПолноеИмя - Строка - например, "Отчет.ДинамикаИзмененийФайлов". -// * ОтчетМетаданные - ОбъектМетаданных: Отчет +// * ОтчетМетаданные - ОбъектМетаданныхОтчет // * ТекстОшибки - Строка - текст ошибки. // Функция ИнформацияОбОтчете(Знач ОтчетПолноеИмя, Знач ВызыватьИсключение = Ложь) Экспорт @@ -1984,7 +2000,7 @@ //////////////////////////////////////////////////////////////////////////////// // Для отчета по внедрению. -Функция ПредопределенныеВариантыОтчетов(ТипОтчетов = "Внутренний") Экспорт +Функция ПредопределенныеВариантыОтчетов(ТипОтчетов = "Внутренний", ПодключенныеКХранилищу = Истина) Экспорт Результат = КоллекцияПредопределенныхВариантовОтчетов(); ГруппироватьПоОтчетам = ГлобальныеНастройки().ВыводитьОтчетыВместоВариантов; @@ -2004,7 +2020,8 @@ Продолжить; КонецЕсли; - Если Не ОтчетПодключенКХранилищу(ОтчетМетаданные, КэшФлажкаХранилища) Тогда + Если ПодключенныеКХранилищу + И Не ОтчетПодключенКХранилищу(ОтчетМетаданные, КэшФлажкаХранилища) Тогда Продолжить; КонецЕсли; @@ -2098,11 +2115,13 @@ // Обработка отчетов, включенных в состав подсистемы ПодключаемыеОтчетыИОбработки. Если ЕстьПодключаемыеКоманды И СоставПодключаемыхОтчетовИОбработок.Содержит(ОтчетМетаданные) Тогда НастройкиПоставщика = МодульПодключаемыеКоманды.НастройкиПодключаемогоОбъекта(ОтчетМетаданные.ПолноеИмя()); - Если НастройкиПоставщика.ОпределитьНастройкиФормы Тогда - ОписаниеОтчета.ОпределитьНастройкиФормы = Истина; - КонецЕсли; - Если НастройкиПоставщика.НастроитьВариантыОтчета Тогда - НастроитьОтчетВМодулеМенеджера(Результат, ОтчетМетаданные); + Если НастройкиПоставщика <> Неопределено Тогда + Если НастройкиПоставщика.ОпределитьНастройкиФормы Тогда + ОписаниеОтчета.ОпределитьНастройкиФормы = Истина; + КонецЕсли; + Если НастройкиПоставщика.НастроитьВариантыОтчета Тогда + НастроитьОтчетВМодулеМенеджера(Результат, ОтчетМетаданные); + КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; @@ -2229,11 +2248,7 @@ //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. -// Добавляет в список процедуры-обработчики обновления данных ИБ. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// +// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт //////////////////////////////////////////////////////////////////////////////// @@ -2338,11 +2353,7 @@ КонецПроцедуры -// Определяет объекты метаданных и отдельные реквизиты, которые исключаются из результатов поиска ссылок. -// -// Параметры: -// ИсключенияПоискаСсылок - Массив - см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. -// +// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт ИсключенияПоискаСсылок.Добавить(Метаданные.Справочники.ВариантыОтчетов.ТабличныеЧасти.Размещение.Реквизиты.Подсистема); @@ -2361,13 +2372,7 @@ КонецПроцедуры -// Заполняет массив типов неразделенных данных, для которых поддерживается сопоставление ссылок -// при загрузке данных в другую информационную базу. -// см. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке. -// -// Параметры: -// Типы - Массив Из ОбъектМетаданных - массив типов ОбъектМетаданных. -// +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке. Процедура ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы) Экспорт Типы.Добавить(Метаданные.Справочники.ПредопределенныеВариантыОтчетов); @@ -2379,12 +2384,7 @@ Параметры.Вставить("ВариантыОтчетов", Новый ФиксированнаяСтруктура(ПараметрыКлиента())); КонецПроцедуры -// Заполняет массив типов, исключаемых из выгрузки и загрузки данных. -// см. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. -// -// Параметры: -// Типы - Массив - массив типов ОбъектМетаданных. -// +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт Типы.Добавить(Метаданные.Справочники.ПредопределенныеВариантыОтчетовРасширений); @@ -2411,12 +2411,7 @@ Объекты.Вставить(Метаданные.Справочники.ПредопределенныеВариантыОтчетовРасширений.ПолноеИмя(), "РеквизитыРедактируемыеВГрупповойОбработке"); КонецПроцедуры -// См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей. -// -// Параметры: -// НазначениеРолей - Структура: -// * СовместноДляПользователейИВнешнихПользователей - Массив - имена ролей. -// +// См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей Процедура ПриОпределенииНазначенияРолей(НазначениеРолей) Экспорт // СовместноДляПользователейИВнешнихПользователей. @@ -2450,11 +2445,6 @@ КонецПроцедуры // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииСоставаНастроекПодключаемыхОбъектов. -// -// Параметры: -// НастройкиПрограммногоИнтерфейса - ТаблицаЗначений - для добавления нового свойства в параметр Настройки. -// -// Процедура ПриОпределенииСоставаНастроекПодключаемыхОбъектов(НастройкиПрограммногоИнтерфейса) Экспорт Настройка = НастройкиПрограммногоИнтерфейса.Добавить(); Настройка.Ключ = "ДобавитьКомандыОтчетов"; @@ -2474,13 +2464,6 @@ // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту. // // Параметры: -// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы -// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники -// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки -// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды -// -// -// Параметры: // ВидыПодключаемыхКоманд - ТаблицаЗначений - поддерживаемые виды команд, где: // * Имя - Строка - имя вида команд. // * ИмяПодменю - Строка - имя подменю для размещения команд этого вида на формах объектов. @@ -2500,13 +2483,6 @@ КонецПроцедуры // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту. -// -// Параметры: -// НастройкиФормы - Структура - сведения о форме, в которой выводятся команды. -// Источники - ДеревоЗначений - сведения о поставщиках команд этой формы. -// ПодключенныеОтчетыИОбработки - ТаблицаЗначений - отчеты и обработки, предоставляющие свои команды. -// Команды - ТаблицаЗначений - записать в этот параметр сформированные команды для вывода в подменю. -// Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт КомандыОтчетов = Команды.СкопироватьКолонки(); КомандыОтчетов.Колонки.Добавить("КлючВарианта", Новый ОписаниеТипов("Строка, Null")); @@ -2640,7 +2616,7 @@ // // Возвращаемое значение: // Структура - параметры отчета, в том числе Объект отчета: -// * Объект - ОтчетОбъект.<Имя отчета> +// * Объект - ОтчетОбъект // - ВнешнийОтчет - объект отчета. // * Имя - Строка - имя объекта отчета. // * ПолноеИмя - Строка - полное имя объекта отчета. @@ -2799,11 +2775,11 @@ // // Параметры: // Настройки - ТаблицаЗначений - передается "как есть" из процедуры НастроитьВариантыОтчетов. -// Отчет - СтрокаТаблицыЗначений +// Отчет - СтрокаТаблицыЗначений: // - ОбъектМетаданныхОтчет - описание настроек или метаданные отчета. // ГруппироватьПоОтчетам - Булево - режим вывода в панели отчетов: -// - Истина - По отчетам (варианты скрыты, а отчет включен и видим). -// - Ложь - По вариантам (варианты видимы, а отчет отключен). +// - Истина - по отчетам (варианты скрыты, а отчет включен и видим). +// - Ложь - по вариантам (варианты видимы, а отчет отключен). // Процедура УстановитьРежимВыводаОтчетаВПанеляхОтчетов(Настройки, Отчет, ГруппироватьПоОтчетам) Если ТипЗнч(Отчет) = Тип("СтрокаТаблицыЗначений") Тогда @@ -2825,7 +2801,7 @@ // // Возвращаемое значение: // ТаблицаЗначений - таблица изменений имен вариантов. Колонки: -// * ОтчетМетаданные - ОбъектМетаданных: Отчет - метаданные отчета, в схеме которого изменилось имя варианта. +// * ОтчетМетаданные - ОбъектМетаданныхОтчет - метаданные отчета, в схеме которого изменилось имя варианта. // * СтароеИмяВарианта - Строка - старое имя варианта, до изменения. // * АктуальноеИмяВарианта - Строка - текущее (последнее актуальное) имя варианта. // * Отчет - СправочникСсылка.ИдентификаторыОбъектовМетаданных @@ -2895,9 +2871,9 @@ // // Возвращаемое значение: // ТаблицаЗначений - результат - ТаблицаЗначений - Настройки размещения отчетов по подсистемам: -// * ОтчетМетаданные - ОбъектМетаданных: Отчет. +// * ОтчетМетаданные - ОбъектМетаданныхОтчет // * ОтчетПолноеИмя - Строка. -// * ПодсистемаМетаданные - ОбъектМетаданных: Подсистема. +// * ПодсистемаМетаданные - ОбъектМетаданныхПодсистема // * ПодсистемаПолноеИмя - Строка. // Функция РазмещениеОтчетовВПодсистемах(Результат = Неопределено, РодительскаяПодсистема = Неопределено) @@ -3672,8 +3648,6 @@ ?(Режим = "ОбщиеДанныеКонфигурации", НСтр("ru = 'метаданные конфигурации'"), НСтр("ru = 'метаданные расширений'"))); ЗаписатьВЖурналЗапускПроцедуры(ПредставлениеПроцедуры); - РеквизитыВариантов = Метаданные.Справочники.ВариантыОтчетов.Реквизиты; - Если Режим = "ОбщиеДанныеКонфигурации" Тогда ТекстЗапроса = "ВЫБРАТЬ * ИЗ Справочник.ПредопределенныеВариантыОтчетов УПОРЯДОЧИТЬ ПО ПометкаУдаления"; ПустаяСсылка = Справочники.ПредопределенныеВариантыОтчетов.ПустаяСсылка(); @@ -4272,11 +4246,11 @@ ИмяТаблицы = "Справочник.ВариантыОтчетов"; Если Режим = "ОбщиеДанныеКонфигурации" Тогда ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ".ВариантыОтчетов", ".ПредопределенныеВариантыОтчетов"); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И ВариантыОтчетов.ТипОтчета = &ТипОтчета", ""); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ВариантыОтчетов.ТипОтчета = &ТипОтчета", "Истина"); ИмяТаблицы = "Справочник.ПредопределенныеВариантыОтчетов"; ИначеЕсли Режим = "ОбщиеДанныеРасширений" Тогда ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ".ВариантыОтчетов", ".ПредопределенныеВариантыОтчетовРасширений"); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И ВариантыОтчетов.ТипОтчета = &ТипОтчета", ""); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ВариантыОтчетов.ТипОтчета = &ТипОтчета", "Истина"); ИмяТаблицы = "Справочник.ПредопределенныеВариантыОтчетовРасширений"; ИначеЕсли Режим = "РазделенныеДанныеКонфигурации" Тогда Запрос.УстановитьПараметр("ТипОтчета", Перечисления.ТипыОтчетов.Внутренний); @@ -4644,7 +4618,7 @@ ПользовательИБ.ПоказыватьВСпискеВыбора = Ложь; КонецЕсли; - ПользовательИБ.Язык = МультиязычностьСервер.ЯзыкПоКоду(КодЯзыка); + ПользовательИБ.Язык = ЯзыкПоКоду(КодЯзыка); ПользовательИБ.Записать(); // Обновление пользователя - элемента справочника Пользователи. @@ -4699,6 +4673,23 @@ КонецФункции +// Возвращает метаданные по коду языка конфигурации. +// +// Параметры: +// КодЯзыка - Строка - код языка, например "en" (как задано в свойстве КодЯзыка метаданных ОбъектМетаданных: Язык). +// +// Возвращаемое значение: +// ОбъектМетаданныхЯзык - если найден по переданному коду языка, иначе Неопределено. +// +Функция ЯзыкПоКоду(Знач КодЯзыка) + Для каждого Язык Из Метаданные.Языки Цикл + Если Язык.КодЯзыка = КодЯзыка Тогда + Возврат Язык; + КонецЕсли; + КонецЦикла; + Возврат Неопределено; +КонецФункции + Функция ИмяСлужебногоПользователя() Возврат "СлужебныйПользовательДляОбновленияПредставлений"; @@ -5393,6 +5384,10 @@ КонецФункции // Представления группировок и полей из СКД. +// +// Параметры: +// КомпоновщикНастроекКД - КомпоновщикНастроекКомпоновкиДанных +// Функция СформироватьПредставленияПолей(КомпоновщикНастроекКД) Результат = СтрРазделить(Строка(КомпоновщикНастроекКД.Настройки.Выбор), ",", Ложь); @@ -5524,7 +5519,6 @@ // Извлекает текстовую информацию из макета. Функция ИзвлечьТекстМакета(ОтчетОбъект, ИменаМакетов) - ИзвлеченныйТекст = ""; Если ТипЗнч(ИменаМакетов) = Тип("Строка") Тогда ИменаМакетов = СтрРазделить(ИменаМакетов, ",", Ложь); КонецЕсли; @@ -5698,15 +5692,15 @@ // а пользователю только доступные ему варианты отчетов. // Если Истина, то администратору также возвращаются только личные варианты отчетов как и для // неполноправного пользователя. -// ПолучатьИтоговуюТаблицу - Булево - необязательный. Если Истина, то в возвращаемом значении заполняется свойство ТаблицаЗначений. -// ПолучатьПодсветку - Булево - необязательный. Если Истина, то в возвращаемом значении заполняются свойства +// ПолучатьИтоговуюТаблицу - Булево - если Истина, то в возвращаемом значении заполняется свойство ТаблицаЗначений. +// ПолучатьПодсветку - Булево - если Истина, то в возвращаемом значении заполняются свойства // ПодсветкаВариантов, Подсистемы, ПодсветкаПодсистем, ВариантыСвязанныеСПодсистемами, РодителиСвязанныеСВариантами. // // Возвращаемое значение: // Структура: // * Ссылки - Массив из СправочникСсылка.ВариантыОтчетов - вариантами отчетов, в названиях и описаниях которых, // найдены все искомые слова. -// * ПодсветкаВариантов - Соответствие - подсветка найденных слов (если задана СтрокаПоиска), где: +// * ПодсветкаВариантов - Соответствие из КлючИЗначение - подсветка найденных слов (если задана СтрокаПоиска), где: // ** Ключ - СправочникСсылка.ВариантыОтчетов. // ** Значение - Структура: // *** Ссылка - СправочникСсылка.ВариантыОтчетов @@ -5724,14 +5718,14 @@ // * Подсистемы - Массив из СправочникСсылка.ИдентификаторыОбъектовМетаданных - заполняется подсистемами, // в наименованиях которых найдены все искомые слова. // Для таких подсистем должны выводиться все вложенные варианты отчетов. -// * ПодсветкаПодсистем - Соответствие - подсветка найденных слов (если задана СтрокаПоиска), где: +// * ПодсветкаПодсистем - Соответствие из КлючИЗначение - подсветка найденных слов (если задана СтрокаПоиска), где: // ** Ключ - СправочникСсылка.ВариантыОтчетов // ** Значение - Структура: // *** Ссылка - СправочникСсылка.ИдентификаторыОбъектовМетаданных // *** НаименованиеПодсистемы - Строка -// * ВариантыСвязанныеСПодсистемами - Соответствие - варианты отчетов и их подсистемы, где: +// * ВариантыСвязанныеСПодсистемами - Соответствие из КлючИЗначение - варианты отчетов и их подсистемы, где: // ** Ключ - СправочникСсылка.ВариантыОтчетов - вариант. -// ** Значение - Массив Из СправочникСсылка.ИдентификаторыОбъектовМетаданных - подсистемы. +// ** Значение - Массив из СправочникСсылка.ИдентификаторыОбъектовМетаданных - подсистемы. // * ТаблицаЗначений - ТаблицаЗначений - заполняется, если задан ПараметрыПоиска.ПолучатьИтоговуюТаблицу: // ** Ссылка - СправочникСсылка.ВариантыОтчетов // ** Родитель - СправочникСсылка.ВариантыОтчетов @@ -5774,8 +5768,6 @@ ЕстьОтборПоПодсистемам = ПараметрыПоиска.Свойство("Подсистемы") И ЗначениеЗаполнено(ПараметрыПоиска.Подсистемы); ЕстьОтборПоКонтексту = ПараметрыПоиска.Свойство("Контекст"); - ЖесткийОтборПоПодсистемам = ЕстьОтборПоПодсистемам - И ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыПоиска, "ЖесткийОтборПоПодсистемам", Истина); ЕстьОтборПоТипамОтчетов = ПараметрыПоиска.Свойство("ТипыОтчетов") И ЗначениеЗаполнено(ПараметрыПоиска.ТипыОтчетов); Результат = Новый Структура; @@ -5831,7 +5823,7 @@ Запрос.УстановитьПараметр("НеПолучатьОписания", Не ЕстьСтрокаПоиска И Не ПолучатьИтоговуюТаблицу); Запрос.УстановитьПараметр("ПолучатьИтоговуюТаблицу", ПолучатьИтоговуюТаблицу); Запрос.УстановитьПараметр("ПоказыватьЛичныеВариантыОтчетовДругихАвторов", ПоказыватьЛичныеВариантыОтчетовДругихАвторов); - Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ЭтоОсновнойЯзык()); + Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык()); Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка); Запрос.УстановитьПараметр("ПредставленияПодсистем", ВариантыОтчетовПовтИсп.ПредставленияПодсистем()); Запрос.УстановитьПараметр("Контекст", ?(ЕстьОтборПоКонтексту, ПараметрыПоиска.Контекст, "")); @@ -7081,7 +7073,7 @@ Запрос.УстановитьПараметр("МассивПодсистем", МассивПодсистем); Запрос.УстановитьПараметр("ТаблицаПодсистем", ТаблицаПодсистем); Запрос.УстановитьПараметр("РазделСсылка", ПараметрыЗаполнения.ТекущийРазделСсылка); - Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ЭтоОсновнойЯзык()); + Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык()); Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка); Запрос.УстановитьПараметр("ВариантыНайденныеПоиском", РезультатПоиска.Ссылки); Запрос.УстановитьПараметр("ПодсистемыНайденныеПоиском", РезультатПоиска.Подсистемы); @@ -7198,12 +7190,6 @@ КонецПроцедуры -Функция ЭтоОсновнойЯзык() Экспорт - - Возврат СтрСравнить(ОбщегоНазначения.КодОсновногоЯзыка(), ТекущийЯзык().КодЯзыка) = 0; - -КонецФункции - //////////////////////////////////////////////////////////////////////////////// // Определение используемых таблиц. @@ -7462,7 +7448,7 @@ // * ПользовательскиеНастройки - СписокЗначений // * Значение - Строка // * Представление - Строка -// * ХранилищеПользовательскихНастроек - Соответствие +// * ХранилищеПользовательскихНастроек - Соответствие из КлючИЗначение // * Ключ - Строка // * Значение - ПользовательскиеНастройкиКомпоновкиДанных // * Ссылка - см. ВариантОтчетаПоОписанию @@ -7667,7 +7653,7 @@ // * ПользовательскиеНастройки - СписокЗначений - список пользовательских настроек, где: // * Значение - Строка - ключ пользовательских настроек. // * Представление - Строка - представление пользовательских настроек. -// * ХранилищеПользовательскихНастроек - Соответствие - список пользовательских настроек, где: +// * ХранилищеПользовательскихНастроек - Соответствие из КлючИЗначение - список пользовательских настроек, где: // * Ключ - Строка - ключ пользовательских настроек. // * Значение - ПользовательскиеНастройкиКомпоновкиДанных - настройки. // @@ -7718,7 +7704,7 @@ // * КлючВарианта - Строка // * Настройки - Неопределено // * ИмяОтчета - Строка -// ВариантОтчетаОснование - СправочникСсылка.ВариантыОтчетов +// ВариантОтчетаОснование - СправочникСсылка.ВариантыОтчетов // // Возвращаемое значение: // СправочникСсылка.ВариантыОтчетов @@ -7736,7 +7722,7 @@ Попытка Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить(Метаданные.Справочники.ВариантыОтчетов.ПолноеИмя()); + Блокировка.Добавить(Метаданные.Справочники.ВариантыОтчетов.ПолноеИмя()); Блокировка.Заблокировать(); ВариантОтчета = ПользовательскийВариантОтчета(ИнформацияОбОтчете.Отчет, ОписаниеВариантаОтчета.КлючВарианта, Автор); @@ -8053,6 +8039,7 @@ КонецЕсли; + ВыбранныеПользователи.Добавить(ТекущийПользователь); ПроверитьДоступностьВариантаОтчета(ШаблонОписанияНастроек.ВариантОтчета, ВыбранныеПользователи); НормализоватьШаблонОписанияНастроек(ШаблонОписанияНастроек, ТекущийПользователь); @@ -8078,6 +8065,19 @@ КонецПроцедуры +// Параметры: +// ВыбранныеПользователи - СписокЗначений: +// * Значение - СправочникСсылка.Пользователи +// - СправочникСсылка.ГруппыПользователей +// - СправочникСсылка.ГруппыВнешнихПользователей +// ТекущийПользователь - СправочникСсылка.ВнешниеПользователи +// - СправочникСсылка.Пользователи +// +// Возвращаемое значение: +// Структура: +// * Недействительных - Массив из Структура +// * Действительных - Массив из Структура +// Функция СвойстваПользователейНастроек(ВыбранныеПользователи, ТекущийПользователь) СвойстваПользователей = Новый Структура(); @@ -8144,11 +8144,7 @@ КонецЕсли; - СвойстваПользователя = Новый Структура(); - СвойстваПользователя.Вставить("Ссылка", Выборка.Ссылка); - СвойстваПользователя.Вставить("Имя", ПользовательИБ.Имя); - СвойстваПользователя.Вставить("ИдентификаторПользователяИБ", Выборка.ИдентификаторПользователяИБ); - + СвойстваПользователя = СвойстваПользователя(Выборка.Ссылка, ПользовательИБ.Имя, Выборка.ИдентификаторПользователяИБ); СвойстваПользователей.Действительных.Добавить(СвойстваПользователя); КонецЦикла; @@ -8157,6 +8153,30 @@ КонецФункции +// Параметры: +// Ссылка - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи +// ИмяПользователяИБ - Строка +// ИдентификаторПользователяИБ - УникальныйИдентификатор +// +// Возвращаемое значение: +// Структура: +// * Ссылка - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи +// * Имя - Строка +// * ИдентификаторПользователяИБ - УникальныйИдентификатор +// +Функция СвойстваПользователя(Ссылка, ИмяПользователяИБ, ИдентификаторПользователяИБ) + + СвойстваПользователя = Новый Структура; + СвойстваПользователя.Вставить("Ссылка", Ссылка); + СвойстваПользователя.Вставить("Имя", ИмяПользователяИБ); + СвойстваПользователя.Вставить("ИдентификаторПользователяИБ", ИдентификаторПользователяИБ); + + Возврат СвойстваПользователя; + +КонецФункции + Процедура ПроверитьДоступностьВариантаОтчета(ВариантОтчета, ВыбранныеПользователи) ВыборкаПользователей = РегистрыСведений.НастройкиВариантовОтчетов.ПользователиВариантаОтчета( @@ -8280,6 +8300,7 @@ КонецЕсли; МодульОбсужденияСлужебный = ОбщегоНазначения.ОбщийМодуль("ОбсужденияСлужебный"); + МодульОбсуждения = ОбщегоНазначения.ОбщийМодуль("Обсуждения");; Если Не МодульОбсужденияСлужебный.Подключены() Тогда Возврат; @@ -8292,16 +8313,7 @@ Получатели = Новый Массив; Для Каждого СвойстваПользователя Из СвойстваПользователей Цикл - - Попытка - ИдентификаторПользователя = СистемаВзаимодействия.ПолучитьИдентификаторПользователя( - СвойстваПользователя.ИдентификаторПользователяИБ); - Исключение - Продолжить; - КонецПопытки; - - Получатели.Добавить(ИдентификаторПользователя); - + Получатели.Добавить(СвойстваПользователя.Ссылка); КонецЦикла; Если Получатели.Количество() = 0 Тогда @@ -8312,26 +8324,6 @@ #Область ГенерацияОповещенияНовыхПользователейНастроек - ПредставлениеВариантаОтчета = Строка(ОписаниеНастроек.ВариантОтчета); - - ЗаголовокОбсуждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Доступ к настройкам отчета ""%1""'"), ПредставлениеВариантаОтчета); - - Обсуждение = МодульОбсужденияСлужебный.ОбсуждениеКонтекстное( - ОписаниеНастроек.ВариантОтчета, ПредставлениеВариантаОтчета); // ОбсуждениеСистемыВзаимодействия - - Если СистемаВзаимодействия.ПолучитьРежимНаблюдения(Обсуждение.Идентификатор) Тогда - СистемаВзаимодействия.УстановитьРежимНаблюдения(Обсуждение.Идентификатор, Ложь); - КонецЕсли; - - Сообщение = СистемаВзаимодействия.СоздатьСообщение(Обсуждение.Идентификатор); - - Для Каждого Получатель Из Получатели Цикл - Сообщение.Получатели.Добавить(Получатель); - КонецЦикла; - - Сообщение.Автор = СистемаВзаимодействия.ИдентификаторТекущегоПользователя(); - Если ЗначениеЗаполнено(ОписаниеНастроек.Представление) Тогда Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( @@ -8340,17 +8332,22 @@ Текст = НСтр("ru = 'Предоставлены настройки отчета'"); КонецЕсли; - ИмяДействия = ВариантыОтчетовКлиентСервер.ИмяДействияПрименитьПереданныеНастройки(); - - Сообщение.Текст = Текст; - Сообщение.Действия.Добавить(ИмяДействия, НСтр("ru = 'Применить настройки?'")); + Сообщение = МодульОбсуждения.ОписаниеСообщения(Текст); Сообщение.Данные = ОписаниеНастроек; - + Сообщение.Действия.Добавить( + ВариантыОтчетовКлиентСервер.ИмяДействияПрименитьПереданныеНастройки(), + НСтр("ru = 'Применить настройки?'")); + Попытка - Сообщение.Записать(); + МодульОбсуждения.ОтправитьСообщение( + Пользователи.ТекущийПользователь(), + Получатели, + Сообщение, + ОписаниеНастроек.ВариантОтчета); Исключение КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка(); + ПредставлениеВариантаОтчета = Строка(ОписаниеНастроек.ВариантОтчета); ЗаписьЖурналаРегистрации( НСтр("ru = 'Варианты отчетов.Оповещение о предоставлении доступа к настройкам отчета'", КодОсновногоЯзыка), @@ -8374,52 +8371,9 @@ // Конструктор коллекции предопределенных вариантов отчетов. // // Возвращаемое значение: -// ТаблицаЗначений - коллекция предопределенных вариантов отчетов, где: -// * Отчет - СправочникСсылка.ИдентификаторыОбъектовРасширений -// - СправочникСсылка.ДополнительныеОтчетыИОбработки -// - СправочникСсылка.ИдентификаторыОбъектовМетаданных -// - Строка - полное имя или ссылка на идентификатор отчета. -// * Метаданные - ОбъектМетаданныхОтчет - метаданные отчета. -// * ИспользуетСКД - Булево - признак использования в отчете основной СКД. -// * КлючВарианта - Строка - идентификатор варианта отчета. -// * ОписаниеПолучено - Булево - признак того, что описание строки уже получено. -// * Включен - Булево - если Ложь, то вариант отчета не регистрируется в подсистеме -// * ВидимостьПоУмолчанию - Булево - если Ложь, то вариант отчета по умолчанию скрыт в панели отчетов. -// * Наименование - Строка - наименование варианта отчета. -// * Описание - Строка - пояснение назначения отчета. -// * Размещение - Соответствие - настройки размещения варианта отчета в разделах (подсистемах), где: -// ** Ключ - ОбъектМетаданных - подсистема, в которой размещается отчет или вариант отчета. -// ** Значение - Строка - настройки размещения в подсистеме (группе) - "", "Важный", "СмТакже". -// * НастройкиДляПоиска - Структура - дополнительные настройки для поиска этого варианта отчета, где: -// ** НаименованияПолей - Строка - имена полей варианта отчета. -// ** НаименованияПараметровИОтборов - Строка - имена настроек варианта отчета. -// ** КлючевыеСлова - Строка - дополнительная терминология (в т.ч. специализированная или устаревшая). -// ** ИменаМакетов - Строка - используется вместо НаименованияПолей. -// * СистемнаяИнформация - Структура - другая служебная информация. -// * Тип - Строка - перечень идентификаторов типов. -// * ЭтоВариант - Булево - признак того, что описание отчета относится к варианту отчета. -// * ФункциональныеОпции - Массив из Строка - коллекция идентификаторов функциональных опций, где: -// * ГруппироватьПоОтчету - Булево - признак необходимости группировки вариантов по отчету-основанию. -// * КлючЗамеров - Строка - идентификатор замера производительности отчета. -// * ОсновнойВариант - Строка - идентификатор основного варианта отчета. -// * ФорматНастроекСКД - Булево - признак хранения настроек в формате СКД. -// * ОпределитьНастройкиФормы - Булево - отчет имеет программный интерфейс для тесной интеграции с формой отчета, -// в том числе может переопределять некоторые настройки формы и подписываться на ее события. -// Если Истина и отчет подключен к общей форме ФормаОтчета, -// тогда в модуле объекта отчета следует определить процедуру по шаблону: -// -// // Задать настройки формы отчета. -// // -// // Параметры: -// // Форма - ФормаКлиентскогоПриложения, Неопределено - -// // КлючВарианта - Строка, Неопределено - -// // Настройки - см. значение ОтчетыКлиентСервер.НастройкиОтчетаПоУмолчанию -// // -// Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт -// // Код процедуры. -// КонецПроцедуры +// см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. // -Функция КоллекцияПредопределенныхВариантовОтчетов() Экспорт // АПК:581 Для типизации в EDT. +Функция КоллекцияПредопределенныхВариантовОтчетов() РеквизитыСправочника = Метаданные.Справочники.ВариантыОтчетов.Реквизиты; diff --git a/SSL/src/CommonModules/ВариантыОтчетовКлиентСервер/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетовКлиентСервер/Module.bsl index 4d5cd3cbc..da91b33c7 100644 --- a/SSL/src/CommonModules/ВариантыОтчетовКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ВариантыОтчетовКлиентСервер/Module.bsl @@ -28,7 +28,7 @@ // Параметры: // Структура - Структура - дополняемая структура. // Ключ - Строка - имя свойства. -// Значение - Произвольный - необязательный. Значение свойства если оно отсутствует в структуре. +// Значение - Произвольный - значение свойства если оно отсутствует в структуре. // Процедура ДополнитьСтруктуруКлючом(Структура, Ключ, Значение = Неопределено) Экспорт Если Не Структура.Свойство(Ключ) Тогда diff --git a/SSL/src/CommonModules/ВариантыОтчетовПереопределяемый/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетовПереопределяемый/Module.bsl index bde2f49f5..3fd7713c3 100644 --- a/SSL/src/CommonModules/ВариантыОтчетовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ВариантыОтчетовПереопределяемый/Module.bsl @@ -56,7 +56,7 @@ // // Параметры: // Разделы - СписокЗначений - разделы, в которые выведены команды открытия панели отчетов: -// * Значение - ОбъектМетаданных: Подсистема +// * Значение - ОбъектМетаданныхПодсистема // - Строка - подсистема раздела глобального командного интерфейса, // либо ВариантыОтчетовКлиентСервер.ИдентификаторНачальнойСтраницы для начальной страницы. // * Представление - Строка - заголовок панели отчетов в этом разделе. @@ -100,7 +100,50 @@ // - они отключаются только с отключением всего отчета. // // Параметры: -// Настройки - см. ВариантыОтчетов.КоллекцияПредопределенныхВариантовОтчетов +// Настройки - ТаблицаЗначений - коллекция предопределенных вариантов отчетов, где: +// * Отчет - СправочникСсылка.ИдентификаторыОбъектовРасширений +// - СправочникСсылка.ДополнительныеОтчетыИОбработки +// - СправочникСсылка.ИдентификаторыОбъектовМетаданных +// - Строка - полное имя или ссылка на идентификатор отчета. +// * Метаданные - ОбъектМетаданныхОтчет - метаданные отчета. +// * ИспользуетСКД - Булево - признак использования в отчете основной СКД. +// * КлючВарианта - Строка - идентификатор варианта отчета. +// * ОписаниеПолучено - Булево - признак того, что описание строки уже получено. +// * Включен - Булево - если Ложь, то вариант отчета не регистрируется в подсистеме +// * ВидимостьПоУмолчанию - Булево - если Ложь, то вариант отчета по умолчанию скрыт в панели отчетов. +// * Наименование - Строка - наименование варианта отчета. +// * Описание - Строка - пояснение назначения отчета. +// * Размещение - Соответствие из КлючИЗначение - настройки размещения варианта отчета в разделах (подсистемах), где: +// ** Ключ - ОбъектМетаданных - подсистема, в которой размещается отчет или вариант отчета. +// ** Значение - Строка - настройки размещения в подсистеме (группе) - "", "Важный", "СмТакже". +// * НастройкиДляПоиска - Структура - дополнительные настройки для поиска этого варианта отчета, где: +// ** НаименованияПолей - Строка - имена полей варианта отчета. +// ** НаименованияПараметровИОтборов - Строка - имена настроек варианта отчета. +// ** КлючевыеСлова - Строка - дополнительная терминология (в т.ч. специализированная или устаревшая). +// ** ИменаМакетов - Строка - используется вместо НаименованияПолей. +// * СистемнаяИнформация - Структура - другая служебная информация. +// * Тип - Строка - перечень идентификаторов типов. +// * ЭтоВариант - Булево - признак того, что описание отчета относится к варианту отчета. +// * ФункциональныеОпции - Массив из Строка - коллекция идентификаторов функциональных опций, где: +// * ГруппироватьПоОтчету - Булево - признак необходимости группировки вариантов по отчету-основанию. +// * КлючЗамеров - Строка - идентификатор замера производительности отчета. +// * ОсновнойВариант - Строка - идентификатор основного варианта отчета. +// * ФорматНастроекСКД - Булево - признак хранения настроек в формате СКД. +// * ОпределитьНастройкиФормы - Булево - отчет имеет программный интерфейс для тесной интеграции с формой отчета, +// в том числе может переопределять некоторые настройки формы и подписываться на ее события. +// Если Истина и отчет подключен к общей форме ФормаОтчета, +// тогда в модуле объекта отчета следует определить процедуру по шаблону: +// +// // Задать настройки формы отчета. +// // +// // Параметры: +// // Форма - ФормаКлиентскогоПриложения, Неопределено - +// // КлючВарианта - Строка, Неопределено - +// // Настройки - см. значение ОтчетыКлиентСервер.НастройкиОтчетаПоУмолчанию +// // +// Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт +// // Код процедуры. +// КонецПроцедуры // // Пример: // diff --git a/SSL/src/CommonModules/ВариантыОтчетовСлужебный/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетовСлужебный/Module.bsl new file mode 100644 index 000000000..a3ab98a02 --- /dev/null +++ b/SSL/src/CommonModules/ВариантыОтчетовСлужебный/Module.bsl @@ -0,0 +1,1480 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +// Свойства результата отчета (табличного документа и настроек) для контекстной настройки. +// +// Возвращаемое значение: +// Структура: +// * Заголовки - Соответствие +// * ГраницыРазделов - см. ГраницыРазделовОтчета +// * РолиПолей - см. РолиПолейОтчета +// * ИндексПолей - см. ИндексПолейСтруктурыОтчета +// * ОсновныеПоля - Массив из см. ОсновныеПоляОтчета +// * ИтоговыеНастройки - НастройкиКомпоновкиДанных - см. синтакс-помощник КомпоновщикНастроекКомпоновкиДанных.ПолучитьНастройки(); +// +Функция СвойстваРезультатаОтчета() Экспорт + + СвойстваРезультата = Новый Структура; + СвойстваРезультата.Вставить("Заголовки", Новый Соответствие); + СвойстваРезультата.Вставить("ГраницыРазделов", Новый СписокЗначений); + СвойстваРезультата.Вставить("РолиПолей", Новый Структура); + СвойстваРезультата.Вставить("ИндексПолей", Новый Соответствие); + СвойстваРезультата.Вставить("ОсновныеПоля", Новый Массив); + СвойстваРезультата.Вставить("ИтоговыеНастройки", Неопределено); + СвойстваРезультата.Вставить("ВремяФормирования", 0); + + Возврат СвойстваРезультата; + +КонецФункции + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// - РасширениеУправляемойФормыДляОтчета +// +Процедура ИнициализироватьЗаголовкиОтчета(Форма) Экспорт + + НастройкиОтчета = Форма.НастройкиОтчета; // см. ВариантыОтчетов.НастройкиФормыОтчета + + Если Не РежимВариантаОтчета(Форма.КлючТекущегоВарианта) + Или Не НастройкиОтчета.РазрешеноИзменятьВарианты Тогда + + Возврат; + КонецЕсли; + + Заголовки = Новый Соответствие; + + Элементы = Форма.Элементы; + СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета + РезультатОтчета = Форма.ОтчетТабличныйДокумент; + + РазрезСвойствЗаголовков = СтандартныйРазрезСвойствЗаголовковОтчета(); + + Для НомерСтроки = 1 По РезультатОтчета.ВысотаТаблицы Цикл + + Для НомерКолонки = 1 По РезультатОтчета.ШиринаТаблицы Цикл + + Ячейка = РезультатОтчета.Область(НомерСтроки, НомерКолонки); + + Если Ячейка.РежимИзмененияРазмераКолонки <> РежимИзмененияРазмера.БыстроеИзменение Тогда + Продолжить; + КонецЕсли; + + Ячейка.ГиперСсылка = Истина; + + ЗаполнитьЗначенияСвойств(РазрезСвойствЗаголовков.Добавить(), Ячейка); + + СвойстваЗаголовка = СтандартныеСвойстваЗаголовкаОтчета(); + ЗаполнитьЗначенияСвойств(СвойстваЗаголовка, Ячейка); + + Заголовки.Вставить(Ячейка.Имя, СвойстваЗаголовка); + + КонецЦикла; + + КонецЦикла; + + ОпределитьИерархиюЗаголовковОтчета(РазрезСвойствЗаголовков, Заголовки); + ГраницыРазделов = ГраницыРазделовОтчета(РезультатОтчета, РазрезСвойствЗаголовков); + + ИндексСтруктурыОтчета = ИндексСтруктурыОтчета(Форма); + ДополнитьСвойстваЗаголовковОтчета(Форма, РезультатОтчета, Заголовки, РазрезСвойствЗаголовков, ИндексСтруктурыОтчета, ГраницыРазделов); + + Ячейка = Элементы.ОтчетТабличныйДокумент.ТекущаяОбласть; + + Если Ячейка <> Неопределено Тогда + ВариантыОтчетовСлужебныйКлиентСервер.ОпределитьДоступностьДействийКонтекстногоМеню(Форма, Заголовки[Ячейка.Имя]); + КонецЕсли; + + СвойстваРезультата.Заголовки = Заголовки; + СвойстваРезультата.ГраницыРазделов = ГраницыРазделов; + +КонецПроцедуры + +Функция РежимВариантаОтчета(КлючВарианта) Экспорт + + Возврат ТипЗнч(КлючВарианта) = Тип("Строка") + И Не ПустаяСтрока(КлючВарианта); + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область ИндексацияРазделовОтчета + +Функция ИндексСтруктурыОтчета(Форма) + + НастройкиОтчета = Форма.НастройкиОтчета; + СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; + + ИндексСтруктурыОтчета = НовыйИндексСтруктурыОтчета(); + СвойстваРезультата.ИтоговыеНастройки = Форма.Отчет.КомпоновщикНастроек.ПолучитьНастройки(); + СвойстваРезультата.РолиПолей = РолиПолейОтчета(НастройкиОтчета.АдресСхемы); + + ИндексироватьРазделыОтчета(СвойстваРезультата, СвойстваРезультата.ИтоговыеНастройки, ИндексСтруктурыОтчета); + ИндексироватьГруппировкиОтчета(СвойстваРезультата, ИндексСтруктурыОтчета); + + УдалитьНеидентифицированныеПоля(ИндексСтруктурыОтчета); + УточнитьПорядокРазделов(ИндексСтруктурыОтчета); + ОпределитьРолиПолей(ИндексСтруктурыОтчета, СвойстваРезультата.РолиПолей); + УстановитьИдентификаторыИндексаСтруктурыОтчета(ИндексСтруктурыОтчета); + ОпределитьДоступныеДействияПолейОтчета(ИндексСтруктурыОтчета); + + СвойстваРезультата.ИндексПолей = ИндексПолейСтруктурыОтчета(ИндексСтруктурыОтчета); + СвойстваРезультата.ОсновныеПоля = ОсновныеПоляОтчета(Форма); + + Возврат ИндексСтруктурыОтчета; + +КонецФункции + +Процедура ИндексироватьРазделыОтчета(СвойстваРезультата, Настройки, ИндексСтруктурыОтчета, ПорядокРаздела = 0) + + Для Каждого Раздел Из Настройки.Структура Цикл + + Если Не Раздел.Использование + Или ТипЗнч(Раздел) = Тип("ДиаграммаКомпоновкиДанных") Тогда + + Продолжить; + КонецЕсли; + + Если ТипЗнч(Раздел) = Тип("НастройкиВложенногоОбъектаКомпоновкиДанных") Тогда + + ИндексироватьРазделыОтчета(СвойстваРезультата, Раздел.Настройки, ИндексСтруктурыОтчета, ПорядокРаздела); + + Иначе + + ПорядокРаздела = ПорядокРаздела + 1; + + ИндексРаздела = ИндексСтруктурыОтчета.Добавить(); + ИндексРаздела.ПорядокРаздела = ПорядокРаздела; + ИндексРаздела.ИдентификаторНастроек = СвойстваРезультата.ИтоговыеНастройки.ПолучитьИдентификаторПоОбъекту(Настройки); + ИндексРаздела.ИдентификаторРаздела = Настройки.ПолучитьИдентификаторПоОбъекту(Раздел); + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Процедура ИндексироватьГруппировкиОтчета(СвойстваРезультата, ИндексСтруктурыОтчета) + + ИндексРазделовОтчетов = ИндексСтруктурыОтчета.Скопировать(); + + Для Каждого ИндексРаздела Из ИндексРазделовОтчетов Цикл + + Настройки = СвойстваРезультата.ИтоговыеНастройки.ПолучитьОбъектПоИдентификатору(ИндексРаздела.ИдентификаторНастроек); + Раздел = Настройки.ПолучитьОбъектПоИдентификатору(ИндексРаздела.ИдентификаторРаздела); // ГруппировкаКомпоновкиДанных, ТаблицаКомпоновкиДанных + + Если ТипЗнч(Раздел) = Тип("ДиаграммаКомпоновкиДанных") Тогда + Продолжить; + КонецЕсли; + + ПорядокГруппировки = 0; + ПорядокПоля = 0; + + Если ТипЗнч(Раздел) = Тип("ТаблицаКомпоновкиДанных") Тогда + + ПоляСортировки = Новый Соответствие; + + ИндексироватьГруппировкиРазделаОтчета( + ИндексСтруктурыОтчета, ИндексРаздела, Настройки, Раздел.Строки, ПорядокГруппировки, ПорядокПоля, ПоляСортировки); + + ИндексироватьГруппировкиРазделаОтчета( + ИндексСтруктурыОтчета, ИндексРаздела, Настройки, Раздел.Колонки, ПорядокГруппировки, ПорядокПоля, ПоляСортировки); + + Иначе + + ИндексГруппировки = ИндексГруппировкиОтчета( + ИндексСтруктурыОтчета, ИндексРаздела, Настройки, Раздел, ПорядокГруппировки); + + ПоляСортировки(Раздел, Настройки, ПоляСортировки); + + ИндексироватьПоляГруппировкиОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки, Раздел, ПорядокПоля, ПоляСортировки); + ИндексироватьГруппировкиРазделаОтчета( + ИндексСтруктурыОтчета, ИндексРаздела, Настройки, Раздел.Структура, ПорядокГруппировки, ПорядокПоля, ПоляСортировки); + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Процедура ИндексироватьГруппировкиРазделаОтчета(ИндексСтруктурыОтчета, ИндексРаздела, Настройки, + Группировки, ПорядокГруппировки, ПорядокПоля, ПоляСортировки = Неопределено) + + Для Каждого Элемент Из Группировки Цикл + + Если Не Элемент.Использование Тогда + Продолжить; + КонецЕсли; + + ТипЭлемента = ТипЗнч(Элемент); + + Если ТипЭлемента = Тип("НастройкиВложенногоОбъектаКомпоновкиДанных") Тогда + + ИндексироватьГруппировкиРазделаОтчета( + ИндексСтруктурыОтчета, ИндексРаздела, Элемент.Настройки, Элемент.Настройки.Структура, ПорядокГруппировки, ПорядокПоля, ПоляСортировки); + + ИначеЕсли ТипЭлемента = Тип("ТаблицаКомпоновкиДанных") Тогда + + ИндексироватьГруппировкиРазделаОтчета( + ИндексСтруктурыОтчета, ИндексРаздела, Настройки, Элемент.Строки, ПорядокГруппировки, ПорядокПоля, ПоляСортировки); + + ИндексироватьГруппировкиРазделаОтчета( + ИндексСтруктурыОтчета, ИндексРаздела, Настройки, Элемент.Колонки, ПорядокГруппировки, ПорядокПоля, ПоляСортировки); + + ИначеЕсли ТипЭлемента <> Тип("ДиаграммаКомпоновкиДанных") Тогда + + ПоляСортировки(Элемент, Настройки, ПоляСортировки); + + ИндексГруппировки = ИндексГруппировкиОтчета( + ИндексСтруктурыОтчета, ИндексРаздела, Настройки, Элемент, ПорядокГруппировки); + + ИндексироватьПоляГруппировкиОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки, Элемент, ПорядокПоля, ПоляСортировки); + ИндексироватьГруппировкиРазделаОтчета( + ИндексСтруктурыОтчета, ИндексРаздела, Настройки, Элемент.Структура, ПорядокГруппировки, ПорядокПоля, ПоляСортировки); + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +// Параметры: +// Группировка - НастройкиКомпоновкиДанных +// - ГруппировкаКомпоновкиДанных +// - ГруппировкаТаблицыКомпоновкиДанных +// Настройки - НастройкиКомпоновкиДанных +// ПоляСортировки - Соответствие +// - Неопределено +// Замещать - Булево +// +// Возвращаемое значение: +// Соответствие +// +Функция ПоляСортировки(Группировка, Настройки, ПоляСортировки = Неопределено, Замещать = Истина) + + Если ПоляСортировки = Неопределено Тогда + ПоляСортировки = Новый Соответствие; + КонецЕсли; + + ТипГруппировки = ТипЗнч(Группировка); + + Если ТипГруппировки <> Тип("НастройкиКомпоновкиДанных") + И ТипГруппировки <> Тип("ГруппировкаКомпоновкиДанных") + И ТипГруппировки <> Тип("ГруппировкаТаблицыКомпоновкиДанных") Тогда + + Возврат ПоляСортировки; + КонецЕсли; + + ЭлементыСортировки = Группировка.Порядок.Элементы; + + Для Каждого Элемент Из ЭлементыСортировки Цикл + + Если Не Элемент.Использование Тогда + Продолжить; + КонецЕсли; + + Если ТипЗнч(Элемент) = Тип("АвтоЭлементПорядкаКомпоновкиДанных") Тогда + + ПоляСортировки(Настройки, Настройки, ПоляСортировки, Ложь); + + ИначеЕсли Замещать + Или ПоляСортировки[Элемент.Поле] = Неопределено Тогда + + ПоляСортировки.Вставить(Элемент.Поле, Элемент.ТипУпорядочивания); + + КонецЕсли; + + КонецЦикла; + + Возврат ПоляСортировки; + +КонецФункции + +Функция ИндексГруппировкиОтчета(ИндексСтруктурыОтчета, ИндексРаздела, Настройки, + Группировка, ПорядокГруппировки) + + ПорядокГруппировки = ПорядокГруппировки + 1; + + ИндексГруппировки = ИндексСтруктурыОтчета.Добавить(); + ЗаполнитьЗначенияСвойств(ИндексГруппировки, ИндексРаздела); + + ИндексГруппировки.ПорядокГруппировки = ПорядокГруппировки; + ИндексГруппировки.ИдентификаторГруппировки = Настройки.ПолучитьИдентификаторПоОбъекту(Группировка); + ИндексГруппировки.ПредставлениеГруппировки = Строка(Группировка.ПоляГруппировки); + + Возврат ИндексГруппировки; + +КонецФункции + +Процедура ИндексироватьПоляГруппировкиОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки, + Группировка, ПорядокПоля, ПоляСортировки) + + ИспользуемыеПоляГруппировки = Новый Соответствие; + + ИспользуетсяАвтоПоле = ИспользуетсяАвтоПоле(Группировка.Выбор); + ИспользуемыеНастройки = ИспользуемыеНастройкиГруппировкиОтчета(Настройки, Группировка); + + ПоляГруппировки = Группировка.ПоляГруппировки; + + Для Каждого Элемент Из ПоляГруппировки.Элементы Цикл + + Если ТипЗнч(Элемент) <> Тип("ПолеГруппировкиКомпоновкиДанных") + Или Не Элемент.Использование Тогда + + Продолжить; + КонецЕсли; + + ИспользуемыеПоляГруппировки.Вставить(Элемент.Поле, Элемент); + + Если ИспользуетсяАвтоПоле + И Не ПолеСодержитсяВВыбранныхПоляхОтчета(Группировка.Выбор, Элемент.Поле, Истина) + И Не ПолеСодержитсяВВыбранныхПоляхОтчета(ИспользуемыеНастройки.Выбор, Элемент.Поле, Истина) Тогда + + ДобавитьПолеОтчетаВИндекс(ИндексСтруктурыОтчета, ИндексГруппировки, ПоляГруппировки, + Элемент, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки); + + КонецЕсли; + + КонецЦикла; + + ИндексироватьВыбранныеПоляГруппировкиОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки, + Группировка, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки); + +КонецПроцедуры + +Функция ИспользуетсяАвтоПоле(Поля) + + Для Каждого Элемент Из Поля.Элементы Цикл + + Если ТипЗнч(Элемент) = Тип("АвтоВыбранноеПолеКомпоновкиДанных") + Или ТипЗнч(Элемент) = Тип("АвтоПолеГруппировкиКомпоновкиДанных") Тогда + + Возврат Элемент.Использование; + КонецЕсли; + + КонецЦикла; + + Возврат Ложь; + +КонецФункции + +Процедура ИндексироватьВыбранныеПоляГруппировкиОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки, + Группировка, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки, Поля = Неопределено, Родитель = Неопределено) + + Если Поля = Неопределено Тогда + Поля = Группировка.Выбор; + КонецЕсли; + + Если Родитель = Неопределено Тогда + Родитель = Группировка.Выбор; + КонецЕсли; + + Для Каждого Элемент Из Поля.Элементы Цикл + + Если ТипЗнч(Элемент) = Тип("АвтоВыбранноеПолеКомпоновкиДанных") Тогда + + ИндексироватьВыбранныеПоляНастроекОтчета( + ИндексСтруктурыОтчета, + ИндексГруппировки, + Настройки, + Группировка, + ПорядокПоля, + ПоляСортировки, + ИспользуемыеПоляГруппировки); + + ИначеЕсли ТипЗнч(Элемент) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда + + ИндексироватьВыбранныеПоляГруппировкиОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки, + Группировка, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки, Элемент, Родитель); + + ИначеЕсли РазрешеноИспользоватьПолеВГруппировке(Группировка, Элемент.Поле) Тогда + + ДобавитьПолеОтчетаВИндекс( + ИндексСтруктурыОтчета, + ИндексГруппировки, + Родитель, + Элемент, + ПорядокПоля, + ПоляСортировки, + ИспользуемыеПоляГруппировки); + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Процедура ИндексироватьВыбранныеПоляНастроекОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки, + Группировка, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки, Поля = Неопределено, Родитель = Неопределено) + + ИспользуемыеНастройки = ИспользуемыеНастройкиГруппировкиОтчета(Настройки, Группировка); + + Если Поля = Неопределено Тогда + Поля = ИспользуемыеНастройки.Выбор; + КонецЕсли; + + Если Родитель = Неопределено Тогда + Родитель = ИспользуемыеНастройки.Выбор; + КонецЕсли; + + ПоляСортировки(Группировка, Настройки, ПоляСортировки); + + Для Каждого Элемент Из Поля.Элементы Цикл + + ТипЭлемента = ТипЗнч(Элемент); + + Если ТипЭлемента = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда + + ИндексироватьВыбранныеПоляНастроекОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки, + Группировка, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки, Элемент, Родитель); + + ИначеЕсли ТипЭлемента <> Тип("АвтоВыбранноеПолеКомпоновкиДанных") + И РазрешеноИспользоватьПолеВГруппировке(Группировка, Элемент.Поле) + И Не ПолеСодержитсяВВыбранныхПоляхОтчета(Группировка.Выбор, Элемент.Поле) Тогда + + ДобавитьПолеОтчетаВИндекс(ИндексСтруктурыОтчета, ИндексГруппировки, Родитель, Элемент, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки); + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Функция РазрешеноИспользоватьПолеВГруппировке(Группировка, Поле) + + Элементы = Группировка.ПоляГруппировки.Элементы; + + Если Элементы.Количество() = 0 Тогда + Возврат Истина; + КонецЕсли; + + ДоступноеПоле = Группировка.Выбор.ДоступныеПоляВыбора.НайтиПоле(Поле); + + Если ДоступноеПоле = Неопределено Тогда + ДоступноеПоле = Группировка.ПоляГруппировки.ДоступныеПоляПолейГруппировок.НайтиПоле(Поле); + КонецЕсли; + + Если ДоступноеПоле <> Неопределено + И ДоступноеПоле.Ресурс Тогда + + Возврат Истина; + КонецЕсли; + + Для Каждого Элемент Из Элементы Цикл + + Если ТипЗнч(Элемент) = Тип("ПолеГруппировкиКомпоновкиДанных") + И Элемент.Поле = Поле + И Элемент.Использование Тогда + + Возврат Истина; + КонецЕсли; + + КонецЦикла; + + Возврат Ложь; + +КонецФункции + +Функция ПолеСодержитсяВВыбранныхПоляхОтчета(Поля, Поле, ПроверятьИспользование = Ложь) + + Для Каждого Элемент Из Поля.Элементы Цикл + + Если ТипЗнч(Элемент) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда + + Возврат ПолеСодержитсяВВыбранныхПоляхОтчета(Элемент, Поле, ПроверятьИспользование); + + ИначеЕсли ТипЗнч(Элемент) <> Тип("АвтоВыбранноеПолеКомпоновкиДанных") + И Элемент.Поле = Поле Тогда + + Возврат Не ПроверятьИспользование + Или ПроверятьИспользование И Элемент.Использование; + + КонецЕсли; + + КонецЦикла; + + Возврат Ложь; + +КонецФункции + +Функция ИспользуемыеНастройкиГруппировкиОтчета(Настройки, Группировка) + + Если ТипЗнч(Группировка.Родитель) = Тип("НастройкиКомпоновкиДанных") Тогда + Возврат Группировка.Родитель; + КонецЕсли; + + Возврат Настройки; + +КонецФункции + +Процедура ДобавитьПолеОтчетаВИндекс(ИндексСтруктурыОтчета, ИндексГруппировки, Родитель, Поле, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки) + + Если Не Поле.Использование Тогда + Возврат; + КонецЕсли; + + ОписаниеПоля = ОписаниеПоляОтчета(Родитель, Поле, ИспользуемыеПоляГруппировки); + + Если ОписаниеПоля.Ресурс + И СтрНайти(ИндексГруппировки.ИдентификаторГруппировки, "/row/") > 0 Тогда + + Возврат; + КонецЕсли; + + Поиск = Новый Структура("ПорядокРаздела, ПорядокГруппировки, Поле"); + ЗаполнитьЗначенияСвойств(Поиск, ИндексГруппировки); + Поиск.Поле = Поле.Поле; + + НайденныеИндексыПоля = ИндексСтруктурыОтчета.НайтиСтроки(Поиск); + + Если НайденныеИндексыПоля.Количество() > 0 Тогда + + ИндексПоля = НайденныеИндексыПоля[0]; + + Иначе + + ПорядокПоля = ПорядокПоля + 1; + + ИндексПоля = ИндексСтруктурыОтчета.Добавить(); + ЗаполнитьЗначенияСвойств(ИндексПоля, ИндексГруппировки); + ИндексПоля.ПорядокПоля = ПорядокПоля; + + КонецЕсли; + + ЗаполнитьЗначенияСвойств(ИндексПоля, ОписаниеПоля); + + ИндексПоля.ПредставлениеПоля = ВРег(ИндексПоля.ПредставлениеПоля); + ИндексПоля.НаправлениеСортировки = ПоляСортировки[Поле.Поле]; + ИндексПоля.ПолеСортируется = (ИндексПоля.НаправлениеСортировки <> Неопределено); + +КонецПроцедуры + +Функция ОписаниеПоляОтчета(Родитель, Поле, ИспользуемыеПоляГруппировки) + + ОписаниеПоля = Новый Структура; + ОписаниеПоля.Вставить("Поле", Поле.Поле); + ОписаниеПоля.Вставить("ИдентификаторПоля", Родитель.ПолучитьИдентификаторПоОбъекту(Поле)); + ОписаниеПоля.Вставить("ПредставлениеПоля", Строка(Поле.Поле)); + ОписаниеПоля.Вставить("ТипПоля", ТипЗнч(Поле)); + ОписаниеПоля.Вставить("ИспользуетсяВПоляхГруппировки", ИспользуемыеПоляГруппировки[Поле.Поле] <> Неопределено); + ОписаниеПоля.Вставить("ТипЗначения", Новый ОписаниеТипов("Неопределено")); + ОписаниеПоля.Вставить("Ресурс", Ложь); + + ДоступноеПоле = Неопределено; + + Если ОписаниеПоля.ТипПоля = Тип("ПолеГруппировкиКомпоновкиДанных") Тогда + + ДоступноеПоле = Родитель.ДоступныеПоляПолейГруппировок.НайтиПоле(Поле.Поле); + + ИначеЕсли ОписаниеПоля.ТипПоля = Тип("ВыбранноеПолеКомпоновкиДанных") Тогда + + ДоступноеПоле = Родитель.ДоступныеПоляВыбора.НайтиПоле(Поле.Поле); + + КонецЕсли; + + Если ДоступноеПоле <> Неопределено Тогда + + ОписаниеПоля.ПредставлениеПоля = ДоступноеПоле.Заголовок; + ОписаниеПоля.Ресурс = ДоступноеПоле.Ресурс; + ОписаниеПоля.ТипЗначения = ДоступноеПоле.ТипЗначения; + + КонецЕсли; + + Если ОписаниеПоля.ТипПоля = Тип("ВыбранноеПолеКомпоновкиДанных") + И ЗначениеЗаполнено(Поле.Заголовок) Тогда + + ОписаниеПоля.ПредставлениеПоля = Поле.Заголовок; + КонецЕсли; + + Возврат ОписаниеПоля; + +КонецФункции + +Процедура УдалитьНеидентифицированныеПоля(ИндексСтруктурыОтчета) + + НайденныеЗаписи = ИндексСтруктурыОтчета.НайтиСтроки(Новый Структура("ИдентификаторПоля", Неопределено)); + Для Каждого Запись Из НайденныеЗаписи Цикл + ИндексСтруктурыОтчета.Удалить(Запись); + КонецЦикла; + +КонецПроцедуры + +Процедура УточнитьПорядокРазделов(ИндексСтруктурыОтчета) + + ИндексСтруктурыОтчета.Сортировать("ПорядокРаздела, ПорядокГруппировки, ПорядокПоля"); + + Разделы = ИндексСтруктурыОтчета.Скопировать(); + Разделы.Свернуть("ПорядокРаздела"); + + Поиск = Новый Структура("ПорядокРаздела"); + + Для ПорядокРаздела = 1 По Разделы.Количество() Цикл + + Поиск.ПорядокРаздела = Разделы[ПорядокРаздела - 1].ПорядокРаздела; + НайденныеЗаписи = ИндексСтруктурыОтчета.НайтиСтроки(Поиск); + + Для Каждого Запись Из НайденныеЗаписи Цикл + Запись.ПорядокРаздела = ПорядокРаздела; + КонецЦикла; + + КонецЦикла; + + ИндексСтруктурыОтчета.ЗаполнитьЗначения(Разделы.Количество(), "КоличествоРазделов"); + +КонецПроцедуры + +Процедура ОпределитьРолиПолей(ИндексСтруктурыОтчета, РолиПолей) + + Для Каждого Запись Из ИндексСтруктурыОтчета Цикл + + Запись.Период = (РолиПолей.Периоды[Запись.Поле] <> Неопределено); + Запись.Измерение = (РолиПолей.Измерения[Запись.Поле] <> Неопределено); + + КонецЦикла; + +КонецПроцедуры + +Функция РолиПолейОтчета(АдресСхемы) + + РолиПолей = Новый Структура; + РолиПолей.Вставить("Периоды", Новый Соответствие); + РолиПолей.Вставить("Измерения", Новый Соответствие); + РолиПолей.Вставить("Остатки", Новый Соответствие); + + Схема = ПолучитьИзВременногоХранилища(АдресСхемы); + + Для Каждого НаборДанных Из Схема.НаборыДанных Цикл + + Для Каждого Поле Из НаборДанных.Поля Цикл + + Если ТипЗнч(Поле) = Тип("ПапкаПолейНабораДанныхСхемыКомпоновкиДанных") Тогда + Продолжить; + КонецЕсли; + + Если Поле.Роль.НомерПериода > 0 Тогда + + РолиПолей.Периоды.Вставить(Новый ПолеКомпоновкиДанных(Поле.Поле), ОписаниеРолиПоляОтчета(Поле.Роль)); + + ИначеЕсли Поле.Роль.Измерение Тогда + + РолиПолей.Измерения.Вставить(Новый ПолеКомпоновкиДанных(Поле.Поле), ОписаниеРолиПоляОтчета(Поле.Роль)); + + ИначеЕсли Поле.Роль.Остаток Тогда + + РолиПолей.Остатки.Вставить(Новый ПолеКомпоновкиДанных(Поле.Поле), ОписаниеРолиПоляОтчета(Поле.Роль)); + + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + + Возврат РолиПолей; + +КонецФункции + +Функция ОписаниеРолиПоляОтчета(Роль) + + ОписаниеРоли = Новый Структура("ВыражениеВидаСчета, ГруппаОстатка, ИгнорироватьЗначенияNULL, Измерение, + |НомерПериода, Обязательное, Остаток, ПолеСчета, РеквизитИзмерения, РодительскоеИзмерение, Счет"); + + ЗаполнитьЗначенияСвойств(ОписаниеРоли, Роль); + + ОписаниеРоли.Вставить("ТипБухгалтерскогоОстатка", Строка(Роль.ТипБухгалтерскогоОстатка)); + ОписаниеРоли.Вставить("РодительскоеИзмерение", Строка(Роль.РодительскоеИзмерение)); + ОписаниеРоли.Вставить("ТипПериода", Строка(Роль.ТипПериода)); + + Возврат ОписаниеРоли; + +КонецФункции + +Процедура УстановитьИдентификаторыИндексаСтруктурыОтчета(ИндексСтруктурыОтчета) + + Для Каждого Индекс Из ИндексСтруктурыОтчета Цикл + Индекс.ИдентификаторИндекса = Новый УникальныйИдентификатор(); + КонецЦикла; + + ИндексСтруктурыОтчета.Индексы.Добавить("ИдентификаторИндекса"); + +КонецПроцедуры + +Процедура ОпределитьДоступныеДействияПолейОтчета(ИндексСтруктурыОтчета) + + Разделы = ИндексСтруктурыОтчета.Скопировать(); + Разделы.Свернуть("ПорядокРаздела"); + ПорядокРазделов = Разделы.ВыгрузитьКолонку("ПорядокРаздела"); + + Для Каждого ПорядокРаздела Из ПорядокРазделов Цикл + + ОпределитьДоступныеДействияПолейРазделаОтчета(ИндексСтруктурыОтчета, ПорядокРаздела); + ОпределитьДоступныеДействияПолейРазделаОтчета(ИндексСтруктурыОтчета, ПорядокРаздела, Истина); + + КонецЦикла; + +КонецПроцедуры + +Процедура ОпределитьДоступныеДействияПолейРазделаОтчета(ИндексСтруктурыОтчета, ПорядокРаздела, ЭтоРесурс = Ложь) + + ПоискПолейРаздела = Новый Структура("ПорядокРаздела, Ресурс", ПорядокРаздела, ЭтоРесурс); + ПоляГруппировок = ИндексСтруктурыОтчета.Скопировать(ПоискПолейРаздела); + + ПоискПолейГруппировки = Новый Структура("ПорядокГруппировки"); + + Группировки = ПоляГруппировок.Скопировать(); + Группировки.Свернуть("ПорядокГруппировки"); + ПорядокГруппировок = Группировки.ВыгрузитьКолонку("ПорядокГруппировки"); + + Для Каждого ПорядокГруппировки Из ПорядокГруппировок Цикл + + ПоискПолейГруппировки.ПорядокГруппировки = ПорядокГруппировки; + ПоляГруппировки = ПоляГруппировок.Скопировать(ПоискПолейГруппировки); + + ПоляГруппировки.Сортировать("ПорядокГруппировки"); + + Для Каждого ПолеГруппировки Из ПоляГруппировки Цикл + + Индекс = ИндексСтруктурыОтчета.Найти(ПолеГруппировки.ИдентификаторИндекса, "ИдентификаторИндекса"); + Индекс.ВставитьПолеСлева = Истина; + Индекс.ВставитьПолеСправа = Истина; + Индекс.ВставитьГруппировкуВыше = Не ЭтоРесурс; + Индекс.ВставитьГруппировкуНиже = Не ЭтоРесурс; + + Индекс.ПереместитьПолеВыше = Не ЭтоРесурс И ПолеГруппировки.ПорядокГруппировки > 1; + Индекс.ПереместитьПолеНиже = Не ЭтоРесурс И ПолеГруппировки.ПорядокГруппировки < ПорядокГруппировок.Количество(); + + Если ПоляГруппировки.Индекс(ПолеГруппировки) > 0 Тогда + Индекс.ПереместитьПолеВлево = Истина; + КонецЕсли; + + Если ПоляГруппировки.Индекс(ПолеГруппировки) < ПоляГруппировки.Количество() - 1 Тогда + Индекс.ПереместитьПолеВправо = Истина; + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + +Функция ИндексПолейСтруктурыОтчета(ИндексСтруктурыОтчета) + + ИндексПолей = Новый Соответствие; + + Разделы = ИндексСтруктурыОтчета.Скопировать(); + Разделы.Свернуть("ПорядокРаздела"); + + ПорядокРазделов = Разделы.ВыгрузитьКолонку("ПорядокРаздела"); + + ПоискГруппировок = Новый Структура("ПорядокРаздела"); + ПоискПоля = Новый Структура("ПорядокРаздела, ПорядокГруппировки"); + + Для Каждого ПорядокРаздела Из ПорядокРазделов Цикл + + ПоискГруппировок.ПорядокРаздела = ПорядокРаздела; + Группировки = ИндексСтруктурыОтчета.Скопировать(ПоискГруппировок); + Группировки.Свернуть("ПорядокГруппировки"); + + ПорядокГруппировок = Группировки.ВыгрузитьКолонку("ПорядокГруппировки"); + + ИндексПолейРаздела = ИндексПолей[ПорядокРаздела]; + Если ИндексПолейРаздела = Неопределено Тогда + ИндексПолейРаздела = Новый Соответствие; + КонецЕсли; + + Для Каждого ПорядокГруппировки Из ПорядокГруппировок Цикл + + ПоискПоля.ПорядокРаздела = ПорядокРаздела; + ПоискПоля.ПорядокГруппировки = ПорядокГруппировки; + ПоляГруппировки = ИндексСтруктурыОтчета.НайтиСтроки(ПоискПоля); + + ИндексПолейГруппировки = ИндексПолейРаздела[ПорядокГруппировки]; + Если ИндексПолейГруппировки = Неопределено Тогда + ИндексПолейГруппировки = Новый Соответствие; + КонецЕсли; + + Для Каждого ПолеГруппировки Из ПоляГруппировки Цикл + + СвойстваПоля = СтандартныеСвойстваПоляОтчета(); + ЗаполнитьЗначенияСвойств(СвойстваПоля, ПолеГруппировки); + + ИндексПолейГруппировки.Вставить(ПолеГруппировки.Поле, СвойстваПоля); + + КонецЦикла; + + ИндексПолейРаздела.Вставить(ПорядокГруппировки, ИндексПолейГруппировки); + + КонецЦикла; + + ИндексПолей.Вставить(ПорядокРаздела, ИндексПолейРаздела); + + КонецЦикла; + + Возврат ИндексПолей; + +КонецФункции + +Функция ОсновныеПоляОтчета(Форма) + + ОсновныеПоля = Новый Массив; + + ОтчетыПереопределяемый.ПриОпределенииОсновныхПолей(Форма, ОсновныеПоля); + + // Локальное переопределение для отчета. + Если Форма.НастройкиОтчета.События.ПриОпределенииОсновныхПолей Тогда + + Отчет = ОтчетыСервер.ОтчетОбъект(Форма.НастройкиОтчета.ПолноеИмя); + Отчет.ПриОпределенииОсновныхПолей(Форма, ОсновныеПоля); + + КонецЕсли; + + Возврат ОсновныеПоля; + +КонецФункции + +#Область Конструкторы + +Функция НовыйИндексСтруктурыОтчета() + + ОписаниеЧисла = Новый ОписаниеТипов("Число"); + ОписаниеСтроки = Новый ОписаниеТипов("Строка"); + ОписаниеПризнака = Новый ОписаниеТипов("Булево"); + ОписаниеПоля = Новый ОписаниеТипов("ПолеКомпоновкиДанных"); + ОписаниеТипов = Новый ОписаниеТипов("ОписаниеТипов"); + ОписаниеТипа = Новый ОписаниеТипов("Тип"); + ОписаниеИдентификатора = Новый ОписаниеТипов("УникальныйИдентификатор"); + + Индекс = Новый ТаблицаЗначений; + Индекс.Колонки.Добавить("ПорядокРаздела", ОписаниеЧисла); + Индекс.Колонки.Добавить("КоличествоРазделов", ОписаниеЧисла); + Индекс.Колонки.Добавить("ПорядокГруппировки", ОписаниеЧисла); + Индекс.Колонки.Добавить("ПорядокПоля", ОписаниеЧисла); + + Индекс.Колонки.Добавить("ИдентификаторНастроек"); + Индекс.Колонки.Добавить("ИдентификаторРаздела"); + Индекс.Колонки.Добавить("ИдентификаторГруппировки"); + Индекс.Колонки.Добавить("ИдентификаторПоля"); + + Индекс.Колонки.Добавить("Поле", ОписаниеПоля); + Индекс.Колонки.Добавить("ТипПоля", ОписаниеТипа); + Индекс.Колонки.Добавить("ИспользуетсяВПоляхГруппировки", ОписаниеПризнака); + + Индекс.Колонки.Добавить("ПредставлениеГруппировки", ОписаниеСтроки); + Индекс.Колонки.Добавить("ПредставлениеПоля", ОписаниеСтроки); + + Индекс.Колонки.Добавить("Период", ОписаниеПризнака); + Индекс.Колонки.Добавить("Измерение", ОписаниеПризнака); + Индекс.Колонки.Добавить("Ресурс", ОписаниеПризнака); + + Индекс.Колонки.Добавить("ТипЗначения", ОписаниеТипов); + Индекс.Колонки.Добавить("ПолеСортируется", ОписаниеПризнака); + Индекс.Колонки.Добавить("НаправлениеСортировки"); + + Индекс.Колонки.Добавить("ВставитьПолеСлева", ОписаниеПризнака); + Индекс.Колонки.Добавить("ВставитьПолеСправа", ОписаниеПризнака); + Индекс.Колонки.Добавить("ВставитьГруппировкуВыше", ОписаниеПризнака); + Индекс.Колонки.Добавить("ВставитьГруппировкуНиже", ОписаниеПризнака); + + Индекс.Колонки.Добавить("ПереместитьПолеВлево", ОписаниеПризнака); + Индекс.Колонки.Добавить("ПереместитьПолеВправо", ОписаниеПризнака); + Индекс.Колонки.Добавить("ПереместитьПолеВыше", ОписаниеПризнака); + Индекс.Колонки.Добавить("ПереместитьПолеНиже", ОписаниеПризнака); + + Индекс.Колонки.Добавить("ИдентификаторИндекса", ОписаниеИдентификатора); + + Возврат Индекс; + +КонецФункции + +Функция СтандартныеСвойстваПоляОтчета() + + Индекс = Новый Структура; + Индекс.Вставить("ПорядокПоля", 0); + Индекс.Вставить("ИдентификаторПоля", Неопределено); + Индекс.Вставить("ПредставлениеПоля", ""); + + Индекс.Вставить("ПолеСортируется", Ложь); + Индекс.Вставить("НаправлениеСортировки", Неопределено); + + Индекс.Вставить("Ресурс", Ложь); + Индекс.Вставить("ТипЗначения", Неопределено); + Индекс.Вставить("ТипПоля", Неопределено); + + Индекс.Вставить("ИдентификаторНастроек", Неопределено); + Индекс.Вставить("ИдентификаторРаздела", Неопределено); + Индекс.Вставить("ИдентификаторГруппировки", Неопределено); + + Индекс.Вставить("ИдентификаторИндекса", Неопределено); + + Возврат Индекс; + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область ИнициализацияСвойствЗаголовковТаблиц + +Процедура ОпределитьИерархиюЗаголовковОтчета(РазрезСвойствЗаголовков, Заголовки) + + РазрезСвойствЗаголовков.Свернуть("Верх, Лево, Низ, Право, Имя, Расшифровка"); + РазрезСвойствЗаголовков.Сортировать("Верх, Лево"); + РазрезСвойствЗаголовков.Индексы.Добавить("Верх, Низ, Лево"); + + Для Каждого Запись Из РазрезСвойствЗаголовков Цикл + + Если Запись.Расшифровка <> Неопределено Тогда + Продолжить; + КонецЕсли; + + Верх = Запись.Низ + 1; + НайденныеОбласти = РазрезСвойствЗаголовков.НайтиСтроки(Новый Структура("Верх, Лево", Верх, Запись.Лево)); + + Пока НайденныеОбласти.Количество() > 0 Цикл + + СвойстваОбласти = Заголовки[Запись.Имя]; + СвойстваОбласти.КоличествоДочернихЗаголовков = СвойстваОбласти.КоличествоДочернихЗаголовков + 1; + + Верх = Верх + 1; + НайденныеОбласти = РазрезСвойствЗаголовков.НайтиСтроки(Новый Структура("Верх, Лево", Верх, Запись.Лево)); + + КонецЦикла; + + Низ = Запись.Верх - 1; + НайденныеОбласти = РазрезСвойствЗаголовков.НайтиСтроки(Новый Структура("Низ, Лево", Низ, Запись.Лево)); + + Пока НайденныеОбласти.Количество() > 0 Цикл + + СвойстваОбласти = Заголовки[Запись.Имя]; + СвойстваОбласти.КоличествоРодительскихЗаголовков = СвойстваОбласти.КоличествоРодительскихЗаголовков + 1; + + Низ = Низ - 1; + НайденныеОбласти = РазрезСвойствЗаголовков.НайтиСтроки(Новый Структура("Низ, Лево", Низ, Запись.Лево)); + + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + +Функция ГраницыРазделовОтчета(РезультатОтчета, РазрезСвойствЗаголовков) + + Границы = Новый СписокЗначений; + + ВерхниеГраницы = РазрезСвойствЗаголовков.Скопировать(); + ВерхниеГраницы.Свернуть("Верх"); + ВерхниеГраницы.Сортировать("Верх"); + + Для Каждого Запись Из ВерхниеГраницы Цикл + + Индекс = ВерхниеГраницы.Индекс(Запись); + + Если Индекс = 0 Тогда + Продолжить; + КонецЕсли; + + Если (Запись.Верх - ВерхниеГраницы[Индекс - 1].Верх) > 1 Тогда + Границы.Добавить(Запись.Верх); + КонецЕсли; + + КонецЦикла; + + Границы.Добавить(РезультатОтчета.ВысотаТаблицы); + + Возврат Границы; + +КонецФункции + +Процедура ДополнитьСвойстваЗаголовковОтчета(Форма, РезультатОтчета, Заголовки, РазрезСвойствЗаголовков, ИндексСтруктурыОтчета, ГраницыРазделов) + + ИндексСтруктурыОтчета.Индексы.Добавить("ПорядокРаздела, ПредставлениеПоля"); + + ПорядокРаздела = 1; + ГраницаТекущегоРаздела = 0; + ОбработанныеПоля = Новый Соответствие; + + Для Каждого Граница Из ГраницыРазделов Цикл + + Для Каждого Запись Из РазрезСвойствЗаголовков Цикл + + СвойстваЗаголовка = Заголовки[Запись.Имя]; + + Если СвойстваЗаголовка.Верх >= ГраницаТекущегоРаздела + И СвойстваЗаголовка.Верх <= Граница.Значение Тогда + + ИндексПоля = ИндексПоляПоСвойствамЗаголовка( + Форма, СвойстваЗаголовка, ИндексСтруктурыОтчета, ПорядокРаздела, ОбработанныеПоля); + + Если ИндексПоля = Неопределено Тогда + Продолжить; + КонецЕсли; + + ЗаполнитьЗначенияСвойств(СвойстваЗаголовка, ИндексПоля); + + ЭтоЧисло = СвойстваЗаголовка.ТипЗначения.СодержитТип(Тип("Число")); + СвойстваЗаголовка.ОформитьОтрицательные = ЭтоЧисло; + СвойстваЗаголовка.ОформитьПоложительные = ЭтоЧисло; + + ВставитьИндикаторСортировки(ИндексПоля, СвойстваЗаголовка, РезультатОтчета.Область(Запись.Имя)); + + КонецЕсли; + + КонецЦикла; + + ПорядокРаздела = ПорядокРаздела + 1; + ГраницаТекущегоРаздела = Граница.Значение; + + КонецЦикла; + +КонецПроцедуры + +Функция ИндексПоляПоСвойствамЗаголовка(Форма, СвойстваЗаголовка, ИндексСтруктурыОтчета, ПорядокРаздела, ОбработанныеПоля) + + Поиск = Новый Структура("ПорядокРаздела, ПредставлениеПоля", ПорядокРаздела, ВРег(СвойстваЗаголовка.Текст)); + + ИндексПоля = ИндексПоляПоПредставлению(ИндексСтруктурыОтчета, Поиск, ОбработанныеПоля); + + Если ИндексПоля = Неопределено Тогда + ИндексПоля = ИндексПоляПоРасшифровке(Форма, СвойстваЗаголовка.Расшифровка, ИндексСтруктурыОтчета, Поиск, ОбработанныеПоля); + КонецЕсли; + + Возврат ИндексПоля; + +КонецФункции + +Функция ИндексПоляПоРасшифровке(Форма, Расшифровка, ИндексСтруктурыОтчета, Поиск, ОбработанныеПоля) + + Если ТипЗнч(Расшифровка) <> Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда + Возврат Неопределено; + КонецЕсли; + + Данные = ДанныеЭлементаРасшифровки(Форма, Расшифровка); + + Если Данные = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + ПоискПоПолю = Новый Структура; + ПоискПоПолю.Вставить("ПорядокРаздела", Поиск.ПорядокРаздела); + ПоискПоПолю.Вставить("Поле", Новый ПолеКомпоновкиДанных(Данные.Поле)); + + НайденныеПоля = ИндексСтруктурыОтчета.НайтиСтроки(ПоискПоПолю); + + Если НайденныеПоля.Количество() > 0 Тогда + Возврат НайденныеПоля[0]; + КонецЕсли; + + Поиск.ПредставлениеПоля = ВРег(Данные.Поле); + + Возврат ИндексПоляПоПредставлению(ИндексСтруктурыОтчета, Поиск, ОбработанныеПоля); + +КонецФункции + +Функция ИндексПоляПоПредставлению(ИндексСтруктурыОтчета, Поиск, ОбработанныеПоля) + + НайденныеПоля = ИндексСтруктурыОтчета.НайтиСтроки(Поиск); + + ПодходящееПоле = ИндексПоляНеобработанный( + ИндексСтруктурыОтчета, Поиск.ПредставлениеПоля, НайденныеПоля, ОбработанныеПоля); + + Если ПодходящееПоле <> Неопределено Тогда + Возврат ПодходящееПоле; + КонецЕсли; + + ОбластьВладельцаСРеквизитами = СтрНайти(Поиск.ПредставлениеПоля, ",") > 0; + + Если ОбластьВладельцаСРеквизитами Тогда + Поиск.ПредставлениеПоля = СтрРазделить(Поиск.ПредставлениеПоля, ",")[0]; + КонецЕсли; + + ОписаниеЗаголовка = СтрРазделить(Поиск.ПредставлениеПоля, "."); + + ПоискРаздела = Новый Структура("ПорядокРаздела", Поиск.ПорядокРаздела); + НайденныеПоля = ИндексСтруктурыОтчета.НайтиСтроки(ПоискРаздела); + + Для Каждого ИндексПоля Из НайденныеПоля Цикл + + ОписаниеПредставления = СтрРазделить(ИндексПоля.ПредставлениеПоля, "."); + + КоличествоСовпадений = 0; + + Для Каждого Фрагмент Из ОписаниеЗаголовка Цикл + + НормализованныйФрагмент = СокрЛП(Фрагмент); + + Если ОписаниеПредставления.Найти(НормализованныйФрагмент) <> Неопределено Тогда + КоличествоСовпадений = КоличествоСовпадений + 1; + КонецЕсли; + + КонецЦикла; + + Если ОбластьВладельцаСРеквизитами + И КоличествоСовпадений = ОписаниеПредставления.Количество() + Или Не ОбластьВладельцаСРеквизитами + И КоличествоСовпадений = ОписаниеЗаголовка.Количество() Тогда + + Возврат ИндексПоля; + КонецЕсли; + + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + +Функция ИндексПоляНеобработанный(ИндексСтруктурыОтчета, ПредставлениеПоля, НайденныеПоля, ОбработанныеПоля) + + Если НайденныеПоля.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + + Если НайденныеПоля.Количество() = 1 Тогда + Возврат НайденныеПоля[0]; + КонецЕсли; + + ОбработанныеИндексы = ОбработанныеПоля[ПредставлениеПоля]; + + Если ОбработанныеИндексы = Неопределено Тогда + + ПодходящееПоле = НайденныеПоля[0]; + + ОбработанныеИндексы = Новый Соответствие; + ОбработанныеИндексы.Вставить(ИндексСтруктурыОтчета.Индекс(ПодходящееПоле), ПодходящееПоле); + + ОбработанныеПоля.Вставить(ПредставлениеПоля, ОбработанныеИндексы); + + Возврат ПодходящееПоле; + + КонецЕсли; + + ПодходящееПоле = Неопределено; + + Для Каждого НайденноеПоле Из НайденныеПоля Цикл + + ИндексПоля = ИндексСтруктурыОтчета.Индекс(НайденноеПоле); + + Если ОбработанныеИндексы[ИндексПоля] = Неопределено Тогда + + ПодходящееПоле = НайденноеПоле; + Прервать; + + КонецЕсли; + + КонецЦикла; + + Если ПодходящееПоле = Неопределено Тогда + Возврат НайденныеПоля[0]; + КонецЕсли; + + ОбработанныеИндексы.Вставить(ИндексПоля, ПодходящееПоле); + ОбработанныеПоля.Вставить(ПредставлениеПоля, ОбработанныеИндексы); + + Возврат ПодходящееПоле; + +КонецФункции + +Процедура ВставитьИндикаторСортировки(ИндексПоля, СвойстваЗаголовка, Ячейка) + + Если Не ИндексПоля.ПолеСортируется Тогда + Возврат; + КонецЕсли; + + Если ИндексПоля.НаправлениеСортировки = НаправлениеСортировкиКомпоновкиДанных.Возр Тогда + + СвойстваЗаголовка.СортироватьПоВозрастанию = Ложь; + Ячейка.Картинка = БиблиотекаКартинок.СортироватьСтрокиПоВозрастанию; + + ИначеЕсли ИндексПоля.НаправлениеСортировки = НаправлениеСортировкиКомпоновкиДанных.Убыв Тогда + + СвойстваЗаголовка.СортироватьПоУбыванию = Ложь; + Ячейка.Картинка = БиблиотекаКартинок.СортироватьСтрокиПоУбыванию; + + КонецЕсли; + + Ячейка.РазмерКартинки = РазмерКартинки.РеальныйРазмер; + Ячейка.ГоризонтальноеПоложениеКартинки = ГоризонтальноеПоложение.Право; + Ячейка.ВертикальноеПоложениеКартинки = ВертикальноеПоложение.Верх; + +КонецПроцедуры + +#Область Конструкторы + +Функция СтандартныйРазрезСвойствЗаголовковОтчета() + + ОписаниеЧисла = Новый ОписаниеТипов("Число"); + ОписаниеСтроки = Новый ОписаниеТипов("Строка"); + + Свойства = Новый ТаблицаЗначений; + Свойства.Колонки.Добавить("Верх", ОписаниеЧисла); + Свойства.Колонки.Добавить("Лево", ОписаниеЧисла); + Свойства.Колонки.Добавить("Низ", ОписаниеЧисла); + Свойства.Колонки.Добавить("Право", ОписаниеЧисла); + Свойства.Колонки.Добавить("Имя", ОписаниеСтроки); + Свойства.Колонки.Добавить("Расшифровка"); + + Возврат Свойства; + +КонецФункции + +// Возвращаемое значение: +// Структура: +// * ИдентификаторИндекса - УникальныйИдентификатор +// * ОформитьПоложительные - Булево +// * ОформитьОтрицательные - Булево +// * СортироватьПоУбыванию - Булево +// * СортироватьПоВозрастанию - Булево +// * ПереместитьПолеНиже - Булево +// * ПереместитьПолеВыше - Булево +// * ПереместитьПолеВправо - Булево +// * ПереместитьПолеВлево - Булево +// * ВставитьГруппировкуНиже - Булево +// * ВставитьГруппировкуВыше - Булево +// * ВставитьПолеСправа - Булево +// * ВставитьПолеСлева - Булево +// * ИспользуетсяВПоляхГруппировки - Булево +// * ТипПоля - Тип +// * ТипЗначения - ОписаниеТипов +// * Ресурс - Булево +// * Измерение - Булево +// * Период - Булево +// * НаправлениеСортировки - НаправлениеСортировкиКомпоновкиДанных +// - Неопределено +// * ПолеСортируется - Булево +// * Поле - ПолеКомпоновкиДанных +// * ИдентификаторПоля - ИдентификаторКомпоновкиДанных +// * ИдентификаторГруппировки - ИдентификаторКомпоновкиДанных +// * ИдентификаторРаздела - ИдентификаторКомпоновкиДанных +// * ИдентификаторНастроек - ИдентификаторКомпоновкиДанных +// * ПорядокПоля - Число +// * ПорядокГруппировки - Число +// * ПорядокРаздела - Число +// * КоличествоРодительскихЗаголовков - Число +// * КоличествоДочернихЗаголовков - Число +// * Расшифровка - ИдентификаторРасшифровкиКомпоновкиДанных +// - Неопределено +// * Право - Число +// * Лево - Число +// * Низ - Число +// * Верх - Число +// * Текст - Строка +// +Функция СтандартныеСвойстваЗаголовкаОтчета() Экспорт + + Свойства = Новый Структура; + Свойства.Вставить("Текст", ""); + Свойства.Вставить("Верх", 0); + Свойства.Вставить("Низ", 0); + Свойства.Вставить("Лево", 0); + Свойства.Вставить("Право", 0); + Свойства.Вставить("Расшифровка", Неопределено); + + Свойства.Вставить("КоличествоДочернихЗаголовков", 0); + Свойства.Вставить("КоличествоРодительскихЗаголовков", 0); + + Свойства.Вставить("ПорядокРаздела", 0); + Свойства.Вставить("КоличествоРазделов", 0); + Свойства.Вставить("ПорядокГруппировки", 0); + Свойства.Вставить("ПорядокПоля", 0); + + Свойства.Вставить("ИдентификаторНастроек", Неопределено); + Свойства.Вставить("ИдентификаторРаздела", Неопределено); + Свойства.Вставить("ИдентификаторГруппировки", Неопределено); + Свойства.Вставить("ИдентификаторПоля", Неопределено); + + Свойства.Вставить("Поле", Неопределено); + Свойства.Вставить("ПолеСортируется", Ложь); + Свойства.Вставить("НаправлениеСортировки", Неопределено); + + Свойства.Вставить("Период", Ложь); + Свойства.Вставить("Измерение", Ложь); + Свойства.Вставить("Ресурс", Ложь); + + Свойства.Вставить("ТипЗначения", Неопределено); + Свойства.Вставить("ТипПоля", Неопределено); + Свойства.Вставить("ИспользуетсяВПоляхГруппировки", Ложь); + + Свойства.Вставить("ВставитьПолеСлева", Ложь); + Свойства.Вставить("ВставитьПолеСправа", Ложь); + Свойства.Вставить("ВставитьГруппировкуВыше", Ложь); + Свойства.Вставить("ВставитьГруппировкуНиже", Ложь); + + Свойства.Вставить("ПереместитьПолеВлево", Ложь); + Свойства.Вставить("ПереместитьПолеВправо", Ложь); + Свойства.Вставить("ПереместитьПолеВыше", Ложь); + Свойства.Вставить("ПереместитьПолеНиже", Ложь); + + Свойства.Вставить("СортироватьПоВозрастанию", Истина); + Свойства.Вставить("СортироватьПоУбыванию", Истина); + + Свойства.Вставить("ОформитьОтрицательные", Ложь); + Свойства.Вставить("ОформитьПоложительные", Ложь); + + Свойства.Вставить("ИдентификаторИндекса", Неопределено); + + Возврат Свойства; + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область ДанныеЭлементаРасшифровки + +Функция ДанныеЭлементаРасшифровки(Форма, Расшифровка) Экспорт + + Если Не РежимВариантаОтчета(Форма.КлючТекущегоВарианта) + Или Не Форма.НастройкиОтчета.РазрешеноИзменятьВарианты + Или Не ТипЗнч(Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда + + Возврат Неопределено; + КонецЕсли; + + Отчет = Форма.Отчет; + Данные = ПолучитьИзВременногоХранилища(Форма.ОтчетДанныеРасшифровки); + ЭлементРасшифровки = Данные.Элементы.Получить(Расшифровка); + + Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда + ТипЭлементаРасшифровки = ТипГруппировка(); + Иначе + ТипЭлементаРасшифровки = ТипРеквизит(); + КонецЕсли; + + ДанныеЭлементаРасшифровки = Новый Структура; + ДанныеЭлементаРасшифровки.Вставить("Тип", ТипЭлементаРасшифровки); + ДанныеЭлементаРасшифровки.Вставить("Настройки", Данные.Настройки); + ДанныеЭлементаРасшифровки.Вставить("Отбор", ОтборЭлементаРасшифровки(ЭлементРасшифровки)); + + Поля = ЭлементРасшифровки.ПолучитьПоля(); + + Если Поля.Количество() = 0 Тогда + + ДанныеЭлементаРасшифровки.Вставить("Значение", Неопределено); + ДанныеЭлементаРасшифровки.Вставить("Поле", ""); + + Иначе + + СвойстваПоля = Поля[0]; + + ДанныеЭлементаРасшифровки.Вставить("Значение", ?(СвойстваПоля.Значение = Null, Неопределено, СвойстваПоля.Значение)); + ДанныеЭлементаРасшифровки.Вставить("Поле", СвойстваПоля.Поле); + + КонецЕсли; + + ДанныеЭлементаРасшифровки.Вставить("ЭтоСсылка", ОбщегоНазначения.ЭтоСсылка(ТипЗнч(ДанныеЭлементаРасшифровки.Значение))); + + ДоступныеВидыСравнения = Новый СписокЗначений; + + Если ЗначениеЗаполнено(ДанныеЭлементаРасшифровки.Поле) Тогда + + ДоступноеПоле = Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляВыбора.НайтиПоле( + Новый ПолеКомпоновкиДанных(ДанныеЭлементаРасшифровки.Поле)); + + Если ДоступноеПоле = Неопределено Тогда + + ДанныеЭлементаРасшифровки.Вставить("ТипЗначения", Тип("Неопределено")); + ДанныеЭлементаРасшифровки.Вставить("Ресурс", Ложь); + + Иначе + + ДанныеЭлементаРасшифровки.Вставить("ТипЗначения", ДоступноеПоле.ТипЗначения); + ДанныеЭлементаРасшифровки.Вставить("Ресурс", ДоступноеПоле.Ресурс); + + Если ДанныеЭлементаРасшифровки.Значение = Неопределено Тогда + + Область = Форма.ОтчетТабличныйДокумент.ТекущаяОбласть; + ДанныеЭлементаРасшифровки.Значение = ДоступноеПоле.ТипЗначения.ПривестиЗначение(Область.Текст); + + КонецЕсли; + + КонецЕсли; + + ДоступноеПолеОтбора = Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле( + Новый ПолеКомпоновкиДанных(ДанныеЭлементаРасшифровки.Поле)); + + Если ДоступноеПолеОтбора <> Неопределено Тогда + ДоступныеВидыСравнения = ДоступноеПолеОтбора.ДоступныеВидыСравнения; + КонецЕсли; + + Иначе + + ДанныеЭлементаРасшифровки.Вставить("ТипЗначения", Тип("Неопределено")); + ДанныеЭлементаРасшифровки.Вставить("Ресурс", Ложь); + + КонецЕсли; + + Если ДоступныеВидыСравнения.Количество() = 0 Тогда + + Для Каждого Вид Из ВидСравненияКомпоновкиДанных Цикл + ДоступныеВидыСравнения.Добавить(Вид); + КонецЦикла; + + КонецЕсли; + + Если ДоступныеВидыСравнения.НайтиПоЗначению("СнятьФильтр") = Неопределено Тогда + ДоступныеВидыСравнения.Вставить(0, "СнятьФильтр", НСтр("ru = 'Снять фильтр'")); + КонецЕсли; + + Если ДоступныеВидыСравнения.НайтиПоЗначению("ФильтроватьЕще") = Неопределено Тогда + ДоступныеВидыСравнения.Добавить("ФильтроватьЕще", НСтр("ru = 'Еще...'")); + КонецЕсли; + + ДанныеЭлементаРасшифровки.Вставить("ДоступныеВидыСравнения", ДоступныеВидыСравнения); + + Возврат ДанныеЭлементаРасшифровки; + +КонецФункции + +Функция ОтборЭлементаРасшифровки(ЭлементРасшифровки, Результат = Неопределено) + + Если Результат = Неопределено Тогда + Результат = Новый Соответствие; + КонецЕсли; + + Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда + + Поля = ЭлементРасшифровки.ПолучитьПоля(); + + Для каждого Поле Из Поля Цикл + + Если Поле.Значение <> Null Тогда + Результат.Вставить(Поле.Поле, Поле.Значение); + КонецЕсли; + + КонецЦикла; + КонецЕсли; + + Родители = ЭлементРасшифровки.ПолучитьРодителей(); + + Для Каждого Родитель Из Родители Цикл + ОтборЭлементаРасшифровки(Родитель, Результат); + КонецЦикла; + + Возврат Результат; + +КонецФункции + +Функция ТипГруппировка() + + Возврат "Группировка"; + +КонецФункции + +Функция ТипРеквизит() + + Возврат "Реквизит"; + +КонецФункции + +#КонецОбласти + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ВариантыОтчетовСлужебный/ВариантыОтчетовСлужебный.mdo b/SSL/src/CommonModules/ВариантыОтчетовСлужебный/ВариантыОтчетовСлужебный.mdo new file mode 100644 index 000000000..6db6658db --- /dev/null +++ b/SSL/src/CommonModules/ВариантыОтчетовСлужебный/ВариантыОтчетовСлужебный.mdo @@ -0,0 +1,10 @@ + + + ВариантыОтчетовСлужебный + + ru + Варианты отчетов служебный + + true + true + diff --git a/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиент/Module.bsl new file mode 100644 index 000000000..4bd23e025 --- /dev/null +++ b/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиент/Module.bsl @@ -0,0 +1,3358 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// Элемент - ПолеФормы +// - РасширениеПоляФормыДляПоляТабличногоДокумента +// Область - ОбластьЯчеекТабличногоДокумента +// +Процедура ПоказатьКонтекстнуюНастройкуОтчета(Форма, Элемент, Область, СтандартнаяОбработка) Экспорт + + Если ТипЗнч(Область) <> Тип("ОбластьЯчеекТабличногоДокумента") + Или Область.ТипОбласти <> ТипОбластиЯчеекТабличногоДокумента.Прямоугольник + Или Область.Расшифровка <> Неопределено + И ТипЗнч(Область.Расшифровка) <> Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда + + Возврат; + КонецЕсли; + + НастройкиОтчета = Форма.НастройкиОтчета; // см. ВариантыОтчетов.НастройкиФормыОтчета + СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета + + Заголовки = СвойстваРезультата.Заголовки; + + Область = Элемент.ТекущаяОбласть; // ОбластьЯчеекТабличногоДокумента + СвойстваЗаголовка = Заголовки[Область.Имя]; // + + Если ТипЗнч(СвойстваЗаголовка) <> Тип("Структура") Тогда + Возврат; + КонецЕсли; + + КомпоновщикНастроек = Форма.Отчет.КомпоновщикНастроек; + + КэшЗначенийОтборов = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( + КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства, "КэшЗначенийОтборов", Новый Соответствие); + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("НастройкиОтчета", НастройкиОтчета); + ПараметрыФормы.Вставить("КомпоновщикНастроек", КомпоновщикНастроек); + ПараметрыФормы.Вставить("ДанныеРасшифровки", Форма.ОтчетДанныеРасшифровки); + ПараметрыФормы.Вставить("Документ", Форма.ОтчетТабличныйДокумент); + ПараметрыФормы.Вставить("Заголовки", Заголовки); + ПараметрыФормы.Вставить("СвойстваЗаголовка", СвойстваЗаголовка); + ПараметрыФормы.Вставить("КэшЗначенийОтборов", КэшЗначенийОтборов); + + ОткрытьФорму( + "ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.КонтекстнаяНастройкаОтчета", + ПараметрыФормы, + Форма, + Форма.УникальныйИдентификатор); + + СтандартнаяОбработка = Ложь + +КонецПроцедуры + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// Элемент - ПолеФормы +// - РасширениеПоляФормыДляПоляТабличногоДокумента +// Расшифровка - ИдентификаторКомпоновкиДанных +// СтандартнаяОбработка - Булево +// +Процедура ОбработкаРасшифровки(Форма, Элемент, Расшифровка, СтандартнаяОбработка) Экспорт + + НастройкиОтчета = Форма.НастройкиОтчета; // см. ВариантыОтчетов.НастройкиФормыОтчета + СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета + ТекущаяОбласть = Элемент.ТекущаяОбласть; // ОбластьЯчеекТабличногоДокумента + + Заголовки = СвойстваРезультата.Заголовки[ТекущаяОбласть.Имя]; + + Если ТипЗнч(Заголовки) = Тип("Структура") Тогда + + СтандартнаяОбработка = Ложь; + Форма.Элементы.КонтекстноеМенюОбластиЗаголовка.Видимость = Истина; + Возврат; + + КонецЕсли; + +КонецПроцедуры + +Процедура ОбработкаДополнительнойРасшифровки(Форма, Данные, Элемент, Расшифровка, СтандартнаяОбработка) Экспорт + + Если Данные = Неопределено Тогда + Возврат; + КонецЕсли; + + СтандартнаяОбработка = Ложь; + + ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных( + Форма.ОтчетДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(Форма.НастройкиОтчета.АдресСхемы)); + + ОсновноеМеню = Новый Массив; + + СвойстваОбласти = СвойстваОбластиРасшифровки(Форма, Элемент.ТекущаяОбласть, Данные.Поле); + + Если СвойстваОбласти.ЭтоЗаголовок Тогда + ДополнительноеМеню = КонтекстноеМенюОбластиЗаголовка(); + Иначе + ОсновноеМеню.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать); + ДополнительноеМеню = КонтекстноеМенюОбластиДанных(Данные.ДоступныеВидыСравнения); + КонецЕсли; + + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("Форма", Форма); + ДополнительныеПараметры.Вставить("Данные", Данные); + ДополнительныеПараметры.Вставить("Расшифровка", Расшифровка); + ДополнительныеПараметры.Вставить("ОбработкаРасшифровки", ОбработкаРасшифровки); + ДополнительныеПараметры.Вставить("СвойстваОбласти", СвойстваОбласти); + ДополнительныеПараметры.Вставить("Меню", ДополнительноеМеню); + + Обработчик = Новый ОписаниеОповещения("ВыполнитьРасшифровку", ЭтотОбъект, ДополнительныеПараметры); + ОбработкаРасшифровки.ПоказатьВыборДействия(Обработчик, Расшифровка, ОсновноеМеню, ДополнительноеМеню); + +КонецПроцедуры + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// Элемент - ПолеФормы +// - РасширениеПоляФормыДляПоляТабличногоДокумента +// +Процедура ПриАктивизацииРезультатаОтчета(Форма, Элемент) Экспорт + + Область = Элемент.ТекущаяОбласть; // ОбластьЯчеекТабличногоДокумента + + Если ТипЗнч(Область) <> Тип("ОбластьЯчеекТабличногоДокумента") Тогда + Возврат; + КонецЕсли; + + НастройкиОтчета = Форма.НастройкиОтчета; // см. ВариантыОтчетов.НастройкиФормыОтчета + СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета + Элементы = Форма.Элементы; + + Заголовки = СвойстваРезультата.Заголовки[Область.Имя]; + Элементы.КонтекстноеМенюОбластиЗаголовка.Видимость = (ТипЗнч(Заголовки) = Тип("Структура")); + Элементы.КонтекстноеМенюОбластиДанных.Видимость = Не Элементы.КонтекстноеМенюОбластиЗаголовка.Видимость + И Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник + И ТипЗнч(Область.Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных"); + + ВариантыОтчетовСлужебныйКлиентСервер.ОпределитьДоступностьДействийКонтекстногоМеню(Форма, Заголовки); + +КонецПроцедуры + +Функция ЭтоСобытиеКонтекстнойНастройки(Событие) Экспорт + + События = СобытияКонтекстнойНастройки(); + + Возврат События[Событие] = Истина; + +КонецФункции + +#Область ОбработчикиКомандКонтекстногоМенюТабличногоДокументаРезультатОтчета + +#Область ВставкаПоляИлиГруппировки + +Процедура ВставитьПолеСлева(Форма, Команда) Экспорт + + ВыбратьПолеОтчетаИзМеню(Форма, Команда); + +КонецПроцедуры + +Процедура ВставитьПолеСправа(Форма, Команда) Экспорт + + ВыбратьПолеОтчетаИзМеню(Форма, Команда); + +КонецПроцедуры + +Процедура ВставитьГруппировкуВыше(Форма, Команда) Экспорт + + ВыбратьПолеОтчетаИзМеню(Форма, Команда); + +КонецПроцедуры + +Процедура ВставитьГруппировкуНиже(Форма, Команда) Экспорт + + ВыбратьПолеОтчетаИзМеню(Форма, Команда); + +КонецПроцедуры + +#КонецОбласти + +#Область ПеремещениеПоля + +Процедура ПереместитьПолеВлево(Форма, Команда) Экспорт + + ПереместитьПолеГоризонтально(Форма, Команда); + +КонецПроцедуры + +Процедура ПереместитьПолеВправо(Форма, Команда) Экспорт + + ПереместитьПолеГоризонтально(Форма, Команда); + +КонецПроцедуры + +Процедура ПереместитьПолеВыше(Форма, Команда) Экспорт + + ПереместитьПолеВертикально(Форма, Команда); + +КонецПроцедуры + +Процедура ПереместитьПолеНиже(Форма, Команда) Экспорт + + ПереместитьПолеВертикально(Форма, Команда); + +КонецПроцедуры + +#КонецОбласти + +#Область Оформление + +Процедура ОформитьКрасным(Форма, Команда, СвойстваЗаголовка = Неопределено, Значение = Неопределено) Экспорт + + Если СвойстваЗаголовка = Неопределено Тогда + СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма); + КонецЕсли; + + ДействиеКоманды = ДействиеКоманды(Команда); + + ПараметрыРаскраски = ПараметрыРаскраскиРазделаОтчета(ДействиеКоманды); + ПараметрыРаскраски.Условие.ЛевоеЗначение = СвойстваЗаголовка.Поле; + + Если ДействиеКоманды = "ОформитьОтрицательные" Тогда + + Если Не ДействиеНадПолемДоступно(ДействиеКоманды, СвойстваЗаголовка) Тогда + Возврат; + КонецЕсли; + + ПараметрыРаскраски.Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше; + ПараметрыРаскраски.Условие.ПравоеЗначение = 0; + + Иначе + + ПараметрыРаскраски.Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ПараметрыРаскраски.Условие.ПравоеЗначение = Значение; + + КонецЕсли; + + ЭлементыСтиля = СтандартныеПодсистемыКлиент.ЭлементыСтиля(); + + Оформление = СтандартныйПараметрРаскраскиРазделаОтчета(); + Оформление.Параметр = "ЦветТекста"; + Оформление.Значение = ЭлементыСтиля.ЦветТекстаОтрицательногоЗначения; + + ПараметрыРаскраски.Оформление.Добавить(Оформление); + + Оформление = СтандартныйПараметрРаскраскиРазделаОтчета(); + Оформление.Параметр = "ЦветФона"; + Оформление.Значение = ЭлементыСтиля.ЦветФонаОтрицательногоЗначения; + + ПараметрыРаскраски.Оформление.Добавить(Оформление); + + РаскраситьРазделОтчета(Форма, ПараметрыРаскраски, СвойстваЗаголовка); + + ОповеститьОЗавершенииКонтекстнойНастройки(Форма, ДействиеКоманды(Команда)); + +КонецПроцедуры + +Процедура ОформитьЗеленым(Форма, Команда, СвойстваЗаголовка = Неопределено, Значение = Неопределено) Экспорт + + Если СвойстваЗаголовка = Неопределено Тогда + СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма); + КонецЕсли; + + ДействиеКоманды = ДействиеКоманды(Команда); + + ПараметрыРаскраски = ПараметрыРаскраскиРазделаОтчета(ДействиеКоманды); + ПараметрыРаскраски.Условие.ЛевоеЗначение = СвойстваЗаголовка.Поле; + + Если ДействиеКоманды = "ОформитьПоложительные" Тогда + + Если Не ДействиеНадПолемДоступно(ДействиеКоманды, СвойстваЗаголовка) Тогда + Возврат; + КонецЕсли; + + ПараметрыРаскраски.Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше; + ПараметрыРаскраски.Условие.ПравоеЗначение = 0; + + Иначе + + ПараметрыРаскраски.Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ПараметрыРаскраски.Условие.ПравоеЗначение = Значение; + + КонецЕсли; + + ЭлементыСтиля = СтандартныеПодсистемыКлиент.ЭлементыСтиля(); + + Оформление = СтандартныйПараметрРаскраскиРазделаОтчета(); + Оформление.Параметр = "ЦветТекста"; + Оформление.Значение = ЭлементыСтиля.ЦветТекстаПоложительногоЗначения; + + ПараметрыРаскраски.Оформление.Добавить(Оформление); + + Оформление = СтандартныйПараметрРаскраскиРазделаОтчета(); + Оформление.Параметр = "ЦветФона"; + Оформление.Значение = ЭлементыСтиля.ЦветФонаПоложительногоЗначения; + + ПараметрыРаскраски.Оформление.Добавить(Оформление); + + РаскраситьРазделОтчета(Форма, ПараметрыРаскраски, СвойстваЗаголовка); + + ОповеститьОЗавершенииКонтекстнойНастройки(Форма, ДействиеКоманды(Команда)); + +КонецПроцедуры + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// Команда - КомандаФормы +// СвойстваЗаголовка - см. ВариантыОтчетовСлужебный.СтандартныеСвойстваЗаголовкаОтчета +// ВысотаСтроки - Число +// - Неопределено +// ПараметрыВысотыСтроки - см. ВариантыОтчетовСлужебный.СтандартныеСвойстваЗаголовкаОтчета +// +Процедура УстановитьВысотуСтроки(Форма, Команда, СвойстваЗаголовка = Неопределено, + ВысотаСтроки = Неопределено, ПараметрыВысотыСтроки = Неопределено) Экспорт + + Если СвойстваЗаголовка = Неопределено Тогда + СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма); + КонецЕсли; + + Если ВысотаСтроки = Неопределено Тогда + + ПараметрыВысотыСтроки = ПараметрыРазмераПоляОтчета(Форма, СвойстваЗаголовка); + + ПараметрыОбработчика = Новый Структура; + ПараметрыОбработчика.Вставить("Форма", Форма); + ПараметрыОбработчика.Вставить("Команда", Команда); + ПараметрыОбработчика.Вставить("СвойстваЗаголовка", СвойстваЗаголовка); + ПараметрыОбработчика.Вставить("ПараметрыРазмераПоля", ПараметрыВысотыСтроки); + + Обработчик = Новый ОписаниеОповещения("ПослеВводаВысотыСтрокиОтчета", ЭтотОбъект, ПараметрыОбработчика); + ПоказатьВводЧисла(Обработчик, ПараметрыВысотыСтроки.Размер, НСтр("ru = 'Высота строки'"), 5); + + Возврат; + + КонецЕсли; + + Если ПараметрыВысотыСтроки = Неопределено + Или ПараметрыВысотыСтроки.Элемент = Неопределено Тогда + + ДобавитьПараметрыРазмераПоляОтчета(Форма, СвойстваЗаголовка, ВысотаСтроки); + Иначе + ОбновитьПараметрыРазмера(ПараметрыВысотыСтроки, ВысотаСтроки); + КонецЕсли; + + ОповеститьОЗавершенииКонтекстнойНастройки(Форма, ДействиеКоманды(Команда)); + +КонецПроцедуры + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// Команда - КомандаФормы +// СвойстваЗаголовка - см. ВариантыОтчетовСлужебный.СтандартныеСвойстваЗаголовкаОтчета +// ШиринаКолонки - Число +// - Неопределено +// ПараметрыШириныКолонки - см. ВариантыОтчетовСлужебный.СтандартныеСвойстваЗаголовкаОтчета +// +Процедура УстановитьШиринуКолонки(Форма, Команда, СвойстваЗаголовка = Неопределено, + ШиринаКолонки = Неопределено, ПараметрыШириныКолонки = Неопределено) Экспорт + + Если СвойстваЗаголовка = Неопределено Тогда + СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма); + КонецЕсли; + + Если ШиринаКолонки = Неопределено Тогда + + ПараметрыШириныКолонки = ПараметрыРазмераПоляОтчета(Форма, СвойстваЗаголовка, "Ширина"); + + ПараметрыОбработчика = Новый Структура; + ПараметрыОбработчика.Вставить("Форма", Форма); + ПараметрыОбработчика.Вставить("Команда", Команда); + ПараметрыОбработчика.Вставить("СвойстваЗаголовка", СвойстваЗаголовка); + ПараметрыОбработчика.Вставить("ПараметрыРазмераПоля", ПараметрыШириныКолонки); + + Обработчик = Новый ОписаниеОповещения("ПослеВводаШириныКолонкиОтчета", ЭтотОбъект, ПараметрыОбработчика); + ПоказатьВводЧисла(Обработчик, ПараметрыШириныКолонки.Размер, НСтр("ru = 'Ширина колонки'"), 5); + + Возврат; + + КонецЕсли; + + Если ПараметрыШириныКолонки = Неопределено + Или ПараметрыШириныКолонки.Элемент = Неопределено Тогда + + ДобавитьПараметрыРазмераПоляОтчета(Форма, СвойстваЗаголовка, ШиринаКолонки, "Ширина"); + Иначе + ОбновитьПараметрыРазмера(ПараметрыШириныКолонки, ШиринаКолонки); + КонецЕсли; + + ОповеститьОЗавершенииКонтекстнойНастройки(Форма, ДействиеКоманды(Команда)); + +КонецПроцедуры + +Процедура ОформитьЕще(Форма, Команда, СвойстваЗаголовка = Неопределено, Значение = Неопределено) Экспорт + + Если СвойстваЗаголовка = Неопределено Тогда + СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма); + КонецЕсли; + + ИспользуемыеНастройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек); + + Раздел = ИспользуемыеНастройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела); + Группировка = ИспользуемыеНастройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторГруппировки); + + ИдентификаторГруппировки = ИспользуемыеНастройки.ПолучитьИдентификаторПоОбъекту(Группировка); + ИдентификаторОформления = ИдентификаторЭлементаОформленияГруппировкиОтчета(Группировка, СвойстваЗаголовка.Поле); + + ПараметрыОформления = Новый Структура; + ПараметрыОформления.Вставить("КомпоновщикНастроек", КомпоновщикНастроекОтчета(Форма)); + ПараметрыОформления.Вставить("НастройкиОтчета", Форма.НастройкиОтчета); + ПараметрыОформления.Вставить("ИдентификаторЭлементаСтруктурыНастроек", ИдентификаторГруппировки); + ПараметрыОформления.Вставить("ИдентификаторКД", ИдентификаторОформления); + ПараметрыОформления.Вставить("Наименование", ""); + ПараметрыОформления.Вставить("Поле", СвойстваЗаголовка.Поле); + ПараметрыОформления.Вставить("Условие", УсловиеОформленияГруппировкиОтчета(СвойстваЗаголовка.Поле, Значение)); + + ПараметрыОбработчика = Новый Структура; + ПараметрыОбработчика.Вставить("Форма", Форма); + ПараметрыОбработчика.Вставить("Раздел", Раздел); + ПараметрыОбработчика.Вставить("Группировка", Группировка); + ПараметрыОбработчика.Вставить("Поле", СвойстваЗаголовка.Поле); + ПараметрыОбработчика.Вставить("Ресурс", СвойстваЗаголовка.Ресурс); + ПараметрыОбработчика.Вставить("Действие", ДействиеКоманды(Команда)); + + Обработчик = Новый ОписаниеОповещения("ПослеИзмененияЭлементаОформленияГруппировкиОтчета", ЭтотОбъект, ПараметрыОбработчика); + + ОткрытьФорму("ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.ЭлементУсловногоОформленияОтчета", + ПараметрыОформления, Форма, Форма.УникальныйИдентификатор,,, Обработчик); + +КонецПроцедуры + +#КонецОбласти + +#Область Фильтрация + +Процедура ПоказатьРасширеннуюНастройкуФильтра(Форма, СвойстваЗаголовка, ПравоеЗначение = Неопределено) Экспорт + + НастройкиОтчета = Форма.НастройкиОтчета; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("КлючТекущегоВарианта", Форма.КлючТекущегоВарианта); + ПараметрыФормы.Вставить("НастройкиОтчета", НастройкиОтчета); + ПараметрыФормы.Вставить("СвойстваЗаголовка", СвойстваЗаголовка); + ПараметрыФормы.Вставить("ПравоеЗначение", ПравоеЗначение); + + ОткрытьФорму( + "ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.РасширеннаяНастройкаФильтраОтчета", + ПараметрыФормы, + Форма, + Форма.УникальныйИдентификатор); + +КонецПроцедуры + +Процедура СнятьФильтр(Форма, СвойстваЗаголовка) Экспорт + + Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек); + + Фильтры = ВариантыОтчетовСлужебныйКлиентСервер.ФильтрыРазделаОтчета(Настройки, СвойстваЗаголовка); + Фильтр = ВариантыОтчетовСлужебныйКлиентСервер.ФильтрРазделаОтчета(Фильтры, СвойстваЗаголовка.Поле); + + Если Фильтр = Неопределено Тогда + + ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'По полю ""%1"" отсутствуют фильтры'"), СвойстваЗаголовка.Текст); + + ПоказатьПредупреждение(, ТекстПредупреждения); + Возврат; + + КонецЕсли; + + Фильтры.Элементы.Удалить(Фильтр); + + ОповеститьОЗавершенииКонтекстнойНастройки(Форма, "СнятьФильтр"); + +КонецПроцедуры + +#КонецОбласти + +#Область ОстальныеДействия + +Процедура СкрытьПоле(Форма, Команда) Экспорт + + СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма); + + Если СвойстваЗаголовка.ИдентификаторНастроек = Неопределено Тогда + Возврат; + КонецЕсли; + + КомпоновщикНастроек = КомпоновщикНастроекОтчета(Форма); + Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек); + Раздел = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела); + + ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Раздел); + + Группировка = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторГруппировки); + ОписаниеПоля = ОписаниеПоляОтчета(КомпоновщикНастроек, СвойстваЗаголовка.Поле); + + Если ОписаниеПоля <> Неопределено + И ОписаниеПоля.Ресурс Тогда + + СкрытьВыбранноеПолеРаздела(Раздел, СвойстваЗаголовка.Поле); + + Иначе + + СкрытьВыбранноеПолеГруппировки(Группировка, СвойстваЗаголовка.Поле); + СкрытьГруппировку(Настройки, Группировка, СвойстваЗаголовка.Поле); + + КонецЕсли; + + ОповеститьОЗавершенииКонтекстнойНастройки(Форма, ДействиеКоманды(Команда)); + +КонецПроцедуры + +Процедура ПереименоватьПоле(Форма, Команда, Заголовок = "") Экспорт + + СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма); + + КомпоновщикНастроек = КомпоновщикНастроекОтчета(Форма); + Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек); + Группировка = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторГруппировки); + + ОписаниеПоля = ОписаниеПоляОтчета(КомпоновщикНастроек, СвойстваЗаголовка.Поле); + + ПолеОтчета = ПолеОтчета(Группировка.Выбор, СвойстваЗаголовка.Поле); + + Если Не ЗначениеЗаполнено(Заголовок) Тогда + + ПараметрыОбработчика = Новый Структура("Форма, Команда", Форма, Команда); + Обработчик = Новый ОписаниеОповещения("ПослеВводаЗаголовкаПоляОтчета", ЭтотОбъект, ПараметрыОбработчика); + + ТекущийЗаголовок = ТекущийЗаголовокПоляОтчета(ПолеОтчета, ОписаниеПоля); + + ЗаголовокДиалога = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Заголовок поля: %1'"), + ?(ОписаниеПоля = Неопределено, Строка(ПолеОтчета), ОписаниеПоля.Заголовок)); + + ПоказатьВводСтроки(Обработчик, ТекущийЗаголовок, ЗаголовокДиалога); + + Возврат; + + КонецЕсли; + + Если ПолеОтчета = Неопределено Тогда + + Раздел = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела); + ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Раздел); + ПолеОтчета = ПолеОтчета(Группировка.Выбор, СвойстваЗаголовка.Поле); + + КонецЕсли; + + Если ПолеОтчета <> Неопределено Тогда + УстановитьЗаголовокПоляОтчета(Заголовок, ПолеОтчета, ОписаниеПоля); + КонецЕсли; + + ОповеститьОЗавершенииКонтекстнойНастройки(Форма, ДействиеКоманды(Команда)); + +КонецПроцедуры + +Процедура Сортировать(Форма, Команда, СвойстваЗаголовка = Неопределено) Экспорт + + Если СвойстваЗаголовка = Неопределено Тогда + СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма); + КонецЕсли; + + Если Не ТипСортировкиРазделаДоступен(Команда, СвойстваЗаголовка) Тогда + Возврат; + КонецЕсли; + + Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек); + + Если СвойстваЗаголовка.КоличествоРазделов = 1 Тогда + + ЭлементыСортировки = Настройки.Порядок.Элементы; + + Иначе + + Раздел = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела); + Группировка = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторГруппировки); + + Если ТипЗнч(Раздел) = Тип("ТаблицаКомпоновкиДанных") + И Раздел.Строки.Количество() = 1 Тогда + + ОсновнаяГруппировка = Раздел.Строки[0]; + ПолеГруппировки = ПолеОтчета(ОсновнаяГруппировка.ПоляГруппировки, СвойстваЗаголовка.Поле); + + Если СвойстваЗаголовка.Ресурс + Или ПолеГруппировки <> Неопределено Тогда + + Группировка = ОсновнаяГруппировка; + КонецЕсли; + + КонецЕсли; + + ЭлементыСортировки = Группировка.Порядок.Элементы; + + КонецЕсли; + + ЭлементСортировки = ЭлементСортировкиРаздела(ЭлементыСортировки, СвойстваЗаголовка.Поле); + + Если ЭлементСортировки = Неопределено Тогда + + Индекс = ИндексЭлементСортировкиРаздела(ЭлементыСортировки, СвойстваЗаголовка.Поле); + ЭлементСортировки = ЭлементыСортировки.Вставить(Индекс, Тип("ЭлементПорядкаКомпоновкиДанных")); + ЭлементСортировки.Поле = СвойстваЗаголовка.Поле; + + КонецЕсли; + + ЭлементСортировки.ТипУпорядочивания = ТипСортировкиРаздела(Команда); + ЭлементСортировки.Использование = Истина; + + ОповеститьОЗавершенииКонтекстнойНастройки(Форма, ДействиеКоманды(Команда)); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область ВставкаПоля + +Процедура ВставитьПоле(КомпоновщикНастроек, Настройки, ВыбранноеПоле, Действие, СвойстваЗаголовка, РолиПолей) + + Раздел = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела); + Группировка = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторГруппировки); + + ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Раздел); + + ВставитьПолеВПоляГруппировки(Группировка.ПоляГруппировки, ВыбранноеПоле, СвойстваЗаголовка.Поле, Действие, РолиПолей); + ВставитьПолеВГруппировкуРаздела(Группировка, ВыбранноеПоле, СвойстваЗаголовка.Поле, Действие, РолиПолей) + +КонецПроцедуры + +Процедура ВставитьПолеВПоляГруппировки(Поля, ВыбранноеПоле, ТекущееПоле, Действие, РолиПолей) + + Если ВыбранноеПоле.Ресурс Тогда + Возврат; + КонецЕсли; + + НайденноеТекущееПоле = ПолеОтчета(Поля, ТекущееПоле); + + Если НайденноеТекущееПоле = Неопределено Тогда + Возврат; + КонецЕсли; + + ТекущееПолеЯвляетсяПериодом = (РолиПолей.Периоды[ТекущееПоле] <> Неопределено); + ВыбранноеПолеЯвляетсяПериодом = (РолиПолей.Периоды[ВыбранноеПоле.Поле] <> Неопределено); + + Если ТекущееПолеЯвляетсяПериодом И Не ВыбранноеПолеЯвляетсяПериодом + Или Не ТекущееПолеЯвляетсяПериодом И ВыбранноеПолеЯвляетсяПериодом Тогда + + Возврат; + КонецЕсли; + + ИндексПоля = Поля.Элементы.Индекс(НайденноеТекущееПоле); + + Если Действие = "ВставитьПолеСправа" Тогда + ИндексПоля = ИндексПоля + 1; + КонецЕсли; + + НайденноеПоле = ПолеОтчета(Поля, ВыбранноеПоле.Поле); + ВставляемоеПоле = Неопределено; + + Если НайденноеПоле <> Неопределено Тогда + + Если Поля.Элементы.Индекс(НайденноеПоле) = ИндексПоля Тогда + + ВставляемоеПоле = НайденноеПоле; + ВставляемоеПоле.Использование = Истина; + + Иначе + Поля.Элементы.Удалить(НайденноеПоле); + КонецЕсли; + + КонецЕсли; + + Если ВставляемоеПоле <> Неопределено Тогда + Возврат; + КонецЕсли; + + ВставляемоеПоле = Поля.Элементы.Вставить(ИндексПоля, Тип("ПолеГруппировкиКомпоновкиДанных")); + ЗаполнитьЗначенияСвойств(ВставляемоеПоле, ВыбранноеПоле); + +КонецПроцедуры + +Процедура ВставитьПолеВГруппировкуРаздела(Группировка, ВыбранноеПоле, ТекущееПоле, Действие, РолиПолей) + + Если ТипЗнч(Группировка) <> Тип("ГруппировкаКомпоновкиДанных") + И ТипЗнч(Группировка) <> Тип("ГруппировкаТаблицыКомпоновкиДанных") Тогда + + Возврат; + КонецЕсли; + + Поля = Группировка.Выбор; + НайденноеТекущееПоле = ПолеОтчета(Поля, ТекущееПоле); + + Если НайденноеТекущееПоле = Неопределено Тогда + + ИндексПоля = 0; + + Иначе + + ИндексПоля = Поля.Элементы.Индекс(НайденноеТекущееПоле); + + Если Действие = "ВставитьПолеСправа" Тогда + ИндексПоля = ИндексПоля + 1; + КонецЕсли; + + КонецЕсли; + + НайденноеПоле = ПолеОтчета(Поля, ВыбранноеПоле.Поле); + ВставляемоеПоле = Неопределено; + ЗаголовокПоля = ВыбранноеПоле.Заголовок; + + Если НайденноеПоле <> Неопределено Тогда + + Если Поля.Элементы.Индекс(НайденноеПоле) = ИндексПоля Тогда + + ВставляемоеПоле = НайденноеПоле; + ВставляемоеПоле.Использование = Истина; + + Иначе + + ЗаголовокПоля = НайденноеПоле.Заголовок; + Поля.Элементы.Удалить(НайденноеПоле); + + КонецЕсли; + + КонецЕсли; + + Если ВставляемоеПоле = Неопределено Тогда + + ВставляемоеПоле = Поля.Элементы.Вставить(ИндексПоля, Тип("ВыбранноеПолеКомпоновкиДанных")); + ЗаполнитьЗначенияСвойств(ВставляемоеПоле, ВыбранноеПоле); + ВставляемоеПоле.Заголовок = ЗаголовокПоля; + + КонецЕсли; + + УстановитьВыводРеквизитовГруппировкиОтдельно(Группировка); + + ВставитьПолеВГруппировкиРаздела(Группировка, ВыбранноеПоле, ТекущееПоле, Действие, РолиПолей); + +КонецПроцедуры + +Процедура ВставитьПолеВГруппировкиРаздела(Родитель, ВыбранноеПоле, ТекущееПоле, Действие, РолиПолей) + + Если Не ВыбранноеПоле.Ресурс Тогда + Возврат; + КонецЕсли; + + Если ТипЗнч(Родитель) = Тип("ТаблицаКомпоновкиДанных") Тогда + Группировки = Родитель.Строки; + Иначе + Группировки = Родитель.Структура; + КонецЕсли; + + Для Каждого Группировка Из Группировки Цикл + ВставитьПолеВГруппировкуРаздела(Группировка, ВыбранноеПоле, ТекущееПоле, Действие, РолиПолей); + КонецЦикла; + +КонецПроцедуры + +Процедура УстановитьВыводРеквизитовГруппировкиОтдельно(Группировка) + + Если ТипЗнч(Группировка) <> Тип("ГруппировкаКомпоновкиДанных") + И Не ТипЗнч(Группировка) <> Тип("ГруппировкаТаблицыКомпоновкиДанных") Тогда + + Возврат; + КонецЕсли; + + ВыводРеквизитов = Группировка.ПараметрыВывода.Элементы.Найти("РасположениеРеквизитов"); + + Если Не ВыводРеквизитов.Использование Тогда + + ВыводРеквизитов.Значение = РасположениеРеквизитовКомпоновкиДанных.Отдельно; + ВыводРеквизитов.Использование = Истина; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ВставкаГруппировки + +// Параметры: +// Действие - НастройкиКомпоновкиДанных +// Действие - Строка +// Поле - ПолеКомпоновкиДанных +// - ДоступноеПолеКомпоновкиДанных +// СвойстваЗаголовка - см. ВариантыОтчетовСлужебный.СтандартныеСвойстваЗаголовкаОтчета +// +Процедура ВставитьГруппировку(Настройки, Действие, Поле, СвойстваЗаголовка) + + Раздел = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела); + Группировка = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторГруппировки); + + КоллекцияГруппировок = КоллекцияГруппировокРаздела( + Раздел, Группировка, СвойстваЗаголовка.ИдентификаторГруппировки, Действие); + + ПеремещаемыеГруппировки = Новый Массив; + + Для Каждого Элемент Из КоллекцияГруппировок.Группировки Цикл + ПеремещаемыеГруппировки.Добавить(Элемент); + КонецЦикла; + + Если ТипЗнч(КоллекцияГруппировок.Группировки) = Тип("КоллекцияЭлементовСтруктурыНастроекКомпоновкиДанных") Тогда + + НоваяГруппировка = КоллекцияГруппировок.Группировки.Вставить( + КоллекцияГруппировок.ИндексГруппировки, Тип("ГруппировкаКомпоновкиДанных")); // ГруппировкаКомпоновкиДанных + + Иначе + + НоваяГруппировка = КоллекцияГруппировок.Группировки.Вставить(КоллекцияГруппировок.ИндексГруппировки); + + КонецЕсли; + + НовоеПоле = НоваяГруппировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); + НовоеПоле.Поле = ?(ТипЗнч(Поле) = Тип("ПолеКомпоновкиДанных"), Поле, Поле.Поле); + НовоеПоле.Использование = Истина; + + НоваяГруппировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); + НоваяГруппировка.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных")); + + Для Каждого Группировка Из ПеремещаемыеГруппировки Цикл + + ПоискЭлементов = Новый Соответствие; + ОтчетыКлиентСервер.СкопироватьРекурсивно( + Настройки, Группировка, НоваяГруппировка.Структура, КоллекцияГруппировок.ИндексГруппировки, ПоискЭлементов); + + КоллекцияГруппировок.Группировки.Удалить(Группировка); + + КонецЦикла; + +КонецПроцедуры + +// Параметры: +// Раздел - НастройкиКомпоновкиДанных +// - НастройкиВложенногоОбъектаКомпоновкиДанных +// - ГруппировкаКомпоновкиДанных +// - КоллекцияЭлементовСтруктурыНастроекКомпоновкиДанных +// - ТаблицаКомпоновкиДанных +// - ГруппировкаТаблицыКомпоновкиДанных +// - КоллекцияЭлементовСтруктурыТаблицыКомпоновкиДанных +// - Неопределено +// Группировка - НастройкиКомпоновкиДанных +// - НастройкиВложенногоОбъектаКомпоновкиДанных +// - ГруппировкаКомпоновкиДанных +// - КоллекцияЭлементовСтруктурыНастроекКомпоновкиДанных +// - ТаблицаКомпоновкиДанных +// - ГруппировкаТаблицыКомпоновкиДанных +// - КоллекцияЭлементовСтруктурыТаблицыКомпоновкиДанных +// - Неопределено +// ИдентификаторГруппировки - ИдентификаторКомпоновкиДанных +// Действие - Строка +// +// Возвращаемое значение: +// Структура: +// * ИндексГруппировки - Число +// * Группировки - КоллекцияЭлементовСтруктурыНастроекКомпоновкиДанных +// - КоллекцияЭлементовСтруктурыТаблицыКомпоновкиДанных +// +Функция КоллекцияГруппировокРаздела(Раздел, Группировка, ИдентификаторГруппировки, Действие) + + Коллекция = Новый Структура; + Коллекция.Вставить("Группировки", Неопределено); + Коллекция.Вставить("ИндексГруппировки", 0); + + Если Действие = "ВставитьГруппировкуНиже" Тогда + + Коллекция.Группировки = Группировка.Структура; + + Возврат Коллекция; + + КонецЕсли; + + Родитель = Группировка.Родитель; // ГруппировкаКомпоновкиДанных, ГруппировкаТаблицыКомпоновкиДанных + + Если Родитель <> Раздел Тогда + + Группировки = Родитель.Структура; // КоллекцияЭлементовСтруктурыНастроекКомпоновкиДанных, КоллекцияЭлементовСтруктурыТаблицыКомпоновкиДанных + Коллекция.Группировки = Группировки; + Коллекция.ИндексГруппировки = Группировки.Индекс(Группировка); + + Возврат Коллекция; + + КонецЕсли; + + Если ТипЗнч(Раздел) = Тип("ТаблицаКомпоновкиДанных") Тогда + + Коллекция.Группировки = ?(СтрНайти(ИдентификаторГруппировки, "/row/") > 0, Раздел.Строки, Раздел.Колонки); + + Иначе + + Коллекция.Группировки = Раздел.Структура; + + КонецЕсли; + + Группировки = Коллекция.Группировки; // КоллекцияЭлементовСтруктурыНастроекКомпоновкиДанных, КоллекцияЭлементовСтруктурыТаблицыКомпоновкиДанных + Коллекция.ИндексГруппировки = Группировки.Индекс(Группировка); + + Возврат Коллекция; + +КонецФункции + +#КонецОбласти + +#Область СкрытиеПоля + +Процедура СкрытьВыбранноеПолеРаздела(Раздел, Поле) + + Если ТипЗнч(Раздел) = Тип("ТаблицаКомпоновкиДанных") Тогда + + Группировки = Раздел.Строки; + + Иначе + + Группировки = Раздел.Структура; + СкрытьВыбранноеПолеГруппировки(Раздел, Поле); + + КонецЕсли; + + Для Каждого Группировка Из Группировки Цикл + + СкрытьВыбранноеПолеГруппировки(Группировка, Поле); + СкрытьВыбранноеПолеРаздела(Группировка, Поле); + + КонецЦикла; + +КонецПроцедуры + +Процедура СкрытьВыбранноеПолеГруппировки(Группировка, Поле) + + Если ТипЗнч(Группировка) <> Тип("ГруппировкаКомпоновкиДанных") + И ТипЗнч(Группировка) <> Тип("ГруппировкаТаблицыКомпоновкиДанных") Тогда + + Возврат; + КонецЕсли; + + ПоляОтчета = ПолеОтчета(Группировка.Выбор, Поле); + + Если ПоляОтчета <> Неопределено Тогда + ПоляОтчета.Использование = Ложь; + КонецЕсли; + + ПоляОтчета = ПолеОтчета(Группировка.ПоляГруппировки, Поле); + + Если ПоляОтчета <> Неопределено Тогда + ПоляОтчета.Использование = Ложь; + КонецЕсли; + +КонецПроцедуры + +Процедура СкрытьГруппировку(Настройки, Группировка, Поле) + + Поля = Группировка.ПоляГруппировки; + + Если Поля.Элементы.Количество() = 0 + И Группировка.Структура.Количество() = 0 Тогда + + Возврат; + КонецЕсли; + + КоличествоИспользуемыхПолей = 0; + + Для Каждого Элемент Из Поля.Элементы Цикл + + Если Элемент.Использование Тогда + КоличествоИспользуемыхПолей = КоличествоИспользуемыхПолей + 1; + КонецЕсли; + + КонецЦикла; + + Если КоличествоИспользуемыхПолей > 0 Тогда + Возврат; + КонецЕсли; + + Группировка.Использование = Ложь; + Группировки = Группировка.Родитель.Структура; + ИндексГруппировки = Группировки.Индекс(Группировка); + + Для Каждого ДочерняяГруппировка Из Группировка.Структура Цикл + + Если Не ДочерняяГруппировка.Использование Тогда + Продолжить; + КонецЕсли; + + ПоискЭлементов = Новый Соответствие; + ОтчетыКлиентСервер.СкопироватьРекурсивно(Настройки, ДочерняяГруппировка, Группировки, ИндексГруппировки, ПоискЭлементов); + + ДочерняяГруппировка.Использование = Ложь; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#Область ПереименованиеПоля + +Процедура ПослеВводаЗаголовкаПоляОтчета(Заголовок, ДополнительныеПараметры) Экспорт + + Если ЗначениеЗаполнено(Заголовок) Тогда + ПереименоватьПоле(ДополнительныеПараметры.Форма, ДополнительныеПараметры.Команда, Заголовок); + КонецЕсли; + +КонецПроцедуры + +Функция ТекущийЗаголовокПоляОтчета(Поле, ОписаниеПоля) + + ТекущийЗаголовок = ""; + + Если Поле <> Неопределено + И ЗначениеЗаполнено(Поле.Заголовок) Тогда + + ТекущийЗаголовок = Поле.Заголовок; + + ИначеЕсли ОписаниеПоля <> Неопределено Тогда + + ТекущийЗаголовок = ОписаниеПоля.Заголовок; + + ИначеЕсли Поле <> Неопределено Тогда + + ТекущийЗаголовок = Строка(Поле); + + КонецЕсли; + + Возврат ТекущийЗаголовок; + +КонецФункции + +Процедура УстановитьЗаголовокПоляОтчета(Заголовок, Поле, ОписаниеПоля) + + Если ОписаниеПоля <> Неопределено + И Заголовок = ОписаниеПоля.Заголовок Тогда + + Поле.Заголовок = ""; + + Иначе + + Поле.Заголовок = Заголовок; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область Фильтрация + +Процедура Фильтровать(Форма, ВидСравнения, СвойстваЗаголовка, ДанныеРасшифровки) + + Если ТипЗнч(ВидСравнения) = Тип("Строка") Тогда + + ПоказатьРасширеннуюНастройкуФильтра(Форма, СвойстваЗаголовка, ДанныеРасшифровки.Значение); + Возврат; + + КонецЕсли; + + Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек); + + Фильтры = ВариантыОтчетовСлужебныйКлиентСервер.ФильтрыРазделаОтчета(Настройки, СвойстваЗаголовка); + Фильтр = ВариантыОтчетовСлужебныйКлиентСервер.ФильтрРазделаОтчета(Фильтры, СвойстваЗаголовка.Поле); + + Если Фильтр = Неопределено Тогда + + Фильтр = Фильтры.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + Фильтр.ЛевоеЗначение = СвойстваЗаголовка.Поле; + + КонецЕсли; + + Фильтр.ВидСравнения = ВидСравнения; + Фильтр.ПравоеЗначение = ДанныеРасшифровки.Значение; + Фильтр.Использование = Истина; + + ОповеститьОЗавершенииКонтекстнойНастройки(Форма, "Фильтровать"); + +КонецПроцедуры + +#КонецОбласти + +#Область Сортировка + +Функция ТипСортировкиРазделаДоступен(Команда, СвойстваЗаголовка) + + ТекстПредупреждения = ""; + ШаблонПредупреждения = НСтр("ru = 'Поле ""%1"" уже отсортировано по %2'"); + + Если СтрЗаканчиваетсяНа(ДействиеКоманды(Команда), "ПоВозрастанию") + И Не СвойстваЗаголовка.СортироватьПоВозрастанию Тогда + + ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ШаблонПредупреждения, СвойстваЗаголовка.Текст, НСтр("ru = 'возрастанию'")); + + ИначеЕсли СтрЗаканчиваетсяНа(ДействиеКоманды(Команда), "ПоУбыванию") + И Не СвойстваЗаголовка.СортироватьПоУбыванию Тогда + + ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ШаблонПредупреждения, СвойстваЗаголовка.Текст, НСтр("ru = 'убыванию'")); + + КонецЕсли; + + Если ЗначениеЗаполнено(ТекстПредупреждения) Тогда + + ПоказатьПредупреждение(, ТекстПредупреждения); + Возврат Ложь; + + КонецЕсли; + + Возврат Истина; + +КонецФункции + +Функция ТипСортировкиРаздела(Команда) + + Если СтрЗаканчиваетсяНа(ДействиеКоманды(Команда), "ПоВозрастанию") Тогда + + Возврат НаправлениеСортировкиКомпоновкиДанных.Возр; + + КонецЕсли; + + Возврат НаправлениеСортировкиКомпоновкиДанных.Убыв; + +КонецФункции + +Функция ЭлементСортировкиРаздела(ЭлементыСортировки, Поле) + + ЭлементСортировки = Неопределено; + + Для Каждого Элемент Из ЭлементыСортировки Цикл + + Если ТипЗнч(Элемент) <> Тип("АвтоЭлементПорядкаКомпоновкиДанных") + И Элемент.Поле = Поле Тогда + + ЭлементСортировки = Элемент; + Прервать; + + КонецЕсли; + + КонецЦикла; + + Возврат ЭлементСортировки; + +КонецФункции + +Функция ИндексЭлементСортировкиРаздела(ЭлементыСортировки, Поле) + + Для Каждого Элемент Из ЭлементыСортировки Цикл + + Если ТипЗнч(Элемент) = Тип("АвтоЭлементПорядкаКомпоновкиДанных") Тогда + Возврат ЭлементыСортировки.Индекс(Элемент); + КонецЕсли; + + КонецЦикла; + + Возврат ЭлементыСортировки.Количество(); + +КонецФункции + +#КонецОбласти + +#Область Оформление + +Процедура ОформитьЖелтым(Форма, Команда, СвойстваЗаголовка = Неопределено, Значение = Неопределено) + + Если СвойстваЗаголовка = Неопределено Тогда + СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма); + КонецЕсли; + + ПараметрыРаскраски = ПараметрыРаскраскиРазделаОтчета(ДействиеКоманды(Команда)); + ПараметрыРаскраски.Условие.ЛевоеЗначение = СвойстваЗаголовка.Поле; + ПараметрыРаскраски.Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ПараметрыРаскраски.Условие.ПравоеЗначение = Значение; + + ЭлементыСтиля = СтандартныеПодсистемыКлиент.ЭлементыСтиля(); + + Оформление = СтандартныйПараметрРаскраскиРазделаОтчета(); + Оформление.Параметр = "ЦветТекста"; + Оформление.Значение = ЭлементыСтиля.ЦветТекстаВнимание; + + ПараметрыРаскраски.Оформление.Добавить(Оформление); + + Оформление = СтандартныйПараметрРаскраскиРазделаОтчета(); + Оформление.Параметр = "ЦветФона"; + Оформление.Значение = ЭлементыСтиля.ЦветФонаВнимание; + + ПараметрыРаскраски.Оформление.Добавить(Оформление); + + РаскраситьРазделОтчета(Форма, ПараметрыРаскраски, СвойстваЗаголовка); + + ОповеститьОЗавершенииКонтекстнойНастройки(Форма, ДействиеКоманды(Команда)); + +КонецПроцедуры + +#Область РаскраскаГруппировкиОтчета + +// Параметры: +// Действие - Строка +// +// Возвращаемое значение: +// Структура: +// * Условие - Структура: +// ** ЛевоеЗначение - ПолеКомпоновкиДанных +// ** ВидСравнения - ВидСравненияКомпоновкиДанных +// ** ПравоеЗначение - Неопределено +// * Массив +// +Функция ПараметрыРаскраскиРазделаОтчета(Действие) + + Условие = Новый Структура; + Условие.Вставить("ЛевоеЗначение", Неопределено); + Условие.Вставить("ВидСравнения", ВидСравненияКомпоновкиДанных.Равно); + Условие.Вставить("ПравоеЗначение", Неопределено); + + ПараметрыРаскраски = Новый Структура; + ПараметрыРаскраски.Вставить("Условие", Условие); + ПараметрыРаскраски.Вставить("Оформление", Новый Массив); + + Возврат ПараметрыРаскраски; + +КонецФункции + +// Возвращаемое значение: +// Структура: +// * Параметр - Строка +// * Значение - Неопределено +// +Функция СтандартныйПараметрРаскраскиРазделаОтчета() + + Параметр = Новый Структура; + Параметр.Вставить("Параметр", ""); + Параметр.Вставить("Значение", Неопределено); + + Возврат Параметр; + +КонецФункции + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// ПараметрыРаскраски - см. ПараметрыРаскраскиРазделаОтчета +// СвойстваЗаголовка - см. ВариантыОтчетовСлужебный.СтандартныеСвойстваЗаголовкаОтчета +// +Процедура РаскраситьРазделОтчета(Форма, ПараметрыРаскраски, СвойстваЗаголовка) + + Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек); + Раздел = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела); + + Если ТипЗнч(Раздел) = Тип("ТаблицаКомпоновкиДанных") Тогда + РаскраситьГруппировкиРазделаОтчета(Раздел.Строки, ПараметрыРаскраски, СвойстваЗаголовка); + Иначе + РаскраситьГруппировкуРазделаОтчета(Раздел, ПараметрыРаскраски, СвойстваЗаголовка); + КонецЕсли; + +КонецПроцедуры + +Процедура РаскраситьГруппировкиРазделаОтчета(Группировки, ПараметрыРаскраски, СвойстваЗаголовка) + + Для Каждого Группировка Из Группировки Цикл + РаскраситьГруппировкуРазделаОтчета(Группировка, ПараметрыРаскраски, СвойстваЗаголовка); + КонецЦикла; + +КонецПроцедуры + +Процедура РаскраситьГруппировкуРазделаОтчета(Группировка, ПараметрыРаскраски, СвойстваЗаголовка) + + Если ТипЗнч(Группировка) = Тип("ТаблицаКомпоновкиДанных") Тогда + + РаскраситьГруппировкиРазделаОтчета(Группировка.Строки, ПараметрыРаскраски, СвойстваЗаголовка); + + Иначе + + ПолеОформления = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыРаскраски.Условие, "ЛевоеЗначение"); + + ПараметрыРаскраскиПрименимы = ОформлениеПрименимоКГруппировке( + Группировка, ПолеОформления, СвойстваЗаголовка.Ресурс); + + Если ПараметрыРаскраскиПрименимы Тогда + + Раскраска = РаскраскаГруппировкиОтчета(Группировка.УсловноеОформление, ПараметрыРаскраски); + + Если Раскраска = Неопределено Тогда + ДобавитьРаскраскуГруппировкиОтчета(Группировка.УсловноеОформление, ПараметрыРаскраски); + КонецЕсли; + + КонецЕсли; + + РаскраситьГруппировкиРазделаОтчета(Группировка.Структура, ПараметрыРаскраски, СвойстваЗаголовка) + + КонецЕсли; + +КонецПроцедуры + +// Параметры: +// Группировка - НастройкиКомпоновкиДанных +// - НастройкиВложенногоОбъектаКомпоновкиДанных +// - ГруппировкаКомпоновкиДанных +// - ДиаграммаКомпоновкиДанных +// - КоллекцияЭлементовСтруктурыДиаграммыКомпоновкиДанных +// - ГруппировкаДиаграммыКомпоновкиДанных +// - КоллекцияЭлементовСтруктурыТаблицыКомпоновкиДанных +// - ГруппировкаТаблицыКомпоновкиДанных +// - Неопределено +// Поле - ПолеКомпоновкиДанных +// - Неопределено +// ЭтоРесурс - Булево +// +// Возвращаемое значение: +// Булево +// +Функция ОформлениеПрименимоКГруппировке(Группировка, Поле, ЭтоРесурс) + + ПоляГруппировки = Группировка.ПоляГруппировки; + + Возврат ЭтоРесурс + Или Поле = Неопределено + Или ПоляГруппировки.Элементы.Количество() = 0 + Или ПолеОтчета(ПоляГруппировки, Поле) <> Неопределено; + +КонецФункции + +Функция РаскраскаГруппировкиОтчета(УсловноеОформление, ПараметрыРаскраски) + + Для Каждого Элемент Из УсловноеОформление.Элементы Цикл + + Условие = УсловиеРаскраскиГруппировкиОтчета(Элемент.Отбор, ПараметрыРаскраски.Условие); + + Если Условие <> Неопределено Тогда + + ОбновитьРаскраскуГруппировкиОтчета(Элемент, Условие, ПараметрыРаскраски); + Возврат Элемент; + + КонецЕсли; + + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + +Функция УсловиеРаскраскиГруппировкиОтчета(Отбор, Поиск) + + Условие = Неопределено; + + Для Каждого Элемент Из Отбор.Элементы Цикл + + Если ТипЗнч(Элемент) = Тип("ЭлементОтбораКомпоновкиДанных") + И Элемент.ЛевоеЗначение = Поиск.ЛевоеЗначение + И Элемент.ВидСравнения = Поиск.ВидСравнения + И Элемент.ПравоеЗначение = Поиск.ПравоеЗначение Тогда + + Условие = Элемент; + Прервать; + + КонецЕсли; + + КонецЦикла; + + Возврат Условие; + +КонецФункции + +Процедура ОбновитьРаскраскуГруппировкиОтчета(Оформление, Условие, ПараметрыРаскраски) + + Оформление.Использование = Истина; + Условие.Использование = Истина; + + Оформление.Поля.Элементы.Очистить(); + + Поле = Оформление.Поля.Элементы.Добавить(); + Поле.Поле = ПараметрыРаскраски.Условие.ЛевоеЗначение; + Поле.Использование = Истина; + + СброситьОформлениеГруппировкиОтчета(Оформление); + + Для Каждого Параметр Из ПараметрыРаскраски.Оформление Цикл + Оформление.Оформление.УстановитьЗначениеПараметра(Параметр.Параметр, Параметр.Значение); + КонецЦикла; + + УстановитьОбластьОформленияГруппировкиОтчета(Оформление); + +КонецПроцедуры + +Процедура ДобавитьРаскраскуГруппировкиОтчета(УсловноеОформление, ПараметрыРаскраски) + + Оформление = УсловноеОформление.Элементы.Добавить(); + + Условие = Оформление.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЗаполнитьЗначенияСвойств(Условие, ПараметрыРаскраски.Условие); + Условие.Использование = Истина; + + Поле = Оформление.Поля.Элементы.Добавить(); + Поле.Поле = ПараметрыРаскраски.Условие.ЛевоеЗначение; + Поле.Использование = Истина; + + Для Каждого Параметр Из ПараметрыРаскраски.Оформление Цикл + Оформление.Оформление.УстановитьЗначениеПараметра(Параметр.Параметр, Параметр.Значение); + КонецЦикла; + + УстановитьОбластьОформленияГруппировкиОтчета(Оформление); + +КонецПроцедуры + +Процедура СброситьОформлениеГруппировкиОтчета(ЭлементОформления, ТолькоПараметры = Истина) + + Для Каждого Элемент Из ЭлементОформления.Оформление.Элементы Цикл + Элемент.Использование = Ложь; + КонецЦикла; + + Если ТолькоПараметры Тогда + Возврат; + КонецЕсли; + + ЭлементОформления.Поля.Элементы.Очистить(); + ЭлементОформления.Отбор.Элементы.Очистить(); + +КонецПроцедуры + +#КонецОбласти + +#Область ИзменениеРазмера + +Процедура ПослеВводаВысотыСтрокиОтчета(ВысотаСтроки, ДополнительныеПараметры) Экспорт + + Если ЗначениеЗаполнено(ВысотаСтроки) Тогда + + УстановитьВысотуСтроки( + ДополнительныеПараметры.Форма, + ДополнительныеПараметры.Команда, + ДополнительныеПараметры.СвойстваЗаголовка, + ВысотаСтроки, + ДополнительныеПараметры.ПараметрыРазмераПоля); + + КонецЕсли; + +КонецПроцедуры + +Процедура ПослеВводаШириныКолонкиОтчета(ШиринаКолонки, ДополнительныеПараметры) Экспорт + + Если ЗначениеЗаполнено(ШиринаКолонки) Тогда + + УстановитьШиринуКолонки( + ДополнительныеПараметры.Форма, + ДополнительныеПараметры.Команда, + ДополнительныеПараметры.СвойстваЗаголовка, + ШиринаКолонки, + ДополнительныеПараметры.ПараметрыРазмераПоля); + + КонецЕсли; + +КонецПроцедуры + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// СвойстваЗаголовка - см. ВариантыОтчетовСлужебный.СтандартныеСвойстваЗаголовкаОтчета +// Ориентация - Строка +// +// Возвращаемое значение: +// Структура: +// * Размер - Число +// * МаксимальныйРазмер - Число +// * МинимальныйРазмер - Число +// * Элемент - ЭлементУсловногоОформления +// * Поле - ПолеКомпоновкиДанных +// +Функция ПараметрыРазмераПоляОтчета(Форма, СвойстваЗаголовка, Ориентация = "Высота") Экспорт + + Если ТипЗнч(СвойстваЗаголовка.ИдентификаторНастроек) <> Тип("ИдентификаторКомпоновкиДанных") Тогда + Возврат СтандартныеПараметрыРазмераПоляОтчета(); + КонецЕсли; + + Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек); + Группировка = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторГруппировки); + + Для Каждого Элемент Из Группировка.УсловноеОформление.Элементы Цикл + + ПараметрыОформления = Элемент.Оформление.Элементы; + + Идентификаторы = ИдентификаторыПараметровРазмераПоля(Ориентация); + МинимальныйРазмер = ПараметрыОформления.Найти(Идентификаторы.МинимальныйРазмер); + МаксимальныйРазмер = ПараметрыОформления.Найти(Идентификаторы.МаксимальныйРазмер); + + Если МинимальныйРазмер.Использование + Или МаксимальныйРазмер.Использование Тогда + + Параметры = СтандартныеПараметрыРазмераПоляОтчета(); + Параметры.Поле = СвойстваЗаголовка.Поле; + Параметры.Элемент = Элемент; + Параметры.МинимальныйРазмер = МинимальныйРазмер; + Параметры.МаксимальныйРазмер = МаксимальныйРазмер; + Параметры.Размер = Макс(МинимальныйРазмер.Значение, МаксимальныйРазмер.Значение); + + Возврат Параметры; + + КонецЕсли; + + КонецЦикла; + + Возврат СтандартныеПараметрыРазмераПоляОтчета(); + +КонецФункции + +Функция ИдентификаторыПараметровРазмераПоля(Ориентация) + + Идентификаторы = Новый Структура; + + Если Ориентация = "Высота" Тогда + + Идентификаторы.Вставить("МинимальныйРазмер", "МинимальнаяВысота"); + Идентификаторы.Вставить("МаксимальныйРазмер", "МаксимальнаяВысота"); + + Иначе + + Идентификаторы.Вставить("МинимальныйРазмер", "МинимальнаяШирина"); + Идентификаторы.Вставить("МаксимальныйРазмер", "МаксимальнаяШирина"); + + КонецЕсли; + + Возврат Идентификаторы; + +КонецФункции + +Процедура ДобавитьПараметрыРазмераПоляОтчета(Форма, СвойстваЗаголовка, Размер, Ориентация = "Высота") + + Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек); + Группировка = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторГруппировки); + + Элемент = Группировка.УсловноеОформление.Элементы.Добавить(); + + ПараметрыОформления = Элемент.Оформление.Элементы; + + Идентификаторы = ИдентификаторыПараметровРазмераПоля(Ориентация); + + Параметры = СтандартныеПараметрыРазмераПоляОтчета(Размер); + Параметры.Поле = СвойстваЗаголовка.Поле; + Параметры.Элемент = Элемент; + Параметры.МинимальныйРазмер = ПараметрыОформления.Найти(Идентификаторы.МинимальныйРазмер); + Параметры.МаксимальныйРазмер = ПараметрыОформления.Найти(Идентификаторы.МаксимальныйРазмер); + + ОбновитьПараметрыРазмера(Параметры, Размер); + +КонецПроцедуры + +Процедура ОбновитьПараметрыРазмера(Параметры, Размер) + + Параметры.Элемент.Использование = Истина; + + Параметры.МинимальныйРазмер.Значение = Размер; + Параметры.МинимальныйРазмер.Использование = Истина; + + Параметры.МаксимальныйРазмер.Значение = Размер; + Параметры.МаксимальныйРазмер.Использование = Истина; + + ПроверитьИзменяемоеПоле(Параметры.Элемент.Поля, Параметры.Поле); + УстановитьОбластьИзмененияРазмера(Параметры.Элемент); + +КонецПроцедуры + +// Параметры: +// Размер - Число +// - Неопределено +// +// Возвращаемое значение: +// Структура: +// * Размер - Число +// - Неопределено +// * МаксимальныйРазмер - Число +// * МинимальныйРазмер - Число +// * Элемент - ЭлементУсловногоОформления +// * Поле - ПолеТабличногоДокумента +// +Функция СтандартныеПараметрыРазмераПоляОтчета(Размер = 0) + + Параметры = Новый Структура; + Параметры.Вставить("Поле", Неопределено); + Параметры.Вставить("Элемент", Неопределено); + Параметры.Вставить("МинимальныйРазмер", Неопределено); + Параметры.Вставить("МаксимальныйРазмер", Неопределено); + Параметры.Вставить("Размер", Размер); + + Возврат Параметры; + +КонецФункции + +// Параметры: +// Поля - ОформляемыеПоляКомпоновкиДанных +// ПолеИскомое - ПолеКомпоновкиДанных +// +Процедура ПроверитьИзменяемоеПоле(Поля, ПолеИскомое) + + Поле = Неопределено; + + Для Каждого Элемент Из Поля.Элементы Цикл + + Если Элемент.Поле = ПолеИскомое Тогда + + Поле = Элемент; + Прервать; + + КонецЕсли; + + КонецЦикла; + + Если Поле = Неопределено Тогда + + Поле = Поля.Элементы.Добавить(); + Поле.Поле = ПолеИскомое; + + КонецЕсли; + + Поле.Использование = Истина; + +КонецПроцедуры + +Процедура УстановитьОбластьИзмененияРазмера(Элемент) + + НеиспользуемыеОбласти = Новый Массив; + НеиспользуемыеОбласти.Добавить("ИспользоватьВОбщемИтоге"); + НеиспользуемыеОбласти.Добавить("ИспользоватьВОтборе"); + НеиспользуемыеОбласти.Добавить("ИспользоватьВПараметрах"); + + ПараметрыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента(); + + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ПараметрыКлиента.ВерсияРежимаСовместимости, "8.3.16.0") >= 0 Тогда + НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеОбщегоИтога"); + КонецЕсли; + + Для Каждого Область Из НеиспользуемыеОбласти Цикл + Элемент[Область] = ИспользованиеУсловногоОформленияКомпоновкиДанных.НеИспользовать; + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#Область РасширенноеОформлениеГруппировкиОтчета + +Функция ЭлементОформленияГруппировкиОтчета(Группировка, Поле) + + Оформление = Группировка.УсловноеОформление; + + Для Каждого ЭлементОформления Из Оформление.Элементы Цикл + + Для Каждого ПолеОформления Из ЭлементОформления.Поля.Элементы Цикл + + Если ПолеОформления.Поле = Поле Тогда + Возврат ЭлементОформления; + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + +Функция ИдентификаторЭлементаОформленияГруппировкиОтчета(Группировка, Поле) + + ЭлементОформления = ЭлементОформленияГруппировкиОтчета(Группировка, Поле); + + Если ЭлементОформления <> Неопределено Тогда + Возврат Группировка.УсловноеОформление.ПолучитьИдентификаторПоОбъекту(ЭлементОформления); + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +Функция УсловиеОформленияГруппировкиОтчета(Поле, Значение) + + Если Значение = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + Условие = Новый Структура; + Условие.Вставить("ЛевоеЗначение", Поле); + Условие.Вставить("ВидСравнения", ВидСравненияКомпоновкиДанных.Равно); + Условие.Вставить("ПравоеЗначение", Значение); + + Возврат Условие; + +КонецФункции + +// Параметры: +// Результат - Структура +// ДополнительныеПараметры - Структура +// +Процедура ПослеИзмененияЭлементаОформленияГруппировкиОтчета(Результат, ДополнительныеПараметры) Экспорт + + Если ТипЗнч(Результат) <> Тип("Структура") Тогда + Возврат; + КонецЕсли; + + ОформитьРазделОтчета( + ДополнительныеПараметры.Раздел, + Результат.ЭлементКД, + ДополнительныеПараметры.Поле, + ДополнительныеПараметры.Ресурс); + + ОповеститьОЗавершенииКонтекстнойНастройки(ДополнительныеПараметры.Форма, ДополнительныеПараметры.Действие); + +КонецПроцедуры + +Процедура ОформитьРазделОтчета(Раздел, ОбразецОформления, Поле, ЭтоРесурс) + + Если ТипЗнч(Раздел) = Тип("ТаблицаКомпоновкиДанных") Тогда + ОформитьГруппировкиРазделаОтчета(Раздел.Строки, ОбразецОформления, Поле, ЭтоРесурс); + Иначе + ОформитьГруппировкуРазделаОтчета(Раздел, ОбразецОформления, Поле, ЭтоРесурс); + КонецЕсли; + +КонецПроцедуры + +Процедура ОформитьГруппировкиРазделаОтчета(Группировки, ОбразецОформления, Поле, ЭтоРесурс) + + Для Каждого Группировка Из Группировки Цикл + ОформитьГруппировкуРазделаОтчета(Группировка, ОбразецОформления, Поле, ЭтоРесурс); + КонецЦикла; + +КонецПроцедуры + +Процедура ОформитьГруппировкуРазделаОтчета(Группировка, ОбразецОформления, Поле, ЭтоРесурс) + + Если ТипЗнч(Группировка) = Тип("ТаблицаКомпоновкиДанных") Тогда + + ОформитьГруппировкиРазделаОтчета(Группировка.Строки, ОбразецОформления, Поле, ЭтоРесурс); + + Иначе + + ОформлениеПрименимоКГруппировке = ОформлениеПрименимоКГруппировке(Группировка, Поле, ЭтоРесурс); + + Если ОформлениеПрименимоКГруппировке Тогда + + Оформление = Группировка.УсловноеОформление; + ЭлементОформления = ЭлементОформленияГруппировкиОтчета(Группировка, Поле); + + Если ЭлементОформления = Неопределено Тогда + ЭлементОформления = Оформление.Элементы.Добавить(); + Иначе + СброситьОформлениеГруппировкиОтчета(ЭлементОформления, Ложь); + КонецЕсли; + + ОтчетыКлиентСервер.ЗаполнитьСвойстваРекурсивно(Оформление, ЭлементОформления, ОбразецОформления); + + УстановитьОбластьОформленияГруппировкиОтчета(ЭлементОформления); + + КонецЕсли; + + ОформитьГруппировкиРазделаОтчета(Группировка.Структура, ОбразецОформления, Поле, ЭтоРесурс); + + КонецЕсли; + +КонецПроцедуры + +Процедура УстановитьОбластьОформленияГруппировкиОтчета(ЭлементОформления) + + НеиспользуемыеОбласти = НеиспользуемыеОбластиОформления(); + + Для Каждого Область Из НеиспользуемыеОбласти Цикл + ЭлементОформления[Область] = ИспользованиеУсловногоОформленияКомпоновкиДанных.НеИспользовать; + КонецЦикла; + +КонецПроцедуры + +Функция НеиспользуемыеОбластиОформления() + + НеиспользуемыеОбласти = Новый Массив; + НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовке"); + НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеПолей"); + НеиспользуемыеОбласти.Добавить("ИспользоватьВОбщемИтоге"); + НеиспользуемыеОбласти.Добавить("ИспользоватьВОтборе"); + НеиспользуемыеОбласти.Добавить("ИспользоватьВПараметрах"); + + ПараметрыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента(); + + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ПараметрыКлиента.ВерсияРежимаСовместимости, "8.3.16.0") < 0 Тогда + Возврат НеиспользуемыеОбласти; + КонецЕсли; + + НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеПолейРесурсов"); + НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеОбщегоИтога"); + НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеПолейРесурсовОбщегоИтога"); + + Возврат НеиспользуемыеОбласти; + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область ОбновлениеПолейРаздела + +Процедура ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Раздел) + + Если ТипЗнч(Раздел) = Тип("ТаблицаКомпоновкиДанных") Тогда + + Группировки = Раздел.Строки; + + Иначе + + ОбновитьПоляГруппировки(КомпоновщикНастроек, Настройки, Раздел); + Группировки = Раздел.Структура; + + КонецЕсли; + + Для Каждого Группировка Из Группировки Цикл + + ОбновитьПоляГруппировки(КомпоновщикНастроек, Настройки, Группировка); + ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Группировка); + + КонецЦикла; + +КонецПроцедуры + +Процедура ОбновитьПоляГруппировки(КомпоновщикНастроек, Настройки, Группировка) + + Если ТипЗнч(Группировка) <> Тип("ГруппировкаКомпоновкиДанных") + И ТипЗнч(Группировка) <> Тип("ГруппировкаТаблицыКомпоновкиДанных") Тогда + + ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Группировка); + КонецЕсли; + + ДобавляемыеПоля = СтандартныеДобавляемыеПоля(); + ИспользуемыеНастройки = ИспользуемыеНастройкиГруппировки(Настройки, Группировка); + + НайтиПоляГруппировки(ИспользуемыеНастройки, Группировка, ДобавляемыеПоля); + НайтиВыбранныеПоляГруппировки(КомпоновщикНастроек, ИспользуемыеНастройки, Группировка, Группировка.Выбор, ДобавляемыеПоля); + + Поля = Группировка.Выбор.Элементы; + Поля.Очистить(); + + СоздатьИерархиюПолейГруппировки(Поля, ДобавляемыеПоля.ИндексГрупп); + + Для Каждого СвойстваПоля Из ДобавляемыеПоля.Свойства Цикл + + СвойстваТекущегоПоля = СвойстваПоля; // см. СвойстваПоля + Родитель = СвойстваТекущегоПоля.Родитель; // см. СвойстваПоля + + Если Родитель = Неопределено Тогда + + Если СвойстваТекущегоПоля.Индекс < Поля.Количество() Тогда + ПолеОтчета = Поля.Вставить(СвойстваТекущегоПоля.Индекс, Тип("ВыбранноеПолеКомпоновкиДанных")); + Иначе + ПолеОтчета = Поля.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); + КонецЕсли; + + Иначе + + ГруппаПолейОтчета = ДобавляемыеПоля.ИндексГрупп[Родитель.Идентификатор]; // ГруппаВыбранныхПолейКомпоновкиДанных + + Если СвойстваТекущегоПоля.Индекс < ГруппаПолейОтчета.Элементы.Количество() Тогда + ПолеОтчета = ГруппаПолейОтчета.Элементы.Вставить(СвойстваТекущегоПоля.Индекс, Тип("ВыбранноеПолеКомпоновкиДанных")); + Иначе + ПолеОтчета = ГруппаПолейОтчета.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); + КонецЕсли; + + КонецЕсли; + + ЗаполнитьЗначенияСвойств(ПолеОтчета, СвойстваТекущегоПоля); + + КонецЦикла; + + ПолеОтчета = Поля.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); + ПолеОтчета.Использование = Ложь; + +КонецПроцедуры + +// Возвращаемое значение: +// Структура: +// * Свойства - Массив из Структура +// * ИндексПолей - Соответствие +// * ИндексГрупп - Соответствие +// +Функция СтандартныеДобавляемыеПоля() + + ДобавляемыеПоля = Новый Структура; + ДобавляемыеПоля.Вставить("Свойства", Новый Массив); + ДобавляемыеПоля.Вставить("ИндексПолей", Новый Соответствие); + ДобавляемыеПоля.Вставить("ИндексГрупп", Новый Соответствие); + + Возврат ДобавляемыеПоля; + +КонецФункции + +Процедура НайтиПоляГруппировки(Настройки, Группировка, ДобавляемыеПоля) + + Если Не ИспользуетсяАвтоПоле(Группировка.Выбор) Тогда + Возврат; + КонецЕсли; + + Для Каждого Элемент Из Группировка.ПоляГруппировки.Элементы Цикл + + Если ТипЗнч(Элемент) = Тип("ПолеГруппировкиКомпоновкиДанных") + И Элемент.Использование Тогда + + ВыбранноеПолеГруппировки = ПолеОтчета(Группировка.Выбор, Элемент.Поле); + ВыбранноеПолеНастроек = ПолеОтчета(Настройки.Выбор, Элемент.Поле); + + Если ВыбранноеПолеГруппировки = Неопределено + И ВыбранноеПолеНастроек = Неопределено Тогда + + ДобавитьПолеГруппировки(ДобавляемыеПоля, Группировка.ПоляГруппировки, Элемент); + + ИначеЕсли ВыбранноеПолеГруппировки = Неопределено + И ВыбранноеПолеНастроек <> Неопределено + И Не ВыбранноеПолеНастроек.Использование Тогда + + ДобавитьПолеГруппировки(ДобавляемыеПоля, Группировка.ПоляГруппировки, Элемент); + + ИначеЕсли ВыбранноеПолеНастроек = Неопределено + И ВыбранноеПолеГруппировки <> Неопределено + И Не ВыбранноеПолеГруппировки.Использование Тогда + + ДобавитьПолеГруппировки(ДобавляемыеПоля, Группировка.ПоляГруппировки, Элемент); + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Процедура НайтиВыбранныеПоляГруппировки(КомпоновщикНастроек, Настройки, Группировка, Поля, ДобавляемыеПоля) + + Для Каждого Элемент Из Поля.Элементы Цикл + + Если ТипЗнч(Элемент) = Тип("АвтоВыбранноеПолеКомпоновкиДанных") Тогда + + НайтиВыбранныеПоляНастроек(КомпоновщикНастроек, Группировка, Настройки.Выбор, Настройки.Выбор, ДобавляемыеПоля); + + ИначеЕсли ТипЗнч(Элемент) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда + + НайтиВыбранныеПоляГруппировки(КомпоновщикНастроек, Настройки, Группировка, Элемент, ДобавляемыеПоля); + + ИначеЕсли РазрешеноИспользоватьПолеВГруппировке(КомпоновщикНастроек, Группировка, Элемент.Поле) Тогда + + ДобавитьПолеГруппировки(ДобавляемыеПоля, Группировка.Выбор, Элемент); + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Процедура НайтиВыбранныеПоляНастроек(КомпоновщикНастроек, Группировка, Узел, Поля, ДобавляемыеПоля) + + Для Каждого Элемент Из Поля.Элементы Цикл + + Если ТипЗнч(Элемент) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда + + НайтиВыбранныеПоляНастроек(КомпоновщикНастроек, Группировка, Узел, Элемент, ДобавляемыеПоля); + + ИначеЕсли ТипЗнч(Элемент) <> Тип("АвтоВыбранноеПолеКомпоновкиДанных") + И РазрешеноИспользоватьПолеВГруппировке(КомпоновщикНастроек, Группировка, Элемент.Поле) Тогда + + ПолеОтчета = ПолеОтчета(Группировка.Выбор, Элемент.Поле); + + Если ПолеОтчета = Неопределено Тогда + ДобавитьПолеГруппировки(ДобавляемыеПоля, Узел, Элемент); + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Функция ИспользуемыеНастройкиГруппировки(Настройки, Группировка) + + Если ТипЗнч(Группировка.Родитель) = Тип("НастройкиКомпоновкиДанных") Тогда + Возврат Группировка.Родитель; + КонецЕсли; + + Возврат Настройки; + +КонецФункции + +Функция ИспользуетсяАвтоПоле(Поля) + + Для Каждого Элемент Из Поля.Элементы Цикл + + Если ТипЗнч(Элемент) = Тип("АвтоВыбранноеПолеКомпоновкиДанных") + Или ТипЗнч(Элемент) = Тип("АвтоПолеГруппировкиКомпоновкиДанных") Тогда + + Возврат Элемент.Использование; + КонецЕсли; + + КонецЦикла; + + Возврат Ложь; + +КонецФункции + +Функция РазрешеноИспользоватьПолеВГруппировке(КомпоновщикНастроек, Группировка, Поле) + + Элементы = Группировка.ПоляГруппировки.Элементы; + + Если Элементы.Количество() = 0 Тогда + Возврат Истина; + КонецЕсли; + + ОписаниеПоля = ОписаниеПоляОтчета(КомпоновщикНастроек, Поле); + + Если ОписаниеПоля = Неопределено Тогда + ОписаниеПоля = Группировка.ПоляГруппировки.ДоступныеПоляПолейГруппировок.НайтиПоле(Поле); + КонецЕсли; + + Если ОписаниеПоля <> Неопределено + И ОписаниеПоля.Ресурс Тогда + + Возврат Истина; + КонецЕсли; + + Для Каждого Элемент Из Элементы Цикл + + Если ТипЗнч(Элемент) = Тип("ПолеГруппировкиКомпоновкиДанных") + И Элемент.Поле = Поле + И Элемент.Использование Тогда + + Возврат Истина; + КонецЕсли; + + КонецЦикла; + + Возврат Ложь; + +КонецФункции + +Процедура ДобавитьПолеГруппировки(ДобавляемыеПоля, Узел, Поле) + + Если ДобавляемыеПоля.ИндексПолей[Поле.Поле] <> Неопределено Тогда + Возврат; + КонецЕсли; + + СвойстваПоля = СвойстваПоля(Поле); + СвойстваПоля.Идентификатор = Узел.ПолучитьИдентификаторПоОбъекту(Поле); + + Если СвойстваПоля.Родитель = Неопределено Тогда + СвойстваПоля.Индекс = Узел.Элементы.Индекс(Поле); + Иначе + СвойстваПоля.Индекс = Поле.Родитель.Элементы.Индекс(Поле); + КонецЕсли; + + ДобавляемыеПоля.Свойства.Добавить(СвойстваПоля); + ДобавляемыеПоля.ИндексПолей.Вставить(Поле.Поле, СвойстваПоля); + + ДобавитьГруппуПолей(ДобавляемыеПоля, Узел, СвойстваПоля); + +КонецПроцедуры + +// Параметры: +// Поле - ВыбранноеПолеКомпоновкиДанных +// - АвтоВыбранноеПолеКомпоновкиДанных +// - ГруппаВыбранныхПолейКомпоновкиДанных +// - ПолеГруппировкиКомпоновкиДанных +// +// Возвращаемое значение: +// Структура: +// * Тип - Тип +// * Индекс - Число +// * Идентификатор - ИдентификаторКомпоновкиДанных +// * РежимОтображения - РежимОтображенияЭлементаНастройкиКомпоновкиДанных +// * Поле - ПолеКомпоновкиДанных +// * Использование - Булево +// * Заголовок - Строка +// * Родитель - Структура +// +Функция СвойстваПоля(Поле) + + СвойстваПоля = Новый Структура; + СвойстваПоля.Вставить("Заголовок", ""); + СвойстваПоля.Вставить("Использование", Ложь); + СвойстваПоля.Вставить("Поле", Неопределено); + СвойстваПоля.Вставить("РежимОтображения", РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто); + СвойстваПоля.Вставить("Родитель", Неопределено); + СвойстваПоля.Вставить("Идентификатор", Неопределено); + + ЗаполнитьЗначенияСвойств(СвойстваПоля, Поле); + + СвойстваПоля.Вставить("Индекс", -1); + СвойстваПоля.Вставить("Тип", ТипЗнч(Поле)); + + Возврат СвойстваПоля; + +КонецФункции + +Процедура ДобавитьГруппуПолей(ДобавляемыеПоля, Узел, Элемент, Группа = Неопределено) + + Если Элемент.Тип = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") + Или Элемент.Тип = Тип("ВыбранноеПолеКомпоновкиДанных") + И ТипЗнч(Элемент.Родитель) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда + + Группа = Элемент.Родитель; + КонецЕсли; + + Если ТипЗнч(Группа) <> Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда + Возврат; + КонецЕсли; + + Идентификатор = Узел.ПолучитьИдентификаторПоОбъекту(Группа); + СвойстваГруппы = ДобавляемыеПоля.ИндексГрупп[Идентификатор]; + + Если СвойстваГруппы = Неопределено Тогда + + СвойстваГруппы = СвойстваГруппыПолей(Группа); + СвойстваГруппы.Идентификатор = Идентификатор; + + ДобавляемыеПоля.ИндексГрупп.Вставить(Идентификатор, СвойстваГруппы); + + КонецЕсли; + + СвойстваГруппы.Элементы.Добавить(Элемент); + Элемент.Родитель = СвойстваГруппы; + + Если ТипЗнч(Группа.Родитель) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда + ДобавитьГруппуПолей(ДобавляемыеПоля, Узел, СвойстваГруппы); + КонецЕсли; + +КонецПроцедуры + +// Параметры: +// Группа - ГруппаВыбранныхПолейКомпоновкиДанных +// +// Возвращаемое значение: +// Структура: +// * Заголовок - Строка +// * Использование - Булево +// * Поле - Неопределено +// * Расположение - РасположениеПоляКомпоновкиДанных +// * РежимОтображения - РежимОтображенияЭлементаНастройкиКомпоновкиДанных +// * Родитель - Структура +// * Идентификатор - ИдентификаторКомпоновкиДанных +// * Элементы - Массив +// * Тип - Тип +// +Функция СвойстваГруппыПолей(Группа) + + СвойстваГруппы = Новый Структура; + СвойстваГруппы.Вставить("Заголовок", ""); + СвойстваГруппы.Вставить("Использование", Ложь); + СвойстваГруппы.Вставить("Поле", Неопределено); + СвойстваГруппы.Вставить("Расположение", РасположениеПоляКомпоновкиДанных.Авто); + СвойстваГруппы.Вставить("РежимОтображения", РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто); + СвойстваГруппы.Вставить("Родитель", Неопределено); + СвойстваГруппы.Вставить("Идентификатор", Неопределено); + + ЗаполнитьЗначенияСвойств(СвойстваГруппы, Группа); + + СвойстваГруппы.Вставить("Элементы", Новый Массив); + СвойстваГруппы.Вставить("Тип", ТипЗнч(Группа)); + + Возврат СвойстваГруппы; + +КонецФункции + +// Параметры: +// Поля - КоллекцияВыбранныхПолейКомпоновкиДанных +// ИндексГрупп - Соответствие из КлючИЗначение: +// * Ключ - ИдентификаторКомпоновкиДанных +// * Значение - см. СвойстваГруппыПолей +// +Процедура СоздатьИерархиюПолейГруппировки(Поля, ИндексГрупп) + + СоздатьОсновныеГруппыПолейГруппировки(Поля, ИндексГрупп); + + Для Каждого Индекс Из ИндексГрупп Цикл + + СвойстваГруппы = Индекс.Значение; // см. СвойстваГруппыПолей + + Если ТипЗнч(СвойстваГруппы) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда + Продолжить; + КонецЕсли; + + СвойстваРодителяГруппы = СвойстваГруппы.Родитель; // см. СвойстваГруппыПолей + + Если СвойстваРодителяГруппы <> Неопределено Тогда + + Родитель = ИндексГрупп[СвойстваРодителяГруппы.Идентификатор]; // ВыбранныеПоляКомпоновкиДанных + + Группа = Родитель.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных")); + ЗаполнитьЗначенияСвойств(Группа, СвойстваГруппы); + + ИндексГрупп.Вставить(Индекс.Ключ, Группа); + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Процедура СоздатьОсновныеГруппыПолейГруппировки(Поля, ИндексГрупп) + + Для Каждого Индекс Из ИндексГрупп Цикл + + СвойстваГруппы = Индекс.Значение; // см. + + Если ТипЗнч(СвойстваГруппы) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда + Продолжить; + КонецЕсли; + + Если СвойстваГруппы.Родитель = Неопределено Тогда + + Группа = Поля.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных")); + ЗаполнитьЗначенияСвойств(Группа, СвойстваГруппы); + + ИндексГрупп.Вставить(Индекс.Ключ, Группа); + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#Область ПоискПоля + +// Параметры: +// Поля - ВыбранныеПоляКомпоновкиДанных +// - ПоляГруппировкиКомпоновкиДанных +// Поле - ПолеКомпоновкиДанных +// ПолеОтчета - ВыбранноеПолеКомпоновкиДанных +// - ПолеГруппировкиКомпоновкиДанных +// - Неопределено +// +// Возвращаемое значение: +// ВыбранноеПолеКомпоновкиДанных +// ПолеГруппировкиКомпоновкиДанных +// Неопределено +// +Функция ПолеОтчета(Поля, Поле, ПолеОтчета = Неопределено) Экспорт + + НайтиПолеОтчета(Поля, Поле, ПолеОтчета); + + Возврат ПолеОтчета; + +КонецФункции + +// Параметры: +// Поля - ВыбранныеПоляКомпоновкиДанных +// - ПоляГруппировкиКомпоновкиДанных +// Поле - ПолеКомпоновкиДанных +// НайденноеПоле - ВыбранноеПолеКомпоновкиДанных +// - ПолеГруппировкиКомпоновкиДанных +// - Неопределено +// +Процедура НайтиПолеОтчета(Поля, Поле, НайденноеПоле) + + Для Каждого Элемент Из Поля.Элементы Цикл + + ТипЭлемента = ТипЗнч(Элемент); + + Если ТипЭлемента <> Тип("АвтоВыбранноеПолеКомпоновкиДанных") + И Элемент.Поле = Поле Тогда + + НайденноеПоле = Элемент; + Возврат; + + ИначеЕсли ТипЭлемента = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда + + НайтиПолеОтчета(Элемент, Поле, НайденноеПоле); + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#Область ВыборПоля + +Процедура ВыбратьПолеОтчета(Форма, Действие, ИмяКоллекции, Обработчик = Неопределено, + Поле = Неопределено, ИдентификаторУзлаНастроек = Неопределено) + + Если Обработчик = Неопределено Тогда + Обработчик = ОбработчикВыбораПоляОтчета(Форма, Действие); + КонецЕсли; + + ПараметрыВыбора = Новый Структура; + ПараметрыВыбора.Вставить("НастройкиОтчета", Форма.НастройкиОтчета); + ПараметрыВыбора.Вставить("КомпоновщикНастроек", КомпоновщикНастроекОтчета(Форма)); + ПараметрыВыбора.Вставить("Режим", ИмяКоллекции); + ПараметрыВыбора.Вставить("ПолеКД", Поле); + ПараметрыВыбора.Вставить("ИдентификаторЭлементаСтруктурыНастроек", + ИдентификаторЭлементаСтруктурыНастроек(Форма, ИдентификаторУзлаНастроек)); + + ОткрытьФорму( + "ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.ВыборПоляОтчета", + ПараметрыВыбора, Форма, Форма.УникальныйИдентификатор,,, Обработчик); + +КонецПроцедуры + +Процедура ВыбратьПолеОтчетаИзМеню(Форма, Команда, ИмяКоллекции = "ВыбранныеПоля") + + Обработчик = ОбработчикВыбораПоляОтчета(Форма, ДействиеКоманды(Команда)); + УточнитьИмяКоллекции(ИмяКоллекции, Обработчик); + + ПоляОтчета = ПоляОтчета(Форма, Команда, ИмяКоллекции); + + Если ПоляОтчета.Количество() > 20 + Или ПоляОтчета.Количество() = 1 + И ПоляОтчета.НайтиПоЗначению("Еще") <> Неопределено Тогда + + ВыбратьПолеОтчета(Форма, ДействиеКоманды(Команда), ИмяКоллекции, Обработчик); + Возврат; + + КонецЕсли; + + Форма.ПоказатьВыборИзМеню(Обработчик, ПоляОтчета, Форма.ТекущийЭлемент); + +КонецПроцедуры + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// Действие - Строка +// +// Возвращаемое значение: +// ОписаниеОповещения +// +Функция ОбработчикВыбораПоляОтчета(Форма, Действие) + + ПараметрыОбработчика = Новый Структура; + ПараметрыОбработчика.Вставить("Форма", Форма); + ПараметрыОбработчика.Вставить("Действие", Действие); + ПараметрыОбработчика.Вставить("СвойстваЗаголовка", СвойстваЗаголовкаОтчета(Форма)); + + Возврат Новый ОписаниеОповещения("ПослеВыбораПоля", Форма, ПараметрыОбработчика); + +КонецФункции + +// Параметры: +// ВыбранноеПоле - ЭлементСпискаЗначений +// - ВыбранноеПолеКомпоновкиДанных +// ДополнительныеПараметры - Структура: +// * Форма - ФормаКлиентскогоПриложения +// * Действие - Строка +// * СвойстваЗаголовка - см. СвойстваЗаголовкаОтчета +// +Процедура ПослеВыбораПоля(ВыбранноеПоле, ДополнительныеПараметры) Экспорт + + Если ВыбранноеПоле = Неопределено Тогда + Возврат; + КонецЕсли; + + Форма = ДополнительныеПараметры.Форма; + Поле = ?(ТипЗнч(ВыбранноеПоле) = Тип("ЭлементСпискаЗначений"), ВыбранноеПоле.Значение, ВыбранноеПоле); + + Если Поле = "Еще" Тогда + + ВыбратьПолеОтчета(Форма, ДополнительныеПараметры.Действие, ДополнительныеПараметры.ИмяКоллекции); + Возврат; + + КонецЕсли; + + СвойстваЗаголовка = ДополнительныеПараметры.СвойстваЗаголовка; + + КомпоновщикНастроек = КомпоновщикНастроекОтчета(Форма); + Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек); + Действие = ДополнительныеПараметры.Действие; + РолиПолей = Форма.НастройкиОтчета.СвойстваРезультата.РолиПолей; + + Если СтрНачинаетсяС(Действие, "ВставитьПоле") Тогда + + ВставитьПоле(КомпоновщикНастроек, Настройки, Поле, Действие, СвойстваЗаголовка, РолиПолей); + + ИначеЕсли СтрНачинаетсяС(Действие, "ВставитьГруппировку") Тогда + + ВставитьГруппировку(Настройки, Действие, Поле, СвойстваЗаголовка); + + КонецЕсли; + + ОповеститьОЗавершенииКонтекстнойНастройки(Форма, Действие); + +КонецПроцедуры + +#КонецОбласти + +#Область ПоляОтчета + +Функция ПоляОтчета(Форма, Команда, ИмяКоллекции) + + ДоступныеПоля = ДоступныеПоляОтчета(КомпоновщикНастроекОтчета(Форма), ИмяКоллекции); + ПоляОтчета = ОсновныеПоляОтчета(Форма.НастройкиОтчета.СвойстваРезультата, ДоступныеПоля); + + Если ПоляОтчета.Количество() = 0 Тогда + ДобавитьДоступныеПоляОтчета(ПоляОтчета, ДоступныеПоля); + КонецЕсли; + + ИсключитьИспользуемыеПоляОтчета(ПоляОтчета, Форма, Команда); + ИсключитьНедоступныеПоляОтчета(ПоляОтчета, Форма, Команда); + + СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма); + + Если Не СвойстваЗаголовка.Ресурс + И ПоляОтчета.НайтиПоЗначению("Еще") = Неопределено Тогда + + ПоляОтчета.Добавить("Еще", НСтр("ru = 'Еще...'")); + КонецЕсли; + + Возврат ПоляОтчета; + +КонецФункции + +Функция ОписаниеПоляОтчета(КомпоновщикНастроек, Поле, ИмяКоллекции = "Выбор") + + ДоступныеПоля = ДоступныеПоляОтчета(КомпоновщикНастроек, ИмяКоллекции); + + Возврат ДоступныеПоля.НайтиПоле(Поле); + +КонецФункции + +Функция ДоступныеПоляОтчета(КомпоновщикНастроек, ИмяКоллекции = "Выбор") + + Если ИмяКоллекции = "Отборы" Тогда + + Возврат КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора; + + ИначеЕсли ИмяКоллекции = "Сортировка" Тогда + + Возврат КомпоновщикНастроек.Настройки.ДоступныеПоляПорядка; + + ИначеЕсли ИмяКоллекции = "ПоляГруппировки" Тогда + + Возврат КомпоновщикНастроек.Настройки.ДоступныеПоляГруппировок; + + КонецЕсли; + + Возврат КомпоновщикНастроек.Настройки.ДоступныеПоляВыбора; + +КонецФункции + +Функция ОсновныеПоляОтчета(СвойстваРезультата, ДоступныеПоля) + + ОсновныеПоляИзДоступных = Новый СписокЗначений; + + ОсновныеПоля = СвойстваРезультата.ОсновныеПоля; + + Для Каждого Поле Из ОсновныеПоля Цикл + + ДоступноеПоле = ДоступныеПоля.НайтиПоле(Новый ПолеКомпоновкиДанных(Поле)); + + Если ДоступноеПоле <> Неопределено Тогда + ОсновныеПоляИзДоступных.Добавить(ДоступноеПоле, ДоступноеПоле.Заголовок,, КартинкаПоля(ДоступноеПоле.ТипЗначения)); + КонецЕсли; + + КонецЦикла; + + Возврат ОсновныеПоляИзДоступных; + +КонецФункции + +Процедура ДобавитьДоступныеПоляОтчета(ПоляОтчета, ДоступныеПоля) + + Для Каждого ДоступноеПоле Из ДоступныеПоля.Элементы Цикл + + Если Не ДоступноеПоле.Папка Тогда + ПоляОтчета.Добавить(ДоступноеПоле, ДоступноеПоле.Заголовок,, КартинкаПоля(ДоступноеПоле.ТипЗначения)); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +// Параметры: +// ОсновныеПоля - СписокЗначений +// Форма - ФормаКлиентскогоПриложения +// Команда - КомандаФормы +// +Процедура ИсключитьИспользуемыеПоляОтчета(ОсновныеПоля, Форма, Команда) + + Владелец = Форма.ТекущийЭлемент; + + Если ТипЗнч(Владелец) <> Тип("КнопкаФормы") + И (ТипЗнч(Владелец) <> Тип("ПолеФормы") Или Владелец.Вид <> ВидПоляФормы.ПолеТабличногоДокумента) Тогда + + Возврат; + КонецЕсли; + + Если ДействиеКоманды(Команда) <> "ВставитьПолеСлева" + И ДействиеКоманды(Команда) <> "ВставитьПолеСправа" Тогда + + Возврат; + КонецЕсли; + + СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма); + ИспользуемыеПоля = ИспользуемыеПоляОтчета( + СвойстваЗаголовка, Форма.НастройкиОтчета.СвойстваРезультата.ИндексПолей); + + Индекс = ОсновныеПоля.Количество() - 1; + + Пока Индекс >= 0 Цикл + + ДоступноеПоле = ОсновныеПоля[Индекс].Значение; + + Если ИспользуемыеПоля[ДоступноеПоле.Поле] <> Неопределено Тогда + ОсновныеПоля.Удалить(Индекс); + КонецЕсли; + + Индекс = Индекс - 1; + + КонецЦикла; + +КонецПроцедуры + +Функция ИспользуемыеПоляОтчета(СвойстваЗаголовка, ИндексПолей) + + ИндексПолейРаздела = ИндексПолей[СвойстваЗаголовка.ПорядокРаздела]; + ИндексПолейГруппировки = ИндексПолейРаздела[СвойстваЗаголовка.ПорядокГруппировки]; + + Возврат ИндексПолейГруппировки; + +КонецФункции + +Функция КартинкаПоля(ТипЗначенияПоля) + + ДоступныеТипы = ТипЗначенияПоля.Типы(); + + Если ДоступныеТипы.Количество() = 0 Тогда + Возврат БиблиотекаКартинок.Пустая; + КонецЕсли; + + Если ДоступныеТипы.Количество() > 1 Тогда + Возврат БиблиотекаКартинок.ТипСоставной; + КонецЕсли; + + Если ТипЗначенияПоля.СодержитТип(Тип("Число")) Тогда + Возврат БиблиотекаКартинок.ТипЧисло; + КонецЕсли; + + Если ТипЗначенияПоля.СодержитТип(Тип("Строка")) Тогда + Возврат БиблиотекаКартинок.ТипСтрока; + КонецЕсли; + + Если ТипЗначенияПоля.СодержитТип(Тип("Дата")) Тогда + Возврат БиблиотекаКартинок.ТипДата; + КонецЕсли; + + Если ТипЗначенияПоля.СодержитТип(Тип("Булево")) Тогда + Возврат БиблиотекаКартинок.ТипБулево; + КонецЕсли; + + Если ТипЗначенияПоля.СодержитТип(Тип("УникальныйИдентификатор")) Тогда + Возврат БиблиотекаКартинок.ТипИдентификатор; + КонецЕсли; + + Возврат БиблиотекаКартинок.ТипСсылка; + +КонецФункции + +// Параметры: +// ОсновныеПоля - СписокЗначений +// Форма - ФормаКлиентскогоПриложения +// Команда - КомандаФормы +// +Процедура ИсключитьНедоступныеПоляОтчета(ОсновныеПоля, Форма, Команда) + + Владелец = Форма.ТекущийЭлемент; + + Если ТипЗнч(Владелец) <> Тип("КнопкаФормы") + И (ТипЗнч(Владелец) <> Тип("ПолеФормы") Или Владелец.Вид <> ВидПоляФормы.ПолеТабличногоДокумента) Тогда + + Возврат; + КонецЕсли; + + Если ДействиеКоманды(Команда) <> "ВставитьПолеСлева" + И ДействиеКоманды(Команда) <> "ВставитьПолеСправа" Тогда + + Возврат; + КонецЕсли; + + СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма); + РолиПолей = Форма.НастройкиОтчета.СвойстваРезультата.РолиПолей; + + Индекс = ОсновныеПоля.Количество() - 1; + + Пока Индекс >= 0 Цикл + + ДоступноеПоле = ОсновныеПоля[Индекс].Значение; + + Если СвойстваЗаголовка.Ресурс + И Не ДоступноеПоле.Ресурс Тогда + + ОсновныеПоля.Удалить(Индекс); + + ИначеЕсли СвойстваЗаголовка.Период + И РолиПолей.Периоды[ДоступноеПоле.Поле] = Неопределено Тогда + + ОсновныеПоля.Удалить(Индекс); + + ИначеЕсли Не СвойстваЗаголовка.Период + И РолиПолей.Периоды[ДоступноеПоле.Поле] <> Неопределено Тогда + + ОсновныеПоля.Удалить(Индекс); + + ИначеЕсли СвойстваЗаголовка.ИспользуетсяВПоляхГруппировки + И СвойстваЗаголовка.ПереместитьПолеВправо + И ДействиеКоманды(Команда) = "ВставитьПолеСправа" + И ДоступноеПоле.Ресурс Тогда + + ОсновныеПоля.Удалить(Индекс); + + ИначеЕсли СвойстваЗаголовка.ИспользуетсяВПоляхГруппировки + И ДействиеКоманды(Команда) = "ВставитьПолеСлева" + И ДоступноеПоле.Ресурс Тогда + + ОсновныеПоля.Удалить(Индекс); + + КонецЕсли; + + Индекс = Индекс - 1; + + КонецЦикла; + +КонецПроцедуры + +#Область ПеремещениеПоля + +Процедура ПереместитьПолеГоризонтально(Форма, Команда) + + СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма); + + КомпоновщикНастроек = КомпоновщикНастроекОтчета(Форма); + Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек); + Раздел = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела); + Группировка = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторГруппировки); + + ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Раздел); + + Поля = Группировка.Выбор; + ТекущееПоле = ПолеОтчета(Поля, СвойстваЗаголовка.Поле); + + ИсходныйИндексПоля = Поля.Элементы.Индекс(ТекущееПоле); + + Если ДействиеКоманды(Команда) = "ПереместитьПолеВлево" Тогда + + НаправлениеСдвига = -1 + + ИначеЕсли ДействиеКоманды(Команда) = "ПереместитьПолеВправо" Тогда + + НаправлениеСдвига = 1 + + КонецЕсли; + + КонечныйИндексПоля = ИсходныйИндексПоля + НаправлениеСдвига; + + Если КонечныйИндексПоля >= 0 Тогда + + СоседнееПоле = Поля.Элементы[КонечныйИндексПоля]; + + Пока КонечныйИндексПоля > 0 И Не СоседнееПоле.Использование Цикл + + КонечныйИндексПоля = КонечныйИндексПоля + НаправлениеСдвига; + СоседнееПоле = Поля.Элементы[КонечныйИндексПоля]; + + КонецЦикла; + + КонецЕсли; + + Поля.Элементы.Сдвинуть(ТекущееПоле, КонечныйИндексПоля - ИсходныйИндексПоля); + + ОповеститьОЗавершенииКонтекстнойНастройки(Форма, ДействиеКоманды(Команда)); + +КонецПроцедуры + +Процедура ПереместитьПолеВертикально(Форма, Команда) + + СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма); + + КомпоновщикНастроек = КомпоновщикНастроекОтчета(Форма); + Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек); + Раздел = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела); + Группировка = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторГруппировки); + + ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Раздел); + + ПолеГруппировки = ПолеОтчета(Группировка.ПоляГруппировки, СвойстваЗаголовка.Поле); + ВыбранноеПоле = ПолеОтчета(Группировка.Выбор, СвойстваЗаголовка.Поле); + + СоседняяГруппировка = СоседняяГруппировка(Форма, Команда, Настройки, СвойстваЗаголовка.ПорядокГруппировки); + + Если СоседняяГруппировка = Неопределено Тогда + Возврат; + КонецЕсли; + + ИсходныйИндексПоля = Группировка.Выбор.Элементы.Индекс(ВыбранноеПоле); + + Поля = СоседняяГруппировка.ПоляГруппировки; + КоличествоПолей = Поля.Элементы.Количество(); + + Если КоличествоПолей > 0 Тогда + + ИндексПоля = ?(ИсходныйИндексПоля < КоличествоПолей, ИсходныйИндексПоля, КоличествоПолей); + НовоеПоле = Поля.Элементы.Вставить(ИндексПоля, Тип("ПолеГруппировкиКомпоновкиДанных")); + ЗаполнитьЗначенияСвойств(НовоеПоле, ?(ПолеГруппировки = Неопределено, ВыбранноеПоле, ПолеГруппировки)); + + КонецЕсли; + + Поля = СоседняяГруппировка.Выбор; + ИндексПоля = ИндексВыбранногоПоля(ИсходныйИндексПоля, Поля, СвойстваЗаголовка.Поле); + НовоеПоле = Поля.Элементы.Вставить(ИндексПоля, Тип("ВыбранноеПолеКомпоновкиДанных")); + + ЗаполнитьЗначенияСвойств(НовоеПоле, ?(ВыбранноеПоле = Неопределено, ПолеГруппировки, ВыбранноеПоле)); + + УстановитьВыводРеквизитовГруппировкиОтдельно(СоседняяГруппировка); + + Если ПолеГруппировки <> Неопределено Тогда + Группировка.ПоляГруппировки.Элементы.Удалить(ПолеГруппировки); + КонецЕсли; + + Если ВыбранноеПоле <> Неопределено Тогда + + Если Группировка.ПоляГруппировки.Элементы.Количество() = 0 Тогда + + ВыбранноеПоле.Использование = Ложь; + СкрытьГруппировку(Настройки, Группировка, СвойстваЗаголовка.Поле); + + Иначе + Группировка.Выбор.Элементы.Удалить(ВыбранноеПоле); + КонецЕсли; + + КонецЕсли; + + ОповеститьОЗавершенииКонтекстнойНастройки(Форма, ДействиеКоманды(Команда)); + +КонецПроцедуры + +Функция СоседняяГруппировка(Форма, Команда, Настройки, ПорядокГруппировки) + + СоседняяГруппировка = Неопределено; + + Если ДействиеКоманды(Команда) = "ПереместитьПолеВыше" Тогда + ПорядокСоседнейГруппировки = ПорядокГруппировки - 1; + Иначе + ПорядокСоседнейГруппировки = ПорядокГруппировки + 1; + КонецЕсли; + + Заголовки = ЗаголовкиОтчета(Форма); + + Для Каждого Свойства Из Заголовки Цикл + + Если Свойства.Значение.ПорядокГруппировки = ПорядокСоседнейГруппировки Тогда + + СоседняяГруппировка = Настройки.ПолучитьОбъектПоИдентификатору(Свойства.Значение.ИдентификаторГруппировки); + Прервать; + + КонецЕсли; + + КонецЦикла; + + Возврат СоседняяГруппировка; + +КонецФункции + +Функция ИндексВыбранногоПоля(ИсходныйИндексПоля, КонечнаяКоллекцияПолей, Поле) + + Граница = КонечнаяКоллекцияПолей.Элементы.Количество(); + + НовоеПоле = ПолеОтчета(КонечнаяКоллекцияПолей, Поле); + + Если НовоеПоле <> Неопределено Тогда + КонечнаяКоллекцияПолей.Элементы.Удалить(НовоеПоле); + КонецЕсли; + + Для Каждого Элемент Из КонечнаяКоллекцияПолей.Элементы Цикл + + Если ТипЗнч(Элемент) = Тип("АвтоВыбранноеПолеКомпоновкиДанных") Тогда + Продолжить; + КонецЕсли; + + ДоступноеПоле = КонечнаяКоллекцияПолей.ДоступныеПоляВыбора.НайтиПоле(Элемент.Поле); + + Если ДоступноеПоле <> Неопределено + И ДоступноеПоле.Ресурс Тогда + + Граница = КонечнаяКоллекцияПолей.Элементы.Индекс(Элемент); + Прервать; + + КонецЕсли; + + КонецЦикла; + + Возврат ?(ИсходныйИндексПоля < Граница, ИсходныйИндексПоля, Граница); + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область ОбработкаДополнительнойРасшифровки + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// Область - ОбластьЯчеекТабличногоДокумента +// ИмяПоля - Строка +// +// Возвращаемое значение: +// Структура: +// * ЭтоЗаголовок - Булево +// +Функция СвойстваОбластиРасшифровки(Форма, Область, ИмяПоля) + + НастройкиОтчета = Форма.НастройкиОтчета; // см. ВариантыОтчетов.НастройкиФормыОтчета + СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета + СвойстваЗаголовка = СвойстваРезультата.Заголовки[Область.Имя]; // см. ВариантыОтчетовСлужебный.СтандартныеСвойстваЗаголовкаОтчета + + СвойстваОбласти = Новый Структура; + СвойстваОбласти.Вставить("ЭтоЗаголовок", ТипЗнч(СвойстваЗаголовка) = Тип("Структура")); + СвойстваОбласти.Вставить("СвойстваЗаголовка", СвойстваЗаголовка); + + Если СвойстваОбласти.ЭтоЗаголовок Тогда + Возврат СвойстваОбласти; + КонецЕсли; + + ПорядокРаздела = 0; + ГраницаТекущегоРаздела = 0; + + Для Каждого Граница Из СвойстваРезультата.ГраницыРазделов Цикл + + Если Область.Верх >= ГраницаТекущегоРаздела + И Область.Верх <= Граница.Значение Тогда + + ПорядокРаздела = ПорядокРаздела + 1; + + КонецЕсли; + + ГраницаТекущегоРаздела = Граница.Значение; + + КонецЦикла; + + Поле = Новый ПолеКомпоновкиДанных(ИмяПоля); + + Для Каждого Элемент Из СвойстваРезультата.Заголовки Цикл + + СвойстваЗаголовка = Элемент.Значение; + + Если СвойстваЗаголовка.ПорядокРаздела = ПорядокРаздела + И СвойстваЗаголовка.Поле = Поле Тогда + + СвойстваОбласти.СвойстваЗаголовка = СвойстваЗаголовка; + Возврат СвойстваОбласти; + + КонецЕсли; + + КонецЦикла; + + Возврат СвойстваОбласти; + +КонецФункции + +#Область КонтекстноеМеню + +Функция КонтекстноеМенюОбластиЗаголовка() + + КонтекстноеМеню = Новый СписокЗначений; + + // Вставить + КонтекстноеМеню.Добавить("ВставитьПолеСправа", НСтр("ru = 'Вставить поле справа...'"),, БиблиотекаКартинок.ВставитьКолонкуСправа); + КонтекстноеМеню.Добавить("ВставитьГруппировкуНиже", НСтр("ru = 'Вставить группировку ниже...'"),, БиблиотекаКартинок.ВставитьГруппировкуНиже); + + // Переместить + КонтекстноеМеню.Добавить("ПереместитьПолеВлево", НСтр("ru = 'Переместить влево'"),, БиблиотекаКартинок.ПереместитьКолонкуВлево); + КонтекстноеМеню.Добавить("ПереместитьПолеВправо", НСтр("ru = 'Переместить вправо'"),, БиблиотекаКартинок.ПереместитьКолонкуВправо); + КонтекстноеМеню.Добавить("ПереместитьПолеВыше", НСтр("ru = 'Переместить выше'"),, БиблиотекаКартинок.ПереместитьГруппировкуВыше); + КонтекстноеМеню.Добавить("ПереместитьПолеНиже", НСтр("ru = 'Переместить ниже'"),, БиблиотекаКартинок.ПереместитьГруппировкуНиже); + + // + КонтекстноеМеню.Добавить("СкрытьПоле", НСтр("ru = 'Скрыть'")); + КонтекстноеМеню.Добавить("ПереименоватьПоле", НСтр("ru = 'Переименовать...'")); + КонтекстноеМеню.Добавить("СнятьФильтр", НСтр("ru = 'Снять фильтр'")); + КонтекстноеМеню.Добавить("Фильтровать", НСтр("ru = 'Фильтровать...'"),, БиблиотекаКартинок.ОтборКомпоновкиДанных); + + // Сортировать + КонтекстноеМеню.Добавить(НаправлениеСортировкиКомпоновкиДанных.Возр, НСтр("ru = 'Сортировать по возрастанию'"),, БиблиотекаКартинок.СортироватьСтрокиПоВозрастанию); + КонтекстноеМеню.Добавить(НаправлениеСортировкиКомпоновкиДанных.Убыв, НСтр("ru = 'Сортировать по убыванию'"),, БиблиотекаКартинок.СортироватьСтрокиПоУбыванию); + + // Оформить + ПодменюОформления = Новый СписокЗначений; + ПодменюОформления.Добавить("ОформитьОтрицательные", НСтр("ru = 'Отрицательные красным'")); + ПодменюОформления.Добавить("ОформитьПоложительные", НСтр("ru = 'Положительные зеленым'")); + ПодменюОформления.Добавить("УстановитьВысотуСтроки", НСтр("ru = 'Высота строки...'"),, БиблиотекаКартинок.ВысотаСтроки); + ПодменюОформления.Добавить("УстановитьШиринуКолонки", НСтр("ru = 'Ширина колонки...'"),, БиблиотекаКартинок.ШиринаКолонки); + ПодменюОформления.Добавить("ОформитьЕще", НСтр("ru = 'Еще...'")); + + КонтекстноеМеню.Добавить(ПодменюОформления, НСтр("ru = 'Оформить'"),, БиблиотекаКартинок.УсловноеОформлениеКомпоновкиДанных); + + Возврат КонтекстноеМеню; + +КонецФункции + +Функция КонтекстноеМенюОбластиДанных(ДоступныеВидыСравнения) + + Информация = Новый СистемнаяИнформация; + + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Информация.ВерсияПриложения, "8.3.16.0") >= 0 Тогда + + КартинкиОформления = Новый Структура; + КартинкиОформления.Вставить("ОформитьКрасным", БиблиотекаКартинок["ОформлениеКругКрасный"]); + КартинкиОформления.Вставить("ОформитьЖелтым", БиблиотекаКартинок["ОформлениеКругЖелтый"]); + КартинкиОформления.Вставить("ОформитьЗеленым", БиблиотекаКартинок["ОформлениеКругЗеленый"]); + + Иначе + + ПустаяКартинка = БиблиотекаКартинок["Пустая"]; + + КартинкиОформления = Новый Структура; + КартинкиОформления.Вставить("ОформитьКрасным", ПустаяКартинка); + КартинкиОформления.Вставить("ОформитьЖелтым", ПустаяКартинка); + КартинкиОформления.Вставить("ОформитьЗеленым", ПустаяКартинка); + + КонецЕсли; + + КонтекстноеМеню = Новый СписокЗначений; + КонтекстноеМеню.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение, НСтр("ru = 'Открыть'")); + + // Фильтровать + КонтекстноеМеню.Добавить(ДоступныеВидыСравнения, НСтр("ru = 'Фильтровать'"),, БиблиотекаКартинок.ОтборКомпоновкиДанных); + + // Сортировать + КонтекстноеМеню.Добавить(НаправлениеСортировкиКомпоновкиДанных.Возр, НСтр("ru = 'Сортировать по возрастанию'"),, БиблиотекаКартинок.СортироватьСтрокиПоВозрастанию); + КонтекстноеМеню.Добавить(НаправлениеСортировкиКомпоновкиДанных.Убыв, НСтр("ru = 'Сортировать по убыванию'"),, БиблиотекаКартинок.СортироватьСтрокиПоУбыванию); + + // Оформить + ПодменюОформления = Новый СписокЗначений; + ПодменюОформления.Добавить("ОформитьКрасным", НСтр("ru = 'Красным'"),, КартинкиОформления.ОформитьКрасным); + ПодменюОформления.Добавить("ОформитьЖелтым", НСтр("ru = 'Желтым'"),, КартинкиОформления.ОформитьЖелтым); + ПодменюОформления.Добавить("ОформитьЗеленым", НСтр("ru = 'Зеленым'"),, КартинкиОформления.ОформитьЗеленым); + ПодменюОформления.Добавить("ОформитьОтрицательные", НСтр("ru = 'Отрицательные красным'")); + ПодменюОформления.Добавить("ОформитьПоложительные", НСтр("ru = 'Положительные зеленым'")); + ПодменюОформления.Добавить("УстановитьВысотуСтроки", НСтр("ru = 'Высота строки...'"),, БиблиотекаКартинок.ВысотаСтроки); + ПодменюОформления.Добавить("УстановитьШиринуКолонки", НСтр("ru = 'Ширина колонки...'"),, БиблиотекаКартинок.ШиринаКолонки); + ПодменюОформления.Добавить("ОформитьЕще", НСтр("ru = 'Еще...'")); + + КонтекстноеМеню.Добавить(ПодменюОформления, НСтр("ru = 'Оформить'"),, БиблиотекаКартинок.УсловноеОформлениеКомпоновкиДанных); + + Возврат КонтекстноеМеню; + +КонецФункции + +#КонецОбласти + +#Область Расшифровка + +Процедура ВыполнитьРасшифровку(ВыполненноеДействие, ПараметрВыполненногоДействия, ДополнительныеПараметры) Экспорт + + Если ВыполненноеДействие = Неопределено + Или ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.Нет Тогда + + Возврат; + КонецЕсли; + + Форма = ДополнительныеПараметры.Форма; + Данные = ДополнительныеПараметры.Данные; + СвойстваОбласти = ДополнительныеПараметры.СвойстваОбласти; + Меню = ДополнительныеПараметры.Меню; + + Если СвойстваОбласти.ЭтоЗаголовок Тогда + + СвойстваЗаголовка = СвойстваОбласти.СвойстваЗаголовка; + + Если ТипЗнч(ВыполненноеДействие) = Тип("Строка") + И СвойстваЗаголовка.Свойство(ВыполненноеДействие) + И Не СвойстваЗаголовка[ВыполненноеДействие] Тогда + + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Действие ""%1"" недоступно'"), Меню.НайтиПоЗначению(ВыполненноеДействие)); + + ПоказатьПредупреждение(, ТекстСообщения); + + КонецЕсли; + + Если СтрНайти(СвойстваЗаголовка.ИдентификаторГруппировки, "/column/") = 0 Тогда + Возврат; + КонецЕсли; + + КонецЕсли; + + Если ТипЗнч(ВыполненноеДействие) = Тип("Строка") + И ВыполненноеДействие = "СнятьФильтр" Тогда + + СнятьФильтр(Форма, СвойстваОбласти.СвойстваЗаголовка); + Возврат; + + КонецЕсли; + + Если ТипЗнч(ВыполненноеДействие) = Тип("ВидСравненияКомпоновкиДанных") + Или ТипЗнч(ВыполненноеДействие) = Тип("Строка") И ВыполненноеДействие = "ФильтроватьЕще" Тогда + + Фильтровать(Форма, ВыполненноеДействие, СвойстваОбласти.СвойстваЗаголовка, Данные); + Возврат; + + КонецЕсли; + + Если ТипЗнч(ВыполненноеДействие) = Тип("НаправлениеСортировкиКомпоновкиДанных") Тогда + + Если ВыполненноеДействие = НаправлениеСортировкиКомпоновкиДанных.Возр Тогда + Команда = Форма.Команды.Найти("СортироватьПоВозрастанию"); + Иначе + Команда = Форма.Команды.Найти("СортироватьПоУбыванию"); + КонецЕсли; + + Сортировать(Форма, Команда, СвойстваОбласти.СвойстваЗаголовка); + Возврат; + + КонецЕсли; + + Если ТипЗнч(ВыполненноеДействие) = Тип("Строка") + И (ВыполненноеДействие = "ОформитьКрасным" + Или ВыполненноеДействие = "ОформитьЖелтым" + Или ВыполненноеДействие = "ОформитьЗеленым" + Или ВыполненноеДействие = "ОформитьОтрицательные" + Или ВыполненноеДействие = "ОформитьПоложительные" + Или ВыполненноеДействие = "УстановитьВысотуСтроки" + Или ВыполненноеДействие = "УстановитьШиринуКолонки" + Или ВыполненноеДействие = "ОформитьЕще") Тогда + + Команда = Форма.Команды.Найти(ВыполненноеДействие); + + Если ВыполненноеДействие = "ОформитьКрасным" + Или ВыполненноеДействие = "ОформитьОтрицательные" Тогда + + ОформитьКрасным(Форма, Команда, СвойстваОбласти.СвойстваЗаголовка, Данные.Значение); + + ИначеЕсли ВыполненноеДействие = "ОформитьЖелтым" Тогда + + ОформитьЖелтым(Форма, Команда, СвойстваОбласти.СвойстваЗаголовка, Данные.Значение); + + ИначеЕсли ВыполненноеДействие = "ОформитьЗеленым" + Или ВыполненноеДействие = "ОформитьПоложительные" Тогда + + ОформитьЗеленым(Форма, Команда, СвойстваОбласти.СвойстваЗаголовка, Данные.Значение); + + ИначеЕсли ВыполненноеДействие = "УстановитьВысотуСтроки" Тогда + + УстановитьВысотуСтроки(Форма, Команда, СвойстваОбласти.СвойстваЗаголовка); + + ИначеЕсли ВыполненноеДействие = "УстановитьШиринуКолонки" Тогда + + УстановитьШиринуКолонки(Форма, Команда, СвойстваОбласти.СвойстваЗаголовка); + + ИначеЕсли ВыполненноеДействие = "ОформитьЕще" Тогда + + ОформитьЕще(Форма, Команда, СвойстваОбласти.СвойстваЗаголовка, Данные.Значение); + + КонецЕсли; + + Возврат; + + КонецЕсли; + + Если ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение Тогда + + ПоказатьЗначение(, Данные.Значение); + Возврат; + + КонецЕсли; + + Если ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать Тогда + + ДополнительныеПараметры.Вставить("Настройки", ПараметрВыполненногоДействия); + ОткрытьФормуОтчета(Форма, ДополнительныеПараметры); + + КонецЕсли; + +КонецПроцедуры + +Процедура ОткрытьФормуОтчета(Форма, ПараметрыОткрытия) + + НастройкиОтчета = Форма.НастройкиОтчета; + Расшифровка = ПараметрыОткрытия.Расшифровка; + + СтандартнаяОбработка = Истина; + + Если СтандартнаяОбработка Тогда + + Расшифровка = Новый ОписаниеОбработкиРасшифровкиКомпоновкиДанных( + Форма.ОтчетДанныеРасшифровки, ПараметрыОткрытия.Расшифровка, ПараметрыОткрытия.Настройки); + + ПредставлениеВарианта = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 (Расшифровка)'"), Форма.ПредставлениеТекущегоВарианта); + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("Расшифровка", Расшифровка); + ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина); + ПараметрыФормы.Вставить("ПредставлениеВарианта", ПредставлениеВарианта); + ПараметрыФормы.Вставить("НастройкиОтчета", НастройкиОтчета); + + ОткрытьФорму(НастройкиОтчета.ПолноеИмя + ".Форма", ПараметрыФормы, Форма, Форма.УникальныйИдентификатор); + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область Общее + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// +// Возвращаемое значение: +// КомпоновщикНастроекКомпоновкиДанных +// +Функция КомпоновщикНастроекОтчета(Форма) + + Если СтрЗаканчиваетсяНа(Форма.ИмяФормы, "Форма") + Или СтрЗаканчиваетсяНа(Форма.ИмяФормы, "ФормаОтчета") Тогда + + Возврат Форма.Отчет.КомпоновщикНастроек; + КонецЕсли; + + Возврат Форма.КомпоновщикНастроек; + +КонецФункции + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// ИдентификаторНастроек - ИдентификаторКомпоновкиДанных +// - Неопределено +// +// Возвращаемое значение: +// НастройкиКомпоновкиДанных +// +Функция ИспользуемыеНастройки(Форма, ИдентификаторНастроек = Неопределено) + + Если СтрЗаканчиваетсяНа(Форма.ИмяФормы, "Форма") + Или СтрЗаканчиваетсяНа(Форма.ИмяФормы, "ФормаОтчета") + Или СтрЗаканчиваетсяНа(Форма.ИмяФормы, "КонтекстнаяНастройкаОтчета") Тогда + + НастройкиОтчета = Форма.НастройкиОтчета; // см. ВариантыОтчетов.НастройкиФормыОтчета + СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета + + ИспользуемыеНастройки = СвойстваРезультата.ИтоговыеНастройки; + + Иначе + + КомпоновщикНастроек = КомпоновщикНастроекОтчета(Форма); + ИспользуемыеНастройки = КомпоновщикНастроек.Настройки; + + КонецЕсли; + + Если ТипЗнч(ИдентификаторНастроек) <> Тип("ИдентификаторКомпоновкиДанных") Тогда + Возврат ИспользуемыеНастройки; + КонецЕсли; + + НастройкиПоИдентификатору = ИспользуемыеНастройки.ПолучитьОбъектПоИдентификатору(ИдентификаторНастроек); + + Если НастройкиПоИдентификатору = Неопределено Тогда + Возврат ИспользуемыеНастройки; + КонецЕсли; + + Возврат НастройкиПоИдентификатору; + +КонецФункции + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// +// Возвращаемое значение: +// Соответствие +// +Функция ЗаголовкиОтчета(Форма) + + Если СтрЗаканчиваетсяНа(Форма.ИмяФормы, "Форма") + Или СтрЗаканчиваетсяНа(Форма.ИмяФормы, "ФормаОтчета") + Или СтрЗаканчиваетсяНа(Форма.ИмяФормы, "КонтекстнаяНастройкаОтчета") Тогда + + НастройкиОтчета = Форма.НастройкиОтчета; // см. ВариантыОтчетов.НастройкиФормыОтчета + СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета + + Возврат СвойстваРезультата.Заголовки; + КонецЕсли; + + Возврат Форма.ЗаголовкиОтчета; + +КонецФункции + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// +// Возвращаемое значение: +// см. ВариантыОтчетовСлужебный.СтандартныеСвойстваЗаголовкаОтчета +// +Функция СвойстваЗаголовкаОтчета(Форма) + + Если СтрЗаканчиваетсяНа(Форма.ИмяФормы, "Форма") + Или СтрЗаканчиваетсяНа(Форма.ИмяФормы, "ФормаОтчета") Тогда + + Заголовки = ЗаголовкиОтчета(Форма); + Поле = Форма.ТекущийЭлемент; // ПолеФормы, РасширениеПоляФормыДляПоляТабличногоДокумента + Область = Поле.ТекущаяОбласть; // ОбластьЯчеекТабличногоДокумента + + Возврат Заголовки[Область.Имя]; + + КонецЕсли; + + Возврат Форма.СвойстваЗаголовка; + +КонецФункции + +Процедура УточнитьИмяКоллекции(ИмяКоллекции, Обработчик) + + ДополнительныеПараметры = Обработчик.ДополнительныеПараметры; + + Если ДополнительныеПараметры.СвойстваЗаголовка.ТипПоля = Тип("ПолеГруппировкиКомпоновкиДанных") Тогда + ИмяКоллекции = "ПоляГруппировки"; + КонецЕсли; + + ДополнительныеПараметры.Вставить("ИмяКоллекции", ИмяКоллекции); + +КонецПроцедуры + +Функция ИдентификаторЭлементаСтруктурыНастроек(Форма, ИдентификаторУзлаНастроек) + + Если ИдентификаторУзлаНастроек <> Неопределено Тогда + Возврат ИдентификаторУзлаНастроек; + КонецЕсли; + + Если СтрЗаканчиваетсяНа(Форма.ИмяФормы, "Форма") + Или СтрЗаканчиваетсяНа(Форма.ИмяФормы, "ФормаОтчета") Тогда + + Возврат Неопределено; + КонецЕсли; + + Возврат Форма.ИдентификаторЭлементаСтруктурыНастроек; + +КонецФункции + +Функция ДействиеКоманды(Команда) + + Возврат ?(ЗначениеЗаполнено(Команда.Действие), Команда.Действие, Команда.Имя); + +КонецФункции + +Процедура ОповеститьОЗавершенииКонтекстнойНастройки(Форма, Действие) + + ЭтоФормОтчета = СтрЗаканчиваетсяНа(Форма.ИмяФормы, "Форма") + Или СтрЗаканчиваетсяНа(Форма.ИмяФормы, "ФормаОтчета"); + + ИспользуемыеНастройки = ИспользуемыеНастройки(Форма); + КомпоновщикНастроек = КомпоновщикНастроекОтчета(Форма); + КомпоновщикНастроек.ЗагрузитьНастройки(ИспользуемыеНастройки); + + ИдентификаторВладельца = ?(ЭтоФормОтчета, Форма.УникальныйИдентификатор, Форма.ВладелецФормы.УникальныйИдентификатор); + + Результат = СтандартныйРезультатНастройкиИзКонтекстногоМеню(КомпоновщикНастроек, Действие, ИдентификаторВладельца); + + Если ЭтоФормОтчета Тогда + Оповестить(Действие, Результат, ЭтотОбъект); + Иначе + Форма.ОповеститьОВыборе(Результат); + КонецЕсли; + +КонецПроцедуры + +// Параметры: +// КомпоновщикНастроек - КомпоновщикНастроекКомпоновкиДанных +// Действие - Строка +// ИдентификаторВладельца - УникальныйИдентификатор +// +// Возвращаемое значение: +// Структура: +// * Действие - Строка +// * ИдентификаторВладельца - УникальныйИдентификатор +// * КомпоновщикНастроек - КомпоновщикНастроекКомпоновкиДанных +// * Переформировать - Булево +// * ВариантМодифицирован - Булево +// * ПользовательскиеНастройкиМодифицированы - Булево +// * СброситьПользовательскиеНастройки - Булево +// +Функция СтандартныйРезультатНастройкиИзКонтекстногоМеню(КомпоновщикНастроек, Действие, ИдентификаторВладельца) Экспорт + + Результат = Новый Структура; + Результат.Вставить("КомпоновщикНастроекКД", КомпоновщикНастроек); + Результат.Вставить("Действие", Действие); + Результат.Вставить("ИдентификаторВладельца", ИдентификаторВладельца); + Результат.Вставить("Переформировать", СтрЗаканчиваетсяНа(Действие, "Сформировать")); + Результат.Вставить("ВариантМодифицирован", Истина); + Результат.Вставить("ПользовательскиеНастройкиМодифицированы", Истина); + Результат.Вставить("СброситьПользовательскиеНастройки", Истина); + + Возврат Результат; + +КонецФункции + +Функция СобытияКонтекстнойНастройки() + + События = Новый Соответствие; + События.Вставить("ВставитьПолеСправа", Истина); + События.Вставить("ВставитьПолеСправа", Истина); + События.Вставить("ВставитьГруппировкуВыше", Истина); + События.Вставить("ВставитьГруппировкуНиже", Истина); + + События.Вставить("ПереместитьПолеВлево", Истина); + События.Вставить("ПереместитьПолеВправо", Истина); + События.Вставить("ПереместитьПолеВыше", Истина); + События.Вставить("ПереместитьПолеНиже", Истина); + + События.Вставить("СкрытьПоле", Истина); + События.Вставить("ПереименоватьПоле", Истина); + + События.Вставить("СнятьФильтр", Истина); + События.Вставить("Фильтровать", Истина); + События.Вставить("ФильтроватьИСформировать", Истина); + + События.Вставить("СортироватьПоВозрастанию", Истина); + События.Вставить("СортироватьПоУбыванию", Истина); + + События.Вставить("ОформитьКрасным", Истина); + События.Вставить("ОформитьЖелтым", Истина); + События.Вставить("ОформитьЗеленым", Истина); + + События.Вставить("ОформитьОтрицательные", Истина); + События.Вставить("ОформитьПоложительные", Истина); + + События.Вставить("УстановитьВысотуСтроки", Истина); + События.Вставить("УстановитьШиринуКолонки", Истина); + + События.Вставить("ОформитьЕще", Истина); + + Возврат События; + +КонецФункции + +Функция ДействиеНадПолемДоступно(Действие, СвойстваЗаголовка) + + Если Не СвойстваЗаголовка[Действие] Тогда + + ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Действие недоступно для поля %1'"), СвойстваЗаголовка.Текст); + + ПоказатьПредупреждение(, ТекстПредупреждения); + + Возврат Ложь; + + КонецЕсли; + + Возврат Истина; + +КонецФункции + +#КонецОбласти + +#КонецОбласти diff --git a/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиент/ВариантыОтчетовСлужебныйКлиент.mdo b/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиент/ВариантыОтчетовСлужебныйКлиент.mdo new file mode 100644 index 000000000..fdaab3624 --- /dev/null +++ b/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиент/ВариантыОтчетовСлужебныйКлиент.mdo @@ -0,0 +1,10 @@ + + + ВариантыОтчетовСлужебныйКлиент + + ru + Варианты отчетов служебный клиент + + true + true + diff --git a/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиентСервер/Module.bsl new file mode 100644 index 000000000..3de81f1b3 --- /dev/null +++ b/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиентСервер/Module.bsl @@ -0,0 +1,174 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// СвойстваЗаголовка - см. ВариантыОтчетовСлужебный.СтандартныеСвойстваЗаголовкаОтчета +// +Процедура ОпределитьДоступностьДействийКонтекстногоМеню(Форма, СвойстваЗаголовка) Экспорт + + Если ТипЗнч(СвойстваЗаголовка) <> Тип("Структура") Тогда + Возврат; + КонецЕсли; + + ДействияКонтекстногоМеню = ДействияКонтекстногоМенюОбластиЗаголовка(); + + Для Каждого Действие Из ДействияКонтекстногоМеню Цикл + Форма.Элементы[Действие.Ключ].Доступность = СвойстваЗаголовка[Действие.Значение]; + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// ТекстСостояния - Строка +// КартинкаСостояния - Картинка +// - Неопределено +// +Процедура ОтобразитьСостояниеОтчета(Форма, Знач ТекстСостояния = "", Знач КартинкаСостояния = Неопределено) Экспорт + + ПолеОтчета = Форма.Элементы.Найти("РезультатОтчета"); + Если ПолеОтчета = Неопределено Тогда + Возврат; + КонецЕсли; + + ОтображатьСостояние = Не ПустаяСтрока(ТекстСостояния); + + Если КартинкаСостояния = Неопределено Или Не ОтображатьСостояние Тогда + КартинкаСостояния = Новый Картинка; + КонецЕсли; + + РежимОтображения = ДополнительныйРежимОтображения.НеИспользовать; + Если ОтображатьСостояние Тогда + РежимОтображения = ДополнительныйРежимОтображения.Неактуальность; + КонецЕсли; + + ОтображениеСостояния = ПолеОтчета.ОтображениеСостояния; + ОтображениеСостояния.Видимость = ОтображатьСостояние; + ОтображениеСостояния.ДополнительныйРежимОтображения = РежимОтображения; + ОтображениеСостояния.Картинка = КартинкаСостояния; + ОтображениеСостояния.Текст = ТекстСостояния; + + ПолеОтчета.ТолькоПросмотр = ОтображатьСостояние + Или ПолеОтчета.Вывод = ИспользованиеВывода.Запретить; + +КонецПроцедуры + +Функция ДействияКонтекстногоМенюОбластиЗаголовка() + + Действия = Новый Соответствие; + Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаВставитьПолеСправа", "ВставитьПолеСправа"); + Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаВставитьГруппировкуНиже", "ВставитьГруппировкуНиже"); + + Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаПереместитьПолеВлево", "ПереместитьПолеВлево"); + Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаПереместитьПолеВправо", "ПереместитьПолеВправо"); + Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаПереместитьПолеВыше", "ПереместитьПолеВыше"); + Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаПереместитьПолеНиже", "ПереместитьПолеНиже"); + + Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаСортироватьПоВозрастанию", "СортироватьПоВозрастанию"); + Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаСортироватьПоУбыванию", "СортироватьПоУбыванию"); + + Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаОформитьОтрицательные", "ОформитьОтрицательные"); + Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаОформитьПоложительные", "ОформитьПоложительные"); + + Возврат Действия; + +КонецФункции + +#Область Фильтры + +// Параметры: +// Настройки - НастройкиКомпоновкиДанных +// СвойстваЗаголовка - см. ВариантыОтчетовСлужебный.СтандартныеСвойстваЗаголовкаОтчета +// +Функция ГруппировкаФильтра(Настройки, СвойстваЗаголовка) Экспорт + + Если СвойстваЗаголовка.ИдентификаторНастроек = Неопределено Тогда + Возврат Настройки; + КонецЕсли; + + ИспользуемыеНастройки = Настройки.ПолучитьОбъектПоИдентификатору( + СвойстваЗаголовка.ИдентификаторНастроек); + + Если ИспользуемыеНастройки = Неопределено Тогда + ИспользуемыеНастройки = Настройки; + КонецЕсли; + + Если СвойстваЗаголовка.КоличествоРазделов = 1 Тогда + Раздел = ИспользуемыеНастройки; + Иначе + Раздел = ИспользуемыеНастройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела); + КонецЕсли; + + Если ТипЗнч(Раздел) = Тип("ТаблицаКомпоновкиДанных") Тогда + + Если СтрНайти(СвойстваЗаголовка.ИдентификаторГруппировки, "/column/") > 0 + И Раздел.Строки.Количество() > 0 Тогда + + Возврат Раздел.Строки[0]; + + Иначе + + Группировка = ИспользуемыеНастройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторГруппировки); + Возврат Группировка; + + КонецЕсли; + + КонецЕсли; + + Возврат Раздел; + +КонецФункции + +// Параметры: +// Настройки - НастройкиКомпоновкиДанных +// СвойстваЗаголовка - см. ВариантыОтчетовСлужебный.СтандартныеСвойстваЗаголовкаОтчета +// +// Возвращаемое значение: +// ОтборКомпоновкиДанных +// +Функция ФильтрыРазделаОтчета(Настройки, СвойстваЗаголовка) Экспорт + + ГруппировкаФильтра = ГруппировкаФильтра(Настройки, СвойстваЗаголовка); + Возврат ГруппировкаФильтра.Отбор; + +КонецФункции + +// Параметры: +// Фильтры - ОтборКомпоновкиДанных +// Поле - ПолеКомпоновкиДанных +// +// Возвращаемое значение: +// ЭлементОтбораКомпоновкиДанных +// Неопределено +// +Функция ФильтрРазделаОтчета(Фильтры, Поле) Экспорт + + Для Каждого Элемент Из Фильтры.Элементы Цикл + + Если ТипЗнч(Элемент) = Тип("ЭлементОтбораКомпоновкиДанных") + И Элемент.ЛевоеЗначение = Поле Тогда + + Возврат Элемент; + КонецЕсли; + + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + +#КонецОбласти + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиентСервер/ВариантыОтчетовСлужебныйКлиентСервер.mdo b/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиентСервер/ВариантыОтчетовСлужебныйКлиентСервер.mdo new file mode 100644 index 000000000..15b01bbd5 --- /dev/null +++ b/SSL/src/CommonModules/ВариантыОтчетовСлужебныйКлиентСервер/ВариантыОтчетовСлужебныйКлиентСервер.mdo @@ -0,0 +1,12 @@ + + + ВариантыОтчетовСлужебныйКлиентСервер + + ru + Варианты отчетов служебный клиент-сервер + + true + true + true + true + diff --git a/SSL/src/CommonModules/ВерсионированиеОбъектов/Module.bsl b/SSL/src/CommonModules/ВерсионированиеОбъектов/Module.bsl index 8ef2d5867..a91403e4c 100644 --- a/SSL/src/CommonModules/ВерсионированиеОбъектов/Module.bsl +++ b/SSL/src/CommonModules/ВерсионированиеОбъектов/Module.bsl @@ -84,7 +84,7 @@ // СписокОбъектов - Массив - список имен объектов метаданных. // // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - Строка - имя объекта метаданных. // * Значение - Булево - включено или выключено версионирование. // @@ -152,7 +152,7 @@ // Включает запись истории изменения для указанных объектов метаданных. // // Параметры: -// Объекты - Соответствие - объекты, для которых надо включить версионирование: +// Объекты - Соответствие из КлючИЗначение - объекты, для которых надо включить версионирование: // * Ключ - Строка - полный путь к объекту метаданных. Например, "Справочник.Номенклатура". // * Значение - ПеречислениеСсылка.ВариантыВерсионированияОбъектов - вариант версионирования объекта. // @@ -279,9 +279,9 @@ // Устанавливает признак игнорирования версии объекта. // // Параметры: -// Ссылка - ссылка на игнорируемый объект. -// НомерВерсии - Число - номер версии игнорируемого объекта. -// Игнорировать - Булево - признак игнорирования версии. +// Ссылка - ЛюбаяСсылка - ссылка на игнорируемый объект. +// НомерВерсии - Число - номер версии игнорируемого объекта. +// Игнорировать - Булево - признак игнорирования версии. // Процедура ИгнорироватьВерсиюОбъекта(Ссылка, НомерВерсии, Игнорировать) Экспорт @@ -317,15 +317,15 @@ // Возвращает количество коллизий или непринятых объектов. // // Параметры: -// УзлыОбмена - ПланОбменаСсылка -// - Массив -// - СписокЗначений -// - Неопределено - отбор для получения количества коллизий. -// ЭтоКоличествоКоллизий - Булево - если Истина, то возвращает количество коллизий, иначе количество непринятых. -// ПоказыватьПроигнорированные - Булево - признак необходимости учета проигнорированных. -// УзелИнформационнойБазы - ПланОбменаСсылка - отбор по конкретному узлу. -// Период - СтандартныйПериод - отбор по периоду. -// СтрокаПоиска - Строка - отбор по в комментарию. +// УзлыОбмена - ПланОбменаСсылка +// - Массив +// - СписокЗначений +// - Неопределено - отбор для получения количества коллизий. +// ЭтоКоличествоКоллизий - Булево - если Истина, то возвращает количество коллизий, иначе количество непринятых. +// ПоказыватьПроигнорированные - Булево - признак необходимости учета проигнорированных. +// УзелИнформационнойБазы - ПланОбменаСсылка - отбор по конкретному узлу. +// Период - СтандартныйПериод - отбор по периоду. +// СтрокаПоиска - Строка - отбор по в комментарию. // Функция КоличествоКоллизийИлиНепринятых(УзлыОбмена, ЭтоКоличествоКоллизий, ПоказыватьПроигнорированные, Период, СтрокаПоиска) Экспорт @@ -436,8 +436,8 @@ // либо в случае отказа от записи документов в результате непрохождения проверки по дате запрета изменения. // // Параметры: -// Список - ДинамическийСписок - инициализируемый динамический список. -// ВидПроблемы - Строка - коллизии - происходит инициализация списка коллизий, +// Список - ДинамическийСписок - инициализируемый динамический список. +// ВидПроблемы - Строка - коллизии - происходит инициализация списка коллизий, // НепринятыеПоДате - непринятых по дате. // Процедура ИнициализацияДинамическогоСпискаПроблемныхВерсий(Список, ВидПроблемы = "Коллизии") Экспорт @@ -524,10 +524,6 @@ // Обработчики событий подсистем конфигурации. // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. -// -// Параметры: -// ИсключенияПоискаСсылок - см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.ИсключенияПоискаСсылок -// Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.ВерсииОбъектов.ПолноеИмя()); @@ -910,10 +906,10 @@ // Обработчик перехода на версию объекта. // // Параметры: -// ОбъектСсылка - Ссылка - ссылка на объект, для которого имеется версия. -// НомерВерсииДляПерехода - Число - номер версии, на которую необходимо выполнить переход. -// НомерИгнорируемойВерсии - Число - номер версии, на которую необходимо проигнорировать. -// ПропуститьПроверкуЗапретаИзменения - Булево - признак пропуска проверки даты запрета загрузки. +// ОбъектСсылка - ЛюбаяСсылка - ссылка на объект, для которого имеется версия. +// НомерВерсииДляПерехода - Число - номер версии, на которую необходимо выполнить переход. +// НомерИгнорируемойВерсии - Число - номер версии, на которую необходимо проигнорировать. +// ПропуститьПроверкуЗапретаИзменения - Булево - признак пропуска проверки даты запрета загрузки. // Процедура ПриПереходеНаВерсиюОбъекта(СсылкаНаОбъект, Знач НомерВерсии) Экспорт @@ -965,10 +961,8 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. -// // Параметры: -// ТекущиеДела - см. ТекущиеДелаСлужебный.ТекущиеДела +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт @@ -1189,7 +1183,7 @@ // Записывает версию объекта в информационную базу. // // Параметры: -// Объект - для создания версии. +// Объект - для создания версии. // Процедура ПриСозданииВерсииОбъекта(Объект, РежимЗаписи) @@ -1414,10 +1408,10 @@ // Возвращает вариант версионирования для указанного объекта метаданных. // // Параметры: -// ТипОбъекта - СправочникСсылка.ИдентификаторОбъектаМетаданных - ИОМ. +// ТипОбъекта - СправочникСсылка.ИдентификаторыОбъектовМетаданных - объект. // // Возвращаемое значение: -// Перечисление.ВариантыВерсионированияОбъектов. +// ПеречислениеСсылка.ВариантыВерсионированияОбъектов. // Функция ВариантВерсионированияОбъекта(ТипОбъекта) @@ -1432,7 +1426,8 @@ // АдресВоВременномХранилище - Строка - адрес двоичных данных во временном хранилище. // ТекстСообщенияОбОшибке - Строка - текст ошибки (возвращаемый параметр), если восстановить объект не удалось. // -// Возвращаемое значение - объект или Неопределено. +// Возвращаемое значение: +// Произвольный - объект или Неопределено, если не удалось восстановить объект. // Функция ВосстановитьОбъектПоXML(ДанныеОбъекта, ТекстСообщенияОбОшибке = "") @@ -1465,13 +1460,14 @@ // Возвращает структуру, содержащую версию объекта и дополнительную информацию. // // Параметры: -// Ссылка - Ссылка - ссылка версионируемый объект; +// Ссылка - ЛюбаяСсылка - ссылка версионируемый объект; // НомерВерсии - Число - номер версии объекта. // -// Возвращаемое значение - Структура: +// Возвращаемое значение: +// Структура: // ВерсияОбъекта - ДвоичныеДанные - сохраненная версия объекта информационной базы; -// АвторВерсии - Справочник.Пользователи -// - Справочник.ВнешниеПользователи - +// АвторВерсии - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи - // пользователь, записавший версию объекта. // ДатаВерсии - Дата - дата записи версии объекта. // @@ -1733,9 +1729,9 @@ КонецФункции // Параметры: -// ЭлементДанных -// ОтправкаЭлемента - ОтправкаЭлементаДанных -// Получатель - ПланОбменаОбъект +// ЭлементДанных +// ОтправкаЭлемента - ОтправкаЭлементаДанных +// Получатель - ПланОбменаОбъект // Процедура ПриОтправкеДанныхПолучателю(ЭлементДанных, ОтправкаЭлемента, Получатель) @@ -1931,7 +1927,7 @@ // Возвращает сериализованный объект в виде двоичных данных. // // Параметры: -// Объект - Любой - сериализуемый объект. +// Объект - Произвольный - сериализуемый объект. // // Возвращаемое значение: // ДвоичныеДанные - сериализованный объект. @@ -1962,7 +1958,7 @@ // ** ЗначениеРеквизита - Произвольный // ** ТипРеквизита - Строка // ** Тип - Тип -// * ТабличныеЧасти - Соответствие: +// * ТабличныеЧасти - Соответствие из КлючИЗначение: // ** Ключ - Строка // ** Значение - ТаблицаЗначений // * ТабличныеДокументы - см. ВерсионированиеОбъектовПереопределяемый.ПриПолученииТабличныхДокументовОбъекта.ТабличныеДокументы @@ -3230,7 +3226,7 @@ // Для вызова из ПриПолученииДанныхОтГлавного и ПриПолученииДанныхОтПодчиненного. // // Параметры: -// Отправитель +// Отправитель // Процедура ЗаписатьВерсиюСИзменениемНомера(ЭлементДанных, ПолучениеЭлемента, Отправитель, НомерВерсии) diff --git a/SSL/src/CommonModules/Взаимодействия/Module.bsl b/SSL/src/CommonModules/Взаимодействия/Module.bsl index 7a8a9271c..4f2326802 100644 --- a/SSL/src/CommonModules/Взаимодействия/Module.bsl +++ b/SSL/src/CommonModules/Взаимодействия/Module.bsl @@ -338,7 +338,7 @@ // - ДокументСсылка.ЭлектронноеПисьмоИсходящее - ссылка на взаимодействие. // // Возвращаемое значение: -// ОпределяемыйТип.ПредметВзаимодействия, Неопределено +// ОпределяемыйТип.ПредметВзаимодействия, Неопределено // Функция ПредметВзаимодействия(Взаимодействие) Экспорт @@ -382,10 +382,6 @@ Возврат ПолучитьФункциональнуюОпцию("ИспользоватьПрочиеВзаимодействия"); КонецФункции -Функция ОтправлятьПисьмаВФорматеHTML() Экспорт - Возврат ПолучитьФункциональнуюОпцию("ОтправлятьПисьмаВФорматеHTML"); -КонецФункции - // Возвращает список контактов предмету по заданному типу контактной информации. // Функция ПолучитьКонтактыПоПредмету(Предмет, ТипыКонтактнойИнформации) Экспорт @@ -601,7 +597,7 @@ ИначеЕсли ПисьмоHTML Тогда ПараметрыВложения.Вставить("ИДФайлаЭлектронногоПисьма", Вложение.Идентификатор); - ПрисоединенныйФайл = МодульУправлениеЭлектроннойПочтой.ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища(Письмо.Ссылка, + МодульУправлениеЭлектроннойПочтой.ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища(Письмо.Ссылка, Вложение.АдресВоВременномХранилище, ПараметрыВложения); КонецЕсли; @@ -856,10 +852,6 @@ КонецПроцедуры // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. -// -// Параметры: -// Типы См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки.Типы -// Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт Типы.Добавить(Метаданные.РегистрыСведений.ЗаблокированныеДляПолученияУчетныеЗаписи); КонецПроцедуры @@ -973,10 +965,6 @@ КонецПроцедуры // См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. -// -// Параметры: -// ШаблоныЗаданий - см. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.ШаблоныЗаданий -// Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт ШаблоныЗаданий.Добавить("ОбновлениеСтатусовДоставкиSMS"); @@ -985,10 +973,8 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел -// // Параметры: -// ТекущиеДела - см. ТекущиеДелаСлужебный.ТекущиеДела +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт @@ -1039,10 +1025,6 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -1145,10 +1127,6 @@ КонецПроцедуры // См. СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании. -// -// Параметры: -// Объекты - см. СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании.Объекты -// Процедура ПриОпределенииОбъектовСКомандамиСозданияНаОсновании(Объекты) Экспорт Объекты.Добавить(Метаданные.Документы.Встреча); @@ -1160,9 +1138,7 @@ КонецПроцедуры -// Параметры: -// ПодчиненныеОбъекты - см. ОбщегоНазначения.ПодчиненныеОбъекты -// +// См. ОбщегоНазначенияПереопределяемый.ПриОпределенииПодчиненныхОбъектов Процедура ПриОпределенииПодчиненныхОбъектов(ПодчиненныеОбъекты) Экспорт ПодчиненныйОбъект = ПодчиненныеОбъекты.Добавить(); @@ -1173,14 +1149,16 @@ КонецПроцедуры +// АПК:299-выкл программно вызываемая процедура +// // Вызывается при замене дублей в реквизитах элементов. // // Параметры: -// ПарыЗамен - Соответствие - содержит пары значений оригинал и дубль. -// НеобработанныеЗначенияОригиналов - Массив из Структура: -// * ЗаменяемоеЗначение - ЛюбаяСсылка - оригинальное значение заменяемого объекта. -// * ИспользуемыеСвязи - см. ПоискИУдалениеДублей.СвязиПодчиненныхОбъектовПоТипам. -// * ЗначениеКлючевыхРеквизитов - Структура - Ключ - имя реквизита, значение - значение реквизита. +// ПарыЗамен - Соответствие - содержит пары значений оригинал и дубль. +// НеобработанныеЗначенияОригиналов - Массив из Структура: +// * ЗаменяемоеЗначение - ЛюбаяСсылка - оригинальное значение заменяемого объекта. +// * ИспользуемыеСвязи - см. ПоискИУдалениеДублей.СвязиПодчиненныхОбъектовПоТипам. +// * ЗначениеКлючевыхРеквизитов - Структура - Ключ - имя реквизита, значение - значение реквизита. // Процедура ПриПоискеЗаменыСсылок(ПарыЗамен, НеобработанныеЗначенияОригиналов) Экспорт @@ -1215,6 +1193,7 @@ КонецЦикла; КонецПроцедуры +//// АПК:299-вкл // Проверяет, выполняется ли фоновое задание по отправке и получению писем. // @@ -1454,7 +1433,7 @@ // или участниках предмета взаимодействия. // // Параметры: -// ТаблицаКонтактов - Документ.ТабличнаяЧасть - содержащая описания и ссылки на контакты взаимодействия +// ТаблицаКонтактов - ТабличнаяЧасть - содержащая описания и ссылки на контакты взаимодействия // или участников предмета взаимодействия. // Функция ПреобразоватьТаблицуКонтактовВМассив(ТаблицаКонтактов) Экспорт @@ -1520,12 +1499,12 @@ // Возвращает таблицу всех контактов, связанных с предметом взаимодействия. // Параметры: -// Предмет - предмет взаимодействия, -// ВключатьEmail - вернуть e-mail адреса даже если контакт не определен. +// Предмет - ОпределяемыйТип.ПредметВзаимодействия - предмет взаимодействия. +// ВключатьEmail - Булево - признак необходимости вернуть e-mail адреса даже если контакт не определен. // // Возвращаемое значение: // ТаблицаЗначений - таблица значений содержащая информацию о контактах: -// * Ссылка - ОпределяемыйТип.КонтактВзаимодействия - контакт. +// * Ссылка - ОпределяемыйТип.ПредметВзаимодействия - контакт. // * Наименование - Строка - наименование контакта. // * НаименованиеВладельца - Строка - наименование владельца контакта. // @@ -2287,7 +2266,7 @@ | И &УсловиеИерархический | И (НЕ ТаблицаСправочника.ПометкаУдаления)"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяПоляНаименованиеВладельца", ?(ЭлементМассиваОписания.ЕстьВладелец," ТаблицаСправочника.Владелец.Наименование", """""")); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяПоляНаименованиеВладельца", ?(ЭлементМассиваОписания.ЕстьВладелец," ТаблицаСправочника.Владелец.Наименование","""")); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяПоляНаименование", "ТаблицаСправочника." + ЭлементМассиваОписания.ИмяРеквизитаПредставлениеКонтакта); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаСправочника", "Справочник." +ЭлементМассиваОписания.Имя); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &УсловиеИерархический", ?(ЭлементМассиваОписания.Иерархический," И (НЕ ТаблицаСправочника.ЭтоГруппа)","")); @@ -2374,9 +2353,8 @@ // поиска контактов по предмету. // // Параметры: -// ЭлементыФормы - КоллекцияЭлементовУправляемойФормы - предоставляет доступ к элементам формы. -// Предмет - СправочникСсылка -// - ДокументСсылка - предмет взаимодействия. +// ЭлементыФормы - ВсеЭлементыФормы - предоставляет доступ к элементам формы. +// Предмет - ОпределяемыйТип.ПредметВзаимодействия - предмет взаимодействия. // КонтактыПоПредмету - ТаблицаЗначений - реквизит формы, в который помещаются найденные контакты. // ВключатьEmail - Булево - признак необходимости получения данных о электронном адресе контакта. // @@ -2649,10 +2627,10 @@ // Заполняет табличную часть участники у документов Встреча и Запланированное взаимодействие. // // Параметры: -// Контакты - Массив - массив, содержащий участников взаимодействия. -// Участники - ТабличнаяЧасть - табличная часть документа, которая будет заполнена +// Контакты - Массив - массив, содержащий участников взаимодействия. +// Участники - ТабличнаяЧасть - табличная часть документа, которая будет заполнена // на основании массива. -// ТипКонтактнойИнформации - Перечисления.ТипыКонтактнойИнформации - если указано, +// ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации - если указано, // то будет наложен отбор по данном типу контактной информации. // РазбиватьПоКоличествуАдресов - Булево - если истина, то для контакта будет создано столько строк в ТЧ "Участники", // сколько для него получено различных видов заполненной контактной информации. @@ -2730,7 +2708,7 @@ // Контакт - СправочникСсылка - контакт, на основании данных которого будут заполнены прочие поля. // Представление - Строка - представление контакта. // Адрес - Строка - контактная информация контакта. -// ТипКонтактнойИнформации - Перечисления.ТипыКонтактнойИнформации - контактная информация контакта. +// ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации - контактная информация контакта. // Процедура ДозаполнитьПоляКонтактов(Контакт, Представление, Адрес, ТипКонтактнойИнформации = Неопределено) Экспорт @@ -2789,7 +2767,7 @@ // Формирует список выбора для быстрого отбора по типу взаимодействий при использовании только почтового клиента. // // Параметры: -// Элемент - ЭлементФормы - элемент, для которого формируется список выбора. +// Элемент - ПолеФормы - элемент, для которого формируется список выбора. // Процедура СформироватьСписокВыбораТипВзаимодействияТолькоПочта(Элемент) @@ -3116,14 +3094,6 @@ КонецФункции -// Выполняет отправку электронного письма. -// -// Параметры: -// Объект - ДокументОбъект.ЭлектронноеПисьмоИсходящее - отправляемое письмо. -// -// Возвращаемое значение: -// Строка - идентификатор почтового сообщения. -// Процедура ДобавитьВПараметрАдресатов(Источник, ПараметрыПисьма, ИмяПараметра, ИмяТаблицы) Экспорт Если ТипЗнч(Источник) = Тип("ДанныеФормыСтруктура") ИЛИ ТипЗнч(Источник) = Тип("ДокументОбъект.ЭлектронноеПисьмоИсходящее") @@ -3834,6 +3804,10 @@ КонецПроцедуры +Функция ОтправлятьПисьмаВФорматеHTML() + Возврат ПолучитьФункциональнуюОпцию("ОтправлятьПисьмаВФорматеHTML"); +КонецФункции + #Область ОбработчикиОбновления Процедура ОтключитьПодсистемуВМоделиСервиса() Экспорт @@ -3857,8 +3831,7 @@ // Динамически формирует общие формы "Адресная книга" и "Подбор контактов" согласно возможным типам контактов. // // Параметры: -// Форма - ФормаКлиентскогоПриложения: -// * ИменаДобавленныхТаблиц - СписокЗначений +// Форма - см. ОбщаяФорма.ВыборКонтакта // Процедура ДобавитьСтраницыФормыПодбораКонтактов(Форма) Экспорт @@ -4479,7 +4452,7 @@ // Функция ФорматСообщенияПоУмолчанию(Пользователь) Экспорт - Если Не ПолучитьФункциональнуюОпцию("ОтправлятьПисьмаВФорматеHTML") Тогда + Если Не ОтправлятьПисьмаВФорматеHTML() Тогда Возврат Перечисления.СпособыРедактированияЭлектронныхПисем.ОбычныйТекст; КонецЕсли; @@ -4631,7 +4604,7 @@ // - ДокументСсылка.ЭлектронноеПисьмоИсходящее - письмо для которого будет проведена оценка. // // Возвращаемое значение: -// ВыборкаИзРезультатовЗапроса - оценка размера письма в байтах. +// ВыборкаИзРезультатаЗапроса - данные письма основания. // Функция ПолучитьДанныеПисьмаОснования(Письмо) Экспорт @@ -4748,7 +4721,7 @@ // ТаблицаПолучателей - ТабличнаяЧасть - табличная часть для которой выполняется функция. // // Возвращаемое значение: -// СтрокаКВозврату - строка с представление всех получателей табличной части. +// Строка - строка с представление всех получателей табличной части. // Функция ПолучитьПредставленияПолучателейВходящегоПисьма(ТаблицаПолучателей) Экспорт @@ -5072,12 +5045,14 @@ // Добавляет дочерний элемент с атрибутами. // // Параметры: -// ЭлементРодитель - ЭлементHTML - элемент,к которому будет добавлен дочерний элемент. +// ЭлементРодитель - ЭлементHTML - элемент,к которому будет добавлен дочерний элемент. // Имя - Строка - имя элемента HTML. -// Атрибуты - Соответствие - ключ содержит имя атрибута, значение текстовое содержимое. +// Атрибуты - Соответствие из КлючИЗначение: +// * Ключ - Строка - имя атрибута; +// * Значение - Строка - текстовое содержимое. // // Возвращаемое значение: -// ЭлементHTML - добавленный элемент. +// ЭлементHTML - добавленный элемент. // Функция ДобавитьЭлементСАтрибутами(ЭлементРодитель, Имя, Атрибуты) @@ -5106,17 +5081,7 @@ КонецФункции -// Добавляет текстовый узел в ДокументHTML. -// -// Параметры: -// ЭлементРодитель - ЭлементHTML - элемент,к которому будет добавлен дочерний элемент. -// Текст - Строка - содержимое текстового узла. -// Атрибуты - Соответствие - ключ содержит имя атрибута, значение текстовое содержимое. -// -// Возвращаемое значение: -// ЭлементHTML - добавленный элемент. -// -Процедура ДобавитьТекстовыйУзел(ЭлементРодитель, Текст, ВыделятьЖирным = Ложь,ДобавлятьПереносСтроки = Ложь) +Процедура ДобавитьТекстовыйУзел(ЭлементРодитель, Текст, ВыделятьЖирным = Ложь, ДобавлятьПереносСтроки = Ложь) ДокументВладелец = ЭлементРодитель.ДокументВладелец; @@ -5354,7 +5319,7 @@ // статус. // // Возвращаемое значение: -// Перечисления.СостоянияДокументаСообщениеSMS - рассчитанный статус документа. +// ПеречислениеСсылка.СостоянияДокументаСообщениеSMS - рассчитанный статус документа. // Функция СостояниеДокументаСообщениеSMS(СообщениеSMS) @@ -5437,10 +5402,10 @@ // состояния сообщения SMS подсистемы Взаимодействия. // // Параметры: -// СтатусДоставки - Перечисления.СтатусыДоставкиSMS - значение, которое необходимо преобразовать. +// СтатусДоставки - Строка - значение, которое необходимо преобразовать. // // Возвращаемое значение: -// Перечисления.СостоянияСообщенияSMS - преобразованное значение. +// ПеречислениеСсылка.СостоянияСообщенияSMS - преобразованное значение. // Функция СостояниеСообщенияSMSСогласноСтатусуДоставки(СтатусДоставки); @@ -7343,8 +7308,8 @@ // Процедура заполняет список выбора времени. // Параметры: -// ПолеВводаФормы - элемент-владелец списка, -// Интервал - интервал, с которым необходимо заполнить список, по умолчанию час. +// ПолеВводаФормы - ПолеФормы - элемент формы, к которому относится список выбора. +// Интервал - Число - интервал в секундах, с которым необходимо заполнить список, по умолчанию час. // Процедура ЗаполнитьСписокВыбораВремени(ПолеВводаФормы, Интервал = 3600) Экспорт @@ -7490,7 +7455,6 @@ ТекстСоединениеТаблицаКонтактов = ""; Иначе ТекстПредмет = "ЕСТЬNULL(ПредметыВзаимодействий.Предмет, НЕОПРЕДЕЛЕНО)"; - ТекстРазличные = ""; ТекстОтборКонтакт = ", |КонтактыВзаимодействий.Контакт"; ТекстСоединениеТаблицаКонтактов = "{ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактыВзаимодействий КАК КонтактыВзаимодействий @@ -8117,7 +8081,7 @@ // Параметры: // Папка - Справочник.ПапкиЭлектронныхПисем - папка, имеет смысл для документов "Электронное письмо входящее" // и "Электронное письмо исходящее". -// Предмет - СправочникСсылка, ДокументСсылка, указывает на предмет взаимодействия. +// Предмет - СправочникСсылка, ДокументСсылка - указывает на предмет взаимодействия. // Рассмотрено - Булево - признак рассмотрения взаимодействия. // РассмотретьПосле - ДатаВремя - дата, до которой отложено рассмотрение взаимодействия. // РассчитыватьРассмотрено - Булево - признак необходимости расчета состояний папки и предмета. @@ -8151,7 +8115,7 @@ // Определяет, является ли переданная в функцию ссылка контактом. // // Параметры: -// ОбъектСсылка - Ссылка - для которой выполняется проверка. +// ОбъектСсылка - ЛюбаяСсылка - для которой выполняется проверка. // // Возвращаемое значение: // Булево - истина, если является контактом, ложь в обратном случае. @@ -8317,8 +8281,8 @@ // Получает взаимодействия из цепочки по предмету взаимодействия. // // Параметры: -// Цепочка - Ссылка - предмет взаимодействия для которого получаются взаимодействия. -// Исключать - Ссылка - взаимодействие, которое не должно попасть в результирующий массив. +// Цепочка - ЛюбаяСсылка - предмет взаимодействия для которого получаются взаимодействия. +// Исключать - ЛюбаяСсылка - взаимодействие, которое не должно попасть в результирующий массив. // // Возвращаемое значение: // Массив - найденные взаимодействия. @@ -8683,7 +8647,7 @@ КонецПроцедуры -// Обработчик события при записи, возникающих в формах документов взаимодействий. +// Обработчик события при записи, возникающего в формах документов взаимодействий. // // Параметры: // ТекущийОбъект - ДокументОбъект - документ, в котором возникло событие. @@ -8800,11 +8764,12 @@ КонецПроцедуры -// Обработчик события перед записью, возникающих в формах документов взаимодействий. +// Обработчик события перед записью, возникающего в формах документов взаимодействий. // // Параметры: // Форма - ФормаКлиентскогоПриложения - форма в которой произошло событие. // ТекущийОбъект - ДокументОбъект - документ, в котором возникло событие. +// ИзменилисьКонтакты - Булево - признак того, что изменения контактов взаимодействия нужно записать. // Процедура ПередЗаписьюВзаимодействияИзФормы(Форма, ТекущийОбъект, ИзменилисьКонтакты = Ложь) Экспорт @@ -8873,9 +8838,9 @@ // Заменяет предмет в цепочке взаимодействий. // // Параметры: -// Цепочка - Ссылка - предмет взаимодействий, который будет заменен. -// Предмет - Ссылка - предмет, на который будет выполнена замена. -// Исключать - Ссылка - взаимодействие, в котором операция замены выполнена не будет. +// Цепочка - ЛюбаяСсылка - предмет взаимодействий, который будет заменен. +// Предмет - ЛюбаяСсылка - предмет, на который будет выполнена замена. +// Исключать - ЛюбаяСсылка - взаимодействие, в котором операция замены выполнена не будет. // Процедура ЗаменитьПредметВЦепочкеВзаимодействий(Цепочка, Предмет, Исключать = Неопределено) diff --git a/SSL/src/CommonModules/ВзаимодействияВызовСервера/Module.bsl b/SSL/src/CommonModules/ВзаимодействияВызовСервера/Module.bsl index c68aa3301..581015364 100644 --- a/SSL/src/CommonModules/ВзаимодействияВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияВызовСервера/Module.bsl @@ -74,7 +74,7 @@ // Получает наименование и адреса электронной почты контакта. // // Параметры: -// Контакт - Ссылка - контакт, для которого получаются данные. +// Контакт - ЛюбаяСсылка - контакт, для которого получаются данные. // // Возвращаемое значение: // Структура - содержит наименование контакта и список значений электронной почты контакта. @@ -268,7 +268,7 @@ // // Параметры: // МассивВзаимодействий - Массив - массив взаимодействий для которых будет установлен предмет. -// Предмет - Ссылка - предмет, на который будет выполнена замена. +// Предмет - ЛюбаяСсылка - предмет, на который будет выполнена замена. // ПроверятьНаличиеДругихЦепочек - Булево - если Истина, то будет выполнена замена предмета и для взаимодействий, // которые входят в цепочки взаимодействий первым взаимодействием которых // является взаимодействие входящее в массив. @@ -348,7 +348,7 @@ ДанныеПисьма = Взаимодействия.ИнтернетПочтовоеСообщениеИзПисьма(Письмо); Если ДанныеПисьма <> Неопределено Тогда - ДвоичныеДанные = ДанныеПисьма.ИнтернетПочтовоеСообщение.ПолучитьИсходныеДанные(); + ДвоичныеДанные = ДанныеПисьма.ИнтернетПочтовоеСообщение.ПолучитьИсходныеДанные(); // ДвоичныеДанные ДанныеФайла.СсылкаНаДвоичныеДанныеФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор); ДанныеФайла.Наименование = Взаимодействия.ПредставлениеПисьма(ДанныеПисьма.ИнтернетПочтовоеСообщение.Тема, diff --git a/SSL/src/CommonModules/ВзаимодействияКлиент/Module.bsl b/SSL/src/CommonModules/ВзаимодействияКлиент/Module.bsl index 4888a32e2..7d21f20c7 100644 --- a/SSL/src/CommonModules/ВзаимодействияКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияКлиент/Module.bsl @@ -13,7 +13,7 @@ // Параметры: // ПараметрыФормы - см. ВзаимодействияКлиент.ПараметрыФормыОтправкиSMS. // УдалитьТекст - Строка - не используется. -// УдалитьПредмет - Ссылка - не используется. +// УдалитьПредмет - ЛюбаяСсылка - не используется. // УдалитьОтправлятьВТранслите - Булево - не используется. // Процедура ОткрытьФормуОтправкиSMS(Знач ПараметрыФормы = Неопределено, @@ -39,7 +39,7 @@ // - СписокЗначений // - Массив - список получателей письма. // * Текст - Строка - текст письма. -// * Предмет - Ссылка - предмет письма. +// * Предмет - ЛюбаяСсылка - предмет письма. // * ОтправлятьВТранслите - Булево - признак того, что сообщение при отправке должно быть преобразовано в латинские // символы. // @@ -254,9 +254,10 @@ // Открывает форму объекта-контакта заполненную по описанию участника взаимодействия. // Параметры: -// Описание - текстовое описание контакта, -// Адрес - контактная информация, -// Основание - объект, из которого создается контакт. +// Описание - Строка - текстовое описание контакта. +// Адрес - Строка - контактная информация. +// Основание - ДокументОбъект - документ взаимодействия, из которого создается контакт. +// ТипыКонтактов - СписокЗначений - список возможных типов контактов. // Процедура СоздатьКонтакт(Описание, Адрес, Основание, ТипыКонтактов) Экспорт @@ -321,7 +322,7 @@ // ** СоздатьКонтакт - КнопкаФормы - элемент, выполняющий команду создания взаимодействия. // ИмяСобытия - Строка - имя события. // Параметр - Структура: -// * ТипОповещения - строка - информация о типе оповещения. +// * ТипОповещения - Строка - информация о типе оповещения. // * Основание - ОпределяемыйТип.КонтактВзаимодействия // // Источник - Произвольный - источник события. @@ -557,7 +558,7 @@ // Параметры: // ЗначениеПоля - Дата - значение поля "Отработать после". // ВыбранноеЗначение - Дата -// - число - либо выбранная дата, либо числовой инкремент от текущей даты. +// - Число - либо выбранная дата, либо числовой инкремент от текущей даты. // СтандартнаяОбработка - Булево - признак стандартной обработки обработчика события формы. // Модифицированность - Булево - признак модифицированности формы. // @@ -579,7 +580,7 @@ // // Параметры: // Элемент - ТаблицаФормы - таблица в которой произошло событие, содержит: -// * ТекущиеДанные - СтрокаТаблицыЗначений - содержит: +// * ТекущиеДанные - СтрокаТаблицыЗначений: // ** Ссылка - ОпределяемыйТип.КонтактВзаимодействия - контакт. // Форма - ФормаКлиентскогоПриложения - форма, на которой находятся элементы. // @@ -611,7 +612,7 @@ // // Параметры: // Элемент - ТаблицаФормы - список в который происходит добавление, содержит: -// * ТекущиеДанные - СтрокаТаблицыЗначений - содержит: +// * ТекущиеДанные - СтрокаТаблицыЗначений: // ** Ссылка - ДокументСсылка.ТелефонныйЗвонок // - ДокументСсылка.ЗапланированноеВзаимодействие // - ДокументСсылка.СообщениеSMS @@ -796,7 +797,7 @@ // Определяет, является ли переданная в функцию ссылка взаимодействием. // // Параметры: -// ОбъектСсылка - Ссылка - для которой, необходимо выполнить проверку. +// ОбъектСсылка - ЛюбаяСсылка - для которой, необходимо выполнить проверку. // // Возвращаемое значение: // Булево - Истина, если переданная ссылка является взаимодействием. diff --git a/SSL/src/CommonModules/ВзаимодействияКлиентСервер/Module.bsl b/SSL/src/CommonModules/ВзаимодействияКлиентСервер/Module.bsl index 5e168d213..d2cbc4bb5 100644 --- a/SSL/src/CommonModules/ВзаимодействияКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияКлиентСервер/Module.bsl @@ -115,7 +115,7 @@ // Определяет, является ли переданная в функцию ссылка взаимодействием. // // Параметры: -// ОбъектСсылка - Ссылка - для которой необходимо выполняется проверка. +// ОбъектСсылка - ЛюбаяСсылка - для которой необходимо выполняется проверка. // // Возвращаемое значение: // Булево - истина, если переданная ссылка является взаимодействием. @@ -140,7 +140,7 @@ // Определяет, является ли переданная в функцию ссылка присоединенным файлом взаимодействий. // // Параметры: -// ОбъектСсылка - Ссылка - для которой необходимо выполняется проверка. +// ОбъектСсылка - ЛюбаяСсылка - для которой необходимо выполняется проверка. // // Возвращаемое значение: // Булево - истина, если переданная ссылка является присоединенным файлом взаимодействий. @@ -159,7 +159,7 @@ // Проверяет, является ли переданная ссылка предметом взаимодействий. // // Параметры: -// ОбъектСсылка - Ссылка - ссылка, для которой выполняется проверка, +// ОбъектСсылка - ЛюбаяСсылка - ссылка, для которой выполняется проверка, // является ли она ссылкой на предмет взаимодействий. // // Возвращаемое значение: diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыКлиент/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыКлиент/Module.bsl index 145824e36..043fff903 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыКлиент/Module.bsl @@ -46,10 +46,11 @@ // Оповещение - ОписаниеОповещения - описание оповещения о подключении со следующими параметрами: // * Результат - Структура - результат подключения компоненты: // ** Подключено - Булево - признак подключения; -// ** ПодключаемыйМодуль - AddIn - экземпляр объекта внешней компоненты; -// - ФиксированноеСоответствие - экземпляры объектов внешней компоненты, -// указанные в ПараметрыПодключения.ИдентификаторыСозданияОбъектов; -// Ключ - Идентификатор, Значение - экземпляр объекта. +// ** ПодключаемыйМодуль - ОбъектВнешнейКомпоненты - экземпляр объекта внешней компоненты; +// - ФиксированноеСоответствие из КлючИЗначение - экземпляры объектов внешней компоненты, +// указанные в ПараметрыПодключения.ИдентификаторыСозданияОбъектов: +// *** Ключ - Строка - идентификатор внешней компоненты; +// *** Значение - ОбъектВнешнейКомпоненты - экземпляр объекта внешней компоненты. // ** ОписаниеОшибки - Строка - краткое описание ошибки. При отмене пользователем пустая строка. // * ДополнительныеПараметры - Структура - значение, которое было указано при создании объекта ОписаниеОповещения. // Идентификатор - Строка - идентификатор объекта внешней компоненты. @@ -108,17 +109,16 @@ // Оповещение - ОписаниеОповещения - описание оповещения о подключении со следующими параметрами: // * Результат - Структура - результат подключения компоненты: // ** Подключено - Булево - признак подключения. -// ** ПодключаемыйМодуль - AddIn - экземпляр объекта внешней компоненты. +// ** ПодключаемыйМодуль - ОбъектВнешнейКомпоненты - экземпляр объекта внешней компоненты. // ** ОписаниеОшибки - Строка - краткое описание ошибки. // * ДополнительныеПараметры - Структура - значение, которое было указано при создании объекта ОписаниеОповещения. // Идентификатор - Строка - идентификатор объекта внешней компоненты. -// ИдентификаторСозданияОбъекта - Строка - (необязательный) идентификатор создания экземпляра модуля объекта +// ИдентификаторСозданияОбъекта - Строка - идентификатор создания экземпляра модуля объекта // (только для компонент, у которых идентификатор создания объекта отличается от ProgID). // // Пример: // // Оповещение = Новый ОписаниеОповещения("ПодключитьКомпонентуЗавершение", ЭтотОбъект); -// // ВнешниеКомпонентыКлиент.ПодключитьКомпонентуИзРеестраWindows(Оповещение, "SBRFCOMObject", "SBRFCOMExtension"); // // &НаКлиенте @@ -184,7 +184,7 @@ // ** ОписаниеОшибки - Строка - краткое описание ошибки. При отмене пользователем пустая строка. // * ДополнительныеПараметры - Структура - значение, которое было указано при создании объекта ОписаниеОповещения. // Идентификатор - Строка - идентификатор объекта внешней компоненты. -// Версия - Строка - (необязательный) версия компоненты. +// Версия - Строка - версия компоненты. // ПараметрыУстановки - см. ПараметрыУстановки. // // Пример: @@ -255,7 +255,7 @@ // Структура: // * Идентификатор - Строка -(необязательный) идентификатор объекта внешней компоненты. // * Версия - Строка - (необязательный) версия компоненты. -// * ПараметрыПоискаДополнительнойИнформации - Соответствие - (необязательный) параметры: +// * ПараметрыПоискаДополнительнойИнформации - Соответствие из КлючИЗначение - (необязательный) параметры: // ** Ключ - Строка - идентификатор дополнительной запрошенной информации. // ** Значение - см. ПараметрыПоискаДополнительнойИнформации. // Пример: @@ -284,7 +284,7 @@ // ** Идентификатор - Строка - идентификатор объекта внешней компоненты. // ** Версия - Строка - версия загруженной компоненты. // ** Наименование - Строка - наименование загруженной компоненты. -// ** ДополнительнаяИнформация - Соответствие - дополнительная информация о компоненте, +// ** ДополнительнаяИнформация - Соответствие из КлючИЗначение - дополнительная информация о компоненте, // если не запрашивалась - пустое соответствие: // *** Ключ - см. ПараметрыПоискаДополнительнойИнформации. // *** Значение - см. ПараметрыПоискаДополнительнойИнформации. diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl index fb48578f1..52ed55336 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl @@ -12,7 +12,7 @@ // // Возвращаемое значение: // Структура: -// * ИдентификаторыСозданияОбъектов - Массив Из Строка - идентификаторы экземпляров модуля объекта, +// * ИдентификаторыСозданияОбъектов - Массив из Строка - идентификаторы экземпляров модуля объекта, // используется только для компонент, у которых есть несколько идентификаторов создания объектов. // При задании параметр Идентификатор будет использоваться только для определения компоненты. // @@ -37,11 +37,11 @@ // Возвращаемое значение: // Структура - результат подключения компоненты: // * Подключено - Булево - признак подключения; -// * ПодключаемыйМодуль - AddIn - экземпляр объекта внешней компоненты; -// - ФиксированноеСоответствие - экземпляры объектов внешней компоненты, +// * ПодключаемыйМодуль - ОбъектВнешнейКомпоненты - экземпляр объекта внешней компоненты; +// - ФиксированноеСоответствие из КлючИЗначение - экземпляры объектов внешней компоненты, // указанные в ПараметрыПодключения.ИдентификаторыСозданияОбъектов: // ** Ключ - Строка - идентификатор, -// ** Значение - AddIn - экземпляр объекта внешней компоненты. +// ** Значение - ОбъектВнешнейКомпоненты - экземпляр объекта внешней компоненты. // * ОписаниеОшибки - Строка - краткое описание ошибки. // Функция ПодключитьКомпоненту(Знач Идентификатор, Версия = Неопределено, ПараметрыПодключения = Неопределено) Экспорт @@ -113,7 +113,7 @@ // ** ИмяФайла - Строка - имя файла. // ** АдресФайла - Строка - адрес файла. // ** КодОшибки - Строка - код ошибки. -// АдресРезультата - Строка - (необязательный) адрес временного хранилища. +// АдресРезультата - Строка - адрес временного хранилища. // Если указан, в него будет помещено описание результата операции. // Процедура ОбновитьВнешниеКомпоненты(ДанныеВнешнихКомпонент, АдресРезультата = Неопределено) Экспорт @@ -127,6 +127,7 @@ "ВЫБРАТЬ | ВнешниеКомпоненты.Ссылка КАК Ссылка, | ВнешниеКомпоненты.Идентификатор КАК Идентификатор, + | ВнешниеКомпоненты.Версия КАК Версия, | ВнешниеКомпоненты.ДатаВерсии КАК ДатаВерсии |ИЗ | Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты @@ -142,37 +143,33 @@ Для каждого СтрокаРезультата Из ДанныеВнешнихКомпонент Цикл ПредставлениеКомпоненты = ВнешниеКомпонентыСлужебный.ПредставлениеКомпоненты( - СтрокаРезультата.Идентификатор, - СтрокаРезультата.Версия); + СтрокаРезультата.Идентификатор, СтрокаРезультата.Версия); КодОшибки = СтрокаРезультата.КодОшибки; Если ЗначениеЗаполнено(КодОшибки) Тогда Если КодОшибки = "АктуальнаяВерсия" Тогда - Результат = Результат + ПредставлениеКомпоненты + " - " + НСтр("ru = 'Актуальная версия.'") + Символы.ПС; + Результат = Результат + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 - актуальная версия.'"), ПредставлениеКомпоненты) + Символы.ПС; Продолжить; КонецЕсли; ИнформацияОбОшибке = ""; Если КодОшибки = "ОтсутствуетКомпонента" Тогда - ИнформацияОбОшибке = НСтр("ru = 'В сервисе внешних компонент не обнаружена внешняя компонента'"); + ИнформацияОбОшибке = НСтр("ru = 'В сервисе отсутствует данная внешняя компонента'"); ИначеЕсли КодОшибки = "ФайлНеЗагружен" Тогда - ИнформацияОбОшибке = НСтр("ru = 'При попытке загрузить файл внешней компоненты из сервиса, возникла ошибка'"); + ИнформацияОбОшибке = НСтр("ru = 'Ошибка при попытке загрузки файла внешней компоненты из сервиса'"); КонецЕсли; ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'При загрузке внешней компоненты %1 возникала ошибка: + НСтр("ru = 'Не удалось загрузить внешнюю компоненту %1 из сервиса: |%2'"), - ПредставлениеКомпоненты, - ИнформацияОбОшибке); + ПредставлениеКомпоненты, ИнформацияОбОшибке); Результат = Результат + ПредставлениеКомпоненты + " - " + ИнформацияОбОшибке + Символы.ПС; - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Обновление внешних компонент'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка,,, - ТекстОшибки); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Обновление внешних компонент'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка,,, ТекстОшибки); Продолжить; КонецЕсли; @@ -181,13 +178,10 @@ Информация = ВнешниеКомпонентыСлужебный.ИнформацияОКомпонентеИзФайла(ДвоичныеДанные, Ложь); Если Не Информация.Разобрано Тогда - Результат = Результат + ПредставлениеКомпоненты + " - " + Информация.ОписаниеОшибки + Символы.ПС; - ЗаписьЖурналаРегистрации(НСтр("ru = 'Обновление внешних компонент'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка,,, Информация.ОписаниеОшибки); - Продолжить; КонецЕсли; @@ -197,6 +191,11 @@ // Когда уже загружена компонента по дате более свежая, чем на Портале 1С:ИТС, обновление не следует выполнять. Если Выборка.ДатаВерсии > СтрокаРезультата.ДатаВерсии Тогда + ПредставлениеКомпоненты = ВнешниеКомпонентыСлужебный.ПредставлениеКомпоненты( + СтрокаРезультата.Идентификатор, Выборка.Версия); + Результат = Результат + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 - в программе более новая версия, чем в сервисе (%2 от %3).'"), + ПредставлениеКомпоненты, СтрокаРезультата.Версия, Формат(СтрокаРезультата.ДатаВерсии, "ДЛФ=Д")) + Символы.ПС; Продолжить; КонецЕсли; @@ -222,8 +221,8 @@ Объект.Записать(); - Результат = Результат + ПредставлениеКомпоненты - + " - " + НСтр("ru = 'Успешно обновлена.'") + Символы.ПС; + Результат = Результат + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 - успешно обновлена.'"), ПредставлениеКомпоненты) + Символы.ПС; ЗафиксироватьТранзакцию(); Исключение diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl index 8582b2332..edc038433 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl @@ -198,10 +198,6 @@ КонецПроцедуры // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. -// -// Параметры: -// Типы - Массив из ОбъектМетаданных -// Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт Типы.Добавить(Метаданные.Справочники.ВнешниеКомпоненты); diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl index b17ace4ca..0206c4c25 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl @@ -251,7 +251,7 @@ // Параметры: // Результат - Структура - результат подключения компоненты: // * Подключено - Булево - признак подключения; -// * ПодключаемыйМодуль - AddIn - экземпляр объекта внешней компоненты. +// * ПодключаемыйМодуль - ОбъектВнешнейКомпоненты - экземпляр объекта внешней компоненты. // * ОписаниеОшибки - Строка - краткое описание ошибки. При отмене пользователем пустая строка // Контекст - см. ВнешниеКомпонентыКлиент.КонтекстПодключенияКомпоненты // @@ -418,7 +418,7 @@ // Параметры: // Результат - Структура - результат подключения компоненты: // * Подключено - Булево - признак подключения; -// * ПодключаемыйМодуль - AddIn - экземпляр объекта внешней компоненты. +// * ПодключаемыйМодуль - ОбъектВнешнейКомпоненты - экземпляр объекта внешней компоненты. // * ОписаниеОшибки - Строка - краткое описание ошибки. При отмене пользователем пустая строка. // Контекст - см. ВнешниеКомпонентыКлиент.КонтекстПодключенияКомпоненты // diff --git a/SSL/src/CommonModules/ВнешниеПользователи/Module.bsl b/SSL/src/CommonModules/ВнешниеПользователи/Module.bsl index d79badde3..9e7949b31 100644 --- a/SSL/src/CommonModules/ВнешниеПользователи/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеПользователи/Module.bsl @@ -44,7 +44,7 @@ // - СправочникСсылка.ВнешниеПользователи - указанный внешний пользователь. // // Возвращаемое значение: -// Ссылка - объект авторизации одного из типов, указанных в описании типов в свойстве +// ЛюбаяСсылка - объект авторизации одного из типов, указанных в описании типов в свойстве // "Метаданные.Справочники.ВнешниеПользователи.Реквизиты.ОбъектыАвторизации.Тип". // Функция ПолучитьОбъектАвторизацииВнешнегоПользователя(ВнешнийПользователь = Неопределено) Экспорт diff --git a/SSL/src/CommonModules/ВызовОнлайнПоддержки/Module.bsl b/SSL/src/CommonModules/ВызовОнлайнПоддержки/Module.bsl index e538ce8ab..e0a98745e 100644 --- a/SSL/src/CommonModules/ВызовОнлайнПоддержки/Module.bsl +++ b/SSL/src/CommonModules/ВызовОнлайнПоддержки/Module.bsl @@ -27,11 +27,7 @@ //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// +// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -61,8 +57,8 @@ // т.к. невозможно использование функции ИмяКомпьютера в веб клиенте. // // Параметры: -// ИдентификаторКлиента - УникальныйИдентификатор - идентификатор клиента (программы) 1С. -// НовоеРасположениеФайла - Строка - расположение исполняемого файла для ПК на котором запущен клиент 1С. +// ИдентификаторКлиента - УникальныйИдентификатор - идентификатор клиента (программы) 1С. +// НовоеРасположениеФайла - Строка - расположение исполняемого файла для ПК на котором запущен клиент 1С. // Процедура СохранитьРасположениеИсполняемогоФайлаВызовОнлайнПоддержки(ИдентификаторКлиента, НовоеРасположениеФайла) Экспорт @@ -79,11 +75,11 @@ // Записывает в регистр сведений настройки учетных записей пользователей для запуска приложения. // // Параметры: -// Пользователь - УникальныйИдентификатор - текущий пользователь информационной базы. -// Логин - Строка - данные учетной записи приложения. -// Пароль - Строка - данные учетной записи приложения. -// ИспользоватьЛП - Булево - если значение Ложь, параметры Логин, Пароль не доступны. -// ВидимостьКнопкиВызовОнлайнПоддержки - Булево - отображение Кнопки запуска приложения на начальной странице. +// Пользователь - УникальныйИдентификатор - текущий пользователь информационной базы. +// Логин - Строка - данные учетной записи приложения. +// Пароль - Строка - данные учетной записи приложения. +// ИспользоватьЛП - Булево - если значение Ложь, параметры Логин, Пароль не доступны. +// ВидимостьКнопкиВызовОнлайнПоддержки - Булево - отображение Кнопки запуска приложения на начальной странице. // Процедура СохранитьНастройкиПользователяВХранилище(Логин, Пароль, diff --git a/SSL/src/CommonModules/ВызовОнлайнПоддержкиВызовСервера/Module.bsl b/SSL/src/CommonModules/ВызовОнлайнПоддержкиВызовСервера/Module.bsl index 332a800b0..843c55c1b 100644 --- a/SSL/src/CommonModules/ВызовОнлайнПоддержкиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ВызовОнлайнПоддержкиВызовСервера/Module.bsl @@ -11,10 +11,10 @@ // Получает из регистра сведений путь к исполняемому файлу. // // Параметры: -// ИдентификаторКлиента - УникальныйИдентификатор - идентификатор клиента (программы) 1С. +// ИдентификаторКлиента - УникальныйИдентификатор - идентификатор клиента (программы) 1С. // // ВозвращаемоеЗначение: -// Строка - путь к исполняемому файлу на ПК текущего пользователя. +// Строка - путь к исполняемому файлу на ПК текущего пользователя. // Функция РасположениеИсполняемогоФайла(ИдентификаторКлиента) Экспорт @@ -25,10 +25,10 @@ // Получает из регистра сведений параметры для запуска приложения. // // Параметры: -// Пользователь - УникальныйИдентификатор - текущий пользователь информационной базы. +// Пользователь - УникальныйИдентификатор - текущий пользователь информационной базы. // // ВозвращаемоеЗначение: -// Структура - настройки пользователя для запуска приложения. +// Структура - настройки пользователя для запуска приложения. // Функция НастройкиУчетнойЗаписиПользователя() Экспорт diff --git a/SSL/src/CommonModules/ВызовОнлайнПоддержкиКлиент/Module.bsl b/SSL/src/CommonModules/ВызовОнлайнПоддержкиКлиент/Module.bsl index d4b12479a..4a06a1f7e 100644 --- a/SSL/src/CommonModules/ВызовОнлайнПоддержкиКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВызовОнлайнПоддержкиКлиент/Module.bsl @@ -76,9 +76,6 @@ // Диалоговое окно для выбора файла. // -// Возвращаемое значение: -// Строка - путь к исполняемому файлу. -// Процедура ВыбратьФайлВызовОнлайнПоддержки(ОповещениеОЗакрытии, ПутьКФайлу = "") Экспорт Каталог = ОбщегоНазначенияКлиентСервер.РазложитьПолноеИмяФайла(ПутьКФайлу); @@ -110,9 +107,6 @@ // Проверяет наличие исполняемого файла по указанному пути. // -// Возвращаемое значение: -// Булево - при значении Истина файл запустится по указанному пути. -// Процедура НаличиеФайлаВызовОнлайнПоддержки(ОповещениеОЗакрытии, Путь) ПроверяемыйФайл = Новый Файл(Путь); Оповещение = Новый ОписаниеОповещения("НаличиеФайлаВызовОнлайнПоддержкиПослеПроверкиСуществования", ЭтотОбъект, ОповещениеОЗакрытии); diff --git a/SSL/src/CommonModules/ГенерацияШтрихкода/Module.bsl b/SSL/src/CommonModules/ГенерацияШтрихкода/Module.bsl new file mode 100644 index 000000000..42e3c2c89 --- /dev/null +++ b/SSL/src/CommonModules/ГенерацияШтрихкода/Module.bsl @@ -0,0 +1,405 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Пустая структура для заполнения параметра "ПараметрыШтрихкода" используемого для получения изображения штрих кода. +// +// Возвращаемое значение: +// Структура: +// * Ширина - Число - ширина изображения штрих кода. +// * Высота - Число - высота изображения штрих кода. +// * ТипКода - Число - штрихкода. +// Возможные значение: +// 99 - Авто выбор +// 0 - EAN8 +// 1 - EAN13 +// 2 - EAN128 +// 3 - Code39 +// 4 - Code128 +// 5 - Code16k +// 6 - PDF417 +// 7 - Standart (Industrial) 2 of 5 +// 8 - Interleaved 2 of 5 +// 9 - Code39 Расширение +// 10 - Code93 +// 11 - ITF14 +// 12 - RSS14 +// 14 - EAN13AddOn2 +// 15 - EAN13AddOn5 +// 16 - QR +// 17 - GS1DataBarExpandedStacked +// 18 - Datamatrix ASCII +// 19 - Datamatrix BASE256 +// 20 - Datamatrix TEXT +// 21 - Datamatrix C40 +// 22 - Datamatrix X12 +// 23 - Datamatrix EDIFACT +// 24 - Datamatrix GS1ASCII: +// * ОтображатьТекст - Булево - отображать HRI теста для штрихкода. +// * РазмерШрифта - Число - размер шрифта HRI теста для штрихкода. +// * УголПоворота - Число - угол поворота. +// Возможные значения: 0, 90, 180, 270. +// * Штрихкод - Строка - значение штрихкод в виде строки или Base64. +// * ТипВходныхДанных - Число - тип входных данных +// Возможные значения: 0 - Строка, 1 - Base64 +// * ПрозрачныйФон - Булево - прозрачный фон изображения штрихкода. +// * УровеньКоррекцииQR - Число - уровень коррекции штрихкода QR. +// Возможные значения: 0 - L, 1 - M, 2 - Q, 3 - H. +// * Масштабировать - Булево - масштабировать изображение штрихкода. +// * СохранятьПропорции - Булево - сохранять пропорции изображения штрихкода. +// * ВертикальноеВыравнивание - Число - вертикальное выравнивание штрихкода. +// Возможные значения: 1 - По верхнему краю, 2 - По центру, 3 - По нижнему краю +// * GS1DatabarКоличествоСтрок - Число - количество строк в штрихкоде GS1Databar. +// * УбратьЛишнийФон - Булево +// * ЛоготипКартинка - Строка - строка с base64 представлением png картинки логотипа. +// * ЛоготипРазмерПроцентОтШК - Число - процент от генерированного QR для вписывания логотипа. +// +Функция ПараметрыГенерацииШтрихкода() Экспорт + + ПараметрыШтрихкода = Новый Структура; + ПараметрыШтрихкода.Вставить("Ширина" , 100); + ПараметрыШтрихкода.Вставить("Высота" , 100); + ПараметрыШтрихкода.Вставить("ТипКода" , 99); + ПараметрыШтрихкода.Вставить("ОтображатьТекст" , Истина); + ПараметрыШтрихкода.Вставить("РазмерШрифта" , 12); + ПараметрыШтрихкода.Вставить("УголПоворота" , 0); + ПараметрыШтрихкода.Вставить("Штрихкод" , ""); + ПараметрыШтрихкода.Вставить("ПрозрачныйФон" , Истина); + ПараметрыШтрихкода.Вставить("УровеньКоррекцииQR", 1); + ПараметрыШтрихкода.Вставить("Масштабировать" , Ложь); + ПараметрыШтрихкода.Вставить("СохранятьПропорции" , Ложь); + ПараметрыШтрихкода.Вставить("ВертикальноеВыравнивание" , 1); + ПараметрыШтрихкода.Вставить("GS1DatabarКоличествоСтрок", 2); + ПараметрыШтрихкода.Вставить("ТипВходныхДанных", 0); + ПараметрыШтрихкода.Вставить("УбратьЛишнийФон" , Ложь); + ПараметрыШтрихкода.Вставить("ЛоготипКартинка"); + ПараметрыШтрихкода.Вставить("ЛоготипРазмерПроцентОтШК"); + + Возврат ПараметрыШтрихкода; + +КонецФункции + +// Формирование изображения штрихкода. +// +// Параметры: +// ПараметрыШтрихкода - см. ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода. +// +// Возвращаемое значение: +// Структура: +// Результат - Булево - результат генерации штрихкода. +// ДвоичныеДанные - ДвоичныеДанные - двоичные данные изображения штрихкода. +// Картинка - Картинка - картинка с сформированным штрихкодом или НЕОПРЕДЕЛЕНО. +// +Функция ИзображениеШтрихкода(ПараметрыШтрихкода) Экспорт + + СистемнаяИнформация = Новый СистемнаяИнформация; + ТипПлатформыКомпоненты = Строка(СистемнаяИнформация.ТипПлатформы); + + ВнешняяКомпонента = ГенерацияШтрихкодаСерверПовтИсп.ПодключитьКомпонентуГенерацииИзображенияШтрихкода(ТипПлатформыКомпоненты); + + Если ВнешняяКомпонента = Неопределено Тогда + ТекстСообщения = НСтр("ru = 'Ошибка подключения внешней компоненты печати штрихкода.'"); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Ошибка генерации штрихкода'", + ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка,,, + ТекстСообщения); + ВызватьИсключение ТекстСообщения; + КонецЕсли; + + Возврат ПодготовитьИзображениеШтрихкода(ВнешняяКомпонента, ПараметрыШтрихкода); + +КонецФункции + +// Возвращает двоичные данные для формирования QR-кода. +// +// Параметры: +// QRСтрока - Строка - данные, которые необходимо разместить в QR-коде. +// +// УровеньКоррекции - Число - уровень погрешности изображения, при котором данный QR-код все еще возможно 100% +// распознать. +// Параметр должен иметь тип целого и принимать одно из 4 допустимых значений: +// 0 (7 % погрешности), 1 (15 % погрешности), 2 (25 % погрешности), 3 (35 % погрешности). +// +// Размер - Число - определяет длину стороны выходного изображения в пикселях. +// Если минимально возможный размер изображения больше этого параметра - код сформирован не будет. +// +// Возвращаемое значение: +// ДвоичныеДанные - буфер, содержащий байты PNG-изображения QR-кода. +// +// Пример: +// +// // Выводим на печать QR-код, содержащий в себе информацию зашифрованную по УФЭБС. +// +// QRСтрока = УправлениеПечатью.ФорматнаяСтрокаУФЭБС(РеквизитыПлатежа); +// ТекстОшибки = ""; +// ДанныеQRКода = УправлениеПечатью.ДанныеQRКода(QRСтрока, 0, 190, ТекстОшибки); +// Если Не ПустаяСтрока(ТекстОшибки) +// ОбщегоНазначения.СообщитьПользователю(ТекстОшибки); +// КонецЕсли; +// +// КартинкаQRКода = Новый Картинка(ДанныеQRКода); +// ОбластьМакета.Рисунки.QRКод.Картинка = КартинкаQRКода; +// +Функция ДанныеQRКода(QRСтрока, УровеньКоррекции, Размер) Экспорт + + ПараметрыШтрихкода = ПараметрыГенерацииШтрихкода(); + ПараметрыШтрихкода.Ширина = Размер; + ПараметрыШтрихкода.Высота = Размер; + ПараметрыШтрихкода.Штрихкод = QRСтрока; + ПараметрыШтрихкода.УровеньКоррекцииQR = УровеньКоррекции; + ПараметрыШтрихкода.ТипКода = 16; // QR + ПараметрыШтрихкода.УбратьЛишнийФон = Истина; + + Попытка + РезультатФормированияШтрихкода = ИзображениеШтрихкода(ПараметрыШтрихкода); + ДвоичныеДанныеКартинки = РезультатФормированияШтрихкода.ДвоичныеДанные; + Исключение + ЗаписьЖурналаРегистрации(НСтр("ru = 'Ошибка генерации штрихкода'", + ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка,,, + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + + Возврат ДвоичныеДанныеКартинки; + +КонецФункции + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +// Выполняет подключение внешней компоненты. +// +// Возвращаемое значение: +// ОбъектВнешнейКомпоненты +// Неопределено - если компоненту не удалось загрузить. +// +Функция ПодключитьКомпонентуГенерацииИзображенияШтрихкода() Экспорт + +#Если НЕ МобильноеПриложениеСервер Тогда + УстановитьОтключениеБезопасногоРежима(Истина); +#КонецЕсли + ВнешняяКомпонента = Неопределено; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВнешниеКомпоненты") Тогда + МодульВнешниеКомпонентыСервер = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыСервер"); + РезультатПодключения = МодульВнешниеКомпонентыСервер.ПодключитьКомпоненту("Barcode"); + Если РезультатПодключения.Подключено Тогда + ВнешняяКомпонента = РезультатПодключения.ПодключаемыйМодуль; + КонецЕсли; + КонецЕсли; + + Если ВнешняяКомпонента = Неопределено Тогда + ВнешняяКомпонента = ОбщегоНазначения.ПодключитьКомпонентуИзМакета("Barcode", "ОбщийМакет.КомпонентаПечатиШтрихкодов"); + КонецЕсли; + + Если ВнешняяКомпонента = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + // Если нет возможности рисовать. + Если НЕ ВнешняяКомпонента.ГрафикаУстановлена Тогда + // То картинку сформировать не сможем. + Возврат Неопределено; + Иначе + ПодготовитьКомпонентуГенерацииИзображенияШтрихкода(ВнешняяКомпонента); + Возврат ВнешняяКомпонента; + КонецЕсли; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Подготовить компоненту генерации изображения штрихкода. +// +// Параметры: +// ВнешняяКомпонента - ОбъектВнешнейКомпоненты - объект внешней компоненты +// +Процедура ПодготовитьКомпонентуГенерацииИзображенияШтрихкода(ВнешняяКомпонента) + + // Установим основные параметры компоненты. + // Если в системе установлен шрифт Tahoma. + Если ВнешняяКомпонента.НайтиШрифт("Tahoma") Тогда + // Выбираем его как шрифт для формирования картинки. + ВнешняяКомпонента.Шрифт = "Tahoma"; + Иначе + // Шрифт Tahoma в системе отсутствует. + // Обойдем все доступные компоненте шрифты. + Для Сч = 0 По ВнешняяКомпонента.КоличествоШрифтов -1 Цикл + // Получим очередной шрифт, доступный компоненте. + ТекущийШрифт = ВнешняяКомпонента.ШрифтПоИндексу(Сч); + // Если шрифт доступен + Если ТекущийШрифт <> Неопределено Тогда + // Они и будет шрифтом для формирования штрихкода. + ВнешняяКомпонента.Шрифт = ТекущийШрифт; + Прервать; + КонецЕсли; + КонецЦикла; + КонецЕсли; + // Установим размер шрифта + ВнешняяКомпонента.РазмерШрифта = 12; + +КонецПроцедуры + +// Подготовить изображения штрихкода. +// +// Параметры: +// ВнешняяКомпонента - ОбъектВнешнейКомпоненты: +// * Высота - Число +// * Ширина - Число +// * АвтоТип - Булево +// * ТипКода - Число +// * ТипВходныхДанных - Число +// * GS1DatabarКоличествоСтрок - Число +// * УбратьЛишнийФон - Булево +// * ОтображатьТекст - Булево +// * ЗначениеКода - Строка +// * УголПоворота - Число +// * УровеньКоррекцииQR - Число +// * ВертикальноеВыравниваниеКода - Число +// * РазмерШрифта - Число +// * ЛоготипКартинка - Строка +// * ЛоготипРазмерПроцентОтШК - Число +// ПараметрыШтрихкода - см. ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода. +// +// Возвращаемое значение: +// Структура: +// Результат - Булево - результат генерации штрихкода. +// ДвоичныеДанные - ДвоичныеДанные - двоичные данные изображения штрихкода. +// Картинка - Картинка - картинка с сформированным штрихкодом или НЕОПРЕДЕЛЕНО. +// +Функция ПодготовитьИзображениеШтрихкода(ВнешняяКомпонента, ПараметрыШтрихкода) + + // Результат + РезультатОперации = Новый Структура(); + РезультатОперации.Вставить("Результат", Ложь); + РезультатОперации.Вставить("ДвоичныеДанные"); + РезультатОперации.Вставить("Картинка"); + + // Зададим размер формируемой картинки. + ШиринаШтрихкода = Окр(ПараметрыШтрихкода.Ширина); + ВысотаШтрихкода = Окр(ПараметрыШтрихкода.Высота); + Если ШиринаШтрихкода <= 0 Тогда + ШиринаШтрихкода = 1 + КонецЕсли; + Если ВысотаШтрихкода <= 0 Тогда + ВысотаШтрихкода = 1 + КонецЕсли; + ВнешняяКомпонента.Ширина = ШиринаШтрихкода; + ВнешняяКомпонента.Высота = ВысотаШтрихкода; + ВнешняяКомпонента.АвтоТип = Ложь; + + ШтрихкодВрем = Строка(ПараметрыШтрихкода.Штрихкод); // Преобразуем явно в строку. + + Если ПараметрыШтрихкода.ТипКода = 99 Тогда + ВнешняяКомпонента.АвтоТип = Истина; + Иначе + ВнешняяКомпонента.АвтоТип = Ложь; + ВнешняяКомпонента.ТипКода = ПараметрыШтрихкода.ТипКода; + КонецЕсли; + + Если ПараметрыШтрихкода.Свойство("ПрозрачныйФон") Тогда + ВнешняяКомпонента.ПрозрачныйФон = ПараметрыШтрихкода.ПрозрачныйФон; + КонецЕсли; + + Если ПараметрыШтрихкода.Свойство("ТипВходныхДанных") Тогда + ВнешняяКомпонента.ТипВходныхДанных = ПараметрыШтрихкода.ТипВходныхДанных; + КонецЕсли; + + Если ПараметрыШтрихкода.Свойство("GS1DatabarКоличествоСтрок") Тогда + ВнешняяКомпонента.GS1DatabarКоличествоСтрок = ПараметрыШтрихкода.GS1DatabarКоличествоСтрок; + КонецЕсли; + + Если ПараметрыШтрихкода.Свойство("УбратьЛишнийФон") Тогда + ВнешняяКомпонента.УбратьЛишнийФон = ПараметрыШтрихкода.УбратьЛишнийФон; + КонецЕсли; + + ВнешняяКомпонента.ОтображатьТекст = ПараметрыШтрихкода.ОтображатьТекст; + // Формируем картинку штрихкода. + ВнешняяКомпонента.ЗначениеКода = ШтрихкодВрем; + // Угол поворота штрихкода. + ВнешняяКомпонента.УголПоворота = ?(ПараметрыШтрихкода.Свойство("УголПоворота"), ПараметрыШтрихкода.УголПоворота, 0); + // Уровень коррекции QR кода (L=0, M=1, Q=2, H=3). + ВнешняяКомпонента.УровеньКоррекцииQR = ?(ПараметрыШтрихкода.Свойство("УровеньКоррекцииQR"), ПараметрыШтрихкода.УровеньКоррекцииQR, 1); + + // Для обеспечения совместимости с предыдущими версиями БПО. + Если Не ПараметрыШтрихкода.Свойство("Масштабировать") + Или (ПараметрыШтрихкода.Свойство("Масштабировать") И ПараметрыШтрихкода.Масштабировать) Тогда + + Если Не ПараметрыШтрихкода.Свойство("СохранятьПропорции") + Или (ПараметрыШтрихкода.Свойство("СохранятьПропорции") И Не ПараметрыШтрихкода.СохранятьПропорции) Тогда + // Если установленная нами ширина меньше минимально допустимой для этого штрихкода. + Если ВнешняяКомпонента.Ширина < ВнешняяКомпонента.МинимальнаяШиринаКода Тогда + ВнешняяКомпонента.Ширина = ВнешняяКомпонента.МинимальнаяШиринаКода; + КонецЕсли; + // Если установленная нами высота меньше минимально допустимой для этого штрихкода. + Если ВнешняяКомпонента.Высота < ВнешняяКомпонента.МинимальнаяВысотаКода Тогда + ВнешняяКомпонента.Высота = ВнешняяКомпонента.МинимальнаяВысотаКода; + КонецЕсли; + ИначеЕсли ПараметрыШтрихкода.Свойство("СохранятьПропорции") И ПараметрыШтрихкода.СохранятьПропорции Тогда + Пока ВнешняяКомпонента.Ширина < ВнешняяКомпонента.МинимальнаяШиринаКода + Или ВнешняяКомпонента.Высота < ВнешняяКомпонента.МинимальнаяВысотаКода Цикл + // Если установленная нами ширина меньше минимально допустимой для этого штрихкода. + Если ВнешняяКомпонента.Ширина < ВнешняяКомпонента.МинимальнаяШиринаКода Тогда + ВнешняяКомпонента.Ширина = ВнешняяКомпонента.МинимальнаяШиринаКода; + ВнешняяКомпонента.Высота = (ВнешняяКомпонента.МинимальнаяШиринаКода / Окр(ПараметрыШтрихкода.Ширина)) * Окр(ПараметрыШтрихкода.Высота); + КонецЕсли; + // Если установленная нами высота меньше минимально допустимой для этого штрихкода. + Если ВнешняяКомпонента.Высота < ВнешняяКомпонента.МинимальнаяВысотаКода Тогда + ВнешняяКомпонента.Высота = ВнешняяКомпонента.МинимальнаяВысотаКода; + ВнешняяКомпонента.Ширина = (ВнешняяКомпонента.МинимальнаяВысотаКода / Окр(ПараметрыШтрихкода.Высота)) * Окр(ПараметрыШтрихкода.Ширина); + КонецЕсли; + КонецЦикла; + КонецЕсли; + КонецЕсли; + + // ВертикальноеВыравниваниеКода: 1 - по верхнему краю, 2 - по центру, 3 - по нижнему краю. + Если ПараметрыШтрихкода.Свойство("ВертикальноеВыравнивание") И (ПараметрыШтрихкода.ВертикальноеВыравнивание > 0) Тогда + ВнешняяКомпонента.ВертикальноеВыравниваниеКода = ПараметрыШтрихкода.ВертикальноеВыравнивание; + КонецЕсли; + + Если ПараметрыШтрихкода.Свойство("РазмерШрифта") И (ПараметрыШтрихкода.РазмерШрифта > 0) + И (ПараметрыШтрихкода.ОтображатьТекст) И (ВнешняяКомпонента.РазмерШрифта <> ПараметрыШтрихкода.РазмерШрифта) Тогда + ВнешняяКомпонента.РазмерШрифта = ПараметрыШтрихкода.РазмерШрифта; + КонецЕсли; + + Если ПараметрыШтрихкода.Свойство("РазмерШрифта") И ПараметрыШтрихкода.РазмерШрифта > 0 + И ПараметрыШтрихкода.Свойство("МонохромныйШрифт") Тогда + Если ПараметрыШтрихкода.МонохромныйШрифт Тогда + ВнешняяКомпонента.МаксимальныйРазмерШрифтаДляПринтеровНизкогоРазрешения = ПараметрыШтрихкода.РазмерШрифта + 1; + Иначе + ВнешняяКомпонента.МаксимальныйРазмерШрифтаДляПринтеровНизкогоРазрешения = -1; + КонецЕсли; + КонецЕсли; + + Если ПараметрыШтрихкода.ТипКода = 16 Тогда // QR + Если ПараметрыШтрихкода.Свойство("ЛоготипКартинка") И Не ПустаяСтрока(ПараметрыШтрихкода.ЛоготипКартинка) Тогда + ВнешняяКомпонента.ЛоготипКартинка = ПараметрыШтрихкода.ЛоготипКартинка; + КонецЕсли; + Если ПараметрыШтрихкода.Свойство("ЛоготипРазмерПроцентОтШК") И Не ПустаяСтрока(ПараметрыШтрихкода.ЛоготипРазмерПроцентОтШК) Тогда + ВнешняяКомпонента.ЛоготипРазмерПроцентОтШК = ПараметрыШтрихкода.ЛоготипРазмерПроцентОтШК; + КонецЕсли; + КонецЕсли; + + // Сформируем картинку + ДвоичныеДанныеКартинки = ВнешняяКомпонента.ПолучитьШтрихкод(); + РезультатОперации.Результат = ВнешняяКомпонента.Результат = 0; + // Если картинка сформировалась. + Если ДвоичныеДанныеКартинки <> Неопределено Тогда + РезультатОперации.ДвоичныеДанные = ДвоичныеДанныеКартинки; + РезультатОперации.Картинка = Новый Картинка(ДвоичныеДанныеКартинки); // Формируем из двоичных данных. + КонецЕсли; + + Возврат РезультатОперации; + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/ГенерацияШтрихкода/ГенерацияШтрихкода.mdo b/SSL/src/CommonModules/ГенерацияШтрихкода/ГенерацияШтрихкода.mdo new file mode 100644 index 000000000..3fb4c08b3 --- /dev/null +++ b/SSL/src/CommonModules/ГенерацияШтрихкода/ГенерацияШтрихкода.mdo @@ -0,0 +1,11 @@ + + + ГенерацияШтрихкода + + ru + Генерация штрихкода + + true + true + true + diff --git a/SSL/src/CommonModules/ГенерацияШтрихкодаСерверПовтИсп/Module.bsl b/SSL/src/CommonModules/ГенерацияШтрихкодаСерверПовтИсп/Module.bsl new file mode 100644 index 000000000..9845589be --- /dev/null +++ b/SSL/src/CommonModules/ГенерацияШтрихкодаСерверПовтИсп/Module.bsl @@ -0,0 +1,26 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 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/CommonModules/ГенерацияШтрихкодаСерверПовтИсп/ГенерацияШтрихкодаСерверПовтИсп.mdo b/SSL/src/CommonModules/ГенерацияШтрихкодаСерверПовтИсп/ГенерацияШтрихкодаСерверПовтИсп.mdo new file mode 100644 index 000000000..aff2e7a96 --- /dev/null +++ b/SSL/src/CommonModules/ГенерацияШтрихкодаСерверПовтИсп/ГенерацияШтрихкодаСерверПовтИсп.mdo @@ -0,0 +1,12 @@ + + + ГенерацияШтрихкодаСерверПовтИсп + + ru + Генерация штрихкода сервер повт исп + + true + true + true + DuringSession + diff --git a/SSL/src/CommonModules/ГрафикиРаботы/Module.bsl b/SSL/src/CommonModules/ГрафикиРаботы/Module.bsl index c43fa413a..8d8b66535 100644 --- a/SSL/src/CommonModules/ГрафикиРаботы/Module.bsl +++ b/SSL/src/CommonModules/ГрафикиРаботы/Module.bsl @@ -12,15 +12,15 @@ // входящих в указанный график ГрафикРаботы. // // Параметры: -// ГрафикРаботы - СправочникСсылка.Календари - график, который необходимо использовать. -// ДатаОт - Дата - дата, от которой нужно рассчитать количество дней. -// МассивДней - Массив - количество дней (Число), на которые нужно увеличить дату начала. -// РассчитыватьСледующуюДатуОтПредыдущей - Булево - нужно ли рассчитывать следующую дату от предыдущей, +// ГрафикРаботы - СправочникСсылка.Календари - график, который необходимо использовать. +// ДатаОт - Дата - дата, от которой нужно рассчитать количество дней. +// МассивДней - Массив - количество дней (Число), на которые нужно увеличить дату начала. +// РассчитыватьСледующуюДатуОтПредыдущей - Булево - нужно ли рассчитывать следующую дату от предыдущей, // или все даты рассчитываются от переданной даты. -// ВызыватьИсключение - Булево - если Истина, вызывается исключение в случае незаполненного графика. +// ВызыватьИсключение - Булево - если Истина, вызывается исключение в случае незаполненного графика. // // Возвращаемое значение: -// Массив, Неопределено - даты, увеличенные на количество дней, входящих в график ГрафикРаботы. +// Массив, Неопределено - даты, увеличенные на количество дней, входящих в график ГрафикРаботы. // Если график ГрафикРаботы не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено. // Функция ДатыПоГрафику(Знач ГрафикРаботы, Знач ДатаОт, Знач МассивДней, @@ -125,13 +125,13 @@ // входящих в указанный график ГрафикРаботы. // // Параметры: -// ГрафикРаботы - СправочникСсылка.Календари - график, который необходимо использовать. -// ДатаОт - Дата - дата, от которой нужно рассчитать количество дней. -// КоличествоДней - Число - количество дней, на которые нужно увеличить дату начала ДатаОт. -// ВызыватьИсключение - Булево - если Истина, вызывается исключение в случае незаполненного графика. +// ГрафикРаботы - СправочникСсылка.Календари - график, который необходимо использовать. +// ДатаОт - Дата - дата, от которой нужно рассчитать количество дней. +// КоличествоДней - Число - количество дней, на которые нужно увеличить дату начала ДатаОт. +// ВызыватьИсключение - Булево - если Истина, вызывается исключение в случае незаполненного графика. // // Возвращаемое значение: -// Дата, Неопределено - дата, увеличенная на количество дней, входящих в график ГрафикРаботы. +// Дата, Неопределено - дата, увеличенная на количество дней, входящих в график ГрафикРаботы. // Если график ГрафикРаботы не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено. // Функция ДатаПоГрафику(Знач ГрафикРаботы, Знач ДатаОт, Знач КоличествоДней, ВызыватьИсключение = Истина) Экспорт @@ -157,16 +157,16 @@ // Возвращаемое значение: // Структура: // * ПолучатьПредшествующие - Булево - способ получения ближайшей даты: -// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты, -// если Ложь - получаются ближайшие рабочие даты, следующие за начальными датами. -// Значение по умолчанию - Ложь: +// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты, +// если Ложь - получаются ближайшие рабочие даты, следующие за начальными датами. +// Значение по умолчанию - Ложь: // * ИгнорироватьНезаполненностьГрафика - Булево - если Истина, то в любом случае будет возвращено соответствие. -// Начальные даты, для которых не будет значений из-за незаполненности графика, включены не будут. -// Значение по умолчанию - Ложь: +// Начальные даты, для которых не будет значений из-за незаполненности графика, включены не будут. +// Значение по умолчанию - Ложь: // * ВызыватьИсключение - Булево - вызов исключения в случае не заполненного графика -// если Истина, вызвать исключение, если график не заполнен. -// если Ложь - даты, по которым не удалось определить ближайшую дату, будут просто пропущены. -// Значение по умолчанию - Истина. +// если Истина, вызвать исключение, если график не заполнен. +// если Ложь - даты, по которым не удалось определить ближайшую дату, будут просто пропущены. +// Значение по умолчанию - Истина. // Функция ПараметрыПолученияБлижайшихДатПоГрафику() Экспорт Параметры = Новый Структура( @@ -183,11 +183,11 @@ // // Параметры: // ГрафикРаботы - Справочник.Календари. -// НачальныеДаты - Массив Из Дата - даты, относительно которых нужно найти ближайшие. +// НачальныеДаты - Массив из Дата - даты, относительно которых нужно найти ближайшие. // ПараметрыПолучения - см. ПараметрыПолученияБлижайшихДатПоГрафику. // // Возвращаемое значение: -// Соответствие Из КлючИЗначение: +// Соответствие из КлючИЗначение: // * Ключ - Дата - начальная дата, // * Значение - Дата - ближайшая к ней дата, включенная в график. // @@ -219,14 +219,19 @@ |ОБЪЕДИНИТЬ ВСЕ |"; КонецЕсли; - ТекстЗапросаВТ = ТекстЗапросаВТ + " - |ВЫБРАТЬ - | ДАТАВРЕМЯ(" + Формат(НачальнаяДата, "ДФ=гггг,ММ,дд") + ")"; Если ПерваяЧасть Тогда - ТекстЗапросаВТ = ТекстЗапросаВТ + " КАК Дата + ТекстЗапроса = " + |ВЫБРАТЬ + | ДАТАВРЕМЯ(2000,01,01) КАК Дата |ПОМЕСТИТЬ ВТНачальныеДаты |"; + Иначе + ТекстЗапроса = " + |ВЫБРАТЬ + | ДАТАВРЕМЯ(2000,01,01)"; КонецЕсли; + ТекстЗапросаВТ = ТекстЗапросаВТ + СтрЗаменить(ТекстЗапроса, "2000,01,01", + Формат(НачальнаяДата, "ДФ=гггг,ММ,дд")); ПерваяЧасть = Ложь; КонецЦикла; @@ -288,16 +293,16 @@ // Если расписание на предпраздничный день не задано, то оно определяется так, как если бы этот день был бы рабочим. // // Параметры: -// Графики - Массив - массив элементов типа СправочникСсылка.Календари, для которых составляются расписания. -// ДатаНачала - Дата - дата начала периода, за который нужно составить расписания. -// ДатаОкончания - Дата - дата окончания периода. +// Графики - Массив - массив элементов типа СправочникСсылка.Календари, для которых составляются расписания. +// ДатаНачала - Дата - дата начала периода, за который нужно составить расписания. +// ДатаОкончания - Дата - дата окончания периода. // // Возвращаемое значение: // ТаблицаЗначений: -// * ГрафикРаботы - СправочникСсылка.Календари - график работы. -// * ДатаГрафика - Дата - дата в графике работы ГрафикРаботы. -// * ВремяНачала - Дата - время начала работы в день ДатаГрафика. -// * ВремяОкончания - Дата - время окончания работы в день ДатаГрафика. +// * ГрафикРаботы - СправочникСсылка.Календари - график работы. +// * ДатаГрафика - Дата - дата в графике работы ГрафикРаботы. +// * ВремяНачала - Дата - время начала работы в день ДатаГрафика. +// * ВремяОкончания - Дата - время окончания работы в день ДатаГрафика. // Функция РасписанияРаботыНаПериод(Графики, ДатаНачала, ДатаОкончания) Экспорт @@ -327,9 +332,9 @@ // // Параметры: // МенеджерВременныхТаблиц - МенеджерВременныхТаблиц - менеджер, в котором будет создана временная таблица. -// Графики - Массив - массив элементов типа СправочникСсылка.Календари, для которых составляются расписания. -// ДатаНачала - Дата - дата начала периода, за который нужно составить расписания. -// ДатаОкончания - Дата - дата окончания периода. +// Графики - Массив - массив элементов типа СправочникСсылка.Календари, для которых составляются расписания. +// ДатаНачала - Дата - дата начала периода, за который нужно составить расписания. +// ДатаОкончания - Дата - дата окончания периода. // Процедура СоздатьВТРасписанияРаботыНаПериод(МенеджерВременныхТаблиц, Графики, ДатаНачала, ДатаОкончания) Экспорт @@ -509,9 +514,9 @@ // на основании которых они заполняются. // // Параметры: -// - УсловияОбновления - таблица значений с колонками. -// - КодПроизводственногоКалендаря - код производственного календаря, данные которого изменились, -// - Год - год, за который нужно обновить данные. +// - УсловияОбновления - ТаблицаЗначений: +// - КодПроизводственногоКалендаря - код производственного календаря, данные которого изменились, +// - Год - год, за который нужно обновить данные. // Процедура ОбновитьГрафикиРаботыПоДаннымПроизводственныхКалендарей(УсловияОбновления) Экспорт @@ -523,7 +528,7 @@ // чтобы на время обновления производственных календарей, графики были недоступны для изменения пользователем. // // Параметры: -// БлокируемыеОбъекты - Массив из Строка - имена метаданных блокируемых объектов. +// БлокируемыеОбъекты - Массив из Строка - имена метаданных блокируемых объектов. // Процедура ЗаполнитьБлокируемыеОбъектыЗависимыеОтПроизводственныхКалендарей(БлокируемыеОбъекты) Экспорт @@ -534,7 +539,7 @@ // Добавляет в список изменяемых объектов регистр календарных графиков. // // Параметры: -// ИзменяемыеОбъекты - Массив из Строка - имена метаданных изменяемых объектов. +// ИзменяемыеОбъекты - Массив из Строка - имена метаданных изменяемых объектов. // Процедура ЗаполнитьИзменяемыеОбъектыЗависимыеОтПроизводственныхКалендарей(ИзменяемыеОбъекты) Экспорт @@ -546,8 +551,8 @@ // приведенные в ВТРазличныеГодыГрафика. // // Параметры: -// - МенеджерВременныхТаблиц - должен содержать ВТРазличныеГодыГрафика с полем Год, типа Число (4,0), -// - ГрафикРаботы - график, который необходимо использовать, тип СправочникСсылка.Календари. +// - МенеджерВременныхТаблиц - должен содержать ВТРазличныеГодыГрафика с полем Год, типа Число (4,0), +// - ГрафикРаботы - график, который необходимо использовать, тип СправочникСсылка.Календари. // Процедура СоздатьВТДанныеГрафика(МенеджерВременныхТаблиц, ГрафикРаботы) Экспорт @@ -587,15 +592,11 @@ // Обработчики событий подсистем конфигурации. // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Если Метаданные.Обработки.Найти("ЗаполнениеГрафиковРаботы") <> Неопределено Тогда - МодульГрафикиРаботы = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеГрафиковРаботы"); - МодульГрафикиРаботы.ПриДобавленииОбработчиковОбновления(Обработчики); + МодульЗаполнениеГрафиковРаботы = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеГрафиковРаботы"); + МодульЗаполнениеГрафиковРаботы.ПриДобавленииОбработчиковОбновления(Обработчики); КонецЕсли; Обработчик = Обработчики.Добавить(); @@ -636,9 +637,7 @@ КонецПроцедуры -// Параметры: -// НазначениеРолей - см. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей.НазначениеРолей -// +// См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей Процедура ПриОпределенииНазначенияРолей(НазначениеРолей) Экспорт // СовместноДляПользователейИВнешнихПользователей. diff --git a/SSL/src/CommonModules/ГрафикиРаботыКлиент/Module.bsl b/SSL/src/CommonModules/ГрафикиРаботыКлиент/Module.bsl index dd27e9151..1c11edb7d 100644 --- a/SSL/src/CommonModules/ГрафикиРаботыКлиент/Module.bsl +++ b/SSL/src/CommonModules/ГрафикиРаботыКлиент/Module.bsl @@ -12,12 +12,12 @@ // таким образом, чтобы строки коллекции оставались упорядоченными. // // Параметры: -// КоллекцияСтрок - Массив -// - ДанныеФормыКоллекция -// - ТаблицаЗначений -// ПолеУпорядочивания - имя поля элемента коллекции, +// КоллекцияСтрок - Массив +// - ДанныеФормыКоллекция +// - ТаблицаЗначений +// ПолеУпорядочивания - имя поля элемента коллекции, // по которому производится упорядочивание. -// ТекущаяСтрока - отредактированная строка коллекции. +// ТекущаяСтрока - отредактированная строка коллекции. // Процедура ВосстановитьПорядокСтрокКоллекцииПослеРедактирования(КоллекцияСтрок, ПолеУпорядочивания, ТекущаяСтрока) Экспорт diff --git a/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовКлиент/Module.bsl b/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовКлиент/Module.bsl index 9f98edbf2..fcd208122 100644 --- a/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовКлиент/Module.bsl +++ b/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовКлиент/Module.bsl @@ -58,7 +58,7 @@ #Область СлужебныйПрограммныйИнтерфейс // Параметры: -// МассивСсылок - Массив Из ЛюбаяСсылка - ссылки выбранных объектов, для которых выполняется команда. +// МассивСсылок - Массив из ЛюбаяСсылка - ссылки выбранных объектов, для которых выполняется команда. // ПараметрыВыполнения - см. ПодключаемыеКомандыКлиент.ПараметрыВыполненияКоманды // Процедура ОбработчикКоманды(Знач МассивСсылок, Знач ПараметрыВыполнения) Экспорт @@ -73,8 +73,8 @@ // Параметры: // ПараметрыИзменения - Структура: -// * МассивОбъектов - Массив Из ЛюбаяСсылка -// * КомпоновщикНастроек - КомпоновщикНастроекКомпоновкиДанных +// * МассивОбъектов - Массив из ЛюбаяСсылка +// * КомпоновщикНастроек - КомпоновщикНастроекКомпоновкиДанных // Процедура НачатьИзменениеВыделенных(ПараметрыГрупповогоИзменения) diff --git a/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовПереопределяемый/Module.bsl b/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовПереопределяемый/Module.bsl index 8611001c6..4f6fa3775 100644 --- a/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовПереопределяемый/Module.bsl @@ -13,7 +13,7 @@ // см. ПоискИУдалениеДублейКлиент.ОбъединитьВыделенные и ПоискИУдалениеДублейКлиент.ЗаменитьВыделенные // // Параметры: -// Объекты - Массив из ОбъектМетаданных +// Объекты - Массив из ОбъектМетаданных // // Пример: // Объекты.Добавить(Метаданные.Справочники._ДемоНоменклатура); @@ -29,7 +29,7 @@ // редактирования реквизитов при групповом изменении. // // Параметры: -// Объекты - Соответствие - в качестве ключа указать полное имя объекта метаданных, +// Объекты - Соответствие из КлючИЗначение - в качестве ключа указать полное имя объекта метаданных, // подключенного к подсистеме "Групповое изменение объектов". // Дополнительно в значении могут быть перечислены имена экспортных функций: // "РеквизитыНеРедактируемыеВГрупповойОбработке", diff --git a/SSL/src/CommonModules/ДатыЗапретаИзменения/Module.bsl b/SSL/src/CommonModules/ДатыЗапретаИзменения/Module.bsl index c3ea82439..fb9b3783e 100644 --- a/SSL/src/CommonModules/ДатыЗапретаИзменения/Module.bsl +++ b/SSL/src/CommonModules/ДатыЗапретаИзменения/Module.bsl @@ -48,7 +48,7 @@ // подробнее см. функцию ДатыЗапретаИзменения.НайденЗапретИзмененияДанных. // // УзелПроверкиЗапретаЗагрузки - Неопределено -// - ПланыОбменаСсылка - если Неопределено, то проверить запрет +// - ПланОбменаСсылка - если Неопределено, то проверить запрет // изменения данных; иначе - загрузку данных из указанного узла плана обмена. // // Возвращаемое значение: @@ -277,8 +277,7 @@ // запрет изменения данных для всех пользователей (установлена общая дата запрета)". // // УзелПроверкиЗапретаЗагрузки - Неопределено - выполнить проверку изменения данных. -// - ПланыОбменаСсылка.<Имя плана обмена> - выполнить проверку -// загрузки данных для указанного узла. +// - ПланОбменаСсылка - выполнить проверку загрузки данных для указанного узла. // // Возвращаемое значение: // Булево - если Истина, то найден хотя бы один запрет изменения. @@ -308,14 +307,20 @@ // * Данные - ЛюбаяСсылка // - СправочникОбъект // - ДокументОбъект -// - НаборЗаписей - ссылка, объект данных, -// или набор записей регистра, представление которого будет выведено в сообщении о запрете. +// - РегистрСведенийНаборЗаписей +// - РегистрНакопленияНаборЗаписей +// - РегистрБухгалтерииНаборЗаписей +// - РегистрРасчетаНаборЗаписей - ссылка, объект данных, +// или набор записей регистра, представление которого будет выведено в сообщении о запрете. // - Структура: // ** Регистр - Строка - полное имя регистра. -// - НаборЗаписей - набор записей регистра. +// - РегистрСведенийНаборЗаписей +// - РегистрНакопленияНаборЗаписей +// - РегистрБухгалтерииНаборЗаписей +// - РегистрРасчетаНаборЗаписей - набор записей регистра. // ** Отбор - Отбор - отбор набора записей. // - Строка - подготовленное представление данных, -// которое будет выведено в сообщении о запрете. +// которое будет выведено в сообщении о запрете. // Функция ПараметрыСообщенияОЗапрете() Экспорт @@ -334,7 +339,7 @@ // * Дата - Дата - дата без времени, которую нужно проверить на принадлежность установленным запретам. // * Раздел - Строка - одно из имен разделов, указанных в процедуре // ДатыЗапретаИзмененияПереопределяемый.ПриЗаполненииРазделовДатЗапретаИзменения -// * Объект - Ссылка - один из типов объектов, указанных для раздела в процедуре +// * Объект - ЛюбаяСсылка - один из типов объектов, указанных для раздела в процедуре // ДатыЗапретаИзмененияПереопределяемый.ПриЗаполненииРазделовДатЗапретаИзменения. // Функция ШаблонДанныхДляПроверки() Экспорт @@ -354,17 +359,6 @@ КонецФункции -// Обновляет план видов характеристик РазделыДатЗапретаИзменения по описанию в метаданных. -// Предназначен для вызова из обработчика обновления общих данных (модель сервиса) -// при изменении состава разделов дат запрета изменения или свойств разделов в процедуре -// ПриЗаполненииРазделовДатЗапретаИзменения общего модуля ДатыЗапретаИзмененияПереопределяемый. -// -Процедура ОбновитьРазделыДатЗапретаИзменения() Экспорт - - ДатыЗапретаИзмененияСлужебный.ОбновитьРазделыДатЗапретаИзменения(); - -КонецПроцедуры - // В текущем сеансе отключает и включает проверку дат запрета изменения и загрузки данных. // Требуется для реализации специальной логики работы и ускорения пакетной обработки данных // при записи объекта или набора записей, когда признак ОбменДанными.Загрузка не установлен. @@ -489,8 +483,7 @@ // // Параметры: // Источник - РегистрСведенийНаборЗаписей -// - РегистрНакопленияНаборЗаписей - набор записей, -// передаваемый в подписку на событие ПередЗаписью. +// - РегистрНакопленияНаборЗаписей - набор записей, передаваемый в подписку на событие ПередЗаписью. // Отказ - Булево - параметр, передаваемый в подписку на событие ПередЗаписью. // Замещение - Булево - параметр, передаваемый в подписку на событие ПередЗаписью. // @@ -578,6 +571,17 @@ КонецПроцедуры +#Область УстаревшиеПроцедурыИФункции + +// Не требуется вызывать, так как обновление выполняется автоматически. +Процедура ОбновитьРазделыДатЗапретаИзменения() Экспорт + + ДатыЗапретаИзмененияСлужебный.ОбновитьРазделыДатЗапретаИзменения(); + +КонецПроцедуры + +#КонецОбласти + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/SSL/src/CommonModules/ДатыЗапретаИзмененияПереопределяемый/Module.bsl b/SSL/src/CommonModules/ДатыЗапретаИзмененияПереопределяемый/Module.bsl index 7208c0c75..4a7b6c3a7 100644 --- a/SSL/src/CommonModules/ДатыЗапретаИзмененияПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ДатыЗапретаИзмененияПереопределяемый/Module.bsl @@ -92,7 +92,7 @@ // (который передается из обработчиков ПередЗаписью и ПриЧтенииНаСервере). // // ПроверкаЗапретаИзменения - Булево - установить в Ложь, чтобы пропустить проверку запрета изменения данных. -// УзелПроверкиЗапретаЗагрузки - ПланыОбменаСсылка +// УзелПроверкиЗапретаЗагрузки - ПланОбменаСсылка // - Неопределено - установить в Неопределено, чтобы // пропустить проверку запрета загрузки данных. // ВерсияОбъекта - Строка - установить "СтараяВерсия" или "НоваяВерсия", чтобы @@ -125,7 +125,7 @@ // При этом значение для проверки будет получено из базы данных. // // УзелПроверкиЗапретаЗагрузки - Неопределено -// - ПланыОбменаСсылка - если Неопределено, то проверить запрет +// - ПланОбменаСсылка - если Неопределено, то проверить запрет // изменения данных; иначе - загрузку данных из указанного узла плана обмена. // // ДанныеДляПроверки - см. ДатыЗапретаИзменения.ШаблонДанныхДляПроверки. @@ -163,7 +163,7 @@ // - РегистрРасчетаНаборЗаписей - проверяемый элемент данных или набор записей. // // УзелПроверкиЗапретаЗагрузки - Неопределено -// - ПланыОбменаСсылка - если Неопределено, то проверить запрет +// - ПланОбменаСсылка - если Неопределено, то проверить запрет // изменения данных; иначе - загрузку данных из указанного узла плана обмена. // // ДанныеДляПроверки - см. ДатыЗапретаИзменения.ШаблонДанныхДляПроверки. diff --git a/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебный/Module.bsl b/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебный/Module.bsl index b99ea9782..96037c1c3 100644 --- a/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебный/Module.bsl @@ -61,10 +61,6 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -313,8 +309,7 @@ // * ПроверкаЗапретаИзменения - Булево - если установить Ложь, проверка запрета изменения для пользователей // будет пропущена. По умолчанию Истина. // * УзелПроверкиЗапретаЗагрузки - Неопределено - (начальное значение) выполнить проверку изменения данных. -// - ПланыОбменаСсылка.<Имя плана обмена> - выполнить проверку -// загрузки данных для указанного узла. +// - ПланОбменаСсылка - выполнить проверку загрузки данных для указанного узла. // * ОписаниеОшибки - Null - если возвращать описание найденных запретов не требуются (по умолчанию). // - Строка - если нужно вернуть текстовое описание. // - Структура - если нужно вернуть структурное описание найденных запретов, @@ -436,10 +431,12 @@ КонецФункции // Проверяет необходимость проверки запрета изменения или загрузки данных. -Функция ПропуститьПроверкуДатЗапрета(Объект, - ПроверкаЗапретаИзменения, - УзелПроверкиЗапретаЗагрузки, - ВерсияОбъекта) Экспорт +// +// Возвращаемое значение: +// Булево - Истина, если проверка не требуется. +// +Функция ПропуститьПроверкуДатЗапрета(Объект, ПроверкаЗапретаИзменения, УзелПроверкиЗапретаЗагрузки, + ВерсияОбъекта) Экспорт Если ТипЗнч(Объект) <> Тип("УдалениеОбъекта") И Объект.ДополнительныеСвойства.Свойство("ПропуститьПроверкуЗапретаИзменения") Тогда @@ -509,12 +506,8 @@ ДанныеДляПроверки = ДанныеДляПроверкиИзБазыДанных(Данные, ИдентификаторДанных, ДействующиеДаты, УзелПроверкиЗапретаЗагрузки); - ДанныеИДаты = Новый Структура; - ДанныеИДаты.Вставить("ДействующиеДаты", ДействующиеДаты); - ДанныеИДаты.Вставить("ДанныеДляПроверки", ДанныеДляПроверки); - - ЗапретНайден = НайденЗапретИзмененияДанных(ДанныеИДаты, - ПараметрыСообщенияОЗапрете, ОписаниеОшибки, УзелПроверкиЗапретаЗагрузки); + ЗапретНайден = НайденЗапретИзмененияДанных(ДанныеДляПроверки, + ПараметрыСообщенияОЗапрете, ОписаниеОшибки, УзелПроверкиЗапретаЗагрузки, ДействующиеДаты); КонецЕсли; // Проверка новой версии объекта или набора записей. @@ -526,12 +519,8 @@ ДанныеДляПроверки = ДанныеДляПроверкиИзОбъекта(Данные, ДействующиеДаты, УзелПроверкиЗапретаЗагрузки); - ДанныеИДаты = Новый Структура; - ДанныеИДаты.Вставить("ДействующиеДаты", ДействующиеДаты); - ДанныеИДаты.Вставить("ДанныеДляПроверки", ДанныеДляПроверки); - - ЗапретНайден = НайденЗапретИзмененияДанных(ДанныеИДаты, - ПараметрыСообщенияОЗапрете, ОписаниеОшибки, УзелПроверкиЗапретаЗагрузки); + ЗапретНайден = НайденЗапретИзмененияДанных(ДанныеДляПроверки, + ПараметрыСообщенияОЗапрете, ОписаниеОшибки, УзелПроверкиЗапретаЗагрузки, ДействующиеДаты); КонецЕсли; Возврат ЗапретНайден; @@ -542,31 +531,22 @@ // См. ДатыЗапретаИзменения.НайденЗапретИзмененияДанных. // // Параметры: -// ДанныеДляПроверки - см. ДатыЗапретаИзменения.НайденЗапретИзменения.ДанныеДляПроверки -// - Структура: -// * ДанныеДляПроверки - см. ДатыЗапретаИзменения.ШаблонДанныхДляПроверки -// * ДействующиеДаты - см. ДатыЗапретаИзмененияСлужебный.ЗначениеПараметраСеансаДействующиеДатыЗапретаИзменения -// -// ПараметрыСообщенияОЗапрете - см. ДатыЗапретаИзменения.НайденЗапретИзмененияДанных.ПараметрыСообщенияОЗапрете -// -// ОписаниеОшибки - см. ДатыЗапретаИзменения.НайденЗапретИзмененияДанных.ОписаниеОшибки -// +// ДанныеДляПроверки - см. ДатыЗапретаИзменения.ШаблонДанныхДляПроверки +// ПараметрыСообщенияОЗапрете - см. ДатыЗапретаИзменения.ПараметрыСообщенияОЗапрете +// ОписаниеОшибки - см. ДатыЗапретаИзменения.НайденЗапретИзмененияДанных.ОписаниеОшибки // УзелПроверкиЗапретаЗагрузки - см. ДатыЗапретаИзменения.НайденЗапретИзмененияДанных.УзелПроверкиЗапретаЗагрузки // -// Возвращаемое значение: -// Булево - если Истина, то найден хотя бы один запрет изменения. +// ДействующиеДаты - см. ДатыЗапретаИзмененияСлужебный.ЗначениеПараметраСеансаДействующиеДатыЗапретаИзменения // -Функция НайденЗапретИзмененияДанных(Знач ДанныеДляПроверки, - ПараметрыСообщенияОЗапрете = Неопределено, - ОписаниеОшибки = Null, - УзелПроверкиЗапретаЗагрузки = Неопределено) Экспорт +// Возвращаемое значение: +// Булево - Истина, если найден хотя бы один запрет изменения. +// +Функция НайденЗапретИзмененияДанных(Знач ДанныеДляПроверки, ПараметрыСообщенияОЗапрете, + ОписаниеОшибки, УзелПроверкиЗапретаЗагрузки, ДействующиеДаты = Неопределено) Экспорт УстановитьПривилегированныйРежим(Истина); - Если ТипЗнч(ДанныеДляПроверки) = Тип("Структура") Тогда - ДействующиеДаты = ДанныеДляПроверки.ДействующиеДаты; - ДанныеДляПроверки = ДанныеДляПроверки.ДанныеДляПроверки; - Иначе + Если ДействующиеДаты = Неопределено Тогда ДействующиеДаты = ДействующиеДатыЗапрета(); КонецЕсли; @@ -757,6 +737,10 @@ КонецФункции // Возвращает действующие даты запрета с учетом последней версии после изменений. +// +// Возвращаемое значение: +// см. ДатыЗапретаИзмененияСлужебный.ЗначениеПараметраСеансаДействующиеДатыЗапретаИзменения +// Функция ДействующиеДатыЗапрета() Экспорт ПоследняяПроверка = ДатыЗапретаИзмененияСлужебныйПовтИсп.ПоследняяПроверкаВерсииДействующихДатЗапрета(); @@ -786,8 +770,11 @@ КонецФункции -// Возвращает источники данных, заполненные в процедуре ЗаполнитьИсточникиДанныхДляПроверкиЗапретаИзменения -// общего модуля ДатыЗапретаИзмененияПереопределяемый. +// Возвращает источники данных, заполненные в +// ДатыЗапретаИзмененияПереопределяемый.ЗаполнитьИсточникиДанныхДляПроверкиЗапретаИзменения. +// +// Возвращаемое значение: +// см. ДатыЗапретаИзмененияПереопределяемый.ЗаполнитьИсточникиДанныхДляПроверкиЗапретаИзменения.ИсточникиДанных // Функция ИсточникиДанныхДляПроверкиЗапретаИзменения() Экспорт @@ -859,7 +846,7 @@ СвойстваРазделов = СвойстваРазделов(); ПустойРаздел = ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка(); - МассивСсылокРазделов = Новый Массив; + ОбновляемыеРазделы = Новый Массив; Для Каждого ОписаниеРаздела Из СвойстваРазделов.Разделы Цикл Если ТипЗнч(ОписаниеРаздела.Ключ) = Тип("Строка") @@ -867,82 +854,112 @@ Продолжить; КонецЕсли; СвойстваРаздела = ОписаниеРаздела.Значение; // см. ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.СвойстваРаздела - МассивСсылокРазделов.Добавить(СвойстваРаздела.Ссылка); + ОбновляемыеРазделы.Добавить(СвойстваРаздела.Ссылка); - Объект = СвойстваРаздела.Ссылка.ПолучитьОбъект(); - Записать = Ложь; - - Если Объект = Неопределено Тогда - Объект = ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.СоздатьЭлемент(); - Объект.УстановитьСсылкуНового(СвойстваРаздела.Ссылка); - Записать = Истина; - КонецЕсли; - - Если Объект.Наименование <> СвойстваРаздела.Представление Тогда - Объект.Наименование = СвойстваРаздела.Представление; - Записать = Истина; - КонецЕсли; - - Если Объект.ПометкаУдаления Тогда - Объект.ПометкаУдаления = Ложь; - Записать = Истина; - КонецЕсли; - - Если ЗначениеЗаполнено(Объект.УдалитьНоваяСсылка) Тогда - Объект.УдалитьНоваяСсылка = ПустойРаздел; - Записать = Истина; - КонецЕсли; - - ТипыОбъектов = Новый Массив; - Если СвойстваРаздела.ТипыОбъектов.Количество() = 0 Тогда - ТипыОбъектов.Добавить(ТипЗнч(ПустойРаздел)); - Иначе - Для Каждого СвойстваТипа Из СвойстваРаздела.ТипыОбъектов Цикл - ТипыОбъектов.Добавить(ТипЗнч(СвойстваТипа.ПустаяСсылка)); - КонецЦикла; - КонецЕсли; - Если Объект.ТипЗначения.Типы().Количество() <> ТипыОбъектов.Количество() Тогда - Объект.ТипЗначения = Новый ОписаниеТипов(ТипыОбъектов); - Записать = Истина; - Иначе - Для Каждого Тип Из ТипыОбъектов Цикл - Если Не Объект.ТипЗначения.СодержитТип(Тип) Тогда - Объект.ТипЗначения = Новый ОписаниеТипов(ТипыОбъектов); - Записать = Истина; - Прервать; - КонецЕсли; - КонецЦикла; - КонецЕсли; - Если Записать Тогда - ОбновлениеИнформационнойБазы.ЗаписатьОбъект(Объект, Ложь); - КонецЕсли; + НачатьТранзакцию(); + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировки = БлокировкаДанных.Добавить("ПланВидовХарактеристик.РазделыДатЗапретаИзменения"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", СвойстваРаздела.Ссылка); + БлокировкаДанных.Заблокировать(); + + Объект = СвойстваРаздела.Ссылка.ПолучитьОбъект(); + Записать = Ложь; + + Если Объект = Неопределено Тогда + Объект = ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.СоздатьЭлемент(); + Объект.УстановитьСсылкуНового(СвойстваРаздела.Ссылка); + Записать = Истина; + КонецЕсли; + + Если Объект.Наименование <> СвойстваРаздела.Представление Тогда + Объект.Наименование = СвойстваРаздела.Представление; + Записать = Истина; + КонецЕсли; + + Если Объект.ПометкаУдаления Тогда + Объект.ПометкаУдаления = Ложь; + Записать = Истина; + КонецЕсли; + + Если ЗначениеЗаполнено(Объект.УдалитьНоваяСсылка) Тогда + Объект.УдалитьНоваяСсылка = ПустойРаздел; + Записать = Истина; + КонецЕсли; + + ТипыОбъектов = Новый Массив; + Если СвойстваРаздела.ТипыОбъектов.Количество() = 0 Тогда + ТипыОбъектов.Добавить(ТипЗнч(ПустойРаздел)); + Иначе + Для Каждого СвойстваТипа Из СвойстваРаздела.ТипыОбъектов Цикл + ТипыОбъектов.Добавить(ТипЗнч(СвойстваТипа.ПустаяСсылка)); + КонецЦикла; + КонецЕсли; + Если Объект.ТипЗначения.Типы().Количество() <> ТипыОбъектов.Количество() Тогда + Объект.ТипЗначения = Новый ОписаниеТипов(ТипыОбъектов); + Записать = Истина; + Иначе + Для Каждого Тип Из ТипыОбъектов Цикл + Если Не Объект.ТипЗначения.СодержитТип(Тип) Тогда + Объект.ТипЗначения = Новый ОписаниеТипов(ТипыОбъектов); + Записать = Истина; + Прервать; + КонецЕсли; + КонецЦикла; + КонецЕсли; + Если Записать Тогда + ОбновлениеИнформационнойБазы.ЗаписатьОбъект(Объект, Ложь); + КонецЕсли; + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; КонецЦикла; // Пометка на удаление устаревших непредопределенных разделов. - Запрос = Новый Запрос; - Запрос.УстановитьПараметр("Разделы", МассивСсылокРазделов); - Запрос.Текст = - "ВЫБРАТЬ - | Разделы.Ссылка КАК Ссылка, - | Разделы.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных, - | Разделы.УдалитьНоваяСсылка КАК УдалитьНоваяСсылка - |ИЗ - | ПланВидовХарактеристик.РазделыДатЗапретаИзменения КАК Разделы - |ГДЕ - | НЕ Разделы.ПометкаУдаления - | И НЕ Разделы.Ссылка В (&Разделы) - | И Разделы.ИмяПредопределенныхДанных = """""; - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - Если ЗначениеЗаполнено(Выборка.УдалитьНоваяСсылка) - И ОбщегоНазначения.РазделениеВключено() Тогда - Продолжить; - КонецЕсли; - Объект = Выборка.Ссылка.ПолучитьОбъект(); - Объект.ПометкаУдаления = Истина; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект, Ложь); - КонецЦикла; + НачатьТранзакцию(); + Попытка + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировки = БлокировкаДанных.Добавить("ПланВидовХарактеристик.РазделыДатЗапретаИзменения"); + ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый; + БлокировкаДанных.Заблокировать(); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Разделы", ОбновляемыеРазделы); + Запрос.Текст = + "ВЫБРАТЬ + | Разделы.Ссылка КАК Ссылка, + | Разделы.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных, + | Разделы.УдалитьНоваяСсылка КАК УдалитьНоваяСсылка + |ИЗ + | ПланВидовХарактеристик.РазделыДатЗапретаИзменения КАК Разделы + |ГДЕ + | НЕ Разделы.ПометкаУдаления + | И НЕ Разделы.Ссылка В (&Разделы) + | И Разделы.ИмяПредопределенныхДанных = """""; + + УстаревшиеРазделы = Запрос.Выполнить().Выгрузить(); + + ЭлементБлокировки = БлокировкаДанных.Добавить("ПланВидовХарактеристик.РазделыДатЗапретаИзменения"); + ЭлементБлокировки.ИсточникДанных = УстаревшиеРазделы; + ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Ссылка", "Ссылка"); + БлокировкаДанных.Заблокировать(); + + Для каждого УстаревшийРаздел Из УстаревшиеРазделы Цикл + Если ЗначениеЗаполнено(УстаревшийРаздел.УдалитьНоваяСсылка) + И ОбщегоНазначения.РазделениеВключено() Тогда + Продолжить; + КонецЕсли; + Объект = УстаревшийРаздел.Ссылка.ПолучитьОбъект(); + Объект.ПометкаУдаления = Истина; + ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект, Ложь); + КонецЦикла; + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; КонецПроцедуры @@ -1180,13 +1197,7 @@ // // Параметры: // Запрос - Запрос -// Отбор - РегистрСведенийНаборЗаписей.Отбор -// - РегистрНакопленияНаборЗаписей.Отбор -// - РегистрБухгалтерииНаборЗаписей.Отбор -// - РегистрРасчетаНаборЗаписей.Отбор -// -// Возвращаемое значение: -// Строка +// Отбор - Отбор // Процедура ВставитьПараметрыИУсловиеОтбора(Запрос, Отбор) @@ -1230,7 +1241,7 @@ ДанныеДляПроверки = ДатыЗапретаИзменения.ШаблонДанныхДляПроверки(); Если ИсточникиДанных.ЭтоРегистр Тогда - ЗначенияПолей = Данные.Выгрузить(, ИсточникиДанных.ПоляРегистра); + ЗначенияПолей = Данные.Выгрузить(, ИсточникиДанных.ПоляРегистра); // ТаблицаЗначений ЗначенияПолей.Свернуть(ИсточникиДанных.ПоляРегистра); Если ЗначенияПолей.Колонки.Найти("Регистратор") <> Неопределено И Данные.Отбор.Найти("Регистратор") <> Неопределено @@ -1257,7 +1268,7 @@ Иначе СтрокаДаты = Новый Структура("Значение", ЗначениеПоля(Данные, ИсточникДанных.ПолеДаты)); Поле = ИсточникДанных.ПолеОбъекта.Имя; - ЗначенияОбъекта = Данные[ИсточникДанных.ПолеОбъекта.ТабличнаяЧасть].Выгрузить(, Поле); + ЗначенияОбъекта = Данные[ИсточникДанных.ПолеОбъекта.ТабличнаяЧасть].Выгрузить(, Поле); // ТаблицаЗначений ЗначенияОбъекта.Свернуть(Поле); Для Каждого СтрокаОбъекта Из ЗначенияОбъекта Цикл ДобавитьСтрокуДанных(СтрокаДаты, СтрокаОбъекта, ИсточникДанных, ДанныеДляПроверки); @@ -1270,7 +1281,7 @@ СтрокаОбъекта = Новый Структура("Значение", ЗначениеПоля(Данные, ИсточникДанных.ПолеОбъекта)); КонецЕсли; Поле = ИсточникДанных.ПолеДаты.Имя; - ЗначенияДаты = Данные[ИсточникДанных.ПолеДаты.ТабличнаяЧасть].Выгрузить(, Поле); + ЗначенияДаты = Данные[ИсточникДанных.ПолеДаты.ТабличнаяЧасть].Выгрузить(, Поле); // ТаблицаЗначений ЗначенияДаты.Свернуть(Поле); Для Каждого СтрокаДаты Из ЗначенияДаты Цикл ДобавитьСтрокуДанных(СтрокаДаты, СтрокаОбъекта, ИсточникДанных, ДанныеДляПроверки, БезОбъекта); @@ -1283,19 +1294,19 @@ Иначе Поля = ИсточникДанных.ПолеДаты.Имя + "," + ИсточникДанных.ПолеОбъекта.Имя; КонецЕсли; - Значения = Данные[ИсточникДанных.ПолеДаты.ТабличнаяЧасть].Выгрузить(, Поля); + Значения = Данные[ИсточникДанных.ПолеДаты.ТабличнаяЧасть].Выгрузить(, Поля); // ТаблицаЗначений Значения.Свернуть(Поля); Для Каждого Строка Из Значения Цикл ДобавитьСтрокуДанных(Строка, Строка, ИсточникДанных, ДанныеДляПроверки, БезОбъекта); КонецЦикла; Иначе Поле = ИсточникДанных.ПолеДаты.Имя; - ЗначенияДаты = Данные[ИсточникДанных.ПолеДаты.ТабличнаяЧасть].Выгрузить(, Поле); + ЗначенияДаты = Данные[ИсточникДанных.ПолеДаты.ТабличнаяЧасть].Выгрузить(, Поле); // ТаблицаЗначений ЗначенияДаты.Свернуть(Поле); Если Не БезОбъекта Тогда Поле = ИсточникДанных.ПолеОбъекта.Имя; - ЗначенияОбъекта = Данные[ИсточникДанных.ПолеОбъекта.ТабличнаяЧасть].Выгрузить(, Поле); + ЗначенияОбъекта = Данные[ИсточникДанных.ПолеОбъекта.ТабличнаяЧасть].Выгрузить(, Поле); // ТаблицаЗначений ЗначенияОбъекта.Свернуть(Поле); КонецЕсли; @@ -1453,7 +1464,7 @@ // ** ИспользоватьВнешнихПользователей - Булево // ** ПоказыватьРазделы - Булево // ** ПустыеСсылкиУзловПлановОбмена - ФиксированныйМассив -// ** Разделы - ФиксированноеСоответствие: +// ** Разделы - ФиксированноеСоответствие из КлючИЗначение: // *** Ключ - Строка // *** Значение - ФиксированнаяСтруктура: // **** Имя - Строка diff --git a/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебныйПовтИсп/Module.bsl index 92fb42488..c7c0a9340 100644 --- a/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебныйПовтИсп/Module.bsl @@ -33,7 +33,7 @@ Функция ПоляШапки(Таблица) Экспорт СхемаЗапроса = Новый СхемаЗапроса; - СхемаЗапроса.УстановитьТекстЗапроса("ВЫБРАТЬ * ИЗ " + Таблица); + СхемаЗапроса.УстановитьТекстЗапроса(СтрЗаменить("ВЫБРАТЬ * ИЗ #Таблица", "#Таблица", Таблица)); ПоляШапки = Новый Структура; Для Каждого Колонка Из СхемаЗапроса.ПакетЗапросов[0].Колонки Цикл diff --git a/SSL/src/CommonModules/ДлительныеОперации/Module.bsl b/SSL/src/CommonModules/ДлительныеОперации/Module.bsl index e9884a3b6..daceeb3cb 100644 --- a/SSL/src/CommonModules/ДлительныеОперации/Module.bsl +++ b/SSL/src/CommonModules/ДлительныеОперации/Module.bsl @@ -294,11 +294,12 @@ // "Отменено", если задание отменено пользователем или администратором. // * ИдентификаторЗадания - УникальныйИдентификатор - если Статус = "Выполняется", то содержит // идентификатор запущенного фонового задания. -// * АдресРезультата - Строка - адрес временного хранилища, в которое будет -// помещен (или уже помещен) результат работы процедуры. +// * АдресРезультата - Строка - адрес временного хранилища, в которое будет помещен результат работы процедуры +// (или уже помещен, если Статус = "Выполнено"). // * АдресДополнительногоРезультата - Строка - если установлен параметр ДополнительныйРезультат, // содержит адрес дополнительного временного хранилища, -// в которое будет помещен (или уже помещен) результат работы процедуры. +// в которое будет помещен результат работы процедуры +// (или уже помещен, если Статус = "Выполнено"). // * КраткоеПредставлениеОшибки - Строка - краткая информация об исключении, если Статус = "Ошибка". // * ПодробноеПредставлениеОшибки - Строка - подробная информация об исключении, если Статус = "Ошибка". // * Сообщения - ФиксированныйМассив - если Статус <> "Выполняется", то массив объектов СообщениеПользователю, @@ -358,14 +359,28 @@ КонецЕсли; #КонецЕсли - Если ПараметрыВыполнения.Свойство("АдресРезультата") И ПараметрыВыполнения.АдресРезультата = Неопределено Тогда - ПараметрыВыполнения.АдресРезультата = ПоместитьВоВременноеХранилище(Неопределено, ПараметрыВыполнения.ИдентификаторФормы); - КонецЕсли; - Результат = Новый Структура; - Результат.Вставить("Статус", "Выполняется"); + Результат.Вставить("Статус", "Выполняется"); Результат.Вставить("ИдентификаторЗадания", Неопределено); Если ПараметрыВыполнения.Свойство("АдресРезультата") Тогда + Если ПараметрыВыполнения.АдресРезультата = Неопределено Тогда + Если Не ЗначениеЗаполнено(ПараметрыВыполнения.ИдентификаторФормы) И ОбщегоНазначения.РежимОтладки() Тогда + Попытка + ВызватьИсключение НСтр("ru = 'Не указан ни уникальный идентификатор формы в параметре ПараметрыВыполнения.ИдентификаторФормы, + |ни адрес временного хранилища в ПараметрыВыполнения.АдресРезультата в ДлительныеОперации.ВыполнитьВФоне. + |Убедиться, что при обработке результата временное хранилище очищается явно методом УдалитьИзВременногоХранилища.'"); + Исключение + // АПК:154-выкл Не ошибка, а предупреждение (рекомендация разработчику). + ЗаписьЖурналаРегистрации(НСтр("ru = 'Длительные операции.Диагностика'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Предупреждение, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + // АПК:154-вкл + КонецПопытки; + КонецЕсли; + ПараметрыВыполнения.АдресРезультата = ПоместитьВоВременноеХранилище(Неопределено, ПараметрыВыполнения.ИдентификаторФормы); + ИначеЕсли Не ЭтоАдресВременногоХранилища(ПараметрыВыполнения.АдресРезультата) Тогда + ВызватьИсключение НСтр("ru = 'Не указан адрес временного хранилища в параметре ПараметрыВыполнения.АдресРезультата + |в ДлительныеОперации.ВыполнитьВФоне.'"); + КонецЕсли; Результат.Вставить("АдресРезультата", ПараметрыВыполнения.АдресРезультата); КонецЕсли; Если ПараметрыВыполнения.Свойство("ДополнительныйРезультат") Тогда @@ -416,7 +431,7 @@ Результат.Статус = "Ошибка"; Результат.КраткоеПредставлениеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); Результат.ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - ЗаписьЖурналаРегистрации(НСтр("ru = 'Ошибка выполнения'", ОбщегоНазначения.КодОсновногоЯзыка()), + ЗаписьЖурналаРегистрации(НСтр("ru = 'Длительные операции.Ошибка выполнения'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, , , Результат.ПодробноеПредставлениеОшибки); КонецПопытки; Возврат Результат; @@ -471,13 +486,16 @@ // Возвращает новую структуру для параметра ПараметрыВыполнения функции ВыполнитьВФоне. // // Параметры: -// ИдентификаторФормы - УникальныйИдентификатор - уникальный идентификатор формы, -// во временное хранилище которой надо поместить результат выполнения процедуры. -// +// ИдентификаторФормы - УникальныйИдентификатор - уникальный идентификатор формы, во временное хранилище которой +// необходимо поместить результат выполнения процедуры. +// - Неопределено - если временное хранилище не нужно создавать автоматически на время жизни +// формы, а его адрес предполагается задавать явно в свойстве АдресРезультата. +// В таком случае, временное хранилище нужно очищать явно при обработке результата +// длительной операции с помощью метода УдалитьИзВременногоХранилища. // Возвращаемое значение: // Структура: // * ИдентификаторФормы - УникальныйИдентификатор - уникальный идентификатор формы, -// во временное хранилище которой надо поместить результат выполнения процедуры. +// во временное хранилище которой надо поместить результат выполнения процедуры. // * ДополнительныйРезультат - Булево - признак использования дополнительного временного хранилища для передачи // результата из фонового задания в родительский сеанс. По умолчанию - Ложь. // * ОжидатьЗавершение - Число @@ -489,7 +507,8 @@ // * КлючФоновогоЗадания - Строка - уникальный ключ для активных фоновых заданий, имеющих такое же имя процедуры. // По умолчанию не задан. // * АдресРезультата - Строка - адрес временного хранилища, в которое должен быть помещен результат -// работы процедуры. Если не задан, адрес формируется автоматически. +// работы процедуры. Если не задан, адрес формируется автоматически +// на время жизни формы с помощью идентификатора ИдентификаторФормы. // * ЗапуститьВФоне - Булево - если Истина, то задание будет всегда выполняться в фоне, // за исключением режима отладки. // В файловом варианте при наличии ранее запущенных заданий, @@ -499,7 +518,7 @@ // * БезРасширений - Булево - если Истина, то фоновое задание будет запущено без подключения // расширений конфигурации. // -Функция ПараметрыВыполненияВФоне(Знач ИдентификаторФормы) Экспорт +Функция ПараметрыВыполненияВФоне(Знач ИдентификаторФормы = Неопределено) Экспорт Результат = ОбщиеПараметрыВыполненияВФоне(); ДобавитьПараметрыВыполненияДляВозвратаРезультата(Результат, ИдентификаторФормы); @@ -809,7 +828,7 @@ Если Задание = Неопределено Тогда Пояснение = НСтр("ru = 'Операция не выполнена из-за аварийного завершения фонового задания. |Фоновое задание не существует'") + ": " + Строка(ИдентификаторЗадания); - ЗаписьЖурналаРегистрации(НСтр("ru = 'Длительные операции'", ОбщегоНазначения.КодОсновногоЯзыка()), + ЗаписьЖурналаРегистрации(НСтр("ru = 'Длительные операции.Ошибка выполнения'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, , , Пояснение); Если ИсключениеПриОшибке Тогда ВызватьИсключение(НСтр("ru = 'Не удалось выполнить данную операцию.'")); diff --git a/SSL/src/CommonModules/ДлительныеОперацииКлиент/Module.bsl b/SSL/src/CommonModules/ДлительныеОперацииКлиент/Module.bsl index b5341ee73..675f61201 100644 --- a/SSL/src/CommonModules/ДлительныеОперацииКлиент/Module.bsl +++ b/SSL/src/CommonModules/ДлительныеОперацииКлиент/Module.bsl @@ -18,16 +18,16 @@ // Параметры процедуры-обработчика оповещения: // * Результат - Структура // - Неопределено - структура со свойствами или Неопределено, если задание было отменено: -// ** Статус - Строка - "Выполнено", если задание было успешно выполнено; +// ** Статус - Строка - "Выполнено", если задание было успешно выполнено; // "Ошибка", если задание завершено с ошибкой. -// ** АдресРезультата - Строка - адрес временного хранилища, в которое будет +// ** АдресРезультата - Строка - адрес временного хранилища, в которое будет // помещен (или уже помещен) результат работы процедуры. -// ** АдресДополнительногоРезультата - Строка - если установлен параметр ДополнительныйРезультат, +// ** АдресДополнительногоРезультата - Строка - если установлен параметр ДополнительныйРезультат, // содержит адрес дополнительного временного хранилища, // в которое будет помещен (или уже помещен) результат работы процедуры. -// ** КраткоеПредставлениеОшибки - Строка - краткая информация об исключении, если Статус = "Ошибка". -// ** ПодробноеПредставлениеОшибки - Строка - подробная информация об исключении, если Статус = "Ошибка". -// ** Сообщения - ФиксированныйМассив +// ** КраткоеПредставлениеОшибки - Строка - краткая информация об исключении, если Статус = "Ошибка". +// ** ПодробноеПредставлениеОшибки - Строка - подробная информация об исключении, если Статус = "Ошибка". +// ** Сообщения - ФиксированныйМассив // - Неопределено - массив объектов СообщениеПользователю, // сформированных в процедуре-обработчике длительной операции. // * ДополнительныеПараметры - Произвольный - произвольные данные, переданные в описании оповещения. diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработки/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработки/Module.bsl index 9b69c16c7..73380b9bd 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработки/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработки/Module.bsl @@ -19,8 +19,8 @@ // Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки - подключаемая обработка. // // Возвращаемое значение: -// * Строка - имя подключенного отчета или обработки. -// * Неопределено - если передана некорректная ссылка. +// Строка - имя подключенного отчета или обработки. +// Неопределено - если передана некорректная ссылка. // Функция ПодключитьВнешнююОбработку(Ссылка) Экспорт @@ -116,9 +116,9 @@ // Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки - подключаемый отчет или обработка. // // Возвращаемое значение: -// * ВнешняяОбработкаОбъект - объект подключенной обработки. -// * ВнешнийОтчетОбъект - объект подключенного отчета. -// * Неопределено - если передана некорректная ссылка. +// ВнешняяОбработка - объект подключенной обработки. +// ВнешнийОтчет - объект подключенного отчета. +// Неопределено - если передана некорректная ссылка. // Функция ОбъектВнешнейОбработки(Ссылка) Экспорт @@ -318,7 +318,7 @@ // * ИдентификаторКоманды - Строка - имя выполняемой команды. // * ОбъектыНазначения - Массив - ссылки объектов, для которых выполняется обработка. Обязательный для // назначаемых обработок. -// АдресРезультата - Строка - необязательный. Адрес временного хранилища по которому будет размещен результат +// АдресРезультата - Строка - адрес временного хранилища по которому будет размещен результат // выполнения. // // Возвращаемое значение: @@ -374,10 +374,12 @@ ДополнительныеОтчетыИОбработкиПереопределяемый.ОпределитьРазделыСДополнительнымиОтчетами(РазделыМетаданные); + // АПК:1383-выкл получение модуля менеджера, а не общего модуля. Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.НастройкиПрограммы") Тогда МодульОбработкиПанельАдминистрированияБСП = ОбщегоНазначения.ОбщийМодуль("Обработки.ПанельАдминистрированияБСП"); МодульОбработкиПанельАдминистрированияБСП.ПриОпределенииРазделовСДополнительнымиОтчетами(РазделыМетаданные); КонецЕсли; + // АПК:1383-вкл Возврат РазделыМетаданные; КонецФункции @@ -391,10 +393,12 @@ Функция РазделыДополнительныхОбработок() Экспорт РазделыМетаданные = Новый Массив; + // АПК:1383-выкл получение модуля менеджера, а не общего модуля. Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.НастройкиПрограммы") Тогда МодульОбработкиПанельАдминистрированияБСП = ОбщегоНазначения.ОбщийМодуль("Обработки.ПанельАдминистрированияБСП"); МодульОбработкиПанельАдминистрированияБСП.ПриОпределенииРазделовСДополнительнымиОбработками(РазделыМетаданные); КонецЕсли; + // АПК:1383-вкл ДополнительныеОтчетыИОбработкиПереопределяемый.ОпределитьРазделыСДополнительнымиОбработками(РазделыМетаданные); @@ -512,14 +516,14 @@ // - Строка - ссылка или полное имя объекта метаданных, // к которому привязаны искомые дополнительные отчеты и обработки. // Глобальные обработки размещаются в разделах, контекстные - в справочниках и документах. -// ЭтоФормаОбъекта - Булево - необязательный. +// ЭтоФормаОбъекта - Булево - // Тип форм, в которых размещены контекстные дополнительные отчеты и обработки. // Истина - только отчеты и обработки, привязанные к формам объектов. // Ложь - только отчеты и обработки, привязанные к формам списков. // ТипыКоманд - ПеречислениеСсылка.ВариантыПубликацииДополнительныхОтчетовИОбработок - тип получаемых команд. -// - Массив - типы команд, которые необходимо получить: +// - Массив - типы команд, которые необходимо получить: // * ПеречислениеСсылка.ВариантыПубликацииДополнительныхОтчетовИОбработок -// ТолькоВключенные - Булево - необязательный. +// ТолькоВключенные - Булево - // Тип форм, в которых размещены контекстные дополнительные отчеты и обработки. // Истина - только отчеты и обработки, привязанные к формам объектов. // Ложь - только отчеты и обработки, привязанные к формам списков. @@ -716,7 +720,7 @@ | Представление"; Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ПолноИмяРегистра", "РегистрСведений." + ИмяРегистра); Иначе - Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПОМЕСТИТЬ ИтоговаяТаблица", ""); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПОМЕСТИТЬ ИтоговаяТаблица", ""); // @query-part Запрос.Текст = Запрос.Текст + " | |УПОРЯДОЧИТЬ ПО @@ -727,16 +731,17 @@ КонецФункции // Параметры: -// МассивСсылок - Массив Из ЛюбаяСсылка - ссылки выбранных объектов, для которых выполняется команда. +// МассивСсылок - Массив из ЛюбаяСсылка - ссылки выбранных объектов, для которых выполняется команда. // ПараметрыВыполнения - Структура: -// * ОписаниеКоманды - Структура: -// ** Идентификатор - Строка - идентификатор команды. -// ** Представление - Строка - представление команды в форме. -// ** Имя - Строка - имя команды в форме. -// ** ДополнительныеПараметры - см. ДополнительныеПараметрыКомандыЗаполнения -// * Форма - ФормаКлиентскогоПриложения - форма, из которой была вызвана команда. -// * Источник - ДанныеФормыСтруктура -// - ТаблицаФормы - объект или список формы с полем "Ссылка". +// * ОписаниеКоманды - Структура: +// ** Идентификатор - Строка - идентификатор команды. +// ** Представление - Строка - представление команды в форме. +// ** Имя - Строка - имя команды в форме. +// ** ДополнительныеПараметры - см. ДополнительныеПараметрыКомандыЗаполнения +// * Форма - ФормаКлиентскогоПриложения - форма, из которой была вызвана команда. +// * Источник - ДанныеФормыСтруктура: +// ** Ссылка - ЛюбаяСсылка +// - ТаблицаФормы - объект или список формы с полем "Ссылка". // Процедура ОбработчикКомандыЗаполнения(Знач МассивСсылок, Знач ПараметрыВыполнения) Экспорт ВыполняемаяКоманда = ПараметрыВыполнения.ОписаниеКоманды.ДополнительныеПараметры; @@ -882,7 +887,9 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. +// Параметры: +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. +// Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт Если ОбщегоНазначения.РазделениеВключено() Или Не ПравоДоступа("Редактирование", Метаданные.Справочники.ДополнительныеОтчетыИОбработки) @@ -963,9 +970,6 @@ КонецПроцедуры // См. УправлениеДоступомПереопределяемый.ПриЗаполненииВидовДоступа. -// Параметры: -// ВидыДоступа - см. УправлениеДоступомПереопределяемый.ПриЗаполненииВидовДоступа.ВидыДоступа -// Процедура ПриЗаполненииВидовДоступа(ВидыДоступа) Экспорт ВидДоступа = ВидыДоступа.Добавить(); @@ -1011,11 +1015,7 @@ КонецПроцедуры -// См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей. -// -// Параметры: -// НазначениеРолей - см. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей.НазначениеРолей -// +// См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей Процедура ПриОпределенииНазначенияРолей(НазначениеРолей) Экспорт // СовместноДляПользователейИВнешнихПользователей. @@ -1054,7 +1054,7 @@ Запрос.Параметры.Вставить("Пользователь", СведенияОПользователе.ПользовательСсылка); - РезультатЗапроса = Запрос.Выполнить().Выгрузить(); + РезультатЗапроса = Запрос.Выполнить().Выгрузить(); // см. ПользователиСлужебный.НовоеОписаниеНастройки НастройкаБыстрогоДоступа = Новый Структура; НастройкаБыстрогоДоступа.Вставить("НазваниеНастройки", НазваниеНастройки); @@ -1146,10 +1146,10 @@ // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту. // // Параметры: -// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы -// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники -// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки -// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды +// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы +// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники +// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки +// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды // Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт @@ -1680,14 +1680,10 @@ КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. -// -// Параметры: -// Массив - см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.ИсключенияПоискаСсылок -// -Процедура ПриДобавленииИсключенийПоискаСсылок(Массив) Экспорт +Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт - Массив.Добавить("Справочник.ДополнительныеОтчетыИОбработки.ТабличнаяЧасть.Разделы.Реквизит.Раздел"); - Массив.Добавить("Справочник.ДополнительныеОтчетыИОбработки.ТабличнаяЧасть.Назначение.Реквизит.ОбъектНазначения"); + ИсключенияПоискаСсылок.Добавить("Справочник.ДополнительныеОтчетыИОбработки.ТабличнаяЧасть.Разделы.Реквизит.Раздел"); + ИсключенияПоискаСсылок.Добавить("Справочник.ДополнительныеОтчетыИОбработки.ТабличнаяЧасть.Назначение.Реквизит.ОбъектНазначения"); КонецПроцедуры @@ -2019,7 +2015,7 @@ // Выполняет команду дополнительного отчета или обработки из объекта. Функция ВыполнитьКомандуВнешнегоОбъекта(ВнешнийОбъект, ИдентификаторКоманды, ПараметрыКоманды, АдресРезультата) - СведенияОВнешнемОбъекте = ВнешнийОбъект.СведенияОВнешнейОбработке(); + СведенияОВнешнемОбъекте = ВнешнийОбъект.СведенияОВнешнейОбработке(); // см. СведенияОВнешнейОбработке ВидОбработки = ПолучитьВидОбработкиПоСтроковомуПредставлениюВида(СведенияОВнешнемОбъекте.Вид); @@ -2232,11 +2228,11 @@ КонецПроцедуры // Возвращаемое значение: -// ТаблицаЗначений: -// * Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки -// * Версия - Строка -// * ИмяОбъекта - Строка -// * ИмяФайла - Строка +// ТаблицаЗначений: +// * Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки +// * Версия - Строка +// * ИмяОбъекта - Строка +// * ИмяФайла - Строка // Функция ОбработкиИзКонфигурации() Перем ОбработкиИзКонфигурации; @@ -2853,13 +2849,13 @@ КонецФункции // Параметры: -// Объект - СправочникСсылка.ДополнительныеОтчетыИОбработки -// ЭтоОтчет - Булево -// ИмяОбъекта - Строка +// Объект - СправочникСсылка.ДополнительныеОтчетыИОбработки +// ЭтоОтчет - Булево +// ИмяОбъекта - Строка // Возвращаемое значение: -// ТаблицаЗначений: -// * Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки -// * Представление - Строка +// ТаблицаЗначений: +// * Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки +// * Представление - Строка // Функция КонфликтующиеДополнительныеОтчетыИОбработки(Объект, ЭтоОтчет, ИмяОбъекта) УстановитьПривилегированныйРежим(Истина); @@ -2917,9 +2913,9 @@ // Для внутреннего использования. // // Параметры: -// Объект - СправочникОбъект.ДополнительныеОтчетыИОбработки -// - Неопределено -// РегистрационныеДанные - см. СведенияОВнешнейОбработке +// Объект - СправочникОбъект.ДополнительныеОтчетыИОбработки +// - Неопределено +// РегистрационныеДанные - см. СведенияОВнешнейОбработке // Процедура ПриПолученииРегистрационныхДанных(Объект, РегистрационныеДанные, ПараметрыРегистрации, РезультатРегистрации) @@ -3079,15 +3075,14 @@ КонецФункции // Возвращаемое значение: -// -// Структура: -// * Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки -// * Вид - Строка -// * ВариантЗапуска - Строка -// * Идентификатор - Строка -// * ПоказыватьОповещение - Строка -// * Представление - Строка -// * ЭтоОтчет - Булево +// Структура: +// * Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки +// * Вид - Строка +// * ВариантЗапуска - Строка +// * Идентификатор - Строка +// * ПоказыватьОповещение - Строка +// * Представление - Строка +// * ЭтоОтчет - Булево // Функция ДополнительныеПараметрыКомандыЗаполнения() КлючиПараметровОбработчика = "Ссылка, Идентификатор, ВариантЗапуска, Представление, ПоказыватьОповещение, ЭтоОтчет"; @@ -3095,19 +3090,19 @@ КонецФункции // Параметры: -// ИдентификаторыОбъектов - Массив +// ИдентификаторыОбъектов - Массив // // Возвращаемое значение: -// ТаблицаЗначений: -// * Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки -// * Команды - ТаблицаЗначений: -// ** Идентификатор - Строка -// ** ВариантЗапуска - ПеречислениеСсылка.СпособыВызоваДополнительныхОбработок -// ** Представление - Строка -// ** ПоказыватьОповещение - Булево -// ** Скрыть - Булево -// * Назначение - ТаблицаЗначений: -// ** ОбъектНазначения - СправочникСсылка.ИдентификаторыОбъектовМетаданных +// ТаблицаЗначений: +// * Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки +// * Команды - ТаблицаЗначений: +// ** Идентификатор - Строка +// ** ВариантЗапуска - ПеречислениеСсылка.СпособыВызоваДополнительныхОбработок +// ** Представление - Строка +// ** ПоказыватьОповещение - Булево +// ** Скрыть - Булево +// * Назначение - ТаблицаЗначений: +// ** ОбъектНазначения - СправочникСсылка.ИдентификаторыОбъектовМетаданных // Функция ТаблицаОтчетовИОбработок(Знач ИдентификаторыОбъектов) Запрос = Новый Запрос; diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВАвтономномРежиме/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВАвтономномРежиме/Module.bsl index 9dcf23aa0..be4aebfd8 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВАвтономномРежиме/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВАвтономномРежиме/Module.bsl @@ -214,7 +214,7 @@ // в текущей модели информационной базы. // // Параметры: -// НедоступныеВидыПубликации - Массив Из Строка +// НедоступныеВидыПубликации - Массив из Строка // Процедура ПриЗаполненииНедоступныхВидовПубликации(Знач НедоступныеВидыПубликации) Экспорт @@ -231,7 +231,7 @@ // // Параметры: // Источник - СправочникОбъект.ДополнительныеОтчетыИОбработки, -// Отказ - булево - флаг отказа от выполнения записи элемента справочника. +// Отказ - Булево - флаг отказа от выполнения записи элемента справочника. // Процедура ПередЗаписьюДополнительнойОбработки(Источник, Отказ) Экспорт diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный/Module.bsl index b46f2f35e..887dbfcbc 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный/Module.bsl @@ -12,9 +12,10 @@ // Функция должна возвращать одно и то же значение при многократном вызове. // // Параметры: -// ВнешнийМодуль - ЛюбаяСсылка, ссылка на внешний модуль. +// ВнешнийМодуль - ЛюбаяСсылка - ссылка на внешний модуль. // -// Возвращаемое значение - Строка - шаблон имя профиля безопасности, содержащий символы +// Возвращаемое значение: +// Строка - шаблон имя профиля безопасности, содержащий символы // "%1", вместо которых в дальнейшем будет подставлен уникальный идентификатор. // Функция ШаблонИмениПрофиляБезопасности(Знач ВнешнийМодуль) Экспорт @@ -36,7 +37,8 @@ // // ВнешнийМодуль - ЛюбаяСсылка, ссылка на внешний модуль, // -// Возвращаемое значение - Картинка. +// Возвращаемое значение: +// Картинка. // Функция ПиктограммаВнешнегоМодуля(Знач ВнешнийМодуль) Экспорт @@ -55,7 +57,8 @@ // Возвращает словарь представлений для внешних модулей контейнера. // -// Возвращаемое значение - Структура: +// Возвращаемое значение: +// Структура: // * Именительный - Строка - представление типа внешнего модуля в именительном падеже, // * Родительный - Строка - представление типа внешнего модуля в родительном падеже. // @@ -73,7 +76,8 @@ // Возвращает массив ссылочных объектов метаданных, которые могут использоваться в // качестве контейнера внешних модулей. // -// Возвращаемое значение - Массив(ОбъектМетаданных). +// Возвращаемое значение: +// Массив из ОбъектМетаданных // Функция КонтейнерыВнешнихМодулей() Экспорт @@ -144,12 +148,12 @@ КонецФункции // Параметры: -// Объект - СправочникСсылка.ДополнительныеОтчетыИОбработки -// ЗначениеФО - Булево -// - Неопределено -// ПометкаУдаления - Булево +// Объект - СправочникСсылка.ДополнительныеОтчетыИОбработки +// ЗначениеФО - Булево +// - Неопределено +// ПометкаУдаления - Булево // Возвращаемое значение: -// Массив +// Массив // Функция ЗапросыРазрешенийДополнительнойОбработки(Знач Объект, Знач ЗначениеФО = Неопределено, Знач ПометкаУдаления = Неопределено) diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/Module.bsl index ee79c161d..90bca4442 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/Module.bsl @@ -14,15 +14,10 @@ #Область БазоваяФункциональность -// Заполняет массив списком имен объектов метаданных, данные которых могут содержать ссылки на различные объекты метаданных, -// но при этом эти ссылки не должны учитываться в бизнес-логике приложения. -// -// Параметры: -// Массив - см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.ИсключенияПоискаСсылок -// -Процедура ПриДобавленииИсключенийПоискаСсылок(Массив) Экспорт +// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. +Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт - Массив.Добавить( + ИсключенияПоискаСсылок.Добавить( Метаданные.РегистрыСведений.ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных.ПолноеИмя()); КонецПроцедуры @@ -115,7 +110,7 @@ // в текущей модели информационной базы. // // Параметры: -// НедоступныеВидыПубликации - Массив Из Строка +// НедоступныеВидыПубликации - Массив из Строка // Процедура ПриЗаполненииНедоступныхВидовПубликации(Знач НедоступныеВидыПубликации) Экспорт @@ -354,10 +349,10 @@ // Параметры: // Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки - дополнительный отчет или обработка. // СтандартнаяОбработка - Булево - флаг необходимости выполнения стандартной обработки подключения -// внешней обработки. -// Результат - ВнешняяОбработкаОбъект -// - ВнешнийОтчетОбъект - объект подключенного внешнего отчета или -// обработки (в том случае, если в обработчике для параметра СтандартнаяОбработка было установлено значение Ложь). +// внешней обработки. +// Результат - ВнешняяОбработка +// - ВнешнийОтчет - объект подключенного внешнего отчета или обработки +// (в том случае, если в обработчике для параметра СтандартнаяОбработка было установлено значение Ложь). // Процедура ПриСозданииВнешнейОбработки(Знач Ссылка, СтандартнаяОбработка, Результат) Экспорт @@ -426,11 +421,7 @@ #Область ОбновлениеИнформационнойБазы -// Добавляет процедуры-обработчики обновления, необходимые данной подсистеме. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// +// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Если Не ОбщегоНазначения.РазделениеВключено() Тогда @@ -900,9 +891,10 @@ // Параметры: // ИспользуемаяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки. // -// Возвращаемое значение - Структура: -// * ХранилищеОбработки - ХранилищеЗначения, содержащее ДвоичныеДанные дополнительного отчета -// или обработки, +// Возвращаемое значение: +// Структура: +// * ХранилищеОбработки - ХранилищеЗначения - содержит ДвоичныеДанные дополнительного отчета +// или обработки, // * БезопасныйРежим - Булево - флаг подключения обработки в безопасном режиме. // Функция ПараметрыПодключенияИспользуемойОбработки(Знач ИспользуемаяОбработка) Экспорт @@ -1006,9 +998,9 @@ // Заполняет соответствие имен методов их псевдонимам для вызова из очереди заданий // // Параметры: -// СоответствиеИменПсевдонимам - Соответствие: +// СоответствиеИменПсевдонимам - Соответствие из КлючИЗначение: // Ключ - псевдоним метода, например ОчиститьОбластьДанных -// Значение - Имя метода для вызова, например РаботаВМоделиСервиса.ОчиститьОбластьДанных +// Значение - имя метода для вызова, например РаботаВМоделиСервиса.ОчиститьОбластьДанных // В качестве значения можно указать Неопределено, в этом случае считается что имя // совпадает с псевдонимом. // @@ -1076,10 +1068,10 @@ // со старыми версиями ИБ-корреспондентов. // // Параметры: -// ИнтерфейсСообщения - строка - название программного интерфейса сообщения, для которого определяется версия -// ПараметрыПодключения - структура - параметры подключения к ИБ-корреспонденту -// ПредставлениеПолучателя - строка - представление ИБ-корреспондента -// Результат - строка - определяемая версия. Значение данного параметра может быть изменено в данной процедуре. +// ИнтерфейсСообщения - Строка - название программного интерфейса сообщения, для которого определяется версия +// ПараметрыПодключения - Структура - параметры подключения к ИБ-корреспонденту +// ПредставлениеПолучателя - Строка - представление ИБ-корреспондента +// Результат - Строка - определяемая версия. Значение данного параметра может быть изменено в данной процедуре. // Процедура ПриОпределенииВерсииИнтерфейсаКорреспондента(Знач ИнтерфейсСообщения, Знач ПараметрыПодключения, Знач ПредставлениеПолучателя, Результат) Экспорт @@ -1111,11 +1103,7 @@ #Область ВыгрузкаЗагрузкаОбластейДанных -// Заполняет массив типов, исключаемых из выгрузки и загрузки данных. -// -// Параметры: -// Типы - см. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки.Типы -// +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт Типы.Добавить(Метаданные.РегистрыСведений.ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных); @@ -1179,7 +1167,7 @@ // // Параметры: // Дескриптор - ОбъектXDTO Descriptor. -// Загружать - булево - возвращаемое. +// Загружать - Булево - возвращаемое. // Процедура ДоступныНовыеДанные(Знач Дескриптор, Загружать) Экспорт @@ -1219,7 +1207,7 @@ // // Параметры: // Дескриптор - ОбъектXDTO Дескриптор. -// ПутьКФайлу - Строка или Неопределено - полное имя извлеченного файла. Файл будет автоматически удален +// ПутьКФайлу - Строка, Неопределено - полное имя извлеченного файла. Файл будет автоматически удален // после завершения процедуры. Если в менеджере сервиса не был // указан файл - значение аргумента равно Неопределено. // @@ -1374,7 +1362,7 @@ // // Возвращаемое значение: // ТаблицаЗначений: -// * ОбластьДанных - Число (7,0) - номер области данных. +// * ОбластьДанных - Число - число длиной 7 символов, номер области данных. // * ИспользуемаяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки - дополнительная обработка. // Функция ПереченьИнсталляций(Знач ПоставляемаяОбработка) @@ -1400,7 +1388,7 @@ // // Возвращаемое значение: // ТаблицаЗначений: -// * ОбластьДанных - Число (7,0) - номер области данных. +// * ОбластьДанных - Число - число длиной 7 символов, номер области данных. // * ПараметрыУстановки - ХранилищеЗначения - очередь инсталляций. // Функция ОчередьИнсталляций(Знач ПоставляемаяОбработка) @@ -1663,8 +1651,8 @@ // по элементу справочника ПоставляемыеДополнительныеОтчетыИОбработки. // // Параметры: -// ИспользуемаяОбработка - СправочникОбъект.ДополнительныеОтчетыИОбработки -// ПоставляемаяОбработка - СправочникОбъект.ПоставляемыеДополнительныеОтчетыИОбработки +// ИспользуемаяОбработка - СправочникОбъект.ДополнительныеОтчетыИОбработки +// ПоставляемаяОбработка - СправочникОбъект.ПоставляемыеДополнительныеОтчетыИОбработки // Процедура ЗаполнитьНастройкиИспользуемойОбработки(ИспользуемаяОбработка, ПоставляемаяОбработка) @@ -1751,8 +1739,8 @@ // // Возвращаемое значение: // ТаблицаЗначений: -// ConfigarationName - строка - имя конфигурации, -// VersionNumber - строка - версия конфигурации. +// ConfigarationName - Строка - имя конфигурации, +// VersionNumber - Строка - версия конфигурации. // Функция ПрочитатьТаблицуСовместимости(Знач ТаблицаСовместимости) Экспорт @@ -1781,8 +1769,8 @@ // использование дополнительных отчетов и обработок. // // Параметры: -// Константа - строка - имя измененной константы, как оно задано в метаданных, -// Значение - булево - новое значение измененной константы. +// Константа - Строка - имя измененной константы, как оно задано в метаданных, +// Значение - Булево - новое значение измененной константы. // Процедура СинхронизацияЗначенийРегулирующихКонстант(Знач Константа, Знач Значение) Экспорт diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс/Module.bsl index 88fc976ab..0396e4e41 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс/Module.bsl @@ -60,7 +60,7 @@ // Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}ExtensionAssignmentObject // // Параметры: -// ИспользуемыйПакет - строка - пространство имен версии интерфейса сообщений, для которой +// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой // получается тип сообщения. // // Возвращаемое значение: diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВызовСервера/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВызовСервера/Module.bsl index e1ef74f68..058a08896 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВызовСервера/Module.bsl @@ -25,15 +25,15 @@ КонецФункции // Создает и возвращает экземпляр внешней обработки (отчета). -// Подробнее см. ДополнительныеОтчетыИОбработки.ОбъектВнешнейОбработки(). +// Подробнее см. ДополнительныеОтчетыИОбработки.ОбъектВнешнейОбработки. // // Параметры: // Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки - подключаемый отчет или обработка. // // Возвращаемое значение: -// ВнешняяОбработкаОбъект - объект подключенной обработки. -// ВнешнийОтчетОбъект - объект подключенного отчета. -// Неопределено - если передана некорректная ссылка. +// ВнешняяОбработка +// ВнешнийОтчет +// Неопределено - если передана некорректная ссылка. // Функция ОбъектВнешнейОбработки(Ссылка) Экспорт diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl index 248e82995..f2e031c46 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl @@ -265,7 +265,7 @@ // Открывает список команд дополнительных отчетов и обработок. // // Параметры: -// МассивСсылок - Массив Из ЛюбаяСсылка - ссылки выбранных объектов, для которых выполняется команда. +// МассивСсылок - Массив из ЛюбаяСсылка - ссылки выбранных объектов, для которых выполняется команда. // ПараметрыВыполнения - Структура: // * ОписаниеКоманды - Структура: // ** Идентификатор - Строка - идентификатор команды. @@ -492,8 +492,8 @@ // Показывает диалог установки расширения, затем выгружает данные дополнительного отчета или обработки. // // Параметры: -// ПараметрыВыгрузки - Структура: -// * Ссылка - ЛюбаяСсылка +// ПараметрыВыгрузки - Структура: +// * Ссылка - ЛюбаяСсылка // Процедура ВыгрузитьВФайл(ПараметрыВыгрузки) Экспорт Перем Адрес; diff --git a/SSL/src/CommonModules/ЖурналРегистрации/Module.bsl b/SSL/src/CommonModules/ЖурналРегистрации/Module.bsl index 47a89ac56..7c415403d 100644 --- a/SSL/src/CommonModules/ЖурналРегистрации/Module.bsl +++ b/SSL/src/CommonModules/ЖурналРегистрации/Module.bsl @@ -82,7 +82,9 @@ // // ПараметрыОтчета - Структура - содержит параметры для чтения событий журнала регистрации. Содержит поля: // * Журнал - ТаблицаЗначений - содержит записи журнала регистрации. -// * ОтборЖурналаНаКлиенте - Структура - настройки отбора для чтения записей журнала регистрации. +// * ОтборЖурналаРегистрации - Структура - настройки отбора для чтения записей журнала регистрации: +// ** ДатаНачала - Дата - дата начала событий (опционально). +// ** ДатаОкончания - Дата - дата окончания событий (опционально). // * КоличествоСобытий - Число - ограничение числа считываемых событий журнала. // * УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы. // * МенеджерВладельца - Произвольный - менеджер объекта, в форме которого отображается журнал @@ -419,7 +421,7 @@ // Преобразование отбора. // // Параметры: -// Отбор - отбор - передаваемый отбор. +// Отбор - Отбор - передаваемый отбор. // Процедура ПреобразованиеОтбора(Отбор, СмещениеВремениСервера) @@ -441,8 +443,8 @@ // Преобразование элемента отбора. // // Параметры: -// Отбор - отбор - передаваемый отбор. -// Отбор - элемент отбора - элемент передаваемого отбора. +// Отбор - Отбор - передаваемый отбор. +// Отбор - ЭлементОтбора - элемент передаваемого отбора. // Процедура ПреобразованиеЭлементаОтбора(Отбор, ЭлементОтбора) diff --git a/SSL/src/CommonModules/ЗаметкиПользователяСлужебный/Module.bsl b/SSL/src/CommonModules/ЗаметкиПользователяСлужебный/Module.bsl index 85b9d8597..05a999715 100644 --- a/SSL/src/CommonModules/ЗаметкиПользователяСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ЗаметкиПользователяСлужебный/Module.bsl @@ -27,10 +27,8 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. -// // Параметры: -// ТекущиеДела - см. ТекущиеДелаСлужебный.ТекущиеДела +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт @@ -77,9 +75,13 @@ КонецПроцедуры // См. ПоискИУдалениеДублей.ТипыИсключаемыеИзВозможныхДублей +// +// Параметры: +// ИсключаемыеТипы - см. ПоискИУдалениеДублей.ТипыИсключаемыеИзВозможныхДублей +// Процедура ПриДобавленииТиповИсключаемыхИзВозможныхДублей(ИсключаемыеТипы) Экспорт - ИсключаемыеТипы.Добавить(Тип("СправочникСсылка.Заметки")); + ИсключаемыеТипы.Добавить(Тип("СправочникСсылка.Заметки")); КонецПроцедуры diff --git a/SSL/src/CommonModules/ЗаполнениеОбъектов/Module.bsl b/SSL/src/CommonModules/ЗаполнениеОбъектов/Module.bsl index 04372557a..1f314cef4 100644 --- a/SSL/src/CommonModules/ЗаполнениеОбъектов/Module.bsl +++ b/SSL/src/CommonModules/ЗаполнениеОбъектов/Module.bsl @@ -51,10 +51,10 @@ // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту. // // Параметры: -// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы -// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники -// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки -// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды +// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы +// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники +// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки +// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды // Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт КомандыЗаполнения = Команды.СкопироватьКолонки(); diff --git a/SSL/src/CommonModules/ЗаполнениеОбъектовПереопределяемый/Module.bsl b/SSL/src/CommonModules/ЗаполнениеОбъектовПереопределяемый/Module.bsl index 561b5ea35..448bc1b7a 100644 --- a/SSL/src/CommonModules/ЗаполнениеОбъектовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ЗаполнениеОбъектовПереопределяемый/Module.bsl @@ -13,7 +13,7 @@ // Синтаксис процедуры ДобавитьКомандыЗаполнения см. в документации. // // Параметры: -// Объекты - Массив - объекты метаданных (тип ОбъектМетаданных) с командами заполнения. +// Объекты - Массив из ОбъектМетаданных - объекты метаданных с командами заполнения. // // Пример: // Объекты.Добавить(Метаданные.Справочники.Организации); @@ -33,7 +33,7 @@ // Настройки внешнего вида: // * Представление - Строка - представление команды в форме. // * Важность - Строка - группа в подменю, в которой следует вывести эту команду. -// Допустимо использовать: "Важное", "Обычное" и "СмТакже". +// Варианты: "Важное", "Обычное" и "СмТакже". // * Порядок - Число - порядок размещения команды в подменю. Используется для настройки под конкретное // рабочее место. // * Картинка - Картинка - картинка команды. @@ -45,47 +45,43 @@ // * ФункциональныеОпции - Строка - имена функциональных опций через запятую, определяющих видимость команды. // * УсловияВидимости - Массив - определяет видимость команды в зависимости от контекста. // Для регистрации условий следует использовать процедуру -// ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(). +// ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды. // Условия объединяются по "И". // * ИзменяетВыбранныеОбъекты - Булево - определяет доступность команды, когда у пользователя нет прав на // изменение объекта. Если Истина, то в описанной выше ситуации кнопка будет недоступна. -// Необязательный. Значение по умолчанию - Истина. +// Значение по умолчанию - Истина. // // Настройки процесса выполнения: // * МножественныйВыбор - Булево -// - Неопределено - если Истина, то команда поддерживает множественный выбор. +// - Неопределено - если Истина (по умолчанию), то команда поддерживает множественный выбор. // В этом случае в параметре выполнения будет передан список ссылок. -// Необязательный. Значение по умолчанию - Истина. // * РежимЗаписи - Строка - действия, связанные с записью объекта, которые выполняются перед обработчиком команды: -// ** "НеЗаписывать" - объект не записывается, а в параметрах обработчика вместо ссылок передается -// вся форма. В этом режиме рекомендуется работать напрямую с формой, -// которая передается в структуре 2-го параметра обработчика команды. -// ** "ЗаписыватьТолькоНовые" - записывать новые объекты. -// ** "Записывать" - записывать новые и модифицированные объекты. -// ** "Проводить" - проводить документы. -// Перед записью и проведением у пользователя запрашивается подтверждение. -// Необязательный. Значение по умолчанию - "Записывать". +// "Записывать" - записывать новые и модифицированные объекты (по умолчанию). +// Перед записью и проведением у пользователя запрашивается подтверждение. +// "НеЗаписывать" - объект не записывается, а в параметрах обработчика вместо ссылок передается +// вся форма. В этом режиме рекомендуется работать напрямую с формой, +// которая передается в структуре 2-го параметра обработчика команды. +// "ЗаписыватьТолькоНовые" - записывать новые объекты. +// "Проводить" - проводить документы. // * ТребуетсяРаботаСФайлами - Булево - если Истина, то в веб-клиенте предлагается -// установить расширение для работы с 1С:Предприятием. -// Необязательный. Значение по умолчанию - Ложь. +// установить расширение для работы с 1С:Предприятием. Значение по умолчанию - Ложь. // // Настройки обработчика: // * Менеджер - Строка - объект, отвечающий за выполнение команды. // * ИмяФормы - Строка - имя формы, которую требуется получить для выполнения команды. // Если Обработчик не указан, то у формы вызывается метод "Открыть". // * ПараметрыФормы - Неопределено -// - ФиксированнаяСтруктура - необязательный. Параметры формы, указанной в ИмяФормы. +// - ФиксированнаяСтруктура - параметры формы, указанной в ИмяФормы. // * Обработчик - Строка - описание процедуры, обрабатывающей основное действие команды. // Формат "<ИмяОбщегоМодуля>.<ИмяПроцедуры>" используется, когда процедура размещена в общем модуле. // Формат "<ИмяПроцедуры>" используется в следующих случаях: // - если ИмяФормы заполнено, то в модуле указанной формы ожидается клиентская процедура; // - если ИмяФормы не заполнено, то в модуле менеджера этого объекта ожидается серверная процедура. -// * ДополнительныеПараметры - ФиксированнаяСтруктура - необязательный. Параметры обработчика, указанного в Обработчик. +// * ДополнительныеПараметры - ФиксированнаяСтруктура - параметры обработчика, указанного в Обработчик. // // Параметры - Структура - сведения о контексте исполнения: // * ИмяФормы - Строка - полное имя формы. -// -// СтандартнаяОбработка - Булево - если установить в Ложь, то событие "ДобавитьКомандыЗаполнения" менеджера объекта не +// СтандартнаяОбработка - Булево - если установить в Ложь, то событие ДобавитьКомандыЗаполнения менеджера объекта не // будет вызвано. // Процедура ПередДобавлениемКомандЗаполнения(КомандыЗаполнения, Параметры, СтандартнаяОбработка) Экспорт diff --git a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектов/Module.bsl b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектов/Module.bsl index 95d5c3c94..e6e5f70fd 100644 --- a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектов/Module.bsl +++ b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектов/Module.bsl @@ -81,25 +81,19 @@ КонецПроцедуры -// Возвращает список реквизитов объекта, по которым установлен запрет редактирования. +// Возвращает список реквизитов и табличных частей объекта, по которым установлен запрет редактирования. // // Параметры: // ИмяОбъекта - Строка - полное имя объекта метаданных. // // Возвращаемое значение: -// Массив - имена реквизитов и табличных частей, для которых установлен запрет редактирования. +// Массив из Строка // Функция БлокируемыеРеквизитыОбъекта(ИмяОбъекта) Экспорт + ОписанияРеквизитов = ЗапретРедактированияРеквизитовОбъектовСлужебный.БлокируемыеРеквизитыОбъектаИЭлементыФормы(ИмяОбъекта); + Результат = Новый Массив; - - Объекты = ЗапретРедактированияРеквизитовОбъектовСлужебный.ОбъектыСЗаблокированнымиРеквизитами(); - Если Объекты[ИмяОбъекта] = Неопределено Тогда - Возврат Результат; - КонецЕсли; - - ОписанияРеквизитов = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ИмяОбъекта).ПолучитьБлокируемыеРеквизитыОбъекта(); - Для Каждого ОписаниеРеквизита Из ОписанияРеквизитов Цикл ЧастиСтроки = СтрРазделить(ОписаниеРеквизита, ";", Ложь); ИмяРеквизита = ЧастиСтроки[0]; diff --git a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовПереопределяемый/Module.bsl b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовПереопределяемый/Module.bsl index ef4b16a08..e0f09a623 100644 --- a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовПереопределяемый/Module.bsl @@ -19,9 +19,9 @@ // имя элемента надписи нужно указать после точки с запятой, как написано выше. // // Параметры: -// Объекты - Соответствие - в качестве ключа указать полное имя объекта метаданных, -// подключенного к подсистеме "Запрет редактирования реквизитов объектов", -// в качестве значения - пустую строку. +// Объекты - Соответствие из КлючИЗначение: +// * Ключ - Строка - полное имя объекта метаданных, подключенного к подсистеме; +// * Значение - Строка - пустая строка. // // Пример: // Объекты.Вставить(Метаданные.Документы.ЗаказПокупателя.ПолноеИмя(), ""); @@ -38,6 +38,18 @@ +КонецПроцедуры + +// Позволяет переопределить список заблокированных реквизитов, заданных в модуле менеджера объекта. +// +// Параметры: +// ИмяОбъектаМетаданных - Строка - например, "Справочник.Файлы". +// ЗаблокированныеРеквизиты - Массив из Строка - строки в формате "ИмяРеквизита[;ИмяЭлементаФормы,...]", +// где ИмяРеквизита - имя реквизита объекта, ИмяЭлементаФормы - +// имя элемента формы, связанного с реквизитом. Например: "Объект.Автор", "ПолеАвтор". +// +Процедура ПриОпределенииЗаблокированныхРеквизитов(ИмяОбъектаМетаданных, ЗаблокированныеРеквизиты) Экспорт + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовСлужебный/Module.bsl b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовСлужебный/Module.bsl index 878985608..874add78c 100644 --- a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовСлужебный/Module.bsl @@ -6,11 +6,6 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Запрет редактирования реквизитов объектов". -// -//////////////////////////////////////////////////////////////////////////////// - #Область СлужебныеПроцедурыИФункции // Настраивает форму объекта для работы подсистемы: @@ -48,7 +43,8 @@ Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты); - БлокируемыеРеквизиты = ОбщегоНазначения.МенеджерОбъектаПоСсылке(Ссылка).ПолучитьБлокируемыеРеквизитыОбъекта(); + МетаданныеОбъекта = Ссылка.Метаданные(); + БлокируемыеРеквизиты = БлокируемыеРеквизитыОбъектаИЭлементыФормы(МетаданныеОбъекта.ПолноеИмя()); ВсеРеквизитыБезПраваРедактирования = Истина; РеквизитыФормы = Неопределено; @@ -56,17 +52,16 @@ ОписаниеРеквизита = Форма.ПараметрыЗапретаРедактированияРеквизитов.Добавить(); - ИнформацияОБР = СтрРазделить(БлокируемыйРеквизит, ";", Ложь); - ОписаниеРеквизита.ИмяРеквизита = ИнформацияОБР[0]; + ИнформацияОБлокируемомРеквизите = СтрРазделить(БлокируемыйРеквизит, ";", Ложь); + ОписаниеРеквизита.ИмяРеквизита = ИнформацияОБлокируемомРеквизите[0]; - Если ИнформацияОБР.Количество() > 1 Тогда - БлокируемыеЭлементы = СтрРазделить(ИнформацияОБР[1], ",", Ложь); + Если ИнформацияОБлокируемомРеквизите.Количество() > 1 Тогда + БлокируемыеЭлементы = СтрРазделить(ИнформацияОБлокируемомРеквизите[1], ",", Ложь); Для Каждого БлокируемыйЭлемент Из БлокируемыеЭлементы Цикл ОписаниеРеквизита.БлокируемыеЭлементы.Добавить(СокрЛП(БлокируемыйЭлемент)); КонецЦикла; КонецЕсли; - МетаданныеОбъекта = Ссылка.Метаданные(); ЭтоПланСчетов = ОбщегоНазначения.ЭтоПланСчетов(МетаданныеОбъекта); ЕстьСтандартныеТабличныеЧасти = ЭтоПланСчетов Или ОбщегоНазначения.ЭтоПланВидовРасчета(МетаданныеОбъекта); @@ -125,7 +120,7 @@ // Добавление команды и кнопки, если есть права. Если Пользователи.РолиДоступны("РедактированиеРеквизитовОбъектов") - И ПравоДоступа("Редактирование", Ссылка.Метаданные()) + И ПравоДоступа("Редактирование", МетаданныеОбъекта) И НЕ ВсеРеквизитыБезПраваРедактирования Тогда // Добавление команды @@ -180,7 +175,7 @@ КонецПроцедуры -Функция ОбъектыСЗаблокированнымиРеквизитами() Экспорт +Функция ОбъектыСЗаблокированнымиРеквизитами() Объекты = Новый Соответствие; ИнтеграцияПодсистемБСП.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами(Объекты); @@ -190,4 +185,29 @@ КонецФункции +// Возвращает список реквизитов и табличных частей объекта, по которым установлен запрет редактирования, +// а также связанные с ними элементы формы. +// +// Параметры: +// ИмяОбъекта - Строка - полное имя объекта метаданных. +// +// Возвращаемое значение: +// Массив из Строка +// +Функция БлокируемыеРеквизитыОбъектаИЭлементыФормы(ИмяОбъекта) Экспорт + + Результат = Новый Массив; + + Объекты = ОбъектыСЗаблокированнымиРеквизитами(); + Если Объекты[ИмяОбъекта] = Неопределено Тогда + Возврат Результат; + КонецЕсли; + + Результат = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ИмяОбъекта).ПолучитьБлокируемыеРеквизитыОбъекта(); + ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииЗаблокированныхРеквизитов(ИмяОбъекта, Результат); + + Возврат Результат; + +КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonModules/ЗащитаПерсональныхДанных/Module.bsl b/SSL/src/CommonModules/ЗащитаПерсональныхДанных/Module.bsl index afddb087d..363bf1173 100644 --- a/SSL/src/CommonModules/ЗащитаПерсональныхДанных/Module.bsl +++ b/SSL/src/CommonModules/ЗащитаПерсональныхДанных/Module.bsl @@ -15,7 +15,7 @@ // - таблица формы, связанная с реквизитом "ОбластиПерсональныхДанных". // // Параметры: -// Форма - ФормаКлиентскогоПриложения - форма настройки системы. +// Форма - ФормаКлиентскогоПриложения - форма настройки системы. // Процедура ПриСозданииФормыНастройкиРегистрацииСобытий(Форма) Экспорт @@ -67,7 +67,7 @@ // имя которой так же - "ОбластиПерсональныхДанных". // // Параметры: -// Форма - ФормаКлиентскогоПриложения - форма настройки системы. +// Форма - ФормаКлиентскогоПриложения - форма настройки системы. // Процедура ПриЗаписиФормыНастройкиРегистрацииСобытий(Форма) Экспорт @@ -213,10 +213,10 @@ // Получение сведений производится в привилегированном режиме. // // Параметры: -// Субъект - ОпределяемыйТип.СубъектПерсональныхДанных - субъект, наличие согласия которого определяется, -// Организация - СправочникСсылка.Организации - оператор персональных данных, которому предоставлено согласие, -// Дата - Дата - дата, на которую запрашивается состояние, если не указана, выбирается последняя запись. -// ИсключаемыйРегистратор - ДокументСсылка.СогласиеНаОбработкуПерсональныхДанных - текущий документ; +// Субъект - ОпределяемыйТип.СубъектПерсональныхДанных - субъект, наличие согласия которого определяется, +// Организация - СправочникСсылка.Организации - оператор персональных данных, которому предоставлено согласие, +// Дата - Дата - дата, на которую запрашивается состояние, если не указана, выбирается последняя запись. +// ИсключаемыйРегистратор - ДокументСсылка.СогласиеНаОбработкуПерсональныхДанных - текущий документ; // передается для того, чтобы при поиске согласия игнорировать выполненные текущим документом движения. // // Возвращаемое значение: @@ -311,9 +311,9 @@ // Скрывает персональные данные субъектов. Состав персональных данных определяется программно. // // Параметры: -// Субъекты - Массив -// - ОпределяемыйТип.СубъектПерсональныхДанных - ссылка или массив ссылок одного типа на субъекты. -// СообщатьОбИсключениях - Булево - признак необходимости информирования пользователя о добавленных исключениях. +// Субъекты - Массив +// - ОпределяемыйТип.СубъектПерсональныхДанных - ссылка или массив ссылок одного типа на субъекты. +// СообщатьОбИсключениях - Булево - признак необходимости информирования пользователя о добавленных исключениях. // Процедура СкрытьПерсональныеДанныеСубъектов(Знач Субъекты, СообщатьОбИсключениях = Ложь) Экспорт @@ -494,9 +494,9 @@ // Определяет наличие скрытых персональных данных в объекте. В качестве объекта может быть передан и сам субъект. // // Параметры: -// Объект - СправочникОбъект -// - ДокументОбъект -// - РегистрСведенийНаборЗаписей - проверяемый объект. Также +// Объект - СправочникОбъект +// - ДокументОбъект +// - РегистрСведенийНаборЗаписей - проверяемый объект. Также // в качестве значения параметра могут быть указаны наборы записей других регистров // или значения типа СправочникСсылка, ДокументСсылка. // @@ -582,7 +582,7 @@ // из записей регистра сведений СогласияНаОбработкуПерсональныхДанных. // // Параметры: -// Объект - ПланОбменаОбъект - узел плана обмена, для которого выполнялось получение данных. +// Объект - ПланОбменаОбъект - узел плана обмена, для которого выполнялось получение данных. // Процедура ПослеЗагрузкиДанных(Объект) Экспорт @@ -785,7 +785,7 @@ // Параметры: -// СписокМакетов - Массив - макеты. +// СписокМакетов - Массив - макеты. // Процедура ПриПодготовкеСпискаМакетовВФорматеОфисныхДокументовФормируемыхНаСервере(СписокМакетов) Экспорт СписокМакетов.Добавить("Документ.СогласиеНаОбработкуПерсональныхДанных.ПФ_DOC_СогласиеНаОбработкуПерсональныхДанных_ru"); @@ -794,9 +794,7 @@ //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// +// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Если Не ОбщегоНазначения.РазделениеВключено() Тогда @@ -817,7 +815,7 @@ КонецПроцедуры // Параметры: -// ТекущиеДела - см. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел.Обработчики +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт @@ -857,9 +855,7 @@ КонецПроцедуры -// Параметры: -// Разделы - см. ДатыЗапретаИзмененияПереопределяемый.ПриЗаполненииРазделовДатЗапретаИзменения.Разделы -// +// См. ДатыЗапретаИзмененияПереопределяемый.ПриЗаполненииРазделовДатЗапретаИзменения. Процедура ПриЗаполненииРазделовДатЗапретаИзменения(Разделы) Экспорт Раздел = Разделы.Добавить(); @@ -891,8 +887,10 @@ МодульВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.СогласияНаОбработкуПерсональныхДанныхИстекающие); КонецПроцедуры +// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий. +// // Параметры: -// Зависимости - см. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий.Настройки +// Зависимости - см. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий.Настройки // Процедура ПриОпределенииНастроекРегламентныхЗаданий(Зависимости) Экспорт @@ -929,12 +927,7 @@ КонецПроцедуры -// Параметры: -// ЭлементДанных - см. СтандартныеПодсистемыСервер.ПриПолученииДанныхОтГлавного.ЭлементДанных -// ПолучениеЭлемента - см. СтандартныеПодсистемыСервер.ПриПолученииДанныхОтГлавного.ПолучениеЭлемента -// ОтправкаНазад - см. СтандартныеПодсистемыСервер.ПриПолученииДанныхОтГлавного.ОтправкаНазад -// Отправитель - см. СтандартныеПодсистемыСервер.ПриПолученииДанныхОтГлавного.Отправитель -// +// См. СтандартныеПодсистемыСервер.ПриПолученииДанныхОтГлавного. Процедура ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель) Экспорт // Стандартная обработка не переопределяется. @@ -995,9 +988,7 @@ КонецПроцедуры -// Параметры: -// ШаблоныЗаданий - см. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.ШаблоныЗаданий -// +// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт ШаблоныЗаданий.Добавить("ПолучениеСубъектовДляСкрытияПерсональныхДанных"); @@ -1005,9 +996,7 @@ КонецПроцедуры -// Параметры: -// Объекты - см. СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании.Объекты -// +// См. СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании. Процедура ПриОпределенииОбъектовСКомандамиСозданияНаОсновании(Объекты) Экспорт Объекты.Добавить(Метаданные.Документы.ОтзывСогласияНаОбработкуПерсональныхДанных); @@ -1015,8 +1004,7 @@ КонецПроцедуры -// Параметры: -// Наборы - см. УправлениеСвойствамиПереопределяемый.ПриПолученииПредопределенныхНаборовСвойств.Наборы +// См. УправлениеСвойствамиПереопределяемый.ПриПолученииПредопределенныхНаборовСвойств. // Процедура ПриПолученииПредопределенныхНаборовСвойств(Наборы) Экспорт @@ -1035,8 +1023,10 @@ // Проверяет необходимость регистрации объекта на узлах плана обмена. // // Параметры: -// ИмяПланаОбмена - Строка - имя плана обмена, для которого будет выполнен механизм регистрации. -// Объект - СправочникОбъект, ДокументОбъект, РегистрСведенийНаборЗаписей и т.п. - проверяемый объект. +// ИмяПланаОбмена - Строка - имя плана обмена, для которого будет выполнен механизм регистрации. +// Объект - СправочникОбъект +// - ДокументОбъект +// - РегистрСведенийНаборЗаписей и т.п. - проверяемый объект. // Функция ПропуститьРегистрациюОбъекта(ИмяПланаОбмена, Объект) Экспорт @@ -1204,20 +1194,23 @@ МетаданныеСубъекта = КлючИЗначение.Значение; // ОбъектМетаданных - ТекстЗапроса = ТекстЗапроса + ?(ПустаяСтрока(ТекстЗапроса),"", " ОБЪЕДИНИТЬ ВСЕ") + " + ФрагментЗапроса = " | |ВЫБРАТЬ | СправочникСубъекта.Ссылка КАК Субъект - |[ПомещениеВоВременнуюТаблицу] + | ,&ПомещениеВоВременнуюТаблицу |ИЗ - | Справочник." + МетаданныеСубъекта.Имя + " КАК СправочникСубъекта + | &МетаданныеСубъекта КАК СправочникСубъекта | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СубъектыДляСкрытияПерсональныхДанных КАК СубъектыДляСкрытияПерсональныхДанных | ПО СправочникСубъекта.Ссылка = СубъектыДляСкрытияПерсональныхДанных.Субъект |ГДЕ | СубъектыДляСкрытияПерсональныхДанных.Субъект ЕСТЬ NULL"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ПомещениеВоВременнуюТаблицу]", + ФрагментЗапроса = СтрЗаменить(ФрагментЗапроса, "&МетаданныеСубъекта", + "Справочник." + МетаданныеСубъекта.Имя); + ФрагментЗапроса = СтрЗаменить(ФрагментЗапроса, ",&ПомещениеВоВременнуюТаблицу", ?(ВоВременнуюТаблицу И ОсновнаяТаблица, "ПОМЕСТИТЬ ВТСубъектыДляСкрытия", "")); + ТекстЗапроса = ТекстЗапроса + ?(ПустаяСтрока(ТекстЗапроса), "", " ОБЪЕДИНИТЬ ВСЕ") + ФрагментЗапроса; ОсновнаяТаблица = Ложь; @@ -1422,7 +1415,7 @@ КонецПроцедуры // Параметры: -// Список - ДинамическийСписок - список субъектов. +// Список - ДинамическийСписок - список субъектов. // Процедура УстановитьУсловноеОформление(Список) @@ -1596,8 +1589,8 @@ // Определяет факт наличия среди переданных в параметре субъектов тех, по которым выполнялось скрытие персональных данных. // // Параметры: -// Субъекты - Массив -// - ОпределяемыйТип.СубъектПерсональныхДанных - ссылка или массив ссылок на субъекты. +// Субъекты - Массив +// - ОпределяемыйТип.СубъектПерсональныхДанных - ссылка или массив ссылок на субъекты. // // Возвращаемое значение: // Булево - признак наличия хотя бы одного субъекта. @@ -1637,9 +1630,9 @@ // был обработан в ходе скрытия персональных данных. // // Параметры: -// Объект - СправочникОбъект -// - ДокументОбъект - объект со ссылкой на субъект в табличной части. -// ПолныеИменаРеквизитов - Массив - полные имена реквизитов, содержащих ссылку на субъект, разделенные запятой: +// Объект - СправочникОбъект +// - ДокументОбъект - объект со ссылкой на субъект в табличной части. +// ПолныеИменаРеквизитов - Массив - полные имена реквизитов, содержащих ссылку на субъект, разделенные запятой: // Например: "ФизическоеЛицо" или "ФизическиеЛица.ФизическоеЛицо". // // Возвращаемое значение: @@ -1696,11 +1689,11 @@ // Возвращает существующие настройки скрытия субъектов. // // Параметры: -// Субъекты - Массив -// - ОпределяемыйТип.СубъектПерсональныхДанных - ссылка или массив ссылок на субъекты. +// Субъекты - Массив +// - ОпределяемыйТип.СубъектПерсональныхДанных - ссылка или массив ссылок на субъекты. // // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - ОпределяемыйТип.СубъектПерсональныхДанных - субъект. // * Значение - см. НастройкиСкрытияСубъектовПоУмолчанию. // @@ -1752,8 +1745,8 @@ // Записывает настройки скрытия субъектов. // // Параметры: -// Субъекты - Массив -// - ОпределяемыйТип.СубъектПерсональныхДанных - ссылка или массив ссылок на субъекты. +// Субъекты - Массив +// - ОпределяемыйТип.СубъектПерсональныхДанных - ссылка или массив ссылок на субъекты. // НастройкиСкрытия - см. НастройкиСкрытияСубъектовПоУмолчанию. // Процедура ЗаписатьНастройкиСкрытияСубъектов(Знач Субъекты, НастройкиСкрытия = Неопределено) diff --git a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхКлиент/Module.bsl b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхКлиент/Module.bsl index 449c8391c..8eb5fb5e1 100644 --- a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхКлиент/Module.bsl @@ -12,7 +12,7 @@ // используется как клиентский обработчик печати (поэтому является функцией, а не процедурой). // // Параметры: -// ПараметрыПечати - Структура - параметры обработки команды печати: +// ПараметрыПечати - Структура - параметры обработки команды печати: // * ОбъектыПечати - Массив - в первом элементе ожидается субъект персональных данных; // * Форма - ФормаКлиентскогоПриложения - форма, из которой выполняется печать. // @@ -27,6 +27,7 @@ Субъект = ПараметрыПечати.ОбъектыПечати[0]; ОткрытьФорму("Документ.СогласиеНаОбработкуПерсональныхДанных.ФормаОбъекта", Новый Структура("Субъект", Субъект), ПараметрыПечати.Форма); + Возврат Неопределено; КонецФункции @@ -136,8 +137,8 @@ #Область СлужебныеПроцедурыИФункции // Параметры: -// ФоновоеЗадание -// ДополнительныеПараметры - см. ДополнительныеПараметрыИзмененияНастроекСкрытияПерсональныхДанных +// ФоновоеЗадание +// ДополнительныеПараметры - см. ДополнительныеПараметрыИзмененияНастроекСкрытияПерсональныхДанных // Процедура ПослеИзмененияНастроекСкрытияПерсональныхДанных(ФоновоеЗадание, ДополнительныеПараметры) Экспорт @@ -187,7 +188,7 @@ КонецПроцедуры // Возвращаемое значение: -// Структура: +// Структура: // * ДоступностьЭлементов - Соответствие // * Форма - ФормаКлиентскогоПриложения // diff --git a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхПереопределяемый/Module.bsl b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхПереопределяемый/Module.bsl index d3a85b046..5ddd80c41 100644 --- a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхПереопределяемый/Module.bsl @@ -48,10 +48,10 @@ // Обеспечивает составление коллекции областей персональных данных. // // Параметры: -// ОбластиПерсональныхДанных - ТаблицаЗначений: -// * Имя - Строка - идентификатор области данных. -// * Представление - Строка - пользовательское представление области данных. -// * Родитель - Строка - идентификатор родительской области данных. +// ОбластиПерсональныхДанных - ТаблицаЗначений: +// * Имя - Строка - идентификатор области данных. +// * Представление - Строка - пользовательское представление области данных. +// * Родитель - Строка - идентификатор родительской области данных. // Процедура ЗаполнитьОбластиПерсональныхДанных(ОбластиПерсональныхДанных) Экспорт @@ -63,8 +63,8 @@ // переданных в качестве параметров, субъектов. // // Параметры: -// СубъектыПерсональныхДанных - ДанныеФормыКоллекция - содержит сведения о субъектах. -// ДатаАктуальности - Дата - дата, на которую нужно заполнить сведения. +// СубъектыПерсональныхДанных - ДанныеФормыКоллекция - содержит сведения о субъектах. +// ДатаАктуальности - Дата - дата, на которую нужно заполнить сведения. // Процедура ДополнитьДанныеСубъектовПерсональныхДанных(СубъектыПерсональныхДанных, ДатаАктуальности) Экспорт @@ -75,9 +75,9 @@ // Вызывается при заполнении формы "Согласие на обработку персональных данных" данными организации. // // Параметры: -// Организация - ОпределяемыйТип.Организация - оператор персональных данных. -// ДанныеОрганизации - Структура - данные об организации (адрес, ФИО ответственного и т.д.). -// ДатаАктуальности - Дата - дата, на которую нужно заполнить сведения. +// Организация - ОпределяемыйТип.Организация - оператор персональных данных. +// ДанныеОрганизации - Структура - данные об организации (адрес, ФИО ответственного и т.д.). +// ДатаАктуальности - Дата - дата, на которую нужно заполнить сведения. // Процедура ДополнитьДанныеОрганизацииОператораПерсональныхДанных(Организация, ДанныеОрганизации, ДатаАктуальности) Экспорт @@ -89,8 +89,8 @@ // Предназначена для заполнения поля ФИО ответственного за обработку ПДн. // // Параметры: -// ФизическоеЛицо - ОпределяемыйТип.ФизическоеЛицо - ответственный за обработку персональных данных. -// ФИО - Строка - ФИО ответственного, которые нужно заполнить. +// ФизическоеЛицо - ОпределяемыйТип.ФизическоеЛицо - ответственный за обработку персональных данных. +// ФИО - Строка - ФИО ответственного, которые нужно заполнить. // Процедура ЗаполнитьФИОФизическогоЛица(ФизическоеЛицо, ФИО) Экспорт diff --git a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхПовтИсп/Module.bsl b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхПовтИсп/Module.bsl index d63301be2..0c23bc5f7 100644 --- a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхПовтИсп/Module.bsl @@ -28,10 +28,10 @@ // Возвращает полные имена объектов метаданных содержащих персональные данные. // // Параметры: -// Нет +// Нет // // Возвращаемое значение -// Массив - массив строк. Например: "РегистрСведений.ДокументыФизическихЛиц". +// Массив - массив строк. Например: "РегистрСведений.ДокументыФизическихЛиц". // Функция ИменаИсточниковПерсональныхДанных() Экспорт @@ -48,10 +48,10 @@ // Возвращает полные имена реквизитов объекта метаданных содержащего персональные данные по его полному имени. // // Параметры: -// ИмяИсточника - Строка - полное имя источника метаданных. Например: "Справочник.ФизическиеЛица". +// ИмяИсточника - Строка - полное имя источника метаданных. Например: "Справочник.ФизическиеЛица". // // Возвращаемое значение -// Массив - массив строк. Например: "ФизическоеЛицо" или "ФизическиеЛица.ФизическоеЛицо". +// Массив - массив строк. Например: "ФизическоеЛицо" или "ФизическиеЛица.ФизическоеЛицо". // Функция ИменаРеквизитовИсточникаСодержащихСубъект(ИмяИсточника) Экспорт @@ -163,12 +163,12 @@ // Возвращает имена полей регистрации и полей доступа сведений о персональных данных объекта по его полному имени. // // Параметры: -// ИмяОбъекта - Строка - полное имя объекта метаданных. Например: "Справочник.ФизическиеЛица". +// ИмяОбъекта - Строка - полное имя объекта метаданных. Например: "Справочник.ФизическиеЛица". // // Возвращаемое значение -// Структура: -/// ПоляРегистрации - Массив - массив строк. Например: "ФизическоеЛицо" или "ФизическиеЛица.ФизическоеЛицо". -/// ПоляДоступа - Массив - массив строк. Например: "ИНН" или "ФизическиеЛица.ИНН". +// Структура: +/// ПоляРегистрации - Массив - массив строк. Например: "ФизическоеЛицо" или "ФизическиеЛица.ФизическоеЛицо". +/// ПоляДоступа - Массив - массив строк. Например: "ИНН" или "ФизическиеЛица.ИНН". // Функция ИменаПолейСведенийОПерсональныхДанныхОбъекта(ИмяОбъекта) @@ -223,9 +223,9 @@ КонецФункции // Возвращаемое значение: -// ФиксированноеСоответствие: -// * Ключ - Тип -// * Значение - ОбъектМетаданных +// ФиксированноеСоответствие из КлючИЗначение: +// * Ключ - Тип +// * Значение - ОбъектМетаданных // Функция МетаданныеПоТипамСубъекта() Экспорт @@ -241,7 +241,7 @@ КонецФункции // Возвращаемое значение: -// ФиксированныйМассив - типы субъектов персональных данных. +// ФиксированныйМассив - типы субъектов персональных данных. // Функция ТипыСубъектов() Экспорт diff --git a/SSL/src/CommonModules/ЗаявлениеНаСертификатПереопределяемый/Module.bsl b/SSL/src/CommonModules/ЗаявлениеНаСертификатПереопределяемый/Module.bsl index 8f171a60b..9e89b82f2 100644 --- a/SSL/src/CommonModules/ЗаявлениеНаСертификатПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ЗаявлениеНаСертификатПереопределяемый/Module.bsl @@ -13,10 +13,10 @@ // Параметры: // Параметры - Структура: // -// * Организация - СправочникСсылка.Организации - организация, которую нужно заполнить. +// * Организация - ОпределяемыйТип.Организация - организация, которую нужно заполнить. // Если организация уже заполнена, требуется перезаполнить ее свойства - например, // при повтором вызове, когда пользователь выбрал другую организацию. -// - Неопределено - если ОпределяемыйТип.Организации не настроен. +// - Неопределено - если ОпределяемыйТип.Организация не настроен. // Пользователю недоступен выбор организации. // // * ЭтоИндивидуальныйПредприниматель - Булево - (возвращаемое значение): @@ -68,8 +68,8 @@ // // Параметры: // Параметры - Структура: -// * Организация - СправочникСсылка.Организации - выбранная организация, на которую оформляется сертификат. -// - Неопределено - если ОпределяемыйТип.Организации не настроен. +// * Организация - ОпределяемыйТип.Организация - выбранная организация, на которую оформляется сертификат. +// - Неопределено - если ОпределяемыйТип.Организация не настроен. // // * ТипВладельца - ОписаниеТипов - (возвращаемое значение) содержит ссылочные типы, из которых можно сделать выбор. // - Неопределено - (возвращаемое значение) выбор владельца не поддерживается. @@ -160,8 +160,8 @@ // // Параметры: // Параметры - Структура: -// * Организация - СправочникСсылка.Организации - выбранная организация, на которую оформляется сертификат. -// - Неопределено - если ОпределяемыйТип.Организации не настроен. +// * Организация - ОпределяемыйТип.Организация - выбранная организация, на которую оформляется сертификат. +// - Неопределено - если ОпределяемыйТип.Организация не настроен. // // * ТипРуководителя - ОписаниеТипов - (возвращаемое значение) содержит ссылочные типы, из которых можно сделать выбор. // - Неопределено - (возвращаемое значение) выбор партнера не поддерживается. @@ -190,8 +190,8 @@ // // Параметры: // Параметры - Структура: -// * Организация - СправочникСсылка.Организации - выбранная организация, на которую оформляется сертификат. -// - Неопределено - если ОпределяемыйТип.Организации не настроен. +// * Организация - ОпределяемыйТип.Организация - выбранная организация, на которую оформляется сертификат. +// - Неопределено - если ОпределяемыйТип.Организация не настроен. // // * ТипПартнера - ОписаниеТипов - содержит ссылочные типы из которых можно сделать выбор. // - Неопределено - выбор партнера не поддерживается. diff --git a/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl b/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl index d7b913eaf..f02d87fdb 100644 --- a/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl +++ b/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl @@ -8,7 +8,156 @@ #Область ПрограммныйИнтерфейс +// Определяет события, на которые могут подписаться другие библиотеки. +// +// Возвращаемое значение: +// Структура - ключами свойств структуры являются имена событий, на которые +// могут быть подписаны библиотеки. +// +Функция СобытияБСП() Экспорт + + События = Новый Структура; + + // БазоваяФункциональность + События.Вставить("ПриДобавленииПодсистем", Ложь); + События.Вставить("ПриУстановкеПараметровСеанса", Ложь); + События.Вставить("ПриДобавленииОбработчиковУстановкиПараметровСеанса", Ложь); + События.Вставить("ПриДобавленииИсключенийПоискаСсылок", Ложь); + События.Вставить("ПриДобавленииПереименованийОбъектовМетаданных", Ложь); + События.Вставить("ПриЗаполненииВсехПараметровРаботыРасширений", Ложь); + События.Вставить("ПриОчисткеВсехПараметровРаботыРасширений", Ложь); + События.Вставить("ПриОтправкеДанныхГлавному", Ложь); + События.Вставить("ПриОтправкеДанныхПодчиненному", Ложь); + События.Вставить("ПриПолученииДанныхОтГлавного", Ложь); + События.Вставить("ПриПолученииДанныхОтПодчиненного", Ложь); + События.Вставить("ПослеПолученияДанных", Ложь); + События.Вставить("ПриВключенииРазделенияПоОбластямДанных", Ложь); + События.Вставить("ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов", Ложь); + События.Вставить("ПриДобавленииПараметровРаботыКлиентаПриЗапуске", Ложь); + События.Вставить("ПриДобавленииПараметровРаботыКлиента", Ложь); + События.Вставить("ПередЗапускомПрограммы", Ложь); + + // ВариантыОтчетов + События.Вставить("ПриОпределенииНастроекВариантовОтчетов", Ложь); + События.Вставить("ПриОпределенииРазделовСВариантамиОтчетов", Ложь); + События.Вставить("ПриНастройкеВариантовОтчетов", Ложь); + События.Вставить("ПриИзмененииКлючейВариантовОтчетов", Ложь); + События.Вставить("ПриОпределенииОбъектовСКомандамиОтчетов", Ложь); + События.Вставить("ПередДобавлениемКомандОтчетов", Ложь); + События.Вставить("ПриДополненииСвязиОбъектовМетаданных", Ложь); + События.Вставить("ПриОпределенииПараметровВыбораВариантыОтчетов", Ложь); + События.Вставить("ПриСозданииНаСервереВариантыОтчетов", Ложь); + События.Вставить("ПередЗагрузкойВариантаНаСервере", Ложь); + + // ГрупповоеИзменениеОбъектов + События.Вставить("ПриОпределенииОбъектовСРедактируемымиРеквизитами", Ложь); + + // ДатыЗапретаИзменений + События.Вставить("ПриЗаполненииРазделовДатЗапретаИзменения", Ложь); + События.Вставить("ПриЗаполненииИсточниковДанныхДляПроверкиЗапретаИзменения", Ложь); + + // ДополнительныеОтчетыИОбработки + События.Вставить("ПриУстановкеРежимаПодключенияДополнительногоОтчетаИлиОбработкиВОбластиДанных", Ложь); + + // ЗагрузкаДанныхИзФайла + События.Вставить("ПриОпределенииСправочниковДляЗагрузкиДанных", Ложь); + + // ЗапретРедактированияРеквизитовОбъектов + События.Вставить("ПриОпределенииОбъектовСЗаблокированнымиРеквизитами", Ложь); + + // ИнтерфейсOData + События.Вставить("ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузкиOData", Ложь); + + // КонтрольВеденияУчета + События.Вставить("ПриОпределенииПроверок", Ложь); + + // НапоминанияПользователя + События.Вставить("ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания", Ложь); + + // ОбменДанными + События.Вставить("ПриНастройкеПодчиненногоУзлаРИБ", Ложь); + + //ОбновлениеВерсииИБ + События.Вставить("ПриДобавленииОбработчиковОбновления", Ложь); // Для обратной совместимости с БТС 1.2.2. + События.Вставить("ПослеОбновленияИнформационнойБазы", Ложь); + События.Вставить("ПриПолученииПриоритетаОбновления", Ложь); + + // Печать + События.Вставить("ПриПодготовкеСпискаМакетовВФорматеОфисныхДокументовФормируемыхНаСервере", Ложь); + События.Вставить("ПриОпределенииОбъектовСКомандамиПечати", Ложь); + События.Вставить("ПередДобавлениемКомандПечати", Ложь); + События.Вставить("ПриПолученииНастроекСпискаКомандПечати", Ложь); + События.Вставить("ПриПечати", Ложь); + События.Вставить("ПередОтправкойПоПочте", Ложь); + События.Вставить("ПриПолученииПодписейИПечатей", Ложь); + События.Вставить("ПечатьДокументовПриСозданииНаСервере", Ложь); + События.Вставить("ПечатьДокументовПриЗагрузкеДанныхИзНастроекНаСервере", Ложь); + События.Вставить("ПечатьДокументовПриСохраненииДанныхВНастройкахНаСервере", Ложь); + События.Вставить("ПечатьДокументовПриВыполненииКоманды", Ложь); + + // ПодключаемыеКоманды + События.Вставить("ПриОпределенииВидовПодключаемыхКоманд", Ложь); + События.Вставить("ПриОпределенииСоставаНастроекПодключаемыхОбъектов", Ложь); + События.Вставить("ПриОпределенииКомандПодключенныхКОбъекту", Ложь); + События.Вставить("ПриОпределенииОбъектовСКомандамиСозданияНаОсновании", Ложь); + События.Вставить("ПередДобавлениемКомандСозданияНаОсновании", Ложь); + События.Вставить("ПриДобавленииКомандСозданияНаОсновании", Ложь); + + // Пользователи + События.Вставить("ПриОпределенииНастроек", Ложь); + События.Вставить("ПриОпределенииНазначенияРолей", Ложь); + События.Вставить("ПриОпределенииДействийВФорме", Ложь); + События.Вставить("ПриПолученииПрочихНастроек", Ложь); + События.Вставить("ПриСохраненииПрочихНастроек", Ложь); + События.Вставить("ПриУдаленииПрочихНастроек", Ложь); + События.Вставить("ПриЗавершенииОбработкиПользователяИБ", Ложь); + + //ПрофилиБезопасности + События.Вставить("ПриПроверкеВозможностиНастройкиПрофилейБезопасности", Ложь); + События.Вставить("ПриЗапросеРазрешенийНаИспользованиеВнешнихРесурсов", Ложь); + События.Вставить("ПриЗапросеСозданияПрофиляБезопасности", Ложь); + События.Вставить("ПриЗапросеУдаленияПрофиляБезопасности", Ложь); + События.Вставить("ПриПодключенииВнешнегоМодуля", Ложь); + События.Вставить("ПриВключенииИспользованияПрофилейБезопасности", Ложь); + События.Вставить("ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам", Ложь); + + // РаботаСФайлами + События.Вставить("ПриОпределенииОбъектовИсключенияСинхронизацииФайлов", Ложь); + + // РегламентныеЗадания + События.Вставить("ПриОпределенииНастроекРегламентныхЗаданий", Ложь); + + // Свойства + События.Вставить("ПриПолученииПредопределенныхНаборовСвойств", Ложь); + + // ТекущиеДела + События.Вставить("ПриОпределенииОбработчиковТекущихДел", Ложь); + События.Вставить("ПриЗаполненииСпискаТекущихДел", Ложь); + События.Вставить("ПриОпределенииПорядкаРазделовКомандногоИнтерфейса", Ложь); + События.Вставить("ПриОтключенииТекущихДел", Ложь); + События.Вставить("ПриОпределенииНастроекТекущихДел", Ложь); + События.Вставить("ПриУстановкеОбщихПараметровЗапросов", Ложь); + События.Вставить("ПриСозданииНаСервереТекущиеДела", Ложь); + События.Вставить("ПередЗагрузкойДанныхИзНастроекНаСервереТекущиеДела", Ложь); + + // УправлениеДоступом + События.Вставить("ПриЗаполненииВидовДоступа", Ложь); + События.Вставить("ПриЗаполненииСписковСОграничениемДоступа", Ложь); + События.Вставить("ПриЗаполненииПоставляемыхПрофилейГруппДоступа", Ложь); + События.Вставить("ПриЗаполненииЗависимостейПравДоступа", Ложь); + События.Вставить("ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов", Ложь); + События.Вставить("ПриЗаполненииИспользованияВидаДоступа", Ложь); + События.Вставить("ПриЗаполненииВидовОграниченийПравОбъектовМетаданных", Ложь); + + // ЦентрМониторинга + События.Вставить("ПриСбореПоказателейСтатистикиКонфигурации", Ложь); + + Возврат События; + +КонецФункции + #Область ОбработчикиСобытийБТС + // Обработка программных событий, возникающих в подсистемах БТС. // Только для вызовов из библиотеки БТС в БСП. @@ -338,7 +487,12 @@ КонецПроцедуры -// См. РаботаВМоделиСервиса.ПсевдонимПользователяИнформационнойБазы. +// Позволяет переопределить результат функции РаботаВМоделиСервиса.ПсевдонимПользователяИнформационнойБазы. +// +// Параметры: +// ИдентификаторПользователя - УникальныйИдентификатор - идентификатор пользователя. +// Псевдоним - Строка - псевдоним пользователя информационной базы для отображения в интерфейсе. +// Процедура ПриОпределенииПсевдонимаПользователя(ИдентификаторПользователя, Псевдоним) Экспорт Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда @@ -417,7 +571,7 @@ МодульУдалениеПомеченныхОбъектовСлужебный.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.УправлениеДоступомВМоделиСервиса") Тогда МодульУправлениеДоступомСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебныйВМоделиСервиса"); МодульУправлениеДоступомСлужебныйВМоделиСервиса.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); КонецЕсли; @@ -590,14 +744,12 @@ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Банки") Тогда МодульЗагрузкаКлассификатораБанков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗагрузкаКлассификатораБанков"); - МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами"); - МодульЗагрузкаКлассификатораБанков.ПриДобавленииКлассификаторов(Классификаторы, МодульРаботаСКлассификаторами.ОписаниеКлассификатора()); + МодульЗагрузкаКлассификатораБанков.ПриДобавленииКлассификаторов(Классификаторы); КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда МодульЗагрузкаКурсовВалют = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗагрузкаКурсовВалют"); - МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами"); - МодульЗагрузкаКурсовВалют.ПриДобавленииКлассификаторов(Классификаторы, МодульРаботаСКлассификаторами.ОписаниеКлассификатора()); + МодульЗагрузкаКурсовВалют.ПриДобавленииКлассификаторов(Классификаторы); КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КалендарныеГрафики") Тогда @@ -608,8 +760,7 @@ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") И Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") <> Неопределено Тогда МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами"); - МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами"); - МодульРаботаСАдресами.ПриДобавленииКлассификаторов(Классификаторы, МодульРаботаСКлассификаторами.ОписаниеКлассификатора()); + МодульРаботаСАдресами.ПриДобавленииКлассификаторов(Классификаторы); КонецЕсли; КонецПроцедуры @@ -688,7 +839,9 @@ КонецПроцедуры -// См. СтандартныеПодсистемыСервер.УстановкаПараметровСеанса. +// Параметры: +// Параметры - см. СтандартныеПодсистемыСервер.УстановкаПараметровСеанса.ИменаПараметровСеанса. +// Процедура ПриУстановкеПараметровСеанса(Параметры) Экспорт Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриУстановкеПараметровСеанса Тогда @@ -767,10 +920,6 @@ КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. -// -// Параметры: -// ИсключенияПоискаСсылок - см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.ИсключенияПоискаСсылок -// Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.БизнесПроцессыИЗадачи") Тогда @@ -844,11 +993,7 @@ КонецПроцедуры -// См. ОбщегоНазначенияПереопределяемый.ПриОпределенииПодчиненныхОбъектов. -// -// Параметры: -// ПодчиненныеОбъекты - см. ОбщегоНазначенияПереопределяемый.ПриОпределенииПодчиненныхОбъектов -// +// См. ОбщегоНазначенияПереопределяемый.ПриОпределенииПодчиненныхОбъектов Процедура ПриОпределенииПодчиненныхОбъектов(ПодчиненныеОбъекты) Экспорт Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда @@ -909,8 +1054,8 @@ КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.НастройкиПрограммы") Тогда - МодульОбработкиПанельАдминистрированияБСП = ОбщегоНазначения.ОбщийМодуль("Обработки.ПанельАдминистрированияБСП"); - МодульОбработкиПанельАдминистрированияБСП.ПриДобавленииПереименованийОбъектовМетаданных(Итог); + МодульПанельАдминистрированияБСП = ОбщегоНазначения.ОбщийМодуль("Обработки.ПанельАдминистрированияБСП"); + МодульПанельАдминистрированияБСП.ПриДобавленииПереименованийОбъектовМетаданных(Итог); КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда @@ -1283,26 +1428,26 @@ КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов. -Процедура ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(Знач СтруктураПоддерживаемыхВерсий) Экспорт +Процедура ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(ПоддерживаемыеВерсии) Экспорт Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов Тогда МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); - МодульИнтеграцияПодсистемБТС.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(СтруктураПоддерживаемыхВерсий); + МодульИнтеграцияПодсистемБТС.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(ПоддерживаемыеВерсии); КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда МодульОбменДаннымиСервер = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиСервер"); - МодульОбменДаннымиСервер.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(СтруктураПоддерживаемыхВерсий); + МодульОбменДаннымиСервер.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(ПоддерживаемыеВерсии); КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); - МодульОбменДаннымиВМоделиСервиса.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(СтруктураПоддерживаемыхВерсий); + МодульОбменДаннымиВМоделиСервиса.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(ПоддерживаемыеВерсии); КонецЕсли; Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов Тогда МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); - МодульИнтеграцияПодсистемБИП.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(СтруктураПоддерживаемыхВерсий); + МодульИнтеграцияПодсистемБИП.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(ПоддерживаемыеВерсии); КонецЕсли; КонецПроцедуры @@ -1506,6 +1651,8 @@ МодульБизнесПроцессыИЗадачиСервер.ПриОпределенииОбъектовСНачальнымЗаполнением(Объекты); КонецЕсли; + ПользователиСлужебный.ПриОпределенииОбъектовСНачальнымЗаполнением(Объекты); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда МодульУправлениеКонтактнойИнформациейСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформациейСлужебный"); МодульУправлениеКонтактнойИнформациейСлужебный.ПриОпределенииОбъектовСНачальнымЗаполнением(Объекты); @@ -1526,6 +1673,11 @@ МодульРассылкаОтчетов.ПриОпределенииОбъектовСНачальнымЗаполнением(Объекты); КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный"); + МодульУправлениеДоступомСлужебный.ПриОпределенииОбъектовСНачальнымЗаполнением(Объекты); + КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда МодульУчетОригиналовПервичныхДокументов = ОбщегоНазначения.ОбщийМодуль("УчетОригиналовПервичныхДокументов"); МодульУчетОригиналовПервичныхДокументов.ПриОпределенииОбъектовСНачальнымЗаполнением(Объекты); @@ -1953,11 +2105,11 @@ // отчета или обработки в область данных. // // Параметры: -// ДополнительнаяОбработка - СправочникОбъект.ДополнительныеОтчетыИОбработки, элемент справочника, -// который записывается пользователем. -// Результат - Булево - в этот параметр в данной процедуре устанавливается флаг наличия права, -// СтандартнаяОбработка - Булево - в этот параметр в данной процедуре устанавливается флаг выполнения -// стандартной обработки проверки права. +// ДополнительнаяОбработка - СправочникОбъект.ДополнительныеОтчетыИОбработки - элемент справочника, +// который записывается пользователем. +// Результат - Булево - в этот параметр в данной процедуре устанавливается флаг наличия права, +// СтандартнаяОбработка - Булево - в этот параметр в данной процедуре устанавливается флаг выполнения +// стандартной обработки проверки права. // Процедура ПриПроверкеПраваДобавления(Знач ДополнительнаяОбработка, Результат, СтандартнаяОбработка) Экспорт @@ -2029,7 +2181,7 @@ // в текущей модели информационной базы. // // Параметры: -// НедоступныеВидыПубликации - Массив Из Строка. +// НедоступныеВидыПубликации - Массив из Строка // Процедура ПриЗаполненииНедоступныхВидовПубликации(Знач НедоступныеВидыПубликации) Экспорт @@ -2052,7 +2204,7 @@ // // Параметры: // Источник - СправочникОбъект.ДополнительныеОтчетыИОбработки, -// Отказ - булево - флаг отказа от выполнения записи элемента справочника. +// Отказ - Булево - флаг отказа от выполнения записи элемента справочника. // Процедура ПередЗаписьюДополнительнойОбработки(Источник, Отказ) Экспорт @@ -2072,7 +2224,7 @@ // // Параметры: // Источник - СправочникОбъект.ДополнительныеОтчетыИОбработки, -// Отказ - булево - флаг отказа от выполнения удаления элемента справочника из информационной базы. +// Отказ - Булево - флаг отказа от выполнения удаления элемента справочника из информационной базы. // Процедура ПередУдалениемДополнительнойОбработки(Источник, Отказ) Экспорт @@ -2118,9 +2270,9 @@ // Параметры: // Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки, // СтандартнаяОбработка - Булево - флаг необходимости выполнения стандартной обработки подключения -// внешней обработки, -// Результат - ВнешняяОбработкаОбъект -// - ВнешнийОтчетОбъект - объект подключенного внешнего отчета или +// внешней обработки. +// Результат - ВнешняяОбработка +// - ВнешнийОтчет - объект подключенного внешнего отчета или // обработки (в том случае, если в обработчике для параметра СтандартнаяОбработка было установлено значение Ложь). // Процедура ПриСозданииВнешнейОбработки(Знач Ссылка, СтандартнаяОбработка, Результат) Экспорт @@ -2260,11 +2412,7 @@ #Область ИнтерфейсOData -// Формирует массив метаданных, исключаемых из загрузки/выгрузки. -// -// Возвращаемое значение: -// ФиксированныйМассив - массив метаданных. -// +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузкиOData(ИсключаемыеТипы) Экспорт ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(ИсключаемыеТипы); @@ -2472,6 +2620,11 @@ МодульКонтрольВеденияУчетаСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики); КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриДобавленииОбработчиковОбновления(Обработчики); + КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда МодульОбменДаннымиСервер = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиСервер"); МодульОбменДаннымиСервер.ПриДобавленииОбработчиковОбновления(Обработчики); @@ -2615,10 +2768,10 @@ // Например, БТС может переопределить приоритет обновления для каждой области данных в режиме сервиса. // // Параметры: -// Приоритет - Строка - новое значение приоритета обновления (возвращаемое). Возвращать можно следующие значения: -// * "РаботаПользователей" - приоритет на обработку пользователей (в один поток); -// * "ОбработкаДанных" - приоритет на обработку данных (в несколько потоков); -// * Любое другое - использовать приоритет из константы СведенияОбОбновленииИБ (не переопределять). +// Приоритет - Строка - новое значение приоритета обновления (возвращаемое): +// "РаботаПользователей" - приоритет на обработку пользователей (в один поток); +// "ОбработкаДанных" - приоритет на обработку данных (в несколько потоков); +// Любое другое - использовать приоритет из константы СведенияОбОбновленииИБ (не переопределять). // Процедура ПриПолученииПриоритетаОбновления(Приоритет) Экспорт @@ -2865,8 +3018,8 @@ КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УдалениеПомеченныхОбъектов") Тогда - МодульУдалениеПомеченныхОбъектов = ОбщегоНазначения.ОбщийМодуль("УдалениеПомеченныхОбъектовСлужебный"); - МодульУдалениеПомеченныхОбъектов.ПриОпределенииВидовПодключаемыхКоманд(ВидыПодключаемыхКоманд); + МодульУдалениеПомеченныхОбъектовСлужебный = ОбщегоНазначения.ОбщийМодуль("УдалениеПомеченныхОбъектовСлужебный"); + МодульУдалениеПомеченныхОбъектовСлужебный.ПриОпределенииВидовПодключаемыхКоманд(ВидыПодключаемыхКоманд); КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СтруктураПодчиненности") Тогда @@ -2913,10 +3066,10 @@ // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту. // // Параметры: -// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы -// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники -// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки -// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды +// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы +// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники +// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки +// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды // Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт @@ -2961,8 +3114,8 @@ КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УдалениеПомеченныхОбъектов") Тогда - МодульУдалениеПомеченныхОбъектов = ОбщегоНазначения.ОбщийМодуль("УдалениеПомеченныхОбъектовСлужебный"); - МодульУдалениеПомеченныхОбъектов.ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды); + МодульУдалениеПомеченныхОбъектовСлужебный = ОбщегоНазначения.ОбщийМодуль("УдалениеПомеченныхОбъектовСлужебный"); + МодульУдалениеПомеченныхОбъектовСлужебный.ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды); КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СтруктураПодчиненности") Тогда @@ -3320,7 +3473,7 @@ // Вызывается при авторизации нового пользователя информационной базы. // // Параметры: -// ПользовательИБ - ПользовательИнформационнойБазы, текущий пользователь информационной базы, +// ПользовательИБ - ПользовательИнформационнойБазы - текущий пользователь информационной базы, // СтандартнаяОбработка - Булево - значение может быть установлено внутри обработчика, в этом случае // стандартная обработка авторизации нового пользователя ИБ выполняться не будет. // @@ -3429,11 +3582,12 @@ КонецПроцедуры -// Доопределяет действия при создании администратора в подсистеме Пользователи. -// +// Доопределяет действия при создании администратора в подсистеме Пользователи, а также +// при входе пользователя с ролями администратора, которые могли быть назначены в конфигураторе. +// // Параметры: -// Администратор - СправочникСсылка.Пользователи (изменение объекта запрещено). -// Уточнение - Строка - поясняет при каких условиях был создан администратор. +// Администратор - СправочникСсылка.Пользователи +// Уточнение - Строка - поясняет, при каких условиях был создан администратор. // Процедура ПриСозданииАдминистратора(Администратор, Уточнение) Экспорт @@ -3468,15 +3622,13 @@ // связей в регистре СоставыГруппПользователей. // // Параметры: -// УчастникиИзменений - Массив значений типов: -// - СправочникСсылка.Пользователи. -// - СправочникСсылка.ВнешниеПользователи. -// Пользователи которые участвовали в изменении состава групп. +// УчастникиИзменений - Массив из СправочникСсылка.Пользователи +// - Массив из СправочникСсылка.ВнешниеПользователи - +// пользователи, которые участвовали в изменении состава групп. // -// ИзмененныеГруппы - Массив значений типов: -// - СправочникСсылка.ГруппыПользователей. -// - СправочникСсылка.ГруппыВнешнихПользователей. -// Группы, состав которых был изменен. +// ИзмененныеГруппы - Массив из СправочникСсылка.ГруппыПользователей +// - Массив из СправочникСсылка.ГруппыВнешнихПользователей - +// группы, состав которых был изменен. // Процедура ПослеОбновленияСоставовГруппПользователей(УчастникиИзменений, ИзмененныеГруппы) Экспорт @@ -3496,7 +3648,7 @@ // // Параметры: // ВнешнийПользователь - СправочникСсылка.ВнешниеПользователи - внешний пользователь. -// СтарыйОбъектАвторизации - NULL - при добавлении внешнего пользователя. +// СтарыйОбъектАвторизации - Null - при добавлении внешнего пользователя. // - ОпределяемыйТип.ВнешнийПользователь - тип объекта авторизации. // НовыйОбъектАвторизации - ОпределяемыйТип.ВнешнийПользователь - тип объекта авторизации. // @@ -3680,10 +3832,6 @@ КонецПроцедуры // См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. -// -// Параметры: -// ЗапросыРазрешений - см. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам.ЗапросыРазрешений -// Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда @@ -4036,7 +4184,9 @@ КонецПроцедуры -// См. ТекущиеДелаСлужебный.СформироватьСписокТекущихДелПользователя. +// Параметры: +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. +// Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииСпискаТекущихДел Тогда @@ -4422,12 +4572,12 @@ // исполнителей задач, которые соответствуют ключам адресации // (РольИсполнителя + ОсновнойОбъектАдресации + ДополнительныйОбъектАдресации). // -// При изменении состава дополнительных групп пользователей, необходимо вызвать +// При изменении состава дополнительных групп пользователей, необходимо вызвать // процедуру ОбновитьПользователейГруппИсполнителей в модуле УправлениеДоступом, // чтобы применить изменения к внутренним данным подсистемы. // // Параметры: -// МенеджерВременныхТаблиц - МенеджерВременныхТаблиц, в который можно поместить таблицу: +// МенеджерВременныхТаблиц - МенеджерВременныхТаблиц - в который можно поместить таблицу // ТаблицаГруппИсполнителей с полями: // ГруппаИсполнителей - Например, // СправочникСсылка.ГруппыИсполнителейЗадач. @@ -4520,156 +4670,4 @@ #КонецОбласти -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Определяет события, на которые могут подписаться другие библиотеки. -// -// Возвращаемое значение: -// События - Структура - ключами свойств структуры являются имена событий, на которые -// могут быть подписаны библиотеки. -// -Функция СобытияБСП() Экспорт - - События = Новый Структура; - - // БазоваяФункциональность - События.Вставить("ПриДобавленииПодсистем", Ложь); - События.Вставить("ПриУстановкеПараметровСеанса", Ложь); - События.Вставить("ПриДобавленииОбработчиковУстановкиПараметровСеанса", Ложь); - События.Вставить("ПриДобавленииИсключенийПоискаСсылок", Ложь); - События.Вставить("ПриДобавленииПереименованийОбъектовМетаданных", Ложь); - События.Вставить("ПриЗаполненииВсехПараметровРаботыРасширений", Ложь); - События.Вставить("ПриОчисткеВсехПараметровРаботыРасширений", Ложь); - События.Вставить("ПриОтправкеДанныхГлавному", Ложь); - События.Вставить("ПриОтправкеДанныхПодчиненному", Ложь); - События.Вставить("ПриПолученииДанныхОтГлавного", Ложь); - События.Вставить("ПриПолученииДанныхОтПодчиненного", Ложь); - События.Вставить("ПослеПолученияДанных", Ложь); - События.Вставить("ПриВключенииРазделенияПоОбластямДанных", Ложь); - События.Вставить("ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов", Ложь); - События.Вставить("ПриДобавленииПараметровРаботыКлиентаПриЗапуске", Ложь); - События.Вставить("ПриДобавленииПараметровРаботыКлиента", Ложь); - События.Вставить("ПередЗапускомПрограммы", Ложь); - - // ВариантыОтчетов - События.Вставить("ПриОпределенииНастроекВариантовОтчетов", Ложь); - События.Вставить("ПриОпределенииРазделовСВариантамиОтчетов", Ложь); - События.Вставить("ПриНастройкеВариантовОтчетов", Ложь); - События.Вставить("ПриИзмененииКлючейВариантовОтчетов", Ложь); - События.Вставить("ПриОпределенииОбъектовСКомандамиОтчетов", Ложь); - События.Вставить("ПередДобавлениемКомандОтчетов", Ложь); - События.Вставить("ПриДополненииСвязиОбъектовМетаданных", Ложь); - События.Вставить("ПриОпределенииПараметровВыбораВариантыОтчетов", Ложь); - События.Вставить("ПриСозданииНаСервереВариантыОтчетов", Ложь); - События.Вставить("ПередЗагрузкойВариантаНаСервере", Ложь); - - // ГрупповоеИзменениеОбъектов - События.Вставить("ПриОпределенииОбъектовСРедактируемымиРеквизитами", Ложь); - - // ДатыЗапретаИзменений - События.Вставить("ПриЗаполненииРазделовДатЗапретаИзменения", Ложь); - События.Вставить("ПриЗаполненииИсточниковДанныхДляПроверкиЗапретаИзменения", Ложь); - - // ДополнительныеОтчетыИОбработки - События.Вставить("ПриУстановкеРежимаПодключенияДополнительногоОтчетаИлиОбработкиВОбластиДанных", Ложь); - - // ЗагрузкаДанныхИзФайла - События.Вставить("ПриОпределенииСправочниковДляЗагрузкиДанных", Ложь); - - // ЗапретРедактированияРеквизитовОбъектов - События.Вставить("ПриОпределенииОбъектовСЗаблокированнымиРеквизитами", Ложь); - - // ИнтерфейсOData - События.Вставить("ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузкиOData", Ложь); - - // КонтрольВеденияУчета - События.Вставить("ПриОпределенииПроверок", Ложь); - - // НапоминанияПользователя - События.Вставить("ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания", Ложь); - - // ОбменДанными - События.Вставить("ПриНастройкеПодчиненногоУзлаРИБ", Ложь); - - //ОбновлениеВерсииИБ - События.Вставить("ПриДобавленииОбработчиковОбновления", Ложь); // Для обратной совместимости с БТС 1.2.2. - События.Вставить("ПослеОбновленияИнформационнойБазы", Ложь); - События.Вставить("ПриПолученииПриоритетаОбновления", Ложь); - - // Печать - События.Вставить("ПриПодготовкеСпискаМакетовВФорматеОфисныхДокументовФормируемыхНаСервере", Ложь); - События.Вставить("ПриОпределенииОбъектовСКомандамиПечати", Ложь); - События.Вставить("ПередДобавлениемКомандПечати", Ложь); - События.Вставить("ПриПолученииНастроекСпискаКомандПечати", Ложь); - События.Вставить("ПриПечати", Ложь); - События.Вставить("ПередОтправкойПоПочте", Ложь); - События.Вставить("ПриПолученииПодписейИПечатей", Ложь); - События.Вставить("ПечатьДокументовПриСозданииНаСервере", Ложь); - События.Вставить("ПечатьДокументовПриЗагрузкеДанныхИзНастроекНаСервере", Ложь); - События.Вставить("ПечатьДокументовПриСохраненииДанныхВНастройкахНаСервере", Ложь); - События.Вставить("ПечатьДокументовПриВыполненииКоманды", Ложь); - - // ПодключаемыеКоманды - События.Вставить("ПриОпределенииВидовПодключаемыхКоманд", Ложь); - События.Вставить("ПриОпределенииСоставаНастроекПодключаемыхОбъектов", Ложь); - События.Вставить("ПриОпределенииКомандПодключенныхКОбъекту", Ложь); - События.Вставить("ПриОпределенииОбъектовСКомандамиСозданияНаОсновании", Ложь); - События.Вставить("ПередДобавлениемКомандСозданияНаОсновании", Ложь); - События.Вставить("ПриДобавленииКомандСозданияНаОсновании", Ложь); - - // Пользователи - События.Вставить("ПриОпределенииНастроек", Ложь); - События.Вставить("ПриОпределенииНазначенияРолей", Ложь); - События.Вставить("ПриОпределенииДействийВФорме", Ложь); - События.Вставить("ПриПолученииПрочихНастроек", Ложь); - События.Вставить("ПриСохраненииПрочихНастроек", Ложь); - События.Вставить("ПриУдаленииПрочихНастроек", Ложь); - События.Вставить("ПриЗавершенииОбработкиПользователяИБ", Ложь); - - //ПрофилиБезопасности - События.Вставить("ПриПроверкеВозможностиНастройкиПрофилейБезопасности", Ложь); - События.Вставить("ПриЗапросеРазрешенийНаИспользованиеВнешнихРесурсов", Ложь); - События.Вставить("ПриЗапросеСозданияПрофиляБезопасности", Ложь); - События.Вставить("ПриЗапросеУдаленияПрофиляБезопасности", Ложь); - События.Вставить("ПриПодключенииВнешнегоМодуля", Ложь); - События.Вставить("ПриВключенииИспользованияПрофилейБезопасности", Ложь); - События.Вставить("ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам", Ложь); - - // РаботаСФайлами - События.Вставить("ПриОпределенииОбъектовИсключенияСинхронизацииФайлов", Ложь); - - // РегламентныеЗадания - События.Вставить("ПриОпределенииНастроекРегламентныхЗаданий", Ложь); - - // Свойства - События.Вставить("ПриПолученииПредопределенныхНаборовСвойств", Ложь); - - // ТекущиеДела - События.Вставить("ПриОпределенииОбработчиковТекущихДел", Ложь); - События.Вставить("ПриЗаполненииСпискаТекущихДел", Ложь); - События.Вставить("ПриОпределенииПорядкаРазделовКомандногоИнтерфейса", Ложь); - События.Вставить("ПриОтключенииТекущихДел", Ложь); - События.Вставить("ПриОпределенииНастроекТекущихДел", Ложь); - События.Вставить("ПриУстановкеОбщихПараметровЗапросов", Ложь); - События.Вставить("ПриСозданииНаСервереТекущиеДела", Ложь); - События.Вставить("ПередЗагрузкойДанныхИзНастроекНаСервереТекущиеДела", Ложь); - - // УправлениеДоступом - События.Вставить("ПриЗаполненииВидовДоступа", Ложь); - События.Вставить("ПриЗаполненииСписковСОграничениемДоступа", Ложь); - События.Вставить("ПриЗаполненииПоставляемыхПрофилейГруппДоступа", Ложь); - События.Вставить("ПриЗаполненииЗависимостейПравДоступа", Ложь); - События.Вставить("ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов", Ложь); - События.Вставить("ПриЗаполненииИспользованияВидаДоступа", Ложь); - События.Вставить("ПриЗаполненииВидовОграниченийПравОбъектовМетаданных", Ложь); - - // ЦентрМониторинга - События.Вставить("ПриСбореПоказателейСтатистикиКонфигурации", Ложь); - - Возврат События; - -КонецФункции - #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиент/Module.bsl b/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиент/Module.bsl index df00822bc..ba291de44 100644 --- a/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиент/Module.bsl +++ b/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиент/Module.bsl @@ -354,6 +354,11 @@ // См. ОтчетыКлиентПереопределяемый.ОбработкаРасшифровки. Процедура ПриОбработкеРасшифровки(ФормаОтчета, Элемент, Расшифровка, СтандартнаяОбработка) Экспорт + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.АнализЖурналаРегистрации") Тогда + МодульАнализЖурналаРегистрацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АнализЖурналаРегистрацииКлиент"); + МодульАнализЖурналаРегистрацииКлиент.ФормаОтчетаОбработкаРасшифровки(ФормаОтчета, Элемент, Расшифровка, СтандартнаяОбработка); + КонецЕсли; + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда МодульКонтрольВеденияУчетаСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КонтрольВеденияУчетаСлужебныйКлиент"); МодульКонтрольВеденияУчетаСлужебныйКлиент.ПриОбработкеРасшифровки(ФормаОтчета, Элемент, Расшифровка, СтандартнаяОбработка); @@ -439,6 +444,11 @@ МодульКонтрольВеденияУчетаСлужебныйКлиент.ОбработкаВыбораТабличногоДокумента(ФормаОтчета, Элемент, Область, СтандартнаяОбработка); КонецЕсли; + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + МодульУправлениеДоступомСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеДоступомСлужебныйКлиент"); + МодульУправлениеДоступомСлужебныйКлиент.ОбработкаВыбораТабличногоДокумента(ФормаОтчета, Элемент, Область, СтандартнаяОбработка); + КонецЕсли; + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПриОбработкеВыбораТабличногоДокумента Тогда МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); МодульИнтеграцияПодсистемБТСКлиент.ПриОбработкеВыбораТабличногоДокумента(ФормаОтчета, Элемент, Область, СтандартнаяОбработка); @@ -488,8 +498,8 @@ // Вызывается при завершении сеанса средствами подсистемы ЗавершениеРаботыПользователей. // // Параметры: -// ФормаВладелец - ФормаКлиентскогоПриложения, из которой выполняется завершение сеанса, -// НомераСеансов - Число (8, 0, +) - номер сеанса, который будет завершен, +// ФормаВладелец - ФормаКлиентскогоПриложения - из которой выполняется завершение сеанса, +// НомераСеансов - Число - число длиной 8 символов, номер сеанса, который будет завершен, // СтандартнаяОбработка - Булево - флаг выполнения стандартной обработки завершения сеанса // (подключение к агенту сервера через COM-соединение или сервер администрирования с // запросом параметров подключения к кластеру у текущего пользователя). Может быть @@ -648,8 +658,8 @@ // Определяет события, на которые могут подписаться другие библиотеки. // // Возвращаемое значение: -// События - Структура - ключами свойств структуры являются имена событий, на которые -// могут быть подписаны библиотеки. +// Структура - ключами свойств структуры являются имена событий, на которые +// могут быть подписаны библиотеки. // Функция СобытияБСП() Экспорт diff --git a/SSL/src/CommonModules/ИнтерфейсODataСлужебный/Module.bsl b/SSL/src/CommonModules/ИнтерфейсODataСлужебный/Module.bsl index 51e89bf4a..6aff3f391 100644 --- a/SSL/src/CommonModules/ИнтерфейсODataСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ИнтерфейсODataСлужебный/Module.bsl @@ -229,7 +229,7 @@ // Возвращает ссылки точек маршрута бизнес-процессов. // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип - тип ТочкаМаршрутаБизнесПроцессаСсылка, // * Значение - Строка - имя бизнес-процесса. // @@ -255,20 +255,14 @@ КонецЕсли; Для Каждого КлассМодели Из Модель Цикл - ОписаниеОбъекта = КлассМодели.Значение.Получить(Имя); - Если ОписаниеОбъекта <> Неопределено Тогда - Если ПолноеИмя = ОписаниеОбъекта.ПолноеИмя Тогда - Возврат ОписаниеОбъекта; - КонецЕсли; - КонецЕсли; - КонецЦикла; + Возврат Неопределено; КонецФункции diff --git a/SSL/src/CommonModules/ИнформацияПриЗапуске/Module.bsl b/SSL/src/CommonModules/ИнформацияПриЗапуске/Module.bsl index f49aefbff..b4d4e464b 100644 --- a/SSL/src/CommonModules/ИнформацияПриЗапуске/Module.bsl +++ b/SSL/src/CommonModules/ИнформацияПриЗапуске/Module.bsl @@ -12,7 +12,7 @@ // Пример использования: после очистки хранилищ настроек. // // Параметры: -// Настройки - Структура - необязательный. Настройки обновления: +// Настройки - Структура: // * ОбщиеДанные - Булево - необязательный. Обновлять неразделенные данные. // * РазделенныеДанные - Булево - необязательный. Обновлять разделенные данные. // * Оперативное - Булево - необязательный. Оперативное обновление данных. @@ -75,10 +75,6 @@ // Обработчики событий подсистем конфигурации. // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); Обработчик.ВыполнятьВГруппеОбязательных = Истина; diff --git a/SSL/src/CommonModules/КалендарныеГрафики/Module.bsl b/SSL/src/CommonModules/КалендарныеГрафики/Module.bsl index 9903fc8d4..534ec8a13 100644 --- a/SSL/src/CommonModules/КалендарныеГрафики/Module.bsl +++ b/SSL/src/CommonModules/КалендарныеГрафики/Module.bsl @@ -12,17 +12,17 @@ // входящих в указанный график ГрафикРаботы. // // Параметры: -// ГрафикРаботы - СправочникСсылка.Календари +// ГрафикРаботы - СправочникСсылка.Календари // - СправочникСсылка.ПроизводственныеКалендари - график или // производственный календарь, который необходимо использовать для расчета дат. -// ДатаОт - Дата - дата, от которой нужно рассчитать количество дней. -// МассивДней - Массив - количество дней (Число), на которые нужно увеличить дату начала. -// РассчитыватьСледующуюДатуОтПредыдущей - Булево - нужно ли рассчитывать следующую дату от предыдущей или +// ДатаОт - Дата - дата, от которой нужно рассчитать количество дней. +// МассивДней - Массив - количество дней (Число), на которые нужно увеличить дату начала. +// РассчитыватьСледующуюДатуОтПредыдущей - Булево - нужно ли рассчитывать следующую дату от предыдущей или // все даты рассчитываются от переданной даты. -// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика. +// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика. // // Возвращаемое значение: -// Неопределено, Массив - массив дат, увеличенных на количество дней, входящих в график, +// Неопределено, Массив - массив дат, увеличенных на количество дней, входящих в график, // Если график ГрафикРаботы не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено. // Функция ДатыПоКалендарю(Знач ГрафикРаботы, Знач ДатаОт, Знач МассивДней, Знач РассчитыватьСледующуюДатуОтПредыдущей = Ложь, ВызыватьИсключение = Истина) Экспорт @@ -122,15 +122,15 @@ // входящих в указанный график или производственный календарь ГрафикРаботы. // // Параметры: -// ГрафикРаботы - СправочникСсылка.Календари +// ГрафикРаботы - СправочникСсылка.Календари // - СправочникСсылка.ПроизводственныеКалендари - график или // производственный календарь, который необходимо использовать для расчета даты. -// ДатаОт - Дата - дата, от которой нужно рассчитать количество дней. -// КоличествоДней - Число - количество дней, на которые нужно увеличить дату начала. -// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика. +// ДатаОт - Дата - дата, от которой нужно рассчитать количество дней. +// КоличествоДней - Число - количество дней, на которые нужно увеличить дату начала. +// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика. // // Возвращаемое значение: -// Дата, Неопределено - дата, увеличенная на количество дней, входящих в график. +// Дата, Неопределено - дата, увеличенная на количество дней, входящих в график. // Если выбранный график не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено. // Функция ДатаПоКалендарю(Знач ГрафикРаботы, Знач ДатаОт, Знач КоличествоДней, ВызыватьИсключение = Истина) Экспорт @@ -160,15 +160,15 @@ // Определяет количество дней, входящих в график, для указанного периода. // // Параметры: -// ГрафикРаботы - СправочникСсылка.Календари +// ГрафикРаботы - СправочникСсылка.Календари // - СправочникСсылка.ПроизводственныеКалендари - график или // производственный календарь, который необходимо использовать для расчета дней. -// ДатаНачала - Дата - дата начала периода. -// ДатаОкончания - Дата - дата окончания периода. -// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика. +// ДатаНачала - Дата - дата начала периода. +// ДатаОкончания - Дата - дата окончания периода. +// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика. // // Возвращаемое значение: -// Число - количество дней между датами начала и окончания. +// Число - количество дней между датами начала и окончания. // Если график ГрафикРаботы не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено. // Функция РазностьДатПоКалендарю(Знач ГрафикРаботы, Знач ДатаНачала, Знач ДатаОкончания, ВызыватьИсключение = Истина) Экспорт @@ -199,7 +199,7 @@ Если ПустаяСтрока(ТекстЗапроса) Тогда ШаблонОбъединения = "ВЫБРАТЬ - | ДАТАВРЕМЯ(%1) КАК ДатаГрафика + | ДАТАВРЕМЯ(2020,01,01) КАК ДатаГрафика |ПОМЕСТИТЬ ВТДатыГрафика |"; Иначе @@ -207,10 +207,10 @@ "ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ - | ДАТАВРЕМЯ(%1)"; + | ДАТАВРЕМЯ(2020,01,01)"; КонецЕсли; - ТекстЗапроса = ТекстЗапроса + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - ШаблонОбъединения, Формат(ДатаГрафика, "ДФ='гггг, ММ, д'")); // АПК:1367 Форматирование даты в технических целях, не отображается пользователю + ТекстЗапроса = ТекстЗапроса + СтрЗаменить( + ШаблонОбъединения, "2020,01,01", Формат(ДатаГрафика, "ДФ='гггг,ММ,д'")); // АПК:1367 Форматирование даты в технических целях, не отображается пользователю КонецЦикла; МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; @@ -338,29 +338,29 @@ // См. БлижайшиеРабочиеДаты. // // Параметры: -// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - необязательный, +// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - // если указан, то НерабочиеПериоды будет по умолчанию заполнен как Массив из описаний, // полученных методом ПериодыНерабочихДней. // // Возвращаемое значение: // Структура: // * ПолучатьПредшествующие - Булево - способ получения ближайшей даты: -// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты, -// если Ложь - получаются ближайшие рабочие даты, следующие за начальными датами. -// Значение по умолчанию - Ложь: +// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты, +// если Ложь - получаются ближайшие рабочие даты, следующие за начальными датами. +// Значение по умолчанию - Ложь: // * УчитыватьНерабочиеПериоды - Булево - определяет отношение к датам, выпадающим на периоды нерабочих дней календаря, -// если Истина, даты, выпадающие на период нерабочих дней будут считаться нерабочими, -// если Ложь, периоды нерабочих дней будут игнорироваться. -// Значение по умолчанию - Истина: +// если Истина, даты, выпадающие на период нерабочих дней будут считаться нерабочими, +// если Ложь, периоды нерабочих дней будут игнорироваться. +// Значение по умолчанию - Истина: // * НерабочиеПериоды - Неопределено - уточняет периоды нерабочих дней, которые нужно учитывать, -// можно установить Массив номеров периодов или описаний, полученных методом ПериодыНерабочихДней, -// если Неопределено, будут учтены все периоды, -// если заполнен параметр ПроизводственныйКалендарь, то все периоды этого календаря будут заполнены в НерабочиеПериоды. -// Значение по умолчанию - Неопределено: +// можно установить Массив номеров периодов или описаний, полученных методом ПериодыНерабочихДней, +// если Неопределено, будут учтены все периоды, +// если заполнен параметр ПроизводственныйКалендарь, то все периоды этого календаря будут заполнены в НерабочиеПериоды. +// Значение по умолчанию - Неопределено: // * ВызыватьИсключение - Булево - вызов исключения в случае не заполненного графика -// если Истина, вызвать исключение, если график не заполнен. -// если Ложь - даты, по которым не удалось определить ближайшую дату, будут просто пропущены. -// Значение по умолчанию - Истина. +// если Истина, вызвать исключение, если график не заполнен. +// если Ложь - даты, по которым не удалось определить ближайшую дату, будут просто пропущены. +// Значение по умолчанию - Истина. // Функция ПараметрыПолученияБлижайшихРабочихДат(ПроизводственныйКалендарь = Неопределено) Экспорт Параметры = Новый Структура( @@ -381,11 +381,11 @@ // // Параметры: // ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - календарь, используемый для расчета. -// НачальныеДаты - Массив Из Дата - даты, относительно которых будет выполнен поиск ближайших. +// НачальныеДаты - Массив из Дата - даты, относительно которых будет выполнен поиск ближайших. // ПараметрыПолучения - см. ПараметрыПолученияБлижайшихРабочихДат. // // Возвращаемое значение: -// Соответствие Из КлючИЗначение: +// Соответствие из КлючИЗначение: // * Ключ - Дата - начальная дата, // * Значение - Дата - ближайшая к ней рабочая дата (если передана рабочая дата, то она же и возвращается). // @@ -486,16 +486,16 @@ // Необходимо учитывать, что для работы этой функции обязательно наличие подсистемы ГрафикиРаботы. // // Параметры: -// Графики - Массив - массив элементов типа СправочникСсылка.Календари, для которых составляются расписания. -// ДатаНачала - Дата - дата начала периода, за который нужно составить расписания. -// ДатаОкончания - Дата - дата окончания периода. +// Графики - Массив - массив элементов типа СправочникСсылка.Календари, для которых составляются расписания. +// ДатаНачала - Дата - дата начала периода, за который нужно составить расписания. +// ДатаОкончания - Дата - дата окончания периода. // // Возвращаемое значение: // ТаблицаЗначений: -// * ГрафикРаботы - СправочникСсылка.Календари - график работы. -// * ДатаГрафика - Дата - дата в графике работы ГрафикРаботы. -// * ВремяНачала - Дата - время начала работы в день ДатаГрафика. -// * ВремяОкончания - Дата - время окончания работы в день ДатаГрафика. +// * ГрафикРаботы - СправочникСсылка.Календари - график работы. +// * ДатаГрафика - Дата - дата в графике работы ГрафикРаботы. +// * ВремяНачала - Дата - время начала работы в день ДатаГрафика. +// * ВремяОкончания - Дата - время окончания работы в день ДатаГрафика. // Функция РасписанияРаботыНаПериод(Графики, ДатаНачала, ДатаОкончания) Экспорт @@ -514,9 +514,9 @@ // // Параметры: // МенеджерВременныхТаблиц - МенеджерВременныхТаблиц - менеджер, в котором будет создана временная таблица. -// Графики - Массив - массив элементов типа СправочникСсылка.Календари, для которых составляются расписания. -// ДатаНачала - Дата - дата начала периода, за который нужно составить расписания. -// ДатаОкончания - Дата - дата окончания периода. +// Графики - Массив - массив элементов типа СправочникСсылка.Календари, для которых составляются расписания. +// ДатаНачала - Дата - дата начала периода, за который нужно составить расписания. +// ДатаОкончания - Дата - дата окончания периода. // Процедура СоздатьВТРасписанияРаботыНаПериод(МенеджерВременныхТаблиц, Графики, ДатаНачала, ДатаОкончания) Экспорт @@ -533,9 +533,9 @@ // Заполняет реквизит в форме, в том случае, если используется единственный производственный календарь. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - форма, в которой требуется заполнить реквизит. -// ПутьРеквизита - Строка - путь к данным, например: "Объект.ПроизводственныйКалендарь". -// КПП - Строка - индивидуальный номер налогоплательщика (код причины постановки на учет) для определения региона. +// Форма - ФормаКлиентскогоПриложения - форма, в которой требуется заполнить реквизит. +// ПутьРеквизита - Строка - путь к данным, например: "Объект.ПроизводственныйКалендарь". +// КПП - Строка - индивидуальный номер налогоплательщика (код причины постановки на учет) для определения региона. // Процедура ЗаполнитьПроизводственныйКалендарьВФорме(Форма, ПутьРеквизита, КПП = Неопределено) Экспорт @@ -565,8 +565,8 @@ Возврат Неопределено; КонецЕсли; - МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); - Возврат МодульКалендарныеГрафики.ОсновнойПроизводственныйКалендарь(); + МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); + Возврат МодульЗаполнениеКалендарныхГрафиков.ОсновнойПроизводственныйКалендарь(); КонецФункции @@ -574,15 +574,15 @@ // Такие периоды могут учитываться графиками, переопределяя заполнение по данным производственного календаря. // // Параметры: -// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - календарь, который является источником. -// ПериодОтбор - СтандартныйПериод - временной интервал, в пределах которого нужно определить нерабочие периоды. +// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - календарь, который является источником. +// ПериодОтбор - СтандартныйПериод - временной интервал, в пределах которого нужно определить нерабочие периоды. // Возвращаемое значение: -// Массив - массив элементов типа Структура с полями: -// * Номер - Число - порядковый номер периода, может использоваться для идентификации. -// * Период - СтандартныйПериод - нерабочий период. -// * Основание - Строка - нормативный акт, на основании которого установлен нерабочий период. -// * Даты - Массив Из Дата - даты, входящие в нерабочий период. -// * Представление - Строка - пользовательское представление периода. +// Массив - массив элементов типа Структура с полями: +// * Номер - Число - порядковый номер периода, может использоваться для идентификации. +// * Период - СтандартныйПериод - нерабочий период. +// * Основание - Строка - нормативный акт, на основании которого установлен нерабочий период. +// * Даты - Массив из Дата - даты, входящие в нерабочий период. +// * Представление - Строка - пользовательское представление периода. // Функция ПериодыНерабочихДней(ПроизводственныйКалендарь, ПериодОтбор) Экспорт @@ -591,8 +591,8 @@ Возврат Периоды; КонецЕсли; - МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); - Периоды = МодульКалендарныеГрафики.ПериодыНерабочихДней(ПроизводственныйКалендарь, ПериодОтбор); + МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); + Периоды = МодульЗаполнениеКалендарныхГрафиков.ПериодыНерабочихДней(ПроизводственныйКалендарь, ПериодОтбор); УдалитьПериодыНеСоответствующиеОтбору(Периоды, ПериодОтбор); @@ -607,29 +607,27 @@ // Событие возникает при сборе информации о классификаторах, регистрируем производственные календари. // // Параметры: -// Классификаторы - см. РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов.Классификаторы +// Классификаторы - см. РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов.Классификаторы // Процедура ПриДобавленииКлассификаторов(Классификаторы) Экспорт - Описатель = Неопределено; - + Описание = Неопределено; Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами"); - Описатель = МодульРаботаСКлассификаторами.ОписаниеКлассификатора(); + Описание = МодульРаботаСКлассификаторами.ОписаниеКлассификатора(); КонецЕсли; - - Если Описатель = Неопределено Тогда + Если Описание = Неопределено Тогда Возврат; КонецЕсли; - Описатель.Идентификатор = ИдентификаторКлассификатора(); - Описатель.Наименование = НСтр("ru = 'Календари'"); - Описатель.ОбновлятьАвтоматически = Истина; - Описатель.ОбщиеДанные = Истина; - Описатель.ОбработкаРазделенныхДанных = Истина; - Описатель.СохранятьФайлВКэш = Истина; + Описание.Идентификатор = ИдентификаторКлассификатора(); + Описание.Наименование = НСтр("ru = 'Календари'"); + Описание.ОбновлятьАвтоматически = Истина; + Описание.ОбщиеДанные = Истина; + Описание.ОбработкаРазделенныхДанных = Истина; + Описание.СохранятьФайлВКэш = Истина; - Классификаторы.Добавить(Описатель); + Классификаторы.Добавить(Описание); КонецПроцедуры @@ -655,22 +653,24 @@ // - или ГрафикиРаботы.БлижайшиеДатыВключенныеВГрафик - для графика работы. // Определяет для каждой даты дату ближайшего к ней рабочего дня. // -// Параметры: -// График - СправочникСсылка.Календари +// Параметры: +// График - СправочникСсылка.Календари // - СправочникСсылка.ПроизводственныеКалендари - график или // производственный календарь, который необходимо использовать для расчета. -// НачальныеДаты - Массив - массив дат (Дата). -// ПолучатьПредшествующие - Булево - способ получения ближайшей даты: +// НачальныеДаты - Массив - массив дат (Дата). +// ПолучатьПредшествующие - Булево - способ получения ближайшей даты: // если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты, // если Ложь - получаются даты не ранее начальной даты. -// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика. -// ИгнорироватьНезаполненностьГрафика - Булево - если Истина, то в любом случае будет возвращено соответствие. +// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика. +// ИгнорироватьНезаполненностьГрафика - Булево - если Истина, то в любом случае будет возвращено соответствие. // Начальные даты, для которых не будет значений из-за незаполненности графика, включены не будут. // -// Возвращаемое значение: -// Соответствие, Неопределено - соответствие, где ключ - дата из переданного массива, -// значение - ближайшая к ней рабочая дата (если передана рабочая дата, то она же и возвращается). -// Если выбранный график не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено. +// Возвращаемое значение: +// - Соответствие из КлючИЗначение: +// * Ключ - Дата - дата из переданного массива +// * Значение - Дата - ближайшая к ней рабочая дата (если передана рабочая дата, то она же и возвращается). +// Если выбранный график не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено +// - Неопределено // Функция ДатыБлижайшихРабочихДней(График, НачальныеДаты, ПолучатьПредшествующие = Ложь, ВызыватьИсключение = Истина, ИгнорироватьНезаполненностьГрафика = Ложь) Экспорт @@ -703,9 +703,9 @@ // формируется строка с индексом элемента и значением - количеством дней. // // Параметры: -// - МенеджерВременныхТаблиц, -// - МассивДней - массив - количество дней, -// - РассчитыватьСледующуюДатуОтПредыдущей - необязательный, по умолчанию Ложь. +// - МенеджерВременныхТаблиц, +// - МассивДней - Массив - количество дней, +// - РассчитыватьСледующуюДатуОтПредыдущей - по умолчанию Ложь. // Процедура СоздатьВТПриращениеДней(МенеджерВременныхТаблиц, Знач МассивДней, Знач РассчитыватьСледующуюДатуОтПредыдущей = Ложь) Экспорт @@ -750,9 +750,9 @@ // например, Графиков работы. // // Параметры: -// ТаблицаИзменений - таблица с колонками. -// - КодПроизводственногоКалендаря - код производственного календаря, данные которого изменились, -// - Год - год, за который нужно обновить данные. +// ТаблицаИзменений - ТаблицаЗначений: +// * КодПроизводственногоКалендаря - Число - код производственного календаря, данные которого изменились, +// * Год - Число - год, за который нужно обновить данные. // Процедура РаспространитьИзмененияДанныхПроизводственныхКалендарей(ТаблицаИзменений) Экспорт @@ -771,9 +771,9 @@ // например, Графиков работы. // // Параметры: -// ТаблицаИзменений - таблица с колонками. -// - КодПроизводственногоКалендаря - код производственного календаря, данные которого изменились, -// - Год - год, за который нужно обновить данные. +// ТаблицаИзменений - ТаблицаЗначений: +// * КодПроизводственногоКалендаря - Число - код производственного календаря, данные которого изменились, +// * Год - Число - год, за который нужно обновить данные. // Процедура ЗаполнитьДанныеЗависимыеОтПроизводственныхКалендарей(ТаблицаИзменений) Экспорт @@ -793,7 +793,7 @@ // Определяет внутренний идентификатор классификатора для подсистемы РаботаСКлассификаторами. // // Возвращаемое значение: -// Строка - идентификатор классификатора. +// Строка - идентификатор классификатора. // Функция ИдентификаторКлассификатора() Экспорт Возврат "Calendars20"; @@ -810,8 +810,8 @@ Возврат 0; КонецЕсли; - МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); - Возврат МодульКалендарныеГрафики.ВерсияКалендарей(); + МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); + Возврат МодульЗаполнениеКалендарныхГрафиков.ВерсияКалендарей(); КонецФункции @@ -843,11 +843,11 @@ // Возвращаемое значение: // Структура: // * ПроизводственныеКалендари - Структура: -// * ИмяТаблицы - Строка - имя таблицы. -// * Данные - ТаблицаЗначений - преобразованная из XML таблица календарей. +// * ИмяТаблицы - Строка - имя таблицы. +// * Данные - ТаблицаЗначений - преобразованная из XML таблица календарей. // * ДанныеПроизводственныхКалендарей - Структура: -// * ИмяТаблицы - Строка - имя таблицы. -// * Данные - ТаблицаЗначений - преобразованная из XML таблица данных календарей. +// * ИмяТаблицы - Строка - имя таблицы. +// * Данные - ТаблицаЗначений - преобразованная из XML таблица данных календарей. // Функция ДанныеКлассификатора() Экспорт @@ -922,9 +922,7 @@ //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// +// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -966,9 +964,7 @@ КонецПроцедуры -// Параметры: -// НазначениеРолей - см. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей.НазначениеРолей -// +// См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей Процедура ПриОпределенииНазначенияРолей(НазначениеРолей) Экспорт // ТолькоДляПользователейСистемы. @@ -978,7 +974,7 @@ КонецПроцедуры // Параметры: -// Типы - см. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке.Типы +// Типы - см. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке.Типы // Процедура ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы) Экспорт @@ -1044,8 +1040,8 @@ Возврат Неопределено; КонецЕсли; - МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); - Возврат МодульКалендарныеГрафики.РегиональныйПроизводственныйКалендарь(КПП); + МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); + Возврат МодульЗаполнениеКалендарныхГрафиков.РегиональныйПроизводственныйКалендарь(КПП); КонецФункции @@ -1162,8 +1158,8 @@ Возврат "1.0.0.1"; КонецЕсли; - МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); - Возврат МодульКалендарныеГрафики.ВерсияОбновленияПроизводственныхКалендарей(); + МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); + Возврат МодульЗаполнениеКалендарныхГрафиков.ВерсияОбновленияПроизводственныхКалендарей(); КонецФункции @@ -1173,8 +1169,8 @@ Возврат "1.0.0.1"; КонецЕсли; - МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); - Возврат МодульКалендарныеГрафики.ВерсияОбновленияДанныхПроизводственныхКалендарей(); + МодульЗаполнениеКалендарныхГрафиков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков"); + Возврат МодульЗаполнениеКалендарныхГрафиков.ВерсияОбновленияДанныхПроизводственныхКалендарей(); КонецФункции @@ -1403,7 +1399,6 @@ Обработчик = Обработчики.Добавить(); Обработчик.Версия = ВерсияОбновленияДанныхПроизводственныхКалендарей(); Обработчик.Процедура = "КалендарныеГрафики.ОбновитьДанныеЗависимыеОтПроизводственныхКалендарей"; - Обработчик.ОчередьОтложеннойОбработки = 2; Обработчик.ПроцедураЗаполненияДанныхОбновления = "КалендарныеГрафики.ЗаполнитьДанныеОбновленияДанныхЗависимыхОтПроизводственныхКалендарей"; Обработчик.РежимВыполнения = "Отложенно"; Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина; diff --git a/SSL/src/CommonModules/КалендарныеГрафикиПереопределяемый/Module.bsl b/SSL/src/CommonModules/КалендарныеГрафикиПереопределяемый/Module.bsl index 7fa59fe7e..244e43fed 100644 --- a/SSL/src/CommonModules/КалендарныеГрафикиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/КалендарныеГрафикиПереопределяемый/Module.bsl @@ -12,9 +12,9 @@ // В случае, если разделение включено, выполняется в не разделенном режиме. // // Параметры: -// УсловияОбновления - ТаблицаЗначений: -// * КодПроизводственногоКалендаря - Строка - код производственного календаря, данные которого изменились; -// * Год - Число - календарный год, за который изменились данные. +// УсловияОбновления - ТаблицаЗначений: +// * КодПроизводственногоКалендаря - Строка - код производственного календаря, данные которого изменились; +// * Год - Число - календарный год, за который изменились данные. // Процедура ПриОбновленииПроизводственныхКалендарей(УсловияОбновления) Экспорт @@ -24,9 +24,9 @@ // В случае, если разделение включено, выполняется в областях данных. // // Параметры: -// УсловияОбновления - ТаблицаЗначений: -// * КодПроизводственногоКалендаря - Строка - код производственного календаря, данные которого изменились; -// * Год - Число - календарный год, за который изменились данные. +// УсловияОбновления - ТаблицаЗначений: +// * КодПроизводственногоКалендаря - Строка - код производственного календаря, данные которого изменились; +// * Год - Число - календарный год, за который изменились данные. // Процедура ПриОбновленииДанныхЗависимыхОтПроизводственныхКалендарей(УсловияОбновления) Экспорт @@ -37,7 +37,7 @@ // которые следует заблокировать от использования на период обновления производственных календарей. // // Параметры: -// БлокируемыеОбъекты - Массив - имена метаданных блокируемых объектов. +// БлокируемыеОбъекты - Массив - имена метаданных блокируемых объектов. // Процедура ПриЗаполненииБлокируемыхОбъектовЗависимыхОтПроизводственныхКалендарей(БлокируемыеОбъекты) Экспорт @@ -48,7 +48,7 @@ // которые будут изменяться при обновлении производственных календарей. // // Параметры: -// ИзменяемыеОбъекты - Массив - имена метаданных изменяемых объектов. +// ИзменяемыеОбъекты - Массив - имена метаданных изменяемых объектов. // Процедура ПриЗаполненииИзменяемыхОбъектовЗависимыхОтПроизводственныхКалендарей(ИзменяемыеОбъекты) Экспорт diff --git a/SSL/src/CommonModules/КонтрольВеденияУчета/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчета/Module.bsl index 6e7401865..698e29f60 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчета/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчета/Module.bsl @@ -21,7 +21,7 @@ // - Массив - произвольные дополнительные параметры проверки, // которые уточняют, что и как именно проверять. // См. КонтрольВеденияУчета.ПараметрыВыполненияПроверки. -// - Структура: +// - Структура: // * Свойство1 - ЛюбаяСсылка // - Булево // - Число @@ -527,22 +527,17 @@ ТекстЗапроса = ТекущийСписок.ТекстЗапроса; Иначе ИсполняемаяСхема = ТаблицаФормы.ПолучитьИсполняемуюСхемуКомпоновкиДанных(); - НаборДанныхДинамическогоСписка = ИсполняемаяСхема.НаборыДанных.Найти("НаборДанныхДинамическогоСписка"); + НаборДанныхДинамическогоСписка = ИсполняемаяСхема.НаборыДанных.Найти("НаборДанныхДинамическогоСписка"); // НаборДанныхЗапросСхемыКомпоновкиДанных Если НаборДанныхДинамическогоСписка <> Неопределено Тогда ТекущийСписок.ПроизвольныйЗапрос = Истина; ТекстЗапроса = НаборДанныхДинамическогоСписка.Запрос; КонецЕсли; КонецЕсли; - Если Не ЗначениеЗаполнено(ТекстЗапроса) Тогда + Если Не ЗначениеЗаполнено(ТекстЗапроса) Или Не СтрНачинаетсяС(ТекстЗапроса, "ВЫБРАТЬ") Тогда Продолжить; КонецЕсли; - НачалоЗапроса = Лев(ТекстЗапроса, 7); - Если НачалоЗапроса <> "ВЫБРАТЬ" Тогда - Продолжить; - КонецЕсли; - Если ИмяПоляИндикатораПроблем = Неопределено Тогда ИмяКолонки = "ИндикаторОшибки_" + ОбщегоНазначения.КонтрольнаяСуммаСтрокой(Форма.ИмяФормы + ПолучитьРазделительПути() + ИмяСписка); Иначе @@ -561,7 +556,25 @@ СтруктураСвойствДинамическогоСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка(); ДобавляемоеПоле = " 0 КАК " + ИмяКолонки + ","; ЗапросМассивом = СтрРазделить(ТекстЗапроса, Символы.ПС); - ЗапросМассивом.Вставить(1, ДобавляемоеПоле); + ПозицияДляВставки = Неопределено; + Если СтрЧислоВхождений(ТекстЗапроса, "ВЫБРАТЬ") > 1 Тогда + Индекс = 0; + Для Каждого СтрокаЗапроса Из ЗапросМассивом Цикл + Если СтрНачинаетсяС(СокрЛП(СтрокаЗапроса), "ВЫБРАТЬ") Тогда + Если ПозицияДляВставки = Неопределено Тогда + ПозицияДляВставки = Индекс + 1; + Иначе + Прервать; + КонецЕсли; + ИначеЕсли СтрНачинаетсяС(СокрЛП(СтрокаЗапроса), "ПОМЕСТИТЬ") Тогда + ПозицияДляВставки = Неопределено; + КонецЕсли; + Индекс = Индекс + 1; + КонецЦикла; + Иначе + ПозицияДляВставки = 1; + КонецЕсли; + ЗапросМассивом.Вставить(ПозицияДляВставки, ДобавляемоеПоле); СтруктураСвойствДинамическогоСписка.ТекстЗапроса = СтрСоединить(ЗапросМассивом, Символы.ПС); ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(ТаблицаФормы, СтруктураСвойствДинамическогоСписка); КонецЕсли; @@ -663,10 +676,10 @@ // Параметры: // Форма - ФормаКлиентскогоПриложения - форма объекта. // ТекущийОбъект - ДокументОбъект - объект, который будет прочитан. -// - СправочникОбъект -// - ПланОбменаОбъект -// - ПланВидовХарактеристикОбъект -// - ПланСчетовОбъект +// - СправочникОбъект +// - ПланОбменаОбъект +// - ПланВидовХарактеристикОбъект +// - ПланСчетовОбъект // - ПланВидовРасчетаОбъект // - ЗадачаОбъект // @@ -738,11 +751,11 @@ // установлено свойство ПоддерживаетВыборочнуюПроверку в значение Истина. // // Параметры: -// ТекущийОбъект - - ДокументОбъект - <ВидОбъектаМетаданных>Объект.<ИмяОбъектаМетаданных>. -// - СправочникОбъект -// - ПланОбменаОбъект -// - ПланВидовХарактеристикОбъект -// - ПланСчетовОбъект +// ТекущийОбъект - ДокументОбъект - <ВидОбъектаМетаданных>Объект.<ИмяОбъектаМетаданных>. +// - СправочникОбъект +// - ПланОбменаОбъект +// - ПланВидовХарактеристикОбъект +// - ПланСчетовОбъект // - ПланВидовРасчетаОбъект // - ЗадачаОбъект // diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаВызовСервера/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаВызовСервера/Module.bsl index 0854caeab..255a15690 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаВызовСервера/Module.bsl @@ -113,7 +113,7 @@ Значение = Расшифровка[0].Значение; ЗначениеЧастями = СтрРазделить(Значение, ";"); - Если ЗначениеЧастями.Количество() <> 5 Тогда + Если ЗначениеЧастями.Количество() < 5 Тогда Возврат Неопределено; КонецЕсли; diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаКлиент/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаКлиент/Module.bsl index 712a8866a..f6cc6ef16 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаКлиент/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаКлиент/Module.bsl @@ -30,7 +30,7 @@ // Открывает форму отчета при нажатии на гиперссылку, сигнализирующую о наличии проблем. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - управляемая форма проблемного объекта. +// Форма - ФормаКлиентскогоПриложения - форма проблемного объекта. // ПроблемныйОбъект - СсылкаНаОбъект - ссылка на проблемный объект. // СтандартнаяОбработка - Булево - в данный параметр передается признак выполнения // стандартной (системной) обработки события. @@ -56,7 +56,7 @@ // сигнализирующей о наличии проблем с выделенным объектом. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - управляемая форма проблемного объекта. +// Форма - ФормаКлиентскогоПриложения - форма проблемного объекта. // ИмяСписка - Строка - имя целевого динамического списка как реквизита формы. // Поле - ПолеФормы - колонка в которой располагается картинка, // сигнализирующая о наличии проблем. diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаПереопределяемый/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаПереопределяемый/Module.bsl index fe8689ce6..a9fbe0367 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаПереопределяемый/Module.bsl @@ -12,7 +12,7 @@ // // Параметры: // Настройки - Структура: -// * КартинкаИндикатораПроблем - картинка, которая будет выводиться в качестве +// * КартинкаИндикатораПроблем - Картинка - которая будет выводиться в качестве // индикатора ошибки в колонке динамического списка // форм списков и на специальной панели форм объектов. // * ПояснениеИндикатораПроблем - Строка - поясняющая строка к ошибке. @@ -85,7 +85,7 @@ // * УточнениеКонтекстаПроверокВеденияУчета - ОпределяемыйТип.УточнениеКонтекстаПроверокВеденияУчета - второе значение, // дополнительно уточняющее принадлежность проверки ведения учета // к определенной группе или категории. -// * ДополнительныеПараметры - ХранилищеЗначений - произвольная дополнительная информация о проверке +// * ДополнительныеПараметры - ХранилищеЗначения - произвольная дополнительная информация о проверке // для программного использования. // * Комментарий - Строка - текстовый комментарий к проверке. // * Отключена - Булево - если Истина, то проверка не будет выполняться в фоне по расписанию. @@ -169,7 +169,7 @@ // идентифицировать ответственного в проблемном объекте. // * ИгнорироватьПроблему - Булево - флаг игнорирования проблемы. Если имеет значение "Истина", // запись о проблеме игнорируется подсистемой. -// * ДополнительнаяИнформация - ХранилищеЗначений - служебное свойство с дополнительными +// * ДополнительнаяИнформация - ХранилищеЗначения - служебное свойство с дополнительными // сведениями, связанными с выявленной проблемой. // * Выявлено - Дата - серверное время идентификации проблемы. // @@ -219,7 +219,7 @@ // которая выявила проблему. // * ВидПроверки - СправочникСсылка.ВидыПроверок - вид проверки // с дополнительной информацией о проблеме. -// * ДополнительныеПараметры - ХранилищеЗначений - дополнительная информация по проверке. +// * ДополнительныеПараметры - ХранилищеЗначения - дополнительная информация по проверке. // // Пример: // Проверка = Проверки.Добавить(); diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl index 80d80c766..fde455015 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl @@ -9,10 +9,6 @@ #Область СлужебныйПрограммныйИнтерфейс // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Если ЕстьИзмененияПараметровПроверокУчета() Тогда @@ -56,10 +52,8 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. -// // Параметры: -// ТекущиеДела - см. ТекущиеДелаСлужебный.ТекущиеДела +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт @@ -124,9 +118,7 @@ КонецПроцедуры -// Параметры: -// Типы - см. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки.Типы -// +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт // Результаты проверки ведения учета будут заново сформированы при следующей проверке, @@ -135,9 +127,7 @@ КонецПроцедуры -// Параметры: -// ШаблоныЗаданий - см. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.ШаблоныЗаданий -// +// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт ШаблоныЗаданий.Добавить("ПроверкаВеденияУчета"); @@ -727,7 +717,8 @@ // Параметры: // КлючиСтрок - Массив - массив, содержащий все ключи строк динамического списка. // -// Возвращаемое значение - Массив из ЛюбаяСсылка - массив проблемных объектов. +// Возвращаемое значение: +// Массив из ЛюбаяСсылка - массив проблемных объектов. // Функция ПроблемныеОбъекты(КлючиСтрок, ВключаяВажность = Ложь) Экспорт @@ -910,7 +901,8 @@ // Параметры // ИдентификаторРегламентногоЗадания - Строка - Поле для связки с текущим фоновым заданием. // -// Возвращаемое значение - Структура - со свойствами, Неопределено: +// Возвращаемое значение: +// Структура - со свойствами, Неопределено: // * Идентификатор - Строка - строковый идентификатор проверки. // Функция ПараметрыПроверкиПоИдентификаторуРегламентногоЗадания(ИдентификаторРегламентногоЗадания) @@ -1029,8 +1021,9 @@ ГруппаПроверокОбъект.КонтекстПроверокВеденияУчета = ГруппаПроверок.КонтекстПроверокВеденияУчета; КонецЕсли; + // АПК:1327-выкл блокировка устанавливается выше по стеку. ОбновлениеИнформационнойБазы.ЗаписатьДанные(ГруппаПроверокОбъект); - + // АПК:1327-вкл КонецЦикла; Запрос = Новый Запрос( @@ -1058,7 +1051,9 @@ Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("ГруппыПроверок", ГруппыПроверок); + // АПК:1327-выкл блокировка устанавливается выше по стеку. Результат = Запрос.Выполнить().Выбрать(); + // АПК:1327-вкл Пока Результат.Следующий() Цикл ГруппаПроверокОбъект = Результат.Ссылка.ПолучитьОбъект(); ГруппаПроверокОбъект.УстановитьПометкуУдаления(Истина); @@ -1115,7 +1110,9 @@ ПроверкаОбъект.ДатаНачалаПроверки = Проверка.ДатаНачалаПроверки; КонецЕсли; + // АПК:1327-выкл блокировка устанавливается выше по стеку. ОбновлениеИнформационнойБазы.ЗаписатьДанные(ПроверкаОбъект); + // АПК:1327-вкл КонецЦикла; Запрос = Новый Запрос( @@ -1143,7 +1140,9 @@ Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("Проверки", Проверки); + // АПК:1327-выкл блокировка устанавливается выше по стеку. Результат = Запрос.Выполнить().Выбрать(); + // АПК:1327-вкл Пока Результат.Следующий() Цикл ПроверкаОбъект = Результат.Ссылка.ПолучитьОбъект(); ПроверкаОбъект.УстановитьПометкуУдаления(Истина); @@ -2146,9 +2145,9 @@ // Параметры: -// ОбъектМетаданных - ОбъектМетаданных +// ОбъектМетаданных - ОбъектМетаданных // Возвращаемое значение: -// Массив из Строка +// Массив из Строка // Функция СсылочныеРеквизитыОбъекта(ОбъектМетаданных) @@ -2582,9 +2581,9 @@ КонецПроцедуры // Параметры: -// ОбъектМетаданных - ОбъектМетаданныхРегистрСведений -// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы -// ПроверенныеСсылки - Соответствие +// ОбъектМетаданных - ОбъектМетаданныхРегистрСведений +// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы +// ПроверенныеСсылки - Соответствие // Процедура НайтиБитыеСсылкиВНезависимыхНеПериодическихРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки, ПроверенныеСсылки) @@ -2684,10 +2683,10 @@ КонецПроцедуры // Параметры: -// ОбъектМетаданных - ОбъектМетаданныхРегистрБухгалтерии -// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы -// ВидыСубконто - Массив -// ПроверенныеСсылки - Соответствие +// ОбъектМетаданных - ОбъектМетаданныхРегистрБухгалтерии +// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы +// ВидыСубконто - Массив +// ПроверенныеСсылки - Соответствие // Процедура НайтиБитыеСсылкиВРегистрахБухгалтерии(ОбъектМетаданных, ПараметрыПроверки, ВидыСубконто, ПроверенныеСсылки) @@ -2809,9 +2808,9 @@ КонецПроцедуры // Параметры: -// ОбъектМетаданных - ОбъектМетаданныхРегистрРасчета -// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы -// ПроверенныеСсылки - Соответствие +// ОбъектМетаданных - ОбъектМетаданныхРегистрРасчета +// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы +// ПроверенныеСсылки - Соответствие // Процедура НайтиБитыеСсылкиВРегистрахРасчета(ОбъектМетаданных, ПараметрыПроверки, ПроверенныеСсылки) @@ -3027,8 +3026,8 @@ // Параметры: -// ОбъектМетаданных - Произвольный -// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы +// ОбъектМетаданных - Произвольный +// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы // Процедура НайтиНезаполненныеОбязательныеРеквизиты(ОбъектМетаданных, ПараметрыПроверки) @@ -3161,12 +3160,12 @@ КонецПроцедуры // Параметры: -// ОбъектМетаданных - ОбъектМетаданныхРегистрБухгалтерии -// - Произвольный -// - ОбъектМетаданныхРегистрСведений -// - ОбъектМетаданныхРегистрНакопления -// - ОбъектМетаданныхРегистрРасчета -// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы +// ОбъектМетаданных - ОбъектМетаданныхРегистрБухгалтерии +// - Произвольный +// - ОбъектМетаданныхРегистрСведений +// - ОбъектМетаданныхРегистрНакопления +// - ОбъектМетаданныхРегистрРасчета +// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы // Процедура НайтиНезаполненныеОбязательныеРеквизитыВПодчиненныхПериодическихРегистрах(ОбъектМетаданных, ПараметрыПроверки) @@ -3294,12 +3293,12 @@ // Параметры: -// ОбъектМетаданных - ОбъектМетаданныхРегистрБухгалтерии -// - Произвольный -// - ОбъектМетаданныхРегистрСведений -// - ОбъектМетаданныхРегистрНакопления -// - ОбъектМетаданныхРегистрРасчета -// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы +// ОбъектМетаданных - ОбъектМетаданныхРегистрБухгалтерии +// - Произвольный +// - ОбъектМетаданныхРегистрСведений +// - ОбъектМетаданныхРегистрНакопления +// - ОбъектМетаданныхРегистрРасчета +// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы // Процедура НайтиНезаполненныеОбязательныеРеквизитыВПодчиненныхНепериодическихРегистрах(ОбъектМетаданных, ПараметрыПроверки) @@ -3377,12 +3376,12 @@ // Параметры: -// ОбъектМетаданных - ОбъектМетаданныхРегистрБухгалтерии -// - Произвольный -// - ОбъектМетаданныхРегистрСведений -// - ОбъектМетаданныхРегистрНакопления -// - ОбъектМетаданныхРегистрРасчета -// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы +// ОбъектМетаданных - ОбъектМетаданныхРегистрБухгалтерии +// - Произвольный +// - ОбъектМетаданныхРегистрСведений +// - ОбъектМетаданныхРегистрНакопления +// - ОбъектМетаданныхРегистрРасчета +// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы // Процедура НайтиНезаполненныеОбязательныеРеквизитыВНезависимыхНепериодическихРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки) @@ -3514,12 +3513,12 @@ КонецПроцедуры // Параметры: -// ОбъектМетаданных - ОбъектМетаданныхРегистрБухгалтерии -// - Произвольный -// - ОбъектМетаданныхРегистрСведений -// - ОбъектМетаданныхРегистрНакопления -// - ОбъектМетаданныхРегистрРасчета -// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы +// ОбъектМетаданных - ОбъектМетаданныхРегистрБухгалтерии +// - Произвольный +// - ОбъектМетаданныхРегистрСведений +// - ОбъектМетаданныхРегистрНакопления +// - ОбъектМетаданныхРегистрРасчета +// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы // Процедура НайтиНезаполненныеОбязательныеРеквизитыВНезависимыхПериодическихРегистрахСведений(ОбъектМетаданных, ПараметрыПроверки) @@ -3737,9 +3736,9 @@ КонецФункции // Параметры: -// СтандартныеРеквизиты - ОписанияСтандартныхРеквизитов +// СтандартныеРеквизиты - ОписанияСтандартныхРеквизитов // Возвращаемое значение: -// Булево +// Булево // Функция ЕстьИерархия(СтандартныеРеквизиты) @@ -3837,8 +3836,8 @@ КонецФункции // Возвращаемое значение: -// ТаблицаЗначений: -// * Ссылка - ЛюбаяСсылка +// ТаблицаЗначений: +// * Ссылка - ЛюбаяСсылка // Функция ДочерниеЭлементыРодителя(СсылкаНаОбъект, Знач ИсключениеВыборки) Перем Результат; @@ -3929,7 +3928,6 @@ ТекстВременнойТаблицы = ""; ТекстВыборки = ""; - ПараметрыЗапроса = Новый Структура; Запрос = Новый Запрос; Для Каждого ОбъектМетаданных Из ВидМетаданных Цикл @@ -4209,8 +4207,9 @@ // ПараметрыВыполненияПроверки - Структура // - Массив - произвольные дополнительные параметры проверки, // которые уточняют, что и как именно проверять. -// - Структура - один параметр проверки. Состав свойств см. КонтрольВеденияУчета.ПараметрыВыполненияПроверки. -// - Массив - несколько параметров проверки (элементы массива типа Структура, как описано выше). +// - Структура - один параметр проверки. Состав свойств см. КонтрольВеденияУчета.ПараметрыВыполненияПроверки. +// - Массив - несколько параметров проверки (элементы массива типа Структура, как +// описано выше). // // Возвращаемое значение: // см. КонтрольВеденияУчета.ОписаниеПроблемы. @@ -4411,7 +4410,16 @@ // Возвращает допустимые типы параметров проверки. // // Возвращаемое значение: -// см. КонтрольВеденияУчетаСлужебный.ПодготовитьПараметрыПроверки. +// Структура: +// * ВажностьПроблемы - ПеречислениеСсылка.ВажностьПроблемыУчета +// * ГлобальныеНастройки - Структура +// * ДатаНачалаПроверки - Дата +// * Идентификатор - Строка +// * ИдентификаторРегламентногоЗадания - Строка +// * ИтерацияПроверки - Число +// * ЛимитПроблем - Число +// * Наименование - Строка +// * Проверка - СправочникСсылка.ПравилаПроверкиУчета // Функция ОжидаемыеТипыСвойствПараметровПроверки() Экспорт @@ -4453,7 +4461,7 @@ // ПолноеОписаниеПроблемы - Булево - влияет на состав свойств возвращаемого значения. // // Возвращаемое значение: -// Проблема - Структура: +// Структура: // * ПроблемныйОбъект - ЛюбаяСсылка - ссылка на объект "Источник" проблем. // * ПравилоПроверки - СправочникСсылка.ПравилаПроверкиУчета - ссылка на выполненную проверку. // * ВидПроверки - СправочникСсылка.ВидыПроверок - ссылка на вид проверки, к которому @@ -4470,7 +4478,7 @@ // * ИгнорироватьПроблему - Булево - флаг игнорирования проблемы. Если имеет значение "Истина", // запись о проблеме игнорируется подсистемой. // Возвращается, если параметр ПолноеОписаниеПроблемы = Истина. -// * ДополнительнаяИнформация - ХранилищеЗначений - служебное свойство с дополнительными +// * ДополнительнаяИнформация - ХранилищеЗначения - служебное свойство с дополнительными // сведениями, связанными с выявленной проблемой. // Возвращается, если параметр ПолноеОписаниеПроблемы = Истина. // * Выявлено - Дата - серверное время идентификации проблемы. diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйКлиент/Module.bsl index 6a0d60f68..2f83436a2 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйКлиент/Module.bsl @@ -100,10 +100,10 @@ КонецПроцедуры // Параметры: -// ФормаОтчета - ФормаКлиентскогоПриложения: -// * ОтчетТабличныйДокумент - ТабличныйДокумент -// Команда - КомандаФормы -// Результат - Булево +// ФормаОтчета - ФормаКлиентскогоПриложения: +// * ОтчетТабличныйДокумент - ТабличныйДокумент +// Команда - КомандаФормы +// Результат - Булево // Процедура ПриОбработкеКоманды(ФормаОтчета, Команда, Результат) Экспорт diff --git a/SSL/src/CommonModules/МультиязычностьКлиент/Module.bsl b/SSL/src/CommonModules/МультиязычностьКлиент/Module.bsl index cf212917e..65c2e5cd2 100644 --- a/SSL/src/CommonModules/МультиязычностьКлиент/Module.bsl +++ b/SSL/src/CommonModules/МультиязычностьКлиент/Module.bsl @@ -12,7 +12,7 @@ // // Параметры: // Форма - ФормаКлиентскогоПриложения - форма содержащая мультиязычные реквизиты. -// Объект - ДанныеФормыСтруктура - объект на форме: +// Объект - ДанныеФормыСтруктура: // * Ссылка - ЛюбаяСсылка // Элемент - ПолеФормы - элемент формы, для которого будет открыта форма ввода на разных языках. // СтандартнаяОбработка - Булево - признак выполнения стандартной (системной) обработки события. @@ -45,8 +45,8 @@ КонецЕсли; ДополнительныеПараметры = Новый Структура; - ДополнительныеПараметры.Вставить("Форма", Форма); - ДополнительныеПараметры.Вставить("Объект", Объект); + ДополнительныеПараметры.Вставить("Форма", Форма); + ДополнительныеПараметры.Вставить("Объект", Объект); ДополнительныеПараметры.Вставить("ИмяРеквизита", ИмяРеквизита); Оповещение = Новый ОписаниеОповещения("ПослеВводаСтрокНаРазныхЯзыках", МультиязычностьКлиент, ДополнительныеПараметры); @@ -56,6 +56,17 @@ #КонецОбласти +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ОткрытьФормуРегиональныхНастроек(ОписаниеОповещения = Неопределено, Параметры = Неопределено) Экспорт + + ОткрытьФорму("ОбщаяФорма.РегиональныеНастройки", Параметры, , , , , ОписаниеОповещения); + +КонецПроцедуры + +#КонецОбласти + + #Область СлужебныеПроцедурыИФункции Процедура ПослеВводаСтрокНаРазныхЯзыках(Результат, ДополнительныеПараметры) Экспорт @@ -64,7 +75,9 @@ Возврат; КонецЕсли; - ДополнительныеПараметры.Форма.Модифицированность = Истина; + Если Результат.Модифицированность Тогда + ДополнительныеПараметры.Форма.Модифицированность = Истина; + КонецЕсли; Объект = ДополнительныеПараметры.Объект; Если Результат.ХранениеВТабличнойЧасти Тогда diff --git a/SSL/src/CommonModules/МультиязычностьКлиентСервер/Module.bsl b/SSL/src/CommonModules/МультиязычностьКлиентСервер/Module.bsl index e0c31f0da..985fdff2f 100644 --- a/SSL/src/CommonModules/МультиязычностьКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/МультиязычностьКлиентСервер/Module.bsl @@ -36,15 +36,15 @@ ИначеЕсли Данные.Свойство("Ссылка") Или Данные.Ссылка <> Неопределено Тогда ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1 - | Представления.%2 КАК Наименование + | &ИмяРеквизита КАК Наименование |ИЗ - | %1.Представления КАК Представления + | &Представления КАК Представления |ГДЕ | Представления.КодЯзыка = &Язык | И Представления.Ссылка = &Ссылка"; - ТекстЗапроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстЗапроса, - Данные.Ссылка.Метаданные().ПолноеИмя(), ИмяРеквизита); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяРеквизита", "Представления." + ИмяРеквизита); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Представления", Данные.Ссылка.Метаданные().ПолноеИмя() + ".Представления"); Запрос = Новый Запрос(ТекстЗапроса); diff --git a/SSL/src/CommonModules/МультиязычностьПовтИсп/Module.bsl b/SSL/src/CommonModules/МультиязычностьПовтИсп/Module.bsl index a9a63c572..dcf69fa2a 100644 --- a/SSL/src/CommonModules/МультиязычностьПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/МультиязычностьПовтИсп/Module.bsl @@ -25,7 +25,7 @@ КонецЕсли; Если МультиязычностьСервер.ИспользуетсяПервыйДополнительныйЯзык() - Или МультиязычностьСервер.ИспользуетсяПервыйДополнительныйЯзык() Тогда + Или МультиязычностьСервер.ИспользуетсяВторойДополнительныйЯзык() Тогда Возврат Ложь; КонецЕсли; diff --git a/SSL/src/CommonModules/МультиязычностьСервер/Module.bsl b/SSL/src/CommonModules/МультиязычностьСервер/Module.bsl index eb0051e4d..5a976ad0b 100644 --- a/SSL/src/CommonModules/МультиязычностьСервер/Module.bsl +++ b/SSL/src/CommonModules/МультиязычностьСервер/Module.bsl @@ -46,13 +46,8 @@ // Процедура ПриСозданииНаСервере(Форма, Объект = Неопределено, ИмяОбъекта = Неопределено) Экспорт - Если Объект <> Неопределено И МультиязычностьПовтИсп.КонфигурацияИспользуетТолькоОдинЯзык(Объект.Свойство("Представления")) Тогда - Возврат; - КонецЕсли; - - ТипФормы = МультиязычностьПовтИсп.ОпределитьТипФормы(Форма.ИмяФормы); - Если Объект = Неопределено Тогда + ТипФормы = МультиязычностьПовтИсп.ОпределитьТипФормы(Форма.ИмяФормы); Если ТипФормы = "ОсновнаяФормаСписка" Или ТипФормы = "ОсновнаяФормаВыбора" Тогда Если ТипЗнч(ИмяОбъекта) <> Тип("Строка") Тогда ИмяОбъекта = "Список"; @@ -63,6 +58,18 @@ Возврат; КонецЕсли; + ИспользуютсяДополнительныеЯзыки = Ложь; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда + МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); + ИспользуютсяДополнительныеЯзыки = МодульУправлениеПечатьюМультиязычность.ИспользуютсяДополнительныеЯзыкиПечатныхФорм(); + КонецЕсли; + + Если Объект <> Неопределено + И МультиязычностьПовтИсп.КонфигурацияИспользуетТолькоОдинЯзык(Объект.Свойство("Представления")) + И Не ИспользуютсяДополнительныеЯзыки Тогда + Возврат; + КонецЕсли; + СписокРеквизитовФормы = Форма.ПолучитьРеквизиты(); СоздатьПараметрыМультиязычныхРеквизитов = Истина; Для Каждого Реквизит Из СписокРеквизитовФормы Цикл @@ -154,11 +161,7 @@ ОбъектМетаданных = ОбъектМетаданных(ТекущийОбъект); Если МультиязычныеСтрокиВРеквизитах(ОбъектМетаданных) Тогда - Если ТекущийЯзык().КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка() Тогда - - Если ОбщегоНазначения.ЭтоРегистр(ОбъектМетаданных) Или Не ТекущийОбъект.ЭтоНовый() Тогда - Возврат; - КонецЕсли; + Если Не ОбщегоНазначения.ЭтоРегистр(ОбъектМетаданных) И ТекущийОбъект.ЭтоНовый() Тогда ИменаЛокализуемыхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъекта(ОбъектМетаданных); @@ -179,6 +182,9 @@ КонецЦикла; + КонецЕсли; + + Если ТекущийЯзык().КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка() Тогда Возврат; КонецЕсли; @@ -210,14 +216,15 @@ Реквизиты.Добавить(Реквизит.Имя); КонецЦикла; + Представления = ТекущийОбъект.Представления; // ТабличнаяЧасть Отбор = Новый Структура(); Отбор.Вставить("КодЯзыка", ТекущийЯзык().КодЯзыка); - НайденныеСтроки = ТекущийОбъект.Представления.НайтиСтроки(Отбор); + НайденныеСтроки = Представления.НайтиСтроки(Отбор); Если НайденныеСтроки.Количество() > 0 Тогда Представление = НайденныеСтроки[0]; Иначе - Представление = ТекущийОбъект.Представления.Добавить(); + Представление = Представления.Добавить(); Представление.КодЯзыка = ТекущийЯзык().КодЯзыка; КонецЕсли; @@ -226,15 +233,15 @@ КонецЦикла; Отбор.КодЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка; - НайденныеСтроки = ТекущийОбъект.Представления.НайтиСтроки(Отбор); + НайденныеСтроки = Представления.НайтиСтроки(Отбор); Если НайденныеСтроки.Количество() > 0 Тогда Для каждого ИмяРеквизита Из Реквизиты Цикл ТекущийОбъект[ИмяРеквизита] = НайденныеСтроки[0][ИмяРеквизита]; КонецЦикла; - ТекущийОбъект.Представления.Удалить(НайденныеСтроки[0]); + Представления.Удалить(НайденныеСтроки[0]); КонецЕсли; - ТекущийОбъект.Представления.Свернуть("КодЯзыка", СтрСоединить(Реквизиты, ",")); + Представления.Свернуть("КодЯзыка", СтрСоединить(Реквизиты, ",")); КонецПроцедуры @@ -393,19 +400,50 @@ #Область СлужебныйПрограммныйИнтерфейс -Функция СведенияОбЯзыках() Экспорт - Возврат МультиязычностьПовтИсп.СведенияОбЯзыках(); +Функция ТребуетсяУстановкаРегиональныхНастроекИнформационнойБазы() Экспорт + + Если (ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()) + Или ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда + Возврат Ложь; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + Если ЗначениеЗаполнено(Константы.ОсновнойЯзык.Получить()) Тогда + Возврат Ложь; + КонецЕсли; + + Если ОбновлениеИнформационнойБазыСлужебный.РежимОбновленияДанных() = "НачальноеЗаполнение" + И Метаданные.Языки.Количество() > 1 Тогда + Возврат Истина; + КонецЕсли; + + Константы.ОсновнойЯзык.Установить(Метаданные.ОсновнойЯзык.КодЯзыка); + + Возврат Ложь; + КонецФункции -Функция ЯзыкиКонфигурации() Экспорт +Функция КодОсновногоЯзыка() Экспорт - Языки = Новый Массив; - Для каждого Язык Из Метаданные.Языки Цикл - Языки.Добавить(Язык.КодЯзыка); - КонецЦикла; + УстановитьПривилегированныйРежим(Истина); + Возврат ПараметрыСеанса.ОсновнойЯзык; - Возврат Языки; +КонецФункции + +Функция ПредставлениеЯзыка(КодЯзыка) Экспорт + Представление = ПредставлениеКодаЛокализации(КодЯзыка); + ЧастиСтроки = СтрРазделить(Представление, " ", Истина); + ЧастиСтроки[0] = ТРег(ЧастиСтроки[0]); + Представление = СтрСоединить(ЧастиСтроки, " "); + + Возврат Представление; + +КонецФункции + +Функция СведенияОбЯзыках() Экспорт + Возврат МультиязычностьПовтИсп.СведенияОбЯзыках(); КонецФункции Функция ИмяРеквизитаБезСуффиксаЯзык(Знач ИмяРеквизита) Экспорт @@ -601,23 +639,6 @@ КонецФункции -// Возвращает метаданные по коду языка конфигурации. -// -// Параметры: -// КодЯзыка - Строка - код языка, например "en" (как задано в свойстве КодЯзыка метаданных ОбъектМетаданных: Язык). -// -// Возвращаемое значение: -// ОбъектМетаданныхЯзык - если найден по переданному коду языка, иначе Неопределено. -// -Функция ЯзыкПоКоду(Знач КодЯзыка) Экспорт - Для каждого Язык Из Метаданные.Языки Цикл - Если Язык.КодЯзыка = КодЯзыка Тогда - Возврат Язык; - КонецЕсли; - КонецЦикла; - Возврат Неопределено; -КонецФункции - Функция ИспользуетсяПервыйДополнительныйЯзык() Экспорт Возврат Константы.ИспользоватьДополнительныйЯзык1.Получить() = Истина; @@ -916,33 +937,206 @@ КонецПроцедуры -#Область УстаревшиеПроцедурыИФункции - -Процедура ЗарегистрироватьПредопределенныеЭлементыДляОбновления(Параметры, ОбъектМетаданных = Неопределено) Экспорт +Процедура ПриПолученииПараметровЗаполненияПредопределенныхДанных(ПараметрыЗаполнения) Экспорт - ДополнительныеПараметры = Новый Структура; - ДополнительныеПараметры.Вставить("РежимОбновления", "МультиязычныеСтроки"); - ДополнительныеПараметры.Вставить("ПропускатьПустые", Истина); - ДополнительныеПараметры.Вставить("СравниватьТабличныеЧасти",Ложь); - - ОбновлениеИнформационнойБазы.ЗарегистрироватьПредопределенныеЭлементыДляОбновления(Параметры, ОбъектМетаданных, ДополнительныеПараметры); + ПараметрыЗаполнения.Вставить("Языки", СтандартныеПодсистемыСервер.ЯзыкиКонфигурации()); + ПараметрыЗаполнения.Вставить("СведенияОбЯзыках", СведенияОбЯзыках()); КонецПроцедуры -Процедура ЗаполнитьЭлементыНачальнымиДанными(ОбновитьМультиязычныеСтроки = Ложь) Экспорт +Процедура ПриПолученииПараметровЗаполненияОбъекта(ОбъектМетаданных, ПараметрыЗаполнения) Экспорт - ОбновлениеИнформационнойБазыСлужебный.НачальноеЗаполнениеПредопределенныхДанных(ОбновитьМультиязычныеСтроки); + ПараметрыЗаполнения.Вставить("МультиязычныеСтрокиВРеквизитах", МультиязычныеСтрокиВРеквизитах(ОбъектМетаданных)); + ПараметрыЗаполнения.Вставить("ЛокализуемыеРеквизитыОбъекта", МультиязычныеРеквизитыОбъекта(ОбъектМетаданных)); КонецПроцедуры -#КонецОбласти +Процедура НачальноеЗаполнениеПредопределенныхДанныхЛокализуемыеРеквизиты(ЗаполняемыйЭлемент, ПоддерживаетсяИерархия, СтрокаТаблицы, ПараметрыЗаполнения) Экспорт + + Языки = ПараметрыЗаполнения.Языки; + СведенияОбЯзыках = ПараметрыЗаполнения.СведенияОбЯзыках; + ЛокализуемыеРеквизитыОбъекта = ПараметрыЗаполнения.ЛокализуемыеРеквизитыОбъекта; + МультиязычныеСтрокиВРеквизитах = ПараметрыЗаполнения.МультиязычныеСтрокиВРеквизитах; + + Если ЛокализуемыеРеквизитыОбъекта.Количество() > 0 Тогда + Если МультиязычныеСтрокиВРеквизитах Тогда + + Если ЗначениеЗаполнено(СведенияОбЯзыках.ОсновнойЯзык) Тогда + Для каждого ИмяЛокализуемогоРеквизита Из ЛокализуемыеРеквизитыОбъекта Цикл + ЗаполняемыйЭлемент[ИмяЛокализуемогоРеквизита.Ключ] = СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ + "_" + СведенияОбЯзыках.ОсновнойЯзык]; + КонецЦикла; + КонецЕсли; + + Если ЗначениеЗаполнено(СведенияОбЯзыках.Язык1) Тогда + Для каждого ИмяЛокализуемогоРеквизита Из ЛокализуемыеРеквизитыОбъекта Цикл + ЗаполняемыйЭлемент[ИмяЛокализуемогоРеквизита.Ключ + "Язык1"] = СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ + "_" + СведенияОбЯзыках.Язык1]; + КонецЦикла; + КонецЕсли; + + Если ЗначениеЗаполнено(СведенияОбЯзыках.Язык2) Тогда + Для каждого ИмяЛокализуемогоРеквизита Из ЛокализуемыеРеквизитыОбъекта Цикл + ЗаполняемыйЭлемент[ИмяЛокализуемогоРеквизита.Ключ + "Язык2"] = СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ + "_" + СведенияОбЯзыках.Язык2]; + КонецЦикла; + КонецЕсли; + + ИначеЕсли НЕ (ПоддерживаетсяИерархия И ЗаполняемыйЭлемент.ЭтоГруппа) Тогда + + Для каждого КодЯзыка Из Языки Цикл + ПредставленияОбъекта = ЗаполняемыйЭлемент.Представления; // ТаблицаЗначений + НовоеПредставление = ПредставленияОбъекта.Добавить(); + НовоеПредставление.КодЯзыка = КодЯзыка; + Для каждого ИмяЛокализуемогоРеквизита Из ЛокализуемыеРеквизитыОбъекта Цикл + Значение = СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ + "_" + КодЯзыка]; + НовоеПредставление[ИмяЛокализуемогоРеквизита.Ключ] = ?(ЗначениеЗаполнено(Значение), Значение, СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ]); + КонецЦикла; + КонецЦикла; + + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +Процедура ЗаполнитьЭлементыМультиязычнымиНачальнымиДанными(Знач ЗаполняемыйЭлемент, Знач ЛокализуемыеРеквизитыОбъекта, Знач МультиязычныеСтрокиВРеквизитах, Знач ПоддерживаетсяИерархия, Знач СтрокаТаблицы) Экспорт + + Если ЛокализуемыеРеквизитыОбъекта.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + Языки = СтандартныеПодсистемыСервер.ЯзыкиКонфигурации(); + СведенияОбЯзыках = СведенияОбЯзыках(); + + Если МультиязычныеСтрокиВРеквизитах Тогда + + КодЯзыка =СведенияОбЯзыках.ОсновнойЯзык;; + Если ЗначениеЗаполнено(КодЯзыка) Тогда + Для каждого ИмяЛокализуемогоРеквизита Из ЛокализуемыеРеквизитыОбъекта Цикл + ЗаполняемыйЭлемент[ИмяЛокализуемогоРеквизита.Ключ] = СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ + "_" + КодЯзыка]; + КонецЦикла; + КонецЕсли; + + КодЯзыка = СведенияОбЯзыках.Язык1; + Если ЗначениеЗаполнено(КодЯзыка) Тогда + Для каждого ИмяЛокализуемогоРеквизита Из ЛокализуемыеРеквизитыОбъекта Цикл + ЗаполняемыйЭлемент[ИмяЛокализуемогоРеквизита.Ключ + "Язык1"] = СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ + "_" + КодЯзыка]; + КонецЦикла; + КонецЕсли; + + КодЯзыка = СведенияОбЯзыках.Язык2; + Если ЗначениеЗаполнено(КодЯзыка) Тогда + Для каждого ИмяЛокализуемогоРеквизита Из ЛокализуемыеРеквизитыОбъекта Цикл + ЗаполняемыйЭлемент[ИмяЛокализуемогоРеквизита.Ключ + "Язык2"] = СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ + "_" + КодЯзыка]; + КонецЦикла; + КонецЕсли; + + ИначеЕсли Не (ПоддерживаетсяИерархия И ЗаполняемыйЭлемент.ЭтоГруппа) Тогда + + Для каждого КодЯзыка Из Языки Цикл + ТаблицаПредставлений = ЗаполняемыйЭлемент.Представления; // ТаблицаЗначений + НовоеПредставление = ТаблицаПредставлений.Добавить(); + НовоеПредставление.КодЯзыка = КодЯзыка; + Для каждого ИмяЛокализуемогоРеквизита Из ЛокализуемыеРеквизитыОбъекта Цикл + Значение = СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ + "_" + КодЯзыка]; + НовоеПредставление[ИмяЛокализуемогоРеквизита.Ключ] = ?(ЗначениеЗаполнено(Значение), Значение, СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ]); + КонецЦикла; + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + +// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. +Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт + + Обработчик = Обработчики.Добавить(); + Обработчик.Процедура = "МультиязычностьСервер.ОбработатьДанныеДляПереходаНаНовуюВерсию"; + Обработчик.Версия = "3.1.3.270"; + Обработчик.РежимВыполнения = "Отложенно"; + Обработчик.Идентификатор = Новый УникальныйИдентификатор("68d400bb-e5bb-49da-a567-ebf7458b29f8"); + Обработчик.ПроцедураЗаполненияДанныхОбновления = "МультиязычностьСервер.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; + Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; + Обработчик.Комментарий = НСтр("ru = 'Заполнение пустых значений мультиязычных реквизитов значением основного языка.'"); + + ОбъектыСНачальнымЗаполнениемСтрокой = ОбновлениеИнформационнойБазыСлужебный.ОбъектыСНачальнымЗаполнениемСтрокой(); + Обработчик.ЧитаемыеОбъекты = ОбъектыСНачальнымЗаполнениемСтрокой; + Обработчик.ИзменяемыеОбъекты = ОбъектыСНачальнымЗаполнениемСтрокой; + Обработчик.БлокируемыеОбъекты = ОбъектыСНачальнымЗаполнениемСтрокой; + +КонецПроцедуры + +// Добавляет или изменяет значения реквизитов в объекте. +// +// Параметры: +// Объект - СправочникОбъект +// - ДокументОбъект +// - ПланВидовХарактеристикОбъект +// - РегистрСведенийЗапись - заполняемый объект. +// Значения - Структура - где ключ это имя реквизита, а значение содержит строку помещаемую в реквизит. +// КодЯзыка - Строка - код языка реквизита. Например, "ru". +// +Процедура УстановитьЗначенияРеквизитов(Объект, Значения, КодЯзыка = Неопределено) Экспорт + + Если КодЯзыка = Неопределено Тогда + КодЯзыка = КодОсновногоЯзыка(); + КонецЕсли; + + Для каждого ЗначениеРеквизита Из Значения Цикл + СтрокаБезПробелов = СтрЗаменить(ЗначениеРеквизита.Значение, " ", ""); + + Если ОбщегоНазначения.СтрокаВВидеНСтр(СтрокаБезПробелов) Тогда + + Для каждого Язык Из Метаданные.Языки Цикл + + СуффиксЯзыка = ""; + Если КодОсновногоЯзыка() <> Язык.КодЯзыка Тогда + СуффиксЯзыка = СуффиксЯзыка(Язык.КодЯзыка); + Если ПустаяСтрока(СуффиксЯзыка) Тогда + Продолжить; + КонецЕсли; + КонецЕсли; + Если СтрНайти(СтрокаБезПробелов, Язык.КодЯзыка +"=") > 0 Тогда + Объект[ЗначениеРеквизита.Ключ + СуффиксЯзыка] = НСтр(ЗначениеРеквизита.Значение, Язык.КодЯзыка); + КонецЕсли; + + КонецЦикла; + + Иначе + СуффиксЯзыка = ""; + Если ЗначениеЗаполнено(КодЯзыка) Тогда + Если КодОсновногоЯзыка() <> КодЯзыка Тогда + СуффиксЯзыка = СуффиксЯзыка(КодЯзыка); + Если ПустаяСтрока(СуффиксЯзыка) Тогда + Продолжить; + КонецЕсли; + КонецЕсли; + КонецЕсли; + Объект[ЗначениеРеквизита.Ключ + СуффиксЯзыка] = ЗначениеРеквизита.Значение; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса. +// +// Параметры: +// ИменаПараметровСеанса - см. СтандартныеПодсистемыСервер.УстановкаПараметровСеанса.ИменаПараметровСеанса +// УстановленныеПараметры - Массив из Строка - имена параметров, которые уже установлены. +// +Процедура УстановкаПараметровСеанса(Знач ИменаПараметровСеанса, УстановленныеПараметры) Экспорт + + Если ИменаПараметровСеанса = Неопределено + Или ИменаПараметровСеанса.Найти("ОсновнойЯзык") <> Неопределено Тогда + + ПараметрыСеанса.ОсновнойЯзык = КодЯзыкаИнформационнойБазы(); + УстановленныеПараметры.Добавить("ОсновнойЯзык"); + КонецЕсли; + +КонецПроцедуры #КонецОбласти #Область СлужебныеПроцедурыИФункции -// Функция - Объект метаданных -// // Параметры: // Объект - СправочникОбъект // - ДокументОбъект @@ -950,9 +1144,11 @@ // * Ссылка - СправочникСсылка // - ДокументСсылка // - ПланВидовХарактеристикСсылка -// * ИсходныйКлючЗаписи -РегистрСведенийЗапись +// * ИсходныйКлючЗаписи - РегистрСведенийЗапись // // Возвращаемое значение: +// ОбъектМетаданныхСправочник +// ОбъектМетаданныхДокумент // ОбъектМетаданных // Функция ОбъектМетаданных(Объект) Экспорт @@ -986,8 +1182,13 @@ // Функция КодЯзыкаИнформационнойБазы() - Если ЗначениеЗаполнено(Константы.ОсновнойЯзык.Получить()) Тогда - Возврат Константы.ОсновнойЯзык.Получить(); + КодОсновногоЯзыка = Константы.ОсновнойЯзык.Получить(); + Если ЗначениеЗаполнено(КодОсновногоЯзыка) Тогда + Для каждого ЯзыкиКонфигурации Из Метаданные.Языки Цикл + Если СтрСравнить(ЯзыкиКонфигурации.КодЯзыка, КодОсновногоЯзыка) = 0 Тогда + Возврат КодОсновногоЯзыка; + КонецЕсли; + КонецЦикла; КонецЕсли; Возврат Метаданные.ОсновнойЯзык.КодЯзыка; @@ -1014,23 +1215,6 @@ КонецФункции -// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса. -// -// Параметры: -// ИменаПараметровСеанса - см. СтандартныеПодсистемыСервер.УстановкаПараметровСеанса.ИменаПараметровСеанса -// УстановленныеПараметры - Массив из Строка - имена параметров, которые уже установлены. -// -Процедура УстановкаПараметровСеанса(Знач ИменаПараметровСеанса, УстановленныеПараметры) Экспорт - - Если ИменаПараметровСеанса = Неопределено - Или ИменаПараметровСеанса.Найти("ОсновнойЯзык") <> Неопределено Тогда - - ПараметрыСеанса.ОсновнойЯзык = КодЯзыкаИнформационнойБазы(); - УстановленныеПараметры.Добавить("ОсновнойЯзык"); - КонецЕсли; - -КонецПроцедуры - Функция КодПервогоДополнительногоЯзыкаИнформационнойБазы() Экспорт Если Не ИспользуетсяПервыйДополнительныйЯзык() Тогда @@ -1119,13 +1303,13 @@ ДлинаСуффиксаЯзыка = ДлинаСуффиксаЯзыка(); - ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 0 + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 0 | * |ИЗ - | &ПолноеИмя КАК ДанныеИсточника"; - - Запрос = Новый Запрос; - Запрос.Текст = СтрЗаменить(ТекстЗапроса, "&ПолноеИмя", ОбъектМетаданных.ПолноеИмя()); + | &ИмяТаблицы КАК ДанныеИсточника"; + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицы", ОбъектМетаданных.ПолноеИмя()); РезультатЗапроса = Запрос.Выполнить(); @@ -1207,8 +1391,6 @@ КонецФункции -// Обновление данных - Процедура ЗаполнитьПустыеМультиязычныеРеквизитыЗначениемОсновногоЯзыка(Выборка, ОбъектМетаданных, ИтогоОбработано) ОбъектовОбработано = 0; @@ -1290,9 +1472,6 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Начальное заполнение элементов данными. - // Параметры: // Реквизит - ОбъектМетаданныхРеквизит // - ОписаниеСтандартногоРеквизита @@ -1301,21 +1480,4 @@ Возврат СтрЗаканчиваетсяНа(ИмяРеквизита, "Язык1") Или СтрЗаканчиваетсяНа(ИмяРеквизита, "Язык2"); КонецФункции -Функция СтрокаВВидеНСтр(ПроверяемаяСтрока) Экспорт - - ВариантыСовпадений = Новый Массив; - Для каждого Язык Из Метаданные.Языки Цикл - ВариантыСовпадений.Добавить(Язык.КодЯзыка + "="); - КонецЦикла; - - Для каждого ВариантСовпадения Из ВариантыСовпадений Цикл - Если СтрНайти(ПроверяемаяСтрока, ВариантСовпадения) > 0 Тогда - Возврат Истина; - КонецЕсли; - КонецЦикла; - - Возврат Ложь; - -КонецФункции - #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/НапоминанияПользователя/Module.bsl b/SSL/src/CommonModules/НапоминанияПользователя/Module.bsl index d5ac919db..6598fc93b 100644 --- a/SSL/src/CommonModules/НапоминанияПользователя/Module.bsl +++ b/SSL/src/CommonModules/НапоминанияПользователя/Module.bsl @@ -27,7 +27,7 @@ // Возвращает список напоминаний текущего пользователя. // // Параметры: -// Предмет - Ссылка +// Предмет - ЛюбаяСсылка // - Массив - предмет или предметы напоминания. // Идентификатор - Строка - уточняет предмет напоминания, например, "ДеньРождения". // diff --git a/SSL/src/CommonModules/НапоминанияПользователяПереопределяемый/Module.bsl b/SSL/src/CommonModules/НапоминанияПользователяПереопределяемый/Module.bsl index 51602978d..db6b0a26d 100644 --- a/SSL/src/CommonModules/НапоминанияПользователяПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/НапоминанияПользователяПереопределяемый/Module.bsl @@ -12,7 +12,7 @@ // // Параметры: // Настройки - Структура: -// * Расписания - Соответствие: +// * Расписания - Соответствие из КлючИЗначение: // ** Ключ - Строка - представление расписания; // ** Значение - РасписаниеРегламентногоЗадания - вариант расписания. // * СтандартныеИнтервалы - Массив - содержит строковые представления интервалов времени. diff --git a/SSL/src/CommonModules/НастройкаПорядкаЭлементов/Module.bsl b/SSL/src/CommonModules/НастройкаПорядкаЭлементов/Module.bsl index a0289575a..d62ce5f92 100644 --- a/SSL/src/CommonModules/НастройкаПорядкаЭлементов/Module.bsl +++ b/SSL/src/CommonModules/НастройкаПорядкаЭлементов/Module.bsl @@ -117,8 +117,8 @@ // // Параметры: // Ссылка - СправочникСсылка -// - ПланВидовХарактеристикСсылка - перемещаемый элемент, -// ПараметрыВыполнения - см. ПодключаемыеКомандыКлиентСервер.ШаблонПараметровВыполненияКоманды +// - ПланВидовХарактеристикСсылка - перемещаемый элемент +// ПараметрыВыполнения - см. ПодключаемыеКомандыКлиентСервер.ПараметрыВыполненияКоманды // Процедура Подключаемый_ПереместитьЭлемент(Ссылка, ПараметрыВыполнения) Экспорт Направление = ПараметрыВыполнения.ОписаниеКоманды.Идентификатор; @@ -142,10 +142,10 @@ // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту. // // Параметры: -// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы -// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники -// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки -// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды +// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы +// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники +// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки +// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды // Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт diff --git a/SSL/src/CommonModules/НастройкаПорядкаЭлементовСлужебный/Module.bsl b/SSL/src/CommonModules/НастройкаПорядкаЭлементовСлужебный/Module.bsl index 132c698d1..70d7eec26 100644 --- a/SSL/src/CommonModules/НастройкаПорядкаЭлементовСлужебный/Module.bsl +++ b/SSL/src/CommonModules/НастройкаПорядкаЭлементовСлужебный/Module.bsl @@ -12,8 +12,8 @@ // // Параметры: // Информация - Структура - информация о метаданных объекта; -// Родитель - Ссылка - ссылка на родителя объекта; -// Владелец - Ссылка - ссылка на владельца объекта. +// Родитель - ЛюбаяСсылка - ссылка на родителя объекта; +// Владелец - ЛюбаяСсылка - ссылка на владельца объекта. // // Возвращаемое значение: // Число - значение реквизита доп. упорядочивания. @@ -205,7 +205,7 @@ ПроверитьУпорядочиваниеЭлементов(ТекущийЭлементСсылка.Метаданные()); - НастройкиКомпоновкиДанных = ЭлементСписок.ПолучитьИсполняемыеНастройкиКомпоновкиДанных(); + НастройкиКомпоновкиДанных = ЭлементСписок.ПолучитьИсполняемыеНастройкиКомпоновкиДанных(); // НастройкиКомпоновкиДанных ТекстОшибки = ПроверитьСортировкуВСписке(НастройкиКомпоновкиДанных); Если Не ПустаяСтрока(ТекстОшибки) Тогда Возврат ТекстОшибки; @@ -332,7 +332,7 @@ Функция ПроверитьСортировкуВСписке(НастройкиКомпоновкиДанных) - ЭлементыПорядка = НастройкиКомпоновкиДанных.Порядок.Элементы; + ЭлементыПорядка = НастройкиКомпоновкиДанных.Порядок.Элементы; // КоллекцияЭлементовПорядкаКомпоновкиДанных ДополнительныеПоляПорядка = Новый Массив; ДополнительныеПоляПорядка.Добавить(Новый ПолеКомпоновкиДанных("ДополнительноеПолеПорядка1")); diff --git a/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовВызовСервера/Module.bsl b/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовВызовСервера/Module.bsl index 4c827863b..6c8e02505 100644 --- a/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовВызовСервера/Module.bsl @@ -13,7 +13,8 @@ // в кластере серверов были внесены, но не была завершена операция, в рамках которой требовалось // изменить настройки разрешений на использование внешних ресурсов. // -// Возвращаемое значение - Структура: +// Возвращаемое значение: +// Структура: // РезультатПроверки - Булево - если Ложь - то операция не была завершена и требуется предложить // пользователю выполнить отмену изменений в настройках профилей // безопасности в кластере серверов, @@ -37,7 +38,7 @@ // Удаляет запросы на использование внешних ресурсов, если пользователь отказался от их применения. // // Параметры: -// ИдентификаторыЗапросов - Массив Из УникальныйИдентификатор - массив идентификаторов запросов на +// ИдентификаторыЗапросов - Массив из УникальныйИдентификатор - массив идентификаторов запросов на // использование внешних ресурсов. // Процедура ОтменаПримененияЗапросовНаИспользованиеВнешнихРесурсов(Знач ИдентификаторыЗапросов) Экспорт diff --git a/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl index aa4ba94fa..a214567ca 100644 --- a/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl @@ -9,6 +9,7 @@ #Область ПрограммныйИнтерфейс #Область ИнициализацияОбмена + // Добавляет строку в таблицу правил конвертации и инициализирует значение в колонке "Свойства". // Используется в модуле менеджера обмена при заполнении таблицы правил конвертации объектов. // @@ -1490,7 +1491,7 @@ // // Параметры: // КомпонентыОбмена - Структура - содержит все правила и параметры обмена. -// ИмяФайлаОбмена - строка - имя файла обмена. +// ИмяФайлаОбмена - Строка - имя файла обмена. // Процедура ОткрытьФайлВыгрузки(КомпонентыОбмена, ИмяФайлаОбмена = "") Экспорт @@ -2049,7 +2050,7 @@ // // Параметры: // КомпонентыОбмена - Структура - содержит все правила и параметры обмена. -// ИмяФайлаОбмена - строка - имя файла обмена. +// ИмяФайлаОбмена - Строка - имя файла обмена. // Процедура ОткрытьФайлЗагрузки(КомпонентыОбмена, ИмяФайлаОбмена) Экспорт @@ -2318,9 +2319,15 @@ КонецЦикла; - Если Приемник.Свойство("КлючевыеСвойства") - И Приемник.КлючевыеСвойства.Свойство("Ссылка") Тогда - Приемник.Вставить("Ссылка", Приемник.КлючевыеСвойства.Ссылка); + КлючевыеСвойстваКопия = Неопределено; + СсылкаКопия = Неопределено; + Если Приемник.Свойство("КлючевыеСвойства", КлючевыеСвойстваКопия) + И ТипЗнч(КлючевыеСвойстваКопия) = Тип("Структура") + И КлючевыеСвойстваКопия.Свойство("Ссылка", СсылкаКопия) + Тогда + + Приемник.Вставить("Ссылка", СсылкаКопия); + КонецЕсли; Возврат Приемник; @@ -2374,7 +2381,7 @@ // Тип - Строка - тип объекта строкой. // ЗаписатьОбъект - Булево - переменная принимает значение Ложь если запись объекта не была выполнена. // ОтправкаНазад - Булево - служебный флаг для установки соответствующего параметра обмена данными объекта. -// УникальныйИдентификаторСтрокой - строка - уникальный идентификатор объекта в виде строки. +// УникальныйИдентификаторСтрокой - Строка - уникальный идентификатор объекта в виде строки. // Процедура ЗаписатьОбъектВИБ(КомпонентыОбмена, Объект, Тип, ЗаписатьОбъект = Ложь, Знач ОтправкаНазад = Ложь, УникальныйИдентификаторСтрокой = "") Экспорт @@ -2767,6 +2774,7 @@ #Область СлужебныйПрограммныйИнтерфейс #Область ИнициализацияОбмена + // Создает таблицу значений для хранения заголовка пакета с данными. // // Возвращаемое значение: @@ -2812,7 +2820,7 @@ Функция ПравилаРегистрацииОбъектов(УзелПланаОбмена) Экспорт ПравилаРегистрацииОбъектов = ОбменДаннымиСобытия.ПравилаРегистрацииОбъектовПланаОбмена( - ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелПланаОбмена)); + ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелПланаОбмена)); ТаблицаПравилаРегистрацииОбъектов = ПравилаРегистрацииОбъектов.Скопировать(, "ОбъектМетаданныхИмя, ИмяРеквизитаФлага"); ТаблицаПравилаРегистрацииОбъектов.Индексы.Добавить("ОбъектМетаданныхИмя"); @@ -3127,25 +3135,27 @@ // Функция МассивУзловДляРегистрацииВыгружатьПриНеобходимости(Ссылка, ИмяПланаОбмена, ИмяРеквизитаФлага) Экспорт - ТекстЗапроса = " - |ВЫБРАТЬ РАЗЛИЧНЫЕ + ШаблонТекста = "ПланОбмена.%1"; + ИмяПланаОбменаСтрокой = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекста, ИмяПланаОбмена); + + ШаблонТекстаПоле = "ШапкаПланаОбмена.%1"; + ИмяРеквизитаФлагаСтрокой = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекстаПоле, ИмяРеквизитаФлага); + + ТекстЗапроса = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ШапкаПланаОбмена.Ссылка КАК Узел |ИЗ - | ПланОбмена.[ИмяПланаОбмена] КАК ШапкаПланаОбмена - |ЛЕВОЕ СОЕДИНЕНИЕ - | РегистрСведений.ДанныеОбъектовДляРегистрацииВОбменах КАК ДанныеОбъектовДляРегистрацииВОбменах - |ПО - | ШапкаПланаОбмена.Ссылка = ДанныеОбъектовДляРегистрацииВОбменах.УзелИнформационнойБазы - | И ДанныеОбъектовДляРегистрацииВОбменах.Ссылка = &Объект + | &ИмяПланаОбмена КАК ШапкаПланаОбмена + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеОбъектовДляРегистрацииВОбменах КАК ДанныеОбъектовДляРегистрацииВОбменах + | ПО ШапкаПланаОбмена.Ссылка = ДанныеОбъектовДляРегистрацииВОбменах.УзелИнформационнойБазы + | И ДанныеОбъектовДляРегистрацииВОбменах.Ссылка = &Объект |ГДЕ - | НЕ ШапкаПланаОбмена.ЭтотУзел - | И ШапкаПланаОбмена.[ИмяРеквизитаФлага] = ЗНАЧЕНИЕ(Перечисление.РежимыВыгрузкиОбъектовОбмена.ВыгружатьПриНеобходимости) + | НЕ ШапкаПланаОбмена.ЭтотУзел + | И &ИмяРеквизитаФлага = ЗНАЧЕНИЕ(Перечисление.РежимыВыгрузкиОбъектовОбмена.ВыгружатьПриНеобходимости) | И НЕ ШапкаПланаОбмена.ПометкаУдаления - | И ДанныеОбъектовДляРегистрацииВОбменах.Ссылка = &Объект - |"; + | И ДанныеОбъектовДляРегистрацииВОбменах.Ссылка = &Объект"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяПланаОбмена]", ИмяПланаОбмена); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяРеквизитаФлага]", ИмяРеквизитаФлага); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяПланаОбмена", ИмяПланаОбменаСтрокой); //@Query-part-1 + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяРеквизитаФлага", ИмяРеквизитаФлагаСтрокой); Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; @@ -3237,14 +3247,6 @@ КонецПроцедуры -#КонецОбласти - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -#Область ИнициализацияОбмена - // Возвращаемое значение: // ТаблицаЗначений - таблица правил обработки (ПОД): // * Имя - Строка @@ -3257,7 +3259,7 @@ // * ПриОбработке - Строка // * ИспользуемыеПКО - Массив из Строка // -Функция ТаблицаПравилОбработкиДанных(КомпонентыОбмена) +Функция ТаблицаПравилОбработкиДанных(КомпонентыОбмена) Экспорт XMLСхема = КомпонентыОбмена.XMLСхема; ВерсияФорматаМенеджераОбмена = КомпонентыОбмена.ВерсияФорматаМенеджераОбмена; @@ -3320,6 +3322,14 @@ Возврат ПравилаОбработкиДанных; КонецФункции +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область ИнициализацияОбмена + // Параметры: // * ВерсияФорматаМенеджераОбмена - Строка // @@ -3482,7 +3492,7 @@ Если КомпонентыОбмена.НаправлениеОбмена = "Получение" Тогда - МетаданныеОбъекта = ПравилоКонвертации.ОбъектДанных; + МетаданныеОбъекта = ПравилоКонвертации.ОбъектДанных; // ОбъектМетаданныхСправочник, и др. ПравилоКонвертации.ИмяТаблицыПолученныхДанных = МетаданныеОбъекта.ПолноеИмя(); ПравилоКонвертации.ПредставлениеТипаПолученныхДанных = МетаданныеОбъекта.Представление(); @@ -3783,7 +3793,7 @@ Если ЭтоТаблицаОбъекта(Свойство) Тогда ИмяСвойстваСтроки = Свойство.Тип.Свойства[0].Имя; Для ИндексСтроки = 0 По Значение[ИмяСвойстваСтроки].Количество() - 1 Цикл - СтрокаXDTO = ОбъектXDTO[Свойство.Имя][ИмяСвойстваСтроки].Получить(ИндексСтроки); + СтрокаXDTO = ОбъектXDTO[Свойство.Имя][ИмяСвойстваСтроки].Получить(ИндексСтроки); // ОбъектXDTO РасширениеСтрокиXDTO = Значение[ИмяСвойстваСтроки].Получить(ИндексСтроки); Для Каждого СвойствоСтроки Из РасширениеСтрокиXDTO.Свойства() Цикл @@ -4016,7 +4026,7 @@ КонецПроцедуры // Параметры: -// КомпонентыОбмена - структура - содержит все ключевые данные для обмена (ПКО, ПКПД, ПОД и т.д.). +// КомпонентыОбмена - Структура - содержит все ключевые данные для обмена (ПКО, ПКПД, ПОД и т.д.). // Ссылка - удаленный объект. // ПравилоКонвертации - строка таблицы правил конвертации объектов, в соответствии с которой выполняется преобразование. // @@ -5288,9 +5298,9 @@ "ВЫБРАТЬ | Таблица.Ссылка КАК Ссылка |ИЗ - | [ПолноеИмя] КАК Таблица + | &ПолноеИмя КАК Таблица |ГДЕ - | [УсловиеОтбора]"; + | &УсловиеОтбора"; Отбор = Новый Массив; @@ -5324,8 +5334,8 @@ Запрос.УстановитьПараметр("УзелОбмена", УзелОбмена); КонецЕсли; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[УсловиеОтбора]", УсловиеОтбора); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ПолноеИмя]", ПравилоКонвертации.ПолноеИмя); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеОтбора", УсловиеОтбора); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмя", ПравилоКонвертации.ПолноеИмя); Запрос.Текст = ТекстЗапроса; РезультатЗапроса = Запрос.Выполнить(); @@ -6762,7 +6772,8 @@ // КомпонентыОбмена - Структура - содержит все правила и параметры обмена. // ПравилоОбработки - СтрокаТаблицыЗначений - строка правил обработки данных, соответствующая обрабатываемому ПОД. // -// Возвращаемое значение - то что вернет обработчик ВыборкаДанных (например, выборка результата запроса). +// Возвращаемое значение: +// Произвольный - то, что вернет обработчик ВыборкаДанных, например, выборка результата запроса. // Функция ВыборкаДанных(КомпонентыОбмена, ПравилоОбработки) @@ -6789,14 +6800,18 @@ КонецПопытки; Иначе - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | Ссылка - |ИЗ - | " + ПравилоОбработки.ИмяТаблицыДляВыборки; + ТекстЗапроса = + "ВЫБРАТЬ + | ПсевдонимТаблицыМетаданных.Ссылка + |ИЗ + | &ИмяТаблицыМетаданных КАК ПсевдонимТаблицыМетаданных"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыМетаданных", ПравилоОбработки.ИмяТаблицыДляВыборки); + + Запрос = Новый Запрос(ТекстЗапроса); ВыборкаДанных = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); + КонецЕсли; Возврат ВыборкаДанных; @@ -6969,7 +6984,7 @@ // СтрокаОшибки - Строка - содержит строку модуля где возникла ошибка. // // Возвращаемое значение: -// структура - объект типа структура +// Структура - объект типа структура // Функция ЗаписьПротоколаОбмена(КСообщенияОбОшибках = "", Знач СтрокаОшибки = "") @@ -7020,7 +7035,7 @@ // Функция формирует представление объекта, для записи в протокол обмена. // // Параметры: -// Объект - Ссылка - ссылка на любой ОМД; +// Объект - ЛюбаяСсылка - ссылка на любой ОМД; // - Объект - ОМД; // - ОбъектXDTO - объект XDTO; // - Структура. @@ -7494,7 +7509,7 @@ // Может быть использован как значение параметра встроенной функции Тип(). // // Параметры: -// ОбъектМетаданных - объект метаданных, по которому необходимо определить имя типа; +// ОбъектМетаданных - ОбъектМетаданных - по которому необходимо определить имя типа; // // Возвращаемое значение: // Строка - например, "СправочникСсылка.Номенклатура". @@ -7556,35 +7571,48 @@ КонецПроцедуры Процедура ДобавитьВыгруженныеОбъектыВРегистрПубличныеИдентификаторы(КомпонентыОбмена) + УзелДляОбмена = КомпонентыОбмена.УзелКорреспондента; СоставПланаОбмена = УзелДляОбмена.Метаданные().Состав; - ТекстЗапроса = "ВЫБРАТЬ + + ШаблонТекстаЗапроса = + "ВЫБРАТЬ | ТаблицаИзменений.Ссылка |ИЗ - | #ПолноеИмя#.Изменения КАК ТаблицаИзменений + | &ИмяТаблицыМетаданных КАК ТаблицаИзменений |ЛЕВОЕ СОЕДИНЕНИЕ | РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов КАК ПубличныеИдентификаторы |ПО ПубличныеИдентификаторы.УзелИнформационнойБазы = &Узел И ПубличныеИдентификаторы.Ссылка = ТаблицаИзменений.Ссылка |ГДЕ ТаблицаИзменений.Узел = &Узел И ТаблицаИзменений.НомерСообщения <= &НомерСообщения | И ПубличныеИдентификаторы.Идентификатор ЕСТЬ NULL"; + Для Каждого ЭлементСостава Из СоставПланаОбмена Цикл + Если НЕ ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(ЭлементСостава.Метаданные) Тогда + Продолжить; + КонецЕсли; - ПолноеИмяОбъекта = ЭлементСостава.Метаданные.ПолноеИмя(); - Запрос = Новый Запрос; - Запрос.Текст = СтрЗаменить(ТекстЗапроса, "#ПолноеИмя#", ПолноеИмяОбъекта); + + ИмяТаблицыМетаданных = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.Изменения", ЭлементСостава.Метаданные.ПолноеИмя()); + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяТаблицыМетаданных", ИмяТаблицыМетаданных); + + Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Узел", УзелДляОбмена); Запрос.УстановитьПараметр("НомерСообщения", КомпонентыОбмена.НомерСообщенияПолученногоКорреспондентом); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл + СтруктураЗаписи = Новый Структура; СтруктураЗаписи.Вставить("Ссылка", Выборка.Ссылка); СтруктураЗаписи.Вставить("УзелИнформационнойБазы", КомпонентыОбмена.УзелКорреспондента); СтруктураЗаписи.Вставить("Идентификатор", Выборка.Ссылка.УникальныйИдентификатор()); РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов.ДобавитьЗапись(СтруктураЗаписи, Истина); + КонецЦикла; + КонецЦикла; + КонецПроцедуры Функция XMLБазоваяСхема() diff --git a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/Module.bsl index c2a7ac9b1..4b5fbc940 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/Module.bsl @@ -72,9 +72,9 @@ // Заполняет соответствие имен методов их псевдонимам для вызова из очереди заданий. // // Параметры: -// СоответствиеИменПсевдонимам - Соответствие - имена методов и соответствующие им псевдонимы: +// СоответствиеИменПсевдонимам - Соответствие из КлючИЗначение - имена методов и соответствующие им псевдонимы: // Ключ - псевдоним метода, например ОчиститьОбластьДанных -// Значение - Имя метода для вызова, например РаботаВМоделиСервиса.ОчиститьОбластьДанных +// Значение - имя метода для вызова, например РаботаВМоделиСервиса.ОчиститьОбластьДанных // В качестве значения можно указать Неопределено, в этом случае считается что имя // совпадает с псевдонимом. // @@ -189,6 +189,8 @@ Типы.Добавить(Метаданные.Константы.НастройкиПодчиненногоУзлаРИБ); Типы.Добавить(Метаданные.Константы.ПрефиксПоследнегоАвтономногоРабочегоМеста); + Типы.Добавить(Метаданные.Справочники.СценарииОбменовДанными); + Типы.Добавить(Метаданные.РегистрыСведений.ДанныеОбъектовДляРегистрацииВОбменах); Типы.Добавить(Метаданные.РегистрыСведений.ИзмененияОбщихДанныхУзлов); Типы.Добавить(Метаданные.РегистрыСведений.НастройкиОбменаДаннымиXDTO); @@ -307,8 +309,8 @@ // Если файл найден, то возвращается его имя, при этом удаляется информация об этом файле из хранилища. // // Параметры: -// ИдентификаторФайла - УникальныйИдентификатор - идентификатор получаемого файла. -// ИмяФайла - Строка - имя файла, из хранилища. +// ИдентификаторФайла - УникальныйИдентификатор - идентификатор получаемого файла. +// ИмяФайла - Строка - имя файла, из хранилища. // Процедура ПриПолученииФайлаИзХранилища(Знач ИдентификаторФайла, ИмяФайла) Экспорт @@ -502,11 +504,7 @@ // Обработчики обновления ИБ -// Добавляет процедуры-обработчики обновления, необходимые данной подсистеме. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// +// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Если Не ОбщегоНазначения.РазделениеВключено() Тогда @@ -937,6 +935,18 @@ КонецПроцедуры +Процедура АдаптироватьТекстЗапросаОРезультатахОбменаВСервисе(ТекстЗапроса) Экспорт + + Если ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "РегистрСведений.СостоянияОбменовДанными", + "РегистрСведений.СостоянияОбменовДаннымиОбластейДанных"); + + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -1339,7 +1349,7 @@ // // Параметры: // Дескриптор - ОбъектXDTO Descriptor. -// Загружать - булево - возвращаемое. +// Загружать - Булево - возвращаемое. // Процедура ДоступныНовыеДанные(Знач Дескриптор, Загружать) Экспорт @@ -1376,7 +1386,7 @@ // // Параметры: // Дескриптор - ОбъектXDTO Дескриптор. -// ПутьКФайлу - Строка или Неопределено - полное имя извлеченного файла. Файл будет автоматически удален +// ПутьКФайлу - Строка, Неопределено - полное имя извлеченного файла. Файл будет автоматически удален // после завершения процедуры. Если в менеджере сервиса не был // указан файл - значение аргумента равно Неопределено. // @@ -1443,6 +1453,9 @@ КонецПроцедуры +// Возвращаемое значение: +// ПланОбменаСсылка +// Функция МенеджерПланаОбменаКонечныхТочек() Экспорт МетаданныеОбменСообщениями = Метаданные.НайтиПоТипу(Метаданные.ОпределяемыеТипы.КонечнаяТочкаОбменаСообщениями.Тип.Типы()[0]).ПолноеИмя(); @@ -1504,7 +1517,7 @@ // Отправляет сообщение // // Параметры: -// Сообщение - ОбъектXDTO - сообщение. +// Сообщение - ОбъектXDTO - сообщение. // Функция ОтправитьСообщение(Знач Сообщение) Экспорт @@ -2104,6 +2117,7 @@ КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Процедуры и функции монитора обмена данными @@ -2172,7 +2186,7 @@ | ПланыОбмена.УзелИнформационнойБазы КАК УзелИнформационнойБазы, | ПланыОбмена.ОбластьДанныхОсновныеДанные КАК ОбластьДанных, | - | [ДополнительныеСвойстваПланаОбмена] + | &ДополнительныеСвойстваПланаОбмена, | | ЕСТЬNULL(СостоянияОбменовДаннымиВыгрузка.РезультатВыполненияОбмена, 0) КАК РезультатПоследнейВыгрузкиДанных, | ЕСТЬNULL(СостоянияОбменовДаннымиЗагрузка.РезультатВыполненияОбмена, 0) КАК РезультатПоследнейЗагрузкиДанных, @@ -2191,7 +2205,7 @@ | ЛЕВОЕ СОЕДИНЕНИЕ СостоянияУспешныхОбменовДаннымиВыгрузка КАК СостоянияУспешныхОбменовДаннымиВыгрузка | ПО ПланыОбмена.УзелИнформационнойБазы = СостоянияУспешныхОбменовДаннымиВыгрузка.УзелИнформационнойБазы | - |[Отбор] + |ГДЕ &Отбор | |УПОРЯДОЧИТЬ ПО | ПланыОбмена.ИмяПланаОбмена, @@ -2203,7 +2217,7 @@ ПодготовитьДанныеУзловПлановОбменаДляМонитора(МенеджерВременныхТаблиц, ПланыОбменаМетода, ДополнительныеСвойстваПланаОбмена); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ДополнительныеСвойстваПланаОбмена]", + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ДополнительныеСвойстваПланаОбмена,", ПолучитьДополнительныеСвойстваПланаОбменаСтрокой(ДополнительныеСвойстваПланаОбмена)); Если ТолькоНеуспешные Тогда @@ -2215,7 +2229,7 @@ Отбор = ""; КонецЕсли; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[Отбор]", Отбор); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ГДЕ &Отбор", Отбор); Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; @@ -2272,17 +2286,19 @@ | |ОБЪЕДИНИТЬ ВСЕ | - |//////////////////////////////////////////////////////// {[ИмяПланаОбмена]} + |//////////////////////////////////////////////////////// {ИмяПланаОбменаСиноним}" + + + " |ВЫБРАТЬ | - | [ДополнительныеСвойстваПланаОбмена] + | &ДополнительныеСвойстваПланаОбмена, | | Ссылка КАК УзелИнформационнойБазы, | ОбластьДанныхОсновныеДанные КАК ОбластьДанныхОсновныеДанные, | Наименование КАК Наименование, - | ""[ИмяПланаОбменаСиноним]"" КАК ИмяПланаОбмена + | ""ИмяПланаОбменаСиноним"" КАК ИмяПланаОбмена |ИЗ - | ПланОбмена.[ИмяПланаОбмена] + | &ИмяПланаОбмена |ГДЕ | РегистрироватьИзменения | И НЕ ПометкаУдаления @@ -2292,11 +2308,15 @@ Если ПланыОбменаМетода.Количество() > 0 Тогда + ШаблонТекста = "ПланОбмена.%1"; + Для Каждого ИмяПланаОбмена Из ПланыОбменаМетода Цикл - ТекстЗапросаДляПланаОбмена = СтрЗаменить(ШаблонЗапроса, "[ИмяПланаОбмена]", ИмяПланаОбмена); - ТекстЗапросаДляПланаОбмена = СтрЗаменить(ТекстЗапросаДляПланаОбмена, "[ИмяПланаОбменаСиноним]", Метаданные.ПланыОбмена[ИмяПланаОбмена].Синоним); - ТекстЗапросаДляПланаОбмена = СтрЗаменить(ТекстЗапросаДляПланаОбмена, "[ДополнительныеСвойстваПланаОбмена]", ДополнительныеСвойстваПланаОбменаСтрокой); + ИмяПланаОбменаСтрокой = СтрШаблон(ШаблонТекста, ИмяПланаОбмена); + + ТекстЗапросаДляПланаОбмена = СтрЗаменить(ШаблонЗапроса, "&ИмяПланаОбмена", ИмяПланаОбменаСтрокой); + ТекстЗапросаДляПланаОбмена = СтрЗаменить(ТекстЗапросаДляПланаОбмена, "ИмяПланаОбменаСиноним", Метаданные.ПланыОбмена[ИмяПланаОбмена].Синоним); + ТекстЗапросаДляПланаОбмена = СтрЗаменить(ТекстЗапросаДляПланаОбмена, "&ДополнительныеСвойстваПланаОбмена,", ДополнительныеСвойстваПланаОбменаСтрокой); // удаляем литерал объединения для первой таблицы Если ПустаяСтрока(ТекстЗапроса) Тогда @@ -2332,7 +2352,7 @@ ТекстЗапроса = " |ВЫБРАТЬ | - | [ДополнительныеСвойстваБезИсточникаДанныхСтрокой] + | &ДополнительныеСвойстваБезИсточникаДанныхСтрокой, | | Неопределено КАК УзелИнформационнойБазы, | 0 КАК ОбластьДанныхОсновныеДанные, @@ -2340,7 +2360,7 @@ | Неопределено КАК ИмяПланаОбмена |"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ДополнительныеСвойстваБезИсточникаДанныхСтрокой]", ДополнительныеСвойстваБезИсточникаДанныхСтрокой); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ДополнительныеСвойстваБезИсточникаДанныхСтрокой,", ДополнительныеСвойстваБезИсточникаДанныхСтрокой); КонецЕсли; @@ -2348,7 +2368,7 @@ |//////////////////////////////////////////////////////// {ПланыОбменаКонфигурации} |ВЫБРАТЬ | - | [ДополнительныеСвойстваПланаОбмена] + | &ДополнительныеСвойстваПланаОбмена, | | УзелИнформационнойБазы, | ОбластьДанныхОсновныеДанные, @@ -2356,14 +2376,14 @@ | ИмяПланаОбмена |ПОМЕСТИТЬ ПланыОбменаКонфигурации |ИЗ - | ( - | [ТекстЗапроса] - | ) КАК ВложенныйЗапрос + | &ТекстЗапроса + | КАК ВложенныйЗапрос |; |"; - ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "[ТекстЗапроса]", ТекстЗапроса); - ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "[ДополнительныеСвойстваПланаОбмена]", ДополнительныеСвойстваПланаОбменаСтрокой); + ТекстВставкиЗапроса = СтрШаблон("(%1)", ТекстЗапроса); + ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "&ТекстЗапроса", ТекстВставкиЗапроса); + ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "&ДополнительныеСвойстваПланаОбмена,", ДополнительныеСвойстваПланаОбменаСтрокой); Запрос.Текст = ТекстЗапросаРезультат; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; @@ -2448,7 +2468,7 @@ // пользователей. // // Возвращаемое значение: -// Структура - параметры. +// Структура - параметры. // Функция ПараметрыАвтономнойРаботыПриЗавершенииРаботы() diff --git a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПереопределяемый/Module.bsl index 0b93f9018..fe3721e76 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПереопределяемый/Module.bsl @@ -16,7 +16,7 @@ // Используется в помощнике создания автономного рабочего места. // // Параметры: -// Версия - Строка - версия требуемого приложения 1С:Предприятия в формате +// Версия - Строка - версия требуемого приложения 1С:Предприятия в формате // "<основная версия>.<младшая версия>.<релиз>.<дополнительный номер релиза>". // Например, "8.3.3.715". // diff --git a/SSL/src/CommonModules/ОбменДаннымиВызовСервера/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВызовСервера/Module.bsl index 8b6131e36..5e482b5cd 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВызовСервера/Module.bsl @@ -6,11 +6,6 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Обмен данными" -// -//////////////////////////////////////////////////////////////////////////////// - #Область ПрограммныйИнтерфейс // Устанавливает значение константы ДатаОбновленияПовторноИспользуемыхЗначенийМРО. @@ -207,7 +202,7 @@ // УзелИнформационнойБазы - ПланОбменаСсылка - ссылка на анализируемый узел плана обмена. // // Возвращаемое значение: -// Массив - , содержащий полные имена объектов метаданных. +// Массив - содержащий полные имена объектов метаданных. // Функция ИменаМетаданныхНеВыгружаемыхОбъектовУзла(Знач УзелИнформационнойБазы) Экспорт Результат = Новый Массив; diff --git a/SSL/src/CommonModules/ОбменДаннымиКлиент/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиКлиент/Module.bsl index 16e44418d..ac8cedcb7 100644 --- a/SSL/src/CommonModules/ОбменДаннымиКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиКлиент/Module.bsl @@ -6,11 +6,6 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Обмен данными" -// -//////////////////////////////////////////////////////////////////////////////// - #Область ПрограммныйИнтерфейс // Процедура-обработчик закрытия формы настройки узлов плана обмена. @@ -113,12 +108,12 @@ // внешнее соединение. // // Параметры: -// ИмяРеквизита - Строка - имя реквизита формы. -// ИмяТаблицы - Строка - полное имя объекта метаданных. -// Владелец - ФормаКлиентскогоПриложения - форма выбора элементов базы-корреспондента. -// СтандартнаяОбработка - Булево - признак выполнения стандартной (системной) обработки события. -// ПараметрыВнешнегоСоединения - Структура -// ПараметрыВыбора - Структура - структура параметров выбора. +// ИмяРеквизита - Строка - имя реквизита формы. +// ИмяТаблицы - Строка - полное имя объекта метаданных. +// Владелец - ФормаКлиентскогоПриложения - форма выбора элементов базы-корреспондента. +// СтандартнаяОбработка - Булево - признак выполнения стандартной (системной) обработки события. +// ПараметрыВнешнегоСоединения - Структура +// ПараметрыВыбора - Структура - структура параметров выбора. // Процедура ОбработчикВыбораЭлементовБазыКорреспондентаНачалоВыбора(Знач ИмяРеквизита, Знач ИмяТаблицы, Знач Владелец, Знач СтандартнаяОбработка, Знач ПараметрыВнешнегоСоединения, Знач ПараметрыВыбора=Неопределено) Экспорт @@ -163,11 +158,11 @@ // соединение. // // Параметры: -// ИмяРеквизита - Строка - имя реквизита формы. -// ИмяТаблицы - Строка - полное имя объекта метаданных. -// Владелец - ФормаКлиентскогоПриложения - форма выбора элементов базы-корреспондента. -// ПараметрыВнешнегоСоединения - Структура -// ПараметрыВыбора - Структура - структура параметров выбора. +// ИмяРеквизита - Строка - имя реквизита формы. +// ИмяТаблицы - Строка - полное имя объекта метаданных. +// Владелец - ФормаКлиентскогоПриложения - форма выбора элементов базы-корреспондента. +// ПараметрыВнешнегоСоединения - Структура +// ПараметрыВыбора - Структура - структура параметров выбора. // Процедура ОбработчикВыбораЭлементовБазыКорреспондентаПодбор(Знач ИмяРеквизита, Знач ИмяТаблицы, Знач Владелец, Знач ПараметрыВнешнегоСоединения, Знач ПараметрыВыбора=Неопределено) Экспорт @@ -203,10 +198,10 @@ // внешнее соединение. // // Параметры: -// Элемент - ФормаКлиентскогоПриложения -// - ТаблицаФормы - элемент для обработки выбора. -// ВыбранноеЗначение - Произвольный - см. описание параметра ВыбранноеЗначение события ОбработкаВыбора. -// ДанныеФормыКоллекция - ДанныеФормыКоллекция - для режима подбора из списка. +// Элемент - ФормаКлиентскогоПриложения +// - ТаблицаФормы - элемент для обработки выбора. +// ВыбранноеЗначение - Произвольный - см. описание параметра ВыбранноеЗначение события ОбработкаВыбора. +// ДанныеФормыКоллекция - ДанныеФормыКоллекция - для режима подбора из списка. // Процедура ОбработчикВыбораЭлементовБазыКорреспондентаОбработкаВыбора(Знач Элемент, Знач ВыбранноеЗначение, Знач ДанныеФормыКоллекция=Неопределено) Экспорт diff --git a/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl index 899364c11..d404d0d5c 100644 --- a/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl @@ -11,7 +11,7 @@ // Определяет префикс кодов и номеров объектов информационной базы по умолчанию. // // Параметры: -// Префикс - Строка, 2 - префикс кодов и номеров объектов информационной базы по умолчанию. +// Префикс - Строка, 2 - префикс кодов и номеров объектов информационной базы по умолчанию. // Процедура ПриОпределенииПрефиксаИнформационнойБазыПоУмолчанию(Префикс) Экспорт @@ -238,7 +238,7 @@ // Получает доступные для использования расширения универсального формата EnterpriseData. // // Параметры: -// РасширенияФормата - Соответствие: +// РасширенияФормата - Соответствие из КлючИЗначение: // * Ключ - Строка - URI пространства имен схемы расширения формата. // * Значение - Строка - номер расширяемой версии формата. // diff --git a/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl index 5413d3851..ed4cdbea8 100644 --- a/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl @@ -21,15 +21,19 @@ // Устарела. Следует использовать новую (см. ОбменДаннымиСервер.УзелПланаОбменаПоКоду). // Функция НайтиУзелПланаОбменаПоКоду(ИмяПланаОбмена, КодУзла) Экспорт + + ШаблонТекста = "ПланОбмена.%1"; + ИмяПланаОбменаСтрокой = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекста, ИмяПланаОбмена); + ТекстЗапроса = "ВЫБРАТЬ | ПланОбмена.Ссылка КАК Ссылка |ИЗ - | ПланОбмена.[ИмяПланаОбмена] КАК ПланОбмена + | &ИмяПланаОбмена КАК ПланОбмена |ГДЕ | ПланОбмена.Код = &Код"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяПланаОбмена]", ИмяПланаОбмена); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяПланаОбмена", ИмяПланаОбменаСтрокой); Запрос = Новый Запрос; Запрос.УстановитьПараметр("Код", КодУзла); @@ -91,21 +95,26 @@ Функция ОбменДаннымиВключен(Знач ИмяПланаОбмена, Знач Отправитель = Неопределено) Экспорт Если Не ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных") Тогда + Возврат Ложь; + КонецЕсли; - ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1 1 + ТекстЗапроса = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА |ИЗ - | ПланОбмена." + ИмяПланаОбмена + " КАК ПланОбмена + | &ИмяТаблицыМетаданных КАК ПланОбмена |ГДЕ | НЕ ПланОбмена.ПометкаУдаления | И НЕ ПланОбмена.ЭтотУзел | И ПланОбмена.Ссылка <> &Отправитель"; - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса; - Запрос.УстановитьПараметр("Отправитель", Отправитель); + СтрокаЗамены = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ПланОбмена.%1", ИмяПланаОбмена); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыМетаданных", СтрокаЗамены); + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("Отправитель", Отправитель); Возврат Не Запрос.Выполнить().Пустой(); КонецФункции @@ -220,7 +229,9 @@ // Заполняет перечень кодов возможных ошибок. // // Возвращаемое значение: -// Соответствие - Ключ - код ошибки (число), значение - описание ошибки (строка). +// Соответствие из КлючИЗначение: +// * Ключ - Число - код ошибки +// * Значение - Строка - описание ошибки // Функция СообщенияОбОшибках() Экспорт @@ -480,7 +491,7 @@ // Определяет используется ли версионирование. // // Параметры: -// Отправитель - ПланОбменаСсылка - если параметр передается, то определяет необходимо +// Отправитель - ПланОбменаСсылка - если параметр передается, то определяет необходимо // ли использовать создание версий объектов для переданного узла. // Функция ИспользуетсяВерсионирование(Отправитель = Неопределено, ПроверятьПраваДоступа = Ложь) Экспорт @@ -617,7 +628,7 @@ // для которого требуется получить пользовательский состав плана обмена. // // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - Строка - полное имя объекта метаданных входящего в состав плана обмена; // * Значение - ПеречислениеСсылка.РежимыВыгрузкиОбъектовОбмена - режим выгрузки объекта. // @@ -722,8 +733,8 @@ // ИмяПланаОбмена - Строка - имя плана обмена как оно задано в конфигураторе. // // Возвращаемое значение: -// ТаблицаРеквизитовРегистрации - таблица значений - таблица реквизитов регистрации, -// упорядоченная по полю "Порядок", для заданного объекта метаданного. +// ТаблицаЗначений - таблица реквизитов регистрации ("ТаблицаРеквизитовРегистрации") +// упорядоченная по полю "Порядок", для заданного объекта метаданного. // Функция РеквизитыОбъектаДляРегистрации(ИмяОбъекта, ИмяПланаОбмена) Экспорт @@ -878,7 +889,7 @@ // ИмяПланаОбмена - Строка - имя плана обмена как оно задано в конфигураторе. // // Возвращаемое значение: -// СписокПравил - список значений - список макетов типовых правил обмена. +// СписокПравил - СписокЗначений - список макетов типовых правил обмена. // Функция ПравилаКонвертацииДляПланаОбменаИзКонфигурации(ИмяПланаОбмена) Экспорт @@ -893,7 +904,7 @@ // ИмяПланаОбмена - Строка - имя плана обмена как оно задано в конфигураторе. // // Возвращаемое значение: -// СписокПравил - список значений - список макетов типовых правил регистрации. +// СписокПравил - СписокЗначений - список макетов типовых правил регистрации. // Функция ПравилаРегистрацииДляПланаОбменаИзКонфигурации(ИмяПланаОбмена) Экспорт @@ -908,7 +919,7 @@ // Нет. // // Возвращаемое значение: -// СписокПлановОбмена - список значений - список планов обмена конфигурации. +// СписокПлановОбмена - СписокЗначений - список планов обмена конфигурации. // Функция СписокПлановОбменаБСП() Экспорт @@ -1151,9 +1162,9 @@ // Устанавливает внешнее соединение с информационной базой и возвращает указатель на это соединение. // // Параметры: -// УзелИнформационнойБазы (обязательный) - ПланОбменаСсылка - узел плана обмена, для которого необходимо получить +// УзелИнформационнойБазы - ПланОбменаСсылка - узел плана обмена, для которого необходимо получить // внешнее соединение. -// СтрокаСообщенияОбОшибке (необязательный) - Строка - если в процессе установки внешнего соединения возникает ошибка, +// СтрокаСообщенияОбОшибке - Строка - если в процессе установки внешнего соединения возникает ошибка, // то подробное описание ошибки помещается в этот параметр. // // Возвращаемое значение: @@ -1171,7 +1182,7 @@ // Устанавливает внешнее соединение с информационной базой и возвращает указатель на это соединение. // // Параметры: -// УзелИнформационнойБазы (обязательный) - ПланОбменаСсылка - узел плана обмена, для которого необходимо получить +// УзелИнформационнойБазы - ПланОбменаСсылка - узел плана обмена, для которого необходимо получить // внешнее соединение. // СтрокаСообщенияОбОшибке (необязательный) - Строка - если в процессе установки внешнего соединения возникает ошибка, // то подробное описание ошибки помещается в этот параметр. @@ -1349,7 +1360,7 @@ // ИмяПланаОбмена - Строка - имя плана обмена как оно задано в конфигураторе. // // Возвращаемое значение: -// СписокПравил - список значений - список макетов типовых правил для обмена данными. +// СписокПравил - СписокЗначений - список макетов типовых правил для обмена данными. // Функция ПравилаДляПланаОбменаИзКонфигурации(ИмяПланаОбмена, ЛитералИмениМакета) @@ -1483,7 +1494,7 @@ // Функция возвращает имя каталога временных файлов. // // Возвращаемое значение: -// Строка - путь к каталогу временных файлов. +// Строка - путь к каталогу временных файлов. // Функция КаталогВременногоХранилищаФайлов(БезопасныйРежим = Неопределено) Экспорт diff --git a/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl index 86d4cf83f..665e96eed 100644 --- a/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl @@ -63,7 +63,7 @@ // // Параметры: // Форма - ФормаКлиентскогоПриложения - форма, из которой вызвана процедура: -// * Объект - ДанныеФормыСтруктура - основной реквизит формы: +// * Объект - ДанныеФормыСтруктура: // ** Ссылка - ПланОбменаСсылка - узел плана обмена. // Отказ - Булево - признак отказа от создания формы. Если установить в Истина, то форма создана не будет. // @@ -416,9 +416,9 @@ // Узлы - Массив из ПланОбменаСсылка - узлы обмена. // // Возвращаемое значение: -// Структура: -// * Заголовок - Строка - заголовок гиперссылки. -// * Картинка - Картинка - картинка для гиперссылки. +// Структура: +// * Заголовок - Строка - заголовок гиперссылки. +// * Картинка - Картинка - картинка для гиперссылки. // Функция СтруктураЗаголовкаГиперссылкиМонитораПроблем(Узлы = Неопределено) Экспорт @@ -675,8 +675,8 @@ // * WSИмяПользователя - Строка - имя пользователя для входа на сервер. // * WSПароль - Строка - пароль пользователя. // * WSТаймаут - Число - таймаут на операции выполняемые через полученное прокси. -// СтрокаСообщенияОбОшибке - строка - содержит подробное описание ошибки в случае неуспешного подключения; -// СообщениеПользователю - строка - содержит краткое описание ошибки в случае неуспешного подключения. +// СтрокаСообщенияОбОшибке - Строка - содержит подробное описание ошибки в случае неуспешного подключения; +// СообщениеПользователю - Строка - содержит краткое описание ошибки в случае неуспешного подключения. // // Возвращаемое значение: // WSПрокси - объект WSПрокси веб-сервиса Exchange. @@ -702,8 +702,8 @@ // * WSИмяПользователя - Строка - имя пользователя для входа на сервер. // * WSПароль - Строка - пароль пользователя. // * WSТаймаут - Число - таймаут на операции выполняемые через полученное прокси. -// СтрокаСообщенияОбОшибке - строка - содержит подробное описание ошибки в случае неуспешного подключения; -// СообщениеПользователю - строка - содержит краткое описание ошибки в случае неуспешного подключения. +// СтрокаСообщенияОбОшибке - Строка - содержит подробное описание ошибки в случае неуспешного подключения; +// СообщениеПользователю - Строка - содержит краткое описание ошибки в случае неуспешного подключения. // // Возвращаемое значение: // WSПрокси - объект WSПрокси веб-сервиса Exchange_2_0_1_6. @@ -729,9 +729,9 @@ // * WSИмяПользователя - Строка - имя пользователя для входа на сервер. // * WSПароль - Строка - пароль пользователя. // * WSТаймаут - Число - таймаут на операции выполняемые через полученное прокси. -// СтрокаСообщенияОбОшибке - строка - содержит подробное описание ошибки в случае неуспешного подключения; -// СообщениеПользователю - строка - содержит краткое описание ошибки в случае неуспешного подключения. -// Таймаут - число - таймаут. +// СтрокаСообщенияОбОшибке - Строка - содержит подробное описание ошибки в случае неуспешного подключения; +// СообщениеПользователю - Строка - содержит краткое описание ошибки в случае неуспешного подключения. +// Таймаут - Число - таймаут. // // Возвращаемое значение: // WSПрокси - объект WSПрокси веб-сервиса Exchange_2_0_1_7. @@ -757,9 +757,9 @@ // * WSИмяПользователя - Строка - имя пользователя для входа на сервер. // * WSПароль - Строка - пароль пользователя. // * WSТаймаут - Число - таймаут на операции выполняемые через полученное прокси. -// СтрокаСообщенияОбОшибке - строка - содержит подробное описание ошибки в случае неуспешного подключения; -// СообщениеПользователю - строка - содержит краткое описание ошибки в случае неуспешного подключения. -// Таймаут - число - таймаут. +// СтрокаСообщенияОбОшибке - Строка - содержит подробное описание ошибки в случае неуспешного подключения; +// СообщениеПользователю - Строка - содержит краткое описание ошибки в случае неуспешного подключения. +// Таймаут - Число - таймаут. // // Возвращаемое значение: // WSПрокси - объект WSПрокси веб-сервиса Exchange_3_0_1_1. @@ -821,7 +821,7 @@ // Определяет, используются ли типовых правила конвертации для плана обмена. // // Параметры: -// ИмяПланаОбмена - Строка - имя плана обмена, для которого загружаются правила. +// ИмяПланаОбмена - Строка - имя плана обмена, для которого загружаются правила. // // Возвращаемое значение: // Булево - если Истина, то используются; Ложь - нет. @@ -839,15 +839,15 @@ // Свойства см. в функции // ОбщегоНазначенияКлиентСервер.СтруктураПараметровДляУстановкиВнешнегоСоединения: // -// * ВариантРаботыИнформационнойБазы - Число - вариант работы информационной базы: 0 - файловый; 1 - +// * ВариантРаботыИнформационнойБазы - Число - вариант работы информационной базы: 0 - файловый; 1 - // клиент-серверный; -// * КаталогИнформационнойБазы - Строка - каталог информационной базы для файлового режима работы; -// * ИмяСервера1СПредприятия - Строка - имя сервера1С:Предприятия; -// * ИмяИнформационнойБазыНаСервере1СПредприятия - Строка - имя информационной базы на сервере1С:Предприятия; -// * АутентификацияОперационнойСистемы - Булево - признак аутентификации операционной системы при создании +// * КаталогИнформационнойБазы - Строка - каталог информационной базы для файлового режима работы; +// * ИмяСервера1СПредприятия - Строка - имя сервера1С:Предприятия; +// * ИмяИнформационнойБазыНаСервере1СПредприятия - Строка - имя информационной базы на сервере1С:Предприятия; +// * АутентификацияОперационнойСистемы - Булево - признак аутентификации операционной системы при создании // внешнего подключения к информационной базе; -// * ИмяПользователя - Строка - имя пользователя информационной базы; -// * ПарольПользователя - Строка - пароль пользователя информационной базы. +// * ИмяПользователя - Строка - имя пользователя информационной базы; +// * ПарольПользователя - Строка - пароль пользователя информационной базы. // // Возвращаемое значение: // Структура: @@ -921,7 +921,7 @@ // - Неопределено - идентификатор варианта настройки, // как он указан в модуле менеджера плана обмена. // ПараметрыПодключения - Структура - структура параметров подключения: -// * ИдентификаторКорреспондента - Строка(36) +// * ИдентификаторКорреспондента - Строка - строка длиной 36 символов // - Неопределено - уникальный идентификатор корреспондента. // * НаименованиеКорреспондента - Строка // - Неопределено - название корреспондента, как он будет отображаться @@ -1179,7 +1179,7 @@ // Контекст - Структура - контекст выполнения операции: // * Корреспондент - ПланОбменаСсылка - узел обмена, соответствующий корреспонденту. // ПараметрыПодключения - Структура - структура параметров подключения: -// * ИдентификаторКорреспондента - Строка(36) - уникальный идентификатор корреспондента. +// * ИдентификаторКорреспондента - Строка - строка длиной 36 символов, уникальный идентификатор корреспондента. // * НаименованиеКорреспондента - Строка - название корреспондента, как он отображается // в списке настроенных синхронизаций. // * НастройкиТранспорта - Произвольный - сохраненные настройки транспорта сообщений обмена внешней системы. @@ -1501,7 +1501,7 @@ // Удаляет поставляемые правила для плана обмена (очищает данные в регистре). // // Параметры: -// ИмяПланаОбмена - Строка - имя плана обмена, для которого удаляются правила. +// ИмяПланаОбмена - Строка - имя плана обмена, для которого удаляются правила. // Процедура УдалитьПоставляемыеПравила(ИмяПланаОбмена) Экспорт @@ -1512,8 +1512,8 @@ // Загружает поставляемые правила для плана обмена. // // Параметры: -// ИмяПланаОбмена - Строка - имя плана обмена, для которого загружаются правила. -// ИмяФайлаПравил - Строка - полное имя файла правил обмена (*.zip). +// ИмяПланаОбмена - Строка - имя плана обмена, для которого загружаются правила. +// ИмяФайлаПравил - Строка - полное имя файла правил обмена (*.zip). // Процедура ЗагрузитьПоставляемыеПравила(ИмяПланаОбмена, ИмяФайлаПравил) Экспорт @@ -2228,7 +2228,7 @@ // что распределенная информационная база создана на базе плана обмена, обслуживаемым подсистемой обмена данными БСП. // // Возвращаемое значение: -// ПланОбменаСсылка.<Имя плана обмена>; Неопределено - если текущая информационная база не является +// ПланОбменаСсылка.<ИмяПланаОбмена>, Неопределено - если текущая информационная база не является // узлом распределенной информационной базы // или главный узел для нее не определен (она сама является корневым узлом) // или распределенная информационная база создана на базе плана обмена, который не обслуживается подсистемой обмена @@ -2263,8 +2263,8 @@ // либо пользователь с правами поставляемого профиля "Синхронизация данных с другими программами". // // Параметры: -// Пользователь (необязательный) - ПользовательИнформационнойБазы -// - Неопределено. +// Пользователь - ПользовательИнформационнойБазы +// - Неопределено. // Пользователь, для которого необходимо вычислить признак разрешения использования синхронизации данных. // Если параметр не задан, то функция вычисляется для текущего пользователя информационной базы. // @@ -2458,18 +2458,18 @@ ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1000 - | Таблица.Ссылка КАК Ссылка, - | Таблица.Представление КАК Представление + | ИмяТаблицыПланаОбмена.Ссылка КАК Ссылка, + | ИмяТаблицыПланаОбмена.Представление КАК Представление |ИЗ - | [ИмяТаблицы] КАК Таблица + | &ИмяТаблицыПланаОбмена КАК ИмяТаблицыПланаОбмена | |ГДЕ - | НЕ Таблица.ПометкаУдаления + | НЕ ИмяТаблицыПланаОбмена.ПометкаУдаления | |УПОРЯДОЧИТЬ ПО - | Таблица.Представление"; + | ИмяТаблицыПланаОбмена.Представление"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяТаблицы]", ИмяТаблицы); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыПланаОбмена", ИмяТаблицы); Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; @@ -2826,7 +2826,7 @@ // * ФорматОбмена - Строка - пространство имен XDTO пакета, в котором содержится // универсальный формат, без указания версии формата. // Используется только для обменов через универсальный формат. -// * РасширенияФорматаОбмена - Соответствие: +// * РасширенияФорматаОбмена - Соответствие из КлючИЗначение: // ** Ключ - Строка - URI пространства имен схемы расширения формата. // ** Значение - Строка - номер расширяемой версии формата. // * ПланОбменаИспользуетсяВМоделиСервиса - Булево - признак использования плана обмена для организации @@ -3001,7 +3001,7 @@ // Получение файла по его идентификатору. // // Параметры: -// ИдентификаторФайла - УникальныйИдентификатор - идентификатор получаемого файла. +// ИдентификаторФайла - УникальныйИдентификатор - идентификатор получаемого файла. // // Возвращаемое значение: // ИмяФайла - Строка - имя файла. @@ -3246,8 +3246,8 @@ // Увеличение счетчика выгруженных объектов и расчет процента выгрузки. Только для РИБ. // // Параметры: -// Получатель - план обмена объект. -// СозданиеНачальногоОбраза - булево. +// Получатель - ПланОбменаОбъект +// СозданиеНачальногоОбраза - Булево // Процедура РассчитатьПроцентВыгрузкиРИБ(Получатель, СозданиеНачальногоОбраза) Экспорт @@ -3297,7 +3297,7 @@ // Увеличение счетчика загруженных объектов и расчет процента загрузки. Только для РИБ. // // Параметры: -// Отправитель - план обмена объект. +// Отправитель - ПланОбменаОбъект // Процедура РассчитатьПроцентЗагрузкиРИБ(Отправитель) Экспорт @@ -3658,10 +3658,10 @@ // Определяет является ли план обмена БСП разделенным. // // Параметры: -// ИмяПланаОбмена - Строка - имя проверяемого плана обмена. +// ИмяПланаОбмена - Строка - имя проверяемого плана обмена. // // Возвращаемое значение: -// Тип - булево +// Тип - булево // Функция ЭтоРазделенныйПланОбменаБСП(Знач ИмяПланаОбмена) Экспорт @@ -3712,7 +3712,7 @@ |ВЫБРАТЬ | ПланыОбмена.УзелИнформационнойБазы КАК УзелИнформационнойБазы, | - | [ДополнительныеСвойстваПланаОбмена] + | &ДополнительныеСвойстваПланаОбмена, | | ЕСТЬNULL(СостоянияОбменовДаннымиВыгрузка.РезультатВыполненияОбмена, 0) КАК РезультатПоследнейВыгрузкиДанных, | ЕСТЬNULL(СостоянияОбменовДаннымиЗагрузка.РезультатВыполненияОбмена, 0) КАК РезультатПоследнейЗагрузкиДанных, @@ -3758,7 +3758,7 @@ |УПОРЯДОЧИТЬ ПО | ПланыОбмена.Наименование"); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "[ДополнительныеСвойстваПланаОбмена]", + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ДополнительныеСвойстваПланаОбмена,", ДополнительныеСвойстваПланаОбменаСтрокой(ДополнительныеСвойстваПланаОбмена)); МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; @@ -4082,7 +4082,7 @@ // Устанавливает значение параметра "Загрузка" для свойства объекта "ОбменДанными". // // Параметры: -// Объект - Любой объект - объект, для которого устанавливается свойство. +// Объект - Произвольный - объект, для которого устанавливается свойство. // Значение - Булево - значение устанавливаемого свойства "Загрузка". // ОтправкаНазад - Булево - признак необходимости регистрации данных к обратной отправке. // УзелОбмена - ПланОбменаСсылка - признак необходимости регистрации данных к обратной отправке. @@ -4205,10 +4205,6 @@ #Область ОбработчикиСобытийПодсистемКонфигурации // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -4434,7 +4430,9 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. +// Параметры: +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. +// Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт Если Не ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных") Тогда @@ -4475,13 +4473,9 @@ КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. -// -// Параметры: -// Исключения - см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.ИсключенияПоискаСсылок -// -Процедура ПриДобавленииИсключенийПоискаСсылок(Исключения) Экспорт +Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт - Исключения.Добавить(Метаданные.РегистрыСведений.РезультатыОбменаДанными.ПолноеИмя()); + ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.РезультатыОбменаДанными.ПолноеИмя()); КонецПроцедуры @@ -5217,14 +5211,14 @@ | Справочник.СценарииОбменовДанными.НастройкиОбмена КАК НастройкиВыполненияОбменаНастройкиОбмена |ГДЕ | НастройкиВыполненияОбменаНастройкиОбмена.Ссылка = &НастройкаВыполненияОбмена - | [УсловиеПоНомеруСтроки] + | И &УсловиеПоНомеруСтроки |УПОРЯДОЧИТЬ ПО | НастройкиВыполненияОбменаНастройкиОбмена.НомерСтроки |"; УсловиеПоНомеруСтроки = ?(НомерСтроки = Неопределено, "", "И НастройкиВыполненияОбменаНастройкиОбмена.НомерСтроки = &НомерСтроки"); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[УсловиеПоНомеруСтроки]", УсловиеПоНомеруСтроки); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &УсловиеПоНомеруСтроки", УсловиеПоНомеруСтроки); Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; @@ -8565,8 +8559,8 @@ // Если файл найден, то возвращается его имя, при этом удаляется информация об этом файле из хранилища. // // Параметры: -// ИдентификаторФайла - УникальныйИдентификатор - идентификатор получаемого файла. -// ИмяФайла - Строка - имя файла, из хранилища. +// ИдентификаторФайла - УникальныйИдентификатор - идентификатор получаемого файла. +// ИмяФайла - Строка - имя файла, из хранилища. // Процедура ПриПолученииФайлаИзХранилища(Знач ИдентификаторФайла, ИмяФайла) @@ -8848,12 +8842,12 @@ "ВЫБРАТЬ | Таблица.Ссылка КАК Ссылка |ИЗ - | [ПолноеИмяОбъекта] КАК Таблица + | &ПолноеИмяОбъекта КАК Таблица |ГДЕ | Таблица.Организация В(&Организации) | И Таблица.Дата >= &ДатаНачалаВыгрузки"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ПолноеИмяОбъекта]", ПолноеИмяОбъекта); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяОбъекта", ПолноеИмяОбъекта); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДатаНачалаВыгрузки", ДатаНачалаВыгрузки); @@ -8869,11 +8863,11 @@ "ВЫБРАТЬ | Таблица.Ссылка КАК Ссылка |ИЗ - | [ПолноеИмяОбъекта] КАК Таблица + | &ПолноеИмяОбъекта КАК Таблица |ГДЕ | Таблица.Дата >= &ДатаНачалаВыгрузки"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ПолноеИмяОбъекта]", ПолноеИмяОбъекта); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяОбъекта", ПолноеИмяОбъекта); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДатаНачалаВыгрузки", ДатаНачалаВыгрузки); @@ -8888,12 +8882,12 @@ "ВЫБРАТЬ РАЗЛИЧНЫЕ | ТаблицаРегистра.Регистратор КАК Регистратор |ИЗ - | [ПолноеИмяОбъекта] КАК ТаблицаРегистра + | &ПолноеИмяОбъекта КАК ТаблицаРегистра |ГДЕ | ТаблицаРегистра.Организация В(&Организации) | И ТаблицаРегистра.Период >= &ДатаНачалаВыгрузки"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ПолноеИмяОбъекта]", ПолноеИмяОбъекта); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяОбъекта", ПолноеИмяОбъекта); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДатаНачалаВыгрузки", ДатаНачалаВыгрузки); @@ -8909,11 +8903,11 @@ "ВЫБРАТЬ РАЗЛИЧНЫЕ | ТаблицаРегистра.Регистратор КАК Регистратор |ИЗ - | [ПолноеИмяОбъекта] КАК ТаблицаРегистра + | &ПолноеИмяОбъекта КАК ТаблицаРегистра |ГДЕ | ТаблицаРегистра.Период >= &ДатаНачалаВыгрузки"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ПолноеИмяОбъекта]", ПолноеИмяОбъекта); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяОбъекта", ПолноеИмяОбъекта); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДатаНачалаВыгрузки", ДатаНачалаВыгрузки); @@ -8929,15 +8923,15 @@ ТекстЗапроса = "ВЫБРАТЬ РАЗЛИЧНЫЕ - | [Измерения] + | &Измерения |ИЗ - | [ПолноеИмяОбъекта] КАК ТаблицаРегистра + | &ПолноеИмяОбъекта КАК ТаблицаРегистра |ГДЕ | ТаблицаРегистра.Организация В(&Организации) | И ТаблицаРегистра.Период >= &ДатаНачалаВыгрузки"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ПолноеИмяОбъекта]", ПолноеИмяОбъекта); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[Измерения]", СтрСоединить(ОсновнойОтбор, ",")); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяОбъекта", ПолноеИмяОбъекта); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Измерения", СтрСоединить(ОсновнойОтбор, ",")); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДатаНачалаВыгрузки", ДатаНачалаВыгрузки); @@ -8951,14 +8945,14 @@ ТекстЗапроса = "ВЫБРАТЬ РАЗЛИЧНЫЕ - | [Измерения] + | &Измерения |ИЗ - | [ПолноеИмяОбъекта] КАК ТаблицаРегистра + | &ПолноеИмяОбъекта КАК ТаблицаРегистра |ГДЕ | ТаблицаРегистра.Период >= &ДатаНачалаВыгрузки"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ПолноеИмяОбъекта]", ПолноеИмяОбъекта); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[Измерения]", СтрСоединить(ОсновнойОтбор, ",")); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяОбъекта", ПолноеИмяОбъекта); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Измерения", СтрСоединить(ОсновнойОтбор, ",")); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДатаНачалаВыгрузки", ДатаНачалаВыгрузки); @@ -8971,14 +8965,14 @@ ТекстЗапроса = "ВЫБРАТЬ РАЗЛИЧНЫЕ - | [Измерения] + | &Измерения |ИЗ - | [ПолноеИмяОбъекта] КАК ТаблицаРегистра + | &ПолноеИмяОбъекта КАК ТаблицаРегистра |ГДЕ | ТаблицаРегистра.Организация В(&Организации)"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ПолноеИмяОбъекта]", ПолноеИмяОбъекта); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[Измерения]", СтрСоединить(ОсновнойОтбор, ",")); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяОбъекта", ПолноеИмяОбъекта); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Измерения", СтрСоединить(ОсновнойОтбор, ",")); Запрос = Новый Запрос; Запрос.УстановитьПараметр("Организации", Организации); @@ -9045,7 +9039,7 @@ // ИмяПланаОбмена - Строка - имя плана обмена. // ВерсияКорреспондента - Строка - версия конфигурации-корреспондента. // ИмяКорреспондента - Строка - имя конфигурации корреспондента. -// КорреспондентВМоделиСервиса - Булево или Неопределено - признак того, что корреспондент находится в модели сервиса. +// КорреспондентВМоделиСервиса - Булево, Неопределено - признак того, что корреспондент находится в модели сервиса. // Возвращаемое значение: // см. НастройкиПланаОбменаПоУмолчанию. // @@ -9230,7 +9224,7 @@ | | КОНЕЦ КАК РезультатВыполненияОбмена |ИЗ - | РегистрСведений.[СостоянияОбменовДанными] КАК СостоянияОбменовДанными + | РегистрСведений.СостоянияОбменовДанными КАК СостоянияОбменовДанными |ГДЕ | СостоянияОбменовДанными.УзелИнформационнойБазы = &УзелИнформационнойБазы | И СостоянияОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ЗагрузкаДанных) @@ -9255,18 +9249,18 @@ | КОНЕЦ КАК РезультатВыполненияОбмена | |ИЗ - | РегистрСведений.[СостоянияОбменовДанными] КАК СостоянияОбменовДанными + | РегистрСведений.СостоянияОбменовДанными КАК СостоянияОбменовДанными |ГДЕ | СостоянияОбменовДанными.УзелИнформационнойБазы = &УзелИнформационнойБазы | И СостоянияОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ВыгрузкаДанных) |; |"; - Если ОбщегоНазначения.РазделениеВключено() - И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[СостоянияОбменовДанными]", "СостоянияОбменовДаннымиОбластейДанных"); - Иначе - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[СостоянияОбменовДанными]", "СостоянияОбменовДанными"); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.АдаптироватьТекстЗапросаОРезультатахОбменаВСервисе(ТекстЗапроса); + КонецЕсли; Запрос = Новый Запрос; @@ -9315,17 +9309,17 @@ | ДатаНачала, | ДатаОкончания |ИЗ - | РегистрСведений.[СостоянияОбменовДанными] КАК СостоянияОбменовДанными + | РегистрСведений.СостоянияОбменовДанными КАК СостоянияОбменовДанными |ГДЕ | СостоянияОбменовДанными.УзелИнформационнойБазы = &УзелИнформационнойБазы | И СостоянияОбменовДанными.ДействиеПриОбмене = &ДействиеПриОбмене |"; - Если ОбщегоНазначения.РазделениеВключено() - И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[СостоянияОбменовДанными]", "СостоянияОбменовДаннымиОбластейДанных"); - Иначе - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[СостоянияОбменовДанными]", "СостоянияОбменовДанными"); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.АдаптироватьТекстЗапросаОРезультатахОбменаВСервисе(ТекстЗапроса); + КонецЕсли; Запрос = Новый Запрос; @@ -10629,14 +10623,14 @@ // Регистрирует ошибки при отложенном проведении документа в мониторе проблем обмена. // // Параметры: -// Объект - ДокументОбъект - документ при отложенном проведении которого возникли ошибки. -// УзелОбмена - ПланОбменаСсылка - узел информационной базы из которой получен документ. -// СообщениеОбОшибке - Строка - текст сообщения для журнала регистрации. +// Объект - ДокументОбъект - документ при отложенном проведении которого возникли ошибки. +// УзелОбмена - ПланОбменаСсылка - узел информационной базы из которой получен документ. +// СообщениеОбОшибке - Строка - текст сообщения для журнала регистрации. // Рекомендуется передавать в качестве этого параметра КраткоеПредставлениеОшибки(ИнформацияОбОшибке()). // Текст сообщения для отображения в мониторе формируется из системных сообщений пользователю, которые // были сформированы, но еще не были выведены пользователю. Поэтому рекомендуется, чтобы к моменту вызова // данного метода в буфере сообщений системы не содержалось сообщений. -// РегистрироватьПроблемыВРезультатахОбмена - Булево - необходимо регистрировать проблемы. +// РегистрироватьПроблемыВРезультатахОбмена - Булево - необходимо регистрировать проблемы. // // Пример: // Процедура ПровестиДокументПриЗагрузке(Документ, УзелОбмена) @@ -10773,7 +10767,8 @@ // Параметры: // Получатель - ПланОбменаОбъект - узел плана обмена, соответствующий получателю. // -// Возвращаемое значение - число. +// Возвращаемое значение: +// Число // Функция РассчитатьКоличествоОбъектовВБазе(Получатель) @@ -10792,22 +10787,35 @@ СтруктураСсылочныхОбъектов.Вставить("Задача", Метаданные.Задачи); СтруктураСсылочныхОбъектов.Вставить("ПланСчетов", Метаданные.ПланыСчетов); - ТекстЗапроса = "ВЫБРАТЬ - |Количество(Ссылка) КАК КоличествоОбъектов - |ИЗ "; + ШаблонТекстаЗапросаСсылки = + "ВЫБРАТЬ + | КОЛИЧЕСТВО(ПсевдонимТаблицыМетаданных.Ссылка) КАК КоличествоОбъектов + |ИЗ + | &ИмяТаблицыМетаданных КАК ПсевдонимТаблицыМетаданных"; + Для Каждого СсылочныйОбъект Из СтруктураСсылочныхОбъектов Цикл + Для Каждого ОбъектМетаданных Из СсылочныйОбъект.Значение Цикл + Если СоставПланаОбмена.Найти(ОбъектМетаданных) = Неопределено Тогда + Продолжить; + КонецЕсли; - ПолноеИмяОбъекта = СсылочныйОбъект.Ключ +"."+ОбъектМетаданных.Имя; - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса + ПолноеИмяОбъекта; + + ПолноеИмяОбъекта = СсылочныйОбъект.Ключ + "." + ОбъектМетаданных.Имя; + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапросаСсылки, "&ИмяТаблицыМетаданных", ПолноеИмяОбъекта); + + Запрос = Новый Запрос(ТекстЗапроса); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда + СчетчикОбъектов = СчетчикОбъектов + Выборка.КоличествоОбъектов; + КонецЕсли; + КонецЦикла; + КонецЦикла; // 2. Константы. @@ -10819,28 +10827,45 @@ КонецЦикла; // 3. Регистры сведений. - ТекстЗапроса = "ВЫБРАТЬ - |Количество(*) КАК КоличествоОбъектов - |ИЗ "; - ТекстЗапросаСРегистратором = "ВЫБРАТЬ - |Количество(РАЗЛИЧНЫЕ Регистратор) КАК КоличествоОбъектов - |ИЗ "; + ШаблонТекстаЗапросаБезРегистратора = + "ВЫБРАТЬ + | КОЛИЧЕСТВО(*) КАК КоличествоОбъектов + |ИЗ + | &ИмяТаблицыМетаданных КАК ПсевдонимТаблицыМетаданных"; + + ШаблонТекстаЗапросаСРегистратором = + "ВЫБРАТЬ + | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПсевдонимТаблицыМетаданных.Регистратор) КАК КоличествоОбъектов + |ИЗ + | &ИмяТаблицыМетаданных КАК ПсевдонимТаблицыМетаданных"; + Для Каждого ОбъектМетаданных Из Метаданные.РегистрыСведений Цикл + Если СоставПланаОбмена.Найти(ОбъектМетаданных) = Неопределено Тогда + Продолжить; - КонецЕсли; - ПолноеИмяОбъекта = "РегистрСведений."+ОбъектМетаданных.Имя; - Запрос = Новый Запрос; - Если ОбъектМетаданных.ПериодичностьРегистраСведений = Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.ПозицияРегистратора Тогда - Запрос.Текст = ТекстЗапросаСРегистратором + ПолноеИмяОбъекта; - Иначе - Запрос.Текст = ТекстЗапроса + ПолноеИмяОбъекта; + КонецЕсли; + ПолноеИмяОбъекта = "РегистрСведений."+ОбъектМетаданных.Имя; + Если ОбъектМетаданных.ПериодичностьРегистраСведений = Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.ПозицияРегистратора Тогда + + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапросаСРегистратором, "&ИмяТаблицыМетаданных", ПолноеИмяОбъекта); + + Иначе + + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапросаБезРегистратора, "&ИмяТаблицыМетаданных", ПолноеИмяОбъекта); + + КонецЕсли; + + Запрос = Новый Запрос(ТекстЗапроса); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда + СчетчикОбъектов = СчетчикОбъектов + Выборка.КоличествоОбъектов; + КонецЕсли; + КонецЦикла; // 4. Регистры (подчиненные регистратору) и последовательности. @@ -10850,20 +10875,29 @@ СтруктураРегистров.Вставить("РегистрБухгалтерии", Метаданные.РегистрыБухгалтерии); СтруктураРегистров.Вставить("Последовательность", Метаданные.Последовательности); - ТекстЗапроса = ТекстЗапросаСРегистратором; Для Каждого Регистр Из СтруктураРегистров Цикл + Для Каждого ОбъектМетаданных Из Регистр.Значение Цикл + Если СоставПланаОбмена.Найти(ОбъектМетаданных) = Неопределено Тогда + Продолжить; + КонецЕсли; + ПолноеИмяОбъекта = Регистр.Ключ +"."+ОбъектМетаданных.Имя; - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса + ПолноеИмяОбъекта; + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапросаСРегистратором, "&ИмяТаблицыМетаданных", ПолноеИмяОбъекта); + + Запрос = Новый Запрос(ТекстЗапроса); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда + СчетчикОбъектов = СчетчикОбъектов + Выборка.КоличествоОбъектов; + КонецЕсли; + КонецЦикла; + КонецЦикла; Возврат СчетчикОбъектов; @@ -10873,9 +10907,10 @@ // Подсчет количества объектов, зарегистрированных в плане обмена. // // Параметры: -// Получатель - план обмена объект. +// Получатель - ПланОбменаОбъект // -// Возвращаемое значение - число. +// Возвращаемое значение: +// Число // Функция РассчитатьКоличествоЗарегистрированныхОбъектов(Получатель) Экспорт @@ -11086,20 +11121,22 @@ ДополнительныеСвойстваПланаОбменаСтрокой = ?(ПустаяСтрока(ДополнительныеСвойстваПланаОбмена), "", ДополнительныеСвойстваПланаОбмена + ", "); - ШаблонЗапроса = " + СекцияОбъединения = " | |ОБЪЕДИНИТЬ ВСЕ - | - |//////////////////////////////////////////////////////// {[ИмяПланаОбмена]} + |"; + + ШаблонЗапроса = СекцияОбъединения + + "//////////////////////////////////////////////////////// {&ИмяТаблицыПланаОбмена} |ВЫБРАТЬ | - | [ДополнительныеСвойстваПланаОбмена] + | &ДополнительныеСвойстваПланаОбмена, | | Ссылка КАК УзелИнформационнойБазы, | Наименование КАК Наименование, - | ""[ИмяПланаОбменаСиноним]"" КАК ИмяПланаОбмена + | ""&ИмяПланаОбменаСиноним"" КАК ИмяПланаОбмена |ИЗ - | ПланОбмена.[ИмяПланаОбмена] + | &ИмяТаблицыПланаОбмена |ГДЕ | НЕ ЭтотУзел | И НЕ ПометкаУдаления @@ -11109,11 +11146,15 @@ Если ПланыОбменаМетода.Количество() > 0 Тогда + ШаблонИмениТаблицыПланаОбмена = "ПланОбмена.%1"; + Для Каждого ИмяПланаОбмена Из ПланыОбменаМетода Цикл - ТекстЗапросаДляПланаОбмена = СтрЗаменить(ШаблонЗапроса, "[ИмяПланаОбмена]", ИмяПланаОбмена); - ТекстЗапросаДляПланаОбмена = СтрЗаменить(ТекстЗапросаДляПланаОбмена, "[ИмяПланаОбменаСиноним]", Метаданные.ПланыОбмена[ИмяПланаОбмена].Синоним); - ТекстЗапросаДляПланаОбмена = СтрЗаменить(ТекстЗапросаДляПланаОбмена, "[ДополнительныеСвойстваПланаОбмена]", ДополнительныеСвойстваПланаОбменаСтрокой); + ИмяТаблицыПланаОбмена = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонИмениТаблицыПланаОбмена, ИмяПланаОбмена); + + ТекстЗапросаДляПланаОбмена = СтрЗаменить(ШаблонЗапроса, "&ИмяТаблицыПланаОбмена", ИмяТаблицыПланаОбмена); + ТекстЗапросаДляПланаОбмена = СтрЗаменить(ТекстЗапросаДляПланаОбмена, "&ИмяПланаОбменаСиноним", Метаданные.ПланыОбмена[ИмяПланаОбмена].Синоним); + ТекстЗапросаДляПланаОбмена = СтрЗаменить(ТекстЗапросаДляПланаОбмена, "&ДополнительныеСвойстваПланаОбмена,", ДополнительныеСвойстваПланаОбменаСтрокой); // Удаляем литерал объединения для первой таблицы. Если ПустаяСтрока(ТекстЗапроса) Тогда @@ -11149,14 +11190,14 @@ ТекстЗапроса = " |ВЫБРАТЬ | - | [ДополнительныеСвойстваБезИсточникаДанныхСтрокой] + | &ДополнительныеСвойстваБезИсточникаДанныхСтрокой, | | Неопределено КАК УзелИнформационнойБазы, | Неопределено КАК Наименование, | Неопределено КАК ИмяПланаОбмена |"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ДополнительныеСвойстваБезИсточникаДанныхСтрокой]", ДополнительныеСвойстваБезИсточникаДанныхСтрокой); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ДополнительныеСвойстваБезИсточникаДанныхСтрокой,", ДополнительныеСвойстваБезИсточникаДанныхСтрокой); КонецЕсли; @@ -11164,24 +11205,24 @@ |//////////////////////////////////////////////////////// {ПланыОбменаКонфигурации} |ВЫБРАТЬ | - | [ДополнительныеСвойстваПланаОбмена] + | &ДополнительныеСвойстваПланаОбмена, | | УзелИнформационнойБазы, | Наименование, | ИмяПланаОбмена - | [ПомещениеВоВременнуюТаблицу] + |// ПомещениеВоВременнуюТаблицу |ИЗ - | ( - | [ТекстЗапроса] - | ) КАК ВложенныйЗапрос + | &ТекстЗапроса КАК ВложенныйЗапрос |; |"; + ИмяВрТаблицы = ?(РезультатВоВременнуюТаблицу, "ПОМЕСТИТЬ ПланыОбменаКонфигурации", ""); + ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "// ПомещениеВоВременнуюТаблицу", ИмяВрТаблицы); - ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "[ПомещениеВоВременнуюТаблицу]", - ?(РезультатВоВременнуюТаблицу, "ПОМЕСТИТЬ ПланыОбменаКонфигурации", "")); - ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "[ТекстЗапроса]", ТекстЗапроса); - ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "[ДополнительныеСвойстваПланаОбмена]", ДополнительныеСвойстваПланаОбменаСтрокой); + ОбернутыйТекстЗапроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("(%1)", ТекстЗапроса); + ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "&ТекстЗапроса", ОбернутыйТекстЗапроса); + + ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "&ДополнительныеСвойстваПланаОбмена,", ДополнительныеСвойстваПланаОбменаСтрокой); Возврат ТекстЗапросаРезультат; @@ -12196,62 +12237,82 @@ Функция ЭлементыИерархическогоСправочникаИерархияГруппИЭлементов(Знач ПолноеИмяТаблицы) - Запрос = Новый Запрос(" - |ВЫБРАТЬ ПЕРВЫЕ 2000 - | Ссылка, - | Представление, + ШаблонТекстаЗапроса = + "ВЫБРАТЬ ПЕРВЫЕ 2000 + | ПсевдонимТаблицыМетаданных.Ссылка, + | ПсевдонимТаблицыМетаданных.Представление, | ВЫБОР - | КОГДА ЭтоГруппа И НЕ ПометкаУдаления ТОГДА 0 - | КОГДА ЭтоГруппа И ПометкаУдаления ТОГДА 1 - | КОГДА НЕ ЭтоГруппа И НЕ ПометкаУдаления ТОГДА 2 - | КОГДА НЕ ЭтоГруппа И ПометкаУдаления ТОГДА 3 + | КОГДА ПсевдонимТаблицыМетаданных.ЭтоГруппа + | И НЕ ПсевдонимТаблицыМетаданных.ПометкаУдаления + | ТОГДА 0 + | КОГДА ПсевдонимТаблицыМетаданных.ЭтоГруппа + | И ПсевдонимТаблицыМетаданных.ПометкаУдаления + | ТОГДА 1 + | КОГДА НЕ ПсевдонимТаблицыМетаданных.ЭтоГруппа + | И НЕ ПсевдонимТаблицыМетаданных.ПометкаУдаления + | ТОГДА 2 + | КОГДА НЕ ПсевдонимТаблицыМетаданных.ЭтоГруппа + | И ПсевдонимТаблицыМетаданных.ПометкаУдаления + | ТОГДА 3 | КОНЕЦ КАК ИндексКартинки |ИЗ - | " + ПолноеИмяТаблицы + " + | &ИмяТаблицыМетаданных КАК ПсевдонимТаблицыМетаданных |УПОРЯДОЧИТЬ ПО - | ЭтоГруппа ИЕРАРХИЯ, - | Наименование - |"); - + | ПсевдонимТаблицыМетаданных.ЭтоГруппа ИЕРАРХИЯ, + | ПсевдонимТаблицыМетаданных.Наименование"; + + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяТаблицыМетаданных", ПолноеИмяТаблицы); + + Запрос = Новый Запрос(ТекстЗапроса); Возврат РезультатЗапросаВXMLДерево(Запрос); + КонецФункции Функция ЭлементыИерархическогоСправочникаИерархияЭлементов(Знач ПолноеИмяТаблицы) - Запрос = Новый Запрос(" - |ВЫБРАТЬ ПЕРВЫЕ 2000 - | Ссылка, - | Представление, - | ВЫБОР - | КОГДА ПометкаУдаления ТОГДА 3 - | ИНАЧЕ 2 - | КОНЕЦ КАК ИндексКартинки - |ИЗ - | " + ПолноеИмяТаблицы + " - |УПОРЯДОЧИТЬ ПО - | Наименование ИЕРАРХИЯ - |"); - + ШаблонТекстаЗапроса = + "ВЫБРАТЬ ПЕРВЫЕ 2000 + | ПсевдонимТаблицыМетаданных.Ссылка, + | ПсевдонимТаблицыМетаданных.Представление, + | ВЫБОР + | КОГДА ПсевдонимТаблицыМетаданных.ПометкаУдаления + | ТОГДА 3 + | ИНАЧЕ 2 + | КОНЕЦ КАК ИндексКартинки + |ИЗ + | &ИмяТаблицыМетаданных КАК ПсевдонимТаблицыМетаданных + |УПОРЯДОЧИТЬ ПО + | ПсевдонимТаблицыМетаданных.Наименование ИЕРАРХИЯ"; + + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяТаблицыМетаданных", ПолноеИмяТаблицы); + + Запрос = Новый Запрос(ТекстЗапроса); Возврат РезультатЗапросаВXMLДерево(Запрос); + КонецФункции Функция ЭлементыНеиерархическогоСправочника(Знач ПолноеИмяТаблицы) - Запрос = Новый Запрос(" - |ВЫБРАТЬ ПЕРВЫЕ 2000 - | Ссылка, - | Представление, - | ВЫБОР - | КОГДА ПометкаУдаления ТОГДА 3 - | ИНАЧЕ 2 - | КОНЕЦ КАК ИндексКартинки - |ИЗ - | " + ПолноеИмяТаблицы + " - |УПОРЯДОЧИТЬ ПО - | Наименование - |"); - + ШаблонТекстаЗапроса = + "ВЫБРАТЬ ПЕРВЫЕ 2000 + | ПсевдонимТаблицыМетаданных.Ссылка КАК Ссылка, + | ПсевдонимТаблицыМетаданных.Представление КАК Представление, + | ВЫБОР + | КОГДА ПсевдонимТаблицыМетаданных.ПометкаУдаления + | ТОГДА 3 + | ИНАЧЕ 2 + | КОНЕЦ КАК ИндексКартинки + |ИЗ + | &ИмяТаблицыМетаданных КАК ПсевдонимТаблицыМетаданных + | + |УПОРЯДОЧИТЬ ПО + | ПсевдонимТаблицыМетаданных.Наименование"; + + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяТаблицыМетаданных", ПолноеИмяТаблицы); + + Запрос = Новый Запрос(ТекстЗапроса); Возврат РезультатЗапросаВXMLДерево(Запрос); + КонецФункции // Параметры: @@ -12963,8 +13024,8 @@ // Выводит сообщение об ошибке и выставляет параметр Отказ в "Истина". // // Параметры: -// ТекстСообщения - строка - текст сообщения. -// Отказ - булево - признак отказа (необязательный). +// ТекстСообщения - Строка - текст сообщения. +// Отказ - Булево - признак отказа // Процедура СообщитьОбОшибке(ТекстСообщения, Отказ = Ложь) Экспорт @@ -12980,7 +13041,7 @@ // Нет. // // Возвращаемое значение: -// Таблица значений - таблица реквизитов регистрации для всех объектов метаданных. +// ТаблицаЗначений - таблица реквизитов регистрации для всех объектов метаданных. // Функция ПолучитьПравилаВыборочнойРегистрацииОбъектовПС() Экспорт @@ -13027,24 +13088,35 @@ Процедура ВыполнитьОбновлениеВерсииТиповыхПравилДляОбменаДанными(ПравилаОбменаЗагруженныеИзФайла, ПравилаРегистрацииЗагруженныеИзФайла) Отказ = Ложь; - ТекстЗапроса = ""; + ШаблонТекстаЗапроса = + "ВЫБРАТЬ + | КОЛИЧЕСТВО(ПсевдонимТаблицыМетаданных.Ссылка) КАК Количество, + | ""&ИмяПланаОбмена"" КАК ИмяПланаОбмена + |ИЗ + | &ИмяТаблицыМетаданных КАК ПсевдонимТаблицыМетаданных"; + + ТекстЗапроса = ""; Для Каждого ИмяПланаОбмена Из ОбменДаннымиПовтИсп.ПланыОбменаБСП() Цикл Если Не ПустаяСтрока(ТекстЗапроса) Тогда + ТекстЗапроса = ТекстЗапроса + Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС; + КонецЕсли; - ТекстЗапроса = ТекстЗапроса + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ВЫБРАТЬ - | КОЛИЧЕСТВО (%1.Ссылка) КАК Количество, - | ""%1"" КАК ИмяПланаОбмена - |ИЗ - | ПланОбмена.%1 КАК %1", ИмяПланаОбмена); - + ТекстПодзапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяТаблицыМетаданных", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ПланОбмена.%1", ИмяПланаОбмена)); + ТекстПодзапроса = СтрЗаменить(ТекстПодзапроса, "&ИмяПланаОбмена", ИмяПланаОбмена); + ТекстЗапроса = ТекстЗапроса + ТекстПодзапроса; + КонецЦикла; + Если ПустаяСтрока(ТекстЗапроса) Тогда + Возврат; + КонецЕсли; + Запрос = Новый Запрос(ТекстЗапроса); Результат = Запрос.Выполнить().Выгрузить(); @@ -13953,7 +14025,9 @@ // Возвращаемое значение: // ТаблицаЗначений - коллекция регистров с движениями по заданному регистратору: // * ИмяТаблицыРегистра - Строка - полное имя таблицы регистра. -// * НаборЗаписей - РегистрСведенийНаборЗаписей, РегистрНакопленияНаборЗаписей, и т.п. - набор записей. +// * НаборЗаписей - РегистрСведенийНаборЗаписей +// - РегистрНакопленияНаборЗаписей +// - и т.п. - набор записей. // * БезусловноеУдаление - Булево - признак безусловного удаления записей. // Функция ОпределитьНаличиеДвиженийПоДокументу(ДокументСсылка) @@ -13972,25 +14046,38 @@ // Для исключения падения для документов, проводящимся более чем по 256 таблицам. СчетчикТаблиц = 0; + ШаблонТекстаЗапроса = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ВЫРАЗИТЬ(""&ИмяТаблицыМетаданных"" КАК СТРОКА(200)) КАК ИмяТаблицыРегистра + |ИЗ + | &ИмяТаблицыМетаданных КАК ПсевдонимТаблицыМетаданных + |ГДЕ + | ПсевдонимТаблицыМетаданных.Регистратор = &Регистратор"; + Для Каждого Движение Из МетаданныеДокумента.Движения Цикл // В запросе получаем имена регистров, по которым есть хотя бы одно движение. // Например, // ВЫБРАТЬ Первые 1 "РегистрНакопления.ТоварыНаСкладах" // ИЗ РегистрНакопления.ТоварыНаСкладах // ГДЕ Регистратор = &Регистратор. + // Имя регистра приводим к Строка(200) - // Имя регистра приводим к Строка(200), см. ниже. - ТекстЗапроса = ТекстЗапроса + " - |" + ?(ТекстЗапроса = "", "", "ОБЪЕДИНИТЬ ВСЕ ") + " - |ВЫБРАТЬ ПЕРВЫЕ 1 ВЫРАЗИТЬ(""" + Движение.ПолноеИмя() - + """ КАК Строка(200)) КАК ИмяТаблицыРегистра ИЗ " + Движение.ПолноеИмя() - + " ГДЕ Регистратор = &Регистратор"; + Если НЕ ПустаяСтрока(ТекстЗапроса) Тогда + + ТекстЗапроса = ТекстЗапроса + Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС; + + КонецЕсли; + + ТекстПодзапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяТаблицыМетаданных", Движение.ПолноеИмя()); + ТекстЗапроса = ТекстЗапроса + ТекстПодзапроса; // Если в запрос попадает более 256 таблиц - разбиваем его на две части // (вариант документа с проведением по 512 регистрам считаем нежизненным). СчетчикТаблиц = СчетчикТаблиц + 1; Если СчетчикТаблиц = 256 Тогда + Прервать; + КонецЕсли; КонецЦикла; @@ -14006,7 +14093,9 @@ // Если количество таблиц не превысило 256 - возвращаем таблицу. Если СчетчикТаблиц = МетаданныеДокумента.Движения.Количество() Тогда + Возврат ТаблицаЗапроса; + КонецЕсли; // Таблиц больше чем 256, делаем доп. запрос и дополняем строки таблицы. @@ -14014,22 +14103,30 @@ Для Каждого Движение Из МетаданныеДокумента.Движения Цикл Если СчетчикТаблиц > 0 Тогда + СчетчикТаблиц = СчетчикТаблиц - 1; Продолжить; + КонецЕсли; - ТекстЗапроса = ТекстЗапроса + " - |" + ?(ТекстЗапроса = "", "", "ОБЪЕДИНИТЬ ВСЕ ") + " - |ВЫБРАТЬ ПЕРВЫЕ 1 """ + Движение.ПолноеИмя() + """ КАК ИмяТаблицыРегистра ИЗ " - + Движение.ПолноеИмя() + " ГДЕ Регистратор = &Регистратор"; + Если НЕ ПустаяСтрока(ТекстЗапроса) Тогда + + ТекстЗапроса = ТекстЗапроса + Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС; + + КонецЕсли; + + ТекстПодзапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяТаблицыМетаданных", Движение.ПолноеИмя()); + ТекстЗапроса = ТекстЗапроса + ТекстПодзапроса; КонецЦикла; - Запрос.Текст = ТекстЗапроса; + Запрос.Текст = ТекстЗапроса; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл + СтрокаТаблицы = ТаблицаЗапроса.Добавить(); ЗаполнитьЗначенияСвойств(СтрокаТаблицы, Выборка); + КонецЦикла; Возврат ТаблицаЗапроса; @@ -14041,8 +14138,8 @@ // Параметры: // Отбор - Структура - содержит значения элементов отбора. // Если параметр задан, то будет получено дерево метаданных в соответствии с заданным отбором: -// Ключ - Строка - имя свойства элемента метаданных; -// Значение - Массив - множество значений для отбора. +// Ключ - Строка - имя свойства элемента метаданных; +// Значение - Массив - множество значений для отбора. // // Пример инициализации переменной "Отбор": // @@ -14193,7 +14290,8 @@ // Зачитывает из информационной базы информацию о сообщении обмена данными. // -// Возвращаемое значение - Структура - информация о расположении файла сообщения обмена (текущий формат). +// Возвращаемое значение: +// Структура - информация о расположении файла сообщения обмена (текущий формат). // - ДвоичныеДанные - сообщение обмена в информационной базе (устаревший формат). // Функция СообщениеОбменаДаннымиИзГлавногоУзла() @@ -14206,8 +14304,8 @@ // Сохраняет путь к записанному сообщению в константу СообщениеОбменаДаннымиИзГлавногоУзла. // // Параметры: -// СообщениеОбмена - ДвоичныеДанные - зачитанное сообщение обмена. -// ГлавныйУзел - ПланОбменаСсылка - узел из которого получено сообщение. +// СообщениеОбмена - ДвоичныеДанные - зачитанное сообщение обмена. +// ГлавныйУзел - ПланОбменаСсылка - узел из которого получено сообщение. // Процедура УстановитьСообщениеОбменаДаннымиИзГлавногоУзла(СообщениеОбмена, ГлавныйУзел) Экспорт @@ -14294,7 +14392,8 @@ // Параметры: // ВнешнийМодуль - ЛюбаяСсылка - ссылка на внешний модуль. // -// Возвращаемое значение - Строка - шаблон имя профиля безопасности, содержащий символы +// Возвращаемое значение: +// Строка - шаблон имя профиля безопасности, содержащий символы // "%1", вместо которых в дальнейшем будет подставлен уникальный идентификатор. // Функция ШаблонИмениПрофиляБезопасности(Знач ВнешнийМодуль) Экспорт @@ -14308,7 +14407,8 @@ // // ВнешнийМодуль - ЛюбаяСсылка, ссылка на внешний модуль, // -// Возвращаемое значение - Картинка. +// Возвращаемое значение: +// Картинка. // Функция ПиктограммаВнешнегоМодуля(Знач ВнешнийМодуль) Экспорт diff --git a/SSL/src/CommonModules/ОбменДаннымиСлужебный/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиСлужебный/Module.bsl index b180660b3..58888b615 100644 --- a/SSL/src/CommonModules/ОбменДаннымиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиСлужебный/Module.bsl @@ -159,7 +159,7 @@ // Возвращает список приоритетных данных обмена. // // Возвращаемое значение: -// Массив - коллекция ссылок на выгруженные приоритетные данные обмена. +// Массив - коллекция ссылок на выгруженные приоритетные данные обмена. // Функция ПриоритетныеДанныеОбмена() Экспорт @@ -216,10 +216,10 @@ // то считается, что он используется. // // Параметры: -// ИмяПланаОбмена - Строка - имя плана обмена, как оно задано в конфигураторе. +// ИмяПланаОбмена - Строка - имя плана обмена, как оно задано в конфигураторе. // // Возвращаемое значение: -// Булево - Истина, если план обмена используется, Ложь - нет. +// Булево - Истина, если план обмена используется, Ложь - нет. // Функция ОбменДаннымиВключен(Знач ИмяПланаОбмена, Знач Отправитель) Экспорт @@ -231,7 +231,7 @@ // Возвращает значение параметра сеанса ПравилаРегистрацииОбъектов, полученное в привилегированном режиме. // // Возвращаемое значение: -// ХранилищеЗначения - значение параметра сеанса ПравилаРегистрацииОбъектов. +// ХранилищеЗначения - значение параметра сеанса ПравилаРегистрацииОбъектов. // Функция ПараметрыСеансаПравилаРегистрацииОбъектов() Экспорт @@ -243,12 +243,15 @@ // Возвращает признак того, что для получателя зарегистрированы изменения данных. // +// Возвращаемое значение: +// Булево - Истина, если есть зарегистрированные данные, Ложь - нет. +// Функция ИзмененияЗарегистрированы(Знач Получатель) Экспорт ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1 1 |ИЗ - | [Таблица].Изменения КАК ТаблицаИзменений + | &ИмяТаблицыИзменения КАК ТаблицаИзменений |ГДЕ | ТаблицаИзменений.Узел = &Узел"; @@ -257,12 +260,14 @@ УстановитьПривилегированныйРежим(Истина); - СоставПланаОбмена = Метаданные.ПланыОбмена[ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(Получатель)].Состав; + СтрокаШаблона = "%1.Изменения"; + СоставПланаОбмена = Метаданные.ПланыОбмена[ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(Получатель)].Состав; Для Каждого ЭлементСостава Из СоставПланаОбмена Цикл - Запрос.Текст = СтрЗаменить(ТекстЗапроса, "[Таблица]", ЭлементСостава.Метаданные.ПолноеИмя()); + ИмяТаблицыИзменения = СтрШаблон(СтрокаШаблона, ЭлементСостава.Метаданные.ПолноеИмя()); + Запрос.Текст = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыИзменения", ИмяТаблицыИзменения); РезультатЗапроса = Запрос.Выполнить(); Если Не РезультатЗапроса.Пустой() Тогда @@ -963,7 +968,8 @@ Если ОбщегоНазначения.ЭтоПланСчетов(МетаданныеОбъекта) Или ОбщегоНазначения.ЭтоПланВидовРасчета(МетаданныеОбъекта) Тогда Для Каждого ТабличнаяЧасть Из МетаданныеОбъекта.СтандартныеТабличныеЧасти Цикл - ПроверитьОтметитьСсылкуПредопределенныхВТаблицеДанных(Данные[ТабличнаяЧасть.Имя].Выгрузить(), ТаблицаПредопределенных); + ТабличнаяЧастьПланаСчетов = ТабличнаяЧасть; // ОбъектМетаданныхПланСчетов + ПроверитьОтметитьСсылкуПредопределенныхВТаблицеДанных(Данные[ТабличнаяЧастьПланаСчетов.Имя].Выгрузить(), ТаблицаПредопределенных); КонецЦикла; КонецЕсли; @@ -1016,7 +1022,8 @@ Если ОбщегоНазначения.ЭтоПланСчетов(МетаданныеОбъекта) Или ОбщегоНазначения.ЭтоПланВидовРасчета(МетаданныеОбъекта) Тогда Для Каждого ТабличнаяЧасть Из МетаданныеОбъекта.СтандартныеТабличныеЧасти Цикл - ПроверитьЗаменитьСсылкуПредопределенныхВТаблицеДанных(Данные[ТабличнаяЧасть.Имя], ТаблицаПредопределенных); + ТабличнаяЧастьПланаСчетов = ТабличнаяЧасть; // ОбъектМетаданныхПланСчетов + ПроверитьЗаменитьСсылкуПредопределенныхВТаблицеДанных(Данные[ТабличнаяЧастьПланаСчетов.Имя], ТаблицаПредопределенных); КонецЦикла; КонецЕсли; diff --git a/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl index aea4edf5e..63ec30fe5 100644 --- a/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl @@ -195,8 +195,8 @@ // Вычитает один массив элементов из другого массива. Возвращает результат вычитания. // // Параметры: -// Массив - Массив из Произвольный - исходный массив. -// МассивВычитания - Массив из Произвольный - массив, вычитаемый из исходного массива. +// Массив - Массив из Произвольный - исходный массив. +// МассивВычитания - Массив из Произвольный - массив, вычитаемый из исходного массива. // // Возвращаемое значение: // Массив из Произвольный - результат вычитания. @@ -315,7 +315,11 @@ // Вызывается из обработчиков планов обмена: ПриОтправкеДанныхГлавному(), ПриОтправкеДанныхПодчиненному(). // // Параметры: -// ЭлементДанных - КонстантаМенеджерЗначения, СправочникОбъект, ДокументОбъект, РегистрСведенийНаборЗаписей, и т.п. - +// ЭлементДанных - КонстантаМенеджерЗначения +// - СправочникОбъект +// - ДокументОбъект +// - РегистрСведенийНаборЗаписей +// - и т.п. - // элемент данных. // ОтправкаЭлемента - ОтправкаЭлементаДанных - см. описание параметра "ОтправкаЭлемента" в синтаксис помощнике // для методов ПриОтправкеДанныхГлавному() и ПриОтправкеДанныхПодчиненному(). @@ -454,7 +458,7 @@ // - УдалениеОбъекта - объект, представляющий данные, // хранимые в базе данных, такой как документ, элемент справочника, счет бухгалтерского учета, менеджер // записи константы, набор записей регистра и т. п. -// ПроверятьРазрешениеВыгрузки - Булево - необязательный флаг. Если установить в Ложь, то дополнительная проверка +// ПроверятьРазрешениеВыгрузки - Булево - флаг. Если установить в Ложь, то дополнительная проверка // на соответствие общим настройкам узла при регистрации производится не // будет. // @@ -529,7 +533,7 @@ // Объект - записываемый объект ИБ. // СсылкаСуществует - Булево - признак наличия объекта по ссылке в информационной базе. // СведенияОВерсииОбъекта - Структура: -// * АвторВерсии - Пользователь или Узел плана обмена - источник версии. +// * АвторВерсии - Пользователь, УзелПланаОбмена - источник версии. // Необязательный, значение по умолчанию Неопределено. // * ТипВерсииОбъекта - Строка - тип создаваемой версии. // Необязательный, значение по умолчанию "ИзмененоПользователем". @@ -1260,17 +1264,20 @@ Процедура ЗарегистрироватьИзмененияНаВсехУзлахРазделенныхПлановОбмена(ИмяПланаОбмена, Объект) + ШаблонТекста = "ПланОбмена.%1"; + ИмяПланаОбменаСтрокой = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекста, ИмяПланаОбмена); + ТекстЗапроса = - "ВЫБРАТЬ - | ПланОбмена.Ссылка КАК Получатель - |ИЗ - | ПланОбмена.[ИмяПланаОбмена] КАК ПланОбмена - |ГДЕ - | ПланОбмена.РегистрироватьИзменения - | И НЕ ПланОбмена.ПометкаУдаления"; + "ВЫБРАТЬ + | ПланОбмена.Ссылка КАК Получатель + |ИЗ + | &ИмяПланаОбмена КАК ПланОбмена + |ГДЕ + | ПланОбмена.РегистрироватьИзменения + | И НЕ ПланОбмена.ПометкаУдаления"; Запрос = Новый Запрос; - Запрос.Текст = СтрЗаменить(ТекстЗапроса, "[ИмяПланаОбмена]", ИмяПланаОбмена); + Запрос.Текст = СтрЗаменить(ТекстЗапроса, "&ИмяПланаОбмена", ИмяПланаОбменаСтрокой); Получатели = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Получатель"); Для Каждого Получатель Из Получатели Цикл @@ -1380,35 +1387,40 @@ Функция РеквизитыРегистрацииШапкиДоИзменения(Объект, СтрокаТаблицыРеквизитовРегистрации) - ТекстЗапроса = " - |ВЫБРАТЬ " + СтрокаТаблицыРеквизитовРегистрации.РеквизитыРегистрации - + " ИЗ " + СтрокаТаблицыРеквизитовРегистрации.ИмяОбъекта + " КАК ТекущийОбъект + ШаблонТекстаЗапроса = + "ВЫБРАТЬ + | &РеквизитыРегистрации + |ИЗ + | &ИмяТаблицыМетаданных КАК ТекущийОбъект |ГДЕ - | ТекущийОбъект.Ссылка = &Ссылка - |"; + | ТекущийОбъект.Ссылка = &Ссылка"; - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса; + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&РеквизитыРегистрации", СтрокаТаблицыРеквизитовРегистрации.РеквизитыРегистрации); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыМетаданных", СтрокаТаблицыРеквизитовРегистрации.ИмяОбъекта); + + Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка); - Возврат Запрос.Выполнить().Выгрузить(); КонецФункции Функция РеквизитыРегистрацииТабличнойЧастиДоИзменения(Объект, СтрокаТаблицыРеквизитовРегистрации) - ТекстЗапроса = " - |ВЫБРАТЬ "+ СтрокаТаблицыРеквизитовРегистрации.РеквизитыРегистрации - + " ИЗ " + СтрокаТаблицыРеквизитовРегистрации.ИмяОбъекта - + "." + СтрокаТаблицыРеквизитовРегистрации.ИмяТабличнойЧасти + " КАК ТекущийОбъектИмяТабличнойЧасти + ШаблонТекстаЗапроса = + "ВЫБРАТЬ + | &РеквизитыРегистрации + |ИЗ + | &ИмяТаблицыМетаданных КАК ТекущийОбъектИмяТабличнойЧасти |ГДЕ - | ТекущийОбъектИмяТабличнойЧасти.Ссылка = &Ссылка - |"; + | ТекущийОбъектИмяТабличнойЧасти.Ссылка = &Ссылка"; - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса; + СтрокаЗамены = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.%2", СтрокаТаблицыРеквизитовРегистрации.ИмяОбъекта, СтрокаТаблицыРеквизитовРегистрации.ИмяТабличнойЧасти); + + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&РеквизитыРегистрации", СтрокаТаблицыРеквизитовРегистрации.РеквизитыРегистрации); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыМетаданных", СтрокаЗамены); + + Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка); - Возврат Запрос.Выполнить().Выгрузить(); КонецФункции @@ -1665,19 +1677,23 @@ // Функция УзлыДляРегистрацииПоУсловиюВыгружатьВсегда(Знач ИмяПланаОбмена, Знач ИмяРеквизитаФлага) - ТекстЗапроса = " - |ВЫБРАТЬ + ШаблонТекста = "ПланОбмена.%1"; + ИмяПланаОбменаСтрокой = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекста, ИмяПланаОбмена); + + ШаблонТекстаПоле = "ШапкаПланаОбмена.%1"; + ИмяРеквизитаФлагаСтрокой = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекстаПоле, ИмяРеквизитаФлага); + + ТекстЗапроса = "ВЫБРАТЬ | ШапкаПланаОбмена.Ссылка КАК Узел |ИЗ - | ПланОбмена.[ИмяПланаОбмена] КАК ШапкаПланаОбмена + | &ИмяПланаОбмена КАК ШапкаПланаОбмена |ГДЕ - | НЕ ШапкаПланаОбмена.ЭтотУзел - | И ШапкаПланаОбмена.[ИмяРеквизитаФлага] = ЗНАЧЕНИЕ(Перечисление.РежимыВыгрузкиОбъектовОбмена.ВыгружатьВсегда) - | И НЕ ШапкаПланаОбмена.ПометкаУдаления - |"; + | НЕ ШапкаПланаОбмена.ЭтотУзел + | И &ИмяРеквизитаФлага = ЗНАЧЕНИЕ(Перечисление.РежимыВыгрузкиОбъектовОбмена.ВыгружатьВсегда) + | И НЕ ШапкаПланаОбмена.ПометкаУдаления"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяПланаОбмена]", ИмяПланаОбмена); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяРеквизитаФлага]", ИмяРеквизитаФлага); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяПланаОбмена", ИмяПланаОбменаСтрокой); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяРеквизитаФлага", ИмяРеквизитаФлагаСтрокой); Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; @@ -1704,25 +1720,27 @@ Ссылка, ИмяПланаОбмена, ИмяРеквизитаФлага); Иначе - ТекстЗапроса = " - |ВЫБРАТЬ РАЗЛИЧНЫЕ + ШаблонТекстаТаблица = "ПланОбмена.%1"; + ИмяПланаОбменаСтрокой = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекстаТаблица, ИмяПланаОбмена); + + ШаблонТекстаПоле = "ШапкаПланаОбмена.%1"; + ИмяРеквизитаФлагаСтрокой = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекстаПоле, ИмяРеквизитаФлага); + + ТекстЗапроса = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ШапкаПланаОбмена.Ссылка КАК Узел |ИЗ - | ПланОбмена.[ИмяПланаОбмена] КАК ШапкаПланаОбмена - |ЛЕВОЕ СОЕДИНЕНИЕ - | РегистрСведений.СоответствияОбъектовИнформационныхБаз КАК СоответствияОбъектовИнформационныхБаз - |ПО - | ШапкаПланаОбмена.Ссылка = СоответствияОбъектовИнформационныхБаз.УзелИнформационнойБазы - | И СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника = &Объект + | &ИмяПланаОбмена КАК ШапкаПланаОбмена + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоответствияОбъектовИнформационныхБаз КАК СоответствияОбъектовИнформационныхБаз + | ПО ШапкаПланаОбмена.Ссылка = СоответствияОбъектовИнформационныхБаз.УзелИнформационнойБазы + | И СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника = &Объект |ГДЕ - | НЕ ШапкаПланаОбмена.ЭтотУзел - | И ШапкаПланаОбмена.[ИмяРеквизитаФлага] = ЗНАЧЕНИЕ(Перечисление.РежимыВыгрузкиОбъектовОбмена.ВыгружатьПриНеобходимости) + | НЕ ШапкаПланаОбмена.ЭтотУзел + | И &ИмяРеквизитаФлага = ЗНАЧЕНИЕ(Перечисление.РежимыВыгрузкиОбъектовОбмена.ВыгружатьПриНеобходимости) | И НЕ ШапкаПланаОбмена.ПометкаУдаления - | И СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника = &Объект - |"; + | И СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника = &Объект"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяПланаОбмена]", ИмяПланаОбмена); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяРеквизитаФлага]", ИмяРеквизитаФлага); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяПланаОбмена", ИмяПланаОбменаСтрокой); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяРеквизитаФлага", ИмяРеквизитаФлагаСтрокой); Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; @@ -2016,17 +2034,16 @@ КонецЕсли; - ТекстЗапроса = " - |ВЫБРАТЬ - | [СвойстваОбъектаСтрокой] + ТекстЗапроса = + "ВЫБРАТЬ + | &СвойстваОбъектаСтрокой |ИЗ - | [ОбъектМетаданныхИмя] КАК Таблица + | &ОбъектМетаданныхИмя КАК Таблица |ГДЕ - | Таблица.Ссылка = &Ссылка - |"; + | Таблица.Ссылка = &Ссылка"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[СвойстваОбъектаСтрокой]", СвойстваОбъектаСтрокой); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ОбъектМетаданныхИмя]", ОбъектМетаданныхИмя); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&СвойстваОбъектаСтрокой", СвойстваОбъектаСтрокой); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОбъектМетаданныхИмя", ОбъектМетаданныхИмя); Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; @@ -2220,6 +2237,9 @@ КонецФункции +// Возвращаемое значение: +// ТаблицаЗначений - таблица правил регистрации для текущего плана обмена. +// Функция ПравилаРегистрацииОбъектовПланаОбмена(Знач ИмяПланаОбмена) Экспорт Возврат ОбменДаннымиПовтИсп.ПравилаРегистрацииОбъектовПланаОбмена(ИмяПланаОбмена); @@ -2281,11 +2301,11 @@ // Создает набор записей для регистра. // // Параметры: -// ОбъектМетаданных регистра - для получения набора записей. +// ОбъектМетаданных регистра - для получения набора записей. // // Возвращаемое значение: -// НаборЗаписей. В случае если для объекта метаданных не предусмотрено набора записей -// вызывается исключение. +// НаборЗаписей - в случае если для объекта метаданных не предусмотрено набора записей +// вызывается исключение. // Функция НаборЗаписейПоТипу(ОбъектМетаданных) @@ -2873,7 +2893,7 @@ // Источник - объект информационной базы (СправочникОбъект, ДокументОбъект, ПланВидовХарактеристикОбъект и пр.) // который является источником данных для заполнения. // -// Приемник (обязательный) - объект информационной базы (СправочникОбъект, ДокументОбъект, +// Приемник - объект информационной базы (СправочникОбъект, ДокументОбъект, // ПланВидовХарактеристикОбъект и пр.) который будет заполнен данными источника. // // СписокСвойств - Строка - список свойств объекта и табличных частей, разделенных запятыми. @@ -3142,11 +3162,11 @@ // Получает строку, содержащую ключи структуры, разделенные символом разделителя. // // Параметры: -// Структура - Структура - структура, ключи которой преобразуются в строку. -// Разделитель - Строка - разделитель, который вставляется в строку между ключами структуры. +// Структура - Структура - структура, ключи которой преобразуются в строку. +// Разделитель - Строка - разделитель, который вставляется в строку между ключами структуры. // // Возвращаемое значение: -// Строка - строка, содержащая ключи структуры разделенные разделителем. +// Строка - строка, содержащая ключи структуры разделенные разделителем. // Функция КлючиСтруктурыВСтроку(Структура, Разделитель = ",") Экспорт @@ -3425,10 +3445,10 @@ // Получает текущее значение набора записей в информационной базе. // // Параметры: -// Данные - набор записей регистров. +// Данные - набор записей регистров. // // Возвращаемое значение: -// НаборЗаписей - , содержащий текущее значение в информационной базе. +// НаборЗаписей - содержащий текущее значение в информационной базе. // Функция НаборЗаписей(Знач Данные) @@ -3641,9 +3661,9 @@ // общего модуля ДатыЗапретаИзменения.ПроверитьДатыЗапретаЗагрузкиДанных. // // Параметры: -// Объект - объект ссылочного типа для которого выполняется регистрация запрета. -// УзелОбмена - ПланОбменаСсылка - узел информационной базы из которой получен объект. -// СообщениеОбОшибке - Строка - подробное описание причины отказа от загрузки. +// Объект - объект ссылочного типа для которого выполняется регистрация запрета. +// УзелОбмена - ПланОбменаСсылка - узел информационной базы из которой получен объект. +// СообщениеОбОшибке - Строка - подробное описание причины отказа от загрузки. // Процедура ЗарегистрироватьЗапретЗагрузкиДанныхПоДате(ЭлементДанных, Отправитель, СообщениеОбОшибке) diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазы/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазы/Module.bsl index 96519008a..b09dd2fb6 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазы/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазы/Module.bsl @@ -352,7 +352,7 @@ // Отмечает, что переданные данные обновлены. // // Параметры: -// Данные - Ссылка +// Данные - ЛюбаяСсылка // - Массив // - НаборДанных - данные, по которым нужно зарегистрировать изменения. // - ТаблицаЗначений - значения измерений независимого регистра сведений. Требования: @@ -563,13 +563,13 @@ // - РегистрРасчетаНаборЗаписей // - ЛюбаяСсылка // - ДанныеФормыСтруктура - данные, которые нужно проанализировать. -// * МетаданныеОбъекта - ОбъектМетаданных - объект метаданных, соответствующий параметру Данные. -// * ПолноеИмя - Строка - полное имя объекта метаданных (см. метод ОбъектМетаданных.ПолноеИмя). -// * Отбор - ЛюбаяСсылка - если Данные - это ссылочный объект, то значение ссылки, +// * МетаданныеОбъекта - ОбъектМетаданных - объект метаданных, соответствующий параметру Данные. +// * ПолноеИмя - Строка - полное имя объекта метаданных (см. метод ОбъектМетаданных.ПолноеИмя). +// * Отбор - ЛюбаяСсылка - если Данные - это ссылочный объект, то значение ссылки, // если регистр подчиненный регистратору, - значение отбора по регистратору. // - Структура - если Данные - это независимый регистр сведений, то структура, соответствующая // установленным отборам по измерениям. -// * ЭтоНовый - Булево - если Данные - это ссылочный объект, то признак нового объекта. +// * ЭтоНовый - Булево - если Данные - это ссылочный объект, то признак нового объекта. // Для других типов - всегда Ложь. // Функция МетаданныеИОтборПоДанным(Данные, ДополнительныеПараметры = Неопределено) Экспорт @@ -679,7 +679,7 @@ // // Параметры: // ОсновныеПараметры - см. ОбновлениеИнформационнойБазы.ОсновныеПараметрыОтметкиКОбработке. -// Данные - Ссылка +// Данные - ЛюбаяСсылка // - Массив // - НаборЗаписей - данные, по которым нужно зарегистрировать изменения. // - ТаблицаЗначений - значения измерений независимого регистра сведений. Требования: @@ -865,9 +865,9 @@ // * ИмяВременнойТаблицы - Строка - параметр актуален для методов, создающих временные таблицы. Если имя не задано // (поведение по умолчанию), то временная таблица будет создана с именем, указанным // в описании каждого метода. -// * ДополнительныеИсточникиДанных - Соответствие - параметр актуален для методов, выбирающих регистраторы и ссылки -// для обработки. В ключах соответствия может быть только один из следующих -// видов данных: +// * ДополнительныеИсточникиДанных - Соответствие из КлючИЗначение - параметр актуален для методов, выбирающих +// регистраторы и ссылки для обработки. В ключах соответствия может быть только один +// из следующих видов данных: // 1. Пути к реквизитам шапки документа или реквизитам табличных частей, которые // участвуют в соединениях с другими таблицами (в т.ч. неявных соединениях при // обращении "через точку"). @@ -1219,14 +1219,14 @@ // ДополнительныеПараметры - см. ОбновлениеИнформационнойБазы.ДополнительныеПараметрыВыборкиДанныхДляОбработки. // // Возвращаемое значение: -// * ВыборкаИзРезультатаЗапроса - выборка регистраторов, которые нужно обработать, поля выборки: +// ВыборкаИзРезультатаЗапроса - выборка регистраторов, которые нужно обработать, поля выборки: // ** Регистратор - ДокументСсылка. // ** Период - Дата - дата документа, если передано полное имя документа, максимальный период по регистратору, // если полное имя документа не передано. // ** Проведен - Булево // - Неопределено - значение реквизита Проведен документа, если передано полное имя документа, // Неопределено - если имя документа не передано. -// * ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра. +// ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра. // Функция ВыбратьРегистраторыРегистраДляОбработки(Очередь, ПолноеИмяДокумента, ПолноеИмяРегистра, ДополнительныеПараметры = Неопределено) Экспорт @@ -1351,9 +1351,9 @@ // ДополнительныеПараметры - см. ОбновлениеИнформационнойБазы.ДополнительныеПараметрыВыборкиДанныхДляОбработки. // // Возвращаемое значение: -// * ВыборкаИзРезультатаЗапроса - выборка ссылок, которые нужно обработать, поля выборки: +// ВыборкаИзРезультатаЗапроса - выборка ссылок, которые нужно обработать, поля выборки: // ** Ссылка - ЛюбаяСсылка. -// * ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра. +// ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра. // Функция ВыбратьСсылкиДляОбработки(Очередь, ПолноеИмяОбъекта, ДополнительныеПараметры = Неопределено) Экспорт Если ДополнительныеПараметры = Неопределено Тогда @@ -1542,10 +1542,10 @@ // ДополнительныеПараметры - см. ОбновлениеИнформационнойБазы.ДополнительныеПараметрыВыборкиДанныхДляОбработки. // // Возвращаемое значение: -// * ВыборкаИзРезультатаЗапроса - выборка значений измерений, которые нужно обработать, имена полей соответствует именам +// ВыборкаИзРезультатаЗапроса - выборка значений измерений, которые нужно обработать, имена полей соответствует именам // измерений регистра. Если по измерению не регистрировалась необходимость обработки, // то в выборке по этому измерению будет пустое значение. -// * ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра. +// ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра. // Функция ВыбратьИзмеренияНезависимогоРегистраСведенийДляОбработки(Очередь, ПолноеИмяОбъекта, ДополнительныеПараметры = Неопределено) Экспорт Если ДополнительныеПараметры = Неопределено Тогда @@ -1755,9 +1755,9 @@ // - Неопределено - проверяется, завершена ли обработка в целом; // - Массив - проверяется, есть данные для обработки в списке очередей. // ПолноеИмяМетаданныеОбъекта - Строка -// - ОбъектМетаданных - полное имя обрабатываемого объекта или +// - ОбъектМетаданных - полное имя обрабатываемого объекта или // его метаданные. Например, "Документ.ПриходныйОрдерНаТовары" -// - Массив - массив полных имен объектов или объектов метаданных, +// - Массив - массив полных имен объектов или объектов метаданных, // в массиве не должно быть независимых регистров сведений. // Отбор - ЛюбаяСсылка // - Структура @@ -1823,9 +1823,9 @@ | ВЫБРАТЬ ПЕРВЫЕ 1 | ИСТИНА | ИЗ - | #ТаблицаОбъекта КАК #ИмяОбъекта + | #ТаблицаОбъекта КАК Таблица | ГДЕ - | #ИмяОбъекта.Ссылка = ТаблицаИзменений.Ссылка)"; + | Таблица.Ссылка = ТаблицаИзменений.Ссылка)"; Запрос.УстановитьПараметр("Ссылка", Отбор); @@ -1954,9 +1954,9 @@ // - Неопределено - проверяется, завершена ли обработка в целом; // - Массив - проверяется, есть ли данные для обработки в списке очередей. // ПолноеИмяМетаданныеОбъекта - Строка -// - ОбъектМетаданных - полное имя обрабатываемого объекта или +// - ОбъектМетаданных - полное имя обрабатываемого объекта или // его метаданные. Например, "Документ.ПриходныйОрдерНаТовары" -// - Массив - массив полных имен объектов или объектов метаданных, +// - Массив - массив полных имен объектов или объектов метаданных, // в массиве не должно быть независимых регистров сведений. // Отбор - ЛюбаяСсылка // - Структура @@ -2073,7 +2073,7 @@ Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; - МетаданныеОбъекта = Метаданные.НайтиПоПолномуИмени(ПолноеИмяОбъекта); + МетаданныеОбъекта = Метаданные.НайтиПоПолномуИмени(ПолноеИмяОбъекта); // ОбъектМетаданныхСправочник, ОбъектМетаданныхДокумент ИмяИзмеренияДляОтбора = ДополнительныеПараметры.ИмяИзмеренияДляОтбора; Если ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(МетаданныеОбъекта) Тогда @@ -2355,17 +2355,17 @@ ТекстЗапроса = СтрСоединить(МассивТекстовЗапросов, Соединитель); - Если ЕстьРегистры - И МассивТекстовЗапросов.Количество() > 1 Тогда - ТекстЗапроса = + Если ЕстьРегистры И МассивТекстовЗапросов.Количество() > 1 Тогда + ШаблонЗапроса = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ВложенныйЗапрос.Ссылка КАК Ссылка |ПОМЕСТИТЬ #ИмяВременнойТаблицы |ИЗ - | (" + ТекстЗапроса + ") КАК ВложенныйЗапрос + | #ТекстЗапроса КАК ВложенныйЗапрос | |ИНДЕКСИРОВАТЬ ПО | Ссылка"; + ТекстЗапроса = СтрЗаменить(ШаблонЗапроса, "#ТекстЗапроса", "(" + ТекстЗапроса + ")"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ПервыйЗапрос", ""); Иначе ТекстЗапроса = ТекстЗапроса + " @@ -3345,12 +3345,12 @@ // Возвращаемое значение: // ТаблицаЗначений: // * ИмяОбработчика - Строка -// * Статус - Перечисление.СтатусыОбработчиковОбновления +// * Статус - ПеречислениеСсылка.СтатусыОбработчиковОбновления // * ДлительностьОбработки - Число // * ИнформацияОбОшибке - Строка // * Версия - Строка // * ИмяБиблиотеки - Строка -// * РежимВыполнения - Перечисление.РежимыВыполненияОбработчиков +// * РежимВыполнения - ПеречислениеСсылка.РежимыВыполненияОбработчиков // * ОбластьДанных - Число // Функция ОбработчикиОбновления(Отбор = Неопределено) Экспорт @@ -3426,7 +3426,7 @@ // которые их обрабатывают на текущую версию. // // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - Строка - полное имя объекта. // * Значение - Массив из Строка - имена выполняемых обработчиков обновления. // @@ -3668,7 +3668,6 @@ Если ДополнительныеИсточникиРегистры.Количество() > 0 Тогда - ТекстЗапросаСоединениеСДопИсточникамиРегистрами = ""; УсловиеПоДопИсточникамРегистрам = "ИСТИНА"; ВременныеТаблицыЗаблокированныхДопИсточников = Новый Соответствие; @@ -3741,7 +3740,6 @@ Иначе МетаданныеРегистра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяРегистра); - ТекстЗапросаСоединениеСДопИсточниками = ""; УсловияПоДопИсточникамСсылкам = Новый Массив; ШаблонУсловияПоДопИсточникамСсылкам = " НЕ ИСТИНА В ( @@ -4095,8 +4093,8 @@ // ПараметрыПостроения - см. ПараметрыПостроенияВыборки // // Возвращаемое значение: -// * ВыборкаИзРезультатаЗапроса - в случае обычной выборки. -// * ТаблицаЗначений - в случае постраничной выборки. +// ВыборкаИзРезультатаЗапроса - в случае обычной выборки. +// ТаблицаЗначений - в случае постраничной выборки. // Функция ВыбратьДанныеДляОбработки(Запрос, ПараметрыПостроения) @@ -4564,9 +4562,6 @@ // Параметры - см. // ОбновлениеИнформационнойБазы.ДополнительныеПараметрыВыборкиДанныхДляОбработки. // -// Возвращаемое значение: -// Булево - Истина, если выборка многопоточная. -// Процедура ПроверитьПараметрыВыборки(Параметры) Если Не Параметры.ВыбиратьПорциями И ЭтоПостраничнаяВыборка(Параметры) Тогда @@ -4952,8 +4947,7 @@ // // Параметры: // Запросы - Массив - массив, в который добавляются тексты запросов. -// ВременныеТаблицы - Соответствие - где в ключе объект метаданных, а в значении имя соответствующей ему -// временной таблицы. +// ВременныеТаблицы - Соответствие // Процедура ДобавитьЗапросыУничтоженияВТ(Запросы, ВременныеТаблицы) @@ -4977,7 +4971,7 @@ // Тип - Строка - тип создаваемого значения. // // Возвращаемое значение: -// Соответствие, Произвольный - новое или найденное по ключу значение. +// Соответствие // Функция ЗначениеПоКлючу(Коллекция, Ключ, Тип = "Соответствие") @@ -5047,16 +5041,16 @@ // Текст запроса создания временной таблицы со ссылками, заблокированными по реквизитам табличных частей. // // Параметры: -// РеквизитыТЧ - Соответствие: +// РеквизитыТЧ - Соответствие из КлючИЗначение: // * Ключ - Строка - имя табличной части источника данных. -// * Значение - Соответствие: +// * Значение - Соответствие из КлючИЗначение: // ** Ключ - ОбъектМетаданных - объект метаданных, соответствующий типу источника данных. -// ** Значение - Соответствие: +// ** Значение - Соответствие из КлючИЗначение: // *** Ключ - Строка - имя реквизита табличной части источника данных. // *** Значение - Булево - Истина, как значение по умолчанию (не нужно, т.к. по сути - это множество). // ПолноеИмяОбъекта - Строка - полное имя обновляемого ссылочного объекта метаданных. // ПолноеИмяРегистра - Строка - полное имя обновляемого объекта метаданных регистра. -// ВременныеТаблицы - Соответствие: +// ВременныеТаблицы - Соответствие из КлючИЗначение: // * Ключ - ОбъектМетаданных - для которого создана временная таблица. // * Значение - Строка - имя временной таблицы. // @@ -5067,32 +5061,32 @@ ШаблонЗапроса = "ВЫБРАТЬ - | ТаблицаИзменений.%1 КАК Ссылка + | &Реквизит КАК Ссылка |ПОМЕСТИТЬ ЗаблокированныеПоТЧ |ИЗ - | %2.Изменения КАК ТаблицаИзменений + | &ТаблицаИзменений КАК ТаблицаИзменений |ГДЕ - | %3 + | &Условие |ИНДЕКСИРОВАТЬ ПО | Ссылка"; ШаблонУсловия = - "ИСТИНА В ( + "ИСТИНА В " + "( | ВЫБРАТЬ ПЕРВЫЕ 1 | ИСТИНА | ИЗ - | %1.%2 КАК ТЧДокумента%2 + | #Таблица КАК ТЧДокументаПолноеИмяОбъекта | ГДЕ - | ТаблицаИзменений.%3 = ТЧДокумента%2.Ссылка - | И (%4))"; + | &УсловиеПоПолюТаблицы + | И (&ТекстУсловийПоЗаблокированным))"; ШаблонУсловияПоЗаблокированным = - "ИСТИНА В ( + "ИСТИНА В " + "( | ВЫБРАТЬ ПЕРВЫЕ 1 | ИСТИНА | ИЗ - | %1 КАК %1 + | #Таблица КАК ВТЗаблокированоТаблица | ГДЕ - | %2)"; - ШаблонУсловияПоРеквизиту = "ТЧДокумента%1.%2 = %3.Ссылка"; + | &УсловиеПоЗаблокированным)"; + ШаблонУсловияПоРеквизиту = "ТЧДокумента%1.%2 = %3.Ссылка"; // @query-part РазделительУсловий = " | ИЛИ "; @@ -5134,26 +5128,25 @@ КонецЦикла; ТекстУсловийПоРеквизитам = СтрСоединить(УсловияПоРеквизитам, РазделительУсловийПоРеквизитам); - УсловиеПоЗаблокированным = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонУсловияПоЗаблокированным, - ТаблицаЗаблокированных, - ТекстУсловийПоРеквизитам); + УсловиеПоЗаблокированным = СтрЗаменить(ШаблонУсловияПоЗаблокированным, "#Таблица", ТаблицаЗаблокированных); + УсловиеПоЗаблокированным = СтрЗаменить(УсловиеПоЗаблокированным, "ВТЗаблокированоТаблица", ТаблицаЗаблокированных); + УсловиеПоЗаблокированным = СтрЗаменить(УсловиеПоЗаблокированным, "&УсловиеПоЗаблокированным", ТекстУсловийПоРеквизитам); УсловияПоЗаблокированным.Добавить(УсловиеПоЗаблокированным); КонецЦикла; ТекстУсловийПоЗаблокированным = СтрСоединить(УсловияПоЗаблокированным, РазделительУсловийПоЗаблокированным); - Условие = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонУсловия, - ПолноеИмяОбъекта, - ТабличнаяЧасть, - ПолеТаблицы, - ТекстУсловийПоЗаблокированным); + Условие = СтрЗаменить(ШаблонУсловия, "#Таблица", ПолноеИмяОбъекта + "." + ТабличнаяЧасть); + Условие = СтрЗаменить(Условие, "ТЧДокументаПолноеИмяОбъекта", "ТЧДокумента" + ТабличнаяЧасть); + Условие = СтрЗаменить(Условие, "&УсловиеПоПолюТаблицы", "ТаблицаИзменений." + ПолеТаблицы + " = ТЧДокумента"+ ТабличнаяЧасть + ".Ссылка"); + Условие = СтрЗаменить(Условие, "&ТекстУсловийПоЗаблокированным", ТекстУсловийПоЗаблокированным); Условия.Добавить(Условие); КонецЦикла; ТекстУсловий = СтрСоединить(Условия, РазделительУсловий); - ТекстЗапроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонЗапроса, - ПолеТаблицы, - Таблица, - ТекстУсловий); + + ТекстЗапроса = СтрЗаменить(ШаблонЗапроса, "&Реквизит", ПолеТаблицы); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаИзменений", Таблица + ".Изменения"); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Условие", ТекстУсловий); Возврат ТекстЗапроса; @@ -5163,7 +5156,7 @@ // // Параметры: // ПолноеИмяРегистра - Строка - полное имя обновляемого объекта метаданных регистра. -// ВременныеТаблицы - Соответствие: +// ВременныеТаблицы - Соответствие из КлючИЗначение: // * Ключ - ОбъектМетаданных - для которого создана временная таблица. // * Значение - Строка - имя временной таблицы. // @@ -5224,13 +5217,13 @@ // Текст условия запроса для исключения из обновления данных, заблокированных по реквизитам шапки объекта. // // Параметры: -// РеквизитыШапки - Соответствие: +// РеквизитыШапки - Соответствие из КлючИЗначение: // * Ключ - ОбъектМетаданных - объект метаданных, соответствующий типу источника данных. -// * Значение - Соответствие: +// * Значение - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя реквизита табличной части источника данных. // ** Значение - Булево - Истина, как значение по умолчанию (не нужно, т.к. по сути - это множество). // ПолноеИмяРегистра - Строка - полное имя обновляемого объекта метаданных регистра. -// ВременныеТаблицы - Соответствие: +// ВременныеТаблицы - Соответствие из КлючИЗначение: // * Ключ - ОбъектМетаданных - для которого создана временная таблица. // * Значение - Строка - имя временной таблицы. // diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl index 10005b66a..57f2013b9 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl @@ -41,7 +41,7 @@ Процедура ПриДобавленииПодсистемы(Описание) Экспорт Описание.Имя = "СтандартныеПодсистемы"; - Описание.Версия = "3.1.3.362"; + Описание.Версия = "3.1.4.96"; Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; @@ -78,7 +78,7 @@ // См. ОбновлениеИнформационнойБазыПереопределяемый.ПослеОбновленияИнформационнойБазы. Процедура ПослеОбновленияИнформационнойБазы(Знач ПредыдущаяВерсия, Знач ТекущаяВерсия, - Знач ВыполненныеОбработчики, ВыводитьОписаниеОбновлений, МонопольныйРежим) Экспорт + Знач ВыполненныеОбработчики, ВыводитьОписаниеОбновлений, Знач МонопольныйРежим) Экспорт ИнтеграцияПодсистемБСП.ПослеОбновленияИнформационнойБазы(ПредыдущаяВерсия, ТекущаяВерсия, ВыполненныеОбработчики, ВыводитьОписаниеОбновлений, МонопольныйРежим); diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыПереопределяемый/Module.bsl index bbc18a23f..328eb9f29 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыПереопределяемый/Module.bsl @@ -199,4 +199,49 @@ КонецПроцедуры +// Определяет настройки начального заполнения элементов +// +// Параметры: +// ПолноеИмяОбъекта - Строка - имя объекта, для которого вызывается заполнение. +// Настройки - Структура: +// * ПриНачальномЗаполненииЭлемента - Булево - если Истина, то для каждого элемента будет +// вызвана процедура индивидуального заполнения ПриНачальномЗаполненииЭлемента. +// * ПредопределенныеДанные - ТаблицаЗначений - данные заполненные в процедуре ПриНачальномЗаполненииЭлементов. +// +Процедура ПриНастройкеНачальногоЗаполненияЭлементов(ПолноеИмяОбъекта, Настройки) Экспорт + +КонецПроцедуры + +// Вызывается при начальном заполнении объектов. +// +// Параметры: +// ПолноеИмяОбъекта - Строка - имя объекта, для которого вызывается заполнение. +// КодыЯзыков - Массив - список языков конфигурации. Актуально для мультиязычных конфигураций. +// Элементы - ТаблицаЗначений - данные заполнения. Состав колонок соответствует набору реквизитов объекта. +// ТабличныеЧасти - Структура - описание табличных частей объекта, где: +// * Ключ - Строка - имя табличной части; +// * Значение - ТаблицаЗначений - табличная часть в виде таблицы значений, структуру которой +// необходимо скопировать перед заполнением. Например: +// Элемент.Ключи = ТабличныеЧасти.Ключи.Скопировать(); +// ЭлементТЧ = Элемент.Ключи.Добавить(); +// ЭлементТЧ.ИмяКлюча = "Первичный"; +// +Процедура ПриНачальномЗаполненииЭлементов(ПолноеИмяОбъекта, КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт + +КонецПроцедуры + +// Вызывается при начальном заполнении создаваемого объекта. +// +// Параметры: +// ПолноеИмяОбъекта - Строка - имя объекта, для которого вызывается заполнение. +// Объект - заполняемый объект. +// Данные - СтрокаТаблицыЗначений - данные заполнения объекта. +// ДополнительныеПараметры - Структура: +// * ПредопределенныеДанные - ТаблицаЗначений - данные заполненные в процедуре ПриНачальномЗаполненииЭлементов. +// +Процедура ПриНачальномЗаполненииЭлемента(ПолноеИмяОбъекта, Объект, Данные, ДополнительныеПараметры) Экспорт + +КонецПроцедуры + + #КонецОбласти diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебный/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебный/Module.bsl index 321122856..811caa699 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебный/Module.bsl @@ -861,8 +861,6 @@ // Процедура ПеререгистрироватьДанныеДляОтложенногоОбновления() Экспорт - ОписанияБиблиотек = СтандартныеПодсистемыПовтИсп.ОписанияПодсистем().ПоИменам; - ОбрабатываемыеДанные = Новый Соответствие; ПараметрыИнициализированы = Ложь; Обработчики = ОбработчикиДляОтложеннойРегистрацииДанных(); @@ -1025,6 +1023,344 @@ КонецФункции +// Возвращает итерации обновления. +// +// Возвращаемое значение: +// Массив из см. ИтерацияОбновления +// +Функция ИтерацииОбновления() Экспорт + + ИмяОсновнойКонфигурации = Метаданные.Имя; + ИтерацияОбновлениеОсновнойПодсистемы = Неопределено; + + ИтерацииОбновления = Новый Массив; + ОписанияПодсистем = СтандартныеПодсистемыПовтИсп.ОписанияПодсистем(); + Для каждого ИмяПодсистемы Из ОписанияПодсистем.Порядок Цикл + ОписаниеПодсистемы = ОписанияПодсистем.ПоИменам.Получить(ИмяПодсистемы); + Если НЕ ЗначениеЗаполнено(ОписаниеПодсистемы.ОсновнойСерверныйМодуль) Тогда + Продолжить; + КонецЕсли; + Модуль = ОбщегоНазначения.ОбщийМодуль(ОписаниеПодсистемы.ОсновнойСерверныйМодуль); + + ИтерацияОбновления = ИтерацияОбновления(ОписаниеПодсистемы.Имя, ОписаниеПодсистемы.Версия, + ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления(), ОписаниеПодсистемы.Имя = ИмяОсновнойКонфигурации); + ИтерацияОбновления.ИмяОсновногоСерверногоМодуля = ОписаниеПодсистемы.ОсновнойСерверныйМодуль; + ИтерацияОбновления.ОсновнойСерверныйМодуль = Модуль; + ИтерацияОбновления.ПредыдущаяВерсия = ВерсияИБ(ОписаниеПодсистемы.Имя); + ИтерацииОбновления.Добавить(ИтерацияОбновления); + + Модуль.ПриДобавленииОбработчиковОбновления(ИтерацияОбновления.Обработчики); + + Если ОписаниеПодсистемы.Имя = ИмяОсновнойКонфигурации Тогда + ИтерацияОбновлениеОсновнойПодсистемы = ИтерацияОбновления; + КонецЕсли; + + ПроверитьСвойстваОбработчиков(ИтерацияОбновления); + КонецЦикла; + + Если ИтерацияОбновлениеОсновнойПодсистемы = Неопределено И ИмяОсновнойКонфигурации = "БиблиотекаСтандартныхПодсистем" Тогда + ТекстСообщения = НСтр("ru = 'Файл поставки 1С:Библиотека стандартных подсистем не предназначен для создания + |информационных баз по шаблону. Перед использованием необходимо + |ознакомиться с документацией на ИТС (http://its.1c.ru/db/bspdoc)'"); + ВызватьИсключение ТекстСообщения; + КонецЕсли; + + Возврат ИтерацииОбновления; + +КонецФункции + +// Обновляет список выполняемых обработчиков обновления в регистрах сведений +// ОбработчикиОбновления и ОбработчикиОбновленияОбщихДанных. +// +Процедура ОбновитьСписокВыполняемыхОбработчиковОбновления(ИтерацииОбновления, ПервыйОбменВРИБ = Ложь) Экспорт + + СведенияОбОбновлении = СведенияОбОбновленииИнформационнойБазы(); + НезавершенныеОтложенныеОбработчики = НезавершенныеОтложенныеОбработчики(СведенияОбОбновлении); + НачатьТранзакцию(); + Попытка + + СброситьСведенияОбОбновлении(СведенияОбОбновлении); + + Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + НаборРазделенныхОбработчиков = РегистрыСведений.ОбработчикиОбновления.СоздатьНаборЗаписей(); + НаборРазделенныхОбработчиков.Записать(); + КонецЕсли; + Если Не ОбщегоНазначения.РазделениеВключено() Или Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + НаборНеразделенныхОбработчиков = РегистрыСведений.ОбработчикиОбновленияОбщихДанных.СоздатьНаборЗаписей(); + НаборНеразделенныхОбработчиков.Записать(); + КонецЕсли; + + ПроверитьУникальностьИдентификаторовОтложенныхОбработчиков(ИтерацииОбновления); + + ОписанияБиблиотек = СтандартныеПодсистемыПовтИсп.ОписанияПодсистем().ПоИменам; + ГруппаОбновления = 1; + ТекстОшибок = ""; + ДобавленныеОбработчики = Новый Массив; + Для Каждого ИтерацияОбновления Из ИтерацииОбновления Цикл + + // Добавление монопольных и оперативных обработчиков обновления. + ИмяБиблиотеки = ИтерацияОбновления.Подсистема; + Если Не ПервыйОбменВРИБ Тогда + ПредыдущаяВерсия = ИтерацияОбновления.ПредыдущаяВерсия; + ВерсияМетаданных = ИтерацияОбновления.Версия; + Если ПустаяСтрока(ВерсияМетаданных) Тогда + ВерсияМетаданных = "0.0.0.0"; + КонецЕсли; + + ОбработчикиПоВерсиям = Неопределено; + Если ПредыдущаяВерсия <> "0.0.0.0" + И ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + ОбработчикиПоВерсиям = ПолучитьПланОбновления(ИтерацияОбновления.Подсистема, ПредыдущаяВерсия, ВерсияМетаданных); + КонецЕсли; + + Если ОбработчикиПоВерсиям = Неопределено Тогда + ОбработчикиПоВерсиям = ОбработчикиОбновленияВИнтервале(ИтерацияОбновления.Обработчики, + ПредыдущаяВерсия, ИтерацияОбновления.Версия); + КонецЕсли; + + Если ОбработчикиПоВерсиям.Строки.Количество() <> 0 Тогда + ОбработчикиПоВерсиям.Колонки.Процедура.Имя = "ИмяОбработчика"; + ДобавитьОбработчики(ИмяБиблиотеки, ОбработчикиПоВерсиям.Строки, ДобавленныеОбработчики); + КонецЕсли; + КонецЕсли; + + // Добавление отложенных обработчиков обновления. + Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + // Обработка сценария получения первого сообщения обмена от подчиненного узла после обновления. + ПредыдущаяВерсия = ?(ПервыйОбменВРИБ, "1.0.0.0", ИтерацияОбновления.ПредыдущаяВерсия); + РежимВыполненияОтложенныхОбработчиков = ОписанияБиблиотек[ИмяБиблиотеки].РежимВыполненияОтложенныхОбработчиков; + ПараллельноСВерсии = ОписанияБиблиотек[ИмяБиблиотеки].ПараллельноеОтложенноеОбновлениеСВерсии; + Если ПервыйОбменВРИБ И РежимВыполненияОтложенныхОбработчиков = "Последовательно" Тогда + Продолжить; + КонецЕсли; + + ПараметрыОтбора = ПараметрыОтбораОбработчиков(); + ПараметрыОтбора.ПолучатьРазделенные = Истина; + ПараметрыОтбора.РежимОбновления = "Отложенно"; + ПараметрыОтбора.УчитыватьПервыйОбменВРИБ = (РежимВыполненияОтложенныхОбработчиков = "Параллельно"); + ПараметрыОтбора.ПервыйОбменВРИБ = ПервыйОбменВРИБ; + + ОбработчикиПоВерсиям = ОбработчикиОбновленияВИнтервале(ИтерацияОбновления.Обработчики, + ПредыдущаяВерсия, ИтерацияОбновления.Версия, ПараметрыОтбора); + ОбработчикиПоВерсиям.Колонки.Процедура.Имя = "ИмяОбработчика"; + ДобавитьНезавершенныеОтложенныеОбработчики( + ИтерацияОбновления, + ИмяБиблиотеки, + НезавершенныеОтложенныеОбработчики, + ОбработчикиПоВерсиям.Строки); + + Если ПервыйОбменВРИБ Тогда + УдаляемыеСтроки = Новый Массив; + Для Каждого СтрокаВерсия Из ОбработчикиПоВерсиям.Строки Цикл + Если СтрокаВерсия.Версия = "*" + Или (ЗначениеЗаполнено(ПараллельноСВерсии) + И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СтрокаВерсия.Версия, ПараллельноСВерсии) < 0) Тогда + УдаляемыеСтроки.Добавить(СтрокаВерсия); + КонецЕсли; + КонецЦикла; + + Для Каждого УдаляемаяСтрока Из УдаляемыеСтроки Цикл + ОбработчикиПоВерсиям.Строки.Удалить(УдаляемаяСтрока); + КонецЦикла; + КонецЕсли; + + Если ОбработчикиПоВерсиям.Строки.Количество() = 0 Тогда + Продолжить; + КонецЕсли; + + УпорядочитьВерсииОбработчиков(ОбработчикиПоВерсиям); + + ДобавитьОтложенныеОбработчики(ИмяБиблиотеки, ОбработчикиПоВерсиям.Строки, ГруппаОбновления, ТекстОшибок); + КонецЕсли; + + КонецЦикла; + + Если ЗначениеЗаполнено(ТекстОшибок) Тогда + ВызватьИсключение ТекстОшибок; + КонецЕсли; + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +// Вызывается для включения и отключении отложенного обновления. +// +// Параметры: +// Использование - Булево - Истина, если задание нужно включить, иначе Ложь. +// +Процедура ПриВключенииОтложенногоОбновления(Использование) Экспорт + + ОтборЗаданий = Новый Структура; + ОтборЗаданий.Вставить("Метаданные", Метаданные.РегламентныеЗадания.ОтложенноеОбновлениеИБ); + Задания = РегламентныеЗаданияСервер.НайтиЗадания(ОтборЗаданий); + + Для Каждого Задание Из Задания Цикл + Если Задание.Использование = Использование Тогда + Продолжить; + КонецЕсли; + + ПараметрыЗадания = Новый Структура("Использование", Использование); + + ТребуетсяУстановитьЗапланированныйМоментЗапуска = Ложь; + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + МодульТехнологияСервиса = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервиса"); + ВерсияБиблиотекиБТС = МодульТехнологияСервиса.ВерсияБиблиотеки(); + ТребуетсяУстановитьЗапланированныйМоментЗапуска = ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБиблиотекиБТС, "2.0.1.0") > 0; + КонецЕсли; + + Если ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") + И Использование + И ТребуетсяУстановитьЗапланированныйМоментЗапуска Тогда + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); + ЗапланированныйМоментЗапуска = МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ЗапланированныйМоментЗапускаОбновленияОбласти(); + ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ЗапланированныйМоментЗапуска); + КонецЕсли; + + РегламентныеЗаданияСервер.ИзменитьЗадание(Задание.УникальныйИдентификатор, ПараметрыЗадания); + КонецЦикла; + +КонецПроцедуры + +// Выполняет оперативные и монопольные обработчики обновления +// по переданной итерации обновления. +// +Функция ВыполнитьИтерациюОбновления(Знач ИтерацияОбновления, Знач Параметры) Экспорт + + ИдентификаторБиблиотеки = ИтерацияОбновления.Подсистема; + ВерсияМетаданныхИБ = ИтерацияОбновления.Версия; + ОбработчикиОбновления = ИтерацияОбновления.Обработчики; + + ТекущаяВерсияИБ = ИтерацияОбновления.ПредыдущаяВерсия; + + НоваяВерсияИБ = ТекущаяВерсияИБ; + ВерсияМетаданных = ВерсияМетаданныхИБ; + Если ПустаяСтрока(ВерсияМетаданных) Тогда + ВерсияМетаданных = "0.0.0.0"; + КонецЕсли; + + Если ТекущаяВерсияИБ <> "0.0.0.0" + И ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + + // Получение списка обработчиков сформированного на этапе выполнения неразделенных обработчиков. + ВыполняемыеОбработчики = ПолучитьПланОбновления(ИдентификаторБиблиотеки, ТекущаяВерсияИБ, ВерсияМетаданных); + Если ВыполняемыеОбработчики = Неопределено Тогда + Если ИтерацияОбновления.ЭтоОсновнаяКонфигурация Тогда + ШаблонСообщения = НСтр("ru = 'Не существует план обновления конфигурации %1 с версии %2 на версию %3'"); + Иначе + ШаблонСообщения = НСтр("ru = 'Не существует план обновления библиотеки %1 с версии %2 на версию %3'"); + КонецЕсли; + Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, ИдентификаторБиблиотеки, ТекущаяВерсияИБ, ВерсияМетаданных); + ЗаписатьИнформацию(Сообщение); + + ВыполняемыеОбработчики = ОбработчикиОбновленияВИнтервале(ОбработчикиОбновления, ТекущаяВерсияИБ, ВерсияМетаданных); + КонецЕсли; + Иначе + ВыполняемыеОбработчики = ОбработчикиОбновленияВИнтервале(ОбработчикиОбновления, ТекущаяВерсияИБ, ВерсияМетаданных); + КонецЕсли; + + ОбязательныеРазделенныеОбработчики = ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления(); + ИсходнаяВерсияИБ = ТекущаяВерсияИБ; + ЗаписыватьВЖурнал = Константы.ДетализироватьОбновлениеИБВЖурналеРегистрации.Получить(); + + Для Каждого Версия Из ВыполняемыеОбработчики.Строки Цикл + + Если Версия.Версия = "*" Тогда + Сообщение = НСтр("ru = 'Выполняются обязательные процедуры обновления информационной базы.'"); + Иначе + НоваяВерсияИБ = Версия.Версия; + Если ТекущаяВерсияИБ = "0.0.0.0" Тогда + Сообщение = НСтр("ru = 'Выполняется начальное заполнение данных.'"); + ИначеЕсли ИтерацияОбновления.ЭтоОсновнаяКонфигурация Тогда + Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Выполняется обновление информационной базы с версии %1 на версию %2.'"), + ТекущаяВерсияИБ, НоваяВерсияИБ); + Иначе + Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Выполняется обновление данных библиотеки %3 с версии %1 на версию %2.'"), + ТекущаяВерсияИБ, НоваяВерсияИБ, ИдентификаторБиблиотеки); + КонецЕсли; + КонецЕсли; + ЗаписатьИнформацию(Сообщение); + + Для Каждого Обработчик Из Версия.Строки Цикл + + ПараметрыОбработчика = Неопределено; + Если Обработчик.ВерсияРегистрации = "*" Тогда + + Если Обработчик.УправлениеОбработчиками Тогда + ПараметрыОбработчика = Новый Структура; + ПараметрыОбработчика.Вставить("РазделенныеОбработчики", ОбязательныеРазделенныеОбработчики); + КонецЕсли; + + Если Обработчик.МонопольныйРежим = Истина Или Обработчик.РежимВыполнения = "Монопольно" Тогда + Если Параметры.ОперативноеОбновление Тогда + // Проверки выполняются в ВозможноОперативноеОбновление, а само обновление для таких + // обработчиков выполняется только при неоперативном обновлении. + Продолжить; + КонецЕсли; + + Если ПараметрыОбработчика = Неопределено Тогда + ПараметрыОбработчика = Новый Структура; + КонецЕсли; + ПараметрыОбработчика.Вставить("МонопольныйРежим", Истина); + КонецЕсли; + КонецЕсли; + + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("ЗаписыватьВЖурнал", ЗаписыватьВЖурнал); + ДополнительныеПараметры.Вставить("ИдентификаторБиблиотеки", ИдентификаторБиблиотеки); + ДополнительныеПараметры.Вставить("ХодВыполненияОбработчиков", Параметры.ХодВыполненияОбработчиков); + ДополнительныеПараметры.Вставить("ВФоне", Параметры.ВФоне); + + ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры); + КонецЦикла; + + Если Версия.Версия = "*" Тогда + Сообщение = НСтр("ru = 'Выполнены обязательные процедуры обновления информационной базы.'"); + Иначе + Если ИтерацияОбновления.ЭтоОсновнаяКонфигурация Тогда + Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Выполнено обновление информационной базы с версии %1 на версию %2.'"), + ТекущаяВерсияИБ, НоваяВерсияИБ); + Иначе + Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Выполнено обновление данных библиотеки %3 с версии %1 на версию %2.'"), + ТекущаяВерсияИБ, НоваяВерсияИБ, ИдентификаторБиблиотеки); + КонецЕсли; + КонецЕсли; + ЗаписатьИнформацию(Сообщение); + + Если Версия.Версия <> "*" Тогда + // Установка номера версии информационной базы. + УстановитьВерсиюИБ(ИдентификаторБиблиотеки, НоваяВерсияИБ, ИтерацияОбновления.ЭтоОсновнаяКонфигурация); + ТекущаяВерсияИБ = НоваяВерсияИБ; + КонецЕсли; + + КонецЦикла; + + // Установка номера версии информационной базы. + Если ВерсияИБ(ИдентификаторБиблиотеки) <> ВерсияМетаданныхИБ Тогда + УстановитьВерсиюИБ(ИдентификаторБиблиотеки, ВерсияМетаданныхИБ, ИтерацияОбновления.ЭтоОсновнаяКонфигурация); + КонецЕсли; + + Если ТекущаяВерсияИБ <> "0.0.0.0" Тогда + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда + + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.СформироватьПланОбновленияОбластиДанных(ИдентификаторБиблиотеки, ОбработчикиОбновления, + ОбязательныеРазделенныеОбработчики, ИсходнаяВерсияИБ, ВерсияМетаданныхИБ); + + КонецЕсли; + + КонецЕсли; + + Возврат ВыполняемыеОбработчики; + +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. @@ -1037,11 +1373,7 @@ КонецПроцедуры -// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок -// -// Параметры: -// ИсключенияПоискаСсылок - см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.ИсключенияПоискаСсылок -// +// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.ДанныеОбработанныеВЦентральномУзлеРИБ.ПолноеИмя()); @@ -1150,11 +1482,7 @@ КонецПроцедуры -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// +// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПроверкаЛегальностиПолученияОбновления") Тогда @@ -1172,21 +1500,15 @@ КонецПроцедуры -// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов -// -// Параметры: -// ШаблоныЗаданий - см. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.ШаблоныЗаданий -// +// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт ШаблоныЗаданий.Добавить("ОтложенноеОбновлениеИБ"); КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. -// // Параметры: -// ТекущиеДела - см. ТекущиеДелаСлужебный.ТекущиеДела +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт @@ -1262,7 +1584,7 @@ КонецПроцедуры -// Вызывается при выполнении скрипта обновления из процедуры ОбновлениеКонфигурации.ЗавершитьОбновление(). +// Вызывается при выполнении скрипта обновления из процедуры ОбновлениеКонфигурации.ЗавершитьОбновление. Процедура ПослеЗавершенияОбновления() Экспорт ЗаписатьПодтверждениеЛегальностиПолученияОбновлений(); @@ -1337,7 +1659,11 @@ НастройкиЗаполненияЭлементов.Вставить("ДополнительныеПараметры", Новый Структура); НастройкиЗаполненияЭлементов.ДополнительныеПараметры.Вставить("ПредопределенныеДанные", ПредопределенныеДанные); + ПолноеИмяОбъекта = МенеджерОбъекта.ПустаяСсылка().Метаданные().ПолноеИмя(); + МенеджерОбъекта.ПриНастройкеНачальногоЗаполненияЭлементов(НастройкиЗаполненияЭлементов); + ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов(ПолноеИмяОбъекта, + НастройкиЗаполненияЭлементов); Возврат НастройкиЗаполненияЭлементов; @@ -1345,7 +1671,7 @@ Функция ПредопределенныеДанныеОбъекта(Знач МетаданныеОбъекта, МенеджерОбъекта, ЛокализуемыеРеквизитыОбъекта) Экспорт - Языки = МультиязычностьСервер.ЯзыкиКонфигурации(); + Языки = СтандартныеПодсистемыСервер.ЯзыкиКонфигурации(); // Таблица с предопределенными данными ПредопределенныеДанные = Новый ТаблицаЗначений; @@ -1379,6 +1705,8 @@ КонецЕсли; МенеджерОбъекта.ПриНачальномЗаполненииЭлементов(Языки, ПредопределенныеДанные, ТабличныеЧасти); + ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов(МетаданныеОбъекта.ПолноеИмя(), Языки, ПредопределенныеДанные, ТабличныеЧасти); + Возврат ПредопределенныеДанные; КонецФункции @@ -1388,14 +1716,24 @@ Процедура НачальноеЗаполнениеПредопределенныхДанных(ОбновитьМультиязычныеСтроки = Ложь) Экспорт ОбъектыСНачальнымЗаполнением = ОбъектыСНачальнымЗаполнением(); - Языки = МультиязычностьСервер.ЯзыкиКонфигурации(); - СведенияОбЯзыках = МультиязычностьСервер.СведенияОбЯзыках(); + ПараметрыЗаполнения = Новый Структура; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриПолученииПараметровЗаполненияПредопределенныхДанных(ПараметрыЗаполнения); + КонецЕсли; Для Каждого МетаданныеОбъекта Из ОбъектыСНачальнымЗаполнением Цикл - ЛокализуемыеРеквизитыОбъекта = МультиязычностьСервер.МультиязычныеРеквизитыОбъекта(МетаданныеОбъекта); - МультиязычныеСтрокиВРеквизитах = МультиязычностьСервер.МультиязычныеСтрокиВРеквизитах(МетаданныеОбъекта); - + ЛокализуемыеРеквизитыОбъекта = Новый Соответствие; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриПолученииПараметровЗаполненияОбъекта(МетаданныеОбъекта, ПараметрыЗаполнения); + ЛокализуемыеРеквизитыОбъекта = МодульМультиязычностьСервер.МультиязычныеРеквизитыОбъекта(МетаданныеОбъекта); + КонецЕсли; + + ПараметрыЗаполнения.Вставить("ЛокализуемыеРеквизитыОбъекта", ЛокализуемыеРеквизитыОбъекта); МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(МетаданныеОбъекта.ПолноеИмя()); ПредопределенныеДанные = ПредопределенныеДанныеОбъекта(МетаданныеОбъекта, МенеджерОбъекта, ЛокализуемыеРеквизитыОбъекта); НастройкиПредопределенныхЭлементов = НастройкиПредопределенныхЭлементов(МенеджерОбъекта, ПредопределенныеДанные); @@ -1464,44 +1802,19 @@ КонецЕсли; КонецЕсли; - - Если ЛокализуемыеРеквизитыОбъекта.Количество() > 0 Тогда - Если МультиязычныеСтрокиВРеквизитах Тогда - - Если ЗначениеЗаполнено(СведенияОбЯзыках.ОсновнойЯзык) Тогда - Для каждого ИмяЛокализуемогоРеквизита Из ЛокализуемыеРеквизитыОбъекта Цикл - ЗаполняемыйЭлемент[ИмяЛокализуемогоРеквизита.Ключ] = СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ + "_" + СведенияОбЯзыках.ОсновнойЯзык]; - КонецЦикла; - КонецЕсли; - - Если ЗначениеЗаполнено(СведенияОбЯзыках.Язык1) Тогда - Для каждого ИмяЛокализуемогоРеквизита Из ЛокализуемыеРеквизитыОбъекта Цикл - ЗаполняемыйЭлемент[ИмяЛокализуемогоРеквизита.Ключ + "Язык1"] = СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ + "_" + СведенияОбЯзыках.Язык1]; - КонецЦикла; - КонецЕсли; - - Если ЗначениеЗаполнено(СведенияОбЯзыках.Язык2) Тогда - Для каждого ИмяЛокализуемогоРеквизита Из ЛокализуемыеРеквизитыОбъекта Цикл - ЗаполняемыйЭлемент[ИмяЛокализуемогоРеквизита.Ключ + "Язык2"] = СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ + "_" + СведенияОбЯзыках.Язык2]; - КонецЦикла; - КонецЕсли; - - ИначеЕсли НЕ (ПоддерживаетсяИерархия И ЗаполняемыйЭлемент.ЭтоГруппа) Тогда - - Для каждого КодЯзыка Из Языки Цикл - НовоеПредставление = ЗаполняемыйЭлемент.Представления.Добавить(); - НовоеПредставление.КодЯзыка = КодЯзыка; - Для каждого ИмяЛокализуемогоРеквизита Из ЛокализуемыеРеквизитыОбъекта Цикл - Значение = СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ + "_" + КодЯзыка]; - НовоеПредставление[ИмяЛокализуемогоРеквизита.Ключ] = ?(ЗначениеЗаполнено(Значение), Значение, СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ]); - КонецЦикла; - КонецЦикла; - - КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.НачальноеЗаполнениеПредопределенныхДанныхЛокализуемыеРеквизиты( + ЗаполняемыйЭлемент, ПоддерживаетсяИерархия, СтрокаТаблицы, ПараметрыЗаполнения); КонецЕсли; Если Не ОбновитьМультиязычныеСтроки И НастройкиПредопределенныхЭлементов.ПриНачальномЗаполненииЭлемента Тогда + МенеджерОбъекта.ПриНачальномЗаполненииЭлемента(ЗаполняемыйЭлемент, СтрокаТаблицы, НастройкиПредопределенныхЭлементов.ДополнительныеПараметры); + ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлемента(МетаданныеОбъекта.ПолноеИмя(), + ЗаполняемыйЭлемент, СтрокаТаблицы, НастройкиПредопределенныхЭлементов.ДополнительныеПараметры); + КонецЕсли; ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ЗаполняемыйЭлемент); @@ -1644,7 +1957,7 @@ КонецФункции -Функция ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры) +Процедура ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры) Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда // Установка привилегированного режима для возможности обновления ИБ в модели сервиса, @@ -1725,7 +2038,7 @@ ВызватьИсключение; КонецПопытки; -КонецФункции +КонецПроцедуры Процедура ВыполнитьДействияПослеОбновленияИнформационнойБазы(ДополнительныеПараметры) @@ -1815,105 +2128,6 @@ КонецПроцедуры -Процедура ОбновитьСписокВыполняемыхОбработчиковОбновления(ИтерацииОбновления, ПервыйОбменВРИБ = Ложь) - - СведенияОбОбновлении = СведенияОбОбновленииИнформационнойБазы(); - НезавершенныеОтложенныеОбработчики = НезавершенныеОтложенныеОбработчики(СведенияОбОбновлении); - НачатьТранзакцию(); - Попытка - - СброситьСведенияОбОбновлении(СведенияОбОбновлении); - - Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - НаборРазделенныхОбработчиков = РегистрыСведений.ОбработчикиОбновления.СоздатьНаборЗаписей(); - НаборРазделенныхОбработчиков.Записать(); - КонецЕсли; - Если Не ОбщегоНазначения.РазделениеВключено() Или Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - НаборНеразделенныхОбработчиков = РегистрыСведений.ОбработчикиОбновленияОбщихДанных.СоздатьНаборЗаписей(); - НаборНеразделенныхОбработчиков.Записать(); - КонецЕсли; - - ПроверитьУникальностьИдентификаторовОтложенныхОбработчиков(ИтерацииОбновления); - - ОписанияБиблиотек = СтандартныеПодсистемыПовтИсп.ОписанияПодсистем().ПоИменам; - ГруппаОбновления = 1; - ТекстОшибок = ""; - ДобавленныеОбработчики = Новый Массив; - Для Каждого ИтерацияОбновления Из ИтерацииОбновления Цикл - - // Добавление монопольных и оперативных обработчиков обновления. - ИмяБиблиотеки = ИтерацияОбновления.Подсистема; - Если Не ПервыйОбменВРИБ Тогда - ПредыдущаяВерсия = ИтерацияОбновления.ПредыдущаяВерсия; - ВерсияМетаданных = ИтерацияОбновления.Версия; - Если ПустаяСтрока(ВерсияМетаданных) Тогда - ВерсияМетаданных = "0.0.0.0"; - КонецЕсли; - - ОбработчикиПоВерсиям = Неопределено; - Если ПредыдущаяВерсия <> "0.0.0.0" - И ОбщегоНазначения.РазделениеВключено() - И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - ОбработчикиПоВерсиям = ПолучитьПланОбновления(ИтерацияОбновления.Подсистема, ПредыдущаяВерсия, ВерсияМетаданных); - КонецЕсли; - - Если ОбработчикиПоВерсиям = Неопределено Тогда - ОбработчикиПоВерсиям = ОбработчикиОбновленияВИнтервале(ИтерацияОбновления.Обработчики, - ПредыдущаяВерсия, ИтерацияОбновления.Версия); - КонецЕсли; - - Если ОбработчикиПоВерсиям.Строки.Количество() <> 0 Тогда - ОбработчикиПоВерсиям.Колонки.Процедура.Имя = "ИмяОбработчика"; - ДобавитьОбработчики(ИмяБиблиотеки, ОбработчикиПоВерсиям.Строки, ДобавленныеОбработчики); - КонецЕсли; - КонецЕсли; - - // Добавление отложенных обработчиков обновления. - Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - // Обработка сценария получения первого сообщения обмена от подчиненного узла после обновления. - ПредыдущаяВерсия = ?(ПервыйОбменВРИБ, "1.0.0.0", ИтерацияОбновления.ПредыдущаяВерсия); - РежимВыполненияОтложенныхОбработчиков = ОписанияБиблиотек[ИмяБиблиотеки].РежимВыполненияОтложенныхОбработчиков; - ПараллельноСВерсии = ОписанияБиблиотек[ИмяБиблиотеки].ПараллельноеОтложенноеОбновлениеСВерсии; - Если ПервыйОбменВРИБ И РежимВыполненияОтложенныхОбработчиков = "Последовательно" Тогда - Продолжить; - КонецЕсли; - - ПараметрыОтбора = ПараметрыОтбораОбработчиков(); - ПараметрыОтбора.ПолучатьРазделенные = Истина; - ПараметрыОтбора.РежимОбновления = "Отложенно"; - ПараметрыОтбора.УчитыватьПервыйОбменВРИБ = (РежимВыполненияОтложенныхОбработчиков = "Параллельно"); - ПараметрыОтбора.ПервыйОбменВРИБ = ПервыйОбменВРИБ; - - ОбработчикиПоВерсиям = ОбработчикиОбновленияВИнтервале(ИтерацияОбновления.Обработчики, - ПредыдущаяВерсия, ИтерацияОбновления.Версия, ПараметрыОтбора); - ОбработчикиПоВерсиям.Колонки.Процедура.Имя = "ИмяОбработчика"; - ДобавитьНезавершенныеОтложенныеОбработчики( - ИтерацияОбновления, - ИмяБиблиотеки, - НезавершенныеОтложенныеОбработчики, - ОбработчикиПоВерсиям.Строки); - Если ОбработчикиПоВерсиям.Строки.Количество() = 0 Тогда - Продолжить; - КонецЕсли; - - УпорядочитьВерсииОбработчиков(ОбработчикиПоВерсиям); - - ДобавитьОтложенныеОбработчики(ИмяБиблиотеки, ОбработчикиПоВерсиям.Строки, ГруппаОбновления, ТекстОшибок); - КонецЕсли; - - КонецЦикла; - - Если ЗначениеЗаполнено(ТекстОшибок) Тогда - ВызватьИсключение ТекстОшибок; - КонецЕсли; - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - // Возвращает признак разрешения использования многопоточного обновления. // Многопоточное обновление можно включить в ОбновлениеИнформационнойБазыПереопределяемый.ПриОпределенииНастроек(). // @@ -2017,186 +2231,6 @@ КонецФункции -// Для внутреннего использования. -// -// Возвращаемое значение: -// Массив из см. ИтерацияОбновления -// -Функция ИтерацииОбновления() Экспорт - - ИмяОсновнойКонфигурации = Метаданные.Имя; - ИтерацияОбновлениеОсновнойПодсистемы = Неопределено; - - ИтерацииОбновления = Новый Массив; - ОписанияПодсистем = СтандартныеПодсистемыПовтИсп.ОписанияПодсистем(); - Для каждого ИмяПодсистемы Из ОписанияПодсистем.Порядок Цикл - ОписаниеПодсистемы = ОписанияПодсистем.ПоИменам.Получить(ИмяПодсистемы); - Если НЕ ЗначениеЗаполнено(ОписаниеПодсистемы.ОсновнойСерверныйМодуль) Тогда - Продолжить; - КонецЕсли; - Модуль = ОбщегоНазначения.ОбщийМодуль(ОписаниеПодсистемы.ОсновнойСерверныйМодуль); - - ИтерацияОбновления = ИтерацияОбновления(ОписаниеПодсистемы.Имя, ОписаниеПодсистемы.Версия, - ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления(), ОписаниеПодсистемы.Имя = ИмяОсновнойКонфигурации); - ИтерацияОбновления.ИмяОсновногоСерверногоМодуля = ОписаниеПодсистемы.ОсновнойСерверныйМодуль; - ИтерацияОбновления.ОсновнойСерверныйМодуль = Модуль; - ИтерацияОбновления.ПредыдущаяВерсия = ВерсияИБ(ОписаниеПодсистемы.Имя); - ИтерацииОбновления.Добавить(ИтерацияОбновления); - - Модуль.ПриДобавленииОбработчиковОбновления(ИтерацияОбновления.Обработчики); - - Если ОписаниеПодсистемы.Имя = ИмяОсновнойКонфигурации Тогда - ИтерацияОбновлениеОсновнойПодсистемы = ИтерацияОбновления; - КонецЕсли; - - ПроверитьСвойстваОбработчиков(ИтерацияОбновления); - КонецЦикла; - - Если ИтерацияОбновлениеОсновнойПодсистемы = Неопределено И ИмяОсновнойКонфигурации = "БиблиотекаСтандартныхПодсистем" Тогда - ТекстСообщения = НСтр("ru = 'Файл поставки 1С:Библиотека стандартных подсистем не предназначен для создания - |информационных баз по шаблону. Перед использованием необходимо - |ознакомиться с документацией на ИТС (http://its.1c.ru/db/bspdoc)'"); - ВызватьИсключение ТекстСообщения; - КонецЕсли; - - Возврат ИтерацииОбновления; - -КонецФункции - -// Для внутреннего использования. -// -Функция ВыполнитьИтерациюОбновления(Знач ИтерацияОбновления, Знач Параметры) Экспорт - - ИдентификаторБиблиотеки = ИтерацияОбновления.Подсистема; - ВерсияМетаданныхИБ = ИтерацияОбновления.Версия; - ОбработчикиОбновления = ИтерацияОбновления.Обработчики; - - ТекущаяВерсияИБ = ИтерацияОбновления.ПредыдущаяВерсия; - - НоваяВерсияИБ = ТекущаяВерсияИБ; - ВерсияМетаданных = ВерсияМетаданныхИБ; - Если ПустаяСтрока(ВерсияМетаданных) Тогда - ВерсияМетаданных = "0.0.0.0"; - КонецЕсли; - - Если ТекущаяВерсияИБ <> "0.0.0.0" - И ОбщегоНазначения.РазделениеВключено() - И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - - // Получение списка обработчиков сформированного на этапе выполнения неразделенных обработчиков. - ВыполняемыеОбработчики = ПолучитьПланОбновления(ИдентификаторБиблиотеки, ТекущаяВерсияИБ, ВерсияМетаданных); - Если ВыполняемыеОбработчики = Неопределено Тогда - Если ИтерацияОбновления.ЭтоОсновнаяКонфигурация Тогда - ШаблонСообщения = НСтр("ru = 'Не существует план обновления конфигурации %1 с версии %2 на версию %3'"); - Иначе - ШаблонСообщения = НСтр("ru = 'Не существует план обновления библиотеки %1 с версии %2 на версию %3'"); - КонецЕсли; - Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, ИдентификаторБиблиотеки, ТекущаяВерсияИБ, ВерсияМетаданных); - ЗаписатьИнформацию(Сообщение); - - ВыполняемыеОбработчики = ОбработчикиОбновленияВИнтервале(ОбработчикиОбновления, ТекущаяВерсияИБ, ВерсияМетаданных); - КонецЕсли; - Иначе - ВыполняемыеОбработчики = ОбработчикиОбновленияВИнтервале(ОбработчикиОбновления, ТекущаяВерсияИБ, ВерсияМетаданных); - КонецЕсли; - - ОбязательныеРазделенныеОбработчики = ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления(); - ИсходнаяВерсияИБ = ТекущаяВерсияИБ; - ЗаписыватьВЖурнал = Константы.ДетализироватьОбновлениеИБВЖурналеРегистрации.Получить(); - - Для Каждого Версия Из ВыполняемыеОбработчики.Строки Цикл - - Если Версия.Версия = "*" Тогда - Сообщение = НСтр("ru = 'Выполняются обязательные процедуры обновления информационной базы.'"); - Иначе - НоваяВерсияИБ = Версия.Версия; - Если ТекущаяВерсияИБ = "0.0.0.0" Тогда - Сообщение = НСтр("ru = 'Выполняется начальное заполнение данных.'"); - ИначеЕсли ИтерацияОбновления.ЭтоОсновнаяКонфигурация Тогда - Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Выполняется обновление информационной базы с версии %1 на версию %2.'"), - ТекущаяВерсияИБ, НоваяВерсияИБ); - Иначе - Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Выполняется обновление данных библиотеки %3 с версии %1 на версию %2.'"), - ТекущаяВерсияИБ, НоваяВерсияИБ, ИдентификаторБиблиотеки); - КонецЕсли; - КонецЕсли; - ЗаписатьИнформацию(Сообщение); - - Для Каждого Обработчик Из Версия.Строки Цикл - - ПараметрыОбработчика = Неопределено; - Если Обработчик.ВерсияРегистрации = "*" Тогда - - Если Обработчик.УправлениеОбработчиками Тогда - ПараметрыОбработчика = Новый Структура; - ПараметрыОбработчика.Вставить("РазделенныеОбработчики", ОбязательныеРазделенныеОбработчики); - КонецЕсли; - - Если Обработчик.МонопольныйРежим = Истина Или Обработчик.РежимВыполнения = "Монопольно" Тогда - Если Параметры.ОперативноеОбновление Тогда - // Проверки выполняются в ВозможноОперативноеОбновление, а само обновление для таких - // обработчиков выполняется только при неоперативном обновлении. - Продолжить; - КонецЕсли; - - Если ПараметрыОбработчика = Неопределено Тогда - ПараметрыОбработчика = Новый Структура; - КонецЕсли; - ПараметрыОбработчика.Вставить("МонопольныйРежим", Истина); - КонецЕсли; - КонецЕсли; - - ДополнительныеПараметры = Новый Структура; - ДополнительныеПараметры.Вставить("ЗаписыватьВЖурнал", ЗаписыватьВЖурнал); - ДополнительныеПараметры.Вставить("ИдентификаторБиблиотеки", ИдентификаторБиблиотеки); - ДополнительныеПараметры.Вставить("ХодВыполненияОбработчиков", Параметры.ХодВыполненияОбработчиков); - ДополнительныеПараметры.Вставить("ВФоне", Параметры.ВФоне); - - ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры); - КонецЦикла; - - Если Версия.Версия = "*" Тогда - Сообщение = НСтр("ru = 'Выполнены обязательные процедуры обновления информационной базы.'"); - Иначе - Если ИтерацияОбновления.ЭтоОсновнаяКонфигурация Тогда - Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Выполнено обновление информационной базы с версии %1 на версию %2.'"), - ТекущаяВерсияИБ, НоваяВерсияИБ); - Иначе - Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Выполнено обновление данных библиотеки %3 с версии %1 на версию %2.'"), - ТекущаяВерсияИБ, НоваяВерсияИБ, ИдентификаторБиблиотеки); - КонецЕсли; - КонецЕсли; - ЗаписатьИнформацию(Сообщение); - - Если Версия.Версия <> "*" Тогда - // Установка номера версии информационной базы. - УстановитьВерсиюИБ(ИдентификаторБиблиотеки, НоваяВерсияИБ, ИтерацияОбновления.ЭтоОсновнаяКонфигурация); - ТекущаяВерсияИБ = НоваяВерсияИБ; - КонецЕсли; - - КонецЦикла; - - // Установка номера версии информационной базы. - Если ВерсияИБ(ИдентификаторБиблиотеки) <> ВерсияМетаданныхИБ Тогда - УстановитьВерсиюИБ(ИдентификаторБиблиотеки, ВерсияМетаданныхИБ, ИтерацияОбновления.ЭтоОсновнаяКонфигурация); - КонецЕсли; - - Если ТекущаяВерсияИБ <> "0.0.0.0" Тогда - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда - - МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); - МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.СформироватьПланОбновленияОбластиДанных(ИдентификаторБиблиотеки, ОбработчикиОбновления, - ОбязательныеРазделенныеОбработчики, ИсходнаяВерсияИБ, ВерсияМетаданныхИБ); - - КонецЕсли; - - КонецЕсли; - - Возврат ВыполняемыеОбработчики; - -КонецФункции - // Проверить права текущего пользователя на выполнение обновления информационной базы. Функция ЕстьПраваНаОбновлениеИнформационнойБазы(УчитыватьПривилегированныйРежим = Истина, РазделенныеДанные = Неопределено) Экспорт @@ -3001,48 +3035,6 @@ КонецПроцедуры -// Вызывается при включении и отключении отложенного обновления. -// -// Параметры: -// Использование - Булево - Истина, если задание нужно включить, иначе Ложь. -// -Процедура ПриВключенииОтложенногоОбновления(Использование) Экспорт - - ОтборЗаданий = Новый Структура; - ОтборЗаданий.Вставить("Метаданные", Метаданные.РегламентныеЗадания.ОтложенноеОбновлениеИБ); - Задания = РегламентныеЗаданияСервер.НайтиЗадания(ОтборЗаданий); - - Для Каждого Задание Из Задания Цикл - Если Задание.Использование = Использование Тогда - Продолжить; - КонецЕсли; - - ПараметрыЗадания = Новый Структура("Использование", Использование); - - Если ОбщегоНазначения.РазделениеВключено() - И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") - И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") - И Использование Тогда - - МодульТехнологияСервиса = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервиса"); - ВерсияБиблиотекиБТС = МодульТехнологияСервиса.ВерсияБиблиотеки(); - ТребуетсяУстановитьЗапланированныйМоментЗапуска = ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБиблиотекиБТС, "2.0.1.0") > 0; - - Если ТребуетсяУстановитьЗапланированныйМоментЗапуска Тогда - - МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); - ЗапланированныйМоментЗапуска = МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ЗапланированныйМоментЗапускаОбновленияОбласти(); - ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ЗапланированныйМоментЗапуска); - - КонецЕсли; - - КонецЕсли; - - РегламентныеЗаданияСервер.ИзменитьЗадание(Задание.УникальныйИдентификатор, ПараметрыЗадания); - КонецЦикла; - -КонецПроцедуры - Функция ОбработчикиДляОтложеннойРегистрацииДанных(БезФильтра = Ложь) Экспорт Запрос = Новый Запрос; @@ -3860,8 +3852,8 @@ // СведенияОбОбновлении - см. СведенияОбОбновленииИнформационнойБазы // // Возвращаемое значение: -// * СтрокаТаблицыЗначений - см. НовоеОписаниеПотоков -// * Булево - Истина, если обработчик не нужно выполнять или Ложь, если выполнение обработчиков нужно завершить. +// СтрокаТаблицыЗначений - см. НовоеОписаниеПотоков +// Булево - Истина, если обработчик не нужно выполнять или Ложь, если выполнение обработчиков нужно завершить. // Функция ДобавитьПотокОбработчикаОтложенногоОбновления(СведенияОбОбновлении) @@ -4414,9 +4406,6 @@ // Поток - СтрокаТаблицыЗначений - описание потока (см. Потоки в НовоеОписаниеПотоков()). // ИдентификаторФормы - УникальныйИдентификатор - идентификатор формы, если есть. // -// Возвращаемое значение: -// Булево - Истина - поток выполняется или выполнен, Ложь - поток не запущен или прерван. -// Процедура ВыполнитьПоток(Группы, Поток, ИдентификаторФормы = Неопределено) ОписаниеПотока = Группы[Поток.Группа]; @@ -4637,7 +4626,7 @@ // // Возвращаемое значение: // Структура: -// * Группы - Соответствие - описание групп потоков, где: +// * Группы - Соответствие из КлючИЗначение - описание групп потоков, где: // ** Ключ - Строка - имя группы. // ** Значение - см. НовоеОписаниеГруппыПотоков // * Потоки - ТаблицаЗначений - описание потоков со следующими колонками: @@ -4927,10 +4916,10 @@ // ПараметрыОбхода - см. ПараметрыОбходаДанныхДляОбновления // // Возвращаемое значение: -// * Структура - параметры обхода текущей итерации в виде структуры со следующими полями: +// Структура - параметры обхода текущей итерации в виде структуры со следующими полями: // ** СсылочныйОбъект - Строка - имя ссылочного объекта. // ** ТабличныйОбъект - Строка - имя табличного объекта. -// * Неопределено - если обход закончен. +// Неопределено - если обход закончен. // Функция ТекущиеПараметрыОбхода(ПараметрыОбхода) @@ -5167,7 +5156,7 @@ // Отметить, что найденную порцию данных нужно будет обрабатывать повторно. // // Параметры: -// Поток - СтрокаТаблицыЗначений - с колонками: +// Поток - СтрокаТаблицыЗначений: // * Наименование - Строка - произвольное наименование потока (используется в наименовании фонового задания). // * Группа - Строка - имя группы с описанием потока. // * ИдентификаторЗадания - УникальныйИдентификатор - уникальный идентификатор фонового задания. @@ -5266,7 +5255,7 @@ // КоличествоФрагментов - Число - количество фрагментов на которые нужно разбить данные. // // Возвращаемое значение: -// НаборПорций - см. НовыйНаборПорцийДляОбновления +// см. НовыйНаборПорцийДляОбновления // Функция РазбитьРезультатПоискаНаФрагменты(РезультатПоиска, Знач КоличествоФрагментов) @@ -5714,16 +5703,21 @@ ОбъектыКОбработке = Новый Массив; ШаблонаЗапроса = "ВЫБРАТЬ - | %1 + | &Поля |ИЗ - | %2 КАК Таблица + | #Таблица КАК Таблица |ГДЕ | Таблица.Предопределенный = ИСТИНА"; Для каждого ОбъектМетаданныхСЭлементами Из ОбъектыСПредопределеннымиЭлементами Цикл МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ОбъектМетаданныхСЭлементами.ПолноеИмя()); - ЛокализуемыеРеквизитыОбъекта = МультиязычностьСервер.МультиязычныеРеквизитыОбъекта(ОбъектМетаданныхСЭлементами); + ЛокализуемыеРеквизитыОбъекта = Новый Соответствие; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + ЛокализуемыеРеквизитыОбъекта = МодульМультиязычностьСервер.МультиязычныеРеквизитыОбъекта(ОбъектМетаданныхСЭлементами); + КонецЕсли; + ПредопределенныеДанные = ПредопределенныеДанныеОбъекта(ОбъектМетаданныхСЭлементами, МенеджерОбъекта, ЛокализуемыеРеквизитыОбъекта); // Формируем запрос @@ -5739,7 +5733,10 @@ КонецЕсли; - МультиязычностьСервер.СформироватьИменаМультиязычныхРеквизитов(ИменаРеквизитовОбъекта, ЛокализуемыеРеквизитыОбъекта); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.СформироватьИменаМультиязычныхРеквизитов(ИменаРеквизитовОбъекта, ЛокализуемыеРеквизитыОбъекта); + КонецЕсли; Если ИменаРеквизитовОбъекта.Найти("ИмяПредопределенныхДанных") = Неопределено Тогда ИменаРеквизитовОбъекта.Добавить("ИмяПредопределенныхДанных"); @@ -5748,7 +5745,8 @@ ИменаРеквизитовОбъекта.Добавить("Ссылка"); КонецЕсли; - ТекстЗапроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонаЗапроса, СтрСоединить(ИменаРеквизитовОбъекта, ", " + Символы.ПС), ОбъектМетаданныхСЭлементами.ПолноеИмя()); + ТекстЗапроса = СтрЗаменить(ШаблонаЗапроса, "&Поля", СтрСоединить(ИменаРеквизитовОбъекта, ", " + Символы.ПС)); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#Таблица", ОбъектМетаданныхСЭлементами.ПолноеИмя()); Запрос = Новый Запрос(ТекстЗапроса); РезультатЗапроса = Запрос.Выполнить(); @@ -5775,8 +5773,12 @@ ИначеЕсли ПараметрыРегистрации.РежимОбновления = "МультиязычныеСтроки" Тогда - Если МультиязычностьСервер.МультиязычныеСтрокиРеквизитовИзменены(ПоставляемыеСведения, ДанныеЗапроса, ЛокализуемыеРеквизитыОбъекта, ПараметрыРегистрации) Тогда - ОбъектыКОбработке.Добавить(ДанныеЗапроса.Ссылка); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + Если МодульМультиязычностьСервер.МультиязычныеСтрокиРеквизитовИзменены( + ПоставляемыеСведения, ДанныеЗапроса, ЛокализуемыеРеквизитыОбъекта, ПараметрыРегистрации) Тогда + ОбъектыКОбработке.Добавить(ДанныеЗапроса.Ссылка); + КонецЕсли; КонецЕсли; КонецЕсли; @@ -5797,7 +5799,10 @@ СсылкиНаОбъекты = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, ОбъектМетаданных.ПолноеИмя()); Если ОбновитьМультиязычныеСтроки Тогда - Результат = МультиязычностьСервер.ОбновитьМультиязычныеСтрокиПредопределенныхЭлементов(СсылкиНаОбъекты, ОбъектМетаданных); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + Результат = МодульМультиязычностьСервер.ОбновитьМультиязычныеСтрокиПредопределенныхЭлементов(СсылкиНаОбъекты, ОбъектМетаданных); + КонецЕсли; Иначе Результат = ОбновитьЭлементыПредопределенныхЭлементов(СсылкиНаОбъекты, ОбъектМетаданных) КонецЕсли; @@ -5838,7 +5843,12 @@ Продолжить; КонецЕсли; - ИмяРеквизитаБезСуффиксаЯзык= МультиязычностьСервер.ИмяРеквизитаБезСуффиксаЯзык(ИмяРеквизитаОбъекта); + ИмяРеквизитаБезСуффиксаЯзык= ИмяРеквизитаОбъекта; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + ИмяРеквизитаБезСуффиксаЯзык = МодульМультиязычностьСервер.ИмяРеквизитаБезСуффиксаЯзык(ИмяРеквизитаОбъекта); + КонецЕсли; + Если ЛокализуемыеРеквизитыОбъекта[ИмяРеквизитаБезСуффиксаЯзык] = Неопределено Тогда Если ТипЗнч(ПоставляемыеСведения[ИмяРеквизитаОбъекта]) = Тип("ТаблицаЗначений") @@ -5862,9 +5872,12 @@ Иначе - Если МультиязычностьСервер.МультиязычныеСтрокиРеквизитаИзменены(ПоставляемыеСведения, ДанныеЗапроса, - ИмяРеквизитаБезСуффиксаЯзык, ПараметрыРегистрации) Тогда - Возврат Истина; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + Если МодульМультиязычностьСервер.МультиязычныеСтрокиРеквизитаИзменены(ПоставляемыеСведения, ДанныеЗапроса, + ИмяРеквизитаБезСуффиксаЯзык, ПараметрыРегистрации) Тогда + Возврат Истина; + КонецЕсли; КонецЕсли; КонецЕсли; @@ -5881,8 +5894,13 @@ Результат.Вставить("ПроблемныхОбъектов", 0); Результат.Вставить("ОбъектовОбработано", 0); - ЛокализуемыеРеквизитыОбъекта = МультиязычностьСервер.МультиязычныеРеквизитыОбъекта(МетаданныеОбъекта); - МультиязычныеСтрокиВРеквизитах = МультиязычностьСервер.МультиязычныеСтрокиВРеквизитах(МетаданныеОбъекта); + ЛокализуемыеРеквизитыОбъекта = Новый Соответствие; + МультиязычныеСтрокиВРеквизитах = Ложь; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + ЛокализуемыеРеквизитыОбъекта = МодульМультиязычностьСервер.МультиязычныеРеквизитыОбъекта(МетаданныеОбъекта); + МультиязычныеСтрокиВРеквизитах = МодульМультиязычностьСервер.МультиязычныеСтрокиВРеквизитах(МетаданныеОбъекта); + КонецЕсли; МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(МетаданныеОбъекта.ПолноеИмя()); ПредопределенныеДанные = ПредопределенныеДанныеОбъекта(МетаданныеОбъекта, МенеджерОбъекта, ЛокализуемыеРеквизитыОбъекта); @@ -5952,8 +5970,10 @@ КонецЦикла; КонецЕсли; - Если ЛокализуемыеРеквизитыОбъекта.Количество() > 0 Тогда - ЗаполнитьЭлементыМультиязычнымиНачальнымиДанными(ЗаполняемыйЭлемент, ЛокализуемыеРеквизитыОбъекта, МультиязычныеСтрокиВРеквизитах, ПоддерживаетсяИерархия, СтрокаТаблицы); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ЗаполнитьЭлементыМультиязычнымиНачальнымиДанными(ЗаполняемыйЭлемент, + ЛокализуемыеРеквизитыОбъекта, МультиязычныеСтрокиВРеквизитах, ПоддерживаетсяИерархия, СтрокаТаблицы); КонецЕсли; Если НастройкиПредопределенныхЭлементов.ПриНачальномЗаполненииЭлемента Тогда @@ -5984,49 +6004,7 @@ КонецФункции -Процедура ЗаполнитьЭлементыМультиязычнымиНачальнымиДанными(Знач ЗаполняемыйЭлемент, Знач ЛокализуемыеРеквизитыОбъекта, Знач МультиязычныеСтрокиВРеквизитах, Знач ПоддерживаетсяИерархия, Знач СтрокаТаблицы) - - Языки = МультиязычностьСервер.ЯзыкиКонфигурации(); - СведенияОбЯзыках = МультиязычностьСервер.СведенияОбЯзыках(); - - Если МультиязычныеСтрокиВРеквизитах Тогда - - КодЯзыка =СведенияОбЯзыках.ОсновнойЯзык;; - Если ЗначениеЗаполнено(КодЯзыка) Тогда - Для каждого ИмяЛокализуемогоРеквизита Из ЛокализуемыеРеквизитыОбъекта Цикл - ЗаполняемыйЭлемент[ИмяЛокализуемогоРеквизита.Ключ] = СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ + "_" + КодЯзыка]; - КонецЦикла; - КонецЕсли; - - КодЯзыка = СведенияОбЯзыках.Язык1; - Если ЗначениеЗаполнено(КодЯзыка) Тогда - Для каждого ИмяЛокализуемогоРеквизита Из ЛокализуемыеРеквизитыОбъекта Цикл - ЗаполняемыйЭлемент[ИмяЛокализуемогоРеквизита.Ключ + "Язык1"] = СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ + "_" + КодЯзыка]; - КонецЦикла; - КонецЕсли; - - КодЯзыка = СведенияОбЯзыках.Язык2; - Если ЗначениеЗаполнено(КодЯзыка) Тогда - Для каждого ИмяЛокализуемогоРеквизита Из ЛокализуемыеРеквизитыОбъекта Цикл - ЗаполняемыйЭлемент[ИмяЛокализуемогоРеквизита.Ключ + "Язык2"] = СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ + "_" + КодЯзыка]; - КонецЦикла; - КонецЕсли; - - ИначеЕсли Не (ПоддерживаетсяИерархия И ЗаполняемыйЭлемент.ЭтоГруппа) Тогда - - Для каждого КодЯзыка Из Языки Цикл - ТаблицаПредставлений = ЗаполняемыйЭлемент.Представления; // ТаблицаЗначений - НовоеПредставление = ТаблицаПредставлений.Добавить(); - НовоеПредставление.КодЯзыка = КодЯзыка; - Для каждого ИмяЛокализуемогоРеквизита Из ЛокализуемыеРеквизитыОбъекта Цикл - Значение = СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ + "_" + КодЯзыка]; - НовоеПредставление[ИмяЛокализуемогоРеквизита.Ключ] = ?(ЗначениеЗаполнено(Значение), Значение, СтрокаТаблицы[ИмяЛокализуемогоРеквизита.Ключ]); - КонецЦикла; - КонецЦикла; - - КонецЕсли; - -КонецПроцедуры +// Общие для начального заполнения // Общие для начального заполнения @@ -6037,8 +6015,14 @@ Возврат; КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + Иначе + Возврат; + КонецЕсли; + Для каждого Язык Из Языки Цикл - ПредопределенныеДанные.Колонки.Добавить(Реквизит.Имя + "_" + Язык, Реквизит.Тип, МультиязычностьСервер.ПризнакЛокализуемогоРеквизита()); + ПредопределенныеДанные.Колонки.Добавить(Реквизит.Имя + "_" + Язык, Реквизит.Тип, МодульМультиязычностьСервер.ПризнакЛокализуемогоРеквизита()); КонецЦикла; КонецПроцедуры @@ -6403,12 +6387,12 @@ // Параметры: // Обработчик - Неопределено // - СтрокаДереваЗначений -// - Структура: +// - Структура: // * РежимВыполнения - Строка // * ВерсияРегистрации - Строка // * Версия - Строка // Параметры - Неопределено -// - Структура: +// - Структура: // * Очередь - Произвольный // * ПрогрессВыполнения - Структура: // ** ОбработаноОбъектов - Число @@ -6983,8 +6967,9 @@ // Возвращает список разделов описания изменений системы. // // Возвращаемое значение: -// СписокЗначение - Значение - вес версии (число), -// Представление - строка версии. +// СписокЗначений: +// * Значение - Число - вес версии. +// * Представление - Строка - версии. // Функция РазделыОписанияИзменений() Экспорт @@ -7079,8 +7064,6 @@ Функция ВыполненыВсеОтложенныеОбработчики(СведенияОбОбновлении) - ВыполненоОбработчиков = 0; - ВсегоОбработчиков = 0; Запрос = Новый Запрос; Запрос.УстановитьПараметр("РежимВыполнения", Перечисления.РежимыВыполненияОбработчиков.Отложенно); Запрос.УстановитьПараметр("Статус", Перечисления.СтатусыОбработчиковОбновления.Выполнен); @@ -7721,8 +7704,6 @@ МодульОбменДаннымиСервер.СброситьЗначениеКонстантыСИзменениямиДляПодчиненногоУзлаРИБСФильтрами(); КонецЕсли; - ОбрабатываемыеДанные = Новый Соответствие; - ОписанияБиблиотек = СтандартныеПодсистемыПовтИсп.ОписанияПодсистем().ПоИменам; ПараметрыИнициализированы = Ложь; Обработчики = ОбработчикиДляОтложеннойРегистрацииДанных(); @@ -7977,9 +7958,11 @@ ЗаписатьДетальнуюИнформациюОХодеОбновления(КонтекстОбработчика.ДетальноеОписаниеОбработчика); КонецЕсли; + // АПК:325-выкл откат незакрытых транзакций после выполнения обработчика. Пока ТранзакцияАктивна() Цикл ОтменитьТранзакцию(); КонецЦикла; + // АПК:325-вкл ДобавляемоеЧислоПопыток = ДобавляемоеЧислоПопыток(ОбработчикОбновления, КонтекстОбработчика, Истина); ЧислоПопыток = ОбработчикОбновления.ЧислоПопыток + ДобавляемоеЧислоПопыток; diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса/Module.bsl index 404dcf8e4..723095680 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса/Module.bsl @@ -12,8 +12,8 @@ // // Параметры: // ИдентификаторБиблиотеки - Строка - имя конфигурации или идентификатор библиотеки, -// ВсеОбработчики - Соответствие - список всех обработчиков обновления, -// ОбязательныеРазделенныеОбработчики - Соответствие - список обязательных +// ВсеОбработчики - ТаблицаЗначений - список всех обработчиков обновления, +// ОбязательныеРазделенныеОбработчики - ТаблицаЗначений - список обязательных // обработчиков обновления с ОбщиеДанные = Ложь, // ИсходнаяВерсияИБ - Строка - исходная версия информационной базы, // ВерсияМетаданныхИБ - Строка - версия конфигурации (из метаданных). @@ -24,7 +24,7 @@ Если ОбщегоНазначения.РазделениеВключено() И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - ОбработчикиОбновления = ВсеОбработчики.СкопироватьКолонки(); + ОбработчикиОбновления = ВсеОбработчики.СкопироватьКолонки(); // ТаблицаЗначений Для Каждого СтрокаОбработчика Из ВсеОбработчики Цикл // При формировании плана обновлении области, по умолчанию не добавляем обязательные (*) обработчики. Если СтрокаОбработчика.Версия = "*" Тогда diff --git a/SSL/src/CommonModules/ОбновлениеКонфигурации/Module.bsl b/SSL/src/CommonModules/ОбновлениеКонфигурации/Module.bsl index dc9e5013d..2453111b7 100644 --- a/SSL/src/CommonModules/ОбновлениеКонфигурации/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеКонфигурации/Module.bsl @@ -191,7 +191,7 @@ ОписаниеИзменений = Заголовок + ":" + Символы.ПС + СтрСоединить(Изменения.УдаленныеИсправления, Символы.ПС); КонецЕсли; Если Изменения.НеактивныеИсправления.Количество() > 0 Тогда - Заголовок = НСтр("ru = 'Удалены неактивные патчи'"); + Заголовок = НСтр("ru = 'Удалены отключенные патчи'"); Если ЗначениеЗаполнено(ОписаниеИзменений) Тогда ОписаниеИзменений = ОписаниеИзменений + Символы.ПС + Символы.ПС; КонецЕсли; @@ -306,7 +306,7 @@ // Производит установку/удаление патчей. // // Параметры: -// Исправления - структура: +// Исправления - Структура: // * Установить - Массив - файлы исправлений во временном хранилище, которые требуется установить. // * Удалить - Массив - уникальные идентификаторы (Строка) исправлений, которые требуется удалить. // ВФоне - Булево - необходимо устанавливать в значение Истина, если вызов функции выполняется @@ -530,7 +530,7 @@ КонецЕсли; КонецПроцедуры -Функция ОписанияНовыхПатчей(АдресХранилища, ТекущиеИсправления) Экспорт +Процедура ОписанияНовыхПатчей(АдресХранилища, ТекущиеИсправления) Экспорт Описания = Новый Массив; Для Каждого Исправление Из ТекущиеИсправления Цикл Если Метаданные.ОбщиеМакеты.Найти(Исправление) = Неопределено Тогда @@ -549,12 +549,15 @@ КонецЦикла; ОписаниеСтрокой = СтрСоединить(Описания, Символы.ПС); ПоместитьВоВременноеХранилище(ОписаниеСтрокой, АдресХранилища); -КонецФункции +КонецПроцедуры // Вызывается при завершении обновления конфигурации через COM-соединение. // // Параметры: // РезультатОбновления - Булево - результат обновления. +// ЭлектроннаяПочта - Строка - адрес электронной почты, на который должен быть отправлен отчет о результатах. +// ИмяАдминистратораОбновления - Строка - имя пользователя, который выполнил обновление программы. +// КаталогСкрипта - Строка - полный путь папки с логом скрипта обновления. // Процедура ЗавершитьОбновление(Знач РезультатОбновления, Знач ЭлектроннаяПочта, Знач ИмяАдминистратораОбновления, Знач КаталогСкрипта = Неопределено) Экспорт @@ -621,6 +624,9 @@ // Возвращает полное имя основной формы обработки УстановкаОбновлений. // +// Возвращаемое значение: +// Строка +// Функция ИмяФормыУстановкиОбновления() Экспорт Возврат "Обработка.УстановкаОбновлений.Форма.Форма"; @@ -628,7 +634,12 @@ КонецФункции // Зачитывает свойства исправления из макета. Имя макет должно совпадать с именем исправления. -// Формат макеты XML. Соответствует XDTO пакету ErrorFix. +// Формат макеты XML. Соответствует XDTO пакету Patch. +// +// Возвращаемое значение: +// ОбъектXDTO +// Неопределено - исправление еще не применено. +// Строка - "ОшибкаЧтения", некорректный формат макета с описанием исправления. // Функция СвойстваИсправления(ИмяИсправления) Экспорт @@ -767,6 +778,15 @@ КонецФункции // Возвращает признак успешного обновления конфигурации на основе данных константы настроек. +// +// Параметры: +// КаталогСкрипта - Строка - полный путь папки с логом скрипта обновления. +// УстановленныеИсправления - Строка. +// +// Возвращаемое значение: +// Булево +// Неопределено +// Функция ОбновлениеКонфигурацииУспешно(КаталогСкрипта = "", УстановленныеИсправления = "") Экспорт Если Не ПравоДоступа("Чтение", Метаданные.Константы.СтатусОбновленияКонфигурации) Тогда @@ -1079,10 +1099,10 @@ КонецФункции -Функция УстановитьСтатусОбновленияКонфигурации(Знач Статус) +Процедура УстановитьСтатусОбновленияКонфигурации(Знач Статус) Константы.СтатусОбновленияКонфигурации.Установить(Новый ХранилищеЗначения(Статус)); -КонецФункции +КонецПроцедуры #КонецОбласти diff --git a/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl b/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl index 31a7865c0..e66cac4fb 100644 --- a/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl @@ -169,7 +169,7 @@ // * ВосстанавливатьИнформационнуюБазу - Булево - признак необходимости восстановления базы. // * ЗавершениеРаботыСистемы - Булево - признак того, что установка обновления происходит при завершении работы. // * ФайлыОбновления - Массив - содержит значения типа Структура. -// * Исправления - структура: +// * Исправления - Структура: // ** Установить - Массив - пути к файлам исправлений во временном хранилище, // которые требуется установить. // ** Удалить - Массив - уникальные идентификаторы (Строка) исправлений, которые требуется удалить. diff --git a/SSL/src/CommonModules/Обсуждения/Module.bsl b/SSL/src/CommonModules/Обсуждения/Module.bsl index d7d944e36..877baff78 100644 --- a/SSL/src/CommonModules/Обсуждения/Module.bsl +++ b/SSL/src/CommonModules/Обсуждения/Module.bsl @@ -15,14 +15,14 @@ // Выбрасывает исключение, если не удалось отправить сообщение. // // Параметры: -// Автор - СправочникСсылка.Пользователи -// - ПользовательСистемыВзаимодействия -// Получатели - Массив Из СправочникСсылка.Пользователи -// - Массив Из ПользовательСистемыВзаимодействия -// Сообщение - см. ОписаниеСообщения. -// ОбсуждениеКонтекст - ЛюбаяСсылка - сообщение будет отправлено в контекстное обсуждение. -// - ИдентификаторОбсужденияСистемыВзаимодействия - сообщение будет отправлено в указанное обсуждение. -// - Неопределено - сообщение будет отправлено в негрупповое обсуждение между автором и получателем. +// Автор - СправочникСсылка.Пользователи +// - ПользовательСистемыВзаимодействия +// Получатели - Массив из СправочникСсылка.Пользователи +// - Массив из ПользовательСистемыВзаимодействия +// Сообщение - см. ОписаниеСообщения. +// ОбсуждениеКонтекст - ЛюбаяСсылка - сообщение будет отправлено в контекстное обсуждение. +// - ИдентификаторОбсужденияСистемыВзаимодействия - сообщение будет отправлено в указанное обсуждение. +// - Неопределено - сообщение будет отправлено в негрупповое обсуждение между автором и получателем. // // Пример: // Сообщение = Обсуждения.ОписаниеСообщения("Привет, мир!"); @@ -99,21 +99,11 @@ УстановитьПривилегированныйРежим(Истина); - СообщениеСВ = СистемаВзаимодействия.СоздатьСообщение(ИдентификаторОбсуждения); - СообщениеСВ.Автор = Автор.Идентификатор; - СообщениеСВ.Текст = Сообщение.Текст; - Для каждого Действие Из Сообщение.Действия Цикл - СообщениеСВ.Действия.Добавить(Действие.Значение, Действие.Представление); - КонецЦикла; - - ДобавитьПолучателей(СообщениеСВ.Получатели, Получатели); - - Для каждого Вложение Из Сообщение.Вложения Цикл - СообщениеСВ.Вложения.Добавить(Вложение.Поток, - Вложение.Имя, - Вложение.ТипСодержимого, - Вложение.Отображаемое); - КонецЦикла; + СообщениеСВ = СообщениеИзОписания( + Автор, + ИдентификаторОбсуждения, + Получатели, + Сообщение); СообщениеСВ.Записать(); КонецПроцедуры @@ -124,11 +114,11 @@ // Выбрасывает исключение, если не удалось отправить сообщение. // // Параметры: -// Автор - СправочникСсылка.Пользователи -// - ПользовательСистемыВзаимодействия -// Сообщение - см. ОписаниеСообщения. -// ОбсуждениеКонтекст - ЛюбаяСсылка - сообщение будет отправлено в контекстное обсуждение. -// - ИдентификаторОбсужденияСистемыВзаимодействия - сообщение будет отправлено в указанное обсуждение. +// Автор - СправочникСсылка.Пользователи +// - ПользовательСистемыВзаимодействия +// Сообщение - см. ОписаниеСообщения. +// ОбсуждениеКонтекст - ЛюбаяСсылка - сообщение будет отправлено в контекстное обсуждение. +// - ИдентификаторОбсужденияСистемыВзаимодействия - сообщение будет отправлено в указанное обсуждение. // // Пример: // Сообщение = Обсуждения.ОписаниеСообщения("Привет, мир!"); @@ -186,21 +176,11 @@ УстановитьПривилегированныйРежим(Истина); - СообщениеСВ = СистемаВзаимодействия.СоздатьСообщение(ИдентификаторОбсуждения); - СообщениеСВ.Автор = Автор.Идентификатор; - СообщениеСВ.Текст = Сообщение.Текст; - Для каждого Действие Из Сообщение.Действия Цикл - СообщениеСВ.Действия.Добавить(Действие.Значение, Действие.Представление); - КонецЦикла; - - ДобавитьПолучателей(СообщениеСВ.Получатели, Получатели); - - Для каждого Вложение Из Сообщение.Вложения Цикл - СообщениеСВ.Вложения.Добавить(Вложение.Поток, - Вложение.Имя, - Вложение.ТипСодержимого, - Вложение.Отображаемое); - КонецЦикла; + СообщениеСВ = СообщениеИзОписания( + Автор, + ИдентификаторОбсуждения, + Получатели, + Сообщение); СообщениеСВ.Записать(); КонецПроцедуры @@ -208,7 +188,7 @@ // Возвращает Истина, если база зарегистрирована в системе Взаимодействия. // // Возвращаемое значение: -// Булево +// Булево // Функция СистемаВзаимодействийПодключена() Экспорт Если ОбсужденияСлужебный.Заблокированы() Тогда @@ -222,7 +202,7 @@ // есть хотя бы один зарегистрированный пользователь. // // Возвращаемое значение: -// Булево +// Булево // Функция ОбсужденияДоступны() Экспорт Возврат ОбсужденияСлужебный.Подключены(); @@ -232,13 +212,13 @@ // и элементами справочника Пользователи. // // Параметры: -// ПользователиСистемыВзаимодействия - Массив Из ИдентификаторПользователяСистемыВзаимодействия -// - КоллекцияИдентификаторовПользователейСистемыВзаимодействия +// ПользователиСистемыВзаимодействия - Массив из ИдентификаторПользователяСистемыВзаимодействия +// - КоллекцияИдентификаторовПользователейСистемыВзаимодействия // // Возвращаемое значение: -// Соответствие из КлючИЗначение: -// * Ключ - ИдентификаторПользователяСистемыВзаимодействия -// * Значение - см. ПользовательИнформационнойБазы +// Соответствие из КлючИЗначение: +// * Ключ - ИдентификаторПользователяСистемыВзаимодействия +// * Значение - см. ПользовательИнформационнойБазы // Функция ПользователиИнформационнойБазы(ПользователиСистемыВзаимодействия)Экспорт ТипыВходныхПараметров = Новый Массив; @@ -277,10 +257,10 @@ // Выбрасывает исключение, если пользователь не был найден. // // Параметры: -// ПользовательСистемыВзаимодействия - ИдентификаторПользователяСистемыВзаимодействия. +// ПользовательСистемыВзаимодействия - ИдентификаторПользователяСистемыВзаимодействия. // // Возвращаемое значение: -// СправочникСсылка.Пользователи +// СправочникСсылка.Пользователи // Функция ПользовательИнформационнойБазы(ПользовательСистемыВзаимодействия) Экспорт Результат = Неопределено; @@ -306,12 +286,12 @@ // то возвращается Неопределено. // // Параметры: -// ПользователиИнформационнойБазы - Массив Из СправочникСсылка.Пользователи +// ПользователиИнформационнойБазы - Массив из СправочникСсылка.Пользователи // // Возвращаемое значение: -// Соответствие: -// * Ключ - СправочникСсылка.Пользователи -// * Значение - см. ПользовательСистемыВзаимодействия +// Соответствие из КлючИЗначение: +// * Ключ - СправочникСсылка.Пользователи +// * Значение - см. ПользовательСистемыВзаимодействия // Функция ПользователиСистемыВзаимодействия(ПользователиИнформационнойБазы) Экспорт ОбщегоНазначенияКлиентСервер.ПроверитьПараметр( @@ -355,10 +335,10 @@ // // Параметры: // Пользователь - СправочникСсылка.Пользователи -// - СправочникОбъект.Пользователи +// - СправочникОбъект.Пользователи // // Возвращаемое значение: -// ПользовательСистемыВзаимодействия +// ПользовательСистемыВзаимодействия // Функция ПользовательСистемыВзаимодействия(Пользователь) Экспорт Результат = Неопределено; @@ -421,8 +401,8 @@ // Выбрасывает исключение, если обновить пользователя системы взаимодействия не удалось. // // Параметры: -// Пользователь - СправочникСсылка.Пользователи -// - СправочникОбъект.Пользователи +// Пользователь - СправочникСсылка.Пользователи +// - СправочникОбъект.Пользователи // Процедура ОбновитьПользователяВСистемеВзаимодействия(Пользователь) Экспорт @@ -453,14 +433,15 @@ // и функции подсистемы Обсуждения. // // Параметры: -// Текст - Строка - текст сообщения системы Взаимодействия -// - ФорматированнаяСтрока +// Текст - Строка - текст сообщения системы Взаимодействия +// - ФорматированнаяСтрока // // Возвращаемое значение: // Структура: -// * Текст - ФорматированнаяСтрока -// * Вложения - Массив Из см. ОписаниеВложения -// * Действия - СписокЗначений - см. синтакс-помощник СообщениеСистемыВзаимодействия +// * Текст - ФорматированнаяСтрока +// * Вложения - Массив из см. ОписаниеВложения +// * Данные - Неопределено - см. синтакс-помощник СообщениеСистемыВзаимодействия +// * Действия - СписокЗначений - см. синтакс-помощник СообщениеСистемыВзаимодействия // Функция ОписаниеСообщения(Знач Текст) Экспорт Описание = Новый Структура; @@ -471,6 +452,7 @@ Описание.Вставить("Текст", Текст); Описание.Вставить("Вложения", Новый Массив); + Описание.Вставить("Данные", Неопределено); Описание.Вставить("Действия", Новый СписокЗначений); Возврат Описание; КонецФункции @@ -479,19 +461,19 @@ // и функции подсистемы Обсуждения. // // Параметры: -// Поток - Поток - поток, из которого будет создано вложение системы Взаимодействия. -// - ПотокВПамяти -// - ФайловыйПоток -// Наименование - Строка +// Поток - Поток - поток, из которого будет создано вложение системы Взаимодействия. +// - ПотокВПамяти +// - ФайловыйПоток +// Наименование - Строка // // Возвращаемое значение: -// Структура: -// * Поток - Поток - поток, из которого будет создано вложение системы взаимодействия. +// Структура: +// * Поток - Поток - поток, из которого будет создано вложение системы взаимодействия. // - ПотокВПамяти // - ФайловыйПоток -// * Наименование - Строка -// * ТипСодержимого - Строка -// * Отображаемое - Булево - значение по умолчанию Истина +// * Наименование - Строка +// * ТипСодержимого - Строка +// * Отображаемое - Булево - значение по умолчанию Истина // Функция ОписаниеВложения(Поток, Наименование) Экспорт @@ -530,10 +512,10 @@ // Выбрасывает исключение, если не удалось создать нового пользователя системы Взаимодействия. // // Параметры: -// Пользователь - СправочникиСсылка.Пользователи - пользователь, для которого будет создан +// Пользователь - СправочникСсылка.Пользователи - пользователь, для которого будет создан // пользователь системы взаимодействия. // Возвращаемое значение: -// ПользовательСистемыВзаимодействия +// ПользовательСистемыВзаимодействия // Функция НовыйПользовательСистемыВзаимодействия(Пользователь) ОписаниеПользователя = ОписаниеПользователя(Пользователь); @@ -555,6 +537,11 @@ Возврат ПользователиСлужебный.ОписаниеПользователя(Пользователь); КонецФункции +// Параметры: +// ПолучателиПриемник - КоллекцияИдентификаторовПользователейСистемыВзаимодействия +// ПолучателиИсточник - Соответствие +// - Массив из ПользовательСистемыВзаимодействия +// Процедура ДобавитьПолучателей(ПолучателиПриемник, ПолучателиИсточник) Если ПолучателиИсточник.Количество() = 0 Тогда @@ -575,7 +562,7 @@ КонецЦикла; Иначе - Для каждого Получатель Из ПолучателиИсточник Цикл + Для каждого Получатель Из ПолучателиИсточник Цикл // ИдентификаторПользователяСистемыВзаимодействия, ПользовательСистемыВзаимодействия Если ТипЗнч(Получатель) = Тип("ИдентификаторПользователяСистемыВзаимодействия") Тогда ПолучателиПриемник.Добавить(Получатель); Иначе @@ -596,6 +583,8 @@ КонецЕсли; Сч = Сч + 1; КонецЦикла; + + Возврат Неопределено; КонецФункции @@ -635,4 +624,26 @@ Возврат Обсуждение; КонецФункции +Функция СообщениеИзОписания(Автор, ИдентификаторОбсуждения, Получатели, Сообщение) + + СообщениеСВ = СистемаВзаимодействия.СоздатьСообщение(ИдентификаторОбсуждения); + СообщениеСВ.Автор = Автор.Идентификатор; + СообщениеСВ.Текст = Сообщение.Текст; + СообщениеСВ.Данные = Сообщение.Данные; + Для каждого Действие Из Сообщение.Действия Цикл + СообщениеСВ.Действия.Добавить(Действие.Значение, Действие.Представление); + КонецЦикла; + + ДобавитьПолучателей(СообщениеСВ.Получатели, Получатели); + + Для каждого Вложение Из Сообщение.Вложения Цикл + СообщениеСВ.Вложения.Добавить(Вложение.Поток, + Вложение.Имя, + Вложение.ТипСодержимого, + Вложение.Отображаемое); + КонецЦикла; + Возврат СообщениеСВ; + +КонецФункции + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОбсужденияКлиент/Module.bsl b/SSL/src/CommonModules/ОбсужденияКлиент/Module.bsl index 024452d25..e7ec17d37 100644 --- a/SSL/src/CommonModules/ОбсужденияКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбсужденияКлиент/Module.bsl @@ -13,8 +13,8 @@ // Параметры: // ОписаниеЗавершения - ОписаниеОповещения - оповещения, которые будет выполнено после закрытия формы подключения // с параметрами: -// * Результат - Неопределено -// * ДополнительныеПараметры - Неопределено +// * Результат - Неопределено +// * ДополнительныеПараметры - Неопределено // - Структура. // Процедура ПоказатьПодключение(ОписаниеЗавершения = Неопределено) Экспорт diff --git a/SSL/src/CommonModules/ОбсужденияСлужебный/Module.bsl b/SSL/src/CommonModules/ОбсужденияСлужебный/Module.bsl index 97be0d01d..90de9e1a6 100644 --- a/SSL/src/CommonModules/ОбсужденияСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ОбсужденияСлужебный/Module.bsl @@ -109,54 +109,9 @@ КонецПроцедуры -// Параметры: -// Данные - СправочникСсылка.ВариантыОтчетов -// Заголовок - Строка -// -// Возвращаемое значение: -// ОбсуждениеСистемыВзаимодействия -// -Функция ОбсуждениеКонтекстное(Данные, Заголовок = Неопределено) Экспорт - - Обсуждение = Неопределено; - - УстановитьПривилегированныйРежим(Истина); - - КонтекстОбсуждения = Новый КонтекстОбсужденияСистемыВзаимодействия( - ПолучитьНавигационнуюСсылку(Данные)); - - ОтборОбсуждений = Новый ОтборОбсужденийСистемыВзаимодействия(); - ОтборОбсуждений.КонтекстноеОбсуждение = Истина; - ОтборОбсуждений.КонтекстОбсуждения = КонтекстОбсуждения; - - НайденноеОбсуждения = Вычислить("СистемаВзаимодействия.ПолучитьОбсуждения(ОтборОбсуждений)"); - - Если НайденноеОбсуждения.Количество() > 0 Тогда - Возврат НайденноеОбсуждения[0]; - КонецЕсли; - - Если Заголовок = Неопределено Тогда - - Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'История %1'"), Данные); - - КонецЕсли; - - Обсуждение = Вычислить("СистемаВзаимодействия.СоздатьОбсуждение()"); - Обсуждение.Заголовок = Заголовок; - Обсуждение.КонтекстОбсуждения = КонтекстОбсуждения; - - Обсуждение.Записать(); - - Возврат Обсуждение; - -КонецФункции - #Область ДляВызоваИзДругихПодсистем -// Параметры: -// ЗапросыРазрешений - см. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам.ЗапросыРазрешений -// +// См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); @@ -168,8 +123,7 @@ КонецПроцедуры -// см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// +// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -191,10 +145,10 @@ // Если пользователь заблокирован, то возвращается Неопределено. // // Параметры: -// Пользователь - СправочникСсылка.Пользователь +// Пользователь - СправочникСсылка.Пользователи // // Возвращаемое значение: -// ИнформацияОбОшибке, Неопределено +// ИнформацияОбОшибке, Неопределено // Функция ЗаблокироватьПользователяСистемыВзаимодействия(Пользователь) Экспорт Результат = Неопределено; @@ -268,12 +222,6 @@ КонецПроцедуры -#КонецОбласти - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - Процедура ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействий(ПараметрыОбновления) Экспорт ПолноеИмяОбъектаМетаданных = "Справочник.Пользователи"; @@ -311,6 +259,12 @@ КонецПроцедуры +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Функция СобытиеЖурналаРегистрации(ДетализацияСобытия = "") Экспорт Возврат НСтр("ru='Обсуждения'", ОбщегоНазначения.КодОсновногоЯзыка()) + ?(ПустаяСтрока(ДетализацияСобытия), "", "."+ДетализацияСобытия); @@ -319,17 +273,21 @@ Процедура СоздатьИзменитьИнтеграцию(Параметры) Экспорт Идентификатор = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "Идентификатор"); + // АПК:488-выкл безопасный код Если Идентификатор <> Неопределено Тогда - НоваяИнтеграция = Вычислить("СистемаВзаимодействия.ПолучитьИнтеграцию(Идентификатор)"); + НоваяИнтеграция = Вычислить("СистемаВзаимодействия.ПолучитьИнтеграцию(Идентификатор)"); // ИнтеграцияСистемыВзаимодействия Иначе - НоваяИнтеграция = Вычислить("СистемаВзаимодействия.СоздатьИнтеграцию()"); + НоваяИнтеграция = Вычислить("СистемаВзаимодействия.СоздатьИнтеграцию()"); // ИнтеграцияСистемыВзаимодействия КонецЕсли; + // АПК:488-вкл НоваяИнтеграция.ТипВнешнейСистемы = Параметры.Тип; НоваяИнтеграция.Представление = Параметры.Ключ; НоваяИнтеграция.Ключ = Параметры.Ключ; НоваяИнтеграция.Использование = Истина; - ОписаниеВнешнейСистемы = Вычислить("СистемаВзаимодействия.ПолучитьОписаниеВнешнейСистемы(Параметры.Тип)"); + // АПК:488-выкл безопасный код + ОписаниеВнешнейСистемы = Вычислить("СистемаВзаимодействия.ПолучитьОписаниеВнешнейСистемы(Параметры.Тип)"); // ОписаниеВнешнейСистемыСистемыВзаимодействия + // АПК:488-вкл НеУказанныеПараметры = Новый Массив; Для каждого ПараметрИнтеграции Из ОписаниеВнешнейСистемы.ОписанияПараметров Цикл @@ -359,7 +317,9 @@ Процедура ОтключитьИнтеграцию(Идентификатор) Экспорт + // АПК:488-выкл безопасный код Интеграция = Вычислить("СистемаВзаимодействия.ПолучитьИнтеграцию(Идентификатор)"); + // АПК:488-вкл Интеграция.Использование = Ложь; Интеграция.Записать(); diff --git a/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl index 0f3c64d2d..f662b6034 100644 --- a/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl @@ -106,6 +106,8 @@ // псевдоним поля для возвращаемой структуры с результатом, а в качестве // значения (опционально) фактическое имя поля в таблице. // Если ключ задан, а значение не определено, то имя поля берется из ключа. +// Допускается указание имени поля через точку, но при этом параметр КодЯзыка для такого поля +// учитываться не будет. // - Массив // - ФиксированныйМассив - имена реквизитов в формате требований // к свойствам структуры. @@ -124,7 +126,7 @@ // - если в параметр Ссылка передана ссылка несуществующего объекта (битая ссылка), // то все реквизиты вернутся со значением Неопределено. // -Функция ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты, ВыбратьРазрешенные = Ложь, КодЯзыка = Неопределено) Экспорт +Функция ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты, ВыбратьРазрешенные = Ложь, Знач КодЯзыка = Неопределено) Экспорт // Если передано имя предопределенного. Если ТипЗнч(Ссылка) = Тип("Строка") Тогда @@ -181,10 +183,14 @@ КонецЕсли; МультиязычныеРеквизиты = Новый Соответствие; + СуффиксЯзыка = ""; Если ЗначениеЗаполнено(КодЯзыка) Тогда - СуффиксЯзыка = МультиязычностьСервер.СуффиксЯзыка(КодЯзыка); - Если ЗначениеЗаполнено(СуффиксЯзыка) Тогда - МультиязычныеРеквизиты = МультиязычностьСервер.МультиязычныеРеквизитыОбъекта(Ссылка); + Если ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщийМодуль("МультиязычностьСервер"); + СуффиксЯзыка = МодульМультиязычностьСервер.СуффиксЯзыка(КодЯзыка); + Если ЗначениеЗаполнено(СуффиксЯзыка) Тогда + МультиязычныеРеквизиты = МодульМультиязычностьСервер.МультиязычныеРеквизитыОбъекта(Ссылка); + КонецЕсли; КонецЕсли; КонецЕсли; @@ -256,6 +262,38 @@ Возврат Результат; КонецЕсли; + Если Тип("Структура") = ТипЗнч(Реквизиты) Тогда + Реквизиты = Новый Массив; + Для Каждого КлючИЗначение Из СтруктураПолей Цикл + ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение), + КлючИЗначение.Значение, + КлючИЗначение.Ключ); + Реквизиты.Добавить(ИмяПоля); + КонецЦикла; + КонецЕсли; + + РеквизитыЧерезТочку = Новый Массив; + Для Индекс = -Реквизиты.ВГраница() По 0 Цикл + ИмяПоля = Реквизиты[-Индекс]; + Если СтрНайти(ИмяПоля, ".") Тогда + РеквизитыЧерезТочку.Добавить(ИмяПоля); + Реквизиты.Удалить(-Индекс); + КонецЕсли; + КонецЦикла; + + Если ЗначениеЗаполнено(Реквизиты) Тогда + ЗначенияРеквизитовОбъекта = ЗначенияРеквизитовОбъектов(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Ссылка), Реквизиты, ВыбратьРазрешенные, КодЯзыка)[Ссылка]; + Если ЗначениеЗаполнено(ЗначенияРеквизитовОбъекта) Тогда + ЗаполнитьЗначенияСвойств(Результат, ЗначенияРеквизитовОбъекта); + КонецЕсли; + КонецЕсли; + + Если Не ЗначениеЗаполнено(РеквизитыЧерезТочку) Тогда + Возврат Результат; + КонецЕсли; + + Реквизиты = РеквизитыЧерезТочку; + ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ |&ТекстЗапросаПолей @@ -265,7 +303,7 @@ | Таблица.Ссылка = &Ссылка"; Если Не ВыбратьРазрешенные Тогда - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "РАЗРЕШЕННЫЕ", ""); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "РАЗРЕШЕННЫЕ", ""); // @Query-part-1 КонецЕсли; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстЗапросаПолей", ТекстЗапросаПолей); @@ -327,6 +365,8 @@ // Ссылка - ЛюбаяСсылка - объект, значения реквизитов которого необходимо получить. // - Строка - полное имя предопределенного элемента, значения реквизитов которого необходимо получить. // ИмяРеквизита - Строка - имя получаемого реквизита. +// Допускается указание имени реквизита через точку, но при этом параметр КодЯзыка для +// такого реквизита учитываться не будет. // ВыбратьРазрешенные - Булево - если Истина, то запрос к объекту выполняется с учетом прав пользователя; // если есть ограничение на уровне записей, то возвращается Неопределено; // если нет прав для работы с таблицей, то возникнет исключение; @@ -340,7 +380,7 @@ // - если в параметр Ссылка передана ссылка несуществующего объекта (битая ссылка), // то возвращается Неопределено. // -Функция ЗначениеРеквизитаОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные = Ложь, КодЯзыка = Неопределено) Экспорт +Функция ЗначениеРеквизитаОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные = Ложь, Знач КодЯзыка = Неопределено) Экспорт Если ПустаяСтрока(ИмяРеквизита) Тогда ВызватьИсключение @@ -377,13 +417,13 @@ // КодЯзыка - Строка - код языка для мультиязычного реквизита. // // Возвращаемое значение: -// Соответствие - список объектов и значений их реквизитов: +// Соответствие из КлючИЗначение - список объектов и значений их реквизитов: // * Ключ - ЛюбаяСсылка - ссылка на объект; // * Значение - Структура: // ** Ключ - Строка - имя реквизита; // ** Значение - Произвольный - значение реквизита. // -Функция ЗначенияРеквизитовОбъектов(Ссылки, Знач Реквизиты, ВыбратьРазрешенные = Ложь, КодЯзыка = Неопределено) Экспорт +Функция ЗначенияРеквизитовОбъектов(Ссылки, Знач Реквизиты, ВыбратьРазрешенные = Ложь, Знач КодЯзыка = Неопределено) Экспорт Если ТипЗнч(Реквизиты) = Тип("Массив") Или ТипЗнч(Реквизиты) = Тип("ФиксированныйМассив") Тогда Реквизиты = СтрСоединить(Реквизиты, ","); @@ -406,20 +446,28 @@ Возврат ЗначенияРеквизитов; КонецЕсли; - РеквизитыТекстЗапроса = Реквизиты; Если ЗначениеЗаполнено(КодЯзыка) Тогда - СуффиксЯзыка = МультиязычностьСервер.СуффиксЯзыка(КодЯзыка); - Если ЗначениеЗаполнено(СуффиксЯзыка) Тогда - МультиязычныеРеквизиты = МультиязычностьСервер.МультиязычныеРеквизитыОбъекта(Ссылки[0]); - НаборРеквизитов = СтрРазделить(Реквизиты, ","); - Для Позиция = 0 По НаборРеквизитов.ВГраница() Цикл - ИмяРеквизита = СокрЛП(НаборРеквизитов[Позиция]); - Если МультиязычныеРеквизиты[ИмяРеквизита] <> Неопределено Тогда - ИмяССуффиксом = ИмяРеквизита + СуффиксЯзыка; - НаборРеквизитов[Позиция] = ИмяССуффиксом + " КАК " + ИмяРеквизита; - КонецЕсли; - КонецЦикла; - РеквизитыТекстЗапроса = СтрСоединить(НаборРеквизитов, ","); + КодЯзыка = СтрРазделить(КодЯзыка, "_", Истина)[0]; + КонецЕсли; + + РеквизитыТекстЗапроса = Реквизиты; + + Если ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщийМодуль("МультиязычностьСервер"); + СуффиксЯзыка = МодульМультиязычностьСервер.СуффиксЯзыка(КодЯзыка); + Если ЗначениеЗаполнено(КодЯзыка) Тогда + Если ЗначениеЗаполнено(СуффиксЯзыка) Тогда + МультиязычныеРеквизиты = МодульМультиязычностьСервер.МультиязычныеРеквизитыОбъекта(Ссылки[0]); + НаборРеквизитов = СтрРазделить(Реквизиты, ","); + Для Позиция = 0 По НаборРеквизитов.ВГраница() Цикл + ИмяРеквизита = СокрЛП(НаборРеквизитов[Позиция]); + Если МультиязычныеРеквизиты[ИмяРеквизита] <> Неопределено Тогда + ИмяССуффиксом = ИмяРеквизита + СуффиксЯзыка; + НаборРеквизитов[Позиция] = ИмяССуффиксом + " КАК " + ИмяРеквизита; + КонецЕсли; + КонецЦикла; + РеквизитыТекстЗапроса = СтрСоединить(НаборРеквизитов, ","); + КонецЕсли; КонецЕсли; КонецЕсли; @@ -440,14 +488,14 @@ Для Каждого СсылкиПоТипу Из СсылкиПоТипам Цикл Тип = СсылкиПоТипу.Ключ; - - Попытка - ПолноеИмяОбъектаМетаданных = Метаданные.НайтиПоТипу(Тип).ПолноеИмя(); - Исключение + ОбъектМетаданных = Метаданные.НайтиПоТипу(Тип); + Если ОбъектМетаданных = Неопределено Тогда ВызватьИсключение НСтр("ru = 'Неверный первый параметр Ссылки в функции ОбщегоНазначения.ЗначенияРеквизитовОбъектов: |- Значения массива должны быть ссылками'"); - КонецПопытки; + КонецЕсли; + + ПолноеИмяОбъектаМетаданных = ОбъектМетаданных.ПолноеИмя(); ИменаОбъектовМетаданных.Добавить(ПолноеИмяОбъектаМетаданных); ТекстЗапроса = @@ -458,23 +506,59 @@ | &ПолноеИмяОбъектаМетаданных КАК Таблица |ГДЕ | Таблица.Ссылка В (&Ссылки)"; - Если Не ВыбратьРазрешенные Или ТекстыЗапросов.Количество() > 0 Тогда - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "РАЗРЕШЕННЫЕ", ""); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "РАЗРЕШЕННЫЕ", ""); // @Query-part-1 КонецЕсли; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Реквизиты", РеквизитыТекстЗапроса); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяОбъектаМетаданных", ПолноеИмяОбъектаМетаданных); ИмяПараметра = "Ссылки" + СтрЗаменить(ПолноеИмяОбъектаМетаданных, ".", ""); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Ссылки", "&" + ИмяПараметра); ПараметрыЗапроса.Вставить(ИмяПараметра, СсылкиПоТипу.Значение); + Если ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщийМодуль("МультиязычностьСервер"); + Если ЗначениеЗаполнено(КодЯзыка) И КодЯзыка <> КодОсновногоЯзыка() + И Не МодульМультиязычностьСервер.МультиязычныеСтрокиВРеквизитах(ОбъектМетаданных) Тогда + + МультиязычныеРеквизиты = МодульМультиязычностьСервер.МультиязычныеРеквизитыОбъекта(ОбъектМетаданных); + ПоляТаблиц = Новый Массив; + ПоляТаблиц.Добавить("Таблица.Ссылка"); + Для Каждого Реквизит Из СтрРазделить(Реквизиты, ",") Цикл + Если МультиязычныеРеквизиты[Реквизит] = Истина Тогда + ПоляТаблиц.Добавить("ТаблицаПредставления." + Реквизит + " КАК " + Реквизит); + Иначе + ПоляТаблиц.Добавить(Реквизит); + КонецЕсли; + КонецЦикла; + + ПоляТаблиц = СтрСоединить(ПоляТаблиц, ","); + + Таблицы = ПолноеИмяОбъектаМетаданных + " " + "КАК Таблица" + Символы.ПС + + "ЛЕВОЕ СОЕДИНЕНИЕ" + " " + ПолноеИмяОбъектаМетаданных + ".Представления КАК ТаблицаПредставления" + Символы.ПС + + "ПО ТаблицаПредставления.Ссылка = Таблица.Ссылка И ТаблицаПредставления.КодЯзыка = &КодЯзыка"; + + ИмяПараметра = "Ссылки" + СтрЗаменить(ПолноеИмяОбъектаМетаданных, ".", ""); + Условия = "Таблица.Ссылка В (&" + ИмяПараметра + ")"; + + СтрокиЗапроса = Новый Массив; + СтрокиЗапроса.Добавить("ВЫБРАТЬ" + ?(ВыбратьРазрешенные И Не ЗначениеЗаполнено(ТекстыЗапросов), " " + "РАЗРЕШЕННЫЕ", "")); // @Query-part-1, @Query-part-3 + СтрокиЗапроса.Добавить(ПоляТаблиц); + СтрокиЗапроса.Добавить("ИЗ"); // @Query-part-1 + СтрокиЗапроса.Добавить(Таблицы); + СтрокиЗапроса.Добавить("ГДЕ"); // @Query-part-1 + СтрокиЗапроса.Добавить(Условия); + + ТекстЗапроса = СтрСоединить(СтрокиЗапроса, Символы.ПС); + КонецЕсли; + КонецЕсли; + ТекстыЗапросов.Добавить(ТекстЗапроса); КонецЦикла; ТекстЗапроса = СтрСоединить(ТекстыЗапросов, Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС); Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("КодЯзыка", КодЯзыка); Для Каждого Параметр Из ПараметрыЗапроса Цикл Запрос.УстановитьПараметр(Параметр.Ключ, Параметр.Значение); КонецЦикла; @@ -537,11 +621,11 @@ // КодЯзыка - Строка - код языка для мультиязычного реквизита. // // Возвращаемое значение: -// Соответствие - Ключ - ссылка на объект, Значение - значение прочитанного реквизита: +// Соответствие из КлючИЗначение - Ключ - ссылка на объект, Значение - значение прочитанного реквизита: // * Ключ - ссылка на объект, // * Значение - значение прочитанного реквизита. // -Функция ЗначениеРеквизитаОбъектов(МассивСсылок, ИмяРеквизита, ВыбратьРазрешенные = Ложь, КодЯзыка = Неопределено) Экспорт +Функция ЗначениеРеквизитаОбъектов(МассивСсылок, ИмяРеквизита, ВыбратьРазрешенные = Ложь, Знач КодЯзыка = Неопределено) Экспорт Если ПустаяСтрока(ИмяРеквизита) Тогда ВызватьИсключение НСтр("ru = 'Неверный второй параметр ИмяРеквизита в функции ОбщегоНазначения.ЗначениеРеквизитаОбъектов: @@ -584,43 +668,18 @@ // Процедура УстановитьЗначенияРеквизитов(Объект, Значения, КодЯзыка = Неопределено) Экспорт - Если КодЯзыка = Неопределено Тогда - КодЯзыка = КодОсновногоЯзыка(); + Если ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.УстановитьЗначенияРеквизитов(Объект, Значения, КодЯзыка); + Возврат; КонецЕсли; - Для каждого ЗначениеРеквизита Из Значения Цикл - СтрокаБезПробелов = СтрЗаменить(ЗначениеРеквизита.Значение, " ", ""); - - Если МультиязычностьСервер.СтрокаВВидеНСтр(СтрокаБезПробелов) Тогда - - Для каждого Язык Из Метаданные.Языки Цикл - - СуффиксЯзыка = ""; - Если КодОсновногоЯзыка() <> Язык.КодЯзыка Тогда - СуффиксЯзыка = МультиязычностьСервер.СуффиксЯзыка(Язык.КодЯзыка); - Если ПустаяСтрока(СуффиксЯзыка) Тогда - Продолжить; - КонецЕсли; - КонецЕсли; - Если СтрНайти(СтрокаБезПробелов, Язык.КодЯзыка +"=") > 0 Тогда - Объект[ЗначениеРеквизита.Ключ + СуффиксЯзыка] = НСтр(ЗначениеРеквизита.Значение, Язык.КодЯзыка); - КонецЕсли; - - КонецЦикла; - - Иначе - СуффиксЯзыка = ""; - Если ЗначениеЗаполнено(КодЯзыка) Тогда - Если КодОсновногоЯзыка() <> КодЯзыка Тогда - СуффиксЯзыка = МультиязычностьСервер.СуффиксЯзыка(КодЯзыка); - Если ПустаяСтрока(СуффиксЯзыка) Тогда - Продолжить; - КонецЕсли; - КонецЕсли; - КонецЕсли; - Объект[ЗначениеРеквизита.Ключ + СуффиксЯзыка] = ЗначениеРеквизита.Значение; - КонецЕсли; - + Для Каждого ЗначениеРеквизита Из Значения Цикл + Значение = ЗначениеРеквизита.Значение; + Если ТипЗнч(Значение) = Тип("Строка") И СтрокаВВидеНСтр(Значение) Тогда + Значение = НСтр(ЗначениеРеквизита.Значение); + КонецЕсли; + Объект[ЗначениеРеквизита.Ключ] = ЗначениеРеквизита.Значение; КонецЦикла; КонецПроцедуры @@ -635,8 +694,24 @@ // Функция КодОсновногоЯзыка() Экспорт - УстановитьПривилегированныйРежим(Истина); - Возврат ПараметрыСеанса.ОсновнойЯзык; + Если ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщийМодуль("МультиязычностьСервер"); + Возврат МодульМультиязычностьСервер.КодОсновногоЯзыка(); + КонецЕсли; + + Возврат Метаданные.ОсновнойЯзык.КодЯзыка; + +КонецФункции + +// Возвращает признак того, что для пользователя установлен язык интерфейса +// соответствующий основному языку информационной базы. +// +// Возвращаемое значение: +// Булево +// +Функция ЭтоОсновнойЯзык() Экспорт + + Возврат СтрСравнить(КодОсновногоЯзыка(), ТекущийЯзык().КодЯзыка) = 0; КонецФункции @@ -683,10 +758,10 @@ // те из них, которые не проведены. // // Параметры: -// Документы - Массив Из ДокументСсылка - документы, статус проведения которых необходимо проверить. +// Документы - Массив из ДокументСсылка - документы, статус проведения которых необходимо проверить. // // Возвращаемое значение: -// Массив Из ДокументСсылка - непроведенные документы. +// Массив из ДокументСсылка - непроведенные документы. // Функция ПроверитьПроведенностьДокументов(Знач Документы) Экспорт @@ -845,7 +920,7 @@ // или не выполнялся, будет вызван МетодПоиска для подбора замен // // Параметры: -// ПарыЗамен - Соответствие: +// ПарыЗамен - Соответствие из КлючИЗначение: // * Ключ - ЛюбаяСсылка - что ищем (дубль). // * Значение - ЛюбаяСсылка - на что заменяем (оригинал). // Ссылки сами на себя и пустые ссылки для поиска будут проигнорированы. @@ -936,7 +1011,7 @@ Попытка КоличествоДублей = Дубли.Количество(); - Сч = 1; + Номер = 1; Для Каждого Дубль Из Дубли Цикл БылиОшибки = Результат.ЕстьОшибки; @@ -949,9 +1024,10 @@ КонецЕсли; Результат.ЕстьОшибки = Результат.ЕстьОшибки ИЛИ БылиОшибки; - ДлительныеОперации.СообщитьПрогресс(Сч - ,СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Замена дублей...обработано (%1 из %2)'"), Сч, КоличествоДублей)); - Сч = Сч + 1; + ДлительныеОперации.СообщитьПрогресс(Номер, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Замена дублей... обработано (%1 из %2)'"), + Номер, КоличествоДублей)); + Номер = Номер + 1; ДобавитьВСтатистикуЗаменыСсылок(Статистика, Дубль, Результат.ЕстьОшибки); КонецЦикла; @@ -969,10 +1045,10 @@ Если ПодсистемаСуществует("СтандартныеПодсистемы.УдалениеПомеченныхОбъектов") И ПараметрыВыполнения.УдалятьНепосредственно Тогда - УдалениеПомеченныхМенеджер = ОбщийМодуль("УдалениеПомеченныхОбъектов"); + МодульУдалениеПомеченныхОбъектов = ОбщийМодуль("УдалениеПомеченныхОбъектов"); ДлительныеОперации.СообщитьПрогресс(0, НСтр("ru='Удаление дублей...'")); - РезультатУдаления = УдалениеПомеченныхМенеджер.УдалитьПомеченныеОбъекты(Результат.ОчередьКНепосредственномуУдалению); + РезультатУдаления = МодульУдалениеПомеченныхОбъектов.УдалитьПомеченныеОбъекты(Результат.ОчередьКНепосредственномуУдалению); ЗарегистрироватьОшибкиУдаления(Результат, РезультатУдаления.ПрепятствующиеУдалению); КонецЕсли; @@ -997,7 +1073,7 @@ // * ВключатьБизнесЛогику - Булево - режим записи объектов при замене в них ссылок дублей на оригиналы. // Если Истина (по умолчанию), то места использования дублей записываются в обычном режиме, // иначе запись ведется в режиме ОбменДанными.Загрузка = Истина. -// * ЗаменаПарыВТранзакции - Булево - определяет размер транзакции при замене дублей. +// * ЗаменаПарыВТранзакции - Булево - устарел. определяет размер транзакции при замене дублей. // Если Истина (по умолчанию), то все места использования одного дубля заменяются в одной транзакции. // Это может быть очень ресурсоемко в случае большого количества мест использований. // Если Ложь, то замена в каждом месте использования выполняется в отдельной транзакции. @@ -1020,7 +1096,7 @@ // // Параметры: // НаборСсылок - Массив из ЛюбаяСсылка - ссылки, для которых ищем места использования. -// АдресРезультата - Строка - необязательный адрес во временном хранилище, куда будет помещен копия результата +// АдресРезультата - Строка - адрес во временном хранилище, куда будет помещен копия результата // замены. // ДополнительныеПараметры - см. ОбщегоНазначения.ПараметрыПоискаМестИспользования // @@ -1173,10 +1249,11 @@ КонецФункции // Возвращаемое значение: -// Структура: -// * ДополнительныеИсключенияПоискаСсылок - Соответствие - позволяет расширить исключения поиска ссылок +// Структура: +// * ДополнительныеИсключенияПоискаСсылок - Соответствие - позволяет расширить исключения поиска ссылок // см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок -// * ОтменаИсключенийПоискаСсылок - Массив из ОбъектМетаданных - полностью отменяет исключения поиска ссылок для объектов метаданных. +// * ОтменаИсключенийПоискаСсылок - Массив из ОбъектМетаданных - полностью отменяет исключения поиска ссылок для +// объектов метаданных. // Функция ПараметрыПоискаМестИспользования() Экспорт @@ -1191,10 +1268,10 @@ // Возвращает исключения при поиске мест использования объектов. // // Возвращаемое значение: -// Соответствие - исключения поиска ссылок в разрезе объектов метаданных: +// Соответствие из КлючИЗначение - исключения поиска ссылок в разрезе объектов метаданных: // * Ключ - ОбъектМетаданных - объект метаданных, для которого применяются исключения. // * Значение - Строка -// - Массив - описание исключенных реквизитов. +// - Массив из Строка - описание исключенных реквизитов. // Если "*", то исключены все реквизиты объекта метаданных. // Если массив строк, то содержит относительные имена исключенных реквизитов. // @@ -1276,11 +1353,11 @@ // * ЗначениеКлючевыхРеквизитов - Структура - Ключ - имя реквизита, значение - значение реквизита // // Возвращаемое значение: -// ТаблицаЗначений: -// * ПодчиненныйОбъект - ОбъектМетаданных - (обязательный) объект метаданных подчиненного объекта. -// * ПоляСвязей - Строка - (обязательный) реквизиты, определяющие связь между основными и подчиненными объектами. -// * ПриПоискеЗаменыСсылок - Строка - общий модуль или модуль менеджера, в котором есть процедура ПриПоискеЗаменыСсылок. -// * ВыполнятьАвтоматическийПоискЗаменСсылок - Булево - см. описание ЗаменитьСсылки +// ТаблицаЗначений: +// * ПодчиненныйОбъект - ОбъектМетаданных - (обязательный) объект метаданных подчиненного объекта. +// * ПоляСвязей - Строка - (обязательный) реквизиты, определяющие связь между основными и подчиненными объектами. +// * ПриПоискеЗаменыСсылок - Строка - общий модуль или модуль менеджера, в котором есть процедура ПриПоискеЗаменыСсылок. +// * ВыполнятьАвтоматическийПоискЗаменСсылок - см. ЗаменитьСсылки // Функция ПодчиненныеОбъекты() Экспорт @@ -1629,8 +1706,8 @@ Если ПланыОбмена.ГлавныйУзел() <> Неопределено И ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда - ОбщийМодульОбменДаннымиСервер = ОбщийМодуль("ОбменДаннымиСервер"); - Если ОбщийМодульОбменДаннымиСервер.НазначениеПланаОбмена(ПланыОбмена.ГлавныйУзел().Метаданные().Имя) = "РИБСФильтром" Тогда + МодульОбменДаннымиСервер = ОбщийМодуль("ОбменДаннымиСервер"); + Если МодульОбменДаннымиСервер.НазначениеПланаОбмена(ПланыОбмена.ГлавныйУзел().Метаданные().Имя) = "РИБСФильтром" Тогда Возврат Истина; КонецЕсли; КонецЕсли; @@ -1843,6 +1920,8 @@ ОбщиеПараметры.Вставить("РаботаВПрограммеЗапрещена", Ложь); // Блокировать запуск, если версия ниже минимальной. ОбщегоНазначенияПереопределяемый.ПриОпределенииОбщихПараметровБазовойФункциональности(ОбщиеПараметры); + ОбщиеПараметры.МинимальнаяВерсияПлатформы = НомерСборкиПоТекущейВерсииПлатформы(ОбщиеПараметры.МинимальнаяВерсияПлатформы); + ОбщиеПараметры.РекомендуемаяВерсияПлатформы = НомерСборкиПоТекущейВерсииПлатформы(ОбщиеПараметры.РекомендуемаяВерсияПлатформы); Минимальная = ОбщиеПараметры.МинимальнаяВерсияПлатформы; Рекомендуемая = ОбщиеПараметры.РекомендуемаяВерсияПлатформы; @@ -1922,6 +2001,8 @@ Возврат ОписаниеПодсистемы.Значение.ИдентификаторИнтернетПоддержки; КонецЕсли; КонецЦикла; + + Возврат ""; КонецФункции #КонецОбласти @@ -1989,8 +2070,8 @@ // Сохраняет настройку рабочей даты пользователя. // // Параметры: -// НоваяРабочаяДата - Дата - дата, которую необходимо установить в качестве рабочей даты пользователя. -// ИмяПользователя - Строка - имя пользователя, для которого устанавливается рабочая дата. +// НоваяРабочаяДата - Дата - дата, которую необходимо установить в качестве рабочей даты пользователя. +// ИмяПользователя - Строка - имя пользователя, для которого устанавливается рабочая дата. // Если не задано, то устанавливается для текущего пользователя. // Процедура УстановитьРабочуюДатуПользователя(НоваяРабочаяДата, ИмяПользователя = Неопределено) Экспорт @@ -2004,11 +2085,11 @@ // Возвращает значение настройки рабочей даты для пользователя. // // Параметры: -// ИмяПользователя - Строка - имя пользователя, для которого запрашивается рабочая дата. +// ИмяПользователя - Строка - имя пользователя, для которого запрашивается рабочая дата. // Если не задано, то устанавливается для текущего пользователя. // // Возвращаемое значение: -// Дата - значение настройки рабочей даты пользователя или пустая дата, если настройка не задана. +// Дата - значение настройки рабочей даты пользователя или пустая дата, если настройка не задана. // Функция РабочаяДатаПользователя(ИмяПользователя = Неопределено) Экспорт @@ -2028,11 +2109,11 @@ // если рабочая дата пользователя не задана. // // Параметры: -// ИмяПользователя - Строка - имя пользователя, для которого запрашивается рабочая дата. +// ИмяПользователя - Строка - имя пользователя, для которого запрашивается рабочая дата. // Если не задано, то устанавливается для текущего пользователя. // // Возвращаемое значение: -// Дата - значение настройки рабочей даты пользователя или текущая дата сеанса, если настройка не задана. +// Дата - значение настройки рабочей даты пользователя или текущая дата сеанса, если настройка не задана. // Функция ТекущаяДатаПользователя(ИмяПользователя = Неопределено) Экспорт @@ -2138,7 +2219,7 @@ // Свойства структуры и их значения совпадают с колонками переданной строки. // // Параметры: -// СтрокаТаблицыЗначений - СтрокаТаблицыЗначений - строка таблицы значений. +// СтрокаТаблицыЗначений - СтрокаТаблицыЗначений // // Возвращаемое значение: // Структура - преобразованная строка таблицы значений. @@ -2517,7 +2598,7 @@ // // Возвращаемое значение: // ФиксированнаяСтруктура, ФиксированноеСоответствие, ФиксированныйМассив - фиксированные данные, аналогичные -// переданным в параметре Данные. +// переданным в параметре Данные. // Функция ФиксированныеДанные(Данные, ВызыватьИсключение = Истина) Экспорт @@ -2656,7 +2737,7 @@ // если Ложь - снять фиксацию, если Неопределено - не изменять. // // Возвращаемое значение: -// Структура - , ФиксированнаяСтруктура, +// Структура, ФиксированнаяСтруктура, // Соответствие // ФиксированноеСоответствие // Массив @@ -3235,6 +3316,66 @@ ИначеЕсли Метаданные.Обработки.Содержит(ОбъектМетаданных) Тогда Возврат "Обработки"; + ИначеЕсли Метаданные.Отчеты.Содержит(ОбъектМетаданных) Тогда + Возврат "Отчеты"; + + ИначеЕсли Метаданные.Подсистемы.Содержит(ОбъектМетаданных) Тогда + Возврат "Подсистемы"; + + ИначеЕсли Метаданные.ОбщиеМодули.Содержит(ОбъектМетаданных) Тогда + Возврат "ОбщиеМодули"; + + ИначеЕсли Метаданные.ПараметрыСеанса.Содержит(ОбъектМетаданных) Тогда + Возврат "ПараметрыСеанса"; + + ИначеЕсли Метаданные.Роли.Содержит(ОбъектМетаданных) Тогда + Возврат "Роли"; + + ИначеЕсли Метаданные.КритерииОтбора.Содержит(ОбъектМетаданных) Тогда + Возврат "КритерииОтбора"; + + ИначеЕсли Метаданные.ПодпискиНаСобытия.Содержит(ОбъектМетаданных) Тогда + Возврат "ПодпискиНаСобытия"; + + ИначеЕсли Метаданные.ФункциональныеОпции.Содержит(ОбъектМетаданных) Тогда + Возврат "ФункциональныеОпции"; + + ИначеЕсли Метаданные.ПараметрыФункциональныхОпций.Содержит(ОбъектМетаданных) Тогда + Возврат "ПараметрыФункциональныхОпций"; + + ИначеЕсли Метаданные.ХранилищаНастроек.Содержит(ОбъектМетаданных) Тогда + Возврат "ХранилищаНастроек"; + + ИначеЕсли Метаданные.ОбщиеФормы.Содержит(ОбъектМетаданных) Тогда + Возврат "ОбщиеФормы"; + + ИначеЕсли Метаданные.ОбщиеКоманды.Содержит(ОбъектМетаданных) Тогда + Возврат "ОбщиеКоманды"; + + ИначеЕсли Метаданные.ГруппыКоманд.Содержит(ОбъектМетаданных) Тогда + Возврат "ГруппыКоманд"; + + ИначеЕсли Метаданные.ОбщиеМакеты.Содержит(ОбъектМетаданных) Тогда + Возврат "ОбщиеМакеты"; + + ИначеЕсли Метаданные.ОбщиеКартинки.Содержит(ОбъектМетаданных) Тогда + Возврат "ОбщиеКартинки"; + + ИначеЕсли Метаданные.ПакетыXDTO.Содержит(ОбъектМетаданных) Тогда + Возврат "ПакетыXDTO"; + + ИначеЕсли Метаданные.WebСервисы.Содержит(ОбъектМетаданных) Тогда + Возврат "WebСервисы"; + + ИначеЕсли Метаданные.WSСсылки.Содержит(ОбъектМетаданных) Тогда + Возврат "WSСсылки"; + + ИначеЕсли Метаданные.Стили.Содержит(ОбъектМетаданных) Тогда + Возврат "Стили"; + + ИначеЕсли Метаданные.Языки.Содержит(ОбъектМетаданных) Тогда + Возврат "Языки"; + Иначе Возврат ""; @@ -3545,14 +3686,14 @@ КонецФункции -// Проверяет, является ли объект группой элементов. +// Проверяет, является ли элемент справочника или плана видов характеристик группой элементов. // // Параметры: -// Объект - ЛюбаяСсылка -// - Объект - проверяемый объект. +// Объект - СправочникСсылка, ПланВидовХарактеристикСсылка +// - СправочникОбъект, ПланВидовХарактеристикОбъект - проверяемый объект. // // Возвращаемое значение: -// Булево - Истина, если является. +// Булево // Функция ОбъектЯвляетсяГруппой(Объект) Экспорт @@ -3621,8 +3762,9 @@ // или неподдерживаемого объекта метаданных. // // Возвращаемое значение: -// - СправочникСсылка.ИдентификаторыОбъектовМетаданных, СправочникСсылка.ИдентификаторыОбъектовРасширений -// - Null +// СправочникСсылка.ИдентификаторыОбъектовМетаданных +// СправочникСсылка.ИдентификаторыОбъектовРасширений +// Null // // Пример: // Идентификатор = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ТипЗнч(Ссылка)); @@ -3660,17 +3802,15 @@ // - Задачи. // // Параметры: -// ОписаниеОбъектовМетаданных - Массив - со значениями типа: -// * ОбъектМетаданных - объект метаданных конфигурации; -// * Строка - полное имя объекта метаданных, которое можно использовать -// в функции Метаданные.НайтиПоПолномуИмени; -// * Тип - тип - который можно использовать в функции Метаданные.НайтиПоТипу. -// +// ОписаниеОбъектовМетаданных - Массив из ОбъектМетаданных - объекты метаданных конфигурации; +// - Массив из Строка - полные имена объектов метаданных, которые можно использовать +// в функции Метаданные.НайтиПоПолномуИмени; +// - Массив из Тип - типы, которые можно использовать в функции Метаданные.НайтиПоТипу. // ВызыватьИсключение - Булево - если Ложь, то несуществующие и неподдерживаемые объекты метаданных // будут пропущены в возвращаемом значении. // // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - Строка - полное имя указанного объекта метаданных. // * Значение - СправочникСсылка.ИдентификаторыОбъектовМетаданных // - СправочникСсылка.ИдентификаторыОбъектовРасширений - найденный идентификатор. @@ -3732,7 +3872,7 @@ // Null или Неопределено вместо вызова исключения. // // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - СправочникСсылка.ИдентификаторыОбъектовМетаданных // - СправочникСсылка.ИдентификаторыОбъектовРасширений - переданный идентификатор. // * Значение - ОбъектМетаданных - объект метаданных, соответствующий идентификатору. @@ -3806,7 +3946,7 @@ // Для остальных типов приводит тип к строке, например "Число". // // Параметры: -// Тип - тип - для которого надо получить представление. +// Тип - Тип - для которого надо получить представление. // // Возвращаемое значение: // Строка - представление типа. @@ -4689,9 +4829,10 @@ |ИЗ | РегистрСведений.КэшПрограммныхИнтерфейсов КАК ТаблицаКэша |ГДЕ - | ТаблицаКэша.Идентификатор ПОДОБНО ""%" + ПодстрокаПоиска + "%"" + | ТаблицаКэша.Идентификатор ПОДОБНО ""%ПодстрокаПоиска%"" | СПЕЦСИМВОЛ ""~"""; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ПодстрокаПоиска", ПодстрокаПоиска); Запрос = Новый Запрос(ТекстЗапроса); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); @@ -4745,9 +4886,9 @@ // Данные - Произвольный - данные помещаемые в безопасное хранилище. Неопределенно - удаляет все данные. // Для удаления данных по ключу следует использовать процедуру УдалитьДанныеИзБезопасногоХранилища. // Ключ - Строка - ключ сохраняемых настроек, по умолчанию "Пароль". -// Ключ должен соответствовать правилам, установленным для идентификаторов: -// * Первым символом ключа должна быть буква или символ подчеркивания (_). -// * Каждый из последующих символов может быть буквой, цифрой или символом подчеркивания (_). +// Ключ должен соответствовать правилам имен идентификаторов: +// 1. Первым символом ключа должна быть буква или символ подчеркивания (_). +// 2. Каждый из последующих символов может быть буквой, цифрой или символом подчеркивания (_). // // Пример: // Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) @@ -4821,7 +4962,7 @@ // ОбщиеДанные - Булево - Истина, если требуется в модели сервиса получить данные из общих данных в разделенном режиме. // // Возвращаемое значение: -// Произвольный, Структура, Неопределенно - данные из безопасного хранилища. Если указан один ключ, +// Произвольный, Структура, Неопределено - данные из безопасного хранилища. Если указан один ключ, // то возвращается его значение, иначе структура. // Если данные отсутствуют - Неопределенно. // @@ -4847,18 +4988,16 @@ |параметр должен содержать ссылку; передано значение: %3 (тип %4).'"), "Владелец", "ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища", Владелец, ТипЗнч(Владелец))); - Если РазделениеВключено() - И ДоступноИспользованиеРазделенныхДанных() Тогда + Если РазделениеВключено() И ДоступноИспользованиеРазделенныхДанных() Тогда Если ОбщиеДанные = Истина Тогда - ИмяБезопасноеХранилищеДанных = "БезопасноеХранилищеДанных"; + ИмяБезопасногоХранилищаДанных = "БезопасноеХранилищеДанных"; Иначе - ИмяБезопасноеХранилищеДанных = "БезопасноеХранилищеДанныхОбластейДанных"; + ИмяБезопасногоХранилищаДанных = "БезопасноеХранилищеДанныхОбластейДанных"; КонецЕсли; Иначе - ИмяБезопасноеХранилищеДанных = "БезопасноеХранилищеДанных"; - + ИмяБезопасногоХранилищаДанных = "БезопасноеХранилищеДанных"; КонецЕсли; - Результат = ДанныеИзБезопасногоХранилища(Владелец, ИмяБезопасноеХранилищеДанных, Ключи); + Результат = ДанныеИзБезопасногоХранилища(Владелец, ИмяБезопасногоХранилищаДанных, Ключи); Если Результат <> Неопределено И Результат.Количество() = 1 Тогда Возврат ?(Результат.Свойство(Ключи), Результат[Ключи], Неопределено); @@ -5322,7 +5461,7 @@ // окончания обновления ИБ, тогда требуется прекратить выполнение обработчика. // // Параметры: -// РегламентноеЗадание - ОбъектМетаданных.РегламентноеЗадание - регламентное задание, +// РегламентноеЗадание - ОбъектМетаданныхРегламентноеЗадание - регламентное задание, // из которого был вызван данный метод. Необходимо передавать для проверки доступности // по функциональным опциям. // @@ -5551,7 +5690,7 @@ // ПолноеИмяМакета - Строка - полное имя макета конфигурации с ZIP-архивом. // // Возвращаемое значение: -// AddIn, Неопределено - экземпляр объекта внешней компоненты или Неопределено, если не удалось создать. +// ОбъектВнешнейКомпоненты, Неопределено - экземпляр объекта внешней компоненты или Неопределено, если не удалось создать. // // Пример: // @@ -5707,7 +5846,7 @@ // * Текст - Строка - текст запроса. // * Параметры - Структура - параметры запроса. // -Функция ЗапросВСтрокуXML(Запрос) Экспорт +Функция ЗапросВСтрокуXML(Запрос) Экспорт // АПК:299 Структура = Новый Структура("Текст, Параметры"); ЗаполнитьЗначенияСвойств(Структура, Запрос); Возврат ЗначениеВСтрокуXML(Структура); @@ -5772,10 +5911,10 @@ // * Ссылка - ЛюбаяСсылка - проверяемая ссылка. // * Данные - ЛюбаяСсылка - место использования. // * Метаданные - ОбъектМетаданных - метаданные места использования. -// ИсключенияПоискаСсылок - см. ИсключениеПоискаСсылок. +// ИсключенияПоискаСсылок - см. ОбщегоНазначения.ИсключениеПоискаСсылок. // // Возвращаемое значение: -// - Булево +// Булево // Функция ЭтоСлужебнаяСвязьДанных(МестоИспользования, ИсключенияПоискаСсылок) Экспорт @@ -5840,6 +5979,25 @@ КонецФункции +Функция СтрокаВВидеНСтр(Знач ПроверяемаяСтрока) Экспорт + + ПроверяемаяСтрока = СтрЗаменить(ПроверяемаяСтрока, " ", ""); + + ВариантыСовпадений = Новый Массив; + Для каждого Язык Из Метаданные.Языки Цикл + ВариантыСовпадений.Добавить(Язык.КодЯзыка + "="); + КонецЦикла; + + Для каждого ВариантСовпадения Из ВариантыСовпадений Цикл + Если СтрНайти(ПроверяемаяСтрока, ВариантСовпадения) > 0 Тогда + Возврат Истина; + КонецЕсли; + КонецЦикла; + + Возврат Ложь; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -5987,7 +6145,6 @@ Возврат Результат; КонецФункции - // Параметры: // ТаблицаПоиска - см. МестаИспользования // @@ -5996,7 +6153,6 @@ // Основной цикл обработки ФильтрСсылок = Новый Структура("Ссылка, КлючЗамены"); - БылиОшибки = Результат.ЕстьОшибки; Результат.ЕстьОшибки = Ложь; ФильтрСсылок.Ссылка = Дубль; @@ -6603,7 +6759,14 @@ Функция ЗадачиПроцесса(БизнесПроцесс, ТипЗадач) - Запрос = Новый Запрос(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ВЫБРАТЬ Таб.Ссылка ИЗ %1 КАК Таб ГДЕ Таб.БизнесПроцесс = &БизнесПроцесс",ТипЗадач)); + ТекстЗапроса = "ВЫБРАТЬ + | ИмяТаблицы.Ссылка + |ИЗ + | &ИмяТаблицы КАК ИмяТаблицы + |ГДЕ + | ИмяТаблицы.БизнесПроцесс = &БизнесПроцесс"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицы", ТипЗадач); + Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("БизнесПроцесс", БизнесПроцесс); Возврат Запрос.Выполнить().Выбрать(); @@ -6871,7 +7034,7 @@ КонецПроцедуры // Параметры: -// ОбъектМетаданных - ОбъектМетаданных +// ОбъектМетаданных - ОбъектМетаданных // // Возвращаемое значение: // Массив из Структура: @@ -6968,7 +7131,7 @@ КонецФункции // Возвращаемое значение: -// Структура: +// Структура: // * СтандартныеРеквизиты - Структура // * Реквизиты - Структура // * СтандартныеТабличныеЧасти - Массив из Структура: @@ -7046,8 +7209,9 @@ ОписаниеОбъекта.Вставить("МожетБытьПроведен", Метаданные.Документы.Содержит(Мета)); Возврат ОписаниеОбъекта; КонецФункции + // Параметры: -// ОбъектМетаданных - ОбъектМетаданных +// ОбъектМетаданных - ОбъектМетаданных // // Возвращаемое значение: // Массив из Структура: @@ -7059,7 +7223,7 @@ // Функция ОписаниеЗадач(Знач Мета) - Перем ОписаниеЗадач; + ОписаниеЗадач = Неопределено; Если НЕ Метаданные.БизнесПроцессы.Содержит(Мета) Тогда Возврат ОписаниеЗадач; КонецЕсли; @@ -7132,7 +7296,9 @@ Если ТипИсточникаДанных = Тип("Строка") Тогда // Источник - имя таблицы, получаем поля запросом. - Запрос = Новый Запрос("ВЫБРАТЬ * ИЗ " + ИсточникДанных + " ГДЕ ЛОЖЬ"); + ТекстЗапроса = "ВЫБРАТЬ * ИЗ &ИмяТаблицы ГДЕ ЛОЖЬ"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицы", ИсточникДанных); + Запрос = Новый Запрос(ТекстЗапроса); ИсточникПолей = Запрос.Выполнить(); Иначе // Источник - набор записей @@ -7569,7 +7735,7 @@ КонецФункции // Параметры: -// МетаданныеРеквизита - ОбъектМетаданныхРеквизит +// МетаданныеРеквизита - ОбъектМетаданныхРеквизит // Функция ИнформацияПоРеквизиту(МетаданныеРеквизита) // ОписаниеСтандартногоРеквизита @@ -7607,15 +7773,12 @@ Возврат; КонецЕсли; - ЦентрМониторингаМенеджер = ОбщийМодуль("ЦентрМониторинга"); + МодульЦентрМониторинга = ОбщийМодуль("ЦентрМониторинга"); Для каждого ЭлементСтатистики Из Статистика Цикл - - ЦентрМониторингаМенеджер.ЗаписатьОперациюБизнесСтатистики( - "БазоваяФункциональность.ЗаменаСсылок."+ЭлементСтатистики.Ключ, ЭлементСтатистики.Значение.КоличествоЭлементов); - - ЦентрМониторингаМенеджер.ЗаписатьОперациюБизнесСтатистики( - "БазоваяФункциональность.ЗаменаСсылокКоличествоОшибок."+ЭлементСтатистики.Ключ, ЭлементСтатистики.Значение.КоличествоОшибок); - + МодульЦентрМониторинга.ЗаписатьОперациюБизнесСтатистики( + "БазоваяФункциональность.ЗаменаСсылок."+ЭлементСтатистики.Ключ, ЭлементСтатистики.Значение.КоличествоЭлементов); + МодульЦентрМониторинга.ЗаписатьОперациюБизнесСтатистики( + "БазоваяФункциональность.ЗаменаСсылокКоличествоОшибок." + ЭлементСтатистики.Ключ, ЭлементСтатистики.Значение.КоличествоОшибок); КонецЦикла; КонецПроцедуры @@ -7710,7 +7873,6 @@ ПараметрыВыполнения.Вставить("ПривилегированнаяЗапись", ПараметрыПоУмолчанию.ПривилегированнаяЗапись); ПараметрыВыполнения.Вставить("УчитыватьПрикладныеПравила", ПараметрыПоУмолчанию.УчитыватьПрикладныеПравила); ПараметрыВыполнения.Вставить("МестаЗамены", Новый Массив); - ЗаменаПарыВТранзакции = ПараметрыПоУмолчанию.ЗаменаПарыВТранзакции; // Переданные параметры обрабатываются условно для обратной совместимости. ЗначениеПараметра = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыЗамены, "СпособУдаления"); @@ -7727,11 +7889,6 @@ ПараметрыВыполнения.ВключатьБизнесЛогику = ЗначениеПараметра; КонецЕсли; - ЗначениеПараметра = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыЗамены, "ЗаменаПарыВТранзакции"); - Если ТипЗнч(ЗначениеПараметра) = Тип("Булево") Тогда - ЗаменаПарыВТранзакции = ЗначениеПараметра; - КонецЕсли; - ЗначениеПараметра = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыЗамены, "ПривилегированнаяЗапись"); Если ТипЗнч(ЗначениеПараметра) = Тип("Булево") Тогда ПараметрыВыполнения.ПривилегированнаяЗапись = ЗначениеПараметра; @@ -7949,31 +8106,6 @@ #КонецОбласти -#Область ТекущееОкружение - -Функция МинимальнаяВерсияПлатформы() - - Результат = "8.3.14.1694"; - - СистемнаяИнформация = Новый СистемнаяИнформация; - ТекущаяВерсия = ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(СистемнаяИнформация.ВерсияПриложения); - - Если ТекущаяВерсия = "8.3.15" Тогда - Результат = "8.3.15.2107"; - ИначеЕсли ТекущаяВерсия = "8.3.16" Тогда - Результат = "8.3.16.1814"; - ИначеЕсли ТекущаяВерсия = "8.3.17" Тогда - Результат = "8.3.17.1851"; - ИначеЕсли ТекущаяВерсия = "8.3.18" Тогда - Результат = "8.3.18.1208"; - КонецЕсли; - - Возврат Результат; - -КонецФункции - -#КонецОбласти - #Область Данные Функция СравниваемыеКолонки(Знач КоллекцияСтрок, Знач ИменаКолонок, Знач ИсключаяКолонки) @@ -8448,22 +8580,22 @@ #Область БезопасноеХранилище -Функция ДанныеИзБезопасногоХранилища(Владелец, ИмяБезопасноеХранилищеДанных, Ключ) +Функция ДанныеИзБезопасногоХранилища(Владелец, ИмяБезопасногоХранилищаДанных, Ключ) - Результат = Новый Структура(Ключ); - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | БезопасноеХранилищеДанных.Данные КАК Данные - |ИЗ - | РегистрСведений." + ИмяБезопасноеХранилищеДанных + " КАК БезопасноеХранилищеДанных - |ГДЕ - | БезопасноеХранилищеДанных.Владелец = &Владелец"; + ТекстЗапроса = + "ВЫБРАТЬ + | БезопасноеХранилищеДанных.Данные КАК Данные + |ИЗ + | #ИмяБезопасногоХранилищаДанных КАК БезопасноеХранилищеДанных + |ГДЕ + | БезопасноеХранилищеДанных.Владелец = &Владелец"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ИмяБезопасногоХранилищаДанных", "РегистрСведений." + ИмяБезопасногоХранилищаДанных); + Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Владелец", Владелец); РезультатЗапроса = Запрос.Выполнить().Выбрать(); + Результат = Новый Структура(Ключ); Если РезультатЗапроса.Следующий() Тогда Если ЗначениеЗаполнено(РезультатЗапроса.Данные) Тогда СохраненныеДанные = РезультатЗапроса.Данные.Получить(); @@ -8549,7 +8681,11 @@ // Имя - Строка - имя например, "Справочник", "Справочники", "Справочник.Организации". // // Возвращаемое значение: -// СправочникиМенеджер - , СправочникМенеджер, ДокументыМенеджер, ДокументМенеджер, ... +// СправочникиМенеджер +// СправочникМенеджер +// ДокументыМенеджер +// ДокументМенеджер +// ... // Функция МенеджерОбъектаПоИмени(Имя) Перем КлассОМ, ИмяОМ, Менеджер; @@ -8823,4 +8959,36 @@ #КонецОбласти +#Область ТекущееОкружение + +Функция НомерСборкиПоТекущейВерсииПлатформы(НомераСборокСтрокой) + + НомераСборок = СтрРазделить(НомераСборокСтрокой, ";", Истина); + + СборкиПоВерсиям = Новый Соответствие; + Для Каждого НомерСборки Из НомераСборок Цикл + НомерВерсии = ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(НомерСборки); + СборкиПоВерсиям.Вставить(СокрЛП(НомерВерсии), СокрЛП(НомерСборки)); + КонецЦикла; + + СистемнаяИнформация = Новый СистемнаяИнформация; + ТекущаяВерсия = ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(СистемнаяИнформация.ВерсияПриложения); + + Результат = СборкиПоВерсиям[ТекущаяВерсия]; + Если Не ЗначениеЗаполнено(Результат) Тогда + Результат = НомераСборок[0]; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция МинимальнаяВерсияПлатформы() Экспорт // АПК:581 + + Возврат "8.3.14.1694; 8.3.15.2107; 8.3.16.1814; 8.3.17.1851; 8.3.18.1208"; + +КонецФункции + +#КонецОбласти + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl index 4283fb72b..841f0905b 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl @@ -443,7 +443,7 @@ // если Ложь - снять фиксацию, если Неопределено - не изменять. // // Возвращаемое значение: -// Структура - , ФиксированнаяСтруктура, +// Структура, ФиксированнаяСтруктура, // Соответствие // ФиксированноеСоответствие // Массив @@ -829,10 +829,10 @@ // Сохраняет персональные настройки пользователя. // // Параметры: -// Настройки - Структура: -// * НапоминатьОбУстановкеРасширенияРаботыСФайлами - Булево - признак необходимости +// Настройки - Структура: +// * НапоминатьОбУстановкеРасширенияРаботыСФайлами - Булево - признак необходимости // напоминания об установке расширения. -// * ЗапрашиватьПодтверждениеПриЗавершенииПрограммы - Булево - запрашивать подтверждение по завершении работы. +// * ЗапрашиватьПодтверждениеПриЗавершенииПрограммы - Булево - запрашивать подтверждение по завершении работы. // Процедура СохранитьПерсональныеНастройки(Настройки) Экспорт @@ -932,14 +932,15 @@ // Оповещение - ОписаниеОповещения - описание оповещения о подключении со следующими параметрами: // * Результат - Структура - результат подключения компоненты: // ** Подключено - Булево - признак подключения. -// ** ПодключаемыйМодуль - AddIn - экземпляр объекта внешней компоненты; -// - ФиксированноеСоответствие - экземпляры объектов внешней компоненты, -// указанные в ПараметрыПодключения.ИдентификаторыСозданияОбъектов, -// Ключ - Идентификатор, Значение - экземпляр объекта. +// ** ПодключаемыйМодуль - ОбъектВнешнейКомпоненты - экземпляр объекта внешней компоненты; +// - ФиксированноеСоответствие из КлючИЗначение - экземпляры объектов внешней компоненты, +// указанные в ПараметрыПодключения.ИдентификаторыСозданияОбъектов: +// *** Ключ - Строка - идентификатор внешней компоненты; +// *** Значение - ОбъектВнешнейКомпоненты - экземпляр объекта. // ** ОписаниеОшибки - Строка - краткое описание ошибки. При отмене пользователем пустая строка. // * ДополнительныеПараметры - Структура - значение, которое было указано при создании объекта ОписаниеОповещения. -// Идентификатор - Строка - идентификатор объекта внешней компоненты. -// ПолноеИмяМакета - Строка - полное имя макета, используемое как местоположение компоненты. +// Идентификатор - Строка - идентификатор объекта внешней компоненты. +// ПолноеИмяМакета - Строка - полное имя макета, используемое как местоположение компоненты. // ПараметрыПодключения - Структура // - Неопределено - см. функцию ПараметрыПодключенияКомпоненты. // @@ -1258,9 +1259,6 @@ // ТекстПредупреждения - Строка - текст предупреждения о невозможности продолжения операции. // Если не указан, то выводится текст по умолчанию. // -// Возвращаемое значение: -// Булево - Истина, если расширение подключено. -// // Пример: // // Оповещение = Новый ОписаниеОповещения("ПечатьДокументаЗавершение", ЭтотОбъект); diff --git a/SSL/src/CommonModules/ОбщегоНазначенияКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияКлиентПереопределяемый/Module.bsl index b8b2031ba..c8da16331 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияКлиентПереопределяемый/Module.bsl @@ -124,9 +124,8 @@ // Параметры: // Отказ - Булево - если установить данному параметру значение Истина, то работа с программой не будет // завершена. -// Предупреждения - Массив - добавить элементы типа Структура, свойства которой описывают внешний вид предупреждения, -// а также дальнейшие действия. -// См. описание свойств в СтандартныеПодсистемыКлиент.ПредупреждениеПриЗавершенииРаботы. +// Предупреждения - Массив из см. СтандартныеПодсистемыКлиент.ПредупреждениеПриЗавершенииРаботы - +// можно добавить сведения о внешнем виде предупреждения и дальнейших действиях. // Процедура ПередЗавершениемРаботыСистемы(Отказ, Предупреждения) Экспорт diff --git a/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl index 2c8f7b820..152db6333 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl @@ -443,7 +443,7 @@ // // Параметры: // Приемник - Соответствие - коллекция, в которую будут добавляться новые значения. -// Источник - Соответствие - коллекция, из которой будут считываться пары Ключ и Значение для заполнения. +// Источник - Соответствие из КлючИЗначение - коллекция, из которой будут считываться пары Ключ и Значение для заполнения. // Заменять - Булево // - Неопределено - что делать в местах пересечения ключей источника и приемника: // Истина - заменять значения приемника (самый быстрый способ), @@ -644,11 +644,11 @@ // Получает строку, содержащую ключи структуры, разделенные символом разделителя. // // Параметры: -// Структура - Структура - структура, ключи которой преобразуются в строку. -// Разделитель - Строка - разделитель, который вставляется в строку между ключами структуры. +// Структура - Структура - структура, ключи которой преобразуются в строку. +// Разделитель - Строка - разделитель, который вставляется в строку между ключами структуры. // // Возвращаемое значение: -// Строка - строка, содержащая ключи структуры разделенные разделителем. +// Строка - строка, содержащая ключи структуры разделенные разделителем. // Функция КлючиСтруктурыВСтроку(Структура, Разделитель = ",") Экспорт @@ -669,7 +669,7 @@ // Структура - Структура // - ФиксированнаяСтруктура - объект, из которого необходимо прочитать значение ключа. // Ключ - Строка - имя свойства структуры, для которого необходимо прочитать значение. -// ЗначениеПоУмолчанию - Произвольный - необязательный. Возвращается когда в структуре нет значения по указанному +// ЗначениеПоУмолчанию - Произвольный - возвращается когда в структуре нет значения по указанному // ключу. // Для скорости рекомендуется передавать только быстро вычисляемые значения (например примитивные типы), // а инициализацию более тяжелых значений выполнять после проверки полученного значения (только если это @@ -1188,7 +1188,7 @@ // ОбластьПоискаДобавления - КоллекцияЭлементовОтбораКомпоновкиДанных - контейнер с элементами и группами отбора, // например, Список.Отбор или группа в отборе. // ИмяПоля - Строка - имя поля компоновки данных (заполняется всегда). -// ПравоеЗначение - произвольный - сравниваемое значение. +// ПравоеЗначение - Произвольный - сравниваемое значение. // ВидСравнения - ВидСравненияКомпоновкиДанных - вид сравнения. // Представление - Строка - представление элемента компоновки данных. // Использование - Булево - использование элемента. @@ -2257,7 +2257,7 @@ // Сравнивает два расписания между собой. // // Параметры: -// Расписание1 - РасписаниеРегламентногоЗадания - первое расписание. +// Расписание1 - РасписаниеРегламентногоЗадания - первое расписание. // Расписание2 - РасписаниеРегламентногоЗадания - второе расписание. // // Возвращаемое значение: @@ -2355,18 +2355,20 @@ КонецФункции // Создает объект описания защищенного соединения OpenSSL. +// См. также описание объекта ЗащищенноеСоединениеOpenSSL в синтаксис-помощнике. +// // Параметры: // СертификатКлиента - СертификатКлиентаФайл // - СертификатКлиентаWindows -// - Неопределено - см. ЗащищенноеСоединениеOpenSSL +// - Неопределено - клиентский сертификат OpenSSL. // СертификатыУдостоверяющихЦентров - СертификатыУдостоверяющихЦентровФайл // - СертификатыУдостоверяющихЦентровWindows // - СертификатыУдостоверяющихЦентровLinux // - СертификатыУдостоверяющихЦентровОС -// - Неопределено - см. ЗащищенноеСоединениеOpenSSL +// - Неопределено - сертификаты удостоверяющих центров OpenSSL. // // Возвращаемое значение: -// ЗащищенноеСоединениеOpenSSL - описание защищенного соединения. +// ЗащищенноеСоединениеOpenSSL // Функция НовоеЗащищенноеСоединение(СертификатКлиента = Неопределено, СертификатыУдостоверяющихЦентров = Неопределено) Экспорт diff --git a/SSL/src/CommonModules/ОбщегоНазначенияПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияПереопределяемый/Module.bsl index 3820417a5..245b718f8 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияПереопределяемый/Module.bsl @@ -19,11 +19,21 @@ // подтверждение при завершении работы программы не // будет запрашиваться, если явно не разрешить в // персональных настройках программы. -// * МинимальнаяВерсияПлатформы - Строка - минимальная версии платформы, требуемая для запуска программы. -// Запуск программы на версии платформы ниже указанной будет невозможен. -// Например, "8.3.6.1650". +// +// * МинимальнаяВерсияПлатформы - Строка - минимальная версии платформы, требуемая для запуска программы. +// Запуск программы на версии платформы ниже указанной будет невозможен. +// Например, "8.3.6.1650". +// Допускается указание нескольких версий платформы через точку с запятой. +// В этом случае минимальная версия платформы будет выбрана, исходя из +// фактически используемой. +// Например, "8.3.14.1694; 8.3.15.2107; 8.3.16.1791" - при запуске +// на предыдущих релизах 8.3.14 будет предложено перейти на 8.3.14.1694, +// при запуске на 8.3.15 - 8.3.15.2107, и 8.3.16 - 8.3.16.1791, соответственно. +// // * РекомендуемаяВерсияПлатформы - Строка - рекомендуемая версия платформы для запуска программы. // Например, "8.3.8.2137". +// Допускается указание нескольких версий платформы через +// точку с запятой. См. пример в параметре МинимальнаяВерсияПлатформы. // * ОтключитьИдентификаторыОбъектовМетаданных - Булево - отключает заполнение справочников ИдентификаторыОбъектовМетаданных // и ИдентификаторыОбъектовРасширений, процедуру выгрузки и загрузки в узлах РИБ. // Для частичного встраивания отдельных функций библиотеки в конфигурации без постановки на поддержку. @@ -61,15 +71,15 @@ //// //Процедура УстановкаПараметровСеанса(ИмяПараметра, УстановленныеПараметры) Экспорт // -// Если ИмяПараметра = "ТекущийПользователь" Тогда +// Если ИмяПараметра = "ТекущийПользователь" Тогда // ПараметрыСеанса.ТекущийПользователь = Значение; // УстановленныеПараметры.Добавить("ТекущийПользователь"); -// КонецЕсли; +// КонецЕсли; // //КонецПроцедуры // // Параметры: -// Обработчики - Соответствие: +// Обработчики - Соответствие из КлючИЗначение: // * Ключ - Строка - в формате "<ИмяПараметраСеанса>|<НачалоИмениПараметраСеанса*>". // Символ '*'используется в конце имени параметра сеанса и обозначает, // что один обработчик будет вызван для инициализации всех параметров сеанса @@ -168,7 +178,7 @@ // нужно создавать часть объектов или подбирать замену из существующих объектов // // Параметры: -// ПодчиненныеОбъекты - см. ОбщегоНазначения.ПодчиненныеОбъекты +// ПодчиненныеОбъекты - см. ОбщегоНазначения.ПодчиненныеОбъекты // // Пример: // СвязиПодчиненногоОбъекта = Новый Соответствие; @@ -240,8 +250,9 @@ // т.к. это приводит к рекурсии. // // Параметры: -// ОтключенныеПодсистемы - Соответствие - в ключе указывается имя отключаемой подсистемы, -// в значении - установить в Истина. +// ОтключенныеПодсистемы - Соответствие из КлючИЗначение: +// * Ключ - Строка - имя отключаемой подсистемы +// * Значение - Булево - Истина // Процедура ПриОпределенииОтключенныхПодсистем(ОтключенныеПодсистемы) Экспорт diff --git a/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиент/Module.bsl index 72518468b..2c7558a65 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиент/Module.bsl @@ -1010,7 +1010,9 @@ // Определяет соответствие между командами расчета показателей и показателями. // // Возвращаемое значение: -// Соответствие - Ключ - имя команды, Значение - имя показателя. +// Соответствие из КлючИЗначение: +// * Ключ - Строка - имя команды; +// * Значение - Строка - имя показателя. // Функция КомандыПоказателей() diff --git a/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиентСервер/Module.bsl index 8d90a40b7..e976f7917 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияСлужебныйКлиентСервер/Module.bsl @@ -628,7 +628,7 @@ // // Параметры: // ПолеТабличногоДокумента - ПолеФормы -// - ПолеТабличногоДокумента - документ, +// - ПолеТабличногоДокумента - Документ // значения ячеек которого участвуют в расчете. // // Возвращаемое значение: diff --git a/SSL/src/CommonModules/ОрганизацииПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОрганизацииПереопределяемый/Module.bsl index bcfd1c599..ff23ec83d 100644 --- a/SSL/src/CommonModules/ОрганизацииПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОрганизацииПереопределяемый/Module.bsl @@ -21,6 +21,8 @@ // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. // РегистрационныеДанные - см. ОрганизацииСервер.РегистрационныеДанныеОрганизации +// КодЯзыка - см. ОрганизацииСервер.СведенияОбОрганизации.КодЯзыка +// // Пример: // СведенияОбОрганизации = ОрганизацииСервер.СведенияОбОрганизации(Организация); // @@ -75,7 +77,7 @@ // // КонецЕсли; // -Процедура ПриОпределенииРегистрационныхДанныхОрганизации(Организация, Поля, Дата, РегистрационныеДанные) Экспорт +Процедура ПриОпределенииРегистрационныхДанныхОрганизации(Организация, Поля, Дата, РегистрационныеДанные, КодЯзыка) Экспорт @@ -92,9 +94,10 @@ // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. // ДополнительныеСведения - см. ОрганизацииСервер.ДополнительныеСведенияОрганизации. +// КодЯзыка - см. ОрганизацииСервер.СведенияОбОрганизации.КодЯзыка // -Процедура ПриОпределенииДополнительныхСведенийОрганизации(Организация, Поля, Дата, ДополнительныеСведения) Экспорт - +Процедура ПриОпределенииДополнительныхСведенийОрганизации(Организация, Поля, Дата, ДополнительныеСведения, КодЯзыка) Экспорт + КонецПроцедуры @@ -110,8 +113,9 @@ // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. // КонтактнаяИнформация - см. ОрганизацииСервер.КонтактнаяИнформацияОрганизации. +// КодЯзыка - см. ОрганизацииСервер.СведенияОбОрганизации.КодЯзыка // -Процедура ПриОпределенииКонтактнойИнформацииОрганизации(Организация, Поля, Дата, КонтактнаяИнформация) Экспорт +Процедура ПриОпределенииКонтактнойИнформацииОрганизации(Организация, Поля, Дата, КонтактнаяИнформация, КодЯзыка) Экспорт КонецПроцедуры @@ -127,8 +131,9 @@ // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. // БанковскийСчет - см. ОрганизацииСервер.БанковскийСчетОрганизации. +// КодЯзыка - см. ОрганизацииСервер.СведенияОбОрганизации.КодЯзыка // -Процедура ПриОпределенииБанковскогоСчетаОрганизации(Организация, Поля, Дата, БанковскийСчет) Экспорт +Процедура ПриОпределенииБанковскогоСчетаОрганизации(Организация, Поля, Дата, БанковскийСчет, КодЯзыка) Экспорт КонецПроцедуры @@ -147,8 +152,9 @@ // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. // РегистрационныеДанные - см. ОрганизацииСервер.РегистрационныеДанныеОбособленногоПодразделения. +// КодЯзыка - см. ОрганизацииСервер.СведенияОбОрганизации.КодЯзыка // -Процедура ПриОпределенииРегистрационныхДанныхОбособленногоПодразделения(Организация, Поля, Дата, РегистрационныеДанные) Экспорт +Процедура ПриОпределенииРегистрационныхДанныхОбособленногоПодразделения(Организация, Поля, Дата, РегистрационныеДанные, КодЯзыка) Экспорт КонецПроцедуры @@ -163,8 +169,9 @@ // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. // КонтактнаяИнформация - см. ОрганизацииСервер.КонтактнаяИнформацияОбособленногоПодразделения. +// КодЯзыка - см. ОрганизацииСервер.СведенияОбОрганизации.КодЯзыка // -Процедура ПриОпределенииКонтактнойИнформацииОбособленногоПодразделения(Организация, Поля, Дата, КонтактнаяИнформация) Экспорт +Процедура ПриОпределенииКонтактнойИнформацииОбособленногоПодразделения(Организация, Поля, Дата, КонтактнаяИнформация, КодЯзыка) Экспорт КонецПроцедуры @@ -184,8 +191,9 @@ // то возвращается значение на текущую дату. // РегистрационныеДанные - Структура - // см. ОрганизацииСервер.РегистрационныеДанныеИностраннойОрганизации. +// КодЯзыка - см. ОрганизацииСервер.СведенияОбОрганизации.КодЯзыка // -Процедура ПриОпределенииРегистрационныхДанныхИностраннойОрганизации(Организация, Поля, Дата, РегистрационныеДанные) Экспорт +Процедура ПриОпределенииРегистрационныхДанныхИностраннойОрганизации(Организация, Поля, Дата, РегистрационныеДанные, КодЯзыка) Экспорт КонецПроцедуры @@ -201,8 +209,9 @@ // то возвращается значение на текущую дату. // КонтактнаяИнформация - Структура - // см. ОрганизацииСервер.КонтактнаяИнформацияИностраннойОрганизации. +// КодЯзыка - см. ОрганизацииСервер.СведенияОбОрганизации.КодЯзыка // -Процедура ПриОпределенииКонтактнойИнформацииИностраннойОрганизации(Организация, Поля, Дата, КонтактнаяИнформация) Экспорт +Процедура ПриОпределенииКонтактнойИнформацииИностраннойОрганизации(Организация, Поля, Дата, КонтактнаяИнформация, КодЯзыка) Экспорт КонецПроцедуры @@ -221,8 +230,9 @@ // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. // РегистрационныеДанные - см. ОрганизацииСервер.РегистрационныеДанныеИндивидуальногоПредпринимателя. +// КодЯзыка - см. ОрганизацииСервер.СведенияОбОрганизации.КодЯзыка // -Процедура ПриОпределенииРегистрационныхДанныхИндивидуальногоПредпринимателя(Организация, Поля, Дата, РегистрационныеДанные) Экспорт +Процедура ПриОпределенииРегистрационныхДанныхИндивидуальногоПредпринимателя(Организация, Поля, Дата, РегистрационныеДанные, КодЯзыка) Экспорт КонецПроцедуры @@ -237,8 +247,9 @@ // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. // КонтактнаяИнформация - см. ОрганизацииСервер.КонтактнаяИнформацияИндивидуальногоПредпринимателя. +// КодЯзыка - см. ОрганизацииСервер.СведенияОбОрганизации.КодЯзыка // -Процедура ПриОпределенииКонтактнойИнформацииИндивидуальногоПредпринимателя(Организация, Поля, Дата, КонтактнаяИнформация) Экспорт +Процедура ПриОпределенииКонтактнойИнформацииИндивидуальногоПредпринимателя(Организация, Поля, Дата, КонтактнаяИнформация, КодЯзыка) Экспорт КонецПроцедуры @@ -257,8 +268,9 @@ // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. // РегистрационныеДанные - см. ОрганизацииСервер.РегистрационныеДанныеРуководителяОрганизации. +// КодЯзыка - см. ОрганизацииСервер.СведенияОбОрганизации.КодЯзыка // -Процедура ПриОпределенииРегистрационныхДанныхРуководителяОрганизации(Организация, Поля, Дата, РегистрационныеДанные) Экспорт +Процедура ПриОпределенииРегистрационныхДанныхРуководителяОрганизации(Организация, Поля, Дата, РегистрационныеДанные, КодЯзыка) Экспорт КонецПроцедуры @@ -274,8 +286,9 @@ // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. // КонтактнаяИнформация - см. ОрганизацииСервер.КонтактнаяИнформацияРуководителяОрганизации. +// КодЯзыка - см. ОрганизацииСервер.СведенияОбОрганизации.КодЯзыка // -Процедура ПриОпределенииКонтактнойИнформацииРуководителяОрганизации(Организация, Поля, Дата, КонтактнаяИнформация) Экспорт +Процедура ПриОпределенииКонтактнойИнформацииРуководителяОрганизации(Организация, Поля, Дата, КонтактнаяИнформация, КодЯзыка) Экспорт КонецПроцедуры @@ -294,8 +307,9 @@ // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. // РегистрационныеДанные - см. ОрганизацииСервер.РегистрационныеДанныеГлавногоБухгалтера. +// КодЯзыка - см. ОрганизацииСервер.СведенияОбОрганизации.КодЯзыка // -Процедура ПриОпределенииРегистрационныхДанныхГлавногоБухгалтера(Организация, Поля, Дата, РегистрационныеДанные) Экспорт +Процедура ПриОпределенииРегистрационныхДанныхГлавногоБухгалтера(Организация, Поля, Дата, РегистрационныеДанные, КодЯзыка) Экспорт КонецПроцедуры @@ -310,8 +324,9 @@ // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. // КонтактнаяИнформация - см. ОрганизацииСервер.КонтактнаяИнформацияГлавногоБухгалтера. +// КодЯзыка - см. ОрганизацииСервер.СведенияОбОрганизации.КодЯзыка // -Процедура ПриОпределенииКонтактнойИнформацииГлавногоБухгалтера(Организация, Поля, Дата, КонтактнаяИнформация) Экспорт +Процедура ПриОпределенииКонтактнойИнформацииГлавногоБухгалтера(Организация, Поля, Дата, КонтактнаяИнформация, КодЯзыка) Экспорт КонецПроцедуры @@ -330,8 +345,9 @@ // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. // РегистрационныеДанные - см. ОрганизацииСервер.РегистрационныеДанныеУполномоченногоПредставителя. +// КодЯзыка - см. ОрганизацииСервер.СведенияОбОрганизации.КодЯзыка // -Процедура ПриОпределенииРегистрационныхДанныхУполномоченногоПредставителя(Организация, Поля, Дата, РегистрационныеДанные) Экспорт +Процедура ПриОпределенииРегистрационныхДанныхУполномоченногоПредставителя(Организация, Поля, Дата, РегистрационныеДанные, КодЯзыка) Экспорт КонецПроцедуры @@ -346,8 +362,9 @@ // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. // КонтактнаяИнформация - см. ОрганизацииСервер.КонтактнаяИнформацияУполномоченногоПредставителя. +// КодЯзыка - см. ОрганизацииСервер.СведенияОбОрганизации.КодЯзыка // -Процедура ПриОпределенииКонтактнойИнформацииУполномоченногоПредставителя(Организация, Поля, Дата, КонтактнаяИнформация) Экспорт +Процедура ПриОпределенииКонтактнойИнформацииУполномоченногоПредставителя(Организация, Поля, Дата, КонтактнаяИнформация, КодЯзыка) Экспорт КонецПроцедуры diff --git a/SSL/src/CommonModules/ОрганизацииСервер/Module.bsl b/SSL/src/CommonModules/ОрганизацииСервер/Module.bsl index 7c8c98cb3..5c2e88b8a 100644 --- a/SSL/src/CommonModules/ОрганизацииСервер/Module.bsl +++ b/SSL/src/CommonModules/ОрганизацииСервер/Module.bsl @@ -21,6 +21,11 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - Строка - язык, на котором требуется получить сведения. +// Состоит из кода языка по ISO 639-1 и, опционально, кода страны по ISO 3166-1, разделенных +// символом подчеркивания. Примеры: "en", "en_US", "en_GB", "ru", "ru_RU". +// Значение по умолчанию - язык конфигурации. +// // Возвращаемое значение: // Структура - // см. ОрганизацииСервер.РегистрационныеДанныеОрганизации @@ -41,25 +46,25 @@ // Пример: // СведенияОбОрганизации = ОрганизацииСервер.СведенияОбОрганизации(Организация); // -Функция СведенияОбОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция СведенияОбОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт ОбщиеСведения = Новый Массив; - ОбщиеСведения.Добавить(РегистрационныеДанныеОрганизации(Организация, Поля, Дата)); - ОбщиеСведения.Добавить(ДополнительныеСведенияОрганизации(Организация, Поля, Дата)); - ОбщиеСведения.Добавить(КонтактнаяИнформацияОрганизации(Организация, Поля, Дата)); - ОбщиеСведения.Добавить(БанковскийСчетОрганизации(Организация, Поля, Дата)); - ОбщиеСведения.Добавить(РегистрационныеДанныеОбособленногоПодразделения(Организация, Поля, Дата)); - ОбщиеСведения.Добавить(КонтактнаяИнформацияОбособленногоПодразделения(Организация, Поля, Дата)); - ОбщиеСведения.Добавить(РегистрационныеДанныеОтделенияИностраннойОрганизации(Организация, Поля, Дата)); - ОбщиеСведения.Добавить(КонтактнаяИнформацияОтделенияИностраннойОрганизации(Организация, Поля, Дата)); - ОбщиеСведения.Добавить(РегистрационныеДанныеИндивидуальногоПредпринимателя(Организация, Поля, Дата)); - ОбщиеСведения.Добавить(КонтактнаяИнформацияИндивидуальногоПредпринимателя(Организация, Поля, Дата)); - ОбщиеСведения.Добавить(РегистрационныеДанныеРуководителяОрганизации(Организация, Поля, Дата)); - ОбщиеСведения.Добавить(КонтактнаяИнформацияРуководителяОрганизации(Организация, Поля, Дата)); - ОбщиеСведения.Добавить(РегистрационныеДанныеГлавногоБухгалтера(Организация, Поля, Дата)); - ОбщиеСведения.Добавить(КонтактнаяИнформацияГлавногоБухгалтера(Организация, Поля, Дата)); - ОбщиеСведения.Добавить(РегистрационныеДанныеУполномоченногоПредставителя(Организация, Поля, Дата)); - ОбщиеСведения.Добавить(КонтактнаяИнформацияУполномоченногоПредставителя(Организация, Поля, Дата)); + ОбщиеСведения.Добавить(РегистрационныеДанныеОрганизации(Организация, Поля, Дата, КодЯзыка)); + ОбщиеСведения.Добавить(ДополнительныеСведенияОрганизации(Организация, Поля, Дата, КодЯзыка)); + ОбщиеСведения.Добавить(КонтактнаяИнформацияОрганизации(Организация, Поля, Дата, КодЯзыка)); + ОбщиеСведения.Добавить(БанковскийСчетОрганизации(Организация, Поля, Дата, КодЯзыка)); + ОбщиеСведения.Добавить(РегистрационныеДанныеОбособленногоПодразделения(Организация, Поля, Дата, КодЯзыка)); + ОбщиеСведения.Добавить(КонтактнаяИнформацияОбособленногоПодразделения(Организация, Поля, Дата, КодЯзыка)); + ОбщиеСведения.Добавить(РегистрационныеДанныеОтделенияИностраннойОрганизации(Организация, Поля, Дата, КодЯзыка)); + ОбщиеСведения.Добавить(КонтактнаяИнформацияОтделенияИностраннойОрганизации(Организация, Поля, Дата, КодЯзыка)); + ОбщиеСведения.Добавить(РегистрационныеДанныеИндивидуальногоПредпринимателя(Организация, Поля, Дата, КодЯзыка)); + ОбщиеСведения.Добавить(КонтактнаяИнформацияИндивидуальногоПредпринимателя(Организация, Поля, Дата, КодЯзыка)); + ОбщиеСведения.Добавить(РегистрационныеДанныеРуководителяОрганизации(Организация, Поля, Дата, КодЯзыка)); + ОбщиеСведения.Добавить(КонтактнаяИнформацияРуководителяОрганизации(Организация, Поля, Дата, КодЯзыка)); + ОбщиеСведения.Добавить(РегистрационныеДанныеГлавногоБухгалтера(Организация, Поля, Дата, КодЯзыка)); + ОбщиеСведения.Добавить(КонтактнаяИнформацияГлавногоБухгалтера(Организация, Поля, Дата, КодЯзыка)); + ОбщиеСведения.Добавить(РегистрационныеДанныеУполномоченногоПредставителя(Организация, Поля, Дата, КодЯзыка)); + ОбщиеСведения.Добавить(КонтактнаяИнформацияУполномоченногоПредставителя(Организация, Поля, Дата, КодЯзыка)); СведенияОбОрганизации = Новый Структура(); @@ -93,8 +98,9 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - см. СведенияОбОрганизации.КодЯзыка // Возвращаемое значение: -// Структура - содержит имена (ключи) и значения затребованных полей: +// Структура - содержит значения затребованных полей: // * ДатаРегистрации - Дата - дата регистрации юридического лица. // * ИНН - Строка - ИНН организации. // * КодНалоговогоОргана - Строка - код налогового органа. @@ -125,10 +131,10 @@ // * ЭтоФизическоеЛицо - Булево - признак что это физическое лицо. // * ЭтоЮридическоеЛицо - Булево - признак что это юридическое лицо. // -Функция РегистрационныеДанныеОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция РегистрационныеДанныеОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт РегистрационныеДанные = Новый Структура(); - ОрганизацииПереопределяемый.ПриОпределенииРегистрационныхДанныхОрганизации(Организация, Поля, Дата, РегистрационныеДанные); + ОрганизацииПереопределяемый.ПриОпределенииРегистрационныхДанныхОрганизации(Организация, Поля, Дата, РегистрационныеДанные, КодЯзыка); Возврат РегистрационныеДанные; @@ -145,15 +151,17 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - см. СведенияОбОрганизации.КодЯзыка +// // Возвращаемое значение: -// Структура - содержит имена (ключи) и значения затребованных полей: -// * АдресЭлектроннойПочтыОрганизации - Строка - email организации. -// * АдресОрганизацииФакт - Строка - адрес организации. -// * АдресОрганизацииФактXML - Строка - адрес организации xml. -// * АдресОрганизацииФактJSON - Строка - адрес организации json. -// * АдресИностраннойОрганизации - Строка - адрес иностранной организации. -// * АдресИностраннойОрганизацииXML - Строка - адрес иностранной организации. -// * АдресИностраннойОрганизацииJSON - Строка - адрес иностранной организации. +// Структура - содержит значения затребованных полей: +// * АдресЭлектроннойПочтыОрганизации - Строка - email организации. +// * АдресОрганизацииФакт - Строка - адрес организации. +// * АдресОрганизацииФактXML - Строка - адрес организации xml. +// * АдресОрганизацииФактJSON - Строка - адрес организации json. +// * АдресИностраннойОрганизации - Строка - адрес иностранной организации. +// * АдресИностраннойОрганизацииXML - Строка - адрес иностранной организации. +// * АдресИностраннойОрганизацииJSON - Строка - адрес иностранной организации. // * ВидПлательщикаСтраховыхВзносов - Строка - вид плательщика страховых взносов. // * ГоловнаяОрганизацияКПП - Строка - КПП головная организация. // * ГоловнаяОрганизацияНаименование - Строка - наименование головной организации. @@ -182,22 +190,24 @@ // * БухгалтерИмя - Строка - имя бухгалтера. // * БухгалтерОтчество - Строка - отчество бухгалтера. // * БухгалтерФамилия - Строка - фамилия бухгалтера. -// * БухгалтерАдресЭлектроннойПочты - Строка - адрес электронной почты бухгалтера +// * БухгалтерАдресЭлектроннойПочты - Строка - адрес электронной почты бухгалтера. // * РуководительДолжность - Строка - должность руководителя. // * РуководительИмя - Строка - имя руководителя. // * РуководительОтчество - Строка - отчество руководителя. // * РуководительФамилия - Строка - фамилия руководителя. -// * РуководительАдресЭлектроннойПочты - Строка - адрес электронной почты руководителя. +// * РуководительАдресЭлектроннойПочты - Строка - адрес электронной почты руководителя. // * СистемыНалогообложения - Строка - система налогообложения. // * СтраховойТариф - Число - страховой тариф. // * ТелефонОрганизации - Строка - телефон организации. // * ФаксОрганизации - Строка - факс организации. // * ШифрСтрахователяФСС - Строка - шифр страхователя ФСС. +// * ЭмблемаОрганизацииДляШтампаЭлектроннойПодписи - Картинка - эмблема организации для штампа электронной +// подписи согласно ГОСТ Р 7.0.97-2016. // -Функция ДополнительныеСведенияОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция ДополнительныеСведенияОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт ДополнительныеСведения = Новый Структура(); - ОрганизацииПереопределяемый.ПриОпределенииДополнительныхСведенийОрганизации(Организация, Поля, Дата, ДополнительныеСведения); + ОрганизацииПереопределяемый.ПриОпределенииДополнительныхСведенийОрганизации(Организация, Поля, Дата, ДополнительныеСведения, КодЯзыка); Возврат ДополнительныеСведения; @@ -214,8 +224,10 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - см. СведенияОбОрганизации.КодЯзыка +// // Возвращаемое значение: -// Структура - содержит имена (ключи) и значения затребованных полей: +// Структура - содержит значения затребованных полей: // * АдресОрганизации - Строка - адрес организации. // * АдресОрганизацииXML - Строка - адрес организации xml. // * АдресОрганизацииJSON - Строка - адрес организации json. @@ -230,10 +242,10 @@ // * АдресОрганизацииРегион - Строка - регион. // * АдресОрганизацииУлица - Строка - улица. // -Функция КонтактнаяИнформацияОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция КонтактнаяИнформацияОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт КонтактнаяИнформация = Новый Структура(); - ОрганизацииПереопределяемый.ПриОпределенииКонтактнойИнформацииОрганизации(Организация, Поля, Дата, КонтактнаяИнформация); + ОрганизацииПереопределяемый.ПриОпределенииКонтактнойИнформацииОрганизации(Организация, Поля, Дата, КонтактнаяИнформация, КодЯзыка); Возврат КонтактнаяИнформация; @@ -250,17 +262,19 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - см. СведенияОбОрганизации.КодЯзыка +// // Возвращаемое значение: -// Структура - содержит имена (ключи) и значения затребованных полей: +// Структура - содержит значения затребованных полей: // * БанковскийСчетБанк - Строка - банк. // * БанковскийСчетБИК - Строка - БИК. -// * БанковскийСчетКоррСчет - Строка - корр. счет. +// * БанковскийСчетКоррСчет - Строка - корреспондентский счет. // * БанковскийСчетНомерСчета - Строка - номер счета. // -Функция БанковскийСчетОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция БанковскийСчетОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт БанковскийСчет = Новый Структура(); - ОрганизацииПереопределяемый.ПриОпределенииБанковскогоСчетаОрганизации(Организация, Поля, Дата, БанковскийСчет); + ОрганизацииПереопределяемый.ПриОпределенииБанковскогоСчетаОрганизации(Организация, Поля, Дата, БанковскийСчет, КодЯзыка); Возврат БанковскийСчет; @@ -281,21 +295,22 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - см. СведенияОбОрганизации.КодЯзыка +// // Возвращаемое значение: // Структура - содержит имена (ключи) и значения затребованных полей: // * КППОбособленногоПодразделения - Строка - КПП обособленного подразделения. // * НаименованиеОбособленногоПодразделенияПолное - Строка - наименование обособленного подразделения. // -Функция РегистрационныеДанныеОбособленногоПодразделения(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция РегистрационныеДанныеОбособленногоПодразделения(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт РегистрационныеДанные = Новый Структура(); - ОрганизацииПереопределяемый.ПриОпределенииРегистрационныхДанныхОбособленногоПодразделения(Организация, Поля, Дата, РегистрационныеДанные); + ОрганизацииПереопределяемый.ПриОпределенииРегистрационныхДанныхОбособленногоПодразделения(Организация, Поля, Дата, РегистрационныеДанные, КодЯзыка); Возврат РегистрационныеДанные; КонецФункции - // Возвращает структуру, содержащую сведения о контактной информации обособленного подразделения. // // Параметры: @@ -307,6 +322,8 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - см. СведенияОбОрганизации.КодЯзыка +// // Возвращаемое значение: // Структура - содержит имена (ключи) и значения затребованных полей: // * АдресОбособленногоПодразделения - Строка - адрес обособленного подразделения. @@ -323,10 +340,10 @@ // * АдресОбособленногоПодразделенияРегион - Строка - регион. // * АдресОбособленногоПодразделенияУлица - Строка - улица. // -Функция КонтактнаяИнформацияОбособленногоПодразделения(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция КонтактнаяИнформацияОбособленногоПодразделения(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт КонтактнаяИнформация = Новый Структура(); - ОрганизацииПереопределяемый.ПриОпределенииКонтактнойИнформацииОбособленногоПодразделения(Организация, Поля, Дата, КонтактнаяИнформация); + ОрганизацииПереопределяемый.ПриОпределенииКонтактнойИнформацииОбособленногоПодразделения(Организация, Поля, Дата, КонтактнаяИнформация, КодЯзыка); Возврат КонтактнаяИнформация; @@ -347,22 +364,23 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - см. СведенияОбОрганизации.КодЯзыка +// // Возвращаемое значение: // Структура - содержит имена (ключи) и значения затребованных полей: // * ОтделениеИностраннойОрганизацииИНН - Строка - ИНН отделения иностранной организации. // * ОтделениеИностраннойОрганизацииКПП - Строка - КПП отделения иностранной организации. // * ОтделениеИностраннойОрганизацииНаименование - Строка - наименование. // -Функция РегистрационныеДанныеОтделенияИностраннойОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция РегистрационныеДанныеОтделенияИностраннойОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт РегистрационныеДанные = Новый Структура(); - ОрганизацииПереопределяемый.ПриОпределенииРегистрационныхДанныхОбособленногоПодразделения(Организация, Поля, Дата, РегистрационныеДанные); + ОрганизацииПереопределяемый.ПриОпределенииРегистрационныхДанныхОбособленногоПодразделения(Организация, Поля, Дата, РегистрационныеДанные, КодЯзыка); Возврат РегистрационныеДанные; КонецФункции - // Возвращает структуру, содержащую сведения о контактной информации иностранной организации. // // Параметры: @@ -374,6 +392,8 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - см. СведенияОбОрганизации.КодЯзыка +// // Возвращаемое значение: // Структура - содержит имена (ключи) и значения затребованных полей: // * ОтделениеИностраннойОрганизацииАдресРФ - Строка - адрес иностранной организации. @@ -390,10 +410,10 @@ // * ОтделениеИностраннойОрганизацииАдресРФРегион - Строка - регион. // * ОтделениеИностраннойОрганизацииАдресРФУлица - Строка - улица. // -Функция КонтактнаяИнформацияОтделенияИностраннойОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция КонтактнаяИнформацияОтделенияИностраннойОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт КонтактнаяИнформация = Новый Структура(); - ОрганизацииПереопределяемый.ПриОпределенииКонтактнойИнформацииИностраннойОрганизации(Организация, Поля, Дата, КонтактнаяИнформация); + ОрганизацииПереопределяемый.ПриОпределенииКонтактнойИнформацииИностраннойОрганизации(Организация, Поля, Дата, КонтактнаяИнформация, КодЯзыка); Возврат КонтактнаяИнформация; @@ -414,6 +434,8 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - см. СведенияОбОрганизации.КодЯзыка +// // Возвращаемое значение: // Структура - содержит имена (ключи) и значения затребованных полей: // * ИПВидДокументаУдостоверенияЛичности - Строка - вид документа ИП. @@ -437,10 +459,10 @@ // * ФизическоеЛицоНаименование - Строка - наименование физлица. // * ЭтоИП - Булево - признак, что это индивидуальный предприниматель. // -Функция РегистрационныеДанныеИндивидуальногоПредпринимателя(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция РегистрационныеДанныеИндивидуальногоПредпринимателя(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт РегистрационныеДанные = Новый Структура(); - ОрганизацииПереопределяемый.ПриОпределенииРегистрационныхДанныхИндивидуальногоПредпринимателя(Организация, Поля, Дата, РегистрационныеДанные); + ОрганизацииПереопределяемый.ПриОпределенииРегистрационныхДанныхИндивидуальногоПредпринимателя(Организация, Поля, Дата, РегистрационныеДанные, КодЯзыка); Возврат РегистрационныеДанные; @@ -458,6 +480,8 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - см. СведенияОбОрганизации.КодЯзыка +// // Возвращаемое значение: // Структура - содержит имена (ключи) и значения затребованных полей: // * АдресМестаЖительства - Строка - адрес места жительства. @@ -479,10 +503,10 @@ // * ТелефонОрганизации - Строка - телефон организации. // * УлицаМестаЖительства - Строка - улица. // -Функция КонтактнаяИнформацияИндивидуальногоПредпринимателя(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция КонтактнаяИнформацияИндивидуальногоПредпринимателя(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт КонтактнаяИнформация = Новый Структура(); - ОрганизацииПереопределяемый.ПриОпределенииКонтактнойИнформацииИндивидуальногоПредпринимателя(Организация, Поля, Дата, КонтактнаяИнформация); + ОрганизацииПереопределяемый.ПриОпределенииКонтактнойИнформацииИндивидуальногоПредпринимателя(Организация, Поля, Дата, КонтактнаяИнформация, КодЯзыка); Возврат КонтактнаяИнформация; @@ -503,6 +527,8 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - см. СведенияОбОрганизации.КодЯзыка +// // Возвращаемое значение: // Структура - содержит имена (ключи) и значения затребованных полей: // * РуководительГражданствоКод - Строка - код гражданства. @@ -521,16 +547,15 @@ // * РуководительУдостоверениеЛичностиСерия - Строка - серия. // * РуководительФИО - Строка - ФИО. // -Функция РегистрационныеДанныеРуководителяОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция РегистрационныеДанныеРуководителяОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт РегистрационныеДанныеРуководителя = Новый Структура(); - ОрганизацииПереопределяемый.ПриОпределенииРегистрационныхДанныхРуководителяОрганизации(Организация, Поля, Дата, РегистрационныеДанныеРуководителя); + ОрганизацииПереопределяемый.ПриОпределенииРегистрационныхДанныхРуководителяОрганизации(Организация, Поля, Дата, РегистрационныеДанныеРуководителя, КодЯзыка); Возврат РегистрационныеДанныеРуководителя; КонецФункции - // Возвращает структуру, содержащую сведения о контактной информации руководителя организации. // // Параметры: @@ -542,6 +567,8 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - см. СведенияОбОрганизации.КодЯзыка +// // Возвращаемое значение: // Структура - содержит имена (ключи) и значения затребованных полей: // * РуководительАдресМестаЖительства - Строка - адрес. @@ -558,10 +585,10 @@ // * РуководительАдресМестаЖительстваРегион - Строка - регион. // * РуководительАдресМестаЖительстваУлица - Строка - улица. // -Функция КонтактнаяИнформацияРуководителяОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция КонтактнаяИнформацияРуководителяОрганизации(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт КонтактнаяИнформацияРуководителя = Новый Структура(); - ОрганизацииПереопределяемый.ПриОпределенииКонтактнойИнформацииРуководителяОрганизации(Организация, Поля, Дата, КонтактнаяИнформацияРуководителя); + ОрганизацииПереопределяемый.ПриОпределенииКонтактнойИнформацииРуководителяОрганизации(Организация, Поля, Дата, КонтактнаяИнформацияРуководителя, КодЯзыка); Возврат КонтактнаяИнформацияРуководителя; @@ -582,6 +609,8 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - см. СведенияОбОрганизации.КодЯзыка +// // Возвращаемое значение: // Структура - содержит имена (ключи) и значения затребованных полей: // * БухгалтерГражданствоКод - Строка - код гражданства бухгалтера. @@ -604,16 +633,15 @@ // уполномоченного представителя. // * БухгалтерФИО - Строка - ФИО. // -Функция РегистрационныеДанныеГлавногоБухгалтера(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция РегистрационныеДанныеГлавногоБухгалтера(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт РегистрационныеДанные = Новый Структура(); - ОрганизацииПереопределяемый.ПриОпределенииРегистрационныхДанныхГлавногоБухгалтера(Организация, Поля, Дата, РегистрационныеДанные); + ОрганизацииПереопределяемый.ПриОпределенииРегистрационныхДанныхГлавногоБухгалтера(Организация, Поля, Дата, РегистрационныеДанные, КодЯзыка); Возврат РегистрационныеДанные; КонецФункции - // Возвращает структуру, содержащую сведения о контактной информации главного бухгалтера организации. // // Параметры: @@ -625,6 +653,8 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - см. СведенияОбОрганизации.КодЯзыка +// // Возвращаемое значение: // Структура - содержит имена (ключи) и значения затребованных полей: // * БухгалтерАдресМестаЖительства - Строка - адрес. @@ -641,10 +671,10 @@ // * БухгалтерАдресМестаЖительстваРегион - Строка - регион. // * БухгалтерАдресМестаЖительстваУлица - Строка - улица. // -Функция КонтактнаяИнформацияГлавногоБухгалтера(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция КонтактнаяИнформацияГлавногоБухгалтера(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт КонтактнаяИнформация = Новый Структура(); - ОрганизацииПереопределяемый.ПриОпределенииКонтактнойИнформацииГлавногоБухгалтера(Организация, Поля, Дата, КонтактнаяИнформация); + ОрганизацииПереопределяемый.ПриОпределенииКонтактнойИнформацииГлавногоБухгалтера(Организация, Поля, Дата, КонтактнаяИнформация, КодЯзыка); Возврат КонтактнаяИнформация; @@ -665,6 +695,8 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - см. СведенияОбОрганизации.КодЯзыка +// // Возвращаемое значение: // Структура - содержит имена (ключи) и значения затребованных полей: // * УполномоченныйПредставительДатаРождения - Строка - дата рождения. @@ -678,16 +710,15 @@ // * УполномоченныйПредставительУдостоверениеЛичностиСерия - Строка - серия. // * УполномоченныйПредставительФИО - Строка - ФИО. // -Функция РегистрационныеДанныеУполномоченногоПредставителя(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция РегистрационныеДанныеУполномоченногоПредставителя(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт РегистрационныеДанные = Новый Структура(); - ОрганизацииПереопределяемый.ПриОпределенииРегистрационныхДанныхУполномоченногоПредставителя(Организация, Поля, Дата, РегистрационныеДанные); + ОрганизацииПереопределяемый.ПриОпределенииРегистрационныхДанныхУполномоченногоПредставителя(Организация, Поля, Дата, РегистрационныеДанные, КодЯзыка); Возврат РегистрационныеДанные; КонецФункции - // Возвращает структуру, содержащую сведения о контактной информации уполномоченного представителя организации. // // Параметры: @@ -699,6 +730,8 @@ // Дата - Дата // - Неопределено - дата, на которую требуется получить данные. Если значение не указано, // то возвращается значение на текущую дату. +// КодЯзыка - см. СведенияОбОрганизации.КодЯзыка +// // Возвращаемое значение: // Структура - содержит имена (ключи) и значения затребованных полей: // * УполномоченныйПредставительАдресМестаЖительстваНаселенныйПункт - Строка - населенный пункт. @@ -716,10 +749,10 @@ // * УполномоченныйПредставительАдресМестаЖительстваУлица - Строка - улица. // * УполномоченныйПредставительМестоРождения - Строка - место рождения. // -Функция КонтактнаяИнформацияУполномоченногоПредставителя(Знач Организация, Знач Поля = "", Знач Дата = Неопределено) Экспорт +Функция КонтактнаяИнформацияУполномоченногоПредставителя(Знач Организация, Знач Поля = "", Знач Дата = Неопределено, Знач КодЯзыка = Неопределено) Экспорт КонтактнаяИнформация = Новый Структура(); - ОрганизацииПереопределяемый.ПриОпределенииКонтактнойИнформацииУполномоченногоПредставителя(Организация, Поля, Дата, КонтактнаяИнформация); + ОрганизацииПереопределяемый.ПриОпределенииКонтактнойИнформацииУполномоченногоПредставителя(Организация, Поля, Дата, КонтактнаяИнформация, КодЯзыка); Возврат КонтактнаяИнформация; diff --git a/SSL/src/CommonModules/ОтправкаSMS/Module.bsl b/SSL/src/CommonModules/ОтправкаSMS/Module.bsl index b7d7acbd2..d8af17cb5 100644 --- a/SSL/src/CommonModules/ОтправкаSMS/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMS/Module.bsl @@ -192,10 +192,6 @@ КонецПроцедуры // См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. -// -// Параметры: -// ЗапросыРазрешений - см. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам.ЗапросыРазрешений -// Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); diff --git a/SSL/src/CommonModules/ОтчетОДвиженияхДокументаПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОтчетОДвиженияхДокументаПереопределяемый/Module.bsl index 6bcd4afe0..8adb925dc 100644 --- a/SSL/src/CommonModules/ОтчетОДвиженияхДокументаПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОтчетОДвиженияхДокументаПереопределяемый/Module.bsl @@ -12,7 +12,7 @@ // // Параметры: // Документ - ДокументСсылка - документ коллекцию движений которого необходимо дополнить. -// РегистрыСДвижениями - Соответствие: +// РегистрыСДвижениями - Соответствие из КлючИЗначение: // * Ключ - ОбъектМетаданных - регистр как объект метаданных. // * Значение - Строка - имя поля регистратора. // @@ -27,7 +27,7 @@ // // Параметры: // Документ - ДокументСсылка - документ коллекцию движений которого необходимо дополнить. -// РассчитанноеКоличество - Соответствие: +// РассчитанноеКоличество - Соответствие из КлючИЗначение: // * Ключ - Строка - полное имя регистра (вместо точек используется символ подчеркивания). // * Значение - Число - рассчитанное количество записей. // diff --git a/SSL/src/CommonModules/ОтчетыКлиент/Module.bsl b/SSL/src/CommonModules/ОтчетыКлиент/Module.bsl index 34531b26c..14a24bf4f 100644 --- a/SSL/src/CommonModules/ОтчетыКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыКлиент/Module.bsl @@ -96,12 +96,12 @@ // Выполняет поиск элемента настройки по полю компоновки данных. // // Параметры: -// Настройки - НастройкиКомпоновкиДанных -// ПользовательскиеНастройки - КоллекцияЭлементовПользовательскихНастроекКомпоновкиДанных -// Поле - ПолеКомпоновкиДанных +// Настройки - НастройкиКомпоновкиДанных +// ПользовательскиеНастройки - КоллекцияЭлементовПользовательскихНастроекКомпоновкиДанных +// Поле - ПолеКомпоновкиДанных // // Возвращаемое значение: -// Неопределено +// Неопределено // Функция ЭлементНастройкиПоПолю(Настройки, ПользовательскиеНастройки, Поле) ЭлементНастройки = ЭлементПараметровДанныхПоПолю(Настройки, ПользовательскиеНастройки, Поле); @@ -157,12 +157,12 @@ // компоновки данных, индекс и сами настройки компоновки данных, которым подчинен текущий элемент. // // Параметры: -// КомпоновщикНастроек - КомпоновщикНастроекКомпоновкиДанных -// Идентификатор - Число -// - Строка +// КомпоновщикНастроек - КомпоновщикНастроекКомпоновкиДанных +// Идентификатор - Число +// - Строка // // Возвращаемое значение: -// Структура: +// Структура: // * Описание - Неопределено // - ДоступныйОбъектНастройкиКомпоновкиДанных // - ДоступноеПолеКомпоновкиДанных @@ -346,17 +346,74 @@ И ТипКоллекции <> Тип("КоллекцияЭлементовУсловногоОформленияКомпоновкиДанных"); КонецФункции -Процедура КэшироватьЗначениеОтбора(ЗначениеОтбора, Идентификатор, КомпоновщикНастроек) Экспорт +Процедура КэшироватьЗначениеОтбора(КомпоновщикНастроек, ЭлементОтбора, ЗначениеОтбора) Экспорт ДополнительныеСвойства = КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства; КэшЗначенийОтборов = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( ДополнительныеСвойства, "КэшЗначенийОтборов", Новый Соответствие); - КэшЗначенийОтборов.Вставить(Идентификатор, ЗначениеОтбора); + ЭлементОтбораОсновныхНастроек = Неопределено; + + Если ЗначениеЗаполнено(ЭлементОтбора.ИдентификаторПользовательскойНастройки) Тогда + + КэшЗначенийОтборов.Вставить(ЭлементОтбора.ИдентификаторПользовательскойНастройки, ЗначениеОтбора); + + НайденныеЭлементыНастроек = КомпоновщикНастроек.ПользовательскиеНастройки.ПолучитьОсновныеНастройкиПоИдентификаторуПользовательскойНастройки( + ЭлементОтбора.ИдентификаторПользовательскойНастройки); + + Если НайденныеЭлементыНастроек.Количество() > 0 Тогда + ЭлементОтбораОсновныхНастроек = НайденныеЭлементыНастроек[0]; + КонецЕсли; + + Иначе + ЭлементОтбораОсновныхНастроек = ЭлементОтбора; + КонецЕсли; + + Если ТипЗнч(ЭлементОтбораОсновныхНастроек) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда + КэшЗначенийОтборов.Вставить(ЭлементОтбораОсновныхНастроек.ЛевоеЗначение, ЗначениеОтбора); + КонецЕсли; ДополнительныеСвойства.Вставить("КэшЗначенийОтборов", КэшЗначенийОтборов); КонецПроцедуры +Функция КэшЗначенияОтбора(КомпоновщикНастроек, ЭлементОтбора) Экспорт + ЗначениеОтбора = Неопределено; + + ДополнительныеСвойства = КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства; + + КэшЗначенийОтборов = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( + ДополнительныеСвойства, "КэшЗначенийОтборов", Новый Соответствие); + + Если ЗначениеЗаполнено(ЭлементОтбора.ИдентификаторПользовательскойНастройки) Тогда + ЗначениеОтбора = КэшЗначенийОтборов[ЭлементОтбора.ИдентификаторПользовательскойНастройки]; + КонецЕсли; + + Если ЗначениеОтбора <> Неопределено Тогда + Возврат ЗначениеОтбора; + КонецЕсли; + + ЭлементОтбораОсновныхНастроек = Неопределено; + + Если ЗначениеЗаполнено(ЭлементОтбора.ИдентификаторПользовательскойНастройки) Тогда + + НайденныеЭлементыНастроек = КомпоновщикНастроек.ПользовательскиеНастройки.ПолучитьОсновныеНастройкиПоИдентификаторуПользовательскойНастройки( + ЭлементОтбора.ИдентификаторПользовательскойНастройки); + + Если НайденныеЭлементыНастроек.Количество() > 0 Тогда + ЭлементОтбораОсновныхНастроек = НайденныеЭлементыНастроек[0]; + КонецЕсли; + + Иначе + ЭлементОтбораОсновныхНастроек = ЭлементОтбора; + КонецЕсли; + + Если ТипЗнч(ЭлементОтбораОсновныхНастроек) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда + ЗначениеОтбора = КэшЗначенийОтборов[ЭлементОтбораОсновныхНастроек.ЛевоеЗначение]; + КонецЕсли; + + Возврат ЗначениеОтбора; +КонецФункции + // Определяет полный путь к элементу компоновки данных. // // Параметры: diff --git a/SSL/src/CommonModules/ОтчетыКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОтчетыКлиентПереопределяемый/Module.bsl index f424533a9..293a58204 100644 --- a/SSL/src/CommonModules/ОтчетыКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыКлиентПереопределяемый/Module.bsl @@ -12,7 +12,10 @@ // Позволяет переопределить обработку результата формирования отчета. // // Параметры: -// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения +// - РасширениеУправляемойФормыДляОтчета - форма отчета: +// * Отчет - ОтчетОбъект - структура данных формы аналогичная объекту отчета. +// // ОтчетСформирован - Булево - Истина если отчет был успешно сформирован. // Процедура ПослеФормирования(ФормаОтчета, ОтчетСформирован) Экспорт @@ -23,7 +26,10 @@ // См. "Расширение поля формы для поля табличного документа.ОбработкаРасшифровки" в синтакс-помощнике. // // Параметры: -// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения +// - РасширениеУправляемойФормыДляОтчета - форма отчета: +// * Отчет - ОтчетОбъект - структура данных формы аналогичная объекту отчета. +// // Элемент - ПолеФормы - табличный документ. // Расшифровка - Произвольный - значение расшифровки точки, серии или значения диаграммы. // СтандартнаяОбработка - Булево - признак выполнения стандартной (системной) обработки события. @@ -36,7 +42,10 @@ // См. "Расширение поля формы для поля табличного документа.ОбработкаДополнительнойРасшифровки" в синтакс-помощнике. // // Параметры: -// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения +// - РасширениеУправляемойФормыДляОтчета - форма отчета: +// * Отчет - ОтчетОбъект - структура данных формы аналогичная объекту отчета. +// // Элемент - ПолеФормы - табличный документ. // Расшифровка - Произвольный - значение расшифровки точки, серии или значения диаграммы. // СтандартнаяОбработка - Булево - признак выполнения стандартной (системной) обработки события. @@ -49,7 +58,10 @@ // Пример добавления команды см. ОтчетыПереопределяемый.ПриСозданииНаСервере(). // // Параметры: -// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения +// - РасширениеУправляемойФормыДляОтчета - форма отчета: +// * Отчет - ОтчетОбъект - структура данных формы аналогичная объекту отчета. +// // Команда - КомандаФормы - команда, которая была вызвана. // Результат - Булево - Истина, если вызов команды обработан. // @@ -63,7 +75,10 @@ // См. "ФормаКлиентскогоПриложения.ОбработкаВыбора" в синтакс-помощнике. // // Параметры: -// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения +// - РасширениеУправляемойФормыДляОтчета - форма отчета: +// * Отчет - ОтчетОбъект - структура данных формы аналогичная объекту отчета. +// // ВыбранноеЗначение - Произвольный - результат выбора в подчиненной форме. // ИсточникВыбора - ФормаКлиентскогоПриложения - форма, где осуществлен выбор. // Результат - Булево - Истина, если результат выбора обработан. @@ -76,7 +91,10 @@ // См. "Расширение поля формы для поля табличного документа.Выбор" в синтакс-помощнике. // // Параметры: -// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения +// - РасширениеУправляемойФормыДляОтчета - форма отчета: +// * Отчет - ОтчетОбъект - структура данных формы аналогичная объекту отчета. +// // Элемент - ПолеФормы - табличный документ. // Область - ОбластьЯчеекТабличногоДокумента - выбранное значение. // СтандартнаяОбработка - Булево - признак выполнения стандартной обработки события. @@ -89,7 +107,10 @@ // См. "ФормаКлиентскогоПриложения.ОбработкаОповещения" в синтакс-помощнике. // // Параметры: -// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения +// - РасширениеУправляемойФормыДляОтчета - форма отчета: +// * Отчет - ОтчетОбъект - структура данных формы аналогичная объекту отчета. +// // ИмяСобытия - Строка - идентификатор события для принимающих форм. // Параметр - Произвольный - расширенная информация о событии. // Источник - ФормаКлиентскогоПриложения @@ -106,10 +127,15 @@ // а выбранный период следует вернуть в ОбработчикРезультата. // // Параметры: -// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения +// - РасширениеУправляемойФормыДляОтчета - форма отчета: +// * Отчет - ОтчетОбъект - структура данных формы аналогичная объекту отчета. +// // Период - СтандартныйПериод - значение настройки компоновщика, соответствующей выбранному периоду. +// // СтандартнаяОбработка - Булево - если Истина, то будет использован стандартный диалог выбора периода. // Если установить в Ложь то стандартный диалог не откроется. +// // ОбработчикРезультата - ОписаниеОповещения - обработчик результата выбора периода. // В качестве результата в ОбработчикРезультата могут быть переданы значения типов: // Неопределено - пользователь отказался от ввода периода. diff --git a/SSL/src/CommonModules/ОтчетыКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОтчетыКлиентСервер/Module.bsl index d8b6ff936..32deb0f8c 100644 --- a/SSL/src/CommonModules/ОтчетыКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыКлиентСервер/Module.bsl @@ -275,7 +275,7 @@ // // СвойстваНастройки - Структура - описание настройки отчета, которая будет выведена в форме отчета. // // * ОписаниеТипов - ОписаниеТипов - тип настройки. // // * ЗначенияДляВыбора - СписокЗначений - объекты, которые будут предложены пользователю в списке -// выбора. Дополняет список объектов, уже выбранных пользователем ранее. +// // выбора. Дополняет список объектов, уже выбранных пользователем ранее. // // * ЗапросЗначенийВыбора - Запрос - возвращает объекты, которыми необходимо дополнить ЗначенияДляВыбора. // // Первой колонкой (с 0м индексом) должен выбираться объект, // // который следует добавить в ЗначенияДляВыбора.Значение. @@ -331,6 +331,15 @@ // Процедура ДополнитьСвязиОбъектовМетаданных(СвязиОбъектовМетаданных) Экспорт // // Обработка события. // КонецПроцедуры +// +// ** ПриОпределенииОсновныхПолей - Булево - если Истина, то в модуле объекта отчета +// следует определить обработчик события по шаблону: +// +// // См. ОтчетыПереопределяемый.ПриОпределенииОсновныхПолей. +// // +// Процедура ПриОпределенииОсновныхПолей(Форма, ОсновныеПоля) Экспорт +// // Обработка события. +// КонецПроцедуры // Функция НастройкиОтчетаПоУмолчанию() Экспорт Настройки = Новый Структура; @@ -369,6 +378,7 @@ События.Вставить("ПриОпределенииИспользуемыхТаблиц", Ложь); События.Вставить("ДополнитьСвязиОбъектовМетаданных", Ложь); События.Вставить("ПриОпределенииСвойствЭлементовФормыНастроек", Ложь); + События.Вставить("ПриОпределенииОсновныхПолей", Ложь); Настройки.Вставить("События", События); @@ -554,7 +564,7 @@ // - НастройкиВложенногоОбъектаКомпоновкиДанных - значение элемента настройки. // // Возвращаемое значение: -// ДоступноеПолеКомпоновкиДанных - , ДоступныйПараметрКомпоновкиДанных, +// ДоступноеПолеКомпоновкиДанных, ДоступныйПараметрКомпоновкиДанных, // ДоступныйОбъектНастройкиКомпоновкиДанных - Найденная доступная настройка. // Неопределено - если доступная настройка не существует. // @@ -957,6 +967,11 @@ КонецПроцедуры +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// ТекстСостояния - Строка +// КартинкаСостояния - Неопределено +// Процедура ОтобразитьСостояниеОтчета(Форма, Знач ТекстСостояния = "", Знач КартинкаСостояния = Неопределено) Экспорт ПолеОтчета = Форма.Элементы.Найти("ОтчетТабличныйДокумент"); @@ -1181,6 +1196,11 @@ Возврат Представление; КонецФункции +// Параметры: +// Цвет - Цвет +// Возвращаемое значение: +// Строка +// Функция ПредставлениеЦвета(Цвет) Если Цвет.Вид = ВидЦвета.ЭлементСтиля Тогда Представление = Строка(Цвет); @@ -1424,9 +1444,13 @@ КонецЕсли; КонецФункции -Функция СкопироватьРекурсивно(Знач Узел, Знач ЧтоКопировать, Знач КудаВставить, Знач Индекс, Соответствие) Экспорт +Функция СкопироватьРекурсивно(Знач Узел, Знач ЧтоКопировать, Знач КудаВставить, Знач Индекс, Соответствие = Неопределено, БезСтруктуры = Ложь) Экспорт + Если Соответствие = Неопределено Тогда + Соответствие = Новый Соответствие; + КонецЕсли; + ТипЭлемента = ТипЗнч(ЧтоКопировать); - ПараметрыКопирования = ПараметрыКопирования(ТипЭлемента, КудаВставить); + ПараметрыКопирования = ПараметрыКопирования(ТипЭлемента, КудаВставить, БезСтруктуры); Если ПараметрыКопирования.НужноУказыватьТипЭлемента Тогда Если Индекс = Неопределено Тогда @@ -1447,7 +1471,7 @@ Возврат НоваяСтрока; КонецФункции -Функция ПараметрыКопирования(ТипЭлемента, Коллекция) +Функция ПараметрыКопирования(ТипЭлемента, Коллекция, БезСтруктуры = Ложь) Результат = Новый Структура; Результат.Вставить("НужноУказыватьТипЭлемента", Ложь); Результат.Вставить("ИсключаяСвойства", Неопределено); @@ -1514,7 +1538,7 @@ Результат.ЕстьПараметрыВывода = Истина; Результат.ЕстьПоляГруппировки = Истина; Результат.ЕстьПорядок = Истина; - Результат.ЕстьСтруктура = Истина; + Результат.ЕстьСтруктура = Не БезСтруктуры; Результат.ЕстьУсловноеОформление = Истина; ИначеЕсли ТипЭлемента = Тип("ТаблицаКомпоновкиДанных") Тогда @@ -1547,7 +1571,7 @@ Результат.ЕстьПараметрыДанных = Истина; Результат.ЕстьПользовательскиеПоля = Истина; Результат.ЕстьПорядок = Истина; - Результат.ЕстьСтруктура = Истина; + Результат.ЕстьСтруктура = Не БезСтруктуры; Результат.ЕстьУсловноеОформление = Истина; ИначеЕсли ТипЭлемента <> Тип("ДанныеФормыЭлементДерева") Тогда @@ -1589,12 +1613,13 @@ // ДиаграммаКомпоновкиДанных, // ЭлементУсловногоОформленияКомпоновкиДанных - элемент настройки, который заполняется. // -Функция ЗаполнитьСвойстваРекурсивно(Узел, ЧтоЗаполнить, ЧемЗаполнить, Соответствие = Неопределено, ПараметрыКопирования = Неопределено) Экспорт +Функция ЗаполнитьСвойстваРекурсивно(Узел, ЧтоЗаполнить, ЧемЗаполнить, Соответствие = Неопределено, ПараметрыКопирования = Неопределено, БезСтруктуры = Ложь) Экспорт Если Соответствие = Неопределено Тогда Соответствие = Новый Соответствие; КонецЕсли; + Если ПараметрыКопирования = Неопределено Тогда - ПараметрыКопирования = ПараметрыКопирования(ТипЗнч(ЧемЗаполнить), Неопределено); + ПараметрыКопирования = ПараметрыКопирования(ТипЗнч(ЧемЗаполнить), Неопределено, БезСтруктуры); КонецЕсли; Если ПараметрыКопирования.ИсключаяСвойства <> "*" Тогда diff --git a/SSL/src/CommonModules/ОтчетыПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОтчетыПереопределяемый/Module.bsl index dacd0ccaf..97d02126f 100644 --- a/SSL/src/CommonModules/ОтчетыПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыПереопределяемый/Module.bsl @@ -43,7 +43,7 @@ // пустую строку. // * ОграничиватьВыборУказаннымиЗначениями - Булево - указать Истина, чтобы ограничить выбор пользователя // значениями, указанными в ЗначенияДляВыбора (его конечным состоянием). -// * Тип - см. ОтчетыСервер.ТипНастройкиСтрокой. +// * Тип - Строка. // // Пример: // 1. Для всех настроек типа СправочникСсылка.Пользователи скрыть и не разрешать выбирать помеченных на удаление, @@ -103,6 +103,22 @@ +КонецПроцедуры + +// Вызывается при инициализации свойств результата отчета. +// Если основные поля определены, то при вызове команд контекстной настройки +// (Вставить поле слева, Вставить поле справа, Вставить группировку ниже, +// Вставить группировку выше), они будут выводиться в подменю +// для выбора полей вставки. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения - форма отчета. +// ОсновныеПоля - Массив из Строка - имена часто используемых полей отчета. +// +Процедура ПриОпределенииОсновныхПолей(Форма, ОсновныеПоля) Экспорт + + + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/CommonModules/ОтчетыСервер/Module.bsl b/SSL/src/CommonModules/ОтчетыСервер/Module.bsl index e42653eb6..b4a5f0258 100644 --- a/SSL/src/CommonModules/ОтчетыСервер/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыСервер/Module.bsl @@ -16,11 +16,10 @@ // // Параметры: // Отчет - ОтчетОбъект -// - ВнешнийОтчетОбъект - отчет, которому необходимо установить схему. +// - ВнешнийОтчет - СКД-отчет, которому необходимо установить схему. // Контекст - ФормаКлиентскогоПриложения - форма отчета или форма настройки отчета. -// Передается "как есть" из одноименного параметра события -// ПередЗагрузкойНастроекВКомпоновщик. -// - Структура - см. ВариантыОтчетов.ПодключитьОтчетИЗагрузитьНастройки. +// Передается "как есть" из одноименного параметра события ПередЗагрузкойНастроекВКомпоновщик. +// - ВариантыОтчетов.ПодключитьОтчетИЗагрузитьНастройки. // Схема - СхемаКомпоновкиДанных - схема, которую необходимо установить отчету. // КлючСхемы - Строка - идентификатор новой схемы, который будет записан в дополнительные свойства // пользовательских настроек. @@ -231,11 +230,11 @@ Ячейка.Текст = ?(ПредставлениеСсылки = Неопределено, АдресСсылки, ПредставлениеСсылки); КонецПроцедуры -// Определяет что отчет пустой. +// Определяет, что отчет пустой. // // Параметры: // ОтчетОбъект - ОтчетОбъект -// - ВнешнийОтчетОбъект - проверяемый отчет. +// - ВнешнийОтчет - проверяемый отчет. // ПроцессорКД - ПроцессорКомпоновкиДанных - объект, выполняющий компоновку данных в отчете. // // Возвращаемое значение: @@ -316,6 +315,110 @@ Возврат Истина; КонецФункции +// Возвращает коллекцию свойств элементов формы отчета (настроек отчета), связанные с настройками, +// которые доступны для переопределения в модуле объекта отчета. +// +// Параметры: +// ТипФормы - ТипФормыОтчета +// КомпоновщикНастроек - КомпоновщикНастроекКомпоновкиДанных +// ДополнительныеПараметры - см. ВариантыОтчетов.НастройкиФормыОтчета +// +// Возвращаемое значение: +// Структура: +// * Группы - см. СвойстваГруппыЭлементовФормы +// * Поля - см. ПоляЭлементовФормыНастроек +// +Функция СвойстваЭлементовФормыНастроек(ТипФормы, КомпоновщикНастроек, ДополнительныеПараметры) Экспорт + #Область ПодготовкаСтруктуры + + СвойстваЭлементов = Новый Структура("Группы, Поля"); + СвойстваЭлементов.Группы = Новый Структура; + + Поля = ПоляЭлементовФормыНастроек(); + + ДоступныеРежимы = Новый Массив; + ДоступныеРежимы.Добавить(РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ); + Если ТипФормы = ТипФормыОтчета.Настройка Тогда + ДоступныеРежимы.Добавить(РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный); + КонецЕсли; + + НедоступныеЭлементыСтруктуры = Новый Соответствие; + НедоступныеЭлементыСтруктуры.Вставить(Тип("ГруппировкаКомпоновкиДанных"), ТипФормыОтчета.Настройка); + НедоступныеЭлементыСтруктуры.Вставить(Тип("ГруппировкаТаблицыКомпоновкиДанных"), ТипФормыОтчета.Настройка); + НедоступныеЭлементыСтруктуры.Вставить(Тип("ГруппировкаДиаграммыКомпоновкиДанных"), ТипФормыОтчета.Настройка); + НедоступныеЭлементыСтруктуры.Вставить(Тип("ТаблицаКомпоновкиДанных"), ТипФормыОтчета.Настройка); + НедоступныеЭлементыСтруктуры.Вставить(Тип("ДиаграммаКомпоновкиДанных"), ТипФормыОтчета.Настройка); + + #КонецОбласти + + #Область ЗаполнениеСтруктуры + + Сведения = СведенияОПользовательскихНастройках(КомпоновщикНастроек.Настройки); + ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки; + Для Каждого ЭлементПользовательскойНастройки Из ПользовательскиеНастройки.Элементы Цикл + НайденныеСведения = Сведения[ЭлементПользовательскойНастройки.ИдентификаторПользовательскойНастройки]; + ЭлементНастройки = НайденныеСведения.ЭлементНастройки; // ГруппировкаКомпоновкиДанных, ГруппировкаТаблицыКомпоновкиДанных, ГруппировкаДиаграммыКомпоновкиДанных + + Если ЭлементНастройки = Неопределено + Или НедоступныеЭлементыСтруктуры.Получить(ТипЗнч(ЭлементНастройки)) = ТипФормы + Или ДоступныеРежимы.Найти(ЭлементНастройки.РежимОтображения) = Неопределено Тогда + Продолжить; + КонецЕсли; + + ТипЭлемента = ТипЗнч(ЭлементНастройки); + Если ТипЭлемента = Тип("ЭлементУсловногоОформленияКомпоновкиДанных") Тогда + Представление = ОтчетыКлиентСервер.ПредставлениеЭлементаУсловногоОформления( + ЭлементНастройки, Неопределено, ""); + + Если Не ЗначениеЗаполнено(ЭлементНастройки.Представление) Тогда + ЭлементНастройки.Представление = Представление; + ИначеЕсли Не ЗначениеЗаполнено(ЭлементНастройки.ПредставлениеПользовательскойНастройки) + И ЭлементНастройки.Представление <> Представление Тогда + + ЭлементНастройки.ПредставлениеПользовательскойНастройки = ЭлементНастройки.Представление; + ЭлементНастройки.Представление = Представление; + КонецЕсли; + КонецЕсли; + + Поле = Поля.Добавить(); + Поле.ИдентификаторНастройки = ЭлементПользовательскойНастройки.ИдентификаторПользовательскойНастройки; + Поле.ИндексНастройки = ПользовательскиеНастройки.Элементы.Индекс(ЭлементПользовательскойНастройки); + Поле.Настройки = НайденныеСведения.Настройки; + Поле.ЭлементНастройки = ЭлементНастройки; + Поле.ОписаниеНастройки = НайденныеСведения.ОписаниеНастройки; + Поле.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто; + + Если НедоступныеЭлементыСтруктуры.Получить(ТипЗнч(ЭлементНастройки)) <> Неопределено Тогда + Представление = ЭлементНастройки.ПараметрыВывода.Элементы.Найти("TITLE"); + Если Представление <> Неопределено + И ЗначениеЗаполнено(Представление.Значение) Тогда + Поле.Представление = Представление.Значение; + КонецЕсли; + КонецЕсли; + + Если ТипФормы = ТипФормыОтчета.Настройка + И ТипЗнч(ЭлементНастройки) = Тип("ЭлементУсловногоОформленияКомпоновкиДанных") Тогда + Поле.ИдентификаторГруппы = "Дополнительно"; + КонецЕсли; + КонецЦикла; + + Если Поля.Найти("Дополнительно", "ИдентификаторГруппы") <> Неопределено Тогда + СвойстваЭлементов.Группы.Вставить("Дополнительно", СвойстваГруппыЭлементовФормы()); + КонецЕсли; + + Поля.Сортировать("ИндексНастройки"); + СвойстваЭлементов.Поля = Поля; + + Если ДополнительныеПараметры.События.ПриОпределенииСвойствЭлементовФормыНастроек Тогда + ОтчетОбъект(ДополнительныеПараметры.ПолноеИмя).ПриОпределенииСвойствЭлементовФормыНастроек( + ТипФормы, СвойстваЭлементов, ПользовательскиеНастройки.Элементы); + КонецЕсли; + + #КонецОбласти + + Возврат СвойстваЭлементов; +КонецФункции + // Конструктор свойств группы элементов формы пользовательских настроек. // // Возвращаемое значение: @@ -342,11 +445,11 @@ // Выводит и группирует элементы формы, связанные с пользовательскими настройками. // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// - РасширениеУправляемойФормыДляОтчета -// УзелИерархииЭлементов - ГруппаФормы -// ПараметрыОбновления - Структура -// - Неопределено +// Форма - ФормаКлиентскогоПриложения +// - РасширениеУправляемойФормыДляОтчета +// УзелИерархииЭлементов - ГруппаФормы +// ПараметрыОбновления - Структура +// - Неопределено // Процедура ОбновитьЭлементыФормыНастроек(Форма, УзелИерархииЭлементов, ПараметрыОбновления = Неопределено) Экспорт Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда @@ -410,6 +513,14 @@ Если ТипЗнч(НастройкиXML) = Тип("Строка") Тогда Попытка Настройки = ОбщегоНазначения.ЗначениеИзСтрокиXML(НастройкиXML); + + // Устанавливается связь со схемой, для восстановления неиспользовавшихся значений параметров данных, + // которые теряются при сериализации настроек (см. синтакс-помощник: ЗначенияПараметровДанныхКомпоновкиДанных). + КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; + ИнициализироватьКомпоновщикНастроек(КомпоновщикНастроек, НастройкиОтчета.АдресСхемы); + КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); + + Настройки = КомпоновщикНастроек.Настройки; Исключение Настройки = Неопределено; КонецПопытки; @@ -731,9 +842,9 @@ // // Возвращаемое значение: // Структура - количество пользовательских настроек в разрезе режимов отображения: -// - БыстрогоДоступа - количество настроек с режимом отображения БыстрыйДоступ или Авто; -// - Обычных - количество настроек с режимом отображения Обычный; -// - Итог - общее количество доступных настроек. +// * БыстрогоДоступа - Число - количество настроек с режимом отображения БыстрыйДоступ или Авто; +// * Обычных - Число - количество настроек с режимом отображения Обычный; +// * Итог - Число - общее количество доступных настроек. // Функция КоличествоДоступныхНастроек(КомпоновщикНастроек) Экспорт ДоступныеНастройки = Новый Структура; @@ -889,110 +1000,6 @@ //////////////////////////////////////////////////////////////////////////////// // Обновление элементов формы пользовательских настроек -// Возвращает коллекцию свойств элементов формы отчета (настроек отчета), связанные с настройками, -// которые доступны для переопределения в модуле объекта отчета. -// -// Параметры: -// ТипФормы - ТипФормыОтчета -// КомпоновщикНастроек - КомпоновщикНастроекКомпоновкиДанных -// ДополнительныеПараметры - см. ВариантыОтчетов.НастройкиФормыОтчета -// -// Возвращаемое значение: -// Структура: -// * Группы - см. СвойстваГруппыЭлементовФормы -// * Поля - см. ПоляЭлементовФормыНастроек -// -Функция СвойстваЭлементовФормыНастроек(ТипФормы, КомпоновщикНастроек, ДополнительныеПараметры) Экспорт - #Область ПодготовкаСтруктуры - - СвойстваЭлементов = Новый Структура("Группы, Поля"); - СвойстваЭлементов.Группы = Новый Структура; - - Поля = ПоляЭлементовФормыНастроек(); - - ДоступныеРежимы = Новый Массив; - ДоступныеРежимы.Добавить(РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ); - Если ТипФормы = ТипФормыОтчета.Настройка Тогда - ДоступныеРежимы.Добавить(РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный); - КонецЕсли; - - НедоступныеЭлементыСтруктуры = Новый Соответствие; - НедоступныеЭлементыСтруктуры.Вставить(Тип("ГруппировкаКомпоновкиДанных"), ТипФормыОтчета.Настройка); - НедоступныеЭлементыСтруктуры.Вставить(Тип("ГруппировкаТаблицыКомпоновкиДанных"), ТипФормыОтчета.Настройка); - НедоступныеЭлементыСтруктуры.Вставить(Тип("ГруппировкаДиаграммыКомпоновкиДанных"), ТипФормыОтчета.Настройка); - НедоступныеЭлементыСтруктуры.Вставить(Тип("ТаблицаКомпоновкиДанных"), ТипФормыОтчета.Настройка); - НедоступныеЭлементыСтруктуры.Вставить(Тип("ДиаграммаКомпоновкиДанных"), ТипФормыОтчета.Настройка); - - #КонецОбласти - - #Область ЗаполнениеСтруктуры - - Сведения = СведенияОПользовательскихНастройках(КомпоновщикНастроек.Настройки); - ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки; - Для Каждого ЭлементПользовательскойНастройки Из ПользовательскиеНастройки.Элементы Цикл - НайденныеСведения = Сведения[ЭлементПользовательскойНастройки.ИдентификаторПользовательскойНастройки]; - ЭлементНастройки = НайденныеСведения.ЭлементНастройки; // ГруппировкаКомпоновкиДанных, ГруппировкаТаблицыКомпоновкиДанных, ГруппировкаДиаграммыКомпоновкиДанных - - Если ЭлементНастройки = Неопределено - Или НедоступныеЭлементыСтруктуры.Получить(ТипЗнч(ЭлементНастройки)) = ТипФормы - Или ДоступныеРежимы.Найти(ЭлементНастройки.РежимОтображения) = Неопределено Тогда - Продолжить; - КонецЕсли; - - ТипЭлемента = ТипЗнч(ЭлементНастройки); - Если ТипЭлемента = Тип("ЭлементУсловногоОформленияКомпоновкиДанных") Тогда - Представление = ОтчетыКлиентСервер.ПредставлениеЭлементаУсловногоОформления( - ЭлементНастройки, Неопределено, ""); - - Если Не ЗначениеЗаполнено(ЭлементНастройки.Представление) Тогда - ЭлементНастройки.Представление = Представление; - ИначеЕсли Не ЗначениеЗаполнено(ЭлементНастройки.ПредставлениеПользовательскойНастройки) - И ЭлементНастройки.Представление <> Представление Тогда - - ЭлементНастройки.ПредставлениеПользовательскойНастройки = ЭлементНастройки.Представление; - ЭлементНастройки.Представление = Представление; - КонецЕсли; - КонецЕсли; - - Поле = Поля.Добавить(); - Поле.ИдентификаторНастройки = ЭлементПользовательскойНастройки.ИдентификаторПользовательскойНастройки; - Поле.ИндексНастройки = ПользовательскиеНастройки.Элементы.Индекс(ЭлементПользовательскойНастройки); - Поле.Настройки = НайденныеСведения.Настройки; - Поле.ЭлементНастройки = ЭлементНастройки; - Поле.ОписаниеНастройки = НайденныеСведения.ОписаниеНастройки; - Поле.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто; - - Если НедоступныеЭлементыСтруктуры.Получить(ТипЗнч(ЭлементНастройки)) <> Неопределено Тогда - Представление = ЭлементНастройки.ПараметрыВывода.Элементы.Найти("TITLE"); - Если Представление <> Неопределено - И ЗначениеЗаполнено(Представление.Значение) Тогда - Поле.Представление = Представление.Значение; - КонецЕсли; - КонецЕсли; - - Если ТипФормы = ТипФормыОтчета.Настройка - И ТипЗнч(ЭлементНастройки) = Тип("ЭлементУсловногоОформленияКомпоновкиДанных") Тогда - Поле.ИдентификаторГруппы = "Дополнительно"; - КонецЕсли; - КонецЦикла; - - Если Поля.Найти("Дополнительно", "ИдентификаторГруппы") <> Неопределено Тогда - СвойстваЭлементов.Группы.Вставить("Дополнительно", СвойстваГруппыЭлементовФормы()); - КонецЕсли; - - Поля.Сортировать("ИндексНастройки"); - СвойстваЭлементов.Поля = Поля; - - Если ДополнительныеПараметры.События.ПриОпределенииСвойствЭлементовФормыНастроек Тогда - ОтчетОбъект(ДополнительныеПараметры.ПолноеИмя).ПриОпределенииСвойствЭлементовФормыНастроек( - ТипФормы, СвойстваЭлементов, ПользовательскиеНастройки.Элементы); - КонецЕсли; - - #КонецОбласти - - Возврат СвойстваЭлементов; -КонецФункции - // Возвращаемое значение: // ТаблицаЗначений: // * ИндексНастройки - Число @@ -1188,14 +1195,14 @@ // Добавляет сведения о элементах отборов, значениях параметров и т.д. // // Параметры: -// Настройки - НастройкиКомпоновкиДанных -// Свойство - ОтборКомпоновкиДанных -// - ЗначенияПараметровДанныхКомпоновкиДанных -// - ЗначенияПараметровВыводаКомпоновкиДанных -// - УсловноеОформлениеКомпоновкиДанных -// ИдентификаторСвойства - Строка -// Сведения - см. ВидыСведений -// ДополнительныеСвойства - Структура +// Настройки - НастройкиКомпоновкиДанных +// Свойство - ОтборКомпоновкиДанных +// - ЗначенияПараметровДанныхКомпоновкиДанных +// - ЗначенияПараметровВыводаКомпоновкиДанных +// - УсловноеОформлениеКомпоновкиДанных +// ИдентификаторСвойства - Строка +// Сведения - см. ВидыСведений +// ДополнительныеСвойства - Структура // Процедура ПолучитьСведенияОЭлементахСвойстваНастроек(Настройки, Свойство, ИдентификаторСвойства, Сведения, ДополнительныеСвойства) СвойстваСЭлементами = Новый Структура("Отбор, ПараметрыДанных, ПараметрыВывода, УсловноеОформление"); @@ -1274,7 +1281,7 @@ // Конструктор индекса свойств пользовательских настроек. // // Возвращаемое значение: -// Структура: +// Структура: // * Настройки - НастройкиКомпоновкиДанных // * ЭлементНастройки - ЭлементОтбораКомпоновкиДанных // - ЗначениеПараметраКомпоновкиДанных @@ -1531,13 +1538,13 @@ // созданных методом СоздатьЭлементыФормыПользовательскихНастроек. // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// - РасширениеУправляемойФормыДляОтчета: -// * Элементы - ВсеЭлементыФормы -// * Отчет - ОтчетОбъект -// ГруппаЭлементов - ГруппаФормы -// ЭлементыНастроек - см. ПалитраКоллекцииЭлементовНастроек -// ОписаниеНастроек - ТаблицаЗначений +// Форма - ФормаКлиентскогоПриложения +// - РасширениеУправляемойФормыДляОтчета: +// * Элементы - ВсеЭлементыФормы +// * Отчет - ОтчетОбъект +// ГруппаЭлементов - ГруппаФормы +// ЭлементыНастроек - см. ПалитраКоллекцииЭлементовНастроек +// ОписаниеНастроек - ТаблицаЗначений // Процедура НайтиЭлементыФормыНастроек(Форма, ГруппаЭлементов, ЭлементыНастроек, ОписаниеНастроек) ПользовательскиеНастройки = Форма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы; @@ -1805,8 +1812,8 @@ // ВСписке, НеВСписке и т.д. // // Параметры: -// ЭлементыНастроек - см. ПалитраКоллекцииЭлементовНастроек -// СвойстваЭлементов - Структура: +// ЭлементыНастроек - см. ПалитраКоллекцииЭлементовНастроек +// СвойстваЭлементов - Структура: // * Группы - Структура // * Поля - ТаблицаЗначений // @@ -2278,9 +2285,11 @@ Процедура ДобавитьЭлементПериода(Элементы, Группа, ШаблонИмени, Свойство, ЗаголовокЭлементаНастройки) ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонИмени, "", Свойство); - ШаблонЗаголовка = "%1 (дата %2)"; + ШаблонЗаголовка = НСтр("ru = '%1 (дата %2)'"); Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - ШаблонЗаголовка, ЗаголовокЭлементаНастройки, ?(СтрЗаканчиваетсяНа(Свойство, "Начала"), "начала", "окончания")); + ШаблонЗаголовка, + ЗаголовокЭлементаНастройки, + ?(СтрЗаканчиваетсяНа(Свойство, "Начала"), НСтр("ru = 'начала'"), НСтр("ru = 'окончания'"))); Элемент = Элементы.Найти(ИмяЭлемента); Если Элемент = Неопределено Тогда @@ -2323,11 +2332,11 @@ // Устанавливает значения свойствам стандартного периода: ДатаНачала, ДатаОкончания // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// - РасширениеУправляемойФормыДляОтчета: -// * Элементы - ВсеЭлементыФормы -// * Отчет - ОтчетОбъект -// Индекс - Число +// Форма - ФормаКлиентскогоПриложения +// - РасширениеУправляемойФормыДляОтчета: +// * Элементы - ВсеЭлементыФормы +// * Отчет - ОтчетОбъект +// Индекс - Число // Процедура ИнициализироватьПериод(Форма, Индекс) ПользовательскиеНастройки = Форма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки; @@ -2364,14 +2373,14 @@ // Создает элементы формы типа ТаблицаФормы, ссылающиеся на реквизит типа СписокЗначений // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// - РасширениеУправляемойФормыДляОтчета: -// * Отчет - ОтчетОбъект -// ЭлементНастройки - СтрокаТаблицыЗначений -// ОписаниеЭлементаНастройки - СтрокаТаблицыЗначений -// - Неопределено -// ИмяСписка - Строка -// ИменаРеквизитов - Структура: +// Форма - ФормаКлиентскогоПриложения +// - РасширениеУправляемойФормыДляОтчета: +// * Отчет - ОтчетОбъект +// ЭлементНастройки - СтрокаТаблицыЗначений +// ОписаниеЭлементаНастройки - СтрокаТаблицыЗначений +// - Неопределено +// ИмяСписка - Строка +// ИменаРеквизитов - Структура: // * Сгенерированных - Структура // * Предопределенных - Структура // @@ -2620,10 +2629,10 @@ // Устанавливает значение флажка. // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// - РасширениеУправляемойФормыДляОтчета: -// * Отчет - ОтчетОбъект -// Индекс - Число +// Форма - ФормаКлиентскогоПриложения +// - РасширениеУправляемойФормыДляОтчета: +// * Отчет - ОтчетОбъект +// Индекс - Число // Процедура ИнициализироватьФлажок(Форма, Индекс) ПользовательскиеНастройки = Форма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки; @@ -2643,12 +2652,12 @@ // Запоминает состояние формы. // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// ИмяТаблицы - Строка -// КлючевыеКолонки - Строка +// Форма - ФормаКлиентскогоПриложения +// ИмяТаблицы - Строка +// КлючевыеКолонки - Строка // // Возвращаемое значение: -// Структура: +// Структура: // * Текущая - Неопределено // * Выделенные - Массив // @@ -2691,9 +2700,9 @@ // Восстанавливает состояние формы. // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// ИмяТаблицы - Строка -// КлючевыеКолонки - Строка +// Форма - ФормаКлиентскогоПриложения +// ИмяТаблицы - Строка +// КлючевыеКолонки - Строка // Процедура ВосстановитьВыделенныеСтроки(Форма, ИмяТаблицы, СтрокиТаблицы) Экспорт ТаблицаРеквизит = Форма[ИмяТаблицы]; @@ -2836,7 +2845,7 @@ // Коллекция в которую требуется добавить выбранное поле. // ИмяИлиПолеКД - Строка // - ПолеКомпоновкиДанных - имя поля. -// Заголовок - Строка - необязательный. Представление поля. +// Заголовок - Строка - представление поля. // // Возвращаемое значение: // ВыбранноеПолеКомпоновкиДанных - добавленное выбранное поле. @@ -3107,7 +3116,13 @@ // ПолныйПутьКЭлементу - Строка - полный путь к элементу. Может быть получена в функции ПолныйПутьКЭлементу(). // // Возвращаемое значение: -// ЭлементКД - Произвольный - найденный узел настроек. +// - НастройкиКомпоновкиДанных +// - КоллекцияЭлементовСтруктурыНастроекКомпоновкиДанных +// - ГруппировкаКомпоновкиДанных +// - КоллекцияЭлементовСтруктурыТаблицыКомпоновкиДанных +// - ГруппировкаТаблицыКомпоновкиДанных +// - КоллекцияЭлементовСтруктурыДиаграммыКомпоновкиДанных +// - ГруппировкаДиаграммыКомпоновкиДанных - найденный узел настроек. // Функция ЭлементНастроекПоПолномуПути(Знач Настройки, Знач ПолныйПутьКЭлементу) Экспорт Индексы = СтрРазделить(ПолныйПутьКЭлементу, "/", Ложь); diff --git a/SSL/src/CommonModules/ОценкаПроизводительности/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительности/Module.bsl index e00018457..841c7da00 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительности/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительности/Module.bsl @@ -12,7 +12,7 @@ // процедуры ЗакончитьЗамерВремени или ЗакончитьЗамерВремениТехнологический. // // Возвращаемое значение: -// Число(14,0) - время UTC начала с точностью до миллисекунд. +// Число - число длиной 14 символов, время UTC начала с точностью до миллисекунд. // Функция НачатьЗамерВремени() Экспорт @@ -30,13 +30,13 @@ // и записывает результат в регистр сведений ЗамерыВремени. // // Параметры: -// КлючеваяОперация - СправочникСсылка.КлючевыеОперации -// - Строка - ключевая операция. -// ВремяНачала - Число - универсальная дата в миллисекундах, +// КлючеваяОперация - СправочникСсылка.КлючевыеОперации +// - Строка - ключевая операция. +// ВремяНачала - Число - универсальная дата в миллисекундах, // возвращаемая при начале замера функцией ОценкаПроизводительности.НачатьЗамерВремени. -// ВесЗамера - Число - количественный показатель замера, например количество строк в документе. -// Комментарий - Строка -// - Соответствие - произвольная информация замера. +// ВесЗамера - Число - количественный показатель замера, например количество строк в документе. +// Комментарий - Строка +// - Соответствие - произвольная информация замера. // ВыполненСОшибкой - Булево - признак того, что замер не был выполнен до конца, // Процедура ЗакончитьЗамерВремени(КлючеваяОперация, ВремяНачала, ВесЗамера = 1, Комментарий = Неопределено, ВыполненСОшибкой = Ложь) Экспорт @@ -63,13 +63,13 @@ // и записывает результат в регистр сведений ЗамерыВремениТехнологические. // // Параметры: -// КлючеваяОперация - СправочникСсылка.КлючевыеОперации -// - Строка - ключевая операция. -// ВремяНачала - Число - универсальная дата в миллисекундах, +// КлючеваяОперация - СправочникСсылка.КлючевыеОперации +// - Строка - ключевая операция. +// ВремяНачала - Число - универсальная дата в миллисекундах, // возвращаемая при начале замера функцией ОценкаПроизводительности.НачатьЗамерВремени. -// ВесЗамера - Число - количественный показатель замера, например количество строк в документе. -// Комментарий - Строка -// - Соответствие - произвольная информация замера. +// ВесЗамера - Число - количественный показатель замера, например количество строк в документе. +// Комментарий - Строка +// - Соответствие - произвольная информация замера. // Процедура ЗакончитьЗамерВремениТехнологический(КлючеваяОперация, ВремяНачала, ВесЗамера = 1, Комментарий = Неопределено) Экспорт Если ОценкаПроизводительностиВызовСервераПовтИсп.ВыполнятьЗамерыПроизводительности() Тогда @@ -149,9 +149,9 @@ РезультатЗапроса = Запрос.Выполнить(); Если НЕ РезультатЗапроса.Пустой() Тогда Выборка = РезультатЗапроса.Выбрать(); - Выборка.Следующий(); + Выборка.Следующий(); КлючеваяОперацияСсылка = Выборка.Ссылка; - КлючеваяОперацияОбъект = КлючеваяОперацияСсылка.ПолучитьОбъект(); + КлючеваяОперацияОбъект = КлючеваяОперацияСсылка.ПолучитьОбъект(); // СправочникОбъект.КлючевыеОперации КлючеваяОперацияОбъект.ЦелевоеВремя = КлючеваяОперация.ЦелевоеВремя; КлючеваяОперацияОбъект.Записать(); @@ -207,7 +207,7 @@ Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); КлючеваяОперацияСсылка = Выборка.Ссылка; - КлючеваяОперацияОбъект = КлючеваяОперацияСсылка.ПолучитьОбъект(); + КлючеваяОперацияОбъект = КлючеваяОперацияСсылка.ПолучитьОбъект(); // СправочникОбъект.КлючевыеОперации КлючеваяОперацияОбъект.Имя = КлючеваяОперация.ИмяКлючевойОперацииНовое; КлючеваяОперацияОбъект.Наименование = РазложитьСтрокуПоСловам(КлючеваяОперация.ИмяКлючевойОперацииНовое); Если КлючеваяОперация.Свойство("ЦелевоеВремя") Тогда @@ -229,10 +229,10 @@ // процедуры ЗакончитьЗамерДлительнойОперации. // // Параметры: -// КлючеваяОперация - Строка - ключевая операция. +// КлючеваяОперация - Строка - ключевая операция. // // Возвращаемое значение: -// ОписаниеЗамера - соответствие: +// ОписаниеЗамера - Соответствие: // КлючеваяОперация - имя ключевой операции. // ВремяНачала - время начала ключевой операции в миллисекундах. // ВремяПоследнегоЗамера - время последнего замера ключевой операции в миллисекундах. @@ -257,10 +257,10 @@ // Фиксирует замер вложенного шага длительной операции. // Параметры: -// ОписаниеЗамера - Соответствие - должно быть получено вызовом метода НачатьЗамерДлительнойОперации. -// КоличествоДанных - Число - количество данных, например, строк, обработанных в ходе выполнения вложенного шага. -// ИмяШага - Строка - произвольное имя вложенного шага. -// Комментарий - Строка - произвольное дополнительное описание замера. +// ОписаниеЗамера - Соответствие - должно быть получено вызовом метода НачатьЗамерДлительнойОперации. +// КоличествоДанных - Число - количество данных, например, строк, обработанных в ходе выполнения вложенного шага. +// ИмяШага - Строка - произвольное имя вложенного шага. +// Комментарий - Строка - произвольное дополнительное описание замера. // Процедура ЗафиксироватьЗамерДлительнойОперации(ОписаниеЗамера, КоличествоДанных, ИмяШага, Комментарий = "") Экспорт @@ -297,10 +297,10 @@ // Завершает замер длительной операции. // Если указано имя шага, фиксирует его как отдельный вложенный шаг // Параметры: -// ОписаниеЗамера - Соответствие - должно быть получено вызовом метода НачатьЗамерДлительнойОперации. -// КоличествоДанных - Число - количество данных, например, строк, обработанных в ходе выполнения вложенного шага. -// ИмяШага - Строка - произвольное имя вложенного шага. -// Комментарий - Строка - произвольное дополнительное описание замера. +// ОписаниеЗамера - Соответствие - должно быть получено вызовом метода НачатьЗамерДлительнойОперации. +// КоличествоДанных - Число - количество данных, например, строк, обработанных в ходе выполнения вложенного шага. +// ИмяШага - Строка - произвольное имя вложенного шага. +// Комментарий - Строка - произвольное дополнительное описание замера. // Процедура ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, КоличествоДанных, ИмяШага = "", Комментарий = "") Экспорт @@ -430,7 +430,7 @@ Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); КлючеваяОперацияСсылка = Выборка.Ссылка; - КлючеваяОперацияОбъект = КлючеваяОперацияСсылка.ПолучитьОбъект(); + КлючеваяОперацияОбъект = КлючеваяОперацияСсылка.ПолучитьОбъект(); // СправочникОбъект.КлючевыеОперации КлючеваяОперацияОбъект.ЗавершенаСОшибкой = КлючеваяОперация.Признак; КлючеваяОперацияОбъект.Записать(); @@ -466,11 +466,11 @@ // // Параметры: // ИмяКлючевойОперации - Строка - название ключевой операции. -// ЦелевоеВремя - Число - целевое время ключевой операции. -// Длительная - Булево - признак фиксации удельного времени для замера ключевой операции. +// ЦелевоеВремя - Число - целевое время ключевой операции. +// Длительная - Булево - признак фиксации удельного времени для замера ключевой операции. // // Возвращаемое значение: -// СправочникСсылка.КлючевыеОперации. +// СправочникСсылка.КлючевыеОперации. // Функция СоздатьКлючевуюОперацию(ИмяКлючевойОперации, ЦелевоеВремя = 1, Длительная = Ложь) Экспорт @@ -539,7 +539,7 @@ // // Примеры: // РазложитьСтрокуПоСловам("ОдинДваТри") - возвратит строку "Один два три". -// РазложитьСтрокуПоСловам("одиндватри") - возвратит строку "одиндватри". +// РазложитьСтрокуПоСловам("одиндватри") - возвратит строку "одиндватри". // Функция РазложитьСтрокуПоСловам(Знач Строка) @@ -790,7 +790,7 @@ // // Параметры: // КаталогиЭкспорта - Структура - структура со значением типа Массив. -// ДопПараметры - Структура - дополнительные параметры. +// ДопПараметры - Структура - дополнительные параметры. // Процедура ЭкспортОценкиПроизводительности(КаталогиЭкспорта, ДопПараметры = Неопределено) Экспорт @@ -938,9 +938,9 @@ // Регламентное задание экспорта // Параметры: -// ДопПараметры - Структура: -// * ДатаНачала - Дата - дата начала замеров -// * ДатаОкончания - Дата - дата окончания замеров. +// ДопПараметры - Структура: +// * ДатаНачала - Дата - дата начала замеров +// * ДатаОкончания - Дата - дата окончания замеров. // Функция ЗамерыСРазделениемПоКлючевымОперациям(ВерхняяГраньДатыЗамеров, ДопПараметры = Неопределено) @@ -1064,7 +1064,7 @@ КлючеваяОперацияЗамеры = ТекЗамер.Значение; Для Каждого Комментарий Из КлючеваяОперацияЗамеры["comments"] Цикл - КлючеваяОперация = ФабрикаXDTO.Создать(ТипКлючеваяОперация); + КлючеваяОперация = ФабрикаXDTO.Создать(ТипКлючеваяОперация); // см. XDTOПакет.ApdexExport.KeyOperation КлючеваяОперация.name = КлючеваяОперацияЗамеры["name"]; КлючеваяОперация.nameFull = КлючеваяОперацияЗамеры["nameFull"]; КлючеваяОперация.long = КлючеваяОперацияЗамеры["long"]; diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиВызовСервера/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиВызовСервера/Module.bsl index bd88744b6..6c9c84e84 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиВызовСервера/Module.bsl @@ -11,10 +11,10 @@ // Функция записи массива замеров // // Параметры: -// Замеры - Массив элементов типа Структура. +// Замеры - Массив из Структура // // Возвращаемое значение: -// Число - текущее значение периода записи замеров на сервере в секундах в случае записи замеров. +// Число - текущее значение периода записи замеров на сервере в секундах в случае записи замеров. // Функция ЗафиксироватьДлительностьКлючевыхОпераций(ЗамерыДляЗаписи) Экспорт @@ -186,7 +186,7 @@ // Параметры оценки производительности // // Возвращаемое значение: -// Структура - параметры, полученные на сервере. +// Структура - параметры, полученные на сервере. // Функция ПолучитьПараметрыНаСервере() Экспорт diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиКлиент/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиКлиент/Module.bsl index ba71cc22a..0e26bac71 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиКлиент/Module.bsl @@ -15,24 +15,24 @@ // в случае завершения сеанса часть замеров может быть потеряна. // // Параметры: -// КлючеваяОперация - Строка - имя ключевой операции. Если Неопределено, то ключевую операцию +// КлючеваяОперация - Строка - имя ключевой операции. Если Неопределено, то ключевую операцию // необходимо указать явно вызовом процедуры // УстановитьКлючевуюОперациюЗамера. -// ФиксироватьСОшибкой - Булево - признак автоматической фиксации ошибки. +// ФиксироватьСОшибкой - Булево - признак автоматической фиксации ошибки. // Истина - при автоматическом завершении замера, он будет записан // с признаком "Выполнен с ошибкой". В том месте кода, где ошибка явно // не может возникнуть, необходимо либо явно завершить замер методом // ЗавершитьЗамерВремени, либо снять признак ошибки с помощью метода // УстановитьПризнакОшибкиЗамера. // Ложь - замер будет считаться корректным при автоматическом завершении. -// АвтоЗавершение - Булево - признак автоматического завершения замера. +// АвтоЗавершение - Булево - признак автоматического завершения замера. // Истина - завершение замера будет выполнено автоматически // через глобальный обработчик ожидания. // Ложь - завершить замер необходимо явно вызовом процедуры // ЗавершитьЗамерВремени. // // Возвращаемое значение: -// УникальныйИдентификатор - уникальный идентификатор замера, который позволяет идентифицировать замер. +// УникальныйИдентификатор - уникальный идентификатор замера, который позволяет идентифицировать замер. // Функция ЗамерВремени(КлючеваяОперация = Неопределено, ФиксироватьСОшибкой = Ложь, АвтоЗавершение = Истина) Экспорт @@ -57,17 +57,17 @@ // Результат замера будет записан в РегистрСведений.ЗамерыВремени. // // Параметры: -// АвтоЗавершение - Булево - признак автоматического завершения замера. +// АвтоЗавершение - Булево - признак автоматического завершения замера. // Истина - завершение замера будет выполнено автоматически // через глобальный обработчик ожидания. // Ложь - завершить замер необходимо явно вызовом процедуры // ЗавершитьЗамерВремени. -// КлючеваяОперация - Строка - имя ключевой операции. Если Неопределено> то ключевую операцию +// КлючеваяОперация - Строка - имя ключевой операции. Если Неопределено> то ключевую операцию // необходимо указать явно вызовом процедуры // УстановитьКлючевуюОперациюЗамера. // // Возвращаемое значение: -// УникальныйИдентификатор - уникальный идентификатор замера, который позволяет идентифицировать замер. +// УникальныйИдентификатор - уникальный идентификатор замера, который позволяет идентифицировать замер. // Функция НачатьЗамерВремениТехнологический(АвтоЗавершение = Истина, КлючеваяОперация = Неопределено) Экспорт @@ -121,13 +121,13 @@ // Устанавливает параметры замера. // // Параметры: -// УИДЗамера - УникальныйИдентификатор - уникальный идентификатор замера. -// ПараметрыЗамера - Структура: -// * КлючеваяОперация - Строка - имя ключевой операции. -// * ВесЗамера - Число - количественный показатель сложности замера -// * Комментарий - Строка +// УИДЗамера - УникальныйИдентификатор - уникальный идентификатор замера. +// ПараметрыЗамера - Структура: +// * КлючеваяОперация - Строка - имя ключевой операции. +// * ВесЗамера - Число - количественный показатель сложности замера +// * Комментарий - Строка // - Соответствие - дополнительная произвольной информации замера. -// * ВыполненаСОшибкой - Булево - признак выполнения замера с ошибкой, +// * ВыполненаСОшибкой - Булево - признак выполнения замера с ошибкой, // см. процедуру УстановитьПризнакОшибкиЗамера. // Процедура УстановитьПараметрыЗамера(УИДЗамера, ПараметрыЗамера) Экспорт @@ -145,8 +145,8 @@ // Устанавливает ключевую операцию замера. // // Параметры: -// УИДЗамера - УникальныйИдентификатор - уникальный идентификатор замера. -// КлючеваяОперация - Строка - наименование ключевой операции. +// УИДЗамера - УникальныйИдентификатор - уникальный идентификатор замера. +// КлючеваяОперация - Строка - наименование ключевой операции. // // Если на момент начала замера имя ключевой операции еще неизвестно, // то с помощью этой процедуры в любой момент до завершения замера можно @@ -181,8 +181,8 @@ // Устанавливает вес операции замера. // // Параметры: -// УИДЗамера - УникальныйИдентификатор - уникальный идентификатор замера. -// ВесЗамера - Число - количественный показатель сложности +// УИДЗамера - УникальныйИдентификатор - уникальный идентификатор замера. +// ВесЗамера - Число - количественный показатель сложности // замера, например количество строк в документе. // Процедура УстановитьВесЗамера(УИДЗамера, ВесЗамера) Экспорт @@ -200,7 +200,7 @@ // Параметры: // УИДЗамера - УникальныйИдентификатор - уникальный идентификатор замера. // Комментарий - Строка -// - Соответствие - дополнительная произвольной информации замера. +// - Соответствие из КлючИЗначение - дополнительная произвольной информации замера. // В случае указания соответствия: // * Ключ - Строка - имя дополнительного параметра информации замера. // * Значение - Строка @@ -220,8 +220,8 @@ // Устанавливает признак ошибки операции замера. // // Параметры: -// УИДЗамера - УникальныйИдентификатор - уникальный идентификатор замера. -// Признак - Булево - признак замера. Истина - замер выполнился без ошибок. +// УИДЗамера - УникальныйИдентификатор - уникальный идентификатор замера. +// Признак - Булево - признак замера. Истина - замер выполнился без ошибок. // Ложь - при выполнении замера есть ошибка. // Процедура УстановитьПризнакОшибкиЗамера(УИДЗамера, Признак) Экспорт @@ -239,8 +239,8 @@ // Результат замера будет записан в регистр сведений ЗамерыВремени. // // Параметры: -// КлючеваяОперация - Строка - имя ключевой операции. -// ФиксироватьСОшибкой - Булево - признак автоматической фиксации ошибки. +// КлючеваяОперация - Строка - имя ключевой операции. +// ФиксироватьСОшибкой - Булево - признак автоматической фиксации ошибки. // Истина - при автоматическом завершении замера, он будет записан // с признаком "Выполнен с ошибкой". В том месте кода, где ошибка явно // не может возникнуть, необходимо либо явно завершить замер методом @@ -248,18 +248,18 @@ // УстановитьПризнакОшибкиЗамера // Ложь - замер будет считаться корректны при автоматическом завершении. // ЗавершитьЗамерВремени. -// АвтоЗавершение - Булево - признак автоматического завершения замера. +// АвтоЗавершение - Булево - признак автоматического завершения замера. // Истина - завершение замера будет выполнено автоматически // через глобальный обработчик ожидания. // Ложь - завершить замер необходимо явно вызовом процедуры // ЗавершитьЗамерВремени. -// ИмяПоследнегоШага - Строка - имя последнего шага ключевой операции. Целесообразно использовать, если +// ИмяПоследнегоШага - Строка - имя последнего шага ключевой операции. Целесообразно использовать, если // замер запущен с автоматическим завершением. В противным случае последние // действия, выполненные между ЗафиксироватьЗамерДлительнойОперации и // срабатыванием обработчика ожидания будет записано под именем "Последний шаг". // // Возвращаемое значение: -// ОписаниеЗамера - соответствие: +// ОписаниеЗамера - Соответствие: // КлючеваяОперация - имя ключевой операции. // ВремяНачала - время начала ключевой операции в миллисекундах. // ВремяПоследнегоЗамера - время последнего замера ключевой операции в миллисекундах. @@ -300,10 +300,10 @@ // Фиксирует замер вложенного шага длительной операции. // Параметры: -// ОписаниеЗамера - Соответствие - должно быть получено вызовом метода НачатьЗамерДлительнойОперации. -// КоличествоДанных - Число - количество данных, например, строк, обработанных в ходе выполнения вложенного шага. -// ИмяШага - Строка - произвольное имя вложенного шага. -// Комментарий - Строка - произвольное дополнительное описание замера. +// ОписаниеЗамера - Соответствие - должно быть получено вызовом метода НачатьЗамерДлительнойОперации. +// КоличествоДанных - Число - количество данных, например, строк, обработанных в ходе выполнения вложенного шага. +// ИмяШага - Строка - произвольное имя вложенного шага. +// Комментарий - Строка - произвольное дополнительное описание замера. // Процедура ЗафиксироватьЗамерДлительнойОперации(ОписаниеЗамера, КоличествоДанных, ИмяШага, Комментарий = "") Экспорт @@ -340,10 +340,10 @@ // Завершает замер длительной операции. // Если указано имя шага, фиксирует его как отдельный вложенный шаг // Параметры: -// ОписаниеЗамера - Соответствие - должно быть получено вызовом метода НачатьЗамерДлительнойОперации. -// КоличествоДанных - Число - количество данных, например, строк, обработанных в ходе выполнения вложенного шага. -// ИмяШага - Строка - произвольное имя вложенного шага. -// Комментарий - Строка - произвольное дополнительное описание замера. +// ОписаниеЗамера - Соответствие - должно быть получено вызовом метода НачатьЗамерДлительнойОперации. +// КоличествоДанных - Число - количество данных, например, строк, обработанных в ходе выполнения вложенного шага. +// ИмяШага - Строка - произвольное имя вложенного шага. +// Комментарий - Строка - произвольное дополнительное описание замера. // Процедура ЗакончитьЗамерДлительнойОперации(ОписаниеЗамера, КоличествоДанных, ИмяШага = "", Комментарий = "") Экспорт @@ -383,17 +383,17 @@ // в случае завершения сеанса часть замеров может быть потеряна. // // Параметры: -// АвтоЗавершение - Булево - признак автоматического завершения замера. +// АвтоЗавершение - Булево - признак автоматического завершения замера. // Истина - завершение замера будет выполнено автоматически // через глобальный обработчик ожидания. // Ложь - завершить замер необходимо явно вызовом процедуры // ЗавершитьЗамерВремени. -// КлючеваяОперация - Строка - имя ключевой операции. Если Неопределено> то ключевую операцию +// КлючеваяОперация - Строка - имя ключевой операции. Если Неопределено> то ключевую операцию // необходимо указать явно вызовом процедуры // УстановитьКлючевуюОперациюЗамера. // // Возвращаемое значение: -// УникальныйИдентификатор - уникальный идентификатор замера, который позволяет идентифицировать замер. +// УникальныйИдентификатор - уникальный идентификатор замера, который позволяет идентифицировать замер. // Функция НачатьЗамерВремени(АвтоЗавершение = Истина, КлючеваяОперация = Неопределено) Экспорт @@ -441,18 +441,18 @@ // Результат замера будет записан в регистр сведений ЗамерыВремени. // // Параметры: -// Смещение - Число - дата и время начала замера в миллисекундах (см. ТекущаяУниверсальнаяДатаВМиллисекундах). -// АвтоЗавершение - Булево - признак автоматического завершения замера. +// Смещение - Число - дата и время начала замера в миллисекундах (см. ТекущаяУниверсальнаяДатаВМиллисекундах). +// АвтоЗавершение - Булево - признак автоматического завершения замера. // Истина - завершение замера будет выполнено автоматически // через глобальный обработчик ожидания. // Ложь - завершить замер необходимо явно вызовом процедуры // ЗавершитьЗамерВремени. -// КлючеваяОперация - Строка - имя ключевой операции. Если Неопределено> то ключевую операцию +// КлючеваяОперация - Строка - имя ключевой операции. Если Неопределено> то ключевую операцию // необходимо указать явно вызовом процедуры // УстановитьКлючевуюОперациюЗамера. // // Возвращаемое значение: -// УникальныйИдентификатор - уникальный идентификатор замера, который позволяет идентифицировать замер. +// УникальныйИдентификатор - уникальный идентификатор замера, который позволяет идентифицировать замер. // Функция НачатьЗамерВремениСоСмещением(Смещение, АвтоЗавершение = Истина, КлючеваяОперация = Неопределено) diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиКлиентСервер/Module.bsl index 2fc54115c..be09ff692 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиКлиентСервер/Module.bsl @@ -124,7 +124,7 @@ // ОбластьДобавления - контейнер с элементами и группами отбора, например. // Список.Отбор или группа в отборе. // ИмяПоля - Строка - имя поля компоновки данных (заполняется всегда). -// ПравоеЗначение - произвольный - сравниваемое значение. +// ПравоеЗначение - Произвольный - сравниваемое значение. // ВидСравнения - ВидСравненияКомпоновкиДанных - вид сравнения. // Представление - Строка - представление элемента компоновки данных. // Использование - Булево - использование элемента. @@ -181,7 +181,7 @@ // Параметры: // ИмяПоля - Строка - имя поля компоновки данных (заполняется всегда). // Представление - Строка - представление элемента компоновки данных. -// ПравоеЗначение - произвольный - сравниваемое значение. +// ПравоеЗначение - Произвольный - сравниваемое значение. // ВидСравнения - ВидСравненияКомпоновкиДанных - вид сравнения. // Использование - Булево - использование элемента. // РежимОтображения - РежимОтображенияЭлементаНастройкиКомпоновкиДанных - режим отображения. @@ -241,7 +241,7 @@ // ОбластьПоискаДобавления - контейнер с элементами и группами отбора, например. // Список.Отбор или группа в отборе. // ИмяПоля - Строка - имя поля компоновки данных (заполняется всегда). -// ПравоеЗначение - произвольный - сравниваемое значение. +// ПравоеЗначение - Произвольный - сравниваемое значение. // ВидСравнения - ВидСравненияКомпоновкиДанных - вид сравнения. // Представление - Строка - представление элемента компоновки данных. // Использование - Булево - использование элемента. diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиПовтИсп/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиПовтИсп/Module.bsl index 96d065cc3..aa15d8dcf 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиПовтИсп/Module.bsl @@ -14,10 +14,10 @@ // // Параметры: // ИмяКлючевойОперации - Строка - название ключевой операции. -// ВыполненаСОшибкой - Булево - признак ключевой операции. +// ВыполненаСОшибкой - Булево - признак ключевой операции. // // Возвращаемое значение: -// СправочникСсылка.КлючевыеОперации +// СправочникСсылка.КлючевыеОперации // Функция ПолучитьКлючевуюОперациюПоИмени(ИмяКлючевойОперации, Длительная = Ложь) Экспорт @@ -100,7 +100,7 @@ // Возвращает массив существующих в конфигурации разделителей. // // Возвращаемое значение: -// ФиксированныйМассив Из Строка - массив имен общих реквизитов, которые +// ФиксированныйМассив из Строка - массив имен общих реквизитов, которые // являются разделителями. // Функция РазделителиКонфигурации() Экспорт diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиСлужебный/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиСлужебный/Module.bsl index d10d36c11..253ecc280 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиСлужебный/Module.bsl @@ -10,9 +10,9 @@ // Получает N худших замеров производительности за период. // Параметры: -// ДатаНачала - ДатаВремя - начало периода выборки. -// ДатаОкончания - ДатаВремя - окончание периода выборка. -// ТопApdexКоличество - Число - количество худших замеров, если но, то возвращаются все замеры. +// ДатаНачала - ДатаВремя - начало периода выборки. +// ДатаОкончания - ДатаВремя - окончание периода выборка. +// ТопApdexКоличество - Число - количество худших замеров, если но, то возвращаются все замеры. // Функция ПолучитьТопAPDEX(ДатаНачала, ДатаОкончания, ПериодАгрегации, ТопApdexКоличество) Экспорт Возврат РегистрыСведений.ЗамерыВремени.ПолучитьТопAPDEX(ДатаНачала, ДатаОкончания, ПериодАгрегации, ТопApdexКоличество); @@ -20,9 +20,9 @@ // Получает N худших замеров производительности технологической за период. // Параметры: -// ДатаНачала - ДатаВремя - начало периода выборки. -// ДатаОкончания - ДатаВремя - окончание периода выборка. -// ТопApdexКоличество - Число - количество худших замеров, если но, то возвращаются все замеры. +// ДатаНачала - ДатаВремя - начало периода выборки. +// ДатаОкончания - ДатаВремя - окончание периода выборка. +// ТопApdexКоличество - Число - количество худших замеров, если но, то возвращаются все замеры. // Функция ПолучитьТопAPDEXТехнологический(ДатаНачала, ДатаОкончания, ПериодАгрегации, ТопApdexКоличество) Экспорт Возврат РегистрыСведений.ЗамерыВремениТехнологические.ПолучитьТопAPDEX(ДатаНачала, ДатаОкончания, ПериодАгрегации, ТопApdexКоличество); @@ -32,9 +32,6 @@ // Обработчики событий подсистем конфигурации. // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -56,10 +53,7 @@ КонецПроцедуры -// См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей. -// Параметры: -// НазначениеРолей - см. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей.НазначениеРолей -// +// См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей Процедура ПриОпределенииНазначенияРолей(НазначениеРолей) Экспорт // ТолькоДляПользователейСистемы. @@ -70,7 +64,7 @@ // См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий. // Параметры: -// Зависимости - см. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий.Настройки +// Зависимости - см. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий.Настройки // Процедура ПриОпределенииНастроекРегламентныхЗаданий(Зависимости) Экспорт Зависимость = Зависимости.Добавить(); @@ -79,9 +73,6 @@ КонецПроцедуры // См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. -// Параметры: -// ЗапросыРазрешений - см. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам.ЗапросыРазрешений -// Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт Если ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда @@ -142,7 +133,7 @@ // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса. // Параметры: -// УстановленныеПараметры - Массив +// УстановленныеПараметры - Массив // Процедура УстановкаПараметровСеанса(ИмяПараметра, УстановленныеПараметры) Экспорт @@ -241,7 +232,7 @@ // Возвращает каталоги экспорта файлов с результатами замеров. // // Параметры: -// Нет +// Нет // // Возвращаемое значение: // Структура: @@ -303,9 +294,9 @@ // В противном случае возвращается пустая ссылка. // // Параметры: -// Нет +// Нет // Возвращаемое значение: -// СправочникСсылка.КлючевыеОперации +// СправочникСсылка.КлючевыеОперации // Функция ПолучитьЭлементОбщаяПроизводительностьСистемы() Экспорт @@ -373,7 +364,7 @@ // Параметры - КаталогиЭкспорта - Структура // // Возвращаемое значение: -// Массив +// Массив // Функция РазрешенияНаРесурсыСервера(Каталоги) @@ -463,8 +454,8 @@ // * ОтключитьИдентификаторыОбъектовМетаданных - Булево - отключает заполнение справочников ИдентификаторыОбъектовМетаданных // и ИдентификаторыОбъектовРасширений, процедуру выгрузки и загрузки в узлах РИБ. // Для частичного встраивания отдельных функций библиотеки в конфигурации без постановки на поддержку. -// * ОтключенныеПодсистемы - Соответствие - позволяет виртуально отключать подсистемы для целей -// тестирования. +// * ОтключенныеПодсистемы - Соответствие из КлючИЗначение - позволяет виртуально отключать +// подсистемы для целей тестирования. // Если подсистема отключена, то метод ОбщегоНазначения.ПодсистемаСуществует // вернет Ложь. В соответствии ключ - имя отключенной подсистемы, // значение необходимо установить в Истина. diff --git a/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыки/Module.bsl b/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыки/Module.bsl new file mode 100644 index 000000000..d42ea1a25 --- /dev/null +++ b/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыки/Module.bsl @@ -0,0 +1,388 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Переводит текст на другой язык с использованием сервиса перевода текста. +// +// Параметры: +// Текст - Строка - произвольный текст. +// ЯзыкПеревода - Строка - код языка в формате ISO 639-1, на который выполняется перевод. +// Например, "en". +// Если не указан, то перевод выполняется на текущий язык. +// ИсходныйЯзык - Строка - код языка в формате ISO 639-1, с которого выполняется перевод. +// Например, "ru". +// Если не указан, то язык будет установлен сервисом перевода текста. +// +// Возвращаемое значение: +// Строка +// +Функция ПеревестиТекст(Текст, ЯзыкПеревода = Неопределено, ИсходныйЯзык = Неопределено) Экспорт + + Если Не ЗначениеЗаполнено(Текст) Тогда + Возврат Текст; + КонецЕсли; + + Возврат ПеревестиТексты(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Текст), ЯзыкПеревода, ИсходныйЯзык)[Текст]; + +КонецФункции + +// Переводит тексты на другой язык с использованием сервиса перевода текста. +// +// Параметры: +// Тексты - Массив из Строка - произвольные тексты. +// ЯзыкПеревода - Строка - код языка в формате ISO 639-1, на который выполняется перевод. +// Например, "en". +// Если не указан, то перевод выполняется на текущий язык. +// ИсходныйЯзык - Строка - код языка в формате ISO 639-1, с которого выполняется перевод. +// Например, "ru". +// Если не указан, то язык будет установлен сервисом перевода текста. +// +// Возвращаемое значение: +// Соответствие из КлючИЗначение: +// * Ключ - Строка - текст; +// * Значение - Строка - перевод. +// +Функция ПеревестиТексты(Тексты, ЯзыкПеревода = Неопределено, ИсходныйЯзык = Неопределено) Экспорт + + ПроверитьНастройки(); + + Если ЗначениеЗаполнено(ИсходныйЯзык) И ЯзыкПеревода = ИсходныйЯзык Тогда + НайденныеПереводы = Новый Соответствие; + Для Каждого Текст Из Тексты Цикл + НайденныеПереводы.Вставить(Текст, Текст); + КонецЦикла; + Возврат НайденныеПереводы; + КонецЕсли; + + НайденныеПереводы = НайтиПереводТекстов(Тексты, ЯзыкПеревода, ИсходныйЯзык); + ТекстыТребующиеПеревод = Новый Массив; + + Для Каждого Текст Из Тексты Цикл + Если ЗначениеЗаполнено(НайденныеПереводы[Текст]) Тогда + Продолжить; + КонецЕсли; + Если ЗначениеЗаполнено(Текст) Тогда + ТекстыТребующиеПеревод.Добавить(Текст); + Иначе + НайденныеПереводы.Вставить(Текст, Текст); + КонецЕсли; + КонецЦикла; + + Если Не ПолучитьФункциональнуюОпцию("ИспользоватьСервисПереводаТекста") Тогда + Возврат НайденныеПереводы; + КонецЕсли; + + МодульСервисаПереводаТекста = МодульСервисаПереводаТекста(); + + ОчередьПеревода = Новый Массив; + Порция = Новый Массив; + РазмерПорции = 0; + МаксимальныйРазмерПорции = МодульСервисаПереводаТекста.МаксимальныйРазмерПорции(); + + Для Каждого Текст Из ТекстыТребующиеПеревод Цикл + Если РазмерПорции + СтрДлина(Текст) <= МаксимальныйРазмерПорции Тогда + Порция.Добавить(Текст); + РазмерПорции = РазмерПорции + СтрДлина(Текст); + Иначе + ОчередьПеревода.Добавить(Порция); + Порция = Новый Массив; + РазмерПорции = 0; + КонецЕсли; + КонецЦикла; + Если ЗначениеЗаполнено(Порция) Тогда + ОчередьПеревода.Добавить(Порция); + КонецЕсли; + + Для Каждого Порция Из ОчередьПеревода Цикл + Попытка + Переводы = МодульСервисаПереводаТекста.ПеревестиТексты(Порция, ЯзыкПеревода, ИсходныйЯзык); + Исключение + ЗаписьЖурналаРегистрации(НСтр("ru = 'Перевод текста'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, + Метаданные.Перечисления.СервисыПереводаТекста, Константы.СервисПереводаТекста.Получить(), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + + Если Пользователи.ЭтоПолноправныйПользователь() Тогда + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( + "ru = 'Не удалось выполнить операцию по причине: + |%1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + Иначе + ТекстОшибки = НСтр("ru = 'Не удалось выполнить операцию. Обратитесь к администратору.'"); + КонецЕсли; + + ВызватьИсключение ТекстОшибки; + КонецПопытки; + Для Каждого Перевод Из Переводы Цикл + СохранитьПереводТекста(Перевод.Ключ, Перевод.Значение, ИсходныйЯзык, ЯзыкПеревода); + НайденныеПереводы.Вставить(Перевод.Ключ, Перевод.Значение); + КонецЦикла; + КонецЦикла; + + Возврат НайденныеПереводы; + +КонецФункции + +// Возвращает список языков, поддерживаемых сервисом перевода текста. +// +// Возвращаемое значение: +// СписокЗначений: +// * Значение - код языка; +// * Представление - представление языка. +// +Функция ДоступныеЯзыки() Экспорт + + ПредставленияЯзыков = Новый Соответствие; + Для Каждого КодЯзыка Из ПолучитьДопустимыеКодыЛокализации() Цикл + ПредставленияЯзыков.Вставить(КодЯзыка, ПредставлениеКодаЛокализации(КодЯзыка)); + КонецЦикла; + + Результат = Новый СписокЗначений; + + МодульСервисаПереводаТекста = МодульСервисаПереводаТекста(); + Если МодульСервисаПереводаТекста = Неопределено Тогда + Возврат Результат; + КонецЕсли; + + Попытка + ДоступныеЯзыки = МодульСервисаПереводаТекста.ДоступныеЯзыки(); + Исключение + ЗаписьЖурналаРегистрации(НСтр("ru = 'Перевод текста'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, + Метаданные.Перечисления.СервисыПереводаТекста, Константы.СервисПереводаТекста.Получить(), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + + Если Пользователи.ЭтоПолноправныйПользователь() Тогда + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр( + "ru = 'Не удалось выполнить операцию по причине: + |%1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + Иначе + ТекстОшибки = НСтр("ru = 'Не удалось выполнить операцию. Обратитесь к администратору.'"); + КонецЕсли; + + ВызватьИсключение ТекстОшибки; + КонецПопытки; + + Для Каждого КодЯзыка Из ДоступныеЯзыки Цикл + Представление = ПредставленияЯзыков[КодЯзыка]; + Если ЗначениеЗаполнено(Представление) Тогда + Результат.Добавить(КодЯзыка, ТРег(Представление)); + КонецЕсли; + КонецЦикла; + + Результат.СортироватьПоПредставлению(); + + Возврат Результат; + +КонецФункции + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура УстановитьИспользованиеСервисаПереводаТекста(Использовать) Экспорт + + Константы.ИспользоватьСервисПереводаТекста.Установить(Использовать); + +КонецПроцедуры + +Функция ДоступенПереводТекста() Экспорт + + Возврат ПолучитьФункциональнуюОпцию("ИспользоватьСервисПереводаТекста"); + +КонецФункции + +Функция СервисПереводаТекста() Экспорт + + Возврат Константы.СервисПереводаТекста.Получить(); + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция НайтиПереводТекстов(Тексты, ЯзыкПеревода, ИсходныйЯзык) + + ТекстыДляПоиска = Новый Массив; + ИдентификаторыТекстов = Новый Соответствие; + Для Каждого Текст Из Тексты Цикл + ИдентификаторТекста = ИдентификаторТекста(Текст); + ТекстыДляПоиска.Добавить(ИдентификаторТекста); + ИдентификаторыТекстов.Вставить(Текст, ИдентификаторТекста); + КонецЦикла; + + ТекстЗапроса = + "ВЫБРАТЬ + | КэшПереводов.Текст КАК Текст, + | КэшПереводов.Перевод КАК Перевод, + | КэшПереводов.ИсходныйЯзык КАК ИсходныйЯзык + |ИЗ + | РегистрСведений.КэшПереводов КАК КэшПереводов + |ГДЕ + | КэшПереводов.Текст В(&Текст) + | И КэшПереводов.ЯзыкПеревода = &ЯзыкПеревода + | И КэшПереводов.ИсходныйЯзык = &ИсходныйЯзык"; + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("Текст", ТекстыДляПоиска); + Запрос.УстановитьПараметр("ЯзыкПеревода", ЯзыкПеревода); + Запрос.УстановитьПараметр("ИсходныйЯзык", ИсходныйЯзык); + + ПереведенныеТексты = Новый Соответствие; + + УстановитьПривилегированныйРежим(Истина); + Выборка = Запрос.Выполнить().Выбрать(); + УстановитьПривилегированныйРежим(Ложь); + + Пока Выборка.Следующий() Цикл + ПереведенныеТексты.Вставить(Выборка.Текст, Выборка.Перевод); + КонецЦикла; + + Результат = Новый Соответствие; + Для Каждого Текст Из Тексты Цикл + Результат.Вставить(Текст, ПереведенныеТексты[ИдентификаторыТекстов[Текст]]); + КонецЦикла; + + Возврат Результат; + +КонецФункции + +Процедура СохранитьПереводТекста(Текст, Перевод, ИсходныйЯзык, ЯзыкПеревода) + + Если Не ЗначениеЗаполнено(Текст) Или Не ЗначениеЗаполнено(Перевод) Или Не ЗначениеЗаполнено(ЯзыкПеревода) Тогда + Возврат; + КонецЕсли; + + ИдентификаторТекста = ИдентификаторТекста(Текст); + + НаборЗаписей = РегистрыСведений.КэшПереводов.СоздатьНаборЗаписей(); + НаборЗаписей.Отбор.Текст.Установить(ИдентификаторТекста); + НаборЗаписей.Отбор.ЯзыкПеревода.Установить(ЯзыкПеревода); + НаборЗаписей.Отбор.ИсходныйЯзык.Установить(ИсходныйЯзык); + Запись = НаборЗаписей.Добавить(); + Запись.Текст = ИдентификаторТекста; + Запись.ИсходныйЯзык = ИсходныйЯзык; + Запись.ЯзыкПеревода = ЯзыкПеревода; + Запись.Перевод = СокрЛП(Перевод); + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КэшПереводов"); + ЭлементБлокировки.УстановитьЗначение("Текст", ИдентификаторТекста); + ЭлементБлокировки.УстановитьЗначение("ИсходныйЯзык", ИсходныйЯзык); + ЭлементБлокировки.УстановитьЗначение("ЯзыкПеревода", ЯзыкПеревода); + + УстановитьПривилегированныйРежим(Истина); + + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + НаборЗаписей.Записать(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +Функция ИдентификаторТекста(Знач Текст) + + Возврат ОбщегоНазначения.СократитьСтрокуКонтрольнойСуммой(НРег(СокрЛП(Текст)), 50); + +КонецФункции + +Функция ПредставлениеЯзыка(КодЯзыка) Экспорт + + Если ПолучитьДопустимыеКодыЛокализации().Найти(КодЯзыка) <> Неопределено Тогда + Возврат ПредставлениеКодаЛокализации(КодЯзыка); + КонецЕсли; + + Возврат ""; + +КонецФункции + +Функция МодульСервисаПереводаТекста(Знач СервисПереводаТекста = Неопределено) + + Если СервисПереводаТекста = Неопределено Тогда + СервисПереводаТекста = Константы.СервисПереводаТекста.Получить(); + КонецЕсли; + + Возврат МодулиСервисовПереводаТекста()[СервисПереводаТекста]; + +КонецФункции + +// Имена модулей соответствуют именам значений перечисления СервисыПереводаТекста. +Функция МодулиСервисовПереводаТекста() + + Результат = Новый Соответствие; + + Для Каждого ОбъектМетаданных Из Метаданные.Перечисления.СервисыПереводаТекста.ЗначенияПеречисления Цикл + ИмяМодуля = ОбъектМетаданных.Имя; + Если Метаданные.ОбщиеМодули.Найти(ИмяМодуля) <> Неопределено Тогда + Результат.Вставить(Перечисления.СервисыПереводаТекста[ОбъектМетаданных.Имя], ОбщегоНазначения.ОбщийМодуль(ИмяМодуля)); + КонецЕсли; + КонецЦикла; + + Возврат Результат; + +КонецФункции + +Процедура ПроверитьНастройки() + + МодульСервисаПереводаТекста = МодульСервисаПереводаТекста(); + Если МодульСервисаПереводаТекста = Неопределено Или Не МодульСервисаПереводаТекста.НастройкаВыполнена() Тогда + ВызватьИсключение НСтр("ru = 'Не указаны настройки сервиса перевода текстов.'"); + КонецЕсли; + +КонецПроцедуры + +// Возвращаемое значение: +// Структура: +// * ИнструкцияПоПодключению - Строка +// * ПараметрыАвторизации - см. ПараметрыАвторизации +// +Функция НастройкиСервисаПереводаТекста(СервисПереводаТекста) Экспорт + + Настройки = Новый Структура; + Настройки.Вставить("ИнструкцияПоПодключению"); + Настройки.Вставить("ПараметрыАвторизации", ПараметрыАвторизации()); + МодульСервисаПереводаТекста(СервисПереводаТекста).ПриОпределенииНастроек(Настройки); + + Возврат Настройки; + +КонецФункции + +// Возвращаемое значение: +// ТаблицаЗначений: +// * Имя - Строка +// * Представление - Строка +// * Подсказка - Строка +// * ОтображениеПодсказки - ОтображениеПодсказки +// +Функция ПараметрыАвторизации() + + Результат = Новый ТаблицаЗначений; + Результат.Колонки.Добавить("Имя"); + Результат.Колонки.Добавить("Представление"); + Результат.Колонки.Добавить("Подсказка"); + Результат.Колонки.Добавить("ОтображениеПодсказки", Новый ОписаниеТипов("ОтображениеПодсказки")); + + Возврат Результат; + +КонецФункции + +Функция НастройкиАвторизации(Знач СервисПереводаТекста = Неопределено) Экспорт + + МодульСервисаПереводаТекста = МодульСервисаПереводаТекста(СервисПереводаТекста); + Если МодульСервисаПереводаТекста = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + Возврат МодульСервисаПереводаТекста(СервисПереводаТекста).НастройкиАвторизации(); + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыки/ПереводТекстаНаДругиеЯзыки.mdo b/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыки/ПереводТекстаНаДругиеЯзыки.mdo new file mode 100644 index 000000000..48477af12 --- /dev/null +++ b/SSL/src/CommonModules/ПереводТекстаНаДругиеЯзыки/ПереводТекстаНаДругиеЯзыки.mdo @@ -0,0 +1,11 @@ + + + ПереводТекстаНаДругиеЯзыки + + ru + Перевод текста на другие языки + + true + true + true + diff --git a/SSL/src/CommonModules/ПодключаемыеКоманды/Module.bsl b/SSL/src/CommonModules/ПодключаемыеКоманды/Module.bsl index 11d495fe9..c955da9b8 100644 --- a/SSL/src/CommonModules/ПодключаемыеКоманды/Module.bsl +++ b/SSL/src/CommonModules/ПодключаемыеКоманды/Module.bsl @@ -165,7 +165,7 @@ // Задает условия видимости команды на форме в зависимости от контекста. // // Параметры: -// Команда - СтрокаТаблицыЗначений - команда, для которой добавляется условие видимости. +// Команда - СтрокаТаблицыЗначений: см. УправлениеПечатью.СоздатьКоллекциюКомандПечати // Реквизит - Строка - имя реквизита объекта. // Значение - Произвольный - значение реквизита объекта. Параметр обязательный для всех видов // сравнения кроме Заполнено и НеЗаполнено. @@ -274,18 +274,18 @@ // // Параметры: // ПолноеИмя - Строка - полное имя объекта метаданных. -// НастройкиПрограммногоИнтерфейса - Произвольный - результат выполнения функции -// НастройкиПрограммногоИнтерфейсаПодключаемыхОбъектов(). +// НастройкиПрограммногоИнтерфейса - см. ПодключаемыеКоманды.НастройкиПрограммногоИнтерфейсаПодключаемыхОбъектов. // // Возвращаемое значение: // Структура - настройки интеграции этого объекта. // Состав полей см. в блоке "Параметры процедуры ПриОпределенииНастроек" -// процедуры ПодключаемыеКомандыПереопределяемый.ПриОпределенииСоставаНастроекПодключаемыхОбъектов(). +// процедуры ПодключаемыеКомандыПереопределяемый.ПриОпределенииСоставаНастроекПодключаемыхОбъектов. // Дополнительно содержит следующие поля: // * Вид - Строка - вид имя объекта метаданных в верхнем регистре. // * ПолноеИмя - Строка - полное имя объекта метаданных. // * Менеджер - ОбработкаМенеджер // - ОтчетМенеджер - менеджер объекта метаданных. +// Неопределено - если настройки не удалось получить. // Функция НастройкиПодключаемогоОбъекта(ПолноеИмя, НастройкиПрограммногоИнтерфейса = Неопределено) Экспорт ЧастиИмени = СтрРазделить(ПолноеИмя, "."); @@ -357,8 +357,7 @@ // // Параметры: // ОбъектМетаданных - ОбъектМетаданных - объект метаданных, к которому подключены источники команд. -// Источники - ДеревоЗначений - см. описание одноименного параметра -// процедуры ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту(). +// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники. // ПодключенныеОбъекты - см. ПодключаемыеКоманды.ТаблицаПодключаемыхОбъектов // НастройкиПрограммногоИнтерфейса - см. ПодключаемыеКоманды.НастройкиПрограммногоИнтерфейсаПодключаемыхОбъектов // @@ -408,7 +407,7 @@ // Шаблон сведений об объектах метаданных - источников команд. // // Возвращаемое значение: -// См. описание 2 параметра процедуры ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту(). +// см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники. // Функция ДеревоИсточниковКоманд() Экспорт Результат = Новый ДеревоЗначений; @@ -774,7 +773,7 @@ БыстрыйПоискСведенийОПодменю.Вставить(НРег(ИмяПодменюПоУмолчанию), СведенияОПодменюПоУмолчанию); КонецЕсли; - Для Каждого Команда Из КомандыВида Цикл + Для Каждого Команда Из КомандыВида Цикл // СтрокаТаблицыЗначений: см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды Если ПустаяСтрока(Команда.Подменю) Тогда СведенияОПодменюКоманды = СведенияОПодменюПоУмолчанию; Иначе @@ -862,7 +861,7 @@ КонецЕсли; ЭтоКоманднаяПанель = (СведенияОПодменю.Подменю = КоманднаяПанель); КомандаФормы = СведенияОПодменю.ПоследняяКоманда; - Подменю = СведенияОПодменю.Подменю; + Подменю = СведенияОПодменю.Подменю; // ГруппаФормы Если Не ЭтоКоманднаяПанель Тогда Если СведенияОПодменю.ВыведеноКоманд = 1 И КомандаФормы <> Неопределено Тогда @@ -1455,7 +1454,7 @@ Результат = Результат + "Форма"+СтрСоединить(ЧастиПутиЗначениеПометки, ""); Возврат Результат; -КонецФункции // () +КонецФункции #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ПодключаемыеКомандыКлиент/Module.bsl b/SSL/src/CommonModules/ПодключаемыеКомандыКлиент/Module.bsl index 6bccfabba..87b0743ea 100644 --- a/SSL/src/CommonModules/ПодключаемыеКомандыКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПодключаемыеКомандыКлиент/Module.bsl @@ -42,7 +42,7 @@ // Команда - КомандаФормы - выполняемая команда. // Источник - ТаблицаФормы // - ДанныеФормыСтруктура -// - Ссылка +// - ЛюбаяСсылка // - Массив - объект или список формы с полем "Ссылка", // Ссылка или массив ссылок. // @@ -80,7 +80,7 @@ // Параметры: // Форма - ФормаКлиентскогоПриложения - форма, на которой необходимо обновить команды печати. // Объект - ДанныеФормыСтруктура -// - Ссылка - объект формы с полем "Ссылка". +// - ЛюбаяСсылка - объект формы с полем "Ссылка". // ПараметрыЗаписи - Структура - произвольные параметры записи. См. описание события ПослеЗаписи в синтакс-помощнике. // Процедура ПослеЗаписи(Форма, Объект, ПараметрыЗаписи) Экспорт diff --git a/SSL/src/CommonModules/ПодключаемыеКомандыПереопределяемый/Module.bsl b/SSL/src/CommonModules/ПодключаемыеКомандыПереопределяемый/Module.bsl index e76bfc309..573593ba1 100644 --- a/SSL/src/CommonModules/ПодключаемыеКомандыПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ПодключаемыеКомандыПереопределяемый/Module.bsl @@ -113,6 +113,11 @@ // * Картинка - Картинка - картинка команды. Необязательный. // * СочетаниеКлавиш - СочетаниеКлавиш - сочетание клавиш для быстрого вызова команды. Необязательный. // * ТолькоВоВсехДействиях - Булево - отображать команду только в меню Еще. +// * ЗначениеПометки - Строка - путь к реквизиту, где содержится значение пометки команды. Если источником команд является +// Таблица формы, то возможно использовать параметр %Источник%. +// Пример: +// - ЗначениеПометок.%Источник%, где ЗначениеПометок - реквизит формы произвольного типа, в котором содержится структура. +// - Объект.ПометкаУдаления, где Объект - реквизит формы с типом СправочникОбъект. // // Настройки видимости и доступности: // * ТипПараметра - ОписаниеТипов - типы объектов, для которых предназначена эта команда. @@ -138,12 +143,12 @@ // В этом случае в параметре выполнения будет передан список ссылок. // Необязательный. Значение по умолчанию - Истина. // * РежимЗаписи - Строка - действия, связанные с записью объекта, которые выполняются перед обработчиком команды: -// ** "НеЗаписывать" - объект не записывается, а в параметрах обработчика вместо ссылок передается +// "НеЗаписывать" - объект не записывается, а в параметрах обработчика вместо ссылок передается // вся форма. В этом режиме рекомендуется работать напрямую с формой, // которая передается в структуре 2-го параметра обработчика команды. -// ** "ЗаписыватьТолькоНовые" - записывать новые объекты. -// ** "Записывать" - записывать новые и модифицированные объекты. -// ** "Проводить" - проводить документы. +// "ЗаписыватьТолькоНовые" - записывать новые объекты. +// "Записывать" - записывать новые и модифицированные объекты. +// "Проводить" - проводить документы. // Перед записью и проведением у пользователя запрашивается подтверждение. // Необязательный. Значение по умолчанию - "Записывать". // * ТребуетсяРаботаСФайлами - Булево - если Истина, то в веб-клиенте предлагается diff --git a/SSL/src/CommonModules/ПоискИУдалениеДублей/Module.bsl b/SSL/src/CommonModules/ПоискИУдалениеДублей/Module.bsl index ab77ccd66..1690a7762 100644 --- a/SSL/src/CommonModules/ПоискИУдалениеДублей/Module.bsl +++ b/SSL/src/CommonModules/ПоискИУдалениеДублей/Module.bsl @@ -225,7 +225,7 @@ // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииВидовПодключаемыхКоманд. // // Параметры: -// ВидыПодключаемыхКоманд - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииВидовПодключаемыхКоманд.ВидыПодключаемыхКоманд +// ВидыПодключаемыхКоманд - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииВидовПодключаемыхКоманд.ВидыПодключаемыхКоманд // Процедура ПриОпределенииВидовПодключаемыхКоманд(ВидыПодключаемыхКоманд) Экспорт @@ -246,10 +246,10 @@ // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту. // // Параметры: -// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы -// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники -// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки -// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды +// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы +// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники +// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки +// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды // Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт @@ -333,7 +333,7 @@ // // Параметры: // Параметры - Структура: -// * ПарыЗамен - Соответствие: +// * ПарыЗамен - Соответствие из КлючИЗначение: // * Ключ - ЛюбаяСсылка - что ищем (дубль). // * Значение - ЛюбаяСсылка - на что заменяем (оригинал). // Ссылки сами на себя и пустые ссылки для поиска будут проигнорированы. @@ -495,11 +495,11 @@ // // Возвращаемое значение: // ТаблицаЗначений: -// * Ключ - Тип -// * ТипРеквизита - Строка -// * ИмяРеквизита - Строка -// * Используется - Булево -// * Метаданные - ОбъектМетаданных +// * Ключ - Строка +// * ТипРеквизита - Тип +// * ИмяРеквизита - Строка +// * Используется - Булево +// * Метаданные - ОбъектМетаданных // Функция СвязиПодчиненныхОбъектовПоТипам() Экспорт @@ -605,11 +605,11 @@ КонецПроцедуры // Параметры: -// ТаблицаЗамен - ТаблицаЗначений: -// * Ссылка - ЛюбаяСсылка -// * Замена - ЛюбаяСсылка -// ПарыЗамен - Соответствие -// НеподобранныеЗамены - Массив из ЛюбаяСсылка +// ТаблицаЗамен - ТаблицаЗначений: +// * Ссылка - ЛюбаяСсылка +// * Замена - ЛюбаяСсылка +// ПарыЗамен - Соответствие +// НеподобранныеЗамены - Массив из ЛюбаяСсылка // Процедура ДобавитьНайденныеКлючиВДубли(ТаблицаЗамен, ПарыЗамен, НеподобранныеЗамены) @@ -626,24 +626,24 @@ КонецПроцедуры // Параметры: -// НайденныйДубль - СтрокаТаблицыЗначений: -// * Ссылка - ЛюбаяСсылка -// * Замена - ЛюбаяСсылка -// ОписаниеПодчиненногоОбъекта - Произвольный -// ИспользуемыеСвязи - ТаблицаЗначений: +// НайденныйДубль - СтрокаТаблицыЗначений: +// * Ссылка - ЛюбаяСсылка +// * Замена - ЛюбаяСсылка +// ОписаниеПодчиненногоОбъекта - Произвольный +// ИспользуемыеСвязи - ТаблицаЗначений: // * Ключ - Тип // * ТипРеквизита - Строка // * ИмяРеквизита - Строка // * Используется - Булево // * Метаданные - ОбъектМетаданных // Возвращаемое значение: -// Структура: +// Структура: // * ИспользуемыеСвязи - ТаблицаЗначений: -// ** Ключ - Тип -// ** ТипРеквизита - Строка -// ** ИмяРеквизита - Строка -// ** Используется - Булево -// ** Метаданные - ОбъектМетаданных +// ** Ключ - Тип +// ** ТипРеквизита - Строка +// ** ИмяРеквизита - Строка +// ** Используется - Булево +// ** Метаданные - ОбъектМетаданных // * ЗаменяемоеЗначение - ЛюбаяСсылка // Функция НовыйПараметрыЗамены(НайденныйДубль, ОписаниеПодчиненногоОбъекта, ИспользуемыеСвязи) @@ -688,31 +688,31 @@ Для каждого КлючевойРеквизит Из ОписаниеПодчиненногоОбъекта.КлючевыеРеквизиты Цикл - Значение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ОБЪЕДИНИТЬ - |ВЫБРАТЬ - | Таб.Ссылка КАК Ссылка - | {НеИзменяемыеРеквизиты} - | {ИзменяемыеРеквизиты} + Значение = "ОБЪЕДИНИТЬ" // @query-part + + СтрЗаменить(" ВЫБРАТЬ + | Таб.Ссылка КАК Ссылка, + | &НеИзменяемыеРеквизиты, + | &ИзменяемыеРеквизиты |ИЗ - | {ТаблицаКлюча} КАК Таб + | #ТаблицаКлюча КАК Таб |ГДЕ - | Таб.%1 В + | &КлючевойРеквизит В | (ВЫБРАТЬ | Таб.Оригинал | ИЗ - | ТаблицаЗамен КАК Таб)", КлючевойРеквизит); + | ТаблицаЗамен КАК Таб)", "&КлючевойРеквизит","Таб." + КлючевойРеквизит); ЗначениеКлючей = ЗначениеКлючей + Значение; - Значение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("И Таб.%1 = Замена.%1 ", КлючевойРеквизит); - СвязиПоКлючу = СвязиПоКлючу + Значение; + Значение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Таб.%1 = Замена.%1 ", КлючевойРеквизит); + СвязиПоКлючу = СвязиПоКлючу + ?(ПустаяСтрока(СвязиПоКлючу), Значение, "И " + Значение); Если ИзменяемыеРеквизитыМассив.Найти(КлючевойРеквизит) <> Неопределено Тогда - Значение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(",Таб.%1 КАК %1", КлючевойРеквизит); - ИзменяемыеРеквизиты = ИзменяемыеРеквизиты + Значение; + Значение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Таб.%1 КАК %1", КлючевойРеквизит); + ИзменяемыеРеквизиты = ИзменяемыеРеквизиты + ?(ПустаяСтрока(ИзменяемыеРеквизиты),Значение, ","+Значение); - Значение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(",ВЫБОР КОГДА Замена%1.Оригинал IS NULL ТОГДА Таб.%1 ИНАЧЕ Замена%1.Дубль КОНЕЦ КАК %1", КлючевойРеквизит); - ЗначениеИзменяемыеРеквизиты = ЗначениеИзменяемыеРеквизиты + Значение; + Значение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ВЫБОР КОГДА Замена%1.Оригинал IS NULL ТОГДА Таб.%1 ИНАЧЕ Замена%1.Дубль КОНЕЦ КАК %1", КлючевойРеквизит); + ЗначениеИзменяемыеРеквизиты = ЗначениеИзменяемыеРеквизиты + ?(ПустаяСтрока(ЗначениеИзменяемыеРеквизиты),Значение, ","+Значение);; Значение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(" ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаЗамен КАК Замена%1 |ПО Таб.%1 = Замена%1.Оригинал", КлючевойРеквизит); @@ -720,22 +720,21 @@ Иначе - Значение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(",Таб.%1 КАК %1", КлючевойРеквизит); - НеИзменяемыеРеквизиты = НеИзменяемыеРеквизиты + Значение; + Значение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Таб.%1 КАК %1", КлючевойРеквизит); + НеИзменяемыеРеквизиты = НеИзменяемыеРеквизиты + ?(ПустаяСтрока(НеИзменяемыеРеквизиты),Значение, ","+Значение); КонецЕсли; КонецЦикла; - ВставитьВТекстЗапроса(ТекстЗапроса, "ЗначениеКлючей", ЗначениеКлючей); - ВставитьВТекстЗапроса(ТекстЗапроса, "ЗначениеИзменяемыеРеквизиты", ЗначениеИзменяемыеРеквизиты); - ВставитьВТекстЗапроса(ТекстЗапроса, "СоединениеЗначениеЗаменяемыхРеквизитов", СоединениеЗначениеЗаменяемыхРеквизитов); - ВставитьВТекстЗапроса(ТекстЗапроса, "СвязиПоКлючу", СвязиПоКлючу); - ВставитьВТекстЗапроса(ТекстЗапроса, "НеИзменяемыеРеквизиты", НеИзменяемыеРеквизиты); - ВставитьВТекстЗапроса(ТекстЗапроса, "ИзменяемыеРеквизиты", ИзменяемыеРеквизиты); + ВставитьВТекстЗапроса(ТекстЗапроса, "#ЗначениеКлючей", ЗначениеКлючей); + ВставитьВТекстЗапроса(ТекстЗапроса, "ЛЕВОЕ СОЕДИНЕНИЕ #СоединениеЗначениеЗаменяемыхРеквизитов ПО ИСТИНА", СоединениеЗначениеЗаменяемыхРеквизитов); + ВставитьВТекстЗапроса(ТекстЗапроса, "&СвязиПоКлючу", СвязиПоКлючу); + ВставитьВТекстЗапроса(ТекстЗапроса, "&НеИзменяемыеРеквизиты", ?(ПустаяСтрока(НеИзменяемыеРеквизиты), "НЕОПРЕДЕЛЕНО", НеИзменяемыеРеквизиты)); + ВставитьВТекстЗапроса(ТекстЗапроса, "&ИзменяемыеРеквизиты", ?(ПустаяСтрока(ИзменяемыеРеквизиты), "НЕОПРЕДЕЛЕНО", ИзменяемыеРеквизиты)); - ВставитьВТекстЗапроса(ТекстЗапроса, "ТаблицаКлюча", ТаблицаКлюча); - ВставитьВТекстЗапроса(ТекстЗапроса, "ИмяКлюча", ИмяКлюча); + ВставитьВТекстЗапроса(ТекстЗапроса, "#ТаблицаКлюча", ТаблицаКлюча); + ВставитьВТекстЗапроса(ТекстЗапроса, "#ИмяКлюча", ИмяКлюча); Возврат ТекстЗапроса; @@ -743,46 +742,47 @@ Функция ШаблонЗапроса() - Возврат "// НАЧАЛО {ИмяКлюча} + Возврат "// НАЧАЛО #ИмяКлюча |ВЫБРАТЬ - | Таб.Ссылка КАК Ссылка - | {НеИзменяемыеРеквизиты} - | {ИзменяемыеРеквизиты} - |ПОМЕСТИТЬ {ИмяКлюча}_ИсходныеДанные + | Таб.Ссылка КАК Ссылка, + | &НеИзменяемыеРеквизиты, + | &ИзменяемыеРеквизиты + |ПОМЕСТИТЬ #ИмяКлюча_ИсходныеДанные |ИЗ - | {ТаблицаКлюча} КАК Таб + | #ТаблицаКлюча КАК Таб |ГДЕ - | ЛОЖЬ + | ЛОЖЬ" + " | - |{ЗначениеКлючей} + |#ЗначениеКлючей |; + |" + " |ВЫБРАТЬ - | Таб.Ссылка КАК Ссылка - | {НеИзменяемыеРеквизиты} - | {ЗначениеИзменяемыеРеквизиты} - |ПОМЕСТИТЬ {ИмяКлюча}_ЗначениеРеквизитовПослеЗамены + | Таб.Ссылка КАК Ссылка, + | &НеИзменяемыеРеквизиты, + | &ИзменяемыеРеквизиты + |ПОМЕСТИТЬ #ИмяКлюча_ЗначениеРеквизитовПослеЗамены |ИЗ - | {ИмяКлюча}_ИсходныеДанные КАК Таб - | {СоединениеЗначениеЗаменяемыхРеквизитов} + | #ИмяКлюча_ИсходныеДанные КАК Таб + | ЛЕВОЕ СОЕДИНЕНИЕ #СоединениеЗначениеЗаменяемыхРеквизитов ПО ИСТИНА |; |ВЫБРАТЬ | Таб.Ссылка КАК Ссылка, - | Замена.Ссылка КАК Замена - | {НеИзменяемыеРеквизиты} - | {ИзменяемыеРеквизиты} + | Замена.Ссылка КАК Замена, + | &НеИзменяемыеРеквизиты, + | &ИзменяемыеРеквизиты |ИЗ - | {ИмяКлюча}_ЗначениеРеквизитовПослеЗамены КАК Таб - | ЛЕВОЕ СОЕДИНЕНИЕ {ТаблицаКлюча} КАК Замена + | #ИмяКлюча_ЗначениеРеквизитовПослеЗамены КАК Таб + | ЛЕВОЕ СОЕДИНЕНИЕ #ТаблицаКлюча КАК Замена | ПО Таб.Ссылка <> Замена.Ссылка - | {СвязиПоКлючу} - |//КОНЕЦ {ИмяКлюча} + | И &СвязиПоКлючу + |//КОНЕЦ #ИмяКлюча |"; КонецФункции Процедура ВставитьВТекстЗапроса(ТекстЗапроса, ИмяПараметра, Текст) - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "{"+ИмяПараметра+"}", Текст); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ИмяПараметра, Текст); КонецПроцедуры @@ -797,7 +797,15 @@ ТаблицаЗамен = ТаблицыЗамен[КлючПоиска]; Если ТаблицаЗамен = Неопределено Тогда - ЗапросТаблицы = Новый Запрос("ВЫБРАТЬ Таб.Ссылка КАК Оригинал, Таб.Ссылка КАК Дубль ИЗ " + ИмяТаблицыКлючевогоРеквизита + " КАК Таб ГДЕ ЛОЖЬ"); + ТекстЗапроса = "ВЫБРАТЬ + | Таб.Ссылка КАК Оригинал, + | Таб.Ссылка КАК Дубль + |ИЗ + | #ИмяТаблицыКлючевогоРеквизита КАК Таб + |ГДЕ + | ЛОЖЬ"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ИмяТаблицыКлючевогоРеквизита", ИмяТаблицыКлючевогоРеквизита); + ЗапросТаблицы = Новый Запрос(ТекстЗапроса); ТаблицаЗамен = ЗапросТаблицы.Выполнить().Выгрузить(); ТаблицыЗамен.Вставить(КлючПоиска, ТаблицаЗамен); КонецЕсли; diff --git a/SSL/src/CommonModules/ПоискИУдалениеДублейКлиент/Module.bsl b/SSL/src/CommonModules/ПоискИУдалениеДублейКлиент/Module.bsl index 26d590ea5..83bac31d8 100644 --- a/SSL/src/CommonModules/ПоискИУдалениеДублейКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПоискИУдалениеДублейКлиент/Module.bsl @@ -15,7 +15,7 @@ // - Массив из ЛюбаяСсылка // - СписокЗначений - список элементов к объединению. // Также можно передать произвольную коллекцию элементов с реквизитом "Ссылка". -// ДополнительныеПараметры - см. ПодключаемыеКомандыКлиентСервер.ПараметрыВыполненияКоманды +// ДополнительныеПараметры - см. ПодключаемыеКомандыКлиент.ПараметрыВыполненияКоманды // Процедура ОбъединитьВыделенные(Знач ОбъединяемыеЭлементы, ДополнительныеПараметры = Неопределено) Экспорт @@ -46,7 +46,7 @@ // - Массив // - СписокЗначений - список элементов, которые нужно заменить и удалить. // Также можно передать произвольную коллекцию элементов с реквизитом "Ссылка". -// ДополнительныеПараметры - см. ПодключаемыеКомандыКлиентСервер.ПараметрыВыполненияКоманды +// ДополнительныеПараметры - см. ПодключаемыеКомандыКлиент.ПараметрыВыполненияКоманды // Процедура ЗаменитьВыделенные(Знач ЗаменяемыеЭлементы, ДополнительныеПараметры = Неопределено) Экспорт @@ -80,7 +80,7 @@ // - Массив из ЛюбаяСсылка // - СписокЗначений - список элементов для анализа. // Также можно передать произвольную коллекцию элементов с реквизитом "Ссылка". -// ПараметрыОткрытия - Структура - необязательный. Параметры открытия формы. Состоит из необязательных полей. +// ПараметрыОткрытия - Структура - параметры открытия формы. Состоит из необязательных полей. // Владелец, Уникальность, Окно, НавигационнаяСсылка, ОписаниеОповещенияОЗакрытии, РежимОткрытияОкна, // соответствующих параметрам функции ОткрытьФорму. // @@ -120,14 +120,14 @@ #Область СлужебныеПроцедурыИФункции // Параметры: -// Элементы - ДанныеФормыКоллекция: -// * Ссылка - ЛюбаяСсылка +// Элементы - ДанныеФормыКоллекция: +// * Ссылка - ЛюбаяСсылка // - СписокЗначений из ЛюбаяСсылка // - ТаблицаФормы -// * Ссылка - ЛюбаяСсылка +// * Ссылка - ЛюбаяСсылка // - Массив из ЛюбаяСсылка // Возвращаемое значение: -// СписокЗначений, Массив из ЛюбаяСсылка, СписокЗначений +// СписокЗначений, Массив из ЛюбаяСсылка, СписокЗначений // Функция МассивСсылок(Знач Элементы) diff --git a/SSL/src/CommonModules/ПоискИУдалениеДублейПереопределяемый/Module.bsl b/SSL/src/CommonModules/ПоискИУдалениеДублейПереопределяемый/Module.bsl index 3611eace1..bccc6e5ce 100644 --- a/SSL/src/CommonModules/ПоискИУдалениеДублейПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ПоискИУдалениеДублейПереопределяемый/Module.bsl @@ -13,10 +13,10 @@ // и ВозможностьЗаменыЭлементов. // // Параметры: -// Объекты - Соответствие - объекты, в модулях менеджеров которых размещены экспортные процедуры: -// ** Ключ - Строка - полное имя объекта метаданных, подключенного к подсистеме "Поиск и удаление дублей". +// Объекты - Соответствие из КлючИЗначение - объекты, в модулях менеджеров которых размещены экспортные процедуры: +// * Ключ - Строка - полное имя объекта метаданных, подключенного к подсистеме "Поиск и удаление дублей". // Например, "Справочник.Контрагенты". -// ** Значение - Строка - имена экспортных процедур-обработчиков, определенных в модуле менеджера: +// * Значение - Строка - имена экспортных процедур-обработчиков, определенных в модуле менеджера: // "ПараметрыПоискаДублей", // "ПриПоискеДублей", // "ВозможностьЗаменыЭлементов". @@ -42,7 +42,7 @@ // см. ПоискИУдалениеДублейКлиент.ОбъединитьВыделенные и ПоискИУдалениеДублейКлиент.ЗаменитьВыделенные // // Параметры: -// Объекты - Массив из ОбъектМетаданных +// Объекты - Массив из ОбъектМетаданных // // Пример: // Объекты.Добавить(Метаданные.Справочники._ДемоНоменклатура); @@ -62,7 +62,9 @@ // Параметры: // ИмяОбъектаМетаданных - Строка - полное имя ссылочного объекта метаданных, замена элементов которого производится. // Например, "Справочник.Контрагенты". -// ПарыЗамен - Соответствие - Ключ - что будет заменено, значение - на что будет заменено. +// ПарыЗамен - Соответствие из КлючИЗначение: +// * Ключ - ЛюбаяСсылка - что будет заменено +// * Значение - ЛюбаяСсылка - на что будет заменено // ПараметрыЗамены - Структура - действие с заменяемыми элементами: // * СпособУдаления - Строка - может принимать значения: // "Непосредственно" - Если после замены ссылка нигде не используется, @@ -70,8 +72,9 @@ // "Пометка" - Если после замены ссылка не используется, то // она будет помечена на удаление. // При других значениях заменяемая ссылка не будет изменена. -// НедопустимыеЗамены - Соответствие - выходной параметр. Ключ - заменяемая ссылка, значение - строковое описание, -// почему замена недопустима. Если все замены допустимы, то возвращается пустое соответствие. +// НедопустимыеЗамены - Соответствие из КлючИЗначение: +// * Ключ - ЛюбаяСсылка - заменяемая ссылка +// * Значение - Строка - описание, почему замена недопустима. Если все замены допустимы, то возвращается пустое соответствие // Процедура ПриОпределенииВозможностиЗаменыЭлементов(Знач ИмяОбъектаМетаданных, Знач ПарыЗамен, Знач ПараметрыЗамены, НедопустимыеЗамены) Экспорт @@ -99,11 +102,11 @@ // По умолчанию, 80. // ** ДлинаНебольшихСтрок - Число - если длина строки меньше или равна заданной, то строка считается небольшой. // По умолчанию, 30. -// ** СловаИсключения - Массив Из Строка - список слов, которые следует пропускать при сравнении на подобие. +// ** СловаИсключения - Массив из Строка - список слов, которые следует пропускать при сравнении на подобие. // Например, для организаций и контрагентов это могут быть: ИП, ГУП, ООО, ОАО и т.д. // * КомпоновщикОтбора - КомпоновщикНастроекКомпоновкиДанных - инициализированный компоновщик для // предварительного отбора. Может быть изменен, например, для усиления отборов. -// * ОграниченияСравнения - Массив Из Структура - описания прикладных правил-ограничений: +// * ОграниченияСравнения - Массив из Структура - описания прикладных правил-ограничений: // ** Представление - Строка - текстовое описание правила-ограничения. // ** ДополнительныеПоля - Строка - список реквизитов через запятую, значения которых // необходимы для анализа в ПриПоискеДублей. diff --git a/SSL/src/CommonModules/ПолнотекстовыйПоискСервер/Module.bsl b/SSL/src/CommonModules/ПолнотекстовыйПоискСервер/Module.bsl index 6057d231e..3ed579fb9 100644 --- a/SSL/src/CommonModules/ПолнотекстовыйПоискСервер/Module.bsl +++ b/SSL/src/CommonModules/ПолнотекстовыйПоискСервер/Module.bsl @@ -142,10 +142,8 @@ #Область ОбработчикиСобытийПодсистемКонфигурации -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. -// // Параметры: -// ТекущиеДела - см. ТекущиеДелаСлужебный.ТекущиеДела +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт @@ -221,10 +219,6 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -554,7 +548,7 @@ Представление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = '%1: %2'"), - МетаданныеОбъекта.ПредставлениеОбъекта, + ОбщегоНазначения.ПредставлениеОбъекта(МетаданныеОбъекта), Строка(Значение)); КонецЕсли; diff --git a/SSL/src/CommonModules/ПолучениеФайловИзИнтернета/Module.bsl b/SSL/src/CommonModules/ПолучениеФайловИзИнтернета/Module.bsl index e1acf959d..9a5914e24 100644 --- a/SSL/src/CommonModules/ПолучениеФайловИзИнтернета/Module.bsl +++ b/SSL/src/CommonModules/ПолучениеФайловИзИнтернета/Module.bsl @@ -69,13 +69,13 @@ // // Возвращаемое значение: // Соответствие: -// ИспользоватьПрокси - использовать ли прокси-сервер. -// НеИспользоватьПроксиДляЛокальныхАдресов - использовать ли прокси-сервер для локальных адресов. -// ИспользоватьСистемныеНастройки - использовать ли системные настройки прокси-сервера. -// Сервер - адрес прокси-сервера. -// Порт - порт прокси-сервера. -// Пользователь - имя пользователя для авторизации на прокси-сервере. -// Пароль - пароль пользователя. +// ИспользоватьПрокси - использовать ли прокси-сервер. +// НеИспользоватьПроксиДляЛокальныхАдресов - использовать ли прокси-сервер для локальных адресов. +// ИспользоватьСистемныеНастройки - использовать ли системные настройки прокси-сервера. +// Сервер - адрес прокси-сервера. +// Порт - порт прокси-сервера. +// Пользователь - имя пользователя для авторизации на прокси-сервере. +// Пароль - пароль пользователя. // Функция НастройкиПроксиНаКлиенте() Экспорт @@ -119,13 +119,13 @@ // // Возвращаемое значение: // Соответствие: -// ИспользоватьПрокси - использовать ли прокси-сервер. -// НеИспользоватьПроксиДляЛокальныхАдресов - использовать ли прокси-сервер для локальных адресов. -// ИспользоватьСистемныеНастройки - использовать ли системные настройки прокси-сервера. -// Сервер - адрес прокси-сервера. -// Порт - порт прокси-сервера. -// Пользователь - имя пользователя для авторизации на прокси-сервере. -// Пароль - пароль пользователя. +// ИспользоватьПрокси - использовать ли прокси-сервер. +// НеИспользоватьПроксиДляЛокальныхАдресов - использовать ли прокси-сервер для локальных адресов. +// ИспользоватьСистемныеНастройки - использовать ли системные настройки прокси-сервера. +// Сервер - адрес прокси-сервера. +// Порт - порт прокси-сервера. +// Пользователь - имя пользователя для авторизации на прокси-сервере. +// Пароль - пароль пользователя. // Функция НастройкиПроксиНаСервере() Экспорт diff --git a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиентСервер/Module.bsl b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиентСервер/Module.bsl index e5830542c..694f4c813 100644 --- a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиентСервер/Module.bsl @@ -197,15 +197,15 @@ // // Параметры: // НастройкаПроксиСервера - Соответствие: -// ИспользоватьПрокси - использовать ли прокси-сервер. -// НеИспользоватьПроксиДляЛокальныхАдресов - использовать ли прокси-сервер для локальных адресов. -// ИспользоватьСистемныеНастройки - использовать ли системные настройки прокси-сервера. -// Сервер - адрес прокси-сервера. -// Порт - порт прокси-сервера. -// Пользователь - имя пользователя для авторизации на прокси-сервере. -// Пароль - пароль пользователя. -// ИспользоватьАутентификациюОС - Булево - признак использования аутентификации средствами операционной системы. -// Протокол - строка - протокол для которого устанавливаются параметры прокси сервера, например "http", "https", +// ИспользоватьПрокси - использовать ли прокси-сервер. +// НеИспользоватьПроксиДляЛокальныхАдресов - использовать ли прокси-сервер для локальных адресов. +// ИспользоватьСистемныеНастройки - использовать ли системные настройки прокси-сервера. +// Сервер - адрес прокси-сервера. +// Порт - порт прокси-сервера. +// Пользователь - имя пользователя для авторизации на прокси-сервере. +// Пароль - пароль пользователя. +// ИспользоватьАутентификациюОС - Булево - признак использования аутентификации средствами операционной системы. +// Протокол - Строка - протокол для которого устанавливаются параметры прокси сервера, например "http", "https", // "ftp". // // Возвращаемое значение: diff --git a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаСлужебный/Module.bsl b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаСлужебный/Module.bsl index 301eb1b5a..db86a1f3c 100644 --- a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаСлужебный/Module.bsl @@ -58,7 +58,7 @@ // Функция для получения файла из сети Интернет. // // Параметры: -// URL - строка - url файла в формате: +// URL - Строка - url файла в формате: // НастройкиПолучения - Структура: // * ПутьДляСохранения - Строка - путь на сервере (включая имя файла), для сохранения скачанного файла. // * Пользователь - Строка - пользователь от имени которого установлено соединение. @@ -82,9 +82,9 @@ // если не задано будет сгенерировано автоматически. // // Возвращаемое значение: -// структура -// успех - булево - успех или неудача операции -// строка - строка - в случае успеха либо строка-путь сохранения файла +// Структура: +// успех - Булево - успех или неудача операции +// Строка - строка - в случае успеха либо строка-путь сохранения файла // либо адрес во временном хранилище // в случае неуспеха сообщение об ошибке. // @@ -111,7 +111,7 @@ // Функция для получения файла из сети Интернет. // // Параметры: -// URL - строка - url файла в формате: [Протокол://]<Сервер>/<Путь к файлу на сервере>. +// URL - Строка - url файла в формате: [Протокол://]<Сервер>/<Путь к файлу на сервере>. // // НастройкаСоединения - Соответствие - // ЗащищенноеСоединение* - булево - соединение защищенное. @@ -139,9 +139,9 @@ // либо адрес во временном хранилище, если не задано будет сгенерировано автоматически. // // Возвращаемое значение: -// структура -// успех - булево - успех или неудача операции -// строка - строка - в случае успеха либо строка-путь сохранения файла +// Структура: +// успех - Булево - успех или неудача операции +// Строка - строка - в случае успеха либо строка-путь сохранения файла // либо адрес во временном хранилище // в случае неуспеха сообщение об ошибке. // @@ -494,10 +494,11 @@ // Функция, заполняющая структуру по параметрам. // // Параметры: -// УспехОперации - булево - успех или неуспех операции. -// СообщениеПуть - строка +// УспехОперации - Булево - успех или неуспех операции. +// СообщениеПуть - Строка // -// Возвращаемое значение - структура: +// Возвращаемое значение: +// Структура: // поле успех - булево // поле путь - строка. // @@ -798,14 +799,14 @@ // // Параметры: // НастройкаПроксиСервера - Соответствие: -// ИспользоватьПрокси - использовать ли прокси-сервер. -// НеИспользоватьПроксиДляЛокальныхАдресов - использовать ли прокси-сервер для локальных адресов. -// ИспользоватьСистемныеНастройки - использовать ли системные настройки прокси-сервера. -// Сервер - адрес прокси-сервера. -// Порт - порт прокси-сервера. -// Пользователь - имя пользователя для авторизации на прокси-сервере. -// Пароль - пароль пользователя. -// ИспользоватьАутентификациюОС - Булево - признак использования аутентификации средствами операционной системы. +// ИспользоватьПрокси - использовать ли прокси-сервер. +// НеИспользоватьПроксиДляЛокальныхАдресов - использовать ли прокси-сервер для локальных адресов. +// ИспользоватьСистемныеНастройки - использовать ли системные настройки прокси-сервера. +// Сервер - адрес прокси-сервера. +// Порт - порт прокси-сервера. +// Пользователь - имя пользователя для авторизации на прокси-сервере. +// Пароль - пароль пользователя. +// ИспользоватьАутентификациюОС - Булево - признак использования аутентификации средствами операционной системы. // URLИлиПротокол - Строка - адрес ресурса или протокол, для которого устанавливаются параметры прокси сервера, // например "https://1c.ru", "http", "https", "ftp", "ftps". // diff --git a/SSL/src/CommonModules/Пользователи/Module.bsl b/SSL/src/CommonModules/Пользователи/Module.bsl index 0e2683491..0b6b62728 100644 --- a/SSL/src/CommonModules/Пользователи/Module.bsl +++ b/SSL/src/CommonModules/Пользователи/Module.bsl @@ -274,6 +274,35 @@ КонецФункции +// Следует вызывать в начале процедур http-сервисов, веб-сервисов, com-соединений, +// если они используются для удаленного подключения обычных пользователей, +// чтобы обеспечить контроль ограничений на вход (по дате, по активности и т.д.), +// обновить дату последнего входа, а также сразу заполнить параметры сеанса +// АвторизованныйПользователь, ТекущийПользователь, ТекущийВнешнийПользователь. +// +// Процедура вызывается автоматически только при интерактивном входе, +// то есть когда ТекущийРежимЗапуска() <> Неопределено. +// +// Параметры: +// ВызыватьИсключение - Булево - вызывать исключение в случае ошибки авторизации, +// в противном случае возвращать текст ошибки. +// Возвращаемое значение: +// Структура: +// * ОшибкаАвторизации - Строка - текст ошибки, если заполнено. +// * ТребуетсяСменитьПароль - Булево - если Истина, тогда это ошибка устаревания пароля. +// +Функция АвторизоватьТекущегоПользователяПриВходе(ВызыватьИсключение = Истина) Экспорт + + Результат = ПользователиСлужебный.АвторизоватьТекущегоПользователяПриВходе(Истина); + + Если ВызыватьИсключение И ЗначениеЗаполнено(Результат.ОшибкаАвторизации) Тогда + ВызватьИсключение Результат.ОшибкаАвторизации; + КонецЕсли; + + Возврат Результат; + +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Процедуры и функции, используемые в работе элементов управляемых форм. @@ -838,6 +867,10 @@ Свойства.Вставить("ЗапрещеноИзменятьПароль", Ложь); Свойства.Вставить("АутентификацияОС", Ложь); Свойства.Вставить("ПользовательОС", ""); + Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда + Свойства.Вставить("ЗапрещеноВосстанавливатьПароль", Истина); + Свойства.Вставить("АдресЭлектроннойПочты", ""); + КонецЕсли; Свойства.Вставить("ОсновнойИнтерфейс", ?(Метаданные.ОсновнойИнтерфейс = Неопределено, "", Метаданные.ОсновнойИнтерфейс.Имя)); @@ -1401,7 +1434,7 @@ // - УникальныйИдентификатор - проверка только для заданного идентификатора. // // НайденныеИдентификаторы - Неопределено - при нахождении ошибок вызывается исключение. -// - Соответствие - при нахождении ошибок исключение не вызывается, +// - Соответствие из КлючИЗначение - при нахождении ошибок исключение не вызывается, // а вместо этого заполняется переданное соответствие: // * Ключ - неоднозначный идентификатор пользователя ИБ; // * Значение - массив пользователей и внешних пользователей. diff --git a/SSL/src/CommonModules/ПользователиПереопределяемый/Module.bsl b/SSL/src/CommonModules/ПользователиПереопределяемый/Module.bsl index 46f0d6243..299015c24 100644 --- a/SSL/src/CommonModules/ПользователиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ПользователиПереопределяемый/Module.bsl @@ -231,31 +231,31 @@ // системы взаимодействия. // // Параметры: -// ВыбраннаяФорма - Строка - имя открываемой формы. -// ПараметрыФормы - Структура - параметры формы при открытии, только Чтение: -// * ЗакрыватьПриВыборе - Булево - содержит признак того, что форму +// ВыбраннаяФорма - Строка - имя открываемой формы. +// ПараметрыФормы - Структура - параметры формы при открытии, только Чтение: +// * ЗакрыватьПриВыборе - Булево - содержит признак того, что форму // необходимо закрывать после осуществления выбора. // Если свойство имеет значение Ложь, можно использовать // форму для выбора нескольких позиций или элементов. -// * МножественныйВыбор - Булево - разрешает или запрещает выбор нескольких строк из списка. -// * ВыборУчастниковОбсуждения - Булево - если Истина, то формы вызывается как форма выбора участников обсуждения. +// * МножественныйВыбор - Булево - разрешает или запрещает выбор нескольких строк из списка. +// * ВыборУчастниковОбсуждения - Булево - если Истина, то формы вызывается как форма выбора участников обсуждения. // Форма должна возвращать массив идентификаторов пользователей системы // Взаимодействия. // -// * ЗаголовокКнопкиЗавершенияПодбора - Строка - заголовок кнопки завершения подбора. -// * СкрытьПользователейБезПользователяИБ - Булево - если Истина, то пользователи без идентификатора +// * ЗаголовокКнопкиЗавершенияПодбора - Строка - заголовок кнопки завершения подбора. +// * СкрытьПользователейБезПользователяИБ - Булево - если Истина, то пользователи без идентификатора // пользователя ИБ не должны отображаться в списке. -// * ВыборГруппПользователей - Булево - разрешить выбирать группы пользователей. +// * ВыборГруппПользователей - Булево - разрешить выбирать группы пользователей. // Если группы пользователей используются и параметр не поддерживается, // то для группы пользователей нельзя назначать права через форму подбора. -// * РасширенныйПодбор - Булево - если Истина, то доступен просмотр Групп пользователей. -// * ПараметрыРасширеннойФормыПодбора - Строка - адрес временного хранилища со структурой: -// ** СкрываемыеПользователи - Массив - пользователи, которые не отображаются в форме подбора. -// ** ВыборГруппВнешнихПользователей - Булево - разрешить выбирать группы внешних пользователей. -// ** ПодборГруппНевозможен - Булево -// ** ЗаголовокФормыПодбора - Строка - позволяет переопределять заголовок формы подбора. -// ** ВыбранныеПользователи - Массив - пользователи, которые должны отображаться в подобранных. -// ** ТекущаяСтрока - СправочникСсылка.ГруппыПользователей - строка, на которой будет выполнена позиционирование +// * РасширенныйПодбор - Булево - если Истина, то доступен просмотр Групп пользователей. +// * ПараметрыРасширеннойФормыПодбора - Строка - адрес временного хранилища со структурой: +// ** СкрываемыеПользователи - Массив - пользователи, которые не отображаются в форме подбора. +// ** ВыборГруппВнешнихПользователей - Булево - разрешить выбирать группы внешних пользователей. +// ** ПодборГруппНевозможен - Булево +// ** ЗаголовокФормыПодбора - Строка - позволяет переопределять заголовок формы подбора. +// ** ВыбранныеПользователи - Массив - пользователи, которые должны отображаться в подобранных. +// ** ТекущаяСтрока - СправочникСсылка.ГруппыПользователей - строка, на которой будет выполнена позиционирование // в динамическом списке групп пользователей // при открытии формы. // diff --git a/SSL/src/CommonModules/ПользователиСлужебный/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебный/Module.bsl index 440c7162e..c96d48dde 100644 --- a/SSL/src/CommonModules/ПользователиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебный/Module.bsl @@ -11,6 +11,43 @@ /////////////////////////////////////////////////////////////////////////////// // Основные процедуры и функции. +// Вызывается при входе в систему. +// +// Параметры: +// РегистрироватьВЖурнале - Булево - если Истина, тогда записать ошибку в журнал регистрации. +// +// Возвращаемое значение: +// Структура: +// * ОшибкаАвторизации - Строка - текст ошибки, если заполнено. +// * ТребуетсяСменитьПароль - Булево - если Истина, тогда текст ошибки устаревания пароля. +// +Функция АвторизоватьТекущегоПользователяПриВходе(РегистрироватьВЖурнале) Экспорт + + Результат = Новый Структура; + Результат.Вставить("ОшибкаАвторизации", ""); + Результат.Вставить("ТребуетсяСменитьПароль", Ложь); + + ОшибкаАвторизации = АвторизоватьТекущегоПользователя(Истина, РегистрироватьВЖурнале); + + Если Не ЗначениеЗаполнено(ОшибкаАвторизации) Тогда + ОтключитьНеактивныхИПросроченныхПользователей(Истина, ОшибкаАвторизации, РегистрироватьВЖурнале); + КонецЕсли; + + Если Не ЗначениеЗаполнено(ОшибкаАвторизации) Тогда + ПроверитьВходВПрограммуРазрешен(ОшибкаАвторизации); + КонецЕсли; + + Если Не ЗначениеЗаполнено(ОшибкаАвторизации) Тогда + Результат.ТребуетсяСменитьПароль = ТребуетсяСменитьПароль(ОшибкаАвторизации, + Истина, РегистрироватьВЖурнале); + КонецЕсли; + + Результат.ОшибкаАвторизации = ОшибкаАвторизации; + + Возврат Результат; + +КонецФункции + // Вызывается при начале работы системы, чтобы проверить возможность выполнения авторизации и // вызвать заполнение значений параметров сеанса ТекущийПользователь и ТекущийВнешнийПользователь. // Также вызывается при входе в область данных. @@ -32,7 +69,12 @@ ТекущийПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь(); ЭтоВнешнийПользователь = ЗначениеЗаполнено(Справочники.ВнешниеПользователи.НайтиПоРеквизиту( "ИдентификаторПользователяИБ", ТекущийПользовательИБ.УникальныйИдентификатор)); - ПроверитьПраваПользователя(ТекущийПользовательИБ, "ПриЗапуске", ЭтоВнешнийПользователь); + + ТекстОшибки = ПроверитьПраваПользователя(ТекущийПользовательИБ, + "ПриЗапуске", ЭтоВнешнийПользователь, Не ПриНачалеРаботыСистемы, РегистрироватьВЖурнале); + Если ЗначениеЗаполнено(ТекстОшибки) Тогда + Возврат ТекстОшибки; + КонецЕсли; Если ПустаяСтрока(ТекущийПользовательИБ.Имя) Тогда // Авторизуется пользователь по умолчанию. @@ -53,17 +95,20 @@ Возврат РезультатУстановкиПараметровСеанса(РегистрироватьВЖурнале); КонецЕсли; - СтандартнаяОбработка = Истина; - ИнтеграцияПодсистемБСП.ПриАвторизацииНовогоПользователяИБ(ТекущийПользовательИБ, СтандартнаяОбработка); + НайденныйПользователь = Неопределено; + ПользовательПоИдентификаторуСуществует(ТекущийПользовательИБ.УникальныйИдентификатор,, НайденныйПользователь); - Если Не СтандартнаяОбработка Тогда - Возврат ""; + Если Не ЗначениеЗаполнено(НайденныйПользователь) Тогда + СтандартнаяОбработка = Истина; + ИнтеграцияПодсистемБСП.ПриАвторизацииНовогоПользователяИБ(ТекущийПользовательИБ, СтандартнаяОбработка); + + Если Не СтандартнаяОбработка Тогда + Возврат ""; + КонецЕсли; + ПользовательПоИдентификаторуСуществует(ТекущийПользовательИБ.УникальныйИдентификатор,, НайденныйПользователь); КонецЕсли; - НайденныйПользователь = Неопределено; - Если ПользовательПоИдентификаторуСуществует( - ТекущийПользовательИБ.УникальныйИдентификатор, , НайденныйПользователь) Тогда - + Если ЗначениеЗаполнено(НайденныйПользователь) Тогда // ПользовательИБ найден в справочнике. Если ПриНачалеРаботыСистемы И РолиАдминистратораДоступны() Тогда ИнтеграцияПодсистемБСП.ПриСозданииАдминистратора(НайденныйПользователь, @@ -169,7 +214,7 @@ НастройкиСостава = Новый НастройкиСоставаИнтерфейсаКлиентскогоПриложения; ГруппаСлева = Новый ГруппаНастройкиСоставаИнтерфейсаКлиентскогоПриложения; - Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияРежимаСовместимости(), "8.3.15.0") < 0 Тогда + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СтандартныеПодсистемыСервер.ВерсияРежимаСовместимости(), "8.3.15.0") < 0 Тогда ГруппаСлева.Добавить(Новый ЭлементНастройкиСоставаИнтерфейсаКлиентскогоПриложения("ПанельИнструментов")); КонецЕсли; @@ -232,12 +277,15 @@ // Только для вызова из процедуры ПроверитьПравоОтключитьЛогикуНачалаРаботыСистемы // общего модуля СтандартныеПодсистемыВызовСервера. // -Процедура ПроверитьПраваТекущегоПользователяПриВходе() Экспорт +// Возвращаемое значение: +// Строка - текст ошибки. +// +Функция ОшибкаПроверкиПравТекущегоПользователяПриВходе() Экспорт - ПроверитьПраваПользователя(ПользователиИнформационнойБазы.ТекущийПользователь(), - "ПриЗапуске", Пользователи.ЭтоСеансВнешнегоПользователя()); + Возврат ПроверитьПраваПользователя(ПользователиИнформационнойБазы.ТекущийПользователь(), + "ПриЗапуске", Пользователи.ЭтоСеансВнешнегоПользователя(), Ложь); -КонецПроцедуры +КонецФункции // Создает пользователя <Не указан>. // @@ -267,11 +315,131 @@ КонецФункции +//////////////////////////////////////////////////////////////////////////////// +// Восстановление паролей пользователей + +Процедура УстановитьНастройкиВосстановленияПароля(НастройкиВосстановленияПароля) Экспорт + + Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда + НастройкиАутентификации = Вычислить("ДополнительныеНастройкиАутентификации"); + НастройкиАутентификации.УстановитьНастройкиВосстановленияПароля(НастройкиВосстановленияПароля); + КонецЕсли; + +КонецПроцедуры + +// Возвращает настройки восстановления пароля из информационной базы +// +// Возвращаемое значение: +// Структура: +// * АдресСервераSMTP - Строка +// * ПарольSMTP - Строка +// * ПользовательSMTP - Строка +// * ПортSMTP - Число +// * Заголовок - Строка +// * ТекстСообщенияHTML - Строка +// * ИмяОтправителя - Строка +// * ИспользоватьSSL - Булево +// * НавигационнаяСсылкаПомощи - Строка +// * ОтображатьГиперссылкуПомощи - Булево +// * СпособВосстановленияПароля - СпособВосстановленияПароляПользователяИнформационнойБазы +// * ДлинаКодаПодтверждения - Число +// * ДлительностьБлокировкиЗапросаОбновленияКодаПодтверждения - Число +// * МаксимальноеКоличествоНеуспешныхПопытокПроверкиКодаПодтверждения - Число +// * НавигационнаяСсылкаВосстановленияПароля - Строка +// +Функция НастройкиВосстановленияПароля() Экспорт + + НастройкиВосстановленияПароля = Неопределено; + Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда + НастройкиАутентификации = Вычислить("ДополнительныеНастройкиАутентификации"); + НастройкиВосстановленияПароля = НастройкиАутентификации.ПолучитьНастройкиВосстановленияПароля(); + КонецЕсли; + + Возврат НастройкиВосстановленияПароля; + +КонецФункции + +Функция СпособВосстановленияПароляПользователяИнформационнойБазы(СпособВосстановленияПароля) Экспорт + СпособВосстановленияПароляПользователя = Вычислить("СпособВосстановленияПароляПользователяИнформационнойБазы"); + Возврат СпособВосстановленияПароляПользователя[СпособВосстановленияПароля]; +КонецФункции + +// Возвращаемое значение: +// см. НастройкиВосстановленияПароля +// +Функция НовыеНастройкиВосстановленияПароля() Экспорт + + Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда + НастройкиВосстановленияПароля = Вычислить("Новый НастройкиВосстановленияПароля"); + Возврат НастройкиВосстановленияПароля; + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + +Процедура ЗаполнитьПочтуДляВосстановленияПароляУПользователейВФоне(ДополнительныеПараметры, АдресВоВременномХранилище) Экспорт + + СписокПользователей = ПользователиДляВключенияВосстановленияПароля(); + Для каждого ПользовательСсылка Из СписокПользователей Цикл + ОбновитьПочтуДляВосстановленияПароля(ПользовательСсылка); + КонецЦикла; + + СписокПользователей = ВнешниеПользователиДляВключенияВосстановленияПароля(); + Для каждого ВнешнийПользовательСсылка Из СписокПользователей Цикл + + ОбъектАвторизации = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВнешнийПользовательСсылка, "ОбъектАвторизации"); + ОбновитьПочтуДляВосстановленияПароля(ВнешнийПользовательСсылка, ОбъектАвторизации); + + КонецЦикла; + +КонецПроцедуры + //////////////////////////////////////////////////////////////////////////////// // Для работы интерфейса ролей в управляемой форме. // Только для внутреннего использования. // +// Параметры: +// Действие - Строка - НастроитьИнтерфейсРолейПриЧтенииНаСервере, +// НастроитьИнтерфейсРолейПриСозданииФормы, +// НастроитьИнтерфейсРолейПриЗагрузкеНастроек, +// ЗаполнитьРоли, +// ОбновитьДеревоРолей, +// ОбновитьСоставРолей, +// ТолькоВыбранныеРоли, +// УстановитьТолькоПросмотрРолей, +// ГруппировкаПоПодсистемам. +// +// Параметры - Структура: +// * ОсновнойПараметр - Неопределено +// - Булево +// - Строка +// - Массив +// - Соответствие +// +// * Форма - ФормаКлиентскогоПриложения: +// ** ПоказатьПодсистемыРолей - Булево +// ** Роли - ДанныеФормыДерево: +// *** ЭтоРоль - Булево +// *** Имя - Строка +// *** Синоним - Строка +// *** ЭтоНедоступнаяРоль - Булево +// *** ЭтоНесуществующаяРоль - Булево +// *** Пометка - Булево +// *** НомерКартинки - Число +// ** Элементы - ВсеЭлементыФормы: +// *** РолиУстановитьФлажки - КнопкаФормы +// *** РолиСнятьФлажки - КнопкаФормы +// *** РолиПоказатьТолькоВыбранныеРоли - КнопкаФормы +// *** РолиПоказатьПодсистемыРолей - КнопкаФормы +// +// * КоллекцияРолей - ТаблицаЗначений: +// ** Роль - Строка +// * НазначениеРолей - Строка +// * СкрытьРольПолныеПрава - Булево +// * ЗапретИзмененияАдминистративногоДоступа - Булево +// Процедура ОбработатьИнтерфейсРолей(Действие, Параметры) Экспорт Если Действие = "УстановитьТолькоПросмотрРолей" Тогда @@ -717,19 +885,19 @@ // Например, адрес электронной почты и телефон. // // Параметры: -// Пользователь - СправочникСсылка.Пользователь +// Пользователь - СправочникСсылка.Пользователи // // Возвращаемое значение: -// Структура: -// * Наименование - Строка -// * ИдентификаторПользователяИБ - Строка -// * Фотография - ДвоичныеДанные +// Структура: +// * Наименование - Строка +// * ИдентификаторПользователяИБ - Строка +// * Фотография - ДвоичныеДанные // - Неопределено -// * Недействителен - Строка -// * ПометкаУдаления - Строка -// * Телефон - Строка -// * АдресЭлектроннойПочты - Строка -// * Подразделение - Неопределено +// * Недействителен - Строка +// * ПометкаУдаления - Строка +// * Телефон - Строка +// * АдресЭлектроннойПочты - Строка +// * Подразделение - Неопределено // - ОпределяемыйТип.Подразделение // Функция ОписаниеПользователя(Пользователь) Экспорт @@ -826,25 +994,15 @@ РегистрироватьВЖурнале = Параметры.ПолученныеПараметрыКлиента <> Неопределено И Не Параметры.ПолученныеПараметрыКлиента.Свойство("ОшибкаАвторизации"); - ОшибкаАвторизации = АвторизоватьТекущегоПользователя(Истина, РегистрироватьВЖурнале); + Результат = АвторизоватьТекущегоПользователяПриВходе(РегистрироватьВЖурнале); - Если Не ЗначениеЗаполнено(ОшибкаАвторизации) Тогда - ОтключитьНеактивныхИПросроченныхПользователей(Истина, ОшибкаАвторизации, РегистрироватьВЖурнале); + Если Результат.ТребуетсяСменитьПароль Тогда + Параметры.Вставить("ТребуетсяСменитьПароль"); + СтандартныеПодсистемыВызовСервера.СкрытьРабочийСтолПриНачалеРаботыСистемы(); КонецЕсли; - Если Не ЗначениеЗаполнено(ОшибкаАвторизации) Тогда - ПроверитьВходВПрограммуРазрешен(ОшибкаАвторизации); - КонецЕсли; - - Если Не ЗначениеЗаполнено(ОшибкаАвторизации) Тогда - Если ТребуетсяСменитьПароль(ОшибкаАвторизации, Истина, РегистрироватьВЖурнале) Тогда - Параметры.Вставить("ТребуетсяСменитьПароль"); - СтандартныеПодсистемыВызовСервера.СкрытьРабочийСтолПриНачалеРаботыСистемы(); - КонецЕсли; - КонецЕсли; - - Если ЗначениеЗаполнено(ОшибкаАвторизации) Тогда - Параметры.Вставить("ОшибкаАвторизации", ОшибкаАвторизации); + Если ЗначениеЗаполнено(Результат.ОшибкаАвторизации) Тогда + Параметры.Вставить("ОшибкаАвторизации", Результат.ОшибкаАвторизации); Отказ = Истина; КонецЕсли; @@ -1074,13 +1232,6 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - ТаблицаЗначений: -// * Версия - Строка -// * Процедура - Строка -// * РежимВыполнения - Строка -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -1088,11 +1239,6 @@ Обработчик.НачальноеЗаполнение = Истина; Обработчик.Процедура = "ПользователиСлужебный.ОбновитьПредопределенныеВидыКонтактнойИнформацииПользователей"; - Обработчик = Обработчики.Добавить(); - Обработчик.НачальноеЗаполнение = Истина; - Обработчик.РежимВыполнения = "Оперативно"; - Обработчик.Процедура = "ПользователиСлужебный.ЗаполнитьНазначениеГруппВнешнихПользователей"; - Если ОбщегоНазначения.РазделениеВключено() Тогда Обработчик = Обработчики.Добавить(); Обработчик.Версия = "2.4.1.1"; @@ -1119,6 +1265,75 @@ Обработчик.РежимВыполнения = "Оперативно"; Обработчик.Процедура = "ПользователиСлужебный.ЗаполнитьНаименованиеПредопределенныхГруппПользователей"; + Если Не ОбщегоНазначения.РазделениеВключено() + И ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда + + // Пользователи + Обработчик = Обработчики.Добавить(); + Обработчик.Процедура = "Справочники.Пользователи.ОбработатьДанныеДляПереходаНаНовуюВерсию"; + Обработчик.Версия = "3.1.4.25"; + Обработчик.РежимВыполнения = "Отложенно"; + Обработчик.Идентификатор = Новый УникальныйИдентификатор("d553f38f-196b-4fb7-ac8e-34ffb7025ab5"); + Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.Пользователи.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; + Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; + Обработчик.Комментарий = НСтр("ru = 'Заполнение электронной почты для восстановления паролей из контактной информации пользователей.'"); + Обработчик.ЧитаемыеОбъекты = "Справочник.Пользователи"; + Обработчик.ИзменяемыеОбъекты = "Справочник.Пользователи"; + Обработчик.БлокируемыеОбъекты = "Справочник.Пользователи"; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Обсуждения") Тогда + Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика(); + + ПриоритетыВыполнения = Обработчик.ПриоритетыВыполнения; // ТаблицаЗначений + НоваяСтрока = ПриоритетыВыполнения.Добавить(); + НоваяСтрока.Процедура = "ОбсужденияСлужебный.ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействий"; // АПК:277-выкл - выполнен условный вызов + НоваяСтрока.Порядок = "После"; + КонецЕсли; + + // Внешние пользователи + ТипыВнешнихПользователей = Метаданные.ОпределяемыеТипы.ВнешнийПользователь.Тип.Типы(); + Если ТипыВнешнихПользователей[0] <> Тип("Строка") + И ТипыВнешнихПользователей[0] <> Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных")Тогда + + Обработчик = Обработчики.Добавить(); + Обработчик.Процедура = "Справочники.ВнешниеПользователи.ОбработатьДанныеДляПереходаНаНовуюВерсию"; + Обработчик.Версия = "3.1.4.25"; + Обработчик.РежимВыполнения = "Отложенно"; + Обработчик.Идентификатор = Новый УникальныйИдентификатор("002f8ac6-dfe6-4d9f-be48-ce3c331aea82"); + Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.ВнешниеПользователи.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; + Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; + Обработчик.Комментарий = НСтр("ru = 'Заполнение электронной почты для восстановления паролей из контактной информации внешних пользователей.'"); + + Читаемые = Новый Массив; + Для Каждого ТипВнешнегоПользователя Из ТипыВнешнихПользователей Цикл + + Если ТипВнешнегоПользователя = Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных") Тогда + Продолжить; + КонецЕсли; + + Читаемые.Добавить(Метаданные.НайтиПоТипу(ТипВнешнегоПользователя).ПолноеИмя()); + КонецЦикла; + Обработчик.ЧитаемыеОбъекты = СтрСоединить(Читаемые, ","); + + Обработчик.ИзменяемыеОбъекты = "Справочник.ВнешниеПользователи"; + Обработчик.БлокируемыеОбъекты = "Справочник.ВнешниеПользователи"; + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриОпределенииНастроек +// +// Параметры: +// Объекты - Массив +// +Процедура ПриОпределенииОбъектовСНачальнымЗаполнением(Объекты) Экспорт + + Объекты.Добавить(Метаданные.Справочники.ГруппыВнешнихПользователей); + Объекты.Добавить(Метаданные.Справочники.ГруппыПользователей); + КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиента. @@ -1130,14 +1345,10 @@ КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. -// -// Параметры: -// Массив - Массив из Строка -// -Процедура ПриДобавленииИсключенийПоискаСсылок(Массив) Экспорт +Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт - Массив.Добавить(Метаданные.РегистрыСведений.СоставыГруппПользователей.ПолноеИмя()); - Массив.Добавить(Метаданные.Справочники.ВнешниеПользователи.Реквизиты.ОбъектАвторизации.ПолноеИмя()); + ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.СоставыГруппПользователей.ПолноеИмя()); + ИсключенияПоискаСсылок.Добавить(Метаданные.Справочники.ВнешниеПользователи.Реквизиты.ОбъектАвторизации.ПолноеИмя()); КонецПроцедуры @@ -1176,10 +1387,8 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. -// // Параметры: -// ТекущиеДела - ТаблицаЗначений +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт @@ -1291,10 +1500,6 @@ // Обработчики событий подсистемы ПодключаемыеКоманды. // См. СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании. -// -// Параметры: -// Объекты - Массив из ОбъектМетаданных -// Процедура ПриОпределенииОбъектовСКомандамиСозданияНаОсновании(Объекты) Экспорт Объекты.Добавить(Метаданные.Справочники.Пользователи); @@ -1839,8 +2044,7 @@ // Для форм элементов справочников Пользователи и ВнешниеПользователи. // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// - РасширениеУправляемойФормыДляОбъектов: +// Форма - ФормаКлиентскогоПриложения: // * Объект - СправочникОбъект.Пользователи // - СправочникОбъект.ВнешниеПользователи // @@ -1888,7 +2092,6 @@ // // Параметры: // Форма - ФормаКлиентскогоПриложения -// - РасширениеУправляемойФормыДляОбъектов // ТекущийОбъект - СправочникОбъект.Пользователи // - СправочникОбъект.ВнешниеПользователи // @@ -2564,29 +2767,6 @@ ИнтеграцияПодсистемБСП.ПриНачалеОбработкиПользователяИБ(ПараметрыОбработки, ОписаниеПользователяИБ); - Если Не ПараметрыОбработки.Свойство("Действие") Тогда - Возврат; - КонецЕсли; - - Если УровеньДоступа.НетДоступа Тогда - ВызватьИсключение ПараметрыОбработки.ТекстСообщенияНедостаточноПрав; - КонецЕсли; - - Если ОписаниеПользователяИБ.Действие = "Удалить" Тогда - - Если Не УровеньДоступа.ИзменениеРазрешенияНаВход Тогда - ВызватьИсключение ПараметрыОбработки.ТекстСообщенияНедостаточноПрав; - КонецЕсли; - - ИначеЕсли Не УровеньДоступа.УправлениеСписком Тогда // Действие = "Записать" - - Если Не УровеньДоступа.ИзменениеТекущего - Или Не ПараметрыОбработки.СтарыйПользовательИБТекущий Тогда - - ВызватьИсключение ПараметрыОбработки.ТекстСообщенияНедостаточноПрав; - КонецЕсли; - КонецЕсли; - УстановитьПривилегированныйРежим(Истина); Если ОписаниеПользователяИБ.Действие = "Записать" @@ -2624,6 +2804,36 @@ Если Не УровеньДоступа.ПолныеПрава Тогда ВызватьИсключение ПараметрыОбработки.ТекстСообщенияНедостаточноПрав; КонецЕсли; + + Если Не ПараметрыОбработки.Свойство("Действие") Тогда + ПользовательОбъект.ИдентификаторПользователяИБ = ОписаниеПользователяИБ.УникальныйИдентификатор; + // Обновление значения реквизита контролируемого при записи. + ПараметрыОбработки.АвтоРеквизиты.ИдентификаторПользователяИБ = + ПользовательОбъект.ИдентификаторПользователяИБ; + КонецЕсли; + КонецЕсли; + + Если Не ПараметрыОбработки.Свойство("Действие") Тогда + Возврат; + КонецЕсли; + + Если УровеньДоступа.НетДоступа Тогда + ВызватьИсключение ПараметрыОбработки.ТекстСообщенияНедостаточноПрав; + КонецЕсли; + + Если ОписаниеПользователяИБ.Действие = "Удалить" Тогда + + Если Не УровеньДоступа.ИзменениеРазрешенияНаВход Тогда + ВызватьИсключение ПараметрыОбработки.ТекстСообщенияНедостаточноПрав; + КонецЕсли; + + ИначеЕсли Не УровеньДоступа.УправлениеСписком Тогда // Действие = "Записать" + + Если Не УровеньДоступа.ИзменениеТекущего + Или Не ПараметрыОбработки.СтарыйПользовательИБТекущий Тогда + + ВызватьИсключение ПараметрыОбработки.ТекстСообщенияНедостаточноПрав; + КонецЕсли; КонецЕсли; Если ОписаниеПользователяИБ.Действие = "Записать" Тогда @@ -2643,6 +2853,9 @@ Если УровеньДоступа.ИзменениеТекущего Тогда ДопустимыеСвойства.Вставить("Пароль"); ДопустимыеСвойства.Вставить("Язык"); + Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда + ДопустимыеСвойства.Вставить("АдресЭлектроннойПочты"); + КонецЕсли; КонецЕсли; Если УровеньДоступа.УправлениеСписком Тогда @@ -2651,6 +2864,10 @@ ДопустимыеСвойства.Вставить("ЗапрещеноИзменятьПароль"); ДопустимыеСвойства.Вставить("Язык"); ДопустимыеСвойства.Вставить("РежимЗапуска"); + Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда + ДопустимыеСвойства.Вставить("АдресЭлектроннойПочты"); + ДопустимыеСвойства.Вставить("ЗапрещеноВосстанавливатьПароль"); + КонецЕсли; КонецЕсли; Если УровеньДоступа.НастройкиДляВхода Тогда @@ -3050,6 +3267,23 @@ КонецЕсли; + Если ОписаниеПользователяИБ.Свойство("АдресЭлектроннойПочты") + И ОписаниеПользователяИБ.Свойство("ЗапрещеноВосстанавливатьПароль") Тогда + + Если Не ОписаниеПользователяИБ.ЗапрещеноВосстанавливатьПароль + И ПустаяСтрока(ОписаниеПользователяИБ.АдресЭлектроннойПочты) Тогда + + ОбщегоНазначения.СообщитьПользователю( + НСтр("ru = 'Не заполнена электронная почта для восстановления пароля.'"), + , + "КонтактнаяИнформация", + , + Отказ); + + КонецЕсли; + + КонецЕсли; + Возврат НЕ Отказ; КонецФункции @@ -3063,17 +3297,21 @@ // Параметры: // ГруппаПользователей - СправочникСсылка.ГруппыПользователей. // -// Пользователь - Неопределено - для всех пользователей. -// - Массив значений СправочникСсылка.Пользователи - для указанных пользователей. -// - СправочникСсылка.Пользователи - для указанного пользователя. +// Пользователь - Неопределено - для всех пользователей. +// - Массив из СправочникСсылка.Пользователи - для указанных пользователей. +// - СправочникСсылка.Пользователи - для указанного пользователя. // // УчастникиИзменений - Неопределено - никаких действий. -// - Массив Из возвращаемое значение - заполняет массив пользователями -// для которых есть изменения. +// - Соответствие из КлючИЗначение: +// * Ключ - СправочникСсылка.Пользователи - заполняет соответствие +// пользователями для которых есть изменения. +// * Значение - Неопределено // // ИзмененныеГруппы - Неопределено - никаких действий. -// - Массив Из возвращаемое значение - заполняет массив группами пользователей -// для которых есть изменения. +// - Соответствие из КлючИЗначение: +// * Ключ - СправочникСсылка.ГруппыПользователей - заполняет соответствие +// группами пользователей для которых есть изменения. +// * Значение - Неопределено // Процедура ОбновитьСоставыГруппПользователей(Знач ГруппаПользователей, Знач Пользователь = Неопределено, @@ -3139,11 +3377,19 @@ // - СправочникСсылка.ГруппыПользователей, // - СправочникСсылка.ГруппыВнешнихПользователей. // -// УчастникиИзменений - Массив Из возвращаемое значение - заполняет массив пользователями или -// внешними пользователями, для которых есть изменения. +// УчастникиИзменений - Неопределено - никаких действий. +// - Соответствие из КлючИЗначение: +// * Ключ - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи - заполняет соответствие +// пользователями для которых есть изменения. +// * Значение - Неопределено // -// ИзмененныеГруппы - Массив Из возвращаемое значение - заполняет массив группами пользователей или -// группами внешних пользователей, для которых есть изменения. +// ИзмененныеГруппы - Неопределено - никаких действий. +// - Соответствие из КлючИЗначение: +// * Ключ - СправочникСсылка.ГруппыПользователей +// - СправочникСсылка.ГруппыВнешнихПользователей - заполняет соответствие +// группами пользователей для которых есть изменения. +// * Значение - Неопределено // Процедура ОбновитьИспользуемостьСоставовГруппПользователей(Знач ПользовательИлиГруппа, Знач УчастникиИзменений, @@ -3266,17 +3512,21 @@ // автоматические группы внешних пользователей по типам объектов авторизации. // // ВнешнийПользователь - Неопределено - для всех внешних пользователей. -// - Массив значений СправочникСсылка.ВнешниеПользователи - для указанных +// - Массив из СправочникСсылка.ВнешниеПользователи - для указанных // внешних пользователей. // - СправочникСсылка.ВнешниеПользователи - для указанного внешнего пользователя. // -// УчастникиИзменений - Неопределено - никаких действий. -// - Массив Из возвращаемое значение - заполняет массив внешними -// пользователями для которых есть изменения. +// УчастникиИзменений - Неопределено - никаких действий. +// - Соответствие из КлючИЗначение: +// * Ключ - СправочникСсылка.ВнешниеПользователи - заполняет соответствие +// внешними пользователями для которых есть изменения. +// * Значение - Неопределено // // ИзмененныеГруппы - Неопределено - никаких действий. -// - Массив Из возвращаемое значение - заполняет массив группами внешних -// пользователей для которых есть изменения. +// - Соответствие из КлючИЗначение: +// * Ключ - СправочникСсылка.ГруппыВнешнихПользователей - заполняет соответствие +// группами внешних пользователей для которых есть изменения. +// * Значение - Неопределено // Процедура ОбновитьСоставыГруппВнешнихПользователей(Знач ГруппаВнешнихПользователей, Знач ВнешнийПользователь = Неопределено, @@ -3871,11 +4121,11 @@ // Параметры: // ГруппыПриемник - СправочникСсылка.ГруппыПользователей, группа, в которую // добавляется пользователь. -// ПользовательСсылка - СправочникСсылка.Пользователь - пользователь, которого необходимо +// ПользовательСсылка - СправочникСсылка.Пользователи - пользователь, которого необходимо // добавить в группу. // // Возвращаемое значение: -// Булево - Ложь, если добавление пользователя в группу невозможно. +// Булево - Ложь, если добавление пользователя в группу невозможно. // Функция ВозможноПеремещениеПользователя(ГруппаПриемник, ПользовательСсылка) Экспорт @@ -4101,6 +4351,265 @@ КонецФункции +//////////////////////////////////////////////////////////////////////////////// +// Восстановление паролей пользователей + +Функция ДоступнаНастройкаВосстановленияПароля(УровеньДоступа) Экспорт + + Если ОбщегоНазначения.РазделениеВключено() Тогда + Возврат Ложь; + КонецЕсли; + + Если Не УровеньДоступа.ИзменениеТекущего + И Не УровеньДоступа.УправлениеСписком Тогда + Возврат Ложь; + КонецЕсли; + + Возврат ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей(); + +КонецФункции + +// Параметры: +// УровеньДоступа - Структура +// Объект - СправочникОбъект.Пользователи +// - СправочникОбъект.ВнешниеПользователи +// +// Возвращаемое значение: +// Булево +// +Функция ИнтерактивноЗапрашиватьВводПароля(УровеньДоступа, Объект) Экспорт + + Если Пользователи.ЭтоПолноправныйПользователь() + Или УровеньДоступа.УправлениеСписком + Или НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда + Возврат Ложь; + ИначеЕсли ЗначениеЗаполнено(Объект.ИдентификаторПользователяИБ) + И УровеньДоступа.ИзменениеТекущего Тогда + + УстановитьПривилегированныйРежим(Истина); + ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Объект.ИдентификаторПользователяИБ); + УстановитьПривилегированныйРежим(Ложь); + + Если ПользовательИБ <> Неопределено Тогда + Возврат ПользовательИБ.ПарольУстановлен; + КонецЕсли; + + КонецЕсли; + + Возврат Истина; + +КонецФункции + +// Параметры: +// УровеньДоступа - Структура +// Объект - СправочникОбъект.Пользователи +// - СправочникОбъект.ВнешниеПользователи +// +// Возвращаемое значение: +// Булево +// +Функция ДоступноРедактированиеПочтыДляВосстановленияПароля(УровеньДоступа, Объект) Экспорт + + Если Пользователи.ЭтоПолноправныйПользователь() + Или УровеньДоступа.ИзменениеТекущего + Или Не ЗначениеЗаполнено(Объект.Ссылка) + Или (УровеньДоступа.УправлениеСписком И Объект.Подготовлен) Тогда + Возврат Истина; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +Функция ПользователиДляВключенияВосстановленияПароля() Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + Возврат Новый Массив; + КонецЕсли; + + МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); + + Запрос = Новый Запрос; + Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ + | ПользователиКонтактнаяИнформация.Ссылка КАК Ссылка + |ИЗ + | Справочник.Пользователи.КонтактнаяИнформация КАК ПользователиКонтактнаяИнформация + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи + | ПО ПользователиКонтактнаяИнформация.Ссылка = Пользователи.Ссылка + |ГДЕ + | ПользователиКонтактнаяИнформация.Вид = &ВидКонтактнойИнформации + | И Пользователи.Недействителен = ЛОЖЬ + | И Пользователи.Служебный = ЛОЖЬ"; + + Запрос.УстановитьПараметр("ВидКонтактнойИнформации", + МодульУправлениеКонтактнойИнформацией.ВидКонтактнойИнформацииПоИмени("EmailПользователя")); + + РезультатЗапроса = Запрос.Выполнить().Выгрузить(); + + Возврат РезультатЗапроса.ВыгрузитьКолонку("Ссылка"); + +КонецФункции + +Функция ВнешниеПользователиДляВключенияВосстановленияПароля() Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + Возврат Новый Массив; + КонецЕсли; + + ТипыВнешнихПользователей = Метаданные.ОпределяемыеТипы.ВнешнийПользователь.Тип.Типы(); + + Если ТипыВнешнихПользователей.Количество() = 0 Тогда + Возврат Новый Массив; + КонецЕсли; + + МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); + + ШаблонЗапроса = "ВЫБРАТЬ РАЗЛИЧНЫЕ + | ВнешниеПользователи.Ссылка КАК Ссылка + |ИЗ + | Справочник.ВнешниеПользователи КАК ВнешниеПользователи + | ЛЕВОЕ СОЕДИНЕНИЕ #КонтактнаяИнформация КАК КонтактнаяИнформацияВнешнегоПользователя + | ПО (ВнешниеПользователи.ОбъектАвторизации = КонтактнаяИнформацияВнешнегоПользователя.Ссылка) + |ГДЕ + | ВнешниеПользователи.Недействителен = ЛОЖЬ + | И КонтактнаяИнформацияВнешнегоПользователя.Тип = &ТипКонтактнойИнформации"; + + НаборЗапросов = Новый Массив; + + Для каждого ТипВнешнегоПользователя Из ТипыВнешнихПользователей Цикл + + Если Не МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(ТипВнешнегоПользователя) Тогда + Продолжить; + КонецЕсли; + + ИмяТаблицы = Метаданные.НайтиПоТипу(ТипВнешнегоПользователя).ПолноеИмя() + ".КонтактнаяИнформация"; + НаборЗапросов.Добавить(СтрЗаменить(ШаблонЗапроса, "#КонтактнаяИнформация", ИмяТаблицы)); + + КонецЦикла; + + Если НаборЗапросов.Количество() = 0 Тогда + Возврат Новый Массив; + КонецЕсли; + + ТекстЗапроса = СтрСоединить(НаборЗапросов, Символы.ПС + " ОБЪЕДИНИТЬ ВСЕ " + Символы.ПС); + + Запрос = Новый Запрос(ТекстЗапроса); + + Запрос.Параметры.Вставить("ТипКонтактнойИнформации", + МодульУправлениеКонтактнойИнформацией.ТипКонтактнойИнформацииПоНаименованию("АдресЭлектроннойПочты")); + + РезультатЗапроса = Запрос.Выполнить().Выгрузить(); + + Возврат РезультатЗапроса.ВыгрузитьКолонку("Ссылка"); + +КонецФункции + +Функция ОбновитьПочтуДляВосстановленияПароля(ПользовательСсылка, ОбъектАвторизации = Неопределено) Экспорт + + Результат = "ОбновлениеНеТребуется"; + + МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); + ИдентификаторПользователяИБ = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПользовательСсылка, "ИдентификаторПользователяИБ"); + + ПользовательИБ = Пользователи.СвойстваПользователяИБ(ИдентификаторПользователяИБ); + Если ПользовательИБ = Неопределено Или ЗначениеЗаполнено(ПользовательИБ.АдресЭлектроннойПочты) Тогда + Возврат Результат; + КонецЕсли; + + Если ОбъектАвторизации = Неопределено Тогда + + ВладелецКИ = ПользовательСсылка; + ТипИлиВидЭлектроннойПочты = МодульУправлениеКонтактнойИнформацией.ВидКонтактнойИнформацииПоИмени("EmailПользователя"); + ПолноеИмяОбъектаМетаданных = Метаданные.Справочники.Пользователи.ПолноеИмя(); + + Иначе + + Если Не МодульУправлениеКонтактнойИнформацией.СодержитКонтактнуюИнформацию(ОбъектАвторизации) Тогда + Возврат Результат; + КонецЕсли; + ВладелецКИ = ОбъектАвторизации; + ТипИлиВидЭлектроннойПочты = МодульУправлениеКонтактнойИнформацией.ТипКонтактнойИнформацииПоНаименованию("АдресЭлектроннойПочты"); + ПолноеИмяОбъектаМетаданных = ОбъектАвторизации.Метаданные().ПолноеИмя(); + + КонецЕсли; + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить(ПолноеИмяОбъектаМетаданных); + ЭлементБлокировки.УстановитьЗначение("Ссылка", ВладелецКИ); + ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый; + + НачатьТранзакцию(); + Попытка + + Блокировка.Заблокировать(); + + КонтактнаяИнформацияПользователя = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ВладелецКИ, + ТипИлиВидЭлектроннойПочты, ТекущаяДатаСеанса(), Ложь); + + Если КонтактнаяИнформацияПользователя.Количество() > 0 Тогда + + СтрокаСПочтой = КонтактнаяИнформацияПользователя[0]; + + ПочтаДляВосстановленияПароля = ""; + Если ЗначениеЗаполнено(СтрокаСПочтой.Значение) Тогда + ПочтаДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.АдресЭлектроннойПочты(СтрокаСПочтой.Значение); + Если Не ОбщегоНазначенияКлиентСервер.АдресЭлектроннойПочтыСоответствуетТребованиям(ПочтаДляВосстановленияПароля) Тогда + ПочтаДляВосстановленияПароля = ""; + КонецЕсли; + КонецЕсли; + + Если ПустаяСтрока(ПочтаДляВосстановленияПароля) И ЗначениеЗаполнено(СтрокаСПочтой.ЗначенияПолей) Тогда + ПочтаДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.АдресЭлектроннойПочты(СтрокаСПочтой.ЗначенияПолей); + Если Не ОбщегоНазначенияКлиентСервер.АдресЭлектроннойПочтыСоответствуетТребованиям(ПочтаДляВосстановленияПароля) Тогда + ПочтаДляВосстановленияПароля = ""; + КонецЕсли; + КонецЕсли; + + Если ПустаяСтрока(ПочтаДляВосстановленияПароля) И ЗначениеЗаполнено(СтрокаСПочтой.Представление) Тогда + ПочтаДляВосстановленияПароля = СтрокаСПочтой.Представление; + КонецЕсли; + + Если ОбщегоНазначенияКлиентСервер.АдресЭлектроннойПочтыСоответствуетТребованиям(ПочтаДляВосстановленияПароля) Тогда + + ПользовательИБ.АдресЭлектроннойПочты = ПочтаДляВосстановленияПароля; + ПользовательИБ.ЗапрещеноВосстанавливатьПароль = Ложь; + Пользователи.УстановитьСвойстваПользователяИБ(ИдентификаторПользователяИБ, ПользовательИБ); + + КонецЕсли; + + КонецЕсли; + + Результат = "Обновлен"; + ЗафиксироватьТранзакцию(); + + Исключение + ОтменитьТранзакцию(); + + // Если не удалось обработать пользователя, повторяем попытку снова. + Результат = "Ошибка"; + + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось обработать пользователя %1 по причине: %2'"), + ПользовательСсылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + + ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, + Метаданные.Справочники.Пользователи, ПользовательСсылка, ТекстСообщения); + КонецПопытки; + + Возврат Результат; + +КонецФункции + +Функция ПоляВосстановленияПаролей() Экспорт + + Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда + Возврат ",ЗапрещеноВосстанавливатьПароль,АдресЭлектроннойПочты"; + КонецЕсли; + + Возврат ""; + +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Универсальные процедуры и функции. @@ -4112,7 +4621,7 @@ // Таблица2 - ТаблицаЗначений // // Возвращаемое значение: -// Массив значений, которые есть только в колонке только одной из таблиц. +// Массив - значения, которые есть только в колонке только одной из таблиц. // Функция РазличияЗначенийКолонки(ИмяКолонки, Таблица1, Таблица2) Экспорт @@ -4211,7 +4720,8 @@ Процедура ДобавитьПоляПользователейГруппы(Настройки) ДобавляемыеПоля = СтрРазделить("Ссылка, НомерКартинки", ", ", Ложь); - ВыбранныеПоля = Настройки.Структура[0].Выбор; + НастройкиСтруктура = Настройки.Структура[0]; // ГруппировкаКомпоновкиДанных + ВыбранныеПоля = НастройкиСтруктура.Выбор; Для Каждого ДобавляемоеПоле Из ДобавляемыеПоля Цикл @@ -4271,44 +4781,6 @@ КонецПроцедуры -// Вызывается при начальном заполнении. -Процедура ЗаполнитьНазначениеГруппВнешнихПользователей() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ГруппыВнешнихПользователей.Ссылка КАК Ссылка - |ИЗ - | Справочник.ГруппыВнешнихПользователей КАК ГруппыВнешнихПользователей - |ГДЕ - | (ГруппыВнешнихПользователей.Предопределенный - | ИЛИ НЕ ГруппыВнешнихПользователей.Ссылка В - | (ВЫБРАТЬ РАЗЛИЧНЫЕ - | ГруппыВнешнихПользователей.Ссылка - | ИЗ - | Справочник.ГруппыВнешнихПользователей.Назначение КАК ГруппыВнешнихПользователейНазначение))"; - - Результат = Запрос.Выполнить(); - Выборка = Результат.Выбрать(); - - Пока Выборка.Следующий() Цикл - - ГруппаОбъект = Выборка.Ссылка.ПолучитьОбъект(); // СправочникСсылка.ГруппыВнешнихПользователей - - Если ГруппаОбъект.Предопределенный Тогда - ПустыеСсылки = ПользователиСлужебныйПовтИсп.ПустыеСсылкиТиповОбъектовАвторизации(); - Для Каждого ПустаяСсылка Из ПустыеСсылки Цикл - НоваяСтрока = ГруппаОбъект.Назначение.Добавить(); - НоваяСтрока.ТипПользователей = ПустаяСсылка; - КонецЦикла; - КонецЕсли; - - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ГруппаОбъект); - - КонецЦикла; - -КонецПроцедуры - // Вызывается при переходе на новую версию конфигурации 2.3.2.30, 3.0.2.192. Процедура ПеренестиНастройкиДлиныИСложностиПаролейКонфигуратора() Экспорт @@ -4461,6 +4933,7 @@ // ** НазваниеНастройки - Строка - название, которое будет отображаться в дереве настроек. // ** КартинкаНастройки - Картинка - картинка, которая будет отображаться в дереве настроек. // ** СписокНастроек - СписокЗначений - список полученных настроек. +// - см. НовоеОписаниеНастройки // Процедура ПриПолученииПрочихНастроекПользователя(СведенияОПользователе, Настройки) Экспорт @@ -4483,6 +4956,17 @@ КонецПроцедуры +// Возвращаемое значение: +// ТаблицаЗначений: +// * Объект - Строка +// * Идентификатор - Строка +// +Функция НовоеОписаниеНастройки() Экспорт + + Возврат Новый Структура; + +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ @@ -4547,17 +5031,17 @@ Запрос = Новый Запрос( "ВЫБРАТЬ ПЕРВЫЕ 1 | ВнешниеПользователи.Ссылка КАК Ссылка, - | ВнешниеПользователи.Недействителен КАК Недействителен + | ВнешниеПользователи.Наименование КАК Наименование, + | ВнешниеПользователи.Недействителен КАК Недействителен, + | ВнешниеПользователи.ИдентификаторПользователяИБ КАК ИдентификаторПользователяИБ |ИЗ | Справочник.ВнешниеПользователи КАК ВнешниеПользователи |ГДЕ | ВнешниеПользователи.ОбъектАвторизации = &СсылкаНаОбъектАвторизации - | И (ВнешниеПользователи.Наименование <> &НовоеПредставлениеОбъектаАвторизации - | ИЛИ ВнешниеПользователи.Недействителен = ЛОЖЬ - | И &ПометкаУдаленияОбъектаАвторизации)"); + | И (ВнешниеПользователи.Недействителен = ЛОЖЬ + | ИЛИ &ПометкаУдаленияОбъектаАвторизации)"); Запрос.УстановитьПараметр("СсылкаНаОбъектАвторизации", СсылкаНаОбъектАвторизации); - Запрос.УстановитьПараметр("НовоеПредставлениеОбъектаАвторизации", Строка(СсылкаНаОбъектАвторизации)); Запрос.УстановитьПараметр("ПометкаУдаленияОбъектаАвторизации", ПометкаУдаленияОбъектаАвторизации); НачатьТранзакцию(); @@ -4568,21 +5052,47 @@ Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить("Справочник.ВнешниеПользователи"); - ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка); - Блокировка.Заблокировать(); - - ВнешнийПользовательОбъект = Выборка.Ссылка.ПолучитьОбъект(); - ВнешнийПользовательОбъект.Наименование = Строка(СсылкаНаОбъектАвторизации); - Если ПометкаУдаленияОбъектаАвторизации И ВнешнийПользовательОбъект.Недействителен = Ложь Тогда - ВнешнийПользовательОбъект.Недействителен = Истина; - Если Пользователи.ВходВПрограммуРазрешен(ВнешнийПользовательОбъект.ИдентификаторПользователяИБ) Тогда - ВнешнийПользовательОбъект.ДополнительныеСвойства.Вставить("ОписаниеПользователяИБ", - Новый Структура("Действие, ВходВПрограммуРазрешен", "Записать", Ложь)); + Если ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() + И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + + Если ЗначениеЗаполнено(Выборка.ИдентификаторПользователяИБ) Тогда + + ПользователяИБ = Пользователи.СвойстваПользователяИБ(Выборка.ИдентификаторПользователяИБ); + Если ПользователяИБ <> Неопределено Тогда + + МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); + + АдресЭлектроннойПочты = МодульУправлениеКонтактнойИнформацией.НовыйАдресПочтыДляВосстановленияПароля( + СсылкаНаОбъектАвторизации, ПользователяИБ.АдресЭлектроннойПочты); + Если АдресЭлектроннойПочты <> Неопределено Тогда + ПользователяИБ.АдресЭлектроннойПочты = АдресЭлектроннойПочты; + Пользователи.УстановитьСвойстваПользователяИБ(Выборка.ИдентификаторПользователяИБ, ПользователяИБ); + КонецЕсли; + КонецЕсли; + КонецЕсли; + КонецЕсли; - ВнешнийПользовательОбъект.Записать(); + + Если Строка(СсылкаНаОбъектАвторизации) <> Выборка.Наименование Тогда + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.ВнешниеПользователи"); + ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка); + Блокировка.Заблокировать(); + + ВнешнийПользовательОбъект = Выборка.Ссылка.ПолучитьОбъект(); + ВнешнийПользовательОбъект.Наименование = Строка(СсылкаНаОбъектАвторизации); + Если ПометкаУдаленияОбъектаАвторизации И ВнешнийПользовательОбъект.Недействителен = Ложь Тогда + ВнешнийПользовательОбъект.Недействителен = Истина; + Если Пользователи.ВходВПрограммуРазрешен(ВнешнийПользовательОбъект.ИдентификаторПользователяИБ) Тогда + ВнешнийПользовательОбъект.ДополнительныеСвойства.Вставить("ОписаниеПользователяИБ", + Новый Структура("Действие, ВходВПрограммуРазрешен", "Записать", Ложь)); + КонецЕсли; + КонецЕсли; + ВнешнийПользовательОбъект.Записать(); + КонецЕсли; + КонецЕсли; ЗафиксироватьТранзакцию(); @@ -4917,7 +5427,7 @@ Если РегистрироватьВЖурнале Тогда ЗаписьЖурналаРегистрации( - НСтр("ru = 'Пользователи.Ошибка входа в программу'", ОбщегоНазначения.КодОсновногоЯзыка()), + ИмяСобытияОшибкаВходаВПрограммуДляЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставление); КонецЕсли; @@ -4925,6 +5435,12 @@ КонецФункции +Функция ИмяСобытияОшибкаВходаВПрограммуДляЖурналаРегистрации() + + Возврат НСтр("ru = 'Пользователи.Ошибка входа в программу'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + // Используется в процедурах ОбновитьСоставыГруппПользователей, // ОбновитьСоставыГруппВнешнихПользователей. // @@ -5488,16 +6004,23 @@ // ПользовательИБ - ПользовательИнформационнойБазы - проверяемый пользователь. // РежимПроверки - Строка - ПриЗаписи или ПриЗапуске. // ЭтоВнешнийПользователь - Булево - проверять права для внешнего пользователя. +// ВызыватьИсключение - Булево - вызвать исключение вместо возврата текста ошибки. +// РегистрироватьВЖурнале - Булево - записать ошибку в журнал регистрации, +// когда ВызыватьИсключение указано Ложь. // -Процедура ПроверитьПраваПользователя(ПользовательИБ, РежимПроверки, ЭтоВнешнийПользователь) +// Возвращаемое значение: +// Строка - текст ошибки, когда ВызыватьИсключение указано Ложь. +// +Функция ПроверитьПраваПользователя(ПользовательИБ, РежимПроверки, ЭтоВнешнийПользователь, + ВызыватьИсключение = Истина, РегистрироватьВЖурнале = Истина) РазделениеВключено = ОбщегоНазначения.РазделениеВключено(); Если РазделениеВключено И ПользовательИБ.РазделениеДанных.Количество() = 0 Тогда - Возврат; // Не нужно проверять неразделенных пользователей в модели сервиса. + Возврат ""; // Не нужно проверять неразделенных пользователей в модели сервиса. КонецЕсли; Если Не РазделениеВключено И РежимПроверки = "ПриЗапуске" И Не ЭтоВнешнийПользователь Тогда - Возврат; // Не нужно проверять права пользователей при запуске в локальном режиме. + Возврат ""; // Не нужно проверять права пользователей при запуске в локальном режиме. КонецЕсли; @@ -5562,51 +6085,59 @@ ДобавляемыеНедоступныеРоли = СокрЛП(ДобавляемыеНедоступныеРоли); Если Не ЗначениеЗаполнено(ДобавляемыеНедоступныеРоли) Тогда - Возврат; + Возврат ""; КонецЕсли; - ИмяСобытия = НСтр("ru = 'Пользователи.Ошибка при установке ролей пользователю ИБ'", - ОбщегоНазначения.КодОсновногоЯзыка()); - Если РежимПроверки = "ПриЗапуске" Тогда - Если СтрЧислоСтрок(ДобавляемыеНедоступныеРоли) = 1 Тогда - ТекстРегистрацииВхода = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Попытка входа пользователя %1 с недоступной ролью: - |%2.'"), - ПользовательИБ.ПолноеИмя, ДобавляемыеНедоступныеРоли); - Иначе - ТекстРегистрацииВхода = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Попытка входа пользователя %1 с недоступными ролями: - |%2.'"), - ПользовательИБ.ПолноеИмя, ДобавляемыеНедоступныеРоли); + Если ВызыватьИсключение Или РегистрироватьВЖурнале Тогда + Если СтрЧислоСтрок(ДобавляемыеНедоступныеРоли) = 1 Тогда + ТекстРегистрацииВхода = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Попытка входа пользователя %1 с недоступной ролью: + |%2.'"), + ПользовательИБ.ПолноеИмя, ДобавляемыеНедоступныеРоли); + Иначе + ТекстРегистрацииВхода = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Попытка входа пользователя %1 с недоступными ролями: + |%2.'"), + ПользовательИБ.ПолноеИмя, ДобавляемыеНедоступныеРоли); + КонецЕсли; + ЗаписьЖурналаРегистрации(ИмяСобытияОшибкаВходаВПрограммуДляЖурналаРегистрации(), + УровеньЖурналаРегистрации.Ошибка, , ПользовательИБ, ТекстРегистрацииВхода); КонецЕсли; - ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка, , ПользовательИБ, - ТекстРегистрацииВхода); ТекстСообщенияВхода = НСтр("ru = 'Невозможно выполнить вход из-за наличия недоступных ролей. |Обратитесь к администратору.'"); - ВызватьИсключение ТекстСообщенияВхода; + + Если ВызыватьИсключение Тогда + ВызватьИсключение ТекстСообщенияВхода; + Иначе + Возврат ТекстСообщенияВхода; + КонецЕсли; КонецЕсли; - Если СтрЧислоСтрок(ДобавляемыеНедоступныеРоли) = 1 И ЗначениеЗаполнено(ДобавляемыеНедоступныеРоли) Тогда - ТекстРегистрацииДобавления = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Попытка назначить пользователю %1 недоступную роль: - |%2.'"), - ПользовательИБ.ПолноеИмя, ДобавляемыеНедоступныеРоли); - - ИначеЕсли СтрЧислоСтрок(ДобавляемыеНедоступныеРоли) > 1 Тогда - ТекстРегистрацииДобавления = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Попытка назначить пользователю %1 недоступные роли: - |%2.'"), - ПользовательИБ.ПолноеИмя, ДобавляемыеНедоступныеРоли); - Иначе - ТекстРегистрацииДобавления = ""; + Если ВызыватьИсключение Или РегистрироватьВЖурнале Тогда + Если СтрЧислоСтрок(ДобавляемыеНедоступныеРоли) = 1 И ЗначениеЗаполнено(ДобавляемыеНедоступныеРоли) Тогда + ТекстРегистрацииДобавления = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Попытка назначить пользователю %1 недоступную роль: + |%2.'"), + ПользовательИБ.ПолноеИмя, ДобавляемыеНедоступныеРоли); + + ИначеЕсли СтрЧислоСтрок(ДобавляемыеНедоступныеРоли) > 1 Тогда + ТекстРегистрацииДобавления = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Попытка назначить пользователю %1 недоступные роли: + |%2.'"), + ПользовательИБ.ПолноеИмя, ДобавляемыеНедоступныеРоли); + Иначе + ТекстРегистрацииДобавления = ""; + КонецЕсли; + ИмяСобытия = НСтр("ru = 'Пользователи.Ошибка при установке ролей пользователю ИБ'", + ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка, , ПользовательИБ, + ТекстРегистрацииДобавления); КонецЕсли; - ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка, , ПользовательИБ, - ТекстРегистрацииДобавления); - Если СтрЧислоСтрок(ДобавляемыеНедоступныеРоли) = 1 И ЗначениеЗаполнено(ДобавляемыеНедоступныеРоли) Тогда ТекстСообщенияДобавления = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Пользователю ""%1"" невозможно назначить недоступную роль: @@ -5622,9 +6153,13 @@ ТекстСообщенияДобавления = ""; КонецЕсли; - ВызватьИсключение ТекстСообщенияДобавления; + Если ВызыватьИсключение Тогда + ВызватьИсключение ТекстСообщенияДобавления; + Иначе + Возврат ТекстСообщенияДобавления; + КонецЕсли; -КонецПроцедуры +КонецФункции Функция СписокНастроек(ИмяПользователяИБ, МенеджерНастроек) @@ -5695,7 +6230,7 @@ СведенияОПользователеПриемнике.Вставить("ИмяПользователяИнформационнойБазы", ИмяПользователяПриемник); // Получение прочих настроек. - ПрочиеНастройкиПользователей = Новый Структура; + ПрочиеНастройкиПользователей = Новый Структура; // см. ПриПолученииПрочихНастроекПользователя.Настройки ПриПолученииПрочихНастроекПользователя(СведенияОПользователеИсточнике, ПрочиеНастройкиПользователей); Ключи = Новый СписокЗначений; @@ -5704,7 +6239,7 @@ Для Каждого ПрочаяНастройка Из ПрочиеНастройкиПользователей Цикл ПрочиеНастройкиСтруктура = Новый Структура; Если ПрочаяНастройка.Ключ = "НастройкаБыстрогоДоступа" Тогда - СписокНастроек = ПрочаяНастройка.Значение.СписокНастроек; + СписокНастроек = ПрочаяНастройка.Значение.СписокНастроек; // См. НовоеОписаниеНастройки Для Каждого Элемент Из СписокНастроек Цикл Ключи.Добавить(Элемент.Объект, Элемент.Идентификатор); КонецЦикла; @@ -5941,45 +6476,6 @@ КонецФункции -// Возвращает версию режима совместимости в формате нумерации редакций и версий, например, 8.3.15.0. -// -// Возвращаемое значение: -// Строка - версия режима совместимости в формате нумерации редакций и версий. -// -Функция ВерсияРежимаСовместимости() - - Если Метаданные.РежимСовместимости = Метаданные.СвойстваОбъектов.РежимСовместимости.НеИспользовать Тогда - - Информация = Новый СистемнаяИнформация; - Возврат Информация.ВерсияПриложения; - - КонецЕсли; - - ОписаниеРежимаСовместимости = СтрРазделить(Метаданные.РежимСовместимости, "_"); - Символов = СтрДлина(ОписаниеРежимаСовместимости[0]); - - НомерРедакции = ""; - - Для НомерСимвола = 1 По Символов Цикл - - ТекущийСимвол = Сред(ОписаниеРежимаСовместимости[0], НомерСимвола, 1); - - Если СтрНайти("0123456789", ТекущийСимвол) > 0 Тогда - НомерРедакции = НомерРедакции + ТекущийСимвол; - КонецЕсли; - - КонецЦикла; - - ОписаниеРежимаСовместимости.Установить(0, НомерРедакции); - - Для Индекс = ОписаниеРежимаСовместимости.Количество() По 3 Цикл - ОписаниеРежимаСовместимости.Добавить("0"); - КонецЦикла; - - Возврат СтрСоединить(ОписаниеРежимаСовместимости, "."); - -КонецФункции - //////////////////////////////////////////////////////////////////////////////// // Процедуры используемые при обмене данными. @@ -6989,16 +7485,7 @@ // Заполняет коллекцию ролей. // // Параметры: -// Параметры - Структура: -// * ОсновнойПараметр - Неопределено -// - Булево -// - Строка -// - Массив -// - Соответствие -// * Форма - ФормаКлиентскогоПриложения -// * КоллекцияРолей - ТаблицаЗначений: -// ** Роль - Строка -// * НазначениеРолей - Строка +// Параметры - см. ОбработатьИнтерфейсРолей.Параметры // Процедура ЗаполнитьРоли(Параметры) @@ -7043,9 +7530,12 @@ КонецПроцедуры +// Параметры: +// Параметры - см. ОбработатьИнтерфейсРолей.Параметры +// Процедура НастроитьИнтерфейсРолейПриСозданииФормы(Параметры) - Форма = Параметры.Форма; // ФормаКлиентскогоПриложения + Форма = Параметры.Форма; // Условное оформление недоступных ролей. ЭлементУсловногоОформления = Форма.УсловноеОформление.Элементы.Добавить(); @@ -7085,9 +7575,12 @@ КонецПроцедуры +// Параметры: +// Параметры - см. ОбработатьИнтерфейсРолей.Параметры +// Процедура НастроитьИнтерфейсРолейПриЧтенииНаСервере(Параметры) - Форма = Параметры.Форма; // ФормаКлиентскогоПриложения + Форма = Параметры.Форма; Элементы = Форма.Элементы; // Установка начальных значений перед загрузкой данных из настроек на сервере @@ -7104,10 +7597,13 @@ КонецПроцедуры +// Параметры: +// Параметры - см. ОбработатьИнтерфейсРолей.Параметры +// Процедура НастроитьИнтерфейсРолейПриЗагрузкеНастроек(Параметры) Настройки = Параметры.ОсновнойПараметр; - Форма = Параметры.Форма; // ФормаКлиентскогоПриложения + Форма = Параметры.Форма; Элементы = Форма.Элементы; ПоказатьПодсистемыРолей = Форма.ПоказатьПодсистемыРолей; @@ -7126,9 +7622,12 @@ КонецПроцедуры +// Параметры: +// Параметры - см. ОбработатьИнтерфейсРолей.Параметры +// Процедура УстановитьТолькоПросмотрРолей(Параметры) - Форма = Параметры.Форма; // ФормаКлиентскогоПриложения + Форма = Параметры.Форма; Элементы = Форма.Элементы; ТолькоПросмотрРолей = Параметры.ОсновнойПараметр; @@ -7149,9 +7648,12 @@ КонецПроцедуры +// Параметры: +// Параметры - см. ОбработатьИнтерфейсРолей.Параметры +// Процедура ТолькоВыбранныеРоли(Параметры) - Форма = Параметры.Форма; // ФормаКлиентскогоПриложения + Форма = Параметры.Форма; Форма.Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка = НЕ Форма.Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка; @@ -7160,9 +7662,12 @@ КонецПроцедуры +// Параметры: +// Параметры - см. ОбработатьИнтерфейсРолей.Параметры +// Процедура ГруппировкаПоПодсистемам(Параметры) - Форма = Параметры.Форма; // ФормаКлиентскогоПриложения + Форма = Параметры.Форма; Форма.ПоказатьПодсистемыРолей = НЕ Параметры.Форма.ПоказатьПодсистемыРолей; Форма.Элементы.РолиПоказатьПодсистемыРолей.Пометка = Параметры.Форма.ПоказатьПодсистемыРолей; @@ -7171,9 +7676,12 @@ КонецПроцедуры +// Параметры: +// Параметры - см. ОбработатьИнтерфейсРолей.Параметры +// Процедура ОбновитьДеревоРолей(Параметры) - Форма = Параметры.Форма; // ФормаКлиентскогоПриложения + Форма = Параметры.Форма; Элементы = Форма.Элементы; Роли = Форма.Роли; НазначениеРолей = Параметры.НазначениеРолей; @@ -7270,6 +7778,17 @@ КонецПроцедуры +// Параметры: +// Параметры - см. ОбработатьИнтерфейсРолей.Параметры +// ДеревоРолей - ДеревоЗначений: +// * ЭтоРоль - Булево +// * Имя - Строка - имя роли или подсистемы. +// * Синоним - Строка - синоним роли или подсистемы. +// * ЭтоНедоступнаяРоль - Булево +// * ЭтоНесуществующаяРоль - Булево +// * Пометка - Булево +// * НомерКартинки - Число +// Процедура ДобавитьИменаНесуществующихИНедоступныхРолей(Параметры, ДеревоРолей) КоллекцияРолей = Параметры.КоллекцияРолей; @@ -7380,9 +7899,12 @@ КонецФункции +// Параметры: +// Параметры - см. ОбработатьИнтерфейсРолей.Параметры +// Процедура ОбновитьСоставРолей(Параметры) - Форма = Параметры.Форма; // ФормаКлиентскогоПриложения + Форма = Параметры.Форма; Роли = Форма.Роли; ПоказатьТолькоВыбранныеРоли = Форма.Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка; @@ -7461,6 +7983,11 @@ КонецПроцедуры +// Параметры: +// Параметры - см. ОбработатьИнтерфейсРолей.Параметры +// Роль - Строка +// Добавить - Булево +// Процедура ДобавитьУдалитьРоль(Параметры, Знач Роль, Знач Добавить) НайденныеРоли = Параметры.КоллекцияРолей.НайтиСтроки(Новый Структура("Роль", Роль)); @@ -7480,12 +8007,9 @@ // Изменяет состав ролей. // // Параметры: -// Параметры - Структура -// Коллекция - ДанныеФормыЭлементДерева: -// * Пометка - Булево -// * Имя - Строка -// * Синоним - Строка -// Добавить - Булево +// Параметры - см. ОбработатьИнтерфейсРолей.Параметры +// Коллекция - см. ОбработатьИнтерфейсРолей.Параметры.Форма.Элементы.Роли +// Добавить - Булево // Процедура ДобавитьУдалитьРолиПодсистемы(Параметры, Знач Коллекция, Знач Добавить) @@ -7499,9 +8023,13 @@ КонецПроцедуры +// Параметры: +// Параметры - см. ОбработатьИнтерфейсРолей.Параметры +// Коллекция - см. ОбработатьИнтерфейсРолей.Параметры.Форма.Элементы.Роли +// Процедура ОбновитьПометкуВыбранныхРолей(Параметры, Знач Коллекция) - Форма = Параметры.Форма; // ФормаКлиентскогоПриложения + Форма = Параметры.Форма; ПоказатьТолькоВыбранныеРоли = Форма.Элементы.РолиПоказатьТолькоВыбранныеРоли.Пометка; @@ -7584,4 +8112,4 @@ КонецФункции -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервиса/Module.bsl index 39995bd00..c81f24c0b 100644 --- a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервиса/Module.bsl @@ -271,7 +271,7 @@ // Вызывается при авторизации нового пользователя информационной базы. // // Параметры: -// ПользовательИБ - ПользовательИнформационнойБазы, текущий пользователь информационной базы, +// ПользовательИБ - ПользовательИнформационнойБазы - текущий пользователь информационной базы, // СтандартнаяОбработка - Булево - значение может быть установлено внутри обработчика, в этом случае // стандартная обработка авторизации нового пользователя ИБ выполняться не будет. // @@ -292,7 +292,7 @@ Попытка Блокировка = Новый БлокировкаДанных(); - БлокировкаСправочника = Блокировка.Добавить("Справочник.Пользователи"); + Блокировка.Добавить("Справочник.Пользователи"); Блокировка.Заблокировать(); Если Не ПользователиСлужебный.ПользовательПоИдентификаторуСуществует(ТекущийПользовательИБ.УникальныйИдентификатор) Тогда @@ -542,7 +542,7 @@ // ссылок в файлах выгрузки. // // Параметры: -// Типы - Массив Из ОбъектМетаданных. +// Типы - Массив из ОбъектМетаданных // Процедура ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке(Типы) Экспорт @@ -557,9 +557,9 @@ // ТаблицаОбработчиков - ТаблицаЗначений - в данной процедуре требуется // дополнить эту таблицу значений информацией о регистрируемых произвольных // обработчиках выгрузки данных. Колонки: -// ОбъектМетаданных - ОбъектМетаданных, при выгрузке данных которого должен +// ОбъектМетаданных - ОбъектМетаданных - при выгрузке данных которого должен // вызываться регистрируемый обработчик, -// Обработчик - ОбщийМодуль, общий модуль, в котором реализован произвольный +// Обработчик - ОбщийМодуль - общий модуль, в котором реализован произвольный // обработчик выгрузки данных. Набор экспортных процедур, которые должны // быть реализованы в обработчике, зависит от установки значений следующих // колонок таблицы значений, @@ -579,7 +579,7 @@ // СериализаторXDTO, переданный в процедуру ПередВыгрузкойТипа() в качестве // значения параметра Сериализатор, а не полученных с помощью свойства глобального // контекста СериализаторXDTO, -// ОбъектМетаданных - ОбъектМетаданных, перед выгрузкой данных которого +// ОбъектМетаданных - ОбъектМетаданных - перед выгрузкой данных которого // был вызван обработчик, // Отказ - Булево - если в процедуре ПередВыгрузкойТипа() установить значение // данного параметра равным Истина - выгрузка объектов, соответствующих @@ -601,17 +601,27 @@ // СериализаторXDTO, переданный в процедуру ПередВыгрузкойОбъекта() в качестве // значения параметра Сериализатор, а не полученных с помощью свойства глобального // контекста СериализаторXDTO, -// Объект - КонстантаМенеджерЗначения.*, СправочникОбъект.*, ДокументОбъект.*, -// БизнесПроцессОбъект.*, ЗадачаОбъект.*, ПланСчетовОбъект.*, ПланОбменаОбъект.*, -// ПланВидовХарактеристикОбъект.*, ПланВидовРасчетаОбъект.*, РегистрСведенийНаборЗаписей.*, -// РегистрНакопленияНаборЗаписей.*, РегистрБухгалтерииНаборЗаписей.*, -// РегистрРасчетаНаборЗаписей.*, ПоследовательностьНаборЗаписей.*, ПерерасчетНаборЗаписей.* - +// Объект - КонстантаМенеджерЗначения.* +// - СправочникОбъект.* +// - ДокументОбъект.* +// - БизнесПроцессОбъект.* +// - ЗадачаОбъект.* +// - ПланСчетовОбъект.* +// - ПланОбменаОбъект.* +// - ПланВидовХарактеристикОбъект.* +// - ПланВидовРасчетаОбъект.* +// - РегистрСведенийНаборЗаписей.* +// - РегистрНакопленияНаборЗаписей.* +// - РегистрБухгалтерииНаборЗаписей.* +// - РегистрРасчетаНаборЗаписей.* +// - ПоследовательностьНаборЗаписей.* +// - ПерерасчетНаборЗаписей.* - // объект данных информационной базы, перед выгрузкой которого был вызван обработчик. // Значение, переданное в процедуру ПередВыгрузкойОбъекта() в качестве значения параметра // Объект может быть модифицировано внутри обработчика ПередВыгрузкойОбъекта(), при // этом внесенные изменения будут отражены в сериализации объекта в файлах выгрузки, но // не будут зафиксированы в информационной базе -// Артефакты - Массив Из ОбъектXDTO - набор дополнительной информации, логически неразрывно +// Артефакты - Массив из ОбъектXDTO - набор дополнительной информации, логически неразрывно // связанной с объектом, но не являющейся его частью (артефакты объекта). Артефакты должны // сформированы внутри обработчика ПередВыгрузкойОбъекта() и добавлены в массив, переданный // в качестве значения параметра Артефакты. Каждый артефакт должен являться XDTO-объектом, @@ -636,7 +646,7 @@ // СериализаторXDTO, переданный в процедуру ПослеВыгрузкиТипа() в качестве // значения параметра Сериализатор, а не полученных с помощью свойства глобального // контекста СериализаторXDTO, -// ОбъектМетаданных - ОбъектМетаданных, после выгрузки данных которого +// ОбъектМетаданных - ОбъектМетаданных - после выгрузки данных которого // был вызван обработчик. // Процедура ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков) Экспорт @@ -652,9 +662,9 @@ // ТаблицаОбработчиков - ТаблицаЗначений - в данной процедуре требуется // дополнить эту таблицу значений информацией о регистрируемых произвольных // обработчиках загрузки данных. Колонки: -// ОбъектМетаданных - ОбъектМетаданных, при загрузке данных которого должен +// ОбъектМетаданных - ОбъектМетаданных - при загрузке данных которого должен // вызываться регистрируемый обработчик, -// Обработчик - ОбщийМодуль, общий модуль, в котором реализован произвольный +// Обработчик - ОбщийМодуль - общий модуль, в котором реализован произвольный // обработчик загрузки данных. Набор экспортных процедур, которые должны // быть реализованы в обработчике, зависит от установки значений следующих // колонок таблицы значений, @@ -668,7 +678,7 @@ // Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер // контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий // к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// ОбъектМетаданных - ОбъектМетаданных, перед сопоставлением ссылок которого +// ОбъектМетаданных - ОбъектМетаданных - перед сопоставлением ссылок которого // был вызван обработчик, // СтандартнаяОбработка - Булево - если процедуре ПередСопоставлениемСсылок() // установить значение данного параметра равным Ложь, вместо стандартного @@ -683,14 +693,14 @@ // к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера, // ТаблицаИсходныхСсылок - ТаблицаЗначений - содержащая информацию о ссылках, // выгруженных из исходной ИБ. Колонки: -// ИсходнаяСсылка - ЛюбаяСсылка, ссылка объекта исходной ИБ, которую требуется +// ИсходнаяСсылка - ЛюбаяСсылка - ссылка объекта исходной ИБ, которую требуется // сопоставить c ссылкой в текущей ИБ, // Остальные колонки равным полям естественного ключа объекта, которые в // процессе выгрузки данных были переданы в функцию // Обработка.ВыгрузкаЗагрузкаДанныхМенеджерВыгрузкиДанныхИнформационнойБазы.ТребуетсяСопоставитьСсылкуПриЗагрузке() // Возвращаемое значение функции СопоставитьСсылки() - ТаблицаЗначений, колонки: -// ИсходнаяСсылка - ЛюбаяСсылка, ссылка объекта, выгруженная из исходной ИБ, -// Ссылка - ЛюбаяСсылка, сопоставленная исходной ссылка в текущей ИБ. +// ИсходнаяСсылка - ЛюбаяСсылка - ссылка объекта, выгруженная из исходной ИБ, +// Ссылка - ЛюбаяСсылка - сопоставленная исходной ссылка в текущей ИБ. // Отказ - Булево - если в процедуре ПередСопоставлениемСсылок() установить значение // данного параметра равным Истина - сопоставление ссылок, соответствующих // текущему объекту метаданных, выполняться не будет. @@ -702,7 +712,7 @@ // Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер // контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий // к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// ОбъектМетаданных - ОбъектМетаданных, перед загрузкой всех данных которого +// ОбъектМетаданных - ОбъектМетаданных - перед загрузкой всех данных которого // был вызван обработчик, // Отказ - Булево - если в процедуре ПередЗагрузкойТипа() установить значение данного // параметра равным Истина - загрузка всех объектов данных соответствующих текущему @@ -715,15 +725,25 @@ // Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер // контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий // к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// Объект - КонстантаМенеджерЗначения.*, СправочникОбъект.*, ДокументОбъект.*, -// БизнесПроцессОбъект.*, ЗадачаОбъект.*, ПланСчетовОбъект.*, ПланОбменаОбъект.*, -// ПланВидовХарактеристикОбъект.*, ПланВидовРасчетаОбъект.*, РегистрСведенийНаборЗаписей.*, -// РегистрНакопленияНаборЗаписей.*, РегистрБухгалтерииНаборЗаписей.*, -// РегистрРасчетаНаборЗаписей.*, ПоследовательностьНаборЗаписей.*, ПерерасчетНаборЗаписей.* - +// Объект - КонстантаМенеджерЗначения.* +// - СправочникОбъект.* +// - ДокументОбъект.* +// - БизнесПроцессОбъект.* +// - ЗадачаОбъект.* +// - ПланСчетовОбъект.* +// - ПланОбменаОбъект.* +// - ПланВидовХарактеристикОбъект.* +// - ПланВидовРасчетаОбъект.* +// - РегистрСведенийНаборЗаписей.* +// - РегистрНакопленияНаборЗаписей.* +// - РегистрБухгалтерииНаборЗаписей.* +// - РегистрРасчетаНаборЗаписей.* +// - ПоследовательностьНаборЗаписей.* +// - ПерерасчетНаборЗаписей.* - // объект данных информационной базы, перед загрузкой которого был вызван обработчик. // Значение, переданное в процедуру ПередЗагрузкойОбъекта() в качестве значения параметра // Объект может быть модифицировано внутри процедуры обработчика ПередЗагрузкойОбъекта(). -// Артефакты - Массив Из ОбъектXDTO - дополнительные данные, логически неразрывно связанные +// Артефакты - Массив из ОбъектXDTO - дополнительные данные, логически неразрывно связанные // с объектом данных, но не являющиеся его частью. Сформированы в экспортируемых процедурах // ПередВыгрузкойОбъекта() обработчиков выгрузки данных (см. комментарий к процедуре // ПриРегистрацииОбработчиковВыгрузкиДанных(). Каждый артефакт должен являться XDTO-объектом, @@ -740,13 +760,23 @@ // Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер // контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий // к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// Объект - КонстантаМенеджерЗначения.*, СправочникОбъект.*, ДокументОбъект.*, -// БизнесПроцессОбъект.*, ЗадачаОбъект.*, ПланСчетовОбъект.*, ПланОбменаОбъект.*, -// ПланВидовХарактеристикОбъект.*, ПланВидовРасчетаОбъект.*, РегистрСведенийНаборЗаписей.*, -// РегистрНакопленияНаборЗаписей.*, РегистрБухгалтерииНаборЗаписей.*, -// РегистрРасчетаНаборЗаписей.*, ПоследовательностьНаборЗаписей.*, ПерерасчетНаборЗаписей.* - +// Объект - КонстантаМенеджерЗначения.* +// - СправочникОбъект.* +// - ДокументОбъект.* +// - БизнесПроцессОбъект.* +// - ЗадачаОбъект.* +// - ПланСчетовОбъект.* +// - ПланОбменаОбъект.* +// - ПланВидовХарактеристикОбъект.* +// - ПланВидовРасчетаОбъект.* +// - РегистрСведенийНаборЗаписей.* +// - РегистрНакопленияНаборЗаписей.* +// - РегистрБухгалтерииНаборЗаписей.* +// - РегистрРасчетаНаборЗаписей.* +// - ПоследовательностьНаборЗаписей.* +// - ПерерасчетНаборЗаписей.* - // объект данных информационной базы, после загрузки которого был вызван обработчик. -// Артефакты - Массив Из ОбъектXDTO - дополнительные данные, логически неразрывно связанные +// Артефакты - Массив из ОбъектXDTO - дополнительные данные, логически неразрывно связанные // с объектом данных, но не являющиеся его частью. Сформированы в экспортируемых процедурах // ПередВыгрузкойОбъекта() обработчиков выгрузки данных (см. комментарий к процедуре // ПриРегистрацииОбработчиковВыгрузкиДанных(). Каждый артефакт должен являться XDTO-объектом, @@ -761,7 +791,7 @@ // Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер // контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий // к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// ОбъектМетаданных - ОбъектМетаданных, после загрузки всех объектов которого +// ОбъектМетаданных - ОбъектМетаданных - после загрузки всех объектов которого // был вызван обработчик. // Процедура ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков) Экспорт @@ -779,7 +809,7 @@ // к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера, // Сериализация - ОбъектXDTO - ОбъектXDTO {http://www.1c.ru/1cFresh/Data/Dump/1.0.2.1}InfoBaseUser, // сериализация пользователя информационной базы, -// ПользовательИБ - ПользовательИнформационнойБазы, десериализованный из выгрузки, +// ПользовательИБ - ПользовательИнформационнойБазы - десериализованный из выгрузки, // Отказ - Булево - при установке значения данного параметры внутри этой процедуры в // значение Ложь загрузка пользователя информационной базы будет пропущена. // @@ -807,7 +837,7 @@ // к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера, // Сериализация - ОбъектXDTO - ОбъектXDTO {http://www.1c.ru/1cFresh/Data/Dump/1.0.2.1}InfoBaseUser, // сериализация пользователя информационной базы, -// ПользовательИБ - ПользовательИнформационнойБазы, десериализованный из выгрузки. +// ПользовательИБ - ПользовательИнформационнойБазы - десериализованный из выгрузки. // Процедура ПослеЗагрузкиПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ) Экспорт @@ -1111,9 +1141,9 @@ НачатьТранзакцию(); Попытка - ВызываемыйМодуль = ОбщегоНазначения.ОбщийМодуль("СообщенияУправленияПриложениямиИнтерфейс"); + МодульСообщенияУправленияПриложениямиИнтерфейс = ОбщегоНазначения.ОбщийМодуль("СообщенияУправленияПриложениямиИнтерфейс"); Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( - ВызываемыйМодуль.СообщениеАннулироватьДоступПользователя()); + МодульСообщенияУправленияПриложениямиИнтерфейс.СообщениеАннулироватьДоступПользователя()); Сообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); Сообщение.Body.UserServiceID = ПользовательОбъект.ИдентификаторПользователяСервиса; diff --git a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаКлиент/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаКлиент/Module.bsl index 33432207b..de16c3fd2 100644 --- a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаКлиент/Module.bsl @@ -12,7 +12,7 @@ // // Параметры: // ОбработкаПродолжения - ОписаниеОповещения - которое нужно обработать после получения пароля. -// ФормаВладелец - ФормаКлиентскогоПриложения, которая запрашивает пароль. +// ФормаВладелец - ФормаКлиентскогоПриложения - которая запрашивает пароль. // ПарольПользователяСервиса - Строка - текущий пароль пользователя сервиса. // Процедура ЗапроситьПарольДляАутентификацииВСервисе(ОбработкаПродолжения, ФормаВладелец, ПарольПользователяСервиса) Экспорт diff --git a/SSL/src/CommonModules/ПользователиСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйКлиент/Module.bsl index b117e4884..13b4c1bf3 100644 --- a/SSL/src/CommonModules/ПользователиСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебныйКлиент/Module.bsl @@ -131,8 +131,8 @@ Если ПараметрыКлиента.Свойство("ОшибкаАвторизации") Тогда Параметры.ПолученныеПараметрыКлиента.Вставить("ОшибкаАвторизации"); Параметры.Отказ = Истина; - Параметры.ИнтерактивнаяОбработка = Новый ОписаниеОповещения( - "ИнтерактивнаяОбработкаПриОшибкеАвторизации", ЭтотОбъект); + Параметры.ИнтерактивнаяОбработка = Новый ОписаниеОповещения("ПоказатьПредупреждениеИПродолжить", + СтандартныеПодсистемыКлиент, ПараметрыКлиента.ОшибкаАвторизации); Возврат; КонецЕсли; @@ -201,16 +201,6 @@ КонецПроцедуры -// Предупреждает пользователя об ошибке авторизации. -Процедура ИнтерактивнаяОбработкаПриОшибкеАвторизации(Параметры, Контекст) Экспорт - - ПараметрыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске(); - - СтандартныеПодсистемыКлиент.ПоказатьПредупреждениеИПродолжить( - Параметры, ПараметрыКлиента.ОшибкаАвторизации); - -КонецПроцедуры - // Предлагает пользователю сменить пароль или завершить работу. Процедура ИнтерактивнаяОбработкаПриСменеПароляПриЗапуске(Параметры, Контекст) Экспорт @@ -311,7 +301,7 @@ Если Пользователь <> ТекущийПользователь Тогда ТекстПредупреждения = НСтр("ru = 'Для просмотра настроек другого пользователя необходимо - |запустить программу от его имени и открыть нужный отчет или форму.'"); + |запустить программу от его имени и открыть нужную настройку.'"); ПоказатьПредупреждение(,ТекстПредупреждения); Возврат; КонецЕсли; @@ -376,7 +366,7 @@ КонецЦикла; - ПоказатьПредупреждение(,НСтр("ru = 'Данную настройку невозможно просмотреть.'")); + ПоказатьПредупреждение(,НСтр("ru = 'Просмотр данной настройки не предусмотрен.'")); Возврат; ИначеЕсли ЭлементДереваЗначений.Имя = "ПрочиеНастройки" Тогда @@ -387,7 +377,7 @@ Возврат; КонецЕсли; - ПоказатьПредупреждение(,НСтр("ru = 'Данную настройку невозможно просмотреть.'")); + ПоказатьПредупреждение(,НСтр("ru = 'Просмотр данной настройки не предусмотрен.'")); Возврат; КонецЕсли; diff --git a/SSL/src/CommonModules/ПользователиСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйКлиентСервер/Module.bsl index 174bda666..1a6aad47f 100644 --- a/SSL/src/CommonModules/ПользователиСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебныйКлиентСервер/Module.bsl @@ -32,6 +32,25 @@ КонецФункции +//////////////////////////////////////////////////////////////////////////////// +// Восстановление паролей пользователей + +Функция ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Экспорт + + СистемнаяИнформация = Новый СистемнаяИнформация(); + Поддерживает = + (ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.15.2106") > 0 + И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.16.0") < 0) + Или (ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.16.1790") > 0 + И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.17.0") < 0) + Или (ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.17.1822") > 0 + И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.18.0") < 0) + Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.18.1200") > 0; + + Возврат Поддерживает; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -136,16 +155,8 @@ // Для форма элементов справочников Пользователи и ВнешниеПользователи. // // Параметры: -// Форма - ФормаКлиентскогоПриложения: -// * Объект - ДанныеФормыСтруктура: -// ** Ссылка - СправочникОбъект.Пользователи -// - СправочникОбъект.ВнешниеПользователи -// * Элементы - ВсеЭлементыФормы: -// ** НадписьНаличиеПароля - ДекорацияФормы -// - РасширениеДекорацииФормыДляНадписи -// ** ПотребоватьСменуПароляПриВходе - ПолеФормы -// - РасширениеПоляФормыДляПоляФлажка -// ** СменитьПароль - КнопкаФормы +// Форма - см. Справочник.Пользователи.Форма.ФормаЭлемента +// - см. Справочник.ВнешниеПользователи.Форма.ФормаЭлемента // ПарольУстановлен - Булево // АвторизованныйПользователь - СправочникСсылка.Пользователи // - СправочникСсылка.ВнешниеПользователи diff --git a/SSL/src/CommonModules/ПользователиСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйПовтИсп/Module.bsl index 04a8e3f83..a80edccea 100644 --- a/SSL/src/CommonModules/ПользователиСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебныйПовтИсп/Module.bsl @@ -46,7 +46,7 @@ // Истина - для модели сервиса (включая роли неразделенных пользователей). // // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - Строка - имя роли. // * Значение - Булево - Истина. // @@ -94,7 +94,7 @@ // ДляВнешнихПользователей - Булево - если истина, значит для внешних пользователей. // // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - Строка - имя роли. // * Значение - Булево - Истина. // @@ -126,16 +126,16 @@ // // Возвращаемое значение: // ФиксированнаяСтруктура: -// * ТолькоДляАдминистраторовСистемы - ФиксированноеСоответствие: +// * ТолькоДляАдминистраторовСистемы - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка - имя роли. // * Значение - Булево - Истина. -// * ТолькоДляПользователейСистемы - ФиксированноеСоответствие: +// * ТолькоДляПользователейСистемы - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка - имя роли. // * Значение - Булево - Истина. -// * ТолькоДляВнешнихПользователей - ФиксированноеСоответствие: +// * ТолькоДляВнешнихПользователей - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка - имя роли. // * Значение - Булево - Истина. -// * СовместноДляПользователейИВнешнихПользователей - ФиксированноеСоответствие: +// * СовместноДляПользователейИВнешнихПользователей - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка - имя роли. // * Значение - Булево - Истина. // @@ -336,7 +336,7 @@ // // Возвращаемое значение: // ФиксированныйМассив - со значениями: -// * Значение - Ссылка - пустая ссылка типа объекта авторизации. +// * Значение - ЛюбаяСсылка - пустая ссылка типа объекта авторизации. // Функция ПустыеСсылкиТиповОбъектовАвторизации() Экспорт diff --git a/SSL/src/CommonModules/ПрефиксацияОбъектовСлужебный/Module.bsl b/SSL/src/CommonModules/ПрефиксацияОбъектовСлужебный/Module.bsl index 39f722079..82619281e 100644 --- a/SSL/src/CommonModules/ПрефиксацияОбъектовСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ПрефиксацияОбъектовСлужебный/Module.bsl @@ -6,11 +6,6 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Префиксация объектов". -// -//////////////////////////////////////////////////////////////////////////////// - #Область СлужебныйПрограммныйИнтерфейс // Выполняет действия по изменению префикса информационной базы @@ -85,15 +80,16 @@ ПолноеИмяТаблицы = Ссылка.Метаданные().ПолноеИмя(); ТекстЗапроса = " |ВЫБРАТЬ - | ШапкаОбъекта.Дата КАК Дата, - | ЕСТЬNULL(ШапкаОбъекта.[ИмяРеквизитаОрганизация].Префикс, """") КАК ПрефиксОрганизацииДоИзменения + | ШапкаОбъекта.Дата КАК Дата, + | ЕСТЬNULL(ШапкаОбъекта.ИмяРеквизитаОрганизация.Префикс, """") КАК ПрефиксОрганизацииДоИзменения |ИЗ - | " + ПолноеИмяТаблицы + " КАК ШапкаОбъекта + | &ИмяТаблицы КАК ШапкаОбъекта |ГДЕ | ШапкаОбъекта.Ссылка = &Ссылка |"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяРеквизитаОрганизация]", ПрефиксацияОбъектовСобытия.ИмяРеквизитаОрганизация(ПолноеИмяТаблицы)); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицы", ПолноеИмяТаблицы); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ИмяРеквизитаОрганизация", ПрефиксацияОбъектовСобытия.ИмяРеквизитаОрганизация(ПолноеИмяТаблицы)); Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Ссылка", Ссылка); @@ -128,14 +124,15 @@ ПолноеИмяТаблицы = Ссылка.Метаданные().ПолноеИмя(); ТекстЗапроса = " |ВЫБРАТЬ - | ЕСТЬNULL(ШапкаОбъекта.[ИмяРеквизитаОрганизация].Префикс, """") КАК ПрефиксОрганизацииДоИзменения + | ЕСТЬNULL(ШапкаОбъекта.ИмяРеквизитаОрганизация.Префикс, """") КАК ПрефиксОрганизацииДоИзменения |ИЗ - | " + ПолноеИмяТаблицы + " КАК ШапкаОбъекта + | &ИмяТаблицы КАК ШапкаОбъекта |ГДЕ | ШапкаОбъекта.Ссылка = &Ссылка |"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяРеквизитаОрганизация]", ПрефиксацияОбъектовСобытия.ИмяРеквизитаОрганизация(ПолноеИмяТаблицы)); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицы", ПолноеИмяТаблицы); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ИмяРеквизитаОрганизация", ПрефиксацияОбъектовСобытия.ИмяРеквизитаОрганизация(ПолноеИмяТаблицы)); Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Ссылка", Ссылка); diff --git a/SSL/src/CommonModules/ПрефиксацияОбъектовСобытия/Module.bsl b/SSL/src/CommonModules/ПрефиксацияОбъектовСобытия/Module.bsl index ee5827fb6..044f4f09f 100644 --- a/SSL/src/CommonModules/ПрефиксацияОбъектовСобытия/Module.bsl +++ b/SSL/src/CommonModules/ПрефиксацияОбъектовСобытия/Module.bsl @@ -239,23 +239,25 @@ МетаданныеОбъекта = Объект.Метаданные(); - ТекстЗапроса = " - |ВЫБРАТЬ + ТекстЗапроса = + "ВЫБРАТЬ | ШапкаОбъекта.Дата КАК Дата |ИЗ - | " + МетаданныеОбъекта.ПолноеИмя() + " КАК ШапкаОбъекта + | &ИмяТаблицыМетаданных КАК ШапкаОбъекта |ГДЕ - | ШапкаОбъекта.Ссылка = &Ссылка - |"; + | ШапкаОбъекта.Ссылка = &Ссылка"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыМетаданных", МетаданныеОбъекта.ПолноеИмя()); Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка); - Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Если Не ПрефиксацияОбъектовСлужебный.ДатыОбъектаОдногоПериода(Выборка.Дата, Объект.Дата, Объект.Ссылка) Тогда + Объект.Номер = ""; + КонецЕсли; КонецПроцедуры diff --git a/SSL/src/CommonModules/РаботаВБезопасномРежиме/Module.bsl b/SSL/src/CommonModules/РаботаВБезопасномРежиме/Module.bsl index c16f9c7f6..e8e813211 100644 --- a/SSL/src/CommonModules/РаботаВБезопасномРежиме/Module.bsl +++ b/SSL/src/CommonModules/РаботаВБезопасномРежиме/Module.bsl @@ -24,10 +24,10 @@ // // Возвращаемое значение: // ОбъектXDTO - внутреннее описание запрашиваемого разрешения. -// Предназначен только для передачи в качестве параметра в функции. -// РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(), -// РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и -// РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(). +// Предназначен только для передачи в качестве параметра в функции. +// РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(), +// РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и +// РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(). // Функция РазрешениеНаИспользованиеКаталогаФайловойСистемы(Знач Адрес, Знач ЧтениеДанных = Ложь, Знач ЗаписьДанных = Ложь, Знач Описание = "") Экспорт @@ -58,10 +58,10 @@ // // Возвращаемое значение: // ОбъектXDTO - внутреннее описание запрашиваемого разрешения. -// Предназначен только для передачи в качестве параметра в функции. -// РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(), -// РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и -// РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(). +// Предназначен только для передачи в качестве параметра в функции. +// РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(), +// РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и +// РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(). // Функция РазрешениеНаИспользованиеКаталогаВременныхФайлов(Знач ЧтениеДанных = Ложь, Знач ЗаписьДанных = Ложь, Знач Описание = "") Экспорт @@ -80,10 +80,10 @@ // // Возвращаемое значение: // ОбъектXDTO - внутреннее описание запрашиваемого разрешения. -// Предназначен только для передачи в качестве параметра в функции. -// РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(), -// РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и -// РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(). +// Предназначен только для передачи в качестве параметра в функции. +// РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(), +// РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и +// РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(). // Функция РазрешениеНаИспользованиеКаталогаПрограммы(Знач ЧтениеДанных = Ложь, Знач ЗаписьДанных = Ложь, Знач Описание = "") Экспорт @@ -104,10 +104,10 @@ // // Возвращаемое значение: // ОбъектXDTO - внутреннее описание запрашиваемого разрешения. -// Предназначен только для передачи в качестве параметра в функции. -// РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(), -// РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и -// РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(). +// Предназначен только для передачи в качестве параметра в функции. +// РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(), +// РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и +// РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(). // Функция РазрешениеНаСозданиеCOMКласса(Знач ProgID, Знач CLSID, Знач ИмяКомпьютера = "", Знач Описание = "") Экспорт @@ -133,10 +133,10 @@ // // Возвращаемое значение: // ОбъектXDTO - внутреннее описание запрашиваемого разрешения. -// Предназначен только для передачи в качестве параметра в функции. -// РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(), -// РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и -// РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(). +// Предназначен только для передачи в качестве параметра в функции. +// РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(), +// РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и +// РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(). // Функция РазрешениеНаИспользованиеВнешнейКомпоненты(Знач ИмяМакета, Знач Описание = "") Экспорт @@ -159,10 +159,10 @@ // // Возвращаемое значение: // ОбъектXDTO - внутреннее описание запрашиваемого разрешения. -// Предназначен только для передачи в качестве параметра в функции. -// РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(), -// РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и -// РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(). +// Предназначен только для передачи в качестве параметра в функции. +// РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(), +// РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и +// РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(). // Функция РазрешениеНаИспользованиеВнешнегоМодуля(Знач Имя, Знач КонтрольнаяСумма, Знач Описание = "") Экспорт @@ -186,10 +186,10 @@ // // Возвращаемое значение: // ОбъектXDTO - внутреннее описание запрашиваемого разрешения. -// Предназначен только для передачи в качестве параметра в функции. -// РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(), -// РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и -// РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(). +// Предназначен только для передачи в качестве параметра в функции. +// РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(), +// РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и +// РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(). // Функция РазрешениеНаИспользованиеПриложенияОперационнойСистемы(Знач ШаблонСтрокиЗапуска, Знач Описание = "") Экспорт @@ -248,10 +248,10 @@ // // Возвращаемое значение: // ОбъектXDTO - внутреннее описание запрашиваемого разрешения. -// Предназначен только для передачи в качестве параметра в функции. -// РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(), -// РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и -// РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(). +// Предназначен только для передачи в качестве параметра в функции. +// РаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(), +// РаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов() и +// РаботаВБезопасномРежиме.ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(). // Функция РазрешениеНаИспользованиеПривилегированногоРежима(Знач Описание = "") Экспорт @@ -286,8 +286,8 @@ // // Возвращаемое значение: // УникальныйИдентификатор - ссылка на записанный в ИБ запрос разрешений. После создания -// всех запросов на изменение разрешений требуется применить запрошенные изменения с помощью вызова процедуры. -// РаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(). +// всех запросов на изменение разрешений требуется применить запрошенные изменения с помощью вызова процедуры. +// РаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(). // Функция ЗапросНаИспользованиеВнешнихРесурсов(Знач НовыеРазрешения, Знач Владелец = Неопределено, Знач РежимЗамещения = Истина) Экспорт @@ -314,8 +314,8 @@ // // Возвращаемое значение: // УникальныйИдентификатор - ссылка на записанный в ИБ запрос разрешений. После создания -// всех запросов на изменение разрешений требуется применить запрошенные изменения с помощью вызова процедуры. -// РаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(). +// всех запросов на изменение разрешений требуется применить запрошенные изменения с помощью вызова процедуры. +// РаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(). // Функция ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов(Знач Владелец, Знач ОтменяемыеРазрешения) Экспорт @@ -340,8 +340,8 @@ // // Возвращаемое значение: // УникальныйИдентификатор - ссылка на записанный в ИБ запрос разрешений. После создания -// всех запросов на изменение разрешений требуется применить запрошенные изменения с помощью вызова процедуры. -// РаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(). +// всех запросов на изменение разрешений требуется применить запрошенные изменения с помощью вызова процедуры. +// РаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(). // Функция ЗапросНаОчисткуРазрешенийИспользованияВнешнихРесурсов(Знач Владелец) Экспорт @@ -414,7 +414,7 @@ // ИмяМакета - Строка - имя макета конфигурации, в составе которого поставляется комплект внешней компоненты. // // Возвращаемое значение: -// ФиксированноеСоответствие - контрольные суммы файлов: +// ФиксированноеСоответствие из КлючИЗначение - контрольные суммы файлов: // * Ключ - Строка - имя файла, // * Значение - Строка - контрольная сумма. // diff --git a/SSL/src/CommonModules/РаботаВБезопасномРежимеСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаВБезопасномРежимеСлужебный/Module.bsl index 57a38c6a3..ad26c5a4b 100644 --- a/SSL/src/CommonModules/РаботаВБезопасномРежимеСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаВБезопасномРежимеСлужебный/Module.bsl @@ -41,7 +41,7 @@ // Возвращает режим подключения внешнего модуля. // // Параметры: -// ВнешнийМодуль - ЛюбаяСсылка, ссылка, соответствующая внешнему модулю, для которого запрашиваются +// ВнешнийМодуль - ЛюбаяСсылка - ссылка, соответствующая внешнему модулю, для которого запрашиваются // режим подключения. // // Возвращаемое значение: @@ -78,12 +78,13 @@ // // Параметры: // ВнешнийМодуль - ЛюбаяСсылка - ссылка, соответствующая внешнему модулю, для которого запрашиваются разрешения, -// НовыеРазрешения - Массив Из ОбъектXDTO - массив ОбъектовXDTO, соответствующих внутренним описаниям +// НовыеРазрешения - Массив из ОбъектXDTO - массив ОбъектовXDTO, соответствующих внутренним описаниям // запрашиваемых разрешений на доступ к внешним ресурсам. Предполагается, что все ОбъектыXDTO, передаваемые // в качестве параметра, сформированы с помощью вызова функций РаботаВБезопасномРежиме.Разрешение*(). // При запросе разрешений для внешних модулей добавление разрешений всегда выполняется в режиме замещения. // -// Возвращаемое значение - Массив Из УникальныйИдентификатор - идентификаторы созданных запросов. +// Возвращаемое значение: +// Массив из УникальныйИдентификатор - идентификаторы созданных запросов. // Функция ЗапросРазрешенийДляВнешнегоМодуля(Знач ПрограммныйМодуль, Знач НовыеРазрешения = Неопределено) Экспорт @@ -172,7 +173,7 @@ // (см. ТаблицыРазрешений()). // // Возвращаемое значение: -// ТабличныйДокумент - , представление разрешений на использование внешних ресурсов. +// ТабличныйДокумент - представление разрешений на использование внешних ресурсов. // Функция ПредставлениеРазрешенийНаИспользованиеВнешнихРесурсов(Знач ТипПрограммногоМодуля, Знач ИдентификаторПрограммногоМодуля, Знач ТипВладельца, Знач ИдентификаторВладельца, Знач Разрешения) Экспорт @@ -256,7 +257,8 @@ // ВнешнийМодуль - ЛюбаяСсылка - ссылка, соответствующая внешнему модулю, для которого запрашиваются // разрешения. (Неопределено при запросе разрешений для конфигурации, а не для внешних модулей). // -// Возвращаемое значение - УникальныйИдентификатор - идентификатор созданного запроса. +// Возвращаемое значение: +// УникальныйИдентификатор - идентификатор созданного запроса. // Функция ЗапросСозданияПрофиляБезопасности(Знач ПрограммныйМодуль) @@ -311,7 +313,8 @@ // Параметры: // ИмяМакета - Строка - имя макета конфигурации, в составе которого поставляется комплект внешней компоненты. // -// Возвращаемое значение - ФиксированноеСоответствие: +// Возвращаемое значение: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка - имя файла, // * Значение - Строка - контрольная сумма. // @@ -415,7 +418,7 @@ // Формирует ссылку из данных, хранящихся в регистрах разрешений. // // Параметры: -// Тип - СправочникСсылка.ИдентификаторОбъектаМетаданных, +// Тип - СправочникСсылка.ИдентификаторыОбъектовМетаданных // Идентификатор - УникальныйИдентификатор - уникальный идентификатор ссылки. // // Возвращаемое значение: @@ -449,16 +452,17 @@ // Владелец - ЛюбаяСсылка - владелец разрешений на использование внешних ресурсов. // (Неопределено при запросе разрешений для конфигурации, а не для объектов конфигурации), // РежимЗамещения - Булево - режим замещения ранее предоставленных для владельца разрешений, -// ДобавляемыеРазрешения - Массив Из ОбъектXDTO - массив ОбъектовXDTO, соответствующих внутренним описаниям +// ДобавляемыеРазрешения - Массив из ОбъектXDTO - массив ОбъектовXDTO, соответствующих внутренним описаниям // запрашиваемых разрешений на доступ к внешним ресурсам. Предполагается, что все ОбъектыXDTO, передаваемые // в качестве параметра, сформированы с помощью вызова функций РаботаВБезопасномРежиме.Разрешение*(), -// УдаляемыеРазрешения - Массив Из ОбъектXDTO - массив ОбъектовXDTO, соответствующих внутренним описаниям +// УдаляемыеРазрешения - Массив из ОбъектXDTO - массив ОбъектовXDTO, соответствующих внутренним описаниям // отменяемых разрешений на доступ к внешним ресурсам. Предполагается, что все ОбъектыXDTO, передаваемые // в качестве параметра, сформированы с помощью вызова функций РаботаВБезопасномРежиме.Разрешение*(), // ВнешнийМодуль - ЛюбаяСсылка - ссылка, соответствующая внешнему модулю, для которого запрашиваются // разрешения. (Неопределено при запросе разрешений для конфигурации, а не для внешних модулей). // -// Возвращаемое значение - УникальныйИдентификатор - идентификатор созданного запроса. +// Возвращаемое значение: +// УникальныйИдентификатор - идентификатор созданного запроса. // Функция ЗапросИзмененияРазрешений(Знач Владелец, Знач РежимЗамещения, Знач ДобавляемыеРазрешения = Неопределено, Знач УдаляемыеРазрешения = Неопределено, Знач ПрограммныйМодуль = Неопределено) Экспорт @@ -493,7 +497,8 @@ // ВнешнийМодуль - ЛюбаяСсылка - ссылка, соответствующая внешнему модулю, для которого запрашиваются // разрешения. (Неопределено при запросе разрешений для конфигурации, а не для внешних модулей). // -// Возвращаемое значение - УникальныйИдентификатор - идентификатор созданного запроса. +// Возвращаемое значение: +// УникальныйИдентификатор - идентификатор созданного запроса. // Функция ЗапросУдаленияПрофиляБезопасности(Знач ПрограммныйМодуль) Экспорт @@ -527,7 +532,7 @@ // для текущей информационной базы. // // Возвращаемое значение: -// Массив Из УникальныйИдентификатор - идентификаторы запросов для обновления разрешений +// Массив из УникальныйИдентификатор - идентификаторы запросов для обновления разрешений // конфигурации до требуемых в настоящий момент. // Функция ЗапросыОбновленияРазрешенийКонфигурации(Знач ВключаяЗапросСозданияПрофиляИБ = Истина) Экспорт @@ -635,7 +640,7 @@ // Возвращает массив менеджеров справочников, которые являются контейнерами внешних модулей. // // Возвращаемое значение: -// Массив(СправочникМенеджер). +// Массив из СправочникМенеджер // Функция МенеджерыВнешнихМодулей() diff --git a/SSL/src/CommonModules/РаботаСАдресами/Module.bsl b/SSL/src/CommonModules/РаботаСАдресами/Module.bsl index ba4ed9767..d1d8998fb 100644 --- a/SSL/src/CommonModules/РаботаСАдресами/Module.bsl +++ b/SSL/src/CommonModules/РаботаСАдресами/Module.bsl @@ -75,8 +75,9 @@ Регион = СокрЛП(Адрес.Area + " " + Адрес.AreaType); - Если ЭтоГородФедеральногоЗначения(Регион) Тогда - Возврат Регион; + Если ЭтоГородФедеральногоЗначения(Регион) + Или СтрСравнить(Адрес.AddressType, УправлениеКонтактнойИнформациейКлиентСервер.ИностранныйАдрес()) = 0 Тогда + Возврат Регион; КонецЕсли; Город = СокрЛП(Адрес.City + " " + Адрес.CityType); @@ -302,7 +303,7 @@ // функцию следует вызвать в фоновом задании. // // Параметры: -// Адреса - Соответствие: +// Адреса - Соответствие из КлючИЗначение: // * Ключ - Число - уникальный идентификатор адреса; // * Значение - Строка - проверяемый адрес во внутреннем формате JSON. // В целях обратной совместимости допускается передача адреса в виде XML, @@ -316,7 +317,7 @@ // в представление актуального адреса. По умолчанию, Ложь. // // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - Число - уникальный идентификатор адреса; // * Значение - Структура: // * АдресПроверен - Булево - признак, что адрес был проверен в классификаторе или через веб-сервис. @@ -675,7 +676,7 @@ // Возвращает общепринятые сокращения адресных объектов. // // Возвращаемое значение: -// Соответствие - список общепринятых сокращений: +// Соответствие из КлючИЗначение - список общепринятых сокращений: // * Ключ - Строка - полное наименование адресного объекта. Например, "Дом", "Квартира" // * Значение - Строка - сокращенное наименование адресного объекта. Например, "Д.", "Кв." // @@ -1185,19 +1186,27 @@ // См. РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов. // // Параметры: -// Классификаторы - см. РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов.Классификаторы -// ОписаниеКлассификатора - Строка +// Классификаторы - см. РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов.Классификаторы // -Процедура ПриДобавленииКлассификаторов(Классификаторы, ОписаниеКлассификатора) Экспорт +Процедура ПриДобавленииКлассификаторов(Классификаторы) Экспорт - ОписаниеКлассификатора.Идентификатор = ИдентификаторКлассификатора(); - ОписаниеКлассификатора.Наименование = НСтр("ru = 'Общероссийский классификатор стран мира'"); - ОписаниеКлассификатора.ОбновлятьАвтоматически = Истина; - ОписаниеКлассификатора.ОбщиеДанные = Истина; - ОписаниеКлассификатора.СохранятьФайлВКэш = Истина; - ОписаниеКлассификатора.ОбработкаРазделенныхДанных = Ложь; + Описание = Неопределено; + Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда + МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами"); + Описание = МодульРаботаСКлассификаторами.ОписаниеКлассификатора(); + КонецЕсли; + Если Описание = Неопределено Тогда + Возврат; + КонецЕсли; + + Описание.Идентификатор = ИдентификаторКлассификатора(); + Описание.Наименование = НСтр("ru = 'Общероссийский классификатор стран мира'"); + Описание.ОбновлятьАвтоматически = Истина; + Описание.ОбщиеДанные = Истина; + Описание.СохранятьФайлВКэш = Истина; + Описание.ОбработкаРазделенныхДанных = Ложь; - Классификаторы.Добавить(ОписаниеКлассификатора); + Классификаторы.Добавить(Описание); КонецПроцедуры @@ -1220,6 +1229,9 @@ #Область СлужебныеПроцедурыИФункции +// Параметры: +// СписокВыбора - СписокЗначений +// Процедура ЗаполнитьМаскиНомераТелефона(СписокВыбора) Экспорт СписокВыбора.Добавить("+7(999) 999-99-99", СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='+7(999) 999-99-99, (Пример: +7(910) 123-23-23)'"))); @@ -1248,12 +1260,12 @@ // Возвращаемое значение: // Массив из Структура: // * Код - Строка -// * Наименование - Строка -// * Тип - Строка -// * Порядок - Строка -// * КодФИАС - Строка -// * Сокращение - Строка -// * Ключ - Строка +// * Наименование - Строка +// * Тип - Строка +// * Порядок - Строка +// * КодФИАС - Строка +// * Сокращение - Строка +// * Ключ - Строка // Функция ТипыОбъектовАдресацииАдресаРФ() Экспорт @@ -1403,7 +1415,7 @@ // Изменяет в адресе часто используемые сокращения // // Параметры: -// ДанныеАнализа - см. УправлениеКонтактнойИнформациейСлужебный.ЧастиАдреса +// ДанныеАнализа - см. УправлениеКонтактнойИнформациейСлужебный.ЧастиАдреса // Процедура ОбработкаЧастыхСокращенийВАдресах(Знач ДанныеАнализа) Экспорт @@ -2069,7 +2081,7 @@ Возврат АдресРФ.СвРайМО; КонецЕсли; - АдресРФ.СвРайМО = ФабрикаXDTO.Создать( АдресРФ.Свойства().Получить("СвРайМО").Тип ); + АдресРФ.СвРайМО = ФабрикаXDTO.Создать( АдресРФ.Свойства().Получить("СвРайМО").Тип); Возврат АдресРФ.СвРайМО; КонецФункции @@ -2267,6 +2279,7 @@ УровеньИдентификатора = ?(ЧастьАдреса.Значение.Уровень < 10, ЧастьАдреса.Значение.Уровень * 10, ЧастьАдреса.Значение.Уровень); Если ЗначениеЗаполнено(ИдентификаторТекущегоУровня) И МаксимальныйУровеньИдентификатора < УровеньИдентификатора Тогда ИдентификаторАдресногоОбъекта = ИдентификаторТекущегоУровня; + МаксимальныйУровеньИдентификатора = УровеньИдентификатора; КонецЕсли; КонецЦикла; @@ -2407,7 +2420,7 @@ КонецФункции // Возвращаемое значение: -// Соответствие из Структура - где: +// Соответствие из Структура: // * Ключ - Строка // * Значение - Структура: // ** Имя - Строка @@ -2790,7 +2803,7 @@ // // Параметры: // СоответствиеПолей - СписокЗначений - соответствия полей. -// БезПустыхПолей - Булево - необязательный флаг сохранения полей с пустыми значениями. +// БезПустыхПолей - Булево - флаг сохранения полей с пустыми значениями. // // Возвращаемое значение: // Строка - результат, преобразованный из списка. @@ -2833,7 +2846,7 @@ // // Параметры: // СтруктураЗначенийПолей - Структура -// БезПустыхПолей - Булево - необязательный флаг сохранения полей с пустыми значениями. +// БезПустыхПолей - Булево - флаг сохранения полей с пустыми значениями. // // Возвращаемое значение: // Строка - результат преобразования из структуры. @@ -4092,7 +4105,7 @@ Продолжить; КонецЕсли; - Для каждого СтрокаВидаКИ Из СтрокаТаблицы.Значение Цикл + Для каждого СтрокаВидаКИ Из СтрокаТаблицы.Значение Цикл // СправочникСсылка.ВидыКонтактнойИнформации СвойстваВида = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(СтрокаВидаКИ.Вид, "ВключатьСтрануВПредставление, ХранитьИсториюИзменений, Ссылка"); diff --git a/SSL/src/CommonModules/РаботаСАдресамиКлиентСервер/Module.bsl b/SSL/src/CommonModules/РаботаСАдресамиКлиентСервер/Module.bsl index f97684b9c..78442a591 100644 --- a/SSL/src/CommonModules/РаботаСАдресамиКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/РаботаСАдресамиКлиентСервер/Module.bsl @@ -476,7 +476,7 @@ Если ТипАдреса = УправлениеКонтактнойИнформациейКлиентСервер.ИностранныйАдрес() Тогда - Уровни.Добавить("City"); + Уровни.Добавить("Area"); Иначе @@ -570,10 +570,8 @@ СписокЗаполненныхУровней = Новый Массив; - НаименованиеСтраны = ""; Если ВключатьСтрануВПредставление И Адрес.Свойство("Country") И НЕ ПустаяСтрока(Адрес.Country) Тогда СписокЗаполненныхУровней.Добавить(Адрес.Country); - НаименованиеСтраны = Адрес.Country; КонецЕсли; Если Адрес.Свойство("ZipCode") И НЕ ПустаяСтрока(Адрес.ZipCode) Тогда diff --git a/SSL/src/CommonModules/РаботаСБанками/Module.bsl b/SSL/src/CommonModules/РаботаСБанками/Module.bsl index 36e91f188..dee49cea1 100644 --- a/SSL/src/CommonModules/РаботаСБанками/Module.bsl +++ b/SSL/src/CommonModules/РаботаСБанками/Module.bsl @@ -170,7 +170,6 @@ #КонецОбласти - #Область СлужебныйПрограммныйИнтерфейс //////////////////////////////////////////////////////////////////////////////// @@ -208,7 +207,9 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. +// Параметры: +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. +// Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт ИмяОбработки = "ЗагрузкаКлассификатораБанков"; diff --git a/SSL/src/CommonModules/РаботаСКурсамиВалют/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалют/Module.bsl index 5370948b8..a943b218a 100644 --- a/SSL/src/CommonModules/РаботаСКурсамиВалют/Module.bsl +++ b/SSL/src/CommonModules/РаботаСКурсамиВалют/Module.bsl @@ -73,15 +73,19 @@ // СуммаЧислом - Число - сумма, которую надо представить прописью. // Валюта - СправочникСсылка.Валюты - валюта, в которой нужно представить сумму. // БезДробнойЧасти - Булево - указать Истина, если требуется получить сумму без дробной части (без копеек). +// КодЯзыка - Строка - язык, на котором требуется получить сумму прописью. +// Состоит из кода языка по ISO 639-1 и, опционально, кода страны по ISO 3166-1, разделенных +// символом подчеркивания. Примеры: "en", "en_US", "en_GB", "ru", "ru_RU". +// Значение по умолчанию - язык конфигурации. // // Возвращаемое значение: // Строка - сумма прописью. // -Функция СформироватьСуммуПрописью(СуммаЧислом, Валюта, БезДробнойЧасти = Ложь) Экспорт +Функция СформироватьСуммуПрописью(СуммаЧислом, Валюта, БезДробнойЧасти = Ложь, Знач КодЯзыка = Неопределено) Экспорт Если Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют") <> Неопределено Тогда - Результат = Обработки["ЗагрузкаКурсовВалют"].СформироватьСуммуПрописью(СуммаЧислом, Валюта, БезДробнойЧасти); - Иначе + Результат = Обработки["ЗагрузкаКурсовВалют"].СформироватьСуммуПрописью(СуммаЧислом, Валюта, БезДробнойЧасти, КодЯзыка); + Иначе Результат = ""; КонецЕсли; Возврат Результат; @@ -136,7 +140,9 @@ //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. +// Параметры: +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. +// Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт ОбъектМетаданных = Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют"); @@ -225,17 +231,13 @@ КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. -Процедура ПриДобавленииИсключенийПоискаСсылок(Массив) Экспорт +Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт - Массив.Добавить(Метаданные.РегистрыСведений.КурсыВалют.ПолноеИмя()); + ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.КурсыВалют.ПолноеИмя()); КонецПроцедуры // См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. -// -// Параметры: -// ЗапросыРазрешений - см. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам.ЗапросыРазрешений -// Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт Если ОбщегоНазначения.РазделениеВключено() Тогда @@ -360,17 +362,6 @@ КонецФункции -// Возвращает информацию о курсе валюты на основе ссылки на валюту. -// Данные возвращаются в виде структуры. -// -// Параметры: -// ВыбраннаяВалюта - Справочник.Валюты / Ссылка - ссылка на валюту, информацию -// о курсе которой необходимо получить. -// -// Возвращаемое значение: -// ДанныеКурса - структура - содержащая информацию о последней доступной -// записи курса. -// Функция ЗаполнитьДанныеКурсаДляВалюты(ВыбраннаяВалюта) Экспорт ДанныеКурса = Новый Структура("ДатаКурса, Курс, Кратность"); @@ -393,13 +384,6 @@ КонецФункции -// Возвращает таблицу значений - валюты, зависящие от переданной -// в качестве параметра. -// Возвращаемое значение -// ТаблицаЗначений -// колонка "Ссылка" - СправочникСсылка.Валюты -// колонка "Наценка" - число. -// Функция СписокЗависимыхВалют(ВалютаБазовая, ДополнительныеСвойства = Неопределено) Экспорт Кэшировать = (ТипЗнч(ДополнительныеСвойства) = Тип("Структура")); @@ -456,8 +440,6 @@ Процедура ОбновитьКурсВалюты(Параметры, АдресРезультата) Экспорт ЗависимаяВалюта = Параметры.Валюта; - СпособУстановкиКурса = ЗависимаяВалюта.СпособУстановкиКурса; - СписокВалют = Параметры.Валюта.ИспользуемыеВалютыПриРасчетеКурса; ТекстЗапроса = diff --git a/SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/Module.bsl index e9d9a413d..cea9c06b2 100644 --- a/SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/Module.bsl @@ -254,7 +254,7 @@ // // Параметры: // ТаблицаКурсов - ТаблицаЗначений - с колонками Код, Дата, Кратность, Курс. -// Файл - Строка или ЗаписьТекста. +// Файл - Строка, ЗаписьТекста // Процедура ЗаписатьТаблицуКурсов(Знач ТаблицаКурсов, Знач Файл) @@ -291,7 +291,7 @@ // ИскатьДубликаты - Булево - сворачивает записи с одинаковой датой. // // Возвращаемое значение -// ТаблицаЗначений - с колонками Код, Дата, Кратность, Курс. +// ТаблицаЗначений - с колонками Код, Дата, Кратность, Курс. // Функция ПрочитатьТаблицуКурсов(Знач ПутьКФайлу, Знач ИскатьДубликаты = Ложь) @@ -335,7 +335,7 @@ // // Параметры: // Дескриптор - ОбъектXDTO Descriptor. -// ПутьКФайлу - строка - полное имя извлеченного файла. +// ПутьКФайлу - Строка - полное имя извлеченного файла. // Процедура ОбработатьПоставляемыеКурсы(Знач Дескриптор, Знач ПутьКФайлу) @@ -379,7 +379,7 @@ // // Параметры: // Дескриптор - ОбъектXDTO Descriptor. -// ПутьКФайлу - строка - полное имя извлеченного файла. +// ПутьКФайлу - Строка - полное имя извлеченного файла. // Процедура ОбработатьПоставляемыеКурсыЗаДень(Знач Дескриптор, Знач ПутьКФайлу) @@ -460,7 +460,7 @@ // Копирует курсы во все ОД // // Параметры: -// ДатаКурсов - Дата или Неопределено - курсы добавляются за указанную дату либо за все время. +// ДатаКурсов - Дата, Неопределено - курсы добавляются за указанную дату либо за все время. // ТаблицаКурсов - ТаблицаЗначений с курсами. // ОбластиДляОбновления - массив со списком кодов областей. // ИдентификаторФайла - УникальныйИдентификатор файла обрабатываемых курсов. @@ -748,4 +748,66 @@ КонецПроцедуры +Функция ФормыВводаПрописей() Экспорт + + КоллекцииФорм = Новый Массив; + КоллекцииФорм.Добавить(Метаданные.ОбщиеФормы); + КоллекцииФорм.Добавить(Метаданные.Справочники.Валюты.Формы); + Если Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют") <> Неопределено Тогда + КоллекцииФорм.Добавить(Метаданные.Обработки["ЗагрузкаКурсовВалют"].Формы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда + МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); + ДопустимыеКодыЯзыков = МодульУправлениеПечатьюМультиязычность.ДоступныеЯзыки(); + Иначе + ДопустимыеКодыЯзыков = СтандартныеПодсистемыСервер.ЯзыкиКонфигурации(); + КонецЕсли; + + НайденныеФормы = Новый Соответствие; + Для Каждого КодЯзыка Из ДопустимыеКодыЯзыков Цикл + НайденныеФормы.Вставить(КодЯзыка, ""); + КонецЦикла; + + Результат = Новый СписокЗначений; + + Для Каждого КоллекцияФорм Из КоллекцииФорм Цикл + Для Каждого Форма Из КоллекцияФорм Цикл + ЧастиИмени = СтрРазделить(Форма.Имя, "_", Истина); + Суффикс = ЧастиИмени[ЧастиИмени.ВГраница()]; + Если НайденныеФормы[Суффикс] <> Неопределено Тогда + НайденныеФормы[Суффикс] = Форма.ПолноеИмя(); + КонецЕсли; + КонецЦикла; + КонецЦикла; + + ДобавитьФормуПараметрыПрописиВалютыНаДругихЯзыках = Ложь; + + Для Каждого КодЯзыка Из ДопустимыеКодыЯзыков Цикл + Если ЗначениеЗаполнено(НайденныеФормы[КодЯзыка]) Тогда + Результат.Добавить(КодЯзыка, НайденныеФормы[КодЯзыка]); + Иначе + ДобавитьФормуПараметрыПрописиВалютыНаДругихЯзыках = Истина; + КонецЕсли; + КонецЦикла; + + Если ДобавитьФормуПараметрыПрописиВалютыНаДругихЯзыках Тогда + Результат.Добавить("", "ПараметрыПрописиВалютыНаДругихЯзыках"); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ПредставлениеЯзыка(КодЯзыка) Экспорт + + Представление = ПредставлениеКодаЛокализации(КодЯзыка); + ЧастиСтроки = СтрРазделить(Представление, " ", Истина); + ЧастиСтроки[0] = ТРег(ЧастиСтроки[0]); + Представление = СтрСоединить(ЧастиСтроки, " "); + + Возврат Представление; + +КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl index bbc88acaa..827398cbe 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl @@ -18,7 +18,7 @@ // // Возвращаемое значение: // Структура - результат отправки письма: -// * ОшибочныеПолучатели - Соответствие - адреса получателей с ошибками: +// * ОшибочныеПолучатели - Соответствие из КлючИЗначение - адреса получателей с ошибками: // ** Ключ - Строка - адрес получателя; // ** Значение - Строка - текст ошибки. // * ИдентификаторПисьмаSMTP - Строка - уникальный идентификатор письма, присвоенный при отправке по протоколу SMTP. @@ -38,14 +38,14 @@ // Параметры: // УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - почтовый ящик, с которого необходимо // выполнить отправку. -// Письма - Массив - коллекция почтовых сообщений. Элемент коллекции - ИнтернетПочтовоеСообщение. +// Письма - Массив из ИнтернетПочтовоеСообщение - коллекция почтовых сообщений. Элемент коллекции - ИнтернетПочтовоеСообщение. // ТекстОшибки - Строка - сообщение об ошибке в случае, когда удалось отправить не все письма. // // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - ИнтернетПочтовоеСообщение - отправляемое письмо; // * Значение - Структура - результат отправки письма: -// ** ОшибочныеПолучатели - Соответствие - адреса получателей с ошибками: +// ** ОшибочныеПолучатели - Соответствие из КлючИЗначение - адреса получателей с ошибками: // *** Ключ - Строка - адрес получателя; // *** Значение - Строка - текст ошибки. // ** ИдентификаторПисьмаSMTP - Строка - уникальный идентификатор письма, присвоенный при отправке по протоколу SMTP. diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиКлиент/Module.bsl index d828fca1c..cd0c22f06 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиКлиент/Module.bsl @@ -203,12 +203,12 @@ ВыполнитьОбработкуОповещения(ОбработчикРезультата, Ложь); КонецПроцедуры -Функция ПроверитьНастройкиУчетнойЗаписи(УчетнаяЗапись) Экспорт +Процедура ПроверитьНастройкиУчетнойЗаписи(УчетнаяЗапись) Экспорт Параметры = Новый Структура("УчетнаяЗапись", УчетнаяЗапись); ОткрытьФорму("Справочник.УчетныеЗаписиЭлектроннойПочты.Форма.ПроверкаНастроекУчетнойЗаписи", Параметры); -КонецФункции +КонецПроцедуры Процедура ПолеПароляНачалоВыбора(Элемент, Реквизит, СтандартнаяОбработка) Экспорт diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиПереопределяемый/Module.bsl index d90d433e4..42568392d 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиПереопределяемый/Module.bsl @@ -34,8 +34,8 @@ // * Представление - Строка - представление адресата. // // * Копии - Массив - коллекция структур адресов: -// * Адрес - строка - почтовый адрес (должно быть обязательно заполнено). -// * Представление - строка - имя адресата. +// * Адрес - Строка - почтовый адрес (должно быть обязательно заполнено). +// * Представление - Строка - имя адресата. // // - Строка - интернет-адреса получателей письма, разделитель - ";". // @@ -45,11 +45,11 @@ // * Тема - Строка - (обязательный) тема почтового сообщения. // * Тело - Строка - (обязательный) текст почтового сообщения (простой текст в кодировке win-1251). // * Важность - ВажностьИнтернетПочтовогоСообщения. -// * Вложения - Соответствие: +// * Вложения - Соответствие из КлючИЗначение: // * ключ - Строка - наименование вложения // * значение - ДвоичныеДанные // - АдресВоВременномХранилище - данные вложения; -// - Структура - содержащая следующие свойства: +// - Структура: // * ДвоичныеДанные - ДвоичныеДанные - двоичные данные вложения. // * Идентификатор - Строка - идентификатор вложения, используется для хранения картинок, // отображаемых в теле письма. diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебный/Module.bsl index 533feac27..4d2519e0d 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебный/Module.bsl @@ -113,7 +113,7 @@ НачатьТранзакцию(); Попытка Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить("Справочник.УчетныеЗаписиЭлектроннойПочты"); + Блокировка.Добавить("Справочник.УчетныеЗаписиЭлектроннойПочты"); Блокировка.Заблокировать(); УчетнаяЗаписьЭтойБазы = Неопределено; @@ -135,7 +135,7 @@ КонецЕсли; Если УчетнаяЗаписьЭтойБазы <> Неопределено Тогда - ЗаполнитьЗначенияСвойств(УчетнаяЗаписьЭтойБазы, УчетнаяЗаписьКорреспондента,,"ИмяПредопределенныхДанных, Родитель, Владелец, Ссылка"); + ЗаполнитьЗначенияСвойств(УчетнаяЗаписьЭтойБазы, УчетнаяЗаписьКорреспондента,, "ИмяПредопределенныхДанных, Родитель, Владелец, Ссылка"); Иначе УчетнаяЗаписьЭтойБазы = УчетнаяЗаписьКорреспондента; КонецЕсли; @@ -171,6 +171,141 @@ КонецФункции +// Возвращает настройки учетной записи подключения к почтовому серверу для отправки почты. +// Если не удалось получить учетную запись по ссылке, то будет возвращена пустая структура. +// +// Параметры: +// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись. +// +// Возвращаемое значение: +// Структура: +// * АдресСервераSMTP - Строка +// * ПортSMTP - Число - порт STMP, по умолчанию 25. +// * ПарольSMTP - Строка - пароля для сервера STMP +// * ИспользоватьSSL - Булево - по умолчанию Ложь. +// * ПользовательSMTP - Строка +// * ИмяОтправителя - Строка +// +Функция НастройкиУчетнойЗаписиДляОтправкиПочта(УчетнаяЗапись) Экспорт + + Результат = Новый Структура; + Результат.Вставить("АдресСервераSMTP", ""); + Результат.Вставить("ПортSMTP", 25); + Результат.Вставить("ПарольSMTP", ""); + Результат.Вставить("ИспользоватьSSL", Ложь); + Результат.Вставить("ПользовательSMTP", ""); + Результат.Вставить("ИмяОтправителя", ""); + + ТекстЗапроса = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | УчетныеЗаписиЭлектроннойПочты.СерверИсходящейПочты КАК АдресСервераSMTP, + | УчетныеЗаписиЭлектроннойПочты.ПортСервераИсходящейПочты КАК ПортSMTP, + | УчетныеЗаписиЭлектроннойПочты.ИспользоватьЗащищенноеСоединениеДляИсходящейПочты КАК ИспользоватьSSL, + | УчетныеЗаписиЭлектроннойПочты.Пользователь КАК ПользовательSMTP, + | УчетныеЗаписиЭлектроннойПочты.ИмяПользователя КАК ИмяОтправителя + |ИЗ + | Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты + |ГДЕ + | УчетныеЗаписиЭлектроннойПочты.Ссылка = &Ссылка"; + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("Ссылка", УчетнаяЗапись); + РезультатЗапроса = Запрос.Выполнить(); + + Если РезультатЗапроса.Пустой() Тогда + Возврат Результат; + КонецЕсли; + + Выборка = РезультатЗапроса.Выбрать(); + + Если Выборка.Следующий() Тогда + + УстановитьПривилегированныйРежим(Истина); + ПарольSMTP = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(УчетнаяЗапись, "ПарольSMTP"); + УстановитьПривилегированныйРежим(Ложь); + + ЗаполнитьЗначенияСвойств(Результат, Выборка); + Результат.ПарольSMTP = ПарольSMTP; + + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Восстановление пароля + +Процедура ОбновитьНастройкиСервераВосстановленияПочты(Ссылка) Экспорт + + Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда + Возврат; + КонецЕсли; + + НастройкиУчетнойЗаписи = НастройкиУчетнойЗаписиДляВосстановленияПароля(); + Если Не НастройкиУчетнойЗаписи.Используется + Или НастройкиУчетнойЗаписи.УчетнаяЗаписьПочты <> Ссылка Тогда + Возврат; + КонецЕсли; + + НастройкиВосстановленияПароля = ПользователиСлужебный.НастройкиВосстановленияПароля(); + Если НастройкиВосстановленияПароля = Неопределено Тогда + Возврат; + КонецЕсли; + + ВнешнийПочтовыйСервер = ПользователиСлужебный.СпособВосстановленияПароляПользователяИнформационнойБазы("ОтправкаКодаПодтвержденияПоЗаданнымПараметрам"); + Если НастройкиВосстановленияПароля.СпособВосстановленияПароля <> ВнешнийПочтовыйСервер Тогда + Возврат; + КонецЕсли; + + НастройкиУчетнойЗаписиДляОтправкиПочта = НастройкиУчетнойЗаписиДляОтправкиПочта(Ссылка); + ЗаполнитьЗначенияСвойств(НастройкиВосстановленияПароля, НастройкиУчетнойЗаписиДляОтправкиПочта); + + ПользователиСлужебный.УстановитьНастройкиВосстановленияПароля(НастройкиВосстановленияПароля); + +КонецПроцедуры + +Процедура СохранитьНастройкиУчетнойЗаписиДляВосстановленияПароля(Настройки) Экспорт + + Если ТипЗнч(Настройки) <> Тип("Структура") Тогда + ВызватьИсключение НСтр("ru='Неверный тип настроек учетной записи для восстановления пароля'"); + КонецЕсли; + + СведенияОбУчетнойЗаписи = ОписаниеНастроекУчетнойЗаписиДляВосстановленияПароля(); + ЗаполнитьЗначенияСвойств(СведенияОбУчетнойЗаписи, Настройки); + + Константы.УчетнаяЗаписьДляВосстановленияПароля.Установить(Новый ХранилищеЗначения(СведенияОбУчетнойЗаписи)); + +КонецПроцедуры + +Функция НастройкиУчетнойЗаписиДляВосстановленияПароля() Экспорт + + СведенияОбУчетнойЗаписи = ОписаниеНастроекУчетнойЗаписиДляВосстановленияПароля(); + + УстановитьПривилегированныйРежим(Истина); + ДанныеИзКонстанты = Константы.УчетнаяЗаписьДляВосстановленияПароля.Получить(); + Если ТипЗнч(ДанныеИзКонстанты) = Тип("ХранилищеЗначения") Тогда + + СведенияОбУчетнойЗаписиДляВосстановленияПароля = ДанныеИзКонстанты.Получить(); + Если ТипЗнч(СведенияОбУчетнойЗаписиДляВосстановленияПароля) = Тип("Структура") Тогда + ЗаполнитьЗначенияСвойств(СведенияОбУчетнойЗаписи, СведенияОбУчетнойЗаписиДляВосстановленияПароля); + КонецЕсли; + + КонецЕсли; + + Возврат СведенияОбУчетнойЗаписи; + +КонецФункции + +Функция ОписаниеНастроекУчетнойЗаписиДляВосстановленияПароля() Экспорт + + СведенияОбУчетнойЗаписи = Новый Структура(); + СведенияОбУчетнойЗаписи.Вставить("УчетнаяЗаписьПочты", Неопределено); + СведенияОбУчетнойЗаписи.Вставить("Используется", Ложь); + + Возврат СведенияОбУчетнойЗаписи; + +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. @@ -180,10 +315,6 @@ КонецПроцедуры // См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. -// -// Параметры: -// ЗапросыРазрешений - см. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам.ЗапросыРазрешений -// Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт Если ОбщегоНазначения.РазделениеВключено() @@ -248,7 +379,7 @@ МодульВзаимодействия.ПриПолученииЧитаемыхОбъектовОбработчикаОбновленияУчетныхЗаписейЭлектроннойПочты(ЧитаемыеОбъекты); МодульВзаимодействия.ПриПолученииИзменяемыхОбъектовОбработчикаОбновленияУчетныхЗаписейЭлектроннойПочты(ИзменяемыеОбъекты); КонецЕсли; - + Обработчик.ЧитаемыеОбъекты = СтрСоединить(ЧитаемыеОбъекты, ","); Обработчик.ИзменяемыеОбъекты = СтрСоединить(ИзменяемыеОбъекты, ","); @@ -313,6 +444,10 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыПереопределяемый.ПриОпределенииНастроек +// +// Параметры: +// Объекты - Массив из ОбъектМетаданных +// Процедура ПриОпределенииОбъектовСНачальнымЗаполнением(Объекты) Экспорт Объекты.Добавить(Метаданные.Справочники.УчетныеЗаписиЭлектроннойПочты); @@ -514,7 +649,7 @@ Исключение Попытка Соединение.Отключиться(); - Исключение + Исключение // АПК:280 // Обработка и журналирование исключения не требуется, т.к. // в вызывающий код передается исходное исключение, которое будет там обработано. КонецПопытки; @@ -648,7 +783,7 @@ // храниться сообщения с почтового сервера. // // Параметры: -// Колонки - строка - список полей письма, через запятую, которые должны +// Колонки - Строка - список полей письма, через запятую, которые должны // быть записаны в таблицу. Параметр меняет тип на массив. // Возвращаемое значение // ТаблицаЗначений - пустая таблица значений с колонками. @@ -757,7 +892,7 @@ | УчетныеЗаписиЭлектроннойПочты.ИспользоватьДляОтправки"; Запрос = Новый Запрос(ТекстЗапроса); - Выборка = Запрос.Выполнить().Выбрать(); + Выборка = Запрос.Выполнить().Выбрать(); // АПК:1328 блокировка данных не требуется при выполнении начальной настройки узла РИБ. Пока Выборка.Следующий() Цикл УчетнаяЗапись = Выборка.Ссылка.ПолучитьОбъект(); УчетнаяЗапись.ИспользоватьДляОтправки = Ложь; @@ -844,7 +979,7 @@ ИмяФайла = СтроковыеФункции.СтрокаЛатиницей(ИмяФайла); КонецЕсли; - ПолноеИмяФайла = УникальноеИмяФайла(ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ИмяВременногоКаталога) + ИмяФайла); + ПолноеИмяФайла = ФайловаяСистема.УникальноеИмяФайла(ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ИмяВременногоКаталога) + ИмяФайла); ТабличныйДокумент.Записать(ПолноеИмяФайла, ТипФайла); Если ТипФайла = ТипФайлаТабличногоДокумента.HTML Тогда @@ -901,23 +1036,6 @@ КонецЕсли; КонецФункции -Функция УникальноеИмяФайла(ИмяФайла) - - Файл = Новый Файл(ИмяФайла); - ИмяБезРасширения = Файл.ИмяБезРасширения; - Расширение = Файл.Расширение; - ИмяКаталога = Файл.Путь; - - Счетчик = 1; - Пока Файл.Существует() Цикл - Счетчик = Счетчик + 1; - Файл = Новый Файл(ИмяКаталога + ИмяБезРасширения + " (" + Счетчик + ")" + Расширение); - КонецЦикла; - - Возврат Файл.ПолноеИмя; - -КонецФункции - Процедура ВставитьКартинкиВHTML(ИмяФайлаHTML) ТекстовыйДокумент = Новый ТекстовыйДокумент(); @@ -1228,7 +1346,8 @@ КонецФункции -// См. РаботаСПочтовымиСообщениями.ОтправитьПисьма. +// См. РаботаСПочтовымиСообщениями.ОтправитьПисьма +// Функция ОтправитьПисьма(УчетнаяЗапись, Письма, ТекстИсключения = Неопределено) Экспорт РеквизитыОтправителя = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(УчетнаяЗапись, "ИмяПользователя,АдресЭлектроннойПочты,ОтправлятьСкрытыеКопииПисемНаЭтотАдрес,ИспользоватьДляПолучения"); @@ -1330,7 +1449,7 @@ Исключение Попытка Соединение.Отключиться(); - Исключение + Исключение // АПК:280 // Обработка и журналирование исключения не требуется, т.к. // в вызывающий код передается исходное исключение, которое будет там обработано. КонецПопытки; @@ -1563,4 +1682,4 @@ КонецФункции -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/РаботаСФайлами/Module.bsl b/SSL/src/CommonModules/РаботаСФайлами/Module.bsl index 4073cc994..01b27b143 100644 --- a/SSL/src/CommonModules/РаботаСФайлами/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайлами/Module.bsl @@ -6,11 +6,6 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Работа с файлами". -// -//////////////////////////////////////////////////////////////////////////////// - #Область ПрограммныйИнтерфейс // Возвращает двоичные данные файла. @@ -40,11 +35,17 @@ ПрисоединенныйФайл, Метаданные.ОпределяемыеТипы.ПрисоединенныйФайл.Тип); ФайлОбъект = РаботаСФайламиСлужебный.ФайлОбъект(ПрисоединенныйФайл); - Если ФайлОбъект = Неопределено - И Не ВызыватьИсключение Тогда + Если (ФайлОбъект = Неопределено Или ФайлОбъект.ЭтоГруппа) И Не ВызыватьИсключение Тогда Возврат Неопределено; КонецЕсли; + ОбщегоНазначенияКлиентСервер.Проверить(ФайлОбъект <> Неопределено, + НСтр("ru = 'Недопустимое значение параметра ПрисоединенныйФайл'"), "РаботаСФайлами.ДвоичныеДанныеФайла"); + ОбщегоНазначенияКлиентСервер.Проверить(Не ФайлОбъект.ЭтоГруппа, + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое значение параметра ПрисоединенныйФайл (папка файлов ""%1"")'"), + ОбщегоНазначения.ПредметСтрокой(ПрисоединенныйФайл)), "РаботаСФайлами.ДвоичныеДанныеФайла"); + УстановитьОтключениеБезопасногоРежима(Истина); УстановитьПривилегированныйРежим(Истина); @@ -60,7 +61,7 @@ НСтр("ru = 'Двоичные данные файла отсутствуют в регистре ДвоичныеДанныеФайлов. |Файл: ""%1"".'"), ПолучитьНавигационнуюСсылку(ПрисоединенныйФайл)); - + ЗаписьЖурналаРегистрации(НСтр("ru = 'Файлы.Открытие файла'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, Метаданные.Справочники[ПрисоединенныйФайл.Метаданные().Имя], @@ -87,7 +88,7 @@ // Возвращает сведения о файле. Используется в различных командах работы с файлами // и как значение параметра ДанныеФайла в других процедурах и функциях. -// +// // Параметры: // ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на элемент справочника с файлом. // ДополнительныеПараметры - см. РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла. @@ -140,14 +141,14 @@ // Пример: // Открытие нескольких файлов. // ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла(); -// ПараметрыДанныхФайла.ИдентификаторФормы = УникальныйИдентификатор; // см. примечание ниже +// ПараметрыДанныхФайла.ИдентификаторФормы = УникальныйИдентификатор; // Пока Выборка.Следующий() Цикл // МассивДанныхФайлов.Добавить(РаботаСФайлами.ДанныеФайла(Выборка.Файл, ПараметрыДанныхФайла)); // КонецЦикла; -// -// Примечание. Установка идентификатора формы предотвращает преждевременную очистку временного хранилища из-за -// возможных серверных вызовов при открытии файлов (например, если файл зашифрован или когда открывается форма -// текстового или табличного редактора). +// +// В этом примере установка идентификатора формы в параметре ДополнительныеПараметры предотвращает преждевременную +// очистку временного хранилища из-за возможных серверных вызовов при открытии файлов (например, +// если файл зашифрован или когда открывается форма текстового или табличного редактора). // Функция ДанныеФайла(Знач ПрисоединенныйФайл, Знач ДополнительныеПараметры = Неопределено, @@ -330,7 +331,7 @@ // свойство не указано или не заполнено, тогда будет // установлена текущая дата сеанса. // * Расширение - Строка - новое расширение файла. -// * Редактирует - Ссылка - новый пользователь, редактирующий файл. +// * Редактирует - ЛюбаяСсылка - новый пользователь, редактирующий файл. // * Кодировка - Строка - кодировка, в которой сохранен файл. // Список поддерживаемых кодировок см. в справке к методу // глобального контекста "ПолучитьДвоичныеДанныеИзСтроки". @@ -442,14 +443,15 @@ КонецФункции -// Обработчик события ПередЗаписью объектов-владельцев файлов. -// Определен только для объектов Документ. +// Обработчик события ПередЗаписью объектов-владельцев файлов, +// помечает присоединенные файлы на удаление при пометке объекта-владельца. +// Подходит только для документов. // // Параметры: -// Источник - ДокументОбъект - стандартный параметр события ПередЗаписью. -// Отказ - Булево - стандартный параметр события ПередЗаписью. -// РежимЗаписи - РежимЗаписиДокумента - стандартный параметр события ПередЗаписью. -// РежимПроведения - РежимПроведенияДокумента - стандартный параметр события ПередЗаписью. +// Источник - ДокументОбъект - документ с присоединенными файлами. +// Отказ - Булево - стандартный параметр обработчика ПередЗаписью. +// РежимЗаписи - РежимЗаписиДокумента - стандартный параметр обработчика ПередЗаписью. +// РежимПроведения - РежимПроведенияДокумента - стандартный параметр обработчика ПередЗаписью. // Процедура УстановитьПометкуУдаленияФайловДокументовПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт @@ -463,13 +465,13 @@ КонецПроцедуры -// Обработчик события ПередЗаписью объектов-владельцев файлов. -// Определен для объектов, кроме Документ. +// Обработчик события ПередЗаписью объектов-владельцев файлов, +// помечает присоединенные файлы на удаление при пометке объекта-владельца. +// Подходит для ссылочных объектов, кроме документов. // // Параметры: -// Источник - Объект - стандартный параметр события ПередЗаписью, например, СправочникОбъект. -// Исключение - ДокументОбъект. -// Отказ - Булево - стандартный параметр события ПередЗаписью. +// Источник - ОпределяемыйТип.ВладелецПрисоединенныхФайловОбъект - объект с присоединенными файлами. +// Отказ - Булево - стандартный параметр обработчика ПередЗаписью. // Процедура УстановитьПометкуУдаленияФайловПередЗаписью(Источник, Отказ) Экспорт @@ -560,7 +562,7 @@ ВызватьИсключение НСтр("ru = 'Не задано значение параметра ПараметрыФайла.ВладелецФайлов в РаботаСФайлами.ДобавитьФайл.'"); КонецЕсли; - ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайлаВоВременномХранилище); + ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайлаВоВременномХранилище); // ДвоичныеДанные ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("РаботаСФайлами.ДобавитьФайл", "АдресФайлаВоВременномХранилище", ДвоичныеДанные, Тип("ДвоичныеДанные")); @@ -884,7 +886,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -909,7 +911,7 @@ // ИмяСправочника - Строка - если требуется конвертация в указанное хранилище. // // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - СправочникСсылка.Файлы - перенесенный файл, который помечен на удаление после переноса. // * Значение - ОпределяемыйТип.ПрисоединенныйФайл - созданный файл. // @@ -984,13 +986,13 @@ КонецФункции -// Обработчик события ПриЗаписиНаСервере управляемой формы владельца файла. +// Обработчик события ПриЗаписиНаСервере формы владельца файла. // // Параметры: -// Отказ - Булево - стандартный параметр события ПриЗаписиНаСервере управляемой формы. -// ТекущийОбъект - Объект - стандартный параметр события ПриЗаписиНаСервере управляемой формы. -// ПараметрыЗаписи - Структура - стандартный параметр события ПриЗаписиНаСервере управляемой формы. -// Параметры - ДанныеФормыСтруктура - свойство Параметры управляемой формы. +// Отказ - Булево - стандартный параметр события формы. +// ТекущийОбъект - ОпределяемыйТип.ВладелецПрисоединенныхФайловОбъект - стандартный параметр события формы. +// ПараметрыЗаписи - Структура - стандартный параметр события формы. +// Параметры - ДанныеФормыСтруктура - свойство формы Параметры. // Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи, Параметры) Экспорт @@ -1002,7 +1004,7 @@ КонецПроцедуры -// Размещает гиперссылки и поля присоединенных файлов на управляемой форме. +// Размещает на форме гиперссылки и поля присоединенных файлов. // // Параметры: // Форма - ФормаКлиентскогоПриложения - форма для подключения. @@ -1366,7 +1368,7 @@ // который может являться владельцем присоединенных файлов. // // Возвращаемое значение: -// Массив Из ОпределяемыйТип.ВладелецФайлов +// Массив из ОпределяемыйТип.ВладелецФайлов // Функция СсылкиНаОбъектыСФайлами(Знач ИмяТаблицыВладельцевФайлов) Экспорт @@ -1421,8 +1423,8 @@ // Источник и Получатель должны быть объектами одного типа. // // Параметры: -// Источник - Ссылка - объект, имеющий присоединенные файлы для копирования. -// Получатель - Ссылка - объект, к которому копируются присоединенные файлы. +// Источник - ЛюбаяСсылка - объект, имеющий присоединенные файлы для копирования. +// Получатель - ЛюбаяСсылка - объект, к которому копируются присоединенные файлы. // Процедура СкопироватьПрисоединенныеФайлы(Знач Источник, Знач Получатель) Экспорт @@ -1501,7 +1503,7 @@ // (элемента справочника, ПВХ, документа и т.п.). // // Параметры: -// ВладелецФайлов - Ссылка - ссылка на объект, для которого выполняется конвертация. +// ВладелецФайлов - ЛюбаяСсылка - ссылка на объект, для которого выполняется конвертация. // ИмяСправочника - Строка - если требуется конвертация в указанное хранилище. // Процедура ИзменитьСправочникХраненияФайлов(Знач ВладелецФайлов, ИмяСправочника = Неопределено) Экспорт @@ -2084,7 +2086,7 @@ // Помечает на удаление связанные файлы. // // Параметры: -// Источник - Объект - владелец присоединенного файла, кроме ДокументОбъект. +// Источник - ОпределяемыйТип.ВладелецПрисоединенныхФайловОбъект - владелец присоединенного файла, кроме ДокументОбъект. // Отказ - Булево - признак отказа от записи. // Процедура УстановитьПометкуУдаленияПрисоединенныхФайлов(Источник, Отказ) Экспорт @@ -2312,7 +2314,7 @@ РеквизитРазмещения = Форма[ПолныйПутьКДанным[0]]; Для Счетчик = 1 По ПолныйПутьКДанным.ВГраница() Цикл - РеквизитРазмещения = РеквизитРазмещения[ПолныйПутьКДанным[Счетчик]]; + РеквизитРазмещения = РеквизитРазмещения[ПолныйПутьКДанным[Счетчик]]; // ОпределяемыйТип.ПрисоединенныйФайл КонецЦикла; ДобавляемыйЭлемент.ДобавлятьФайлы = ДобавляемыйЭлемент.ДобавлятьФайлы И ДоступноДобавление; @@ -2513,7 +2515,7 @@ КонецЕсли; Сканировать = Форма.Команды.Добавить("УправлениеПрисоединеннымиФайламиСканировать_" + НомерЭлемента); - Сканировать.Заголовок = НСтр("ru = '" + ?(ОбщегоНазначения.ЭтоМобильныйКлиент(), "Сфотографировать", "Сканировать")+ "...'"); + Сканировать.Заголовок = ?(ОбщегоНазначения.ЭтоМобильныйКлиент(), НСтр("ru = 'Сфотографировать...'"), НСтр("ru = 'Сканировать...'")); ЗаполнитьЗначенияСвойств(Сканировать, СвойстваКомандыФормы); Если ДобавляемыйЭлемент.ПоказыватьКоманднуюПанель Тогда diff --git a/SSL/src/CommonModules/РаботаСФайламиВТомахСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиВТомахСлужебный/Module.bsl index 58b206bb1..bea0d4d7b 100644 --- a/SSL/src/CommonModules/РаботаСФайламиВТомахСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиВТомахСлужебный/Module.bsl @@ -615,7 +615,6 @@ КонецЕсли; Запрос = Новый Запрос; - ВсеИменаСправочников = Новый Соответствие; ТипыПрисоединенныхФайлов = Метаданные.ОпределяемыеТипы.ПрисоединенныйФайл.Тип.Типы(); Запрос = Новый Запрос; @@ -822,8 +821,8 @@ // Помещает двоичные данные файла из тома в служебный реквизит ФайлХранилище. // // Параметры: -// ЭлементДанных - СправочникОбъект.ВерсииФайлов -// - ОпределяемыйТип.ПрисоединенныйФайл +// ЭлементДанных - СправочникОбъект.ВерсииФайлов +// - ОпределяемыйТип.ПрисоединенныйФайл // Процедура ПоместитьФайлВРеквизитСправочника(ЭлементДанных) Экспорт @@ -1020,7 +1019,7 @@ ТипыФайлов = Метаданные.ОпределяемыеТипы.ПрисоединенныйФайл.Тип.Типы(); Запрос = Новый Запрос; - ПустойТекстЗапроса = Истина; + ПервыйТекстЗапроса = Истина; Для Каждого СправочникФайлов Из ТипыФайлов Цикл МетаданныеСправочника = Метаданные.НайтиПоТипу(СправочникФайлов); @@ -1029,40 +1028,46 @@ ФрагментЗапроса = "ВЫБРАТЬ | СправочникПрисоединенныеФайлы.Ссылка, - | СправочникПрисоединенныеФайлы.%1 " + ?(ПустойТекстЗапроса, "КАК ВладелецФайла","") + ", + | &ВладелецФайла КАК ВладелецФайла, | СправочникПрисоединенныеФайлы.Расширение, | СправочникПрисоединенныеФайлы.Наименование, | СправочникПрисоединенныеФайлы.Том, - | СправочникПрисоединенныеФайлы.%2 " + ?(ПустойТекстЗапроса, "КАК Отредактировал","") + ", - | СправочникПрисоединенныеФайлы.ДатаМодификацииУниверсальная " + ?(ПустойТекстЗапроса, "КАК ДатаМодификацииФайла","") + ", + | &Отредактировал КАК Отредактировал, + | СправочникПрисоединенныеФайлы.ДатаМодификацииУниверсальная КАК ДатаМодификацииФайла, | СправочникПрисоединенныеФайлы.ПутьКФайлу, | СправочникПрисоединенныеФайлы.ПометкаУдаления |ИЗ - | Справочник." + МетаданныеСправочника.Имя + " КАК СправочникПрисоединенныеФайлы + | &СправочникПрисоединенныеФайлы КАК СправочникПрисоединенныеФайлы |ГДЕ | СправочникПрисоединенныеФайлы.Том = &Том - | И СправочникПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске)"; + | И СправочникПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске) + | И &УсловиеТекущаяВерсия"; - ФрагментЗапроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ФрагментЗапроса, - ?(ЭтоСправочникВерсий, "Владелец.ВладелецФайла", "ВладелецФайла"), - ?(ЭтоСправочникВерсий, "Автор", "Изменил")); + ФрагментЗапроса = СтрЗаменить(ФрагментЗапроса, "&ВладелецФайла", + "СправочникПрисоединенныеФайлы." + ?(ЭтоСправочникВерсий, "Владелец.ВладелецФайла", "ВладелецФайла")); + ФрагментЗапроса = СтрЗаменить(ФрагментЗапроса, "&Отредактировал", + "СправочникПрисоединенныеФайлы." + ?(ЭтоСправочникВерсий, "Автор", "Изменил")); + ФрагментЗапроса = СтрЗаменить(ФрагментЗапроса, "&СправочникПрисоединенныеФайлы", + "Справочник." + МетаданныеСправочника.Имя); Если Не ЭтоСправочникВерсий И ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеСправочника) Тогда СправочникВерсийФайлов = Метаданные.НайтиПоТипу( МетаданныеСправочника.Реквизиты.ТекущаяВерсия.Тип.Типы()[0]); - ФрагментЗапроса = ФрагментЗапроса + " - | И СправочникПрисоединенныеФайлы.ТекущаяВерсия = ЗНАЧЕНИЕ(Справочник." - + СправочникВерсийФайлов.Имя + ".ПустаяСсылка)"; + ФрагментЗапроса = СтрЗаменить(ФрагментЗапроса, "&УсловиеТекущаяВерсия", + "СправочникПрисоединенныеФайлы.ТекущаяВерсия = ЗНАЧЕНИЕ(Справочник." + + СправочникВерсийФайлов.Имя + ".ПустаяСсылка)"); + Иначе + ФрагментЗапроса = СтрЗаменить(ФрагментЗапроса, "&УсловиеТекущаяВерсия", "ИСТИНА"); КонецЕсли; - Запрос.Текст = Запрос.Текст + ?(ПустойТекстЗапроса,"", " + Запрос.Текст = Запрос.Текст + ?(ПервыйТекстЗапроса,"", " |ОБЪЕДИНИТЬ ВСЕ |") + ФрагментЗапроса; - ПустойТекстЗапроса = Ложь; + ПервыйТекстЗапроса = Ложь; КонецЦикла; @@ -1218,8 +1223,10 @@ ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОбъектМетаданных", ПолноеИмя); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолеВладельца", - ?(ПолноеИмя = "Справочник.ВерсииФайлов", "ПРЕДСТАВЛЕНИЕССЫЛКИ(ОбъектМетаданных.Владелец) ", "Неопределено ")); + + // @query-part-2 + ПолеВладельца = ?(ПолноеИмя = "Справочник.ВерсииФайлов", "ПРЕДСТАВЛЕНИЕССЫЛКИ(ОбъектМетаданных.Владелец) ","Неопределено "); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолеВладельца", ПолеВладельца); Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Ссылка", Справочники.ТомаХраненияФайлов.ПустаяСсылка()); @@ -1288,10 +1295,6 @@ #Область ОбновлениеИнформационнойБазы // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); diff --git a/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl index 391e972e8..00acb480b 100644 --- a/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl @@ -6,11 +6,6 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Работа с файлами". -// -//////////////////////////////////////////////////////////////////////////////// - #Область ПрограммныйИнтерфейс //////////////////////////////////////////////////////////////////////////////// @@ -104,8 +99,8 @@ // ФормаВладелец - ФормаКлиентскогоПриложения - форма, из которой вызвано создание файла. // РежимСоздания - Неопределено // - Число - режим создания файла: -// - Неопределено - показать диалог выбора режима создания файла. -// - Число - создать файл указанным способом: +// - Неопределено - показать диалог выбора режима создания файла. +// - Число - создать файл указанным способом: // * 1 - из шаблона (копированием другого файла); // * 2 - с диска (из файловой системы клиента); // * 3 - со сканера. @@ -465,10 +460,20 @@ КонецПроцедуры -// См. РаботаСФайлами.ДанныеФайла. // Возвращает структурированную информацию о файле. Используется в различных командах работы с файлами // и как значение параметра ДанныеФайла других процедур и функций. // +// Параметры: +// ФайлСсылка - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на элемент справочника с файлом. +// ИдентификаторФормы - УникальныйИдентификатор - уникальный идентификатор формы, во временное хранилище +// которой надо поместить файл и вернуть адрес в свойстве СсылкаНаДвоичныеДанныеФайла. +// ПолучатьСсылкуНаДвоичныеДанные - Булево - если передать Ложь, то ссылка на двоичные данные в СсылкаНаДвоичныеДанныеФайла +// не будет получена, что существенно ускорит выполнение для больших двоичных данных. +// ДляРедактирования - Булево - если указать Истина, то файл будет захвачен для редактирования. +// +// Возвращаемое значение: +// см. РаботаСФайлами.ДанныеФайла +// Функция ДанныеФайла(Знач ФайлСсылка, Знач ИдентификаторФормы = Неопределено, Знач ПолучатьСсылкуНаДвоичныеДанные = Истина, @@ -500,7 +505,7 @@ // которой будет помещен файл. // // ДополнительныеПараметры - Неопределено - использовать значения по умолчанию. -// - Структура - с необязательными свойствами: +// - Структура - с необязательными свойствами: // * ДляРедактирования - Булево - начальное значение Ложь. Если Истина, // тогда файл будет захвачен для редактирования. // * ДанныеФайла - Структура - свойства файла, которые можно передать для ускорения, @@ -525,7 +530,7 @@ // во временное хранилище которой надо поместить данные и вернуть новый адрес. // // ДополнительныеПараметры - Неопределено - использовать значения по умолчанию. -// - Структура - с необязательными свойствами: +// - Структура - с необязательными свойствами: // * ПолноеИмяФайла - Строка - если заполнено, то указанный файл будет помещен в рабочий каталог // пользователя, а затем в хранилище файлов. // * ДанныеФайла - Структура - свойства файла, которые можно передать для ускорения, diff --git a/SSL/src/CommonModules/РаботаСФайламиКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиКлиентПереопределяемый/Module.bsl index 8936591d8..0a4f9d1dd 100644 --- a/SSL/src/CommonModules/РаботаСФайламиКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиКлиентПереопределяемый/Module.bsl @@ -6,11 +6,6 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Работа с файлами". -// -//////////////////////////////////////////////////////////////////////////////// - #Область ПрограммныйИнтерфейс // Вызывается при ошибке захвате файла. diff --git a/SSL/src/CommonModules/РаботаСФайламиКлиентСервер/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиКлиентСервер/Module.bsl index d33f7d35e..e280ef81d 100644 --- a/SSL/src/CommonModules/РаботаСФайламиКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиКлиентСервер/Module.bsl @@ -6,11 +6,6 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Работа с файлами". -// -//////////////////////////////////////////////////////////////////////////////// - #Область ПрограммныйИнтерфейс // Инициализирует структуру параметров для получения данных файла. См. РаботаСФайлами.ДанныеФайла. diff --git a/SSL/src/CommonModules/РаботаСФайламиПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиПереопределяемый/Module.bsl index bd41dd961..8c033e9c7 100644 --- a/SSL/src/CommonModules/РаботаСФайламиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиПереопределяемый/Module.bsl @@ -6,11 +6,6 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Работа с файлами". -// -//////////////////////////////////////////////////////////////////////////////// - #Область ПрограммныйИнтерфейс // Переопределение настроек присоединенных файлов. diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl index d9cfacae9..c1f3b4d09 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl @@ -9,10 +9,6 @@ #Область СлужебныйПрограммныйИнтерфейс // См. СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании. -// -// Параметры: -// Объекты - см. СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании.Объекты -// Процедура ПриОпределенииОбъектовСКомандамиСозданияНаОсновании(Объекты) Экспорт Объекты.Добавить(Метаданные.Справочники.Файлы); @@ -41,12 +37,27 @@ Процедура ВыгрузитьФайл(Знач ОбъектФайла, Знач ИмяНовогоФайла) Экспорт Если ОбъектФайла.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда + РаботаСФайламиВТомахСлужебный.СкопироватьФайл(ОбъектФайла.Ссылка, ИмяНовогоФайла); Иначе ДвоичныеДанныеФайла = РаботаСФайлами.ДвоичныеДанныеФайла(ОбъектФайла.Ссылка); - ДвоичныеДанныеФайла.Записать(ИмяНовогоФайла); + + Попытка + + ДвоичныеДанныеФайла.Записать(ИмяНовогоФайла); + + Исключение + + СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Двоичные данные файла %1 были удалены. Возможно, файл очищен как ненужный или удален антивирусной программой. + |Обратитесь к администратору.'"), Строка(ОбъектФайла.Ссылка)); + + ВызватьИсключение СообщениеОбОшибке; + + КонецПопытки; + КонецЕсли; @@ -57,25 +68,14 @@ Процедура ЗагрузитьФайл(Знач ОбъектФайла, Знач ПутьКФайлу) Экспорт ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу); - Если ТипХраненияФайлов() = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда - - Если ТипЗнч(ОбъектФайла.Ссылка) = Тип("СправочникСсылка.ВерсииФайлов") Тогда - НомерВерсии = ОбъектФайла.НомерВерсии; - Иначе - НомерВерсии = ""; - КонецЕсли; - РаботаСФайламиВТомахСлужебный.ДобавитьФайл(ОбъектФайла, ДвоичныеДанные, , Истина); - Иначе - ОбъектФайла.ДополнительныеСвойства.Вставить("ДвоичныеДанныеФайла", ДвоичныеДанные); ОбъектФайла.ФайлХранилище = Новый ХранилищеЗначения(Неопределено); ОбъектФайла.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка(); ОбъектФайла.ПутьКФайлу = ""; ОбъектФайла.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; - КонецЕсли; КонецПроцедуры @@ -230,6 +230,14 @@ КонецФункции // Возвращает Истина, если файл с таким расширением можно загружать. +// +// Параметры: +// РасширениеФайла - Строка +// ВызыватьИсключение - Булево +// +// Возвращаемое значение: +// Булево +// Функция ПроверитьРасширениеФайлаДляЗагрузки(РасширениеФайла, ВызыватьИсключение = Истина) Экспорт ОбщиеНастройки = РаботаСФайламиСлужебныйПовтИсп.НастройкиРаботыСФайлами().ОбщиеНастройки; @@ -260,7 +268,7 @@ // Возвращает массив справочников, выступающих в роли владельцев файлов. // // Возвращаемое значение: -// Массив(ОбъектМетаданных). +// Массив из ОбъектМетаданных // Функция СправочникиФайлов() Экспорт @@ -302,7 +310,7 @@ // двоичных данных файлов в информационной базе. // // Возвращаемое значение: -// Массив(ОбъектМетаданных). +// Массив из ОбъектМетаданных // Функция ОбъектыХраненияФайловИнформационнойБазе() Экспорт @@ -314,7 +322,11 @@ // Возвращает расширение файла. // -// Объект - СправочникОбъект. +// Параметры: +// Объект - ОпределяемыйТип.ПрисоединенныйФайлОбъект +// +// Возвращаемое значение: +// Строка // Функция РасширениеФайла(Объект) Экспорт @@ -330,6 +342,9 @@ // ТаблицаВладельцевФайлов - Строка - полное имя объекта метаданных, // который может владеть присоединенными файлами. // +// Возвращаемое значение: +// Массив +// Функция СсылкиНаОбъектыСФайлами(Знач ТаблицаВладельцевФайлов) Экспорт Запрос = Новый Запрос; @@ -359,7 +374,7 @@ // Параметры: // Папка - СправочникСсылка.ПапкиФайлов // - СправочникСсылка.Файлы - папка файлов. -// - СправочникСсылка - владелец файлов. +// - СправочникСсылка - владелец файлов. // // Места использования: // РассылкаОтчетов.ЗаполнитьПараметрыРассылкиПараметрамиПоУмолчанию(). @@ -500,7 +515,7 @@ // для указанного владельца. // // Параметры: -// ВладелецФайлов - Ссылка - объект, к которому добавляется файл. +// ВладелецФайлов - ЛюбаяСсылка - объект, к которому добавляется файл. // Функция ИменаСправочниковХраненияФайлов(ВладелецФайлов, НеВызыватьИсключение = Ложь) Экспорт @@ -661,27 +676,38 @@ Функция ФайлОбъект(Знач ПрисоединенныйФайл) Экспорт ФайлОбъект = Неопределено; - МетаданныеОбъектаФайла = Метаданные.НайтиПоТипу(ТипЗнч(ПрисоединенныйФайл)); // Это справочник файлов. Если ОбщегоНазначения.ЕстьРеквизитОбъекта("ВладелецФайла", МетаданныеОбъектаФайла) Тогда // С возможностью хранить версии. - Если ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеОбъектаФайла) И ЗначениеЗаполнено(ПрисоединенныйФайл.ТекущаяВерсия) Тогда - ФайлОбъект = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ПрисоединенныйФайл.ТекущаяВерсия, - "Ссылка, ТипХраненияФайла, Наименование,Расширение,Том,ПутьКФайлу"); - ФайлОбъект.Вставить("ВладелецФайла", ПрисоединенныйФайл.ВладелецФайла); + ЕстьТекущаяВерсия = Ложь; + Если ОбщегоНазначения.ЕстьРеквизитОбъекта("ТекущаяВерсия", МетаданныеОбъектаФайла) Тогда + ТекущаяВерсия = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПрисоединенныйФайл, "ТекущаяВерсия"); + ЕстьТекущаяВерсия = ЗначениеЗаполнено(ТекущаяВерсия); + КонецЕсли; + Если ЕстьТекущаяВерсия Тогда + ФайлОбъект = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ТекущаяВерсия, + "Ссылка,ТипХраненияФайла,Наименование,Расширение,Том,ПутьКФайлу"); + ФайлОбъект.Вставить("ВладелецФайла", ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПрисоединенныйФайл, "ВладелецФайла")); // Без возможности хранить версии. Иначе ФайлОбъект = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ПрисоединенныйФайл, - "Ссылка, ТипХраненияФайла,ВладелецФайла,Наименование,Расширение,Том,ПутьКФайлу"); + "Ссылка,ТипХраненияФайла,ВладелецФайла,Наименование,Расширение,Том,ПутьКФайлу"); КонецЕсли; + ЭтоГруппа = Ложь; + Если МетаданныеОбъектаФайла.Иерархический Тогда + ЭтоГруппа = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПрисоединенныйФайл, "ЭтоГруппа"); + КонецЕсли; + ФайлОбъект.Вставить("ЭтоГруппа", ЭтоГруппа); // Это справочник версий файлов. ИначеЕсли ОбщегоНазначения.ЕстьРеквизитОбъекта("РодительскаяВерсия", МетаданныеОбъектаФайла) Тогда ФайлОбъект = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ПрисоединенныйФайл, - "Ссылка, ТипХраненияФайла,Наименование,Расширение,Том,ПутьКФайлу"); + "Ссылка,ТипХраненияФайла,Наименование,Расширение,Том,ПутьКФайлу"); ФайлОбъект.Вставить("ВладелецФайла", - ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПрисоединенныйФайл.Владелец, "ВладелецФайла")); + ОбщегоНазначения.ЗначениеРеквизитаОбъекта( + ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПрисоединенныйФайл, "Владелец"), "ВладелецФайла")); + ФайлОбъект.Вставить("ЭтоГруппа", Ложь); КонецЕсли; Возврат ФайлОбъект; @@ -735,9 +761,8 @@ ВсеСправочники = Справочники.ТипВсеСсылки(); ВсеДокументы = Документы.ТипВсеСсылки(); - ТекстЗапроса = - "ВЫБРАТЬ - | " + ТипОбъекта.Имя + ".Ссылка,"; + ТекстЗапроса = СтрЗаменить("ВЫБРАТЬ &ИмяТипаОбъекта", "&ИмяТипаОбъекта", ТипОбъекта.Имя + ".Ссылка,"); + Если ВсеСправочники.СодержитТип(ТипЗнч(ТипОбъекта.ЗначениеПустойСсылки)) Тогда Справочник = Метаданные.Справочники[ТипОбъекта.Имя]; Для Каждого Реквизит Из Справочник.Реквизиты Цикл @@ -881,15 +906,14 @@ СправочникВерсийФайлов = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Справочник.Реквизиты.ТекущаяВерсия.Тип.Типы()[0]); ПолноеИмяСправочникаВерсийФайлов = СправочникВерсийФайлов.ПолноеИмя; - - ТекстЗапроса = ТекстЗапроса + ?(ПустаяСтрока(ТекстЗапроса),"", " ОБЪЕДИНИТЬ ВСЕ") + " - | + + ЧастьТекстаЗапроса = " |ВЫБРАТЬ | ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) КАК ВладелецФайла, | СУММА(ЕСТЬNULL(ВерсииФайлов.Размер, Файлы.Размер) / 1024 / 1024) КАК ОбъемВсего |ИЗ - | Справочник." + Справочник.Имя + " КАК Файлы - | ЛЕВОЕ СОЕДИНЕНИЕ "+ ПолноеИмяСправочникаВерсийФайлов + " КАК ВерсииФайлов + | #ИмяСправочника КАК Файлы + | ЛЕВОЕ СОЕДИНЕНИЕ #ПолноеИмяСправочникаВерсийФайлов КАК ВерсииФайлов | ПО Файлы.Ссылка = ВерсииФайлов.Владелец |ГДЕ | НЕ Файлы.ПометкаУдаления @@ -897,7 +921,13 @@ | |СГРУППИРОВАТЬ ПО | ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла)"; - + + ЧастьТекстаЗапроса = СтрЗаменить(ЧастьТекстаЗапроса, "#ИмяСправочника", "Справочник." + Справочник.Имя); + ЧастьТекстаЗапроса = СтрЗаменить(ЧастьТекстаЗапроса, "#ПолноеИмяСправочникаВерсийФайлов", + ПолноеИмяСправочникаВерсийФайлов); + + ТекстЗапроса = ТекстЗапроса + ?(ПустаяСтрока(ТекстЗапроса),"", " ОБЪЕДИНИТЬ ВСЕ ") + ЧастьТекстаЗапроса; + Если ДобавитьПсевдонимПоля Тогда ДобавитьПсевдонимПоля = Ложь; КонецЕсли; @@ -932,7 +962,7 @@ // Если томов хранения файлов нет, тогда хранение в ИБ. // // Возвращаемое значение: -// ПеречисленияСсылка.ТипыХраненияФайлов. +// ПеречислениеСсылка.ТипыХраненияФайлов // Функция ТипХраненияФайлов() Экспорт @@ -1189,7 +1219,7 @@ // Параметры: // ФайлСсылка - СправочникСсылка.Файлы - файл. // Зашифровать - Булево - зашифровать файл, если Истина - иначе расшифровать. -// МассивДанныхДляЗанесенияВБазу - массив структур. +// МассивДанныхДляЗанесенияВБазу - Массив из Структура // УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы. // ИмяРабочегоКаталога - Строка - рабочий каталог. // МассивФайловВРабочемКаталогеДляУдаления - Массив - файлы, которые надо удалить из регистра. @@ -1716,7 +1746,17 @@ КонецФункции -// Создать файловый начальный образ на сервере. +// Процедура - Создать файловый начальный образ на сервере +// +// Параметры: +// Параметры - Структура: +// * ИмяКаталога - Строка +// * Язык - Строка +// * ПутьКАрхивуСФайламиТомов - Строка +// * ЕстьФайлыВТомах- Булево +// * ИмяКаталогаФайлов - Строка +// * ПолноеИмяФайловойБазы - Строка +// АдресХранилища - УникальныйИдентификатор // Процедура СоздатьФайловыйНачальныйОбразНаСервере(Параметры, АдресХранилища) Экспорт @@ -2088,22 +2128,16 @@ КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. -// -// Параметры: -// Массив - см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.ИсключенияПоискаСсылок -// -Процедура ПриДобавленииИсключенийПоискаСсылок(Массив) Экспорт +Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт - Массив.Добавить(Метаданные.РегистрыСведений.ФайлыВРабочемКаталоге.ПолноеИмя()); - Массив.Добавить(Метаданные.РегистрыСведений.СведенияОФайлах.ПолноеИмя()); - Массив.Добавить("Справочник.Файлы.Реквизиты.ТекущаяВерсия"); + ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.ФайлыВРабочемКаталоге.ПолноеИмя()); + ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.СведенияОФайлах.ПолноеИмя()); + ИсключенияПоискаСсылок.Добавить("Справочник.Файлы.Реквизиты.ТекущаяВерсия"); КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. -// // Параметры: -// ТекущиеДела - см. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел.Обработчики +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт @@ -2157,8 +2191,9 @@ КонецПроцедуры // См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий. +// // Параметры: -// Зависимости - см. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий.Настройки +// Зависимости- см. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий.Настройки // Процедура ПриОпределенииНастроекРегламентныхЗаданий(Зависимости) Экспорт Зависимость = Зависимости.Добавить(); @@ -2189,10 +2224,6 @@ КонецПроцедуры // См. УправлениеДоступомПереопределяемый.ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов. -// -// Параметры: -// ВозможныеПрава - см. УправлениеДоступомПереопределяемый.ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов.ВозможныеПрава -// Процедура ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов(ВозможныеПрава) Экспорт //////////////////////////////////////////////////////////// @@ -2298,10 +2329,6 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -2571,10 +2598,6 @@ КонецПроцедуры // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке. -// -// Параметры: -// Типы - см. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке.Типы -// Процедура ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке(Типы) Экспорт // В процессе выгрузки данных ссылки на справочник ТомаХраненияФайлов очищаются, @@ -2614,11 +2637,7 @@ КонецПроцедуры -// См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей. -// -// Параметры: -// НазначениеРолей - см. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей.НазначениеРолей -// +// См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей Процедура ПриОпределенииНазначенияРолей(НазначениеРолей) Экспорт // СовместноДляПользователейИВнешнихПользователей. @@ -2628,10 +2647,6 @@ КонецПроцедуры // См. УправлениеСвойствамиПереопределяемый.ПриПолученииПредопределенныхНаборовСвойств. -// -// Параметры: -// Наборы - см. УправлениеСвойствамиПереопределяемый.ПриПолученииПредопределенныхНаборовСвойств.Наборы -// Процедура ПриПолученииПредопределенныхНаборовСвойств(Наборы) Экспорт Набор = Наборы.Строки.Добавить(); Набор.Имя = "Справочник_ПапкиФайлов"; @@ -2668,8 +2683,8 @@ // См. ОбновлениеИнформационнойБазыПереопределяемый.ПриОпределенииНастроек // // Параметры: -// Объекты - Массив -// +// Объекты - Массив из ОбъектМетаданных +// Процедура ПриОпределенииОбъектовСНачальнымЗаполнением(Объекты) Экспорт Объекты.Добавить(Метаданные.Справочники.ПапкиФайлов); @@ -2700,6 +2715,14 @@ КонецФункции // Возвращает навигационную ссылку на файл (на реквизит или во временное хранилище). +// +// Параметры: +// ФайлСсылка - ОпределяемыйТип.ПрисоединенныйФайл +// УникальныйИдентификатор - УникальныйИдентификатор +// +// Возвращаемое значение: +// см. РаботаСФайламиСлужебныйВызовСервера.ПолучитьНавигационнуюСсылкуДляОткрытия +// Функция НавигационнойСсылкиФайла(ФайлСсылка, УникальныйИдентификатор) Экспорт Если ЭтоЭлементРаботаСФайлами(ФайлСсылка) Тогда @@ -3026,13 +3049,6 @@ // По обмену пришел элемент с хранением в базе - но в базе приемнике принято хранить в томах. // Из служебного реквизита файл размещаем на томе и меняем ТипХраненияФайла на ВТомахНаДиске. ТипМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(ЭлементДанных)); - Если ОбщегоНазначения.ЕстьРеквизитОбъекта("ВладелецФайла", ТипМетаданных) Тогда - // Это справочник файлов. - НомерВерсии = ""; - Иначе - // Это справочник версий файлов. - НомерВерсии = ЭлементДанных.НомерВерсии; - КонецЕсли; Если ДвоичныеДанные = Неопределено Тогда @@ -3089,7 +3105,7 @@ // Записывает двоичные данные файла в информационную базу. // // Параметры: -// ПрисоединенныйФайл - ссылка на присоединенный файл. +// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на присоединенный файл. // ДвоичныеДанные - ДвоичныеДанные - которые требуется записать. // Процедура ЗаписатьФайлВИнформационнуюБазу(Знач ПрисоединенныйФайл, Знач ДвоичныеДанные) Экспорт @@ -3191,7 +3207,7 @@ // если их более одного. // // Параметры: -// ВладелецФайлов - Ссылка - объект, к которому добавляется файл. +// ВладелецФайлов - ЛюбаяСсылка - объект, к которому добавляется файл. // ИмяСправочника - Строка - если заполнено, то выполняется проверка // наличия справочника среди справочников владельца для хранения файлов. // Если не заполнено, возвращает имя основного справочника. @@ -3200,6 +3216,9 @@ // ИмяПараметра - Строка - имя требуемого параметра для определения имени справочника. // ОкончаниеОшибки - Строка - окончание ошибки (только для случая, когда ИмяПараметра = Неопределено). // +// Возвращаемое значение: +// Строка - имя справочника +// Функция ИмяСправочникаХраненияФайлов(ВладелецФайлов, ИмяСправочника = "", ЗаголовокОшибки = Неопределено, ОкончаниеОшибки = Неопределено) Экспорт @@ -3272,8 +3291,13 @@ // для указанного владельца. // // Параметры: -// ВладелецФайлов - Ссылка - объект, к которому добавляется файл. +// ВладелецФайлов - ЛюбаяСсылка - объект, к которому добавляется файл. // +// Возвращаемое значение: +// Соответствие из КлючИЗначение: +// * Ключ - Строка +// * Значение - Булево +// Функция ИменаСправочниковХраненияВерсийФайлов(ВладелецФайлов, НеВызыватьИсключение = Ложь) Если ТипЗнч(ВладелецФайлов) = Тип("Тип") Тогда @@ -3341,7 +3365,7 @@ // если их более одного. // // Параметры: -// ВладелецФайлов - Ссылка - объект, к которому добавляется файл. +// ВладелецФайлов - ЛюбаяСсылка - объект, к которому добавляется файл. // ИмяСправочника - Строка - если заполнено, то выполняется проверка // наличия справочника среди справочников владельца для хранения файлов. // Если не заполнено, возвращает имя основного справочника. @@ -3350,6 +3374,9 @@ // ИмяПараметра - Строка - имя требуемого параметра для определения имени справочника. // ОкончаниеОшибки - Строка - окончание ошибки (только для случая, когда ИмяПараметра = Неопределено). // +// Возвращаемое значение: +// Строка - имя справочника +// Функция ИмяСправочникаХраненияВерсийФайлов(ВладелецФайлов, ИмяСправочника = "", ЗаголовокОшибки = Неопределено, ОкончаниеОшибки = Неопределено) Экспорт @@ -3458,8 +3485,10 @@ // Сравнивает 2 элемента отбора компоновки данных. // Параметры: -// Элемент1 - элемент условного оформления списка. -// Элемент2 - элемент условного оформления списка. +// Элемент1 - ЭлементОтбораКомпоновкиДанных +// - ГруппаЭлементовОтбораКомпоновкиДанных - элемент условного оформления списка. +// Элемент2 - ЭлементОтбораКомпоновкиДанных +// - ГруппаЭлементовОтбораКомпоновкиДанных - элемент условного оформления списка. // // Возвращаемое значение: // Булево - результат сравнения. @@ -3505,10 +3534,10 @@ // Формирует отчет для файлов с ошибками. // // Параметры: -// МассивИменФайловСОшибками - массив строк путей к файлам. +// МассивИменФайловСОшибками - Массив из Строка - пути к файлам. // // Возвращаемое значение: -// ТабличныйДокумент с отчетом. +// ТабличныйДокумент // Функция ИмпортФайловСформироватьОтчет(МассивИменФайловСОшибками) Экспорт @@ -3847,7 +3876,7 @@ // Добавляет элементы отбора компоновки данных в динамические списки файлов. // // Параметры: -// Список - динамический список, в который будут добавлены отборы. +// Список - ДинамическийСписок - динамический список, в который будут добавлены отборы. // Процедура ДобавитьОтборыВСписокФайлов(Список) Экспорт @@ -3862,7 +3891,7 @@ // Внешним пользователям доступна только общая информация о файле и его характеристиках. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - форма, для которой изменяется видимость элементов. +// Форма - ФормаКлиентскогоПриложения - форма, для которой изменяется видимость элементов. // ЭтоФормаСписка - Булево - признак того, что процедура вызывается из формы списка. // Процедура ИзменитьФормуДляВнешнегоПользователя(Форма, Знач ЭтоФормаСписка = Ложь) Экспорт @@ -4626,10 +4655,6 @@ Версия.ПутьКФайлу = ""; Версия.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка(); Иначе - ФайлЗашифрован = Ложь; - Если СведенияОФайле.Зашифрован <> Неопределено Тогда - ФайлЗашифрован = СведенияОФайле.Зашифрован; - КонецЕсли; РаботаСФайламиВТомахСлужебный.ДобавитьФайл(Версия, ДвоичныеДанные); КонецЕсли; @@ -4682,7 +4707,7 @@ // АдресВременногоХранилищаТекста - Строка - содержит адрес во временном хранилище, где находятся двоичные данные с // файлом текста или ХранилищеЗначения - непосредственно содержит двоичные // данные с файлом текста. -// УникальныйИдентификатор - уникальный идентификатор формы. +// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы. // Процедура ОбновитьВерсиюВФайле(ФайлСсылка, Версия, @@ -4841,9 +4866,6 @@ МетаданныеСправочника = ОбъектЗначение.Метаданные(); // ОбъектМетаданныхСправочник Контекст.ИмяСправочника = МетаданныеСправочника.Имя; - ЗаголовокОшибки = НСтр("ru = 'Ошибка при настройке формы элемента присоединенных файлов.'"); - ОкончаниеОшибки = НСтр("ru = 'В этом случае настройка формы элемента невозможна.'"); - ВозможностьСоздаватьВерсииФайлов = ТипЗнч(ОбъектЗначение.Ссылка) = Тип("СправочникСсылка.Файлы"); Контекст.ВозможностьСоздаватьВерсииФайлов = ВозможностьСоздаватьВерсииФайлов; @@ -5228,7 +5250,7 @@ КонецФункции // Параметры: -// Результат - Массив +// Результат - Массив из см. ОписаниеФайла // Процедура СформироватьСписокФайловДляОтправкиПоПочте(Результат, ФайлВложение, ИдентификаторФормы) Экспорт @@ -5269,7 +5291,7 @@ #Область ОчисткаНенужныхФайлов // Параметры: -// НастройкаОчистки - СтрокаТаблицыЗначений - колонки: +// НастройкаОчистки - СтрокаТаблицыЗначений: // * ВладелецФайла - ОпределяемыйТип.ПрисоединенныйФайл // * ИдентификаторВладельца - СправочникСсылка.ИдентификаторыОбъектовМетаданных // * ЭтоНастройкаДляЭлементаСправочника - Булево @@ -6627,6 +6649,7 @@ КонецПроцедуры + // Загружает с сервера webdav новые папки и файлы, которых еще нет в базе, и отражает их в таблице файлов. Процедура ЗагрузитьНовыеПрисоединенныеФайлы(СтрокиДереваФайлов, ТаблицаФайлов, ПараметрыСинхронизации, ОбъектВладелец = Неопределено) @@ -6867,6 +6890,7 @@ КонецПроцедуры + Процедура ЗаполнитьДанныеИзОблачногоСервиса(СтрокиДереваФайлов, ТаблицаФайлов, ПараметрыСинхронизации, ОбъектВладелец = Неопределено) Для каждого СтрокаДереваФайлов Из СтрокиДереваФайлов Цикл @@ -7071,17 +7095,22 @@ ТаблицаФайлов.Индексы.Добавить("ФайлСсылка"); ТаблицаФайлов.Сортировать("Уровень, РодительСортировка, ЭтоПапка УБЫВ"); - ОбходТаблицыФайлов(ТаблицаФайлов, ПараметрыСинхронизации, АдресСервера); + Если Не СинхронизироватьФайлы(ТаблицаФайлов, ПараметрыСинхронизации, АдресСервера) Тогда + СинхронизацияВыполнена = Ложь; + КонецЕсли; ТаблицаФайлов.Сортировать("Уровень УБЫВ, РодительСортировка, ЭтоПапка УБЫВ"); - ОбходТаблицыФайлов(ТаблицаФайлов, ПараметрыСинхронизации, АдресСервера, Истина); + Если Не СинхронизироватьФайлы(ТаблицаФайлов, ПараметрыСинхронизации, АдресСервера, Истина) Тогда + СинхронизацияВыполнена = Ложь; + КонецЕсли; ЗаписатьРезультатСинхронизации(ПараметрыСинхронизации.УчетнаяЗапись, СинхронизацияВыполнена); КонецПроцедуры -Процедура ОбходТаблицыФайлов(ТаблицаФайлов, ПараметрыСинхронизации, АдресСервера, ЭтоУдалениеФайлов = Ложь) +Функция СинхронизироватьФайлы(ТаблицаФайлов, ПараметрыСинхронизации, АдресСервера, ЭтоУдалениеФайлов = Ложь) + СинхронизацияВыполнена = Истина; Для Каждого СтрокаТаблицы Из ТаблицаФайлов Цикл Если СтрокаТаблицы.Обработан Тогда @@ -7147,8 +7176,9 @@ КонецПопытки; КонецЦикла; + Возврат СинхронизацияВыполнена; -КонецПроцедуры +КонецФункции Процедура ЗаписатьРезультатСинхронизации(УчетнаяЗапись, Знач СинхронизацияВыполнена) @@ -8027,10 +8057,12 @@ КонецЕсли; КонецЕсли; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ПЕРВЫЕ 1", ?( - ПолучитьВсеФайлы, + + СтрокаЗамены = ?(ПолучитьВсеФайлы, "", - "ПЕРВЫЕ " + Формат(ЧислоФайловВВыборке, "ЧГ=; ЧН="))); + "ПЕРВЫЕ " + Формат(ЧислоФайловВВыборке, "ЧГ=; ЧН=")); // @query-part-1 + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ПЕРВЫЕ 1", СтрокаЗамены); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяСправочника", "Справочник." + ИмяСправочника); @@ -8447,10 +8479,10 @@ // при использовании ограничения для папки или файла. // // Параметры: -// Право - имя права. +// Право - Строка - имя права. // ВладелецПрав - СправочникСсылка.ПапкиФайлов // - СправочникСсылка.Файлы -// <ссылка на владельца>. +// - ОпределяемыйТип.ВладелецПрисоединенныхФайлов // Функция ЕстьПраво(Право, ВладелецПрав) Экспорт @@ -8585,7 +8617,7 @@ // Удаляет запись в регистре ХранимыеФайлыВерсий. // // Параметры: -// Файл - ссылка на файл. +// Файл - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на файл. // Процедура УдалитьЗаписьИзРегистраДвоичныеДанныеФайлов(Файл) Экспорт @@ -8877,12 +8909,13 @@ | ТЧЭлектронныеПодписи.ПодписьВерна КАК ПодписьВерна, | ТЧЭлектронныеПодписи.ДатаПроверкиПодписи КАК ДатаПроверкиПодписи |ИЗ - | " + ПолноеИмяОбъектаМетаданных + ".УдалитьЭлектронныеПодписи КАК ТЧЭлектронныеПодписи + | &УдалитьЭлектронныеПодписи КАК ТЧЭлектронныеПодписи |ГДЕ | ТЧЭлектронныеПодписи.Ссылка В(&МассивОбъектов) |ИТОГИ | ПО ПодписанныйОбъект"; + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УдалитьЭлектронныеПодписи", ПолноеИмяОбъектаМетаданных + ".УдалитьЭлектронныеПодписи"); Если ОбъектМетаданных = Метаданные.Справочники.ВерсииФайлов Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст, "ТЧЭлектронныеПодписи.Ссылка КАК ПодписанныйОбъект", @@ -8952,12 +8985,14 @@ | ТЧСертификатыШифрования.НомерСтроки КАК ПорядковыйНомер, | ТЧСертификатыШифрования.Представление |ИЗ - | " + ПолноеИмяОбъектаМетаданных + ".УдалитьСертификатыШифрования КАК ТЧСертификатыШифрования + | &УдалитьСертификатыШифрования КАК ТЧСертификатыШифрования |ГДЕ | ТЧСертификатыШифрования.Ссылка В(&МассивОбъектов) |ИТОГИ | ПО ЗашифрованныйОбъект"; + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УдалитьСертификатыШифрования", + ПолноеИмяОбъектаМетаданных + ".УдалитьСертификатыШифрования"); Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов); Выгрузка = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервиса/Module.bsl index fcbf26db8..2733a6066 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервиса/Module.bsl @@ -14,8 +14,8 @@ // состояние извлечения текста версий файлов. // // Параметры: -// ИсточникТекста - ОпределяемыйТип.ПрисоединенныйФайл - файл, у которого изменилось состояние извлечения текста. -// СостояниеИзвлеченияТекста - ПеречислениеСсылка.СтатусыИзвлеченияТекстаФайлов - новый +// ИсточникТекста - ОпределяемыйТип.ПрисоединенныйФайл - файл, у которого изменилось состояние извлечения текста. +// СостояниеИзвлеченияТекста - ПеречислениеСсылка.СтатусыИзвлеченияТекстаФайлов - новый // статус извлечения текста у файла. // Процедура ОбновитьСостояниеОчередиИзвлеченияТекста(ИсточникТекста, СостояниеИзвлеченияТекста) Экспорт @@ -59,10 +59,6 @@ КонецПроцедуры // См. ОчередьЗаданийПереопределяемый.ПриОпределенииИспользованияРегламентныхЗаданий. -// -// Параметры: -// ТаблицаИспользования - см. ОчередьЗаданийПереопределяемый.ПриОпределенииИспользованияРегламентныхЗаданий.ТаблицаИспользования -// Процедура ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования) Экспорт НоваяСтрока = ТаблицаИспользования.Добавить(); @@ -78,10 +74,6 @@ КонецПроцедуры // См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. -// -// Параметры: -// ШаблоныЗаданий - см. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.ШаблоныЗаданий -// Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт ШаблоныЗаданий.Добавить("ОчисткаНенужныхФайлов"); @@ -89,11 +81,9 @@ КонецПроцедуры +// ТехнологияСервиса.ВыгрузкаЗагрузкаДанных + // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. -// -// Параметры: -// Типы - см. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки.Типы -// Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт Типы.Добавить(Метаданные.РегистрыСведений.ОчередьИзвлеченияТекста); @@ -105,94 +95,7 @@ КонецПроцедуры -// Вызывается при регистрации произвольных обработчиков выгрузки данных. -// -// Параметры: -// ТаблицаОбработчиков - ТаблицаЗначений - в данной процедуре требуется -// дополнить эту таблицу значений информацией о регистрируемых произвольных -// обработчиках выгрузки данных. Колонки: -// ОбъектМетаданных - ОбъектМетаданных, при выгрузке данных которого должен -// вызываться регистрируемый обработчик, -// Обработчик - ОбщийМодуль, общий модуль, в котором реализован произвольный -// обработчик выгрузки данных. Набор экспортных процедур, которые должны -// быть реализованы в обработчике, зависит от установки значений следующих -// колонок таблицы значений, -// Версия - Строка - номер версии интерфейса обработчиков выгрузки / загрузки данных, -// поддерживаемого обработчиком, -// ПередВыгрузкойТипа - Булево - флаг необходимости вызова обработчика перед -// выгрузкой всех объектов информационной базы, относящихся к данному объекту -// метаданных. Если присвоено значение Истина - в общем модуле обработчика должна -// быть реализована экспортируемая процедура ПередВыгрузкойТипа(), -// поддерживающая следующие параметры: -// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер -// контейнера, используемый в процессе выгрузи данных. Подробнее см. комментарий -// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера, -// Сериализатор - СериализаторXDTO, инициализированный с поддержкой выполнения -// аннотации ссылок. В случае, если в произвольном обработчике выгрузки требуется -// выполнять выгрузку дополнительных данных - следует использовать -// СериализаторXDTO, переданный в процедуру ПередВыгрузкойТипа() в качестве -// значения параметра Сериализатор, а не полученных с помощью свойства глобального -// контекста СериализаторXDTO, -// ОбъектМетаданных - ОбъектМетаданных, перед выгрузкой данных которого -// был вызван обработчик, -// Отказ - Булево - если в процедуре ПередВыгрузкойТипа() установить значение -// данного параметра равным Истина - выгрузка объектов, соответствующих -// текущему объекту метаданных, выполняться не будет. -// ПередВыгрузкойОбъекта - Булево - флаг необходимости вызова обработчика перед -// выгрузкой конкретного объекта информационной базы. Если присвоено значение -// Истина - в общем модуле обработчика должна быть реализована экспортируемая процедура -// ПередВыгрузкойОбъекта(), поддерживающая следующие параметры: -// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер -// контейнера, используемый в процессе выгрузи данных. Подробнее см. комментарий -// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера, -// МенеджерВыгрузкиОбъекта - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерВыгрузкиДанныхИнформационнойБазы - -// менеджер выгрузки текущего объекта. Подробнее см. комментарий к программному интерфейсу обработки -// ВыгрузкаЗагрузкаДанныхМенеджерВыгрузкиДанныхИнформационнойБазы. Параметр передается только при вызове -// процедур обработчиков, для которых при регистрации указана версия не ниже 1.0.0.1, -// Сериализатор - СериализаторXDTO, инициализированный с поддержкой выполнения -// аннотации ссылок. В случае, если в произвольном обработчике выгрузки требуется -// выполнять выгрузку дополнительных данных - следует использовать -// СериализаторXDTO, переданный в процедуру ПередВыгрузкойОбъекта() в качестве -// значения параметра Сериализатор, а не полученных с помощью свойства глобального -// контекста СериализаторXDTO, -// Объект - КонстантаМенеджерЗначения.*, СправочникОбъект.*, ДокументОбъект.*, -// БизнесПроцессОбъект.*, ЗадачаОбъект.*, ПланСчетовОбъект.*, ПланОбменаОбъект.*, -// ПланВидовХарактеристикОбъект.*, ПланВидовРасчетаОбъект.*, РегистрСведенийНаборЗаписей.*, -// РегистрНакопленияНаборЗаписей.*, РегистрБухгалтерииНаборЗаписей.*, -// РегистрРасчетаНаборЗаписей.*, ПоследовательностьНаборЗаписей.*, ПерерасчетНаборЗаписей.* - -// объект данных информационной базы, перед выгрузкой которого был вызван обработчик. -// Значение, переданное в процедуру ПередВыгрузкойОбъекта() в качестве значения параметра -// Объект может быть модифицировано внутри обработчика ПередВыгрузкойОбъекта(), при -// этом внесенные изменения будут отражены в сериализации объекта в файлах выгрузки, но -// не будут зафиксированы в информационной базе -// Артефакты - Массив Из ОбъектXDTO - набор дополнительной информации, логически неразрывно -// связанной с объектом, но не являющейся его частью (артефакты объекта). Артефакты должны -// сформированы внутри обработчика ПередВыгрузкойОбъекта() и добавлены в массив, переданный -// в качестве значения параметра Артефакты. Каждый артефакт должен являться XDTO-объектом, -// для типа которого в качестве базового типа используется абстрактный XDTO-тип -// {http://www.1c.ru/1cFresh/Data/Dump/1.0.2.1}Artefact. Допускается использовать XDTO-пакеты, -// помимо изначально поставляемых в составе подсистемы ВыгрузкаЗагрузкаДанных. В дальнейшем -// артефакты, сформированные в процедуре ПередВыгрузкойОбъекта(), будут доступны в процедурах -// обработчиков загрузки данных (см. комментарий к процедуре ПриРегистрацииОбработчиковЗагрузкиДанных(). -// Отказ - Булево - если в процедуре ПередВыгрузкойОбъекта() установить значение -// данного параметра равным Истина - выгрузка объекта, для которого был вызван обработчик, -// выполняться не будет. -// ПослеВыгрузкиТипа() - Булево - флаг необходимости вызова обработчика после выгрузки всех -// объектов информационной базы, относящихся к данному объекту метаданных. Если присвоено значение -// Истина - в общем модуле обработчика должна быть реализована экспортируемая процедура -// ПослеВыгрузкиТипа(), поддерживающая следующие параметры: -// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер -// контейнера, используемый в процессе выгрузи данных. Подробнее см. комментарий -// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера, -// Сериализатор - СериализаторXDTO, инициализированный с поддержкой выполнения -// аннотации ссылок. В случае, если в произвольном обработчике выгрузки требуется -// выполнять выгрузку дополнительных данных - следует использовать -// СериализаторXDTO, переданный в процедуру ПослеВыгрузкиТипа() в качестве -// значения параметра Сериализатор, а не полученных с помощью свойства глобального -// контекста СериализаторXDTO, -// ОбъектМетаданных - ОбъектМетаданных, после выгрузки данных которого -// был вызван обработчик. -// +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. Процедура ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков) Экспорт СправочникиФайлов = ПрочитатьКэшВыгрузкиЗагрузкиФайловыхФункций().СправочникиФайлов; @@ -218,124 +121,7 @@ КонецПроцедуры -// Вызывается при регистрации произвольных обработчиков загрузки данных. -// -// Параметры: -// ТаблицаОбработчиков - ТаблицаЗначений - в данной процедуре требуется -// дополнить эту таблицу значений информацией о регистрируемых произвольных -// обработчиках загрузки данных. Колонки: -// ОбъектМетаданных - ОбъектМетаданных, при загрузке данных которого должен -// вызываться регистрируемый обработчик, -// Обработчик - ОбщийМодуль, общий модуль, в котором реализован произвольный -// обработчик загрузки данных. Набор экспортных процедур, которые должны -// быть реализованы в обработчике, зависит от установки значений следующих -// колонок таблицы значений, -// Версия - Строка - номер версии интерфейса обработчиков выгрузки / загрузки данных, -// поддерживаемого обработчиком, -// ПередСопоставлениемСсылок - Булево - флаг необходимости вызова обработчика перед -// сопоставлением ссылок (в исходной ИБ и в текущей), относящихся к данному объекту -// метаданных. Если присвоено значение Истина - в общем модуле обработчика должна -// быть реализована экспортируемая процедура ПередСопоставлениемСсылок(), -// поддерживающая следующие параметры: -// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер -// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий -// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// ОбъектМетаданных - ОбъектМетаданных, перед сопоставлением ссылок которого -// был вызван обработчик, -// СтандартнаяОбработка - Булево - если процедуре ПередСопоставлениемСсылок() -// установить значение данного параметра равным Ложь, вместо стандартного -// сопоставления ссылок (поиск объектов в текущей ИБ с теми же значениями -// естественного ключа, которые были выгружены из ИБ-источника) будет -// вызвана функция СопоставитьСсылки() общего модуля, в процедуре -// ПередСопоставлениемСсылок() которого значение параметра СтандартнаяОбработка -// было установлено равным Ложь. -// Параметры функции СопоставитьСсылки(): -// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер -// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий -// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера, -// ТаблицаИсходныхСсылок - ТаблицаЗначений - содержащая информацию о ссылках, -// выгруженных из исходной ИБ. Колонки: -// ИсходнаяСсылка - ЛюбаяСсылка, ссылка объекта исходной ИБ, которую требуется -// сопоставить c ссылкой в текущей ИБ, -// Остальные колонки равным полям естественного ключа объекта, которые в -// процессе выгрузки данных были переданы в функцию -// Обработка.ВыгрузкаЗагрузкаДанныхМенеджерВыгрузкиДанныхИнформационнойБазы.ТребуетсяСопоставитьСсылкуПриЗагрузке() -// Возвращаемое значение функции СопоставитьСсылки() - ТаблицаЗначений, колонки: -// ИсходнаяСсылка - ЛюбаяСсылка, ссылка объекта, выгруженная из исходной ИБ, -// Ссылка - ЛюбаяСсылка, сопоставленная исходной ссылка в текущей ИБ. -// Отказ - Булево - если в процедуре ПередСопоставлениемСсылок() установить значение -// данного параметра равным Истина - сопоставление ссылок, соответствующих -// текущему объекту метаданных, выполняться не будет. -// ПередЗагрузкойТипа - Булево - флаг необходимости вызова обработчика перед -// загрузкой всех объектов данных, относящихся к данному объекту -// метаданных. Если присвоено значение Истина - в общем модуле обработчика должна -// быть реализована экспортируемая процедура ПередЗагрузкойТипа(), -// поддерживающая следующие параметры: -// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер -// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий -// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// ОбъектМетаданных - ОбъектМетаданных, перед загрузкой всех данных которого -// был вызван обработчик, -// Отказ - Булево - если в процедуре ПередЗагрузкойТипа() установить значение данного -// параметра равным Истина - загрузка всех объектов данных соответствующих текущему -// объекту метаданных выполняться не будет. -// ПередЗагрузкойОбъекта - Булево - флаг необходимости вызова обработчика перед -// загрузкой объекта данных, относящихся к данному объекту -// метаданных. Если присвоено значение Истина - в общем модуле обработчика должна -// быть реализована экспортируемая процедура ПередЗагрузкойОбъекта(), -// поддерживающая следующие параметры: -// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер -// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий -// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// Объект - КонстантаМенеджерЗначения.*, СправочникОбъект.*, ДокументОбъект.*, -// БизнесПроцессОбъект.*, ЗадачаОбъект.*, ПланСчетовОбъект.*, ПланОбменаОбъект.*, -// ПланВидовХарактеристикОбъект.*, ПланВидовРасчетаОбъект.*, РегистрСведенийНаборЗаписей.*, -// РегистрНакопленияНаборЗаписей.*, РегистрБухгалтерииНаборЗаписей.*, -// РегистрРасчетаНаборЗаписей.*, ПоследовательностьНаборЗаписей.*, ПерерасчетНаборЗаписей.* - -// объект данных информационной базы, перед загрузкой которого был вызван обработчик. -// Значение, переданное в процедуру ПередЗагрузкойОбъекта() в качестве значения параметра -// Объект может быть модифицировано внутри процедуры обработчика ПередЗагрузкойОбъекта(). -// Артефакты - Массив Из ОбъектXDTO - дополнительные данные, логически неразрывно связанные -// с объектом данных, но не являющиеся его частью. Сформированы в экспортируемых процедурах -// ПередВыгрузкойОбъекта() обработчиков выгрузки данных (см. комментарий к процедуре -// ПриРегистрацииОбработчиковВыгрузкиДанных(). Каждый артефакт должен являться XDTO-объектом, -// для типа которого в качестве базового типа используется абстрактный XDTO-тип -// {http://www.1c.ru/1cFresh/Data/Dump/1.0.2.1}Artefact. Допускается использовать XDTO-пакеты, -// помимо изначально поставляемых в составе подсистемы ВыгрузкаЗагрузкаДанных. -// Отказ - Булево - если в процедуре ПередЗагрузкойОбъекта() установить значение данного -// параметра равным Истина - загрузка объекта данных выполняться не будет. -// ПослеЗагрузкиОбъекта - Булево - флаг необходимости вызова обработчика после -// загрузки объекта данных, относящихся к данному объекту -// метаданных. Если присвоено значение Истина - в общем модуле обработчика должна -// быть реализована экспортируемая процедура ПослеЗагрузкиОбъекта(), -// поддерживающая следующие параметры: -// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер -// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий -// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// Объект - КонстантаМенеджерЗначения.*, СправочникОбъект.*, ДокументОбъект.*, -// БизнесПроцессОбъект.*, ЗадачаОбъект.*, ПланСчетовОбъект.*, ПланОбменаОбъект.*, -// ПланВидовХарактеристикОбъект.*, ПланВидовРасчетаОбъект.*, РегистрСведенийНаборЗаписей.*, -// РегистрНакопленияНаборЗаписей.*, РегистрБухгалтерииНаборЗаписей.*, -// РегистрРасчетаНаборЗаписей.*, ПоследовательностьНаборЗаписей.*, ПерерасчетНаборЗаписей.* - -// объект данных информационной базы, после загрузки которого был вызван обработчик. -// Артефакты - Массив Из ОбъектXDTO - дополнительные данные, логически неразрывно связанные -// с объектом данных, но не являющиеся его частью. Сформированы в экспортируемых процедурах -// ПередВыгрузкойОбъекта() обработчиков выгрузки данных (см. комментарий к процедуре -// ПриРегистрацииОбработчиковВыгрузкиДанных(). Каждый артефакт должен являться XDTO-объектом, -// для типа которого в качестве базового типа используется абстрактный XDTO-тип -// {http://www.1c.ru/1cFresh/Data/Dump/1.0.2.1}Artefact. Допускается использовать XDTO-пакеты, -// помимо изначально поставляемых в составе подсистемы ВыгрузкаЗагрузкаДанных. -// ПослеЗагрузкиТипа - Булево - флаг необходимости вызова обработчика после -// загрузки всех объектов данных, относящихся к данному объекту -// метаданных. Если присвоено значение Истина - в общем модуле обработчика должна -// быть реализована экспортируемая процедура ПослеЗагрузкиТипа(), -// поддерживающая следующие параметры: -// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер -// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий -// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// ОбъектМетаданных - ОбъектМетаданных, после загрузки всех объектов которого -// был вызван обработчик. -// +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковЗагрузкиДанных. Процедура ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков) Экспорт СправочникиФайлов = ПрочитатьКэшВыгрузкиЗагрузкиФайловыхФункций().СправочникиФайлов; @@ -351,13 +137,29 @@ КонецПроцедуры -#КонецОбласти - -// АПК:299-выкл - обработчики событий и обновления ИБ. -#Область ОбработчикиВыгрузкиДанных - +// Подключается в ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. +// // Параметры: -// Артефакты - Массив +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера +// МенеджерВыгрузкиОбъекта - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерВыгрузкиДанныхИнформационнойБазы +// Сериализатор - СериализаторXDTO +// Объект - КонстантаМенеджерЗначения +// - СправочникОбъект +// - ДокументОбъект +// - БизнесПроцессОбъект +// - ЗадачаОбъект +// - ПланСчетовОбъект +// - ПланОбменаОбъект +// - ПланВидовХарактеристикОбъект +// - ПланВидовРасчетаОбъект +// - РегистрСведенийНаборЗаписей +// - РегистрНакопленияНаборЗаписей +// - РегистрБухгалтерииНаборЗаписей +// - РегистрРасчетаНаборЗаписей +// - ПоследовательностьНаборЗаписей +// - ПерерасчетНаборЗаписей +// Артефакты - Массив из ОбъектXDTO +// Отказ - Булево // Процедура ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ) Экспорт @@ -433,10 +235,28 @@ КонецПроцедуры -#КонецОбласти - -#Область ОбработчикиЗагрузкиДанных - +// Подключается в ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковЗагрузкиДанных. +// +// Параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера +// Объект - КонстантаМенеджерЗначения +// - СправочникОбъект +// - ДокументОбъект +// - БизнесПроцессОбъект +// - ЗадачаОбъект +// - ПланСчетовОбъект +// - ПланОбменаОбъект +// - ПланВидовХарактеристикОбъект +// - ПланВидовРасчетаОбъект +// - РегистрСведенийНаборЗаписей +// - РегистрНакопленияНаборЗаписей +// - РегистрБухгалтерииНаборЗаписей +// - РегистрРасчетаНаборЗаписей +// - ПоследовательностьНаборЗаписей +// - ПерерасчетНаборЗаписей +// Артефакты - Массив из ОбъектXDTO +// Отказ - Булево +// Процедура ПередЗагрузкойОбъекта(Контейнер, Объект, Артефакты, Отказ) Экспорт СправочникиФайлов = ПрочитатьКэшВыгрузкиЗагрузкиФайловыхФункций().СправочникиФайлов; @@ -466,12 +286,16 @@ КонецПроцедуры +// Конец ТехнологияСервиса.ВыгрузкаЗагрузкаДанных + #КонецОбласти #КонецОбласти #Область СлужебныеПроцедурыИФункции +// АПК:299-выкл - обработчики событий и обновления ИБ. + #Область ОбновлениеИнформационнойБазы // Заполняет очередь извлечения текста для текущей области данных. Используется для начального заполнения при @@ -501,6 +325,7 @@ КонецПроцедуры #КонецОбласти + // АПК:299-вкл #Область ИзвлечениеТекста diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Module.bsl index 3134999c7..182705180 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВызовСервера/Module.bsl @@ -221,8 +221,8 @@ // Занимает файл на редактирование (checkout). // // Параметры: -// ДанныеФайла - структура с данными файла. -// СтрокаОшибки - строка - в которой возвращается причина ошибки в случае неуспеха (скажем "Файл занят другим +// ДанныеФайла - Структура - с данными файла. +// СтрокаОшибки - Строка - в которой возвращается причина ошибки в случае неуспеха (скажем "Файл занят другим // пользователем"). // УникальныйИдентификатор - уникальный идентификатор формы. // @@ -276,7 +276,7 @@ КонецФункции -// Функция возвращает структуру, содержащую различные сведения о файле и версии. +// Возвращает структуру, содержащую различные сведения о файле и версии. // // Параметры: // ФайлИлиВерсияСсылка - СправочникСсылка.Файлы @@ -401,7 +401,7 @@ КонецФункции -// Функция возвращает структуру, содержащую различные сведения о Файле и версии. +// Возвращает структуру, содержащую различные сведения о Файле и версии. // // Возвращаемое значение: // Структура: @@ -449,9 +449,6 @@ Если ДанныеФайла.Версия <> Неопределено И СведенияОВерсии.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда - ДанныеФайлаТом = СведенияОВерсии.Том; - ДанныеФайлаПутьКФайлу = СведенияОВерсии.ПутьКФайлу; - ДвоичныеДанные = РаботаСФайламиВТомахСлужебный.ДанныеФайла(ДанныеФайла.Версия); ДанныеФайла.НавигационнаяСсылкаТекущейВерсии = ПоместитьВоВременноеХранилище(ДвоичныеДанные, ИдентификаторФормы); @@ -773,11 +770,6 @@ Версия.Размер = ДвоичныеДанные.Размер(); РаботаСФайламиСлужебный.ПроверитьРазмерФайлаДляЗагрузки(Версия); КонецЕсли; - - ФайлЗашифрован = Ложь; - Если СведенияОФайле.Зашифрован <> Неопределено Тогда - ФайлЗашифрован = СведенияОФайле.Зашифрован; - КонецЕсли; КонецЕсли; ИспользованиеПолнотекстовогоПоиска = Метаданные.СвойстваОбъектов.ИспользованиеПолнотекстовогоПоиска.Использовать; @@ -1253,7 +1245,7 @@ // Параметры: // ФайлСсылка - СправочникСсылка.Файлы - файл. // ДанныеФайла - Структура - структура с данными файла. -// СтрокаОшибки - строка - в которой возвращается причина ошибки в случае неуспеха (скажем "Файл занят другим +// СтрокаОшибки - Строка - в которой возвращается причина ошибки в случае неуспеха (скажем "Файл занят другим // пользователем"). // УникальныйИдентификатор - уникальный идентификатор формы. // @@ -1301,7 +1293,7 @@ // Параметры: // ФайлСсылка - СправочникСсылка.Файлы - файл. // ДанныеФайла - Структура - структура с данными файла. -// СтрокаОшибки - строка - в которой возвращается причина ошибки в случае неуспеха (скажем "Файл занят другим +// СтрокаОшибки - Строка - в которой возвращается причина ошибки в случае неуспеха (скажем "Файл занят другим // пользователем"). // УникальныйИдентификатор - уникальный идентификатор формы. // РабочийКаталогВладельца - Строка - рабочий каталог владельца файла. @@ -1436,7 +1428,7 @@ // Освобождение Файла с получением данных. // Параметры: // ФайлСсылка - СправочникСсылка.Файлы - файл. -// ДанныеФайла - структура с данными файла. +// ДанныеФайла - Структура - с данными файла. // УникальныйИдентификатор - уникальный идентификатор формы. // Процедура ПолучитьДанныеФайлаИОсвободитьФайл(ФайлСсылка, ДанныеФайла, УникальныйИдентификатор = Неопределено) Экспорт @@ -1738,7 +1730,7 @@ // Структура: // Версия - СправочникСсылка.ВерсииФайлов - найденная версия. // ДатаПомещения - дата помещения файла в рабочий каталог. -// Владелец - Ссылка - владелец файла. +// Владелец - ЛюбаяСсылка - владелец файла. // НомерВерсии - Число - номер версии. // ВРегистреНаЧтение - Булево - значение ресурса НаЧтение. // ВРегистреКодФайла - число сюда помещается код файла. @@ -2368,13 +2360,8 @@ КонецЦикла; Если ВерсияДругогоАвтора <> Неопределено Тогда - РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле( ФайлИлиВерсия, ВерсияДругогоАвтора, Неопределено, УникальныйИдентификатор); - - ТекстПредупреждения = НСтр("ru = 'Не удалось удалить файл, т.к. в него вносили изменения другие авторы. - |Были удалены только Ваши версии файла.'"); - Иначе Результат.Файлы.Добавить(ФайлИлиВерсия); УдалитьДанные(ФайлИлиВерсия, УникальныйИдентификатор); @@ -2912,13 +2899,9 @@ Функция ПоместитьФайлыВоВременноеХранилище(Параметры) Экспорт Результат = Новый Массив; - ИмяВременнойПапки = ПолучитьИмяВременногоФайла(); - СоздатьКаталог(ИмяВременнойПапки); - Для Каждого ФайлВложение Из Параметры.МассивФайлов Цикл РаботаСФайламиСлужебный.СформироватьСписокФайловДляОтправкиПоПочте(Результат, ФайлВложение, Параметры.ИдентификаторФормы); КонецЦикла; - Возврат Результат; КонецФункции diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl index 323650699..c1dbb4fb7 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl @@ -6,11 +6,6 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Работа с файлами". -// -//////////////////////////////////////////////////////////////////////////////// - #Область СлужебныйПрограммныйИнтерфейс // Возвращает путь к рабочему каталогу пользователя. @@ -317,7 +312,7 @@ // Параметры: // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. -// ПредставлениеКоманды - Строка - необязательный. Имя команды, для выполнения которой необходимо расширение. +// ПредставлениеКоманды - Строка - имя команды, для выполнения которой необходимо расширение. // Процедура ПоказатьПредупреждениеОНеобходимостиРасширенияРаботыСФайлами(ОбработчикРезультата, ПредставлениеКоманды = "") Экспорт Если Не КлиентПоддерживаетСинхронныеВызовы() Тогда @@ -822,7 +817,7 @@ // Параметры: // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. -// ДанныеФайла - структура с данными файла. +// ДанныеФайла - Структура // УникальныйИдентификатор - УникальныйИдентификатор формы. // Процедура ОткрытьВерсиюФайла(ОбработчикРезультата, ДанныеФайла, УникальныйИдентификатор = Неопределено) Экспорт @@ -1120,7 +1115,8 @@ КонецПроцедуры // Проверяет свойства файла в рабочем каталоге и в хранилище файлов, -// если требуется уточняет у пользователя и возвращает действие. +// если требуется уточняет у пользователя и возвращает одно из действий: +// "ОткрытьСуществующий", "ВзятьИзХранилищаИОткрыть", "Отменить". // // Параметры: // ОбработчикРезультата - ОписаниеОповещения @@ -1132,10 +1128,6 @@ // ДатаМодификацииУниверсальная - Дата. // ВРабочемКаталогеНаЧтение - Булево. // -// Возвращаемое значение: -// Строка - возможные строки: -// "ОткрытьСуществующий", "ВзятьИзХранилищаИОткрыть", "Отменить". -// Процедура ДействиеПриОткрытииФайлаВРабочемКаталоге(ОбработчикРезультата, ИмяФайлаСПутем, ДанныеФайла) Если ДанныеФайла.Свойство("ПутьОбновленияИзФайлаНаДиске") Тогда @@ -1577,7 +1569,7 @@ // Параметры: // ОбработчикРезультата - ОписаниеОповещения - процедура, в которую необходимо передать управление при завершении. // Параметры вызываемой процедуры: -// ПрисоединенныйФайл - Ссылка, Неопределено - ссылка на добавленный файл, либо +// ПрисоединенныйФайл - ЛюбаяСсылка, Неопределено - ссылка на добавленный файл, либо // Неопределено, если файл не был помещен; // ДополнительныеПараметры - Произвольный - значение, которое было указано при создании // объекта оповещения. @@ -1732,7 +1724,7 @@ // Освобождает файл без обновления. // // Параметры: -// ДанныеФайла - структура с данными файла. +// ДанныеФайла - Структура // УникальныйИдентификатор - УникальныйИдентификатор управляемой формы. // Процедура ОсвободитьФайлБезВопроса(ДанныеФайла, УникальныйИдентификатор = Неопределено) @@ -3136,12 +3128,9 @@ // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. // ОбъектСсылка - СправочникСсылка.Файлы - файл. -// УникальныйИдентификатор - УникальныйИдентификатор формы. +// УникальныйИдентификатор - УникальныйИдентификатор - идентификатор формы. // РабочийКаталогВладельца - Строка - рабочий каталог владельца. // -// Возвращаемое значение: -// Булево - Истина, если операция выполнена успешно. -// Процедура РедактироватьФайлПоСсылке(ОбработчикРезультата, ОбъектСсылка, УникальныйИдентификатор = Неопределено, @@ -3261,7 +3250,7 @@ // Параметры: // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. -// ДанныеФайла - структура с данными файла. +// ДанныеФайла - Структура // УникальныйИдентификатор - УникальныйИдентификатор формы. // Процедура РедактироватьФайл(ОбработчикРезультата, ДанныеФайла, УникальныйИдентификатор = Неопределено) Экспорт @@ -4220,11 +4209,7 @@ // Параметры: // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. -// ДанныеФайла - структура с данными файла. -// -// Возвращаемое значение: -// * Неопределено - если файл не занят. -// * Структура с данными файла - если файл занят. +// ДанныеФайла - Структура // Процедура ЗанятьФайл(ОбработчикРезультата, ДанныеФайла, УникальныйИдентификатор) @@ -4379,15 +4364,10 @@ // Параметры: // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. -// ДанныеФайла - структура с данными файла. +// ДанныеФайла - Структура // ПолноеИмяФайла - Строка. // НаЧтение - Булево - Ложь - для чтения, Истина для редактирования. -// ИдентификаторФормы - УникальныйИдентификатор формы. -// -// Возвращаемое значение: -// Структура: -// * ФайлПолучен - Булево - успешно ли выполнена операция. -// * ПолноеИмяФайла - Строка - полное имя файла. +// ИдентификаторФормы - УникальныйИдентификатор - идентификатор формы. // Процедура ПолучитьФайлВерсииВЛокальныйКэшФайлов( ОбработчикРезультата, @@ -4506,20 +4486,14 @@ //////////////////////////////////////////////////////////////////////////////// // Получение файла из программы на диск. -// Получить Файл из информационной базы на локальный диск и возвращает путь -// к этому файлу в параметре. +// Получить Файл из информационной базы на локальный диск и возвращает путь к этому файлу. // // Параметры: // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. -// ДанныеФайла - структура с данными файла. +// ДанныеФайла - Структура // ПолноеИмяФайла - Строка - здесь возвращается полное имя файла. -// ИдентификаторФормы - уникальный идентификатор формы. -// -// Возвращаемое значение: -// Структура - результат получения файла: -// * ФайлПолучен - Булево - успешно ли выполнена операция. -// * ПолноеИмяФайла - Строка - полное имя файла. +// ИдентификаторФормы - УникальныйИдентификатор - идентификатор формы. // Процедура ПолучитьФайлВерсииВРабочийКаталог( ОбработчикРезультата, @@ -4986,10 +4960,6 @@ // Ссылка - СправочникСсылка.Файлы - файл. // УдалитьВРабочемКаталоге - Булево - удалить даже в рабочем каталоге. // -// Возвращаемое значение: -// Структура - результат удаления файла с диска и регистра сведений: -// * Успех - Булево - успешно ли выполнена операция. -// Процедура УдалитьФайлИзРабочегоКаталога(ОбработчикРезультата, Ссылка, УдалитьВРабочемКаталоге = Ложь) ПараметрыВыполнения = Новый Структура; @@ -5235,16 +5205,11 @@ // Параметры: // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. -// ДанныеФайла - структура с данными файла. +// ДанныеФайла - Структура // ПолноеИмяФайлаВРабочемКаталоге - Строка - здесь возвращается полное имя файла. // ДатаФайлаВБазе - Дата - дата файла в базе. // НаЧтение - Булево - файл помещен на чтение. -// ИдентификаторФормы - уникальный идентификатор формы. -// -// Возвращаемое значение: -// Структура: -// * ФайлПолучен - Булево - успешно ли выполнена операция. -// * ПолноеИмяФайла - Строка - полное имя файла. +// ИдентификаторФормы - УникальныйИдентификатор - идентификатор формы. // Процедура ПолучитьССервераИЗарегистрироватьВЛокальномКэшеФайлов(ОбработчикРезультата, ДанныеФайла, @@ -5618,15 +5583,10 @@ // Параметры: // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. -// ДанныеФайла - структура с данными файла. +// ДанныеФайла - Структура // ПолноеИмяФайла - строка (возвращаемое значение). // НаЧтение - Булево - Ложь - для чтения, Истина для редактирования. -// ИдентификаторФормы - УникальныйИдентификатор формы. -// -// Возвращаемое значение: -// Структура: -// * ФайлПолучен - Булево - успешно ли выполнена операция. -// * ПолноеИмяФайла - Строка - полное имя файла. +// ИдентификаторФормы - УникальныйИдентификатор - идентификатор формы. // Процедура ПолучитьФайлВерсииВРабочийКаталогПапки(ОбработчикРезультата, ДанныеФайла, @@ -5692,7 +5652,6 @@ НайденныеСвойства = РаботаСФайламиСлужебныйВызовСервера.НайтиВРегистреПоПути(ПараметрыВыполнения.ПолноеИмяФайла); ПараметрыВыполнения.Вставить("ФайлЕстьВРегистре", НайденныеСвойства.ФайлЕстьВРегистре); Версия = НайденныеСвойства.Файл; - ДатаПомещения = ?(ПараметрыВыполнения.ФайлЕстьВРегистре, НайденныеСвойства.ДатаПомещения, Дата(1, 1, 1, 1, 1, 1)); Владелец = НайденныеСвойства.Владелец; ВРегистреНаЧтение = НайденныеСвойства.ВРегистреНаЧтение; ВРегистреПапка = НайденныеСвойства.ВРегистреПапка; @@ -5826,26 +5785,15 @@ // Параметры: // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. -// ДанныеФайла - структура с данными файла. +// ДанныеФайла - Структура // ПолноеИмяФайлаВРабочемКаталоге - Строка - здесь возвращается полное имя файла. // ДатаФайлаВБазе - Дата - дата файла в базе. // НаЧтение - Булево - файл помещен на чтение. -// ИдентификаторФормы - уникальный идентификатор формы. +// ИдентификаторФормы - УникальныйИдентификатор - идентификатор формы. // ДополнительныеПараметры - Произвольный - дополнительные параметры обработки. // -// Возвращаемое значение: -// Структура: -// * ФайлПолучен - Булево - успешно ли выполнена операция. -// * ПолноеИмяФайла - Строка - полное имя файла. -// -Процедура ПолучитьССервераИЗарегистрироватьВРабочемКаталогеПапки( - ОбработчикРезультата, - ДанныеФайла, - ПолноеИмяФайлаВРабочемКаталогеПапки, - ДатаФайлаВБазе, - НаЧтение, - ИдентификаторФормы, - ДополнительныеПараметры) +Процедура ПолучитьССервераИЗарегистрироватьВРабочемКаталогеПапки(ОбработчикРезультата, ДанныеФайла, + ПолноеИмяФайлаВРабочемКаталогеПапки, ДатаФайлаВБазе, НаЧтение, ИдентификаторФормы, ДополнительныеПараметры) ПараметрыВыполнения = Новый Структура; ПараметрыВыполнения.Вставить("ОбработчикРезультата", ОбработчикРезультата); @@ -5959,14 +5907,10 @@ // Параметры: // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. -// ДанныеФайла - структура с данными файла. +// ДанныеФайла - Структура // ПолноеИмяФайла - Строка - полное имя файла. // НормальноеИмяФайла - Строка - имя файла (без пути). // -// Возвращаемое значение: -// Булево - успешно ли выполнена операция: -// * Истина если длина полного имени файла не превышает 260. -// Процедура ПроверитьМаксимальнуюДлинуПолногоПутиВРабочемКаталоге(ОбработчикРезультата, ДанныеФайла, ПолноеИмяФайла, НормальноеИмяФайла) @@ -6107,14 +6051,6 @@ // КаталогИсточника - Строка - прежнее имя каталога. // КаталогПриемника - Строка - новое имя каталога. // -// Возвращаемое значение: -// Структура: -// * ВозниклаОшибка - Булево - Истина когда все файлы скопированы. -// * ИнформацияОбОшибке - ИнформацияОбОшибке - информация об ошибке. -// * ПолноеИмяСбойногоФайла - Строка - полное имя файла, при копировании которого возникла ошибка. -// * СкопированныеФайлыИПапки - Массив - полные имена файлов и папок приемника. -// * ОригинальныеФайлыИПапки - Массив - полные имена файлов и папок источника. -// Процедура СкопироватьСодержимоеКаталога(ОбработчикРезультата, Знач КаталогИсточника, Знач КаталогПриемника) Результат = Новый Структура; @@ -6234,9 +6170,6 @@ // КаталогИсточника - Строка - прежнее имя каталога. // КаталогПриемника - Строка - новое имя каталога. // -// Возвращаемое значение: -// Булево - успешно ли выполнена операция. -// Процедура ПеренестиСодержимоеРабочегоКаталога(ОбработчикРезультата, КаталогИсточника, КаталогПриемника) Экспорт // Новый путь является подмножеством старого. Это запрещено, т.к. может привести к зацикливанию. @@ -6333,15 +6266,12 @@ // Удаление массива путей переданных папок и файлов. // Удаляет все файлы и папки из переданного массива. -// Обход с конца. +// Обход с конца. // // Параметры: // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. -// СкопированныеФайлыИПапки - Массив - (Строка) Массив путей файлов и папок. -// -// Возвращаемое значение: -// Булево - успешно ли выполнена операция. +// СкопированныеФайлыИПапки - Массив из Строка - пути файлов и папок. // Процедура УдалитьСодержимоеКаталога(ОбработчикРезультата, СкопированныеФайлыИПапки) @@ -6408,17 +6338,12 @@ //////////////////////////////////////////////////////////////////////////////// // Импорт файлов с проверкой размера. -// Импорт - с вспомогательными операциями типа проверки предельного размера и впоследствии удаления файлов и показа -// ошибок при импорте только одной папки - вернет на нее ссылку. +// Импорт со вспомогательными операциями (проверка предельного размера, удаление файлов и показ +// ошибок при импорте). // // Параметры: // ПараметрыВыполнения - см. ПараметрыИмпортаФайлов. // -// Возвращаемое значение: -// Неопределено - если импорт не выполнен. -// Структура: -// * ПапкаДляДобавленияТекущая - СправочникСсылка.ПапкиФайлов - папка для добавления. -// Процедура ВыполнитьИмпортФайлов(Знач ПараметрыВыполнения) Экспорт СлужебныеПараметры = ОбщегоНазначенияКлиент.СкопироватьРекурсивно(ПараметрыВыполнения); @@ -6637,16 +6562,13 @@ //////////////////////////////////////////////////////////////////////////////// // Сохранение Файла на диск -// Сохранение на диск Файла +// Сохранение на диск файла. // // Параметры: // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. -// ДанныеФайла - структура с данными файла. -// УникальныйИдентификатор - уникальный идентификатор формы. -// -// Возвращаемое значение: -// Строка - выбранный полный путь файла. +// ДанныеФайла - Структура +// УникальныйИдентификатор - УникальныйИдентификатор - идентификатор формы.. // Процедура СохранитьКак(ОбработчикРезультата, ДанныеФайла, УникальныйИдентификатор) Экспорт @@ -7038,8 +6960,9 @@ //////////////////////////////////////////////////////////////////////////////// // Проверяет размер файлов. -// Проверить Предельный Размер Файлов - вернет Ложь, если есть файлы, превышающие предельный размер, -// и пользователь в диалоге предупреждения о наличии таких файлов выбрал "Отмена". +// Проверить предельный размер файлов. +// Возвращает Ложь, если есть файлы, превышающие предельный размер, +// и пользователь в диалоге предупреждения о наличии таких файлов выбрал "Отмена". // // Параметры: // ОбработчикРезультата - ОписаниеОповещения @@ -7047,14 +6970,9 @@ // ПараметрыПроверки - Структура: // * ВыбранныеФайлы - Массив - массив объектов "Файл". // * Рекурсивно - Булево - рекурсивно обходить подкаталоги. -// * ПсевдоФайловаяСистема - Соответствие - эмуляция файловой системы - для строки (каталога) возвращает массив +// * ПсевдоФайловаяСистема - Соответствие - для строки (каталога) возвращает массив // строк (подкаталоги и файлы). // -// Возвращаемое значение: -// Структура: -// * Успех - Булево - успешно ли выполнена операция. -// * КоличествоСуммарное - Число - количество импортированных файлов. -// Процедура ПроверитьПредельныйРазмерФайлов(ОбработчикРезультата, ПараметрыПроверки) ПараметрыВыполнения = Новый Структура; @@ -7257,9 +7175,9 @@ // Добавляет файлы перетаскиванием в список файлов. // // Параметры: -// ВладелецФайла - Ссылка - владелец файла. +// ВладелецФайла - ЛюбаяСсылка - владелец файла. // ИдентификаторФормы - УникальныйИдентификатор формы. -// МассивИменФайлов - Массив Строк - путей к файлам. +// МассивИменФайлов - Массив из Строка - путей к файлам. // Процедура ДобавитьФайлыПеретаскиванием(Знач ВладелецФайла, Знач ИдентификаторФормы, Знач МассивИменФайлов) Экспорт @@ -7449,7 +7367,7 @@ // Параметры: // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. -// ДанныеФайла - структура с данными файла. +// ДанныеФайла - Структура // УникальныйИдентификатор - УникальныйИдентификатор - формы. // Процедура ОткрытьФайлСОповещением(ОбработчикРезультата, ДанныеФайла, УникальныйИдентификатор = Неопределено, ДляРедактирования = Истина) Экспорт @@ -7654,7 +7572,7 @@ Возврат; КонецЕсли; - ПараметрыВыполнения.Вставить("ВременнаяФорма", ПолучитьФорму("Обработка.РаботаСФайлами.Форма.ФормаВопроса")); + ПараметрыВыполнения.Вставить("ВременнаяФорма", ПолучитьФорму("Обработка.РаботаСФайлами.Форма.ФормаВопроса")); // АПК:65 ИдентификаторФормы = ПараметрыВыполнения.ВременнаяФорма.УникальныйИдентификатор; СтандартныеПодсистемыКлиент.УстановитьХранениеФормы(ПараметрыВыполнения.ВременнаяФорма, Истина); @@ -7752,13 +7670,7 @@ // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. // ДанныеФайла - см. РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла -// УникальныйИдентификатор - УникальныйИдентификатор формы. -// -// Возвращаемое значение: -// Структура: -// * Успех - Булево - успешно ли выполнена операция. -// * МассивДанныхДляЗанесенияВБазу - Массив - массив данных для записи в программу. -// * МассивОтпечатков - Массив - массив отпечатков. +// УникальныйИдентификатор - УникальныйИдентификатор - идентификатор формы. // Процедура Зашифровать(ОбработчикРезультата, ДанныеФайла, УникальныйИдентификатор) Экспорт @@ -7891,20 +7803,15 @@ //////////////////////////////////////////////////////////////////////////////// // Расшифровка файла. -// Расшифрует объект - Файл, Версия. +// Расшифровка файла. // // Параметры: // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. // ФайлСсылка - СправочникСсылка.Файлы - файл. -// УникальныйИдентификатор - уникальный идентификатор формы. +// УникальныйИдентификатор - УникальныйИдентификатор - идентификатор формы. // ДанныеФайла - см. РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла // -// Возвращаемое значение: -// Структура: -// * Успех - Булево - успешно ли выполнена операция. -// * МассивДанныхДляЗанесенияВБазу - массив структур. -// Процедура Расшифровать(ОбработчикРезультата, ФайлСсылка, УникальныйИдентификатор, ДанныеФайла) Экспорт Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда @@ -8649,6 +8556,13 @@ КонецПроцедуры // Продолжение процедуры (см. выше). +// +// Параметры: +// ПараметрыВыполнения - Структура: +// * ВыбранныеФайлы - Массив +// * ПапкаДляДобавленияВВыбранныеФайлы - Файл +// * МассивПапокДляВопросаПапкаУжеСуществует - Массив +// Процедура ИмпортФайловРекурсивноЗадатьСледующийВопрос(ПараметрыВыполнения) ПараметрыВыполнения.ОбработчикРезультата = ОбработчикЗавершения(ПараметрыВыполнения.ОбработчикРезультата); @@ -8925,7 +8839,7 @@ // Перерегистрировать В рабочем каталоге с другим флагом НаЧтение - если там вообще есть такой Файл. // Параметры: -// ДанныеФайла - структура с данными файла. +// ДанныеФайла - Структура // НаЧтение - Булево - файл помещен на чтение. // ВРабочемКаталогеВладельца - Булево - файл в рабочем каталоге владельца (а не в основном рабочем каталоге). // @@ -9183,7 +9097,7 @@ // если нет - сгенерируем - и запишем в регистр сведений. // // Параметры: -// ДанныеФайла - структура с данными файла. +// ДанныеФайла - Структура // // Возвращаемое значение: // Строка - путь файла @@ -9266,7 +9180,7 @@ // Находится ли в рабочем каталоге Файл для данной версии. // Параметры: -// ДанныеФайла - структура с данными файла. +// ДанныеФайла - Структура // // Возвращаемое значение: // Булево - файл находится в рабочем каталоге. @@ -10174,6 +10088,12 @@ КонецПроцедуры // Продолжение процедуры ОбработатьФайл. +// +// Параметры: +// Существует - Булево +// Контекст- Структура: +// * Результат - Структура +// Процедура ОбработатьФайлПослеПроверкиСуществования(Существует, Контекст) Экспорт Контекст.Результат.Вставить("Существует", Существует); @@ -10250,8 +10170,12 @@ // Продолжение процедуры ОбработатьФайл. // // Параметры: -// Контекст - Структура: +// Невидимость - Булево +// Контекст - Структура: // * Файл - Файл +// * СвойстваДляПолучения - Структура: +// ** Размер - Число +// ** ЭтоКаталог - Булево // Процедура ОбработатьФайлПослеПолученияНевидимости(Невидимость, Контекст) Экспорт @@ -10397,9 +10321,9 @@ ИмяПараметра = "СтандартныеПодсистемы.КомпонентаTwain"; Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда - // Вызов метода ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакета не требуется т.к. - // Внешняя компонента подключается из макета и сканирование не доступно в веб-клиенте. - КодВозврата = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаTWAIN", "twain"); + // АПК:472,150-выкл Вызов метода ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакета не требуется, + // т.к. внешняя компонента подключается из макета и сканирование не доступно в веб-клиенте. + КодВозврата = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаTWAIN", "twain"); Если Не КодВозврата Тогда Если Не ПопытатьсяУстановитьКомпоненту Тогда @@ -10407,10 +10331,10 @@ КонецЕсли; УстановитьВнешнююКомпоненту("ОбщийМакет.КомпонентаTWAIN"); - Возврат ПроинициализироватьКомпоненту(Ложь); // Рекурсивно. КонецЕсли; + // АПК:472,150-вкл ПараметрыПриложения.Вставить(ИмяПараметра, Новый("AddIn.twain.AddInNativeExtension")); КонецЕсли; @@ -10435,9 +10359,6 @@ // ОбработчикРезультата - ОписаниеОповещения // - Неопределено - описание процедуры, принимающей результат работы метода. // -// Возвращаемое значение: -// Булево - успешно ли выполнена операция. -// // См. также: // Переменную глобального контекста КомпонентаTwain. // @@ -10452,9 +10373,10 @@ ПараметрыВыполнения.Вставить("ОбработчикРезультата", ОбработчикРезультата); Обработчик = Новый ОписаниеОповещения("УстановитьКомпонентуЗавершение", ЭтотОбъект, ПараметрыВыполнения); - // Вызов метода ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакета не требуется т.к. - // Внешняя компонента подключается из макета и сканирование не доступно в веб-клиенте. + // АПК:472-выкл Вызов метода ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакета не требуется, + // т.к. внешняя компонента подключается из макета и сканирование не доступно в веб-клиенте. НачатьУстановкуВнешнейКомпоненты(Обработчик, "ОбщийМакет.КомпонентаTWAIN"); + // АПК:472-вкл КонецПроцедуры @@ -10842,20 +10764,21 @@ КонецЕсли; Контекст = Новый Структура; - Контекст.Вставить("ФайлИлиВерсия", ФайлИлиВерсия); - Контекст.Вставить("ОбработчикЗавершения", ОбработчикЗавершения); + Контекст.Вставить("ФайлИлиВерсия", ФайлИлиВерсия); + Контекст.Вставить("ОбработчикЗавершения", ОбработчикЗавершения); Контекст.Вставить("УникальныйИдентификатор", УникальныйИдентификатор); - ЭтоВерсияФайла = ТипЗнч(ФайлИлиВерсия) = Тип("СправочникСсылка.ВерсииФайлов"); + Если ТипЗнч(ФайлИлиВерсия) <> Тип("СправочникСсылка.ВерсииФайлов") Тогда + ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Удалить файл %1 без возможности восстановления?'"), + Строка(ФайлИлиВерсия)); + ТекстЗаголовка = НСтр("ru = 'Удаление файла'"); + Иначе + ТекстВопроса = НСтр("ru = 'Удалить версию файла без возможности восстановления?'"); + ТекстЗаголовка = НСтр("ru = 'Удаление версии файла'"); + КонецЕсли; - ТекстВопроса = ?(ЭтоВерсияФайла, - НСтр("ru = 'Удалить версию файла без возможности восстановления?'"), - НСтр("ru = 'Удалить файл без возможности восстановления?'")); - - ТекстЗаголовка = ?(ЭтоВерсияФайла, НСтр("ru = 'Удаление версии файла'"), НСтр("ru = 'Удаление файла'")); - ПоказатьВопрос(Новый ОписаниеОповещения("УдалитьДанныеПослеОтветаНаВопрос", ЭтотОбъект, Контекст), - ТекстВопроса, РежимДиалогаВопрос.ДаНет, 20, КодВозвратаДиалога.Нет, ТекстЗаголовка, КодВозвратаДиалога.Нет); + ТекстВопроса, РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Нет, ТекстЗаголовка, КодВозвратаДиалога.Нет); КонецПроцедуры diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентПовтИсп/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентПовтИсп/Module.bsl index 0f14ab9f9..699034d48 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиентПовтИсп/Module.bsl @@ -6,11 +6,6 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Работа с файлами". -// -//////////////////////////////////////////////////////////////////////////////// - #Область СлужебныеПроцедурыИФункции // Проверяет установлена ли компонента сканирования и есть ли хоть один сканер. diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйПовтИсп/Module.bsl index 46a6dfe6b..ab8b94c48 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйПовтИсп/Module.bsl @@ -6,11 +6,6 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Файловые функции". -// -//////////////////////////////////////////////////////////////////////////////// - #Область СлужебныеПроцедурыИФункции //////////////////////////////////////////////////////////////////////////////// diff --git a/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl index ab3299b43..8f2198b68 100644 --- a/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl +++ b/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl @@ -8,16 +8,14 @@ #Область ПрограммныйИнтерфейс -// Формирует отчеты и отправляет их согласно настройкам транспорта (Папка, FILE, EMAIL, FTP); +// Формирует отчеты и отправляет их согласно настройкам - в указанную папку файлов, в папку на компьютере, +// по электронной почте или на FTP-ресурс. // // Параметры: // Рассылка - СправочникСсылка.РассылкиОтчетов - выполняемая рассылка отчетов. -// ПараметрыЖурнала - Структура - параметры записи в журнал регистрации, где: -// * ИмяСобытия - Строка - имя события (или группы событий). -// * Метаданные - ОбъектМетаданных - метаданные для привязки события журнала регистрации. -// * Данные - Произвольный - данные для привязки события журнала регистрации. +// ПараметрыЖурнала - см. РассылкаОтчетов.ПараметрыЖурнала. // ДополнительныеНастройки - Структура - настройки, которые переопределяют стандартные параметры рассылки, где: -// * Получатели - Соответствие - набор получателей и их e-mail адресов: +// * Получатели - Соответствие из КлючИЗначение - набор получателей и их e-mail адресов: // ** Ключ - СправочникСсылка - получатель. // ** Значение - Строка - набор e-mail адресов получателя в строке с разделителями. // @@ -25,22 +23,12 @@ // Булево - признак успешного выполнения рассылки. // Функция ВыполнитьРассылкуОтчетов(Рассылка, ПараметрыЖурнала = Неопределено, ДополнительныеНастройки = Неопределено) Экспорт - // Параметры записи в журнал регистрации. - Если ПараметрыЖурнала = Неопределено Тогда - ПараметрыЖурнала = Новый Структура; - КонецЕсли; - - Если Не ПараметрыЖурнала.Свойство("ИмяСобытия") Тогда - ПараметрыЖурнала.Вставить("ИмяСобытия", НСтр("ru = 'Рассылка отчетов. Запуск по требованию'", ОбщегоНазначения.КодОсновногоЯзыка())); - КонецЕсли; - - Если Не ПараметрыЖурнала.Свойство("Данные") Тогда - ПараметрыЖурнала.Вставить("Данные", Рассылка); - КонецЕсли; - - Если Не ПараметрыЖурнала.Свойство("Метаданные") Тогда - ПараметрыЖурнала.Вставить("Метаданные", ПараметрыЖурнала.Данные.Метаданные()); + + ПараметрыЖурналаПоУмолчанию = ПараметрыЖурнала(Рассылка); + Если ПараметрыЖурнала <> Неопределено Тогда + ЗаполнитьЗначенияСвойств(ПараметрыЖурналаПоУмолчанию, ПараметрыЖурнала); КонецЕсли; + ПараметрыЖурнала = ПараметрыЖурналаПоУмолчанию; // Проверка прав доступа Если Не ПравоВывода(ПараметрыЖурнала) Тогда @@ -71,19 +59,6 @@ РегистрыСведений.СостоянияРассылокОтчетов.ЗафиксироватьЗапускРассылки(Рассылка); КонецЕсли; - // Таблица отчетов - ТаблицаОтчетов = Новый ТаблицаЗначений; - ТаблицаОтчетов.Колонки.Добавить("Отчет", Метаданные.Справочники.РассылкиОтчетов.ТабличныеЧасти.Отчеты.Реквизиты.Отчет.Тип); - ТаблицаОтчетов.Колонки.Добавить("ОтправлятьЕслиПустой", Новый ОписаниеТипов("Булево")); - - МассивТиповНастроек = Новый Массив; - МассивТиповНастроек.Добавить(Тип("Неопределено")); - МассивТиповНастроек.Добавить(Тип("ПользовательскиеНастройкиКомпоновкиДанных")); - МассивТиповНастроек.Добавить(Тип("Структура")); - - ТаблицаОтчетов.Колонки.Добавить("Настройки", Новый ОписаниеТипов(МассивТиповНастроек)); - ТаблицаОтчетов.Колонки.Добавить("Форматы", Новый ОписаниеТипов("Массив")); - // Форматы по умолчанию ФорматыПоУмолчанию = Новый Массив; Найденные = Рассылка.ФорматыОтчетов.НайтиСтроки(Новый Структура("Отчет", ПустоеЗначениеОтчета())); @@ -103,6 +78,7 @@ КонецЕсли; // Заполнение таблицы отчетов + ТаблицаОтчетов = ОтчетыДляРассылки(); Для Каждого СтрокаОтчет Из Рассылка.Отчеты Цикл Стр = ТаблицаОтчетов.Добавить(); Стр.Отчет = СтрокаОтчет.Отчет; @@ -132,7 +108,7 @@ КонецЦикла; // Подготовка параметров доставки. - ПараметрыДоставки = СтандартныеПараметрыДоставки(); + ПараметрыДоставки = ПараметрыДоставки(); ПараметрыДоставки.ИспользоватьПапку = Рассылка.ИспользоватьПапку; ПараметрыДоставки.ИспользоватьСетевойКаталог = Рассылка.ИспользоватьСетевойКаталог; ПараметрыДоставки.ИспользоватьFTPРесурс = Рассылка.ИспользоватьFTPРесурс; @@ -239,128 +215,37 @@ КонецФункции -// Выполняет рассылку отчетов без элемента справочника "Рассылки отчетов". +// Выполняет рассылку произвольных отчетов, указанных в параметре Отчеты. // -//////////////////////////////////////////////////////////////////////////////// // Параметры: -// -// Отчеты - ТаблицаЗначений - набор выгружаемых отчетов. Колонки: -// * Отчет - СправочникСсылка.ВариантыОтчетов -// - СправочникСсылка.ДополнительныеОтчетыИОбработки - -// Отчет, который необходимо сформировать. -// * ОтправлятьЕслиПустой - Булево - флаг отправки отчета даже если он пустой. -// * Настройки - настройки, с которыми должен сформироваться отчет, где: -// Дополнительно используется для определения принадлежности отчета к СКД. -// - ПользовательскиеНастройкиКомпоновкиДанных - табличный документ сформируется механизмами СКД. -// - Структура - табличный документ сформируется при помощи метода "Сформировать()", где: -// *** Ключ - Строка - имя реквизита объекта отчета. -// *** Значение - Произвольный - значение реквизита объекта отчета. -// - Неопределено - настройки по умолчанию. Для определения принадлежности к СКД -// будет использован реквизит объекта "СхемаКомпоновкиДанных". -// * Форматы - Массив из ПеречислениеСсылка.ФорматыСохраненияОтчетов - -// Форматы, в которых необходимо сохранить и отправить отчет. -// -// ПараметрыДоставки - Структура - настройки транспорта (способа доставки) отчетов. -// Набор реквизитов может отличаться для разных способов доставки: -// -// Обязательные реквизиты: -// * Автор - СправочникСсылка.Пользователи - автор рассылки. -// * ИспользоватьПапку - Булево - доставлять отчеты в папку подсистемы "Работа с файлами". -// * ИспользоватьСетевойКаталог - Булево - доставлять отчеты в папку файловой системы. -// * ИспользоватьFTPРесурс - Булево - доставлять отчеты на FTP. -// * ИспользоватьЭлектроннуюПочту - Булево - доставлять отчеты по электронной почте. -// -// Обязательные реквизиты когда { ИспользоватьПапку = Истина }: -// * Папка - СправочникСсылка.ПапкиФайлов - папка подсистемы "Работа с файлами". -// -// Обязательные реквизиты когда { ИспользоватьСетевойКаталог = Истина }: -// * СетевойКаталогWindows - Строка - каталог файловой системы (локальный на сервере или сетевой). -// * СетевойКаталогLinux - Строка - каталог файловой системы (локальный на сервере или сетевой). -// -// Обязательные реквизиты когда { ИспользоватьFTPРесурс = Истина }: -// * Сервер - Строка - имя FTP сервера. -// * Порт - Число - порт FTP сервера. -// * Логин - Строка - имя пользователя FTP сервера. -// * Пароль - Строка - пароль пользователя FTP сервера. -// * Каталог - Строка - путь к каталогу на FTP сервере. -// * ПассивноеСоединение - Булево - использовать пассивное соединение. -// -// Обязательные реквизиты когда { ИспользоватьЭлектроннуюПочту = Истина }: -// * УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - -// Учетная запись для отправки почтового сообщения. -// * Получатели - Соответствие - набор получателей и их e-mail адресов: -// ** Ключ - СправочникСсылка - получатель. -// ** Значение - Строка - набор e-mail адресов получателя в строке с разделителями. -// -// Необязательные реквизиты: -// * Архивировать - Булево - архивировать все файлы сформированных отчетов в один архив. -// Архивация может потребоваться, например, при рассылке графиков в формате html. -// * ИмяАрхива - Строка - имя архива. -// * ПарольАрхива - Строка - пароль архива. -// * ТранслитерироватьИменаФайлов - Булево - признак необходимости транслитерации имен файлов отчетов рассылки. -// -// Необязательные реквизиты когда { ИспользоватьЭлектроннуюПочту = Истина }: -// * Персонализирована - Булево - рассылка персонализирована получателями. -// Значение по умолчанию Ложь. -// Если установить значение Истина, то каждый получатель получит отчет с отбором по нему. -// Для этого в отчетах следует установить отбор "[Получатель]" по реквизиту, совпадающем с типом получателя. -// Применимо только только при доставке по почте, -// поэтому когда устанавливается в Истина, то другие способы доставки отключаются: -// { ИспользоватьПапку = Ложь } -// { ИспользоватьСетевойКаталог = Ложь } -// { ИспользоватьFTPРесурс = Ложь } -// И соответствующая им возможность уведомления: -// { ТолькоУведомить = Ложь } -// * ТолькоУведомить - Булево - Ложь - отправлять только уведомления (не присоединять сформированные отчеты). -// * СкрытыеКопии - Булево - Ложь - если "Истина", то при отправке вместо "Кому" заполняется "СкрытыеКопии". -// * ШаблонТемы - Строка - тема письма. -// * ШаблонТекста - Строка - тело письма. -// * ПараметрыПисьма - Структура - параметры сообщения, -// которые будут переданы подсистеме "РаботаСПочтовымиСообщениями" напрямую. -// Их обработку можно увидеть в модуле "РаботаСПочтовымиСообщениямиСлужебный", процедура "ОтправитьСообщение". -// Подсистемой "РассылкаОтчетов" могут использоваться: -// ** ТипТекста - ТипТекстаПочтовогоСообщения -// - Строка -// - ПеречислениеСсылка.ТипыТекстовЭлектронныхПисем - -// Тип текста письма. -// ** Вложения - Соответствие: -// *** Ключ - Строка - наименование. -// *** Значение - данные картинки. -// - Строка - адрес во временном хранилище, по которому размещена картинка. -// - ДвоичныеДанные - двоичные данные картинки. -// - Картинка - данные картинки. -// ** АдресОтвета - Строка - e-mail адрес ответа. -// +// Отчеты - см. РассылкаОтчетов.ОтчетыДляРассылки. +// ПараметрыДоставки - см. РассылкаОтчетов.ПараметрыДоставки. // НаименованиеРассылки - Строка - выводится в тему и сообщение, а также для вывода ошибок. -// -// ПараметрыЖурнала - Структура - параметры записи в журнал регистрации: -// * ИмяСобытия - Строка - имя события (или группы событий). -// * Метаданные - ОбъектМетаданных - метаданные для привязки события журнала регистрации. -// * Данные - Произвольный - данные для привязки события журнала регистрации. +// ПараметрыЖурнала - см. РассылкаОтчетов.ПараметрыЖурнала. // // Возвращаемое значение: // Булево - признак успешного выполнения рассылки. // Функция ВыполнитьРассылку(Отчеты, ПараметрыДоставки, НаименованиеРассылки = "", ПараметрыЖурнала = Неопределено) Экспорт - РассылкаВыполнена = Ложь; - УточненныеПараметрыДоставки = СтандартныеПараметрыДоставки(); - ЗаполнитьЗначенияСвойств(УточненныеПараметрыДоставки, ПараметрыДоставки); + ПараметрыДоставкиПоУмолчанию = ПараметрыДоставки(); + ЗаполнитьЗначенияСвойств(ПараметрыДоставкиПоУмолчанию, ПараметрыДоставки); + ПараметрыДоставки = ПараметрыДоставкиПоУмолчанию; // Добавление дерева сформированных отчетов - табличных документов и отчетов, сохраненных в форматы (файлов). ДеревоОтчетов = СоздатьДеревоОтчетов(); // Заполнение параметрами по умолчанию и проверка на заполненность ключевых параметров доставки. - Если Не ПроверитьИДозаполнитьПараметрыВыполнения(Отчеты, УточненныеПараметрыДоставки, НаименованиеРассылки, ПараметрыЖурнала) Тогда + Если Не ПроверитьИДозаполнитьПараметрыВыполнения(Отчеты, ПараметрыДоставки, НаименованиеРассылки, ПараметрыЖурнала) Тогда Возврат Ложь; КонецЕсли; // Строка дерева общих (не персонализированных по получателям) отчетов. - УточненныеПараметрыДоставки.СтрокаОбщихОтчетов = ОпределитьСтрокуДереваДляПолучателя(ДеревоОтчетов, Неопределено, УточненныеПараметрыДоставки); + ПараметрыДоставки.СтрокаОбщихОтчетов = ОпределитьСтрокуДереваДляПолучателя(ДеревоОтчетов, Неопределено, ПараметрыДоставки); ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Инициализирована рассылка ''%1'', автор: ''%2'''"), - НаименованиеРассылки, УточненныеПараметрыДоставки.Автор); + НаименованиеРассылки, ПараметрыДоставки.Автор); ЗаписьЖурнала(ПараметрыЖурнала,, ТекстСообщения); @@ -381,11 +266,11 @@ // Инициализация отчета. ПараметрыОтчета = Новый Структура("Отчет, Настройки, Форматы, ОтправлятьЕслиПустой"); ЗаполнитьЗначенияСвойств(ПараметрыОтчета, СтрокаОтчет); - Если Не ИнициализироватьОтчет(ПараметрыЖурнала, ПараметрыОтчета, УточненныеПараметрыДоставки.Персонализирована) Тогда + Если Не ИнициализироватьОтчет(ПараметрыЖурнала, ПараметрыОтчета, ПараметрыДоставки.Персонализирована) Тогда Продолжить; КонецЕсли; - Если УточненныеПараметрыДоставки.Персонализирована И НЕ ПараметрыОтчета.Персонализирован Тогда + Если ПараметрыДоставки.Персонализирована И НЕ ПараметрыОтчета.Персонализирован Тогда ПараметрыОтчета.Ошибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Отчет ''%1'' не может сформирован, так как в его настройках не указан отбор по получателю рассылки.'"), ПредставлениеОтчета); @@ -398,12 +283,12 @@ Попытка Если ПараметрыОтчета.Персонализирован Тогда // В разрезе получателей - Для Каждого КлючИЗначение Из УточненныеПараметрыДоставки.Получатели Цикл + Для Каждого КлючИЗначение Из ПараметрыДоставки.Получатели Цикл СформироватьИСохранитьОтчет( ПараметрыЖурнала, ПараметрыОтчета, ДеревоОтчетов, - УточненныеПараметрыДоставки, + ПараметрыДоставки, КлючИЗначение.Ключ); КонецЦикла; Иначе @@ -412,7 +297,7 @@ ПараметрыЖурнала, ПараметрыОтчета, ДеревоОтчетов, - УточненныеПараметрыДоставки, + ПараметрыДоставки, Неопределено); КонецЕсли; @@ -436,16 +321,18 @@ УровеньЖурналаРегистрации.Предупреждение, НСтр("ru = 'Рассылка отчетов не выполнена, так как отчеты пустые или не сформированы из-за ошибок.'")); - ФайловаяСистема.УдалитьВременныйКаталог(УточненныеПараметрыДоставки.КаталогВременныхФайлов); + ФайловаяСистема.УдалитьВременныйКаталог(ПараметрыДоставки.КаталогВременныхФайлов); Возврат Ложь; КонецЕсли; + РассылкаВыполнена = Ложь; + // Общие отчеты. - ОбщиеВложения = УточненныеПараметрыДоставки.СтрокаОбщихОтчетов.Строки.НайтиСтроки(Новый Структура("Уровень", 3), Истина); + ОбщиеВложения = ПараметрыДоставки.СтрокаОбщихОтчетов.Строки.НайтиСтроки(Новый Структура("Уровень", 3), Истина); // Отправка личных отчетов (персонализированных). Для Каждого СтрокаПолучатель Из ДеревоОтчетов.Строки Цикл - Если СтрокаПолучатель = УточненныеПараметрыДоставки.СтрокаОбщихОтчетов Тогда + Если СтрокаПолучатель = ПараметрыДоставки.СтрокаОбщихОтчетов Тогда Продолжить; // Пропустить строку дерева общих отчетов. КонецЕсли; @@ -461,18 +348,18 @@ ВложенияПолучателя = ОбъединитьМассивы(ОбщиеВложения, ЛичныеВложения); // Формирование представления отчетов. - СформироватьПредставлениеОтчетовДляПолучателя(УточненныеПараметрыДоставки, СтрокаПолучатель); + СформироватьПредставлениеОтчетовДляПолучателя(ПараметрыДоставки, СтрокаПолучатель); // Архивация вложений. - АрхивацияВложений(ВложенияПолучателя, УточненныеПараметрыДоставки, СтрокаПолучатель.Значение); + АрхивацияВложений(ВложенияПолучателя, ПараметрыДоставки, СтрокаПолучатель.Значение); ПредставлениеПолучателя = Строка(СтрокаПолучатель.Ключ); // Доставка. Попытка - ОтправитьОтчетыПолучателю(ВложенияПолучателя, УточненныеПараметрыДоставки, СтрокаПолучатель); + ОтправитьОтчетыПолучателю(ВложенияПолучателя, ПараметрыДоставки, СтрокаПолучатель); РассылкаВыполнена = Истина; - УточненныеПараметрыДоставки.ВыполненаПоЭлектроннойПочте = Истина; + ПараметрыДоставки.ВыполненаПоЭлектроннойПочте = Истина; Исключение ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось отправить отчеты получателю ''%1'':'"), ПредставлениеПолучателя); @@ -481,20 +368,20 @@ КонецПопытки; Если РассылкаВыполнена Тогда - УточненныеПараметрыДоставки.Получатели.Удалить(СтрокаПолучатель.Ключ); + ПараметрыДоставки.Получатели.Удалить(СтрокаПолучатель.Ключ); КонецЕсли; КонецЦикла; // Отправка общих отчетов. Если ОбщиеВложения.Количество() > 0 Тогда // Представление отчетов. - СформироватьПредставлениеОтчетовДляПолучателя(УточненныеПараметрыДоставки, СтрокаПолучатель); + СформироватьПредставлениеОтчетовДляПолучателя(ПараметрыДоставки, СтрокаПолучатель); // Архивация вложений. - АрхивацияВложений(ОбщиеВложения, УточненныеПараметрыДоставки, УточненныеПараметрыДоставки.КаталогВременныхФайлов); + АрхивацияВложений(ОбщиеВложения, ПараметрыДоставки, ПараметрыДоставки.КаталогВременныхФайлов); // Доставка. - Если ВыполнитьДоставку(ПараметрыЖурнала, УточненныеПараметрыДоставки, ОбщиеВложения) Тогда + Если ВыполнитьДоставку(ПараметрыЖурнала, ПараметрыДоставки, ОбщиеВложения) Тогда РассылкаВыполнена = Истина; КонецЕсли; КонецЕсли; @@ -505,29 +392,222 @@ ЗаписьЖурнала(ПараметрыЖурнала, , НСтр("ru = 'Рассылка не выполнена'")); КонецЕсли; - ФайловаяСистема.УдалитьВременныйКаталог(УточненныеПараметрыДоставки.КаталогВременныхФайлов); + ФайловаяСистема.УдалитьВременныйКаталог(ПараметрыДоставки.КаталогВременныхФайлов); // Результат. Если ПараметрыЖурнала.Свойство("БылиОшибки") Тогда - УточненныеПараметрыДоставки.БылиОшибки = ПараметрыЖурнала.БылиОшибки; + ПараметрыДоставки.БылиОшибки = ПараметрыЖурнала.БылиОшибки; КонецЕсли; Если ПараметрыЖурнала.Свойство("БылиПредупреждения") Тогда - УточненныеПараметрыДоставки.БылиПредупреждения = ПараметрыЖурнала.БылиПредупреждения; + ПараметрыДоставки.БылиПредупреждения = ПараметрыЖурнала.БылиПредупреждения; КонецЕсли; Возврат РассылкаВыполнена; КонецФункции -// Для вызова из модулей "РассылкаОтчетовПереопределяемый" и "РассылкаОтчетовПовтИсп". -// Добавляет формат (в случае его отсутствия) и устанавливает его параметры (если переданы). +// Конструктор для значения параметра ПараметрыЖурнала функций ВыполнитьРассылкуОтчетов и ВыполнитьРассылку. +// +// Параметры: +// Рассылка - СправочникСсылка.РассылкиОтчетов - выполняемая рассылка отчетов. +// +// Возвращаемое значение: +// Структура - параметры записи в журнал регистрации, где: +// * ИмяСобытия - Строка - имя события (или группы событий). +// * Метаданные - Массив из ОбъектМетаданных, Неопределено - метаданные для привязки события журнала регистрации. +// * Данные - Произвольный - данные для привязки события журнала регистрации. +// +Функция ПараметрыЖурнала(Рассылка = Неопределено) Экспорт + + ПараметрыЖурнала = Новый Структура; + ПараметрыЖурнала.Вставить("ИмяСобытия", НСтр("ru = 'Рассылка отчетов. Запуск по требованию'", ОбщегоНазначения.КодОсновногоЯзыка())); + ПараметрыЖурнала.Вставить("Данные", Рассылка); + ПараметрыЖурнала.Вставить("Метаданные", ?(Рассылка <> Неопределено, Рассылка.Метаданные(), Неопределено)); + ПараметрыЖурнала.Вставить("МассивОшибок", Неопределено); // служебное свойство + Возврат ПараметрыЖурнала; + +КонецФункции + +// Конструктор для значения параметра Отчеты функции ВыполнитьРассылку. +// +// Возвращаемое значение: +// ТаблицаЗначений - набор выгружаемых отчетов. Колонки: +// * Отчет - СправочникСсылка.ВариантыОтчетов +// - СправочникСсылка.ДополнительныеОтчетыИОбработки - отчет, который необходимо сформировать. +// * ОтправлятьЕслиПустой - Булево - отправлять отчет, даже если он пустой. +// * Настройки - ПользовательскиеНастройкиКомпоновкиДанных - табличный документ сформируется механизмами СКД. +// - Структура - табличный документ сформируется при помощи метода Сформировать, где: +// ** Ключ - Строка - имя реквизита объекта отчета. +// ** Значение - Произвольный - значение реквизита объекта отчета. +// - Неопределено - настройки по умолчанию. +// Примечание. Настройки, с которыми должен сформироваться отчет. +// * Форматы - Массив из ПеречислениеСсылка.ФорматыСохраненияОтчетов - форматы, в которых необходимо сохранить и +// отправить отчет. +// +Функция ОтчетыДляРассылки() Экспорт + + ТаблицаОтчетов = Новый ТаблицаЗначений; + ТаблицаОтчетов = Новый ТаблицаЗначений; + ТаблицаОтчетов.Колонки.Добавить("Отчет", Метаданные.Справочники.РассылкиОтчетов.ТабличныеЧасти.Отчеты.Реквизиты.Отчет.Тип); + ТаблицаОтчетов.Колонки.Добавить("ОтправлятьЕслиПустой", Новый ОписаниеТипов("Булево")); + + МассивТиповНастроек = Новый Массив; + МассивТиповНастроек.Добавить(Тип("Неопределено")); + МассивТиповНастроек.Добавить(Тип("ПользовательскиеНастройкиКомпоновкиДанных")); + МассивТиповНастроек.Добавить(Тип("Структура")); + + ТаблицаОтчетов.Колонки.Добавить("Настройки", Новый ОписаниеТипов(МассивТиповНастроек)); + ТаблицаОтчетов.Колонки.Добавить("Форматы", Новый ОписаниеТипов("Массив")); + Возврат ТаблицаОтчетов; + +КонецФункции + +// Конструктор для значения параметра ПараметрыДоставки функции ВыполнитьРассылку. +// +// Возвращаемое значение: +// Структура - настройки способа доставки отчетов. Состав свойств может отличаться для разных способов доставки. +// Общие свойства: +// * Автор - СправочникСсылка.Пользователи - автор рассылки. +// * ИспользоватьПапку - Булево - доставлять отчеты в папку подсистемы "Работа с файлами". +// * ИспользоватьСетевойКаталог - Булево - доставлять отчеты в папку файловой системы. +// * ИспользоватьFTPРесурс - Булево - доставлять отчеты на FTP. +// * ИспользоватьЭлектроннуюПочту - Булево - доставлять отчеты по электронной почте. +// +// Свойства, когда ИспользоватьПапку = Истина: +// * Папка - СправочникСсылка.ПапкиФайлов - папка подсистемы "Работа с файлами". +// +// Свойства, когда ИспользоватьСетевойКаталог = Истина: +// * СетевойКаталогWindows - Строка - каталог файловой системы (локальный на сервере или сетевой). +// * СетевойКаталогLinux - Строка - каталог файловой системы (локальный на сервере или сетевой). +// +// Свойства, когда ИспользоватьFTPРесурс = Истина: +// * Сервер - Строка - имя FTP сервера. +// * Порт - Число - порт FTP сервера. +// * Логин - Строка - имя пользователя FTP сервера. +// * Пароль - Строка - пароль пользователя FTP сервера. +// * Каталог - Строка - путь к каталогу на FTP сервере. +// * ПассивноеСоединение - Булево - использовать пассивное соединение. +// +// Свойства, когда ИспользоватьЭлектроннуюПочту = Истина: +// * УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - для отправки почтового сообщения. +// * Получатели - Соответствие из КлючИЗначение - набор получателей и их e-mail адресов: +// ** Ключ - СправочникСсылка - получатель. +// ** Значение - Строка - email-адреса получателя, разделенные запятыми. +// +// Дополнительные свойства: +// * Архивировать - Булево - архивировать все файлы сформированных отчетов в один архив. +// Архивация может потребоваться, например, при рассылке графиков в формате html. +// * ИмяАрхива - Строка - имя архива. +// * ПарольАрхива - Строка - пароль архива. +// * ТранслитерироватьИменаФайлов - Булево - признак необходимости транслитерации имен файлов отчетов рассылки. +// +// Необязательные свойства, когда ИспользоватьЭлектроннуюПочту = Истина: +// * Персонализирована - Булево - рассылка персонализирована получателями. +// Значение по умолчанию Ложь. +// Если установить значение Истина, то каждый получатель получит отчет с отбором по нему. +// Для этого в отчетах следует установить отбор "[Получатель]" по реквизиту, совпадающем с типом получателя. +// Применимо только только при доставке по почте, +// поэтому когда устанавливается в Истина, то другие способы доставки отключаются. +// * ТолькоУведомить - Булево - Ложь - отправлять только уведомления (не присоединять сформированные отчеты). +// * СкрытыеКопии - Булево - Ложь - если Истина, то при отправке вместо "Кому" заполняется "СкрытыеКопии". +// * ШаблонТемы - Строка - тема письма. +// * ШаблонТекста - Строка - тело письма. +// * ПараметрыФорматов - Соответствие из КлючИЗначение: +// ** Ключ - ПеречислениеСсылка.ФорматыСохраненияОтчетов +// ** Значение - Структура: +// *** Расширение - Строка +// *** ТипФайла - ТипФайлаТабличногоДокумента +// *** Имя - Строка +// * ПараметрыПисьма - Структура - параметры сообщения, которые будут переданы подсистеме +// РаботаСПочтовымиСообщениями напрямую. Их обработку см. в процедуре +// РаботаСПочтовымиСообщениямиСлужебный.ОтправитьСообщение. +// Подсистемой "РассылкаОтчетов" могут использоваться: +// ** ТипТекста - ТипТекстаПочтовогоСообщения +// - Строка +// - ПеречислениеСсылка.ТипыТекстовЭлектронныхПисем - тип текста письма. +// ** Вложения - Соответствие из КлючИЗначение: +// *** Ключ - Строка - наименование. +// *** Значение - Строка - адрес во временном хранилище, по которому размещена картинка. +// - ДвоичныеДанные - двоичные данные картинки. +// - Картинка - данные картинки. +// ** АдресОтвета - Строка - email-адрес ответа. +// +Функция ПараметрыДоставки() Экспорт + + ПараметрыДоставки = Новый Структура; + ПараметрыДоставки.Вставить("ДатаВыполнения", ТекущаяДатаСеанса()); + ПараметрыДоставки.Вставить("Соединение", Неопределено); + ПараметрыДоставки.Вставить("ЗапускЗафиксирован", Истина); + ПараметрыДоставки.Вставить("Автор", Пользователи.ТекущийПользователь()); + ПараметрыДоставки.Вставить("ПараметрыПисьма", Новый Структура); + + ПараметрыДоставки.Вставить("НастройкиПолучателей", Новый Соответствие); + ПараметрыДоставки.Вставить("Получатели", Неопределено); + ПараметрыДоставки.Вставить("УчетнаяЗапись", Неопределено); + ПараметрыДоставки.Вставить("Рассылка", ""); + + ПараметрыДоставки.Вставить("ПисьмоВФорматеHTML", Ложь); + ПараметрыДоставки.Вставить("Персонализирована", Ложь); + ПараметрыДоставки.Вставить("ТранслитерироватьИменаФайлов", Ложь); + ПараметрыДоставки.Вставить("ТолькоУведомить", Ложь); + ПараметрыДоставки.Вставить("СкрытыеКопии", Ложь); + + ПараметрыДоставки.Вставить("ИспользоватьЭлектроннуюПочту", Ложь); + ПараметрыДоставки.Вставить("ИспользоватьПапку", Ложь); + ПараметрыДоставки.Вставить("ИспользоватьСетевойКаталог", Ложь); + ПараметрыДоставки.Вставить("ИспользоватьFTPРесурс", Ложь); + + ПараметрыДоставки.Вставить("Каталог", Неопределено); + ПараметрыДоставки.Вставить("СетевойКаталогWindows", Неопределено); + ПараметрыДоставки.Вставить("СетевойКаталогLinux", Неопределено); + ПараметрыДоставки.Вставить("КаталогВременныхФайлов", ФайловаяСистема.СоздатьВременныйКаталог("RP")); + ПараметрыДоставки.Вставить("ВключатьДатуВИмяФайла", Ложь); + + ПараметрыДоставки.Вставить("Сервер", Неопределено); + ПараметрыДоставки.Вставить("Порт", Неопределено); + ПараметрыДоставки.Вставить("ПассивноеСоединение", Ложь); + ПараметрыДоставки.Вставить("Логин", Неопределено); + ПараметрыДоставки.Вставить("Пароль", Неопределено); + + ПараметрыДоставки.Вставить("Папка", Неопределено); + ПараметрыДоставки.Вставить("Архивировать", Ложь); + ПараметрыДоставки.Вставить("ИмяАрхива", ШаблонИмениАрхива()); + ПараметрыДоставки.Вставить("ПарольАрхива", Неопределено); + + ПараметрыДоставки.Вставить("ЗаполнитьПолучателяВШаблонеТемы", Ложь); + ПараметрыДоставки.Вставить("ЗаполнитьПолучателяВШаблонеСообщения", Ложь); + ПараметрыДоставки.Вставить("ЗаполнитьСформированныеОтчетыВШаблонеСообщения", Ложь); + ПараметрыДоставки.Вставить("ЗаполнитьСпособДоставкиВШаблонеСообщения", Ложь); + ПараметрыДоставки.Вставить("ПредставлениеОтчетовПолучателя", ""); + ПараметрыДоставки.Вставить("ШаблонТемы", ШаблонТемы()); + ПараметрыДоставки.Вставить("ШаблонТекста", ""); + + ПараметрыДоставки.Вставить("ПараметрыФорматов", Новый Соответствие); + ПараметрыДоставки.Вставить("ТранслитерироватьИменаФайлов", Ложь); + ПараметрыДоставки.Вставить("СтрокаОбщихОтчетов", Неопределено); + ПараметрыДоставки.Вставить("ДобавлятьСсылки", ""); + + ПараметрыДоставки.Вставить("БылиОшибки", Ложь); + ПараметрыДоставки.Вставить("БылиПредупреждения", Ложь); + ПараметрыДоставки.Вставить("ВыполненаВПапку", Ложь); + ПараметрыДоставки.Вставить("ВыполненаВСетевойКаталог", Ложь); + ПараметрыДоставки.Вставить("ВыполненаНаFTP", Ложь); + ПараметрыДоставки.Вставить("ВыполненаПоЭлектроннойПочте", Ложь); + ПараметрыДоставки.Вставить("ВыполненныеСпособыПубликации", ""); + + Возврат ПараметрыДоставки; + +КонецФункции + +// Для вызова из модулей РассылкаОтчетовПереопределяемый и РассылкаОтчетовПовтИсп. +// Добавляет формат (в случае его отсутствия) и устанавливает его параметры (если переданы). // // Параметры: // СписокФорматов - СписокЗначений // ФорматСсылка - Строка // - ПеречислениеСсылка.ФорматыСохраненияОтчетов - ссылка или имя формата. -// Картинка - Картинка - необязательный. Картинка формата. -// ИспользоватьПоУмолчанию - Булево - необязательный. Признак того, что формат используется по умолчанию. +// Картинка - Картинка - картинка формата. +// ИспользоватьПоУмолчанию - Булево - признак того, что формат используется по умолчанию. // Процедура УстановитьПараметрыФормата(СписокФорматов, ФорматСсылка, Картинка = Неопределено, ИспользоватьПоУмолчанию = Неопределено) Экспорт Если ТипЗнч(ФорматСсылка) = Тип("Строка") Тогда @@ -545,7 +625,7 @@ КонецЕсли; КонецПроцедуры -// Для вызова из модулей "РассылкаОтчетовПереопределяемый" и "РассылкаОтчетовПовтИсп". +// Для вызова из модулей РассылкаОтчетовПереопределяемый и РассылкаОтчетовПовтИсп. // Добавляет описание типа получателей в соответствующую таблицу. // // Параметры: @@ -642,8 +722,7 @@ КонецЕсли; КонецПроцедуры -// Выполняет массив рассылок и размещает результат по адресу АдресРезультата. В файловом -// режиме вызывается напрямую, в клиент-серверном - через фоновое задание. +// Выполняет несколько рассылок и размещает результат по адресу АдресРезультата. // // Параметры: // ПараметрыВыполнения - Структура - выполняемые рассылки и их параметры: @@ -683,8 +762,9 @@ МассивСообщений = Новый Массив; Для Каждого СтрокаТаблицы Из Подготовленные Цикл - ПараметрыЖурнала = Новый Структура("МассивОшибок", Новый Массив); + ПараметрыЖурнала = ПараметрыЖурнала(СтрокаТаблицы.Рассылка); + ПараметрыЖурнала.МассивОшибок = Новый Массив; СтрокаТаблицы.Выполнена = ВыполнитьРассылкуОтчетов( СтрокаТаблицы.Рассылка, ПараметрыЖурнала, @@ -763,7 +843,7 @@ // * Метаданные - ОбъектМетаданных - метаданные для привязки события журнала регистрации. // * Данные - Произвольный - данные для привязки события журнала регистрации. // ДополнительныеНастройки - Структура - настройки, которые переопределяют стандартные параметры рассылки: -// * Получатели - Соответствие - набор получателей и их e-mail адресов: +// * Получатели - Соответствие из КлючИЗначение - набор получателей и их e-mail адресов: // ** Ключ - СправочникСсылка - получатель. // ** Значение - Строка - набор e-mail адресов получателя в строке с разделителями. // @@ -788,7 +868,7 @@ // Форма - ФормаКлиентскогоПриложения // - РасширениеФормыОтчета // Отказ - Булево -// СтандартнаяОбработка - булево +// СтандартнаяОбработка - Булево // Процедура ФормаОтчетаДобавитьКоманды(Форма, Отказ, СтандартнаяОбработка) Экспорт @@ -841,11 +921,7 @@ //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. -// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок -// -// Параметры: -// ИсключенияПоискаСсылок - Массив -// +// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт ИсключенияПоискаСсылок.Добавить(Метаданные.Справочники.РассылкиОтчетов.Реквизиты.ТипПолучателейРассылки); @@ -853,10 +929,6 @@ КонецПроцедуры // См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. -// -// Параметры: -// ЗапросыРазрешений - Массив -// Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда @@ -896,10 +968,8 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел -// // Параметры: -// ТекущиеДела - Массив +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт Если Не ПравоДобавления() Тогда @@ -930,7 +1000,7 @@ Отборы.Вставить("СОшибками", Истина); Отборы.Вставить("ЭтоГруппа", Ложь); Если Пользователи.ЭтоПолноправныйПользователь() Тогда - Запрос.Текст = СтрЗаменить(Запрос.Текст, "И РассылкиОтчетов.Автор = &Автор", ""); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "И РассылкиОтчетов.Автор = &Автор", ""); // @query-part Иначе Отборы.Вставить("Автор", Пользователи.ТекущийПользователь()); Запрос.УстановитьПараметр("Автор", Отборы.Автор); @@ -956,14 +1026,17 @@ КонецПроцедуры // См. ГрупповоеИзменениеОбъектовПереопределяемый.ПриОпределенииОбъектовСРедактируемымиРеквизитами. +// Процедура ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты) Экспорт Объекты.Вставить(Метаданные.Справочники.РассылкиОтчетов.ПолноеИмя(), "РеквизитыНеРедактируемыеВГрупповойОбработке"); КонецПроцедуры -// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий. + + +// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий // // Параметры: -// Зависимости - ТаблицаЗначений +// Зависимости - см. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий.Настройки // Процедура ПриОпределенииНастроекРегламентныхЗаданий(Зависимости) Экспорт Зависимость = Зависимости.Добавить(); @@ -982,7 +1055,7 @@ // См. ОбновлениеИнформационнойБазыПереопределяемый.ПриОпределенииНастроек // // Параметры: -// Объекты - Массив +// Объекты - Массив из ОбъектМетаданных // Процедура ПриОпределенииОбъектовСНачальнымЗаполнением(Объекты) Экспорт @@ -1004,10 +1077,8 @@ // Процедура ВыполнитьРассылкуПоРасписанию(Рассылка) Экспорт - // Проверки. ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.РассылкаОтчетов); - // Регистрация запуска (запущена, но не выполнена). РегистрыСведений.СостоянияРассылокОтчетов.ЗафиксироватьЗапускРассылки(Рассылка); Если Не ПравоДоступа("Чтение", Метаданные.Справочники.РассылкиОтчетов) Тогда @@ -1015,13 +1086,12 @@ НСтр("ru = 'У текущего пользователя недостаточно прав для чтения рассылок отчетов. |Рекомендуется отключить все рассылки этого пользователя или сменить автора его рассылок (на вкладке ""Расписание"").'"); КонецЕсли; + Запрос = Новый Запрос("ВЫБРАТЬ РАЗРЕШЕННЫЕ ВыполнятьПоРасписанию ИЗ Справочник.РассылкиОтчетов ГДЕ Ссылка = &Ссылка"); Запрос.УстановитьПараметр("Ссылка", Рассылка); Выборка = Запрос.Выполнить().Выбрать(); Если Не Выборка.Следующий() Тогда - ВызватьИсключение - НСтр("ru = 'У текущего пользователя недостаточно прав для чтения этой рассылки. - |Рекомендуется сменить автора рассылки (на вкладке ""Расписание"").'"); + ВызватьИсключение НСтр("ru = 'Недостаточно прав для просмотра рассылки отчетов.'"); КонецЕсли; Если Не Выборка.ВыполнятьПоРасписанию Тогда ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( @@ -1030,14 +1100,7 @@ Строка(Рассылка)); КонецЕсли; - // Параметры записи в журнал регистрации. - ПараметрыЖурнала = Новый Структура("ИмяСобытия, Метаданные, Данные"); - ПараметрыЖурнала.ИмяСобытия = НСтр("ru = 'Рассылка отчетов. Запуск по расписанию'", ОбщегоНазначения.КодОсновногоЯзыка()); - ПараметрыЖурнала.Метаданные = Рассылка.Метаданные(); - ПараметрыЖурнала.Данные = Рассылка; - - // Рассылка - ВыполнитьРассылкуОтчетов(Рассылка, ПараметрыЖурнала, Новый Структура("ЗапускЗафиксирован", Истина)); + ВыполнитьРассылкуОтчетов(Рассылка, ПараметрыЖурнала(Рассылка), Новый Структура("ЗапускЗафиксирован", Истина)); КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// @@ -1238,6 +1301,7 @@ // параметров. // // Параметры: +// ПараметрыЖурнала - см. ПараметрыЖурнала. // ПараметрыОтчета - Структура - отчет, настройки и результат его инициализации: // * Отчет - СправочникСсылка.ВариантыОтчетов - ссылка отчета. // * Настройки - Неопределено @@ -1246,10 +1310,10 @@ // Настройки отчета, которые необходимо использовать, // подробнее см. процедуру "ЗаписатьНастройкиСтрокиОтчеты" модуля "Справочник.РассылкиОтчетов.ФормаОбъекта". // ПерсонализацияВозможна - Булево - Истина, если отчет может быть персонализирован. -// УникальныйИдентификаторФормы - УникальныйИдентификатор - необязательный. Адрес размещения СКД. +// УникальныйИдентификаторФормы - УникальныйИдентификатор - адрес размещения СКД. // // Параметры, изменяемые в процессе работы метода: -// ПараметрыОтчета - Структура - +// ПараметрыОтчета - Структура: // Результат инициализации: // * Инициализирован - Булево - Истина, если инициализация прошла успешно. // * Ошибки - Строка - Текст ошибок. @@ -1257,16 +1321,16 @@ // * Имя - Строка - Имя отчета. // * ЭтоВариант - Булево - Истина, если поставщик - справочник "ВариантыОтчетов". // * СКД - Булево - Истина, если отчет на базе СКД. -// * Метаданные - ОбъектМетаданных: Отчет - Метаданные отчета. -// * Объект - ОтчетОбъект.<Имя отчета>, ВнешнийОтчет - Объект отчета. +// * Метаданные - ОбъектМетаданныхОтчет - Метаданные отчета. +// * Объект - ОтчетОбъект, ВнешнийОтчет - Объект отчета. // Свойства отчетов на базе СКД: -// * СхемаКД - СхемаКомпоновкиДанных - -// * КомпоновщикНастроекКД - КомпоновщикНастроекКомпоновкиДанных - -// * НастройкиКД - НастройкиКомпоновкиДанных - +// * СхемаКД - СхемаКомпоновкиДанных +// * КомпоновщикНастроекКД - КомпоновщикНастроекКомпоновкиДанных +// * НастройкиКД - НастройкиКомпоновкиДанных // * АдресСхемы - Строка - Адрес схемы компоновки данных во временном хранилище. // Свойства произвольных отчетов: -// * ДоступныеРеквизиты - Структура - Имя и параметры реквизита. -// ** <Имя реквизита> - Структура - Параметры реквизита. +// * ДоступныеРеквизиты - Структура - Имя и параметры реквизита: +// ** ИмяРеквизита - Структура - Параметры реквизита: // *** Представление - Строка - Представление реквизита. // *** Тип - ОписаниеТипов - Тип реквизита. // @@ -1670,24 +1734,18 @@ Возврат ПользовательИБ.Имя; КонецФункции -// Создает запись в журнале регистрации и сообщениях пользователю; -// Поддерживает передачу информации об ошибке. +// Создает запись в журнале регистрации и выводит сообщения пользователю. +// Пользователю выводится краткое представление ошибки, а в журнал записывается подробное представление ошибки. // // Параметры: -// ПараметрыЖурнала - Структура - параметры записи в журнал регистрации, где: -// * ИмяСобытия - Строка - имя события (или группы событий). -// * Метаданные - ОбъектМетаданных - метаданные для привязки события журнала регистрации. -// * Данные - Произвольный - данные для привязки события журнала регистрации. -// * МассивОшибок - Массив - сообщения пользователю. +// ПараметрыЖурнала - см. ПараметрыЖурнала // УровеньЖурнала - УровеньЖурналаРегистрации - важность сообщения для администратора. -// Определяется автоматически на основании типа параметра "ОписаниеПроблемы": -// Когда тип = ИнформацияОбОшибке то Ошибка, -// когда тип = Строка то Предупреждение, +// Определяется автоматически на основании типа параметра ОписаниеПроблемы: +// Когда тип = ИнформацияОбОшибке то Ошибка, когда тип = Строка то Предупреждение, // в противном случае Информация. // Текст - Строка - краткое описание проблемы. // ОписаниеПроблемы - ИнформацияОбОшибке // - Строка - описание возникшей проблемы, которое добавляется после текста. -// Пользователю выводится краткое представление ошибки, а в журнал записывается подробное представление ошибки. // Процедура ЗаписьЖурнала(ПараметрыЖурнала, Знач УровеньЖурнала = Неопределено, Знач Текст = "", Знач ОписаниеПроблемы = Неопределено) Экспорт @@ -1724,7 +1782,7 @@ ИначеЕсли ТипЗнч(ОписаниеПроблемы) = Тип("Строка") Тогда Если ЗаписатьВЖурнал Тогда ТекстДляЖурнала = ТекстДляЖурнала + Символы.ПС + ОписаниеПроблемы; - КонецЕсли; + КонецЕсли; ТекстДляПользователя = ТекстДляПользователя + Символы.ПС + ОписаниеПроблемы; КонецЕсли; @@ -1740,8 +1798,9 @@ Сообщение = Новый СообщениеПользователю; Сообщение.Текст = ТекстДляПользователя; Сообщение.УстановитьДанные(ПараметрыЖурнала.Данные); - Если ПараметрыЖурнала.Свойство("МассивОшибок") Тогда - ПараметрыЖурнала.МассивОшибок.Добавить(Сообщение); + Если ПараметрыЖурнала.Свойство("МассивОшибок") И ТипЗнч(ПараметрыЖурнала.МассивОшибок) = Тип("Массив") Тогда + МассивОшибок = ПараметрыЖурнала.МассивОшибок; // Массив из СообщениеПользователю + МассивОшибок.Добавить(Сообщение); Иначе Сообщение.Сообщить(); КонецЕсли; @@ -1750,6 +1809,13 @@ КонецПроцедуры // Формирует массив разрешений по данным рассылки отчетов. +// +// Параметры: +// Рассылка - ВыборкаИзРезультатаЗапроса +// +// Возвращаемое значение: +// Массив +// Функция РазрешенияНаРесурсыСервера(Рассылка) Экспорт Разрешения = Новый Массив; @@ -1834,7 +1900,7 @@ // * Данные - Произвольный - данные для записи в журнал регистрации. // ПараметрыОтчета - Структура - см. ВыполнитьРассылку(), параметр ТаблицаОтчетов. // ДеревоОтчетов - ДеревоЗначений - отчеты и результат формирования. -// ПараметрыДоставки - см. ВыполнитьРассылку.ПараметрыДоставки +// ПараметрыДоставки - см. ПараметрыДоставки // Получатель - СправочникСсылка - ссылка получателя. // // Результат выполнения записывается в ДеревоОтчетов. @@ -2849,11 +2915,11 @@ // Возвращает список значений перечисления "ФорматыСохраненияОтчетов". // // Возвращаемое значение: -// СписокФорматов - СписокЗначений - список форматов, с пометками на системных форматах по умолчанию, где: -// * Значение - ПеречислениеСсылка.ФорматыСохраненияОтчетов - ссылка на описываемый формат. -// * Представление - Строка - пользовательское представление описываемого формата. -// * Пометка - Булево - признак использования как формата по умолчанию. -// * Картинка - Картинка - картинка формата. +// СписокЗначений - список форматов, с пометками на системных форматах по умолчанию, где: +// * Значение - ПеречислениеСсылка.ФорматыСохраненияОтчетов - ссылка на описываемый формат. +// * Представление - Строка - пользовательское представление описываемого формата. +// * Пометка - Булево - признак использования как формата по умолчанию. +// * Картинка - Картинка - картинка формата. // Функция СписокФорматов() Экспорт СписокФорматов = Новый СписокЗначений; @@ -2936,73 +3002,6 @@ КонецПроцедуры -Функция СтандартныеПараметрыДоставки() - - ПараметрыДоставки = Новый Структура; - ПараметрыДоставки.Вставить("ДатаВыполнения", ТекущаяДатаСеанса()); - ПараметрыДоставки.Вставить("Соединение", Неопределено); - ПараметрыДоставки.Вставить("ЗапускЗафиксирован", Истина); - ПараметрыДоставки.Вставить("Автор", Пользователи.ТекущийПользователь()); - ПараметрыДоставки.Вставить("ПараметрыПисьма", Новый Структура); - - ПараметрыДоставки.Вставить("НастройкиПолучателей", Новый Соответствие); - ПараметрыДоставки.Вставить("Получатели", Неопределено); - ПараметрыДоставки.Вставить("УчетнаяЗапись", Неопределено); - ПараметрыДоставки.Вставить("Рассылка", ""); - - ПараметрыДоставки.Вставить("ПисьмоВФорматеHTML", Ложь); - ПараметрыДоставки.Вставить("Персонализирована", Ложь); - ПараметрыДоставки.Вставить("ТранслитерироватьИменаФайлов", Ложь); - ПараметрыДоставки.Вставить("ТолькоУведомить", Ложь); - ПараметрыДоставки.Вставить("СкрытыеКопии", Ложь); - - ПараметрыДоставки.Вставить("ИспользоватьЭлектроннуюПочту", Ложь); - ПараметрыДоставки.Вставить("ИспользоватьПапку", Ложь); - ПараметрыДоставки.Вставить("ИспользоватьСетевойКаталог", Ложь); - ПараметрыДоставки.Вставить("ИспользоватьFTPРесурс", Ложь); - - ПараметрыДоставки.Вставить("Каталог", Неопределено); - ПараметрыДоставки.Вставить("СетевойКаталогWindows", Неопределено); - ПараметрыДоставки.Вставить("СетевойКаталогLinux", Неопределено); - ПараметрыДоставки.Вставить("КаталогВременныхФайлов", ФайловаяСистема.СоздатьВременныйКаталог("RP")); - ПараметрыДоставки.Вставить("ВключатьДатуВИмяФайла", Ложь); - - ПараметрыДоставки.Вставить("Сервер", Неопределено); - ПараметрыДоставки.Вставить("Порт", Неопределено); - ПараметрыДоставки.Вставить("ПассивноеСоединение", Ложь); - ПараметрыДоставки.Вставить("Логин", Неопределено); - ПараметрыДоставки.Вставить("Пароль", Неопределено); - - ПараметрыДоставки.Вставить("Папка", Неопределено); - ПараметрыДоставки.Вставить("Архивировать", Ложь); - ПараметрыДоставки.Вставить("ИмяАрхива", ШаблонИмениАрхива()); - ПараметрыДоставки.Вставить("ПарольАрхива", Неопределено); - - ПараметрыДоставки.Вставить("ЗаполнитьПолучателяВШаблонеТемы", Ложь); - ПараметрыДоставки.Вставить("ЗаполнитьПолучателяВШаблонеСообщения", Ложь); - ПараметрыДоставки.Вставить("ЗаполнитьСформированныеОтчетыВШаблонеСообщения", Ложь); - ПараметрыДоставки.Вставить("ЗаполнитьСпособДоставкиВШаблонеСообщения", Ложь); - ПараметрыДоставки.Вставить("ПредставлениеОтчетовПолучателя", ""); - ПараметрыДоставки.Вставить("ШаблонТемы", ШаблонТемы()); - ПараметрыДоставки.Вставить("ШаблонТекста", ""); - - ПараметрыДоставки.Вставить("ПараметрыФорматов", Новый Соответствие); - ПараметрыДоставки.Вставить("ТранслитерироватьИменаФайлов", Ложь); - ПараметрыДоставки.Вставить("СтрокаОбщихОтчетов", Неопределено); - ПараметрыДоставки.Вставить("ДобавлятьСсылки", ""); - - ПараметрыДоставки.Вставить("БылиОшибки", Ложь); - ПараметрыДоставки.Вставить("БылиПредупреждения", Ложь); - ПараметрыДоставки.Вставить("ВыполненаВПапку", Ложь); - ПараметрыДоставки.Вставить("ВыполненаВСетевойКаталог", Ложь); - ПараметрыДоставки.Вставить("ВыполненаНаFTP", Ложь); - ПараметрыДоставки.Вставить("ВыполненаПоЭлектроннойПочте", Ложь); - ПараметрыДоставки.Вставить("ВыполненныеСпособыПубликации", ""); - - Возврат ПараметрыДоставки; - -КонецФункции - Функция ПредставлениеФормата(Формат) Экспорт Если Формат = Перечисления.ФорматыСохраненияОтчетов.PDF Тогда diff --git a/SSL/src/CommonModules/РассылкаОтчетовКлиент/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетовКлиент/Module.bsl index a3281d743..85cba80ad 100644 --- a/SSL/src/CommonModules/РассылкаОтчетовКлиент/Module.bsl +++ b/SSL/src/CommonModules/РассылкаОтчетовКлиент/Module.bsl @@ -244,7 +244,7 @@ // // Параметры: // Форма - ФормаКлиентскогоПриложения - форма отчета. -// Ссылка - СправочникСсылка.РассылкиОтчетов - необязательный. Ссылка рассылки отчетов. +// Ссылка - СправочникСсылка.РассылкиОтчетов - ссылка рассылки отчетов. // Процедура ОткрытьРассылкуИзФормыОтчета(Форма, Ссылка = Неопределено) НастройкиОтчета = Форма.НастройкиОтчета; diff --git a/SSL/src/CommonModules/РассылкаОтчетовПереопределяемый/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетовПереопределяемый/Module.bsl index 77d8857a3..5bc316184 100644 --- a/SSL/src/CommonModules/РассылкаОтчетовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РассылкаОтчетовПереопределяемый/Module.bsl @@ -87,7 +87,7 @@ // ПараметрыПолучателей - Структура - параметры формирования получателей рассылки. // Запрос - Запрос - запрос, который будет использован, если значение параметра СтандартнаяОбработка останется Истина. // СтандартнаяОбработка - Булево - признак использования стандартных механизмов. -// Результат - Соответствие - получатели с их E-mail адресами: +// Результат - Соответствие из КлючИЗначение - получатели с их E-mail адресами: // * Ключ - СправочникСсылка - получатель. // * Значение - Строка - набор E-mail адресов в строке с разделителями. // diff --git a/SSL/src/CommonModules/РегламентныеЗаданияСервер/Module.bsl b/SSL/src/CommonModules/РегламентныеЗаданияСервер/Module.bsl index b4c7d05a5..0506e2ce9 100644 --- a/SSL/src/CommonModules/РегламентныеЗаданияСервер/Module.bsl +++ b/SSL/src/CommonModules/РегламентныеЗаданияСервер/Module.bsl @@ -15,8 +15,8 @@ // Параметры: // Отбор - Структура - со свойствами: // 1) Общие для любого режима работы: -// * УникальныйИдентификатор - УникальныйИдентификатор - идентификатор регламентного задания -// в локальном режиме работы. +// * УникальныйИдентификатор - УникальныйИдентификатор - идентификатор регламентного задания в локальном +// режиме работы или идентификатор ссылки задания очереди в модели сервиса. // - СправочникСсылка.ОчередьЗаданий // - СправочникСсылка.ОчередьЗаданийОбластейДанных - идентификатор задания // очереди в модели сервиса. @@ -41,9 +41,9 @@ // * Ключ - Строка - прикладной идентификатор задания. // * Параметры - Массив - параметры, передаваемые в обработчик задания. // * Расписание - Расписание - расписание задания. -// * УникальныйИдентификатор - УникальныйИдентификатор -// - СправочникСсылка.ОчередьЗаданий -// - СправочникСсылка.ОчередьЗаданийОбластейДанных - идентификатор задания. +// * УникальныйИдентификатор - СправочникСсылка.ОчередьЗаданий +// - СправочникСсылка.ОчередьЗаданийОбластейДанных - идентификатор задания +// очереди в модели сервиса. // * ЗапланированныйМоментЗапуска - Дата - дата и время запланированного запуска задания // (в часовом поясе области данных). // * ИмяМетода - Строка - имя метода (или псевдоним) обработчика очереди задании. @@ -114,27 +114,11 @@ КопияОтбора.Идентификатор = Новый УникальныйИдентификатор(КопияОтбора.Идентификатор); КонецЕсли; - СправочникДляЗадания = МодульОчередьЗаданий.СправочникОчередьЗаданий(); - Если МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация() Тогда - МодульОчередьЗаданийРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийРазделениеДанных"); - ПереопределенныйСправочник = МодульОчередьЗаданийРазделениеДанных.ПриВыбореСправочникаДляЗадания(КопияОтбора); - Если ПереопределенныйСправочник <> Неопределено Тогда - СправочникДляЗадания = ПереопределенныйСправочник; - КонецЕсли; - КонецЕсли; - КопияОтбора.Вставить("Идентификатор", СправочникДляЗадания.ПолучитьСсылку(КопияОтбора.Идентификатор)); + КопияОтбора.Вставить("Идентификатор", СсылкаЗаданияОчереди(КопияОтбора.Идентификатор, КопияОтбора)); КонецЕсли; КопияОтбора.Удалить("Метаданные"); - СписокЗаданий = МодульОчередьЗаданий.ПолучитьЗадания(КопияОтбора); - // Для обратной совместимости поле Идентификатор не удаляется. - КопияСписка = СписокЗаданий.Скопировать(); - КопияСписка.Колонки.Добавить("УникальныйИдентификатор"); - Для Каждого Строка Из КопияСписка Цикл - Строка.УникальныйИдентификатор = Строка.Идентификатор; - КонецЦикла; - - Возврат КопияСписка; + Возврат УточненныйСписокЗаданий(МодульОчередьЗаданий.ПолучитьЗадания(КопияОтбора)); КонецЕсли; Иначе @@ -151,15 +135,22 @@ // // Параметры: // Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска -// предопределенного регламентного задания. -// - УникальныйИдентификатор - идентификатор регламентного задания. -// - Строка - строка уникального идентификатора регламентного задания -// или имя метаданных предопределенного регламентного задания. -// - РегламентноеЗадание - регламентное задание из которого нужно получить -// уникальный идентификатор для получения свежей копии регламентного задания. +// предопределенного регламентного задания. +// - Строка - имя метаданных предопределенного регламентного задания в любом режиме работы +// или строка уникального идентификатора регламентного задания в локальном режиме работы +// или строка уникального идентификатора ссылки задания очереди в модели сервиса. +// - УникальныйИдентификатор - идентификатор регламентного задания в локальном режиме работы +// или идентификатор ссылки задания очереди в модели сервиса. +// - РегламентноеЗадание - регламентное задание из которого нужно получить уникальный идентификатор +// для получения свежей копии регламентного задания в локальном режиме работы. +// - СправочникСсылка.ОчередьЗаданий +// - СправочникСсылка.ОчередьЗаданийОбластейДанных - идентификатор задания очереди в модели сервиса. +// - СтрокаТаблицыЗначений: см. НайтиЗадания // // Возвращаемое значение: -// РегламентноеЗадание - прочитано из базы данных. +// РегламентноеЗадание - в локальном режиме работы. +// СтрокаТаблицыЗначений: см. НайтиЗадания +// Неопределено - задание не найдено. // Функция Задание(Знач Идентификатор) Экспорт @@ -178,6 +169,8 @@ КонецЕсли; КонецЕсли; + РегламентноеЗадание = Неопределено; + Если ОбщегоНазначения.РазделениеВключено() Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); @@ -201,23 +194,15 @@ ПараметрыЗадания.Вставить("ИмяМетода", Идентификатор.ИмяМетода); КонецЕсли; ИначеЕсли ТипЗнч(Идентификатор) = Тип("УникальныйИдентификатор") Тогда - СправочникДляЗадания = МодульОчередьЗаданий.СправочникОчередьЗаданий(); - Если МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация() Тогда - МодульОчередьЗаданийРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийРазделениеДанных"); - ПереопределенныйСправочник = МодульОчередьЗаданийРазделениеДанных.ПриВыбореСправочникаДляЗадания(ПараметрыЗадания); - Если ПереопределенныйСправочник <> Неопределено Тогда - СправочникДляЗадания = ПереопределенныйСправочник; - КонецЕсли; - КонецЕсли; - ПараметрыЗадания.Вставить("Идентификатор", СправочникДляЗадания.ПолучитьСсылку(Идентификатор)); + ПараметрыЗадания.Вставить("Идентификатор", СсылкаЗаданияОчереди(Идентификатор, ПараметрыЗадания)); ИначеЕсли ТипЗнч(Идентификатор) = Тип("СтрокаТаблицыЗначений") Тогда - Возврат Идентификатор; + ПараметрыЗадания.Вставить("Идентификатор", Идентификатор.Идентификатор); Иначе ПараметрыЗадания.Вставить("Идентификатор", Идентификатор); КонецЕсли; - СписокЗаданий = МодульОчередьЗаданий.ПолучитьЗадания(ПараметрыЗадания); + СписокЗаданий = УточненныйСписокЗаданий(МодульОчередьЗаданий.ПолучитьЗадания(ПараметрыЗадания)); Для Каждого Задание Из СписокЗаданий Цикл РегламентноеЗадание = Задание; Прервать; @@ -246,18 +231,21 @@ // Добавляет новое задание в очередь или как регламентное. // // Параметры: -// Параметры - Структура - параметры добавляемого задания, возможные ключи: -// * Использование -// * Метаданные - обязательно для указания -// * Параметры -// * Ключ -// * ИнтервалПовтораПриАварийномЗавершении -// * Расписание -// * КоличествоПовторовПриАварийномЗавершении +// Параметры - Структура - параметры добавляемого задания, возможные свойства: +// * Использование - Булево - Истина, если регламентное задание должно выполняться автоматически согласно расписанию. +// * Метаданные - ОбъектМетаданныхРегламентноеЗадание - обязательно для указания. Объект метаданных, на основе +// которого будет создано регламентное задание. +// * Параметры - Массив - параметры регламентного задания. Количество и состав параметров должны соответствовать +// параметрам метода регламентного задания. +// * Ключ - Строка - прикладной идентификатор регламентного задания. +// * ИнтервалПовтораПриАварийномЗавершении - Число - интервал в секундах, через который нужно перезапускать задание +// в случае его аварийного завершения. +// * Расписание - РасписаниеРегламентногоЗадания - расписание задания. +// * КоличествоПовторовПриАварийномЗавершении - Число - количество повторов при аварийном завершении задания. // -// Возвращаемое значение: -// РегламентноеЗадание, СправочникСсылка.ОчередьЗаданий, СправочникСсылка.ОчередьЗаданийОбластейДанных - идентификатор -// добавленного задания. +// Возвращаемое значение: +// РегламентноеЗадание - в локальном режиме работы. +// СтрокаТаблицыЗначений: см. НайтиЗадания // Функция ДобавитьЗадание(Параметры) Экспорт @@ -284,7 +272,8 @@ МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); Задание = МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); - СписокЗаданий = МодульОчередьЗаданий.ПолучитьЗадания(Новый Структура("Идентификатор", Задание)); + Отбор = Новый Структура("Идентификатор", Задание); + СписокЗаданий = УточненныйСписокЗаданий(МодульОчередьЗаданий.ПолучитьЗадания(Отбор)); Для Каждого Задание Из СписокЗаданий Цикл Возврат Задание; КонецЦикла; @@ -346,15 +335,21 @@ КонецФункции -// Удаляет РегламентноеЗадание из информационной базы. +// Удаляет регламентное задание из информационной базы. // // Параметры: // Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска -// не предопределенного регламентного задания. -// - УникальныйИдентификатор - идентификатор регламентного задания. -// - Строка - строка уникального идентификатора регламентного задания. -// - РегламентноеЗадание - регламентное задание, которое нужно получить -// уникальный идентификатор для получения свежей копии регламентного задания. +// непредопределенного регламентного задания. +// - Строка - имя метаданных предопределенного регламентного задания в любом режиме работы +// или строка уникального идентификатора регламентного задания в локальном режиме работы +// или строка уникального идентификатора ссылки задания очереди в модели сервиса. +// - УникальныйИдентификатор - идентификатор регламентного задания в локальном режиме работы. +// или идентификатор ссылки задания очереди в модели сервиса. +// - РегламентноеЗадание - регламентное задание, уникальный идентификатор которого используется +// для определения удаляемого экземпляра регламентного задания в локальном режиме работы. +// - СправочникСсылка.ОчередьЗаданий +// - СправочникСсылка.ОчередьЗаданийОбластейДанных - идентификатор задания очереди в модели сервиса. +// - СтрокаТаблицыЗначений: см. НайтиЗадания // Процедура УдалитьЗадание(Знач Идентификатор) Экспорт @@ -387,19 +382,9 @@ Если ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") Тогда ИмяМетода = Идентификатор.ИмяМетода; ПараметрыЗадания.Вставить("ИмяМетода", ИмяМетода); + ИначеЕсли ТипЗнч(Идентификатор) = Тип("УникальныйИдентификатор") Тогда - МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); - СправочникДляЗадания = МодульОчередьЗаданий.СправочникОчередьЗаданий(); - - Если МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация() Тогда - МодульОчередьЗаданийРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийРазделениеДанных"); - ПереопределенныйСправочник = МодульОчередьЗаданийРазделениеДанных.ПриВыбореСправочникаДляЗадания(ПараметрыЗадания); - Если ПереопределенныйСправочник <> Неопределено Тогда - СправочникДляЗадания = ПереопределенныйСправочник; - КонецЕсли; - КонецЕсли; - - ПараметрыЗадания.Вставить("Идентификатор", СправочникДляЗадания.ПолучитьСсылку(Идентификатор)); + ПараметрыЗадания.Вставить("Идентификатор", СсылкаЗаданияОчереди(Идентификатор, ПараметрыЗадания)); ИначеЕсли ТипЗнч(Идентификатор) = Тип("СтрокаТаблицыЗначений") Тогда @@ -456,22 +441,37 @@ КонецПроцедуры // Изменяет задание с указанным идентификатором. -// В случае вызова в транзакции на задание устанавливается объектная блокировка. +// +// В модели сервиса (разделение включено): +// - в случае вызова в транзакции на задание устанавливается объектная блокировка, +// - если задание создано на основе шаблона или предопределенное, может быть указано +// только свойство Использование в параметре Параметры. Расписание в этом случае, +// изменять нельзя, т.к. оно хранится централизованно в неразделенном Шаблоне задания, +// отдельно для каждой области оно не сохраняется. // // Параметры: -// Идентификатор - СправочникСсылка.ОчередьЗаданий -// - СправочникСсылка.ОчередьЗаданийОбластейДанных - идентификатор задания -// Параметры - Структура - параметры, которые следует установить заданию, возможные ключи: -// * Использование -// * Параметры -// * Ключ -// * ИнтервалПовтораПриАварийномЗавершении -// * Расписание -// * КоличествоПовторовПриАварийномЗавершении +// Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска +// непредопределенного регламентного задания. +// - Строка - имя метаданных предопределенного регламентного задания в любом режиме работы +// или строка уникального идентификатора регламентного задания в локальном режиме работы +// или строка уникального идентификатора ссылки задания очереди в модели сервиса. +// - УникальныйИдентификатор - идентификатор регламентного задания в локальном режиме работы +// или идентификатор ссылки задания очереди в модели сервиса. +// - РегламентноеЗадание - регламентное задание в локальном режиме работы. +// - СправочникСсылка.ОчередьЗаданий +// - СправочникСсылка.ОчередьЗаданийОбластейДанных - идентификатор задания очереди в модели сервиса. +// - СтрокаТаблицыЗначений: см. НайтиЗадания +// +// Параметры - Структура - параметры, которые следует установить заданию, возможные свойства: +// * Использование - Булево - Истина, если регламентное задание должно выполняться автоматически согласно расписанию. +// * Параметры - Массив - параметры регламентного задания. Количество и состав параметров должны соответствовать +// параметрам метода регламентного задания. +// * Ключ - Строка - прикладной идентификатор регламентного задания. +// * ИнтервалПовтораПриАварийномЗавершении - Число - интервал в секундах, через который нужно перезапускать задание +// в случае его аварийного завершения. +// * Расписание - РасписаниеРегламентногоЗадания - расписание задания. +// * КоличествоПовторовПриАварийномЗавершении - Число - количество повторов при аварийном завершении задания. // -// В случае если задание создано на основе шаблона или предопределенное, могут быть указаны -// только следующие ключи: Использование. -// Процедура ИзменитьЗадание(Знач Идентификатор, Знач Параметры) Экспорт ВызватьИсключениеЕслиНетПраваАдминистрирования(); @@ -534,17 +534,7 @@ КонецЕсли; ИначеЕсли ТипЗнч(Идентификатор) = Тип("УникальныйИдентификатор") Тогда - МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); - СправочникДляЗадания = МодульОчередьЗаданий.СправочникОчередьЗаданий(); - Если МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация() Тогда - МодульОчередьЗаданийРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийРазделениеДанных"); - ПереопределенныйСправочник = МодульОчередьЗаданийРазделениеДанных.ПриВыбореСправочникаДляЗадания(ПараметрыПоиска); - Если ПереопределенныйСправочник <> Неопределено Тогда - СправочникДляЗадания = ПереопределенныйСправочник; - КонецЕсли; - КонецЕсли; - - ПараметрыПоиска.Вставить("Идентификатор", СправочникДляЗадания.ПолучитьСсылку(Идентификатор)); + ПараметрыПоиска.Вставить("Идентификатор", СсылкаЗаданияОчереди(Идентификатор, ПараметрыЗадания)); ИначеЕсли ТипЗнч(Идентификатор) = Тип("СтрокаТаблицыЗначений") Тогда @@ -632,17 +622,20 @@ КонецПроцедуры // Возвращает уникальный идентификатор регламентного задания. -// Перед вызовом требуется иметь право администрирования или УстановитьПривилегированныйРежим. +// Для вызова требуются права администрирования или УстановитьПривилегированныйРежим. // // Параметры: // Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска -// регламентного задания. -// - УникальныйИдентификатор - идентификатор регламентного задания. -// - Строка - строка уникального идентификатора регламентного задания. +// регламентного задания. +// - Строка - строка уникального идентификатора регламентного задания +// или идентификатора ссылки задания очереди в модели сервиса. +// - УникальныйИдентификатор - идентификатор регламентного задания в локальном режиме работы +// или идентификатор ссылки задания очереди в модели сервиса. // - РегламентноеЗадание - регламентное задание. // // Возвращаемое значение: -// УникальныйИдентификатор - УИ объекта регламентного задания. +// УникальныйИдентификатор - идентификатор регламентного задания в локальном режиме работы +// или идентификатор ссылки задания очереди в модели сервиса. // Функция УникальныйИдентификатор(Знач Идентификатор) Экспорт @@ -651,11 +644,13 @@ КонецФункции //////////////////////////////////////////////////////////////////////////////// -// Процедуры и функции без поддержки модели сервиса. +// Процедуры и функции без поддержки заданий очереди в модели сервиса. // Возвращает использование регламентного задания. // Перед вызовом требуется иметь право администрирования или УстановитьПривилегированныйРежим. -// Не предназначена для использования в модели сервиса. +// +// В модели сервиса работает с регламентными заданиями платформы, а не с заданиями очереди, +// одинаково как в разделенном, так и в неразделенном режимах. // // Параметры: // Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска @@ -665,7 +660,7 @@ // - РегламентноеЗадание - регламентное задание. // // Возвращаемое значение: -// Булево - если Истина, регламентное задание используется. +// Булево - Истина, если регламентное задание используется. // Функция РегламентноеЗаданиеИспользуется(Знач Идентификатор) Экспорт @@ -679,7 +674,9 @@ // Возвращает расписание регламентного задания. // Перед вызовом требуется иметь право администрирования или УстановитьПривилегированныйРежим. -// Не предназначена для использования в модели сервиса. +// +// В модели сервиса работает с регламентными заданиями платформы, а не с заданиями очереди, +// одинаково как в разделенном, так и в неразделенном режимах. // // Параметры: // Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска @@ -710,7 +707,9 @@ // Устанавливает использование регламентного задания. // Перед вызовом требуется иметь право администрирования или УстановитьПривилегированныйРежим. -// Не предназначена для использования в модели сервиса. +// +// В модели сервиса работает с регламентными заданиями платформы, а не с заданиями очереди, +// одинаково как в разделенном, так и в неразделенном режимах. // // Параметры: // Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска @@ -750,7 +749,9 @@ // Устанавливает расписание регламентного задания. // Перед вызовом требуется иметь право администрирования или УстановитьПривилегированныйРежим. -// Не предназначена для использования в модели сервиса. +// +// В модели сервиса работает с регламентными заданиями платформы, а не с заданиями очереди, +// одинаково как в разделенном, так и в неразделенном режимах. // // Параметры: // Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска @@ -794,7 +795,9 @@ КонецПроцедуры // Возвращает РегламентноеЗадание из информационной базы. -// Не предназначена для использования в модели сервиса. +// +// В модели сервиса работает с регламентными заданиями платформы, а не с заданиями очереди, +// одинаково как в разделенном, так и в неразделенном режимах. // // Параметры: // Идентификатор - ОбъектМетаданных - объект метаданных регламентного задания для поиска @@ -884,7 +887,7 @@ // может быть изменено только значение свойства Использование. // // Параметры: -// РегламентноеЗадание - ОбъектМетаданных: РегламентноеЗадание - задание, свойства которого +// РегламентноеЗадание - ОбъектМетаданныхРегламентноеЗадание - задание, свойства которого // требуется изменить. // ИзменяемыеПараметры - Структура - свойства регламентного задания, которые требуется изменить. // Ключ структуры - имя параметра, а значение - значение параметра формы. @@ -984,6 +987,7 @@ ТекстДляЖурнала); ТекущийСеанс.Отменить(); + ТекущийСеанс.ОжидатьЗавершенияВыполнения(1); КонецПроцедуры @@ -1076,7 +1080,11 @@ Возврат; КонецЕсли; - Если Задание[ИмяСвойства] = ПараметрыЗадания[ИмяСвойства] Тогда + Если Задание[ИмяСвойства] = ПараметрыЗадания[ИмяСвойства] + Или ТипЗнч(Задание[ИмяСвойства]) = Тип("РасписаниеРегламентногоЗадания") + И ТипЗнч(ПараметрыЗадания[ИмяСвойства]) = Тип("РасписаниеРегламентногоЗадания") + И Строка(Задание[ИмяСвойства]) = Строка(ПараметрыЗадания[ИмяСвойства]) Тогда + Возврат; КонецЕсли; @@ -1085,6 +1093,39 @@ КонецПроцедуры +// Для функций НайтиЗадания, Задание, ДобавитьЗадание. +Функция УточненныйСписокЗаданий(СписокЗаданий) + + // Для обратной совместимости поле Идентификатор не удаляется. + КопияСписка = СписокЗаданий.Скопировать(); + КопияСписка.Колонки.Добавить("УникальныйИдентификатор"); + Для Каждого Строка Из КопияСписка Цикл + Строка.УникальныйИдентификатор = Строка.Идентификатор; + КонецЦикла; + + Возврат КопияСписка; + +КонецФункции + +// Для функций НайтиЗадание, Задание, УдалитьЗадание, ИзменитьЗадание. +Функция СсылкаЗаданияОчереди(Идентификатор, ПараметрыЗадания) + + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + СправочникДляЗадания = МодульОчередьЗаданий.СправочникОчередьЗаданий(); + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + Если МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация() Тогда + МодульОчередьЗаданийРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийРазделениеДанных"); + ПереопределенныйСправочник = МодульОчередьЗаданийРазделениеДанных.ПриВыбореСправочникаДляЗадания(ПараметрыЗадания); + Если ПереопределенныйСправочник <> Неопределено Тогда + СправочникДляЗадания = ПереопределенныйСправочник; + КонецЕсли; + КонецЕсли; + + Возврат СправочникДляЗадания.ПолучитьСсылку(Идентификатор); + +КонецФункции + // Вызывает исключение, если у пользователя нет права администрирования. Процедура ВызватьИсключениеЕслиНетПраваАдминистрирования() diff --git a/SSL/src/CommonModules/РегламентныеЗаданияСлужебный/Module.bsl b/SSL/src/CommonModules/РегламентныеЗаданияСлужебный/Module.bsl index 8e824fc40..25708769e 100644 --- a/SSL/src/CommonModules/РегламентныеЗаданияСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РегламентныеЗаданияСлужебный/Module.bsl @@ -11,7 +11,7 @@ // Проверяет, включено ли регламентное задание по функциональным опциям. // // Параметры: -// Задание - ОбъектМетаданных: РегламентноеЗадание - регламентное задание. +// Задание - ОбъектМетаданныхРегламентноеЗадание - регламентное задание. // ЗависимостиЗаданий - ТаблицаЗначений - таблица зависимостей регламентных // заданий, полученная методом РегламентныеЗаданияСлужебный.РегламентныеЗаданияЗависимыеОтФункциональныхОпций. // Если не указано, получается автоматически. @@ -235,10 +235,6 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -656,7 +652,7 @@ // Наименование, ИмяМетода, РегламентноеЗадание. // // Возвращаемое значение: -// ТаблицаЗначений - возвращается таблица после отбора. +// см. НовыеСвойстваФоновыхЗаданий // Функция СвойстваФоновыхЗаданий(Отбор = Неопределено) Экспорт @@ -847,7 +843,7 @@ // - Строка - строка уникального идентификатора РегламентногоЗадания. // // Возвращаемое значение: -// СтрокаТаблицыЗначений - с колонками: +// СтрокаТаблицыЗначений: // * Идентификатор - Строка // * Наименование - Строка // * Ключ - Строка @@ -1103,11 +1099,11 @@ КонецПроцедуры // Параметры: -// МассивФоновыхЗаданий - Массив из ФоновоеЗадание -// ПоследнееФоновоеЗадание - ФоновоеЗадание -// - Неопределено +// МассивФоновыхЗаданий - Массив из ФоновоеЗадание +// ПоследнееФоновоеЗадание - ФоновоеЗадание +// - Неопределено // Возвращаемое значение: -// ФоновоеЗадание, Неопределено +// ФоновоеЗадание, Неопределено // Функция ПоследнееФоновоеЗаданиеВМассиве(МассивФоновыхЗаданий, ПоследнееФоновоеЗадание = Неопределено) diff --git a/SSL/src/CommonModules/РезервноеКопированиеИБКлиент/Module.bsl b/SSL/src/CommonModules/РезервноеКопированиеИБКлиент/Module.bsl index a5741ffa2..9c4720c03 100644 --- a/SSL/src/CommonModules/РезервноеКопированиеИБКлиент/Module.bsl +++ b/SSL/src/CommonModules/РезервноеКопированиеИБКлиент/Module.bsl @@ -143,9 +143,6 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Экспортные служебные процедуры и функции. - // Проверяет необходимость запуска автоматического резервного копирования // в процессе работы пользователя, а также повторного оповещения после игнорировании первоначального. // @@ -178,7 +175,8 @@ // Проверяет необходимость проведения автоматического резервного копирования. // -// Возвращаемое значение - Булево - Истина, если необходима, Ложь - иначе. +// Возвращаемое значение: +// Булево - Истина, если необходима, Ложь - иначе. // Функция НеобходимостьАвтоматическогоРезервногоКопирования() @@ -243,7 +241,7 @@ // Если да - выводит форму обработчика с результатами резервного копирования. // // Параметры: -// Параметры - Структура - параметры резервного копирования. +// Параметры - Структура - параметры резервного копирования. // Процедура ПроверитьРезервноеКопированиеИБ(Параметры) @@ -299,7 +297,8 @@ // Возвращает тип события журнала регистрации для данной подсистемы. // -// Возвращаемое значение - Строка - тип события журнала регистрации. +// Возвращаемое значение: +// Строка - тип события журнала регистрации. // Функция СобытиеЖурналаРегистрации() Экспорт @@ -521,7 +520,8 @@ // Возвращает параметры скрипта резервного копирования. // -// Возвращаемое значение - Структура - структура скрипта резервного копирования. +// Возвращаемое значение: +// Структура - структура скрипта резервного копирования. // Функция КлиентскиеПараметрыРезервногоКопирования() Экспорт @@ -557,4 +557,28 @@ КонецФункции +// Возвращаемое значение: +// Структура: +// * КаталогПрограммы - Строка +// * ИмяФайлаПрограммы - Строка +// * СобытиеЖурналаРегистрации - Строка +// * ИмяCOMСоединителя - Строка +// * ЭтоБазоваяВерсияКонфигурации - Строка +// * ПараметрыСкрипта - Строка +// * ПараметрыЗапускаПредприятия - Строка +// +Функция ОбщиеПараметрыСкрипта() Экспорт + + ПараметрыСкрипта = Новый Структура; + ПараметрыСкрипта.Вставить("КаталогПрограммы" , ""); + ПараметрыСкрипта.Вставить("ИмяФайлаПрограммы" , ""); + ПараметрыСкрипта.Вставить("СобытиеЖурналаРегистрации" , ""); + ПараметрыСкрипта.Вставить("ИмяCOMСоединителя" , ""); + ПараметрыСкрипта.Вставить("ЭтоБазоваяВерсияКонфигурации", ""); + ПараметрыСкрипта.Вставить("ПараметрыСкрипта" , ""); + ПараметрыСкрипта.Вставить("ПараметрыЗапускаПредприятия" , ""); + Возврат ПараметрыСкрипта; + +КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonModules/РезервноеКопированиеИБСервер/Module.bsl b/SSL/src/CommonModules/РезервноеКопированиеИБСервер/Module.bsl index 226e48061..b3e09cca2 100644 --- a/SSL/src/CommonModules/РезервноеКопированиеИБСервер/Module.bsl +++ b/SSL/src/CommonModules/РезервноеКопированиеИБСервер/Module.bsl @@ -79,28 +79,8 @@ //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. -// // Параметры: -// ТекущиеДела - ТаблицаЗначений - определяет параметры дела: -// * Идентификатор - Строка - внутренний идентификатор дела, используемый подсистемой. -// * ЕстьДела - Булево - если Истина, дело выводится в списке текущих дел пользователя. -// * Важное - Булево - если Истина, дело будет выделено красным цветом. -// * ВыводитьВОповещениях - Булево - если Истина, уведомление о деле будет дублироваться всплывающим -// оповещением и отображением в центре оповещений. -// * СкрыватьВНастройках - Булево - если Истина, то дело будет скрыто в форме настроек текущих дел. -// Можно применять для дел, которые не предполагают многократного -// использования, т.е. после выполнения они для данной информационной базы -// больше отображаться не будут. -// * Представление - Строка - представление дела, выводимое пользователю. -// * Количество - Число - количественный показатель дела, выводится в строке заголовка дела. -// * Форма - Строка - полный путь к форме, которую необходимо открыть при нажатии на гиперссылку -// дела на панели "Текущие дела". -// * ПараметрыФормы - Структура - параметры, с которыми нужно открывать форму показателя. -// * Владелец - Строка -// - объект метаданных - строковый идентификатор дела, которое будет владельцем для текущего -// или объект метаданных подсистема. -// * Подсказка - Строка - текст подсказки. +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт @@ -199,7 +179,7 @@ // пользователей. // // Возвращаемое значение: -// Структура - параметры. +// Структура - параметры. // Функция ПараметрыПриЗавершенииРаботы() @@ -249,7 +229,8 @@ // Возвращает сохраненные параметры резервного копирования. // -// Возвращаемое значение - Структура - параметры резервного копирования. +// Возвращаемое значение: +// Структура - параметры резервного копирования. // Функция ПараметрыРезервногоКопирования() Экспорт @@ -265,7 +246,7 @@ КонецФункции // Параметры: -// ПараметрыРезервногоКопирования - Структура - параметры резервного копирования ИБ. +// ПараметрыРезервногоКопирования - Структура - параметры резервного копирования ИБ. // Процедура ДополнитьПараметрыРезервногоКопирования(ПараметрыРезервногоКопирования) @@ -343,7 +324,7 @@ КонецПроцедуры // Параметры: -// ДатаНапоминания - Дата - дата и время последнего оповещения пользователя о необходимости проведения резервного +// ДатаНапоминания - Дата - дата и время последнего оповещения пользователя о необходимости проведения резервного // копирования. // Процедура УстановитьДатуПоследнегоНапоминания(ДатаНапоминания) Экспорт @@ -355,8 +336,8 @@ КонецПроцедуры // Параметры: -// ИмяЭлемента - Строка - имя параметра. -// ЗначениеЭлемента - Произвольный - значение параметра. +// ИмяЭлемента - Строка - имя параметра. +// ЗначениеЭлемента - Произвольный - значение параметра. // Процедура УстановитьЗначениеНастройки(ИмяЭлемента, ЗначениеЭлемента) Экспорт @@ -367,7 +348,7 @@ КонецПроцедуры // Параметры: -// НачалоРаботы - Булево - признак вызова при начале работы программы. +// НачалоРаботы - Булево - признак вызова при начале работы программы. // // Возвращаемое значение: // Структура - параметры резервного копирования. @@ -468,8 +449,8 @@ // Вызывается из скрипта через COM-соединение. // // Параметры: -// Результат - Булево - результат копирования. -// ИмяФайлаРезервнойКопии - Строка - имя файла резервной копии. +// Результат - Булево - результат копирования. +// ИмяФайлаРезервнойКопии - Строка - имя файла резервной копии. // Процедура ЗавершитьРезервноеКопирование(Результат, ИмяФайлаРезервнойКопии = "") Экспорт @@ -485,7 +466,7 @@ // Вызывается из скрипта через COM-соединение. // // Параметры: -// Результат - Булево - результат восстановления. +// Результат - Булево - результат восстановления. // Процедура ЗавершитьВосстановление(Результат) Экспорт @@ -506,6 +487,9 @@ КонецФункции +// Параметры: +// ПараметрыСкрипта - см. РезервноеКопированиеИБКлиент.ОбщиеПараметрыСкрипта. +// Функция ПодготовитьОбщиеПараметрыСкрипта(Знач ПараметрыСкрипта) Экспорт ПараметрыПодключения = ПараметрыСкрипта.ПараметрыСкрипта; @@ -515,11 +499,7 @@ СтрокаСоединенияИнформационнойБазы = Лев(СтрокаСоединенияИнформационнойБазы, СтрДлина(СтрокаСоединенияИнформационнойБазы) - 1); КонецЕсли; - КаталогПрограммы = ""; - ПараметрыСкрипта.Свойство("КаталогПрограммы", КаталогПрограммы); - Если ПустаяСтрока(КаталогПрограммы) Тогда - КаталогПрограммы = КаталогПрограммы(); - КонецЕсли; + КаталогПрограммы = ?(ПустаяСтрока(ПараметрыСкрипта.КаталогПрограммы), КаталогПрограммы(), ПараметрыСкрипта.КаталогПрограммы); ИмяИсполняемогоФайлаПрограммы = КаталогПрограммы + ПараметрыСкрипта.ИмяФайлаПрограммы; // Определение пути к информационной базе. diff --git a/SSL/src/CommonModules/СклонениеПредставленийОбъектов/Module.bsl b/SSL/src/CommonModules/СклонениеПредставленийОбъектов/Module.bsl index 7c1841682..9197d9c40 100644 --- a/SSL/src/CommonModules/СклонениеПредставленийОбъектов/Module.bsl +++ b/SSL/src/CommonModules/СклонениеПредставленийОбъектов/Module.bsl @@ -11,21 +11,21 @@ // Определяет форму ФИО в заданном падеже. // // Параметры: -// ФИО - Строка - строка, в которой содержится ФИО для склонения. -// Падеж - Число - падеж, в который необходимо просклонять представление объекта. +// ФИО - Строка - строка, в которой содержится ФИО для склонения. +// Падеж - Число - падеж, в который необходимо просклонять представление объекта. // 1 - Именительный. // 2 - Родительный. // 3 - Дательный. // 4 - Винительный. // 5 - Творительный. // 6 - Предложный. -// Объект - ОбъектСклонения - ссылка на объект, реквизит которого склоняется. -// Пол - Число - число - пол физического лица, +// Объект - ОбъектСклонения - ссылка на объект, реквизит которого склоняется. +// Пол - Число - число - пол физического лица, // 1 - мужской, // 2 - женский. // // Возвращаемое значение: -// Строка - результат склонения ФИО в падеже. +// Строка - результат склонения ФИО в падеже. // Функция ПросклонятьФИО(ФИО, Падеж, Объект = Неопределено, Пол = Неопределено) Экспорт @@ -40,8 +40,8 @@ // Склоняет представление объекта. // // Параметры: -// Представление - Строка - строка, в которой содержится ФИО для склонения. -// Падеж - Число - падеж, в который необходимо просклонять представление объекта. +// Представление - Строка - строка, в которой содержится ФИО для склонения. +// Падеж - Число - падеж, в который необходимо просклонять представление объекта. // 1 - Именительный. // 2 - Родительный. // 3 - Дательный. @@ -127,7 +127,7 @@ // Определяет доступен ли сервис склонения. // // Возвращаемое значение: -// Булево - Истина, если веб-сервис склонения доступен. +// Булево - Истина, если веб-сервис склонения доступен. // Функция ДоступенСервисСклонения() Экспорт @@ -151,7 +151,7 @@ // Представление - Строка - строка для склонения. // Объект - ОбъектСклонения - объект для склонения. // ЭтоФИО - Булево - признак склонения ФИО. -// Пол - Число - пол физического лица (в случае склонения ФИО) +// Пол - Число - пол физического лица (в случае склонения ФИО) // 1 - мужской // 2 - женский. // @@ -208,9 +208,9 @@ // Только для работы на ОС Windows. // // Параметры: -// Объект - ОпределяемыйТип.ОбъектСклонения - ссылка на объект, в котором содержится реквизит для склонения. -// ВидПредставления - Строка - имя реквизита объекта для склонения. -// Падеж - Число - падеж, в который необходимо просклонять представление объекта. +// Объект - ОпределяемыйТип.ОбъектСклонения - ссылка на объект, в котором содержится реквизит для склонения. +// ВидПредставления - Строка - имя реквизита объекта для склонения. +// Падеж - Число - падеж, в который необходимо просклонять представление объекта. // 1 - Именительный. // 2 - Родительный. // 3 - Дательный. @@ -219,7 +219,7 @@ // 6 - Предложный. // // Возвращаемое значение: -// Строка - результат склонения представления объекта в падеже. +// Строка - результат склонения представления объекта в падеже. // Функция Просклонять(Представление, Падеж, Объект = Неопределено, ПараметрыСклонения = Неопределено) @@ -251,17 +251,17 @@ // Параметры: // Представление - Строка - строка для склонения. // ЭтоФИО - Булево - признак склонения ФИО. -// Пол - Число - пол физического лица (в случае склонения ФИО): 1 - мужской, 2 - женский. +// Пол - Число - пол физического лица (в случае склонения ФИО): 1 - мужской, 2 - женский. // ПоказыватьСообщения - Булево - признак, определяющий нужно ли показывать пользователю сообщения об ошибках. // // Возвращаемое значение: -// Структура: -// * Именительный - Строка. -// * Родительный - Строка. -// * Дательный - Строка. -// * Винительный - Строка. -// * Творительный - Строка. -// * Предложный - Строка. +// Структура: +// * Именительный - Строка. +// * Родительный - Строка. +// * Дательный - Строка. +// * Винительный - Строка. +// * Творительный - Строка. +// * Предложный - Строка. // Функция ПросклонятьПредставлениеПоВсемПадежам(Представление, ПараметрыСклонения = Неопределено, ПоказыватьСообщения = Ложь) @@ -281,8 +281,8 @@ // // Параметры: // Представление - Строка - строка для склонения. -// ЭтоФИО - Булево - признак склонения ФИО. -// Пол - Число - пол физического лица (в случае склонения ФИО) +// ЭтоФИО - Булево - признак склонения ФИО. +// Пол - Число - пол физического лица (в случае склонения ФИО) // 1 - мужской // 2 - женский. // ПараметрыСклонения diff --git a/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиент/Module.bsl b/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиент/Module.bsl index 89085f719..9567fb521 100644 --- a/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиент/Module.bsl +++ b/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиент/Module.bsl @@ -70,7 +70,7 @@ // Форма - ФормаКлиентскогоПриложения - форма объекта склонения. // Представление - Строка - строка для склонения. // ЭтоФИО - Булево - признак склонения ФИО. -// Пол - Число - пол физического лица (в случае склонения ФИО) +// Пол - Число - пол физического лица (в случае склонения ФИО) // 1 - мужской // 2 - женский. // ПоказыватьСообщения - Булево - признак, определяющий нужно ли показывать пользователю сообщения об ошибках. @@ -92,7 +92,7 @@ // Форма - ФормаКлиентскогоПриложения - форма объекта склонения. // Представление - Строка - строка для склонения. // ЭтоФИО - Булево - признак склонения ФИО. -// Пол - Число - пол физического лица (в случае склонения ФИО) +// Пол - Число - пол физического лица (в случае склонения ФИО) // 1 - мужской // 2 - женский. // diff --git a/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиентСервер/Module.bsl b/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиентСервер/Module.bsl index a501f0ff7..4c3accba8 100644 --- a/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиентСервер/Module.bsl @@ -34,13 +34,13 @@ // Возвращает пустую структуру склонения. // // Возвращаемое значение: -// Структура: -// *ИменительныйПадеж - Строка. -// *РодительныйПадеж - Строка. -// *ДательныйПадеж - Строка -// *ВинительныйПадеж - Строка. -// *ТворительныйПадеж - Строка. -// *ПредложныйПадеж - Строка. +// Структура: +// *ИменительныйПадеж - Строка. +// *РодительныйПадеж - Строка. +// *ДательныйПадеж - Строка +// *ВинительныйПадеж - Строка. +// *ТворительныйПадеж - Строка. +// *ПредложныйПадеж - Строка. // Функция СтруктураСклонения() Экспорт diff --git a/SSL/src/CommonModules/СоединенияИБ/Module.bsl b/SSL/src/CommonModules/СоединенияИБ/Module.bsl index dfe2d4d15..1085515ca 100644 --- a/SSL/src/CommonModules/СоединенияИБ/Module.bsl +++ b/SSL/src/CommonModules/СоединенияИБ/Module.bsl @@ -200,11 +200,11 @@ // // Возвращаемое значение: // Структура: -// Начало - Дата - время начала действия блокировки. -// Конец - Дата - время завершения действия блокировки. -// Сообщение - Строка - сообщения для пользователей, выполняющих вход в заблокированную область данных. -// Установлена - Булево - признак того, что блокировка установлена. -// Эксклюзивная - Булево - блокировка не может быть изменена администратором приложения. +// * Начало - Дата - время начала действия блокировки. +// * Конец - Дата - время завершения действия блокировки. +// * Сообщение - Строка - сообщения для пользователей, выполняющих вход в заблокированную область данных. +// * Установлена - Булево - признак того, что блокировка установлена. +// * Эксклюзивная - Булево - блокировка не может быть изменена администратором приложения. // Функция НовыеПараметрыБлокировкиСоединений() Экспорт @@ -358,7 +358,7 @@ // Названия соединений разделены символом переноса строки. // // Параметры: -// Сообщение - Строка - передаваемая строка. +// Сообщение - Строка - передаваемая строка. // // Возвращаемое значение: // Строка - названия соединений. @@ -533,37 +533,15 @@ КонецПроцедуры -// Параметры: -// Типы - см. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки.Типы -// +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт Типы.Добавить(Метаданные.РегистрыСведений.БлокировкиСеансовОбластейДанных); КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. -// // Параметры: -// ТекущиеДела - ТаблицаЗначений - определяет параметры дела: -// * Идентификатор - Строка - внутренний идентификатор дела, используемый подсистемой. -// * ЕстьДела - Булево - если Истина, дело выводится в списке текущих дел пользователя. -// * Важное - Булево - если Истина, дело будет выделено красным цветом. -// * ВыводитьВОповещениях - Булево - если Истина, уведомление о деле будет дублироваться всплывающим -// оповещением и отображением в центре оповещений. -// * СкрыватьВНастройках - Булево - если Истина, то дело будет скрыто в форме настроек текущих дел. -// Можно применять для дел, которые не предполагают многократного -// использования, т.е. после выполнения они для данной информационной базы -// больше отображаться не будут. -// * Представление - Строка - представление дела, выводимое пользователю. -// * Количество - Число - количественный показатель дела, выводится в строке заголовка дела. -// * Форма - Строка - полный путь к форме, которую необходимо открыть при нажатии на гиперссылку -// дела на панели "Текущие дела". -// * ПараметрыФормы - Структура - параметры, с которыми нужно открывать форму показателя. -// * Владелец - Строка -// - объект метаданных - строковый идентификатор дела, которое будет владельцем для текущего -// или объект метаданных подсистема. -// * Подсказка - Строка - текст подсказки. +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт @@ -640,7 +618,7 @@ // Возвращает текст сообщения блокировки сеансов. // // Параметры: -// Сообщение - Строка - сообщение для блокировки. +// Сообщение - Строка - сообщение для блокировки. // КодРазрешения - Строка - код разрешения для входа в информационную базу. // // Возвращаемое значение: @@ -692,6 +670,10 @@ // См. описание в функции ПараметрыБлокировкиСеансов. // +// Параметры: +// ПолучитьКоличествоСеансов - Булево +// ПараметрыБлокировки - см. ТекущиеПараметрыБлокировкиСоединений +// Функция ПараметрыБлокировкиСеансовРасширенные(Знач ПолучитьКоличествоСеансов, ПараметрыБлокировки) Если ПараметрыБлокировки.УстановленаБлокировкаСоединенийИБНаДату Тогда @@ -722,10 +704,16 @@ КонецФункции +// Возвращаемое значение: +// Структура: +// * УстановленаБлокировкаСоединенийИБНаДату - Булево +// * ТекущийРежимОбластиДанных - см. НовыеПараметрыБлокировкиСоединений +// * ТекущийРежимИБ - см. НовыеПараметрыБлокировкиСоединений +// * ТекущаяДата - Дата +// Функция ТекущиеПараметрыБлокировкиСоединений() - // ТекущаяДатаСеанса не используется, т.к. блокировка устанавливается в часовом поясе сервера. - ТекущаяДата = ТекущаяДата(); + ТекущаяДата = ТекущаяДата(); // АПК:143 ТекущаяДатаСеанса не используется, т.к. блокировка в часовом поясе сервера. УстановитьПривилегированныйРежим(Истина); ТекущийРежимИБ = ПолучитьБлокировкуСеансов(); diff --git a/SSL/src/CommonModules/СоединенияИБКлиент/Module.bsl b/SSL/src/CommonModules/СоединенияИБКлиент/Module.bsl index 623b5d838..2b1eb313b 100644 --- a/SSL/src/CommonModules/СоединенияИБКлиент/Module.bsl +++ b/SSL/src/CommonModules/СоединенияИБКлиент/Module.bsl @@ -11,15 +11,15 @@ // Открывает форму ввода параметров администрирования информационной базы и/или кластера. // // Параметры: -// ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - обработчик, который будет вызван после ввода параметров +// ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - обработчик, который будет вызван после ввода параметров // администрирования. -// ЗапрашиватьПараметрыАдминистрированияИБ - Булево - признак необходимости ввода параметров администрирования +// ЗапрашиватьПараметрыАдминистрированияИБ - Булево - признак необходимости ввода параметров администрирования // информационной базы. -// ЗапрашиватьПараметрыАдминистрированияКластера - Булево - признак необходимости ввода параметров администрирования +// ЗапрашиватьПараметрыАдминистрированияКластера - Булево - признак необходимости ввода параметров администрирования // кластера. -// ПараметрыАдминистрирования - см. СтандартныеПодсистемыСервер.ПараметрыАдминистрирования. -// Заголовок - Строка - заголовок формы, описывающий для чего запрашиваются параметры администрирования. -// ПоясняющаяНадпись - Строка - пояснение для выполняемого действия, в контексте которого запрашиваются параметры. +// ПараметрыАдминистрирования - см. СтандартныеПодсистемыСервер.ПараметрыАдминистрирования. +// Заголовок - Строка - заголовок формы, описывающий для чего запрашиваются параметры администрирования. +// ПоясняющаяНадпись - Строка - пояснение для выполняемого действия, в контексте которого запрашиваются параметры. // Процедура ПоказатьПараметрыАдминистрирования(ОписаниеОповещенияОЗакрытии, ЗапрашиватьПараметрыАдминистрированияИБ, ЗапрашиватьПараметрыАдминистрированияКластера, ПараметрыАдминистрирования = Неопределено, diff --git a/SSL/src/CommonModules/СоединенияИБКлиентСервер/Module.bsl b/SSL/src/CommonModules/СоединенияИБКлиентСервер/Module.bsl index f15a36677..a4d846ceb 100644 --- a/SSL/src/CommonModules/СоединенияИБКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/СоединенияИБКлиентСервер/Module.bsl @@ -86,7 +86,7 @@ // Используется в целях локализации. // // Возвращаемое значение: -// Строка - текст для администратора. +// Строка - текст для администратора. // Функция ТекстДляАдминистратора() Экспорт @@ -97,10 +97,10 @@ // Возвращает пользовательский текст сообщения блокировки сеансов. // // Параметры: -// Сообщение - Строка - полное сообщение. +// Сообщение - Строка - полное сообщение. // // Возвращаемое значение: -// Строка - сообщение блокировки. +// Строка - сообщение блокировки. // Функция ИзвлечьСообщениеБлокировки(Знач Сообщение) Экспорт diff --git a/SSL/src/CommonModules/СоединенияИБПереопределяемый/Module.bsl b/SSL/src/CommonModules/СоединенияИБПереопределяемый/Module.bsl index fe9849e4f..70bc24090 100644 --- a/SSL/src/CommonModules/СоединенияИБПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/СоединенияИБПереопределяемый/Module.bsl @@ -11,7 +11,7 @@ // Позволяет модифицировать параметры блокировки сеансов. // // Параметры: -// ПараметрыБлокировкиСеансов - см. СоединенияИБ.ПараметрыБлокировкиСеансов +// ПараметрыБлокировкиСеансов - см. СоединенияИБ.ПараметрыБлокировкиСеансов // Процедура ПриОпределенииПараметровБлокировкиСеансов(ПараметрыБлокировкиСеансов) Экспорт diff --git a/SSL/src/CommonModules/СозданиеНаОсновании/Module.bsl b/SSL/src/CommonModules/СозданиеНаОсновании/Module.bsl index 0294b20c7..1ed5faf9f 100644 --- a/SSL/src/CommonModules/СозданиеНаОсновании/Module.bsl +++ b/SSL/src/CommonModules/СозданиеНаОсновании/Module.bsl @@ -73,10 +73,10 @@ // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту. // // Параметры: -// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы -// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники -// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки -// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды +// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы +// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники +// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки +// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды // Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт КомандыСозданияНаОсновании = Команды.СкопироватьКолонки(); @@ -262,6 +262,10 @@ КонецПроцедуры +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// ДинамическоеПодменюСозданияНаОсновании - см. ПодключаемыеКоманды.ЗарегистрироватьПодменю +// Процедура СкрытьСтандартноеПодменюВводаНаОсновании(Форма, ДинамическоеПодменюСозданияНаОсновании) ПодменюСоздатьНаОсновании = Форма.Элементы.Найти("ФормаСоздатьНаОсновании"); diff --git a/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2/Module.bsl b/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2/Module.bsl index 9391dc6f2..95d551d62 100644 --- a/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2/Module.bsl +++ b/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2/Module.bsl @@ -115,7 +115,6 @@ ИначеЕсли Assignment.Тип() = ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.ТипНазначениеСправочникамИДокументам(ПакетМанифеста()) Тогда Для Каждого AssignmentObject Из Assignment.Objects Цикл - СтрокаНазначения = НастройкиНазначения.Добавить(); ОбъектНазначения = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(AssignmentObject.ObjectName, Ложь); СтрокаРаздела.ОбъектНазначения = ?(ЗначениеЗаполнено(ОбъектНазначения), ОбъектНазначения, Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка()); КонецЦикла; diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыВызовСервера/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыВызовСервера/Module.bsl index 341119e9b..fc6477b54 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыВызовСервера/Module.bsl @@ -178,10 +178,14 @@ Или ВходВОбластьДанных И Не ПравоДоступа("АдминистрированиеДанных", Метаданные) Тогда - ВызватьИсключение НСтр("ru = 'Недостаточно прав для работы с отключенной логикой работы системы.'"); + ТекстОшибки = НСтр("ru = 'Недостаточно прав для работы с отключенной логикой начала работы системы.'"); + Иначе + ТекстОшибки = ПользователиСлужебный.ОшибкаПроверкиПравТекущегоПользователяПриВходе(); КонецЕсли; - ПользователиСлужебный.ПроверитьПраваТекущегоПользователяПриВходе(); + Если ЗначениеЗаполнено(ТекстОшибки) Тогда + СвойстваКлиента.Вставить("ОшибкаНетПраваОтключитьЛогикуНачалаРаботыСистемы", ТекстОшибки); + КонецЕсли; КонецПроцедуры @@ -218,6 +222,7 @@ Или Справочники.ВерсииРасширений.РасширенияИзмененыДинамически()); ДинамическиеИзменения = Справочники.ВерсииРасширений.ДинамическиИзмененныеРасширения(); + МожноОповещать = Истина; Если ДинамическиеИзменения.Исправления <> Неопределено И ДинамическиеИзменения.Расширения = Неопределено diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl index 4939036fb..ff20dc2f4 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl @@ -71,19 +71,15 @@ // ДополнительныеПараметры - Структура // ТекстВопроса - Строка - текст задаваемого вопроса. // Кнопки - РежимДиалогаВопрос -// - СписокЗначений - может быть задан список значений, в котором: -// Значение - содержит значение, связанное с -// кнопкой и возвращаемое при выборе кнопки. В качестве значения может -// использоваться значение +// - СписокЗначений - может быть задан список значений, в котором: +// Значение - содержит значение, связанное с кнопкой и возвращаемое при +// ее нажатии. В качестве значения может использоваться значение // перечисления КодВозвратаДиалога, а также другие значения, // поддерживающее XDTO-сериализацию. -// Представление - задает текст кнопки. +// Представление - текст кнопки. // // ДополнительныеПараметры - см. СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю. // -// Возвращаемое значение: -// Результат выбора пользователя будет передан в метод, описанный параметром ОписаниеОповещенияОЗавершении. -// Процедура ПоказатьВопросПользователю(ОписаниеОповещенияОЗавершении, ТекстВопроса, Кнопки, ДополнительныеПараметры = Неопределено) Экспорт Параметры = ПараметрыВопросаПользователю(); @@ -277,14 +273,20 @@ Если ОтключенаЛогикаНачалаРаботыСистемы() Тогда Попытка - // Проверка права и заполнение параметров работы клиента на сервере. + // Проверка права отключения и заполнение параметров работы клиента на сервере. СвойстваКлиента = Новый Структура; ЗаполнитьПараметрыРаботыКлиентаНаСервере(СвойстваКлиента); СтандартныеПодсистемыВызовСервера.ПроверитьПравоОтключитьЛогикуНачалаРаботыСистемы(СвойстваКлиента); + Если СвойстваКлиента.Свойство("ОшибкаНетПраваОтключитьЛогикуНачалаРаботыСистемы") Тогда + ПользователиСлужебныйКлиент.УстановитьИнтерактивнуюОбработкуПриОшибкеНедостаточноПравДляВходаВПрограмму( + Параметры, СвойстваКлиента.ОшибкаНетПраваОтключитьЛогикуНачалаРаботыСистемы); + КонецЕсли; Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); + ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + СтандартныеПодсистемыВызовСервера.ЗаписатьОшибкуВЖурналРегистрацииПриЗапускеИлиЗавершении( + Ложь, "Запуск", ТекстОшибки); ПользователиСлужебныйКлиент.УстановитьИнтерактивнуюОбработкуПриОшибкеНедостаточноПравДляВходаВПрограмму( - Параметры, КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); + Параметры, ТекстОшибки); КонецПопытки; Если ИнтерактивнаяОбработкаПередНачаломРаботыСистемы(Параметры) Тогда Возврат; @@ -397,45 +399,11 @@ // Процедура ПередЗавершениемРаботыСистемы(Отказ = Ложь, ТекстПредупреждения = "") Экспорт - Если ОтключенаЛогикаНачалаРаботыСистемы() Тогда + Если Не ВыводитьПредупрежденияПередЗавершениемРаботыСистемы(Отказ) Тогда Возврат; КонецЕсли; - - ПараметрыПриЗапускеПрограммы = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыПриЗапускеПрограммы"]; - - Если ПараметрыПриЗапускеПрограммы.Свойство("СкрытьРабочийСтолПриНачалеРаботыСистемы") Тогда - // Произошла попытка закрытия до окончания запуска. - #Если ВебКлиент Тогда - // В веб-клиенте это возможно в штатном случае (при закрытии страницы в целом), - // поэтому закрытие блокируется, так как его все равно можно выполнить принудительно, - // а в случае случайного закрытия у пользователя должна быть возможность остаться на странице. - Отказ = Истина; - #Иначе - // Не в веб-клиенте это возможно в случае ошибок в немодальной последовательности запуска. - // То есть нет ни одного окна блокирующего весь интерфейс. Закрытие нужно разрешить, - // но без стандартных процедур перед завершение работы системы, так как они могут - // привести к ошибке в процессе закрытия из-за незавершенного запуска. - #КонецЕсли - Возврат; - КонецЕсли; - - // В режиме работы толстый клиент (обычное приложение) не выводится список предупреждений. -#Если ТолстыйКлиентОбычноеПриложение Тогда - Возврат; -#КонецЕсли - - Если ПараметрыПриложения["СтандартныеПодсистемы.ПропуститьПредупреждениеПередЗавершениемРаботыСистемы"] = Истина Тогда - Возврат; - КонецЕсли; - - Если Не ПараметрКлиента("ДоступноИспользованиеРазделенныхДанных") Тогда - Возврат; - КонецЕсли; - - Предупреждения = Новый Массив; - ИнтеграцияПодсистемБСПКлиент.ПередЗавершениемРаботыСистемы(Отказ, Предупреждения); - ОбщегоНазначенияКлиентПереопределяемый.ПередЗавершениемРаботыСистемы(Отказ, Предупреждения); - + + Предупреждения = ПредупрежденияПередЗавершениемРаботыСистемы(Отказ); Если Предупреждения.Количество() = 0 Тогда Если Не ПараметрКлиента("ЗапрашиватьПодтверждениеПриЗавершенииПрограммы") Тогда Возврат; @@ -678,6 +646,9 @@ // Возвращает имя исполняемого файла в зависимости от вида клиента. // +// Возвращаемое значение: +// Строка +// Функция ИмяИсполняемогоФайлаПриложения(ПолучитьИмяФайлаКонфигуратора = Ложь) Экспорт ШаблонИмениФайла = "1cv8[УчебнаяПлатформа].exe"; @@ -747,6 +718,10 @@ КонецФункции // Проверяет, выполнено ли опасное отключение процедур запуска для целей автоматического тестирования. +// +// Возвращаемое значение: +// Булево +// Функция ОтключенаЛогикаНачалаРаботыСистемы() Экспорт Возврат СтрНайти(ПараметрЗапуска, "ОтключитьЛогикуНачалаРаботыСистемы") > 0; КонецФункции @@ -756,7 +731,7 @@ // Возвращаемое значение: // Структура: // * Ключ - Строка - имя элемента стиля. -// * Значение - ОбъектМетаданных: ЭлементСтиля - элемент стиля. +// * Значение - ОбъектМетаданныхЭлементСтиля. // Функция ЭлементыСтиля() Экспорт @@ -777,10 +752,11 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Табличный документ - // Переадресует оповещение без результата на оповещение с результатом. +// +// Возвращаемое значение: +// ОписаниеОповещения +// Функция ОповещениеБезРезультата(ОповещениеСРезультатом) Экспорт Возврат Новый ОписаниеОповещения("ВыполнитьОповещениеСПустымРезультатом", ЭтотОбъект, ОповещениеСРезультатом); @@ -841,7 +817,7 @@ // Ссылка - ЛюбаяСсылка - объект, который необходимо показать в списке. // ИмяФормыСписка - Строка - имя формы списка. // Если передать Неопределено то будет определена автоматически (потребуется вызов сервера). -// ПараметрыФормы - Структура - необязательный. Дополнительные параметры открытия формы списка. +// ПараметрыФормы - Структура - дополнительные параметры открытия формы списка. // Процедура ПоказатьВСписке(Ссылка, ИмяФормыСписка, ПараметрыФормы = Неопределено) Экспорт Если Ссылка = Неопределено Тогда @@ -873,7 +849,7 @@ // Обработчик - ОписаниеОповещения - описание процедуры, которая будет вызвана после завершения показа. // Возвращаемое значение аналогично ПоказатьВопросПользователю(). // Текст - Строка - текст информации. -// Заголовок - Строка - необязательный. Заголовок окна. По умолчанию "Подробнее". +// Заголовок - Строка - заголовок окна. По умолчанию "Подробнее". // Процедура ПоказатьПодробнуюИнформацию(Обработчик, Текст, Заголовок = Неопределено) Экспорт НастройкиДиалога = Новый Структура; @@ -896,6 +872,10 @@ КонецПроцедуры // Шапка файла для технической поддержки. +// +// Возвращаемое значение: +// Строка +// Функция ИнформацияДляПоддержки() Экспорт Текст = НСтр("ru = 'Название программы: [НазваниеПрограммы] @@ -943,6 +923,9 @@ // Каталог системных приложений, например, "C:\Windows\System32". // Используется только в ОС Windows. // +// Возвращаемое значение: +// Строка +// Функция КаталогСистемныхПриложений() Экспорт ОбъектShell = Новый COMОбъект("Shell.Application"); @@ -1450,7 +1433,42 @@ //////////////////////////////////////////////////////////////////////////////// // ПередЗавершениемРаботыСистемы +// Только для внутреннего использования. +// +// Возвращаемое значение: +// Структура: +// Отказ - Булево +// Предупреждения - Массив из см. СтандартныеПодсистемыКлиент.ПредупреждениеПриЗавершенииРаботы. +// ИнтерактивнаяОбработка - ОписаниеОповещения, Неопределено +// ОбработкаПродолжения - ОписаниеОповещения, Неопределено +// НепрерывноеВыполнение - Булево +// ОбработкаЗавершения - ОписаниеОповещения +// +Функция ПараметрыДействийПередЗавершениемРаботыСистемы() Экспорт + + Параметры = Новый Структура; + + // Внешние параметры описания результата. + Параметры.Вставить("Отказ", Ложь); + Параметры.Вставить("Предупреждения", ПараметрКлиента("ПредупрежденияПриЗавершенииРаботы")); + + // Внешние параметры управления выполнением. + Параметры.Вставить("ИнтерактивнаяОбработка", Неопределено); // ОписаниеОповещения. + Параметры.Вставить("ОбработкаПродолжения", Неопределено); // ОписаниеОповещения. + Параметры.Вставить("НепрерывноеВыполнение", Истина); + + // Внутренние параметры. + Параметры.Вставить("ОбработкаЗавершения", Новый ОписаниеОповещения( + "ДействияПередЗавершениемРаботыСистемыОбработкаЗавершения", СтандартныеПодсистемыКлиент, Параметры)); + Возврат Параметры; + +КонецФункции + // Только для внутреннего использования. Продолжение процедуры ПередЗавершениемРаботыСистемы. +// +// Параметры: +// Параметры - см. СтандартныеПодсистемыКлиент.ПараметрыДействийПередЗавершениемРаботыСистемы +// Процедура ДействияПередЗавершениемРаботыСистемы(Параметры) Экспорт Параметры.Вставить("ОбработкаПродолжения", Параметры.ОбработкаЗавершения); @@ -1472,6 +1490,11 @@ КонецПроцедуры // Только для внутреннего использования. Завершение процедуры ПередЗавершениемРаботыСистемы. +// +// Параметры: +// Неопределен - Неопределено +// Параметры - см. СтандартныеПодсистемыКлиент.ПараметрыДействийПередЗавершениемРаботыСистемы +// Процедура ДействияПередЗавершениемРаботыСистемыОбработкаЗавершения(Неопределен, Параметры) Экспорт Параметры.ОбработкаПродолжения = Неопределено; @@ -1491,9 +1514,9 @@ // // Параметры: // Неопределен - Неопределено -// ДополнительныеПараметры - Структура: -// * Параметры - Структура -// * ОбработкаПродолжения - ОписаниеОповещения +// ДополнительныеПараметры - Структура: +// * Параметры - см. СтандартныеПодсистемыКлиент.ПараметрыДействийПередЗавершениемРаботыСистемы +// * ОбработкаПродолжения - ОписаниеОповещения // Процедура ДействияПередЗавершениемРаботыСистемыПослеОбработкиОшибки(Неопределен, ДополнительныеПараметры) Экспорт @@ -1677,10 +1700,11 @@ Возврат; КонецЕсли; - Форма = ОткрытьФорму("ОбщаяФорма.РегиональныеНастройки",,,,,, - Новый ОписаниеОповещения("ПослеЗакрытияФормыВыбораНачальныхРегиональныхНастроекИБ", ЭтотОбъект, Параметры)); - - Если Форма = Неопределено Тогда + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент"); + ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗакрытияФормыВыбораНачальныхРегиональныхНастроекИБ", ЭтотОбъект, Параметры); + МодульМультиязычностьКлиент.ОткрытьФормуРегиональныхНастроек(ОписаниеОповещения); + Иначе ПослеЗакрытияФормыВыбораНачальныхРегиональныхНастроекИБ(Новый Структура("Отказ", Истина), Параметры); КонецЕсли; @@ -1826,6 +1850,12 @@ ПодключитьОбработчикОжиданияСтандартныхПериодическихПроверок(); + Если ВыводитьПредупрежденияПередЗавершениемРаботыСистемы(Ложь) Тогда + // Предварительная компиляция клиентских модулей для избежания неявных серверных вызовов + // в обработчике ПередЗавершениемРаботыСистемы. + ПредупрежденияПередЗавершениемРаботыСистемы(Ложь); + КонецЕсли; + КонецПроцедуры // Вызывается из обработчика ожидания каждые 20 минут, например, для контроля @@ -1900,6 +1930,54 @@ КонецПроцедуры +Функция ВыводитьПредупрежденияПередЗавершениемРаботыСистемы(Отказ) + + Если ОтключенаЛогикаНачалаРаботыСистемы() Тогда + Возврат Ложь; + КонецЕсли; + + ПараметрыПриЗапускеПрограммы = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыПриЗапускеПрограммы"]; + + Если ПараметрыПриЗапускеПрограммы.Свойство("СкрытьРабочийСтолПриНачалеРаботыСистемы") Тогда + // Произошла попытка закрытия до окончания запуска. + // В веб-клиенте это возможно в штатном случае (при закрытии страницы в целом), + // поэтому закрытие блокируется, так как его все равно можно выполнить принудительно, + // а в случае случайного закрытия у пользователя должна быть возможность остаться на странице. + // Не в веб-клиенте это возможно в случае ошибок в немодальной последовательности запуска. + // То есть нет ни одного окна блокирующего весь интерфейс. Закрытие нужно разрешить, + // но без стандартных процедур перед завершение работы системы, так как они могут + // привести к ошибке в процессе закрытия из-за незавершенного запуска. +#Если Не ВебКлиент Тогда + Отказ = Истина; +#КонецЕсли + Возврат Ложь; + КонецЕсли; + + // В режиме работы толстый клиент (обычное приложение) не выводится список предупреждений. +#Если ТолстыйКлиентОбычноеПриложение Тогда + Возврат Ложь; +#КонецЕсли + + Если ПараметрыПриложения["СтандартныеПодсистемы.ПропуститьПредупреждениеПередЗавершениемРаботыСистемы"] = Истина Тогда + Возврат Ложь; + КонецЕсли; + + Если Не ПараметрКлиента("ДоступноИспользованиеРазделенныхДанных") Тогда + Возврат Ложь; + КонецЕсли; + Возврат Истина; + +КонецФункции + +Функция ПредупрежденияПередЗавершениемРаботыСистемы(Отказ) + + Предупреждения = Новый Массив; + ИнтеграцияПодсистемБСПКлиент.ПередЗавершениемРаботыСистемы(Отказ, Предупреждения); + ОбщегоНазначенияКлиентПереопределяемый.ПередЗавершениемРаботыСистемы(Отказ, Предупреждения); + Возврат Предупреждения; + +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Для справочника ИдентификаторыОбъектовМетаданных. @@ -2221,7 +2299,7 @@ // Если добавлен новый полученный параметр клиента, обновляет параметры работы клиента. // // Параметры: -// Параметры - см. ОбщегоНазначенияКлиентПереопределяемый.ПередНачаломРаботыСистемы. +// Параметры - см. ОбщегоНазначенияКлиентПереопределяемый.ПередНачаломРаботыСистемы.Параметры. // // Возвращаемое значение: // Булево - Истина, если можно продолжить выполнения, и соответственно, не выполнялся @@ -2243,7 +2321,7 @@ // Обрабатывает ошибку, найденную при вызове обработчика события ПриНачалеРаботыСистемы. // // Параметры: -// Параметры - см. ОбщегоНазначенияКлиентПереопределяемый.ПриНачалеРаботыСистемы. +// Параметры - см. ОбщегоНазначенияКлиентПереопределяемый.ПриНачалеРаботыСистемы.Параметры. // ИнформацияОбОшибке - ИнформацияОбОшибке - информация об ошибке. // ПрекратитьРаботу - Булево - если указано Истина, то при ошибке запуска не будет возможности продолжить работу. // @@ -2256,7 +2334,7 @@ // Проверяет результат обработчика события ПередНачаломРаботыСистемы и выполняет обработчик оповещения. // // Параметры: -// Параметры - см. ОбщегоНазначенияКлиентПереопределяемый.ПередНачаломРаботыСистемы. +// Параметры - см. ОбщегоНазначенияКлиентПереопределяемый.ПередНачаломРаботыСистемы.Параметры. // // Возвращаемое значение: // Булево - Истина, если был выполнен обработчик оповещения, указанный @@ -2311,7 +2389,7 @@ // Проверяет результат интерактивной обработки, если Отказ, тогда вызывает обработку завершения. // // Параметры: -// Параметры - см. ОбщегоНазначенияКлиентПереопределяемый.ПриНачалеРаботыСистемы. +// Параметры - см. ОбщегоНазначенияКлиентПереопределяемый.ПриНачалеРаботыСистемы.Параметры. // // Возвращаемое значение: // Булево - Истина, если можно продолжить выполнения, и соответственно, не выполнялся @@ -2331,7 +2409,7 @@ // Обрабатывает ошибку, найденную при вызове обработчика события ПриНачалеРаботыСистемы. // // Параметры: -// Параметры - см. ОбщегоНазначенияКлиентПереопределяемый.ПриНачалеРаботыСистемы. +// Параметры - см. ОбщегоНазначенияКлиентПереопределяемый.ПриНачалеРаботыСистемы.Параметры. // ИнформацияОбОшибке - ИнформацияОбОшибке - информация об ошибке. // ПрекратитьРаботу - Булево - если указано Истина, то при ошибке запуска не будет возможности продолжить работу. // @@ -2344,7 +2422,7 @@ // Проверяет результат обработчика события ПриНачалеРаботыСистемы и выполняет обработчик оповещения. // // Параметры: -// Параметры - см. ОбщегоНазначенияКлиентПереопределяемый.ПриНачалеРаботыСистемы. +// Параметры - см. ОбщегоНазначенияКлиентПереопределяемый.ПриНачалеРаботыСистемы.Параметры. // // Возвращаемое значение: // Булево - Истина, если был выполнен обработчик оповещения, указанный в @@ -2501,9 +2579,9 @@ // "ОбщаяФорма.ВопросПередЗавершениемРаботыСистемы". // // Параметры: -// Параметры - сквозные параметры цепочки вызовов процедуры ПередЗавершениемРаботыСистемы. -// ОбработкаОтвета - ОписаниеОповещения для продолжения после получения ответа пользователя. -// ПредупреждениеПользователю - Структура - структура передаваемого предупреждения. +// Параметры - см. СтандартныеПодсистемыКлиент.ПараметрыДействийПередЗавершениемРаботыСистемы. +// ОбработкаОтвета - ОписаниеОповещения - для продолжения после получения ответа пользователя. +// ПредупреждениеПользователю - см. СтандартныеПодсистемыКлиент.ПредупреждениеПриЗавершенииРаботы. // ИмяФормы - Строка - имя общей формы с вопросами. // ПараметрыФормы - Структура - параметры для формы с вопросами. // diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыКлиентСерверЛокализация/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыКлиентСерверЛокализация/Module.bsl index 94ad2b48d..c88516236 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыКлиентСерверЛокализация/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыКлиентСерверЛокализация/Module.bsl @@ -11,7 +11,9 @@ // Описывает правил транслитерации национального алфавита в латиницу. // // Параметры: -// Правила - Соответствие - ключ как буква национального алфавита, значение как буква латинского алфавита. +// Правила - Соответствие из КлючИЗначение: +// * Ключ - Строка - буква национального алфавита; +// * Значение - Строка - буква латинского алфавита. // Процедура ПриЗаполненииПравилТранслитерации(Правила) Экспорт diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыПовтИсп/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыПовтИсп/Module.bsl index 216f785ee..1e4e91b1a 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыПовтИсп/Module.bsl @@ -14,7 +14,7 @@ // Возвращаемое значение: // ФиксированнаяСтруктура: // * Порядок - Массив из Строка -// * ПоИменам - соответствие из КлючИЗначение - где: +// * ПоИменам - Соответствие из КлючИЗначение: // ** Ключ - Строка // ** Значение - см. НовоеОписаниеПодсистемы // @@ -226,11 +226,10 @@ // Проверка выполняется по более точному алгоритму, если используется подсистема "Обмен данными". // // Параметры: -// ФильтрПоНазначению - Строка - уточняет, наличие какого РИБ проверяется. -// Допустимые значения: -// * Пустая строка - любого РИБ -// * "СФильтром" - РИБ с фильтром -// * "Полный" - РИБ без фильтров. +// ФильтрПоНазначению - Строка - уточняет, наличие какого РИБ проверяется: +// Пустая строка - любого РИБ; +// "СФильтром" - РИБ с фильтром; +// "Полный" - РИБ без фильтров. // // Возвращаемое значение: // Булево @@ -249,11 +248,10 @@ // Проверка выполняется по более точному алгоритму, если используется подсистема "Обмен данными". // // Параметры: -// ФильтрПоНазначению - Строка - задает назначение узлов планов обмена РИБ, которые необходимо вернуть. -// Допустимые значения: -// * Пустая строка - будут возвращены все узлы РИБ -// * "СФильтром" - будут возвращены узлы РИБ с фильтром -// * "Полный" - будут возвращены узлы РИБ без фильтров. +// ФильтрПоНазначению - Строка - задает назначение узлов планов обмена РИБ, которые необходимо вернуть: +// Пустая строка - будут возвращены все узлы РИБ; +// "СФильтром" - будут возвращены узлы РИБ с фильтром; +// "Полный" - будут возвращены узлы РИБ без фильтров. // // Возвращаемое значение: // СписокЗначений @@ -271,8 +269,8 @@ Если ЗначениеЗаполнено(ФильтрПоНазначению) И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда - ОбщийМодульОбменДаннымиСервер = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиСервер"); - НазначениеРИБ = ВРег(ОбщийМодульОбменДаннымиСервер.НазначениеПланаОбмена(ИмяПланаОбмена)); + МодульОбменДаннымиСервер = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиСервер"); + НазначениеРИБ = ВРег(МодульОбменДаннымиСервер.НазначениеПланаОбмена(ИмяПланаОбмена)); Если ФильтрПоНазначению = "СФИЛЬТРОМ" И НазначениеРИБ <> "РИБСФИЛЬТРОМ" Или ФильтрПоНазначению = "ПОЛНЫЙ" И НазначениеРИБ <> "РИБ" Тогда @@ -406,7 +404,7 @@ // Доступность объектов метаданных по функциональным опциям. // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка // * Значение - Булево // @@ -461,7 +459,7 @@ // У "функциональной" подсистемы снят флажок "Включать в командный интерфейс". // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка // * Значение - Булево // @@ -575,7 +573,7 @@ // * Планы видов расчета. // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка - имя предопределенного, // * Значение - СправочникСсылка // - ПланВидовХарактеристикСсылка @@ -652,7 +650,7 @@ // Вспомогательные процедуры и функции // Возвращаемое значение: -// Структура: +// Структура: // * ПараллельноеОтложенноеОбновлениеСВерсии - Строка // * РежимВыполненияОтложенныхОбработчиков - Строка // * ОсновнойСерверныйМодуль - Строка diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl index e993e1878..172961144 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl @@ -47,7 +47,11 @@ ПараметрыСеанса.ПараметрыКлиентаНаСервере = Новый ФиксированноеСоответствие(НезаполненныеПараметрыКлиента); КонецЕсли; Справочники.ВерсииРасширений.УстановкаПараметровСеанса(ИменаПараметровСеанса, УстановленныеПараметры); - МультиязычностьСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса, УстановленныеПараметры); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса, УстановленныеПараметры); + КонецЕсли; // При установке соединения с информационной базой до вызова всех остальных обработчиков. ПередЗапускомПрограммы(); @@ -60,7 +64,11 @@ КонецЕсли; Справочники.ВерсииРасширений.УстановкаПараметровСеанса(ИменаПараметровСеанса, УстановленныеПараметры); - МультиязычностьСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса, УстановленныеПараметры); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса, УстановленныеПараметры); + КонецЕсли; Если ИменаПараметровСеанса.Найти("БуферОбмена") <> Неопределено Тогда ПараметрыСеанса.БуферОбмена = Новый ФиксированнаяСтруктура(Новый Структура("Источник, Данные")); @@ -417,6 +425,45 @@ КонецФункции +// Возвращает версию режима совместимости в формате нумерации редакций и версий, например, 8.3.15.0. +// +// Возвращаемое значение: +// Строка - версия режима совместимости в формате нумерации редакций и версий. +// +Функция ВерсияРежимаСовместимости() Экспорт + + Если Метаданные.РежимСовместимости = Метаданные.СвойстваОбъектов.РежимСовместимости.НеИспользовать Тогда + + Информация = Новый СистемнаяИнформация; + Возврат Информация.ВерсияПриложения; + + КонецЕсли; + + ОписаниеРежимаСовместимости = СтрРазделить(Метаданные.РежимСовместимости, "_"); + Символов = СтрДлина(ОписаниеРежимаСовместимости[0]); + + НомерРедакции = ""; + + Для НомерСимвола = 1 По Символов Цикл + + ТекущийСимвол = Сред(ОписаниеРежимаСовместимости[0], НомерСимвола, 1); + + Если СтрНайти("0123456789", ТекущийСимвол) > 0 Тогда + НомерРедакции = НомерРедакции + ТекущийСимвол; + КонецЕсли; + + КонецЦикла; + + ОписаниеРежимаСовместимости.Установить(0, НомерРедакции); + + Для Индекс = ОписаниеРежимаСовместимости.Количество() По 3 Цикл + ОписаниеРежимаСовместимости.Добавить("0"); + КонецЦикла; + + Возврат СтрСоединить(ОписаниеРежимаСовместимости, "."); + +КонецФункции + #Область УстаревшиеПроцедурыИФункции // Устарела. Веб-клиент более не поддерживает конфигурации, которые используют интерфейс версии 8.2. @@ -1291,6 +1338,13 @@ // Может быть передана ссылка или массив ссылок на измененные объекты, // либо можно указать тип или массив типов измененных объектов. // +// Возвращаемое значение: +// Соответствие из КлючИЗначение: +// * Ключ - Тип - например, ДокументСсылка.ЗаказПокупателя. +// * Значение - Структура: +// ** ИмяСобытия - Строка - например, "Запись_ЗаказПокупателя". +// ** ПустаяСсылка - ЛюбаяСсылка +// Функция ПодготовитьОповещениеФормОбИзменении(ИзмененныеОбъекты) Экспорт Результат = Новый Соответствие; @@ -1401,7 +1455,7 @@ // Возвращает представление начальной (главной) страницы. // // Возвращаемое значение: -// Строка - представление начальной страницы. +// Строка // Функция ПредставлениеНачальнойСтраницы() Экспорт @@ -1412,6 +1466,9 @@ // Проверяет используемую версию платформы и возвращает признак // возможности установки подписанных расширений в базовой версии конфигурации. // +// Возвращаемое значение: +// Булево - Истина, если возможно. +// Функция ДоступнаУстановкаПодписанныхРасширенийВБазовойВерсии() Экспорт ДоступнаУстановка = Истина; @@ -1461,10 +1518,6 @@ КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. -// -// Параметры: -// ИсключенияПоискаСсылок - см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.ИсключенияПоискаСсылок -// Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.БезопасноеХранилищеДанных.Измерения.Владелец); @@ -1480,10 +1533,6 @@ КонецПроцедуры // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке. -// -// Параметры: -// Типы - см. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке.Типы -// Процедура ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы) Экспорт Типы.Добавить(Метаданные.Справочники.ИдентификаторыОбъектовМетаданных); @@ -1491,10 +1540,6 @@ КонецПроцедуры // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. -// -// Параметры: -// Типы - см. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки.Типы -// Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт Типы.Добавить(Метаданные.Константы.АдресПубликацииИнформационнойБазыВИнтернете); @@ -1508,10 +1553,6 @@ КонецПроцедуры // См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. -// -// Параметры: -// ЗапросыРазрешений - см. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам.ЗапросыРазрешений -// Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); @@ -1529,10 +1570,8 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. -// -// Параметры: -// ТекущиеДела - см. ТекущиеДелаСлужебный.ТекущиеДела +// Параметры: +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт @@ -1561,11 +1600,7 @@ КонецПроцедуры -// См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей. -// -// Параметры: -// НазначениеРолей - см. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей.НазначениеРолей -// +// См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей Процедура ПриОпределенииНазначенияРолей(НазначениеРолей) Экспорт // ТолькоДляАдминистраторовСистемы. @@ -1617,10 +1652,6 @@ КонецПроцедуры // См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. -// -// Параметры: -// ШаблоныЗаданий - см. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.ШаблоныЗаданий -// Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт ШаблоныЗаданий.Добавить(Метаданные.РегламентныеЗадания.УдалениеУстаревшихПараметровРаботыВерсийРасширений.Имя); @@ -1628,10 +1659,6 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -1652,21 +1679,6 @@ Обработчик.НачальноеЗаполнение = Истина; Обработчик.Процедура = "ОбновлениеИнформационнойБазыСлужебный.НачальноеЗаполнениеПредопределенныхДанных"; - Обработчик = Обработчики.Добавить(); - Обработчик.Процедура = "МультиязычностьСервер.ОбработатьДанныеДляПереходаНаНовуюВерсию"; - Обработчик.Версия = "3.1.3.270"; - Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.Идентификатор = Новый УникальныйИдентификатор("68d400bb-e5bb-49da-a567-ebf7458b29f8"); - Обработчик.ПроцедураЗаполненияДанныхОбновления = "МультиязычностьСервер.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; - Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; - Обработчик.Комментарий = НСтр("ru = 'Заполнение пустых значений мультиязычных реквизитов значением основного языка.'"); - Обработчик.ОчередьОтложеннойОбработки = 2; - - ОбъектыСНачальнымЗаполнениемСтрокой = ОбновлениеИнформационнойБазыСлужебный.ОбъектыСНачальнымЗаполнениемСтрокой(); - Обработчик.ЧитаемыеОбъекты = ОбъектыСНачальнымЗаполнениемСтрокой; - Обработчик.ИзменяемыеОбъекты = ОбъектыСНачальнымЗаполнениемСтрокой; - Обработчик.БлокируемыеОбъекты = ОбъектыСНачальнымЗаполнениемСтрокой; - КонецПроцедуры // Формирует текст для вывода пользователю при необходимости динамического обновления. @@ -1763,6 +1775,17 @@ КонецФункции +Функция ЯзыкиКонфигурации() Экспорт + + Языки = Новый Массив; + Для каждого Язык Из Метаданные.Языки Цикл + Языки.Добавить(Язык.КодЯзыка); + КонецЦикла; + + Возврат Языки; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -1825,10 +1848,8 @@ // Обязательные параметры для продолжения работы. Параметры.Вставить("РазделениеВключено", ОбщегоНазначения.РазделениеВключено()); - Параметры.Вставить("ДоступноИспользованиеРазделенныхДанных", ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()); - Параметры.Вставить("ЭтоРазделеннаяКонфигурация", ЭтоРазделеннаяКонфигурация); Параметры.Вставить("ЕстьДоступДляОбновленияВерсииПлатформы", Пользователи.ЭтоПолноправныйПользователь(,Истина)); @@ -1842,7 +1863,6 @@ Параметры.Вставить("ЗапрашиватьПодтверждениеПриЗавершенииПрограммы", ЗапрашиватьПодтверждениеПриЗавершенииПрограммы()); ОбщиеПараметры = ОбщегоНазначения.ОбщиеПараметрыБазовойФункциональности(); - Параметры.Вставить("МинимальнаяВерсияПлатформы", ОбщиеПараметры.МинимальнаяВерсияПлатформы); Параметры.Вставить("РекомендуемаяВерсияПлатформы", ОбщиеПараметры.РекомендуемаяВерсияПлатформы); // Устарели. Для обратной совместимости. @@ -1857,14 +1877,11 @@ Параметры.Вставить("ИнформационнаяБазаФайловая", ОбщегоНазначения.ИнформационнаяБазаФайловая()); Если ЭтоВызовПередНачаломРаботыСистемы Тогда - Параметры.Вставить("ЭлементыСтиля", НаборЭлементовСтиля()); - КонецЕсли; Если ЭтоВызовПередНачаломРаботыСистемы И Не Параметры.ПолученныеПараметрыКлиента.Свойство("ОпцииИнтерфейса") Тогда - Параметры.Вставить("ОпцииИнтерфейса", СтандартныеПодсистемыПовтИсп.ОпцииИнтерфейса()); КонецЕсли; @@ -1884,7 +1901,6 @@ МодульБлокировкаРаботыСВнешнимиРесурсами.ПриДобавленииПараметровРаботыКлиентаПриЗапуске( Параметры, ЭтоВызовПередНачаломРаботыСистемы); - МодульРегламентныеЗаданияСлужебный = ОбщегоНазначения.ОбщийМодуль("РегламентныеЗаданияСлужебный"); Если РегламентныеЗаданияСервер.РаботаСВнешнимиРесурсамиЗаблокирована() Тогда Параметры.Вставить("РаботаСВнешнимиРесурсамиЗаблокирована"); КонецЕсли; @@ -1905,19 +1921,21 @@ Возврат Ложь; КонецЕсли; - УстановитьПривилегированныйРежим(Истина); Если ЭтоВызовПередНачаломРаботыСистемы И Не Параметры.ПолученныеПараметрыКлиента.Свойство("ВосстановитьСвязьСГлавнымУзлом") - И Не ОбщегоНазначения.РазделениеВключено() - И ПланыОбмена.ГлавныйУзел() = Неопределено - И ЗначениеЗаполнено(Константы.ГлавныйУзел.Получить()) Тогда - + И Не ОбщегоНазначения.РазделениеВключено() Тогда + + УстановитьПривилегированныйРежим(Истина); + ВосстановитьСвязьСГлавнымУзлом = ПланыОбмена.ГлавныйУзел() = Неопределено + И ЗначениеЗаполнено(Константы.ГлавныйУзел.Получить()); УстановитьПривилегированныйРежим(Ложь); - Параметры.Вставить("ВосстановитьСвязьСГлавнымУзлом", Пользователи.ЭтоПолноправныйПользователь(, Истина, Ложь)); - СтандартныеПодсистемыВызовСервера.СкрытьРабочийСтолПриНачалеРаботыСистемы(); - Возврат Ложь; + + Если ВосстановитьСвязьСГлавнымУзлом Тогда + Параметры.Вставить("ВосстановитьСвязьСГлавнымУзлом", Пользователи.ЭтоПолноправныйПользователь(, Истина)); + СтандартныеПодсистемыВызовСервера.СкрытьРабочийСтолПриНачалеРаботыСистемы(); + Возврат Ложь; + КонецЕсли; КонецЕсли; - УстановитьПривилегированныйРежим(Ложь); Если ЭтоВызовПередНачаломРаботыСистемы И Не Параметры.ПолученныеПараметрыКлиента.Свойство("ВыбратьНачальныеРегиональныеНастройкиИБ") @@ -1929,23 +1947,15 @@ Возврат Ложь; КонецЕсли; - Если ЭтоВызовПередНачаломРаботыСистемы - И НЕ (Параметры.РазделениеВключено И Не Параметры.ДоступноИспользованиеРазделенныхДанных) - И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Если ЭтоВызовПередНачаломРаботыСистемы И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + ОписаниеОшибки = ""; МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ЗначениеРазделителя = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); - Если МодульРаботаВМоделиСервиса.ОбластьДанныхЗаблокирована(ЗначениеРазделителя) Тогда - - ОписаниеОшибки = НСтр("ru = 'Запуск приложения временно недоступен. - |Выполняются регламентные операции по обслуживанию приложения. - | - |Попробуйте запустить приложение через несколько минут.'"); - + МодульРаботаВМоделиСервиса.ПриПроверкеБлокировкиОбластиДанныхПриЗапуске(ОписаниеОшибки); + Если Не ПустаяСтрока(ОписаниеОшибки) Тогда Параметры.Вставить("ОбластьДанныхЗаблокирована", ОписаниеОшибки); // Работа будет завершена. Возврат Ложь; - КонецЕсли; КонецЕсли; @@ -2080,6 +2090,8 @@ Параметры.Вставить("РаботаСВнешнимиРесурсамиЗаблокирована"); КонецЕсли; + Параметры.Вставить("ВерсияРежимаСовместимости", ВерсияРежимаСовместимости()); + КонецПроцедуры // Заполняет структуру параметров, необходимых для работы клиентского кода @@ -3215,7 +3227,7 @@ // Вызов ОбщегоНазначения.ВычислитьВБезопасномРежиме не требуется, // т.к. это проверка установки привилегированного режима в функции Вычислить без установки безопасного режима. - Возврат Вычислить("ДоступенПереходВПривилегированныйРежим()"); + Возврат Вычислить("ДоступенПереходВПривилегированныйРежим()"); // АПК:488 КонецФункции @@ -3386,24 +3398,11 @@ Функция ТребуетсяУстановкаРегиональныхНастроекИнформационнойБазы() Экспорт - Если (ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()) - Или ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда - Возврат Ложь; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + Возврат МодульМультиязычностьСервер.ТребуетсяУстановкаРегиональныхНастроекИнформационнойБазы(); КонецЕсли; - УстановитьПривилегированныйРежим(Истина); - - Если ЗначениеЗаполнено(Константы.ОсновнойЯзык.Получить()) Тогда - Возврат Ложь; - КонецЕсли; - - Если ОбновлениеИнформационнойБазыСлужебный.РежимОбновленияДанных() = "НачальноеЗаполнение" - И Метаданные.Языки.Количество() > 1 Тогда - Возврат Истина; - КонецЕсли; - - Константы.ОсновнойЯзык.Установить(Метаданные.ОсновнойЯзык.КодЯзыка); - Возврат Ложь; КонецФункции @@ -3428,7 +3427,7 @@ // Структура: // * Ключ - Строка - имя элемента стиля. // * Значение - Строка -// - ОбъектМетаданных: ЭлементСтиля - элемент стиля. Для толстого клиента обычного приложения +// - ОбъектМетаданныхЭлементСтиля - элемент стиля. Для толстого клиента обычного приложения // элемент стиля преобразуется в системное строковое представление переданного значения. // Функция НаборЭлементовСтиля() diff --git a/SSL/src/CommonModules/СтроковыеФункцииКлиентСервер/Module.bsl b/SSL/src/CommonModules/СтроковыеФункцииКлиентСервер/Module.bsl index c277301be..b705d8c0b 100644 --- a/SSL/src/CommonModules/СтроковыеФункцииКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/СтроковыеФункцииКлиентСервер/Module.bsl @@ -1434,11 +1434,11 @@ // Выполняет преобразование цифры в римскую нотацию. // // Параметры: -// Цифра - Число - цифра от 0 до 9. +// Цифра - Число - цифра от 0 до 9. // РимскаяЕдиница, РимскаяПятерка, РимскаяДесятка - Строка - символы, соответствующие римским цифрам. // // Возвращаемое значение -// Строка - цифра в римской нотации. +// Строка - цифра в римской нотации. // // Пример: // СтроковыеФункцииКлиентСервер.ПреобразоватьЦифруВРимскуюНотацию(7,"I","V","X") = "VII". diff --git a/SSL/src/CommonModules/СтруктураПодчиненностиПереопределяемый/Module.bsl b/SSL/src/CommonModules/СтруктураПодчиненностиПереопределяемый/Module.bsl index 122655089..8bee8d7d0 100644 --- a/SSL/src/CommonModules/СтруктураПодчиненностиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/СтруктураПодчиненностиПереопределяемый/Module.bsl @@ -12,14 +12,14 @@ // // Параметры: // Настройки - Структура: -// * Реквизиты - Соответствие - для переопределения имен реквизитов объекта, в которых содержится информация +// * Реквизиты - Соответствие из КлючИЗначение - для переопределения имен реквизитов объекта, в которых содержится информация // о сумме и валюте, выводимых в списке связанных документов. // В ключе указывается полное имя объекта метаданных, в значении - соответствие // реквизитов Валюта и СуммаДокумента с реальными реквизитами объекта. // Если не задано, то значения зачитываются из реквизитов Валюта и СуммаДокумента. -// * РеквизитыДляПредставления - Соответствие - для переопределения представления объектов, выводимых в списке -// связанных документов. В ключе указывается полное имя объекта метаданных, в значении - -// массив имен реквизитов, значения которых участвуют в формировании представления. +// * РеквизитыДляПредставления - Соответствие из КлючИЗначение - для переопределения представления объектов, выводимых +// в списке связанных документов. В ключе указывается полное имя объекта метаданных, в +// значении - массив имен реквизитов, значения которых участвуют в формировании представления. // Для формирования представления перечисленных здесь объектов будет вызываться // процедура СтруктураПодчиненностиПереопределяемый.ПриПолученииПредставления. // diff --git a/SSL/src/CommonModules/СтруктураПодчиненностиСлужебный/Module.bsl b/SSL/src/CommonModules/СтруктураПодчиненностиСлужебный/Module.bsl index 081dbf9cf..d42a47d14 100644 --- a/SSL/src/CommonModules/СтруктураПодчиненностиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/СтруктураПодчиненностиСлужебный/Module.bsl @@ -25,10 +25,10 @@ // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту. // // Параметры: -// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы -// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники -// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки -// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды +// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы +// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники +// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки +// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды // // // Параметры: diff --git a/SSL/src/CommonModules/ТекущиеДелаПереопределяемый/Module.bsl b/SSL/src/CommonModules/ТекущиеДелаПереопределяемый/Module.bsl index b216bda5a..803251c5c 100644 --- a/SSL/src/CommonModules/ТекущиеДелаПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ТекущиеДелаПереопределяемый/Module.bsl @@ -11,29 +11,14 @@ // Определяет список обработчиков (модулей менеджеров или общих модулей) для формирования и обновления // списка всех текущих дел, предусмотренных в конфигурации. // -// В указанных модулях должна быть размещена процедура обработчика, в которую передаются параметры: -// ТекущиеДела - ТаблицаЗначений - определяет параметры дела: -// * Идентификатор - Строка - внутренний идентификатор дела, используемый подсистемой. -// * ЕстьДела - Булево - если Истина, дело выводится в списке текущих дел пользователя. -// * Важное - Булево - если Истина, дело будет выделено красным цветом. -// * ВыводитьВОповещениях - Булево - если Истина, уведомление о деле будет дублироваться всплывающим -// оповещением и отображением в центре оповещений. -// * СкрыватьВНастройках - Булево - если Истина, то дело будет скрыто в форме настроек текущих дел. -// Можно применять для дел, которые не предполагают многократного -// использования, т.е. после выполнения они для данной информационной базы -// больше отображаться не будут. -// * Представление - Строка - представление дела, выводимое пользователю. -// * Количество - Число - количественный показатель дела, выводится в строке заголовка дела. -// * Форма - Строка - полный путь к форме, которую необходимо открыть при нажатии на гиперссылку -// дела на панели "Текущие дела". -// * ПараметрыФормы - Структура - параметры, с которыми нужно открывать форму показателя. -// * Владелец - Строка, объект метаданных - строковый идентификатор дела, которое будет владельцем для текущего -// или объект метаданных подсистема. -// * Подсказка - Строка - текст подсказки. +// В указанных модулях должна быть размещена процедура обработчика, в которую передается параметр +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // -// Далее пример процедуры обработчика для копирования в указанные модули. +// Далее пример процедуры обработчика для копирования в указанные модули: // -//// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. +//// Параметры: +//// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. +//// //Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт // //КонецПроцедуры diff --git a/SSL/src/CommonModules/ТекущиеДелаСервер/Module.bsl b/SSL/src/CommonModules/ТекущиеДелаСервер/Module.bsl index 464a9d4bd..c7bbd5109 100644 --- a/SSL/src/CommonModules/ТекущиеДелаСервер/Module.bsl +++ b/SSL/src/CommonModules/ТекущиеДелаСервер/Module.bsl @@ -8,6 +8,51 @@ #Область ПрограммныйИнтерфейс +// Таблица текущих дел пользователя. +// Передается в обработчики ПриЗаполненииСпискаТекущихДел. +// +// Возвращаемое значение: +// ТаблицаЗначений - определяет параметры дела: +// * Идентификатор - Строка - внутренний идентификатор дела, используемый подсистемой. +// * ЕстьДела - Булево - если Истина, дело выводится в списке текущих дел пользователя. +// * Важное - Булево - если Истина, дело будет выделено красным цветом. +// * ВыводитьВОповещениях - Булево - если Истина, уведомление о деле будет дублироваться всплывающим +// оповещением и отображением в центре оповещений. +// * СкрыватьВНастройках - Булево - если Истина, то дело будет скрыто в форме настроек текущих дел. +// Можно применять для дел, которые не предполагают многократного +// использования, т.е. после выполнения они для данной информационной базы +// больше отображаться не будут. +// * Представление - Строка - представление дела, выводимое пользователю. +// * Количество - Число - количественный показатель дела, выводится в строке заголовка дела. +// * Форма - Строка - полный путь к форме, которую необходимо открыть при нажатии на гиперссылку +// дела на панели "Текущие дела". +// * ПараметрыФормы - Структура - параметры, с которыми нужно открывать форму показателя. +// * Владелец - Строка +// - ОбъектМетаданных - строковый идентификатор дела, которое будет владельцем для текущего +// или объект метаданных подсистема. +// * Подсказка - Строка - текст подсказки. +// * ОбъектВладелецДел - Строка - полное имя объекта метаданных, в котором расположен обработчик заполнения дел. +// +Функция ТекущиеДела() Экспорт + + ДелаПользователя = Новый ТаблицаЗначений; + ДелаПользователя.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(250))); + ДелаПользователя.Колонки.Добавить("ЕстьДела", Новый ОписаниеТипов("Булево")); + ДелаПользователя.Колонки.Добавить("Важное", Новый ОписаниеТипов("Булево")); + ДелаПользователя.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(250))); + ДелаПользователя.Колонки.Добавить("СкрыватьВНастройках", Новый ОписаниеТипов("Булево")); + ДелаПользователя.Колонки.Добавить("ВыводитьВОповещениях", Новый ОписаниеТипов("Булево")); + ДелаПользователя.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число")); + ДелаПользователя.Колонки.Добавить("Форма", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(250))); + ДелаПользователя.Колонки.Добавить("ПараметрыФормы", Новый ОписаниеТипов("Структура")); + ДелаПользователя.Колонки.Добавить("Владелец"); + ДелаПользователя.Колонки.Добавить("Подсказка", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(250))); + ДелаПользователя.Колонки.Добавить("ОбъектВладелецДел", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(256))); + + Возврат ДелаПользователя; + +КонецФункции + // Возвращает массив подсистем командного интерфейса, в которые включен переданный // объект метаданных. // diff --git a/SSL/src/CommonModules/ТекущиеДелаСлужебный/Module.bsl b/SSL/src/CommonModules/ТекущиеДелаСлужебный/Module.bsl index 93d8b2945..4dea56cd3 100644 --- a/SSL/src/CommonModules/ТекущиеДелаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ТекущиеДелаСлужебный/Module.bsl @@ -23,13 +23,13 @@ // дела на панели "Текущие дела". // * ПараметрыФормы- Структура - параметры, с которыми нужно открывать форму показателя. // * Владелец - Строка -// - объект метаданных - строковый идентификатор дела, которое будет владельцем для текущего +// - ОбъектМетаданных - строковый идентификатор дела, которое будет владельцем для текущего // или объект метаданных подсистема. // * Подсказка - Строка - текст подсказки. // Процедура СформироватьСписокТекущихДелПользователя(Параметры, АдресРезультата) Экспорт - ТекущиеДела = ТекущиеДела(); + ТекущиеДела = ТекущиеДелаСервер.ТекущиеДела(); НастройкиОтображения = СохраненныеНастройкиОтображения(); КоличествоДел = 0; @@ -98,9 +98,7 @@ //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. -// Параметры: -// НазначениеРолей - см. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей.НазначениеРолей -// +// См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей Процедура ПриОпределенииНазначенияРолей(НазначениеРолей) Экспорт // СовместноДляПользователейИВнешнихПользователей. @@ -195,6 +193,9 @@ // Только для внутреннего использования. // +// Параметры: +// ТекущиеДела - ТаблицаЗначений +// Процедура УстановитьНачальныйПорядокРазделов(ТекущиеДела) Экспорт ПорядокРазделовКомандногоИнтерфейса = Новый Массив; @@ -303,50 +304,6 @@ КонецПроцедуры -// Создает пустую таблицу дел пользователя. -// -// Возвращаемое значение: -// ТаблицаЗначений - определяет параметры дела: -// * Идентификатор - Строка - внутренний идентификатор дела, используемый подсистемой. -// * ЕстьДела - Булево - если Истина, дело выводится в списке текущих дел пользователя. -// * Важное - Булево - если Истина, дело будет выделено красным цветом. -// * ВыводитьВОповещениях - Булево - если Истина, уведомление о деле будет дублироваться всплывающим -// оповещением и отображением в центре оповещений. -// * СкрыватьВНастройках - Булево - если Истина, то дело будет скрыто в форме настроек текущих дел. -// Можно применять для дел, которые не предполагают многократного -// использования, т.е. после выполнения они для данной информационной базы -// больше отображаться не будут. -// * Представление - Строка - представление дела, выводимое пользователю. -// * Количество - Число - количественный показатель дела, выводится в строке заголовка дела. -// * Форма - Строка - полный путь к форме, которую необходимо открыть при нажатии на гиперссылку -// дела на панели "Текущие дела". -// * ПараметрыФормы - Структура - параметры, с которыми нужно открывать форму показателя. -// * Владелец - Строка -// - ОбъектМетаданных - строковый идентификатор дела, которое будет владельцем для текущего -// или объект метаданных подсистема. -// * Подсказка - Строка - текст подсказки. -// * ОбъектВладелецДел - Строка - полное имя объекта метаданных, в котором расположен обработчик заполнения дел. -// -Функция ТекущиеДела() Экспорт - - ДелаПользователя = Новый ТаблицаЗначений; - ДелаПользователя.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(250))); - ДелаПользователя.Колонки.Добавить("ЕстьДела", Новый ОписаниеТипов("Булево")); - ДелаПользователя.Колонки.Добавить("Важное", Новый ОписаниеТипов("Булево")); - ДелаПользователя.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(250))); - ДелаПользователя.Колонки.Добавить("СкрыватьВНастройках", Новый ОписаниеТипов("Булево")); - ДелаПользователя.Колонки.Добавить("ВыводитьВОповещениях", Новый ОписаниеТипов("Булево")); - ДелаПользователя.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число")); - ДелаПользователя.Колонки.Добавить("Форма", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(250))); - ДелаПользователя.Колонки.Добавить("ПараметрыФормы", Новый ОписаниеТипов("Структура")); - ДелаПользователя.Колонки.Добавить("Владелец"); - ДелаПользователя.Колонки.Добавить("Подсказка", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(250))); - ДелаПользователя.Колонки.Добавить("ОбъектВладелецДел", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(256))); - - Возврат ДелаПользователя; - -КонецФункции - Процедура ДобавитьДело(ТекущиеДела, Менеджер, КоличествоДел) Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда diff --git a/SSL/src/CommonModules/ТекущиеДелаСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/ТекущиеДелаСлужебныйПовтИсп/Module.bsl index 83925e9ec..901b92f17 100644 --- a/SSL/src/CommonModules/ТекущиеДелаСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ТекущиеДелаСлужебныйПовтИсп/Module.bsl @@ -11,8 +11,10 @@ // Возвращает соответствие объектов метаданных и подсистем командного интерфейса. // // Возвращаемое значение: -// Соответствие - где ключом является полное имя объекта, а значение - массив подсистем -// командного интерфейса программы, в которые входит данный объект. +// Соответствие из КлючИЗначение: +// * Ключ - Строка - полное имя объекта. +// * Значение - Массив из Строка - полные имена подсистем командного интерфейса программы, +// в которые входит данный объект. // Функция ПринадлежностьОбъектовРазделамКомандногоИнтерфейса() Экспорт diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектов/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектов/Module.bsl index a3b708980..6a8a8314a 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектов/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектов/Module.bsl @@ -11,14 +11,14 @@ // Безвозвратно удаляет объекты, помеченные на удаление, выполняя при этом контроль ссылочной целостности. // // Параметры: -// УдаляемыеОбъекты - Массив Из ПланОбменаСсылка - объекты для удаления. -// - Массив Из СправочникСсылка -// - Массив Из ДокументСсылка -// - Массив Из ПланСчетовСсылка -// - Массив Из ПланВидовРасчетаСсылка -// - Массив Из БизнесПроцессСсылка -// - Массив Из ЗадачаСсылка -// РежимУдаления - Строка - способ удаления, может принимать значения: +// УдаляемыеОбъекты - Массив из ПланОбменаСсылка - объекты для удаления. +// - Массив из СправочникСсылка +// - Массив из ДокументСсылка +// - Массив из ПланСчетовСсылка +// - Массив из ПланВидовРасчетаСсылка +// - Массив из БизнесПроцессСсылка +// - Массив из ЗадачаСсылка +// РежимУдаления - Строка - способ удаления, может принимать значения: // "Стандартный" - удаление объектов с контролем ссылочной целостности и сохранением возможности // многопользовательской работы. // "Монопольный" - удаление объектов с контролем ссылочной целостности с установкой монопольного режима. @@ -28,19 +28,19 @@ // будут очищены. // // Возвращаемое значение: -// Структура: -// * Успешно - Булево - Истина, если все объекты были удалены. -// * ПрепятствующиеУдалению - ТаблицаЗначений - объекты, в которых есть ссылки на удаляемые объекты: -// ** УдаляемыйСсылка - ЛюбаяСсылка -// ** МестоИспользования - ЛюбаяСсылка - ссылка на объект, препятствующий удалению. +// Структура: +// * Успешно - Булево - Истина, если все объекты были удалены. +// * ПрепятствующиеУдалению - ТаблицаЗначений - объекты, в которых есть ссылки на удаляемые объекты: +// ** УдаляемыйСсылка - ЛюбаяСсылка +// ** МестоИспользования - ЛюбаяСсылка - ссылка на объект, препятствующий удалению. // - Неопределено - объект используется в константе или // в процессе удаление произошла ошибка. Информация о константе указана в поле метаданные. // Информация об ошибке указана в поле ОписаниеОшибки. -// ** ОписаниеОшибки - Строка - описание ошибки при удалении объекта. -// ** ПодробноеОписаниеОшибки - Строка - подробное описание ошибки при удалении объекта. -// ** Метаданные - ОбъектМетаданных - описание метаданных объекта, препятствующего удалению. -// * Удаленные - Массив из ЛюбаяСсылка- успешно удаленные объекты. -// * НеУдаленные - Массив из ЛюбаяСсылка - не удаленные объекты. +// ** ОписаниеОшибки - Строка - описание ошибки при удалении объекта. +// ** ПодробноеОписаниеОшибки - Строка - подробное описание ошибки при удалении объекта. +// ** Метаданные - ОбъектМетаданных - описание метаданных объекта, препятствующего удалению. +// * Удаленные - Массив из ЛюбаяСсылка- успешно удаленные объекты. +// * НеУдаленные - Массив из ЛюбаяСсылка - не удаленные объекты. // Функция УдалитьПомеченныеОбъекты(УдаляемыеОбъекты, РежимУдаления = "Стандартный") Экспорт Возврат УдалениеПомеченныхОбъектовСлужебный.УдалитьПомеченныеОбъектыСлужебный(УдаляемыеОбъекты, РежимУдаления); @@ -51,19 +51,19 @@ // Предопределенные элементы исключаются из результата поиска. // // Параметры: -// ОтборМетаданных - СписокЗначений Из Строка - Список из полных имен метаданных, в которых будет +// ОтборМетаданных - СписокЗначений из Строка - список из полных имен метаданных, в которых будет // выполнен поиск помеченных на удаление. // Например, "Справочник._ДемоНоменклатура". -// - Неопределено - отбор по объектам метаданных накладываться не будет. +// - Неопределено - отбор по объектам метаданных накладываться не будет. // -// ИскатьТехнологическиеОбъекты - Булево - если Истина, то поиск будет осуществляться в объектах метаданных, +// ИскатьТехнологическиеОбъекты - Булево - если Истина, то поиск будет осуществляться в объектах метаданных, // добавленных в исключения поиска ссылок. // см. ОбщегоНазначения.ИсключенияПоискаСсылок. // Например, в справочнике КлючиДоступа. // // // Возвращаемое значение: -// Массив из ЛюбаяСсылка +// Массив из ЛюбаяСсылка // Функция ПомеченныеНаУдаление(Знач ОтборМетаданных = Неопределено, ИскатьТехнологическиеОбъекты = Ложь) Экспорт ИсключенияПоискаУдаляемых = Новый Массив; @@ -113,8 +113,8 @@ // Устанавливает видимость помеченных на удаление. // // Параметры: -// Форма - ФормаКлиентскогоПриложения - форма с динамическим списком -// НастройкиОтображенияПомеченныхОбъектов - ТаблицаФормы - элемент формы динамического списка. +// Форма - ФормаКлиентскогоПриложения - форма с динамическим списком +// НастройкиОтображенияПомеченныхОбъектов - ТаблицаФормы - элемент формы динамического списка. // - см. НастройкиОтображенияПомеченныхОбъектов // // Пример: @@ -155,10 +155,10 @@ // Формирует настройки отображения помеченных на удаления объектов. // // Возвращаемое значение: -// ТаблицаЗначений: -// * ИмяЭлементаФормы - Строка - имя таблицы формы, связанного с динамическим списком. -// * ТипыМетаданных - СписокЗначений из Строка - типы объектов, отображаемых в динамическом списке. -// * ИмяСписка - Строка - необязательный. Имя динамического списка на форме. +// ТаблицаЗначений: +// * ИмяЭлементаФормы - Строка - имя таблицы формы, связанного с динамическим списком. +// * ТипыМетаданных - СписокЗначений из Строка - типы объектов, отображаемых в динамическом списке. +// * ИмяСписка - Строка - необязательный. Имя динамического списка на форме. // Функция НастройкиОтображенияПомеченныхОбъектов() Экспорт @@ -186,9 +186,9 @@ // Используется для установки начального значения пометки кнопки формы. // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// ТаблицаФормы - ТаблицаФормы - таблица формы, связанная с динамическим списком -// КнопкаФормы - КнопкаФормы - кнопка, связанная с командой Показать помеченные +// Форма - ФормаКлиентскогоПриложения +// ТаблицаФормы - ТаблицаФормы - таблица формы, связанная с динамическим списком +// КнопкаФормы - КнопкаФормы - кнопка, связанная с командой Показать помеченные // Процедура УстановитьПометкуКомандыПоказатьПомеченные(Форма, ТаблицаФормы, КнопкаФормы) Экспорт ЗначениеОтбора = УдалениеПомеченныхОбъектовСлужебный.ЗагрузитьНастройкуОтображенияПомеченныхНаУдаления( @@ -205,7 +205,7 @@ // - ДокументОбъект - объект, в котором будет выполнен поиск удаляемых объектов // // Возвращаемое значение: -// Соответствие из КлючЗначение: +// Соответствие из КлючИЗначение: // * Ключ -ЛюбаяСсылка - перечень удаляемых объектов, которые есть в источнике. // * Значение - Строка - представление ссылки // @@ -290,10 +290,10 @@ // Формирует настройки скрытия помеченных объектов для динамического списка. // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// ЭлементСписок - ТаблицаФормы -// ТипыМетаданных - Массив из Строка -// - Неопределено - по умолчанию основная таблица динамического списка +// Форма - ФормаКлиентскогоПриложения +// ЭлементСписок - ТаблицаФормы +// ТипыМетаданных - Массив из Строка +// - Неопределено - по умолчанию основная таблица динамического списка // // Возвращаемое значение: // см. НастройкиОтображенияПомеченныхОбъектов @@ -322,8 +322,8 @@ // Выводит на форму элементы управления и устраняет конфликты фиксированных и пользовательских настроек списка. // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// Настройка - см. НастройкиОтображенияПомеченныхОбъектов +// Форма - ФормаКлиентскогоПриложения +// Настройка - см. НастройкиОтображенияПомеченныхОбъектов // Процедура УстановитьНастройкиСписка(Форма, Настройка, ЗначениеОтбора) @@ -343,7 +343,7 @@ КонецПроцедуры // Параметры: -// Форма - ФормаКлиентскогоПриложения +// Форма - ФормаКлиентскогоПриложения // Процедура СоздатьРеквизитХраненияНастроек(Форма) ДобавляемыеРеквизиты = Новый Массив; @@ -355,8 +355,8 @@ // Удаляет отбор по полю ПометкаУдаления из сохраненных пользовательских настроек // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// ИмяСписка - Строка +// Форма - ФормаКлиентскогоПриложения +// ИмяСписка - Строка // Процедура УдалитьПользовательскуюНастройкуОтбораПомеченныхНаУдаление(Форма, ИмяСписка) @@ -393,7 +393,7 @@ КонецПроцедуры // Параметры: -// ДинамическийСписок - ДинамическийСписок +// ДинамическийСписок - ДинамическийСписок // Процедура УстановитьОграничениеНаОтборПоПометкеУдаления(ДинамическийСписок) @@ -408,7 +408,7 @@ КонецПроцедуры // Параметры: -// НастройкиОтображенияПомеченныхОбъектов - см. НастройкаОтображенияПомеченныхОбъектовСписка +// НастройкиОтображенияПомеченныхОбъектов - см. НастройкаОтображенияПомеченныхОбъектовСписка // Процедура ЗаполнитьИменаСпискаПоЭлементамФормы(Форма, НастройкиОтображенияПомеченныхОбъектов) Для Каждого Настройка Из НастройкиОтображенияПомеченныхОбъектов Цикл @@ -478,10 +478,10 @@ КонецФункции // Параметры: -// Реквизиты - КоллекцияОбъектовМетаданных +// Реквизиты - КоллекцияОбъектовМетаданных // // Возвращаемое значение: -// Массив +// Массив // Функция СформироватьРеквизитыРегистровБухгалтерииСКорреспонденцией(Знач Реквизиты) РеквизитыРегистраСКорреспонденцией = Новый Массив; @@ -584,10 +584,10 @@ КонецФункции // Параметры: -// МетаданныеИсточника - ОбъектМетаданныхРегистрБухгалтерии +// МетаданныеИсточника - ОбъектМетаданныхРегистрБухгалтерии // // Возвращаемое значение: -// Массив +// Массив // Функция СформироватьСтандартныеРеквизитыРегистраБухгалтерии(МетаданныеИсточника) СтандартныеРеквизиты = Новый Массив; @@ -654,6 +654,10 @@ Возврат Описание; КонецФункции +// Параметры: +// Источник - РегистрСведенийНаборЗаписей +// МетаданныеИсточника - ОбъектМетаданныхРегистрСведений +// Функция ОписаниеНабора(Источник, МетаданныеИсточника) Описание = Новый Структура; Описание.Вставить("Источник", Источник); diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовКлиент/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовКлиент/Module.bsl index 2e735967a..f39b40c49 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовКлиент/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовКлиент/Module.bsl @@ -11,21 +11,21 @@ // Начинает интерактивное удаление помеченных объектов. // // Параметры: -// УдаляемыеОбъекты - Массив из ЛюбаяСсылка - перечень удаляемых объектов. -// ПараметрыУдаления - см. ПараметрыИнтерактивногоУдаления +// УдаляемыеОбъекты - Массив из ЛюбаяСсылка - перечень удаляемых объектов. +// ПараметрыУдаления - см. ПараметрыИнтерактивногоУдаления // -// Владелец - ФормаКлиентскогоПриложения -// - Неопределено - форма, из которой начата операция удаления. +// Владелец - ФормаКлиентскогоПриложения +// - Неопределено - форма, из которой начата операция удаления. // Если не указан, то в обработку оповещения о закрытии // не будет передана подробная информация об итогах удаления. // -// ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - если указано, то при окончании удаления или +// ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - если указано, то при окончании удаления или // при закрытии формы в обработку оповещения будет передан результат // с полями: -// * Успешно - Булево - Истина, если все объекты удалены успешно. -// * УдаленныеКоличество - Число - количество удаленных объектов. -// * НеУдаленныеКоличество - Число - количество неудаленных объектов. -// * АдресРезультата - Строка - адрес временного хранилища. +// * Успешно - Булево - Истина, если все объекты удалены успешно. +// * УдаленныеКоличество - Число - количество удаленных объектов. +// * НеУдаленныеКоличество - Число - количество неудаленных объектов. +// * АдресРезультата - Строка - адрес временного хранилища. // - Неопределено - значение по умолчанию. // Процедура НачатьУдалениеПомеченных(УдаляемыеОбъекты, ПараметрыУдаления = Неопределено, Владелец = Неопределено, @@ -48,8 +48,8 @@ // Настройки интерактивного удаления. // // Возвращаемое значение: -// Структура: -// * Режим - Строка - способ удаления, может принимать значения: +// Структура: +// * Режим - Строка - способ удаления, может принимать значения: // "Стандартный" - удаление объектов с контролем ссылочной целостности и сохранением возможности // многопользовательской работы. // "Монопольный" - удаление объектов с контролем ссылочной целостности с установкой монопольного режима. @@ -68,10 +68,10 @@ // Открывает рабочее место Удаление помеченных. // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// ТаблицаФормы - ТаблицаФормы -// - ДанныеФормыСтруктура -// - Неопределено - таблица формы, связанная с динамическим списком +// Форма - ФормаКлиентскогоПриложения +// ТаблицаФормы - ТаблицаФормы +// - ДанныеФормыСтруктура +// - Неопределено - таблица формы, связанная с динамическим списком // Процедура ПерейтиКПомеченнымНаУдаление(Форма, ТаблицаФормы = Неопределено) Экспорт @@ -89,9 +89,9 @@ // Изменяет видимость помеченных на удаление и сохраняет настройку пользователя. // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// ТаблицаФормы - ТаблицаФормы - таблица формы, связанная с динамическим списком. -// КнопкаФормы - КнопкаФормы - кнопка формы, связанная с командой Показать помеченные на удаление. +// Форма - ФормаКлиентскогоПриложения +// ТаблицаФормы - ТаблицаФормы - таблица формы, связанная с динамическим списком. +// КнопкаФормы - КнопкаФормы - кнопка формы, связанная с командой Показать помеченные на удаление. // Процедура ПоказатьПомеченныеНаУдаление(Форма, ТаблицаФормы, КнопкаФормы) Экспорт ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("ПоказатьПомеченныеНаУдаление", "ТаблицаФормы", ТаблицаФормы, Новый ОписаниеТипов("ТаблицаФормы")); @@ -105,7 +105,7 @@ // Не поддерживается на мобильном платформе. // // Параметры: -// ОповещениеОбИзменении - ОписаниеОповещения - обработчик изменения расписания регламентного задания. +// ОповещениеОбИзменении - ОписаниеОповещения - обработчик изменения расписания регламентного задания. // Процедура НачатьИзменениеРасписанияРегламентногоЗадания(ОповещениеОбИзменении = Неопределено) Экспорт СведенияОРегламентномЗаданииУдаленияПомеченных = УдалениеПомеченныхОбъектовСлужебныйВызовСервера.РежимУдалятьПоРасписанию(); @@ -188,7 +188,7 @@ // Обработчик подключенной команды. // // Параметры: -// МассивСсылок - Массив Из ЛюбаяСсылка - ссылки выбранных объектов, для которых выполняется команда. +// МассивСсылок - Массив из ЛюбаяСсылка - ссылки выбранных объектов, для которых выполняется команда. // ПараметрыКоманды - см. ПодключаемыеКомандыКлиент.ПараметрыВыполненияКоманды // Процедура ВыполнитьПодключаемуюКомандуПоказатьПомеченныеНаУдаление(Знач МассивСсылок, @@ -204,7 +204,7 @@ // Обработчик подключенной команды. // // Параметры: -// МассивСсылок - Массив Из ЛюбаяСсылка - ссылки выбранных объектов, для которых выполняется команда. +// МассивСсылок - Массив из ЛюбаяСсылка - ссылки выбранных объектов, для которых выполняется команда. // ПараметрыВыполнения - см. ПодключаемыеКомандыКлиент.ПараметрыВыполненияКоманды // Процедура ВыполнитьПодключаемуюКомандуПерейтиКПомеченным(МассивСсылок, ПараметрыВыполнения) Экспорт @@ -251,10 +251,10 @@ // Изменяет видимость помеченных на удаление в списке // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// ТаблицаФормы - ТаблицаФормы +// Форма - ФормаКлиентскогоПриложения +// ТаблицаФормы - ТаблицаФормы // Возвращаемое значение: -// Булево - установленное значение отбора +// Булево - установленное значение отбора // Функция ИзменитьОтборПомеченныхНаУдаление(Форма, ТаблицаФормы) diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовПереопределяемый/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовПереопределяемый/Module.bsl index 943fe303b..1e9d45e86 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовПереопределяемый/Module.bsl @@ -13,7 +13,8 @@ // см. УдалениеПомеченныхОбъектовКлиент.ПоказатьПомеченныеНаУдаление и УдалениеПомеченныхОбъектовКлиент.ПерейтиКПомеченнымНаУдаление. // // Параметры: -// Объекты - Массив из ОбъектМетаданных - объекты метаданных, в формы списка которых будут добавлены команды скрытия помеченных на удаления. +// Объекты - Массив из ОбъектМетаданных - объекты метаданных, в формы списка которых будут добавлены команды скрытия +// помеченных на удаления. // // Пример: // Объекты.Добавить(Метаданные.Справочники._ДемоНоменклатура); diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебный/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебный/Module.bsl index d29f10dea..a0a1dc4c7 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебный/Module.bsl @@ -10,9 +10,7 @@ #Область ДляВызоваИзДругихПодсистем -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// +// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -23,6 +21,8 @@ КонецПроцедуры +// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий. +// // Параметры: // Зависимости - см. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий.Настройки // @@ -35,32 +35,19 @@ КонецПроцедуры -// Параметры: -// ШаблоныЗаданий - см. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.ШаблоныЗаданий -// +// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт ШаблоныЗаданий.Добавить("УдалениеПомеченных"); ШаблоныЗаданий.Добавить(Метаданные.РегламентныеЗадания.ОтключениеПроверкиИспользованияУдаляемыхОбъектов.Имя); КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. -// -// Параметры: -// ИсключенияПоискаСсылок - Массив -// Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.УдаляемыеОбъекты); ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.НеудаленныеОбъекты); КонецПроцедуры // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту. -// -// Параметры: -// НастройкиФормы - Структура - сведения о форме, в которой выводятся команды. -// Источники - ДеревоЗначений - сведения о поставщиках команд этой формы. -// ПодключенныеОтчетыИОбработки - ТаблицаЗначений - отчеты и обработки, предоставляющие свои команды. -// Команды - ТаблицаЗначений - записать в этот параметр сформированные команды для вывода в подменю. -// Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт ПодключенныеОбъекты = Новый Массив; @@ -101,16 +88,6 @@ КонецПроцедуры // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииВидовПодключаемыхКоманд. -// -// Параметры: -// ВидыПодключаемыхКоманд - ТаблицаЗначений - поддерживаемые виды команд, где: -// * Имя - Строка - имя вида команд. -// * ИмяПодменю - Строка - имя подменю для размещения команд этого вида на формах объектов. -// * Заголовок - Строка - наименование подменю, выводимое пользователю. -// * Картинка - Картинка - картинка подменю. -// * Отображение - ОтображениеКнопки - режим отображения подменю. -// * Порядок - Число - порядок подменю в командной панели формы. -// Процедура ПриОпределенииВидовПодключаемыхКоманд(ВидыПодключаемыхКоманд) Экспорт Если ВидыПодключаемыхКоманд.Найти("ОтображениеПомеченныхНаУдаление", "Имя") = Неопределено Тогда @@ -139,7 +116,8 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. +// Параметры: +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт Если НЕ Пользователи.ЭтоПолноправныйПользователь() Тогда @@ -194,9 +172,11 @@ КонецПроцедуры +// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса. +// // Параметры: -// ИмяПараметра - см. СтандартныеПодсистемыСервер.УстановкаПараметровСеанса.ИменаПараметровСеанса -// УстановленныеПараметры - см. СтандартныеПодсистемыСервер.УстановкаПараметровСеанса.ИменаПараметровСеанса +// ИмяПараметра - Строка - имя параметра сеанса, который требуется установить. +// УстановленныеПараметры - Массив из Строка - имена параметров, которые уже установлены // Процедура УстановкаПараметровСеанса(Знач ИмяПараметра, УстановленныеПараметры) Экспорт Если ИмяПараметра = "ВыполняетсяУдалениеОбъектов" Тогда @@ -205,24 +185,6 @@ КонецЕсли; КонецПроцедуры -Функция ПроверятьИспользованиеУдаляемыхОбъектов() Экспорт - ЭтоМодельСервиса = ОбщегоНазначения.РазделениеВключено(); - ВОбластиДанных = ?(ЭтоМодельСервиса, ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных(), Ложь); - Если ЭтоМодельСервиса И Не ВОбластиДанных Тогда - Возврат Ложь; - КонецЕсли; - - ПериодОбновленияЗначения = 60000; - - ДанныеКонстанты = УдалениеПомеченныхПовтИсп.ПроверятьИспользованиеУдаляемыхОбъектов(); - Если ТекущаяУниверсальнаяДатаВМиллисекундах() - ДанныеКонстанты.МеткаВремени > ПериодОбновленияЗначения Тогда - ДанныеКонстанты.Значение = Константы.ПроверятьИспользованиеУдаляемыхОбъектов.Получить(); - ДанныеКонстанты.МеткаВремени = ТекущаяУниверсальнаяДатаВМиллисекундах(); - КонецЕсли; - - Возврат ДанныеКонстанты.Значение; -КонецФункции - // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт @@ -291,10 +253,10 @@ // Возвращает Истина, если переданный тип является просты // // Параметры: -// Тип - Тип +// Тип - Тип // // Возвращаемое значение: -// Булево +// Булево // Функция ЭтоПростойТип(Тип) Экспорт Возврат (Тип = Неопределено Или Тип = Тип("Строка") Или Тип = Тип("Число") Или Тип = Тип("Булево") Или Тип = Тип( @@ -306,7 +268,7 @@ // // // Возвращаемое значение: -// Массив из ОбъектМетаданных +// Массив из ОбъектМетаданных // Функция ИсключенияПоискаСсылокРазрешающихУдаление() Экспорт Возврат УдалениеПомеченныхПовтИсп.ИсключенияПоискаСсылокРазрешающихУдаление(); @@ -350,7 +312,8 @@ ЗаписьЖурналаРегистрации( НСтр("ru = 'Удаление помеченных'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, , , - НСтр("ru='Не удалось отключить проверку удаляемых объектов по причине:'") + ОписаниеОшибки()); + НСтр("ru='Не удалось отключить проверку удаляемых объектов по причине:'") + + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; КонецЦикла; КонецПроцедуры @@ -372,11 +335,11 @@ // Формирует строковый ключ для сохранения настроек отображения помеченных на удаления. // // Параметры: -// ИмяФормы - Строка - имя формы -// ИмяСписка - Строка - имя списка +// ИмяФормы - Строка - имя формы +// ИмяСписка - Строка - имя списка // // Возвращаемое значение: -// Строка +// Строка // Функция КлючНастроек(ИмяФормы, ИмяСписка) Экспорт @@ -388,11 +351,11 @@ // Формирует дополнительную информацию о типе. // // Параметры: -// Тип - Тип -// КешИнформацииОТипах - Соответствие +// Тип - Тип +// КешИнформацииОТипах - Соответствие // // Возвращаемое значение: -// Структура: +// Структура: // * ПолноеИмя - Строка // * ПредставлениеЭлемента - Строка // * ПредставлениеСписка - Строка @@ -478,7 +441,7 @@ Информация.ТекстЗапросаПоПодчиненным = ""; Если ЭтоСправочник Или ЭтоПланВидовХарактеристик Или ЭтоПланОбмена Или ЭтоПланСчетов Или ЭтоПланВидовРасчета Тогда - ШаблонЗапроса = "ВЫБРАТЬ Ссылка, ПометкаУдаления ИЗ Справочник.&Имя ГДЕ Владелец = &УдаляемыйСсылка"; + ШаблонЗапроса = "ВЫБРАТЬ Ссылка, ПометкаУдаления ИЗ #Таблица ГДЕ Владелец = &УдаляемыйСсылка"; ТекстЗапроса = ""; Для Каждого Справочник Из Метаданные.Справочники Цикл @@ -490,7 +453,7 @@ Иначе ТекстЗапроса = ТекстЗапроса + Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС; КонецЕсли; - ТекстЗапроса = ТекстЗапроса + СтрЗаменить(ШаблонЗапроса, "&Имя", Справочник.Имя); + ТекстЗапроса = ТекстЗапроса + СтрЗаменить(ШаблонЗапроса, "#Таблица", "Справочник." + Справочник.Имя); КонецЦикла; Информация.ТекстЗапросаПоПодчиненным = ТекстЗапроса; @@ -557,12 +520,12 @@ КонецФункции // Параметры: -// Настройки - ТаблицаЗначений: +// Настройки - ТаблицаЗначений: // * Реквизит - Строка // * Метаданные - Строка // // Возвращаемое значение: -// Число +// Число // Функция ЧислоДополнительныхРеквизитов(Настройки) Экспорт Результат = 0; @@ -588,7 +551,7 @@ КонецФункции // Параметры: -// ТаблицаДействий - ТаблицаЗначений +// ТаблицаДействий - ТаблицаЗначений // // Возвращаемое значение: // см. РезультатОбработкиУдаляемыхОбъектов @@ -651,13 +614,13 @@ // из значения параметра. // // Параметры: -// ИсточникУдаляемыхОбъектов - ДеревоЗначений: -// * УдаляемыйСсылка - ЛюбаяСсылка +// ИсточникУдаляемыхОбъектов - ДеревоЗначений: +// * УдаляемыйСсылка - ЛюбаяСсылка // - СписокЗначений из ЛюбаяСсылка -// РежимУдаления - Строка -// НастройкиДополнительныхРеквизитов - ТаблицаЗначений -// АдресРезультатаПредыдущегоШага - Строка -// ИдентификаторЗадания - УникальныйИдентификатор - уникальный идентификатор формы, из которой запущено задание. +// РежимУдаления - Строка +// НастройкиДополнительныхРеквизитов - ТаблицаЗначений +// РезультатПредыдущегоШага - см. РезультатОбработкиУдаляемыхОбъектов +// ИдентификаторЗадания - УникальныйИдентификатор - уникальный идентификатор формы, из которой запущено задание. // используется для отмены блокировки при прерывания фонового задания // и закрытия формы. // @@ -693,7 +656,7 @@ // Не используется для неразделенного сеанса в модули сервиса. // // Параметры: -// Идентификатор - УникальныйИдентификатор +// Идентификатор - УникальныйИдентификатор // Процедура СнятьБлокировкуИспользованияУдаляемыхОбъектов(Идентификатор) Экспорт Если ОбщегоНазначения.РазделениеВключено() И НЕ ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда @@ -767,7 +730,7 @@ Метаданные.РегламентныеЗадания.ОтключениеПроверкиИспользованияУдаляемыхОбъектов); УстановитьПривилегированныйРежим(Истина); - + ЗаданиеПроверки = РегламентныеЗаданияСервер.НайтиЗадания(Фильтр); Для Каждого Задание Из ЗаданиеПроверки Цикл @@ -785,8 +748,8 @@ // Получить значение настроек отображения помеченных объектов из хранилища. // // Параметры: -// ИмяФормы - Строка -// ИмяСписка - Строка +// ИмяФормы - Строка +// ИмяСписка - Строка // Возвращаемое значение: // см. ОбщегоНазначения.ХранилищеНастроекДанныхФормЗагрузить // @@ -859,12 +822,12 @@ #Область ПоискПомеченныхНаУдаление // Параметры: -// УдаляемыеОбъекты - Массив из ЛюбаяСсылка -// Настройки - ТаблицаЗначений: -// * Реквизит - Строка -// * Метаданные - Строка -// * Представление - Строка -// Отмеченные - Массив из ЛюбаяСсылка +// УдаляемыеОбъекты - Массив из ЛюбаяСсылка +// Настройки - ТаблицаЗначений: +// * Реквизит - Строка +// * Метаданные - Строка +// * Представление - Строка +// Отмеченные - Массив из ЛюбаяСсылка // // Возвращаемое значение: // см. УниверсальноеДеревоУдаляемыхОбъектов @@ -931,11 +894,11 @@ КонецПроцедуры // Параметры: -// ДеревоЗначений - ДеревоЗначений -// Настройки - ТаблицаЗначений +// ДеревоЗначений - ДеревоЗначений +// Настройки - ТаблицаЗначений // // Возвращаемое значение: -// ДеревоЗначений +// ДеревоЗначений // Функция ДополнитьДеревоДополнительнымиРеквизитами(ДеревоЗначений, Настройки) Результат = ДеревоЗначений.Скопировать(); @@ -974,11 +937,11 @@ КонецПроцедуры // Параметры: -// ПомеченныеНаУдаление - Массив -// НастройкиДополнительныхРеквизитов - Массив из СтрокаТаблицыЗначений +// ПомеченныеНаУдаление - Массив +// НастройкиДополнительныхРеквизитов - Массив из СтрокаТаблицыЗначений // // Возвращаемое значение: -// Соответствие +// Соответствие // Функция ЗначенияДополнительныхРеквизитов(ПомеченныеНаУдаление, НастройкиДополнительныхРеквизитов) Результат = Новый Соответствие; @@ -1007,6 +970,8 @@ УдаляемыйОбъект = Элемент.ПолучитьОбъект(); УдаляемыйОбъект.ДополнительныеСвойства.Вставить("НеВыполнятьКонтрольУдаляемых"); + Ошибки = Новый Соответствие; + НачатьТранзакцию(); Попытка Блокировка = Новый БлокировкаДанных; @@ -1020,14 +985,31 @@ Описание = Результат.Добавить(); Описание.УдаляемыйСсылка = Элемент; Описание.ТребуетсяУдаление = Истина; + Исключение ОтменитьТранзакцию(); Описание = Результат.Добавить(); Описание.УдаляемыйСсылка = Элемент; - Описание.ТекстОшибки = ОписаниеОшибки(); + Ошибка = ИнформацияОбОшибке(); + Описание.ТекстОшибки =КраткоеПредставлениеОшибки(Ошибка); + Ошибки.Вставить(Элемент, ПодробноеПредставлениеОшибки(Ошибка)); КонецПопытки; КонецЦикла; - + + Если Ошибки.Количество() > 0 Тогда + + ТекстОшибки = Новый Массив; + Для каждого Ошибка Из Ошибки Цикл + ТекстОшибки.Добавить( + ОбщегоНазначения.ПредметСтрокой(Ошибка.Ключ) + ":" + Символы.ПС + Ошибка.Значение); + КонецЦикла; + ЗаписьЖурналаРегистрации( + НСтр("ru = 'Удаление помеченных'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, , , + НСтр("ru='Не удалось установить пометку удаления для объектов:'") + Символы.ПС + СтрСоединить(ТекстОшибки, Символы.ПС + Символы.ПС)); + + КонецЕсли; + Возврат Результат; КонецФункции @@ -1068,8 +1050,8 @@ КонецЕсли; ТипИсточника = ТипЗнч(Источник); - Если ТипИсточника = Тип("РегистрСведенийНаборЗаписей.УдаляемыеОбъекты") Или ТипИсточника = Тип( - "РегистрСведенийНаборЗаписей.НеудаленныеОбъекты") Тогда + Если ТипИсточника = Тип("РегистрСведенийНаборЗаписей.УдаляемыеОбъекты") + Или ТипИсточника = Тип("РегистрСведенийНаборЗаписей.НеудаленныеОбъекты") Тогда Возврат; КонецЕсли; @@ -1123,7 +1105,7 @@ #Область УдалениеПомеченныхОбъектов // Возвращаемое значение: -// Структура: +// Структура: // * Удаленные - Массив из ЛюбаяСсылка // * КоличествоНеУдаленных - Число // * КоличествоУдаленных - Число @@ -1192,7 +1174,7 @@ КонецФункции // Параметры: -// РезультатПредыдущегоШага - см. СвязиНеудаленных +// РезультатПредыдущегоШага - см. СвязиНеудаленных // // Возвращаемое значение: // см. СвязиНеудаленных @@ -1207,7 +1189,7 @@ ОшибкаПредыдущегоШага = СвязиНеудаленных.Добавить(); Если НЕ (Элемент.ТребуетсяУдаление) Тогда - ОшибкаПредыдущегоШага.УдаляемыйСсылка = Элемент.ОбнаруженныйСсылка; + ОшибкаПредыдущегоШага.УдаляемыйСсылка = Элемент.УдаляемыйСсылка; ОшибкаПредыдущегоШага.Представление = Элемент.ТекстОшибки; ОшибкаПредыдущегоШага.ОбнаруженныйСсылка = Элемент.ТекстОшибки; Иначе @@ -1225,13 +1207,13 @@ // при дополнительной обработке. // // Параметры: -// ИсточникУдаляемыхОбъектов - ДеревоЗначений: -// * УдаляемыйСсылка - ЛюбаяСсылка +// ИсточникУдаляемыхОбъектов - ДеревоЗначений: +// * УдаляемыйСсылка - ЛюбаяСсылка // - СписокЗначений из ЛюбаяСсылка -// РезультатОбработкиОшибок - см. ВыполнитьОбработкуПричинНеудаления +// РезультатОбработкиОшибок - см. ВыполнитьОбработкуПричинНеудаления // // Возвращаемое значение: -// Массив из ЛюбаяСсылка +// Массив из ЛюбаяСсылка // Функция УдаляемыеОбъектыИзДанныхФормы(ИсточникУдаляемыхОбъектов, РезультатОбработкиОшибок = Неопределено) @@ -1353,8 +1335,8 @@ СтрокаПрепятствующегоУдалению.ОбнаруженныйСсылка = Причина.Метаданные.ПолноеИмя(); СтрокаПрепятствующегоУдалению.ЭтоКонстанта = Истина; СтрокаПрепятствующегоУдалению.СсылочногоТипа = Ложь; - СтрокаПрепятствующегоУдалению.Представление = Причина.Метаданные.Синоним + " (" + НСтр( - "ru = 'Константа'") + ")"; + СтрокаПрепятствующегоУдалению.Представление = ОбщегоНазначения.ПредставлениеОбъекта(Причина.Метаданные) + + " (" + НСтр("ru = 'Константа'") + ")"; Вид = "КОНСТАНТА"; Иначе ОбнаруженныйИнформация = ИнформацияОТипе(ОбнаруженныйТип, КешИнформацииОТипах); @@ -1372,13 +1354,13 @@ СтрокаПрепятствующегоУдалению.ПредставлениеУдаляемый = Строка(Причина.УдаляемыйСсылка); Если ОбщегоНазначения.ЭтоРегистр(Причина.Метаданные) Тогда - СтрокаПрепятствующегоУдалению.Представление = Причина.Метаданные.Синоним + " (" + НСтр( - "ru = 'Регистр'") + ")"; + СтрокаПрепятствующегоУдалению.Представление = ОбщегоНазначения.ПредставлениеОбъекта(Причина.Метаданные) + + " (" + НСтр("ru = 'Регистр'") + ")"; Иначе СтрокаПрепятствующегоУдалению.Представление = Строка(Причина.МестоИспользования) + " (" + ОбнаруженныйИнформация.ПредставлениеЭлемента + ")"; КонецЕсли; - + Вид = ОбнаруженныйИнформация.Вид; КонецЕсли; НомерКартинки = СтрокаПрепятствующегоУдалению.НомерКартинки; @@ -1475,13 +1457,13 @@ // Возвращает номер картинки из коллекции для отображения на форме // // Параметры: -// СсылкаИлиДанные - ЛюбаяСсылка -// СсылочногоТипа - Булево -// Вид - Строка -// Статус - Строка +// СсылкаИлиДанные - ЛюбаяСсылка +// СсылочногоТипа - Булево +// Вид - Строка +// Статус - Строка // // Возвращаемое значение: -// Число - номер картинки +// Число - номер картинки // Функция НомерКартинки(Знач СсылкаИлиДанные, Знач СсылочногоТипа, Знач Вид, Знач Статус) Экспорт @@ -1542,10 +1524,28 @@ КонецЕсли; КонецПроцедуры +Функция ПроверятьИспользованиеУдаляемыхОбъектов() + ЭтоМодельСервиса = ОбщегоНазначения.РазделениеВключено(); + ВОбластиДанных = ?(ЭтоМодельСервиса, ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных(), Ложь); + Если ЭтоМодельСервиса И Не ВОбластиДанных Тогда + Возврат Ложь; + КонецЕсли; + + ПериодОбновленияЗначения = 60000; + + ДанныеКонстанты = УдалениеПомеченныхПовтИсп.ПроверятьИспользованиеУдаляемыхОбъектов(); + Если ТекущаяУниверсальнаяДатаВМиллисекундах() - ДанныеКонстанты.МеткаВремени > ПериодОбновленияЗначения Тогда + ДанныеКонстанты.Значение = Константы.ПроверятьИспользованиеУдаляемыхОбъектов.Получить(); + ДанныеКонстанты.МеткаВремени = ТекущаяУниверсальнаяДатаВМиллисекундах(); + КонецЕсли; + + Возврат ДанныеКонстанты.Значение; +КонецФункции + #Область Конструкторы // Возвращаемое значение: -// ТаблицаЗначений: +// ТаблицаЗначений: // * Ссылка - ЛюбаяСсылка // * ТекстОшибки - Строка // * ТребуетсяУдаление - Булево @@ -1566,10 +1566,10 @@ // Представление коллекция ДеревоПомеченныхНаУдаление и НеУдаленные // // Параметры: -// ЧислоДополнительныхРеквизитов - Число +// ЧислоДополнительныхРеквизитов - Число // // Возвращаемое значение: -// ДеревоЗначений: +// ДеревоЗначений: // * Пометка - Булево // * УдаляемыйСсылка - ЛюбаяСсылка // - Строка @@ -1603,7 +1603,7 @@ КонецФункции // Возвращаемое значение: -// ТаблицаЗначений: +// ТаблицаЗначений: // * УдаляемыйСсылка - ЛюбаяСсылка // * ОбнаруженныйСсылка - ЛюбаяСсылка // - Строка @@ -1630,7 +1630,7 @@ // Ошибки при удалении объектов. // // Возвращаемое значение: -// ТаблицаЗначений: +// ТаблицаЗначений: // * УдаляемыйСсылка - ЛюбаяСсылка - удаляемый объект, колонка индексируется. // * ОбнаруженныйСсылка - ЛюбаяСсылка - объект, в котором есть ссылки на удаляемый объект. // - Строка - подробное описание ошибки, если возникла ошибка при удалении объекта. diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйВызовСервера/Module.bsl index fba932ff2..3cab10f32 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйВызовСервера/Module.bsl @@ -11,12 +11,12 @@ // Устанавливает режим автоматического удаления помеченных объектов // // Параметры: -// Изменения - Структура: -// * Использование - Булево - флаг использования регламентного задания -// * Расписание - РасписаниеРегламентногоЗадания - устанавливаемое расписание регламентного задания. +// Изменения - Структура: +// * Использование - Булево - флаг использования регламентного задания +// * Расписание - РасписаниеРегламентногоЗадания - устанавливаемое расписание регламентного задания. // // Возвращаемое значение: -// Булево +// Булево // Функция УстановитьРежимУдалятьПоРасписанию(Изменения) Экспорт @@ -47,7 +47,7 @@ // Возвращает расписание регламентного задания. // // Возвращаемое значение: -// Структура: +// Структура: // * ДетальныеРасписанияДня - Массив // * Использование - Булево // * РазделениеВключено - Булево diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйКлиентСервер/Module.bsl index 1caa23fae..1fe8da765 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовСлужебныйКлиентСервер/Module.bsl @@ -9,8 +9,8 @@ #Область СлужебныеПроцедурыИФункции // Параметры: -// Список - ДинамическийСписок -// ЗначениеОтбора - Булево +// Список - ДинамическийСписок +// ЗначениеОтбора - Булево // Процедура УстановитьОтборПоПометкеУдаления(Список, ЗначениеОтбора) Экспорт ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "ПометкаУдаления", Ложь,,,ЗначениеОтбора); @@ -19,7 +19,7 @@ // Формирует результат вызова метода УдалениеПомеченныхОбъектовКлиент.НачатьУдалениеПомеченных // // Возвращаемое значение: -// Структура: +// Структура: // * УдаленныеКоличество - Число // * НеУдаленныеКоличество - Число // * АдресРезультата - Строка diff --git a/SSL/src/CommonModules/УправлениеДоступом/Module.bsl b/SSL/src/CommonModules/УправлениеДоступом/Module.bsl index 5c4740ac7..131ce2a59 100644 --- a/SSL/src/CommonModules/УправлениеДоступом/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступом/Module.bsl @@ -365,10 +365,15 @@ // Булево - если Истина, то настроено разрешение права с учетом всех разрешающих и // запрещающих настроек в иерархии. // -Функция ЕстьПраво(Право, СсылкаНаОбъект, Пользователь = Неопределено) Экспорт +Функция ЕстьПраво(Право, СсылкаНаОбъект, Знач Пользователь = Неопределено) Экспорт - Пользователь = ?(ЗначениеЗаполнено(Пользователь), Пользователь, Пользователи.АвторизованныйПользователь()); - Если Пользователи.ЭтоПолноправныйПользователь(Пользователь) Тогда + УчитыватьПривилегированныйРежим = Истина; + Если ЗначениеЗаполнено(Пользователь) Тогда + УчитыватьПривилегированныйРежим = Ложь; + Иначе + Пользователь = Пользователи.АвторизованныйПользователь(); + КонецЕсли; + Если Пользователи.ЭтоПолноправныйПользователь(Пользователь,, УчитыватьПривилегированныйРежим) Тогда Возврат Истина; КонецЕсли; @@ -442,11 +447,15 @@ КонецФункции -// Проверяет, что на уровне записей (и на уровне прав) текущему пользователю +// Проверяет, что на уровне записей (и на уровне прав) указанному пользователю // разрешено чтение объекта из базы данных. // Когда указан набор записей проверяются все записи в базе данных, // которые соответствуют свойству Отбор. // +// Важно: если подсистема работает в режиме стандартного ограничения и +// указан пользователь, но не текущий пользователь, то будет вызвано +// исключение (для проверки предусмотрена функция ПроизводительныйВариант). +// // Параметры: // ОписаниеДанных - СправочникСсылка // - ДокументСсылка @@ -460,22 +469,36 @@ // - РегистрНакопленияКлючЗаписи // - РегистрБухгалтерииКлючЗаписи // - РегистрРасчетаКлючЗаписи - ключ записи, которую требуется проверить. +// - СправочникОбъект +// - ДокументОбъект +// - ПланВидовХарактеристикОбъект +// - ПланСчетовОбъект +// - ПланВидовРасчетаОбъект +// - БизнесПроцессОбъект +// - ЗадачаОбъект +// - ПланОбменаОбъект - объект в памяти и базе данных, который требуется проверить. // - РегистрСведенийНаборЗаписей // - РегистрНакопленияНаборЗаписей // - РегистрБухгалтерииНаборЗаписей // - РегистрРасчетаНаборЗаписей - набор записей с настроенным свойством Отбор, // по которому определяются записи в базе данных для проверки. // +// Пользователь - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи +// - Неопределено - текущий пользователь. +// Когда параметр указан, привилегированный режим не учитывается. +// Для проверки прав не текущего пользователя требуются административные права. +// // Возвращаемое значение: // Булево // -Функция ЧтениеРазрешено(ОписаниеДанных) Экспорт +Функция ЧтениеРазрешено(ОписаниеДанных, Пользователь = Неопределено) Экспорт - Возврат УправлениеДоступомСлужебный.ДоступРазрешен(ОписаниеДанных, Ложь); + Возврат УправлениеДоступомСлужебный.ДоступРазрешен(ОписаниеДанных, Ложь,,, Пользователь); КонецФункции -// Проверяет, что на уровне записей (и на уровне прав) текущему пользователю +// Проверяет, что на уровне записей (и на уровне прав) указанному пользователю // разрешено изменение объекта в базе данных на объект в памяти. // Для нового объекта проверяется только объект в памяти. // Если указана ссылка или ключ записи, проверятся только объект в базе данных. @@ -483,6 +506,8 @@ // Важно: если подсистема работает в режиме стандартного ограничения, // а не в режиме универсального ограничения, тогда проверяется право // Изменение на таблицу, а на уровне записей проверяется только право Чтение. +// Если указан пользователь, но не текущий пользователь, то будет вызвано +// исключение (для проверки предусмотрена функция ПроизводительныйВариант). // // Параметры: // ОписаниеДанных - СправочникСсылка @@ -511,12 +536,18 @@ // - РегистрРасчетаНаборЗаписей - набор записей в памяти и базе данных, // который требуется проверить. // +// Пользователь - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи +// - Неопределено - текущий пользователь. +// Когда параметр указан, привилегированный режим не учитывается. +// Для проверки прав не текущего пользователя требуются административные права. +// // Возвращаемое значение: // Булево // -Функция ИзменениеРазрешено(ОписаниеДанных) Экспорт +Функция ИзменениеРазрешено(ОписаниеДанных, Пользователь = Неопределено) Экспорт - Возврат УправлениеДоступомСлужебный.ДоступРазрешен(ОписаниеДанных, Истина); + Возврат УправлениеДоступомСлужебный.ДоступРазрешен(ОписаниеДанных, Истина,,, Пользователь); КонецФункции @@ -602,6 +633,20 @@ КонецФункции +// Возвращает вариант работы ограничений доступа на уровне записей. +// +// Требуется при расширенном использовании функций +// ЧтениеРазрешено и ИзменениеРазрешено в производительном варианте. +// +// Возвращаемое значение: +// Булево - если Ложь, стандартный вариант, иначе производительный. +// +Функция ПроизводительныйВариант() Экспорт + + Возврат УправлениеДоступомСлужебный.ОграничиватьДоступНаУровнеЗаписейУниверсально(Ложь, Истина); + +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Процедуры и функции, используемые для настройки интерфейса управляемых форм. @@ -1029,7 +1074,7 @@ // // Параметры: // Список - ДинамическийСписок - динамический список, в который нужно установить отборы. -// ОписаниеОтборов - Соответствие: +// ОписаниеОтборов - Соответствие из КлючИЗначение: // * Ключ - Строка - имя поля основной таблицы динамического списка, для которого // нужно установить условие <Поле> В (&РазрешенныеЗначения). // * Значение - Тип - тип значений доступа, которые нужно включить в состав @@ -1141,7 +1186,7 @@ // объектов ссылочного типа, для которых нужно вернуть права. // // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - СправочникСсылка.ИдентификаторыОбъектовМетаданных - идентификатор типа; // * Значение - Структура: // * Ключ - Строка - имя права доступа ("Чтение", "Изменение", "Добавление"); @@ -1261,9 +1306,8 @@ // (элемент справочника, документ, бизнес-процесс, задача, план видов характеристик и т.п.), // для которого требуется заполнить наборы значений доступа. // -// Таблица - ТаблицаЗначений -// - Неопределено - возвращает в этом параметре подготовленные наборы значений -// доступа. Описание колонок см. в функции УправлениеДоступом.ТаблицаНаборыЗначенийДоступа. +// Таблица - см. УправлениеДоступом.ТаблицаНаборыЗначенийДоступа +// - Неопределено - возвращает в этом параметре подготовленные наборы значений доступа. // Если передано Неопределено, то будет создана и заполнена новая таблица наборов значений доступа. // // СсылкаНаПодчиненныйОбъект - ЛюбаяСсылка - используется, когда нужно заполнить наборы значений @@ -1679,7 +1723,7 @@ // Предназначена для вызова из оперативного обработчика обновления. // // Параметры: -// ЗаменяемыеРоли - Соответствие: +// ЗаменяемыеРоли - Соответствие из КлючИЗначение: // * Ключ - Строка - имя заменяемой роли, например "ЧтениеБазовойНСИ". Если роль была удалена, // то к имени нужно добавить приставку "? ", например "? ЧтениеБазовойНСИ". // @@ -2294,13 +2338,13 @@ // Возвращаемое значение: // Структура: // * ВнутренниеДанные - Структура - данные для передачи в функцию СтруктураОграничения. -// * ПоляТаблиц - Соответствие: +// * ПоляТаблиц - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя коллекции объектов метаданных, например, Справочники. -// ** Значение - Соответствие: +// ** Значение - Соответствие из КлючИЗначение: // *** Ключ - Строка - имя таблицы (объекта метаданных) в верхнем регистре. // *** Значение - Структура: // **** ТаблицаСуществует - Булево - Ложь (для заполнения Истина, если существует). -// **** Поля - Соответствие: +// **** Поля - Соответствие из КлючИЗначение: // ***** Ключ - Строка - имя реквизита в верхнем регистре, в том числе через точки, // например, "ВЛАДЕЛЕЦ.ОРГАНИЗАЦИЯ", "ТОВАРЫ.НОМЕНКЛАТУРА". // ***** Значение - Структура: @@ -2320,18 +2364,18 @@ // Поля после первой точки могут относится только к коллекциям: "Реквизиты", // "СтандартныеРеквизиты", "ПризнакиУчета", "РеквизитыАдресации". Для этих // частей имени поля не требуется уточнять коллекцию. -// ****** СодержитТипы - Соответствие: +// ****** СодержитТипы - Соответствие из КлючИЗначение: // ******* Ключ - Строка - полное имя ссылочной таблицы в верхнем регистре. // ******* Значение - Структура: // ******** ИмяТипа - Строка - имя типа, наличие которого нужно проверить. // ******** СодержитТип - Булево - Ложь (для заполнения Истина, // если у поля последнего поля есть тип). -// **** Предопределенные - Соответствие: +// **** Предопределенные - Соответствие из КлючИЗначение: // ***** Ключ - Строка - имя предопределенного элемента. // ***** Значение - Структура: // ****** ИмяСуществует - Булево - Ложь (для заполнения Истина, если предопределенный есть). // -// **** Расширения - Соответствие: +// **** Расширения - Соответствие из КлючИЗначение: // ***** Ключ - Строка - имя третьего имени таблицы, например, имя табличной части. // ***** Значение - Структура: // ****** ТаблицаСуществует - Булево - Ложь (для заполнения Истина, если существует). @@ -2446,7 +2490,7 @@ // *** Значение - Строка - полное имя таблицы // ** ПроверятьТипыКромеУказанных - Булево - если Истина, то все типы свойства Поле, // кроме указанных в свойстве Типы. -// ** УточненияСравнения - Соответствие: +// ** УточненияСравнения - Соответствие из КлючИЗначение: // *** Ключ - Строка - уточняемое значение "Неопределено", "Null", "ПустаяСсылка", // <полное имя таблицы>, "Число", "Строка", "Дата", "Булево". // *** Значение - Строка - результат "Ложь", "Истина". diff --git a/SSL/src/CommonModules/УправлениеДоступомПереопределяемый/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомПереопределяемый/Module.bsl index f17e4eb00..b0dd667f3 100644 --- a/SSL/src/CommonModules/УправлениеДоступомПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомПереопределяемый/Module.bsl @@ -44,44 +44,31 @@ КонецПроцедуры -// Позволяет указать списки, у которых объекты метаданных содержат описание логики ограничения -// доступа в модулях менеджеров или переопределяемом модуле. +// Позволяет указать объекты метаданных, для которых задана логика ограничения доступа к данным. +// В модулях менеджеров указанных списков размещается процедура обработчика, например: // -// В модулях менеджеров указанных списков должна быть размещена процедура обработчика, -// в которую передаются следующие параметры. -// -// Ограничение - Структура - со свойствами: -// * Текст - Строка - ограничение доступа для пользователей. -// Если пустая строка, значит, доступ разрешен. -// * ТекстДляВнешнихПользователей - Строка - ограничение доступа для внешних пользователей. -// Если пустая строка, значит, доступ запрещен. -// * ПоВладельцуБезЗаписиКлючейДоступа - Неопределено - определить автоматически. -// - Булево - если Ложь, то всегда записывать ключи доступа, -// если Истина, тогда не записывать ключи доступа, -// а использовать ключи доступа владельца (требуется, -// чтобы ограничение было строго по объекту-владельцу). -/// * ПоВладельцуБезЗаписиКлючейДоступаДляВнешнихПользователей - Неопределено, Булево - см. -// описание предыдущего параметра. -// -// Далее пример процедуры для модуля менеджера. -// -//// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +//// Параметры: +//// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +//// //Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт // -// Ограничение.Текст = -// "РазрешитьЧтениеИзменение -// |ГДЕ -// | ЗначениеРазрешено(Организация) -// | И ЗначениеРазрешено(Контрагент)"; +// Ограничение.Текст = +// "РазрешитьЧтениеИзменение +// |ГДЕ +// | ЗначениеРазрешено(Организация) +// | И ЗначениеРазрешено(Контрагент)"; // //КонецПроцедуры // +// Логика ограничения доступа к данным также может быть переопределена в процедуре +// УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа. +// // Параметры: -// Списки - Соответствие - списки с ограничением доступа: +// Списки - Соответствие из КлючИЗначение - списки с ограничением доступа: // * Ключ - ОбъектМетаданных - список с ограничением доступа. // * Значение - Булево - Истина - текст ограничения в модуле менеджера, -// Ложь - текст ограничения в этом переопределяемом. -// модуле в процедуре ПриЗаполненииОграниченияДоступа. +// Ложь - текст ограничения в этом переопределяемом +// модуле в процедуре ПриЗаполненииОграниченияДоступа. // Процедура ПриЗаполненииСписковСОграничениемДоступа(Списки) Экспорт @@ -172,15 +159,15 @@ // * НачальноеЗначение - Булево - начальное значение флажка права при добавлении новой строки // в форме "Права доступа". // -// * ТребуемыеПрава - Массив Из Строка - имена прав, требуемых для этого права - +// * ТребуемыеПрава - Массив из Строка - имена прав, требуемых для этого права - // например, право "ДобавлениеФайлов" требует права "ИзменениеФайлов". // -// * ЧтениеВТаблицах - Массив Из Строка - полные имена таблиц, для которых это право обозначает право Чтение. +// * ЧтениеВТаблицах - Массив из Строка - полные имена таблиц, для которых это право обозначает право Чтение. // Возможно использование символа "*", который обозначает "для всех остальных таблиц", // т.к. право Чтение может зависеть только от права Чтение, то имеет смысл только символ "*" // (требуется для работы шаблонов ограничения доступа). // -// * ИзменениеВТаблицах - Массив Из Строка - полные имена таблиц, для которых это право обозначает право Изменение. +// * ИзменениеВТаблицах - Массив из Строка - полные имена таблиц, для которых это право обозначает право Изменение. // Возможно использование символа "*", который обозначает "для всех остальных таблиц" // (требуется для работы шаблонов ограничения доступа). // @@ -217,8 +204,18 @@ // В процедуре ПриЗаполненииСписковСОграничениемДоступа нужно // указать для списка значение Ложь, иначе вызова не будет. // -// Ограничение - Структура - со свойствами, как для процедур в модулях менеджеров. См. свойства -// в комментарии к процедуре ПриЗаполненииСписковСОграничениемДоступа. +// Ограничение - Структура: +// * Текст - Строка - ограничение доступа для пользователей. +// Если пустая строка, значит, доступ разрешен. +// * ТекстДляВнешнихПользователей - Строка - ограничение доступа для внешних пользователей. +// Если пустая строка, значит, доступ запрещен. +// * ПоВладельцуБезЗаписиКлючейДоступа - Неопределено - определить автоматически. +// - Булево - если Ложь, то всегда записывать ключи доступа, +// если Истина, тогда не записывать ключи доступа, +// а использовать ключи доступа владельца (требуется, +// чтобы ограничение было строго по объекту-владельцу). +// * ПоВладельцуБезЗаписиКлючейДоступаДляВнешнихПользователей - Неопределено, Булево - также +// как у параметра ПоВладельцуБезЗаписиКлючейДоступа. // Процедура ПриЗаполненииОграниченияДоступа(Список, Ограничение) Экспорт diff --git a/SSL/src/CommonModules/УправлениеДоступомСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомСлужебный/Module.bsl index ed58d2508..2988c0d04 100644 --- a/SSL/src/CommonModules/УправлениеДоступомСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомСлужебный/Module.bsl @@ -556,6 +556,10 @@ Возврат; КонецЕсли; + Если ВключитьЗадание И ЭтоСеансФоновогоОбновленияДоступа() Тогда + Возврат; + КонецЕсли; + Если Не ТранзакцияАктивна() Или ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда ИзменитьРегламентноеЗаданиеОбновленияДоступа(ВключитьЗадание); @@ -632,7 +636,7 @@ // Структура: // * ОграниченияВРолях - Структура: // ** ДляПользователей - Соответствие - со свойствами, как для внешних пользователей (ниже). -// ** ДляВнешнихПользователей - Соответствие: +// ** ДляВнешнихПользователей - Соответствие из КлючИЗначение: // *** Ключ - Строка - полное имя объекта метаданных (списка). Имя коллекции на английском. // В форме объекта должна вставка ПриЧтенииНаСервере. // *** Значение - Структура: @@ -641,7 +645,7 @@ // **** Параметры - Массив из Строка - параметры шаблона (для объекта 1, для регистра 6). // Например, имя поля "Владелец" или опорного поля регистра "Организация". // -// * ПредопределенныеИдентификаторы - Соответствие: +// * ПредопределенныеИдентификаторы - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя требуемого предопределенного элемента справочника // ИдентификаторыОбъектовМетаданных или ИдентификаторыОбъектовРасширений // в формате "<ИмяСправочника>.<ИмяПредопределенного>". @@ -657,19 +661,19 @@ // * ЗначенияДоступа - Массив - полные имена типов ссылки (имя коллекции на английском). // Для дополнения определяемого типа ЗначениеДоступа. // -// * ТипыИзмеренийРегистровКлючей - Соответствие - со свойствами: +// * ТипыИзмеренийРегистровКлючей - Соответствие из КлючИЗначение: // Для измерений с именем Поле регистра КлючиДоступаКРегистрам и регистров КлючиДоступаКРегистру<*>: // ** Ключ - Строка - имя регистра. // ** Значение - Структура: // *** ИменаТипов - Массив из Строка - полные имена типов (на английском). -// *** ПоляРегистров - Соответствие: +// *** ПоляРегистров - Соответствие из КлючИЗначение: // **** Ключ - Строка - полное имя регистра, который ограничивается. // **** Значение - Массив из Структура: // ***** Поле - Строка - имя поля регистра. // ***** Тип - ОписаниеТипов - типы поля регистра. // Порядок полей в массиве соответствуют // служебным полям Поле1, Поле2, ... -// *** ПоляРегистровПоТипам - Соответствие: +// *** ПоляРегистровПоТипам - Соответствие из КлючИЗначение: // **** Ключ - Строка - полное имя типа (на английском). // **** Значение - Массив из Строка - полные имена полей, например, // "РегистрСведений.ДополнительныеСведения.Свойство". @@ -766,7 +770,7 @@ // Параметры: // ПолноеИмя - Строка - полное имя объекта метаданных. // ДополнительныеПараметры - Неопределено - проверить и вернуть текущее ограничение. -// - Структура: +// - Структура: // * Текст - Строка - новый текст ограничения для пользователей. // * ТекстДляВнешнихПользователей - Строка - новый текст ограничения для внешних пользователей. // * УчитыватьЗависимости - Булево - учитывать зависимости между ограничениями объектов. @@ -791,8 +795,10 @@ // - Строка - текст ошибки. // * ОшибкаФормированияТекстовЗапросов - Неопределено // - Строка - текст ошибки. -// * ОграничениеПоВладельцуВозможно - Неопределено -// - Булево - свойство проверенного ограничения. +// * ОграничениеПоВладельцуВозможно - Неопределено +// - Булево - свойство проверенного ограничения. +// * ОграничениеПоВладельцуИспользуется - Неопределено +// - Булево - когда УчитыватьЗависимости указано Истина. // * ОграниченияВРолях - Неопределено // - Структура: // * ШаблонДляОбъекта - Булево - если Истина, тогда используется шаблон #ДляОбъекта, @@ -1145,8 +1151,37 @@ КонецФункции -// Только для внутреннего использования. -Процедура ЗапланироватьОбновлениеПараметровОграниченияДоступа(Описание) Экспорт +// Параметры: +// Описание - Строка - имя процедуры, которая вызвала планирование, +// используемое для расширенной регистрации в журнале. +// ЗапуститьОбновление - Булево - если Истина, то планирование будет +// негарантированным, так как при наличии транзакции +// выполняется в фоне "как есть" для возможности запуска обновления. +// +Процедура ЗапланироватьОбновлениеПараметровОграниченияДоступа(Описание, ЗапуститьОбновление = Ложь) Экспорт + + Если Не ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда + Возврат; + КонецЕсли; + + Если Не ТранзакцияАктивна() Или Не ЗапуститьОбновление Тогда + ЗаписатьПланированиеОбновленияПараметровОграниченияДоступа(Описание, ЗапуститьОбновление); + Возврат; + КонецЕсли; + + ПараметрыПроцедуры = Новый Массив; + ПараметрыПроцедуры.Добавить(Описание); + ПараметрыПроцедуры.Добавить(ЗапуститьОбновление); + + ФоновыеЗадания.Выполнить( + "УправлениеДоступомСлужебный.ЗаписатьПланированиеОбновленияПараметровОграниченияДоступа", + ПараметрыПроцедуры,, НСтр("ru = 'Управление доступом: планирование обновления доступа'", + ОбщегоНазначения.КодОсновногоЯзыка())); + +КонецПроцедуры + +// Только для процедуры ЗапланироватьОбновлениеПараметровОграниченияДоступа. +Процедура ЗаписатьПланированиеОбновленияПараметровОграниченияДоступа(Описание, ЗапуститьОбновление) Экспорт Если Не ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда Возврат; @@ -1159,6 +1194,9 @@ Идентификатор = СлужебныйИдентификатор("РегистрСведений.ПараметрыОграниченияДоступа"); Если Идентификатор <> Null Тогда ЗапланироватьОбновлениеДоступа(Идентификатор, ПараметрыПланирования); + Если ЗапуститьОбновление Тогда + ЗапуститьОбновлениеДоступа(); + КонецЕсли; КонецЕсли; КонецПроцедуры @@ -1194,6 +1232,40 @@ КонецПроцедуры +// Для функции ПраваРолейРасширений и функции ЗаполнитьВсеПараметрыРаботыРасширений +// модуля менеджера регистра сведений ПараметрыРаботыВерсийРасширений. +// +Процедура УстановитьЗаписьПараметровОграниченияДоступаВТекущемСеансе(Включить) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + ТекущиеПараметры = ПараметрыСеанса.ПараметрыОграниченияДоступа; + ИмяСвойства = "ЗаписьПараметровОграниченияДоступаВТекущемСеансе"; + + Если Не Включить И Не ТекущиеПараметры.Свойство(ИмяСвойства) Тогда + Возврат; + КонецЕсли; + + НовыеПараметры = Новый Структура(ТекущиеПараметры); + + Если Включить Тогда + Если Не НовыеПараметры.Свойство(ИмяСвойства) Тогда + НовыеПараметры.Вставить(ИмяСвойства, 0); + КонецЕсли; + НовыеПараметры[ИмяСвойства] = НовыеПараметры[ИмяСвойства] + 1; + Иначе + НовыеПараметры[ИмяСвойства] = НовыеПараметры[ИмяСвойства] - 1; + Если НовыеПараметры[ИмяСвойства] < 1 Тогда + НовыеПараметры.Удалить(ИмяСвойства); + КонецЕсли; + КонецЕсли; + + ПараметрыСеанса.ПараметрыОграниченияДоступа = Новый ФиксированнаяСтруктура(НовыеПараметры); + + УстановитьПривилегированныйРежим(Ложь); + +КонецПроцедуры + #КонецОбласти //////////////////////////////////////////////////////////////////////////////// @@ -1357,10 +1429,6 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт // Обработчики обновления неразделенных данных. @@ -1378,11 +1446,6 @@ Обработчик.РежимВыполнения = "Оперативно"; Обработчик.Процедура = "УправлениеДоступомСлужебный.ОбновитьВспомогательныеДанныеПоИзменениямКонфигурации"; - Обработчик = Обработчики.Добавить(); - Обработчик.НачальноеЗаполнение = Истина; - Обработчик.РежимВыполнения = "Оперативно"; - Обработчик.Процедура = "УправлениеДоступомСлужебный.ЗаполнитьНаименованиеПредопределенныхЭлементов"; - // Должен выполнятся после обработчика ЗаполнитьИдентификаторыПоставляемыхДанных. Обработчик = Обработчики.Добавить(); Обработчик.Версия = "1.0.0.1"; @@ -1412,6 +1475,11 @@ Обработчик.ЧитаемыеОбъекты = "Справочник.ГруппыДоступа"; Обработчик.ИзменяемыеОбъекты = "РегистрСведений.ТаблицыГруппДоступа,РегистрСведений.ЗначенияГруппДоступа,РегистрСведений.ЗначенияГруппДоступаПоУмолчанию"; + Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика(); + НоваяСтрока = Обработчик.ПриоритетыВыполнения.Добавить(); + НоваяСтрока.Процедура = "МультиязычностьСервер.ОбработатьДанныеДляПереходаНаНовуюВерсию"; + НоваяСтрока.Порядок = "До"; + Обработчик = Обработчики.Добавить(); Обработчик.Версия = "3.1.3.135"; Обработчик.Процедура = "РегистрыСведений.ГруппыЗначенийДоступа.ОбработатьДанныеДляПереходаНаНовуюВерсию"; @@ -1436,6 +1504,18 @@ КонецПроцедуры +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриОпределенииНастроек +// +// Параметры: +// Объекты - Массив из ОбъектМетаданных +// +Процедура ПриОпределенииОбъектовСНачальнымЗаполнением(Объекты) Экспорт + + Объекты.Добавить(Метаданные.Справочники.ПрофилиГруппДоступа); + Объекты.Добавить(Метаданные.Справочники.ГруппыДоступа); + +КонецПроцедуры + // См. ОбновлениеИнформационнойБазыБСП.ПослеОбновленияИнформационнойБазы. Процедура ПослеОбновленияИнформационнойБазы(Знач ПредыдущаяВерсия, Знач ТекущаяВерсия, Знач ВыполненныеОбработчики, ВыводитьОписаниеОбновлений, МонопольныйРежим) Экспорт @@ -1461,11 +1541,7 @@ КонецПроцедуры -// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок -// -// Параметры: -// ИсключенияПоискаСсылок - см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.ИсключенияПоискаСсылок -// +// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.ГруппыЗначенийДоступа); @@ -2068,6 +2144,259 @@ КонецПроцедуры +// Процедуры и функции подсистемы ЦентрМониторинга. + +// Возвращает текст запроса для сбора статистической информации об использовании профилей групп доступа и ролей. +// +Функция ТекстЗапросаИспользованияРолей() Экспорт + + Возврат + "ВЫБРАТЬ + | СоставыГруппПользователей.ГруппаПользователей КАК ГруппаПользователей, + | СведенияОПользователях.Пользователь КАК Пользователь, + | ВЫБОР + | КОГДА РАЗНОСТЬДАТ(СведенияОПользователях.ДатаПоследнейАктивности, &ТекущаяДата, ДЕНЬ) <= 7 + | ТОГДА 1 + | ИНАЧЕ 0 + | КОНЕЦ КАК АктивныхЗаНеделю, + | ВЫБОР + | КОГДА РАЗНОСТЬДАТ(СведенияОПользователях.ДатаПоследнейАктивности, &ТекущаяДата, ДЕНЬ) <= 30 + | ТОГДА 1 + | ИНАЧЕ 0 + | КОНЕЦ КАК АктивныхЗаМесяц + |ПОМЕСТИТЬ ВТСоставыГруппИАктивность + |ИЗ + | РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОПользователях КАК СведенияОПользователях + | ПО СоставыГруппПользователей.Пользователь = СведенияОПользователях.Пользователь + |ГДЕ + | СоставыГруппПользователей.Используется + | И НЕ СоставыГруппПользователей.Пользователь.ИдентификаторПользователяИБ = &ПустойУИД + | + |ИНДЕКСИРОВАТЬ ПО + | ГруппаПользователей, + | Пользователь + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ПрофилиГруппДоступа.Ссылка КАК Профиль, + | ПрофилиГруппДоступа.ИдентификаторПоставляемыхДанных КАК ИдентификаторПоставляемыхДанных, + | ПрофилиГруппДоступа.ПоставляемыйПрофильИзменен КАК ПоставляемыйПрофильИзменен, + | ПрофилиГруппДоступа.Наименование КАК Наименование, + | ГруппыДоступаПользователи.Ссылка КАК ГруппаДоступа, + | ГруппыДоступаПользователи.Ссылка.Пользователь = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) + | ИЛИ ГруппыДоступаПользователи.Ссылка.Пользователь = ЗНАЧЕНИЕ(Справочник.ВнешниеПользователи.ПустаяСсылка) + | ИЛИ ГруппыДоступаПользователи.Ссылка.Пользователь = НЕОПРЕДЕЛЕНО КАК ОбщаяГруппаДоступа, + | ГруппыДоступаПользователи.Пользователь КАК ПользовательТЧ, + | СоставыГруппПользователей.Пользователь КАК ПользовательРС, + | СоставыГруппПользователей.АктивныхЗаНеделю КАК АктивныхЗаНеделю, + | СоставыГруппПользователей.АктивныхЗаМесяц КАК АктивныхЗаМесяц + |ПОМЕСТИТЬ ВТДанныеПрофилей + |ИЗ + | Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСоставыГруппИАктивность КАК СоставыГруппПользователей + | ПО ГруппыДоступаПользователи.Пользователь = СоставыГруппПользователей.ГруппаПользователей + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПрофилиГруппДоступа КАК ПрофилиГруппДоступа + | ПО (ПрофилиГруппДоступа.Ссылка = ГруппыДоступаПользователи.Ссылка.Профиль) + | И (НЕ ГруппыДоступаПользователи.Ссылка.Профиль.ПометкаУдаления) + |ГДЕ + | НЕ ГруппыДоступаПользователи.Ссылка.Профиль.ПометкаУдаления + | + |СГРУППИРОВАТЬ ПО + | ПрофилиГруппДоступа.Ссылка, + | ПрофилиГруппДоступа.Наименование, + | ГруппыДоступаПользователи.Пользователь, + | СоставыГруппПользователей.Пользователь, + | СоставыГруппПользователей.АктивныхЗаНеделю, + | СоставыГруппПользователей.АктивныхЗаМесяц, + | ГруппыДоступаПользователи.Ссылка, + | ГруппыДоступаПользователи.Ссылка.Пользователь = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) + | ИЛИ ГруппыДоступаПользователи.Ссылка.Пользователь = ЗНАЧЕНИЕ(Справочник.ВнешниеПользователи.ПустаяСсылка) + | ИЛИ ГруппыДоступаПользователи.Ссылка.Пользователь = НЕОПРЕДЕЛЕНО, + | ПрофилиГруппДоступа.ИдентификаторПоставляемыхДанных, + | ПрофилиГруппДоступа.ПоставляемыйПрофильИзменен + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ РАЗЛИЧНЫЕ + | ВТДанныеПрофилей.Профиль КАК Профиль, + | ВТДанныеПрофилей.Наименование КАК Наименование, + | ВТДанныеПрофилей.ИдентификаторПоставляемыхДанных КАК ИдентификаторПоставляемыхДанных, + | ВТДанныеПрофилей.ПоставляемыйПрофильИзменен КАК ПоставляемыйПрофильИзменен + |ПОМЕСТИТЬ Профили + |ИЗ + | ВТДанныеПрофилей КАК ВТДанныеПрофилей + | + |ИНДЕКСИРОВАТЬ ПО + | Профиль + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | Профили.Профиль КАК Профиль, + | СУММА(ВЫБОР + | КОГДА НЕ ПрофилиГруппДоступаВидыДоступа.ВидДоступа ЕСТЬ NULL + | ТОГДА 1 + | ИНАЧЕ 0 + | КОНЕЦ) КАК ВсегоВидовДоступа, + | СУММА(ВЫБОР + | КОГДА ЕСТЬNULL(ПрофилиГруппДоступаВидыДоступа.Предустановленный, ЛОЖЬ) + | ТОГДА 1 + | ИНАЧЕ 0 + | КОНЕЦ) КАК ПредустановленныхВидовДоступа + |ПОМЕСТИТЬ ВидыДоступа + |ИЗ + | Профили КАК Профили + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПрофилиГруппДоступа.ВидыДоступа КАК ПрофилиГруппДоступаВидыДоступа + | ПО Профили.Профиль = ПрофилиГруппДоступаВидыДоступа.Ссылка + | + |СГРУППИРОВАТЬ ПО + | Профили.Профиль + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | Вложенный.Профиль КАК Профиль, + | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Вложенный.ГруппаДоступа) КАК ГруппаДоступа, + | СУММА(ВЫБОР + | КОГДА НЕ Вложенный.ОбщаяГруппаДоступа + | ТОГДА 1 + | ИНАЧЕ 0 + | КОНЕЦ) КАК ПерсональнаяГруппа + |ПОМЕСТИТЬ ГруппыДоступа + |ИЗ + | (ВЫБРАТЬ + | ВТДанныеПрофилей.Профиль КАК Профиль, + | ВТДанныеПрофилей.ГруппаДоступа КАК ГруппаДоступа, + | ВТДанныеПрофилей.ОбщаяГруппаДоступа КАК ОбщаяГруппаДоступа + | ИЗ + | ВТДанныеПрофилей КАК ВТДанныеПрофилей + | + | СГРУППИРОВАТЬ ПО + | ВТДанныеПрофилей.Профиль, + | ВТДанныеПрофилей.ГруппаДоступа, + | ВТДанныеПрофилей.ОбщаяГруппаДоступа) КАК Вложенный + | + |СГРУППИРОВАТЬ ПО + | Вложенный.Профиль + | + |ИНДЕКСИРОВАТЬ ПО + | Профиль + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | Вложенный.Профиль КАК Профиль, + | СУММА(ВЫБОР + | КОГДА Вложенный.ПользовательТЧ ССЫЛКА Справочник.ГруппыПользователей + | ТОГДА 1 + | ИНАЧЕ 0 + | КОНЕЦ) КАК ГруппПользователей, + | СУММА(ВЫБОР + | КОГДА Вложенный.ПользовательТЧ ССЫЛКА Справочник.ГруппыВнешнихПользователей + | ТОГДА 1 + | ИНАЧЕ 0 + | КОНЕЦ) КАК ГруппВнешнихПользователей + |ПОМЕСТИТЬ ГруппыПользователей + |ИЗ + | (ВЫБРАТЬ + | ВТДанныеПрофилей.Профиль КАК Профиль, + | ВТДанныеПрофилей.ПользовательТЧ КАК ПользовательТЧ + | ИЗ + | ВТДанныеПрофилей КАК ВТДанныеПрофилей + | + | СГРУППИРОВАТЬ ПО + | ВТДанныеПрофилей.Профиль, + | ВТДанныеПрофилей.ПользовательТЧ) КАК Вложенный + | + |СГРУППИРОВАТЬ ПО + | Вложенный.Профиль + | + |ИНДЕКСИРОВАТЬ ПО + | Профиль + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | Вложенный.Профиль КАК Профиль, + | СУММА(ВЫБОР + | КОГДА Вложенный.ПользовательРС ССЫЛКА Справочник.Пользователи + | ТОГДА 1 + | ИНАЧЕ 0 + | КОНЕЦ) КАК Пользователи, + | СУММА(ВЫБОР + | КОГДА Вложенный.ПользовательРС ССЫЛКА Справочник.ВнешниеПользователи + | ТОГДА 1 + | ИНАЧЕ 0 + | КОНЕЦ) КАК ВнешниеПользователи, + | СУММА(Вложенный.АктивныхЗаНеделю) КАК АктивныхЗаНеделю, + | СУММА(Вложенный.АктивныхЗаМесяц) КАК АктивныхЗаМесяц + |ПОМЕСТИТЬ ПользователиПрофиля + |ИЗ + | (ВЫБРАТЬ + | ВТДанныеПрофилей.Профиль КАК Профиль, + | ВТДанныеПрофилей.ПользовательРС КАК ПользовательРС, + | СУММА(ВТДанныеПрофилей.АктивныхЗаНеделю) КАК АктивныхЗаНеделю, + | СУММА(ВТДанныеПрофилей.АктивныхЗаМесяц) КАК АктивныхЗаМесяц + | ИЗ + | ВТДанныеПрофилей КАК ВТДанныеПрофилей + | + | СГРУППИРОВАТЬ ПО + | ВТДанныеПрофилей.Профиль, + | ВТДанныеПрофилей.ПользовательРС) КАК Вложенный + | + |СГРУППИРОВАТЬ ПО + | Вложенный.Профиль + | + |ИНДЕКСИРОВАТЬ ПО + | Профиль + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | Профили.Профиль КАК Профиль, + | Профили.Наименование КАК Наименование, + | Профили.ИдентификаторПоставляемыхДанных КАК ИдентификаторПоставляемыхДанных, + | Профили.ПоставляемыйПрофильИзменен КАК ПоставляемыйПрофильИзменен, + | ЕСТЬNULL(ГруппыДоступа.ГруппаДоступа, 0) КАК ГруппаДоступа, + | ЕСТЬNULL(ГруппыДоступа.ПерсональнаяГруппа, 0) КАК ПерсональнаяГруппа, + | ЕСТЬNULL(ГруппыПользователей.ГруппПользователей, 0) КАК ГруппПользователей, + | ЕСТЬNULL(ГруппыПользователей.ГруппВнешнихПользователей, 0) КАК ГруппВнешнихПользователей, + | ЕСТЬNULL(ПользователиПрофиля.Пользователи, 0) КАК Пользователи, + | ЕСТЬNULL(ПользователиПрофиля.ВнешниеПользователи, 0) КАК ВнешниеПользователи, + | ЕСТЬNULL(ПользователиПрофиля.АктивныхЗаНеделю, 0) КАК АктивныхЗаНеделю, + | ЕСТЬNULL(ПользователиПрофиля.АктивныхЗаМесяц, 0) КАК АктивныхЗаМесяц, + | ЕСТЬNULL(ВидыДоступа.ВсегоВидовДоступа, 0) КАК ВсегоВидовДоступа, + | ЕСТЬNULL(ВидыДоступа.ПредустановленныхВидовДоступа, 0) КАК ПредустановленныхВидовДоступа + |ИЗ + | Профили КАК Профили + | ЛЕВОЕ СОЕДИНЕНИЕ ПользователиПрофиля КАК ПользователиПрофиля + | ПО Профили.Профиль = ПользователиПрофиля.Профиль + | ЛЕВОЕ СОЕДИНЕНИЕ ГруппыПользователей КАК ГруппыПользователей + | ПО Профили.Профиль = ГруппыПользователей.Профиль + | ЛЕВОЕ СОЕДИНЕНИЕ ГруппыДоступа КАК ГруппыДоступа + | ПО Профили.Профиль = ГруппыДоступа.Профиль + | ЛЕВОЕ СОЕДИНЕНИЕ ВидыДоступа КАК ВидыДоступа + | ПО Профили.Профиль = ВидыДоступа.Профиль + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ РАЗЛИЧНЫЕ + | Профили.Профиль КАК Профиль, + | ЕСТЬNULL(ПрофилиГруппДоступаРоли.Роль.Имя, """") КАК РольИмя + |ИЗ + | Профили КАК Профили + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПрофилиГруппДоступа.Роли КАК ПрофилиГруппДоступаРоли + | ПО Профили.Профиль = ПрофилиГруппДоступаРоли.Ссылка + | И (Профили.ИдентификаторПоставляемыхДанных = &ПустойУИД + | ИЛИ Профили.ПоставляемыйПрофильИзменен) + | + |УПОРЯДОЧИТЬ ПО + | Профиль"; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -2973,7 +3302,7 @@ КонецЦикла; - Если КоличествоДанных < 10000 И Не ОграничиватьДоступНаУровнеЗаписейУниверсально(Ложь, Истина) Тогда + Если КоличествоДанных < 10000 И Не УправлениеДоступом.ПроизводительныйВариант() Тогда // Заполнение регистра сведений НаборыЗначенийДоступа. ТипыОбъектов = УправлениеДоступомСлужебныйПовтИсп.ТипыОбъектовВПодпискахНаСобытия( @@ -3007,7 +3336,7 @@ КонецЕсли; // Обновление кэш-реквизитов в наборах значений доступа. - Если КоличествоДанных < 10000 И Не ОграничиватьДоступНаУровнеЗаписейУниверсально(Ложь, Истина) Тогда + Если КоличествоДанных < 10000 И Не УправлениеДоступом.ПроизводительныйВариант() Тогда ТипыЗначенийДоступа = СвойстваВидовДоступа.ПоТипамЗначений; ТипыЗначенийДоступаСГруппами = СвойстваВидовДоступа.ТипыЗначенийДоступаСГруппами; @@ -4560,19 +4889,6 @@ КонецПроцедуры -// Заполняет наименования предопределенного профиля Администратор и группы Администраторы. -Процедура ЗаполнитьНаименованиеПредопределенныхЭлементов() Экспорт - - ПрофильАдминистратор = Справочники.ПрофилиГруппДоступа.Администратор.ПолучитьОбъект(); - ПрофильАдминистратор.Наименование = НСтр("ru = 'Администратор'"); - ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ПрофильАдминистратор); - - ГруппаАдминистраторы = Справочники.ГруппыДоступа.Администраторы.ПолучитьОбъект(); - ГруппаАдминистраторы.Наименование = НСтр("ru = 'Администраторы'"); - ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ГруппаАдминистраторы); - -КонецПроцедуры - // Только для внутреннего использования. Процедура ОбновитьВспомогательныеДанныеГруппДоступа(Параметры) Экспорт @@ -4590,7 +4906,14 @@ ПраваРолейРасширений = Неопределено; - ОбновитьТаблицыГруппДоступаДляПодключенныхРасширений(ПраваРолейРасширений); + УстановитьЗаписьПараметровОграниченияДоступаВТекущемСеансе(Истина); + Попытка + ОбновитьТаблицыГруппДоступаДляПодключенныхРасширений(ПраваРолейРасширений); + Исключение + УстановитьЗаписьПараметровОграниченияДоступаВТекущемСеансе(Ложь); + ВызватьИсключение; + КонецПопытки; + УстановитьЗаписьПараметровОграниченияДоступаВТекущемСеансе(Ложь); Возврат ПраваРолейРасширений; @@ -4685,9 +5008,8 @@ НачатьТранзакцию(); Попытка Блокировка.Заблокировать(); - Если ПараметрыОбновления <> Неопределено // Не первое обновление. - И Справочники.ВерсииРасширений.РасширенияИзмененыДинамически() Тогда - ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияРасширенийПрограммы(); + Если ПараметрыОбновления <> Неопределено Тогда // Не первое обновление. + ПроверитьАктуальностьМетаданных(); КонецЕсли; Если УстановитьНовыеПраваРолейРасширений Тогда; СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения( @@ -5351,7 +5673,7 @@ КонецЕсли; Если УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей() - И Не ОграничиватьДоступНаУровнеЗаписейУниверсально(Ложь, Истина) Тогда + И Не УправлениеДоступом.ПроизводительныйВариант() Тогда Если Метаданные.НайтиПоТипу(ТипЗначенияОбъект).ТабличныеЧасти.Найти("НаборыЗначенийДоступа") = Неопределено Тогда @@ -5665,6 +5987,7 @@ Если Константы.ИспользоватьВнешнихПользователей.Получить() Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИсключитьВнешнихПользователей", "Истина"); Иначе + // @query-part-2 Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИсключитьВнешнихПользователей", "ТИПЗНАЧЕНИЯ(ПроверяемыеПользователи.Пользователь) = ТИП(Справочник.Пользователи)"); КонецЕсли; @@ -6841,27 +7164,27 @@ // Возвращаемое значение: // ФиксированнаяСтруктура: // * Массив - ФиксированныйМассив из см. СвойстваВидаДоступа -// * ПоИменам - ФиксированноеСоответствие: +// * ПоИменам - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка // * Значение - см. СвойстваВидаДоступа -// * ПоСсылкам - ФиксированноеСоответствие: +// * ПоСсылкам - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - СправочникСсылка // * Значение - см. СвойстваВидаДоступа -// * ПоТипамЗначений - ФиксированноеСоответствие: +// * ПоТипамЗначений - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип // * Значение - см. СвойстваВидаДоступа -// * ПоТипамГруппИЗначений - ФиксированноеСоответствие: +// * ПоТипамГруппИЗначений - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип // * Значение - см. СвойстваВидаДоступа -// * ПоТипамЗначенийСИерархией - ФиксированноеСоответствие: +// * ПоТипамЗначенийСИерархией - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип // * Значение - см. СвойстваВидаДоступа -// * ЗначенияДоступаСГруппами - ФиксированноеСоответствие: +// * ЗначенияДоступаСГруппами - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип // * Значение - см. ЗначенияДоступаСГруппами // * БезГруппДляЗначенияДоступа - ФиксированныйМассив из Строка // * СОднойГруппойДляЗначенияДоступа - ФиксированныйМассив из Строка -// * ТипыЗначенийДоступаСГруппами - ФиксированноеСоответствие: +// * ТипыЗначенийДоступаСГруппами - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип // * Значение - СправочникСсылка // * ВладелецНаборовЗначенийДоступа - см. СтрокаДанныхДляХеширования. @@ -7089,17 +7412,17 @@ // // Возвращаемое значение: // Структура: -// * ПоТипам - Соответствие: +// * ПоТипам - Соответствие из КлючИЗначение: // * Ключ - Тип // * Значение - см. СвойстваВидаДоступа -// * ПоТипамСсылок - Соответствие: +// * ПоТипамСсылок - Соответствие из КлючИЗначение: // * Ключ - Тип // * Значение - см. СвойстваВидаДоступа // * ИменаТаблицДляОбновления - Массив из Строка -// * ТипыГруппЗначенийДляОбновления - Соответствие: +// * ТипыГруппЗначенийДляОбновления - Соответствие из КлючИЗначение: // * Ключ - Тип // * Значение - СправочникСсылка -// * ПоТипамСсылокДляОбновления - Соответствие: +// * ПоТипамСсылокДляОбновления - Соответствие из КлючИЗначение: // * Ключ - Тип // * Значение - см. СвойстваВидаДоступа // @@ -7361,7 +7684,7 @@ КонецПроцедуры // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип // * Значение - Строка // @@ -7546,10 +7869,10 @@ // ТаблицаЗначений - если ДляПроверки = Ложь, состав колонок: // Таблица - Строка - имя таблицы объекта метаданных, например, Справочник.Файлы. // Право - Строка: "Чтение", "Изменение". -// ВидДоступа - Ссылка - пустая ссылка основного типа значений вида доступа, +// ВидДоступа - ЛюбаяСсылка - пустая ссылка основного типа значений вида доступа, // пустая ссылка владельца настроек прав. // - Неопределено - для вида доступа Объект. -// ТаблицаОбъекта - Ссылка - пустая ссылка объекта метаданных, через который ограничивается доступ, +// ТаблицаОбъекта - ЛюбаяСсылка - пустая ссылка объекта метаданных, через который ограничивается доступ, // используя наборы значений доступа, например, Справочник.ПапкиФайлов. // - Неопределено - если ВидДоступа <> Неопределено. // @@ -7724,7 +8047,7 @@ // Только для внутреннего использования. // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип // * Значение - Строка // @@ -7978,14 +8301,29 @@ // Изменение - Булево // ВызыватьИсключение - Булево // ПроверитьТолькоСтаруюВерсию - Булево -// +// Пользователь - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи +// - Неопределено - проверить для текущего пользователя. +// // Возвращаемое значение: // Булево // Функция ДоступРазрешен(ОписаниеДанных, Изменение, ВызыватьИсключение = Ложь, - ПроверитьТолькоСтаруюВерсию = Ложь) Экспорт + ПроверитьТолькоСтаруюВерсию = Ложь, Знач Пользователь = Неопределено) Экспорт - Если Пользователи.ЭтоПолноправныйПользователь() Тогда + УчитыватьПривилегированныйРежим = Истина; + ПользовательИБ = Неопределено; + + Если Пользователь <> Неопределено + И Пользователь = Пользователи.АвторизованныйПользователь() Тогда + + Пользователь = Неопределено; + УчитыватьПривилегированныйРежим = Ложь; + ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь(); + КонецЕсли; + + Если Пользователь = Неопределено + И Пользователи.ЭтоПолноправныйПользователь(,, УчитыватьПривилегированныйРежим) Тогда Возврат Истина; КонецЕсли; @@ -7996,37 +8334,142 @@ |Ожидалась ссылка, объект, ключ записи или набор записей. |Передано значение: %3 (тип %4).'"), "ОписаниеДанных", - ?(Изменение, "УправлениеДоступом.ИзменениеРазрешено", - "УправлениеДоступом.ЧтениеРазрешено"), + ?(ВызыватьИсключение, + ?(Изменение, "УправлениеДоступом.ПроверитьИзменениеРазрешено", + "УправлениеДоступом.ПроверитьЧтениеРазрешено"), + ?(Изменение, "УправлениеДоступом.ИзменениеРазрешено", + "УправлениеДоступом.ЧтениеРазрешено")), Строка(ОписаниеДанных), Строка(ТипЗнч(ОписаниеДанных))); ВызватьИсключение ТекстОшибки; КонецЕсли; - ИмяПраваДоступа = ?(Изменение, "Изменение", "Чтение"); + ПроизводительныйВариант = УправлениеДоступом.ПроизводительныйВариант(); + Если Пользователь <> Неопределено Тогда + ОбщегоНазначенияКлиентСервер.ПроверитьПараметр( + ?(ВызыватьИсключение, + ?(Изменение, "УправлениеДоступом.ПроверитьИзменениеРазрешено", + "УправлениеДоступом.ПроверитьЧтениеРазрешено"), + ?(Изменение, "УправлениеДоступом.ИзменениеРазрешено", + "УправлениеДоступом.ЧтениеРазрешено")), + "Пользователь", + Пользователь, + Новый ОписаниеТипов("СправочникСсылка.Пользователи, СправочникСсылка.ВнешниеПользователи")); + + Если Не ПроизводительныйВариант Тогда + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое значение параметра %1 в %2. + |В стандартном варианте ограничения доступа поддерживается только %3. + |Передано значение: %4 (тип %5).'"), + "Пользователь", + ?(ВызыватьИсключение, + ?(Изменение, "УправлениеДоступом.ПроверитьИзменениеРазрешено", + "УправлениеДоступом.ПроверитьЧтениеРазрешено"), + ?(Изменение, "УправлениеДоступом.ИзменениеРазрешено", + "УправлениеДоступом.ЧтениеРазрешено")), + "Неопределено", + Строка(Пользователь), + Строка(ТипЗнч(Пользователь))); + ВызватьИсключение ТекстОшибки; + КонецЕсли; + + Если ВызыватьИсключение Тогда + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Вызов исключения поддерживается только для текущего пользователя. + |В %1 + |- либо недопустимое значение параметра %2 + |передано значение: %3 (тип %4), + |- либо недопустимое значение параметра %5 + |передано значение: %6 (тип %7).'"), + "УправлениеДоступом.ДоступРазрешен", + "ВызыватьИсключение", + Строка(ВызыватьИсключение), + Строка(ТипЗнч(ВызыватьИсключение)), + "Пользователь", + Строка(Пользователь), + Строка(ТипЗнч(Пользователь))); + ВызватьИсключение ТекстОшибки; + КонецЕсли; + + Если Пользователи.ЭтоПолноправныйПользователь(Пользователь,, УчитыватьПривилегированныйРежим) Тогда + Возврат Истина; + КонецЕсли; + + ИдентификаторПользователяИБ = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Пользователь, + "ИдентификаторПользователяИБ"); + + Если ТипЗнч(ИдентификаторПользователяИБ) <> Тип("УникальныйИдентификатор") Тогда + Возврат Ложь; + КонецЕсли; + + ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору( + ИдентификаторПользователяИБ); + + Если ПользовательИБ = Неопределено Тогда + Возврат Ложь; + КонецЕсли; + КонецЕсли; + + ЛюбойОбъект = ОписаниеДанных; // СправочникОбъект + + Если Не Изменение Тогда + ИмяПраваДоступа = "Чтение"; + + ИначеЕсли ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(ОбъектМетаданных) + И Не ОбщегоНазначения.ЭтоСсылка(ТипЗнч(ЛюбойОбъект)) + И ЛюбойОбъект.ЭтоНовый() Тогда + + ИмяПраваДоступа = "Добавление"; + Иначе + ИмяПраваДоступа = "Изменение"; + КонецЕсли; + + ЕстьПраво = Истина; Если ВызыватьИсключение Тогда ВыполнитьПроверкуПравДоступа(ИмяПраваДоступа, ОбъектМетаданных); - ИначеЕсли Не ПравоДоступа(ИмяПраваДоступа, ОбъектМетаданных) Тогда + ИначеЕсли ПользовательИБ = Неопределено Тогда + ЕстьПраво = ПравоДоступа(ИмяПраваДоступа, ОбъектМетаданных); + + ИначеЕсли Пользователь = Неопределено Тогда + УстановитьОтключениеБезопасногоРежима(Истина); + УстановитьПривилегированныйРежим(Истина); + + ЕстьПраво = ПравоДоступа(ИмяПраваДоступа, ОбъектМетаданных, ПользовательИБ); + + УстановитьПривилегированныйРежим(Ложь); + УстановитьОтключениеБезопасногоРежима(Ложь); + Иначе + ЕстьПраво = ПравоДоступа(ИмяПраваДоступа, ОбъектМетаданных, ПользовательИБ); + КонецЕсли; + Если Не ЕстьПраво Тогда Возврат Ложь; КонецЕсли; ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); - Если Не ОграничиватьДоступНаУровнеЗаписейУниверсально(Ложь, Истина) Тогда + Если Не ПроизводительныйВариант Тогда Возврат ЧтениеДоступно(ПолноеИмя, ОбъектМетаданных, ОписаниеДанных, ВызыватьИсключение); КонецЕсли; + Если ЗначениеЗаполнено(Пользователь) Тогда + ДляВнешнихПользователей = ТипЗнч(Пользователь) = Тип("СправочникСсылка.ВнешниеПользователи"); + Иначе + ДляВнешнихПользователей = Неопределено; + КонецЕсли; ИдентификаторТранзакции = Новый УникальныйИдентификатор; - ПараметрыОграничения = ПараметрыОграничения(ПолноеИмя, ИдентификаторТранзакции); + ПараметрыОграничения = ПараметрыОграничения(ПолноеИмя, ИдентификаторТранзакции, ДляВнешнихПользователей); УстановитьОтключениеБезопасногоРежима(Истина); УстановитьПривилегированныйРежим(Истина); ОбновитьРазрешенныеНаборыВПараметрахСеанса(); - Если ПараметрыОграничения.ОграничениеОтключено Тогда + Если ПараметрыОграничения.ОграничениеОтключено + Или Не Изменение + И ПараметрыОграничения.ОграничениеЧтенияОтключено Тогда + Возврат Истина; КонецЕсли; @@ -8038,7 +8481,7 @@ ДоступРазрешен = Ложь; Иначе Запрос = Новый Запрос; - УстановитьРазрешенныеНаборыВПараметрыЗапроса(Запрос); + УстановитьРазрешенныеНаборыВПараметрыЗапроса(Запрос, Пользователь); Запрос.Текст = ?(Изменение, ПараметрыОграничения.ТекстЗапросаПроверкиПравЧтениеИзменение, ПараметрыОграничения.ТекстЗапросаПроверкиПраваЧтение); @@ -8047,7 +8490,7 @@ СсылкаНаОбъект = ?(ОбщегоНазначения.ЭтоСсылка(ТипЗнч(ОписаниеДанных)), ОписаниеДанных, ОписаниеДанных.Ссылка); Запрос.УстановитьПараметр("Объект", СсылкаНаОбъект); - Если ПараметрыОграничения.ПолеВладельца <> Неопределено Тогда + Если ПараметрыОграничения.ИспользуетсяОграничениеПоВладельцу Тогда Запрос.УстановитьПараметр("ИдентификаторТаблицыНастроекПрав", ПараметрыОграничения.ИдентификаторТаблицыНастроекПрав); КонецЕсли; @@ -8062,11 +8505,26 @@ ИначеЕсли ОписаниеДанных <> СсылкаНаОбъект И Не ПроверитьТолькоСтаруюВерсию Тогда СтараяВерсия = Ложь; - Если ПараметрыОграничения.ПолеВладельца <> Неопределено Тогда + Если ПараметрыОграничения.ИспользуетсяОграничениеПоВладельцу Тогда + ПоляЧерезТочку = СтрРазделить(ПараметрыОграничения.ПолеВладельца.Имя, ".", Ложь); + ПолеОбъекта = ПоляЧерезТочку[0]; + ЗначениеПоляОбъекта = ОписаниеДанных[ПолеОбъекта]; + Если ПоляЧерезТочку.Количество() = 1 Тогда + ПараметрИзПамяти = "&Владелец"; + Иначе + ОбъектМетаданныхПоТипу = Метаданные.НайтиПоТипу(ТипЗнч(ЗначениеПоляОбъекта)); + Если ОбъектМетаданныхПоТипу = Неопределено Тогда + ПараметрИзПамяти = "&Владелец"; + ЗначениеПоляОбъекта = Null; + Иначе + ПоляЧерезТочку.Удалить(0); + ПараметрИзПамяти = "ВЫРАЗИТЬ(&Владелец КАК " + ОбъектМетаданныхПоТипу.ПолноеИмя() + + ")." + СтрСоединить(ПоляЧерезТочку, "."); + КонецЕсли; + КонецЕсли; Запрос.Текст = СтрЗаменить(Запрос.Текст, - ПараметрыОграничения.ПолеОбъектаВладельцаВЗапросеПроверкиПрав, "&Владелец"); - Запрос.УстановитьПараметр("Владелец", - ОписаниеДанных[ПараметрыОграничения.ПолеВладельца.Имя]); + ПараметрыОграничения.ПолеОбъектаВладельцаВЗапросеПроверкиПрав, ПараметрИзПамяти); + Запрос.УстановитьПараметр("Владелец", ЗначениеПоляОбъекта); Иначе МодельОбъектовВПамяти = МодельОбъектовВПамяти(ОписаниеДанных, ПараметрыОграничения); ПараметрыОбновления = Новый Структура(ПараметрыОграничения); @@ -8092,7 +8550,7 @@ ПроверкаДобавления = Ложь; ТекстЗапросаИзменения = Запрос.Текст; ЭтоНовый = ОписаниеДанных.ЭтоНовый(); - УточнитьПравоДобавление(Запрос,ЭтоНовый, ПараметрыОграничения, ПроверкаДобавления); + УточнитьПравоДобавление(Запрос, ЭтоНовый, ПараметрыОграничения, ПроверкаДобавления); ДоступРазрешен = Не Запрос.Выполнить().Пустой(); Если Не ДоступРазрешен И ПроверкаДобавления Тогда Запрос.Текст = ТекстЗапросаИзменения; @@ -8122,21 +8580,21 @@ И Не ПроверитьТолькоСтаруюВерсию Тогда СтараяВерсия = Ложь; - Если ПараметрыОграничения.ПолеВладельца <> Неопределено Тогда + Если ПараметрыОграничения.ИспользуетсяОграничениеПоВладельцу Тогда ПолеВладельца = ПараметрыОграничения.ПолеВладельца.Имя; - Комбинации = ОписаниеДанных.Выгрузить(, ПолеВладельца); + Комбинации = ОписаниеДанных.Выгрузить(, ПолеВладельца); // ТаблицаЗначений Комбинации.Свернуть(ПолеВладельца); Запрос.УстановитьПараметр("КомбинацииЗначенийОпорныхПолей", Комбинации); ТекстЗапросаПодготовкиКомбинаций = "ВЫБРАТЬ ТекущаяТаблица." + ПолеВладельца + " |ПОМЕСТИТЬ КомбинацииЗначенийОпорныхПолей - |ИЗ &КомбинацииЗначенийОпорныхПолей КАК ТекущаяТаблица"; + |ИЗ &КомбинацииЗначенийОпорныхПолей КАК ТекущаяТаблица"; // @query-part Иначе ТекстЗапросаПодготовкиКомбинаций = "ВЫБРАТЬ ТекущаяТаблица." + СтрСоединить(ПараметрыОграничения.ОпорныеПоля.Используемые, ", | ТекущаяТаблица.") + " |ПОМЕСТИТЬ КомбинацииЗначенийОпорныхПолей - |ИЗ &КомбинацииЗначенийОпорныхПолей КАК ТекущаяТаблица"; + |ИЗ &КомбинацииЗначенийОпорныхПолей КАК ТекущаяТаблица"; // @query-part ОписаниеДанных.ДополнительныеСвойства.Вставить("УправлениеДоступомИдентификаторТранзакции", ИдентификаторТранзакции); ОбновитьКлючиДоступаКНаборуЗаписей(ОписаниеДанных, Ложь, Ложь, @@ -8384,7 +8842,10 @@ Возврат; КонецЕсли; - Если Свойства.ПолеВладельца <> Неопределено Тогда + Если Свойства.ПолеВладельца <> Неопределено + И (Не Свойства.ПолеВладельца.Отключено + Или ЗначениеЗаполнено(ИмяТипаСсылки(ПолноеИмя, ТипыТаблицПоИменам))) Тогда + ПолеВладельца = Свойства.ПолеВладельца; // См. НовоеПолеВладельца ОграничениеВРоли.Параметры.Добавить(ПолеВладельца.Имя); Возврат; @@ -8521,7 +8982,7 @@ КонецЕсли; ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь() - Или Не ОграничиватьДоступНаУровнеЗаписейУниверсально(Ложь, Истина); + Или Не УправлениеДоступом.ПроизводительныйВариант(); Источник.ДополнительныеСвойства.Вставить("УправлениеДоступомИдентификаторТранзакции", Новый УникальныйИдентификатор); @@ -8551,7 +9012,7 @@ КонецЕсли; ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь() - Или Не ОграничиватьДоступНаУровнеЗаписейУниверсально(Ложь, Истина); + Или Не УправлениеДоступом.ПроизводительныйВариант(); // Проверка доступа к новой версии. ПроверитьДоступКИсточнику(Источник, Ложь, ЭтоНаборЗаписей, Замещение, ЭтоПолноправныйПользователь); @@ -8805,7 +9266,7 @@ Запрос.УстановитьПараметр("Объект", Источник.Ссылка); УстановитьРазрешенныеНаборыВПараметрыЗапроса(Запрос); - Если ПараметрыОграничения.ПолеВладельца <> Неопределено Тогда + Если ПараметрыОграничения.ИспользуетсяОграничениеПоВладельцу Тогда Запрос.УстановитьПараметр("ИдентификаторТаблицыНастроекПрав", ПараметрыОграничения.ИдентификаторТаблицыНастроекПрав); КонецЕсли; @@ -8839,7 +9300,7 @@ // Для процедуры ПроверитьДоступКОбъекту и функции ДоступРазрешен. Процедура УточнитьПравоДобавление(Запрос, ЭтоНовый, ПараметрыОграничения, ПроверкаДобавления) - ПроверкаДобавления = ЭтоНовый И ПараметрыОграничения.ПолеВладельца = Неопределено; + ПроверкаДобавления = ЭтоНовый И Не ПараметрыОграничения.ИспользуетсяОграничениеПоВладельцу; Если Не ПроверкаДобавления Тогда Возврат; КонецЕсли; @@ -9909,6 +10370,7 @@ Или СвойстваОграничения = Неопределено Или СвойстваОграничения.ДоступЗапрещен Или СвойстваОграничения.ПолеВладельца <> Неопределено + И Не СвойстваОграничения.ПолеВладельца.Отключено Или Контекст.ПриИзмененииУчастниковГруппыДоступа И Не СвойстваОграничения.РассчитыватьПраваПользователей Тогда @@ -10012,6 +10474,8 @@ // в противном случае, наименование будет начинаться с "Запуск вручную", // блокировка обновления доступа будет снята, если была установлена, // выполнение будет продолжаться до полного завершения. +// ЭтоПерезапуск - Булево - если передать Истина, тогда текущий сеанс фонового задания не будет +// считаться незавершенным исполнителем. // // Возвращаемое значение: // Неопределено - обновление доступа не требуется или запрещено. @@ -10031,7 +10495,7 @@ // * ТекстПредупреждения - Неопределено - если запуска не было или запущено новое фоновое задание. // - Строка - описание, что обновление доступа уже запущено. // -Функция ЗапуститьОбновлениеДоступаНаУровнеЗаписей(ЭтоЗапускВручную = Ложь) Экспорт +Функция ЗапуститьОбновлениеДоступаНаУровнеЗаписей(ЭтоЗапускВручную = Ложь, ЭтоПерезапуск = Ложь) Экспорт УстановитьОтключениеБезопасногоРежима(Истина); УстановитьПривилегированныйРежим(Истина); @@ -10058,13 +10522,25 @@ Возврат Неопределено; КонецЕсли; - Результат = Новый Структура("УжеВыполняется, ИдентификаторФоновогоЗадания, СвойстваСеанса, ТекстПредупреждения", Истина); - Исполнитель = ИсполнительОбновленияДоступа(ПоследнееОбновлениеДоступа); + ИдентификаторИсключаемогоЗадания = Неопределено; + Если ЭтоПерезапуск Тогда + ТекущееФоновоеЗадание = ПолучитьТекущийСеансИнформационнойБазы().ПолучитьФоновоеЗадание(); + Если ТекущееФоновоеЗадание <> Неопределено Тогда + ИдентификаторИсключаемогоЗадания = ТекущееФоновоеЗадание.УникальныйИдентификатор; + КонецЕсли; + КонецЕсли; + Результат = Новый Структура("УжеВыполняется, ТекстПредупреждения, ИдентификаторФоновогоЗадания, СвойстваСеанса", Истина, ""); + Исполнитель = ИсполнительОбновленияДоступа(ПоследнееОбновлениеДоступа, ИдентификаторИсключаемогоЗадания); Если Исполнитель = Неопределено Тогда Результат.УжеВыполняется = Ложь; Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда - СтандартныеПодсистемыСервер.ПроверитьДинамическоеОбновлениеВерсииПрограммы(); + Попытка + СтандартныеПодсистемыСервер.ПроверитьДинамическоеОбновлениеВерсииПрограммы(); + Исключение + Результат.ТекстПредупреждения = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + Возврат Результат; + КонецПопытки; КонецЕсли; Если ЭтоЗапускВручную Тогда УстановитьЗапретОбновленияДоступа(Ложь); @@ -10073,18 +10549,28 @@ Иначе ПараметрыЗадания = Неопределено; КонецЕсли; + + ТекущийСеанс = ПолучитьТекущийСеансИнформационнойБазы(); + НаименованиеЗадания = + ?(ЭтоЗапускВручную, + НСтр("ru = 'Запуск вручную'", ОбщегоНазначения.КодОсновногоЯзыка()), + НСтр("ru = 'Автозапуск'", ОбщегоНазначения.КодОсновногоЯзыка())) + + ": " + Метаданные.РегламентныеЗадания.ОбновлениеДоступаНаУровнеЗаписей.Синоним + " (" + + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'из сеанса %1 от %2'", ОбщегоНазначения.КодОсновногоЯзыка()), + Формат(ТекущийСеанс.НомерСеанса, "ЧГ="), + Формат(ТекущийСеанс.НачалоСеанса, "ДЛФ=DT")) + ")"; + ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных( - Метаданные.РегламентныеЗадания.ОбновлениеДоступаНаУровнеЗаписей.ИмяМетода, ПараметрыЗадания,, - ?(ЭтоЗапускВручную, НСтр("ru = 'Запуск вручную'"), НСтр("ru = 'Автозапуск'")) + ": " - + Метаданные.РегламентныеЗадания.ОбновлениеДоступаНаУровнеЗаписей.Синоним); - + ИмяМетодаЗаданияОбновленияДоступа(), ПараметрыЗадания,, НаименованиеЗадания); + Результат.ИдентификаторФоновогоЗадания = ФоновоеЗадание.УникальныйИдентификатор; ИначеЕсли ТипЗнч(Исполнитель) = Тип("ФоновоеЗадание") И Исполнитель.УникальныйИдентификатор <> ПоследнееОбновлениеДоступа.ИдентификаторФоновогоЗадания Тогда Результат.ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось начать обновление доступа, так как оно уже запущено %1 в %2'"), + НСтр("ru = 'Не удалось начать обновление доступа, так как оно уже запущено %3 в %4'"), Формат(Исполнитель.Начало, "ДЛФ=D"), Формат(Исполнитель.Начало, "ДЛФ=T")); Иначе @@ -10142,7 +10628,7 @@ Отбор = Новый Структура; Отбор.Вставить("Состояние", СостояниеФоновогоЗадания.Активно); - Отбор.Вставить("ИмяМетода", Метаданные.РегламентныеЗадания.ОбновлениеДоступаНаУровнеЗаписей.ИмяМетода); + Отбор.Вставить("ИмяМетода", ИмяМетодаЗаданияОбновленияДоступа()); ОсновныеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); Для Каждого ОсновноеЗадание Из ОсновныеЗадания Цикл @@ -10212,6 +10698,7 @@ БлокировкаДанных = Новый БлокировкаДанных; БлокировкаДанных.Добавить("Константа.ПоследнееОбновлениеДоступа"); + ЕстьВнешняяТранзакция = ТранзакцияАктивна(); НачатьТранзакцию(); Попытка БлокировкаДанных.Заблокировать(); @@ -10240,8 +10727,7 @@ КонецЕсли; Если Записать Тогда - Константы.ПоследнееОбновлениеДоступа.Установить( - Новый ХранилищеЗначения(ПоследнееОбновлениеДоступа)); + УстановитьПоследнееОбновлениеДоступа(ПоследнееОбновлениеДоступа, ЕстьВнешняяТранзакция); КонецЕсли; ЗафиксироватьТранзакцию(); Исключение @@ -10317,6 +10803,7 @@ БлокировкаДанных = Новый БлокировкаДанных; БлокировкаДанных.Добавить("Константа.ПоследнееОбновлениеДоступа"); + ЕстьВнешняяТранзакция = ТранзакцияАктивна(); НачатьТранзакцию(); Попытка БлокировкаДанных.Заблокировать(); @@ -10334,8 +10821,7 @@ ПоследнееОбновлениеДоступа.ИмяКомпьютера = ТекущийСеанс.ИмяКомпьютера; ПоследнееОбновлениеДоступа.ИдентификаторФоновогоЗадания = ИдентификаторФоновогоЗадания; - Константы.ПоследнееОбновлениеДоступа.Установить( - Новый ХранилищеЗначения(ПоследнееОбновлениеДоступа)); + УстановитьПоследнееОбновлениеДоступа(ПоследнееОбновлениеДоступа, ЕстьВнешняяТранзакция); КонецЕсли; КонецЕсли; ЗафиксироватьТранзакцию(); @@ -10365,7 +10851,7 @@ И Исполнитель.УникальныйИдентификатор <> ПоследнееОбновлениеДоступа.ИдентификаторФоновогоЗадания Тогда ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось начать обновление доступа, так как оно уже запущено %3 в %4'"), + НСтр("ru = 'Не удалось начать обновление доступа, так как оно уже запущено %1 в %2'"), Формат(Исполнитель.Начало, "ДЛФ=D"), Формат(Исполнитель.Начало, "ДЛФ=T")); Иначе @@ -10388,14 +10874,17 @@ ПоследнееОбновлениеДоступа.ИдентификаторФоновогоЗадания = ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор(); + ПерезапускВозможен = ТекущееФоновоеЗадание <> Неопределено + И Не ОбновитьВсе + И Не ВызыватьИсключениеВместоРегистрацииОшибки + И СекундНеБолее = 0 + И Не ПослеОбновлениеИБ; + ТекстОшибкиПланирования = ""; ТекстВсехОшибок = ""; ТекстОшибкиЗавершения = ""; ДатаПолногоЗавершения = ПоследнееОбновлениеДоступа.ДатаПолногоЗавершения; Попытка - Если КонфигурацияБазыДанныхИзмененаДинамически() Тогда - СтандартныеПодсистемыСервер.ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияВерсииПрограммы(); - КонецЕсли; Если ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда ПроверитьОбновитьДействующиеПараметрыОграниченияДоступа(); ЗапланироватьОбработкуУстаревшихЭлементов(ТекстОшибкиПланирования, @@ -10403,6 +10892,9 @@ ВыполнитьОбновлениеДоступа(ОбновитьВсе, ОписаниеОсновногоСеанса, ПоследнееОбновлениеДоступа.ОбновлениеОтменено, ТекстОшибкиЗавершения, СекундНеБолее, ПоследнееОбновлениеДоступа.ДатаПолногоЗавершения); + Если Не ПерезапускВозможен Тогда + ТребуетсяПерезапускСеанса(ТекстВсехОшибок); + КонецЕсли; Иначе УстановитьОбновлениеДоступа(Ложь); КонецЕсли; @@ -10410,7 +10902,11 @@ Если ТранзакцияАктивна() Тогда ВызватьИсключение; КонецЕсли; - ТекстВсехОшибок = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ТекстВсехОшибок = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); + Если ПерезапускВозможен И ЭтоОшибкаПроверкиАктуальностиМетаданных(ИнформацияОбОшибке) Тогда + ТекстВсехОшибок = ""; + КонецЕсли; КонецПопытки; Попытка @@ -10453,17 +10949,21 @@ БлокировкаДанных.Заблокировать(); ЗначениеКонстанты = Константы.ПоследнееОбновлениеДоступа.Получить(); ТекущееПоследнееОбновлениеДоступа = ПоследнееОбновлениеДоступа(ЗначениеКонстанты); - + ПоследнееОбновлениеДоступа.ОбновлениеДоступаЗапрещено = ТекущееПоследнееОбновлениеДоступа.ОбновлениеДоступаЗапрещено; - Константы.ПоследнееОбновлениеДоступа.Установить(Новый ХранилищеЗначения(ПоследнееОбновлениеДоступа)); + УстановитьПоследнееОбновлениеДоступа(ПоследнееОбновлениеДоступа, ЕстьВнешняяТранзакция); ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); ВызватьИсключение; КонецПопытки; + Если ПерезапускВозможен И ТребуетсяПерезапускСеанса() Тогда + ЗапуститьОбновлениеДоступаНаУровнеЗаписей(, Истина); + КонецЕсли; + Если Не ЗначениеЗаполнено(ТекстВсехОшибок) Тогда Возврат; КонецЕсли; @@ -10561,6 +11061,7 @@ Свойства.Вставить("ИмяКомпьютера", ""); Свойства.Вставить("ОбновлениеДоступаЗапрещено", Ложь); Свойства.Вставить("БалансировкаНагрузкиНаДиск", Истина); + Свойства.Вставить("ИдентификаторДоступа"); Свойства.Вставить("ИдентификаторФоновогоЗадания", ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор()); Свойства.Вставить("ПоследнееПланированиеОбработкиУстаревшихЭлементов", '00010101'); @@ -10581,6 +11082,34 @@ КонецФункции +// Для процедур ВыполнитьОбновлениеДоступаНаУровнеЗаписей, +// УстановитьЗапретОбновленияДоступа и УстановитьБалансировкуНагрузкиНаДиск. +// +Процедура УстановитьПоследнееОбновлениеДоступа(Свойства, ЕстьВнешняяТранзакция) + + Если Не ЗначениеЗаполнено(Свойства.ИдентификаторДоступа) И Не ЕстьВнешняяТранзакция Тогда + Свойства.ИдентификаторДоступа = Новый УникальныйИдентификатор; + КонецЕсли; + + МенеджерЗначения = СлужебныйМенеджерЗначения(Константы.ПоследнееОбновлениеДоступа); + МенеджерЗначения.Значение = Новый ХранилищеЗначения(Свойства); + МенеджерЗначения.Записать(); + +КонецПроцедуры + +// Для константы ОграничиватьДоступНаУровнеЗаписейУниверсально. +Процедура ОчиститьПоследнееОбновлениеДоступа() Экспорт + + Свойства = ПоследнееОбновлениеДоступа(Null); + ЗаполнитьЗначенияСвойств(Свойства, ПоследнееОбновлениеДоступа(), + "ИдентификаторДоступа, ОбновлениеДоступаЗапрещено, БалансировкаНагрузкиНаДиск"); + + МенеджерЗначения = СлужебныйМенеджерЗначения(Константы.ПоследнееОбновлениеДоступа); + МенеджерЗначения.Значение = Новый ХранилищеЗначения(Свойства); + МенеджерЗначения.Записать(); + +КонецПроцедуры + // Для функции ЗапуститьОбновлениеДоступаНаУровнеЗаписей и // процедур ОбновлениеДоступаНаУровнеЗаписей, ОтменитьОбновлениеДоступаНаУровнеЗаписей и // формы ОбновлениеДоступаНаУровнеЗаписей. @@ -10617,7 +11146,7 @@ КонецЕсли; Отбор = Новый Структура("Состояние, ИмяМетода", СостояниеФоновогоЗадания.Активно, - Метаданные.РегламентныеЗадания.ОбновлениеДоступаНаУровнеЗаписей.ИмяМетода); + ИмяМетодаЗаданияОбновленияДоступа()); НайденныеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); Для Каждого НайденноеЗадание Из НайденныеЗадания Цикл @@ -10660,9 +11189,6 @@ ДатаПроверкиПараметровОграниченияДоступа = '00010101'; КонецЕсли; - УстановитьПривилегированныйРежим(Ложь); - УстановитьОтключениеБезопасногоРежима(Ложь); - Если ДатаПроверкиПараметровОграниченияДоступа > ДатаСозданияПараметровОграниченияДоступа Тогда ДатаАктуальностиПараметровОграниченияДоступа = ДатаПроверкиПараметровОграниченияДоступа; Иначе @@ -10675,13 +11201,16 @@ Или ИспользованиеВидовДоступаИзменено(ДействующиеПараметры) Тогда ОбновитьТаблицыГруппДоступаДляПодключенныхРасширений(); + Если ПараметрыСеанса.ПараметрыОграниченияДоступа.Версия > 100000000000000 Тогда + УменьшитьНомераВерсийПараметровОграниченияДоступа(); + КонецЕсли; + НоваяДатаПроверкиПараметровОграниченияДоступа = ТекущаяДатаСеанса(); ДействующиеПараметрыОграниченияДоступа(Неопределено, Неопределено, Истина); + СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, + НоваяДатаПроверкиПараметровОграниченияДоступа, Истина); КонецЕсли; // Удаление устаревших параметров ограничения доступа. - УстановитьОтключениеБезопасногоРежима(Истина); - УстановитьПривилегированныйРежим(Истина); - Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущаяВерсия", ПараметрыСеанса.ПараметрыОграниченияДоступа.Версия); Запрос.УстановитьПараметр("ДатаУстаревания", ТекущаяДатаСеанса() - 2 * 24 * 60 *60); @@ -10713,25 +11242,10 @@ Возврат; КонецЕсли; - НаименьшаяДатаНачалаСеанса = '39991231'; - Сеансы = ПолучитьСеансыИнформационнойБазы(); - Для Каждого Сеанс Из Сеансы Цикл - Если НаименьшаяДатаНачалаСеанса > Сеанс.НачалоСеанса Тогда - НаименьшаяДатаНачалаСеанса = Сеанс.НачалоСеанса; - КонецЕсли; - КонецЦикла; - - НаименьшаяДатаНачалаСеанса = НаименьшаяДатаНачалаСеанса - - (МестноеВремя('00010101', ЧасовойПояс()) - '00010101') - + (МестноеВремя('00010101', ЧасовойПоясСеанса()) - '00010101'); - НаборЗаписей = РегистрыСведений.ПараметрыОграниченияДоступа.СоздатьНаборЗаписей(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл - Если Выборка.ДатаСоздания >= НаименьшаяДатаНачалаСеанса Тогда - Продолжить; - КонецЕсли; НаборЗаписей.Отбор.Версия.Установить(Выборка.Версия); НаборЗаписей.Записать(); КонецЦикла; @@ -10741,6 +11255,34 @@ КонецПроцедуры +// Для процедуры ПроверитьОбновитьДействующиеПараметрыОграниченияДоступа. +Процедура УменьшитьНомераВерсийПараметровОграниченияДоступа() + + Блокировка = Новый БлокировкаДанных; + Блокировка.Добавить("РегистрСведений.ПараметрыОграниченияДоступа"); + + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + НаборЗаписей = РегистрыСведений.ПараметрыОграниченияДоступа.СоздатьНаборЗаписей(); + НаборЗаписей.Прочитать(); + Выгрузка = НаборЗаписей.Выгрузить(); + Выгрузка.Сортировать("Версия"); + ТекущаяВерсия = 1; + Для Каждого Строка Из Выгрузка Цикл + Строка.Версия = ТекущаяВерсия; + ТекущаяВерсия = ТекущаяВерсия + 1; + КонецЦикла; + НаборЗаписей.Загрузить(Выгрузка); + НаборЗаписей.Записать(); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + // Для процедуры ПроверитьОбновитьДействующиеПараметрыОграниченияДоступа. Функция ИспользованиеВидовДоступаИзменено(ДействующиеПараметры) @@ -10863,6 +11405,7 @@ Контекст.Вставить("ЕстьЗапущенноеЗадание", Истина); Контекст.Вставить("ОбработкаЗавершена", Ложь); Контекст.Вставить("ОбновлениеОтменено", Ложь); + Контекст.Вставить("ТребуетсяПерезапускСеанса",Ложь); Контекст.Вставить("МаксимумПорцийИзИсходной", 0); Контекст.Вставить("КоличествоДополнительныхПорций", 0); Контекст.Вставить("ЕстьДлительноеЗаданиеПолученияПорцийЭлементовДанных", Ложь); @@ -10904,7 +11447,7 @@ ЗаполнитьКоличествоПотоков(Контекст); ОбработатьВыполненныеЗадания(Контекст); - Если Контекст.ОбновлениеОтменено Тогда + Если Контекст.ОбновлениеОтменено Или Контекст.ТребуетсяПерезапускСеанса Тогда Контекст.ОбработкаЗавершена = Ложь; Прервать; КонецЕсли; @@ -10912,11 +11455,17 @@ РезультатыЗапроса = Запрос.ВыполнитьПакет(); ДобавитьЗаданияОбновленияДоступа(РезультатыЗапроса, Контекст); - Если Контекст.ОбработкаЗавершена Тогда + Если Контекст.ТребуетсяПерезапускСеанса Тогда + Контекст.ОбработкаЗавершена = Ложь; + Прервать; + ИначеЕсли Контекст.ОбработкаЗавершена Тогда + ОбновитьСоставИспользуемыхВерсийПараметровШаблонов(Контекст); + Если Не Контекст.ОбработкаЗавершена Тогда + Продолжить; + КонецЕсли; Прервать; - Иначе - Контекст.ДатаПолногоЗавершения = '00010101'; КонецЕсли; + Контекст.ДатаПолногоЗавершения = '00010101'; ОкончаниеТекущегоЗапуска = ТекущаяДатаСеанса() + 5; Контекст.Вставить("ПервыйПроход", Истина); @@ -10927,7 +11476,8 @@ Или ТекущаяДатаСеанса() > ОкончаниеТекущегоЗапуска Или ЗначениеЗаполнено(Контекст.ТекстОшибкиЗавершения) Или Задания.Количество() = 0 - Или Контекст.ОбновлениеОтменено Тогда + Или Контекст.ОбновлениеОтменено + Или Контекст.ТребуетсяПерезапускСеанса Тогда Прервать; КонецЕсли; @@ -10942,7 +11492,7 @@ Пока ЗанятыеПотоки.Количество() >= Контекст.КоличествоПотоков Цикл ОбработатьВыполненныеЗадания(Контекст); - Если Контекст.ОбновлениеОтменено Тогда + Если Контекст.ОбновлениеОтменено Или Контекст.ТребуетсяПерезапускСеанса Тогда ПрерватьПроход = Истина; Прервать; КонецЕсли; @@ -10966,7 +11516,9 @@ КонецЕсли; Если ЗанятыеПотоки.Количество() < Контекст.КоличествоПотоков Тогда ЗапуститьОбновлениеДоступаСписка(Задание, Контекст); - Если ЗначениеЗаполнено(Контекст.ТекстОшибкиЗавершения) Тогда + Если ЗначениеЗаполнено(Контекст.ТекстОшибкиЗавершения) + Или Контекст.ОбновлениеОтменено + Или Контекст.ТребуетсяПерезапускСеанса Тогда Прервать; КонецЕсли; КонецЕсли; @@ -10982,6 +11534,14 @@ КонецЦикла; КонецЦикла; + Если Не Контекст.ОбработкаЗавершена + И Не ЗначениеЗаполнено(Контекст.ТекстОшибкиЗавершения) + И Не Контекст.ОбновлениеОтменено + И Не Контекст.ТребуетсяПерезапускСеанса Тогда + + ОбновитьСоставИспользуемыхВерсийПараметровШаблонов(Контекст); + КонецЕсли; + ЗавершитьОбновлениеДоступа(Контекст); ТекстОшибкиЗавершения = Контекст.ТекстОшибкиЗавершения; @@ -11047,6 +11607,7 @@ БлокировкаДанных = Новый БлокировкаДанных; БлокировкаДанных.Добавить("Константа.ПоследнееОбновлениеДоступа"); + ЕстьВнешняяТранзакция = ТранзакцияАктивна(); НачатьТранзакцию(); Попытка БлокировкаДанных.Заблокировать(); @@ -11055,8 +11616,7 @@ Если ПоследнееОбновлениеДоступа.БалансировкаНагрузкиНаДиск <> Использование Тогда ПоследнееОбновлениеДоступа.БалансировкаНагрузкиНаДиск = Использование; - Константы.ПоследнееОбновлениеДоступа.Установить( - Новый ХранилищеЗначения(ПоследнееОбновлениеДоступа)); + УстановитьПоследнееОбновлениеДоступа(ПоследнееОбновлениеДоступа, ЕстьВнешняяТранзакция); КонецЕсли; ЗафиксироватьТранзакцию(); Исключение @@ -11333,7 +11893,17 @@ Кэш.Вставить("ОбъектыМетаданныхПоИдентификаторам", Новый Соответствие); КонецЕсли; - ПроверитьОбновитьДействующиеПараметрыОграниченияДоступа(); + Попытка + ПроверитьОбновитьДействующиеПараметрыОграниченияДоступа(); + Исключение + Если ТребуетсяПерезапускСеанса() Тогда + Контекст.ТребуетсяПерезапускСеанса = Истина; + Если ЭтоОшибкаПроверкиАктуальностиМетаданных(ИнформацияОбОшибке()) Тогда + Возврат; + КонецЕсли; + КонецЕсли; + ВызватьИсключение; + КонецПопытки; ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(Неопределено, Неопределено, Ложь); Задания = Контекст.Задания; ИдентификаторыСписков = Новый Массив; @@ -11781,10 +12351,61 @@ КонецФункции +// Для процедуры ВыполнитьОбновлениеДоступа. +Процедура ОбновитьСоставИспользуемыхВерсийПараметровШаблонов(Контекст) + + Если Не Контекст.ОбработкаЗавершена + И ПараметрыСеанса.ПараметрыОграниченияДоступа.ДатаСоздания > ТекущаяДатаСеанса() - 5 * 60 Тогда + + Возврат; + КонецЕсли; + + Попытка + ПроверитьОбновитьДействующиеПараметрыОграниченияДоступа(); + ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(Неопределено, Неопределено, Ложь); + Исключение + Если ТребуетсяПерезапускСеанса() Тогда + Контекст.ТребуетсяПерезапускСеанса = Истина; + Если ЭтоОшибкаПроверкиАктуальностиМетаданных(ИнформацияОбОшибке()) Тогда + Возврат; + КонецЕсли; + КонецЕсли; + ВызватьИсключение; + КонецПопытки; + + ДополнительныйКонтекст = ДействующиеПараметры.ДополнительныйКонтекст; + + Если ИспользуетсяОдинВариантДоступа(ДополнительныйКонтекст.ДляПользователей) + И ИспользуетсяОдинВариантДоступа(ДополнительныйКонтекст.ДляВнешнихПользователей) Тогда + + Возврат; + КонецЕсли; + + ОбщийКонтекст = ОбщийКонтекстРасчетаПараметровОграничения(); + ОбщийКонтекст.Вставить("СпискиСУстаревшимиВариантамиДоступа", Новый Массив); + + Попытка + ДействующиеПараметрыОграниченияДоступа(Неопределено, ОбщийКонтекст, Истина); + Исключение + Если ТребуетсяПерезапускСеанса() Тогда + Контекст.ТребуетсяПерезапускСеанса = Истина; + Если ЭтоОшибкаПроверкиАктуальностиМетаданных(ИнформацияОбОшибке()) Тогда + Возврат; + КонецЕсли; + КонецЕсли; + ВызватьИсключение; + КонецПопытки; + + Если ЗначениеЗаполнено(ОбщийКонтекст.СпискиСУстаревшимиВариантамиДоступа) Тогда + Контекст.ОбработкаЗавершена = Ложь; + КонецЕсли; + +КонецПроцедуры + // Для процедуры ВыполнитьОбновлениеДоступа. Процедура ЗавершитьОбновлениеДоступа(Контекст) - Если Не Контекст.ОбновлениеОтменено Тогда + Если Не Контекст.ОбновлениеОтменено И Не Контекст.ТребуетсяПерезапускСеанса Тогда Если ЗначениеЗаполнено(Контекст.ТекстОшибкиЗавершения) Тогда ГраницаОжидания = ТекущаяДатаСеанса() + 3; Иначе @@ -11825,7 +12446,23 @@ КонецПроцедуры -// Для процедуры ВыполнитьОбновлениеДоступа. +// Для процедуры ОбновитьСоставИспользуемыхВерсийПараметровШаблонов. +Функция ИспользуетсяОдинВариантДоступа(ДополнительныйКонтекст) + + ИспользуетсяНесколькоВариантов = Ложь; + + Для Каждого КлючИЗначение Из ДополнительныйКонтекст.ОсновныеВариантыДоступа Цикл + Если КлючИЗначение.Значение.Количество() > 1 Тогда + ИспользуетсяНесколькоВариантов = Истина; + Прервать; + КонецЕсли; + КонецЦикла; + + Возврат Не ИспользуетсяНесколькоВариантов; + +КонецФункции + +// Для процедуры ЗавершитьОбновлениеДоступа. Процедура ОтключитьРегламентноеЗаданиеЕслиНетНовыхЗаданий(Контекст) Запрос = Новый Запрос; @@ -12123,6 +12760,15 @@ КонецФункции +// Для процедур УстановитьОбновлениеДоступа, ЗапуститьОбновлениеДоступаНаУровнеЗаписей, +// ОтменитьОбновлениеДоступаНаУровнеЗаписей и функции ИсполнительОбновленияДоступа. +// +Функция ИмяМетодаЗаданияОбновленияДоступа() + + Возврат Метаданные.РегламентныеЗадания.ОбновлениеДоступаНаУровнеЗаписей.ИмяМетода; + +КонецФункции + // Для процедуры ВыполнитьОбновлениеДоступа, ЗавершитьОбновлениеДоступа. Процедура ПодождатьОсвобожденияПотока(Контекст, ЖдатьЗавершенияЗадания = Ложь) @@ -12630,6 +13276,14 @@ КонецЕсли; КонецЕсли; + Если Результат.Свойство("ТребуетсяПерезапускСеанса") Тогда + Контекст.ТребуетсяПерезапускСеанса = Истина; + Контекст.ОбработкаЗавершена = Ложь; + УстановитьТребуетсяПерезапускСеанса(Результат.ТребуетсяПерезапускСеанса); + СнятьПризнакОбрабатываетсяДляПорции(Результат, Задание); + Возврат; + КонецЕсли; + Если Результат.Свойство("ТекстОшибкиЗавершения") Тогда Если Не Результат.ОбработкаЗавершена Тогда Контекст.ОбработкаЗавершена = Ложь; @@ -12769,8 +13423,9 @@ ВыполнитьОбновлениеДоступаСпискаСПопыткамиПовтора(ОбщиеПараметрыОбновления, Контекст); Результат.ОбработкаЗавершена = ОбщиеПараметрыОбновления.ОбработкаЗавершена; - ВозвращаемыеСвойства = "НетЗаданий, ПерезапускОбновления, ПерезапускОбновленияСНачала, НаборПорций, - |НовыйПоследнийОбновленныйЭлемент, НачальноеОбновлениеЗавершено, ТекстОшибкиЗавершения"; + ВозвращаемыеСвойства = "НетЗаданий, ПерезапускОбновления, ПерезапускОбновленияСНачала, + |НаборПорций, НовыйПоследнийОбновленныйЭлемент, НачальноеОбновлениеЗавершено, + |ТекстОшибкиЗавершения, ТребуетсяПерезапускСеанса"; Для Каждого КлючИЗначение Из Новый Структура(ВозвращаемыеСвойства) Цикл Если ОбщиеПараметрыОбновления.Свойство(КлючИЗначение.Ключ) Тогда Результат.Вставить(КлючИЗначение.Ключ, ОбщиеПараметрыОбновления[КлючИЗначение.Ключ]); @@ -13466,16 +14121,24 @@ Если ТранзакцияАктивна() Тогда ВызватьИсключение; КонецЕсли; - ТекстОшибкиТекущейПопытки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ТекстОшибкиТекущейПопытки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); КонецПопытки; Если Показатели <> Неопределено И Не ЗначениеЗаполнено(ТекстОшибкиТекущейПопытки) Тогда СнятьПоказателиВыполненияЗадания(Показатели); КонецЕсли; + ТекстОшибкиТребуетсяПерезапуск = ""; + Если ТребуетсяПерезапускСеанса(ТекстОшибкиТребуетсяПерезапуск) Тогда + ОбщиеПараметрыОбновления.Вставить("ТребуетсяПерезапускСеанса", ТекстОшибкиТребуетсяПерезапуск); + Если ЭтоОшибкаПроверкиАктуальностиМетаданных(ИнформацияОбОшибке) Тогда + ТекстОшибкиТекущейПопытки = ""; + КонецЕсли; + КонецЕсли; Если ЗначениеЗаполнено(ТекстОшибкиТекущейПопытки) Тогда ВремяОшибкиТекущейПопытки = Формат(ТекущаяДатаСеанса(), "ДЛФ=DT"); ОшибкиПопытокВыполнения.Добавить(ВремяОшибкиТекущейПопытки + " " + ТекстОшибкиТекущейПопытки); ПопыткаВыполнения = ПопыткаВыполнения + 1; - Если ПопыткаВыполнения < 9 Тогда + Если ПопыткаВыполнения < 9 И Не ЗначениеЗаполнено(ТекстОшибкиТребуетсяПерезапуск) Тогда Для Счетчик = 1 По ПопыткаВыполнения Цикл Если ОбновлениеДоступаОтменено() Тогда Прервать; @@ -14571,7 +15234,7 @@ Или ПараметрыОбновления.СЗаписьюВсегдаРазрешенногоКлючаДоступа Тогда Запрос.Текст = - "ВЫБРАТЬ ПЕРВЫЕ " + МаркерРазмераПорции() + " + "ВЫБРАТЬ ПЕРВЫЕ 1 | КлючиДоступа.Ссылка КАК Ссылка |ИЗ | Справочник.КлючиДоступа КАК КлючиДоступа @@ -14583,6 +15246,7 @@ | |УПОРЯДОЧИТЬ ПО | КлючиДоступа.Ссылка"; + Запрос.Текст = СтрЗаменить(Запрос.Текст, "1", МаркерРазмераПорции()); ИначеЕсли ЭтоОбработкаУстаревшихЭлементов(ПараметрыОбновления) Тогда Запрос.УстановитьПараметр("ДатаУстаревания", ДатаУстаревания()); @@ -14716,7 +15380,7 @@ " |ПОМЕСТИТЬ ТекущийСписокПоВедущимОбъектам |ИЗ - | ")); + | ")); // @query-part Иначе ТекстыЗапросов = СтрСоединить(ЗапросыДанных, " @@ -15727,10 +16391,10 @@ КонецЕсли; ТекстЗапросаВыбораПорцииДляБлокировки = СтрЗаменить(ТекстЗапросаВыбораПорцииДляБлокировки, - "ТИП(Справочник.ГруппыДоступа)", "ТИП(Справочник." + ИмяСправочникаГрупп + ")"); + "ТИП(Справочник.ГруппыДоступа)", "ТИП(Справочник." + ИмяСправочникаГрупп + ")"); // @query-part @query-part-2 ТекстЗапросаВыбораПорцииДляОбновления = СтрЗаменить(ТекстЗапросаВыбораПорцииДляОбновления, - "ТИП(Справочник.ГруппыДоступа)", "ТИП(Справочник." + ИмяСправочникаГрупп + ")"); + "ТИП(Справочник.ГруппыДоступа)", "ТИП(Справочник." + ИмяСправочникаГрупп + ")"); // @query-part @query-part-2 ТекстЗапросаВыбораПорцииДляОбновления = СтрЗаменить(ТекстЗапросаВыбораПорцииДляОбновления, "СтарыеДанные.НаборГруппДоступа", "СтарыеДанные." + ИмяПоляНабораГрупп); @@ -17210,6 +17874,7 @@ КонецЕсли; ИменаИзмерений = Новый Массив; + ИменаИзмерений.Добавить("ВариантДоступа"); Для Каждого Колонка Из ЭлементыДанных.Колонки Цикл Если СтрНачинаетсяС(Колонка.Имя, "Поле") Тогда ИменаИзмерений.Добавить(Колонка.Имя); @@ -17220,14 +17885,14 @@ Индекс = 0; Пока Индекс < КоличествоЭлементов Цикл Если ПорцияЭлементовДанных = Неопределено Тогда - ТребуетсяПроверка = Не ПараметрыОбновления.БезЗаписиКлючейДоступа; + ТребуетсяПроверка = Ложь; ПорцияЭлементовДанных = ЭлементыДанных.Скопировать(Новый Массив); Блокировка = Новый БлокировкаДанных; КонецЕсли; ЭлементДанных = ЭлементыДанных[Индекс]; ЗаполнитьЗначенияСвойств(ПорцияЭлементовДанных.Добавить(), ЭлементДанных); - Если ТребуетсяПроверка И ЭлементДанных.Удалить Тогда - ТребуетсяПроверка = Ложь; + Если Не ПараметрыОбновления.БезЗаписиКлючейДоступа И Не ЭлементДанных.Удалить Тогда + ТребуетсяПроверка = Истина; КонецЕсли; ЭлементБлокировки = Блокировка.Добавить("РегистрСведений." + ИмяРегистра); @@ -17277,7 +17942,12 @@ КонецЕсли; Для Каждого ИмяИзмерения Из ИменаИзмерений Цикл ЭлементОтбора = НаборИзОднойЗаписи.Отбор[ИмяИзмерения]; // ЭлементОтбора - ЭлементОтбора.Установить(Строка[ИмяИзмерения]); + Если Строка[ИмяИзмерения] = Неопределено Тогда + ЭлементОтбора.Значение = Неопределено; + ЭлементОтбора.Использование = Истина; + Иначе + ЭлементОтбора.Установить(Строка[ИмяИзмерения]); + КонецЕсли; КонецЦикла; НаборИзОднойЗаписи.Записать(); КонецЦикла; @@ -17955,7 +18625,7 @@ Если Не ЗначениеЗаполнено(ПараметрыОбновления.ИмяОтдельногоРегистраКлючей) Тогда ЭлементБлокировки.УстановитьЗначение("Регистр", ПараметрыОбновления.ИдентификаторСписка); КонецЕсли; - ЭлементБлокировки.УстановитьЗначение("ДляВнешнихПользователей", ПараметрыОбновления.ДляВнешнихПользователей); + ЭлементБлокировки.УстановитьЗначение("ВариантДоступа", ПараметрыОбновления.ВариантДоступа); ЭлементДанных = ПорцияЭлементовДанных.Найти(ОписаниеКлючаДоступаОбъекта.ТекущаяСсылка, "ТекущаяСсылка"); Для НомерПоля = 1 По ПараметрыОбновления.ОпорныеПоля.Используемые.Количество() Цикл ИмяПоля = "Поле" + НомерПоля; @@ -17980,18 +18650,19 @@ НаборИзОднойЗаписи.Отбор.Регистр.Установить(ПараметрыОбновления.ИдентификаторСписка); Запись.Регистр = ПараметрыОбновления.ИдентификаторСписка; КонецЕсли; - НаборИзОднойЗаписи.Отбор.ДляВнешнихПользователей.Установить(ПараметрыОбновления.ДляВнешнихПользователей); - Запись.ДляВнешнихПользователей = ПараметрыОбновления.ДляВнешнихПользователей; + НаборИзОднойЗаписи.Отбор.ВариантДоступа.Установить(ПараметрыОбновления.ВариантДоступа); + Запись.ВариантДоступа = ПараметрыОбновления.ВариантДоступа; ЭлементДанных = ПорцияЭлементовДанных.Найти(ОписаниеКлючаДоступаОбъекта.ТекущаяСсылка, "ТекущаяСсылка"); ЗаполнитьЗначенияСвойств(Запись, ПустыеЗначенияОпорныхПолей); Для НомерПоля = 1 По ПараметрыОбновления.ОпорныеПоля.Используемые.Количество() Цикл ИмяПоля = "Поле" + НомерПоля; + ЭлементОтбора = НаборИзОднойЗаписи.Отбор[ИмяПоля]; // ЭлементОтбора Если ЭлементДанных[ИмяПоля] = Неопределено Тогда - НаборИзОднойЗаписи.Отбор[ИмяПоля].Значение = Неопределено; - НаборИзОднойЗаписи.Отбор[ИмяПоля].Использование = Истина; + ЭлементОтбора.Значение = Неопределено; + ЭлементОтбора.Использование = Истина; Иначе - НаборИзОднойЗаписи.Отбор[ИмяПоля].Установить(ЭлементДанных[ИмяПоля]); + ЭлементОтбора.Установить(ЭлементДанных[ИмяПоля]); КонецЕсли; Запись[ИмяПоля] = ЭлементДанных[ИмяПоля]; КонецЦикла; @@ -18030,7 +18701,6 @@ КонецЕсли; НаборИзОднойЗаписи = СлужебныйНаборЗаписей(РегистрыСведений[ИмяРегистраКлючей]); КоличествоИспользуемыхПолей = ПараметрыОбновления.ОпорныеПоля.Используемые.Количество(); - МаксимальноеКоличествоПолей = ПараметрыОбновления.ОпорныеПоля.МаксимальноеКоличество; Блокировка = Новый БлокировкаДанных; Для Каждого ЭлементДанных Из ПорцияЭлементовДанных Цикл @@ -18038,11 +18708,10 @@ Если Не ЗначениеЗаполнено(ПараметрыОбновления.ИмяОтдельногоРегистраКлючей) Тогда ЭлементБлокировки.УстановитьЗначение("Регистр", ПараметрыОбновления.ИдентификаторСписка); КонецЕсли; - ЭлементБлокировки.УстановитьЗначение("ДляВнешнихПользователей", ПараметрыОбновления.ДляВнешнихПользователей); - Для НомерПоля = 1 По МаксимальноеКоличествоПолей Цикл + ЭлементБлокировки.УстановитьЗначение("ВариантДоступа", ПараметрыОбновления.ВариантДоступа); + Для НомерПоля = 1 По КоличествоИспользуемыхПолей Цикл ИмяПоля = "Поле" + НомерПоля; - ЭлементБлокировки.УстановитьЗначение(ИмяПоля, ?(НомерПоля > КоличествоИспользуемыхПолей, - Перечисления.ДополнительныеЗначенияДоступа.Null, ЭлементДанных[ИмяПоля])); + ЭлементБлокировки.УстановитьЗначение(ИмяПоля, ЭлементДанных[ИмяПоля]); КонецЦикла; КонецЦикла; @@ -18053,17 +18722,15 @@ Если Не ЗначениеЗаполнено(ПараметрыОбновления.ИмяОтдельногоРегистраКлючей) Тогда НаборИзОднойЗаписи.Отбор.Регистр.Установить(ПараметрыОбновления.ИдентификаторСписка); КонецЕсли; - НаборИзОднойЗаписи.Отбор.ДляВнешнихПользователей.Установить(ПараметрыОбновления.ДляВнешнихПользователей); - Для НомерПоля = 1 По МаксимальноеКоличествоПолей Цикл + НаборИзОднойЗаписи.Отбор.ВариантДоступа.Установить(ПараметрыОбновления.ВариантДоступа); + Для НомерПоля = 1 По КоличествоИспользуемыхПолей Цикл ИмяПоля = "Поле" + НомерПоля; ЭлементОтбора = НаборИзОднойЗаписи.Отбор[ИмяПоля]; // ЭлементОтбора - ЗначениеОтбора = ?(НомерПоля > КоличествоИспользуемыхПолей, - Перечисления.ДополнительныеЗначенияДоступа.Null, ЭлементДанных[ИмяПоля]); - Если ЗначениеОтбора = Неопределено Тогда + Если ЭлементДанных[ИмяПоля] = Неопределено Тогда ЭлементОтбора.Значение = Неопределено; ЭлементОтбора.Использование = Истина; Иначе - ЭлементОтбора.Установить(ЗначениеОтбора); + ЭлементОтбора.Установить(ЭлементДанных[ИмяПоля]); КонецЕсли; КонецЦикла; НаборИзОднойЗаписи.Записать(); @@ -20528,6 +21195,19 @@ КонецФункции +// Создает менеджер значения служебной константы, которая не участвует в подписках на события. +Функция СлужебныйМенеджерЗначения(МенеджерКонстанты) + + МенеджерЗначения = МенеджерКонстанты.СоздатьМенеджерЗначения(); + МенеджерЗначения.ДополнительныеСвойства.Вставить("НеВыполнятьКонтрольУдаляемых"); + МенеджерЗначения.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов"); + МенеджерЗначения.ОбменДанными.Получатели.АвтоЗаполнение = Ложь; + МенеджерЗначения.ОбменДанными.Загрузка = Истина; + + Возврат МенеджерЗначения; + +КонецФункции + // Для процедуры ЗаполнитьШаблоныЧастейЗапросаПроверкиОбъекта. Функция МаркерРазмераПорции() @@ -20959,6 +21639,10 @@ Возврат; КонецПроцедуры +Процедура ПриОшибкеПроверкиАктуальностиМетаданных(ТекстОшибки) + Возврат; +КонецПроцедуры + #КонецОбласти #КонецОбласти @@ -20977,7 +21661,7 @@ // // Возвращаемое значение: // Структура: -// * ЗависимыеСписки - Соответствие: +// * ЗависимыеСписки - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - Булево - Истина // * ПоЗначениямПолей - см. ВедущийСписокПоЗначениямПолей @@ -21151,6 +21835,7 @@ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ТекущаяТаблицаЭлементовДанных", ПолноеИмя); + // @query-part-2 ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ПЕРВЫЕ 100", "ПЕРВЫЕ " + Формат( МаксимальноеКоличествоКомбинацийЗначенийВедущихПолейПриВычисленииСоставаИзмененных() * 10, "ЧГ=")); @@ -21265,7 +21950,7 @@ // Возвращаемое значение: // Структура: // * СвойстваВидовДоступа - см. ХранимоеОписаниеСвойствВидовДоступа -// * ТипыПользователя - Массив Из Тип +// * ТипыПользователя - Массив из Тип // * ТипыВладельцевНастроекПрав - ФиксированноеСоответствие // * ОтдельныеТаблицыНастроекПрав - ФиксированноеСоответствие // * ВнешниеПользователиВключены - Булево @@ -21321,7 +22006,7 @@ // Для функций ОбщийКонтекстРасчетаПараметровОграничения и ИспользованиеВидовДоступаИзменено. // // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - Тип // * Значение - Булево - Истина // @@ -21371,7 +22056,7 @@ // Возвращаемое значение: // Структура: // * Версия - Строка -// * ВедущиеСписки - Соответствие: +// * ВедущиеСписки - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - см. СвойстваСпискаКакВедущего // * ДляПользователей - см. ПараметрыОграниченияПоСтруктуреОграничения @@ -21678,6 +22363,10 @@ Контекст.ВерсииОграниченийСписков.Вставить(ПолноеИмя, ДействующиеПараметры.ВерсииОграниченийСписков.Получить(ПолноеИмя)); КонецЕсли; + УстановитьОграничениеПоВладельцуИспользуется(ДляПользователей, + ПолноеИмя, ДействующиеПараметры.ДополнительныйКонтекст.ДляПользователей); + УстановитьОграничениеПоВладельцуИспользуется(ДляВнешнихПользователей, + ПолноеИмя, ДействующиеПараметры.ДополнительныйКонтекст.ДляВнешнихПользователей); Иначе Контекст.ВерсииОграниченийСписков.Вставить(ПолноеИмя, Истина); ДействующиеПараметры = Новый Структура; @@ -21701,6 +22390,19 @@ КонецФункции +// Для функции РезультатПроверкиОграниченияДоступаОбъекта +Процедура УстановитьОграничениеПоВладельцуИспользуется(Результат, ПолноеИмя, ДополнительныйКонтекст) + + Свойства = ДополнительныйКонтекст.СвойстваОграниченияСписков.Получить(ПолноеИмя); + Если Свойства = Неопределено Тогда + Возврат; + КонецЕсли; + + Результат.ОграничениеПоВладельцуИспользуется = + Свойства.ПолеВладельца <> Неопределено И Не Свойства.ПолеВладельца.Отключено; + +КонецПроцедуры + // Для функции РезультатПроверкиОграниченияДоступаОбъекта. Процедура УстановитьНастройкиВнедрения(НастройкиВнедрения, Данные, ТипыТаблицПоИменам) @@ -21819,6 +22521,7 @@ Свойства.Вставить("ОшибкаФормированияПараметровОграничения"); Свойства.Вставить("ОшибкаФормированияТекстовЗапросов"); Свойства.Вставить("ОграничениеПоВладельцуВозможно"); + Свойства.Вставить("ОграничениеПоВладельцуИспользуется"); Свойства.Вставить("ОграничениеВРолях"); Свойства.Вставить("ОграничениеВМодуле"); Свойства.Вставить("ПоВладельцуБезЗаписиКлючейДоступа"); @@ -22141,51 +22844,33 @@ ТекущиеПараметры = ПараметрыСеанса.ПараметрыОграниченияДоступа; // См. СеансовыеПараметрыОграниченияДоступа - Если Не ЗначениеЗаполнено(ТекущиеПараметры) Или ТекущиеПараметры.Параметры = Неопределено Тогда + Если Не ТекущиеПараметры.Свойство("Параметры") Или ТекущиеПараметры.Параметры = Неопределено Тогда ТекущиеПараметры = Новый Структура("Версия, ХешСумма", "", ""); // См. СеансовыеПараметрыОграниченияДоступа ИдентификаторыТранзакции = Новый Соответствие; Иначе ИдентификаторыТранзакции = КэшПараметровОграничения().ИдентификаторыТранзакции; КонецЕсли; - Если ТранзакцияАктивна() Тогда - Если ИдентификаторыТранзакции.Получить(ИдентификаторТранзакции) <> Неопределено Тогда - Возврат ТекущиеПараметры.Параметры; - КонецЕсли; + Если ТранзакцияАктивна() + И ИдентификаторыТранзакции.Получить(ИдентификаторТранзакции) <> Неопределено Тогда - ОписаниеВерсии = Новый Структура("Версия, ХешСумма", "", ""); - Если ЗначениеЗаполнено(ТекущиеПараметры.Версия) Тогда - ОписаниеВерсии.Версия = ТекущиеПараметры.Версия; - ОписаниеВерсии.ХешСумма = ТекущиеПараметры.ХешСумма; - КонецЕсли; - - Пока Истина Цикл - Если Не ЗначениеЗаполнено(ОписаниеВерсии.Версия) Тогда - ОписаниеВерсии = ОписаниеПоследнейВерсии(); - КонецЕсли; - Если Не ЗначениеЗаполнено(ОписаниеВерсии.Версия) Тогда - Прервать; - КонецЕсли; - БлокировкаДанных = Новый БлокировкаДанных; - ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрСведений.ПараметрыОграниченияДоступа"); - ЭлементБлокировки.УстановитьЗначение("Версия", ОписаниеВерсии.Версия); - ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый; - БлокировкаДанных.Заблокировать(); - НовоеОписаниеВерсии = ОписаниеПоследнейВерсии(); - Если Не ЗначениеЗаполнено(НовоеОписаниеВерсии.Версия) Тогда - ОписаниеВерсии = НовоеОписаниеВерсии; - Прервать; - КонецЕсли; - Если ОписаниеВерсии.Версия = НовоеОписаниеВерсии.Версия - И ОписаниеВерсии.ХешСумма = НовоеОписаниеВерсии.ХешСумма Тогда - Прервать; - КонецЕсли; - ОписаниеВерсии = НовоеОписаниеВерсии; - КонецЦикла; - Иначе - ОписаниеВерсии = ОписаниеПоследнейВерсии(); + Возврат ТекущиеПараметры.Параметры; КонецЕсли; + Пока Истина Цикл + ОписаниеВерсии = ОписаниеПоследнейВерсии(); + Если ТекущиеПараметры.Версия = ОписаниеВерсии.Версия + И ТекущиеПараметры.ХешСумма = ОписаниеВерсии.ХешСумма Тогда + Прервать; + КонецЕсли; + Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда + Прервать; + КонецЕсли; + Если ЗавершеныЗаданияЗаписиНовойВерсииПараметровОграниченияДоступа() Тогда + Прервать; + КонецЕсли; + КонецЦикла; + Если Не УстановкаПараметровСеансаДляШаблонов И Не УстановкаПараметровДляОтчетаПраваДоступа И ТекущиеПараметры.Версия = ОписаниеВерсии.Версия @@ -22230,21 +22915,38 @@ КонецФункции +// Для функции НоваяВерсияПараметровОграниченияДоступа. +Функция ЗаписьПараметровОграниченияДоступаВТекущемСеансе() + + УстановитьПривилегированныйРежим(Истина); + ТекущиеПараметры = ПараметрыСеанса.ПараметрыОграниченияДоступа; + УстановитьПривилегированныйРежим(Ложь); + + Возврат ТекущиеПараметры.Свойство("ЗаписьПараметровОграниченияДоступаВТекущемСеансе"); + +КонецФункции + // Для функций ДействующиеПараметрыОграниченияДоступа, НоваяВерсияПараметровОграниченияДоступа. -Функция ОписаниеПоследнейВерсии() +Функция ОписаниеПоследнейВерсии(ПрочитатьВерсииПараметровШаблонов = Ложь) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ПараметрыОграниченияДоступа.Версия КАК Версия, | ПараметрыОграниченияДоступа.ХешСумма КАК ХешСумма, - | ПараметрыОграниченияДоступа.ДатаСоздания КАК ДатаСоздания + | ПараметрыОграниченияДоступа.ДатаСоздания КАК ДатаСоздания, + | ПараметрыОграниченияДоступа.ВерсииПараметровШаблонов КАК ВерсииПараметровШаблонов |ИЗ | РегистрСведений.ПараметрыОграниченияДоступа КАК ПараметрыОграниченияДоступа | |УПОРЯДОЧИТЬ ПО | ПараметрыОграниченияДоступа.Версия УБЫВ"; + Если Не ПрочитатьВерсииПараметровШаблонов Тогда + Запрос.Текст = СтрЗаменить(Запрос.Текст, + "ПараметрыОграниченияДоступа.ВерсииПараметровШаблонов", "Неопределено"); + КонецЕсли; + Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); @@ -22264,6 +22966,7 @@ | ПараметрыОграниченияДоступа.ДляШаблоновВСеансахПользователей КАК ДляШаблоновВСеансахПользователей, | ПараметрыОграниченияДоступа.ДляШаблоновВСеансахВнешнихПользователей КАК ДляШаблоновВСеансахВнешнихПользователей, | ПараметрыОграниченияДоступа.ДляЗаписиОбъектовИПроверкиПрав КАК ДляЗаписиОбъектовИПроверкиПрав, + | ПараметрыОграниченияДоступа.ВерсииПараметровШаблонов КАК ВерсииПараметровШаблонов, | ПараметрыОграниченияДоступа.ДляОтчетаПоПравамДоступа КАК ДляОтчетаПоПравамДоступа |ИЗ | РегистрСведений.ПараметрыОграниченияДоступа КАК ПараметрыОграниченияДоступа @@ -22273,6 +22976,8 @@ Если УстановкаПараметровСеансаДляШаблонов Или УстановкаПараметровДляОтчетаПраваДоступа Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПараметрыОграниченияДоступа.ДляЗаписиОбъектовИПроверкиПрав", "Неопределено"); + Запрос.Текст = СтрЗаменить(Запрос.Текст, + "ПараметрыОграниченияДоступа.ВерсииПараметровШаблонов", "Неопределено"); КонецЕсли; Если Не УстановкаПараметровДляОтчетаПраваДоступа Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст, @@ -22306,14 +23011,24 @@ // Функция НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст, ЕстьИзменения = Ложь) + Попытка + ПроверитьАктуальностьМетаданных(); + Исключение + Если ЭтоОшибкаПроверкиАктуальностиМетаданных(ИнформацияОбОшибке()) Тогда + ЗапланироватьОбновлениеПараметровОграниченияДоступа( + "НоваяВерсияПараметровОграниченияДоступа", Истина); + КонецЕсли; + ВызватьИсключение; + КонецПопытки; + + УдалитьСтрокиВерсииХранимыхПараметров = Ложь; + Если РегистрироватьСтрокуВерсииПараметровОграниченияДоступа() Тогда Если ТипЗнч(ОбщийКонтекст) <> Тип("Структура") Тогда ОбновитьПовторноИспользуемыеЗначения(); ОбщийКонтекст = ОбщийКонтекстРасчетаПараметровОграничения(); КонецЕсли; - Если ОбщийКонтекст.Свойство("СтрокиВерсииХранимыхПараметров") Тогда - УдалитьСтрокиВерсииХранимыхПараметров = Ложь; - Иначе + Если Не ОбщийКонтекст.Свойство("СтрокиВерсииХранимыхПараметров") Тогда ОбщийКонтекст.Вставить("СтрокиВерсииХранимыхПараметров"); УдалитьСтрокиВерсииХранимыхПараметров = Истина; КонецЕсли; @@ -22323,100 +23038,445 @@ ХранимыеПараметры = ХранимыеПараметрыОграниченияДоступа(ОбщийКонтекст, ВерсииОграниченийСписков); ВерсииОграниченийСписков.Вставить("Справочник.НаборыГруппДоступа", "1"); - Если РегистрироватьСтрокуВерсииПараметровОграниченияДоступа() Тогда - СтрокиВерсии = ОбщийКонтекст.СтрокиВерсииХранимыхПараметров; - Если УдалитьСтрокиВерсииХранимыхПараметров Тогда - ОбщийКонтекст.Удалить("СтрокиВерсииХранимыхПараметров"); + ПараметрыЗаписи = Новый Структура; + ПараметрыЗаписи.Вставить("ВерсииОграниченийСписков", ВерсииОграниченийСписков); + ПараметрыЗаписи.Вставить("ХранимыеПараметры", ХранимыеПараметры); + ПараметрыЗаписи.Вставить("ИдентификаторДоступа", ИдентификаторДоступа()); + + Если ОбщийКонтекст.Свойство("СпискиСУстаревшимиВариантамиДоступа") Тогда + ПараметрыЗаписи.Вставить("СпискиСУстаревшимиВариантамиДоступа", + ОбщийКонтекст.СпискиСУстаревшимиВариантамиДоступа); + Иначе + ПараметрыЗаписи.Вставить("СпискиСУстаревшимиВариантамиДоступа"); + КонецЕсли; + + Если ОбщийКонтекст.Свойство("СтрокиВерсииХранимыхПараметров") Тогда + ПараметрыЗаписи.Вставить("СтрокиВерсии", ОбщийКонтекст.СтрокиВерсииХранимыхПараметров); + КонецЕсли; + + Если Не ТранзакцияАктивна() + Или МонопольныйРежим() + Или ОбщийКонтекст.Свойство("ЗаписатьВТекущейТранзакции") + Или ОбщегоНазначения.ИнформационнаяБазаФайловая() + Или ЗаписьПараметровОграниченияДоступаВТекущемСеансе() Тогда + + Попытка + ОписаниеВерсии = ОписаниеНовойВерсииПараметровОграниченияДоступа(ПараметрыЗаписи); + Исключение + Если ЭтоОшибкаПроверкиАктуальностиМетаданных(ИнформацияОбОшибке()) Тогда + ЗапланироватьОбновлениеПараметровОграниченияДоступа( + "НоваяВерсияПараметровОграниченияДоступа", Истина); + КонецЕсли; + ВызватьИсключение; + КонецПопытки; + Иначе + ПараметрыЗаписиВХранилище = Новый ХранилищеЗначения(ПараметрыЗаписи); + ОписаниеВерсии = Неопределено; + Пока Истина Цикл + ОписаниеВерсии = ОписаниеНовойВерсииПараметровОграниченияДоступа( + ПараметрыЗаписиВХранилище.Получить(), Истина); + Если ОписаниеВерсии <> Неопределено Тогда + Прервать; + КонецЕсли; + Если ЗавершеныЗаданияЗаписиНовойВерсииПараметровОграниченияДоступа() Тогда + Прервать; + КонецЕсли; + КонецЦикла; + Если ОписаниеВерсии = Неопределено Тогда + ИмяПроцедуры = ИмяПроцедурыЗаданияЗаписиНовойВерсииПараметровОграниченияДоступа(); + АдресРезультата = ПоместитьВоВременноеХранилище(Неопределено); + ПараметрыПроцедуры = Новый Массив; + ПараметрыПроцедуры.Добавить(АдресРезультата); + ПараметрыПроцедуры.Добавить(ПараметрыЗаписиВХранилище); + ТекущийСеанс = ПолучитьТекущийСеансИнформационнойБазы(); + НаименованиеЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Управление доступом: Запись новой версии параметров ограничения доступа (из сеанса %1 от %2)'", + ОбщегоНазначения.КодОсновногоЯзыка()), + Формат(ТекущийСеанс.НомерСеанса, "ЧГ="), + Формат(ТекущийСеанс.НачалоСеанса, "ДЛФ=DT")); + ФоновоеЗадание = ФоновыеЗадания.Выполнить(ИмяПроцедуры, ПараметрыПроцедуры,, НаименованиеЗадания); + ФоновоеЗадание = ФоновоеЗадание.ОжидатьЗавершенияВыполнения(60); + Результат = ПолучитьИзВременногоХранилища(АдресРезультата); + ЗаголовокОшибки = НСтр("ru = 'Не удалось записать новую версию параметров ограничения доступа по причине:'"); + Если ФоновоеЗадание.Состояние = СостояниеФоновогоЗадания.Активно Тогда + ФоновоеЗадание.Отменить(); + ТекстОшибки = ЗаголовокОшибки + Символы.ПС + + НСтр("ru = 'Фоновое задание выполняется более 60 секунд, поэтому отменено.'"); + ВызватьИсключение ТекстОшибки; + КонецЕсли; + Если ФоновоеЗадание.Состояние = СостояниеФоновогоЗадания.Отменено Тогда + ТекстОшибки = ЗаголовокОшибки + Символы.ПС + + НСтр("ru = 'Фоновое задание отменено администратором.'"); + ВызватьИсключение ТекстОшибки; + КонецЕсли; + Если ФоновоеЗадание.Состояние <> СостояниеФоновогоЗадания.Завершено Тогда + Если ТипЗнч(ФоновоеЗадание.ИнформацияОбОшибке) = Тип("ИнформацияОбОшибке") Тогда + ТекстОшибки = ЗаголовокОшибки + Символы.ПС + + ПодробноеПредставлениеОшибки(ФоновоеЗадание.ИнформацияОбОшибке); + Иначе + ТекстОшибки = ЗаголовокОшибки + Символы.ПС + + НСтр("ru = 'Фоновое задание завершилось аварийно.'"); + КонецЕсли; + ВызватьИсключение ТекстОшибки; + КонецЕсли; + Если ТипЗнч(Результат) <> Тип("Структура") Тогда + ТекстОшибки = ЗаголовокОшибки + Символы.ПС + + НСтр("ru = 'Фоновое задание не вернуло результат.'"); + ВызватьИсключение ТекстОшибки; + КонецЕсли; + Если Результат.ТребуетсяПерезапускСеанса Тогда + ЗапланироватьОбновлениеПараметровОграниченияДоступа( + "НоваяВерсияПараметровОграниченияДоступа", Истина); + ПроверитьАктуальностьМетаданных(); + УстановитьТребуетсяПерезапускСеанса(Результат.ТекстОшибки); + ВызватьИсключение Результат.ТекстОшибки; + КонецЕсли; + Если ЗначениеЗаполнено(Результат.ТекстОшибки) Тогда + ТекстОшибки = ЗаголовокОшибки + Символы.ПС + Результат.ТекстОшибки; + ВызватьИсключение ТекстОшибки; + КонецЕсли; + ОписаниеВерсии = Результат.ОписаниеВерсии; КонецЕсли; КонецЕсли; - НаборЗаписей = СлужебныйНаборЗаписей(РегистрыСведений.ПараметрыОграниченияДоступа); - Запись = НаборЗаписей.Добавить(); - ЗаполнитьЗначенияСвойств(Запись, ХранимыеПараметры); - - БлокировкаДанных = Новый БлокировкаДанных; - ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрСведений.ПараметрыОграниченияДоступа"); - ЗаблокированнаяВерсия = 0; - - НачатьТранзакцию(); - Попытка - ОписаниеВерсии = ОписаниеПоследнейВерсии(); - Пока Истина Цикл - Если ОписаниеВерсии.ХешСумма = ХранимыеПараметры.ХешСумма Тогда - Если ОписаниеВерсии.Версия = ЗаблокированнаяВерсия Тогда - Прервать; - КонецЕсли; - ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый; - ЭлементБлокировки.УстановитьЗначение("Версия", ОписаниеВерсии.Версия); - БлокировкаДанных.Заблокировать(); - ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрСведений.ПараметрыОграниченияДоступа"); - ЗаблокированнаяВерсия = ОписаниеВерсии.Версия; - ОписаниеВерсии = ОписаниеПоследнейВерсии(); - Продолжить; - КонецЕсли; - Если ЗначениеЗаполнено(ОписаниеВерсии.Версия) Тогда - НоваяВерсия = ОписаниеВерсии.Версия + 1; - Иначе - НоваяВерсия = 1; - КонецЕсли; - ЭлементБлокировки.УстановитьЗначение("Версия", НоваяВерсия); - БлокировкаДанных.Заблокировать(); - НовоеОписаниеВерсии = ОписаниеПоследнейВерсии(); - - Если ОписаниеВерсии.Версия <> НовоеОписаниеВерсии.Версия - Или НовоеОписаниеВерсии.Версия = НоваяВерсия Тогда - - ОписаниеВерсии = НовоеОписаниеВерсии; - Продолжить; - КонецЕсли; - - ХранимыеПараметры.Вставить("Версия", НоваяВерсия); - - Запись.Версия = НоваяВерсия; - НаборЗаписей.Отбор.Версия.Установить(НоваяВерсия); - - Если КонфигурацияБазыДанныхИзмененаДинамически() Тогда - СтандартныеПодсистемыСервер.ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияВерсииПрограммы(); - КонецЕсли; - Если Справочники.ВерсииРасширений.РасширенияИзмененыДинамически() Тогда - ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияРасширенийПрограммы() - КонецЕсли; - НедоступныеСписки = Новый Массив; - Списки = СпискиСИзменениемВерсий(ВерсииОграниченийСписков, НедоступныеСписки); - ПараметрыПланирования = ПараметрыПланированияОбновленияДоступа(); - ПараметрыПланирования.ВерсииОграниченийСписков = ВерсииОграниченийСписков; - ПараметрыПланирования.ЭтоПродолжениеОбновления = Истина; - ПараметрыПланирования.Описание = "НоваяВерсияПараметровОграниченияДоступа"; - ЗапланироватьОбновлениеДоступа(Списки, ПараметрыПланирования); - Если НедоступныеСписки.Количество() > 0 Тогда - ЗапланироватьОбновлениеДоступа(НедоступныеСписки, ПараметрыПланирования); - КонецЕсли; - - НаборЗаписей.Записать(); - ЕстьИзменения = Истина; - Если РегистрироватьСтрокуВерсииПараметровОграниченияДоступа() Тогда - ЗарегистрироватьСтрокуВерсииПараметровОграниченияДоступа(НаборЗаписей[0], СтрокиВерсии); - КонецЕсли; - Прервать; - КонецЦикла; - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - - Если Не ХранимыеПараметры.Свойство("Версия") Тогда - ХранимыеПараметры.Вставить("Версия", ОписаниеВерсии.Версия); - ХранимыеПараметры.Вставить("ДатаСоздания", ОписаниеВерсии.ДатаСоздания); + Если ОбщийКонтекст.Свойство("СпискиСУстаревшимиВариантамиДоступа") Тогда + ОбщийКонтекст.СпискиСУстаревшимиВариантамиДоступа = + ОписаниеВерсии.СпискиСУстаревшимиВариантамиДоступа; КонецЕсли; - Если ЕстьИзменения <> Истина И Не ТранзакцияАктивна() Тогда + Если УдалитьСтрокиВерсииХранимыхПараметров Тогда + ОбщийКонтекст.Удалить("СтрокиВерсииХранимыхПараметров"); + + ИначеЕсли ОбщийКонтекст.Свойство("СтрокиВерсииХранимыхПараметров") Тогда + ОбщийКонтекст.СтрокиВерсииХранимыхПараметров = ОписаниеВерсии.СтрокиВерсии; + КонецЕсли; + + Если ОписаниеВерсии.ЕстьИзменения Тогда + ЕстьИзменения = Истина; + КонецЕсли; + + Для Каждого КлючИЗначение Из ОписаниеВерсии.ЗаполняемыеСвойстваВерсии Цикл + ХранимыеПараметры.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение); + КонецЦикла; + + Возврат ХранимыеПараметры; + +КонецФункции + +// Для функций НоваяВерсияПараметровОграниченияДоступа и +// ДействующиеПараметрыОграниченияДоступа. +// +Функция ЗавершеныЗаданияЗаписиНовойВерсииПараметровОграниченияДоступа() + + ОтборЗаданий = Новый Структура("ИмяМетода, Состояние", + ИмяПроцедурыЗаданияЗаписиНовойВерсииПараметровОграниченияДоступа(), + СостояниеФоновогоЗадания.Активно); + + НайденныеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания(ОтборЗаданий); + + Если НайденныеЗадания.Количество() = 0 Тогда + Возврат Истина; + КонецЕсли; + + ФоновыеЗадания.ОжидатьЗавершенияВыполнения(НайденныеЗадания, 1); + + Возврат Ложь; + +КонецФункции + +// Для функций НоваяВерсияПараметровОграниченияДоступа и +// ЗавершеныЗаданияЗаписиНовойВерсииПараметровОграниченияДоступа. +// +Функция ИмяПроцедурыЗаданияЗаписиНовойВерсииПараметровОграниченияДоступа() + + Возврат "УправлениеДоступомСлужебный.ЗаписатьНовуюВерсиюПараметровОграниченияДоступаВФоне"; + +КонецФункции + +// Для функции НоваяВерсияПараметровОграниченияДоступа. +Процедура ЗаписатьНовуюВерсиюПараметровОграниченияДоступаВФоне(АдресРезультата, ХранилищеПараметров) Экспорт + + Результат = Новый Структура; + Результат.Вставить("ОписаниеВерсии", Новый Структура); + Результат.Вставить("ТекстОшибки", ""); + Результат.Вставить("ТребуетсяПерезапускСеанса", Ложь); + + УстановитьПривилегированныйРежим(Истина); + Попытка + Параметры = ХранилищеПараметров.Получить(); + Если Параметры.ИдентификаторДоступа = ИдентификаторДоступа() Тогда + Результат.ОписаниеВерсии = ОписаниеНовойВерсииПараметровОграниченияДоступа(Параметры); + Иначе + Результат.ТекстОшибки = НСтр("ru = 'Ошибка проверки доступа.'"); + КонецЕсли; + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + Если ТребуетсяПерезапускСеанса(Результат.ТекстОшибки) Тогда + Результат.ТребуетсяПерезапускСеанса = Истина; + КонецЕсли; + Если Не Результат.ТребуетсяПерезапускСеанса + Или Не ЭтоОшибкаПроверкиАктуальностиМетаданных(ИнформацияОбОшибке) Тогда + Результат.ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); + КонецЕсли; + КонецПопытки; + УстановитьПривилегированныйРежим(Ложь); + + ПоместитьВоВременноеХранилище(Результат, АдресРезультата); + +КонецПроцедуры + +// Для функции НоваяВерсияПараметровОграниченияДоступа и +// процедуры ЗаписатьНовуюВерсиюПараметровОграниченияДоступаВФоне. +// +Функция ИдентификаторДоступа() + + Возврат ПоследнееОбновлениеДоступа().ИдентификаторДоступа; + +КонецФункции + +// Для функции НоваяВерсияПараметровОграниченияДоступа и +// процедуры ЗаписатьНовуюВерсиюПараметровОграниченияДоступаВФоне. +// +Функция ОписаниеНовойВерсииПараметровОграниченияДоступа(Параметры, БезЗаписи = Ложь) + + НаборЗаписей = СлужебныйНаборЗаписей(РегистрыСведений.ПараметрыОграниченияДоступа); + Запись = НаборЗаписей.Добавить(); + ЗаполнитьЗначенияСвойств(Запись, Параметры.ХранимыеПараметры); + + ЗаполняемыеСвойстваВерсии = Новый Структура("Версия, ДатаСоздания, ХешСумма, + |ВерсииПараметровШаблонов, ХешСуммаПостоянныхПараметров, ХешСуммаПараметровШаблонов, + |ДляШаблоновВСеансахПользователей, ДляШаблоновВСеансахВнешнихПользователей"); + + Результат = Новый Структура; + Результат.Вставить("ЕстьИзменения", Ложь); + Результат.Вставить("ЗаполняемыеСвойстваВерсии", ЗаполняемыеСвойстваВерсии); + Результат.Вставить("СпискиСУстаревшимиВариантамиДоступа", + Параметры.СпискиСУстаревшимиВариантамиДоступа); + Параметры.Вставить("СпискиСНовымОсновнымВариантомДоступа", Новый Массив); + Если Параметры.Свойство("СтрокиВерсии") Тогда + Результат.Вставить("СтрокиВерсии", Параметры.СтрокиВерсии); + КонецЕсли; + + Если БезЗаписи Тогда + ОписаниеВерсии = ОписаниеПоследнейВерсии(Истина); + ЗаполнитьПараметрыДляШаблонов(Запись, Параметры, ОписаниеВерсии); + Если ОписаниеВерсии.ХешСумма <> Запись.ХешСумма Тогда + Возврат Неопределено; + КонецЕсли; + Иначе + НачатьТранзакцию(); + Попытка + ОписаниеВерсии = ОписаниеПоследнейВерсии(Истина); + Пока Истина Цикл + ЗаполнитьПараметрыДляШаблонов(Запись, Параметры, ОписаниеВерсии); + Если ОписаниеВерсии.ХешСумма = Запись.ХешСумма Тогда + Прервать; + КонецЕсли; + + ПроверитьАктуальностьМетаданных(); + + Если ЗначениеЗаполнено(ОписаниеВерсии.Версия) Тогда + НоваяВерсия = ОписаниеВерсии.Версия + 1; + Иначе + НоваяВерсия = 1; + КонецЕсли; + + БлокировкаДанных = Новый БлокировкаДанных; + ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрСведений.ПараметрыОграниченияДоступа"); + ЭлементБлокировки.УстановитьЗначение("Версия", НоваяВерсия); + БлокировкаДанных.Заблокировать(); + НовоеОписаниеВерсии = ОписаниеПоследнейВерсии(Истина); + + Если ОписаниеВерсии.Версия <> НовоеОписаниеВерсии.Версия + Или НовоеОписаниеВерсии.Версия = НоваяВерсия Тогда + + ОписаниеВерсии = НовоеОписаниеВерсии; + Продолжить; + КонецЕсли; + + ПроверитьАктуальностьМетаданных(); + + Запись.Версия = НоваяВерсия; + НаборЗаписей.Отбор.Версия.Установить(НоваяВерсия); + ЗаполнитьЗначенияСвойств(ЗаполняемыеСвойстваВерсии, Запись); + + ЗапланироватьОбновлениеДоступаПриИзмененииПараметров(ОписаниеВерсии.Версия, Параметры); + НаборЗаписей.Записать(); + Результат.ЕстьИзменения = Истина; + + Если РегистрироватьСтрокуВерсииПараметровОграниченияДоступа() Тогда + ЗарегистрироватьСтрокуВерсииПараметровОграниченияДоступа(НаборЗаписей[0], + Параметры.СтрокиВерсии); + КонецЕсли; + + Прервать; + КонецЦикла; + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + КонецЕсли; + + Если Не Результат.ЕстьИзменения Тогда + ЗаполнитьЗначенияСвойств(ЗаполняемыеСвойстваВерсии, ОписаниеВерсии, + "Версия, ДатаСоздания, ХешСумма, ВерсииПараметровШаблонов"); + ЗаполнитьЗначенияСвойств(ЗаполняемыеСвойстваВерсии, Запись, + "ХешСуммаПостоянныхПараметров, ХешСуммаПараметровШаблонов, + |ДляШаблоновВСеансахПользователей, ДляШаблоновВСеансахВнешнихПользователей"); + ИначеЕсли Не ТранзакцияАктивна() Тогда ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ДатаПроверкиПараметровОграниченияДоступа"; СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, ТекущаяДатаСеанса(), Истина); УстановитьОбновлениеДоступа(Истина); КонецЕсли; - Возврат ХранимыеПараметры; + Возврат Результат; + +КонецФункции + +// Для функции ОписаниеНовойВерсииПараметровОграниченияДоступа. +Процедура ЗапланироватьОбновлениеДоступаПриИзмененииПараметров(СтараяВерсия, Параметры) + + НедоступныеСписки = Новый Массив; + Списки = СпискиСИзменениемВерсий(СтараяВерсия, + Параметры.ВерсииОграниченийСписков, НедоступныеСписки); + + ПараметрыПланирования = ПараметрыПланированияОбновленияДоступа(); + ПараметрыПланирования.ВерсииОграниченийСписков = Параметры.ВерсииОграниченийСписков; + ПараметрыПланирования.ЭтоПродолжениеОбновления = Истина; + ПараметрыПланирования.Описание = "НоваяВерсияПараметровОграниченияДоступа"; + + ЗапланироватьОбновлениеДоступа(Списки, ПараметрыПланирования); + ПараметрыПланирования.ЭтоОбработкаУстаревшихЭлементов = Истина; + ЗапланироватьОбновлениеДоступа(Списки, ПараметрыПланирования); + + Если ЗначениеЗаполнено(НедоступныеСписки) Тогда + ПараметрыПланирования.ЭтоОбработкаУстаревшихЭлементов = Ложь; + ЗапланироватьОбновлениеДоступа(НедоступныеСписки, ПараметрыПланирования); + ПараметрыПланирования.ЭтоОбработкаУстаревшихЭлементов = Истина; + ЗапланироватьОбновлениеДоступа(НедоступныеСписки, ПараметрыПланирования); + КонецЕсли; + + Если ЗначениеЗаполнено(Параметры.СпискиСНовымОсновнымВариантомДоступа) Тогда + ПараметрыПланирования.ЭтоОбработкаУстаревшихЭлементов = Ложь; + ЗапланироватьОбновлениеДоступа(Параметры.СпискиСНовымОсновнымВариантомДоступа, + ПараметрыПланирования); + ПараметрыПланирования.ЭтоОбработкаУстаревшихЭлементов = Истина; + ЗапланироватьОбновлениеДоступа(Параметры.СпискиСНовымОсновнымВариантомДоступа, + ПараметрыПланирования); + КонецЕсли; + Если ЗначениеЗаполнено(Параметры.СпискиСУстаревшимиВариантамиДоступа) Тогда + ПараметрыПланирования.ЭтоОбработкаУстаревшихЭлементов = Истина; + ЗапланироватьОбновлениеДоступа(Параметры.СпискиСУстаревшимиВариантамиДоступа, + ПараметрыПланирования); + КонецЕсли; + +КонецПроцедуры + +// Для процедуры ОбновитьТаблицыГруппДоступаДляПодключенныхРасширений и +// функции НоваяВерсияПараметровОграниченияДоступа. +// +Процедура ПроверитьАктуальностьМетаданных() + + КонфигурацияИзменена = КонфигурацияБазыДанныхИзмененаДинамически(); + РасширенияИзменены = Справочники.ВерсииРасширений.РасширенияИзмененыДинамически(); + + Если Не КонфигурацияИзменена И Не РасширенияИзменены Тогда + Возврат; + КонецЕсли; + + Попытка + Попытка + Если КонфигурацияИзменена Тогда + СтандартныеПодсистемыСервер.ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияВерсииПрограммы(); + ИначеЕсли РасширенияИзменены Тогда + ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияРасширенийПрограммы(); + КонецЕсли; + Исключение + Если ЭтоСеансФоновогоОбновленияДоступа() Тогда + ВызватьИсключение; + КонецЕсли; + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось проверить или обновить права доступа по причине: + |%1 + | + |Повторите операцию через минуту, если ошибка повторится, перезапустите сеанс.'"), + КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение ТекстОшибки; + КонецПопытки; + Исключение + ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + УстановитьТребуетсяПерезапускСеанса(ТекстОшибки); + ПриОшибкеПроверкиАктуальностиМетаданных(ТекстОшибки); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +// Для процедур ОбработатьРезультатЗадания и ПроверитьАктуальностьМетаданных. +Процедура УстановитьТребуетсяПерезапускСеанса(КраткоеПредставлениеОшибки) + + Если ТребуетсяПерезапускСеанса() Тогда + Возврат; + КонецЕсли; + + ТекущиеПараметры = Новый Структура(ПараметрыСеанса.ПараметрыОграниченияДоступа); + ТекущиеПараметры.Вставить("ТребуетсяПерезапускСеанса", КраткоеПредставлениеОшибки); + ПараметрыСеанса.ПараметрыОграниченияДоступа = Новый ФиксированнаяСтруктура(ТекущиеПараметры); + +КонецПроцедуры + +// Для процедур ВыполнитьОбновлениеДоступаНаУровнеЗаписей, +// ДобавитьЗаданияОбновленияДоступа, +// ВыполнитьОбновлениеДоступаСпискаСПопыткамиПовтора, +// УстановитьТребуетсяПерезапускСеанса и +// функции ЭтоОшибкаПроверкиАктуальностиМетаданных. +// +Функция ТребуетсяПерезапускСеанса(КраткоеПредставлениеОшибки = "") + + Если Не ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ТребуетсяПерезапускСеанса") Тогда + Возврат Ложь; + КонецЕсли; + + КраткоеПредставлениеОшибки = ПараметрыСеанса.ПараметрыОграниченияДоступа.ТребуетсяПерезапускСеанса; + + Возврат Истина; + +КонецФункции + +// Для процедур ВыполнитьОбновлениеДоступаНаУровнеЗаписей, +// ДобавитьЗаданияОбновленияДоступа, +// ВыполнитьОбновлениеДоступаСпискаСПопыткамиПовтора и +// функции НоваяВерсияПараметровОграниченияДоступа. +// +Функция ЭтоОшибкаПроверкиАктуальностиМетаданных(ИнформацияОбОшибке) + + ТекстОшибки = ""; + Если Не ТребуетсяПерезапускСеанса(ТекстОшибки) Тогда + Возврат Ложь; + КонецЕсли; + + Возврат ТипЗнч(ИнформацияОбОшибке) = Тип("ИнформацияОбОшибке") + И ЗначениеЗаполнено(ТекстОшибки) + И СтрНачинаетсяС(КраткоеПредставлениеОшибки(ИнформацияОбОшибке), ТекстОшибки); + +КонецФункции + +// Для процедуры УстановитьОбновлениеДоступа +Функция ЭтоСеансФоновогоОбновленияДоступа() + + Если ТекущийРежимЗапуска() <> Неопределено Тогда + Возврат Ложь; + КонецЕсли; + + ТекущийСеанс = ПолучитьТекущийСеансИнформационнойБазы(); + ТекущееФоновоеЗадание = ТекущийСеанс.ПолучитьФоновоеЗадание(); + Если ТекущееФоновоеЗадание = Неопределено Тогда + Возврат Ложь; + КонецЕсли; + + Возврат ТекущееФоновоеЗадание.ИмяМетода = ИмяМетодаПотокаОбновленияДоступа() + Или ТекущееФоновоеЗадание.ИмяМетода = ИмяМетодаЗаданияОбновленияДоступа(); КонецФункции @@ -22428,10 +23488,13 @@ "Версия = %1 |ДатаСоздания = %2 |ХешСумма = %3 - |", + |ХешСуммаПостоянныхПараметров = %4 + |ХешСуммаПараметровШаблонов = %5", Запись.Версия, Формат(Запись.ДатаСоздания, "ДЛФ=DT"), - Запись.ХешСумма)); + Запись.ХешСумма, + Запись.ХешСуммаПостоянныхПараметров, + Запись.ХешСуммаПараметровШаблонов)); Для Каждого Строка Из СтрокиВерсии.СтрокиВерсийСписков Цикл Состав.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( @@ -22449,6 +23512,12 @@ Состав.Добавить("[ВсеВидыОграниченийСтрокой] |" + СтрокиВерсии.ВсеВидыОграниченийСтрокой); + Состав.Добавить("[СпискиСОграничениемПоПолямВСеансахПользователей] + |" + СтрокиВерсии.СпискиСОграничениемПоПолямВСеансахПользователей); + + Состав.Добавить("[СпискиСОграничениемПоПолямВСеансахВнешнихПользователей] + |" + СтрокиВерсии.СпискиСОграничениемПоПолямВСеансахВнешнихПользователей); + Комментарий = СтрСоединить(Состав, Символы.ПС); ЗаписьЖурналаРегистрации( @@ -22456,19 +23525,19 @@ ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Информация, Метаданные.РегистрыСведений.ПараметрыОграниченияДоступа,, - Комментарий); + Комментарий, + РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная); КонецПроцедуры // Для функции НоваяВерсияПараметровОграниченияДоступа. -Функция СпискиСИзменениемВерсий(НовыеВерсииОграниченийСписков, НедоступныеСписки) +Функция СпискиСИзменениемВерсий(Версия, НовыеВерсииОграниченийСписков, НедоступныеСписки) - ОписаниеВерсии = ОписаниеПоследнейВерсии(); - Если Не ЗначениеЗаполнено(ОписаниеВерсии.Версия) Тогда + Если Не ЗначениеЗаполнено(Версия) Тогда Возврат Неопределено; КонецЕсли; - ВерсияПараметров = ВерсияПараметров(ОписаниеВерсии.Версия, Ложь, Ложь); + ВерсияПараметров = ВерсияПараметров(Версия, Ложь, Ложь); ПараметрыЗаписиХранилище = ВерсияПараметров.ДляЗаписиОбъектовИПроверкиПрав; Если ТипЗнч(ПараметрыЗаписиХранилище) <> Тип("ХранилищеЗначения") Тогда @@ -22583,7 +23652,7 @@ // Число нужно увеличивать при внесении изменений в состав параметров кэша // (в том числе при изменении версии шаблонов). - Возврат "20"; + Возврат "21"; КонецФункции @@ -22596,8 +23665,8 @@ Функция ВерсииШаблоновОграниченияДоступа() Возврат - ",ДляОбъекта7, - |,ДляРегистра7, + ",ДляОбъекта8, + |,ДляРегистра8, |,ПоЗначениям17, |,ПоЗначениямРасширенный17, |,ПоЗначениямИНаборамРасширенный17, @@ -22605,6 +23674,21 @@ КонецФункции +// Для процедур УстановитьВерсиюПараметров, ЗаполнитьПараметрыДляШаблонов и +// функции НоваяСтруктураХранимыхВерсийПараметровШаблонов. +// +// +// Возвращаемое значение: +// Строка +// +Функция ВерсияСтруктурыВерсийПараметровШаблонов() + + // Число нужно увеличивать только при внесении изменений + // в состав параметра ВерсииПараметровШаблонов. + Возврат "1"; + +КонецФункции + // Для функции ДействующиеПараметрыОграниченияДоступа. Процедура ОбновитьИдентификаторыТранзакции(ИдентификаторТранзакции) @@ -22650,6 +23734,20 @@ ДляЗаписиОбъектовИПроверкиПрав = Неопределено; КонецЕсли; + Если ТипЗнч(ВерсияПараметров.ВерсииПараметровШаблонов) = Тип("ХранилищеЗначения") Тогда + ВерсииПараметровШаблонов = СтруктураХранимыхВерсийПараметровШаблонов( + ВерсияПараметров.ВерсииПараметровШаблонов.Получить()); + + Если ВерсииПараметровШаблонов.ВерсияСтруктурыВерсий <> ВерсияСтруктурыВерсийПараметровШаблонов() Тогда + ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст); + УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, + УстановкаПараметровСеансаДляШаблонов, Истина); + Возврат; + КонецЕсли; + Иначе + ВерсииПараметровШаблонов = Неопределено; + КонецЕсли; + Если ТипЗнч(ВерсияПараметров.ДляОтчетаПоПравамДоступа) = Тип("ХранилищеЗначения") Тогда ДляОтчетаПоПравамДоступа = СтруктураХранимыхПараметровОтчета( ВерсияПараметров.ДляОтчетаПоПравамДоступа.Получить()); @@ -22667,13 +23765,13 @@ Если УстановкаПараметровСеансаДляШаблонов Или ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда - ХранилищеДляШаблоновОграниченияДоступа = ?(Пользователи.ЭтоСеансВнешнегоПользователя(), + ХранилищеДляШаблоновВСеансах = ?(Пользователи.ЭтоСеансВнешнегоПользователя(), ВерсияПараметров.ДляШаблоновВСеансахВнешнихПользователей, ВерсияПараметров.ДляШаблоновВСеансахПользователей); - Если ТипЗнч(ХранилищеДляШаблоновОграниченияДоступа) = Тип("ХранилищеЗначения") Тогда + Если ТипЗнч(ХранилищеДляШаблоновВСеансах) = Тип("ХранилищеЗначения") Тогда ДляШаблоновОграниченияДоступа = СтруктураХранимыхПараметровШаблонов( - ХранилищеДляШаблоновОграниченияДоступа.Получить()); + ХранилищеДляШаблоновВСеансах.Получить()); Если ДляШаблоновОграниченияДоступа.ВерсияСтруктурыКэша <> ВерсияСтруктурыКэша() Тогда ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст); @@ -22713,7 +23811,7 @@ ОбновитьРазрешенныеНаборыВПараметрахСеанса(УстановкаПараметровСеансаДляШаблонов, Истина); Параметры = СеансовыеПараметрыОграниченияДоступа(ВерсияПараметров, - ДляЗаписиОбъектовИПроверкиПрав, УстановкаПараметровСеансаДляШаблонов); + ДляЗаписиОбъектовИПроверкиПрав, ВерсииПараметровШаблонов, УстановкаПараметровСеансаДляШаблонов); ПараметрыСеанса.ПараметрыОграниченияДоступа = Параметры; КонецПроцедуры @@ -22728,19 +23826,42 @@ // * Параметры - см. СтруктураХранимыхПараметровЗаписи // Функция СеансовыеПараметрыОграниченияДоступа(ВерсияПараметров, ДляЗаписиОбъектовИПроверкиПрав, - УстановкаПараметровСеансаДляШаблонов) + ВерсииПараметровШаблонов, УстановкаПараметровСеансаДляШаблонов) ПараметрыОграничения = Новый Структура; ПараметрыОграничения.Вставить("Версия", ВерсияПараметров.Версия); ПараметрыОграничения.Вставить("ХешСумма", ВерсияПараметров.ХешСумма); ПараметрыОграничения.Вставить("ДатаСоздания", ВерсияПараметров.ДатаСоздания); - ПараметрыОграничения.Вставить("Параметры", ДляЗаписиОбъектовИПроверкиПрав); + + Если ДляЗаписиОбъектовИПроверкиПрав = Неопределено Тогда + Параметры = Неопределено; + Иначе + ПрочитанныеПараметры = Новый Структура(ДляЗаписиОбъектовИПроверкиПрав); + ДополнительныйКонтекст = Новый Структура(ПрочитанныеПараметры.ДополнительныйКонтекст); + ДляПользователей = Новый Структура(ДополнительныйКонтекст.ДляПользователей); + ДляПользователей.ОсновныеВариантыДоступа = Новый ФиксированноеСоответствие( + ВерсииПараметровШаблонов.ДляПользователей.ОсновныеВариантыДоступа); + ДополнительныйКонтекст.ДляПользователей = Новый ФиксированнаяСтруктура(ДляПользователей); + ДляВнешнихПользователей = Новый Структура(ДополнительныйКонтекст.ДляВнешнихПользователей); + ДляВнешнихПользователей.ОсновныеВариантыДоступа = Новый ФиксированноеСоответствие( + ВерсииПараметровШаблонов.ДляВнешнихПользователей.ОсновныеВариантыДоступа); + ДополнительныйКонтекст.ДляВнешнихПользователей = Новый ФиксированнаяСтруктура(ДляВнешнихПользователей); + ПрочитанныеПараметры.ДополнительныйКонтекст = Новый ФиксированнаяСтруктура(ДополнительныйКонтекст); + Параметры = Новый ФиксированнаяСтруктура(ПрочитанныеПараметры); + КонецЕсли; + + ПараметрыОграничения.Вставить("Параметры", Параметры); Если УстановкаПараметровСеансаДляШаблонов Или ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда ПараметрыОграничения.Вставить("ПараметрыСеансаДляШаблоновУстановлены"); КонецЕсли; + Если ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ЗаписьПараметровОграниченияДоступаВТекущемСеансе") Тогда + ПараметрыОграничения.Вставить("ЗаписьПараметровОграниченияДоступаВТекущемСеансе", + ПараметрыСеанса.ПараметрыОграниченияДоступа.ЗаписьПараметровОграниченияДоступаВТекущемСеансе); + КонецЕсли; + Возврат Новый ФиксированнаяСтруктура(ПараметрыОграничения); КонецФункции @@ -22777,36 +23898,8 @@ КонецЕсли; ПоследняяПроверка.Дата = ТекущаяДатаСеанса(); - ПустойНаборГруппДоступа = Справочники.НаборыГруппДоступа.ПустаяСсылка(); - Состав = Новый Структура; - Состав.Вставить("РазрешенныйПользователь", ПустойНаборГруппДоступа); - Состав.Вставить("РазрешенныйНаборГруппДоступа", ПустойНаборГруппДоступа); - Состав.Вставить("РазрешенныйНаборГруппПользователей", ПустойНаборГруппДоступа); - Состав.Вставить("РазрешенныйПустойНаборГруппДоступа", - УправлениеДоступомСлужебныйПовтИсп.РазрешенныйПустойНаборГруппДоступа()); - - Если Не Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда - Состав.РазрешенныйПользователь = Справочники.НаборыГруппДоступа.ПолучитьСсылку( - Пользователи.АвторизованныйПользователь().УникальныйИдентификатор()); - - Запрос = Новый Запрос; - Запрос.УстановитьПараметр("РазрешенныйПользователь", Состав.РазрешенныйПользователь); - Запрос.Текст = - "ВЫБРАТЬ - | НаборыГруппДоступа.РазрешенныйНаборГруппДоступа КАК РазрешенныйНаборГруппДоступа, - | НаборыГруппДоступа.РазрешенныйНаборГруппПользователей КАК РазрешенныйНаборГруппПользователей - |ИЗ - | Справочник.НаборыГруппДоступа КАК НаборыГруппДоступа - |ГДЕ - | НаборыГруппДоступа.Ссылка = &РазрешенныйПользователь"; - - Выборка = Запрос.Выполнить().Выбрать(); - Если Выборка.Следующий() Тогда - Состав.РазрешенныйНаборГруппДоступа = Выборка.РазрешенныйНаборГруппДоступа; - Состав.РазрешенныйНаборГруппПользователей = Выборка.РазрешенныйНаборГруппПользователей; - КонецЕсли; - КонецЕсли; + Состав = РазрешенныеНаборыПараметровЗапроса(); Если Не УстановкаПараметровСеансаДляШаблонов И ПараметрыСеанса.РазрешенныйПользователь = Состав.РазрешенныйПользователь @@ -22825,6 +23918,64 @@ КонецПроцедуры +// Для процедуры ОбновитьРазрешенныеНаборыВПараметрахСеанса и +// УстановитьРазрешенныеНаборыВПараметрыЗапроса. +// +// Параметры: +// Пользователь - СправочникСсылка.Пользователи +// - СправочникСсылка.ВнешниеПользователи +// - Неопределено - текущий пользователь. +// +// Возвращаемое значение: +// Структура: +// * РазрешенныйПользователь - СправочникСсылка.НаборыГруппДоступа +// * РазрешенныйНаборГруппДоступа - СправочникСсылка.НаборыГруппДоступа +// * РазрешенныйНаборГруппПользователей - СправочникСсылка.НаборыГруппДоступа +// * РазрешенныйПустойНаборГруппДоступа - СправочникСсылка.НаборыГруппДоступа +// +Функция РазрешенныеНаборыПараметровЗапроса(Знач Пользователь = Неопределено) + + ПустойНаборГруппДоступа = Справочники.НаборыГруппДоступа.ПустаяСсылка(); + + Состав = Новый Структура; + Состав.Вставить("РазрешенныйПользователь", ПустойНаборГруппДоступа); + Состав.Вставить("РазрешенныйНаборГруппДоступа", ПустойНаборГруппДоступа); + Состав.Вставить("РазрешенныйНаборГруппПользователей", ПустойНаборГруппДоступа); + Состав.Вставить("РазрешенныйПустойНаборГруппДоступа", + УправлениеДоступомСлужебныйПовтИсп.РазрешенныйПустойНаборГруппДоступа()); + + Если Пользователи.ЭтоПолноправныйПользователь(Пользователь,, Ложь) Тогда + Возврат Состав; + КонецЕсли; + + Если Пользователь = Неопределено Тогда + Пользователь = Пользователи.АвторизованныйПользователь(); + КонецЕсли; + + Состав.РазрешенныйПользователь = Справочники.НаборыГруппДоступа.ПолучитьСсылку( + Пользователь.УникальныйИдентификатор()); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("РазрешенныйПользователь", Состав.РазрешенныйПользователь); + Запрос.Текст = + "ВЫБРАТЬ + | НаборыГруппДоступа.РазрешенныйНаборГруппДоступа КАК РазрешенныйНаборГруппДоступа, + | НаборыГруппДоступа.РазрешенныйНаборГруппПользователей КАК РазрешенныйНаборГруппПользователей + |ИЗ + | Справочник.НаборыГруппДоступа КАК НаборыГруппДоступа + |ГДЕ + | НаборыГруппДоступа.Ссылка = &РазрешенныйПользователь"; + + Выборка = Запрос.Выполнить().Выбрать(); + Если Выборка.Следующий() Тогда + Состав.РазрешенныйНаборГруппДоступа = Выборка.РазрешенныйНаборГруппДоступа; + Состав.РазрешенныйНаборГруппПользователей = Выборка.РазрешенныйНаборГруппПользователей; + КонецЕсли; + + Возврат Состав; + +КонецФункции + // Для процедуры ОбновитьРазрешенныеНаборыВПараметрахСеанса. Процедура УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(Состав) @@ -22858,13 +24009,20 @@ КонецФункции // Для функции ДоступРазрешен и процедур ПроверитьДоступКОбъекту, ПроверитьДоступКНаборуЗаписей. -Процедура УстановитьРазрешенныеНаборыВПараметрыЗапроса(Запрос) +Процедура УстановитьРазрешенныеНаборыВПараметрыЗапроса(Запрос, Знач Пользователь = Неопределено) - Запрос.УстановитьПараметр("РазрешенныйНаборГруппДоступа", ПараметрыСеанса.РазрешенныйНаборГруппДоступа); - Запрос.УстановитьПараметр("РазрешенныйПустойНаборГруппДоступа", ПараметрыСеанса.РазрешенныйПустойНаборГруппДоступа); - Запрос.УстановитьПараметр("РазрешенныйНаборГруппПользователей", ПараметрыСеанса.РазрешенныйНаборГруппПользователей); - Запрос.УстановитьПараметр("РазрешенныйПользователь", ПараметрыСеанса.РазрешенныйПользователь); - Запрос.УстановитьПараметр("АвторизованныйПользователь", Пользователи.АвторизованныйПользователь()); + Если Пользователь = Неопределено Тогда + Параметры = ПараметрыСеанса; + Пользователь = Пользователи.АвторизованныйПользователь(); + Иначе + Параметры = РазрешенныеНаборыПараметровЗапроса(Пользователь); + КонецЕсли; + + Запрос.УстановитьПараметр("РазрешенныйНаборГруппДоступа", Параметры.РазрешенныйНаборГруппДоступа); + Запрос.УстановитьПараметр("РазрешенныйПустойНаборГруппДоступа", Параметры.РазрешенныйПустойНаборГруппДоступа); + Запрос.УстановитьПараметр("РазрешенныйНаборГруппПользователей", Параметры.РазрешенныйНаборГруппПользователей); + Запрос.УстановитьПараметр("РазрешенныйПользователь", Параметры.РазрешенныйПользователь); + Запрос.УстановитьПараметр("АвторизованныйПользователь", Пользователь); КонецПроцедуры @@ -22876,15 +24034,23 @@ // // Возвращаемое значение: // Структура: -// * ДляШаблоновВСеансахПользователей - см. НоваяСтруктураХранимыхПараметровШаблонов -// * ДляШаблоновВСеансахВнешнихПользователей - см. НоваяСтруктураХранимыхПараметровШаблонов +// * ДатаСоздания - Дата // * ДляЗаписиОбъектовИПроверкиПрав - см. НоваяСтруктураХранимыхПараметровЗаписи // * ДляОтчетаПоПравамДоступа - см. НоваяСтруктураХранимыхПараметровОтчета -// * ХешСумма - Строка -// * ДатаСоздания - Дата +// * ХешСуммаПостоянныхПараметров - Строка +// * ДляШаблоновВСеансахПользователей - см. НоваяСтруктураХранимыхПараметровШаблонов +// * ДляШаблоновВСеансахВнешнихПользователей - см. НоваяСтруктураХранимыхПараметровШаблонов +// * ВерсииПараметровШаблонов - см. НоваяСтруктураХранимыхВерсийПараметровШаблонов +// * ХешСуммаПараметровШаблонов - Строка - заполняется при записи после обновления +// параметра ВерсииПараметровШаблонов и заполнения свойства СпискиСОграничениемПоПолям +// параметров ДляШаблоновВСеансахПользователей, ДляШаблоновВСеансахВнешнихПользователей. +// * ХешСумма - Строка - заполняется при записи, +// вычисляется из хеш-сумм ХешСуммаПостоянныхПараметров и ХешСуммаПараметровШаблонов. // Функция ХранимыеПараметрыОграниченияДоступа(ОбщийКонтекст, ВерсииОграниченийСписков = Неопределено) + ДатаСоздания = ТекущаяДатаСеанса(); + Если ОбщийКонтекст = Неопределено Тогда ОбновитьПовторноИспользуемыеЗначения(); ОбщийКонтекст = ОбщийКонтекстРасчетаПараметровОграничения(); @@ -22930,11 +24096,13 @@ // Заполнение для пользователей. КонтекстДляПользователей = Новый Структура; КонтекстДляПользователей.Вставить("ДляВнешнихПользователей", Ложь); + КонтекстДляПользователей.Вставить("ДатаСоздания", ДатаСоздания); КонтекстДляПользователей.Вставить("ОбщийКонтекст", ОбщийКонтекст); КонтекстДляПользователей.Вставить("ДополнительныйКонтекст", ДополнительныйКонтекстДляПользователей); КонтекстДляПользователей.Вставить("ВедущиеСписки", Новый Соответствие); КонтекстДляПользователей.Вставить("ВерсииОграниченийСписков", Новый Соответствие); КонтекстДляПользователей.Вставить("ПараметрыШаблонов", НоваяСтруктураПараметровШаблонов()); + КонтекстДляПользователей.Вставить("ВерсииПараметровШаблонов", НовыеВерсииПараметровШаблонов()); КонтекстДляПользователей.Вставить("СпискиСДатой", СпискиСДатой); КонтекстДляПользователей.Вставить("ИдентификаторыСписков", ИдентификаторыСписков); КонтекстДляПользователей.Вставить("ВсеВидыОграниченийПрав", ВсеВидыОграниченийПрав); @@ -22944,11 +24112,13 @@ // Заполнение для внешних пользователей. КонтекстДляВнешнихПользователей = Новый Структура; КонтекстДляВнешнихПользователей.Вставить("ДляВнешнихПользователей", Истина); + КонтекстДляВнешнихПользователей.Вставить("ДатаСоздания", ДатаСоздания); КонтекстДляВнешнихПользователей.Вставить("ОбщийКонтекст", ОбщийКонтекст); КонтекстДляВнешнихПользователей.Вставить("ДополнительныйКонтекст", ДополнительныйКонтекстДляВнешнихПользователей); КонтекстДляВнешнихПользователей.Вставить("ВедущиеСписки", Новый Соответствие); КонтекстДляВнешнихПользователей.Вставить("ВерсииОграниченийСписков", Новый Соответствие); КонтекстДляВнешнихПользователей.Вставить("ПараметрыШаблонов", НоваяСтруктураПараметровШаблонов()); + КонтекстДляВнешнихПользователей.Вставить("ВерсииПараметровШаблонов", НовыеВерсииПараметровШаблонов()); КонтекстДляВнешнихПользователей.Вставить("СпискиСДатой", СпискиСДатой); КонтекстДляВнешнихПользователей.Вставить("ИдентификаторыСписков", ИдентификаторыСписков); КонтекстДляВнешнихПользователей.Вставить("ВсеВидыОграниченийПрав", ВсеВидыОграниченийПрав); @@ -23028,6 +24198,14 @@ ХранимыеПараметры.Вставить("ДляШаблоновВСеансахВнешнихПользователей", Новый ХранилищеЗначения(ОбщегоНазначения.ФиксированныеДанные(ХранимыеПараметрыШаблоновДляВнешнихПользователей))); + ХранимыхВерсииПараметровШаблонов = НоваяСтруктураХранимыхВерсийПараметровШаблонов(); + ХранимыхВерсииПараметровШаблонов.ДляПользователей.ВерсииПараметровШаблонов = + КонтекстДляПользователей.ВерсииПараметровШаблонов; + ХранимыхВерсииПараметровШаблонов.ДляВнешнихПользователей.ВерсииПараметровШаблонов = + КонтекстДляВнешнихПользователей.ВерсииПараметровШаблонов; + ХранимыеПараметры.Вставить("ВерсииПараметровШаблонов", + Новый ХранилищеЗначения(ХранимыхВерсииПараметровШаблонов)); + ХранимыеПараметры.Вставить("ДляЗаписиОбъектовИПроверкиПрав", Новый ХранилищеЗначения(ОбщегоНазначения.ФиксированныеДанные(ПараметрыЗаписи))); @@ -23048,8 +24226,8 @@ ХранимыеПараметры.Вставить("ДляОтчетаПоПравамДоступа", Новый ХранилищеЗначения(ОбщегоНазначения.ФиксированныеДанные(ХранимыеПараметрыОтчета))); - ХранимыеПараметры.Вставить("ХешСумма", Base64Строка(ХешированиеДанных.ХешСумма)); - ХранимыеПараметры.Вставить("ДатаСоздания", ТекущаяДатаСеанса()); + ХранимыеПараметры.Вставить("ХешСуммаПостоянныхПараметров", Base64Строка(ХешированиеДанных.ХешСумма)); + ХранимыеПараметры.Вставить("ДатаСоздания", ДатаСоздания); Если ОбщийКонтекст.Свойство("СтрокиВерсииХранимыхПараметров") Тогда СтрокиВерсийСписков.Сортировать("Список, ДляВнешнихПользователей"); @@ -23096,24 +24274,25 @@ // // Возвращаемое значение: // Структура: -// * ОписанияОграничений - Соответствие: +// * ОписанияОграничений - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - см. СокращенноеОписаниеОграничения -// * СвойстваОграниченияСписков - Соответствие: +// * СвойстваОграниченияСписков - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - см. НовыеСвойстваОграниченияСписка -// * СпискиСОграничениемПоВладельцу - Соответствие: +// * СпискиСОграничениемПоВладельцу - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - Булево - значение ПоВладельцу, кроме Неопределено. -// * СпискиСОтключеннымОграничением - Соответствие: +// * СпискиСОтключеннымОграничением - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - Булево - Истина -// * СпискиСОтключеннымОграничениемЧтения - Соответствие: +// * СпискиСОтключеннымОграничениемЧтения - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - Булево - Истина -// * СпискиСЗаписьюКлючейДляЗависимыхСписковБезКлючей - Соответствие: +// * СпискиСЗаписьюКлючейДляЗависимыхСписковБезКлючей - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - Булево - Истина +// * ОсновныеВариантыДоступа - см. НовыеОсновныеВариантыДоступа // Функция НовыйДополнительныйКонтекст() @@ -23124,6 +24303,7 @@ ДополнительныйКонтекст.Вставить("СпискиСОтключеннымОграничением", Новый Соответствие); ДополнительныйКонтекст.Вставить("СпискиСОтключеннымОграничениемЧтения", Новый Соответствие); ДополнительныйКонтекст.Вставить("СпискиСЗаписьюКлючейДляЗависимыхСписковБезКлючей", Неопределено); + ДополнительныйКонтекст.Вставить("ОсновныеВариантыДоступа", Новый Соответствие); Возврат ДополнительныйКонтекст; @@ -23133,18 +24313,19 @@ // // Возвращаемое значение: // Структура: -// * СвойстваОграниченияСписков - Соответствие: +// * СвойстваОграниченияСписков - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - см. НовыеСвойстваОграниченияСписка -// * СпискиСОтключеннымОграничением - Соответствие: +// * СпискиСОтключеннымОграничением - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - Булево - Истина -// * СпискиСОтключеннымОграничениемЧтения - Соответствие: +// * СпискиСОтключеннымОграничениемЧтения - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - Булево - Истина -// * СпискиСЗаписьюКлючейДляЗависимыхСписковБезКлючей - Соответствие: +// * СпискиСЗаписьюКлючейДляЗависимыхСписковБезКлючей - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - Булево - Истина +// * ОсновныеВариантыДоступа - см. НовыеОсновныеВариантыДоступа // Функция НовыйХранимыйДополнительныйКонтекст() @@ -23153,6 +24334,7 @@ ДополнительныйКонтекст.Вставить("СпискиСОтключеннымОграничением", Новый Соответствие); ДополнительныйКонтекст.Вставить("СпискиСОтключеннымОграничениемЧтения", Новый Соответствие); ДополнительныйКонтекст.Вставить("СпискиСЗаписьюКлючейДляЗависимыхСписковБезКлючей", Неопределено); + ДополнительныйКонтекст.Вставить("ОсновныеВариантыДоступа", Новый Соответствие); Возврат ДополнительныйКонтекст; @@ -23243,7 +24425,7 @@ Свойства.КлючиДоступаПользователей = Истина; УстановитьСвойствоОграничения(ПолноеИмя, "РассчитыватьПраваПользователей", Истина, Контекст); КонецЕсли; - Если Параметры.ИспользуетсяОграничениеПоВладельцу Тогда + Если Параметры.ПолеВладельца <> Неопределено Тогда УстановитьСвойствоОграничения(ПолноеИмя, "ПолеВладельца", Параметры.ПолеВладельца, Контекст); КонецЕсли; @@ -23271,7 +24453,7 @@ УстановитьСвойствоОграничения(ВедущийСписок, "РассчитыватьПраваПользователей", Истина, Контекст); КонецЕсли; - Если ПараметрыВедущего.ИспользуетсяОграничениеПоВладельцу Тогда + Если ПараметрыВедущего.ПолеВладельца <> Неопределено Тогда УстановитьСвойствоОграничения(ВедущийСписок, "ПолеВладельца", ПараметрыВедущего.ПолеВладельца, Контекст); КонецЕсли; @@ -23423,7 +24605,7 @@ Контекст.ВедущиеСписки.Вставить(ПолноеИмя, ВедущиеСписки); КонецЕсли; - НастроитьПараметрыШаблонов(СвойстваСписка, Контекст.ПараметрыШаблонов); + НастроитьПараметрыШаблонов(СвойстваСписка, Контекст); Если СвойстваСписка.Параметры.СписокСДатой Тогда Контекст.СпискиСДатой.Вставить(СвойстваСписка.ПолноеИмя, Истина); @@ -23552,7 +24734,8 @@ Продолжить; КонецЕсли; Если ЗависимыйСписокСОптимизацией Тогда - Если СвойстваВедущегоСписка.Параметры.ПолеВладельца <> Неопределено Тогда + Если СвойстваВедущегоСписка.Параметры.ПолеВладельца <> Неопределено + И Не СвойстваВедущегоСписка.Параметры.ПолеВладельца.Отключено Тогда Если СвойстваВедущегоСписка.Параметры.ТребуетсяОграничениеПоВладельцу Тогда ИмяПризнакаОптимизации = ?(Контекст.ДляВнешнихПользователей, "ПоВладельцуБезЗаписиКлючейДоступаДляВнешнихПользователей", "ПоВладельцуБезЗаписиКлючейДоступа"); @@ -23569,7 +24752,9 @@ ВызватьИсключение ТекстОшибки; Иначе СвойстваВедущегоСписка.ОграничениеПоВладельцуОтключено = Истина; - УстановитьСвойствоОграничения(СвойстваВедущегоСписка.ПолноеИмя, "ПолеВладельца", Неопределено, Контекст); + СвойстваВедущегоСписка.Параметры.ПолеВладельца.Отключено = Истина; + УстановитьСвойствоОграничения(СвойстваВедущегоСписка.ПолноеИмя, + "ПолеВладельца", СвойстваВедущегоСписка.Параметры.ПолеВладельца, Контекст); КонецЕсли; КонецЕсли; СвойстваВедущегоСписка.ЕстьЗависимыеСпискиБезЗаписиКлючейДоступа = Истина; @@ -23752,7 +24937,7 @@ // // Возвращаемое значение: // Структура: -// * ЗависимыеСписки - Соответствие: +// * ЗависимыеСписки - Соответствие из КлючИЗначение: // * Ключ - Строка - полное имя списка // * Значение - Булево - Истина // * ПоЗначениямПолей - Структура - похожая на см. ВедущийСписокПоПоЗначениямПолей @@ -23818,13 +25003,33 @@ КонецПроцедуры // Для процедуры ДобавитьХранимыеПараметрыОграниченияДляВидаПользователей. -Процедура НастроитьПараметрыШаблонов(СвойстваСписка, ПараметрыШаблонов) +Процедура НастроитьПараметрыШаблонов(СвойстваСписка, Контекст) Параметры = СвойстваСписка.Параметры; Если Параметры.ДоступЗапрещен Тогда Возврат; КонецЕсли; + Если Не Параметры.ИспользуетсяОграничениеПоВладельцу + И Не Параметры.ЭтоСсылочныйТип + И Не Параметры.ОграничениеОтключено Тогда + + ОпорныеПоля = Параметры.ОпорныеПоля; + Версия = НоваяВерсияПараметровШаблонов(); + Версия.ДатаСоздания = Контекст.ДатаСоздания; + Версия.Список = СвойстваСписка.ПолноеИмя; + Версия.ПоляСоединения = СтрСоединить(ОпорныеПоля.Используемые, ","); + Версия.ПоляШаблона = СтрСоединить(ОпорныеПоля.Все, ","); + Версия.ВариантДоступа = ОпорныеПоля.Используемые.Количество() * 2 + + ?(Контекст.ДляВнешнихПользователей, 1, 0); + Версии = Новый Массив; + Версии.Добавить(Версия); + КлючТаблицы = КлючТаблицы(СвойстваСписка.ПолноеИмя, Параметры.Контекст.ИмяКоллекцииТипа); + Контекст.ВерсииПараметровШаблонов.Вставить(КлючТаблицы, Версии); + КонецЕсли; + + ПараметрыШаблонов = Контекст.ПараметрыШаблонов; + Если Параметры.ОграничениеЧтенияОтключено Тогда ПараметрыШаблонов.СпискиСОтключеннымОграничениемЧтения = ПараметрыШаблонов.СпискиСОтключеннымОграничениемЧтения @@ -23832,12 +25037,20 @@ Возврат; КонецЕсли; - Если Параметры.ИспользуетсяОграничениеПоВладельцу Тогда - ПолеВладельца = Параметры.ПолеВладельца; // См. НовоеПолеВладельца - Поля = ":" + ПолеВладельца.Имя; + ПолеВладельцаОтключено = ""; + + Если Параметры.ИспользуетсяОграничениеПоВладельцу + Или Параметры.ЭтоСсылочныйТип Тогда - ИначеЕсли Параметры.ЭтоСсылочныйТип Тогда - Поля = ":"; + ПолеВладельца = Параметры.ПолеВладельца; // См. НовоеПолеВладельца + Если ПолеВладельца <> Неопределено Тогда + Поля = ":" + ПолеВладельца.Имя; + Если Не Параметры.ИспользуетсяОграничениеПоВладельцу Тогда + ПолеВладельцаОтключено = ";-"; + КонецЕсли; + Иначе + Поля = ":"; + КонецЕсли; Иначе ОпорныеПоля = Параметры.ОпорныеПоля; Если ЗначениеЗаполнено(Параметры.ИмяОтдельногоРегистраКлючей) Тогда @@ -23848,20 +25061,10 @@ КонецЕсли; Поля = ":[" + Поля + "]"; Номер = 1; - НомерИспользуемого = 1; Для Каждого ИмяПоля Из ОпорныеПоля.Все Цикл Поля = Поля + ":" + ИмяПоля; - Если ОпорныеПоля.Используемые.Найти(ИмяПоля) <> Неопределено Тогда - ПараметрыШаблонов.СпискиСОграничениемПоПолям = ПараметрыШаблонов.СпискиСОграничениемПоПолям - + СвойстваСписка.ПолноеИмя + ":Поле" + НомерИспользуемого + "=Поле" + Номер + ";" + Символы.ПС; - НомерИспользуемого = НомерИспользуемого + 1; - КонецЕсли; Номер = Номер + 1; КонецЦикла; - Для Номер = НомерИспользуемого По ОпорныеПоля.МаксимальноеКоличество Цикл - ПараметрыШаблонов.СпискиСОграничениемПоПолям = ПараметрыШаблонов.СпискиСОграничениемПоПолям - + СвойстваСписка.ПолноеИмя + ":Поле" + Номер + "=Null;" + Символы.ПС; - КонецЦикла; НомерПустогоПоля = ОпорныеПоля.Все.Количество() + 1; Для Номер = НомерПустогоПоля По ОпорныеПоля.МаксимальноДопустимоеКоличество Цикл Поля = Поля + ":"; @@ -23870,18 +25073,690 @@ ПараметрыШаблонов.СпискиСОграничениемЧерезКлючиДоступаГруппДоступа = ПараметрыШаблонов.СпискиСОграничениемЧерезКлючиДоступаГруппДоступа - + СвойстваСписка.ПолноеИмя + Поля + ";*" + Символы.ПС; + + СвойстваСписка.ПолноеИмя + Поля + ";*" + ПолеВладельцаОтключено + Символы.ПС; Если СвойстваСписка.КлючиДоступаПользователейИГруппДоступа Или СвойстваСписка.КлючиДоступаПользователей Тогда ПараметрыШаблонов.СпискиСОграничениемЧерезКлючиДоступаПользователей = ПараметрыШаблонов.СпискиСОграничениемЧерезКлючиДоступаПользователей - + СвойстваСписка.ПолноеИмя + Поля + ";+" + Символы.ПС; + + СвойстваСписка.ПолноеИмя + Поля + ";+" + ПолеВладельцаОтключено + Символы.ПС; КонецЕсли; КонецПроцедуры +// Для процедуры НастроитьПараметрыШаблонов. +// +// Параметры: +// ПолноеИмя - Строка +// ИмяКоллекцииТипа - Строка +// ТипыТаблицПоИменам - Соответствие +// +// Возвращаемое значение: +// Строка +// +Функция КлючТаблицы(ПолноеИмя, ИмяКоллекцииТипа = Неопределено, ТипыТаблицПоИменам = Неопределено) + + Если ИмяКоллекцииТипа = Неопределено Тогда + СвойстваТипа = ТипыТаблицПоИменам.Получить(ВРег(СтрРазделить(ПолноеИмя, ".", Ложь)[0])); + ИмяКоллекцииТипа = СвойстваТипа.ИмяКоллекции; + КонецЕсли; + + Если ИмяКоллекцииТипа = "РегистрыСведений" + Или ИмяКоллекцииТипа = "РегистрыНакопления" + Или ИмяКоллекцииТипа = "РегистрыБухгалтерии" + Или ИмяКоллекцииТипа = "РегистрыРасчета" Тогда + + ТипКлючаТаблицы = ТипКлючаЗаписиПоПолномуИмениМетаданных(ПолноеИмя); + + ИначеЕсли ИмяКоллекцииТипа = "Последовательности" Тогда + ТипКлючаТаблицы = ТипНабораЗаписейПоПолномуИмениМетаданных(ПолноеИмя); + + ИначеЕсли ИмяКоллекцииТипа = "ЖурналыДокументов" Тогда + ТипКлючаТаблицы = ТипМенеджераОбъектаПоПолномуИмениМетаданных(ПолноеИмя); + Иначе + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неизвестный нессылочный объект метаданных + |""%1"" + |с поддержкой ограничений на уровне записей.'"), ПолноеИмя); + ВызватьИсключение ТекстОшибки; + КонецЕсли; + + ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.SHA256); + СтрокаДляХеширования = СтрокаДанныхДляХеширования(ТипКлючаТаблицы); + ХешированиеДанных.Добавить(СтрокаДляХеширования); + + Возврат Base64Строка(ХешированиеДанных.ХешСумма); + +КонецФункции + +// Для процедуры ОписаниеНовойВерсииПараметровОграниченияДоступа. +Процедура ЗаполнитьПараметрыДляШаблонов(Запись, ПараметрыЗаписи, ОписаниеВерсии) + + Если ТипЗнч(ОписаниеВерсии.ДатаСоздания) = Тип("Дата") Тогда + СтараяДатаСоздания = ОписаниеВерсии.ДатаСоздания; + Иначе + СтараяДатаСоздания = '00010101'; + КонецЕсли; + + ХранимыеТекущиеВерсии = НоваяСтруктураХранимыхВерсийПараметровШаблонов(); + ТекущиеСвойстваОграниченияСписковДляПользователей = Новый Соответствие; + ТекущиеСвойстваОграниченияСписковДляВнешнихПользователей = Новый Соответствие; + + Если ТипЗнч(ОписаниеВерсии.ВерсииПараметровШаблонов) = Тип("ХранилищеЗначения") Тогда + СодержимоеХранилища = ОписаниеВерсии.ВерсииПараметровШаблонов.Получить(); + Если ЗначениеЗаполнено(СодержимоеХранилища) Тогда + ХранимыеТекущиеВерсии = СтруктураХранимыхВерсийПараметровШаблонов(СодержимоеХранилища); + Если ХранимыеТекущиеВерсии.ВерсияСтруктурыВерсий = ВерсияСтруктурыВерсийПараметровШаблонов() Тогда + ТекущиеСвойстваОграниченияСписковДляПользователей = Неопределено; + ТекущиеСвойстваОграниченияСписковДляВнешнихПользователей = Неопределено; + Иначе + ХранимыеТекущиеВерсии = НоваяСтруктураХранимыхВерсийПараметровШаблонов(); + КонецЕсли; + ИначеЕсли ТипЗнч(ОписаниеВерсии.Версия) = Тип("Число") Тогда + ТекущиеХранимыеПараметры = ВерсияПараметров(ОписаниеВерсии.Версия, Ложь, Ложь); + Если ТипЗнч(ТекущиеХранимыеПараметры.ДляЗаписиОбъектовИПроверкиПрав) = Тип("ХранилищеЗначения") Тогда + ТекущиеПараметрыЗаписи = СтруктураХранимыхПараметровЗаписи( + ТекущиеХранимыеПараметры.ДляЗаписиОбъектовИПроверкиПрав.Получить()); + Если ТекущиеПараметрыЗаписи.ВерсияСтруктурыКэша = ВерсияСтруктурыКэша() + Или ТекущиеПараметрыЗаписи.ВерсияСтруктурыКэша = "20" Тогда + ТекущиеСвойстваОграниченияСписковДляПользователей = + ТекущиеПараметрыЗаписи.ДополнительныйКонтекст.ДляПользователей.СвойстваОграниченияСписков; + ТекущиеСвойстваОграниченияСписковДляВнешнихПользователей = + ТекущиеПараметрыЗаписи.ДополнительныйКонтекст.ДляВнешнихПользователей.СвойстваОграниченияСписков; + КонецЕсли; + КонецЕсли; + КонецЕсли; + КонецЕсли; + + Если ПараметрыЗаписи.Свойство("СтрокиВерсии") Тогда + СтрокиВерсии = ПараметрыЗаписи.СтрокиВерсии; + Иначе + СтрокиВерсии = Новый Структура; + КонецЕсли; + СтрокиВерсии.Вставить("СпискиСОграничениемПоПолямВСеансахПользователей"); + СтрокиВерсии.Вставить("СпискиСОграничениемПоПолямВСеансахВнешнихПользователей"); + + Если ТекущиеСвойстваОграниченияСписковДляПользователей <> Неопределено Тогда + НовыеПараметрыЗаписи = ПараметрыЗаписи.ХранимыеПараметры.ДляЗаписиОбъектовИПроверкиПрав.Получить(); + НовыеСвойстваОграниченияСписковДляПользователей = + НовыеПараметрыЗаписи.ДополнительныйКонтекст.ДляПользователей.СвойстваОграниченияСписков; + НовыеСвойстваОграниченияСписковДляВнешнихПользователей = + НовыеПараметрыЗаписи.ДополнительныйКонтекст.ДляВнешнихПользователей.СвойстваОграниченияСписков; + КонецЕсли; + + ХранимыеНовыеВерсии = ПараметрыЗаписи.ХранимыеПараметры.ВерсииПараметровШаблонов.Получить(); + ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.SHA256); + + Параметры = НоваяСтруктураДляЗаполненияПараметровШаблонов(); + Если ТипЗнч(ПараметрыЗаписи.СпискиСУстаревшимиВариантамиДоступа) = Тип("Массив") Тогда + Параметры.Вставить("ОтключитьДополнительныеВариантыДоступа"); + Иначе + ПараметрыЗаписи.СпискиСУстаревшимиВариантамиДоступа = Новый Массив; + КонецЕсли; + Параметры.Вставить("СтараяДатаСоздания", СтараяДатаСоздания); + Параметры.Вставить("ХешированиеДанных", ХешированиеДанных); + Параметры.Вставить("СпискиСНовымОсновнымВариантомДоступа", ПараметрыЗаписи.СпискиСНовымОсновнымВариантомДоступа); + Параметры.Вставить("СпискиСУстаревшимиВариантамиДоступа", ПараметрыЗаписи.СпискиСУстаревшимиВариантамиДоступа); + + Параметры.Вставить("ХранимыеТекущиеВерсии", ХранимыеТекущиеВерсии.ДляПользователей); + Параметры.Вставить("НовыеВерсииПолейСписков", ХранимыеНовыеВерсии.ДляПользователей.ВерсииПараметровШаблонов); + Параметры.Вставить("ТекущиеСвойстваОграниченияСписков", ТекущиеСвойстваОграниченияСписковДляПользователей); + Параметры.Вставить("НовыеСвойстваОграниченияСписков", НовыеСвойстваОграниченияСписковДляПользователей); + + ЗаполнитьПараметрыДляШаблоновДляВидаПользователей(Параметры, + Запись.ДляШаблоновВСеансахПользователей, + СтрокиВерсии.СпискиСОграничениемПоПолямВСеансахПользователей); + + Параметры.ХранимыеТекущиеВерсии = ХранимыеТекущиеВерсии.ДляВнешнихПользователей; + Параметры.НовыеВерсииПолейСписков = ХранимыеНовыеВерсии.ДляВнешнихПользователей.ВерсииПараметровШаблонов; + Параметры.ТекущиеСвойстваОграниченияСписков = ТекущиеСвойстваОграниченияСписковДляВнешнихПользователей; + Параметры.НовыеСвойстваОграниченияСписков = НовыеСвойстваОграниченияСписковДляВнешнихПользователей; + + ЗаполнитьПараметрыДляШаблоновДляВидаПользователей(Параметры, + Запись.ДляШаблоновВСеансахВнешнихПользователей, + СтрокиВерсии.СпискиСОграничениемПоПолямВСеансахВнешнихПользователей); + + Запись.ХешСуммаПараметровШаблонов = Base64Строка(ХешированиеДанных.ХешСумма); + Запись.ВерсииПараметровШаблонов = Новый ХранилищеЗначения(ХранимыеТекущиеВерсии); + + ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.SHA256); + ХешированиеДанных.Добавить(Запись.ХешСуммаПостоянныхПараметров); + ХешированиеДанных.Добавить(Запись.ХешСуммаПараметровШаблонов); + Запись.ХешСумма = Base64Строка(ХешированиеДанных.ХешСумма); + +КонецПроцедуры + +// Для процедуры ЗаполнитьПараметрыДляШаблонов. +// +// Возвращаемое значение: +// Структура: +// * СтараяДатаСоздания - Дата +// * ХешированиеДанных - ХешированиеДанных +// * СпискиСНовымОсновнымВариантомДоступа - Массив из Строка +// * СпискиСУстаревшимиВариантамиДоступа - Массив из Строка +// * ХранимыеТекущиеВерсии - Структура: +// ** ВерсииПараметровШаблонов - см. НовыеВерсииПараметровШаблонов +// ** ОсновныеВариантыДоступа - см. НовыеОсновныеВариантыДоступа +// * НовыеВерсииПолейСписков - см. НовыеВерсииПараметровШаблонов +// * ТекущиеСвойстваОграниченияСписков - Соответствие из КлючИЗначение: +// ** Ключ - Строка - полное имя списка +// ** Значение - см. НовыеСвойстваОграниченияСписка +// * НовыеСвойстваОграниченияСписков - Соответствие из КлючИЗначение: +// ** Ключ - Строка - полное имя списка +// ** Значение - см. НовыеСвойстваОграниченияСписка +// +Функция НоваяСтруктураДляЗаполненияПараметровШаблонов() + + Возврат Новый Структура; + +КонецФункции + +// Для процедуры ЗаполнитьПараметрыДляШаблонов. +Процедура ЗаполнитьПараметрыДляШаблоновДляВидаПользователей(Параметры, + ХранилищеДляШаблоновВСеансах, СпискиСОграничениемПоПолям) + + МаксимальноеКоличествоВерсий = МаксимальноеКоличествоВерсийВВариантеДоступа(); + НастройкиОграниченийСписков = Новый СписокЗначений; + ТекущиеВерсииПолейСписков = Параметры.ХранимыеТекущиеВерсии.ВерсииПараметровШаблонов; + + Если Параметры.ТекущиеСвойстваОграниченияСписков <> Неопределено Тогда + ВариантыДоступаВБазеДанных = ВариантыДоступаВБазеДанных(Параметры); + Для Каждого КлючИЗначение Из Параметры.НовыеВерсииПолейСписков Цикл + ТекущиеВерсииПолейСписка = Новый Массив; + ДобавитьСуществующиеВерсииПолейСписка(ТекущиеВерсииПолейСписка, + КлючИЗначение.Значение[0], ВариантыДоступаВБазеДанных, Параметры); + Если ЗначениеЗаполнено(ТекущиеВерсииПолейСписка) Тогда + ТекущиеВерсииПолейСписков.Вставить(КлючИЗначение.Ключ, ТекущиеВерсииПолейСписка); + КонецЕсли; + КонецЦикла; + КонецЕсли; + + ВозможноНеиспользуемыеВерсииПолейСписков = Новый Массив; + + Для Каждого КлючИЗначение Из ТекущиеВерсииПолейСписков Цикл + ТекущиеВерсииПолейСписка = КлючИЗначение.Значение; + НовыеВерсииПолейСписка = Параметры.НовыеВерсииПолейСписков.Получить(КлючИЗначение.Ключ); + + Если НовыеВерсииПолейСписка = Неопределено Тогда + ИспользованиеОтключалось = Ложь; + Для Каждого Версия Из ТекущиеВерсииПолейСписка Цикл + Если Версия.Используется Тогда + Версия.Используется = Ложь; + ИспользованиеОтключалось = Истина; + КонецЕсли; + КонецЦикла; + Если ИспользованиеОтключалось И ТекущиеВерсииПолейСписка.Количество() > 0 Тогда + ПолноеИмя = ТекущиеВерсииПолейСписка[0].Список; + Если Метаданные.НайтиПоПолномуИмени(ПолноеИмя) <> Неопределено Тогда + Параметры.СпискиСУстаревшимиВариантамиДоступа.Добавить( + ТекущиеВерсииПолейСписка[0].Список); + КонецЕсли; + КонецЕсли; + Продолжить; + КонецЕсли; + + НоваяВерсия = НовыеВерсииПолейСписка[0]; + НоваяВерсияСуществует = Ложь; + Для Каждого Версия Из ТекущиеВерсииПолейСписка Цикл + Если ВРег(Версия.ПоляСоединения) = ВРег(НоваяВерсия.ПоляСоединения) + И Версия.ВариантДоступа > 1 Тогда + НоваяВерсияСуществует = Истина; + Прервать; + КонецЕсли; + КонецЦикла; + + ОсновнаяВерсияИзменена = Истина; + Если НоваяВерсияСуществует Тогда + Индекс = ТекущиеВерсииПолейСписка.Найти(Версия); + Если Индекс > 0 Тогда + ТекущиеВерсииПолейСписка.Удалить(Индекс); + ТекущиеВерсииПолейСписка.Вставить(0, Версия); + Иначе + ОсновнаяВерсияИзменена = Ложь; + КонецЕсли; + ЗаполнитьЗначенияСвойств(Версия, НоваяВерсия,, "ВариантДоступа"); + Иначе + ИспользуемыеНомераВерсий = Новый Массив(МаксимальноеКоличествоВерсий); + СамаяСтараяВерсия = Неопределено; + УдаляемыеВерсии = Новый Массив; + Для Каждого Версия Из ТекущиеВерсииПолейСписка Цикл + НомерВерсии = Цел(Версия.ВариантДоступа / 64); + Если НоваяВерсия.ВариантДоступа <> (Версия.ВариантДоступа - НомерВерсии * 64) Тогда + Продолжить; + КонецЕсли; + Если НомерВерсии < МаксимальноеКоличествоВерсий Тогда + ИспользуемыеНомераВерсий[НомерВерсии] = Версия; + СамаяСтараяВерсия = Версия; + Иначе + УдаляемыеВерсии.Добавить(Версия); + КонецЕсли; + КонецЦикла; + Для Индекс = 0 По МаксимальноеКоличествоВерсий - 1 Цикл + Если ИспользуемыеНомераВерсий[Индекс] = Неопределено Тогда + Прервать; + КонецЕсли; + КонецЦикла; + Если Индекс >= МаксимальноеКоличествоВерсий Тогда + УдаляемыеВерсии.Добавить(СамаяСтараяВерсия); + НоваяВерсия.ВариантДоступа = НоваяВерсия.ВариантДоступа + + ИспользуемыеНомераВерсий.Найти(СамаяСтараяВерсия) * 64; + Иначе + НоваяВерсия.ВариантДоступа = НоваяВерсия.ВариантДоступа + Индекс * 64; + КонецЕсли; + Для Каждого УдаляемаяВерсия Из УдаляемыеВерсии Цикл + ТекущиеВерсииПолейСписка.Удалить(ТекущиеВерсииПолейСписка.Найти(УдаляемаяВерсия)); + КонецЦикла; + ТекущиеВерсииПолейСписка.Вставить(0, НоваяВерсия); + КонецЕсли; + + Если ОсновнаяВерсияИзменена Тогда + Параметры.СпискиСНовымОсновнымВариантомДоступа.Добавить( + ТекущиеВерсииПолейСписка[0].Список); + КонецЕсли; + + ОбновитьИспользованиеВерсийПолейСписка(ТекущиеВерсииПолейСписка, ОсновнаяВерсияИзменена, + ВозможноНеиспользуемыеВерсииПолейСписков, Параметры); + КонецЦикла; + + ОтключитьИспользованиеВерсийКромеОсновнойДляОбновленныхСписков( + ВозможноНеиспользуемыеВерсииПолейСписков, Параметры); + + ОсновныеВариантыДоступа = Параметры.ХранимыеТекущиеВерсии.ОсновныеВариантыДоступа; + + Для Каждого КлючИЗначение Из Параметры.НовыеВерсииПолейСписков Цикл + ТекущиеВерсииПолейСписка = ТекущиеВерсииПолейСписков.Получить(КлючИЗначение.Ключ); + Если ТекущиеВерсииПолейСписка = Неопределено Тогда + ТекущиеВерсииПолейСписка = КлючИЗначение.Значение; + ТекущиеВерсииПолейСписков.Вставить(КлючИЗначение.Ключ, ТекущиеВерсииПолейСписка); + Параметры.СпискиСНовымОсновнымВариантомДоступа.Добавить( + ТекущиеВерсииПолейСписка[0].Список); + КонецЕсли; + ИспользуемыеВариантыДоступа = Новый Массив; + Для Каждого ВерсияПолейСписка Из ТекущиеВерсииПолейСписка Цикл + Если ВерсияПолейСписка.Используется Тогда + ИспользуемыйВариантДоступа = НовыйИспользуемыйВариантДоступа(); + ИспользуемыйВариантДоступа.ВариантДоступа = ВерсияПолейСписка.ВариантДоступа; + ИспользуемыйВариантДоступа.ПоляСоединения = ВерсияПолейСписка.ПоляСоединения; + ИспользуемыеВариантыДоступа.Добавить(Новый ФиксированнаяСтруктура(ИспользуемыйВариантДоступа)); + КонецЕсли; + КонецЦикла; + ОсновныеВариантыДоступа.Вставить(ТекущиеВерсииПолейСписка[0].Список, + Новый ФиксированныйМассив(ИспользуемыеВариантыДоступа)); + КонецЦикла; + + Для Каждого КлючИЗначение Из ТекущиеВерсииПолейСписков Цикл + ДобавитьПоляОграниченияСписка(НастройкиОграниченийСписков, КлючИЗначение.Значение); + КонецЦикла; + + НастройкиОграниченийСписков.СортироватьПоПредставлению(); + СпискиСОграничениемПоПолям = СтрСоединить(НастройкиОграниченийСписков.ВыгрузитьЗначения(), Символы.ПС); + Параметры.ХешированиеДанных.Добавить(СпискиСОграничениемПоПолям); + + ХранимыеПараметрыШаблонов = Новый Структура(ХранилищеДляШаблоновВСеансах.Получить()); + ПараметрыШаблонов = Новый Структура(ХранимыеПараметрыШаблонов.ПараметрыШаблонов); + ПараметрыШаблонов.СпискиСОграничениемПоПолям = СпискиСОграничениемПоПолям; + ХранимыеПараметрыШаблонов.ПараметрыШаблонов = Новый ФиксированнаяСтруктура(ПараметрыШаблонов); + ХранилищеДляШаблоновВСеансах = Новый ХранилищеЗначения( + Новый ФиксированнаяСтруктура(ХранимыеПараметрыШаблонов)); + +КонецПроцедуры + +// Для процедуры ЗаполнитьПараметрыДляШаблоновДляВидаПользователей. +Процедура ОбновитьИспользованиеВерсийПолейСписка(ТекущиеВерсииПолейСписка, ОсновнаяВерсияИзменена, + ВозможноНеиспользуемыеВерсииПолейСписков, Параметры) + + МаксимальноеКоличествоВариантовСоединений = МаксимальноеКоличествоВариантовСоединений(); + НоваяВерсия = ТекущиеВерсииПолейСписка[0]; + ПоляШаблона = СтрРазделить(ВРег(НоваяВерсия.ПоляШаблона), ",", Ложь); + + КоличествоИспользуемыхВерсий = 0; + ИспользованиеОтключалось = Ложь; + + Для Каждого ТекущаяВерсия Из ТекущиеВерсииПолейСписка Цикл + Если Не ТекущаяВерсия.Используется Тогда + Продолжить; + КонецЕсли; + Если ВРег(ТекущаяВерсия.ПоляШаблона) <> ВРег(НоваяВерсия.ПоляШаблона) Тогда + ИменаПолей = СтрРазделить(ТекущаяВерсия.ПоляСоединения, ",", Ложь); + Для Каждого ИмяПоля Из ИменаПолей Цикл + Если ПоляШаблона.Найти(ВРег(ИмяПоля)) = Неопределено Тогда + ТекущаяВерсия.Используется = Ложь; + ИспользованиеОтключалось = Истина; + Прервать; + КонецЕсли; + КонецЦикла; + КонецЕсли; + Если Не ТекущаяВерсия.Используется Тогда + Продолжить; + КонецЕсли; + Если КоличествоИспользуемыхВерсий >= МаксимальноеКоличествоВариантовСоединений Тогда + ТекущаяВерсия.Используется = Ложь; + ИспользованиеОтключалось = Истина; + Иначе + КоличествоИспользуемыхВерсий = КоличествоИспользуемыхВерсий + 1; + КонецЕсли; + КонецЦикла; + + Если ИспользованиеОтключалось Тогда + Параметры.СпискиСУстаревшимиВариантамиДоступа.Добавить( + ТекущиеВерсииПолейСписка[0].Список); + КонецЕсли; + + Если Не ОсновнаяВерсияИзменена И КоличествоИспользуемыхВерсий > 1 Тогда + ВозможноНеиспользуемыеВерсииПолейСписков.Добавить(ТекущиеВерсииПолейСписка); + КонецЕсли; + +КонецПроцедуры + +// Для процедуры ЗаполнитьПараметрыДляШаблоновДляВидаПользователей. +Процедура ДобавитьПоляОграниченияСписка(СпискиСОграничениемПоПолям, ТекущиеВерсииПолейСписка) + + НоваяВерсия = ТекущиеВерсииПолейСписка[0]; + ПолноеИмя = НоваяВерсия.Список; + ПоляШаблона = СтрРазделить(ВРег(НоваяВерсия.ПоляШаблона), ",", Ложь); + НастройкиОграниченийСписка = Новый Массив; + МаксимальноеКоличествоВариантов = МаксимальноеКоличествоВариантовСоединений(); + + НомерВарианта = 1; + Для Каждого Версия Из ТекущиеВерсииПолейСписка Цикл + Если Не Версия.Используется Тогда + Прервать; + КонецЕсли; + + НомерПоляСоединения = 1; + ИменаПолей = СтрРазделить(Версия.ПоляСоединения, ",", Ложь); + Для Каждого ИмяПоля Из ИменаПолей Цикл + НомерПоляШаблона = ПоляШаблона.Найти(ВРег(ИмяПоля)) + 1; + НастройкиОграниченийСписка.Добавить(СтрШаблон("%1:%2%3=%4;", + ПолноеИмя, + "Вариант" + XMLСтрока(НомерВарианта), + "Поле" + XMLСтрока(НомерПоляСоединения), + "Поле" + XMLСтрока(НомерПоляШаблона))); + НомерПоляСоединения = НомерПоляСоединения + 1; + КонецЦикла; + + Если Цел(Версия.ВариантДоступа / 2) = 0 Тогда + НастройкиОграниченийСписка.Добавить(СтрШаблон("%1:%2%3=0;", + ПолноеИмя, + "Вариант" + XMLСтрока(НомерВарианта), + "Версия" + XMLСтрока(НомерВарианта))); + Иначе + Остаток = Цел(Версия.ВариантДоступа / 64); + НомерБита = 0; + Пока Остаток > 0 Цикл + НовыйОстаток = Цел(Остаток / 2); + Если Остаток - НовыйОстаток * 2 > 0 Тогда + НастройкиОграниченийСписка.Добавить(СтрШаблон("%1:%2%3=1;", + ПолноеИмя, + "Версия" + XMLСтрока(НомерВарианта), + "Бит" + XMLСтрока(НомерБита))); + КонецЕсли; + Остаток = НовыйОстаток; + НомерБита = НомерБита + 1; + КонецЦикла; + КонецЕсли; + + НомерВарианта = НомерВарианта + 1; + Если НомерВарианта > МаксимальноеКоличествоВариантов Тогда + Прервать; + КонецЕсли; + КонецЦикла; + + СпискиСОграничениемПоПолям.Добавить( + СтрСоединить(НастройкиОграниченийСписка, Символы.ПС), ПолноеИмя); + +КонецПроцедуры + +// Для процедуры ЗаполнитьПараметрыДляШаблоновДляВидаПользователей. +Функция ВариантыДоступаВБазеДанных(Параметры) + + Если Не ЗначениеЗаполнено(Параметры.НовыеВерсииПолейСписков) Тогда + Возврат Новый Соответствие; + КонецЕсли; + + ТекстОбщегоЗапроса = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | ТекущаяТаблица.Регистр КАК Регистр, + | ТекущаяТаблица.ВариантДоступа КАК ВариантДоступа + |ИЗ + | РегистрСведений.КлючиДоступаКРегистрам КАК ТекущаяТаблица + |ГДЕ + | ВЫБОР + | КОГДА ТекущаяТаблица.ВариантДоступа = 0 + | ТОГДА ЛОЖЬ + | ИНАЧЕ ТекущаяТаблица.ВариантДоступа - (ВЫРАЗИТЬ(ТекущаяТаблица.ВариантДоступа / 2 - 0.5 КАК ЧИСЛО(15, 0))) * 2 = 1 + | КОНЕЦ = &ДляВнешнихПользователей + | + |УПОРЯДОЧИТЬ ПО + | Регистр, + | ВариантДоступа"; + + ТекстыЗапросов = Новый Массив; + ТекстыЗапросов.Добавить(ТекстОбщегоЗапроса); + + ПолныеИмена = Новый Массив; + ИндексыРезультатовЗапроса = Новый Соответствие; + + Для Каждого КлючИЗначение Из Параметры.НовыеВерсииПолейСписков Цикл + Список = КлючИЗначение.Значение[0].Список; + СвойстваСписка = Параметры.НовыеСвойстваОграниченияСписков.Получить(Список); + Если СвойстваСписка = Неопределено + Или Не ЗначениеЗаполнено(СвойстваСписка.ОпорныеПоля) Тогда + Продолжить; + КонецЕсли; + ПолныеИмена.Добавить(Список); + Если ЗначениеЗаполнено(СвойстваСписка.ИмяОтдельногоРегистраКлючей) Тогда + ИндексыРезультатовЗапроса.Вставить(Список, ТекстыЗапросов.Количество()); + ТекстЗапроса = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | ТекущаяТаблица.ВариантДоступа КАК ВариантДоступа + |ИЗ + | &ТекущаяТаблица КАК ТекущаяТаблица + |ГДЕ + | ВЫБОР + | КОГДА ТекущаяТаблица.ВариантДоступа = 0 + | ТОГДА ЛОЖЬ + | ИНАЧЕ ТекущаяТаблица.ВариантДоступа - (ВЫРАЗИТЬ(ТекущаяТаблица.ВариантДоступа / 2 - 0.5 КАК ЧИСЛО(15, 0))) * 2 = 1 + | КОНЕЦ = &ДляВнешнихПользователей + | + |УПОРЯДОЧИТЬ ПО + | ВариантДоступа"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекущаяТаблица", + "РегистрСведений." + СвойстваСписка.ИмяОтдельногоРегистраКлючей); + ТекстыЗапросов.Добавить(ТекстЗапроса); + Иначе + ИндексыРезультатовЗапроса.Вставить(Список, 0); + КонецЕсли; + КонецЦикла; + + ИдентификаторыСписков = ОбщегоНазначения.ИдентификаторыОбъектовМетаданных(ПолныеИмена, Ложь); + + Запрос = Новый Запрос; + ВариантДоступа = КлючИЗначение.Значение[0].ВариантДоступа; + Запрос.УстановитьПараметр("ДляВнешнихПользователей", ВариантДоступа - Цел(ВариантДоступа / 2) * 2 > 0); + Запрос.Текст = СтрСоединить(ТекстыЗапросов, ОбщегоНазначения.РазделительПакетаЗапросов()); + РезультатыЗапроса = Запрос.ВыполнитьПакет(); + Выгрузка = РезультатыЗапроса[0].Выгрузить(); + Выгрузка.Индексы.Добавить("Регистр"); + + Результат = Новый Соответствие; + + Для Каждого КлючИЗначение Из ИндексыРезультатовЗапроса Цикл + Если КлючИЗначение.Значение = 0 Тогда + ИдентификаторСписка = ИдентификаторыСписков.Получить(КлючИЗначение.Ключ); + НайденныеСтроки = Выгрузка.НайтиСтроки(Новый Структура("Регистр", ИдентификаторСписка)); + ВариантыДоступа = Новый Массив; + Для Каждого НайденнаяСтрока Из НайденныеСтроки Цикл + ВариантыДоступа.Добавить(НайденнаяСтрока.ВариантДоступа); + КонецЦикла; + Результат.Вставить(КлючИЗначение.Ключ, ВариантыДоступа); + Иначе + Результат.Вставить(КлючИЗначение.Ключ, + РезультатыЗапроса[КлючИЗначение.Значение].Выгрузить().ВыгрузитьКолонку("ВариантДоступа")); + КонецЕсли; + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Для процедуры ЗаполнитьПараметрыДляШаблоновДляВидаПользователей. +Процедура ОтключитьИспользованиеВерсийКромеОсновнойДляОбновленныхСписков( + ВозможноНеиспользуемыеВерсииПолейСписков, Параметры) + + Если Не ЗначениеЗаполнено(ВозможноНеиспользуемыеВерсииПолейСписков) + Или Не Параметры.Свойство("ОтключитьДополнительныеВариантыДоступа") Тогда + Возврат; + КонецЕсли; + + Списки = Новый Массив; + ВерсииПолейСписков = Новый Соответствие; + Для Каждого ВерсииПолейСписка Из ВозможноНеиспользуемыеВерсииПолейСписков Цикл + Список = ВерсииПолейСписка[0].Список; + Списки.Добавить(Список); + ВерсииПолейСписков.Вставить(Список, ВерсииПолейСписка); + КонецЦикла; + + ДляВнешнихПользователей = ВерсииПолейСписка[0].ВариантДоступа + - Цел(ВерсииПолейСписка[0].ВариантДоступа / 2) * 2 = 1; + + ТипыИдентификаторов = Новый Массив; + ТипыИдентификаторов.Добавить(Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных")); + ТипыИдентификаторов.Добавить(Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений")); + + ИдентификаторыСписков = Новый ТаблицаЗначений; + ИдентификаторыСписков.Колонки.Добавить("ИдентификаторСписка", Новый ОписаниеТипов(ТипыИдентификаторов)); + + СпискиПоИдентификаторам = Новый Соответствие; + ИдентификаторыОбъектов = ОбщегоНазначения.ИдентификаторыОбъектовМетаданных(Списки, Ложь); + + Для Каждого КлючИЗначение Из ИдентификаторыОбъектов Цикл + Если ЗначениеЗаполнено(КлючИЗначение.Значение) Тогда + ИдентификаторыСписков.Добавить().ИдентификаторСписка = КлючИЗначение.Значение; + СпискиПоИдентификаторам.Вставить(КлючИЗначение.Значение, КлючИЗначение.Ключ); + КонецЕсли; + КонецЦикла; + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ДляВнешнихПользователей", ДляВнешнихПользователей); + Запрос.УстановитьПараметр("ИдентификаторыСписков", ИдентификаторыСписков); + Запрос.Текст = + "ВЫБРАТЬ + | ИдентификаторыСписков.ИдентификаторСписка КАК ИдентификаторСписка + |ПОМЕСТИТЬ ИдентификаторыСписков + |ИЗ + | &ИдентификаторыСписков КАК ИдентификаторыСписков + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ИдентификаторыСписков.ИдентификаторСписка КАК ИдентификаторСписка + |ИЗ + | ИдентификаторыСписков КАК ИдентификаторыСписков + |ГДЕ + | НЕ ИСТИНА В + | (ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА + | ИЗ + | РегистрСведений.ОбновлениеКлючейДоступаКДанным КАК ОбновлениеКлючейДоступаКДанным + | ГДЕ + | ОбновлениеКлючейДоступаКДанным.Список = ИдентификаторыСписков.ИдентификаторСписка + | И ОбновлениеКлючейДоступаКДанным.ДляВнешнихПользователей = &ДляВнешнихПользователей + | И ОбновлениеКлючейДоступаКДанным.РазмерЗадания = 3)"; + + Выборка = Запрос.Выполнить().Выбрать(); + Пока Выборка.Следующий() Цикл + Список = СпискиПоИдентификаторам.Получить(Выборка.ИдентификаторСписка); + ВерсииПолейСписка = ВерсииПолейСписков.Получить(Список); + ОсновнаяВерсия = ВерсииПолейСписка[0]; + Для Каждого ВерсияПолейСписка Из ВерсииПолейСписка Цикл + Если ВерсияПолейСписка = ОсновнаяВерсия Тогда + Продолжить; + КонецЕсли; + Если ВерсияПолейСписка.Используется Тогда + ВерсияПолейСписка.Используется = Ложь; + Параметры.СпискиСУстаревшимиВариантамиДоступа.Добавить(Список); + КонецЕсли; + КонецЦикла; + КонецЦикла; + +КонецПроцедуры + +// Для процедуры ЗаполнитьПараметрыДляШаблоновДляВидаПользователей. +Процедура ДобавитьСуществующиеВерсииПолейСписка(ТекущиеВерсииПолейСписка, НоваяВерсия, + ВариантыДоступаВБазеДанных, Параметры) + + ВариантыДоступа = ВариантыДоступаВБазеДанных.Получить(НоваяВерсия.Список); + Если Не ЗначениеЗаполнено(ВариантыДоступа) Тогда + Возврат; + КонецЕсли; + + ТекущиеСвойстваСписка = Параметры.ТекущиеСвойстваОграниченияСписков.Получить(НоваяВерсия.Список); + ОпорныеПоля = ?(ТекущиеСвойстваСписка = Неопределено, Неопределено, ТекущиеСвойстваСписка.ОпорныеПоля); + Если ЗначениеЗаполнено(Параметры.СтараяДатаСоздания) И ЗначениеЗаполнено(ОпорныеПоля) Тогда + ТребуемыйВариантДоступа = ОпорныеПоля.Используемые.Количество() * 2 + + НоваяВерсия.ВариантДоступа - Цел(НоваяВерсия.ВариантДоступа / 2) * 2; + Иначе + ТребуемыйВариантДоступа = НоваяВерсия.ВариантДоступа; + КонецЕсли; + + Если ВариантыДоступа.Количество() = 1 + И (Не ЗначениеЗаполнено(Параметры.СтараяДатаСоздания) + Или ЗначениеЗаполнено(ОпорныеПоля)) + И ( ВариантыДоступа[0] < 2 + Или ВариантыДоступа[0] - Цел(ВариантыДоступа[0] / 64) * 64 = ТребуемыйВариантДоступа) Тогда + + // Переход с версий конфигурации без поля ВариантДоступа или восстановление + // либо после очистки регистра ПараметрыОграниченияДоступа, + // либо после изменения номера в функции ВерсияСтруктурыВерсийПараметровШаблонов. + Если Не ЗначениеЗаполнено(Параметры.СтараяДатаСоздания) Тогда + ПоляСоединения = НоваяВерсия.ПоляСоединения; + ПоляШаблона = НоваяВерсия.ПоляСоединения; + Иначе + ПоляСоединения = СтрСоединить(ОпорныеПоля.Используемые, ","); + ПоляШаблона = СтрСоединить(ОпорныеПоля.Все, ","); + КонецЕсли; + + ПредыдущаяВерсия = НоваяВерсияПараметровШаблонов(); + ПредыдущаяВерсия.ДатаСоздания = Параметры.СтараяДатаСоздания; + ПредыдущаяВерсия.Список = НоваяВерсия.Список; + ПредыдущаяВерсия.ПоляСоединения = ПоляСоединения; + ПредыдущаяВерсия.ПоляШаблона = ПоляШаблона; + ПредыдущаяВерсия.ВариантДоступа = ВариантыДоступа[0]; + + ТекущиеВерсииПолейСписка.Добавить(ПредыдущаяВерсия); + Иначе + // Несколько версий существующих одновременно не могут быть сопоставлены + // одному набору полей и не могут использоваться для новых наборов полей. + Для Каждого ВариантДоступа Из ВариантыДоступа Цикл + НеизвестнаяВерсия = НоваяВерсияПараметровШаблонов(); + НеизвестнаяВерсия.ДатаСоздания = Параметры.СтараяДатаСоздания; + НеизвестнаяВерсия.Список = НоваяВерсия.Список; + НеизвестнаяВерсия.ВариантДоступа = ВариантДоступа; + НеизвестнаяВерсия.Используется = Ложь; + + ТекущиеВерсииПолейСписка.Добавить(НеизвестнаяВерсия); + КонецЦикла; + КонецЕсли; + +КонецПроцедуры + +// Для процедур ОбновитьИспользованиеВерсийПолейСписка и ДобавитьПоляОграниченияСписка. +Функция МаксимальноеКоличествоВариантовСоединений() + + // При изменении нужно синхронно изменить шаблон ограничения доступа ДляРегистра. + Возврат 3; + +КонецФункции + +// Для процедур ЗаполнитьПараметрыДляШаблоновДляВидаПользователей. +Функция МаксимальноеКоличествоВерсийВВариантеДоступа() + + Возврат 16; + +КонецФункции + // Для процедуры УстановитьВерсиюПараметров, и для функции ХранимыеПараметрыОграниченияДоступа. // // Возвращаемое значение: @@ -23930,13 +25805,13 @@ // Возвращаемое значение: // Структура: // * ВерсияСтруктурыКэша - см. ВерсияСтруктурыКэша -// * ВерсииОграниченийСписков - Соответствие: +// * ВерсииОграниченийСписков - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - Строка - общая версия ограничения списка // первая строка - хеш-сумма свойств версии для пользователей и через Символы.ПС // вторая строка - хеш-сумма свойств версии для внешних пользователей. // -// * ВедущиеСписки - Соответствие: +// * ВедущиеСписки - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - см. СвойстваСпискаКакВедущего // @@ -23944,7 +25819,7 @@ // ** ДляПользователей - см. НовыйХранимыйДополнительныйКонтекст // ** ДляВнешнихПользователей - см. НовыйХранимыйДополнительныйКонтекст // -// * СпискиСДатой - Соответствие: +// * СпискиСДатой - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - Булево - Истина // * ВнешниеПользователиВключены - Булево @@ -24070,6 +25945,141 @@ КонецФункции +// Для процедур УстановитьВерсиюПараметров и ЗаполнитьПараметрыДляШаблонов. +// +// Возвращаемое значение: +// см. НоваяСтруктураХранимыхВерсийПараметровШаблонов +// +Функция СтруктураХранимыхВерсийПараметровШаблонов(Значения) + + ХранимыеВерсийПараметровШаблонов = НоваяСтруктураХранимыхВерсийПараметровШаблонов(); + ХранимыеВерсийПараметровШаблонов.ВерсияСтруктурыВерсий = ""; + + Если ТипЗнч(Значения) = Тип("Структура") + И Значения.Свойство("ВерсияСтруктурыВерсий") + И ТипЗнч(Значения.ВерсияСтруктурыВерсий) = Тип("Строка") + И Значения.Свойство("ДляПользователей") + + И ТипЗнч(Значения.ДляПользователей) = Тип("Структура") + И Значения.ДляПользователей.Свойство("ВерсииПараметровШаблонов") + И ТипЗнч(Значения.ДляПользователей.ВерсииПараметровШаблонов) = Тип("Соответствие") + И Значения.ДляПользователей.Свойство("ОсновныеВариантыДоступа") + И ТипЗнч(Значения.ДляПользователей.ОсновныеВариантыДоступа) = Тип("Соответствие") + + И Значения.Свойство("ДляВнешнихПользователей") + И ТипЗнч(Значения.ДляВнешнихПользователей) = Тип("Структура") + И Значения.ДляВнешнихПользователей.Свойство("ВерсииПараметровШаблонов") + И ТипЗнч(Значения.ДляВнешнихПользователей.ВерсииПараметровШаблонов) = Тип("Соответствие") + И Значения.ДляВнешнихПользователей.Свойство("ОсновныеВариантыДоступа") + И ТипЗнч(Значения.ДляВнешнихПользователей.ОсновныеВариантыДоступа) = Тип("Соответствие") Тогда + + ЗаполнитьЗначенияСвойств(ХранимыеВерсийПараметровШаблонов, Значения); + КонецЕсли; + + Возврат ХранимыеВерсийПараметровШаблонов; + +КонецФункции + +// Для функций ХранимыеПараметрыОграниченияДоступа, СтруктураХранимыхВерсийПараметровШаблонов и +// процедуры ЗаполнитьПараметрыДляШаблонов. +// +// Возвращаемое значение: +// Структура: +// * ВерсияСтруктурыВерсий - см. ВерсияСтруктурыВерсийПараметровШаблонов +// * ДляПользователей - Структура: +// ** ВерсииПараметровШаблонов - см. НовыеВерсииПараметровШаблонов +// ** ОсновныеВариантыДоступа - см. НовыеОсновныеВариантыДоступа +// * ДляВнешнихПользователей - Структура: +// ** ВерсииПараметровШаблонов - см. НовыеВерсииПараметровШаблонов +// ** ОсновныеВариантыДоступа - см. НовыеОсновныеВариантыДоступа +// +Функция НоваяСтруктураХранимыхВерсийПараметровШаблонов() + + ДляПользователей = Новый Структура; + ДляПользователей.Вставить("ВерсииПараметровШаблонов", НовыеВерсииПараметровШаблонов()); + ДляПользователей.Вставить("ОсновныеВариантыДоступа", НовыеОсновныеВариантыДоступа()); + + ДляВнешнихПользователей = Новый Структура; + ДляВнешнихПользователей.Вставить("ВерсииПараметровШаблонов", НовыеВерсииПараметровШаблонов()); + ДляВнешнихПользователей.Вставить("ОсновныеВариантыДоступа", НовыеОсновныеВариантыДоступа()); + + ХранимыеПараметрыШаблонов = Новый Структура; + ХранимыеПараметрыШаблонов.Вставить("ВерсияСтруктурыВерсий", ВерсияСтруктурыВерсийПараметровШаблонов()); + ХранимыеПараметрыШаблонов.Вставить("ДляПользователей", ДляПользователей); + ХранимыеПараметрыШаблонов.Вставить("ДляВнешнихПользователей", ДляВнешнихПользователей); + + Возврат ХранимыеПараметрыШаблонов; + +КонецФункции + +// Для функций ХранимыеПараметрыОграниченияДоступа и +// НоваяСтруктураХранимыхВерсийПараметровШаблонов. +// +// Возвращаемое значение: +// Соответствие из КлючИЗначение: +// * Ключ - Строка - полное имя регистра. +// * Значение - Массив из см. НоваяВерсияПараметровШаблонов +// +Функция НовыеВерсииПараметровШаблонов() + + Возврат Новый Соответствие; + +КонецФункции + +// Для функции НовыеВерсииПараметровШаблонов и процедуры НастроитьПараметрыШаблонов. +// +// Возвращаемое значение: +// Структура: +// * ДатаСоздания - Дата - момент добавления новой версии. +// * Список - Строка - полное имя объекта метаданных. +// * ПоляСоединения - Строка - список полей, используемых в соединении. +// * ПоляШаблона - Строка - список полей, указанных в шаблоне #ДляРегистра. +// * Используется - Булево - признак того, что версия используется в шаблонах. +// * ВариантДоступа - Число - значение поля ВариантДоступа в регистрах КлючиДоступаКРегистрам, +// КлючиДоступаКРегистру*. +// +Функция НоваяВерсияПараметровШаблонов() + + ВерсияПараметров = Новый Структура; + ВерсияПараметров.Вставить("ДатаСоздания", '00010101'); + ВерсияПараметров.Вставить("Список", ""); + ВерсияПараметров.Вставить("ПоляСоединения", ""); + ВерсияПараметров.Вставить("ПоляШаблона", ""); + ВерсияПараметров.Вставить("Используется", Истина); + ВерсияПараметров.Вставить("ВариантДоступа", 0); + + Возврат ВерсияПараметров; + +КонецФункции + +// Для функции НоваяСтруктураХранимыхВерсийПараметровШаблонов. +// +// Возвращаемое значение: +// Соответствие из КлючИЗначение: +// * Ключ - Строка - полное имя регистра. +// * Значение - Массив из см. НовыйИспользуемыйВариантДоступа +// +Функция НовыеОсновныеВариантыДоступа() + + Возврат Новый Соответствие; + +КонецФункции + +// Для функции ЗаполнитьПараметрыДляШаблоновДляВидаПользователей. +// +// Возвращаемое значение: +// Структура: +// * ВариантДоступа - Число - значение поля ВариантДоступа +// в регистрах КлючиДоступаКРегистрам, КлючиДоступаКРегистру*, +// начиная с основного варианта доступа. +// * ПоляСоединения - Строка - имена полей соединения для варианта доступа через запятую. +// +Функция НовыйИспользуемыйВариантДоступа() + + Возврат Новый Структура("ВариантДоступа, ПоляСоединения"); + +КонецФункции + // Для процедуры УстановитьВерсиюПараметров. // // Возвращаемое значение: @@ -24168,19 +26178,20 @@ // * ИспользуемыеТипыЗначенийДоступа - Массив из Тип - описание типов значений доступа, // которые используются в ограничении доступа. // * ВсеВидыОграниченийПрав - Соответствие - все виды ограничений прав без учета использования. -// * ПоляТаблицОбъекта - Массив Из см. НовыеПоляТаблицыОбъекта +// * ПоляТаблицОбъекта - Массив из см. НовыеПоляТаблицыОбъекта // * ИмяОтдельногоРегистраКлючей - Строка - для регистров. // * ОпорныеПоля - см. НовоеОписаниеОпорныхПолей -// * СоставПолей - Число - число, описывающее реквизиты, используемые в ключе. -// * ЕстьОграничениеЧтения - Булево - установлено, если ограничение чтения отличается от "ГДЕ ИСТИНА". -// * ЕстьОграничениеИзменения - Булево - установлено, если ограничение изменения отличается от "ГДЕ ИСТИНА". -// * ЕстьОграничениеПоПользователям - Булево - установлено, если проверяются значения Пользователь +// * ВариантДоступа - Число - основной вариант доступа смотри также НовыеОсновныеВариантыДоступа. +// * СоставПолей - Число - число, описывающее реквизиты, используемые в ключе. +// * ЕстьОграничениеЧтения - Булево - установлено, если ограничение чтения отличается от "ГДЕ ИСТИНА". +// * ЕстьОграничениеИзменения - Булево - установлено, если ограничение изменения отличается от "ГДЕ ИСТИНА". +// * ЕстьОграничениеПоПользователям - Булево - установлено, если проверяются значения Пользователь // или ГруппаПользователей или ВнешнийПользователь // или ГруппаВнешнихПользователей для функций // ЗначениеРазрешено или ЭтоАвторизованныйПользователь. -// * СтруктураРасчетаПраваЧтение - см. СтруктураРасчетаПрава -// * СтруктураРасчетаПраваИзменение - см. СтруктураРасчетаПрава -// * Контекст - см. КонтекстПараметровПоСтруктуреОграничения +// * СтруктураРасчетаПраваЧтение - см. СтруктураРасчетаПрава +// * СтруктураРасчетаПраваИзменение - см. СтруктураРасчетаПрава +// * Контекст - см. КонтекстПараметровПоСтруктуреОграничения // Функция ПараметрыОграниченияПоСтруктуреОграничения(Список, СтруктураОграничения, ДляВнешнихПользователей, ОбщийКонтекст, ДополнительныйКонтекст) @@ -24212,6 +26223,7 @@ Результат.Вставить("ПоляТаблицОбъекта", Новый Массив); Результат.Вставить("ИмяОтдельногоРегистраКлючей", ""); Результат.Вставить("ОпорныеПоля"); + Результат.Вставить("ВариантДоступа"); Результат.Вставить("СоставПолей"); Результат.Вставить("ЕстьОграничениеЧтения", Ложь); Результат.Вставить("ЕстьОграничениеИзменения", Ложь); @@ -24279,8 +26291,9 @@ Если Контекст.СпискиСЗаписьюКлючейДляЗависимыхСписковБезКлючей <> Неопределено Тогда Свойства = СвойстваОграниченияСписка(Контекст.Список, Контекст); - Результат.ИспользуетсяОграничениеПоВладельцу = Свойства.ПолеВладельца <> Неопределено; - Результат.РассчитыватьПраваПользователей = Свойства.РассчитыватьПраваПользователей; + Результат.РассчитыватьПраваПользователей = Свойства.РассчитыватьПраваПользователей; + Результат.ИспользуетсяОграничениеПоВладельцу = Свойства.ПолеВладельца <> Неопределено + И Не Свойства.ПолеВладельца.Отключено; Если Контекст.СпискиСЗаписьюКлючейДляЗависимыхСписковБезКлючей.Получить(Список) <> Неопределено Тогда Результат.ЕстьЗависимыеСпискиБезЗаписиКлючейДоступа = Истина; ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(Список); @@ -24328,8 +26341,9 @@ Контекст.Вставить("ЕстьОграничениеПоПользователям", Результат.ЕстьОграничениеПоПользователям); Если Контекст.СпискиСЗаписьюКлючейДляЗависимыхСписковБезКлючей = Неопределено Тогда - Результат.ИспользуетсяОграничениеПоВладельцу = Результат.ПолеВладельца <> Неопределено; Результат.РассчитыватьПраваПользователей = Результат.ЕстьОграничениеПоПользователям; + Результат.ИспользуетсяОграничениеПоВладельцу = Результат.ПолеВладельца <> Неопределено + И Не Результат.ПолеВладельца.Отключено; Контекст.Вставить("ИспользуетсяОграничениеПоВладельцу", Результат.ИспользуетсяОграничениеПоВладельцу); Контекст.Вставить("РассчитыватьПраваПользователей", Результат.РассчитыватьПраваПользователей); @@ -24417,9 +26431,10 @@ // * СписокСДатой - Булево // * СписокСПериодом - Булево // * ИмяКоллекцииТипа - Строка -// * СвойстваВерсии - Массив Из Строка +// * СвойстваВерсии - Массив из Строка // * ПоляТаблицОбъекта - см. НовоеОписаниеПолейТаблицОбъекта // * ОпорныеПоля - см. НовоеОписаниеОпорныхПолей +// * ВариантДоступа - Число - основной вариант доступа смотри также НовыеОсновныеВариантыДоступа. // * ИспользуетсяОграничениеПоВладельцу - Булево // * РассчитыватьПраваПользователей - Булево // * ЕстьЗависимыеСпискиБезЗаписиКлючейДоступа - Булево @@ -24436,59 +26451,59 @@ // * ЕстьОграничениеПоПользователям - Булево // * ИспользуетсяОграничениеПоВладельцу - Булево // * РассчитыватьПраваПользователей - Булево -// * СвойстваВсехПолей - Соответствие: +// * СвойстваВсехПолей - Соответствие из КлючИЗначение: // ** Ключ - см. ОписаниеУзла // ** Значение - см. СвойстваПоля -// * ОставшиесяПоляПослеУпрощения - Соответствие: +// * ОставшиесяПоляПослеУпрощения - Соответствие из КлючИЗначение: // ** Ключ - см. ОписаниеУзла // ** Значение - Массив из см. ОписаниеУзла // * ПоляКлючаДоступаПослеУпрощения - Массив из см. НовоеПолеКлючаДоступа -// * СвойстваПолейКлючаДоступа - Соответствие: +// * СвойстваПолейКлючаДоступа - Соответствие из КлючИЗначение: // ** Ключ - см. ОписаниеУзла // ** Значение - см. СвойстваПоля -// * ГруппыПолей - Соответствие: +// * ГруппыПолей - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя группы полей (Шапка?, ТабличнаяЧасть?) -// ** Значение - Массив Из см. СвойстваПоля -// * ПсевдонимыТабличныхЧастейОбъекта - Соответствие: +// ** Значение - Массив из см. СвойстваПоля +// * ПсевдонимыТабличныхЧастейОбъекта - Соответствие из КлючИЗначение: // ** Ключ - Число - номер табличной части ключа // ** Значение - Строка - псевдоним таблицы // * ГруппыДополнительныхТаблиц - см. ГруппыДополнительныхТаблиц // * КоличествоТабличныхЧастейКлюча - Число -// * ПоляУсловияСоединенияДополнительныхТаблиц - Массив Из Структура: +// * ПоляУсловияСоединенияДополнительныхТаблиц - Массив из Структура: // ** УзелПоле - см. ОписаниеУзла // ** ПсевдонимТаблицыУсловия - Строка // * ИмяПрава - Строка -// * ТребуемыеРеквизитыТабличныхЧастейКлюча - Соответствие: +// * ТребуемыеРеквизитыТабличныхЧастейКлюча - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя таблицы ключа (ИмяГруппыПолейКлючаДоступа) -// ** Значение - Массив Из Строка - имя реквизита таблицы ключа (ИмяРеквизитаГруппыПолейКлючаДоступа) -// * СтруктураРасчетаПраваСвойстваВерсии - Массив Из Строка +// ** Значение - Массив из Строка - имя реквизита таблицы ключа (ИмяРеквизитаГруппыПолейКлючаДоступа) +// * СтруктураРасчетаПраваСвойстваВерсии - Массив из Строка // -// Свойства из ОбщийКонтекст. +// Свойства из ОбщийКонтекст: // * СвойстваВидовДоступа - см. ХранимоеОписаниеСвойствВидовДоступа -// * ТипыПользователя - Массив Из Тип +// * ТипыПользователя - Массив из Тип // * ТипыВладельцевНастроекПрав - ФиксированноеСоответствие // * ОтдельныеТаблицыНастроекПрав - ФиксированноеСоответствие // * ИспользуемыеТипыЗначений - см. ИспользуемыеТипыЗначений // * СпискиСОграничением - см. УправлениеДоступомСлужебныйПовтИсп.СпискиСОграничением // * ВнешниеПользователиВключены - Булево // -// Свойства из ДополнительныйКонтекст. -// * ОписанияОграничений - Соответствие: +// Свойства из ДополнительныйКонтекст: +// * ОписанияОграничений - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - см. СокращенноеОписаниеОграничения -// * СвойстваОграниченияСписков - Соответствие: +// * СвойстваОграниченияСписков - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - см. НовыеСвойстваОграниченияСписка -// * СпискиСОграничениемПоВладельцу - Соответствие: +// * СпискиСОграничениемПоВладельцу - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - Булево - значение ПоВладельцу, кроме Неопределено. -// * СпискиСОтключеннымОграничением - Соответствие: +// * СпискиСОтключеннымОграничением - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - Булево - Истина -// * СпискиСОтключеннымОграничениемЧтения - Соответствие: +// * СпискиСОтключеннымОграничениемЧтения - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - Булево - Истина -// * СпискиСЗаписьюКлючейДляЗависимыхСписковБезКлючей - Соответствие: +// * СпискиСЗаписьюКлючейДляЗависимыхСписковБезКлючей - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - Булево - Истина // @@ -24530,7 +26545,7 @@ // // Свойства узла Выбор (Иначе может быть Неопределено). // * Иначе - см. СтруктураРасчетаПрава -// * Когда - Массив Из Структура: +// * Когда - Массив из Структура: // ** Условие - см. СтруктураРасчетаПрава // ** Значение - см. СтруктураРасчетаПрава // @@ -24540,7 +26555,7 @@ // ЧтениеОбъектаРазрешено, ИзменениеОбъектаРазрешено, // ЧтениеСпискаРазрешено, ИзменениеСпискаРазрешено. // * Поле - см. СтруктураРасчетаПрава -// * УточненияСравнения - Соответствие: +// * УточненияСравнения - Соответствие из КлючИЗначение: // ** Ключ - Строка // - Тип - уточняемое значение "Неопределено", "Null", "ПустаяСсылка", // "Отключено", Тип (Ссылка, Число, Даты, Булево). @@ -24681,7 +26696,7 @@ // Возвращаемое значение: // Структура: -// * Результат - Массив Из см. НовыеПоляТаблицыОбъекта +// * Результат - Массив из см. НовыеПоляТаблицыОбъекта // * Состав - Структура: // ** Ключ - Строка - полное имя таблицы объекта. // ** Значение - Структура: @@ -24689,12 +26704,12 @@ // *** Значение - Структура: // **** Тип - ОписаниеТипов - типы поля. // **** Использование - Булево - использование поля. -// * ПоСвойствамПолей - Соответствие: +// * ПоСвойствамПолей - Соответствие из КлючИЗначение: // ** Ключ - см. НовыеСвойстваПоля // ** Значение - Структура: // *** Таблица - Строка - полное имя таблицы объекта. // *** Поле - Строка - имя поля. -// * ПоДополнительнымТаблицам - Соответствие: +// * ПоДополнительнымТаблицам - Соответствие из КлючИЗначение: // ** Ключ - Строка - дополнительная таблица // ** Значение - Структура: // *** Ключ - Строка - полное имя таблицы объекта. @@ -24716,11 +26731,20 @@ ОпорныеПоля = НовоеОписаниеОпорныхПолей(); Контекст.Вставить("ОпорныеПоля", ОпорныеПоля); + Контекст.Вставить("ВариантДоступа", Неопределено); Если Контекст.ЭтоСсылочныйТип Тогда Возврат; КонецЕсли; + Если Контекст.Свойство("ОсновныеВариантыДоступа") Тогда + ИспользуемыеВариантыДоступа = Контекст.ОсновныеВариантыДоступа.Получить(Контекст.Список); + Если ИспользуемыеВариантыДоступа <> Неопределено Тогда + Результат.ВариантДоступа = ИспользуемыеВариантыДоступа[0].ВариантДоступа; + КонецЕсли; + Контекст.Вставить("ВариантДоступа", Результат.ВариантДоступа); + КонецЕсли; + Если СтрРазделить(Контекст.Список, ".").Количество() > 1 Тогда ИмяОтдельногоРегистраКлючей = "КлючиДоступаКРегистру" + СтрРазделить(Контекст.Список, ".")[1]; Если Метаданные.РегистрыСведений.Найти(ИмяОтдельногоРегистраКлючей) = Неопределено Тогда @@ -24768,13 +26792,13 @@ // * ТипыИспользуемых - Массив // * МаксимальноеКоличество - Число // * МаксимальноДопустимоеКоличество - Число -// * ТипыПоИменамПолей - Соответствие: +// * ТипыПоИменамПолей - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя опорного поля // ** Значение - ОписаниеТипов - типы опорного поля -// * ПоСвойствамПолей - Соответствие: +// * ПоСвойствамПолей - Соответствие из КлючИЗначение: // ** Ключ - см. НовыеСвойстваПоля // ** Значение - Строка - имя опорного поля -// * ПоДополнительнымТаблицам - Соответствие: +// * ПоДополнительнымТаблицам - Соответствие из КлючИЗначение: // ** Ключ - Строка - дополнительная таблица // ** Значение - Массив из Строка - имена опорных полей // @@ -24826,17 +26850,16 @@ // Процедура ЗаполнитьОграничениеПоОбъектуВладельцу(Результат, Контекст) - ОграничениеПоВладельцу = Контекст.СпискиСОграничениемПоВладельцу.Получить(Контекст.Список); - Если ТипЗнч(ОграничениеПоВладельцу) = Тип("Булево") И Не ОграничениеПоВладельцу Тогда - Возврат; - КонецЕсли; - - ТребуетсяОграничениеПоВладельцу = ?(ТипЗнч(ОграничениеПоВладельцу) = Тип("Булево"), - ОграничениеПоВладельцу, Ложь); - - Результат.ТребуетсяОграничениеПоВладельцу = ТребуетсяОграничениеПоВладельцу; + НастройкаПоВладельцу = Контекст.СпискиСОграничениемПоВладельцу.Получить(Контекст.Список); ПолеВладельца = НовоеПолеВладельца(); + ТребуетсяОграничениеПоВладельцу = Ложь; + Если ТипЗнч(НастройкаПоВладельцу) = Тип("Булево") Тогда + ТребуетсяОграничениеПоВладельцу = НастройкаПоВладельцу; + ПолеВладельца.Отключено = Не НастройкаПоВладельцу; + КонецЕсли; + Результат.ТребуетсяОграничениеПоВладельцу = ТребуетсяОграничениеПоВладельцу; + ОграничениеЧтения = Контекст.СтруктураОграничения.ОграничениеЧтения; ОграничениеИзменения = Контекст.СтруктураОграничения.ОграничениеИзменения; @@ -25022,10 +27045,11 @@ // Структура: // * Имя - Строка // * ИзменениеКакЧтение - Булево +// * Отключено - Булево // Функция НовоеПолеВладельца() - Возврат Новый Структура("Имя, ИзменениеКакЧтение", "", Ложь); + Возврат Новый Структура("Имя, ИзменениеКакЧтение, Отключено", "", Ложь, Ложь); КонецФункции @@ -25633,15 +27657,15 @@ // // Возвращаемое значение: // Структура: -// * НомераПоПсевдонимам - Соответствие: +// * НомераПоПсевдонимам - Соответствие из КлючИЗначение: // ** Ключ - Строка - псевдоним дополнительной таблицы // ** Значение - Число - номер группы дополнительных таблиц // -// * ТаблицыПоГруппам - Соответствие: +// * ТаблицыПоГруппам - Соответствие из КлючИЗначение: // ** Ключ - Число - номер группы дополнительных таблиц -// ** Значение - Массив Из см. НовоеОписаниеСоединения +// ** Значение - Массив из см. НовоеОписаниеСоединения // -// * ПсевдонимыТаблицСПолями - Соответствие: +// * ПсевдонимыТаблицСПолями - Соответствие из КлючИЗначение: // ** Ключ - Строка - псевдоним дополнительной таблицы // с полями ключа доступа (кроме полей соединений). // ** Значение - Булево - Истина. @@ -26149,7 +28173,7 @@ ИмяПоля = ""; Для Каждого ИмяТипа Из УзелПоле.ТаблицыСледующегоПоля[0] Цикл - ТекущееИмяПоля = "ВЫРАЗИТЬ(" + ОпорноеПоле + " КАК " + ИмяТипа + ")." + ОстальныеПоля; + ТекущееИмяПоля = СтрШаблон("ВЫРАЗИТЬ (%1 КАК %2).%3", ОпорноеПоле, ИмяТипа, ОстальныеПоля); // @query-part-1 Если ЗначениеЗаполнено(ИмяПоля) Тогда ИмяПоля = "ЕСТЬNULL(" + ТекущееИмяПоля + ", @@ -27168,15 +29192,15 @@ // * СвойстваВложения - см. СвойстваПоля // * Чтение - Булево // * ПроверкаЕстьNull - Неопределено -// * ТипыСохраненияКлючейДоступа - Массив Из Тип -// * ТипыСохраненияГруппЗначений - Массив Из Тип -// * ТипыСохраненияЗначений - Массив Из Тип -// * ТипыСохраненияПустойСсылки - Массив Из Тип -// * ТипыСохраненияТипов - Массив Из Тип -// * ТипыСохраненияТипаЗапрещенный - Массив Из Тип -// * ТипыСохраненияТипаРазрешенный - Массив Из Тип -// * НеиспользуемыеТипыЗначенийДоступа - Массив Из Тип -// * ИспользуемыеТипыЗначенийДоступа - Массив Из Тип +// * ТипыСохраненияКлючейДоступа - Массив из Тип +// * ТипыСохраненияГруппЗначений - Массив из Тип +// * ТипыСохраненияЗначений - Массив из Тип +// * ТипыСохраненияПустойСсылки - Массив из Тип +// * ТипыСохраненияТипов - Массив из Тип +// * ТипыСохраненияТипаЗапрещенный - Массив из Тип +// * ТипыСохраненияТипаРазрешенный - Массив из Тип +// * НеиспользуемыеТипыЗначенийДоступа - Массив из Тип +// * ИспользуемыеТипыЗначенийДоступа - Массив из Тип // * НесколькоГруппЗначений - Булево // * ЭтоСписокЗначенийДоступаСГруппамиЗначений - Булево // * ЕстьУточнениеNull - Булево @@ -27184,9 +29208,9 @@ // * ЕстьТипВедущегоСписка - Булево // * ЕстьТипВладельцаНастроекПрав - Булево // * ЕстьПроверкаАвторизованногоПользователя - Булево -// * ТипыСохраненияТиповКонфигурации - Массив Из Тип -// * ТипыСохраненияТиповРасширений - Массив Из Тип -// * ТипыСохраненияТиповПростых - Массив Из Тип +// * ТипыСохраненияТиповКонфигурации - Массив из Тип +// * ТипыСохраненияТиповРасширений - Массив из Тип +// * ТипыСохраненияТиповПростых - Массив из Тип // * ИмяГруппыПолейКлючаДоступа - Строка // * ИмяРеквизитаГруппыПолейКлючаДоступа - Строка // @@ -27588,7 +29612,7 @@ Иначе ДополнительноеУсловие = ?(Не ЗначениеЗаполнено(Контекст.ИмяОтдельногоРегистраКлючей), " | И (ТекущийСписок.Регистр = &ИдентификаторРегистра)", "") + " - | И (ТекущийСписок.ДляВнешнихПользователей = " + ?(Контекст.ДляВнешнихПользователей, "ИСТИНА", "ЛОЖЬ") + ") + | И (ТекущийСписок.ВариантДоступа = &ВариантДоступа) | И (&УточнениеПланаЗапроса)"; КонецЕсли; @@ -27924,7 +29948,48 @@ КонецФункции -// Для функции ТипСсылкиПоПолномуИмениМетаданных. +// Для функции КлючТаблицы. +Функция ТипКлючаЗаписиПоПолномуИмениМетаданных(ПолноеИмя) + + Если ЭтоРусскийВариантВидаОбъектаМетаданных(ПолноеИмя) Тогда + ИмяТипаКлючаЗаписи = СтрЗаменить(ПолноеИмя, ".", "КлючЗаписи."); + Иначе + ИмяТипаКлючаЗаписи = СтрЗаменить(ПолноеИмя, ".", "RecordKey."); + КонецЕсли; + + Возврат Тип(ИмяТипаКлючаЗаписи); + +КонецФункции + +// Для функции КлючТаблицы. +Функция ТипНабораЗаписейПоПолномуИмениМетаданных(ПолноеИмя) + + Если ЭтоРусскийВариантВидаОбъектаМетаданных(ПолноеИмя) Тогда + ИмяТипаНабораЗаписей = СтрЗаменить(ПолноеИмя, ".", "НаборЗаписей."); + Иначе + ИмяТипаНабораЗаписей = СтрЗаменить(ПолноеИмя, ".", "RecordSet."); + КонецЕсли; + + Возврат Тип(ИмяТипаНабораЗаписей); + +КонецФункции + +// Для функции КлючТаблицы. +Функция ТипМенеджераОбъектаПоПолномуИмениМетаданных(ПолноеИмя) + + Если ЭтоРусскийВариантВидаОбъектаМетаданных(ПолноеИмя) Тогда + ИмяТипаМенеджера = СтрЗаменить(ПолноеИмя, ".", "Менеджер."); + Иначе + ИмяТипаМенеджера = СтрЗаменить(ПолноеИмя, ".", "Manager."); + КонецЕсли; + + Возврат Тип(ИмяТипаМенеджера); + +КонецФункции + +// Для функций ТипСсылкиПоПолномуИмениМетаданных, ТипКлючаЗаписиПоПолномуИмениМетаданных, +// ТипНабораЗаписейПоПолномуИмениМетаданных, ТипМенеджераОбъектаПоПолномуИмениМетаданных. +// Функция ЭтоРусскийВариантВидаОбъектаМетаданных(ПолноеИмя) ПервыйСимвол = Лев(ПолноеИмя, 1); @@ -28283,13 +30348,15 @@ ОсновнойОтбор = "КлючиДоступаКРегистрам.Регистр = &ИдентификаторРегистра"; КонецЕсли; - Если Результат.ДляВнешнихПользователей Тогда - ОсновнойОтбор = ОсновнойОтбор + ?(ОсновнойОтбор = "", "", " - | И ") + "КлючиДоступаКРегистрам.ДляВнешнихПользователей = ИСТИНА"; - Иначе - ОсновнойОтбор = ОсновнойОтбор + ?(ОсновнойОтбор = "", "", " - | И ") + "КлючиДоступаКРегистрам.ДляВнешнихПользователей = ЛОЖЬ"; - КонецЕсли; + ОсновнойОтбор = ОсновнойОтбор + ?(ОсновнойОтбор = "", "", " + | И "); + + ОтборПоВидуПользователей = "ВЫБОР + | КОГДА КлючиДоступаКРегистрам.ВариантДоступа = 0 + | ТОГДА ЛОЖЬ + | ИНАЧЕ КлючиДоступаКРегистрам.ВариантДоступа - (ВЫРАЗИТЬ(КлючиДоступаКРегистрам.ВариантДоступа / 2 - 0.5 КАК ЧИСЛО(15, 0))) * 2 = 1 + | КОНЕЦ = " + ?(Результат.ДляВнешнихПользователей, "ИСТИНА", "ЛОЖЬ"); + ОпорныеПоля = Контекст.ОпорныеПоля; Если ОпорныеПоля = Неопределено Тогда МаксимальноеКоличествоОпорныхПолей = @@ -28298,9 +30365,9 @@ МаксимальноеКоличествоОпорныхПолей = ОпорныеПоля.МаксимальноеКоличество; КонецЕсли; - ОпорныеПоляВыбора = ""; + ОпорныеПоляВыбора = "КлючиДоступаКРегистрам.ВариантДоступа КАК ВариантДоступа"; ОпорныеПоляДляОтбора = ""; - ОпорныеПоляДляУпорядочения = ""; + ОпорныеПоляДляУпорядочения = "КлючиДоступаКРегистрам.ВариантДоступа"; Для Номер = 1 По МаксимальноеКоличествоОпорныхПолей Цикл // Поля для выбора. @@ -28330,6 +30397,23 @@ ОпорныеПоляДляОтбора = ОпорныеПоляДляОтбора + ")"; КонецЕсли; + Если ЗначениеЗаполнено(Результат.ИмяОтдельногоРегистраКлючей) Тогда + ТекстЗапросаОчистки = + "ВЫБРАТЬ ПЕРВЫЕ " + МаркерРазмераПорции() + " + | " + ОпорныеПоляВыбора + " + |ИЗ + | РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам + |ГДЕ + | КлючиДоступаКРегистрам.Регистр = &ИдентификаторРегистра + | И " + ОтборПоВидуПользователей + " + | И " + ОпорныеПоляДляОтбора + " + | И &УточнениеПланаЗапроса + | + |УПОРЯДОЧИТЬ ПО + | " + ОпорныеПоляДляУпорядочения; + Результат.Вставить("ТекстЗапросаУстаревшихЭлементовДанныхИзОбщегоРегистра", ТекстЗапросаОчистки); + КонецЕсли; + Если Результат.БезЗаписиКлючейДоступа Тогда ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ " + МаркерРазмераПорции() + " @@ -28337,28 +30421,13 @@ |ИЗ | РегистрСведений." + ИмяРегистра + " КАК КлючиДоступаКРегистрам |ГДЕ - | " + ОсновнойОтбор + " + | " + ОсновнойОтбор + ОтборПоВидуПользователей + " | И " + ОпорныеПоляДляОтбора + " | И &УточнениеПланаЗапроса | |УПОРЯДОЧИТЬ ПО | " + ОпорныеПоляДляУпорядочения; Иначе - Если ЗначениеЗаполнено(Результат.ИмяОтдельногоРегистраКлючей) Тогда - ТекстЗапросаОчистки = - "ВЫБРАТЬ ПЕРВЫЕ " + МаркерРазмераПорции() + " - | " + ОпорныеПоляВыбора + " - |ИЗ - | РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам - |ГДЕ - | КлючиДоступаКРегистрам.Регистр = &ИдентификаторРегистра - | И " + ОпорныеПоляДляОтбора + " - | И &УточнениеПланаЗапроса - | - |УПОРЯДОЧИТЬ ПО - | " + ОпорныеПоляДляУпорядочения; - Результат.Вставить("ТекстЗапросаУстаревшихЭлементовДанныхИзОбщегоРегистра", ТекстЗапросаОчистки); - КонецЕсли; Номер = 1; ОпорныеПоляВыбораПриПроверке = ""; ОпорныеПоляДляСравнения = ""; @@ -28372,39 +30441,48 @@ Номер = Номер + 1; КонецЦикла; - НачальныйНомер = ОпорныеПоля.Используемые.Количество() + 1; - ОтборНепустыхПолей = ""; - Для Номер = НачальныйНомер По ОпорныеПоля.МаксимальноеКоличество Цикл - ОтборНепустыхПолей = ОтборНепустыхПолей + ?(ОтборНепустыхПолей = "", "", " - | ИЛИ ") + "КлючиДоступаКРегистрам.Поле" + Номер + " <> ЗНАЧЕНИЕ(Перечисление.ДополнительныеЗначенияДоступа.Null)"; - КонецЦикла; - ОтборНепустыхПолей = ?(ОтборНепустыхПолей = "", "ЛОЖЬ", ОтборНепустыхПолей); - ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ " + МаркерРазмераПорции() + " | " + ОпорныеПоляВыбора + ", - | " + ОтборНепустыхПолей + " КАК Удалить + | НЕ КлючиДоступаКРегистрам.ВариантДоступа В (&ИспользуемыеВариантыДоступа) КАК Удалить |ИЗ | РегистрСведений." + ИмяРегистра + " КАК КлючиДоступаКРегистрам |ГДЕ - | " + ОсновнойОтбор + " + | " + ОсновнойОтбор + ОтборПоВидуПользователей + " | И " + ОпорныеПоляДляОтбора + " - | И (" + ТекстСОтступом(ОтборНепустыхПолей, " ") + " - | ИЛИ НЕ ИСТИНА В - | (ВЫБРАТЬ ПЕРВЫЕ 1 - | ИСТИНА - | ИЗ - | &ТекущийСписок КАК ТекущийСписок - | ГДЕ - | " + ТекстСОтступом(ОпорныеПоляДляСравнения, " ") + ")) + | И (НЕ КлючиДоступаКРегистрам.ВариантДоступа В (&ИспользуемыеВариантыДоступа) + | ИЛИ КлючиДоступаКРегистрам.ВариантДоступа = &ВариантДоступа + | И НЕ ИСТИНА В + | (ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА + | ИЗ + | &ТекущийСписок КАК ТекущийСписок + | ГДЕ + | " + ТекстСОтступом(ОпорныеПоляДляСравнения, " ") + ")) | И &УточнениеПланаЗапроса | |УПОРЯДОЧИТЬ ПО | " + ОпорныеПоляДляУпорядочения; + ИспользуемыеВариантыДоступа = Контекст.ОсновныеВариантыДоступа.Получить(Контекст.Список); + ВариантыДоступаСтрокой = Новый Массив; + Если ИспользуемыеВариантыДоступа = Неопределено Тогда + ВариантыДоступаСтрокой.Добавить("NULL"); + Иначе + Для Каждого ИспользуемыйВариантДоступа Из ИспользуемыеВариантыДоступа Цикл + ВариантыДоступаСтрокой.Добавить(XMLСтрока(ИспользуемыйВариантДоступа.ВариантДоступа)); + КонецЦикла; + КонецЕсли; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИспользуемыеВариантыДоступа", + СтрСоединить(ВариантыДоступаСтрокой, ",")); + + ВариантДоступаСтрокой = XMLСтрока(Контекст.ВариантДоступа); + ВариантДоступаСтрокой = ?(ЗначениеЗаполнено(ВариантДоступаСтрокой), ВариантДоступаСтрокой, "NULL"); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ВариантДоступа", ВариантДоступаСтрокой); + ТекстЗапросаПроверки = "ВЫБРАТЬ - | " + ОпорныеПоляВыбораПриПроверке + " + | &ОпорныеПоляВыбораПриПроверке |ПОМЕСТИТЬ КлючиДоступаКРегистрам |ИЗ | &КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам @@ -28412,7 +30490,7 @@ | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ - | " + ОпорныеПоляВыбораПриПроверке + " + | &ОпорныеПоляВыбораПриПроверке |ИЗ | КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам |ГДЕ @@ -28422,9 +30500,13 @@ | ИЗ | &ТекущийСписок КАК ТекущийСписок | ГДЕ - | " + ТекстСОтступом(ОпорныеПоляДляСравнения, " ") + ") + | &УсловиеОпорныеПоляДляСравнения) | И &УточнениеПланаЗапроса"; + ТекстЗапросаПроверки = СтрЗаменить(ТекстЗапросаПроверки, "&ОпорныеПоляВыбораПриПроверке", ОпорныеПоляВыбораПриПроверке); + ТекстЗапросаПроверки = СтрЗаменить(ТекстЗапросаПроверки, "&УсловиеОпорныеПоляДляСравнения", + ТекстСОтступом(ОпорныеПоляДляСравнения, " ")); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекущийСписок", Результат.Список); ТекстЗапросаПроверки = СтрЗаменить(ТекстЗапросаПроверки, "&ТекущийСписок", Результат.Список); Результат.Вставить("ТекстЗапросаПроверкиУстаревшихЭлементовДанных", ТекстЗапросаПроверки); @@ -28532,7 +30614,7 @@ |ГДЕ | (КлючиДоступаКОбъектам.Объект ЕСТЬ NULL | ИЛИ #Условие) - | И &УточнениеПланаЗапроса"; + | И &УточнениеПланаЗапроса"; // @query-part Если Не Контекст.Свойство("ОписаниеЗапросовПроверкиПоВедущимОбъектам") Тогда Возврат; @@ -28586,22 +30668,20 @@ ОпорныеПоля.ДляОтбора = "ТекущийСписок.Регистр = &ИдентификаторРегистра"; КонецЕсли; - ОтборПоТипуПользователей = ?(Контекст.ДляВнешнихПользователей, "ИСТИНА", "ЛОЖЬ"); - // Для запроса новых комбинаций. ОпорныеПоляУсловиеСоединения = ОпорныеПоляУсловиеСоединения + ?(ОпорныеПоляУсловиеСоединения = "", "", " - | И ") + "(КлючиДоступаКРегистрам.ДляВнешнихПользователей = " + ОтборПоТипуПользователей + ")"; + | И ") + "(КлючиДоступаКРегистрам.ВариантДоступа = &ВариантДоступа)"; // Для запроса текущих ключей доступа. УсловиеОтбора = УсловиеОтбора + ?(УсловиеОтбора = "", "", " - | И ") + "ТекущийСписок.ДляВнешнихПользователей = " + ОтборПоТипуПользователей; + | И ") + "ТекущийСписок.ВариантДоступа = &ВариантДоступа"; // Для остальных запросов. ОпорныеПоля.УсловиеСоединения = ОпорныеПоля.УсловиеСоединения + ?(ОпорныеПоля.УсловиеСоединения = "", "", " - | И ") + "(ТекущийСписокИсточник.ДляВнешнихПользователей = " + ОтборПоТипуПользователей + ")"; + | И ") + "(ТекущийСписокИсточник.ВариантДоступа = &ВариантДоступа)"; ОпорныеПоля.ДляОтбора = ОпорныеПоля.ДляОтбора + ?(ОпорныеПоля.ДляОтбора = "", "", " - | И ") + "ТекущийСписок.ДляВнешнихПользователей = " + ОтборПоТипуПользователей; + | И ") + "ТекущийСписок.ВариантДоступа = &ВариантДоступа"; Номер = 0; Для Каждого ИмяОпорногоПоля Из ОпорныеПоля.Используемые Цикл @@ -28665,16 +30745,6 @@ ОпорныеПоля.ДляОтбора = ОпорныеПоля.ДляОтбора + ")"; КонецЕсли; - НачальныйНомер = Номер + 1; - Для Номер = НачальныйНомер По ОпорныеПоля.МаксимальноеКоличество Цикл - // Для запроса новых комбинаций. - ОпорныеПоляУсловиеСоединения = ОпорныеПоляУсловиеСоединения + ?(ОпорныеПоляУсловиеСоединения = "", "", " - | И ") + "(КлючиДоступаКРегистрам.Поле" + Номер + " = ЗНАЧЕНИЕ(Перечисление.ДополнительныеЗначенияДоступа.Null))"; - // Для запроса проверки. - ОпорныеПоля.ДляОтбора = ОпорныеПоля.ДляОтбора + ?(ОпорныеПоля.ДляОтбора = "", "", " - | И ") + "ТекущийСписок.Поле" + Номер + " = ЗНАЧЕНИЕ(Перечисление.ДополнительныеЗначенияДоступа.Null)"; - КонецЦикла; - // Установка шаблонов запросов. ТекстЗапросаПроверкиКомбинаций = "ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ " + МаркерРазмераПорции() + " @@ -28735,7 +30805,7 @@ | И (ТекущийРегистр.Период < &ДатаОкончания | ИЛИ ТекущийРегистр.Период = &ДатаОкончания | И " + ТекстСОтступом(ОпорныеПоляДляОтбора, " ") + ") - | И КлючиДоступаКРегистрам.ДляВнешнихПользователей ЕСТЬ NULL + | И КлючиДоступаКРегистрам.ВариантДоступа ЕСТЬ NULL | И &УточнениеПланаЗапроса | |СГРУППИРОВАТЬ ПО @@ -28757,7 +30827,7 @@ | ПО " + ОпорныеПоляУсловиеСоединения + " |ГДЕ | " + ОпорныеПоляДляОтбора + " - | И КлючиДоступаКРегистрам.ДляВнешнихПользователей ЕСТЬ NULL + | И КлючиДоступаКРегистрам.ВариантДоступа ЕСТЬ NULL | И &УточнениеПланаЗапроса | |УПОРЯДОЧИТЬ ПО @@ -28820,7 +30890,8 @@ "ВЫБРАТЬ | ТекущиеДанныеДляОтбора." + СтрСоединить(Поля, ", | ТекущиеДанныеДляОтбора.") + " - |ПОМЕСТИТЬ " + ВедущаяТаблицаБезТочек + " + |ПОМЕСТИТЬ " // @query-part + + ВедущаяТаблицаБезТочек + " |ИЗ | &" + ВедущаяТаблицаБезТочек + " КАК ТекущиеДанныеДляОтбора"; @@ -29447,7 +31518,7 @@ | &ТекущийСписок КАК КлючиДоступаКРегистрам |ГДЕ | КлючиДоступаКРегистрам.Регистр = &Список - | И КлючиДоступаКРегистрам.ДляВнешнихПользователей = &ДляВнешнихПользователей + | И КлючиДоступаКРегистрам.ВариантДоступа = &ВариантДоступа | И КлючиДоступаКРегистрам.КлючДоступа > &ПоследнийКлючДоступа | И &УточнениеПланаЗапроса | @@ -29681,7 +31752,6 @@ | РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам |ГДЕ | КлючиДоступаКРегистрам.Регистр = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) - | И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ИСТИНА | И КлючиДоступаКРегистрам.Поле1 = &ТекущаяТаблицаПоле1 | И (ИСТИНА В | (ВЫБРАТЬ ПЕРВЫЕ 1 @@ -29709,7 +31779,6 @@ | РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам |ГДЕ | КлючиДоступаКРегистрам.Регистр = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) - | И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ЛОЖЬ | И КлючиДоступаКРегистрам.Поле1 = &ТекущаяТаблицаПоле1 | И (ИСТИНА В | (ВЫБРАТЬ ПЕРВЫЕ 1 @@ -29731,102 +31800,50 @@ | И РазрешенныеКлючиДоступа.Изменение))"; КонецЕсли; Иначе - Если Контекст.ДляВнешнихПользователей Тогда - ТекстЗапроса = - "ВЫБРАТЬ ПЕРВЫЕ 1 - | ИСТИНА КАК ЗначениеИстина - |ИЗ - | РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК РазрешенныеКлючиДоступа - | ПО (КлючиДоступаКРегистрам.Регистр = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка)) - | И (КлючиДоступаКРегистрам.ДляВнешнихПользователей = ИСТИНА) - | И (КлючиДоступаКРегистрам.Поле1 = &ТекущаяТаблицаПоле1) - | И (РазрешенныеКлючиДоступа.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа) - | И (РазрешенныеКлючиДоступа.НаборГруппДоступа В (&РазрешенныйНаборГруппДоступа, &РазрешенныйПустойНаборГруппДоступа)) - | И (РазрешенныеКлючиДоступа.Изменение)"; - Иначе - ТекстЗапроса = - "ВЫБРАТЬ ПЕРВЫЕ 1 - | ИСТИНА КАК ЗначениеИстина - |ИЗ - | РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК РазрешенныеКлючиДоступа - | ПО (КлючиДоступаКРегистрам.Регистр = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка)) - | И (КлючиДоступаКРегистрам.ДляВнешнихПользователей = ЛОЖЬ) - | И (КлючиДоступаКРегистрам.Поле1 = &ТекущаяТаблицаПоле1) - | И (РазрешенныеКлючиДоступа.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа) - | И (РазрешенныеКлючиДоступа.НаборГруппДоступа В (&РазрешенныйНаборГруппДоступа, &РазрешенныйПустойНаборГруппДоступа)) - | И (РазрешенныеКлючиДоступа.Изменение)"; - КонецЕсли; + ТекстЗапроса = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ИСТИНА КАК ЗначениеИстина + |ИЗ + | РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК РазрешенныеКлючиДоступа + | ПО (КлючиДоступаКРегистрам.Регистр = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка)) + | И (КлючиДоступаКРегистрам.Поле1 = &ТекущаяТаблицаПоле1) + | И (РазрешенныеКлючиДоступа.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа) + | И (РазрешенныеКлючиДоступа.НаборГруппДоступа В (&РазрешенныйНаборГруппДоступа, &РазрешенныйПустойНаборГруппДоступа)) + | И (РазрешенныеКлючиДоступа.Изменение)"; КонецЕсли; УточнитьРегистрКлючейИУсловиеСоединения(ТекстЗапроса, Результат, Контекст); - Если Контекст.ДляВнешнихПользователей Тогда - ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейСуществующихЗаписей = - "ВЫБРАТЬ РАЗЛИЧНЫЕ - | &ТекущаяТаблицаПоле1 КАК Поле1 - |ИЗ - | &Список КАК ТекущаяТаблица - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам - | ПО (КлючиДоступаКРегистрам.Регистр = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка)) - | И (КлючиДоступаКРегистрам.ДляВнешнихПользователей = ИСТИНА) - | И (КлючиДоступаКРегистрам.Поле1 = &ТекущаяТаблицаПоле1) - |ГДЕ - | &ОтборПоИзмерениям - | И КлючиДоступаКРегистрам.ДляВнешнихПользователей ЕСТЬ NULL"; - ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейНовыхЗаписей = - "ВЫБРАТЬ - | &ТекущаяТаблицаПоле1 КАК ТекущаяТаблицаПоле1 - |ПОМЕСТИТЬ КомбинацииЗначенийОпорныхПолей - |ИЗ - | &КомбинацииЗначенийОпорныхПолей КАК ТекущаяТаблица - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | &ТекущаяТаблицаПоле1 КАК Поле1 - |ИЗ - | КомбинацииЗначенийОпорныхПолей КАК ТекущаяТаблица - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам - | ПО (КлючиДоступаКРегистрам.Регистр = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка)) - | И (КлючиДоступаКРегистрам.ДляВнешнихПользователей = ИСТИНА) - | И (КлючиДоступаКРегистрам.Поле1 = &ТекущаяТаблицаПоле1) - |ГДЕ - | КлючиДоступаКРегистрам.ДляВнешнихПользователей ЕСТЬ NULL"; - Иначе - ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейСуществующихЗаписей = - "ВЫБРАТЬ РАЗЛИЧНЫЕ - | &ТекущаяТаблицаПоле1 КАК Поле1 - |ИЗ - | &Список КАК ТекущаяТаблица - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам - | ПО (КлючиДоступаКРегистрам.Регистр = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка)) - | И (КлючиДоступаКРегистрам.ДляВнешнихПользователей = ЛОЖЬ) - | И (КлючиДоступаКРегистрам.Поле1 = &ТекущаяТаблицаПоле1) - |ГДЕ - | &ОтборПоИзмерениям - | И КлючиДоступаКРегистрам.ДляВнешнихПользователей ЕСТЬ NULL"; - ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейНовыхЗаписей = - "ВЫБРАТЬ - | &ТекущаяТаблицаПоле1 КАК ТекущаяТаблицаПоле1 - |ПОМЕСТИТЬ КомбинацииЗначенийОпорныхПолей - |ИЗ - | &КомбинацииЗначенийОпорныхПолей КАК ТекущаяТаблица - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | &ТекущаяТаблицаПоле1 КАК Поле1 - |ИЗ - | КомбинацииЗначенийОпорныхПолей КАК ТекущаяТаблица - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам - | ПО (КлючиДоступаКРегистрам.Регистр = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка)) - | И (КлючиДоступаКРегистрам.ДляВнешнихПользователей = ЛОЖЬ) - | И (КлючиДоступаКРегистрам.Поле1 = &ТекущаяТаблицаПоле1) - |ГДЕ - | КлючиДоступаКРегистрам.ДляВнешнихПользователей ЕСТЬ NULL"; - КонецЕсли; + ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейСуществующихЗаписей = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | &ТекущаяТаблицаПоле1 КАК Поле1 + |ИЗ + | &Список КАК ТекущаяТаблица + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам + | ПО (КлючиДоступаКРегистрам.Регистр = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка)) + | И (КлючиДоступаКРегистрам.Поле1 = &ТекущаяТаблицаПоле1) + |ГДЕ + | &ОтборПоИзмерениям + | И КлючиДоступаКРегистрам.ВариантДоступа ЕСТЬ NULL"; + ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейНовыхЗаписей = + "ВЫБРАТЬ + | &ТекущаяТаблицаПоле1 КАК ТекущаяТаблицаПоле1 + |ПОМЕСТИТЬ КомбинацииЗначенийОпорныхПолей + |ИЗ + | &КомбинацииЗначенийОпорныхПолей КАК ТекущаяТаблица + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ РАЗЛИЧНЫЕ + | &ТекущаяТаблицаПоле1 КАК Поле1 + |ИЗ + | КомбинацииЗначенийОпорныхПолей КАК ТекущаяТаблица + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам + | ПО (КлючиДоступаКРегистрам.Регистр = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка)) + | И (КлючиДоступаКРегистрам.Поле1 = &ТекущаяТаблицаПоле1) + |ГДЕ + | КлючиДоступаКРегистрам.ВариантДоступа ЕСТЬ NULL"; УточнитьРегистрКлючейИУсловиеСоединения(ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейСуществующихЗаписей, Результат, Контекст, Истина); УточнитьРегистрКлючейИУсловиеСоединения(ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейНовыхЗаписей, @@ -29938,24 +31955,50 @@ Контекст.Список)); КонецЕсли; - УсловиеОтбора = ""; - УсловиеСоединения = ""; - НомерПоля = 1; - Для Каждого Поле Из Результат.ОпорныеПоля.Используемые Цикл - УсловиеОтбора = УсловиеОтбора + Символы.ПС - + "И КлючиДоступаКРегистрам.Поле" + НомерПоля + " = ТекущаяТаблица." + Поле; - УсловиеСоединения = УсловиеСоединения + Символы.ПС - + "И (КлючиДоступаКРегистрам.Поле" + НомерПоля + " = ТекущаяТаблица." + Поле + ")"; - НомерПоля = НомерПоля + 1; - КонецЦикла; - Для ТекущийНомер = НомерПоля По Результат.ОпорныеПоля.МаксимальноеКоличество Цикл - УсловиеОтбора = УсловиеОтбора + Символы.ПС - + "И КлючиДоступаКРегистрам.Поле" + ТекущийНомер - + " = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null)"; - УсловиеСоединения = УсловиеСоединения + Символы.ПС - + "И (КлючиДоступаКРегистрам.Поле" + ТекущийНомер - + " = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null))"; + ИспользуемыеВариантыДоступа = Контекст.ОсновныеВариантыДоступа.Получить(Контекст.Список); + Если ИспользуемыеВариантыДоступа = Неопределено Тогда + ИспользуемыйВариантДоступа = НовыйИспользуемыйВариантДоступа(); + ИспользуемыйВариантДоступа.ВариантДоступа = Результат.ВариантДоступа; + ИспользуемыйВариантДоступа.ПоляСоединения = СтрСоединить(Результат.ОпорныеПоля.Используемые, ","); + ИспользуемыеВариантыДоступа = Новый Массив; + ИспользуемыеВариантыДоступа.Добавить(ИспользуемыйВариантДоступа); + КонецЕсли; + Если ДобавитьПоляВыбора Тогда + ИспользуемыйВариантДоступа = ИспользуемыеВариантыДоступа[0]; + ИспользуемыеВариантыДоступа = Новый Массив; + ИспользуемыеВариантыДоступа.Добавить(ИспользуемыйВариантДоступа); + КонецЕсли; + + УсловияОтбора = Новый Массив; + УсловияСоединения = Новый Массив; + Для Каждого ИспользуемыйВариантДоступа Из ИспользуемыеВариантыДоступа Цикл + Условие = Новый Массив; + ВариантДоступаСтрокой = XMLСтрока(ИспользуемыйВариантДоступа.ВариантДоступа); + ВариантДоступаСтрокой = ?(ЗначениеЗаполнено(ВариантДоступаСтрокой), ВариантДоступаСтрокой, "NULL"); + Условие.Добавить("КлючиДоступаКРегистрам.ВариантДоступа = " + ВариантДоступаСтрокой); + НомерПоля = 1; + ИменаПолей = СтрРазделить(ИспользуемыйВариантДоступа.ПоляСоединения, ",", Ложь); + Для Каждого ИмяПоля Из ИменаПолей Цикл + Условие.Добавить("КлючиДоступаКРегистрам.Поле" + НомерПоля + " = ТекущаяТаблица." + ИмяПоля); + НомерПоля = НомерПоля + 1; + КонецЦикла; + Если ИспользуемыеВариантыДоступа.Количество() = 1 Тогда + УсловияОтбора.Добавить("И " + СтрСоединить(Условие, Символы.ПС + "И ")); + УсловияСоединения.Добавить("И (" + СтрСоединить(Условие, ")" + Символы.ПС + "И (") + ")"); + Иначе + УсловияОтбора.Добавить(СтрСоединить(Условие, Символы.ПС + " И ")); + УсловияСоединения.Добавить(СтрСоединить(Условие, Символы.ПС + " И ")); + КонецЕсли; КонецЦикла; + + Если ИспользуемыеВариантыДоступа.Количество() = 1 Тогда + УсловиеОтбора = УсловияОтбора[0]; + УсловиеСоединения = УсловияСоединения[0]; + Иначе + УсловиеОтбора = "И (" + СтрСоединить(УсловияОтбора, Символы.ПС + " ИЛИ ") + ")"; + УсловиеСоединения = "И (" + СтрСоединить(УсловияСоединения, Символы.ПС + " ИЛИ ") + ")"; + КонецЕсли; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И КлючиДоступаКРегистрам.Поле1 = &ТекущаяТаблицаПоле1", ТекстСОтступом(СокрЛ(УсловиеОтбора), " ")); @@ -30011,6 +32054,8 @@ Иначе ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекущийРегистр", Контекст.Список); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#КлючиДоступаКДанным", "ТекущийСписок"); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ТекущийСписок.Регистр = &ИдентификаторРегистра", "#1"); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ТекущийСписок.ВариантДоступа = &ВариантДоступа", "#2"); Номер = 0; Для Каждого ИмяОпорногоПоля Из Контекст.ОпорныеПоля.Используемые Цикл Номер = Номер + 1; @@ -30020,6 +32065,8 @@ ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ТекущийСписокИсточник." + ИмяОпорногоПоля, "ТекущийСписокИсточник.Поле" + Номер); КонецЦикла; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#1", "ТекущийСписок.Регистр = &ИдентификаторРегистра"); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#2", "ТекущийСписок.ВариантДоступа = &ВариантДоступа"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекущийСписок", ?(Контекст.ИмяОтдельногоРегистраКлючей = "", "РегистрСведений.КлючиДоступаКРегистрам", "РегистрСведений." + Контекст.ИмяОтдельногоРегистраКлючей)); @@ -30027,6 +32074,7 @@ КонецЕсли; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&СоставПолей", Формат(Контекст.СоставПолей, "ЧГ=")); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ВариантДоступа", XMLСтрока(Контекст.ВариантДоступа)); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ДляВнешнихПользователей", ?(Контекст.ДляВнешнихПользователей, "ИСТИНА", "ЛОЖЬ")); @@ -30235,7 +32283,7 @@ | " + Контекст.ОпорныеПоля.ДляВыбора + " | ПОМЕСТИТЬ ТекущийСписок |ИЗ - | &ЗначенияОпорныхПолей КАК ТекущийСписок"; + | &ЗначенияОпорныхПолей КАК ТекущийСписок"; // @query-part Контекст.ЧастиЗапросаЗначенийИзОбъектов.Добавить(ТекстЗапроса); ИначеЕсли НомерШапки = 0 Тогда @@ -30244,7 +32292,8 @@ "ВЫБРАТЬ | ТекущаяТаблица." + СтрСоединить(ОписаниеТаблицы.Поля, ", | ТекущаяТаблица.") + " - | ПОМЕСТИТЬ " + ОписаниеТаблицы.ПолноеИмяТаблицы + " + | ПОМЕСТИТЬ " // @query-part + + ОписаниеТаблицы.ПолноеИмяТаблицы + " |ИЗ | &" + ОписаниеТаблицы.ПолноеИмяТаблицы + " КАК ТекущаяТаблица"; Контекст.ЧастиЗапросаЗначенийИзОбъектовВПамяти.Добавить(ТекстЗапроса); @@ -31333,7 +33382,7 @@ КонецФункции // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - Строка - имя коллекции объектов метаданных, например, Справочники. // * Значение - см. НовыйСоставКоллекции // @@ -31344,7 +33393,7 @@ КонецФункции // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - Строка - имя таблицы (объекта метаданных) в верхнем регистре. // * Значение - см. НовыеСвойстваТаблицы // @@ -31360,14 +33409,14 @@ // * ЭтоОсновнаяТаблица - Булево // * Источники - Массив // * ПервоеПоле - Неопределено -// * Поля - Соответствие: +// * Поля - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя реквизита в верхнем регистре, в том числе через точки, // например, "ВЛАДЕЛЕЦ.ОРГАНИЗАЦИЯ", "ТОВАРЫ.НОМЕНКЛАТУРА". // ** Значение - см. НовыеСвойстваПоля -// * Предопределенные - Соответствие: +// * Предопределенные - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя предопределенного элемента. // ** Значение - см. НовыеСвойстваПредопределенного -// * Расширения - Соответствие: +// * Расширения - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя третьего имени таблицы, например, имя табличной части. // ** Значение - см. НовыеСвойстваРасширения // @@ -31395,7 +33444,7 @@ // Поля после первой точки могут относится только к коллекциям: "Реквизиты", // "СтандартныеРеквизиты", "ПризнакиУчета", "РеквизитыАдресации". Для этих // частей имени поля не требуется уточнять коллекцию. -// * СодержитТипы - Соответствие: +// * СодержитТипы - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя ссылочной таблицы в верхнем регистре. // ** Значение - Структура: // *** ИмяТипа - Строка - имя типа, наличие которого нужно проверить. @@ -31427,7 +33476,7 @@ // * ТаблицаСуществует - Булево - Ложь (для заполнения Истина, если существует). // * Источники - Массив // * ПервоеПоле - Неопределено -// * Поля - Соответствие: +// * Поля - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя реквизита в верхнем регистре, в том числе через точки, // например, "ВЛАДЕЛЕЦ.ОРГАНИЗАЦИЯ", "ТОВАРЫ.НОМЕНКЛАТУРА". // ** Значение - см. НовыеСвойстваПоля @@ -31522,7 +33571,7 @@ // * ЕстьОшибки - Булево // * ТекстОшибок - Строка // * Ограничение - Строка -// * Ошибки - Массив Из см. СвойстваОшибки +// * Ошибки - Массив из см. СвойстваОшибки // * Дополнение - Строка // Функция ОписаниеОшибок() @@ -32104,7 +34153,7 @@ // Для функции СинтаксисЯзыка. // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка - символ // * Значение - Строка - вид символа // @@ -32159,7 +34208,7 @@ // Для функции СинтаксисЯзыка. // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка - символ // * Значение - Булево - Истина // @@ -32178,7 +34227,7 @@ // Для функции СинтаксисЯзыка. // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка - слово на русском и английском языках. // * Значение - см. СвойстваСлова // @@ -32186,90 +34235,166 @@ Слова = Новый Соответствие; - ДобавитьСловоЯзыка(Слова, "ПрисоединитьДополнительныеТаблицы", "AttachAdditionalTables", "Начало", Ложь); - ДобавитьСловоЯзыка(Слова, "ЭтотСписок", "ThisList", "НачалоСписок", Ложь); - ДобавитьСловоЯзыка(Слова, "РазрешитьЧтениеИзменение", "AllowReadUpdate", "Начало", Ложь); - ДобавитьСловоЯзыка(Слова, "РазрешитьЧтение", "AllowRead", "Начало", Ложь); - ДобавитьСловоЯзыка(Слова, "РазрешитьИзменениеЕслиРазрешеноЧтение", "AllowUpdateIfReadingAllowed", "Начало", Ложь); - ДобавитьСловоЯзыка(Слова, "Где", "Where", "НачалоГде"); + ДобавитьСловоЯзыка(Слова, "ПрисоединитьДополнительныеТаблицы", // @Non-NLS + "AttachAdditionalTables", "Начало", Ложь); + ДобавитьСловоЯзыка(Слова, "ЭтотСписок", // @Non-NLS + "ThisList", "НачалоСписок", Ложь); + ДобавитьСловоЯзыка(Слова, "РазрешитьЧтениеИзменение", // @Non-NLS + "AllowReadUpdate", "Начало", Ложь); + ДобавитьСловоЯзыка(Слова, "РазрешитьЧтение", // @Non-NLS + "AllowRead", "Начало", Ложь); + ДобавитьСловоЯзыка(Слова, "РазрешитьИзменениеЕслиРазрешеноЧтение", // @Non-NLS + "AllowUpdateIfReadingAllowed", "Начало", Ложь); + ДобавитьСловоЯзыка(Слова, "Где", // @Non-NLS + "Where", "НачалоГде"); - ДобавитьСловоЯзыка(Слова, "Левое", "Left", "Присоединение"); - ДобавитьСловоЯзыка(Слова, "Соединение", "Join", "Присоединение"); - ДобавитьСловоЯзыка(Слова, "По", "On", "Присоединение"); + ДобавитьСловоЯзыка(Слова, "Левое", // @Non-NLS + "Left", "Присоединение"); + ДобавитьСловоЯзыка(Слова, "Соединение", // @Non-NLS + "Join", "Присоединение"); + ДобавитьСловоЯзыка(Слова, "По", // @Non-NLS + "On", "Присоединение"); - ДобавитьСловоЯзыка(Слова, "И", "And", "Соединитель", , 2); - ДобавитьСловоЯзыка(Слова, "Или", "Or", "Соединитель", , 1); - ДобавитьСловоЯзыка(Слова, "В", "In", "Соединитель", , 5); - ДобавитьСловоЯзыка(Слова, "Как", "As", "Соединитель"); - ДобавитьСловоЯзыка(Слова, "Кроме", "Except", "Соединитель"); - ДобавитьСловоЯзыка(Слова, "Только", "Only", "Соединитель"); - ДобавитьСловоЯзыка(Слова, "Есть", "Is", "Соединитель", , 7); - ДобавитьСловоЯзыка(Слова, "Не", "Not", "Оператор", , 3); + ДобавитьСловоЯзыка(Слова, "И", // @Non-NLS + "And", "Соединитель", , 2); + ДобавитьСловоЯзыка(Слова, "Или", // @Non-NLS + "Or", "Соединитель", , 1); + ДобавитьСловоЯзыка(Слова, "В", // @Non-NLS + "In", "Соединитель", , 5); + ДобавитьСловоЯзыка(Слова, "Как", // @Non-NLS + "As", "Соединитель"); + ДобавитьСловоЯзыка(Слова, "Кроме", // @Non-NLS + "Except", "Соединитель"); + ДобавитьСловоЯзыка(Слова, "Только", // @Non-NLS + "Only", "Соединитель"); + ДобавитьСловоЯзыка(Слова, "Есть", // @Non-NLS + "Is", "Соединитель", , 7); + ДобавитьСловоЯзыка(Слова, "Не", // @Non-NLS + "Not", "Оператор", , 3); - ДобавитьСловоЯзыка(Слова, "Выбор", "Case", "СловоВыбора"); - ДобавитьСловоЯзыка(Слова, "Когда", "When", "СловоВыбора"); - ДобавитьСловоЯзыка(Слова, "Тогда", "Then", "СловоВыбора"); - ДобавитьСловоЯзыка(Слова, "Иначе", "Else", "СловоВыбора"); - ДобавитьСловоЯзыка(Слова, "Конец", "End", "СловоВыбора"); + ДобавитьСловоЯзыка(Слова, "Выбор", // @Non-NLS + "Case", "СловоВыбора"); + ДобавитьСловоЯзыка(Слова, "Когда", // @Non-NLS + "When", "СловоВыбора"); + ДобавитьСловоЯзыка(Слова, "Тогда", // @Non-NLS + "Then", "СловоВыбора"); + ДобавитьСловоЯзыка(Слова, "Иначе", // @Non-NLS + "Else", "СловоВыбора"); + ДобавитьСловоЯзыка(Слова, "Конец", // @Non-NLS + "End", "СловоВыбора"); - ДобавитьСловоЯзыка(Слова, "ЕстьNull", "IsNull", "Функция", Ложь); - ДобавитьСловоЯзыка(Слова, "Выразить", "Cast", "Функция", Ложь); - ДобавитьСловоЯзыка(Слова, "Значение", "Value", "Функция", Ложь); - ДобавитьСловоЯзыка(Слова, "ТипЗначения", "ValueType", "Функция", Ложь); - ДобавитьСловоЯзыка(Слова, "Тип", "Type", "Функция", Ложь); - ДобавитьСловоЯзыка(Слова, "ЗначениеРазрешено", "ValueAllowed", "Функция", Ложь); - ДобавитьСловоЯзыка(Слова, "ЧтениеОбъектаРазрешено", "ObjectReadingAllowed", "Функция", Ложь); - ДобавитьСловоЯзыка(Слова, "ИзменениеОбъектаРазрешено", "ObjectUpdateAllowed", "Функция", Ложь); - ДобавитьСловоЯзыка(Слова, "ЧтениеСпискаРазрешено", "ListReadingAllowed", "Функция", Ложь); - ДобавитьСловоЯзыка(Слова, "ИзменениеСпискаРазрешено", "ListUpdateAllowed", "Функция", Ложь); - ДобавитьСловоЯзыка(Слова, "ДляВсехСтрок", "ForAllRows", "Функция", Ложь); - ДобавитьСловоЯзыка(Слова, "ДляОднойИзСтрок", "ForAtLeastOneRow", "Функция", Ложь); - ДобавитьСловоЯзыка(Слова, "ЭтоАвторизованныйПользователь", "IsAuthorizedUser", "Функция", Ложь); + ДобавитьСловоЯзыка(Слова, "ЕстьNull", // @Non-NLS + "IsNull", "Функция", Ложь); + ДобавитьСловоЯзыка(Слова, "Выразить", // @Non-NLS + "Cast", "Функция", Ложь); + ДобавитьСловоЯзыка(Слова, "Значение", // @Non-NLS + "Value", "Функция", Ложь); + ДобавитьСловоЯзыка(Слова, "ТипЗначения", // @Non-NLS + "ValueType", "Функция", Ложь); + ДобавитьСловоЯзыка(Слова, "Тип", // @Non-NLS + "Type", "Функция", Ложь); + ДобавитьСловоЯзыка(Слова, "ЗначениеРазрешено", // @Non-NLS + "ValueAllowed", "Функция", Ложь); + ДобавитьСловоЯзыка(Слова, "ЧтениеОбъектаРазрешено", // @Non-NLS + "ObjectReadingAllowed", "Функция", Ложь); + ДобавитьСловоЯзыка(Слова, "ИзменениеОбъектаРазрешено", // @Non-NLS + "ObjectUpdateAllowed", "Функция", Ложь); + ДобавитьСловоЯзыка(Слова, "ЧтениеСпискаРазрешено", // @Non-NLS + "ListReadingAllowed", "Функция", Ложь); + ДобавитьСловоЯзыка(Слова, "ИзменениеСпискаРазрешено", // @Non-NLS + "ListUpdateAllowed", "Функция", Ложь); + ДобавитьСловоЯзыка(Слова, "ДляВсехСтрок", // @Non-NLS + "ForAllRows", "Функция", Ложь); + ДобавитьСловоЯзыка(Слова, "ДляОднойИзСтрок", // @Non-NLS + "ForAtLeastOneRow", "Функция", Ложь); + ДобавитьСловоЯзыка(Слова, "ЭтоАвторизованныйПользователь", // @Non-NLS + "IsAuthorizedUser", "Функция", Ложь); - ДобавитьСловоЯзыка(Слова, "ПустаяСсылка", "EmptyRef", "ЗначениеСравнения"); - ДобавитьСловоЯзыка(Слова, "Отключено", "Disabled", "ЗначениеСравнения"); - ДобавитьСловоЯзыка(Слова, "Неопределено", "Undefined", "ЗначениеСравнения"); - ДобавитьСловоЯзыка(Слова, "Null", "Null", "ЗначениеСравнения"); - ДобавитьСловоЯзыка(Слова, "Ложь", "False", "ЗначениеУточнения"); - ДобавитьСловоЯзыка(Слова, "Истина", "True", "ЗначениеУточнения"); + ДобавитьСловоЯзыка(Слова, "ПустаяСсылка", // @Non-NLS + "EmptyRef", "ЗначениеСравнения"); + ДобавитьСловоЯзыка(Слова, "Отключено", // @Non-NLS + "Disabled", "ЗначениеСравнения"); + ДобавитьСловоЯзыка(Слова, "Неопределено", // @Non-NLS + "Undefined", "ЗначениеСравнения"); + ДобавитьСловоЯзыка(Слова, "Null", // @Non-NLS + "Null", "ЗначениеСравнения"); + ДобавитьСловоЯзыка(Слова, "Ложь", // @Non-NLS + "False", "ЗначениеУточнения"); + ДобавитьСловоЯзыка(Слова, "Истина", // @Non-NLS + "True", "ЗначениеУточнения"); - ДобавитьСловоЯзыка(Слова, "Строка", "String", "ИмяТипа"); - ДобавитьСловоЯзыка(Слова, "Число", "Number", "ИмяТипа"); - ДобавитьСловоЯзыка(Слова, "Дата", "Date", "ИмяТипа"); - ДобавитьСловоЯзыка(Слова, "Булево", "Boolean", "ИмяТипа"); + ДобавитьСловоЯзыка(Слова, "Строка", // @Non-NLS + "String", "ИмяТипа"); + ДобавитьСловоЯзыка(Слова, "Число", // @Non-NLS + "Number", "ИмяТипа"); + ДобавитьСловоЯзыка(Слова, "Дата", // @Non-NLS + "Date", "ИмяТипа"); + ДобавитьСловоЯзыка(Слова, "Булево", // @Non-NLS + "Boolean", "ИмяТипа"); // Неподдерживаемые, зарезервированные слова. - ДобавитьСловоЯзыка(Слова, "Выбрать", "Select", "Неопределен", , , Истина); - ДобавитьСловоЯзыка(Слова, "Первые", "Top", "Неопределен", , , Истина); - ДобавитьСловоЯзыка(Слова, "Различные", "Distinct", "Неопределен", , , Истина); - ДобавитьСловоЯзыка(Слова, "Из", "From", "Неопределен", , , Истина); - ДобавитьСловоЯзыка(Слова, "Внутреннее", "Inner", "Присоединение", , , Истина); - ДобавитьСловоЯзыка(Слова, "Полное", "Full", "Присоединение", , , Истина); - ДобавитьСловоЯзыка(Слова, "Сгруппировать", "Group", "Неопределен", , , Истина); - ДобавитьСловоЯзыка(Слова, "Имеющие", "Having", "Неопределен", , , Истина); - ДобавитьСловоЯзыка(Слова, "Упорядочить", "Order", "Неопределен", , , Истина); - ДобавитьСловоЯзыка(Слова, "Итоги", "Totals", "Неопределен", , , Истина); - ДобавитьСловоЯзыка(Слова, "Год", "Year", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "Квартал", "Quarter", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "Месяц", "Month", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "ДеньГода", "DayOfYear", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "День", "Day", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "Неделя", "Week", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "ДеньНедели", "Weekday", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "Час", "Hour", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "Минута", "Minute", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "Секунда", "Second", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "НачалоПериода", "BeginOfPeriod", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "КонецПериода", "EndOfPeriod", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "ДобавитьКДате", "DateAdd", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "РазностьДат", "DateDiff", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "Сумма", "Sum", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "Минимум", "Min", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "Максимум", "Max", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "Среднее", "Avg", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "Количество", "Count", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "Представление", "Presentation", "Функция", Ложь, , Истина); - ДобавитьСловоЯзыка(Слова, "ПредставлениеСсылки", "RefPresentation", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "Выбрать", // @Non-NLS + "Select", "Неопределен", , , Истина); + ДобавитьСловоЯзыка(Слова, "Первые", // @Non-NLS + "Top", "Неопределен", , , Истина); + ДобавитьСловоЯзыка(Слова, "Различные", // @Non-NLS + "Distinct", "Неопределен", , , Истина); + ДобавитьСловоЯзыка(Слова, "Из", // @Non-NLS + "From", "Неопределен", , , Истина); + ДобавитьСловоЯзыка(Слова, "Внутреннее", // @Non-NLS + "Inner", "Присоединение", , , Истина); + ДобавитьСловоЯзыка(Слова, "Полное", // @Non-NLS + "Full", "Присоединение", , , Истина); + ДобавитьСловоЯзыка(Слова, "Сгруппировать", // @Non-NLS + "Group", "Неопределен", , , Истина); + ДобавитьСловоЯзыка(Слова, "Имеющие", // @Non-NLS + "Having", "Неопределен", , , Истина); + ДобавитьСловоЯзыка(Слова, "Упорядочить", // @Non-NLS + "Order", "Неопределен", , , Истина); + ДобавитьСловоЯзыка(Слова, "Итоги", // @Non-NLS + "Totals", "Неопределен", , , Истина); + ДобавитьСловоЯзыка(Слова, "Год", // @Non-NLS + "Year", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "Квартал", // @Non-NLS + "Quarter", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "Месяц", // @Non-NLS + "Month", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "ДеньГода", // @Non-NLS + "DayOfYear", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "День", // @Non-NLS + "Day", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "Неделя", // @Non-NLS + "Week", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "ДеньНедели", // @Non-NLS + "Weekday", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "Час", // @Non-NLS + "Hour", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "Минута", // @Non-NLS + "Minute", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "Секунда", // @Non-NLS + "Second", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "НачалоПериода", // @Non-NLS + "BeginOfPeriod", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "КонецПериода", // @Non-NLS + "EndOfPeriod", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "ДобавитьКДате", // @Non-NLS + "DateAdd", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "РазностьДат", // @Non-NLS + "DateDiff", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "Сумма", // @Non-NLS + "Sum", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "Минимум", // @Non-NLS + "Min", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "Максимум", // @Non-NLS + "Max", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "Среднее", // @Non-NLS + "Avg", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "Количество", // @Non-NLS + "Count", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "Представление", // @Non-NLS + "Presentation", "Функция", Ложь, , Истина); + ДобавитьСловоЯзыка(Слова, "ПредставлениеСсылки", // @Non-NLS + "RefPresentation", "Функция", Ложь, , Истина); Возврат Новый ФиксированноеСоответствие(Слова); @@ -32278,7 +34403,7 @@ // Для функции СинтаксисЯзыка. // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка - слово на русском и английском языках. // * Значение - см. СвойстваСлова // @@ -32330,7 +34455,7 @@ Функция СвойстваСлова(ЯзыкРусский, ЯзыкАнглийский, ТипСлова, ВерхнийРегистр, Приоритет, ЭтоРезерв) СвойстваСлова = Новый Структура; - СвойстваСлова.Вставить("Идентификатор", ЯзыкРусский); + СвойстваСлова.Вставить("Идентификатор", ?(КодСимвола(Лев(ТипСлова, 1)) > 122, ЯзыкРусский, ЯзыкАнглийский)); СвойстваСлова.Вставить("ЯзыкРусский", ЯзыкРусский); СвойстваСлова.Вставить("ЯзыкАнглийский", ЯзыкАнглийский); СвойстваСлова.Вставить("Тип", ТипСлова); @@ -32346,10 +34471,10 @@ // // Возвращаемое значение: // Структура: -// * ПоИменам - Соответствие: +// * ПоИменам - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя типа таблиц на русском и на английском языках. // ** Значение - см. СвойстваТипаТаблиц -// * ПоКоллекциям - Соответствие: +// * ПоКоллекциям - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя коллекции на языке конфигурации (русском или английском). // ** Значение - см. СвойстваТипаТаблиц // @@ -32488,13 +34613,13 @@ // * ЭтоСсылочныйТип - Булево // * ЕстьОграничение - Булево // * ЕстьПредопределенные - Булево -// * КоллекцииПолей - Соответствие: +// * КоллекцииПолей - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя коллекции полей на языке конфигурации (русском или английском). // ** Значение - Строка - // "Разрешены" - можно использовать без ограничений. // "Недопустимы" - нельзя использовать в ограничении доступа платформы 1С:Предприятия. // -// * КоллекцииТабличныхЧастей - Соответствие: +// * КоллекцииТабличныхЧастей - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя коллекции табличных частей на языке конфигурации (русском или английском). // ** Значение - Строка - // "Разрешены" - можно использовать без ограничений. @@ -32510,11 +34635,11 @@ // "Недопустимы" - нельзя использовать в ограничении доступа платформы 1С:Предприятия. // "Отсутствуют" - не существуют у объекта метаданных. // -// * УточнениеПолей - Соответствие: +// * УточнениеПолей - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя поля таблиц на русском и на английском языках. // ** Значение - см. УточнениеПоля // -// * УточнениеТаблиц - Соответствие: +// * УточнениеТаблиц - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя расширения таблиц на русском и на английском языках. // ** Значение - см. УточнениеТаблиц // @@ -32650,6 +34775,9 @@ // Для функции РазобранноеОграничение. // +// Параметры: +// ВнутренниеДанные - см. НовыеВнутренниеДанные +// // Возвращаемое значение: // Структура: // * ДополнительныеТаблицы - Массив из см. НовоеОписаниеСоединения @@ -32686,7 +34814,7 @@ СвойстваЧастей = Новый Массив; // Массив Из см. НовыеСвойстваЧасти ИндексСтроки = 0; Для Каждого ИндексСтрокиРазделителя Из ИндексыСтрокРазделителя Цикл - СтрокиЧасти = Новый Массив; + СтрокиЧасти = Новый Массив; // см. ТаблицаНаборовСимволов Пока ИндексСтроки < ИндексСтрокиРазделителя Цикл СтрокаЧасти = ТаблицаНаборовСимволов[ИндексСтроки]; Если СтрокаЧасти.Вид <> "НедопустимыйСимвол" Тогда @@ -32702,11 +34830,12 @@ СвойстваЧасти.Вставить("Строки", СтрокиЧасти); СвойстваЧасти.Вставить("СтрокаРазделителя", СтрокаРазделителя); СвойстваЧастей.Добавить(СвойстваЧасти); - Если СтрокиЧасти[0].Вид = "КлючевоеСлово" - И СтрокиЧасти[0].Тип = "Начало" Тогда + ПерваяСтрокаЧасти = СтрокиЧасти[0]; + Если ПерваяСтрокаЧасти.Вид = "КлючевоеСлово" + И ПерваяСтрокаЧасти.Тип = "Начало" Тогда - СвойстваЧасти.Вставить("Имя", СтрокиЧасти[0].Уточнение); - СвойстваЧасти.Вставить("Представление", СтрокиЧасти[0].Символы); + СвойстваЧасти.Вставить("Имя", ПерваяСтрокаЧасти.Уточнение); + СвойстваЧасти.Вставить("Представление", ПерваяСтрокаЧасти.Символы); РазобратьЧастьОграничения(СвойстваЧасти, ВнутренниеДанные); Иначе @@ -32851,8 +34980,8 @@ // * Таблица - Строка // * Псевдоним - Строка // * УсловиеСоединения - см. ОписаниеУзла -// * ПсевдонимыТребуемыхТаблиц - Массив Из Строка -// * ПоляУсловияСоединения - Массив Из см. ПараПолейУсловияСоединения +// * ПсевдонимыТребуемыхТаблиц - Массив из Строка +// * ПоляУсловияСоединения - Массив из см. ПараПолейУсловияСоединения // * ПолеПроверкиСоединения - Строка // * ТекстУсловияСоединения - Строка // @@ -32865,7 +34994,7 @@ // Возвращаемое значение: // Структура: -// * Источник - СтрокаТаблицыЗначений +// * Источник - СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов // // * Узел - Строка - одна из строк "Поле", "Значение", "Константа", // "И", "Или", "Не", "=", "<>", "В", "ЕстьNull", "Тип", "ТипЗначения", "Выбор", @@ -32957,10 +35086,10 @@ // ЧтениеСпискаРазрешено, ИзменениеСпискаРазрешено. // В свойстве Поле - узел Поле. // * Поле - см. ОписаниеУзла -// * Типы - Массив Из Строка - полное имя таблицы +// * Типы - Массив из Строка - полное имя таблицы // * ПроверятьТипыКромеУказанных - Булево - если Истина, то все типы свойства Поле, // кроме указанных в свойстве Типы. -// * УточненияСравнения - Соответствие: +// * УточненияСравнения - Соответствие из КлючИЗначение: // ** Ключ - Строка - уточняемое значение "Неопределено", "Null", "ПустаяСсылка", // <полное имя таблицы>, "Число", "Строка", "Дата", "Булево". // ** Значение - Строка - результат "Ложь", "Истина". @@ -33068,7 +35197,7 @@ // Для процедуры РазобратьЧастьОграничения. Процедура РазобратьДополнительныеТаблицы(СвойстваЧасти, ВнутренниеДанные) - СтрокиЧасти = СвойстваЧасти.Строки; + СтрокиЧасти = СвойстваЧасти.Строки; // см. ТаблицаНаборовСимволов Если СтрокиЧасти.Количество() < 2 Или СтрокиЧасти[1].Вид <> "КлючевоеСлово" @@ -33163,6 +35292,10 @@ КонецПроцедуры // Для процедуры РазобратьДополнительныеТаблицы. +// +// Параметры: +// Соединение - см. ТаблицаНаборовСимволов +// Процедура РазобратьСоединение(Соединение, СвойстваЧасти, ВнутренниеДанные) ОписаниеСоединения = НовоеОписаниеСоединения(); @@ -33275,7 +35408,7 @@ // ЭтоСписокИсключений - Булево - если Истина, добавить узлы, кроме указанных. // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка - имя узла // * Значение - Булево // - Структура: @@ -33728,7 +35861,7 @@ // Для процедуры РазобратьЧастьОграничения. Процедура РазобратьУсловиеОграничения(СвойстваЧасти, ВнутренниеДанные) - СтрокиЧасти = СвойстваЧасти.Строки; + СтрокиЧасти = СвойстваЧасти.Строки; // см. ТаблицаНаборовСимволов ИзменитьВидКлючевогоСловаСписокНаИмя(СтрокиЧасти); Если СтрокиЧасти.Количество() < 2 @@ -33798,7 +35931,7 @@ // Для процедур РазобратьУсловиеСоединения, РазобратьУсловиеОграничения. // // Параметры: -// Условие - Массив Из СтрокаТаблицыЗначений +// Условие - Массив из СтрокаТаблицыЗначений // Состав - см. ОписаниеУзла // ВнутренниеДанные - см. НовыеВнутренниеДанные // @@ -33852,6 +35985,10 @@ // Для процедур РазобратьУсловие, РазобратьФункцию, РазобратьВыбор. +// +// Параметры: +// Условие - см. ТаблицаНаборовСимволов +// Процедура РазобратьВыражение(Условие, Состав, ТекущийКонтекст, ВложенноеВыражение = Истина) ФиксированныйКонтекст = Новый ФиксированнаяСтруктура(ТекущийКонтекст); @@ -33995,7 +36132,7 @@ // И, Или, Как, Кроме, Только, Есть и любая операция =, <>, ... // Ключевое слово В разбирается отдельно в процедуре "РазобратьОперациюВ". - Строка = Контекст.Строка; + Строка = Контекст.Строка; // СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов НовоеОписание = Новый Структура("Источник, Узел", Строка, ?(Строка.Вид = "Операция", Строка.Символы, Строка.Уточнение)); @@ -34049,7 +36186,8 @@ // Ошибка отсутствия параметров уже установлена в функции ФункцииСВыражениямиВСкобках. Для Каждого ОписаниеПараметра Из СоставПараметров Цикл - Для Каждого Подстрока Из ОписаниеПараметра.Строки Цикл + СтрокиОписанияПараметра = ОписаниеПараметра.Строки; // см. ТаблицаНаборовСимволов + Для Каждого Подстрока Из СтрокиОписанияПараметра Цикл РазобратьЗначениеСоединителяВ(Контекст, Подстрока, НовоеОписание); @@ -34313,6 +36451,11 @@ КонецПроцедуры // Для процедуры РазобратьПараметрыПроверочнойФункции. +// +// Параметры: +// ПервыйПараметр - Структура: +// * Строки - см. ТаблицаНаборовСимволов +// Процедура РазобратьПервыйПараметрПроверочнойФункции(Контекст, ПервыйПараметр, НовоеОписание) Если ПервыйПараметр.Строки[0].Вид = "Имя" Тогда @@ -34415,6 +36558,11 @@ КонецПроцедуры // Для процедуры РазобратьПараметрыПроверочнойФункции. +// +// Параметры: +// Параметр - Структура: +// * Строки - см. ТаблицаНаборовСимволов +// Процедура РазобратьДополнительныйПараметрПроверочнойФункции(Контекст, Параметр, НовоеОписание) Если Параметр.Строки[0].Вид = "Имя" @@ -34778,6 +36926,10 @@ // РазобратьПараметрыФункцииЗначениеИлиФункцииТип, РазобратьПараметрыФункцииТипЗначения и // для функций ОписаниеУзлаПолеИзФункцииВыразить, ОписаниеУзлаПолеИзФункцииЕстьNull. // +// Возвращаемое значение: +// Массив из Структура: +// * Строки - см. ТаблицаНаборовСимволов +// Функция ПараметрыРазделенныеЗапятыми(Строка) СоставПараметров = Новый Массив; @@ -34829,6 +36981,12 @@ КонецФункции // Для процедуры РазобратьВыражение. +// +// Параметры: +// Контекст - Структура: +// * Строка - Структура: +// ** Строки - см. ТаблицаНаборовСимволов +// Процедура РазобратьВыбор(Контекст) Строка = Контекст.Строка; @@ -34839,7 +36997,7 @@ ПропуститьАнализКогда = Ложь; - Выбор = Строка.Строки[0]; + Выбор = Строка.Строки[0]; // см. ДополнительнаяСтрока Если Выбор.Строки.Количество() > 0 Тогда Если Выбор.Строки[0].Вид = "Имя" Тогда НовоеОписание.Выбор = ОписаниеУзлаПолеИлиУзлаКонстанта(Выбор.Строки[0]); @@ -34857,7 +37015,7 @@ НовоеОписаниеКогда = НовоеОписание.Когда; // Массив НовоеОписаниеКогда.Добавить(ОписаниеКогдаТогда); - Когда = Строка.Строки[Индекс]; + Когда = Строка.Строки[Индекс]; // СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов Если Не ПропуститьАнализКогда Тогда Если НовоеОписание.Выбор = Неопределено Тогда @@ -35074,6 +37232,10 @@ КонецФункции // Для процедуры РазобратьУсловие. +// +// Параметры: +// Строки - см. ТаблицаНаборовСимволов +// Функция ВыраженияВыборКогдаТогдаВоВложениях(Строки, Контекст) Результат = Новый Массив; @@ -35257,6 +37419,10 @@ КонецФункции // Для процедуры РазобратьУсловие. +// +// Параметры: +// Строки - см. ТаблицаНаборовСимволов +// Функция ФункцииСВыражениямиВСкобках(Строки, ВнутренниеДанные) Результат = Новый Массив; @@ -35265,7 +37431,7 @@ Строка = Неопределено; Индекс = 0; Пока Индекс < КоличествоСтрок Цикл - ПредыдущаяСтрока = Строка; + ПредыдущаяСтрока = Строка; // СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов Строка = Строки[Индекс]; Если Строка.Символы = "(" Тогда @@ -35403,14 +37569,34 @@ // Для процедур ОбработатьПропущеннуюЛогическуюОперацию, ВыраженияВыборКогдаТогдаВоВложениях, // ВосстановитьСтруктуруВыбора и для функции ПараметрыРазделенныеЗапятыми. // +// Возвращаемое значение: +// Структура: +// * Символы - Строка +// * Вид - Строка +// * Тип - Строка +// * Приоритет - Число +// * Уточнение - Строка +// * ИсходнаяСтрока - Структура: +// ** Строки - Массив из см. ТаблицаНаборовСимволов +// ** Уточнение - Строка +// * Строки - Массив из см. ТаблицаНаборовСимволов +// * КонечнаяСтрока - СтрокаТаблицыЗначений: см. ТаблицаНаборовСимволов +// * ПозицияОшибки - Число +// * ТекстОшибки - Строка +// Функция ДополнительнаяСтрока(Строка, Уточнение = "", Контекст = Неопределено) - Поля = "Символы, Вид, Тип, Приоритет, Уточнение, ИсходнаяСтрока, Строки, КонечнаяСтрока, ПозицияОшибки, ТекстОшибки"; - - НоваяСтрока = Новый Структура(Поля); - НоваяСтрока.Уточнение = Уточнение; - НоваяСтрока.Строки = Новый Массив; - НоваяСтрока.ИсходнаяСтрока = Строка; + НоваяСтрока = Новый Структура; + НоваяСтрока.Вставить("Символы"); + НоваяСтрока.Вставить("Вид"); + НоваяСтрока.Вставить("Тип"); + НоваяСтрока.Вставить("Приоритет"); + НоваяСтрока.Вставить("Уточнение", Уточнение); + НоваяСтрока.Вставить("ИсходнаяСтрока", Строка); + НоваяСтрока.Вставить("Строки", Новый Массив); + НоваяСтрока.Вставить("КонечнаяСтрока"); + НоваяСтрока.Вставить("ПозицияОшибки"); + НоваяСтрока.Вставить("ТекстОшибки"); СвойстваСлова = ?(Контекст = Неопределено, Неопределено, Контекст.СинтаксисЯзыка.СловаЯзыка.Получить(ВРег(Уточнение))); @@ -35426,6 +37612,10 @@ КонецФункции // Для процедур РазобратьДополнительныеТаблицы, РазобратьУсловиеОграничения. +// +// Параметры: +// СтрокиЧасти - см. ТаблицаНаборовСимволов +// Процедура ИзменитьВидКлючевогоСловаСписокНаИмя(СтрокиЧасти, ИсключаемаяСтрока = Неопределено) Для Каждого Строка Из СтрокиЧасти Цикл @@ -35441,6 +37631,10 @@ КонецПроцедуры // Для процедур РазобратьДополнительныеТаблицы, РазобратьСоединение. +// +// Параметры: +// СтрокиЧасти - см. ТаблицаНаборовСимволов +// Процедура УстановитьПсевдоним(СтрокаЧасти, ОписаниеСоединения, ВнутренниеДанные) Если ЗначениеЗаполнено(СтрокаЧасти.ТекстОшибки) Тогда @@ -35473,6 +37667,10 @@ КонецПроцедуры // Для процедуры РазобратьСоединение. +// +// Параметры: +// СтрокиЧасти - см. ТаблицаНаборовСимволов +// Процедура УстановитьИмяТаблицы(СтрокаЧасти, ОписаниеСоединения, ВнутренниеДанные) Если ЗначениеЗаполнено(СтрокаЧасти.ТекстОшибки) Тогда @@ -36460,11 +38658,16 @@ КонецПроцедуры // Для процедуры ПроверитьТаблицыПоляИТипыПолей. +// +// Параметры: +// ПоляТаблицы - см. НовыйСоставКоллекции +// Процедура ПроверитьПредопределенныеЗначенияТаблицы(ПоляТаблицы, Контекст) СвойстваТипаТаблиц = Контекст.СвойстваТипаТаблиц; - Если ПоляТаблицы.Значение.Предопределенные.Количество() = 0 Тогда + СвойстваТаблицы = ПоляТаблицы.Значение; // см. НовыеСвойстваТаблицы + Если СвойстваТаблицы.Предопределенные.Количество() = 0 Тогда Возврат; КонецЕсли; @@ -36487,7 +38690,7 @@ ИменаПредопределенных.Добавить("ПустаяСсылка"); ИменаПредопределенных.Добавить("EmptyRef"); - Для Каждого Предопределенный Из ПоляТаблицы.Значение.Предопределенные Цикл + Для Каждого Предопределенный Из СвойстваТаблицы.Предопределенные Цикл Для Каждого ИмяПредопределенного Из ИменаПредопределенных Цикл Если ВРег(ИмяПредопределенного) = Предопределенный.Ключ Тогда Предопределенный.Значение.ИмяСуществует = Истина; @@ -36504,7 +38707,7 @@ Для Каждого ТипТаблиц Из ПоляТаблиц Цикл Для Каждого ОписаниеТаблицы Из ТипТаблиц.Значение Цикл - СвойстваТаблицы = ОписаниеТаблицы.Значение; + СвойстваТаблицы = ОписаниеТаблицы.Значение; // см. НовыеСвойстваТаблицы Если Не СвойстваТаблицы.ТаблицаСуществует Тогда Для Каждого Источник Из СвойстваТаблицы.Источники Цикл @@ -36713,7 +38916,12 @@ ОбновитьПрогресс(Контекст); Исключение ИнформацияОбОшибке = ИнформацияОбОшибке(); - Контекст.Вставить("ТекстОшибки", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + Если ЭтоОшибкаПроверкиАктуальностиМетаданных(ИнформацияОбОшибке) Тогда + ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке); + Иначе + ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); + КонецЕсли; + Контекст.Вставить("ТекстОшибки", ТекстОшибки); КонецПопытки; ПоместитьВоВременноеХранилище(Контекст, АдресРезультата); @@ -37950,20 +40158,17 @@ Если ЗначениеЗаполнено(СвойстваОграничения.ИмяОтдельногоРегистраКлючей) Тогда ИмяРегистраКлючей = СвойстваОграничения.ИмяОтдельногоРегистраКлючей; - МаксимальноеКоличествоПолей = - УправлениеДоступомСлужебныйПовтИсп.КоличествоОпорныхПолейРегистра(ИмяРегистраКлючей); Иначе ИмяРегистраКлючей = "КлючиДоступаКРегистрам"; - МаксимальноеКоличествоПолей = УправлениеДоступомСлужебныйПовтИсп.КоличествоОпорныхПолейРегистра(); ИмяПараметра = "ИдентификаторРегистра" + Формат(Индекс, "ЧГ="); УсловиеСоединения = "(КлючиДоступаКРегистрам.Регистр = &" + ИмяПараметра + ")"; ОписаниеЗапроса.Запрос.УстановитьПараметр(ИмяПараметра, Строка.Список); КонецЕсли; ОпорныеПоля = СвойстваОграничения.ОпорныеПоля; - ОтборПоТипуПользователей = ?(ДляВнешнихПользователей, "ИСТИНА", "ЛОЖЬ"); + ОтборПоТипуПользователей = XMLСтрока(СвойстваОграничения.ВариантДоступа); УсловиеСоединения = УсловиеСоединения + ?(УсловиеСоединения = "", "", " - | И ") + "(КлючиДоступаКРегистрам.ДляВнешнихПользователей = " + ОтборПоТипуПользователей + ")"; + | И ") + "(КлючиДоступаКРегистрам.ВариантДоступа = " + ОтборПоТипуПользователей + ")"; НомерПоля = 1; Для Каждого ИмяПоля Из ОпорныеПоля.Используемые Цикл @@ -38000,12 +40205,6 @@ УсловиеОтбора = УсловиеОтбора + ")"; КонецЕсли; - НачальныйНомер = НомерПоля + 1; - Для НомерПоля = НачальныйНомер По МаксимальноеКоличествоПолей Цикл - УсловиеСоединения = УсловиеСоединения + ?(УсловиеСоединения = "", "", " - | И ") + "(КлючиДоступаКРегистрам.Поле" + НомерПоля + " = ЗНАЧЕНИЕ(Перечисление.ДополнительныеЗначенияДоступа.Null))"; - КонецЦикла; - Если ВидКлючаДанных = "ЭлементыБезКлючейПоПериоду" Тогда ИмяПоляПериода = ?(СвойстваТипа.ИмяКоллекции = "РегистрыРасчета", "ПериодРегистрации", "Период"); ИмяПараметра = ИмяПоляПериода + Формат(Индекс, "ЧГ="); @@ -38025,7 +40224,7 @@ | ПО (&УсловиеСоединения) |ГДЕ | &УсловиеОтбора - | И КлючиДоступаКРегистрам.ДляВнешнихПользователей ЕСТЬ NULL"; + | И КлючиДоступаКРегистрам.ВариантДоступа ЕСТЬ NULL"; Иначе ТекстЗапроса = "ВЫБРАТЬ @@ -38039,7 +40238,7 @@ | ПО (&УсловиеСоединения) | ГДЕ | &УсловиеОтбора - | И КлючиДоступаКРегистрам.ДляВнешнихПользователей ЕСТЬ NULL) КАК Комбинации"; + | И КлючиДоступаКРегистрам.ВариантДоступа ЕСТЬ NULL) КАК Комбинации"; ПоляВыбора = ТекстСОтступом(ПоляВыбора, " "); УсловиеОтбора = ТекстСОтступом(УсловиеОтбора, " "); КонецЕсли; diff --git a/SSL/src/CommonModules/УправлениеДоступомСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомСлужебныйВМоделиСервиса/Module.bsl index 524789006..0c375995f 100644 --- a/SSL/src/CommonModules/УправлениеДоступомСлужебныйВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомСлужебныйВМоделиСервиса/Module.bsl @@ -48,9 +48,7 @@ //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. -// Параметры: -// ШаблоныЗаданий - см. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.ШаблоныЗаданий -// +// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт ШаблоныЗаданий.Добавить(Метаданные.РегламентныеЗадания.ЗаполнениеДанныхДляОграниченияДоступа.Имя); diff --git a/SSL/src/CommonModules/УправлениеДоступомСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомСлужебныйКлиент/Module.bsl index c7325d801..237ddbbec 100644 --- a/SSL/src/CommonModules/УправлениеДоступомСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомСлужебныйКлиент/Module.bsl @@ -417,6 +417,30 @@ //////////////////////////////////////////////////////////////////////////////// // Обработчики событий общей формы ФормаОтчета. +// Обработчик двойного щелчка мыши, нажатия клавиши Enter или гиперссылки в табличном документе формы отчета. +// См. "Расширение поля формы для поля табличного документа.Выбор" в синтакс-помощнике. +// +// Параметры: +// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. +// Элемент - ПолеФормы - табличный документ. +// Область - ОбластьЯчеекТабличногоДокумента - выбранное значение. +// СтандартнаяОбработка - Булево - признак выполнения стандартной обработки события. +// +Процедура ОбработкаВыбораТабличногоДокумента(ФормаОтчета, Элемент, Область, СтандартнаяОбработка) Экспорт + + Если ФормаОтчета.НастройкиОтчета.ПолноеИмя <> "Отчет.АнализПравДоступа" Тогда + Возврат; + КонецЕсли; + + Если ТипЗнч(Область) = Тип("ОбластьЯчеекТабличногоДокумента") + И Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник + И Область.Расшифровка <> Неопределено Тогда + + ФормаОтчета.ОбработкаРасшифровки = Истина; + КонецЕсли; + +КонецПроцедуры + // См. ОтчетыКлиентПереопределяемый.ОбработкаРасшифровки Процедура ПриОбработкеРасшифровки(ФормаОтчета, Элемент, Расшифровка, СтандартнаяОбработка) Экспорт @@ -430,7 +454,7 @@ ПараметрыОтчета = Новый Структура; ПараметрыОтчета.Вставить("СформироватьПриОткрытии", Истина); ПараметрыОтчета.Вставить("Расшифровка", Расшифровка); - + Отбор = Новый Структура; Для Каждого Элемент Из ФормаОтчета.Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл Настройка = ФормаОтчета.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(Элемент.ИдентификаторПользовательскойНастройки); diff --git a/SSL/src/CommonModules/УправлениеДоступомСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомСлужебныйКлиентСервер/Module.bsl index 424a88392..4bc972ae8 100644 --- a/SSL/src/CommonModules/УправлениеДоступомСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомСлужебныйКлиентСервер/Module.bsl @@ -584,7 +584,7 @@ // См. УправлениеДоступомСлужебный.ПриСозданииНаСервереФормыРедактированияРазрешенныхЗначений // // Возвращаемое значение: -// ДанныеФормыКоллекция Из ДанныеФормыЭлементКоллекции: +// ДанныеФормыКоллекция из ДанныеФормыЭлементКоллекции: // * ТипПользователя - ОпределяемыйТип.Пользователь - тип назначения. // Функция НазначениеИзФормы(Форма) @@ -599,7 +599,7 @@ // См. УправлениеДоступомСлужебный.ПриСозданииНаСервереФормыРедактированияРазрешенныхЗначений // // Возвращаемое значение: -// ДанныеФормыКоллекция Из ДанныеФормыЭлементКоллекции: +// ДанныеФормыКоллекция из ДанныеФормыЭлементКоллекции: // * ГруппаДоступа - СправочникСсылка.ГруппыДоступа // * ВидДоступа - ОпределяемыйТип.ЗначениеДоступа // * Предустановленный - Булево - (только для профиля) @@ -618,7 +618,7 @@ // См. УправлениеДоступомСлужебный.ПриСозданииНаСервереФормыРедактированияРазрешенныхЗначений // // Возвращаемое значение: -// ДанныеФормыКоллекция Из ДанныеФормыЭлементКоллекции: +// ДанныеФормыКоллекция из ДанныеФормыЭлементКоллекции: // * ГруппаДоступа - СправочникСсылка.ГруппыДоступа // * ВидДоступа - ОпределяемыйТип.ЗначениеДоступа // * ЗначениеДоступа - ОпределяемыйТип.ЗначениеДоступа @@ -634,7 +634,7 @@ // См. УправлениеДоступомСлужебный.ПриСозданииНаСервереФормыРедактированияРазрешенныхЗначений // // Возвращаемое значение: -// ДанныеФормыКоллекция Из ДанныеФормыЭлементКоллекции: +// ДанныеФормыКоллекция из ДанныеФормыЭлементКоллекции: // * Ссылка - ОпределяемыйТип.ЗначениеДоступа // * Представление - Строка // * Используется - Булево @@ -651,7 +651,7 @@ // См. УправлениеДоступомСлужебный.ПриСозданииНаСервереФормыРедактированияРазрешенныхЗначений // // Возвращаемое значение: -// ДанныеФормыКоллекция Из ДанныеФормыЭлементКоллекции: +// ДанныеФормыКоллекция из ДанныеФормыЭлементКоллекции: // * Имя - Строка // * Представление - Строка // @@ -667,7 +667,7 @@ // См. УправлениеДоступомСлужебный.ПриСозданииНаСервереФормыРедактированияРазрешенныхЗначений // // Возвращаемое значение: -// ДанныеФормыКоллекция Из ДанныеФормыЭлементКоллекции: +// ДанныеФормыКоллекция из ДанныеФормыЭлементКоллекции: // * ВидДоступа - ОпределяемыйТип.ЗначениеДоступа // * ТипЗначений - ОпределяемыйТип.ЗначениеДоступа // * ПредставлениеТипа - Строка diff --git a/SSL/src/CommonModules/УправлениеДоступомСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомСлужебныйПовтИсп/Module.bsl index 2a1238d6b..1859c9c11 100644 --- a/SSL/src/CommonModules/УправлениеДоступомСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомСлужебныйПовтИсп/Module.bsl @@ -129,7 +129,7 @@ // Только для внутреннего использования. // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип // * Значение - Булево - Истина // @@ -158,7 +158,7 @@ // строки начала имени подписки. // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип // * Значение - Булево // @@ -230,7 +230,7 @@ // Только для внутреннего использования. // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип // * Значение - ЛюбаяСсылка // @@ -254,7 +254,7 @@ // Только для внутреннего использования. // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип // * Значение - Строка // @@ -290,7 +290,7 @@ // Только для внутреннего использования. // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип // * Значение - Строка // @@ -399,7 +399,7 @@ КонецФункции // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип // * Значение - Массив из СправочникСсылка // @@ -433,7 +433,7 @@ КонецФункции // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип // * Значение - Булево // @@ -474,13 +474,13 @@ // Возвращаемое значение: // Структура: -// * ВедущиеСпискиПроверенные - Соответствие: +// * ВедущиеСпискиПроверенные - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - см. УправлениеДоступомСлужебный.СвойстваСпискаКакВедущего -// * ОграниченияСписков - Соответствие: +// * ОграниченияСписков - Соответствие из КлючИЗначение: // ** Ключ - Строка - полное имя списка // ** Значение - см. УправлениеДоступомСлужебный.РассчитанныеПараметрыОграничения -// * ИдентификаторыТранзакции - Соответствие: +// * ИдентификаторыТранзакции - Соответствие из КлючИЗначение: // ** Ключ - УникальныйИдентификатор - произвольный УИД. // ** Значение - Булево - значение Истина. // * ВсеВидыОграниченийПрав - Неопределено @@ -505,7 +505,7 @@ КонецФункции // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка - полное имя списка (таблицы). // * Значение - Булево - Истина - текст ограничения в модуле менеджера, // Ложь - текст ограничения в этом переопределяемом @@ -662,32 +662,64 @@ КонецФункции -Функция КоличествоОпорныхПолейРегистра(ИмяРегистра = "") Экспорт +Функция КоличествоОпорныхПолейРегистра(Знач ИмяРегистра = "") Экспорт Если ИмяРегистра = "" Тогда - МетаданныеРегистраКлючей = Метаданные.РегистрыСведений.КлючиДоступаКРегистрам; + ИмяРегистра = "КлючиДоступаКРегистрам"; + Измерения = Метаданные.РегистрыСведений.КлючиДоступаКРегистрам.Измерения; + Если Измерения.Количество() < 1 Или Измерения[0].Имя <> "Регистр" Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'В регистре сведений %1 + |первым измерением должно быть %2.'"), ИмяРегистра, "Регистр"); + КонецЕсли; + Если Измерения.Количество() < 2 Или Измерения[1].Имя <> "ВариантДоступа" Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'В регистре сведений %1 + |вторым измерением должно быть %2.'"), ИмяРегистра, "ВариантДоступа"); + КонецЕсли; + ИндексИзмеренияПоля = 2; Иначе - МетаданныеРегистраКлючей = Метаданные.РегистрыСведений[ИмяРегистра]; + Измерения = Метаданные.РегистрыСведений[ИмяРегистра].Измерения; + Если Измерения.Количество() < 1 Или Измерения[0].Имя <> "ВариантДоступа" Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'В регистре сведений %1 + |первым измерением должно быть %2.'"), ИмяРегистра, "ВариантДоступа"); + КонецЕсли; + ИндексИзмеренияПоля = 1; + КонецЕсли; + + ВариантДоступаТип = Измерения.ВариантДоступа.Тип; + + Если ВариантДоступаТип.Типы().Количество() <> 1 + Или Не ВариантДоступаТип.СодержитТип(Тип("Число")) + Или ВариантДоступаТип.КвалификаторыЧисла.ДопустимыйЗнак <> ДопустимыйЗнак.Неотрицательный + Или ВариантДоступаТип.КвалификаторыЧисла.Разрядность <> 4 + Или ВариантДоступаТип.КвалификаторыЧисла.РазрядностьДробнойЧасти <> 0 Тогда + + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'В регистре сведений %1 + |измерение %2 должно иметь тип Число(4,0,Неотрицательное).'"), + ИмяРегистра, "ВариантДоступа"); + КонецЕсли; + + Если Измерения.Количество() <= ИндексИзмеренияПоля + Или Измерения[ИндексИзмеренияПоля].Имя <> "Поле1" Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'В регистре сведений %1 + |после измерения %2 должно быть %3.'"), ИмяРегистра, "ВариантДоступа", "Поле1"); КонецЕсли; ПоследнийНомерПоля = 0; - Для Каждого Измерение Из МетаданныеРегистраКлючей.Измерения Цикл - Если Измерение.Имя = "Регистр" Тогда - Если ИмяРегистра = "" Тогда - Продолжить; - КонецЕсли; - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'В отдельном регистре сведений %1 - |не должно быть измерения %2.'"), ИмяРегистра, "Регистр"); - КонецЕсли; - Если Измерение.Имя = "ДляВнешнихПользователей" Тогда + Для Каждого Измерение Из Измерения Цикл + Если Измерение.Имя = "Регистр" Или Измерение.Имя = "ВариантДоступа" Тогда Продолжить; КонецЕсли; - Если СтрДлина(Измерение.Имя) <> 5 Или Не СтрНачинаетсяС(Измерение.Имя, "Поле") Тогда - Прервать; - КонецЕсли; - Если Прав(Измерение.Имя, 1) <> XMLСтрока(ПоследнийНомерПоля + 1) Тогда - Прервать; + ИмяПоля = "Поле" + XMLСтрока(ПоследнийНомерПоля + 1); + Если Измерение.Имя <> ИмяПоля Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'В регистре сведений %1 + |измерения вида %2<номер> должны идти по порядку + |а на месте измерения %3 обнаружено %4'"), ИмяРегистра, "Поле", ИмяПоля, Измерение.Имя); КонецЕсли; ПоследнийНомерПоля = ПоследнийНомерПоля + 1; КонецЦикла; @@ -854,7 +886,7 @@ Функция ПоляВРегистреСимволовМетаданных(ПолноеИмя, Поля) Экспорт СхемаЗапроса = Новый СхемаЗапроса; - СхемаЗапроса.УстановитьТекстЗапроса("ВЫБРАТЬ * ИЗ " + ПолноеИмя); + СхемаЗапроса.УстановитьТекстЗапроса(СтрЗаменить("ВЫБРАТЬ * ИЗ &ИмяТаблицы", "&ИмяТаблицы", ПолноеИмя)); ПоляВМетаданных = Новый Соответствие; Для Каждого Колонка Из СхемаЗапроса.ПакетЗапросов[0].Колонки Цикл diff --git a/SSL/src/CommonModules/УправлениеИтогамиИАгрегатамиСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеИтогамиИАгрегатамиСлужебный/Module.bsl index 405cefc0f..995b943af 100644 --- a/SSL/src/CommonModules/УправлениеИтогамиИАгрегатамиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеИтогамиИАгрегатамиСлужебный/Module.bsl @@ -67,10 +67,6 @@ // Обработчики событий подсистем конфигурации. // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -100,9 +96,7 @@ КонецПроцедуры -// Параметры: -// ШаблоныЗаданий - см. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.ШаблоныЗаданий -// +// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт ШаблоныЗаданий.Добавить("ОбновлениеАгрегатов"); @@ -111,10 +105,8 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. -// // Параметры: -// ТекущиеДела - см. ТекущиеДелаСлужебный.ТекущиеДела +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт Если Не РежимРаботыЛокальныйФайловый() Тогда diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформацией/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформацией/Module.bsl index a0910700b..b6bd17db8 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформацией/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформацией/Module.bsl @@ -14,31 +14,40 @@ // Возвращает таблицу, содержащую контактную информацию нескольких объектов. // // Параметры: -// СсылкиИлиОбъекты - Массив - владельцы контактной информации. -// ТипыКонтактнойИнформации - Массив -// - ПеречислениеСсылка.ТипыКонтактнойИнформации - если указаны, то будет получена -// контактная информация только этих типов. -// ВидыКонтактнойИнформации - Массив -// - СправочникСсылка.ВидыКонтактнойИнформации - если указаны, то будет возвращена -// контактная информация только этих видов контактной информации. -// Дата - Дата - необязательный, дата с которой действует запись контактной информации, -// используется при хранении истории изменения контактной информации. -// Если владелец хранит историю изменений, то при несоответствии параметра -// дате будет вызвано исключение. +// Источник - Массив - владельцы контактной информации. +// Отбор - см. ОтборКонтактнойИнформации. // // Возвращаемое значение: -// ТаблицаЗначений - таблица с контактной информацией объектов содержащая колонки: -// * Объект - Ссылка - владелец контактной информации. -// * Вид - СправочникСсылка.ВидыКонтактнойИнформации - вид контактной информации. -// * Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип контактной информации. -// * Значение - Строка - контактная информация во внутреннем формате JSON. -// * Представление - Строка - представление контактной информации. -// * Дата - Дата - дата, с которой действует запись контактной информации. -// * ИдентификаторСтрокиТабличнойЧасти - Число - идентификатор строки этой табличной части -// * ЗначенияПолей - Строка - устаревший XML, соответствующий XDTO пакетам КонтактнаяИнформация или Адрес. Для -// обратной совместимости. +// ТаблицаЗначений - контактная информация объектов: +// * Объект - ЛюбаяСсылка - владелец контактной информации. +// * Вид - СправочникСсылка.ВидыКонтактнойИнформации - вид контактной информации. +// * Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип контактной информации. +// * Значение - Строка - контактная информация во внутреннем формате JSON. +// * Представление - Строка - представление контактной информации. +// * Дата - Дата - дата, с которой действует запись контактной информации. +// * ИдентификаторСтрокиТабличнойЧасти - Число - идентификатор строки этой табличной части +// * ЗначенияПолей - Строка - устаревший XML, соответствующий XDTO пакетам КонтактнаяИнформация или Адрес. Для +// обратной совместимости. // -Функция КонтактнаяИнформацияОбъектов(СсылкиИлиОбъекты, Знач ТипыКонтактнойИнформации = Неопределено, Знач ВидыКонтактнойИнформации = Неопределено, Дата = Неопределено) Экспорт +Функция КонтактнаяИнформация(Источник, Отбор) Экспорт + + Перем ТипыКонтактнойИнформации, ВидыКонтактнойИнформации, Дата; + + Если ТипЗнч(Источник) = Тип("Массив") Тогда + СсылкиИлиОбъекты = Источник; + Иначе + СсылкиИлиОбъекты = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Источник); + КонецЕсли; + + Если ЗначениеЗаполнено(Отбор.ТипыКонтактнойИнформации) Тогда + ТипыКонтактнойИнформации = Отбор.ТипыКонтактнойИнформации; + КонецЕсли; + + Если ЗначениеЗаполнено(Отбор.ВидыКонтактнойИнформации) Тогда + ВидыКонтактнойИнформации = Отбор.ВидыКонтактнойИнформации; + КонецЕсли; + + Дата = Отбор.Дата; Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; @@ -86,10 +95,93 @@ КонецЕсли; КонецЦикла; + КодЯзыка = СтрРазделить(Отбор.КодЯзыка, "_", Истина)[0]; + Если ЗначениеЗаполнено(КодЯзыка) И КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда + Для Каждого СтрокаТаблицы Из Результат Цикл + Если СтрокаТаблицы.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда + СтрокаТаблицы.Представление = СтроковыеФункции.СтрокаЛатиницей(СтрокаТаблицы.Представление); + КонецЕсли; + КонецЦикла; + КонецЕсли; + Возврат Результат; КонецФункции +// Конструктор параметра Отбор для функции КонтактнаяИнформация. +// +// Возвращаемое значение: +// Структура: +// * ТипыКонтактнойИнформации - Массив из ПеречислениеСсылка.ТипыКонтактнойИнформации - отбор по типу контактной информации. +// * ВидыКонтактнойИнформации - Массив из СправочникСсылка.ВидыКонтактнойИнформации - отбор по видам контактной информации. +// * Дата - Дата - дата с которой действует запись контактной информации, используется при хранении +// истории изменения контактной информации. Если владелец хранит историю изменений, +// то при несоответствии параметра дате будет вызвано исключение. +// * КодЯзыка - Строка - код языка, на котором необходимо получить представление контактной информации. +// Представления контактной информации типа Адрес будет получено путем транслитерации, на остальные +// типы контактной информации данных параметр не влияет. +// +Функция ОтборКонтактнойИнформации() Экспорт + + Отбор = Новый Структура; + Отбор.Вставить("ТипыКонтактнойИнформации", Новый Массив); + Отбор.Вставить("ВидыКонтактнойИнформации", Новый Массив); + Отбор.Вставить("Дата"); + Отбор.Вставить("КодЯзыка"); + + Возврат Отбор; + +КонецФункции + +// Возвращает таблицу, содержащую контактную информацию нескольких объектов. +// +// Параметры: +// СсылкиИлиОбъекты - Массив - владельцы контактной информации. +// ТипыКонтактнойИнформации - Массив +// - ПеречислениеСсылка.ТипыКонтактнойИнформации - если указаны, то будет получена +// контактная информация только этих типов. +// ВидыКонтактнойИнформации - Массив +// - СправочникСсылка.ВидыКонтактнойИнформации - если указаны, то будет возвращена +// контактная информация только этих видов контактной информации. +// Дата - Дата - дата с которой действует запись контактной информации, +// используется при хранении истории изменения контактной информации. +// Если владелец хранит историю изменений, то при несоответствии параметра +// дате будет вызвано исключение. +// +// Возвращаемое значение: +// ТаблицаЗначений - таблица с контактной информацией объектов содержащая колонки: +// * Объект - ЛюбаяСсылка - владелец контактной информации. +// * Вид - СправочникСсылка.ВидыКонтактнойИнформации - вид контактной информации. +// * Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип контактной информации. +// * Значение - Строка - контактная информация во внутреннем формате JSON. +// * Представление - Строка - представление контактной информации. +// * Дата - Дата - дата, с которой действует запись контактной информации. +// * ИдентификаторСтрокиТабличнойЧасти - Число - идентификатор строки этой табличной части +// * ЗначенияПолей - Строка - устаревший XML, соответствующий XDTO пакетам КонтактнаяИнформация или Адрес. Для +// обратной совместимости. +// +Функция КонтактнаяИнформацияОбъектов(СсылкиИлиОбъекты, Знач ТипыКонтактнойИнформации = Неопределено, Знач ВидыКонтактнойИнформации = Неопределено, Дата = Неопределено) Экспорт + + Отбор = ОтборКонтактнойИнформации(); + + Если ТипЗнч(ТипыКонтактнойИнформации) = Тип("Массив") Тогда + Отбор.ТипыКонтактнойИнформации = ТипыКонтактнойИнформации; + ИначеЕсли ЗначениеЗаполнено(ТипыКонтактнойИнформации) Тогда + Отбор.ТипыКонтактнойИнформации.Добавить(ТипыКонтактнойИнформации); + КонецЕсли; + + Если ТипЗнч(ВидыКонтактнойИнформации) = Тип("Массив") Тогда + Отбор.ВидыКонтактнойИнформации = ВидыКонтактнойИнформации; + ИначеЕсли ЗначениеЗаполнено(ВидыКонтактнойИнформации) Тогда + Отбор.ВидыКонтактнойИнформации.Добавить(ВидыКонтактнойИнформации); + КонецЕсли; + + Отбор.Дата = Дата; + + Возврат КонтактнаяИнформация(СсылкиИлиОбъекты, Отбор); + +КонецФункции + // Возвращает таблицу, содержащую контактную информацию объекта. // Поведение, при котором возвращалось представление контактной информации, теперь считается устаревшим // и сохранено для обратной совместимости. Для получения представления контактной информации рекомендуется @@ -99,8 +191,9 @@ // СсылкаИлиОбъект - ЛюбаяСсылка // - Объект - ссылка или объект-владелец контактной информации (организация, // контрагент, партнер и т.д.). -// ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации - необязательный, отбор по виду контактной информации. -// Дата - Дата - необязательный, дата с которой действует запись контактной информации, +// ВидИлиТипКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации - отбор по виду контактной информации. +// - ПеречислениеСсылка.ТипыКонтактнойИнформации - отбор по типу контактной информации. +// Дата - Дата - дата с которой действует запись контактной информации, // используется при хранении истории изменения контактной информации. // Если владелец хранит историю изменений, то при несоответствии параметра // дате будет вызвано исключение. @@ -109,7 +202,7 @@ // // Возвращаемое значение: // ТаблицаЗначений - таблица с контактной информацией объекта содержащая колонки: -// * Объект - Ссылка - владелец контактной информации. +// * Объект - ЛюбаяСсылка - владелец контактной информации. // * Вид - СправочникСсылка.ВидыКонтактнойИнформации - вид контактной информации. // * Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип контактной информации. // * Значение - Строка - контактная информация во внутреннем формате JSON. @@ -119,7 +212,15 @@ // * ЗначенияПолей - Строка - устаревший XML, соответствующий XDTO пакетам КонтактнаяИнформация или Адрес. Для // обратной совместимости. // -Функция КонтактнаяИнформацияОбъекта(СсылкаИлиОбъект, ВидКонтактнойИнформации = Неопределено, Дата = Неопределено, ТолькоПредставление = Истина) Экспорт +Функция КонтактнаяИнформацияОбъекта(СсылкаИлиОбъект, ВидИлиТипКонтактнойИнформации = Неопределено, Дата = Неопределено, ТолькоПредставление = Истина) Экспорт + + ТипКонтактнойИнформации = Неопределено; + ВидКонтактнойИнформации = Неопределено; + Если ТипЗнч(ВидИлиТипКонтактнойИнформации) = Тип("ПеречислениеСсылка.ТипыКонтактнойИнформации") Тогда + ТипКонтактнойИнформации = ВидИлиТипКонтактнойИнформации; + ИначеЕсли ТипЗнч(ВидИлиТипКонтактнойИнформации) = Тип("СправочникСсылка.ВидыКонтактнойИнформации") Тогда + ВидКонтактнойИнформации = ВидИлиТипКонтактнойИнформации; + КонецЕсли; ТипОбъекта = ТипЗнч(СсылкаИлиОбъект); Если НЕ ОбщегоНазначения.ЭтоСсылка(ТипОбъекта) Тогда @@ -128,15 +229,16 @@ Если СодержитКонтактнуюИнформацию(ТипОбъекта) Тогда Для каждого СтрокаКонтактнойИнформации Из СсылкаИлиОбъект.КонтактнаяИнформация Цикл - Если ВидКонтактнойИнформации = Неопределено + Если ВидИлиТипКонтактнойИнформации = Неопределено + ИЛИ СтрокаКонтактнойИнформации.Тип = ТипКонтактнойИнформации ИЛИ СтрокаКонтактнойИнформации.Вид = ВидКонтактнойИнформации Тогда - НоваяСтрока = Результат.Добавить(); - ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаКонтактнойИнформации); - Если ПустаяСтрока(НоваяСтрока.Значение) - И ЗначениеЗаполнено(НоваяСтрока.ЗначенияПолей) Тогда - НоваяСтрока.Значение = КонтактнаяИнформацияВJSON(НоваяСтрока.ЗначенияПолей, СтрокаКонтактнойИнформации.Тип); - КонецЕсли; - НоваяСтрока.Объект = СсылкаИлиОбъект; + НоваяСтрока = Результат.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаКонтактнойИнформации); + Если ПустаяСтрока(НоваяСтрока.Значение) + И ЗначениеЗаполнено(НоваяСтрока.ЗначенияПолей) Тогда + НоваяСтрока.Значение = КонтактнаяИнформацияВJSON(НоваяСтрока.ЗначенияПолей, СтрокаКонтактнойИнформации.Тип); + КонецЕсли; + НоваяСтрока.Объект = СсылкаИлиОбъект; КонецЕсли; КонецЦикла; @@ -158,11 +260,11 @@ МассивОбъектов = Новый Массив; МассивОбъектов.Добавить(СсылкаИлиОбъект.Ссылка); - Если НЕ ЗначениеЗаполнено(ВидКонтактнойИнформации) Тогда + Если НЕ ЗначениеЗаполнено(ВидИлиТипКонтактнойИнформации) Тогда Возврат ""; КонецЕсли; - КонтактнаяИнформацияОбъекта = КонтактнаяИнформацияОбъектов(МассивОбъектов,, ВидКонтактнойИнформации, Дата); + КонтактнаяИнформацияОбъекта = КонтактнаяИнформацияОбъектов(МассивОбъектов, ТипКонтактнойИнформации, ВидКонтактнойИнформации, Дата); Если КонтактнаяИнформацияОбъекта.Количество() > 0 Тогда Возврат КонтактнаяИнформацияОбъекта[0].Представление; @@ -173,12 +275,17 @@ СсылкиИлиОбъекты = Новый Массив; СсылкиИлиОбъекты.Добавить(СсылкаИлиОбъект); - Если ТипЗнч(ВидКонтактнойИнформации) = Тип("СправочникСсылка.ВидыКонтактнойИнформации") Тогда + Если ТипКонтактнойИнформации <> Неопределено Тогда + ТипыКонтактнойИнформации = Новый Массив; + ТипыКонтактнойИнформации.Добавить(ТипКонтактнойИнформации); + ВидыКонтактнойИнформации = Неопределено; + ИначеЕсли ВидКонтактнойИнформации <> Неопределено Тогда ВидыКонтактнойИнформации = Новый Массив; ВидыКонтактнойИнформации.Добавить(ВидКонтактнойИнформации); ТипыКонтактнойИнформации = Новый Массив; ТипыКонтактнойИнформации.Добавить(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидКонтактнойИнформации, "Тип")); Иначе + ТипыКонтактнойИнформации = Неопределено; ВидыКонтактнойИнформации = Неопределено; КонецЕсли; @@ -390,6 +497,8 @@ // владелец будет записан. Если передан объект, то контактная информация будет // добавлена без записи. Для сохранения изменений объект необходимо будет // записать отдельно. +// - ДанныеФормыСтруктура: +// * Ссылка - СправочникСсылка - ссылка на объект-владельца контактной информации // КонтактнаяИнформация - ТаблицаЗначений - таблица, содержащая контактную информацию // Описание колонок см. функцию НоваяКонтактнаяИнформация. // Важно! Если передана пустая таблица значений и указан режим замещения, то @@ -931,7 +1040,7 @@ // Параметры: // МенеджерВременныхТаблиц - МенеджерВременныхТаблиц - в менеджере создается временная таблица // ВТКонтактнаяИнформация с полями: -// * Объект - Ссылка - владелец контактной информации. +// * Объект - ЛюбаяСсылка - владелец контактной информации. // * Вид - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на вид контактной информации. // * Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип контактной информации. // * ЗначенияПолей - Строка - XML соответствующий XDTO пакету КонтактнаяИнформация или Адрес. @@ -966,7 +1075,7 @@ Запрос = Новый Запрос(); ТекстЗапросаПодготовкаДанных = ""; - СтрокаРАЗРЕШЕННЫЕ = " РАЗРЕШЕННЫЕ "; + СтрокаРАЗРЕШЕННЫЕ = " РАЗРЕШЕННЫЕ "; // @Query-part-1 СтрокаВременнойТаблицы = "ПОМЕСТИТЬ ВТКонтактнаяИнформация"; Для каждого ОбъектСКонтактнойИнформацией Из ОбъектыСГруппировкойПоТипам Цикл @@ -1021,13 +1130,13 @@ |требуется указывать дату, с которой действует запись контактной информации.'"); КонецЕсли; - УсловияОтбора = ?(ВидыКонтактнойИнформации = Неопределено, "", " КонтактнаяИнформация.Вид В (&ВидыКонтактнойИнформации)"); + УсловияОтбора = ?(ВидыКонтактнойИнформации = Неопределено, "", " КонтактнаяИнформация.Вид В (&ВидыКонтактнойИнформации)"); // @query-part-2 Если ПустаяСтрока(УсловияОтбора) Тогда УсловиеИ = ""; Иначе УсловиеИ = " И "; КонецЕсли; - УсловияОтбора = УсловияОтбора + ?(ТипыКонтактнойИнформации = Неопределено, "", УсловиеИ + " КонтактнаяИнформация.Тип В (&ТипыКонтактнойИнформации)"); + УсловияОтбора = УсловияОтбора + ?(ТипыКонтактнойИнформации = Неопределено, "", УсловиеИ + " КонтактнаяИнформация.Тип В (&ТипыКонтактнойИнформации)"); // @query-part-2 Если НЕ ПустаяСтрока(УсловияОтбора) Тогда УсловияОтбора = " ГДЕ " + УсловияОтбора; КонецЕсли; @@ -1067,9 +1176,14 @@ | КонтактнаяИнформация.Вид <> ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ПустаяСсылка) | И КонтактнаяИнформация.Тип <> ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.ПустаяСсылка) | И КонтактнаяИнформация.Ссылка В (&МассивОбъектов" + ИмяТаблицы + ") - | " + ?(ТипыКонтактнойИнформации = Неопределено, "", "И КонтактнаяИнформация.Тип В (&ТипыКонтактнойИнформации)") + " - | " + ?(ВидыКонтактнойИнформации = Неопределено, "", "И КонтактнаяИнформация.Вид В (&ВидыКонтактнойИнформации)") + " + | И &УсловиеГдеТипКонтактнойИнформации + | И &УсловиеГдеВидКонтактнойИнформации |"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеГдеТипКонтактнойИнформации", + ?(ТипыКонтактнойИнформации = Неопределено, "ИСТИНА", "КонтактнаяИнформация.Тип В (&ТипыКонтактнойИнформации)")); // @query-part-2 + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеГдеВидКонтактнойИнформации", + ?(ВидыКонтактнойИнформации = Неопределено, "ИСТИНА", "КонтактнаяИнформация.Вид В (&ВидыКонтактнойИнформации)")); // @query-part-2 + КонецЕсли; СтрокаРАЗРЕШЕННЫЕ =""; СтрокаВременнойТаблицы = ""; @@ -1283,7 +1397,7 @@ // // Параметры: // КодИлиНаименование - Строка - код страны, код Альфа2, код Альфа3 или наименование страны, в т.ч. международное. -// ДанныеЗаполнения - Структура - необязательный. Данные для заполнения в случае создания нового элемента. +// ДанныеЗаполнения - Структура - данные для заполнения в случае создания нового элемента. // Ключи структуры соответствуют реквизитам справочника СтраныМира. // // Возвращаемое значение: @@ -1578,13 +1692,13 @@ | 0 КАК ИдентификаторСтрокиТабличнойЧасти, | ЛОЖЬ КАК ЭтоИсторическаяКонтактнаяИнформация |ИЗ - | &ПолноеИмяОбъектаМетаданных.КонтактнаяИнформация КАК КонтактнаяИнформация + | &ПутьКТаблицеКонтактнойИнформации КАК КонтактнаяИнформация | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации | ПО (КонтактнаяИнформация.Вид = ВидыКонтактнойИнформации.Ссылка) |ГДЕ | КонтактнаяИнформация.Ссылка = &Ссылка УПОРЯДОЧИТЬ ПО Вид, ДействуетС"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяОбъектаМетаданных", ПолноеИмяОбъектаМетаданных); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПутьКТаблицеКонтактнойИнформации", ПолноеИмяОбъектаМетаданных + ".КонтактнаяИнформация"); Если ЕстьКолонкаИдентификаторСтрокиТабличнойЧасти Тогда ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "0 КАК ИдентификаторСтрокиТабличнойЧасти", @@ -1778,14 +1892,14 @@ ИменаТабличныхЧастейПоВидамКИ = Неопределено; Отбор = Новый Структура("ИмяЭлементаДляРазмещения", ИмяЭлементаДляРазмещения); - КонтактнаяИнформацияОписаниеДополнительныхРеквизитов = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор); + КонтактнаяИнформацияОписаниеДополнительныхРеквизитов = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).НайтиСтроки(Отбор); Для Каждого РеквизитФормы Из КонтактнаяИнформацияОписаниеДополнительныхРеквизитов Цикл Если РеквизитФормы.ЭтоРеквизитТабличнойЧасти Тогда Если ИменаТабличныхЧастейПоВидамКИ = Неопределено Тогда Отбор = Новый Структура("ЭтоРеквизитТабличнойЧасти", Истина); - ВидыКИТабличнойЧасти = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.Выгрузить(Отбор, "Вид"); + ВидыКИТабличнойЧасти = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).Выгрузить(Отбор, "Вид"); ИменаТабличныхЧастейПоВидамКИ = ИменаТабличныхЧастейПоВидамКИ(ВидыКИТабличнойЧасти, ИмяОбъекта); КонецЕсли; @@ -1809,7 +1923,7 @@ КонецЕсли; КонецЦикла; Для Каждого РеквизитФормы Из КонтактнаяИнформацияОписаниеДополнительныхРеквизитов Цикл - Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.Удалить(РеквизитФормы); + УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).Удалить(РеквизитФормы); КонецЦикла; КонецЕсли; Форма.ИзменитьРеквизиты(, МассивУдаляемыхРеквизитов); @@ -1843,7 +1957,7 @@ // Только для контактной информации в составе табличной части. Отбор = Новый Структура("ЭтоРеквизитТабличнойЧасти", Истина); - СтрокиТабличнойЧасти = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.Выгрузить(Отбор); + СтрокиТабличнойЧасти = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).Выгрузить(Отбор); ИменаТабличныхЧастейПоВидамКИ = ИменаТабличныхЧастейПоВидамКИ(СтрокиТабличнойЧасти, ИмяОбъекта); Для Каждого СтрокаТаблицы Из СтрокиТабличнойЧасти Цикл @@ -1891,7 +2005,7 @@ ИменаТабличныхЧастейПоВидамКИ = Неопределено; - Для Каждого СтрокаТаблицы Из Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов Цикл + Для Каждого СтрокаТаблицы Из УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма) Цикл ВидИнформации = СтрокаТаблицы.Вид; ТипИнформации = СтрокаТаблицы.Тип; @@ -1904,7 +2018,7 @@ Если ИменаТабличныхЧастейПоВидамКИ = Неопределено Тогда Отбор = Новый Структура("ЭтоРеквизитТабличнойЧасти", Истина); - ВидыКИТабличнойЧасти = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.Выгрузить(Отбор , "Вид"); + ВидыКИТабличнойЧасти = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).Выгрузить(Отбор , "Вид"); ИменаТабличныхЧастейПоВидамКИ = ИменаТабличныхЧастейПоВидамКИ(ВидыКИТабличнойЧасти, ИмяОбъекта); КонецЕсли; @@ -2045,8 +2159,19 @@ // // Параметры: // Форма - ФормаКлиентскогоПриложения - форма объекта-владельца, предназначенная для вывода контактной информации. -// Объект - Произвольный - объект-владелец контактной информации. -// Результат - Произвольный - необязательный служебный реквизит, полученный из предыдущего обработчика события. +// Объект - ДанныеФормыСтруктура - объект-владелец контактной информации. +// Результат - Неопределено - служебный реквизит, полученный из предыдущего обработчика события. +// - Структура: - набор свойств динамический: +// * ПоменятьМестамиЭлементы - Булево - если значения элементов меняются местами. +// * ПервыйЭлемент - Строка - если значения элементов меняются местами. +// * ВторойЭлемент - Строка - если значения элементов меняются местами. +// * ОбновитьКонтекстноеМеню - Булево - если выполняется обновление меню +// * ИмяРеквизита - Строка - если выполняется обновление меню +// * ДобавляемыйВид - Булево - при добавлении нового элемента +// * ЭтоДобавлениеКомментария - Булево - при добавлении комментария +// * ОбновитьКонтекстноеМеню - Булево - при обновлении контекстного меню +// * ИмяЭлементаДляРазмещения - Строка - если добавляет новый элемент, комментарий или обновляется контекстное меню +// * Комментарий - Строка - при обновлении контекстного меню // // Возвращаемое значение: // Неопределено - значение не используется, обратная совместимость. @@ -2064,7 +2189,7 @@ ИначеЕсли Результат.Свойство("ПоменятьМестамиЭлементы") Тогда Отбор = Новый Структура("ИмяРеквизита", Результат.ПервыйЭлемент); - ОписаниеКонтактнойИнформации = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов; + ОписаниеКонтактнойИнформации = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма); ПервыйЭлемент = ОписаниеКонтактнойИнформации.НайтиСтроки(Отбор)[0]; Отбор = Новый Структура("ИмяРеквизита", Результат.ВторойЭлемент); ВторойЭлемент = ОписаниеКонтактнойИнформации.НайтиСтроки(Отбор)[0]; @@ -2091,7 +2216,7 @@ ОбновитьКонтекстноеМеню(Форма, Результат.ИмяЭлементаДляРазмещения); Если Результат.Свойство("ИмяРеквизита") Тогда - ОписаниеКонтактнойИнформации = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов; + ОписаниеКонтактнойИнформации = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма); Отбор = Новый Структура("ИмяРеквизита", Результат.ИмяРеквизита); НайденнаяСтрока = ОписаниеКонтактнойИнформации.НайтиСтроки(Отбор)[0]; Если УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВJSON(НайденнаяСтрока.Значение) Тогда @@ -2175,8 +2300,8 @@ ПараметрыКонтактнойИнформации = ПараметрыКонтактнойИнформацииФормы(Форма.ПараметрыКонтактнойИнформации, ИмяЭлементаДляРазмещения); - КонтактнаяИнформацияОписаниеДополнительныхРеквизитов = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.Выгрузить(, "Вид, Представление, Значение, Комментарий"); - Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.Очистить(); + КонтактнаяИнформацияОписаниеДополнительныхРеквизитов = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).Выгрузить(, "Вид, Представление, Значение, Комментарий"); + УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).Очистить(); ПоложениеЗаголовкаКИ = ?(ЗначениеЗаполнено(ПараметрыКонтактнойИнформации.ПоложениеЗаголовка), ПредопределенноеЗначение(ПараметрыКонтактнойИнформации.ПоложениеЗаголовка), ПоложениеЗаголовкаЭлементаФормы.Лево); ПриСозданииНаСервере(Форма, Объект, ИмяЭлементаДляРазмещения, ПоложениеЗаголовкаКИ, ПараметрыКонтактнойИнформации.ИсключаемыеВиды); @@ -2185,7 +2310,7 @@ Для Каждого ВидКонтактнойИнформации Из ПараметрыКонтактнойИнформации.ИсключаемыеВиды Цикл Отбор = Новый Структура("Вид", ВидКонтактнойИнформации); - МассивСтрок = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор); + МассивСтрок = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).НайтиСтроки(Отбор); Если МассивСтрок.Количество() > 0 Тогда СохраненноеЗначение = КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор)[0]; @@ -2796,8 +2921,8 @@ // Параметры: // Объект - ЛюбаяСсылка - ссылка на объект конфигурации, содержащий табличную часть контактная информация. // Значение - Строка - контактная информация в внутреннем формате JSON. -// ВидИнформации - Справочник.ВидыКонтактнойИнформация - ссылка на вид контактной информации. -// ТипИнформации - Перечисление.ТипыКонтактнойИнформация - тип контактной информации. +// ВидИнформации - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на вид контактной информации. +// ТипИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип контактной информации. // ИдентификаторСтроки - Число - идентификатор строки табличной части. // Дата - Дата - дата, с которой действует запись контактной информации, // используется при хранении истории изменения контактной информации. @@ -2861,7 +2986,7 @@ // // Параметры: // Параметры - Структура - параметры обработчика обновления. -// РазмерПорции - Число - необязательный параметр, размер порции обрабатываемых данных за один запуск. +// РазмерПорции - Число - размер порции обрабатываемых данных за один запуск. // Процедура ОбновитьКонтактнуюИнформациюДляСписковОтложенно(Параметры, РазмерПорции = 1000) Экспорт @@ -2894,7 +3019,7 @@ | КОЛИЧЕСТВО(ТаблицаСКонтактнойИнформацией.Ссылка) КАК Количество, | ТИПЗНАЧЕНИЯ(ТаблицаСКонтактнойИнформацией.Ссылка) КАК Ссылка |ИЗ - | %1.%2 КАК ТаблицаСКонтактнойИнформацией + | &ТаблицаСКонтактнойИнформацией КАК ТаблицаСКонтактнойИнформацией | СГРУППИРОВАТЬ ПО | ТИПЗНАЧЕНИЯ(ТаблицаСКонтактнойИнформацией.Ссылка)"; @@ -2905,7 +3030,8 @@ Если Метаданные.Справочники.Найти(ИмяОбъекта) <> Неопределено Тогда КонтактнаяИнформация = Метаданные.Справочники[ИмяОбъекта].ТабличныеЧасти.КонтактнаяИнформация; Если КонтактнаяИнформация.Реквизиты.Найти("ВидДляСписка") <> Неопределено Тогда - ТекстЗапроса = ТекстЗапроса + Разделитель + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонЗапроса, "Справочник", ИмяОбъекта); + ТекстЗапроса = ТекстЗапроса + Разделитель + + СтрЗаменить(ШаблонЗапроса, "&ТаблицаСКонтактнойИнформацией", "Справочник." + ИмяОбъекта); Разделитель = " ОБЪЕДИНИТЬ ВСЕ "; КонецЕсли; КонецЕсли; @@ -2915,7 +3041,8 @@ Если Метаданные.Документы.Найти(ИмяОбъекта) <> Неопределено Тогда КонтактнаяИнформация = Метаданные.Документы[ИмяОбъекта].ТабличныеЧасти.КонтактнаяИнформация; Если КонтактнаяИнформация.Реквизиты.Найти("ВидДляСписка") <> Неопределено Тогда - ТекстЗапроса = ТекстЗапроса + Разделитель + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонЗапроса, "Документ", ИмяОбъекта); + ТекстЗапроса = ТекстЗапроса + Разделитель + + СтрЗаменить(ШаблонЗапроса, "&ТаблицаСКонтактнойИнформацией", "Документ." + ИмяОбъекта); Разделитель = " ОБЪЕДИНИТЬ ВСЕ "; КонецЕсли; КонецЕсли; @@ -2943,10 +3070,10 @@ КонецЕсли; ПолноеИмяОбъектаСВидомДляСписка = Метаданные.НайтиПоТипу(ОбъектыСВидомДляСписка.Получить(0)).ПолноеИмя(); - ТекстЗапроса = " ВЫБРАТЬ ПЕРВЫЕ " + Формат(РазмерПорции, "ЧГ=0") + " + ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1234 | КонтактнаяИнформация.Ссылка КАК Ссылка |ИЗ - | " + ПолноеИмяОбъектаСВидомДляСписка + ".КонтактнаяИнформация КАК КонтактнаяИнформация + | &КонтактнаяИнформация КАК КонтактнаяИнформация | |СГРУППИРОВАТЬ ПО | КонтактнаяИнформация.Ссылка @@ -2958,6 +3085,9 @@ | ИНАЧЕ 1 | КОНЕЦ) = 0"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "1234", Формат(РазмерПорции, "ЧГ=0")); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&КонтактнаяИнформация", ПолноеИмяОбъектаСВидомДляСписка + ".КонтактнаяИнформация"); + Запрос = Новый Запрос(ТекстЗапроса); РезультатЗапроса = Запрос.Выполнить().Выбрать(); Количество = РезультатЗапроса.Количество(); @@ -3064,7 +3194,7 @@ // // Параметры: // Форма - ФормаКлиентскогоПриложения - передаваемая форма. -// Элементы - Соответствие - список видов контактной информации, для которых устанавливается доступ: +// Элементы - Соответствие из КлючИЗначение - список видов контактной информации, для которых устанавливается доступ: // ** Ключ - ОбъектМетаданных - подсистема, в которой размещается отчет или вариант отчета. // ** Значение - Булево - если ЛОЖЬ, то элемент доступен только для просмотра. // @@ -3072,7 +3202,7 @@ Для каждого Элемент Из Элементы Цикл Отбор = Новый Структура("Вид", Элемент.Ключ); - НайденныеСтроки = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор); + НайденныеСтроки = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).НайтиСтроки(Отбор); Если НайденныеСтроки <> Неопределено Тогда Для Каждого НайденнаяСтрока Из НайденныеСтроки Цикл ЭлементКИ = Форма.Элементы[НайденнаяСтрока.ИмяРеквизита]; @@ -3164,6 +3294,93 @@ КонецПроцедуры +Функция АдресЭлектроннойПочты(Знач ЗначениеКонтактнойИнформации) Экспорт + + КонтактнаяИнформацияВФорматеJSON = КонтактнаяИнформацияВJSON(ЗначениеКонтактнойИнформации, Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты); + + КонтактнаяИнформацияСтруктурой = УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям( + КонтактнаяИнформацияВФорматеJSON, Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты); + + Возврат КонтактнаяИнформацияСтруктурой.value; + +КонецФункции + +Функция НовыйАдресПочтыДляВосстановленияПароля(Знач СсылкаНаОбъект, Знач АдресЭлектроннойПочты) Экспорт + + Результат = Неопределено; + + Если СодержитКонтактнуюИнформацию(СсылкаНаОбъект) Тогда + ПочтаОбъекта = КонтактнаяИнформацияОбъекта(СсылкаНаОбъект, + Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты, ТекущаяДатаСеанса(), Ложь); + Если ПочтаОбъекта.Количество() > 0 Тогда + Почта = ПочтаОбъекта.Найти(АдресЭлектроннойПочты, "Представление"); + Если Почта = Неопределено Тогда + Результат = ПочтаОбъекта[0].Представление; + КонецЕсли; + Иначе + Результат = ""; + КонецЕсли; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// АдресЭлектроннойПочты - Строка +// ДоступноРедактирование - Булево +// ЭтоВнешнийПользователь - Булево +// Возвращаемое значение: +// Строка +// +Функция ОпределитьЭлементСПочтойДляВосстановленияПароля(Форма, АдресЭлектроннойПочты, ДоступноРедактирование, ЭтоВнешнийПользователь = Ложь) Экспорт + + Если ЭтоВнешнийПользователь Тогда + ТипИлиВидEmailПользователя = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты; + Иначе + ТипИлиВидEmailПользователя = ВидКонтактнойИнформацииПоИмени("EmailПользователя"); + КонецЕсли; + + ИмяРеквизита = ИмяРеквизитыДляВосстановленияПароля(Форма, АдресЭлектроннойПочты, ТипИлиВидEmailПользователя); + + Если ЗначениеЗаполнено(ИмяРеквизита) + И Форма.Элементы.Найти(ИмяРеквизита) <> Неопределено Тогда + Форма.Элементы[ИмяРеквизита].Родитель.Подсказка = НСтр("ru = 'Используется для восстановления пароля.'"); + Форма.Элементы[ИмяРеквизита].Родитель.ОтображениеПодсказки = ОтображениеПодсказки.ОтображатьСправа; + Форма.Элементы[ИмяРеквизита].Родитель.Доступность = ДоступноРедактирование; + КонецЕсли; + + Возврат ИмяРеквизита; + +КонецФункции + +// Восстановление пароля + +Функция СтрокаОписанияПочтыДляВосстановленияПароляИзДанныхФормы(Форма, ТипИлиВидEmailПользователя, АдресЭлектроннойПочты = "") Экспорт + + КонтактнаяИнформация = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма); + + Отбор = Новый Структура; + Если ТипЗнч(ТипИлиВидEmailПользователя) = Тип("СправочникСсылка.ВидыКонтактнойИнформации") Тогда + Отбор.Вставить("Вид", ТипИлиВидEmailПользователя); + ИначеЕсли ТипЗнч(ТипИлиВидEmailПользователя) = Тип("ПеречислениеСсылка.ТипыКонтактнойИнформации") Тогда + Отбор.Вставить("Тип", ТипИлиВидEmailПользователя); + КонецЕсли; + + Если ЗначениеЗаполнено(АдресЭлектроннойПочты) Тогда + Отбор.Вставить("Представление", АдресЭлектроннойПочты); + КонецЕсли; + + НайденныеСтроки = КонтактнаяИнформация.НайтиСтроки(Отбор); + Если НайденныеСтроки.Количество() > 0 Тогда + Возврат НайденныеСтроки[0]; + КонецЕсли; + + Возврат Неопределено; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -3190,6 +3407,40 @@ КонецПроцедуры +// Параметры: +// Форма - ФормаКлиентскогоПриложения +// ДобавляемыеРеквизиты - Массив из РеквизитФормы +// ИмяОбъекта - Строка +// ИсключаемыеВиды - Неопределено, Массив +// КонтактнаяИнформация - КоллекцияСтрокДереваЗначений: +// * Вид - СправочникСсылка.ВидыКонтактнойИнформации - вид контактной информации. +// * ИмяПредопределенногоВида - Строка +// * ИмяПредопределенныхДанных - Строка +// * Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип контактной информации. +// * ОбязательноеЗаполнение - Булево +// * ВидПоляДругое - Строка +// * РазрешитьВводНесколькихЗначений - Булево +// * Наименование - Строка +// * ХранитьИсториюИзменений - Булево +// * ВидРедактирования - Строка +// * ЭтоРеквизитТабличнойЧасти - Булево +// * РеквизитДопУпорядочивания - Булево +// * МеждународныйФорматАдреса - Булево +// * ВводитьНомерПоМаске - Булево +// * ЭтоИсторическаяКонтактнаяИнформация - Булево +// * Представление - Строка - представление контактной информации. +// * ЗначенияПолей - Строка - устаревший XML, соответствующий XDTO пакетам КонтактнаяИнформация или Адрес. Для +// обратной совместимости. +// * Значение - Строка. +// * ДействуетС - Дата. +// * НомерСтроки - Число. +// * ИдентификаторСтрокиТабличнойЧасти - Число. +// * ИмяРеквизита - Строка. +// * ПометкаУдаления - Булево. +// * Комментарий - Строка. +// ОтложеннаяИнициализация - Булево, Массив +// ОбработкаНавигационнойСсылки - Булево +// Процедура СоздатьРеквизитыКонтактнойИнформации(Знач Форма, Знач ДобавляемыеРеквизиты, Знач ИмяОбъекта, Знач ИсключаемыеВиды, Знач КонтактнаяИнформация, Знач ОтложеннаяИнициализация, Знач ОбработкаНавигационнойСсылки) @@ -3200,7 +3451,7 @@ ПредыдущийВид = Неопределено; ПорядковыйНомер = 1; - Для Каждого ОбъектКонтактнойИнформации Из КонтактнаяИнформация Цикл + Для Каждого ОбъектКонтактнойИнформации Из КонтактнаяИнформация Цикл // СтрокаТаблицыЗначений: см. КонтактнаяИнформацияОбъекта Если ОбъектКонтактнойИнформации.ПометкаУдаления И ПустаяСтрока(ОбъектКонтактнойИнформации.Значение) Тогда Продолжить; @@ -3217,7 +3468,7 @@ ОбъектКонтактнойИнформации.Строки.Сортировать("РеквизитДопУпорядочивания"); - Для Каждого СтрокаКИ Из ОбъектКонтактнойИнформации.Строки Цикл + Для Каждого СтрокаКИ Из ОбъектКонтактнойИнформации.Строки Цикл // СтрокаТаблицыЗначений: см. КонтактнаяИнформацияОбъекта ТекущийВид = СтрокаКИ.Вид; Если ТекущийВид <> ПредыдущийВид Тогда @@ -3381,7 +3632,7 @@ Возврат; КонецЕсли; - ОписаниеКонтактнойИнформации = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов; + ОписаниеКонтактнойИнформации = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма); Отбор = Новый Структура("ИмяРеквизита", ИмяРеквизита); НайденнаяСтрока = ОписаниеКонтактнойИнформации.НайтиСтроки(Отбор)[0]; @@ -3417,7 +3668,7 @@ ДобавляемыйВид = Результат.Вид; КонецЕсли; - ТаблицаКонтактнойИнформации = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов; + ТаблицаКонтактнойИнформации = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма); ОтборПоВиду = Новый Структура("Вид, ЭтоИсторическаяКонтактнаяИнформация", ДобавляемыйВид, Ложь); Если ДобавлениеНовогоЗначения Тогда @@ -3575,7 +3826,7 @@ ОбработкаНавигационнойСсылки = ПараметрыКонтактнойИнформации.ОбработкаНавигационнойСсылки; ЗаголовокСлева = ЗаголовокСлева(ПараметрыКонтактнойИнформации.ПоложениеЗаголовка); - Элемент = Форма.Элементы.Добавить(ИмяРеквизита, Тип("ПолеФормы"), Родитель); // РасширениеПоляФормыДляПоляВвода, РасширениеПоляФормыДляПоляНадписи + Элемент = Форма.Элементы.Добавить(ИмяРеквизита, Тип("ПолеФормы"), Родитель); // ПолеФормы, РасширениеПоляФормыДляПоляВвода, РасширениеПоляФормыДляПоляНадписи Элемент.ПутьКДанным = ИмяРеквизита; Если ИнформацияОВидеКИ.ВидРедактирования = "Диалог" И ИнформацияОВидеКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда @@ -3642,7 +3893,7 @@ Элемент.Маска = ИнформацияОВидеКИ.МаскаНомераТелефона; КонецЕсли; - ТаблицаКонтактнойИнформации = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов; + ТаблицаКонтактнойИнформации = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма); НайденныеСтроки = ТаблицаКонтактнойИнформации.НайтиСтроки(Новый Структура("ИмяРеквизита", ИмяРеквизита)); Если НайденныеСтроки.Количество() > 0 Тогда НайденныеСтроки[0].Маска = ИнформацияОВидеКИ.МаскаНомераТелефона; @@ -3973,7 +4224,7 @@ Процедура ДобавитьРеквизитВОписание(Форма, СтрокаКонтактнойИнформации, ДанныеВидаКонтактнойИнформации, ЭтоНовыйВидКИ, ЭтоРеквизитТабличнойЧасти = Ложь, ЗаполнятьЗначениеРеквизита = Истина, ИмяЭлементаДляРазмещения = "ГруппаКонтактнаяИнформация") - ТаблицаОписанияДополнительныхРеквизитов = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов; // ТаблицаЗначений + ТаблицаОписанияДополнительныхРеквизитов = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма); НоваяСтрока = ТаблицаОписанияДополнительныхРеквизитов.Добавить(); НоваяСтрока.ИмяРеквизита = СтрокаКонтактнойИнформации.ИмяРеквизита; НоваяСтрока.Вид = СтрокаКонтактнойИнформации.Вид; @@ -4126,7 +4377,7 @@ // Функция ЕстьДругиеЗаполненныеСтрокКИДанногоВида(Знач Форма, Знач ПроверяемаяСтрока, Знач ВидКонтактнойИнформации) - ВсеСтрокиЭтогоВида = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки( + ВсеСтрокиЭтогоВида = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).НайтиСтроки( Новый Структура("Вид", ВидКонтактнойИнформации)); Для Каждого СтрокаВида Из ВсеСтрокиЭтогоВида Цикл @@ -4522,35 +4773,35 @@ // Описание параметров вывода контактной информации // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// ИмяЭлементаДляРазмещения - Строка -// - Неопределено -// ПоложениеЗаголовкаКИ - Строка -// - ПоложениеЗаголовкаЭлементаФормы -// ОтложеннаяИнициализация - Массив -// - Булево -// ИсключаемыеВиды - Массив -// - Неопределено -// СкрываемыеВиды - Массив -// - Неопределено +// Форма - ФормаКлиентскогоПриложения +// ИмяЭлементаДляРазмещения - Строка +// - Неопределено +// ПоложениеЗаголовкаКИ - Строка +// - ПоложениеЗаголовкаЭлементаФормы +// ОтложеннаяИнициализация - Массив +// - Булево +// ИсключаемыеВиды - Массив +// - Неопределено +// СкрываемыеВиды - Массив +// - Неопределено // // Возвращаемое значение: // Структура: // * ГруппаДляРазмещения - Строка -// * ПоложениеЗаголовка - Строка -// * ДобавленныеРеквизиты - СписокЗначений -// * ОтложеннаяИнициализация - Булево -// * ИсключаемыеВиды - Массив -// * ВыполненаОтложеннаяИнициализация - Булево -// * ДобавленныеЭлементы - СписокЗначений -// * СписокДобавляемыхЭлементов - СписокЗначений: -// * Значение - Структура: -// ** Ссылка - СправочникСсылка.ВидыКонтактнойИнформации -// * Ключ - Строка -// * МожноОтправлятьSMS - Булево -// * Владелец - ЛюбаяСсылка -// * ОбработкаНавигационнойСсылки - Булево -// * СкрываемыеВиды - Массив +// * ПоложениеЗаголовка - Строка +// * ДобавленныеРеквизиты - СписокЗначений +// * ОтложеннаяИнициализация - Булево +// * ИсключаемыеВиды - Массив +// * ВыполненаОтложеннаяИнициализация - Булево +// * ДобавленныеЭлементы - СписокЗначений +// * СписокДобавляемыхЭлементов - СписокЗначений: +// * Значение - Структура: +// ** Ссылка - СправочникСсылка.ВидыКонтактнойИнформации +// * Ключ - Строка +// * МожноОтправлятьSMS - Булево +// * Владелец - ЛюбаяСсылка +// * ОбработкаНавигационнойСсылки - Булево +// * СкрываемыеВиды - Массив // Функция ПараметрыВыводаКонтактнойИнформации(Форма, ИмяЭлементаДляРазмещения, ПоложениеЗаголовкаКИ, ОтложеннаяИнициализация, ИсключаемыеВиды, СкрываемыеВиды) @@ -4837,9 +5088,9 @@ // Возвращает параметры контактной информации на форме // // Параметры: -// ПараметрыКонтактнойИнформации - см. ПараметрыВыводаКонтактнойИнформации -// ИмяЭлементаДляРазмещения - Строка -// - Неопределено +// ПараметрыКонтактнойИнформации - см. ПараметрыВыводаКонтактнойИнформации +// ИмяЭлементаДляРазмещения - Строка +// - Неопределено // // Возвращаемое значение: // см. ПараметрыВыводаКонтактнойИнформации @@ -4963,7 +5214,7 @@ Процедура ОбновитьКонтекстноеМеню(Форма, ИмяЭлементаДляРазмещения) ПараметрыКонтактнойИнформации = Форма.ПараметрыКонтактнойИнформации[ИмяЭлементаДляРазмещения]; // см. ПараметрыВыводаКонтактнойИнформации - ВсеСтроки = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов; + ВсеСтроки = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма); НайденныеСтроки = ВсеСтроки.НайтиСтроки( Новый Структура("Тип, ЭтоРеквизитТабличнойЧасти", Перечисления.ТипыКонтактнойИнформации.Адрес, Ложь)); @@ -5098,7 +5349,7 @@ ГруппаВидовКонтактнойИнформации = ГруппаВидовКонтактнойИнформацииОбъекта(ПолноеИмяОбъектаМетаданных); ИменаТабличныхЧастейПоВидамКИ = Неопределено; - Для Каждого СтрокаТаблицы Из Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов Цикл + Для Каждого СтрокаТаблицы Из УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма) Цикл ИмяРеквизита = СтрокаТаблицы.ИмяРеквизита; @@ -5118,7 +5369,7 @@ Если ИменаТабличныхЧастейПоВидамКИ = Неопределено Тогда Отбор = Новый Структура("ЭтоРеквизитТабличнойЧасти", Истина); - ВидыКИТабличнойЧасти = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.Выгрузить(Отбор, "Вид"); + ВидыКИТабличнойЧасти = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).Выгрузить(Отбор, "Вид"); ИменаТабличныхЧастейПоВидамКИ = ИменаТабличныхЧастейПоВидамКИ(ВидыКИТабличнойЧасти, ИмяОбъектаМетаданных); КонецЕсли; @@ -5344,7 +5595,7 @@ // * Имя - Строка - уникальное имя вида контактной информации. // * Наименование - Строка - наименование вида контактной информации. // * Вид - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на вид контактной информации. -// Значение по умолчанию - Справочник.ВидыКонтактнойИнформации.ПустаяСсылка. +// Значение по умолчанию - СправочникСсылка.ВидыКонтактнойИнформации.ПустаяСсылка. // * Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип контактной информации. // * Группа - СправочникСсылка.ВидыКонтактнойИнформации // - Неопределено - ссылка на группу(родителя) элемента справочника. @@ -5461,17 +5712,17 @@ // Конструктор описания страны мира. // // Параметры: -// РезультатЗапроса - Структура - данные заполнения. +// РезультатЗапроса - Структура - данные заполнения. // // Возвращаемое значение: -// Структура: -// Код - Строка - числовой код страны по классификатору; -// КодАльфа2 - Строка - двузначный буквенный код альфа-2 страны по классификатору; -// КодАльфа3 - Строка - трехзначный буквенный код альфа-3 страны по классификатору; -// Наименование - Строка - краткое наименование страны мира -// НаименованиеПолное - Строка - полное наименование страны мира; -// УчастникЕАЭС - Булево - страна является участником Евразийского экономического союза; -// Неактуальный - Булево - помечена на удаление. +// Структура: +// Код - Строка - числовой код страны по классификатору; +// КодАльфа2 - Строка - двузначный буквенный код альфа-2 страны по классификатору; +// КодАльфа3 - Строка - трехзначный буквенный код альфа-3 страны по классификатору; +// Наименование - Строка - краткое наименование страны мира +// НаименованиеПолное - Строка - полное наименование страны мира; +// УчастникЕАЭС - Булево - страна является участником Евразийского экономического союза; +// Неактуальный - Булево - помечена на удаление. // Функция ОписаниеСтраныМира(ДанныеЗаполнения) @@ -5644,4 +5895,35 @@ КонецФункции +// Восстановление пароля + +// Имя реквизиты для восстановления пароля +// +// Параметры: +// КонтактнаяИнформация - ДанныеФормыКоллекция +// +// Возвращаемое значение: +// Строка - имя реквизита на форме с электронной почтой для восстановления. +// +Функция ИмяРеквизитыДляВосстановленияПароля(Форма, АдресЭлектроннойПочты, ТипИлиВидEmailПользователя) + + ИмяРеквизитаДляВосстановленияПароля = ""; + + ОписаниеПочты = СтрокаОписанияПочтыДляВосстановленияПароляИзДанныхФормы( + Форма, ТипИлиВидEmailПользователя, АдресЭлектроннойПочты); + + Если ОписаниеПочты = Неопределено Тогда + // Первая почта будет для восстановления + ОписаниеПочты = СтрокаОписанияПочтыДляВосстановленияПароляИзДанныхФормы( + Форма, ТипИлиВидEmailПользователя); + КонецЕсли; + + Если ОписаниеПочты <> Неопределено Тогда + ИмяРеквизитаДляВосстановленияПароля = ОписаниеПочты.ИмяРеквизита; + КонецЕсли; + + Возврат ИмяРеквизитаДляВосстановленияПароля; + +КонецФункции + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиент/Module.bsl index c5b05416f..f52a24678 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиент/Module.bsl @@ -151,9 +151,7 @@ СтандартнаяОбработка = Ложь; Форма[ИмяРеквизита] = ВыбранноеЗначение.Представление; - Отбор = Новый Структура("ИмяРеквизита", ИмяРеквизита); - Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор); - НайденныеСтроки = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Новый Структура("ИмяРеквизита", ИмяРеквизита)); + НайденныеСтроки = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).НайтиСтроки(Новый Структура("ИмяРеквизита", ИмяРеквизита)); Если НайденныеСтроки.Количество() > 0 Тогда НайденныеСтроки[0].Представление = ВыбранноеЗначение.Представление; НайденныеСтроки[0].Значение = ВыбранноеЗначение.Адрес; @@ -556,7 +554,7 @@ Процедура ОткрытьФормуИсторииИзменений(Форма, ПараметрыКонтактнойИнформации, АсинхронныйВызов = Ложь) Экспорт Результат = Новый Структура("Вид", ПараметрыКонтактнойИнформации.Вид); - НайденныеСтроки = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Результат); + НайденныеСтроки = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).НайтиСтроки(Результат); СписокКонтактнойИнформации = Новый Массив; Для каждого СтрокаКонтактнойИнформации Из НайденныеСтроки Цикл @@ -718,8 +716,8 @@ // Обработчик после закрытия формы истории // // Параметры: -// Результат - Структура -// ДополнительныеПараметры - см. ПослеЗакрытияФормыИсторииДополнительныеПараметры +// Результат - Структура +// ДополнительныеПараметры - см. ПослеЗакрытияФормыИсторииДополнительныеПараметры // Процедура ПослеЗакрытияФормыИстории(Результат, ДополнительныеПараметры) Экспорт @@ -730,19 +728,19 @@ Форма = ДополнительныеПараметры.Форма; Отбор = Новый Структура("Вид", ДополнительныеПараметры.Вид); - НайденныеСтроки = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор); + НайденныеСтроки = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).НайтиСтроки(Отбор); СтарыйКомментарий = Неопределено; Для каждого СтрокаКонтактнойИнформации Из НайденныеСтроки Цикл Если НЕ СтрокаКонтактнойИнформации.ЭтоИсторическаяКонтактнаяИнформация Тогда СтарыйКомментарий = СтрокаКонтактнойИнформации.Комментарий; КонецЕсли; - Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.Удалить(СтрокаКонтактнойИнформации); + УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).Удалить(СтрокаКонтактнойИнформации); КонецЦикла; ПараметрыОбновления = Новый Структура; Для Каждого СтрокаКонтактнойИнформации Из Результат.История Цикл - ДанныеСтроки = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.Добавить(); + ДанныеСтроки = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).Добавить(); ЗаполнитьЗначенияСвойств(ДанныеСтроки, СтрокаКонтактнойИнформации); Если НЕ СтрокаКонтактнойИнформации.ЭтоИсторическаяКонтактнаяИнформация Тогда Если ПустаяСтрока(СтрокаКонтактнойИнформации.Представление) @@ -772,8 +770,8 @@ // Продолжение вызова ПредставлениеНачалоВыбора // // Параметры: -// РезультатЗакрытия - Структура -// ДополнительныеПараметры - см. ПредставлениеНачалоВыбораЗавершениеДополнительныеПараметры +// РезультатЗакрытия - Структура +// ДополнительныеПараметры - см. ПредставлениеНачалоВыбораЗавершениеДополнительныеПараметры // Процедура ПредставлениеНачалоВыбораЗавершение(Знач РезультатЗакрытия, Знач ДополнительныеПараметры) Экспорт @@ -967,7 +965,8 @@ ПараметрыОткрытияФормы.Вставить("ТипПомещения", ПараметрыКонтактнойИнформации.ПараметрыАдреса.ТипПомещения); ПараметрыОткрытияФормы.Вставить("Страна", ПараметрыКонтактнойИнформации.ПараметрыАдреса.Страна); ПараметрыОткрытияФормы.Вставить("Индекс", ПараметрыКонтактнойИнформации.ПараметрыАдреса.Индекс); - ПараметрыОткрытияФормы.Вставить("КонтактнаяИнформацияОписаниеДополнительныхРеквизитов", Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов); + ПараметрыОткрытияФормы.Вставить("КонтактнаяИнформацияОписаниеДополнительныхРеквизитов", + УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма)); Если Не ЭтоТабличнаяЧасть Тогда ПараметрыОткрытияФормы.Вставить("Комментарий", ДанныеСтроки.Комментарий); @@ -999,7 +998,7 @@ Процедура ПриОчистке(Знач Форма, Знач ИмяРеквизита, АсинхронныйВызов) Результат = Новый Структура("ИмяРеквизита", ИмяРеквизита); - НайденнаяСтрока = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Результат)[0]; + НайденнаяСтрока = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).НайтиСтроки(Результат)[0]; НайденнаяСтрока.Значение = ""; НайденнаяСтрока.Представление = ""; НайденнаяСтрока.Комментарий = ""; @@ -1068,7 +1067,7 @@ КонецЕсли; Результат = Новый Структура("ИмяРеквизита", ИмяРеквизита); - НайденныеСтроки = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Результат); + НайденныеСтроки = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).НайтиСтроки(Результат); Если НайденныеСтроки.Количество() = 0 Тогда Возврат; КонецЕсли; @@ -1089,14 +1088,15 @@ ПоказатьАдресНаКарте(НайденнаяСтрока.Представление, "GoogleMaps"); Иначе ПервыйЭлемент = НайденнаяСтрока.ИмяРеквизита; - Индекс = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.Индекс(НайденнаяСтрока); + ОписаниеКонтактнойИнформацииНаФорме = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма); + Индекс = ОписаниеКонтактнойИнформацииНаФорме.Индекс(НайденнаяСтрока); Если КомандаКонтекстногоМеню.НаправлениеПеремещения = 1 Тогда - Если Индекс < Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.Количество() - 1 Тогда - ВторойЭлемент = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.Получить(Индекс + 1).ИмяРеквизита; + Если Индекс < ОписаниеКонтактнойИнформацииНаФорме.Количество() - 1 Тогда + ВторойЭлемент = ОписаниеКонтактнойИнформацииНаФорме.Получить(Индекс + 1).ИмяРеквизита; КонецЕсли; Иначе Если Индекс > 0 Тогда - ВторойЭлемент = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.Получить(Индекс - 1).ИмяРеквизита; + ВторойЭлемент = ОписаниеКонтактнойИнформацииНаФорме.Получить(Индекс - 1).ИмяРеквизита; КонецЕсли; КонецЕсли; Результат = Новый Структура("ПоменятьМестамиЭлементы, ПервыйЭлемент, ВторойЭлемент", Истина, ПервыйЭлемент, ВторойЭлемент); @@ -1107,7 +1107,7 @@ ИначеЕсли ТипКонтактнойИнформации = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес") Тогда Результат = Новый Структура("ИмяРеквизита", ИмяРеквизитаИсточник); - СтрокаПотребитель = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Результат)[0]; + СтрокаПотребитель = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).НайтиСтроки(Результат)[0]; Комментарий = СтрокаПотребитель.Комментарий; // Сохраняем старый комментарий. Если СтрокаПотребитель.Свойство("МеждународныйФорматАдреса") И СтрокаПотребитель.МеждународныйФорматАдреса Тогда @@ -1289,7 +1289,7 @@ Если ДанныеСтроки.Свойство("ХранитьИсториюИзменений") И ДанныеСтроки.ХранитьИсториюИзменений И НачалоДня(ДанныеСтроки.ДействуетС) <> НачалоДня(ОбщегоНазначенияКлиент.ДатаСеанса()) Тогда - КонтактнаяИнформацияОписаниеДополнительныхРеквизитов = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов; // ДанныеФормыКоллекция + КонтактнаяИнформацияОписаниеДополнительныхРеквизитов = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма); ИсторическаяКонтактнаяИнформация = КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.Добавить(); ЗаполнитьЗначенияСвойств(ИсторическаяКонтактнаяИнформация, ДанныеСтроки); ИсторическаяКонтактнаяИнформация.ЭтоИсторическаяКонтактнаяИнформация = Истина; @@ -1330,13 +1330,13 @@ // Элемент - ДанныеФормыСтруктураСКоллекцией - данные формы. // // Возвращаемое значение: -// СтрокаКоллекции - найденные данные. +// см. УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме // Неопределено - при отсутствии данных. // Функция ПолучитьСтрокуДополнительныхЗначений(Форма, Элемент, ЭтоТабличнаяЧасть = Ложь) Отбор = Новый Структура("ИмяРеквизита", Элемент.Имя); - Строки = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор); + Строки = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).НайтиСтроки(Отбор); ДанныеСтроки = ?(Строки.Количество() = 0, Неопределено, Строки[0]); Если ЭтоТабличнаяЧасть И ДанныеСтроки <> Неопределено Тогда @@ -1413,7 +1413,7 @@ // // Возвращаемое значение: // Строка - имя доступного URI протокола зарегистрирована в реестре. Пустая строка - если протокол не доступен. -// Неопределенно если проверка не возможна. +// Неопределенно если проверка не возможна. // Функция ПрограммаТелефонииУстановлена(ИмяПротокола = Неопределено) @@ -1497,11 +1497,11 @@ // Конструктор дополнительных параметров для формы истории // // Параметры: -// Форма - ФормаКлиентскогоПриложения -// ПараметрыКонтактнойИнформации - Структура -// АсинхронныйВызов - Булево +// Форма - ФормаКлиентскогоПриложения +// ПараметрыКонтактнойИнформации - Структура +// АсинхронныйВызов - Булево // Возвращаемое значение: -// Структура: +// Структура: // * Форма - ФормаКлиентскогоПриложения // * АсинхронныйВызов - Булево // * ИмяЭлементаДляРазмещения - Строка @@ -1522,11 +1522,8 @@ КонецФункции - -// Описание -// // Возвращаемое значение: -// Структура: +// Структура: // * АсинхронныйВызов - Булево // * ОбновитьКонтекстноеМеню - Булево // * Форма - Неопределено @@ -1537,6 +1534,7 @@ // - ТаблицаФормы // - ПолеФормы // * ДанныеСтроки - Неопределено +// - ДанныеФормыЭлементКоллекции: см. УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме // * ИмяЭлементаРазмещения - Строка // * ЭтоТабличнаяЧасть - Булево // * ДанныеЗаполнения - Строка @@ -1678,7 +1676,7 @@ Процедура ОбновитьКонтекстноеМеню(Форма, ИмяЭлементаДляРазмещения) ПараметрыКонтактнойИнформации = Форма.ПараметрыКонтактнойИнформации[ИмяЭлементаДляРазмещения]; // ДанныеФормаКоллекция - ВсеСтроки = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов; + ВсеСтроки = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма); НайденныеСтроки = ВсеСтроки.НайтиСтроки( Новый Структура("Тип, ЭтоРеквизитТабличнойЧасти", ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес"), Ложь)); diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСервер/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСервер/Module.bsl index c64f449a3..e9a15a909 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСервер/Module.bsl @@ -267,6 +267,29 @@ КонецФункции +// Параметры: +// Форма- ФормаКлиентскогоПриложения +// +// Возвращаемое значение: +// ДанныеФормыКоллекция: +// * ИмяРеквизита - Строка +// * Вид - СправочникСсылка.ВидыКонтактнойИнформации +// * Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации +// * Значение - Строка +// * Представление - Строка +// * Комментарий - Строка +// * ЭтоРеквизитТабличнойЧасти - Булево +// * ЭтоИсторическаяКонтактнаяИнформация - Булево +// * ДействуетС - Дата +// * ХранитьИсториюИзменений - Булево +// * ИмяЭлементаДляРазмещения - Строка +// * МеждународныйФорматАдреса - Булево +// * Маска - Строка +// +Функция ОписаниеКонтактнойИнформацииНаФорме(Форма) Экспорт + Возврат Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов; +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейПереопределяемый/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейПереопределяемый/Module.bsl index 5170d89e3..c4d567e5e 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейПереопределяемый/Module.bsl @@ -11,7 +11,7 @@ // Получает наименования видов контактной информации на разных языках. // // Параметры: -// Наименования - Соответствие - представление вида контактной информации на переданном языке: +// Наименования - Соответствие из КлючИЗначение - представление вида контактной информации на переданном языке: // * Ключ - Строка - имя вида контактной информации. Например, "_ДемоАдресПартнера". // * Значение - Строка - наименование вида контактной информации для переданного кода языка. // КодЯзыка - Строка - код языка. Например, "en". diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl index efe4acf38..6e286ef84 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl @@ -9,11 +9,11 @@ #Область СлужебныйПрограммныйИнтерфейс // Параметры: -// Ссылка - СправочникСсылка -// ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации -// Дата - Дата +// Ссылка - СправочникСсылка +// ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации +// Дата - Дата // Возвращаемое значение: -// Строка +// Строка // Функция ПервоеЗначениеКонтактнойИнформацииОбъектаПоТипу(Ссылка, ТипКонтактнойИнформации, Дата) Экспорт @@ -92,11 +92,12 @@ Функция ПреобразоватьКонтактнуюИнформациюВФорматJSON(СсылкаИлиОбъект, ТипОбъекта) Экспорт + ОбъектИзменен = Ложь; Если ОбщегоНазначения.ЭтоСсылка(ТипОбъекта) Тогда Если Не СодержитПустыеПоляJSON(СсылкаИлиОбъект) Тогда Возврат Ложь; КонецЕсли; - ОбъектИзменен = ЗаполнитьJSONПоляКонтактнойИнформацииДляСсылки(СсылкаИлиОбъект); + ЗаполнитьJSONПоляКонтактнойИнформацииДляСсылки(СсылкаИлиОбъект); Иначе ОбъектИзменен = ЗаполнитьJSONПоляКонтактнойИнформацииДляОбъекта(СсылкаИлиОбъект); КонецЕсли; @@ -109,11 +110,6 @@ // Обработчики событий подсистем конфигурации. // См. ВерсионированиеОбъектовПереопределяемый.ПриПодготовкеДанныхОбъекта. -// -// Параметры: -// Объект - Произвольный -// ДополнительныеРеквизиты - см. ВерсионированиеОбъектовПереопределяемый.ПриПодготовкеДанныхОбъекта.ДополнительныеРеквизиты -// Процедура ПриПодготовкеДанныхОбъекта(Объект, ДополнительныеРеквизиты) Экспорт Если Объект.Метаданные().ТабличныеЧасти.Найти("КонтактнаяИнформация") <> Неопределено Тогда @@ -152,10 +148,6 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -210,7 +202,7 @@ Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; Обработчик.Комментарий = НСтр("ru = 'Обновление сведений о странах мирах в соответствии с общероссийским классификатором стран мира. |До завершения обработки наименование стран в документах в ряде случаев будет отображаться некорректно.'"); - + Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика(); НоваяСтрока = Обработчик.ПриоритетыВыполнения.Добавить(); @@ -226,11 +218,11 @@ КонецПроцедуры -// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриОпределенииНастроек -// +// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриОпределенииНастроек. +// // Параметры: -// Объекты - Массив -// +// Объекты - Массив из ОбъектМетаданных +// Процедура ПриОпределенииОбъектовСНачальнымЗаполнением(Объекты) Экспорт Объекты.Добавить(Метаданные.Справочники.СтраныМира); @@ -242,12 +234,7 @@ Обработчики.Вставить("ИнтерактивнаяПроверкаЗаполненияКонтактнойИнформации", "УправлениеКонтактнойИнформациейСлужебный.УстановкаПараметровСеанса"); КонецПроцедуры -// см. КонтрольВеденияУчетаПереопределяемый.ПриОпределенииПроверок -// -// Параметры: -// ГруппыПроверок - см. КонтрольВеденияУчетаПереопределяемый.ПриОпределенииПроверок.ГруппыПроверок -// Проверки - см. КонтрольВеденияУчетаПереопределяемый.ПриОпределенииПроверок.Проверки -// +// См. КонтрольВеденияУчетаПереопределяемый.ПриОпределенииПроверок. Процедура ПриОпределенииПроверок(ГруппыПроверок, Проверки) Экспорт ГруппаПроверок = ГруппыПроверок.Добавить(); @@ -276,18 +263,14 @@ КонецПроцедуры -// Параметры: -// ШаблоныЗаданий - см. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.ШаблоныЗаданий -// +// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт ШаблоныЗаданий.Добавить("ИсправлениеУстаревшихАдресов"); КонецПроцедуры -// Параметры: -// СоответствиеИменПсевдонимам - см. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков.СоответствиеИменПсевдонимам -// +// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков. Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт СоответствиеИменПсевдонимам.Вставить("УправлениеКонтактнойИнформациейСлужебный.ИсправлениеУстаревшихАдресов"); КонецПроцедуры @@ -320,7 +303,7 @@ КонецФункции -Функция ЗаполнитьJSONПоляКонтактнойИнформацииДляСсылки(Ссылка) +Процедура ЗаполнитьJSONПоляКонтактнойИнформацииДляСсылки(Ссылка) ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)); @@ -345,7 +328,7 @@ ВызватьИсключение; КонецПопытки; -КонецФункции +КонецПроцедуры Функция ЗаполнитьJSONПоляКонтактнойИнформацииДляОбъекта(ОбъектСКонтактнойИнформацией) @@ -380,7 +363,7 @@ КонецФункции Функция ПространствоИмен() Экспорт - Возврат "http://www.v8.1c.ru/ssl/contactinfo"; + Возврат "http://www.v8.1c.ru/ssl/contactinfo"; // @Non-NLS КонецФункции Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) Экспорт @@ -459,7 +442,7 @@ // Функция-конструктор результата проверки. // // Возвращаемое значение: -// Структура: +// Структура: // * СписокОшибок - СписокЗначений // * Результат - Строка // @@ -860,10 +843,10 @@ // Обработчик события КонтактнаяИнформацияОбработкаПроверкиЗаполнения // // Параметры: -// Источник - СправочникОбъект -// - ДокументОбъект -// Отказ - Булево -// ПроверяемыеРеквизиты - Массив +// Источник - СправочникОбъект +// - ДокументОбъект +// Отказ - Булево +// ПроверяемыеРеквизиты - Массив // Процедура КонтактнаяИнформацияОбработкаПроверкиЗаполнения(Источник, Отказ, ПроверяемыеРеквизиты) Экспорт @@ -1267,13 +1250,13 @@ // Возвращаемое значение: // ТаблицаЗначений: // * Уровень - Число -// * Позиция - Число -// * Значение - Строка -// * Наименование - Строка -// * Сокращение - Строка -// * Начало - Число -// * Длина - Число -// * Идентификатор - Строка +// * Позиция - Число +// * Значение - Строка +// * Наименование - Строка +// * Сокращение - Строка +// * Начало - Число +// * Длина - Число +// * Идентификатор - Строка // Функция ЧастиАдреса() Экспорт @@ -1916,7 +1899,7 @@ ШаблонЗапроса = "ВЫБРАТЬ | КонтактнаяИнформация.Ссылка КАК Ссылка |ИЗ - | Справочник.%1.КонтактнаяИнформация КАК КонтактнаяИнформация + | #КонтактнаяИнформацияОбъектаМетаданных КАК КонтактнаяИнформация |ГДЕ | КонтактнаяИнформация.Вид <> ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ПустаяСсылка) | @@ -1926,9 +1909,10 @@ |ИМЕЮЩИЕ | КОЛИЧЕСТВО(КонтактнаяИнформация.Вид) > 0 "; - Для каждого Объект Из ОбъектыМетаданных Цикл - НаборТекстаЗапроса.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонЗапроса, Объект.Метаданные().Имя)); + НаборТекстаЗапроса.Добавить(СтрЗаменить(ШаблонЗапроса, + "#КонтактнаяИнформацияОбъектаМетаданных", + "Справочник." + Объект.Метаданные().Имя + ".КонтактнаяИнформация")); КонецЦикла; Запрос = Новый Запрос; @@ -1942,12 +1926,12 @@ // Описание // // Параметры: -// ВидКонтактнойИнформации - ДанныеФормыСтруктура -// - СправочникСсылка.ВидыКонтактнойИнформации: -// * Наименование - Строка +// ВидКонтактнойИнформации - ДанныеФормыСтруктура +// - СправочникСсылка.ВидыКонтактнойИнформации: +// * Наименование - Строка // // Возвращаемое значение: -// Структура: +// Структура: // * ЕстьОшибки - Булево // * ТекстОшибки - Строка // @@ -2266,7 +2250,7 @@ Объект.КонтактнаяИнформация.Очистить(); КонецЕсли; - Для каждого СтрокаКонтактнойИнформацииОбъекта Из СтрокиКонтактнойИнформацииОбъекта Цикл + Для каждого СтрокаКонтактнойИнформацииОбъекта Из СтрокиКонтактнойИнформацииОбъекта Цикл // СтрокаТаблицыЗначений: см. УправлениеКонтактнойИнформацией.НоваяКонтактнаяИнформация ХранитьИсториюИзменений = ВладелецКонтактнойИнформации.Значение["Периодическая"] И СтрокаКонтактнойИнформацииОбъекта.Вид.ХранитьИсториюИзменений; @@ -3143,7 +3127,7 @@ Функция СтрокаСоставаКонтактнойИнформации(Знач Текст, Знач НовоеЗначение = Неопределено) Экспорт Чтение = Новый ЧтениеXML; Чтение.УстановитьСтроку(Текст); - ОбъектXDTO= ФабрикаXDTO.ПрочитатьXML(Чтение, + ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(Чтение, ФабрикаXDTO.Тип(ПространствоИмен(), "КонтактнаяИнформация")); Состав = ОбъектXDTO.Состав; @@ -4074,9 +4058,9 @@ // Описание // // Параметры: -// ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации +// ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации // Возвращаемое значение: -// ПреобразованиеXSL - Описание +// ПреобразованиеXSL - Описание // Функция ПреобразованиеXSLT_ИнтерпретацияРазличияXMLКонтактнойИнформации(Знач ТипКонтактнойИнформации) @@ -4740,7 +4724,7 @@ // Старый формат через разделитель строк и равенство. ПространствоИмен = ПространствоИмен(); - Результат = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация")); + Результат = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация")); Результат.Состав = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "Адрес")); // Общий состав diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебныйПовтИсп/Module.bsl index 94bfc9620..77245f717 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебныйПовтИсп/Module.bsl @@ -78,7 +78,7 @@ // Возвращает список предопределенных видов контактной информации. // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка - имя предопределенного вида. // * Значение - СправочникСсылка.ВидыКонтактнойИнформации - ссылка на элемент справочника ВидыКонтактнойИнформации. // diff --git a/SSL/src/CommonModules/УправлениеПечатью/Module.bsl b/SSL/src/CommonModules/УправлениеПечатью/Module.bsl index be2a93743..39e7221bb 100644 --- a/SSL/src/CommonModules/УправлениеПечатью/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатью/Module.bsl @@ -61,7 +61,7 @@ // Если не указывать этот параметр, то редактирование макета пользователем будет // недоступно в форме ПечатьДокументов. // ИмяФайлаПечатнойФормы - Строка - имя, используемое при сохранении печатной формы в файл; -// - Соответствие: +// - Соответствие из КлючИЗначение: // * Ключ - ЛюбаяСсылка - ссылка на объект печати; // * Значение - Строка - имя файла. // @@ -549,7 +549,7 @@ // Переносит пользовательские данные, относящиеся к макету, на новый адрес. // // Параметры: -// Макеты - Соответствие - сведения о прежних и новых именах макетов в формате +// Макеты - Соответствие из КлючИЗначение - сведения о прежних и новых именах макетов в формате // "Документ.<ИмяДокумента>.<ИмяМакета>" // "Обработка.<ИмяОбработки>.<ИмяМакета>" // "ОбщийМакет.<ИмяМакета>": @@ -594,7 +594,7 @@ // Предназначена для использования в процедуре ПриЗаполненииПоставляемыхПрофилейГруппДоступа модуля УправлениеДоступомПереопределяемый. // // Параметры: -// ОписанияПрофилей - Массив - см. УправлениеДоступомПереопределяемый.ПриЗаполненииПоставляемыхПрофилейГруппДоступа. +// ОписанияПрофилей - см. УправлениеДоступомПереопределяемый.ПриЗаполненииПоставляемыхПрофилейГруппДоступа.ОписанияПрофилей // Процедура ЗаполнитьПрофильРедактированиеПечатныхФорм(ОписанияПрофилей) Экспорт @@ -656,7 +656,7 @@ // СоставДокументов - Массив - ссылки на объекты информационной базы (должны быть одного типа). // // Возвращаемое значение: -// Соответствие - коллекция ссылок на объекты и их данные: +// Соответствие из КлючИЗначение - коллекция ссылок на объекты и их данные: // * Ключ - ЛюбаяСсылка - ссылка на объект информационной базы; // * Значение - Структура: // ** Ключ - Строка - имя макета; @@ -685,26 +685,30 @@ // - ПФ_DOC_СчетНаОплату_en // - и т.п. // В этом случае при поиске нужного макета учитывается следующий приоритет: -// 1) на языке конфигурации (ОбщегоНазначения.КодОсновногоЯзыка()), -// 2) без указания языка. +// 1) на языке, указанном в параметре КодЯзыка, +// 2) на языке конфигурации (ОбщегоНазначения.КодОсновногоЯзыка()), +// 3) без указания языка. // // Параметры: // ПутьКМакету - Строка - полный путь к макету в формате: // "Документ.<ИмяДокумента>.<ИмяМакета>" // "Обработка.<ИмяОбработки>.<ИмяМакета>" // "ОбщийМакет.<ИмяМакета>". +// КодЯзыка - Строка - язык, на котором требуется получить макет. +// Состоит из кода языка по ISO 639-1 и, опционально, кода страны по ISO 3166-1, разделенных +// символом подчеркивания. Примеры: "en", "en_US", "en_GB", "ru", "ru_RU". +// // Возвращаемое значение: // ТабличныйДокумент - для макета типа MXL. // ДвоичныеДанные - для макетов офисных документов. // -Функция МакетПечатнойФормы(ПутьКМакету) Экспорт +Функция МакетПечатнойФормы(ПутьКМакету, Знач КодЯзыка = Неопределено) Экспорт - Макет = НайтиМакет(ПутьКМакету); - Если ТипЗнч(Макет) = Тип("ТабличныйДокумент") Тогда - Макет.КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка(); + Если ЗначениеЗаполнено(КодЯзыка) Тогда + КодЯзыка = СтрРазделить(КодЯзыка, "_", Истина)[0]; КонецЕсли; - Возврат Макет; + Возврат НайтиМакет(ПутьКМакету, КодЯзыка); КонецФункции @@ -1040,6 +1044,8 @@ //////////////////////////////////////////////////////////////////////////////// // Функции инициализации и закрытия ссылок. +// АПК:1382-выкл - Нельзя определять тип в возвращаемом значении. +// // Конструктор печатной формы в формате офисного документа. // // Параметры: @@ -1068,6 +1074,7 @@ Возврат ПечатнаяФорма; КонецФункции +// АПК:1382-вкл // Подготавливает макет для использования в процедурах формирования печатной формы. // @@ -1407,9 +1414,8 @@ КонецФункции -// Устарела. Следует использовать ГенерацияШтрихкодаВызовСервера.ДанныеQRКода -// или ГенерацияШтрихкодаВызовСервера.ИзображениеШтрихкода из библиотеки -// "1С:Библиотека подключаемого оборудования" версии 2.1.4 (или больше). +// Устарела. Следует использовать ГенерацияШтрихкода.ДанныеQRКода +// или ГенерацияШтрихкода.ИзображениеШтрихкода. // // Возвращает двоичные данные для формирования QR-кода. // @@ -1443,6 +1449,11 @@ // Функция ДанныеQRКода(QRСтрока, УровеньКоррекции, Размер) Экспорт + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ГенерацияШтрихкода") Тогда + МодульГенерацияШтрихкода = ОбщегоНазначения.ОбщийМодуль("ГенерацияШтрихкода"); + Возврат МодульГенерацияШтрихкода.ДанныеQRКода(QRСтрока, УровеньКоррекции, Размер); + КонецЕсли; + УстановитьОтключениеБезопасногоРежима(Истина); ГенераторQRКода = КомпонентаФормированияQRКода(); Если ГенераторQRКода = Неопределено Тогда @@ -1476,9 +1487,9 @@ // Ссылка - ПеречислениеСсылка.ФорматыСохраненияОтчетов - ссылка на метаданные, // где хранится // представление; -// Представление - Строка - - представление типа +// Представление - Строка - представление типа // файла (заполняется из перечисления); -// Расширение - Строка - - тип файла для +// Расширение - Строка - тип файла для // операционной системы; // Картинка - Картинка - значок формата. // @@ -1629,7 +1640,9 @@ КонецЕсли; КоллекцияПечатныхФорм = ПодготовитьКоллекциюПечатныхФорм(ПараметрыИсточника.ИдентификаторКоманды); - ПараметрыВывода = ПодготовитьСтруктуруПараметровВывода(); + Если Не ЗначениеЗаполнено(ПараметрыВывода) Тогда + ПараметрыВывода = ПодготовитьСтруктуруПараметровВывода(); + КонецЕсли; ПараметрыВывода.Вставить("ДополнительнаяОбработкаСсылка", ДополнительнаяОбработкаСсылка); ВнешняяОбработкаОбъект.Печать( @@ -1684,10 +1697,10 @@ // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту. // // Параметры: -// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы -// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники -// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки -// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды +// НастройкиФормы - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.НастройкиФормы +// Источники - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Источники +// ПодключенныеОтчетыИОбработки - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.ПодключенныеОтчетыИОбработки +// Команды - см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды // Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт @@ -1733,11 +1746,7 @@ КонецПроцедуры -// См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей. -// -// Параметры: -// НазначениеРолей - см. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей.НазначениеРолей -// +// См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей Процедура ПриОпределенииНазначенияРолей(НазначениеРолей) Экспорт // ТолькоДляПользователейСистемы. @@ -1747,10 +1756,6 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -1779,13 +1784,15 @@ Обработчик.Комментарий = НСтр("ru = 'Определяет, какие поставляемые макеты печатных форм расширений изменились по отношению к предыдущей версии.'"); Обработчик.Идентификатор = Новый УникальныйИдентификатор("51f71246-67e3-40e0-80e5-ebb3192fa6c0"); + Обработчик = Обработчики.Добавить(); + Обработчик.НачальноеЗаполнение = Истина; + Обработчик.Версия = "3.1.4.67"; + Обработчик.Процедура = "Справочники.ЯзыкиПечатныхФорм.ЗаполнитьПоставляемыеЯзыки"; + Обработчик.РежимВыполнения = "Оперативно"; + КонецПроцедуры // См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. -// -// Параметры: -// ЗапросыРазрешений - см. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам.ЗапросыРазрешений -// Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); @@ -1798,7 +1805,9 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. +// Параметры: +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. +// Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт МодульТекущиеДелаСервер = ОбщегоНазначения.ОбщийМодуль("ТекущиеДелаСервер"); @@ -1873,6 +1882,12 @@ КонецПроцедуры +Функция ПоставляемыйМакет(ПутьКМакету, КодЯзыка) Экспорт + + Возврат НайтиМакет(ПутьКМакету, КодЯзыка, Истина); + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -1905,7 +1920,7 @@ // на источник внешней печатной формы. // // Возвращаемое значение: -// Ссылка +// ЛюбаяСсылка // Функция СсылкаДополнительнойПечатнойФормы(Идентификатор, ПолноеИмяОбъектаМетаданных) ВнешняяПечатнаяФормаСсылка = Неопределено; @@ -1920,11 +1935,15 @@ // Сформировать печатные формы. Функция СформироватьПечатныеФормы(Знач ИмяМенеджераПечати, Знач ИменаМакетов, Знач МассивОбъектов, Знач ПараметрыПечати, - ДопустимыеТипыОбъектовПечати = Неопределено) Экспорт + ДопустимыеТипыОбъектовПечати = Неопределено, Знач КодЯзыка = Неопределено) Экспорт КоллекцияПечатныхФорм = ПодготовитьКоллекциюПечатныхФорм(Новый Массив); ОбъектыПечати = Новый СписокЗначений; + ПараметрыВывода = ПодготовитьСтруктуруПараметровВывода(); + Если ЗначениеЗаполнено(КодЯзыка) Тогда + ПараметрыВывода.КодЯзыка = КодЯзыка; + КонецЕсли; Если ТипЗнч(ИменаМакетов) = Тип("Строка") Тогда ИменаМакетов = СтрРазделить(ИменаМакетов, ","); @@ -2183,7 +2202,7 @@ КонецПроцедуры // Сохраняет пользовательский макет печати в информационной базе. -Процедура ЗаписатьМакет(ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище) Экспорт +Процедура ЗаписатьМакет(ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище, КодЯзыка = Неопределено) Экспорт ИзмененныйМакет = ПолучитьИзВременногоХранилища(АдресМакетаВоВременномХранилище); @@ -2210,6 +2229,10 @@ МакетИзМетаданных = ПолучитьОбщийМакет(ИмяМакета); КонецЕсли; + Если ЗначениеЗаполнено(КодЯзыка) Тогда + ИмяМакета = ИмяМакета + "_" + КодЯзыка; + КонецЕсли; + Запись = РегистрыСведений.ПользовательскиеМакетыПечати.СоздатьМенеджерЗаписи(); Запись.Объект = ИмяВладельца; Запись.ИмяМакета = ИмяМакета; @@ -2470,10 +2493,10 @@ // Параметры: -// ТабличныйДокумент - ТабличныйДокумент -// ОбъектыПечати - СписокЗначений -// МенеджерПечати - Строка -// Идентификатор - Строка +// ТабличныйДокумент - ТабличныйДокумент +// ОбъектыПечати - СписокЗначений +// МенеджерПечати - Строка +// Идентификатор - Строка // Процедура ПроверитьРазметкуТабличногоДокументаПоОбъектамПечати(ТабличныйДокумент, ОбъектыПечати, Знач МенеджерПечати, Знач Идентификатор) @@ -2687,7 +2710,7 @@ Для Каждого Файл Из СписокФайлов Цикл ИмяФайла = ИмяВременногоКаталога + Файл.ИмяФайла; - ИмяФайла = УникальноеИмяФайла(ИмяФайла); + ИмяФайла = ФайловаяСистема.УникальноеИмяФайла(ИмяФайла); Файл.ДвоичныеДанные.Записать(ИмяФайла); ЗаписьZipФайла.Добавить(ИмяФайла); КонецЦикла; @@ -2708,28 +2731,11 @@ КонецФункции -Функция УникальноеИмяФайла(ИмяФайла) - - Файл = Новый Файл(ИмяФайла); - ИмяБезРасширения = Файл.ИмяБезРасширения; - Расширение = Файл.Расширение; - ИмяКаталога = Файл.Путь; - - Счетчик = 1; - Пока Файл.Существует() Цикл - Счетчик = Счетчик + 1; - Файл = Новый Файл(ИмяКаталога + ИмяБезРасширения + " (" + Счетчик + ")" + Расширение); - КонецЦикла; - - Возврат Файл.ПолноеИмя; - -КонецФункции - // Параметры: -// ТабличныйДокумент - ТабличныйДокумент -// Формат - ТипФайлаТабличногоДокумента +// ТабличныйДокумент - ТабличныйДокумент +// Формат - ТипФайлаТабличногоДокумента // Возвращаемое значение: -// ДвоичныеДанные +// ДвоичныеДанные // Функция ТабличныйДокументВДвоичныеДанные(ТабличныйДокумент, Формат) @@ -2858,17 +2864,23 @@ // 2) на языке конфигурации, // 3) без указания языка. // -Функция ИменаМакета(Знач ИмяМакета) +Функция ИменаМакета(Знач ИмяМакета, Знач КодЯзыка = Неопределено) Результат = Новый Массив; - Если СтрНайти(ИмяМакета, "ПФ_DOC_") > 0 Или СтрНайти(ИмяМакета, "ПФ_ODT_") > 0 Тогда - Результат.Добавить(ИмяМакета + "_" + ОбщегоНазначения.КодОсновногоЯзыка()); + Если ЗначениеЗаполнено(КодЯзыка) Тогда + Результат.Добавить(ИмяМакета + "_" + КодЯзыка); + ЧастиСтроки = СтрРазделить(КодЯзыка, "_", Ложь); + Если ЧастиСтроки.Количество() > 1 Тогда + Результат.Добавить(ИмяМакета + "_" + ЧастиСтроки[0]); + КонецЕсли; КонецЕсли; + Результат.Добавить(ИмяМакета + "_" + ОбщегоНазначения.КодОсновногоЯзыка()); Результат.Добавить(ИмяМакета); + Возврат Результат; - + КонецФункции // Конструктор для параметра КоллекцияПечатныхФорм процедуры Печать. @@ -2883,10 +2895,10 @@ // * Картинка - Картинка - (не используется); // * ПолныйПутьКМакету - Строка - используется для быстрого перехода к редактированию макета печатной формы; // * ИмяФайлаПечатнойФормы - Строка - имя файла; -// - Соответствие - имена файлов для каждого объекта: +// - Соответствие из КлючИЗначение - имена файлов для каждого объекта: // ** Ключ - ЛюбаяСсылка - ссылка на объект печати; // ** Значение - Строка - имя файла; -// * ОфисныеДокументы - Соответствие - коллекция печатных форм в формате офисных документов: +// * ОфисныеДокументы - Соответствие из КлючИЗначение - коллекция печатных форм в формате офисных документов: // ** Ключ - Строка - адрес во временном хранилище двоичных данных печатной формы; // ** Значение - Строка - имя файла печатной формы. // @@ -2925,6 +2937,7 @@ ПараметрыВывода = Новый Структура; ПараметрыВывода.Вставить("ЗаголовокФормы", ""); ПараметрыВывода.Вставить("ДоступнаПечатьПоКомплектно", Ложь); // не используется + ПараметрыВывода.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка()); СтруктураПараметровПисьма = Новый Структура("Получатель,Тема,Текст", Неопределено, "", ""); ПараметрыВывода.Вставить("ПараметрыОтправки", СтруктураПараметровПисьма); @@ -2933,6 +2946,14 @@ КонецФункции +// Параметры: +// КомандаПечати - СтрокаТаблицыЗначений: см. СоздатьКоллекциюКомандПечати +// НастройкиСохранения - см. УправлениеПечатью.НастройкиСохранения +// СписокОбъектов - Массив +// Результат - ТаблицаЗначений: +// * ИмяФайла - Строка +// * ДвоичныеДанные - ДвоичныеДанные +// Процедура ВыполнитьКомандуПечатиВФайл(КомандаПечати, НастройкиСохранения, СписокОбъектов, Результат) ДанныеПечати = Неопределено; @@ -3072,7 +3093,7 @@ КонецФункции -Функция НайтиМакет(ПутьКМакету) +Функция НайтиМакет(ПутьКМакету, КодЯзыка, ТолькоПоставляемый = Ложь) ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Макет ""%1"" не существует. Операция прервана.'"), ПутьКМакету); @@ -3100,18 +3121,21 @@ Запрос.Параметры.Вставить("Объект", ИмяОбъекта); Запрос.Параметры.Вставить("ИмяМакета", ИмяМакета + "%"); - Выборка = Запрос.Выполнить().Выбрать(); - СписокМакетов = Новый Соответствие; - Пока Выборка.Следующий() Цикл - СписокМакетов.Вставить(Выборка.ИмяМакета, Выборка.Макет.Получить()); - КонецЦикла; - ИменаПоиска = ИменаМакета(ИмяМакета); + Если Не ТолькоПоставляемый Тогда + Выборка = Запрос.Выполнить().Выбрать(); + Пока Выборка.Следующий() Цикл + СписокМакетов.Вставить(Выборка.ИмяМакета, Выборка.Макет.Получить()); + КонецЦикла; + КонецЕсли; + + ИменаПоиска = ИменаМакета(ИмяМакета, КодЯзыка); Для Каждого ИмяПоиска Из ИменаПоиска Цикл НайденныйМакет = СписокМакетов[ИмяПоиска]; Если НайденныйМакет <> Неопределено Тогда + УстановитьЯзыкМакета(НайденныйМакет, КодЯзыка); Возврат НайденныйМакет; КонецЕсли; КонецЦикла; @@ -3130,12 +3154,14 @@ Для Каждого ИмяПоиска Из ИменаПоиска Цикл Если КоллекцияМакетов.Найти(ИмяПоиска) <> Неопределено Тогда Если ЭтоОбщийМакет Тогда - Возврат ПолучитьОбщийМакет(ИмяПоиска); + Макет = ПолучитьОбщийМакет(ИмяПоиска); Иначе УстановитьОтключениеБезопасногоРежима(Истина); УстановитьПривилегированныйРежим(Истина); - Возврат ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ИмяОбъекта).ПолучитьМакет(ИмяПоиска); + Макет = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ИмяОбъекта).ПолучитьМакет(ИмяПоиска); КонецЕсли; + УстановитьЯзыкМакета(Макет, КодЯзыка); + Возврат Макет; КонецЕсли; КонецЦикла; @@ -3143,4 +3169,76 @@ КонецФункции +Процедура УстановитьЯзыкМакета(Макет, КодЯзыка) + + Если ТипЗнч(Макет) <> Тип("ТабличныйДокумент") Тогда + Возврат; + КонецЕсли; + + ЭтоДополнительныйЯзыкПечатныхФорм = Ложь; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда + МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); + ЭтоДополнительныйЯзыкПечатныхФорм = МодульУправлениеПечатьюМультиязычность.ЭтоДополнительныйЯзыкПечатныхФорм(КодЯзыка); + КонецЕсли; + + Если ЗначениеЗаполнено(КодЯзыка) И Не ЭтоДополнительныйЯзыкПечатныхФорм Тогда + Макет.КодЯзыка = КодЯзыка; + Иначе + Макет.КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка(); + КонецЕсли; + +КонецПроцедуры + +Процедура УдалитьМакет(ПутьКМакету, КодЯзыка = Неопределено) Экспорт + + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Макет ""%1"" не существует. Операция прервана.'"), ПутьКМакету); + ЧастиПути = СтрРазделить(ПутьКМакету, ".", Истина); + Если ЧастиПути.Количество() <> 2 И ЧастиПути.Количество() <> 3 Тогда + ВызватьИсключение ТекстОшибки; + КонецЕсли; + + ИмяМакета = ЧастиПути[ЧастиПути.ВГраница()]; + ЧастиПути.Удалить(ЧастиПути.ВГраница()); + ИмяОбъекта = СтрСоединить(ЧастиПути, "."); + + ТекстЗапроса = + "ВЫБРАТЬ + | ПользовательскиеМакетыПечати.ИмяМакета КАК ИмяМакета + |ИЗ + | РегистрСведений.ПользовательскиеМакетыПечати КАК ПользовательскиеМакетыПечати + |ГДЕ + | ПользовательскиеМакетыПечати.Объект = &Объект + | И (ПользовательскиеМакетыПечати.ИмяМакета = &ИмяМакета + | ИЛИ ПользовательскиеМакетыПечати.ИмяМакета ПОДОБНО &ШаблонИмениМакета)"; + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.Параметры.Вставить("Объект", ИмяОбъекта); + Запрос.Параметры.Вставить("ИмяМакета", ИмяМакета); + Запрос.Параметры.Вставить("ШаблонИмениМакета", ИмяМакета + "_%"); + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ПользовательскиеМакетыПечати"); + ЭлементБлокировки.УстановитьЗначение("Объект", ИмяОбъекта); + + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + Выборка = Запрос.Выполнить().Выбрать(); + + НаборЗаписей = РегистрыСведений.ПользовательскиеМакетыПечати.СоздатьНаборЗаписей(); + НаборЗаписей.Отбор.Объект.Установить(ИмяОбъекта); + Пока Выборка.Следующий() Цикл + НаборЗаписей.Отбор.ИмяМакета.Установить(Выборка.ИмяМакета); + НаборЗаписей.Записать(); + КонецЦикла; + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/CommonModules/УправлениеПечатьюMSWordКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюMSWordКлиент/Module.bsl index 47758005c..0219fe950 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюMSWordКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюMSWordКлиент/Module.bsl @@ -91,7 +91,7 @@ // Параметры: // ДвоичныеДанныеМакета - ДвоичныеДанные - двоичные данные макета. // Возвращаемое значение: -// структура - ссылка макет. +// Структура - ссылка макет. // Функция ПолучитьМакетMSWord(Знач ДвоичныеДанныеМакета, Знач ИмяВременногоФайла) Экспорт @@ -153,7 +153,7 @@ // Закрывает соединение с COM объектом Word.Application. // Параметры: // Handler - ссылка на печатную форму или макет. -// ЗакрытьПриложение - булево - требуется ли закрыть приложение. +// ЗакрытьПриложение - Булево - требуется ли закрыть приложение. // Процедура ЗакрытьСоединение(Handler, Знач ЗакрытьПриложение) Экспорт @@ -347,7 +347,7 @@ // Параметры: // ПечатнаяФорма - ссылка на печатную форму. // ОбластьHandler - ссылка на область в макете. -// ПереходНаСледСтроку - булево - требуется ли вставлять разрыв после вывода области. +// ПереходНаСледСтроку - Булево - требуется ли вставлять разрыв после вывода области. // // Возвращаемое значение: // КоординатыОбласти @@ -414,9 +414,9 @@ // Параметры: // ПечатнаяФорма - ссылка на печатную форму. // ОбластьHandler - ссылка на область в макете. -// Параметры - строка - перечень параметров, которые требуется заменить. +// Параметры - Строка - перечень параметров, которые требуется заменить. // ДанныеОбъекта - ДанныеОбъекта -// ПереходНаСледСтроку - булево - требуется ли вставлять разрыв после вывода области. +// ПереходНаСледСтроку - Булево - требуется ли вставлять разрыв после вывода области. // Процедура ПрисоединитьИЗаполнитьНабор(Знач ПечатнаяФорма, Знач ОбластьHandler, @@ -456,7 +456,7 @@ // ОбластьHandler - ссылка на область в макете. // ИмяТаблицы - наименование таблицы (для доступа к данным). // ДанныеОбъекта - ДанныеОбъекта -// ПереходНаСледСтроку - булево - требуется ли вставлять разрыв после вывода области. +// ПереходНаСледСтроку - Булево - требуется ли вставлять разрыв после вывода области. // Процедура ПрисоединитьИЗаполнитьОбластьТаблицы(Знач ПечатнаяФорма, Знач ОбластьHandler, diff --git a/SSL/src/CommonModules/УправлениеПечатьюOOWriterКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюOOWriterКлиент/Module.bsl index 66632832e..9faea4871 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюOOWriterКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюOOWriterКлиент/Module.bsl @@ -87,7 +87,7 @@ // Параметры: // ДвоичныеДанныеШаблона - ДвоичныеДанные - двоичные данные макета. // Возвращаемое значение: -// структура - ссылка макет. +// Структура - ссылка макет. // Функция ПолучитьМакетOOWriter(Знач ДвоичныеДанныеШаблона, ИмяВременногоФайла) Экспорт @@ -279,10 +279,7 @@ // Параметры: // ПечатнаяФорма - ссылка на печатную форму. // ОбластьHandler - ссылка на область в макете. -// ПереходНаСледСтроку - булево - требуется ли вставлять разрыв после вывода области. -// -// Возвращаемое значение: -// КоординатыОбласти +// ПереходНаСледСтроку - Булево - требуется ли вставлять разрыв после вывода области. // Процедура ПрисоединитьОбласть(Знач ПечатнаяФормаHandler, Знач ОбластьHandler, @@ -505,6 +502,7 @@ #ИначеЕсли Не МобильныйКлиент Тогда Возврат Новый COMSafeArray("VT_DISPATCH", 1); #КонецЕсли + Возврат Неопределено; КонецФункции diff --git a/SSL/src/CommonModules/УправлениеПечатьюВызовСервера/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюВызовСервера/Module.bsl index 9fc4a2557..5f1cb69fa 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюВызовСервера/Module.bsl @@ -21,7 +21,7 @@ // СоставДокументов - Массив - ссылки на объекты информационной базы (должны быть одного типа). // // Возвращаемое значение: -// Соответствие - коллекция ссылок на объекты и их данные: +// Соответствие из КлючИЗначение - коллекция ссылок на объекты и их данные: // * Ключ - ЛюбаяСсылка - ссылка на объект информационной базы; // * Значение - Структура: // ** Ключ - Строка - имя макета; diff --git a/SSL/src/CommonModules/УправлениеПечатьюКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюКлиент/Module.bsl index a0e163b3f..a409c3870 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюКлиент/Module.bsl @@ -13,7 +13,7 @@ // Параметры: // ИмяМенеджераПечати - Строка - менеджер печати для печатаемых объектов; // ИменаМакетов - Строка - идентификаторы печатных форм; -// МассивОбъектов - Ссылка +// МассивОбъектов - ЛюбаяСсылка // - Массив - объекты печати; // ВладелецФормы - ФормаКлиентскогоПриложения - форма, из которой выполняется печать; // ПараметрыПечати - Структура - произвольные параметры для передачи в менеджер печати. @@ -41,7 +41,7 @@ // Параметры: // ИмяМенеджераПечати - Строка - менеджер печати для печатаемых объектов; // ИменаМакетов - Строка - идентификаторы печатных форм; -// МассивОбъектов - Ссылка +// МассивОбъектов - ЛюбаяСсылка // - Массив - объекты печати; // ПараметрыПечати - Структура - произвольные параметры для передачи в менеджер печати. // @@ -83,7 +83,7 @@ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда СписокПечати = Новый СписокЗначений; Для Каждого Макет Из ПечатныеФормы.ТабличныеДокументы Цикл - МакетПечати = СписокПечати.Добавить(ИменаМакетов,Макет.Представление); + СписокПечати.Добавить(ИменаМакетов, Макет.Представление); КонецЦикла; МодульУчетОригиналовПервичныхДокументовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УчетОригиналовПервичныхДокументовКлиент"); МодульУчетОригиналовПервичныхДокументовКлиент.ЗаписатьСостоянияОригиналовПослеПечати(ПечатныеФормы.ОбъектыПечати, СписокПечати); @@ -254,10 +254,10 @@ // * Экземпляров - Число - количество копий, которое необходимо вывести на печать; // * ПолныйПутьКМакету - Строка - используется для быстрого перехода к редактированию макета печатной формы; // * ИмяФайлаПечатнойФормы - Строка - имя файла; -// - Соответствие - имена файлов для каждого объекта: +// - Соответствие из КлючИЗначение - имена файлов для каждого объекта: // ** Ключ - ЛюбаяСсылка - ссылка на объект печати; // ** Значение - Строка - имя файла; -// * ОфисныеДокументы - Соответствие - коллекция печатных форм в формате офисных документов: +// * ОфисныеДокументы - Соответствие из КлючИЗначение - коллекция печатных форм в формате офисных документов: // ** Ключ - Строка - адрес во временном хранилище двоичных данных печатной формы; // ** Значение - Строка - имя файла печатной формы. // @@ -743,6 +743,27 @@ КонецФункции +Процедура ПереключитьЯзык(Форма, Команда) Экспорт + + Параметры = Новый Структура; + Параметры.Вставить("Форма", Форма); + Параметры.Вставить("Команда", Команда); + + Если Форма.Модифицированность Тогда + ОписаниеОповещения = Новый ОписаниеОповещения("ПриПереключенииЯзыка", ЭтотОбъект, Параметры); + + Кнопки = Новый СписокЗначений; + Кнопки.Добавить(КодВозвратаДиалога.ОК, НСтр("ru = 'Продолжить'")); + Кнопки.Добавить(КодВозвратаДиалога.Отмена); + + ТекстВопроса = НСтр("ru = 'Текущие изменения макета не записаны. Продолжить?'"); + ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , КодВозвратаДиалога.Отмена); + Иначе + ПриПереключенииЯзыка(КодВозвратаДиалога.ОК, Параметры); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -764,4 +785,23 @@ Возврат НСтр("ru = 'Тип области не указан или указан некорректно.'"); КонецФункции +Процедура ПриПереключенииЯзыка(Ответ, Параметры) Экспорт + + Если Ответ <> КодВозвратаДиалога.ОК Тогда + Возврат + КонецЕсли; + + Форма = Параметры.Форма; // ФормаКлиентскогоПриложения - + Команда = Параметры.Команда; // КомандаФормы - + + ВыбранныйЯзык = Сред(Команда.Имя, СтрДлина("Язык_") + 1); + Форма.ТекущийЯзык = ВыбранныйЯзык; + Форма.Элементы.Язык.Заголовок = Форма.Элементы[Команда.Имя].Заголовок; + Форма.Модифицированность = Ложь; + + ОписаниеОповещения = Новый ОписаниеОповещения("Подключаемый_ПриПереключенииЯзыка", Форма); + ВыполнитьОбработкуОповещения(ОписаниеОповещения, ВыбранныйЯзык); + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/CommonModules/УправлениеПечатьюКлиентСервер/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюКлиентСервер/Module.bsl index 964a0ebc0..415800b8c 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюКлиентСервер/Module.bsl @@ -20,6 +20,7 @@ Поля.Добавить("ПолныйПутьКМакету"); Поля.Добавить("ИмяФайлаПечатнойФормы"); Поля.Добавить("ОфисныеДокументы"); + Поля.Добавить("ДоступенВыводНаДругихЯзыках"); Возврат Поля; diff --git a/SSL/src/CommonModules/УправлениеПечатьюМультиязычность/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюМультиязычность/Module.bsl new file mode 100644 index 000000000..c49c22824 --- /dev/null +++ b/SSL/src/CommonModules/УправлениеПечатьюМультиязычность/Module.bsl @@ -0,0 +1,253 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. +Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт + + Обработчик = Обработчики.Добавить(); + Обработчик.НачальноеЗаполнение = Истина; + Обработчик.Версия = "3.1.4.67"; + Обработчик.Процедура = "Справочники.ЯзыкиПечатныхФорм.ЗаполнитьПоставляемыеЯзыки"; + Обработчик.РежимВыполнения = "Оперативно"; + +КонецПроцедуры + +Функция ДоступныеЯзыки(СРегиональнымиНастройками = Ложь) Экспорт + + Возврат Справочники.ЯзыкиПечатныхФорм.ДоступныеЯзыки(СРегиональнымиНастройками); + +КонецФункции + +Функция ДополнительныеЯзыкиПечатныхФорм() Экспорт + + Возврат Справочники.ЯзыкиПечатныхФорм.ДополнительныеЯзыкиПечатныхФорм(); + +КонецФункции + +Функция ЭтоДополнительныйЯзыкПечатныхФорм(КодЯзыка) Экспорт + + Возврат Справочники.ЯзыкиПечатныхФорм.ЭтоДополнительныйЯзыкПечатныхФорм(КодЯзыка); + +КонецФункции + +Функция ПредставлениеЯзыка(КодЯзыка) Экспорт + + Возврат МультиязычностьСервер.ПредставлениеЯзыка(КодЯзыка); + +КонецФункции + +Функция ЯзыкиМакета(ПутьКМакету) Экспорт + + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Макет ""%1"" не существует. Операция прервана.'"), ПутьКМакету); + ЧастиПути = СтрРазделить(ПутьКМакету, ".", Истина); + Если ЧастиПути.Количество() <> 2 И ЧастиПути.Количество() <> 3 Тогда + ВызватьИсключение ТекстОшибки; + КонецЕсли; + + ИмяМакета = ЧастиПути[ЧастиПути.ВГраница()]; + ЧастиПути.Удалить(ЧастиПути.ВГраница()); + ИмяОбъекта = СтрСоединить(ЧастиПути, "."); + + ЯзыкиПечатныхФорм = ДоступныеЯзыки(); + Для Каждого КодЯзыка Из ЯзыкиПечатныхФорм Цикл + Если СтрЗаканчиваетсяНа(ИмяМакета, "_" + КодЯзыка) Тогда + ИмяМакета = Лев(ИмяМакета, СтрДлина(ИмяМакета) - СтрДлина(КодЯзыка) - 1); + Прервать; + КонецЕсли; + КонецЦикла; + + ТекстЗапроса = + "ВЫБРАТЬ + | ПользовательскиеМакетыПечати.ИмяМакета КАК ИмяМакета + |ИЗ + | РегистрСведений.ПользовательскиеМакетыПечати КАК ПользовательскиеМакетыПечати + |ГДЕ + | ПользовательскиеМакетыПечати.Объект = &Объект + | И ПользовательскиеМакетыПечати.ИмяМакета ПОДОБНО &ШаблонИмениМакета + | И ПользовательскиеМакетыПечати.Использование"; + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.Параметры.Вставить("Объект", ИмяОбъекта); + Запрос.Параметры.Вставить("ШаблонИмениМакета", ИмяМакета + "_%"); + + Выборка = Запрос.Выполнить().Выбрать(); + НайденныеЯзыки = Новый Соответствие; + + Пока Выборка.Следующий() Цикл + Для Каждого КодЯзыка Из ЯзыкиПечатныхФорм Цикл + КодЛокализации = КодЯзыка; + Если СтрЗаканчиваетсяНа(Выборка.ИмяМакета, "_" + КодЛокализации) Тогда + НайденныеЯзыки.Вставить(КодЛокализации, Истина); + Продолжить; + КонецЕсли; + КонецЦикла; + КонецЦикла; + + ИменаПоиска = Новый Соответствие; + Для Каждого КодЯзыка Из ДополнительныеЯзыкиПечатныхФорм() Цикл + ИменаПоиска.Вставить(КодЯзыка, ИмяМакета + "_" + КодЯзыка); + КонецЦикла; + + ЭтоОбщийМакет = СтрРазделить(ИмяОбъекта, ".").Количество() = 1; + + КоллекцияМакетов = Метаданные.ОбщиеМакеты; + Если Не ЭтоОбщийМакет Тогда + ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ИмяОбъекта); + Если ОбъектМетаданных = Неопределено Тогда + ВызватьИсключение ТекстОшибки; + КонецЕсли; + КоллекцияМакетов = ОбъектМетаданных.Макеты; + КонецЕсли; + + Для Каждого Элемент Из ИменаПоиска Цикл + ИмяПоиска = Элемент.Значение; + КодЯзыка = Элемент.Ключ; + Если КоллекцияМакетов.Найти(ИмяПоиска) <> Неопределено Тогда + НайденныеЯзыки.Вставить(КодЯзыка, Истина); + КонецЕсли; + КонецЦикла; + + Для Каждого КодЯзыка Из СтандартныеПодсистемыСервер.ЯзыкиКонфигурации() Цикл + НайденныеЯзыки.Вставить(КодЯзыка, Истина); + КонецЦикла; + + Результат = Новый Массив; + Для Каждого КодЯзыка Из ЯзыкиПечатныхФорм Цикл + Если НайденныеЯзыки[КодЯзыка] <> Неопределено Тогда + Результат.Добавить(КодЯзыка); + КонецЕсли; + КонецЦикла; + + Возврат Результат; + +КонецФункции + +Функция ПредставлениеЯзыковМакета(ИмяОбъектаМетаданныхМакета) Экспорт + + ПредставленияЯзыков = Новый Массив; + Для Каждого КодЯзыка Из ЯзыкиМакета(ИмяОбъектаМетаданныхМакета) Цикл + Если ЭтоДополнительныйЯзыкПечатныхФорм(КодЯзыка) Тогда + ПредставленияЯзыков.Добавить(ПредставлениеЯзыка(КодЯзыка)); + КонецЕсли; + КонецЦикла; + + Возврат СтрСоединить(ПредставленияЯзыков, ", "); + +КонецФункции + +// Параметры: +// НаборЯзыков - ТаблицаЗначений: +// * КодЯзыка - Строка +// * Представление - Строка +// * Суффикс - Строка +// +Процедура ПриЗаполненииНабораЯзыков(НаборЯзыков) Экспорт + + ПредставленияЯзыков = Новый Соответствие; + Для Каждого ЯзыкКонфигурации Из Метаданные.Языки Цикл + ПредставленияЯзыков.Вставить(ЯзыкКонфигурации.КодЯзыка, ЯзыкКонфигурации.Представление()); + КонецЦикла; + + Для Каждого КодЯзыка Из ДоступныеЯзыки() Цикл + НовыйЯзык = НаборЯзыков.Добавить(); + НовыйЯзык.КодЯзыка = КодЯзыка; + ПредставлениеЯзыка = ПредставленияЯзыков[КодЯзыка]; + Если Не ЗначениеЗаполнено(ПредставлениеЯзыка) Тогда + ПредставлениеЯзыка = ПредставлениеЯзыка(КодЯзыка); + КонецЕсли; + НовыйЯзык.Представление = ПредставлениеЯзыка; + КонецЦикла; + +КонецПроцедуры + +Функция ИспользуютсяДополнительныеЯзыкиПечатныхФорм() Экспорт + + Возврат Справочники.ЯзыкиПечатныхФорм.ДополнительныеЯзыкиПечатныхФорм().Количество() > 0 + +КонецФункции + +// Параметры: +// Форма - ФормаКлиентскогоПриложения: +// * Элементы - ВсеЭлементыФормы: +// ** Язык - ГруппаФормы +// ТекущийЯзык - Строка +// Отбор - Массив из Строка +// +Процедура ЗаполнитьПодменюЯзык(Форма, ТекущийЯзык = Неопределено, Знач Отбор = Неопределено) Экспорт + + ИспользоватьРегиональныеПредставленияЯзыков = Истина; // Для формы печати. + Если Отбор = Неопределено Тогда + Отбор = ДоступныеЯзыки(); + ИспользоватьРегиональныеПредставленияЯзыков = Ложь; // Для формы редактирования. + КонецЕсли; + + Если Не ЗначениеЗаполнено(ТекущийЯзык) Тогда + ТекущийЯзык = ТекущийЯзык().КодЯзыка; + Если Отбор.Найти(ТекущийЯзык) = Неопределено Тогда + Для Каждого КодЯзыка Из Отбор Цикл + Если СтрНачинаетсяС(КодЯзыка, ТекущийЯзык) Тогда + ТекущийЯзык = КодЯзыка; + Прервать; + КонецЕсли; + КонецЦикла; + Если ЗначениеЗаполнено(Отбор) Тогда + ТекущийЯзык = Отбор[0]; + КонецЕсли; + КонецЕсли; + КонецЕсли; + + Элементы = Форма.Элементы; + Команды = Форма.Команды; + + Если Отбор.Количество() < 2 Тогда + Возврат; + КонецЕсли; + + Форма.ТекущийЯзык = ТекущийЯзык; + ДоступныеЯзыки = ДоступныеЯзыки(ИспользоватьРегиональныеПредставленияЯзыков); + + Элементы.Язык.Заголовок = ""; + + Для Каждого КодЛокализации Из ДоступныеЯзыки Цикл + КодЯзыка = СтрРазделить(КодЛокализации, "_", Истина)[0]; + Если Отбор.Найти(КодЯзыка) = Неопределено Тогда + Продолжить; + КонецЕсли; + + ПредставлениеЯзыка = ПредставлениеЯзыка(КодЛокализации); + Если Не ЗначениеЗаполнено(Элементы.Язык.Заголовок) И КодЯзыка = ТекущийЯзык Тогда + Элементы.Язык.Заголовок = ПредставлениеЯзыка; + КонецЕсли; + + Команда = Команды.Добавить("Язык_" + КодЛокализации); + Команда.Действие = "Подключаемый_ПереключитьЯзык"; + Команда.Заголовок = ПредставлениеЯзыка; + + КнопкаФормы = Элементы.Добавить(Команда.Имя, Тип("КнопкаФормы"), Элементы.Язык); + КнопкаФормы.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели; + КнопкаФормы.ИмяКоманды = Команда.Имя; + КнопкаФормы.Заголовок = ПредставлениеЯзыка; + КонецЦикла; + +КонецПроцедуры + +Функция ДоступенАвтоматическийПеревод(КодЯзыка) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.ПереводТекста") Тогда + МодульПереводТекстаНаДругиеЯзыки = ОбщегоНазначения.ОбщийМодуль("ПереводТекстаНаДругиеЯзыки"); + Возврат ЭтоДополнительныйЯзыкПечатныхФорм(КодЯзыка) И МодульПереводТекстаНаДругиеЯзыки.ДоступенПереводТекста(); + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/УправлениеПечатьюМультиязычность/УправлениеПечатьюМультиязычность.mdo b/SSL/src/CommonModules/УправлениеПечатьюМультиязычность/УправлениеПечатьюМультиязычность.mdo new file mode 100644 index 000000000..db29d969b --- /dev/null +++ b/SSL/src/CommonModules/УправлениеПечатьюМультиязычность/УправлениеПечатьюМультиязычность.mdo @@ -0,0 +1,11 @@ + + + УправлениеПечатьюМультиязычность + + ru + Управление печатью мультиязычность + + true + true + true + diff --git a/SSL/src/CommonModules/УправлениеПечатьюПереопределяемый/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюПереопределяемый/Module.bsl index f235c81ca..d73df3b8b 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюПереопределяемый/Module.bsl @@ -99,7 +99,7 @@ // Параметр не используется, если вывод печатных форм выполняется в формате офисных документов // (см. параметр "ОфисныеДокументы"); // -// * ОфисныеДокументы - Соответствие - коллекция печатных форм в формате офисных документов: +// * ОфисныеДокументы - Соответствие из КлючИЗначение - коллекция печатных форм в формате офисных документов: // ** Ключ - Строка - адрес во временном хранилище двоичных данных печатной формы; // ** Значение - Строка - имя файла печатной формы. // @@ -108,13 +108,17 @@ // По умолчанию имя файла устанавливается в формате // "[НазваниеПечатнойФормы] № [Номер] от [Дата]" для документов, // "[НазваниеПечатнойФормы] - [ПредставлениеОбъекта] - [ТекущаяДата]" для объектов. -// - Соответствие - имена файлов для каждого объекта: +// - Соответствие из КлючИЗначение - имена файлов для каждого объекта: // ** Ключ - ЛюбаяСсылка - ссылка на объект печати из коллекции МассивОбъектов; // ** Значение - Строка - имя файла; // // * Экземпляров - Число - количество копий, которое необходимо вывести на печать; // * ПолныйПутьКМакету - Строка - используется для быстрого перехода к редактированию макета печатной формы // в общей форме ПечатьДокументов; +// * ДоступенВыводНаДругихЯзыках - Булево - необходимо установить значение Истина, если печатная форма адаптирована +// для вывода на произвольном языке. Для вывода печатной формы на других +// языках необходимо +// // ОбъектыПечати - СписокЗначений - выходной параметр, соответствие между объектами и именами областей в табличных // документах, заполняется автоматически // при вызове УправлениеПечатью.ЗадатьОбластьПечатиДокумента: @@ -127,6 +131,9 @@ // ** Получатель - см. РаботаСПочтовымиСообщениямиКлиент.ПараметрыОтправкиПисьма.Получатель // ** Тема - см. РаботаСПочтовымиСообщениямиКлиент.ПараметрыОтправкиПисьма.Тема // ** Текст - см. РаботаСПочтовымиСообщениямиКлиент.ПараметрыОтправкиПисьма.Текст +// * КодЯзыка - Строка - язык, на котором требуется сформировать печатную форму. +// Состоит из кода языка по ISO 639-1 и, опционально, кода страны по ISO 3166-1, разделенных +// символом подчеркивания. Примеры: "en", "en_US", "en_GB", "ru", "ru_RU". // // * ЗаголовокФормы - Строка - переопределяет заголовок формы печати документов (ПечатьДокументов). // @@ -180,7 +187,7 @@ // // Параметры: // Документы - Массив - коллекция ссылок на объекты печати; -// ПодписиИПечати - Соответствие - коллекция объектов печати и комплектов подписей/печатей к ним: +// ПодписиИПечати - Соответствие из КлючИЗначение - коллекция объектов печати и комплектов подписей/печатей к ним: // * Ключ - ЛюбаяСсылка - ссылка на объект печати; // * Значение - Структура - комплект подписей и печатей: // ** Ключ - Строка - идентификатор подписи или печати в макете печатной формы, diff --git a/SSL/src/CommonModules/УправлениеПечатьюСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюСлужебный/Module.bsl index bd55593d1..f58ca0ede 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюСлужебный/Module.bsl @@ -8,6 +8,8 @@ #Область СлужебныеПроцедурыИФункции +#Область ПечатьВФорматеOfficeOpenXML + ////////////////////////////////////////////////////////////////////////////////// // Печать с использованием макетов в формате Office Open XML. // @@ -421,7 +423,7 @@ #Область РаботаСоСтруктуройДокумента // Возвращаемое значение: -// Структура: +// Структура: // * ИдентификаторДокумента - Строка // * РасширенияКартинок - Массив // * КаталогКартинок - Строка @@ -429,7 +431,7 @@ // * СвязиКонтента - Строка // * ТипыКонтента - Строка // * ПрисоединенныеОбласти - Массив -// * Колонтитулы - Соответствие: +// * Колонтитулы - Соответствие из КлючИЗначение: // ** Ключ - Строка // ** Значение - см. ОбластьКолонтитула // * Разделы - Соответствие @@ -483,7 +485,7 @@ КонецФункции // Возвращаемое значение: -// Структура: +// Структура: // * НомерРаздела - Число // * Текст - Строка // * ИмяВнутр - Строка @@ -3134,3 +3136,5 @@ КонецФункции #КонецОбласти + +#КонецОбласти diff --git a/SSL/src/CommonModules/УправлениеПечатьюСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюСлужебныйКлиент/Module.bsl index af46cbce7..ebb561005 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюСлужебныйКлиент/Module.bsl @@ -11,7 +11,7 @@ // Обработчик подключенной команды. // // Параметры: -// МассивСсылок - Массив Из ЛюбаяСсылка - ссылки выбранных объектов, для которых выполняется команда. +// МассивСсылок - Массив из ЛюбаяСсылка - ссылки выбранных объектов, для которых выполняется команда. // ПараметрыВыполнения - см. ПодключаемыеКомандыКлиент.ПараметрыВыполненияКоманды // Процедура ОбработчикКоманды(Знач МассивСсылок, Знач ПараметрыВыполнения) Экспорт @@ -49,7 +49,7 @@ // НастройкиФормата - Структура: // * УпаковатьВАрхив - Булево - признак необходимости упаковки вложений в архив. // * ФорматыСохранения - Массив - список выбранных форматов вложений. -// Оповещение - ОписаниеОповещения - - оповещение, которое вызывается после закрытие формы для обработки +// Оповещение - ОписаниеОповещения - оповещение, которое вызывается после закрытие формы для обработки // результатов выбора. // Процедура ОткрытьФормуВыбораФорматаВложений(НастройкиФормата, Оповещение) Экспорт @@ -100,7 +100,7 @@ ОписаниеКоманды.Вставить("Форма", Форма); ИмяОбработчика = ОписаниеКоманды.Обработчик; Если СтрЧислоВхождений(ИмяОбработчика, ".") = 0 И ЭтоОтчетИлиОбработка(ОписаниеКоманды.МенеджерПечати) Тогда - ОсновнаяФорма = ПолучитьФорму(ОписаниеКоманды.МенеджерПечати + ".Форма", , Форма, Истина); + ОсновнаяФорма = ПолучитьФорму(ОписаниеКоманды.МенеджерПечати + ".Форма", , Форма, Истина); // АПК: ИмяОбработчика = "ОсновнаяФорма." + ИмяОбработчика; КонецЕсли; Обработчик = ИмяОбработчика + "(ОписаниеКоманды)"; diff --git a/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl index 91c397e83..4c1f06ae8 100644 --- a/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl @@ -874,7 +874,7 @@ // Возвращает дополнительные реквизиты и сведения у указанного объекта. // // Параметры: -// ВладелецСвойств - Ссылка - например: СправочникСсылка.Номенклатура, ДокументСсылка.ЗаказПокупателя, ... +// ВладелецСвойств - ЛюбаяСсылка - например: СправочникСсылка.Номенклатура, ДокументСсылка.ЗаказПокупателя, ... // - Объект - например: СправочникОбъект.Номенклатура, ДокументОбъект.ЗаказПокупателя, ... // - ДанныеФормыСтруктура - коллекция по типу объекта владельца свойств. // ПолучатьДопРеквизиты - Булево - в результат включать дополнительные реквизиты. @@ -951,18 +951,27 @@ // которых следует получить. // * Строка - уникальное имя дополнительного свойства. // - Неопределено - по умолчанию, получить значения всех свойств владельца. +// КодЯзыка - Строка - код языка, на котором будет получено представление значения свойства. +// Если не указано - берется текущий язык. // // Возвращаемое значение: // ТаблицаЗначений: -// * Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - свойство владельца. -// * Значение - Произвольный - значения любого типа из описания типов свойства объекта метаданных: -// "Метаданные.ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Тип". +// * Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - свойство владельца. +// * ИмяСвойства - Строка - уникальное имя свойства владельца. +// * Значение - Произвольный - значения любого типа из описания типов свойства объекта метаданных: +// "Метаданные.ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Тип". +// * Представление - Строка - представление значения на указанном языке. // * ВладелецСвойств - ЛюбаяСсылка - ссылка на объект. // Функция ЗначенияСвойств(ОбъектыСоСвойствами, ПолучатьДопРеквизиты = Истина, ПолучатьДопСведения = Истина, - Свойства = Неопределено) Экспорт + Свойства = Неопределено, + КодЯзыка = "") Экспорт + + Если Не СвойстваДоступны() Тогда + Возврат Новый ТаблицаЗначений; + КонецЕсли; ПолучатьДопСведения = ПолучатьДопСведения И ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ДополнительныеСведения); @@ -983,7 +992,8 @@ | ТаблицаСвойств.Свойство КАК Свойство, | ТаблицаСвойств.Значение КАК Значение, | ТаблицаСвойств.ТекстоваяСтрока, - | ТаблицаСвойств.Ссылка КАК ВладелецСвойств + | ТаблицаСвойств.Ссылка КАК ВладелецСвойств, + | ДополнительныеРеквизитыИСведения.Имя КАК ИмяСвойства |ИЗ | &ИмяОбъектаСоСвойствами КАК ТаблицаСвойств | ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения @@ -998,7 +1008,8 @@ | ТаблицаСвойств.Свойство КАК Свойство, | ТаблицаСвойств.Значение КАК Значение, | """" КАК ТекстоваяСтрока, - | ТаблицаСвойств.Объект КАК ВладелецСвойств + | ТаблицаСвойств.Объект КАК ВладелецСвойств, + | ДополнительныеРеквизитыИСведения.Имя КАК ИмяСвойства |ИЗ | РегистрСведений.ДополнительныеСведения КАК ТаблицаСвойств | ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения @@ -1014,7 +1025,7 @@ ТекстЗапроса = ТекстЗапросаДопРеквизиты + " | | ОБЪЕДИНИТЬ ВСЕ - |" + СтрЗаменить(ТекстЗапросаДопСведения, "РАЗРЕШЕННЫЕ", ""); + |" + СтрЗаменить(ТекстЗапросаДопСведения, "РАЗРЕШЕННЫЕ", ""); // @Query-part-1, @Query-part-2 ИначеЕсли ПолучатьДопРеквизиты Тогда ТекстЗапроса = ТекстЗапросаДопРеквизиты; @@ -1030,13 +1041,18 @@ Запрос.Текст = ТекстЗапроса; Результат = Запрос.Выполнить().Выгрузить(); + Результат.Колонки.Добавить("Представление"); РезультатСТекстовымиСтроками = Неопределено; ИндексСтроки = 0; Для каждого ЗначениеСвойства Из Результат Цикл + ЗначениеСвойства.Представление = ПредставлениеЗначения(ЗначениеСвойства.Значение, + КодЯзыка, + ФорматСвойства(ЗначениеСвойства.Свойство)); + ТекстоваяСтрока = ЗначениеСвойства.ТекстоваяСтрока; Если Не ПустаяСтрока(ТекстоваяСтрока) Тогда Если РезультатСТекстовымиСтроками = Неопределено Тогда - РезультатСТекстовымиСтроками = Результат.Скопировать(,"Свойство, ВладелецСвойств"); + РезультатСТекстовымиСтроками = Результат.Скопировать(,"Свойство, ВладелецСвойств, ИмяСвойства, Представление"); РезультатСТекстовымиСтроками.Колонки.Добавить("Значение"); РезультатСТекстовымиСтроками.ЗагрузитьКолонку(Результат.ВыгрузитьКолонку("Значение"), "Значение"); КонецЕсли; @@ -1056,23 +1072,29 @@ // Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - ссылка на // дополнительный реквизит, значение которого нужно получить. // - Строка - имя дополнительного свойства. +// КодЯзыка - Строка - если указано, то вместо значения дополнительного свойства будет +// возвращено его представление на указанном языке. // // Возвращаемое значение: // Произвольный - любое значение, допустимое для свойства. // -Функция ЗначениеСвойства(Объект, Свойство) Экспорт +Функция ЗначениеСвойства(Объект, Свойство, КодЯзыка = "") Экспорт ПолучатьРеквизиты = УправлениеСвойствамиСлужебный.ЭтоОбъектМетаданныхСДополнительнымиРеквизитами(Объект.Метаданные()); - Результат = ЗначенияСвойств(Объект, ПолучатьРеквизиты, Истина, Свойство); + Результат = ЗначенияСвойств(Объект, ПолучатьРеквизиты, Истина, Свойство, КодЯзыка); Если Результат.Количество() = 1 Тогда - Возврат Результат[0].Значение; + Если ЗначениеЗаполнено(КодЯзыка) Тогда + Возврат Результат[0].Представление; + Иначе + Возврат Результат[0].Значение; + КонецЕсли; КонецЕсли; КонецФункции // Проверяет, есть ли у объекта свойство. // // Параметры: -// ВладелецСвойств - Ссылка - например: СправочникСсылка.Номенклатура, ДокументСсылка.ЗаказПокупателя, ... +// ВладелецСвойств - ЛюбаяСсылка - например: СправочникСсылка.Номенклатура, ДокументСсылка.ЗаказПокупателя, ... // Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - проверяемое свойство. // // Возвращаемое значение: @@ -1094,7 +1116,7 @@ // Изменения происходят в транзакции. // // Параметры: -// ВладелецСвойств - Ссылка - например, СправочникСсылка.Номенклатура, ДокументСсылка.ЗаказПокупателя и т.д. +// ВладелецСвойств - ЛюбаяСсылка - например, СправочникСсылка.Номенклатура, ДокументСсылка.ЗаказПокупателя и т.д. // ТаблицаСвойствИЗначений - ТаблицаЗначений: // * Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - свойство владельца. // * Значение - Произвольный - любое значение, допустимое для свойства (указано в элементе свойства). @@ -1213,7 +1235,7 @@ // Проверяет, используются ли дополнительные сведения объектом. // // Параметры: -// ВладелецСвойств - Ссылка - например, СправочникСсылка.Номенклатура, ДокументСсылка.ЗаказПокупателя, ... +// ВладелецСвойств - ЛюбаяСсылка - например, СправочникСсылка.Номенклатура, ДокументСсылка.ЗаказПокупателя, ... // // Возвращаемое значение: // Булево - если Истина, тогда дополнительные сведения используются. @@ -1234,6 +1256,74 @@ Возврат ПравоДоступа("Чтение", Метаданные.Справочники.НаборыДополнительныхРеквизитовИСведений); КонецФункции +// Возвращает представление значения дополнительного свойства объекта +// на требуемом языке. +// +// Параметры: +// Объект - ЛюбаяСсылка - ссылка на объект, например, СправочникСсылка.Номенклатура, +// ДокументСсылка.ЗаказПокупателя, ... +// Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - ссылка на +// дополнительный реквизит, значение которого нужно получить. +// - Строка - имя дополнительного свойства. +// КодЯзыка - Строка - код языка, на котором нужно получить представление. +// +// Возвращаемое значение: +// Строка +// +Функция ПредставлениеЗначенияСвойства(Объект, Свойство, КодЯзыка = "") Экспорт + Представление = ЗначениеСвойства(Объект, Свойство, КодЯзыка); + Возврат Представление; +КонецФункции + +// Возвращает значения дополнительных свойств объектов. +// Подходит для подстановки параметров при формировании печатных форм. +// +// Параметры: +// ОбъектыСоСвойствами - Массив - объекты, для которых нужно получить значения дополнительных свойств. +// - ЛюбаяСсылка - ссылка на объект, например, СправочникСсылка.Номенклатура, +// ДокументСсылка.ЗаказПокупателя, ... +// КодЯзыка - Строка - код языка, на котором нужно получить представление. +// +// Возвращаемое значение: +// Соответствие из КлючИЗначение: +// * Ключ - ЛюбаяСсылка - ссылка на объект. +// * Значение - Структура: +// * Ключ - Строка - имя свойства. +// * Значение - Строка - представление свойства на переданном языке. +// +Функция ПредставленияЗначенийСвойств(ОбъектыСоСвойствами, КодЯзыка = "") Экспорт + ЗначенияСвойств = ЗначенияСвойств(ОбъектыСоСвойствами, Истина, Истина, Неопределено, КодЯзыка); + + Результат = Новый Соответствие; + + Для Каждого ЗначениеСвойства Из ЗначенияСвойств Цикл + Если Результат[ЗначениеСвойства.ВладелецСвойств] = Неопределено Тогда + Результат.Вставить(ЗначениеСвойства.ВладелецСвойств, Новый Структура); + КонецЕсли; + + ИмяСвойства = ЗначениеСвойства.ИмяСвойства; + ПервыйСимвол = Лев(ЗначениеСвойства.ИмяСвойства, 1); + Если СтрНайти("0123456789", ПервыйСимвол) > 0 Тогда + ИмяСвойства = "_" + ИмяСвойства; + КонецЕсли; + Результат[ЗначениеСвойства.ВладелецСвойств].Вставить(ИмяСвойства, ЗначениеСвойства.Представление); + КонецЦикла; + + Если ТипЗнч(ОбъектыСоСвойствами) = Тип("Массив") Тогда + Для Каждого ОбъектСоСвойствами Из ОбъектыСоСвойствами Цикл + Если Результат[ОбъектСоСвойствами] = Неопределено Тогда + Результат[ОбъектСоСвойствами] = Новый Структура; + КонецЕсли; + КонецЦикла; + Иначе + Если Результат[ОбъектСоСвойствами] = Неопределено Тогда + Результат[ОбъектСоСвойствами] = Новый Структура; + КонецЕсли; + КонецЕсли; + + Возврат Результат; +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Обновление информационной базы. @@ -1292,7 +1382,7 @@ ВыборкаСвойств = ЗапросСвойств.Выполнить().Выбрать(); Пока ВыборкаСвойств.Следующий() Цикл - Объект = ВыборкаСвойств.Ссылка.ПолучитьОбъект(); + Объект = ВыборкаСвойств.Ссылка.ПолучитьОбъект(); // ПланВидовХарактеристикОбъект.ДополнительныеРеквизитыИСведения Объект.Наименование = Объект.Заголовок; Объект.ПометкаУдаления = ВыборкаСвойств.ПометкаУдаленияНабора; ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); @@ -1354,7 +1444,7 @@ // Возвращает значения дополнительных свойств объекта. // // Параметры: -// ВладелецСвойств - Ссылка - например, СправочникСсылка.Номенклатура, ДокументСсылка.ЗаказПокупателя, ... +// ВладелецСвойств - ЛюбаяСсылка - например, СправочникСсылка.Номенклатура, ДокументСсылка.ЗаказПокупателя, ... // ПолучатьДопРеквизиты - Булево - в результат включать дополнительные реквизиты. // ПолучатьДопСведения - Булево - в результат включать дополнительные сведения. // МассивСвойств - Массив - свойства: @@ -1380,7 +1470,7 @@ // Возвращает свойства владельца. // // Параметры: -// ВладелецСвойств - Ссылка - например, СправочникСсылка.Номенклатура, ДокументСсылка.ЗаказПокупателя, ... +// ВладелецСвойств - ЛюбаяСсылка - например, СправочникСсылка.Номенклатура, ДокументСсылка.ЗаказПокупателя, ... // ПолучатьДопРеквизиты - Булево - в результат включать дополнительные реквизиты. // ПолучатьДопСведения - Булево - в результат включать дополнительные сведения. // @@ -1665,12 +1755,12 @@ Если Родитель.Вид = ВидГруппыФормы.Страница Тогда Возврат Родитель; Иначе - СтраницаРодитель(Родитель); + Возврат СтраницаРодитель(Родитель); КонецЕсли; - Иначе - Возврат Неопределено; КонецЕсли; + Возврат Неопределено; + КонецФункции Процедура ОбновитьКлючНазначенияФормы(Форма, КлючНазначения) @@ -1837,4 +1927,59 @@ КонецПроцедуры +Функция ПредставлениеЗначения(Значение, КодЯзыка, ФорматСвойства) + + Если Значение = Неопределено Тогда + Возврат Значение; + КонецЕсли; + + Если ТипЗнч(Значение) = Тип("Строка") Тогда + Представление = Значение; + ИначеЕсли ТипЗнч(Значение) = Тип("Булево") + Или ТипЗнч(Значение) = Тип("Дата") + Или ТипЗнч(Значение) = Тип("Число") Тогда + Если ЗначениеЗаполнено(ФорматСвойства) Тогда + Если СтрНайти(ФорматСвойства, "Л=''") > 0 Тогда + ФорматСвойства = СтрЗаменить(ФорматСвойства, "Л=''", "Л=" + КодЯзыка); + ИначеЕсли СтрНайти(ФорматСвойства, "Л=") = 0 Тогда + ФорматСвойства = "Л=" + КодЯзыка + ";" + ФорматСвойства; + КонецЕсли; + Представление = Формат(Значение, ФорматСвойства); + Иначе + Представление = Формат(Значение, "Л=" + КодЯзыка); + КонецЕсли; + Иначе + Представление = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Значение, "Наименование", , КодЯзыка); + КонецЕсли; + + Возврат Представление; + +КонецФункции + +Функция ФорматСвойства(Свойство) + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("Свойство", Свойство); + Запрос.Текст = + "ВЫБРАТЬ + | ДополнительныеРеквизитыИСведения.ФорматСвойства КАК ФорматСвойства + |ИЗ + | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения + |ГДЕ + | &Условие"; + Если ТипЗнч(Свойство) = Тип("Строка") Тогда + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Условие", "ДополнительныеРеквизитыИСведения.Имя = &Свойство"); + Иначе + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Условие", "ДополнительныеРеквизитыИСведения.Ссылка = &Свойство"); + КонецЕсли; + + Результат = Запрос.Выполнить().Выгрузить(); + Если Результат.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + + Возврат Результат[0].ФорматСвойства; + +КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonModules/УправлениеСвойствамиПереопределяемый/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствамиПереопределяемый/Module.bsl index 4d53fe151..5d07792ac 100644 --- a/SSL/src/CommonModules/УправлениеСвойствамиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствамиПереопределяемый/Module.bsl @@ -36,7 +36,7 @@ // Получает наименования наборов свойств второго уровня на разных языках. // // Параметры: -// Наименования - Соответствие - представление набора на переданном языке: +// Наименования - Соответствие из КлючИЗначение - представление набора на переданном языке: // * Ключ - Строка - имя набора свойств. Например, "Справочник_Партнеры_Общие". // * Значение - Строка - наименование набора для переданного кода языка. // КодЯзыка - Строка - код языка. Например, "en". @@ -100,7 +100,7 @@ // отдельно для разного состава наборов. // Например, для каждого вида номенклатуры - свой состав наборов. // -// - Строка - (не более 32 символа) - использовать указанный ключ +// - Строка - (не более 32 символа) - использовать указанный ключ // назначения для добавления к значениям свойств формы. // Пустая строка - не изменять свойства ключей формы, т.к. они // устанавливается в форме и уже учитывают различия состава наборов. diff --git a/SSL/src/CommonModules/УправлениеСвойствамиПовтИсп/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствамиПовтИсп/Module.bsl index 63e3a8ae7..898ad96af 100644 --- a/SSL/src/CommonModules/УправлениеСвойствамиПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствамиПовтИсп/Module.bsl @@ -11,7 +11,7 @@ // Только для внутреннего использования. // // Возвращаемое значение: -// ФиксированноеСоответствие: +// ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка // - СправочникСсылка.НаборыДополнительныхРеквизитовИСведений // * Значение - см. Справочники.НаборыДополнительныхРеквизитовИСведений.СвойстваНабора diff --git a/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl index 36d8eebb8..c4be1662e 100644 --- a/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl @@ -162,10 +162,6 @@ // Обработчики событий подсистем конфигурации. // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -188,13 +184,12 @@ Обработчик.НачальноеЗаполнение = Истина; Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "3.1.3.294"; + Обработчик.Версия = "3.1.4.18"; Обработчик.Идентификатор = Новый УникальныйИдентификатор("ecd6aad4-4b04-43be-82bc-cd4f563beb0b"); Обработчик.Процедура = "ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ОбработатьДанныеДляПереходаНаНовуюВерсию"; Обработчик.Комментарий = НСтр("ru = 'Заполняет уникальное имя и обновляет зависимости дополнительных реквизитов и сведений. |Редактирование дополнительных реквизитов и сведений будет недоступно до завершения обновления.'"); Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ПроцедураЗаполненияДанныхОбновления = "ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; Обработчик.ЧитаемыеОбъекты = "ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения"; Обработчик.ИзменяемыеОбъекты = "ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения"; @@ -226,11 +221,6 @@ КонецПроцедуры // См. ВерсионированиеОбъектовПереопределяемый.ПриПодготовкеДанныхОбъекта -// -// Параметры: -// Объект - см. ВерсионированиеОбъектовПереопределяемый.ПриПодготовкеДанныхОбъекта.Объект -// ДополнительныеРеквизиты - см. ВерсионированиеОбъектовПереопределяемый.ПриПодготовкеДанныхОбъекта.ДополнительныеРеквизиты -// Процедура ПриПодготовкеДанныхОбъекта(Объект, ДополнительныеРеквизиты) Экспорт ПолучатьДопРеквизиты = УправлениеСвойствами.ИспользоватьДопРеквизиты(Объект.Ссылка); @@ -246,11 +236,7 @@ КонецПроцедуры -// Восстанавливает значения реквизитов объекта, хранящихся отдельно от объекта. -// Параметры: -// Объект - см. ВерсионированиеОбъектовПереопределяемый.ПриВосстановленииВерсииОбъекта.Объект -// ДополнительныеРеквизиты - см. ВерсионированиеОбъектовПереопределяемый.ПриВосстановленииВерсииОбъекта.ДополнительныеРеквизиты -// +// См. ВерсионированиеОбъектовПереопределяемый.ПриВосстановленииВерсииОбъекта. Процедура ПриВосстановленииВерсииОбъекта(Объект, ДополнительныеРеквизиты) Экспорт Для Каждого Реквизит Из ДополнительныеРеквизиты Цикл @@ -273,22 +259,14 @@ КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. -// -// Параметры: -// Массив - см. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.ИсключенияПоискаСсылок -// -Процедура ПриДобавленииИсключенийПоискаСсылок(Массив) Экспорт +Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт - Массив.Добавить(Метаданные.Справочники.НаборыДополнительныхРеквизитовИСведений.ПолноеИмя()); - Массив.Добавить("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ТабличнаяЧасть.ЗависимостиДополнительныхРеквизитов.Реквизит.Значение"); + ИсключенияПоискаСсылок.Добавить(Метаданные.Справочники.НаборыДополнительныхРеквизитовИСведений.ПолноеИмя()); + ИсключенияПоискаСсылок.Добавить("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ТабличнаяЧасть.ЗависимостиДополнительныхРеквизитов.Реквизит.Значение"); КонецПроцедуры // См. УправлениеДоступомПереопределяемый.ПриЗаполненииВидовДоступа. -// -// Параметры: -// ВидыДоступа - см. УправлениеДоступомПереопределяемый.ПриЗаполненииВидовДоступа.ВидыДоступа -// Процедура ПриЗаполненииВидовДоступа(ВидыДоступа) Экспорт ВидДоступа = ВидыДоступа.Добавить(); @@ -348,10 +326,6 @@ КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриОпределенииПодчиненныхОбъектов -// -// Параметры: -// ПодчиненныеОбъекты - см. ОбщегоНазначения.ПодчиненныеОбъекты -// Процедура ПриОпределенииПодчиненныхОбъектов(ПодчиненныеОбъекты) Экспорт ПодчиненныйОбъект = ПодчиненныеОбъекты.Добавить(); @@ -368,14 +342,16 @@ КонецПроцедуры +// АПК:299-выкл программно вызываемая процедур +// // Вызывается при замене дублей в реквизитах элементов. // // Параметры: -// ПарыЗамен - Соответствие - содержит пары значений оригинал и дубль. -// НеобработанныеЗначенияОригиналов - Массив из Структура: -// * ЗаменяемоеЗначение - ЛюбаяСсылка - оригинальное значение заменяемого объекта. -// * ИспользуемыеСвязи - см. ПоискИУдалениеДублей.СвязиПодчиненныхОбъектовПоТипам. -// * ЗначениеКлючевыхРеквизитов - Структура - Ключ - имя реквизита, значение - значение реквизита. +// ПарыЗамен - Соответствие - содержит пары значений оригинал и дубль. +// НеобработанныеЗначенияОригиналов - Массив из Структура: +// * ЗаменяемоеЗначение - ЛюбаяСсылка - оригинальное значение заменяемого объекта. +// * ИспользуемыеСвязи - см. ПоискИУдалениеДублей.СвязиПодчиненныхОбъектовПоТипам. +// * ЗначениеКлючевыхРеквизитов - Структура - Ключ - имя реквизита, значение - значение реквизита. // Процедура ПриПоискеЗаменыСсылок(ПарыЗамен, НеобработанныеЗначенияОригиналов) Экспорт @@ -409,6 +385,7 @@ КонецЦикла; КонецПроцедуры +// АПК:299-вкл #КонецОбласти @@ -763,7 +740,7 @@ // - ЗадачаОбъектИмяЗадачи // - ПланВидовРасчетаОбъектИмяПланаВидовРасчета // - ПланСчетовОбъектИмяПланаСчетов -// - ДанныеФормыСтруктура - объект со свойствами: +// - ДанныеФормыСтруктура: // * Ссылка - ЛюбаяСсылка // КлючНазначения - Строка // @@ -821,9 +798,9 @@ // Возвращает заполненную таблицу значений свойств объекта. // // Параметры: -// ДополнительныеСвойстваОбъекта - ТаблицаЗначений -// Наборы - ТаблицаЗначений -// ЭтоДополнительноеСведение - Булево +// ДополнительныеСвойстваОбъекта - ТаблицаЗначений +// Наборы - ТаблицаЗначений +// ЭтоДополнительноеСведение - Булево // Функция ЗначенияСвойств(ДополнительныеСвойстваОбъекта, Наборы, ЭтоДополнительноеСведение) Экспорт @@ -1449,8 +1426,6 @@ // Функция НаименованиеПредопределенногоНабора(Набор) Экспорт - ПредопределенныеНаборыСвойств = УправлениеСвойствамиПовтИсп.ПредопределенныеНаборыСвойств(); - Если ТипЗнч(Набор) = Тип("Строка") Тогда ИмяПредопределенного = Набор; Иначе @@ -1584,9 +1559,7 @@ // которого нужно получить перечисляемые значения. // // Возвращаемое значение: -// Массив - значения: -// * СправочникСсылка.ЗначенияСвойствОбъектов, СправочникСсылка.ЗначенияСвойствОбъектовИерархия - значения -// свойства, если есть. +// Массив из СправочникСсылка - значения свойства, если есть. // Функция ДополнительныеЗначенияСвойства(Свойство) Экспорт @@ -1622,7 +1595,7 @@ Функция ЛокализованныеЗначенияРеквизитов(Ссылка, Реквизиты) Экспорт ТекстЗапроса = "ВЫБРАТЬ - |%1 + |&ТекстВставки | |ИЗ | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК Таблица @@ -1643,7 +1616,7 @@ КонецЕсли; КонецЦикла; - ТекстЗапроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстЗапроса, ТекстВставки); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстВставки", ТекстВставки); Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Ссылка", Ссылка); Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка); diff --git a/SSL/src/CommonModules/УправлениеЭлектроннойПочтой/Module.bsl b/SSL/src/CommonModules/УправлениеЭлектроннойПочтой/Module.bsl index 622440f76..8f33bb3d8 100644 --- a/SSL/src/CommonModules/УправлениеЭлектроннойПочтой/Module.bsl +++ b/SSL/src/CommonModules/УправлениеЭлектроннойПочтой/Module.bsl @@ -8,14 +8,7 @@ #Область СлужебныйПрограммныйИнтерфейс -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. - -// Возникает при получении списка шаблонов регламентных заданий -// -// Параметры: -// ШаблоныЗаданий - Массив - в него добавляются имена регламентных заданий. -// +// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт ШаблоныЗаданий.Добавить("ПолучениеИОтправкаЭлектронныхПисем"); @@ -76,7 +69,7 @@ НСтр("ru = 'Начато регламентное получение и отправка электронной почты'", ОбщегоНазначения.КодОсновногоЯзыка())); ПолученныеПисьма = ПолученныеПисьма(); - УчетнаяЗапись = ЗагрузитьЭлектронныеПисьма(ПолученныеПисьма); + ЗагрузитьЭлектронныеПисьма(ПолученныеПисьма); ОтправитьЭлектронныеПисьма(ПолученныеПисьма.ПисьмаДляОпределенияПапок, ПолученныеПисьма.ВсеПолученныеПисьма); Взаимодействия.ЗаполнитьКонтактыМассиваВзаимодействий(ПолученныеПисьма.ВсеПолученныеПисьма); @@ -396,17 +389,18 @@ ПредставлениеОшибочныхАдресатов = РезультатАнализа.ПредставлениеОшибочныхАдресатов; Если Не ВсеАдресатыПисьмаОтвергнутыСервером Тогда - ШаблонСообщенияОбОшибке = НСтр("ru = 'Следующие адресаты письма %1 не приняты почтовым сервером: + ШаблонСообщенияОбОшибке = НСтр("ru = 'Следующие адресаты письма ""%1"" не приняты почтовым сервером: |%2. Письмо отправлено остальным адресатам.'", ОбщегоНазначения.КодОсновногоЯзыка()); Иначе - ШаблонСообщенияОбОшибке = НСтр("ru = 'Не удалось отправить письмо %1. + ШаблонСообщенияОбОшибке = НСтр("ru = 'Не удалось отправить письмо ""%1"". |Следующие адресаты письма не приняты почтовым сервером: |%2.'", ОбщегоНазначения.КодОсновногоЯзыка()); КонецЕсли; ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщенияОбОшибке, ПараметрыОбработкиОшибки.ПредставлениеПисьма, ПредставлениеОшибочныхАдресатов); - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка, , , ТекстСообщенияОбОшибке); + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,, + ПараметрыОбработкиОшибки.Ссылка, ТекстСообщенияОбОшибке); Результат.ТекстСообщения = ТекстСообщенияОбОшибке; @@ -2589,7 +2583,7 @@ // - ДокументСсылка.ЭлектронноеПисьмоИсходящее - // письмо, чье вложение записывается. // АдресВоВременномХранилище - Строка - адрес, по которому во временном хранилище находится вложение. -// ПараметрыВложения - Структура - содержит: +// ПараметрыВложения - Структура: // * ИмяФайла - Строка - имя файла-вложения. // * ИДФайлаЭлектронногоПисьма - Строка - идентификатор вложения. // * ЭтоВложениеПисьмо - Булево - определяет, является ли это вложение письмом. @@ -2608,7 +2602,7 @@ ИмяФайлаДляРазбора = ПараметрыВложения.ИмяФайла; РасширениеБезТочки = ОбщегоНазначенияКлиентСервер.ПолучитьРасширениеИмениФайла(ИмяФайлаДляРазбора); - ИмяБезРасширения = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ИмяФайлаДляРазбора); + ИмяБезРасширения = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ИмяФайлаДляРазбора); Если ПустаяСтрока(ИмяБезРасширения) Тогда @@ -2753,7 +2747,7 @@ // Получает учетную запись электронной почты используемую для отправки по умолчанию. // // Возвращаемое значение: -// Справочник.УчетныеЗаписиЭлектроннойПочты - учетная запись для отправки по умолчанию. +// СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись для отправки по умолчанию. // Функция ПолучитьУчетнуюЗаписьДляОтправкиПоУмолчанию() Экспорт @@ -2903,7 +2897,7 @@ // перечисления ВариантыВажностиВзаимодействия. // // Параметры: -// ВажностьВзаимодействия - Перечисление.ВариантыВажностиВзаимодействия. +// ВажностьВзаимодействия - ПеречислениеСсылка.ВариантыВажностиВзаимодействия. // // Возвращаемое значение: // ВажностьИнтернетПочтовогоСообщения diff --git a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументов/Module.bsl b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументов/Module.bsl index 66a639828..e69304833 100644 --- a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументов/Module.bsl +++ b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументов/Module.bsl @@ -13,8 +13,8 @@ // Обработчик события "ПриСозданииНаСервере" формы документа. // // Параметры: -// Форма - УправляемаяФорма - форма списка документа. -// Расположение - ЭлементФормы - группа, в которой будет располагаться надпись о текущем состоянии оригинала. +// Форма - ФормаКлиентскогоПриложения - форма списка документа. +// Расположение - ГруппаФормы - группа, в которой будет располагаться надпись о текущем состоянии оригинала. // Если Неопределено, тогда надпись будет расположена в нижнем правом углу формы. Необязательный. // Процедура ПриСозданииНаСервере_ФормаДокумента(Форма, Расположение = Неопределено) Экспорт @@ -53,7 +53,7 @@ Если ЗначениеЗаполнено(Форма.Объект.Ссылка) Тогда ТекущиеСостояниеОригинала = СведенияОСостоянииОригиналаПоСсылке(Форма.Объект.Ссылка); - Если ПустаяСтрока(ТекущиеСостояниеОригинала) Тогда + Если ТекущиеСостояниеОригинала.Количество() = 0 Тогда ТекущиеСостояниеОригинала=НСтр("ru='<Состояние оригинала неизвестно>'"); ДекорацияСостояниеОригинала.ЦветТекста = ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет; Иначе @@ -71,9 +71,9 @@ // Обработчик события "ПриСозданииНаСервере" формы списка. // // Параметры: -// Форма - УправляемаяФорма - форма списка документа. -// Список - ЭлементФормы - основной список формы. -// Расположение - ЭлементФормы - колонка списка, перед которой будут располагаться новые колонки состояний. +// Форма - ФормаКлиентскогоПриложения - форма списка документа. +// Список - ТаблицаФормы - основной список формы. +// Расположение - ПолеФормы - колонка списка, перед которой будут располагаться новые колонки состояний. // Если Неопределено, тогда колонки будут расположены в конце списка. Необязательный. // Процедура ПриСозданииНаСервере_ФормаСписка(Форма, Список, Расположение = Неопределено) Экспорт @@ -123,7 +123,7 @@ // Обработчик события "ПриПолученииДанныхНаСервере" формы списка. // // Параметры: -// СтрокиСписка - УправляемаяФорма - форма списка документа. +// СтрокиСписка - ДанныеФормыКоллекция - строки списка формы. // Процедура ПриПолученииДанныхНаСервере(СтрокиСписка) Экспорт @@ -134,7 +134,8 @@ Для Каждого Строка Из СтрокиСписка Цикл Строка = СтрокиСписка[Строка.Ключ]; - Если Строка.Оформление.Получить("СостояниеОригиналаПервичногоДокумента") = Неопределено Тогда + Если Строка.Оформление.Получить("СостояниеОригиналаПервичногоДокумента") = Неопределено + Или Строка.Оформление.Получить("СостояниеОригиналПолучен") = Неопределено Тогда Возврат КонецЕсли; Прервать; @@ -155,12 +156,12 @@ | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ КАК СостояниеОригиналПолучен, - | СостоянияОригиналовПервичныхДокументов.Ссылка КАК Ссылка + | СостоянияОригиналовПервичныхДокументов.Владелец КАК Ссылка |ИЗ | РегистрСведений.СостоянияОригиналовПервичныхДокументов КАК СостоянияОригиналовПервичныхДокументов |ГДЕ | СостоянияОригиналовПервичныхДокументов.ОбщееСостояние - | И СостоянияОригиналовПервичныхДокументов.Ссылка В(&Ссылка)"; + | И СостоянияОригиналовПервичныхДокументов.Владелец В(&Ссылка)"; Запрос.УстановитьПараметр("Ссылка",Ссылки); Выборка = Запрос.Выполнить().Выбрать(); @@ -184,8 +185,8 @@ // Обновляет команды установки состояния оригинала на форме списка. // // Параметры: -// Форма - УправляемаяФорма - форма списка документа. -// Список - ЭлементФормы - основной список формы. +// Форма - ФормаКлиентскогоПриложения - форма списка документа. +// Список - ТаблицаФормы - основной список формы. // Процедура ОбновитьКомандыСостоянияОригинала(Форма, Список) Экспорт @@ -212,8 +213,8 @@ // Устанавливает условное форматирование для подключаемых элементов в списке. // // Параметры: -// Форма - УправляемаяФорма - форма списка документа. -// Список - ЭлементФормы - основной список формы. +// Форма - ФормаКлиентскогоПриложения - форма списка документа. +// Список - ТаблицаФормы - основной список формы. // Процедура УстановитьУсловноеОформлениеВФормеСписка(Форма, Список) Экспорт @@ -249,6 +250,10 @@ КонецПроцедуры // См. УправлениеДоступомПереопределяемый.ПриЗаполненииПоставляемыхПрофилейГруппДоступа. +// +// Параметры: +// ОписаниеПрофиля - см. УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа +// Процедура ДополнитьПрофильРольюДляИзмененияСостоянийОригиналовДокументов(ОписаниеПрофиля) Экспорт ОписаниеПрофиля.Роли.Добавить("ИзменениеСостоянийОригиналовПервичныхДокументов"); @@ -256,6 +261,10 @@ КонецПроцедуры // См. УправлениеДоступомПереопределяемый.ПриЗаполненииПоставляемыхПрофилейГруппДоступа. +// +// Параметры: +// ОписаниеПрофиля - см. УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа +// Процедура ДополнитьПрофильРольюДляНастройкиСостоянийОригиналовДокументов(ОписаниеПрофиля) Экспорт ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеСостоянийОригиналовПервичныхДокументов"); @@ -263,6 +272,10 @@ КонецПроцедуры // См. УправлениеДоступомПереопределяемый.ПриЗаполненииПоставляемыхПрофилейГруппДоступа. +// +// Параметры: +// ОписаниеПрофиля - см. УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа +// Процедура ДополнитьПрофильРольюДляЧтенияСостоянийОригиналовДокументов(ОписаниеПрофиля) Экспорт ОписаниеПрофиля.Роли.Добавить("ЧтениеСостоянийОригиналовПервичныхДокументов"); @@ -272,7 +285,8 @@ // Возвращает массив всех состояний. // // Возвращаемое значение: -// Массив - все возможные состояния оригинала, включая скрытое "Оригиналы не все". +// Массив из СправочникСсылка.СостоянияОригиналовПервичныхДокументов - все возможные состояния оригинала, включая +// скрытое "Оригиналы не все". // Функция ВсеСостояния() Экспорт @@ -296,9 +310,12 @@ // Выводит подключаемые команды в форме. Вызывается без подключения подсистемы "Подключаемые команды". // // Параметры: -// Форма - УправляемаяФорма - форма списка документа. -// Список - ЭлементФормы - основной список формы. -// СостоянияОригиналов - ТаблицаЗначений - состояния оригинала, разрешенные пользователям, и используемые при смене состояния оригинала. +// Форма - ФормаКлиентскогоПриложения - форма списка документа. +// Список - ТаблицаФормы - основной список формы. +// СостоянияОригиналов - ТаблицаЗначений - состояния оригинала, разрешенные пользователям, и используемые при смене +// состояния оригинала: +// * Наименование - Строка - наименование состояния оригинала; +// * Ссылка - СправочникСсылка.СостоянияОригиналовПервичныхДокументов - ссылка на элемент справочника СостоянияОригиналовПервичныхДокументов. // Процедура ВывестиНаФормуКомандыСостоянияОригинала(Форма, Список, СостоянияОригиналов) Экспорт @@ -421,10 +438,6 @@ #Область СлужебныйПрограммныйИнтерфейс // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления. -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -436,6 +449,10 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыПереопределяемый.ПриОпределенииНастроек. +// +// Параметры: +// Объекты - Массив из ОбъектМетаданных +// Процедура ПриОпределенииОбъектовСНачальнымЗаполнением(Объекты) Экспорт Объекты.Добавить(Метаданные.Справочники.СостоянияОригиналовПервичныхДокументов); @@ -583,10 +600,10 @@ // Записывает новое состояние оригинала документа. // // Параметры: -// ДанныеЗаписи - Массив -// - Структура - массив или структура содержащие данные об изменяемой записи в регистре. -// ИмяСостояния - Строка - устанавливаемое состояние. -// Изменено - Булево - ИСТИНА, если состояние оригинала документа не повторяется и было записано. Необязательный. +// ДанныеЗаписи - Массив из см. УстановитьНовоеСостояниеОригиналаМассив.ДанныеЗаписи. +// - см. УстановитьНовоеСостояниеОригиналаМассивСтруктура.ДанныеЗаписи. +// ИмяСостояния - Строка - устанавливаемое состояние. +// Изменено - Булево - Истина, если состояние оригинала документа не повторяется и было записано. // Процедура УстановитьНовоеСостояниеОригинала(ДанныеЗаписи, ИмяСостояния, Изменено = Ложь) Экспорт @@ -597,92 +614,123 @@ УстановитьПривилегированныйРежим(Истина); Если ТипЗнч(ДанныеЗаписи) = Тип("Массив") Тогда - Для Каждого Запись Из ДанныеЗаписи Цикл - - Если СокрЛП(Запись.СостояниеОригиналаПервичногоДокумента) <> СокрЛП(ИмяСостояния) Тогда - Если Запись.ОбщееСостояние Тогда - ПроверкаЗаписьСостоянияОригинала = РегистрыСведений.СостоянияОригиналовПервичныхДокументов.СоздатьНаборЗаписей(); - ПроверкаЗаписьСостоянияОригинала.Отбор.Ссылка.Установить(Запись.Ссылка); - ПроверкаЗаписьСостоянияОригинала.Отбор.ОбщееСостояние.Установить(Ложь); - ПроверкаЗаписьСостоянияОригинала.Прочитать(); - - Если ПроверкаЗаписьСостоянияОригинала.Количество()>0 Тогда - Для Каждого ПрошлаяЗапись Из ПроверкаЗаписьСостоянияОригинала Цикл - Если СокрЛП(ПрошлаяЗапись.Состояние) <> ИмяСостояния Тогда - Изменено = Истина; - РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(Запись.Ссылка, - ПрошлаяЗапись.ПервичныйДокумент,ПрошлаяЗапись.ПервичныйДокументПредставление,ИмяСостояния,ПрошлаяЗапись.ФормаИзвне); - КонецЕсли; - КонецЦикла; - КонецЕсли; - Изменено = Истина; - РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(Запись.Ссылка,ИмяСостояния); - Иначе - ПроверкаЗаписьСостоянияОригинала = РегистрыСведений.СостоянияОригиналовПервичныхДокументов.СоздатьНаборЗаписей(); - ПроверкаЗаписьСостоянияОригинала.Отбор.Ссылка.Установить(Запись.Ссылка); - ПроверкаЗаписьСостоянияОригинала.Прочитать(); - Если ПроверкаЗаписьСостоянияОригинала.Количество()> 0 Тогда - ПроверкаЗаписьСостоянияОригинала.Отбор.ПервичныйДокумент.Установить(Запись.ПервичныйДокумент); - ПроверкаЗаписьСостоянияОригинала.Прочитать(); - Для Каждого ПрошлаяЗапись Из ПроверкаЗаписьСостоянияОригинала Цикл - Если СокрЛП(ПрошлаяЗапись.Состояние) <> ИмяСостояния Тогда - Изменено = Истина; - РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(Запись.Ссылка, - Запись.ПервичныйДокумент,Запись.ПервичныйДокументПредставление,ИмяСостояния,Запись.Извне); - Если СостояниеПечатныхФормОдинаково(Запись.Ссылка,ИмяСостояния) Тогда - Изменено = Истина; - РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(Запись.Ссылка,ИмяСостояния); - Иначе - Изменено = Истина; - РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(Запись.Ссылка,Справочники.СостоянияОригиналовПервичныхДокументов.ОригиналыНеВсе); - КонецЕсли; - КонецЕсли; - КонецЦикла; - Иначе - Изменено = Истина; - РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(Запись.Ссылка,ИмяСостояния); - КонецЕсли; - - КонецЕсли; - КонецЕсли; - - КонецЦикла; - + УстановитьНовоеСостояниеОригиналаМассив(ДанныеЗаписи, ИмяСостояния, Изменено); Иначе - ПроверкаЗаписьСостоянияОригинала = РегистрыСведений.СостоянияОригиналовПервичныхДокументов.СоздатьНаборЗаписей(); - ПроверкаЗаписьСостоянияОригинала.Отбор.Ссылка.Установить(ДанныеЗаписи.Ссылка); - ПроверкаЗаписьСостоянияОригинала.Отбор.ОбщееСостояние.Установить(Истина); - ПроверкаЗаписьСостоянияОригинала.Прочитать(); - Если ПроверкаЗаписьСостоянияОригинала.Количество()>0 Тогда - Если СокрЛП(ПроверкаЗаписьСостоянияОригинала[0].Состояние) <> ИмяСостояния Тогда - - ПроверкаЗаписьСостоянияОригинала.Отбор.ОбщееСостояние.Установить(Ложь); - ПроверкаЗаписьСостоянияОригинала.Прочитать(); - - Если ПроверкаЗаписьСостоянияОригинала.Количество()>0 Тогда - Для Каждого ПрошлаяЗапись Из ПроверкаЗаписьСостоянияОригинала Цикл - Если СокрЛП(ПрошлаяЗапись.Состояние) <> ИмяСостояния Тогда - Изменено = Истина; - РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(ДанныеЗаписи.Ссылка, - ПрошлаяЗапись.ПервичныйДокумент,ПрошлаяЗапись.ПервичныйДокументПредставление,ИмяСостояния,ПрошлаяЗапись.ФормаИзвне); - КонецЕсли; - КонецЦикла; - КонецЕсли; - - КонецЕсли; - КонецЕсли; - Изменено = Истина; - РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(ДанныеЗаписи.Ссылка,ИмяСостояния); + УстановитьНовоеСостояниеОригиналаСтруктура(ДанныеЗаписи, ИмяСостояния, Изменено); КонецЕсли; УстановитьПривилегированныйРежим(Ложь); КонецПроцедуры +// Записывает новое состояние оригинала документа. +// +// Параметры: +// ДанныеЗаписи - Массив из Структура - массив содержащий данные об изменяемом состоянии оригинала: +// * ОбщееСостояние - Булево - Истина, если текущее состояние является общим; +// * Ссылка - ДокументСсылка - ссылка на документ, для которого необходимо изменить состояние оригинала; +// * СостояниеОригиналаПервичногоДокумента - СправочникСсылка.СостоянияОригиналовПервичныхДокументов - +// текущие состояние оригинала первичного документа; +// * ПервичныйДокумент - Строка - идентификатор первичного документа. Задается, если данное состояние не является общим; +// * Извне - Булево - Истина, если первичный документ был добавлен пользователем вручную. Задается, если данное состояние не является общим. +// ИмяСостояния - Строка - устанавливаемое состояние. +// Изменено - Булево - Истина, если состояние оригинала документа не повторяется и было записано. +// +Процедура УстановитьНовоеСостояниеОригиналаМассив(ДанныеЗаписи, ИмяСостояния, Изменено = Ложь) + + Для Каждого Запись Из ДанныеЗаписи Цикл + + Если СокрЛП(Запись.СостояниеОригиналаПервичногоДокумента) <> СокрЛП(ИмяСостояния) Тогда + Если Запись.ОбщееСостояние Тогда + ПроверкаЗаписьСостоянияОригинала = РегистрыСведений.СостоянияОригиналовПервичныхДокументов.СоздатьНаборЗаписей(); + ПроверкаЗаписьСостоянияОригинала.Отбор.Владелец.Установить(Запись.Ссылка); + ПроверкаЗаписьСостоянияОригинала.Отбор.ОбщееСостояние.Установить(Ложь); + ПроверкаЗаписьСостоянияОригинала.Прочитать(); + + Если ПроверкаЗаписьСостоянияОригинала.Количество()>0 Тогда + Для Каждого ПрошлаяЗапись Из ПроверкаЗаписьСостоянияОригинала Цикл + Если СокрЛП(ПрошлаяЗапись.Состояние) <> ИмяСостояния Тогда + Изменено = Истина; + РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(Запись.Ссылка, + ПрошлаяЗапись.ПервичныйДокумент,ПрошлаяЗапись.ПервичныйДокументПредставление,ИмяСостояния,ПрошлаяЗапись.ФормаИзвне); + КонецЕсли; + КонецЦикла; + КонецЕсли; + Изменено = Истина; + РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(Запись.Ссылка,ИмяСостояния); + Иначе + ПроверкаЗаписьСостоянияОригинала = РегистрыСведений.СостоянияОригиналовПервичныхДокументов.СоздатьНаборЗаписей(); + ПроверкаЗаписьСостоянияОригинала.Отбор.Владелец.Установить(Запись.Ссылка); + ПроверкаЗаписьСостоянияОригинала.Прочитать(); + Если ПроверкаЗаписьСостоянияОригинала.Количество()> 0 Тогда + ПроверкаЗаписьСостоянияОригинала.Отбор.ПервичныйДокумент.Установить(Запись.ПервичныйДокумент); + ПроверкаЗаписьСостоянияОригинала.Прочитать(); + Для Каждого ПрошлаяЗапись Из ПроверкаЗаписьСостоянияОригинала Цикл + Если СокрЛП(ПрошлаяЗапись.Состояние) <> ИмяСостояния Тогда + Изменено = Истина; + РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(Запись.Ссылка, + Запись.ПервичныйДокумент,Запись.ПервичныйДокументПредставление,ИмяСостояния,Запись.Извне); + Если СостояниеПечатныхФормОдинаково(Запись.Ссылка,ИмяСостояния) Тогда + Изменено = Истина; + РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(Запись.Ссылка,ИмяСостояния); + Иначе + Изменено = Истина; + РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(Запись.Ссылка,Справочники.СостоянияОригиналовПервичныхДокументов.ОригиналыНеВсе); + КонецЕсли; + КонецЕсли; + КонецЦикла; + Иначе + Изменено = Истина; + РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(Запись.Ссылка,ИмяСостояния); + КонецЕсли; + КонецЕсли; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +// Записывает новое состояние оригинала документа. +// +// Параметры: +// ДанныеЗаписи - Структура - структура содержащие данные об изменяемом состоянии оригинала: +// * Ссылка - ДокументСсылка - ссылка на документ, для которого необходимо изменить состояние оригинала. +// ИмяСостояния - Строка - устанавливаемое состояние. +// Изменено - Булево - Истина, если состояние оригинала документа не повторяется и было записано. +// +Процедура УстановитьНовоеСостояниеОригиналаСтруктура(ДанныеЗаписи, ИмяСостояния, Изменено = Ложь) + + ПроверкаЗаписьСостоянияОригинала = РегистрыСведений.СостоянияОригиналовПервичныхДокументов.СоздатьНаборЗаписей(); + ПроверкаЗаписьСостоянияОригинала.Отбор.Владелец.Установить(ДанныеЗаписи.Ссылка); + ПроверкаЗаписьСостоянияОригинала.Отбор.ОбщееСостояние.Установить(Истина); + ПроверкаЗаписьСостоянияОригинала.Прочитать(); + Если ПроверкаЗаписьСостоянияОригинала.Количество()>0 Тогда + Если СокрЛП(ПроверкаЗаписьСостоянияОригинала[0].Состояние) <> ИмяСостояния Тогда + + ПроверкаЗаписьСостоянияОригинала.Отбор.ОбщееСостояние.Установить(Ложь); + ПроверкаЗаписьСостоянияОригинала.Прочитать(); + + Если ПроверкаЗаписьСостоянияОригинала.Количество()>0 Тогда + Для Каждого ПрошлаяЗапись Из ПроверкаЗаписьСостоянияОригинала Цикл + Если СокрЛП(ПрошлаяЗапись.Состояние) <> ИмяСостояния Тогда + Изменено = Истина; + РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(ДанныеЗаписи.Ссылка, + ПрошлаяЗапись.ПервичныйДокумент,ПрошлаяЗапись.ПервичныйДокументПредставление,ИмяСостояния,ПрошлаяЗапись.ФормаИзвне); + КонецЕсли; + КонецЦикла; + КонецЕсли; + + КонецЕсли; + КонецЕсли; + Изменено = Истина; + РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(ДанныеЗаписи.Ссылка,ИмяСостояния); + +КонецПроцедуры + // Заполняет выпадающий список выбора состояний на форме. // // Параметры: -// Форма - УправляемаяФорма - форма списка документа. +// Форма - ФормаКлиентскогоПриложения - форма списка документа. // Процедура ЗаполнитьСписокВыбораСостоянийОригинала(Форма, СостоянияОригиналов) @@ -706,7 +754,9 @@ // Возвращает массив состояний, доступных пользователю. // // Возвращаемое значение: -// ТаблицаЗначений - состояния оригинала, разрешенные пользователям, и используемые при смене состояния оригинала. +// ТаблицаЗначений - состояния оригинала, разрешенные пользователям, и используемые при смене состояния оригинала: +// * Наименование - Строка - наименование состояния оригинала; +// * Ссылка - СправочникСсылка.СостоянияОригиналовПервичныхДокументов - ссылка на элемент справочника СостоянияОригиналовПервичныхДокументов. // Функция ИспользуемыеСостояния()Экспорт @@ -736,30 +786,30 @@ // Возвращает ключ записи регистра общего состояния оригинала документа по ссылке. // // Параметры: -// ДокументСсылка - СсылкаДокумент - ссылка на документ,для которого необходимо получить ключ записи общего состояния. +// ДокументСсылка - ДокументСсылка - ссылка на документ,для которого необходимо получить ключ записи общего состояния. // // Возвращаемое значение: -// КлючЗаписиРегистра - ключ записи регистра общего состояния оригинала документа. +// РегистрСведенийКлючЗаписи.СостоянияОригиналовПервичныхДокументов - ключ записи регистра общего состояния оригинала документа. // Функция КлючЗаписиОбщегоСостояния(ДокументСсылка) Экспорт Запрос = Новый Запрос; Запрос.Текст ="ВЫБРАТЬ РАЗРЕШЕННЫЕ - | СостоянияОригиналовПервичныхДокументов.Ссылка КАК Ссылка, + | СостоянияОригиналовПервичныхДокументов.Владелец КАК Владелец, | СостоянияОригиналовПервичныхДокументов.ПервичныйДокумент КАК ПервичныйДокумент, | СостоянияОригиналовПервичныхДокументов.ОбщееСостояние КАК ОбщееСостояние, | СостоянияОригиналовПервичныхДокументов.ФормаИзвне КАК ФормаИзвне |ИЗ | РегистрСведений.СостоянияОригиналовПервичныхДокументов КАК СостоянияОригиналовПервичныхДокументов |ГДЕ - | СостоянияОригиналовПервичныхДокументов.Ссылка = &Ссылка + | СостоянияОригиналовПервичныхДокументов.Владелец = &Ссылка | И СостоянияОригиналовПервичныхДокументов.ОбщееСостояние" ; Запрос.УстановитьПараметр("Ссылка",ДокументСсылка); Выборка = Запрос.Выполнить().Выгрузить(); Для Каждого Ключ Из Выборка Цикл - ПередаваемыеПараметры = Новый Структура("Ссылка, ПервичныйДокумент, ОбщееСостояние, ФормаИзвне"); + ПередаваемыеПараметры = Новый Структура("Владелец, ПервичныйДокумент, ОбщееСостояние, ФормаИзвне"); ЗаполнитьЗначенияСвойств(ПередаваемыеПараметры,Ключ); ПараметрыМассив = Новый Массив; @@ -775,10 +825,10 @@ // Проверяет и возвращает признак того, является ли документ по ссылке документом с учетом оригиналов. // // Параметры: -// ДокументСсылка - СсылкаДокумент - ссылка на документ, который необходимо проверить. +// ДокументСсылка - ДокументСсылка - ссылка на документ, который необходимо проверить. // // Возвращаемое значение: -// Булево - ИСТИНА, если документ является объектом учетом оригиналов. +// Булево - Истина, если документ является объектом учетом оригиналов. // Функция ЭтоОбъектУчета(ДокументСсылка) Экспорт @@ -799,7 +849,7 @@ // Возвращает массив с описанием типов подключенных к подсистеме объектов. // // Возвращаемое значение: -// ДоступныеТипы - Массив - массив с описанием типов подключенных к подсистеме объектов. +// Массив из Тип - массив с описанием типов подключенных к подсистеме объектов. // Функция СведенияОПодключенныхОбъектах() Экспорт @@ -812,10 +862,10 @@ // Проверяет и возвращает признак того, является ли документ по ссылке документом с учетом оригиналов. // // Параметры: -// ДокументСсылка - СсылкаДокумент - ссылка на документ, который необходимо проверить. +// МассивСтрок - Массив из ДокументСсылка - массив с ссылками на документ, который необходимо проверить. // // Возвращаемое значение: -// Булево - ИСТИНА, если документ является объектом учетом оригиналов. +// Булево - Истина, если документ является объектом учетом оригиналов. // Функция ВозможностьЗаписиОбъектов(МассивСтрок) Экспорт @@ -841,11 +891,13 @@ // Возвращает ссылку на документ по штрихкоду табличного документа. // // Параметры: -// Штрихкод - Строка - штрихкод. -// Менеджеры - Массив - менеджеры документов. +// Штрихкод - Строка - штрихкод. +// Менеджеры - Массив из СправочникСсылка +// - ДокументСсылка +// - ЗадачаСсылка - менеджеры документов. // // Возвращаемое значение: -// Массив - ссылки на документы. +// Массив из ДокументСсылка - ссылки на документы. // Функция СсылкаПоШтрихкодуТабличногоДокумента(Штрихкод, Менеджеры = Неопределено) @@ -880,19 +932,20 @@ Для Каждого ПустаяСсылка Из Менеджеры Цикл ТипСсылки = ТипЗнч(ПустаяСсылка); + //@skip-warning Если Документы.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда МенеджерыОбъектов.Добавить(Документы[ПустаяСсылка.Метаданные().Имя]); ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипСсылки) Тогда МенеджерыОбъектов.Добавить(Справочники[ПустаяСсылка.Метаданные().Имя]); - ИначеЕсли Задачи.ТипВсеСсылки(ТипСсылки) Тогда + ИначеЕсли Задачи.ТипВсеСсылки(ТипСсылки).СодержитТип(ТипСсылки) Тогда МенеджерыОбъектов.Добавить(Задачи[ПустаяСсылка.Метаданные().Имя]); - ИначеЕсли БизнесПроцессы.ТипВсеСсылки(ТипСсылки) Тогда + ИначеЕсли БизнесПроцессы.ТипВсеСсылки(ТипСсылки).СодержитТип(ТипСсылки) Тогда МенеджерыОбъектов.Добавить(БизнесПроцессы[ПустаяСсылка.Метаданные().Имя]); - ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки(ТипСсылки) Тогда + ИначеЕсли ПланыВидовХарактеристик.ТипВсеСсылки(ТипСсылки).СодержитТип(ТипСсылки) Тогда МенеджерыОбъектов.Добавить(ПланыВидовХарактеристик[ПустаяСсылка.Метаданные().Имя]); Иначе @@ -924,20 +977,25 @@ МассивСсылок.Добавить(Ссылка); - Если НЕ ПервыйЗапрос Тогда + Если ПервыйЗапрос Тогда + Запрос.Текст = Запрос.Текст + + "ВЫБРАТЬ РАЗРЕШЕННЫЕ Таблица.Ссылка КАК Ссылка + |ИЗ &МетаданныеСсылкиПолноеИмя КАК Таблица + |ГДЕ Ссылка В (&МассивСсылок) + |"; + Иначе Запрос.Текст = Запрос.Текст + "ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ Таблица.Ссылка КАК Ссылка + |ИЗ &МетаданныеСсылкиПолноеИмя КАК Таблица + |ГДЕ Ссылка В (&МассивСсылок) |"; КонецЕсли; - - Запрос.Текст = Запрос.Текст + - "ВЫБРАТЬ" + ?(ПервыйЗапрос," " + "РАЗРЕШЕННЫЕ" + " "," ") + "Таблица.Ссылка КАК Ссылка - |ИЗ " + МетаданныеСсылки.ПолноеИмя() + " КАК Таблица - |ГДЕ Ссылка В (&МассивСсылок) - |"; + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&МетаданныеСсылкиПолноеИмя", МетаданныеСсылки.ПолноеИмя()); ПервыйЗапрос = Ложь; - + КонецЦикла; Если Не ПервыйЗапрос Тогда @@ -952,7 +1010,7 @@ // Процедура обрабатывает действия по учету оригиналов после сканирования штрихкода документа. // // Параметры: -// Штрихкод - Строка - отсканированный штрихкод документа. +// Штрихкод - Строка - отсканированный штрихкод документа. // Процедура ОбработатьШтрихкод(Штрихкод) Экспорт @@ -964,11 +1022,11 @@ // Проверяет после записи состояний печатных форм документа в регистр, имеют ли они одинаковые состояния. // // Параметры: -// ДокументСсылка - СсылкаДокумент - ссылка на документ,у которого необходимо проверить состояния печатных форм. -// ИмяСостояния - Строка - имя состояния, которое было установлено. +// ДокументСсылка - ДокументСсылка - ссылка на документ,у которого необходимо проверить состояния печатных форм. +// ИмяСостояния - Строка - имя состояния, которое было установлено. // // Возвращаемое значение: -// Булево - ИСТИНА, если все печатные формы документа имеют одинаковое состояние. +// Булево - Истина, если все печатные формы документа имеют одинаковое состояние. // Функция СостояниеПечатныхФормОдинаково(ДокументСсылка,ИмяСостояния) Экспорт @@ -980,7 +1038,7 @@ |ИЗ | РегистрСведений.СостоянияОригиналовПервичныхДокументов КАК СостоянияОригиналовПервичныхДокументов |ГДЕ - | СостоянияОригиналовПервичныхДокументов.Ссылка = &Ссылка + | СостоянияОригиналовПервичныхДокументов.Владелец = &Ссылка | И НЕ СостоянияОригиналовПервичныхДокументов.ОбщееСостояние"; Запрос.УстановитьПараметр("Ссылка",ДокументСсылка); @@ -1004,11 +1062,13 @@ // Возвращает структуру с данными о текущим общем состоянии оригинала документа по ссылке. // // Параметры: -// ДокументСсылка - СсылкаДокумент - ссылка на документ, для которого необходимо получить сведения о общем состоянии. +// ДокументСсылка - ДокументСсылка - ссылка на документ, для которого необходимо получить сведения о общем состоянии. // -// Возвращаемые значения: -// Структура/Строка - основные сведения о общем состоянии оригинала,если до этого состояние оригинала было записано, -// если нет, то пустая строка. +// Возвращаемое значение: +// Структура - основные сведения о общем состоянии оригинала: +// * Ссылка - ДокументСсылка - ссылка на документ; +// * СостояниеОригиналаПервичногоДокумента - СправочникСсылка.СостоянияОригиналовПервичныхДокументов - текущее +// состояние оригинала документа; // Функция СведенияОСостоянииОригиналаПоСсылке(ДокументСсылка) Экспорт @@ -1019,20 +1079,19 @@ |ИЗ | РегистрСведений.СостоянияОригиналовПервичныхДокументов КАК СостоянияОригиналовПервичныхДокументов |ГДЕ - | СостоянияОригиналовПервичныхДокументов.Ссылка = &Ссылка + | СостоянияОригиналовПервичныхДокументов.Владелец = &Ссылка | И СостоянияОригиналовПервичныхДокументов.ОбщееСостояние = ИСТИНА"; Запрос.УстановитьПараметр("Ссылка",ДокументСсылка); - СведенияОСостоянии=""; - + СведенияОСостоянии = Новый Структура; + Если Не Запрос.Выполнить().Пустой() Тогда Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); - СведенияОСостоянии = Новый Структура; СведенияОСостоянии.Вставить("Ссылка",ДокументСсылка); - СведенияОСостоянии.Вставить("СостояниеОригиналаПервичногоДокумента",Выборка.Состояние); + СведенияОСостоянии.Вставить("СостояниеОригиналаПервичногоДокумента",Выборка.Состояние); КонецЕсли; Возврат СведенияОСостоянии; @@ -1046,21 +1105,21 @@ ЗаблокироватьДанныеДляРедактирования(СостояниеОригинала.Ссылка); СостояниеОригинала.Наименование = НСтр("ru='Форма напечатана'"); СостояниеОригинала.Описание = НСтр("ru='Состояние, означающее, что печатная форма только печаталась.'"); - СостояниеОригинала.РеквизитДопУпорядочивания = "1"; + СостояниеОригинала.РеквизитДопУпорядочивания = 1; ОбновлениеИнформационнойБазы.ЗаписатьОбъект(СостояниеОригинала); СостояниеОригинала = Справочники.СостоянияОригиналовПервичныхДокументов.ОригиналыНеВсе.ПолучитьОбъект(); ЗаблокироватьДанныеДляРедактирования(СостояниеОригинала.Ссылка); СостояниеОригинала.Наименование = НСтр("ru='Оригиналы не все'"); СостояниеОригинала.Описание = НСтр("ru='Общее состояние для документа, у которого оригиналы печатных форм находятся в разных состояниях.'"); - СостояниеОригинала.РеквизитДопУпорядочивания = "99998"; + СостояниеОригинала.РеквизитДопУпорядочивания = 99998; ОбновлениеИнформационнойБазы.ЗаписатьОбъект(СостояниеОригинала); СостояниеОригинала = Справочники.СостоянияОригиналовПервичныхДокументов.ОригиналПолучен.ПолучитьОбъект(); ЗаблокироватьДанныеДляРедактирования(СостояниеОригинала.Ссылка); СостояниеОригинала.Наименование = НСтр("ru='Оригинал получен'"); СостояниеОригинала.Описание = НСтр("ru='Состояние, означающее, что подписанный оригинал печатной формы есть в наличии.'"); - СостояниеОригинала.РеквизитДопУпорядочивания = "99999"; + СостояниеОригинала.РеквизитДопУпорядочивания = 99999; ОбновлениеИнформационнойБазы.ЗаписатьОбъект(СостояниеОригинала); diff --git a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовВызовСервера/Module.bsl b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовВызовСервера/Module.bsl index ea6ecaa0f..9eea4e1db 100644 --- a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовВызовСервера/Module.bsl @@ -11,8 +11,8 @@ // Вызывается для записи состояний оригиналов печатных форм в регистр, после печати формы. // // Параметры: -// ОбъектыПечати - СписокЗначений - список ссылок на объекты печати. -// СписокПечати - СписокЗначений - список с именами макетов и представлениями печатных форм. +// ОбъектыПечати - СписокЗначений - список ссылок на объекты печати. +// СписокПечати - СписокЗначений - список с именами макетов и представлениями печатных форм. // Процедура ЗаписатьСостоянияОригиналовПослеПечати(ОбъектыПечати, СписокПечати) Экспорт @@ -27,7 +27,20 @@ #Область СлужебныеПроцедурыИФункции // Записывает новое состояние оригинала документа -// Подробнее - см. описание УправлениеФиксациейПервичныхДокументов.УстановитьНовоеСостояниеОригинала(ДанныеЗапись,ИмяСостояния) +// +// Параметры: +// ДанныеЗаписи - Массив из Структура - массив содержащий данные об изменяемом состоянии оригинала: +// * ОбщееСостояние - Булево - Истина, если текущее состояние является общим; +// * Ссылка - ДокументСсылка - ссылка на документ, для которого необходимо изменить состояние оригинала; +// * СостояниеОригиналаПервичногоДокумента - СправочникСсылка.СостоянияОригиналовПервичныхДокументов - +// текущие состояние оригинала первичного документа; +// * ПервичныйДокумент - Строка - идентификатор первичного документа. Задается, если данное состояние не является общим; +// * Извне - Булево - Истина, если первичный документ был добавлен пользователем вручную. Задается, если данное состояние не является общим. +// - Структура - структура содержащие данные об изменяемом состоянии оригинала: +// * Ссылка - ДокументСсылка - ссылка на документ, для которого необходимо изменить состояние оригинала. +// ИмяСостояния - Строка - устанавливаемое состояние. +// Изменено - Булево - Истина, если состояние оригинала документа не повторяется и было записано. Значение по умолчанию +// Ложь. // Процедура УстановитьНовоеСостояниеОригинала(ДанныеЗаписи, ИмяСостояния, Изменено = Ложь) Экспорт @@ -37,7 +50,8 @@ // Возвращает ссылку на документ по штрихкоду табличного документа // -// Подробнее - см. описание УчетОригиналовПервичныхДокументов.ОбработатьШтрихкод(ШтрихКод) +// Параметры: +// Штрихкод - Строка - отсканированный штрихкод документа. // Процедура ОбработатьШтрихкод(Штрихкод) Экспорт @@ -45,9 +59,16 @@ КонецПроцедуры -// Возвращает структуру с данными о текущим общем состоянии оригинала документа по ссылке +// Возвращает структуру с данными о текущим общем состоянии оригинала документа по ссылке. // -// Подробнее - см. описание УчетОригиналовПервичныхДокументов.СведенияОСостоянииОригиналаПоСсылке(ДокументСсылка) +// Параметры: +// ДокументСсылка - ДокументСсылка - ссылка на документ, для которого необходимо получить сведения о общем состоянии. +// +// Возвращаемое значение: +// Структура - основные сведения о общем состоянии оригинала: +// * Ссылка - ДокументСсылка - ссылка на документ; +// * СостояниеОригиналаПервичногоДокумента - СправочникСсылка.СостоянияОригиналовПервичныхДокументов - текущее +// состояние оригинала документа; // Функция СведенияОСостоянииОригиналаПоСсылке(ДокументСсылка) Экспорт @@ -79,7 +100,8 @@ // Проверяет и возвращает признак того, является ли документ по ссылке документом с учетом оригиналов // -// Подробнее - см. описание УчетОригиналовПервичныхДокументов.ВозможностьЗаписиОбъектов(МассивСсылок) +// Возвращаемое значение: +// см. УчетОригиналовПервичныхДокументов.ВозможностьЗаписиОбъектов // Функция ВозможностьЗаписиОбъектов(МассивСсылок) Экспорт @@ -87,9 +109,13 @@ КонецФункции -// Проверяет и возвращает признак того, является ли документ по ссылке документом с учетом оригиналов +// Проверяет и возвращает признак того, является ли документ по ссылке документом с учетом оригиналов. // -// Подробнее - см. описание УчетОригиналовПервичныхДокументов.ЭтоОбъектУчета(ОбъектСсылка) +// Параметры: +// ОбъектСсылка - ДокументСсылка - ссылка на документ, который необходимо проверить. +// +// Возвращаемое значение: +// Булево - Истина, если документ является объектом учетом оригиналов. // Функция ЭтоОбъектУчета(ОбъектСсылка) Экспорт @@ -99,7 +125,8 @@ // Проверяет и возвращает признак того, есть ли у текущего пользователя права на изменение состояния // -// Подробнее - см. описание Пользователи.РолиДоступны(...); +// Возвращаемое значение: +// Булево - Истина, если у текущего пользователя есть права на изменение состояния оригинала. // Функция ПраваНаИзменениеСостояния() Экспорт @@ -112,9 +139,13 @@ КонецФункции -// Возвращает ключ записи регистра общего состояния оригинала документа по ссылке +// Возвращает ключ записи регистра общего состояния оригинала документа по ссылке. // -// Подробнее - см. описание УчетОригиналовПервичныхДокументов.КлючЗаписиОбщегоСостояния(ДокументСсылка) +// Параметры: +// ДокументСсылка - ДокументСсылка - ссылка на документ,для которого необходимо получить ключ записи общего состояния. +// +// Возвращаемое значение: +// РегистрСведенийКлючЗаписи.СостоянияОригиналовПервичныхДокументов - ключ записи регистра общего состояния оригинала документа. // Функция КлючЗаписиОбщегоСостояния(ДокументСсылка) Экспорт diff --git a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиент/Module.bsl b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиент/Module.bsl index f11905e53..4f0d96dd6 100644 --- a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиент/Module.bsl +++ b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиент/Module.bsl @@ -11,8 +11,8 @@ // Устанавливает состояние оригинала для выделенных документов. Вызывается через подсистему "Подключаемые команды". // // Параметры: -// Ссылка - ДокументСсылка - ссылка на документ. -// Параметры - Структура - параметры выполнения команды. +// Ссылка - ДокументСсылка - ссылка на документ. +// Параметры -см. ПодключаемыеКоманды.ПараметрыВыполненияКоманды. // Процедура Подключаемый_УстановитьСостояниеОригинала(Ссылка, Параметры) Экспорт @@ -68,9 +68,9 @@ // Устанавливает состояние оригинала для выделенных документов. Вызывается без подключения подсистемы "Подключаемые команды". // // Параметры: -// Команда - Строка- имя выполняемой команды формы. -// Форма - УправляемаяФорма - форма списка или документа. -// Список - ЭлементФормы - список формы, в котором будет происходить изменение состояния. +// Команда - Строка- имя выполняемой команды формы. +// Форма - ФормаКлиентскогоПриложения - форма списка или документа. +// Список - ТаблицаФормы - список формы, в котором будет происходить изменение состояния. // Процедура УстановитьСостояниеОригинала(Команда, Форма, Список) Экспорт @@ -126,8 +126,8 @@ // Открывает на форме списка или документа выпадающие меню выбора состояния оригинала. // // Параметры: -// Форма - УправляемаяФорма - форма списка документов или документа. -// Источник - ЭлементФормы - список или декорация формы, у которого будет открыт выпадающий список. +// Форма - ФормаКлиентскогоПриложения - форма списка документов или документа. +// Источник - ТаблицаФормы - список или декорация формы, у которого будет открыт выпадающий список. // Процедура ОткрытьМенюВыбораСостояния(Форма, Источник) Экспорт @@ -202,8 +202,8 @@ // Обработчик оповещения событий подсистемы "Учет оригиналов первичных документов" для формы документа. // // Параметры: -// ИмяСобытия - Строка - имя произошедшего события. -// Форма - УправляемаяФорма - форма документа. +// ИмяСобытия - Строка - имя произошедшего события. +// Форма - ФормаКлиентскогоПриложения - форма документа. // Процедура ОбработчикОповещенияФормаДокумента(ИмяСобытия, Форма) Экспорт @@ -218,9 +218,9 @@ // Обработчик оповещения событий подсистемы "Учет оригиналов первичных документов" для формы списка. // // Параметры: -// ИмяСобытия - Строка - имя произошедшего события. -// Форма - УправляемаяФорма - форма списка документов. -// Список - ЭлементФормы - основной список формы. +// ИмяСобытия - Строка - имя произошедшего события. +// Форма - ФормаКлиентскогоПриложения - форма списка документов. +// Список - ТаблицаФормы - основной список формы. // Процедура ОбработчикОповещенияФормаСписка(ИмяСобытия, Форма, Список) Экспорт @@ -245,9 +245,9 @@ // Обработчик события "Выбор" списка. // // Параметры: -// ИмяПоля - Строка - наименование выбранного поля. -// Форма - УправляемаяФорма - форма списка документов. -// Список - ЭлементФормы - основной список формы. +// ИмяПоля - Строка - наименование выбранного поля. +// Форма - ФормаКлиентскогоПриложения - форма списка документов. +// Список - ТаблицаФормы - основной список формы. // СтандартнаяОбработка - Булево - Истина, если в форме используется стандартная обработка события "Выбор" // Процедура СписокВыбор(ИмяПоля, Форма, Список, СтандартнаяОбработка) Экспорт @@ -274,8 +274,8 @@ // Процедура обрабатывает действия по учету оригиналов после сканирования штрихкода документа. // // Параметры: -// Штрихкод - Строка - отсканированный штрихкод документа. -// ИмяСобытия - Строка - имя события формы. +// Штрихкод - Строка - отсканированный штрихкод документа. +// ИмяСобытия - Строка - имя события формы. // Процедура ОбработатьШтрихкод(Штрихкод, ИмяСобытия) Экспорт @@ -289,10 +289,10 @@ // Процедура показывает пользователю оповещение об изменении состояний оригинала документа. // // Параметры: -// КоличествоОбработанных - Число - количество успешно обработанных документов. -// ДокументСсылка - ДокументСсылка - ссылка на документ для обработки нажатия на оповещение пользователя -// в случае единичной установки состояния, необязательный параметр. -// ИмяСостояния - Строка - устанавливаемое состояние. +// КоличествоОбработанных - Число - количество успешно обработанных документов. +// ДокументСсылка - ДокументСсылка - ссылка на документ для обработки нажатия на оповещение пользователя +// в случае единичной установки состояния. Необязательный параметр. +// ИмяСостояния - Строка - устанавливаемое состояние. // Процедура ОповеститьПользователяОбУстановкеСостояний(КоличествоОбработанных, ДокументСсылка = Неопределено, ИмяСостояния = Неопределено) Экспорт @@ -321,8 +321,8 @@ // Вызывается для записи состояний оригиналов печатных форм в регистр, после печати формы. // // Параметры: -// ОбъектыПечати - СписокЗначений - список ссылок на объекты печати. -// СписокПечати - СписокЗначений - список с именами макетов и представлениями печатных форм. +// ОбъектыПечати - СписокЗначений - список ссылок на объекты печати. +// СписокПечати - СписокЗначений - список с именами макетов и представлениями печатных форм. // Процедура ЗаписатьСостоянияОригиналовПослеПечати(ОбъектыПечати, СписокПечати) Экспорт @@ -341,7 +341,7 @@ // Открывает форму уточнения состояний печатных форм документа. // // Параметры: -// ДокументСсылка - СсылкаДокумент - ссылка на документ,для которого необходимо получить ключ записи общего состояния. +// ДокументСсылка - ДокументСсылка - ссылка на документ,для которого необходимо получить ключ записи общего состояния. // Процедура ОткрытьФормуИзмененияСостоянийПечатныхФорм(ДокументСсылка) Экспорт @@ -360,10 +360,10 @@ КонецПроцедуры // Вызывается при открытии журнала оригиналов первичных документов в случае использования подключаемого оборудования. -// Позволяет определить собственный процесс подключения подключаемого оборудования к журналу +// Позволяет определить собственный процесс подключения подключаемого оборудования к журналу. // // Параметры: -// Форма - УправляемаяФорма - форма списка документа. +// Форма - ФормаКлиентскогоПриложения - форма списка документа. // Процедура ПриПодключенииСканераШтрихкода(Форма) Экспорт @@ -378,14 +378,14 @@ // Формирует надпись для вывода информации о текущем состоянии на форму документа. // // Параметры: -// Форма - УправляемаяФорма - форма списка документа. +// Форма - ФормаКлиентскогоПриложения - форма списка документа. // Процедура СформироватьНадписьТекущегоСостоянияОригинала(Форма) Если Не Форма.Элементы.Найти("ДекорацияСостояниеОригинала") = Неопределено Тогда Если ЗначениеЗаполнено(Форма.Объект.Ссылка) Тогда ТекущиеСостояниеОригинала = УчетОригиналовПервичныхДокументовВызовСервера.СведенияОСостоянииОригиналаПоСсылке(Форма.Объект.Ссылка); - Если ПустаяСтрока(ТекущиеСостояниеОригинала) Тогда + Если ТекущиеСостояниеОригинала.Количество() = 0 Тогда ТекущиеСостояниеОригинала=НСтр("ru='<Состояние оригинала неизвестно>'"); Форма.Элементы.ДекорацияСостояниеОригинала.ЦветТекста = WebЦвета.Серебряный; Иначе @@ -451,9 +451,9 @@ // Параметры: // ВыбранноеСостояниеИзСписка - Строка - выбранное пользователем состояние оригинала. // ДополнительныеПараметры - Структура - сведения необходимые для установки состояния оригинала: -// * Ссылка - ЛюбаяСсылка - ссылка на документ для установки состояния оригинала. +// * Ссылка - ДокументСсылка - ссылка на документ для установки состояния оригинала. // - Массив из Структура: -// * Ссылка - ЛюбаяСсылка - ссылка на документ для установки состояния оригинала +// * Ссылка - ДокументСсылка - ссылка на документ для установки состояния оригинала. // Процедура ОткрытьМенюВыбораСостоянияЗавершение(ВыбранноеСостояниеИзСписка, ДополнительныеПараметры) Экспорт diff --git a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиентПереопределяемый/Module.bsl index dc15902b3..fa8ddc083 100644 --- a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовКлиентПереопределяемый/Module.bsl @@ -12,8 +12,7 @@ // Позволяет определить собственный процесс подключения подключаемого оборудования к журналу. // // Параметры: -// Форма - УправляемаяФорма - форма списка документа. -// Параметры - Структура - необязательный. Дополнительные параметры подключения оборудования. +// Форма - ФормаКлиентскогоПриложения - форма списка документа. // Процедура ПриПодключенииСканераШтрихкода(Форма) Экспорт diff --git a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовПереопределяемый/Module.bsl b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовПереопределяемый/Module.bsl index fd206108c..acc4e160f 100644 --- a/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УчетОригиналовПервичныхДокументовПереопределяемый/Module.bsl @@ -11,7 +11,7 @@ // Определяет объекты конфигурации, в формах списках которых размещены команды учета оригиналов первичных документов, // // Параметры: -// СписокОбъектов - Массив - менеджеры объектов с процедурой ДобавитьКомандыПечати. +// СписокОбъектов - Массив из Строка - менеджеры объектов с процедурой ДобавитьКомандыПечати. // Процедура ПриОпределенииОбъектовСКомандамиУчетаОригиналов(СписокОбъектов) Экспорт diff --git a/SSL/src/CommonModules/ФайловаяСистема/Module.bsl b/SSL/src/CommonModules/ФайловаяСистема/Module.bsl index ca23eafcf..eddf2099b 100644 --- a/SSL/src/CommonModules/ФайловаяСистема/Module.bsl +++ b/SSL/src/CommonModules/ФайловаяСистема/Module.bsl @@ -78,6 +78,21 @@ КонецПроцедуры +// Формирует уникальное имя файла в указанной папке, при необходимости добавляя к имени файла порядковый номер, +// например: "файл (2).txt", "файл (3).txt" и т.п. +// +// Параметры: +// ИмяФайла - Строка - полное имя файла с папкой, например, "C:\Документы\файл.txt". +// +// Возвращаемое значение: +// Строка - например, "C:\Документы\файл (2).txt", если "файл.txt" уже существует в указанной папке. +// +Функция УникальноеИмяФайла(Знач ИмяФайла) Экспорт + + Возврат ФайловаяСистемаСлужебныйКлиентСервер.УникальноеИмяФайла(ИмяФайла); + +КонецФункции + #КонецОбласти #Область ЗапускВнешнихПриложений @@ -136,7 +151,7 @@ // - Массив - первый элемент массива, путь к исполняемому приложению, // остальные элементы массива - это передаваемые параметры, // массив соответствует тому, который получит вызываемая программа в argv. -// ПараметрыЗапускаПрограммы - - см. ФайловаяСистема.ПараметрыЗапускаПрограммы +// ПараметрыЗапускаПрограммы - см. ФайловаяСистема.ПараметрыЗапускаПрограммы // // Возвращаемое значение: // Структура: diff --git a/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl b/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl index 866a4f36c..bd31ec005 100644 --- a/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl +++ b/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl @@ -189,9 +189,7 @@ // - Массив - содержит объекты типа ОписаниеПереданногоФайла. Сохраненные файлы. // * ДополнительныеПараметры - Произвольный - значение, которое было указано при создании объекта // ОписаниеОповещения. -// СохраняемыеФайлы - Массив - содержит объекты типа ОписаниеПереданногоФайла: -// * Хранение - расположение данных во временном хранилище. -// * Имя - Строка - полный путь, по которому должен быть сохранен получаемый файл или имя файла с расширением. +// СохраняемыеФайлы - Массив из ОписаниеПереданногоФайла - содержит объекты типа ОписаниеПереданногоФайла. // ПараметрыСохранения - см. ФайловаяСистемаКлиент.ПараметрыСохраненияФайла // // Пример: @@ -679,7 +677,7 @@ // * Результат - Массив из Строка - выбранные имена файлов. // - Строка - пустая строка, если пользователь отказался от установки расширения. // - Неопределено - если пользователь отказался от выбора файла. -// * ДополнительныеПараметры - Структура - дополнительные параметры оповещения. +// * ДополнительныеПараметры - Структура - дополнительные параметры оповещения. // Диалог - ДиалогВыбораФайла - свойства см. в синтакс-помощнике. // Процедура ПоказатьДиалогВыбора(ОбработчикЗавершения, Диалог) Экспорт @@ -768,6 +766,21 @@ КонецПроцедуры +// Формирует уникальное имя файла в указанной папке, при необходимости добавляя к имени файла порядковый номер, +// например: "файл (2).txt", "файл (3).txt" и т.п. +// +// Параметры: +// ИмяФайла - Строка - полное имя файла с папкой, например, "C:\Документы\файл.txt". +// +// Возвращаемое значение: +// Строка - например, "C:\Документы\файл (2).txt", если "файл.txt" уже существует в указанной папке. +// +Функция УникальноеИмяФайла(Знач ИмяФайла) Экспорт + + Возврат ФайловаяСистемаСлужебныйКлиентСервер.УникальноеИмяФайла(ИмяФайла); + +КонецФункции + #КонецОбласти #КонецОбласти diff --git a/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиентСервер/Module.bsl new file mode 100644 index 000000000..7d58f1e8f --- /dev/null +++ b/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиентСервер/Module.bsl @@ -0,0 +1,28 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныеПроцедурыИФункции + +Функция УникальноеИмяФайла(Знач ИмяФайла) Экспорт + + Файл = Новый Файл(ИмяФайла); + ИмяБезРасширения = Файл.ИмяБезРасширения; + Расширение = Файл.Расширение; + ИмяКаталога = Файл.Путь; + + Счетчик = 1; + Пока Файл.Существует() Цикл + Счетчик = Счетчик + 1; + Файл = Новый Файл(ИмяКаталога + ИмяБезРасширения + " (" + Счетчик + ")" + Расширение); + КонецЦикла; + + Возврат Файл.ПолноеИмя; + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиентСервер/ФайловаяСистемаСлужебныйКлиентСервер.mdo b/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиентСервер/ФайловаяСистемаСлужебныйКлиентСервер.mdo new file mode 100644 index 000000000..0a3bccbab --- /dev/null +++ b/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиентСервер/ФайловаяСистемаСлужебныйКлиентСервер.mdo @@ -0,0 +1,12 @@ + + + ФайловаяСистемаСлужебныйКлиентСервер + + ru + Файловая система служебный клиент сервер + + true + true + true + true + diff --git a/SSL/src/CommonModules/ЦентрМониторинга/Module.bsl b/SSL/src/CommonModules/ЦентрМониторинга/Module.bsl index d03b1dc60..014995051 100644 --- a/SSL/src/CommonModules/ЦентрМониторинга/Module.bsl +++ b/SSL/src/CommonModules/ЦентрМониторинга/Module.bsl @@ -12,7 +12,7 @@ // Проверяет состояние подсистемы. // Возвращаемое значение: -// Булево - Истина включен, Ложь выключен. +// Булево - Истина включен, Ложь выключен. // Функция ЦентрМониторингаВключен() Экспорт ПараметрыЦентраМониторинга = Новый Структура("ВключитьЦентрМониторинга, ЦентрОбработкиИнформацииОПрограмме"); @@ -51,7 +51,7 @@ // Возвращает строковое представление идентификатора информационной базы в центре мониторинга. // Возвращаемое значение: -// Строка - уникальный идентификатор информационной базы в центре мониторинга. +// Строка - уникальный идентификатор информационной базы в центре мониторинга. // Функция ИдентификаторИнформационнойБазы() Экспорт @@ -83,7 +83,7 @@ // ИмяОперации - Строка - имя операции статистики, в случае отсутствия создается новое. // Значение - Число - количественное значение операции статистики. // Комментарий - Строка - произвольный комментарий. -// Разделитель - Строка - разделитель значений в ИмяОперации, если разделитель не точка. +// Разделитель - Строка - разделитель значений в ИмяОперации, если разделитель не точка. // Процедура ЗаписатьОперациюБизнесСтатистики(ИмяОперации, Значение, Комментарий = Неопределено, Разделитель = ".") Экспорт Если ЗаписыватьОперацииБизнесСтатистики() Тогда @@ -146,7 +146,7 @@ // Возвращает состояние регистрации бизнес-статистики. // Возвращаемое значение: -// Булево - регистрировать бизнес статистику. +// Булево - регистрировать бизнес статистику. // Функция ЗаписыватьОперацииБизнесСтатистики() Экспорт ПараметрыЦентраМониторинга = Новый Структура("ВключитьЦентрМониторинга, ЦентрОбработкиИнформацииОПрограмме, РегистрироватьБизнесСтатистику"); diff --git a/SSL/src/CommonModules/ЦентрМониторингаСлужебный/Module.bsl b/SSL/src/CommonModules/ЦентрМониторингаСлужебный/Module.bsl index 93aa294e2..edc0018de 100644 --- a/SSL/src/CommonModules/ЦентрМониторингаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ЦентрМониторингаСлужебный/Module.bsl @@ -41,7 +41,7 @@ // Параметры: // Параметр - Строка - ключ параметра центра мониторинга, возможные значения ключа // см. в процедуре ПолучитьПараметрыПоУмолчанию в модуле ЦентрМониторингаСлужебный. -// Значение - Произвольный тип - значение параметра центра мониторинга. +// Значение - Произвольный - значение параметра центра мониторинга. // Функция УстановитьПараметрЦентраМониторингаВнешнийВызов(Параметр, Значение) Экспорт Возврат УстановитьПараметрЦентраМониторинга(Параметр, Значение); @@ -86,7 +86,7 @@ // См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий. // Параметры: -// Зависимости - см. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий.Настройки +// Зависимости - см. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий.Настройки // Процедура ПриОпределенииНастроекРегламентныхЗаданий(Зависимости) Экспорт Зависимость = Зависимости.Добавить(); @@ -99,9 +99,6 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -291,9 +288,8 @@ КонецПроцедуры -// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. // Параметры: -// ТекущиеДела - см. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел.Обработчики +// ТекущиеДела - см. ТекущиеДелаСервер.ТекущиеДела. // Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт @@ -2676,7 +2672,7 @@ ДанныеОбИспользованииРолей = Новый Структура; // Получение данных об использовании ролей. - Запрос = Новый Запрос(ТекстЗапросаИспользованияРолей()); + Запрос = Новый Запрос(УправлениеДоступомСлужебный.ТекстЗапросаИспользованияРолей()); Запрос.УстановитьПараметр("ПустойУИД", ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор()); Запрос.УстановитьПараметр("ТекущаяДата", НачалоДня(ТекущаяДатаСеанса())); РезультатПакет = Запрос.ВыполнитьПакет(); @@ -2723,256 +2719,6 @@ Возврат ДанныеОбИспользованииРолей; КонецФункции -Функция ТекстЗапросаИспользованияРолей() - - Возврат - "ВЫБРАТЬ - | СоставыГруппПользователей.ГруппаПользователей КАК ГруппаПользователей, - | СведенияОПользователях.Пользователь КАК Пользователь, - | ВЫБОР - | КОГДА РАЗНОСТЬДАТ(СведенияОПользователях.ДатаПоследнейАктивности, &ТекущаяДата, ДЕНЬ) <= 7 - | ТОГДА 1 - | ИНАЧЕ 0 - | КОНЕЦ КАК АктивныхЗаНеделю, - | ВЫБОР - | КОГДА РАЗНОСТЬДАТ(СведенияОПользователях.ДатаПоследнейАктивности, &ТекущаяДата, ДЕНЬ) <= 30 - | ТОГДА 1 - | ИНАЧЕ 0 - | КОНЕЦ КАК АктивныхЗаМесяц - |ПОМЕСТИТЬ ВТСоставыГруппИАктивность - |ИЗ - | РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОПользователях КАК СведенияОПользователях - | ПО СоставыГруппПользователей.Пользователь = СведенияОПользователях.Пользователь - |ГДЕ - | СоставыГруппПользователей.Используется - | И НЕ СоставыГруппПользователей.Пользователь.ИдентификаторПользователяИБ = &ПустойУИД - | - |ИНДЕКСИРОВАТЬ ПО - | ГруппаПользователей, - | Пользователь - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | ПрофилиГруппДоступа.Ссылка КАК Профиль, - | ПрофилиГруппДоступа.ИдентификаторПоставляемыхДанных КАК ИдентификаторПоставляемыхДанных, - | ПрофилиГруппДоступа.ПоставляемыйПрофильИзменен КАК ПоставляемыйПрофильИзменен, - | ПрофилиГруппДоступа.Наименование КАК Наименование, - | ГруппыДоступаПользователи.Ссылка КАК ГруппаДоступа, - | ГруппыДоступаПользователи.Ссылка.Пользователь = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) - | ИЛИ ГруппыДоступаПользователи.Ссылка.Пользователь = ЗНАЧЕНИЕ(Справочник.ВнешниеПользователи.ПустаяСсылка) - | ИЛИ ГруппыДоступаПользователи.Ссылка.Пользователь = НЕОПРЕДЕЛЕНО КАК ОбщаяГруппаДоступа, - | ГруппыДоступаПользователи.Пользователь КАК ПользовательТЧ, - | СоставыГруппПользователей.Пользователь КАК ПользовательРС, - | СоставыГруппПользователей.АктивныхЗаНеделю КАК АктивныхЗаНеделю, - | СоставыГруппПользователей.АктивныхЗаМесяц КАК АктивныхЗаМесяц - |ПОМЕСТИТЬ ВТДанныеПрофилей - |ИЗ - | Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСоставыГруппИАктивность КАК СоставыГруппПользователей - | ПО ГруппыДоступаПользователи.Пользователь = СоставыГруппПользователей.ГруппаПользователей - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПрофилиГруппДоступа КАК ПрофилиГруппДоступа - | ПО (ПрофилиГруппДоступа.Ссылка = ГруппыДоступаПользователи.Ссылка.Профиль) - | И (НЕ ГруппыДоступаПользователи.Ссылка.Профиль.ПометкаУдаления) - |ГДЕ - | НЕ ГруппыДоступаПользователи.Ссылка.Профиль.ПометкаУдаления - | - |СГРУППИРОВАТЬ ПО - | ПрофилиГруппДоступа.Ссылка, - | ПрофилиГруппДоступа.Наименование, - | ГруппыДоступаПользователи.Пользователь, - | СоставыГруппПользователей.Пользователь, - | СоставыГруппПользователей.АктивныхЗаНеделю, - | СоставыГруппПользователей.АктивныхЗаМесяц, - | ГруппыДоступаПользователи.Ссылка, - | ГруппыДоступаПользователи.Ссылка.Пользователь = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) - | ИЛИ ГруппыДоступаПользователи.Ссылка.Пользователь = ЗНАЧЕНИЕ(Справочник.ВнешниеПользователи.ПустаяСсылка) - | ИЛИ ГруппыДоступаПользователи.Ссылка.Пользователь = НЕОПРЕДЕЛЕНО, - | ПрофилиГруппДоступа.ИдентификаторПоставляемыхДанных, - | ПрофилиГруппДоступа.ПоставляемыйПрофильИзменен - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | ВТДанныеПрофилей.Профиль КАК Профиль, - | ВТДанныеПрофилей.Наименование КАК Наименование, - | ВТДанныеПрофилей.ИдентификаторПоставляемыхДанных КАК ИдентификаторПоставляемыхДанных, - | ВТДанныеПрофилей.ПоставляемыйПрофильИзменен КАК ПоставляемыйПрофильИзменен - |ПОМЕСТИТЬ Профили - |ИЗ - | ВТДанныеПрофилей КАК ВТДанныеПрофилей - | - |ИНДЕКСИРОВАТЬ ПО - | Профиль - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | Профили.Профиль КАК Профиль, - | СУММА(ВЫБОР - | КОГДА НЕ ПрофилиГруппДоступаВидыДоступа.ВидДоступа ЕСТЬ NULL - | ТОГДА 1 - | ИНАЧЕ 0 - | КОНЕЦ) КАК ВсегоВидовДоступа, - | СУММА(ВЫБОР - | КОГДА ЕСТЬNULL(ПрофилиГруппДоступаВидыДоступа.Предустановленный, ЛОЖЬ) - | ТОГДА 1 - | ИНАЧЕ 0 - | КОНЕЦ) КАК ПредустановленныхВидовДоступа - |ПОМЕСТИТЬ ВидыДоступа - |ИЗ - | Профили КАК Профили - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПрофилиГруппДоступа.ВидыДоступа КАК ПрофилиГруппДоступаВидыДоступа - | ПО Профили.Профиль = ПрофилиГруппДоступаВидыДоступа.Ссылка - | - |СГРУППИРОВАТЬ ПО - | Профили.Профиль - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | Вложенный.Профиль КАК Профиль, - | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Вложенный.ГруппаДоступа) КАК ГруппаДоступа, - | СУММА(ВЫБОР - | КОГДА НЕ Вложенный.ОбщаяГруппаДоступа - | ТОГДА 1 - | ИНАЧЕ 0 - | КОНЕЦ) КАК ПерсональнаяГруппа - |ПОМЕСТИТЬ ГруппыДоступа - |ИЗ - | (ВЫБРАТЬ - | ВТДанныеПрофилей.Профиль КАК Профиль, - | ВТДанныеПрофилей.ГруппаДоступа КАК ГруппаДоступа, - | ВТДанныеПрофилей.ОбщаяГруппаДоступа КАК ОбщаяГруппаДоступа - | ИЗ - | ВТДанныеПрофилей КАК ВТДанныеПрофилей - | - | СГРУППИРОВАТЬ ПО - | ВТДанныеПрофилей.Профиль, - | ВТДанныеПрофилей.ГруппаДоступа, - | ВТДанныеПрофилей.ОбщаяГруппаДоступа) КАК Вложенный - | - |СГРУППИРОВАТЬ ПО - | Вложенный.Профиль - | - |ИНДЕКСИРОВАТЬ ПО - | Профиль - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | Вложенный.Профиль КАК Профиль, - | СУММА(ВЫБОР - | КОГДА Вложенный.ПользовательТЧ ССЫЛКА Справочник.ГруппыПользователей - | ТОГДА 1 - | ИНАЧЕ 0 - | КОНЕЦ) КАК ГруппПользователей, - | СУММА(ВЫБОР - | КОГДА Вложенный.ПользовательТЧ ССЫЛКА Справочник.ГруппыВнешнихПользователей - | ТОГДА 1 - | ИНАЧЕ 0 - | КОНЕЦ) КАК ГруппВнешнихПользователей - |ПОМЕСТИТЬ ГруппыПользователей - |ИЗ - | (ВЫБРАТЬ - | ВТДанныеПрофилей.Профиль КАК Профиль, - | ВТДанныеПрофилей.ПользовательТЧ КАК ПользовательТЧ - | ИЗ - | ВТДанныеПрофилей КАК ВТДанныеПрофилей - | - | СГРУППИРОВАТЬ ПО - | ВТДанныеПрофилей.Профиль, - | ВТДанныеПрофилей.ПользовательТЧ) КАК Вложенный - | - |СГРУППИРОВАТЬ ПО - | Вложенный.Профиль - | - |ИНДЕКСИРОВАТЬ ПО - | Профиль - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | Вложенный.Профиль КАК Профиль, - | СУММА(ВЫБОР - | КОГДА Вложенный.ПользовательРС ССЫЛКА Справочник.Пользователи - | ТОГДА 1 - | ИНАЧЕ 0 - | КОНЕЦ) КАК Пользователи, - | СУММА(ВЫБОР - | КОГДА Вложенный.ПользовательРС ССЫЛКА Справочник.ВнешниеПользователи - | ТОГДА 1 - | ИНАЧЕ 0 - | КОНЕЦ) КАК ВнешниеПользователи, - | СУММА(Вложенный.АктивныхЗаНеделю) КАК АктивныхЗаНеделю, - | СУММА(Вложенный.АктивныхЗаМесяц) КАК АктивныхЗаМесяц - |ПОМЕСТИТЬ ПользователиПрофиля - |ИЗ - | (ВЫБРАТЬ - | ВТДанныеПрофилей.Профиль КАК Профиль, - | ВТДанныеПрофилей.ПользовательРС КАК ПользовательРС, - | СУММА(ВТДанныеПрофилей.АктивныхЗаНеделю) КАК АктивныхЗаНеделю, - | СУММА(ВТДанныеПрофилей.АктивныхЗаМесяц) КАК АктивныхЗаМесяц - | ИЗ - | ВТДанныеПрофилей КАК ВТДанныеПрофилей - | - | СГРУППИРОВАТЬ ПО - | ВТДанныеПрофилей.Профиль, - | ВТДанныеПрофилей.ПользовательРС) КАК Вложенный - | - |СГРУППИРОВАТЬ ПО - | Вложенный.Профиль - | - |ИНДЕКСИРОВАТЬ ПО - | Профиль - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | Профили.Профиль КАК Профиль, - | Профили.Наименование КАК Наименование, - | Профили.ИдентификаторПоставляемыхДанных КАК ИдентификаторПоставляемыхДанных, - | Профили.ПоставляемыйПрофильИзменен КАК ПоставляемыйПрофильИзменен, - | ЕСТЬNULL(ГруппыДоступа.ГруппаДоступа, 0) КАК ГруппаДоступа, - | ЕСТЬNULL(ГруппыДоступа.ПерсональнаяГруппа, 0) КАК ПерсональнаяГруппа, - | ЕСТЬNULL(ГруппыПользователей.ГруппПользователей, 0) КАК ГруппПользователей, - | ЕСТЬNULL(ГруппыПользователей.ГруппВнешнихПользователей, 0) КАК ГруппВнешнихПользователей, - | ЕСТЬNULL(ПользователиПрофиля.Пользователи, 0) КАК Пользователи, - | ЕСТЬNULL(ПользователиПрофиля.ВнешниеПользователи, 0) КАК ВнешниеПользователи, - | ЕСТЬNULL(ПользователиПрофиля.АктивныхЗаНеделю, 0) КАК АктивныхЗаНеделю, - | ЕСТЬNULL(ПользователиПрофиля.АктивныхЗаМесяц, 0) КАК АктивныхЗаМесяц, - | ЕСТЬNULL(ВидыДоступа.ВсегоВидовДоступа, 0) КАК ВсегоВидовДоступа, - | ЕСТЬNULL(ВидыДоступа.ПредустановленныхВидовДоступа, 0) КАК ПредустановленныхВидовДоступа - |ИЗ - | Профили КАК Профили - | ЛЕВОЕ СОЕДИНЕНИЕ ПользователиПрофиля КАК ПользователиПрофиля - | ПО Профили.Профиль = ПользователиПрофиля.Профиль - | ЛЕВОЕ СОЕДИНЕНИЕ ГруппыПользователей КАК ГруппыПользователей - | ПО Профили.Профиль = ГруппыПользователей.Профиль - | ЛЕВОЕ СОЕДИНЕНИЕ ГруппыДоступа КАК ГруппыДоступа - | ПО Профили.Профиль = ГруппыДоступа.Профиль - | ЛЕВОЕ СОЕДИНЕНИЕ ВидыДоступа КАК ВидыДоступа - | ПО Профили.Профиль = ВидыДоступа.Профиль - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | Профили.Профиль КАК Профиль, - | ЕСТЬNULL(ПрофилиГруппДоступаРоли.Роль.Имя, """") КАК РольИмя - |ИЗ - | Профили КАК Профили - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПрофилиГруппДоступа.Роли КАК ПрофилиГруппДоступаРоли - | ПО Профили.Профиль = ПрофилиГруппДоступаРоли.Ссылка - | И (Профили.ИдентификаторПоставляемыхДанных = &ПустойУИД - | ИЛИ Профили.ПоставляемыйПрофильИзменен) - | - |УПОРЯДОЧИТЬ ПО - | Профиль"; - -КонецФункции - - #КонецОбласти @@ -4125,7 +3871,6 @@ #Область НастройкаОбработкиОшибок Процедура УстановитьДополнительнуюИнформациюОбработкиОшибок() Экспорт - ТекстИсключения = Неопределено; ИдентификаторИнформационнойБазы = ЦентрМониторинга.ИдентификаторИнформационнойБазы(); // Если идентификатор не задан - ничего не делаем. Если Не ЗначениеЗаполнено(ИдентификаторИнформационнойБазы) Тогда @@ -4141,12 +3886,13 @@ КодДляВыполнения = "Параметры.ОбработкаОшибок = ОбработкаОшибок; |Параметры.КодВыполнен = Истина;"; // Инициализируем менеджер обработки ошибок. + // АПК:280-выкл обработка исключения не требуется Попытка ОбщегоНазначения.ВыполнитьВБезопасномРежиме(КодДляВыполнения, Параметры); Исключение - ТекстИсключения = ОписаниеОшибки(); + // Исключение не выбрасываем. КонецПопытки; - Если Параметры.КодВыполнен Тогда + Если Параметры.КодВыполнен Тогда Попытка Если БезопасныйРежим() = Истина Тогда УстановитьОтключениеБезопасногоРежима(Истина); @@ -4175,9 +3921,10 @@ Параметры.ОбработкаОшибок.УстановитьОбщиеНастройки(ОбщиеНастройки); УстановитьПривилегированныйРежим(Ложь); Исключение - ТекстИсключения = ОписаниеОшибки(); - КонецПопытки; + // Исключение не выбрасываем. + КонецПопытки; КонецЕсли; + // АПК:280-вкл КонецПроцедуры #КонецОбласти diff --git a/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl index 4c9526358..fcf755384 100644 --- a/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl +++ b/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl @@ -17,7 +17,7 @@ // УникальныйИдентификатор - УникальныйИдентификатор - идентификатор формы, необходим для размещения вложений во // временном хранилище при клиент-серверном вызове. Если вызов // происходит только на сервере, то можно использовать любой идентификатор. -// ДополнительныеПараметры - Структура - необязательный, список дополнительных параметров, который будет передан в +// ДополнительныеПараметры - Структура - список дополнительных параметров, который будет передан в // параметр Сообщение в процедурах ПриФормированииСообщения при создании сообщения: // * ПреобразовыватьHTMLДляФорматированногоДокумента - Булево - необязательный, по умолчанию Ложь, определяет // необходимо ли преобразование HTML текста сообщения содержащего картинки в тексте письма из-за @@ -51,7 +51,7 @@ // определяемом типе ПредметШаблонаСообщения. // УникальныйИдентификатор - УникальныйИдентификатор - идентификатор формы, необходим для размещения вложений во // временном хранилище. -// ДополнительныеПараметры - Структура - необязательный, список дополнительных параметров, который будет передан в +// ДополнительныеПараметры - Структура - список дополнительных параметров, который будет передан в // параметр Сообщение в процедурах ПриФормированииСообщения при создании сообщения: // * ПреобразовыватьHTMLДляФорматированногоДокумента - Булево - необязательный, по умолчанию Ложь, определяет, // необходимо ли преобразование HTML-текста сообщения, содержащего картинки в тексте письма, из-за @@ -365,7 +365,7 @@ // ТекущийПользователь // // Параметры: -// ОбщиеРеквизиты - соответствие из КлючЗначение: +// ОбщиеРеквизиты - Соответствие из КлючИЗначение: // * Ключ - Строка - имя общего реквизита // * Значение - Строка - значение заполненного реквизита. // @@ -398,11 +398,7 @@ Возврат ТипЗнч(ШаблонСсылка) = Тип("СправочникСсылка.ШаблоныСообщений"); КонецФункции -// См. СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании -// -// Параметры: -// Объекты - см. СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании.Объекты -// +// См. СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании. Процедура ПриОпределенииОбъектовСКомандамиСозданияНаОсновании(Объекты) Экспорт Объекты.Добавить(Метаданные.Справочники.ШаблоныСообщений); diff --git a/SSL/src/CommonModules/ШаблоныСообщенийКлиентСервер/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщенийКлиентСервер/Module.bsl index 378ed88d1..14f068cb0 100644 --- a/SSL/src/CommonModules/ШаблоныСообщенийКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ШаблоныСообщенийКлиентСервер/Module.bsl @@ -122,6 +122,14 @@ #Область СлужебныеПроцедурыИФункции +Функция ИмяШаблонаЭлектронныхПисем() Экспорт + Возврат "Email"; +КонецФункции + +Функция ИмяШаблонаSMS() Экспорт + Возврат "SMS"; +КонецФункции + Функция ИдентификаторОбщий() Экспорт Возврат "Общий"; КонецФункции diff --git a/SSL/src/CommonModules/ШаблоныСообщенийПереопределяемый/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщенийПереопределяемый/Module.bsl index ff20ad814..7e2b20f36 100644 --- a/SSL/src/CommonModules/ШаблоныСообщенийПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ШаблоныСообщенийПереопределяемый/Module.bsl @@ -36,18 +36,19 @@ // // Параметры: // Реквизиты - ДеревоЗначений - список реквизитов шаблона: -// * Имя - Строка - уникальное имя общего реквизита; -// * Представление - Строка - представление общего реквизита; -// * Тип - Тип - тип реквизита. По умолчанию строка; -// * Подсказка - Строка - расширенная информация о реквизите; -// * Формат - Строка - формат вывода значения для чисел, дат, строк и булевых значений. +// * Имя - Строка - уникальное имя реквизита. +// * Представление - Строка - представление реквизита. +// * Тип - Тип - тип реквизита. +// * Подсказка - Строка - расширенная информация о реквизите. +// * Формат - Строка - формат вывода значения для чисел, дат, строк и булевых значений. +// Например, "ДЛФ=D" для даты. // Вложения - ТаблицаЗначений - печатные формы и вложения, где: -// * Имя - Строка - уникальное имя вложения; -// * Идентификатор - Строка - идентификатор вложения; -// * Представление - Строка - представление варианта; -// * Подсказка - Строка - расширенная информация о вложении; +// * Имя - Строка - уникальное имя вложения. +// * Идентификатор - Строка - идентификатор вложения. +// * Представление - Строка - представление варианта. +// * Подсказка - Строка - расширенная информация о вложении. // * ТипФайла - Строка - тип вложения, который соответствует расширению файла: "pdf", "png", "jpg", mxl" и др. -// НазначениеШаблона - Строка - имя назначения шаблон сообщения. +// НазначениеШаблона - Строка - назначение шаблона сообщения, например, "ОповещениеКлиентаИзменениеЗаказа". // ДополнительныеПараметры - Структура - дополнительные сведения о шаблоне сообщения. // Процедура ПриПодготовкеШаблонаСообщения(Реквизиты, Вложения, НазначениеШаблона, ДополнительныеПараметры) Экспорт @@ -60,13 +61,13 @@ // // Параметры: // Сообщение - Структура: -// * ЗначенияРеквизитов - Соответствие - список используемых в шаблоне реквизитов: +// * ЗначенияРеквизитов - Соответствие из КлючИЗначение - список используемых в шаблоне реквизитов: // ** Ключ - Строка - имя реквизита в шаблоне; // ** Значение - Строка - значение заполнения в шаблоне. -// * ЗначенияОбщихРеквизитов - Соответствие - список используемых в шаблоне общих реквизитов: +// * ЗначенияОбщихРеквизитов - Соответствие из КлючИЗначение - список используемых в шаблоне общих реквизитов: // ** Ключ - Строка - имя реквизита в шаблоне; // ** Значение - Строка - значение заполнения в шаблоне. -// * Вложения - Соответствие: +// * Вложения - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя вложения в шаблоне; // ** Значение - ДвоичныеДанные // - Строка - двоичные данные или адрес во временном хранилище вложения. diff --git a/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl index dc5a0514d..44ca0f1df 100644 --- a/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl @@ -284,10 +284,6 @@ // Обработчики событий подсистем конфигурации. // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -425,6 +421,9 @@ Возврат Сообщение; КонецФункции +// Возвращаемое значение: +// см. КонструкторСведенийОШаблоне +// Функция СведенияОШаблоне(ПараметрыШаблона) Экспорт СведенияОШаблоне = КонструкторСведенийОШаблоне(); @@ -855,8 +854,8 @@ Функция ВидыШаблонов() Экспорт ТипыШаблонов = Новый СписокЗначений; - ТипыШаблонов.Добавить("Email", НСтр("ru = 'Электронного письма'")); - ТипыШаблонов.Добавить("SMS", НСтр("ru = 'Сообщения SMS'")); + ТипыШаблонов.Добавить(ШаблоныСообщенийКлиентСервер.ИмяШаблонаЭлектронныхПисем(), НСтр("ru = 'Электронного письма'")); + ТипыШаблонов.Добавить(ШаблоныСообщенийКлиентСервер.ИмяШаблонаSMS(), НСтр("ru = 'Сообщения SMS'")); Возврат ТипыШаблонов; КонецФункции @@ -1028,7 +1027,7 @@ // // Параметры: // Владелец - СправочникСсылка.ШаблоныСообщений -// Сведения - см. ШаблоныСообщенийКлиентСервер.СтрокаВложений +// Сведения - см. ШаблоныСообщений.СтрокаВложений // ИмяФайла - Строка // Размер - Число // КоличествоПустыхИменВоВложениях - Число @@ -1847,6 +1846,14 @@ // Подставляет в шаблон значения параметров сообщения и формирует текст сообщения. // +// Параметры: +// ШаблонСтроки - Строка +// ВставляемыеЗначения - Соответствие +// Префикс - Строка +// +// Возвращаемое значение: +// Строка +// Функция ВставитьПараметрыВСтрокуСогласноТаблицеПараметров(Знач ШаблонСтроки, ВставляемыеЗначения, Знач Префикс = "") Экспорт Результат = ШаблонСтроки; @@ -1968,11 +1975,12 @@ // // Параметры: // ТекстHTML - Строка - HTML текст. +// Кодировка - Строка - кодировка текста // // Возвращаемое значение: // ДокументHTML - созданный документ HTML. // -Функция ПолучитьОбъектДокументHTMLИзТекстаHTML(ТекстHTML,Кодировка = Неопределено) Экспорт +Функция ПолучитьОбъектДокументHTMLИзТекстаHTML(ТекстHTML, Кодировка = Неопределено) Экспорт Построитель = Новый ПостроительDOM; ЧтениеHTML = Новый ЧтениеHTML; @@ -2117,11 +2125,11 @@ // Реквизит - ОбъектМетаданных // Префикс - Строка // СведенияОСпискеРеквизитов - Структура: -// * СписокРеквизитов -// * СписокСодержитДанные +// * СписокРеквизитов - Массив +// * СписокСодержитДанные - Булево // СведенияОИсключаемыхРеквизитах - Структура: -// * СписокРеквизитов -// * СписокСодержитДанные +// * СписокРеквизитов - Массив +// * СписокСодержитДанные - Булево // Процедура ДобавитьРеквизитПоМетаданнымОбъекта(Реквизиты, Реквизит, Префикс, СведенияОСпискеРеквизитов, СведенияОИсключаемыхРеквизитах) diff --git a/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl index 435455f15..432f82120 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl @@ -141,7 +141,7 @@ // Устанавливает реквизиту ПодписанЭП значение Истина. // // Параметры: -// Объект - Ссылка - по ссылке будет получен объект, заблокирован, изменен, записан. +// Объект - ЛюбаяСсылка - по ссылке будет получен объект, заблокирован, изменен, записан. // Объект должен иметь реквизит ПодписанЭП. // - Объект - объект будет изменен без блокировки и без записи. // @@ -268,7 +268,7 @@ // Обновляет подпись объекта. // // Параметры: -// Объект - Ссылка - ссылка на подписанный объект, для которого требуется обновить подпись. +// Объект - ЛюбаяСсылка - ссылка на подписанный объект, для которого требуется обновить подпись. // // СвойстваПодписи - Строка - адрес временного хранилища, содержащий описанную ниже структуру. // - Структура - развернутое описание подписи: @@ -479,7 +479,7 @@ // Устанавливает реквизит Зашифрован по наличию сертификатов в регистре сведений СертификатаШифрования. // // Параметры: -// Объект - Ссылка - по ссылке будет получен объект, заблокирован, изменен, записан. +// Объект - ЛюбаяСсылка - по ссылке будет получен объект, заблокирован, изменен, записан. // Объект должен иметь реквизит Зашифрован. // - Объект - объект будет изменен без блокировки и без записи. // @@ -640,7 +640,7 @@ // - Строка - адрес временного хранилища, содержащего двоичные данные сертификата. // // ДополнительныеПараметры - Неопределено - без дополнительных параметров. -// - Структура - с произвольным составом из следующих свойств: +// - Структура - с произвольным составом из следующих свойств: // * Наименование - Строка - представление сертификата в списке. // // * Пользователь - СправочникСсылка.Пользователь - пользователь, которому принадлежит сертификат. @@ -764,7 +764,23 @@ // Возвращаемое значение: // ТабличныйДокумент - табличный документ, содержащий готовый штамп электронной подписи. // -Функция ШтампВизуализацииЭлектроннойПодписи(Сертификат, ДатаПодписи = Неопределено, ТекстОтметки = "", ЛоготипОрганизации = Неопределено) Экспорт +Функция ШтампВизуализацииЭлектроннойПодписи(Сертификат, ДатаПодписи = Неопределено, + ТекстОтметки = "", ЛоготипОрганизации = Неопределено) Экспорт + + Если ЛоготипОрганизации = Неопределено И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Организации") Тогда + МодульОрганизацииСервер = ОбщегоНазначения.ОбщийМодуль("ОрганизацииСервер"); + СертификатСсылка = СсылкаНаСертификат(Сертификат); + Если ЗначениеЗаполнено(СертификатСсылка) Тогда + Организация = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СертификатСсылка, "Организация"); + Если ЗначениеЗаполнено(Организация) Тогда + ДополнительныеСведения = МодульОрганизацииСервер.ДополнительныеСведенияОрганизации( + Организация, , ДатаПодписи); + Если ДополнительныеСведения.Свойство("ЭмблемаОрганизацииДляШтампаЭлектроннойПодписи") Тогда + ЛоготипОрганизации = ДополнительныеСведения.ЭмблемаОрганизацииДляШтампаЭлектроннойПодписи; + КонецЕсли; + КонецЕсли; + КонецЕсли; + КонецЕсли; СвойстваСертификата = СвойстваСертификата(Сертификат); @@ -773,15 +789,16 @@ Формат(СвойстваСертификата.ДатаНачала, "ДЛФ=D"), Формат(СвойстваСертификата.ДатаОкончания, "ДЛФ=D")); + ПараметрыШтампа = Новый Структура; + ПараметрыШтампа.Вставить("ДатаПодписи", ДатаПодписи); + ПараметрыШтампа.Вставить("НомерСертификата", СвойстваСертификата.СерийныйНомер); + ПараметрыШтампа.Вставить("ВыдалСертификат", СвойстваСертификата.КемВыдан); + ПараметрыШтампа.Вставить("ВладелецСертификата", СвойстваСертификата.КомуВыдан); + ПараметрыШтампа.Вставить("СрокДействия", ПериодДействия); + ПараметрыШтампа.Вставить("ТекстОтметки", ТекстОтметки); + Штамп = Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования.ПолучитьМакет("Штамп"); - - Штамп.Параметры.ДатаПодписи = ДатаПодписи; - Штамп.Параметры.НомерСертификата = СвойстваСертификата.СерийныйНомер; - Штамп.Параметры.ВыдалСертификат = СвойстваСертификата.КемВыдан; - Штамп.Параметры.ВладелецСертификата = СвойстваСертификата.КомуВыдан; - Штамп.Параметры.СрокДействия = ПериодДействия; - Штамп.Параметры.ТекстОтметки = ТекстОтметки; - + ЗаполнитьЗначенияСвойств(Штамп.Параметры, ПараметрыШтампа); Если ЛоготипОрганизации <> Неопределено Тогда Штамп.Области.Картинка.Картинка = ЛоготипОрганизации; КонецЕсли; @@ -805,13 +822,13 @@ // например: ШтампЭП1 и т.д. // В таком случае штампы будут выведены в заданные области в том // порядке, в котором документ был подписан. -// - Соответствие - описывает места вывода штампов, где: +// - Соответствие из КлючИЗначение - описывает места вывода штампов, где: // * Ключ - Строка - имя области, куда выводить штамп. Для такой области должна // быть установлена произвольная ширина колонок, // отличная от ширины колонок остального документа. // * Значение - ТабличныйДокумент - штамп, полученный функцией // ЭлектроннаяПодпись.ШтампВизуализацииЭлектроннойПодписи. -// Размеры - Структура - необязательный параметр, позволяет изменять размеры штампа, со свойствами: +// Размеры - Структура - позволяет изменять размеры штампа, со свойствами: // * ЛеваяКолонка - Число - ширина левой колонки штампа, содержащей заголовки свойств. // По умолчанию - 10. // * ПраваяКолонка - Число - ширина правой колонки штампа, содержащей значения свойств. @@ -1112,6 +1129,11 @@ КонецЕсли; Возврат Ложь; КонецЕсли; + + ДатаПодписания = ДатаПодписания(ПодписьДляПроверки); + Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда + ДатаПодписания = НаДату; + КонецЕсли; Иначе Сертификат = Неопределено; Попытка @@ -1208,8 +1230,17 @@ Или МенеджерКриптографииДляПроверки = "СервисКриптографии" Тогда МодульСервисКриптографии = ОбщегоНазначения.ОбщийМодуль("СервисКриптографии"); + ПараметрыПроверки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПроверкиСертификатаВСервисе( + ОбщиеНастройки(), РежимыПроверкиСертификата); Попытка - Результат = МодульСервисКриптографии.ПроверитьСертификат(ДанныеСертификата); + Если ПараметрыПроверки <> Неопределено Тогда + // АПК:287-выкл - №640 - допустимо вызывать несуществующую процедуру БТС, + // так как проверяется версия БТС 2.0.3, начиная с которой процедура существует. + Результат = МодульСервисКриптографии.ПроверитьСертификатСПараметрами(ДанныеСертификата, ПараметрыПроверки); + // АПК:287-вкл + Иначе + Результат = МодульСервисКриптографии.ПроверитьСертификат(ДанныеСертификата); + КонецЕсли; Исключение ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); Если ВызыватьИсключение Тогда @@ -1484,9 +1515,9 @@ // Возвращаемое значение: // Структура - персональные настройки для работы с электронной подписью: // * ДействияПриСохраненииСЭП - Строка - что делать при сохранении файлов с электронной подписью: -// ** "Спрашивать" - показывать диалог выбора подписей для сохранения. -// ** "СохранятьВсеПодписи" - всегда все подписи. -// * ПутиКПрограммамЭлектроннойПодписиИШифрования - Соответствие: +// "Спрашивать" - показывать диалог выбора подписей для сохранения; +// "СохранятьВсеПодписи" - всегда все подписи. +// * ПутиКПрограммамЭлектроннойПодписиИШифрования - Соответствие из КлючИЗначение: // ** Ключ - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования - программа. // ** Значение - Строка - путь к программе на компьютере пользователя. // * РасширениеДляФайловПодписи - Строка - расширение для файлов ЭП. @@ -1541,7 +1572,7 @@ // * ОписанияПрограмм - ФиксированныйМассив из см. ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеПрограммы - // сведения о поддерживаемых программах криптографии. // -// * ОписанияПрограммПоСсылке - ФиксированноеСоответствие: +// * ОписанияПрограммПоСсылке - ФиксированноеСоответствие из КлючИЗначение: // ** Ключ - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования // ** Значение - см. ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеПрограммы // diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl index 9f6627198..3dcb42706 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl @@ -132,7 +132,7 @@ // модуля ЭлектроннаяПодписьКлиент. // * Данные - Строка - произвольная строка для подписания, // - ДвоичныеДанные - двоичные данные для подписания. -// * Объект - Ссылка - (необязательный) - ссылка на объект , к которому нужно добавить подпись. +// * Объект - ЛюбаяСсылка - (необязательный) - ссылка на объект , к которому нужно добавить подпись. // Если не указан, то подпись не требуется добавлять. // - ОписаниеОповещения - (необязательный) - обработчик добавления подписи в // регистр сведений ЭлектронныеПодписи. Следует учесть общий подход (см. выше). @@ -141,12 +141,12 @@ // свойство ТекущийЭлементНабораДанных, содержащее параметр СвойстваПодписи. // * ВерсияОбъекта - Строка - (необязательный) - версия данных объекта для проверки и // блокировки объекта перед добавлением подписи. -// * Представление - Ссылка +// * Представление - ЛюбаяСсылка // - Строка // - Структура - (необязательный), если не указан, тогда // представление вычисляется по значению свойства Объект. // Структура содержит свойства: -// * Значение - Ссылка +// * Значение - ЛюбаяСсылка // - ОписаниеОповещения - для открытия. // * Представление - Строка - представление значения. // Вариант 2: @@ -169,7 +169,7 @@ // использоваться при блокировке объекта. // - Неопределено - использовать стандартную форму. // -// ОбработкаРезультата - ОписаниеОповещения - необязательный параметр. +// ОбработкаРезультата - ОписаниеОповещения - // Требуется для нестандартной обработки результата, например, если не указан параметр Объект и/или Форма. // В результат передается входной параметр ОписаниеДанных, который в успешном случае дополняется свойствами: // * Успех - Булево - Истина, если все прошло успешно. Если Успех = Ложь, то частичное завершение @@ -257,13 +257,13 @@ // * ЗаголовокДанных - Строка - заголовок элемента данных, например Файл. // * ПоказатьКомментарий - Булево - (необязательный) - разрешает ввод комментария в форме // добавления подписей. Если не указан, значит Ложь. -// * Объект - Ссылка - (необязательный) - ссылка на объект , к которому нужно добавить подпись. +// * Объект - ЛюбаяСсылка - (необязательный) - ссылка на объект , к которому нужно добавить подпись. // - ОписаниеОповещения - (необязательный) - обработчик добавления подписи в // регистр сведений ЭлектронныеПодписи. Следует учесть общий подход (см. выше). // В момент вызова в ОписаниеДанных уже вставлен параметр Подписи. // * ВерсияОбъекта - Строка - (необязательный) - версия данных объекта для проверки и // блокировки объекта перед добавлением подписи. -// * Представление - Ссылка +// * Представление - ЛюбаяСсылка // - Строка - (необязательный), если не указан, тогда // представление вычисляется по значению свойства Объект. // * Данные - ДвоичныеДанные - (необязательный) - данные для проверки подписи. @@ -277,7 +277,7 @@ // использоваться при блокировке объекта. // - Неопределено - использовать стандартную форму. // -// ОбработкаРезультата - ОписаниеОповещения - необязательный параметр. +// ОбработкаРезультата - ОписаниеОповещения - // Требуется для нестандартной обработки результата - например, если не указан параметр Объект и/или Форма. // В результат передается входной параметр ОписаниеДанных, который в успешном случае дополняется свойствами: // * Успех - Булево - Истина, если все прошло успешно. @@ -374,10 +374,10 @@ // * ЗаголовокДанных - Строка - заголовок элемента данных, например Файл. // * ПоказатьКомментарий - Булево - (необязательный) - разрешает ввод комментария в форме // добавления подписей. Если не указан, значит Ложь. -// * Представление - Ссылка +// * Представление - ЛюбаяСсылка // - Строка - (необязательный), если не указан, тогда // представление вычисляется по значению свойства Объект. -// * Объект - Ссылка - ссылка на объект, из которого нужно получить список подписей. +// * Объект - ЛюбаяСсылка - ссылка на объект, из которого нужно получить список подписей. // - Строка - адрес временного хранилища массива подписей с составом свойств, // как возвращает процедура ДобавитьПодписьИзФайла. // * Данные - ОписаниеОповещения - обработчик сохранения данных и получения полного имени @@ -397,7 +397,7 @@ // оповещения для метода НачатьЗапросРазрешенияПользователя. // Если разрешение не получено, значит, все отменено. // -// ОбработкаРезультата - ОписаниеОповещения - необязательный параметр. +// ОбработкаРезультата - ОписаниеОповещения - // В результат передается параметр: // * Булево - Истина, если все прошло успешно. // @@ -469,7 +469,7 @@ // - Массив - (необязательный) содержит значения // типа СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования или // типа ДвоичныеДанные (выгрузка сертификата). -// - Ссылка - (необязательный) - ссылка на объект, для которого необходимо получить сертификаты. +// - ЛюбаяСсылка - (необязательный) - ссылка на объект, для которого необходимо получить сертификаты. // * ИзменятьНабор - Булево - если Истина и НаборСертификатов задан и содержит только ссылки // на сертификаты, тогда будет возможность изменить состав сертификатов. // * БезПодтверждения - Булево - (необязательный) - пропустить подтверждение пользователя, @@ -506,16 +506,16 @@ // В момент вызова в ОписаниеДанных уже вставлен параметр ЗашифрованныеДанные. // В случае параметра НаборДанных, в ОписаниеДанных вставляется // свойство ТекущийЭлементНабораДанных, содержащее параметр ЗашифрованныеДанные. -// * Объект - Ссылка - (необязательный) - ссылка на объект, который необходимо зашифровать. +// * Объект - ЛюбаяСсылка - (необязательный) - ссылка на объект, который необходимо зашифровать. // Если не указан, то сертификаты шифрования не требуется добавлять. // * ВерсияОбъекта - Строка - (необязательный) - версия данных объекта для проверки и // блокировки объекта перед добавлением сертификатов шифрования. -// * Представление - Ссылка +// * Представление - ЛюбаяСсылка // - Строка // - Структура - (необязательный), если не указан, тогда // представление вычисляется по значению свойства Объект. // Структура содержит свойства: -// * Значение - Ссылка +// * Значение - ЛюбаяСсылка // - ОписаниеОповещения - для открытия. // * Представление - Строка - представление значения. // @@ -539,7 +539,7 @@ // использоваться при помещении зашифрованных данных во временное хранилище. // - Неопределено - использовать стандартную форму. // -// ОбработкаРезультата - ОписаниеОповещения - необязательный параметр. +// ОбработкаРезультата - ОписаниеОповещения - // Требуется для нестандартной обработки результата, если не указан параметр Форма и/или РазмещениеРезультата. // В результат передается входной параметр ОписаниеДанных, который в успешном случае дополняется свойствами: // * Успех - Булево - Истина, если все прошло успешно. Если Успех = Ложь, то частичное завершение @@ -667,7 +667,7 @@ // В момент вызова в ОписаниеДанных уже вставлен параметр РасшифрованныеДанные. // В случае параметра НаборДанных, в ОписаниеДанных вставляется // свойство ТекущийЭлементНабораДанных, содержащее параметр РасшифрованныеДанные. -// * Объект - Ссылка - (необязательный) - ссылка на объект, который необходимо расшифровать, +// * Объект - ЛюбаяСсылка - (необязательный) - ссылка на объект, который необходимо расшифровать, // а также очистить записи из регистра сведений СертификатыШифрования // после успешного завершения расшифровки. // Если не указан, то сертификаты не требуется получать из объекта и очищать. @@ -678,12 +678,12 @@ // полученное из двоичных данных сертификата. // * Сертификат - ДвоичныеДанные - содержит выгрузку сертификата, // который использовался для шифрования. -// * Представление - Ссылка +// * Представление - ЛюбаяСсылка // - Строка // - Структура - (необязательный), если не указан, тогда // представление вычисляется по значению свойства Объект. // Структура содержит свойства: -// * Значение - Ссылка +// * Значение - ЛюбаяСсылка // - ОписаниеОповещения - для открытия. // * Представление - Строка - представление значения. // @@ -711,7 +711,7 @@ // при помещении расшифрованных данных во временное хранилище. // - Неопределено - использовать стандартную форму. // -// ОбработкаРезультата - ОписаниеОповещения - необязательный параметр. +// ОбработкаРезультата - ОписаниеОповещения - // Требуется для нестандартной обработки результата, если не указан параметр Форма и/или РазмещениеРезультата. // В результат передается входной параметр ОписаниеДанных, который в успешном случае, дополняется свойствами: // * Успех - Булево - Истина, если все прошло успешно. Если Успех = Ложь, то частичное завершение @@ -1192,22 +1192,30 @@ КонецФункции -// Формирует структуру свойств для уточнения данных конверта SOAP и -// алгоритмов подписания и хеширования. +// Формирует структуру свойств для уточнения данных конверта SOAP и алгоритмов +// подписания и хеширования. +// +// Не требуется заполнять алгоритмы при использовании сертификатов +// с алгоритмами открытого ключа ГОСТ 94, ГОСТ 2001, ГОСТ 2012/256 и ГОСТ 2012/512. // +// Из сертификата извлекается OIDАлгоритмаОткрытогоКлюча и по нему из переданной таблицы +// определяются идентификаторы и XML-имена алгоритмов подписания и хеширования. +// // Возвращаемое значение: // Структура: -// * XPathSignedInfo - Строка - например, "(//. | //@* | //namespace::*)[ancestor-or-self::*[local-name()='SignedInfo']]". -// * XPathПодписываемыйТег - Строка - например, "(//. | //@* | //namespace::*)[ancestor-or-self::soap:Body]". -// * ИмяАлгоритмаПодписи - Строка - например, "GOST R 34.10-2001" + Символы.ПС + "GOST R 34.11-2012" + ... -// * OIDАлгоритмаПодписи - Строка - например, "1.2.643.2.2.3" + Символы.ПС + "1.2.643.7.1.1.3.2" + ... -// * ИмяАлгоритмаХеширования - Строка - например, "GOST R 34.11-94" + Символы.ПС + "GOST R 34.11-12" + ... -// * OIDАлгоритмаХеширования - Строка - например, "1.2.643.2.2.9" + Символы.ПС + "1.2.643.7.1.1.2.2" + ... -// * АлгоритмПодписи - Строка - например, "http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411" -// + Символы.ПС + -// "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256" + ... -// * АлгоритмХеширования - Строка - например, "http://www.w3.org/2001/04/xmldsig-more#gostr3411" -// + Символы.ПС + "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256" + ... +// * XPathSignedInfo - Строка - по умолчанию: "(//. | //@* | //namespace::*)[ancestor-or-self::*[local-name()='SignedInfo']]". +// * XPathПодписываемыйТег - Строка - по умолчанию: "(//. | //@* | //namespace::*)[ancestor-or-self::soap:Body]". +// +// * OIDАлгоритмаОткрытогоКлюча - Строка - например, "1.2.643.2.2.19" + Символы.ПС + "1.2.643.7.1.1.1.1" + ... +// * ИмяАлгоритмаПодписи - Строка - например, "GOST R 34.10-2001" + Символы.ПС + "GOST R 34.11-2012" + ... +// * OIDАлгоритмаПодписи - Строка - например, "1.2.643.2.2.3" + Символы.ПС + "1.2.643.7.1.1.3.2" + ... +// * ИмяАлгоритмаХеширования - Строка - например, "GOST R 34.11-94" + Символы.ПС + "GOST R 34.11-12" + ... +// * OIDАлгоритмаХеширования - Строка - например, "1.2.643.2.2.9" + Символы.ПС + "1.2.643.7.1.1.2.2" + ... +// * АлгоритмПодписи - Строка - например, "http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411" +// + Символы.ПС + +// "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256" + ... +// * АлгоритмХеширования - Строка - например, "http://www.w3.org/2001/04/xmldsig-more#gostr3411" +// + Символы.ПС + "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256" + ... // Функция ПараметрыXMLDSig() Экспорт @@ -1537,7 +1545,7 @@ // * Данные - Строка - адрес временного хранилища, содержащего двоичные данные сертификата. // * Организация - СправочникСсылка.Организация - организация к которой относится сертификат. // Отбор - Неопределено - использовать значения по умолчанию, для свойств структуры, описанных ниже. -// - Структура: +// - Структура: // * ПроверятьСрокДействия - Булево - если свойства нет, значит Истина. // * ТолькоСертификатыСЗаполненнойПрограммой - Булево - если свойства нет, значит Истина, // в запросе к справочнику выбираются только те сертификаты, diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl index 0157d7ef6..1d8d268ef 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl @@ -115,7 +115,7 @@ // ИменаФайлов - Массив - имена файлов типа Строка. // // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - Строка - имя файла. // * Значение - Массив - имена файлов подписей типа Строка. // @@ -217,10 +217,6 @@ // Обработчики событий подсистем конфигурации. // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -325,7 +321,7 @@ // См. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных. // // Параметры: -// Обработчики - см. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных.Обработчики +// Обработчики - см. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных.Обработчики // Процедура ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики) Экспорт @@ -939,7 +935,6 @@ СертификатКриптографии = Новый СертификатКриптографии(Контекст.ДанныеСертификата); ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь(,, Ложь); - Сертификат = Неопределено; Для Каждого ОписаниеПрограммы Из ОписанияПрограмм Цикл ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии(); @@ -1032,7 +1027,7 @@ КонецЕсли; МодульСервисКриптографии = ОбщегоНазначения.ОбщийМодуль("СервисКриптографии"); - СвойстваСертификата = МодульСервисКриптографии.ПолучитьСвойстваСертификата(Сертификат); + СвойстваСертификата = МодульСервисКриптографии.ПолучитьСвойстваСертификата(ДанныеСертификата); МаркерыБезопасности = МаркерыБезопасности(СвойстваСертификата.Идентификатор); @@ -1554,14 +1549,15 @@ СвойстваКриптопровайдера = СвойстваКриптопровайдера(МенеджерКриптографии); ОбъектКомпоненты.ПутьККриптопровайдеру = СвойстваКриптопровайдера.Путь; + СертификатКриптографииBase64 = СертификатКриптографииBase64(СертификатКриптографии.Выгрузить()); + КонвертSOAP = СтрЗаменить( КонвертSOAP, "%BinarySecurityToken%", - СертификатКриптографииBase64(СертификатКриптографии.Выгрузить())); + СертификатКриптографииBase64); - ПроверитьВыбратьАлгоритмПодписи(ОбъектКомпоненты, - СертификатКриптографииBase64(СертификатКриптографии.Выгрузить()), - ДанныеАлгоритмаПодписания); + ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверитьВыбратьАлгоритмПодписи( + СертификатКриптографииBase64, ДанныеАлгоритмаПодписания, Истина); АтрибутDigestValue = РезультатHash( ОбъектКомпоненты, @@ -1600,7 +1596,8 @@ СертификатКриптографииBase64 = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатИзКонвертаSOAP(КонвертSOAP); - ПроверитьВыбратьАлгоритмПодписи(ОбъектКомпоненты, СертификатКриптографииBase64, ДанныеАлгоритмаПодписания); + ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверитьВыбратьАлгоритмПодписи( + СертификатКриптографииBase64, ДанныеАлгоритмаПодписания, Истина); ПодписьВерна = РезультатVerifySign( ОбъектКомпоненты, @@ -1730,24 +1727,6 @@ КонецФункции -Функция OIDАлгоритмаПодписи(ОбъектКомпоненты, СертификатКриптографииBase64) - - Попытка - OIDАлгоритмаПодписи = ОбъектКомпоненты.GetSignOIDFromCert(СертификатКриптографииBase64); - Исключение - ВызватьИсключение НСтр("ru = 'Ошибка вызова метода GetSignOIDFromCert компоненты XMLDSig.'") - + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - КонецПопытки; - - Если OIDАлгоритмаПодписи = Неопределено Тогда - ВызватьИсключение НСтр("ru = 'Ошибка вызова метода GetSignOIDFromCert компоненты XMLDSig.'") - + Символы.ПС + ОбъектКомпоненты.GetLastError(); - КонецЕсли; - - Возврат OIDАлгоритмаПодписи; - -КонецФункции - Функция C14N(ОбъектКомпоненты, КонвертSOAP, XPath) Попытка @@ -1858,14 +1837,8 @@ Функция РезультатCMSVerifySign(ОбъектКомпоненты, Подпись, Данные, ПараметрыCMS, ТипКриптопровайдера) - ПараметрыКомпоненты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыКомпонентыCMSSign(ПараметрыCMS, Данные); - Попытка - ПодписьВерна = ОбъектКомпоненты.CMSVerifySign( - Base64Строка(Подпись), - 0, - "", - ТипКриптопровайдера); + ПодписьВерна = ОбъектКомпоненты.CMSVerifySign(Base64Строка(Подпись), 0, "", ТипКриптопровайдера); Исключение ВызватьИсключение НСтр("ru = 'Ошибка вызова метода CMSVerifySign компоненты XMLDSig.'") + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); КонецПопытки; @@ -1878,42 +1851,6 @@ КонецФункции -Процедура ПроверитьВыбратьАлгоритмПодписи(ОбъектКомпоненты, СертификатКриптографииBase64, ДанныеАлгоритмаПодписания) - - OIDАлгоритмаПодписи = OIDАлгоритмаПодписи(ОбъектКомпоненты, СертификатКриптографииBase64); - - OIDАлгоритмовПодписи = СтрРазделить(ДанныеАлгоритмаПодписания.OIDАлгоритмаПодписи, Символы.ПС); - OIDАлгоритмовХеширования = СтрРазделить(ДанныеАлгоритмаПодписания.OIDАлгоритмаХеширования, Символы.ПС); - АлгоритмыПодписи = СтрРазделить(ДанныеАлгоритмаПодписания.АлгоритмПодписи, Символы.ПС); - АлгоритмыХеширования = СтрРазделить(ДанныеАлгоритмаПодписания.АлгоритмХеширования, Символы.ПС); - - ДанныеАлгоритмаПодписания.Вставить("OIDВыбранногоАлгоритмаПодписи", Неопределено); - ДанныеАлгоритмаПодписания.Вставить("OIDВыбранногоАлгоритмаХеширования", Неопределено); - ДанныеАлгоритмаПодписания.Вставить("ВыбранныйАлгоритмПодписи", Неопределено); - ДанныеАлгоритмаПодписания.Вставить("ВыбранныйАлгоритмХеширования", Неопределено); - Для Индекс = 0 По OIDАлгоритмовПодписи.Количество() - 1 Цикл - - Если OIDАлгоритмаПодписи = OIDАлгоритмовПодписи[Индекс] Тогда - - ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаПодписи = OIDАлгоритмовПодписи[Индекс]; - ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования = OIDАлгоритмовХеширования[Индекс]; - ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмПодписи = АлгоритмыПодписи[Индекс]; - ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмХеширования = АлгоритмыХеширования[Индекс]; - - Прервать; - - КонецЕсли; - - КонецЦикла; - - Если Не ЗначениеЗаполнено(ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаПодписи) Тогда - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Алгоритм подписи сертификата криптографии отличается от алгоритма %1.'"), - ДанныеАлгоритмаПодписания.ИмяАлгоритмаПодписи); - КонецЕсли; - -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // Вспомогательные процедуры и функции. @@ -2374,10 +2311,10 @@ Возврат Ложь; КонецЕсли; - МодульЭлектроннаяПодписьВМоделиСервисаКлиентСервер = - ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьВМоделиСервисаКлиентСервер"); + МодульЭлектроннаяПодписьВМоделиСервиса = + ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьВМоделиСервиса"); - Возврат МодульЭлектроннаяПодписьВМоделиСервисаКлиентСервер.ИспользованиеВозможно(); + Возврат МодульЭлектроннаяПодписьВМоделиСервиса.ИспользованиеВозможно(); КонецФункции @@ -2562,7 +2499,7 @@ // Возвращаемое значение: // Структура: // * Ключ - Строка - начало идентификатора программы, например, CryptoPro. -// * Значение - ФиксированноеСоответствие: +// * Значение - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - ТипПлатформы // * Значение - ФиксированныйМассив из Строка - пути // с именами модулей, разделенные символом двоеточие. diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Module.bsl index 2ecb436c8..becc960e4 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйВызовСервера/Module.bsl @@ -653,9 +653,9 @@ КонецПроцедуры // Возвращаемое значение: -// Массив Из Структура: -// * Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования -// * Представление - Строка +// Массив из Структура: +// * Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования +// * Представление - Строка // Функция ИспользуемыеПрограммы() Экспорт diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl index 65cb1322a..d17f6519a 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl @@ -31,7 +31,6 @@ КонецФункции - Процедура ПолучитьПутьКПрограмме(ОбработкаЗавершения, ПрограммаСсылка) Экспорт Результат = Новый Структура("ПутьКПрограмме, Существует", "", Ложь); @@ -111,7 +110,6 @@ КонецФункции - Процедура ПроверитьПутьКПрограмме(ОбработкаЗавершения, ПутьКПрограмме) Контекст = Новый Структура; @@ -180,7 +178,6 @@ КонецПроцедуры - Процедура ПолучитьПутьКПрограммеПоУмолчанию(ОбработкаЗавершения, ПрограммаСсылка) Экспорт Результат = Новый Структура("ПутьКПрограмме, Существует", "", Ложь); @@ -273,7 +270,6 @@ КонецПроцедуры - // Продолжение процедуры ДатаПодписания. Процедура ДатаПодписанияПослеЧтенияВБуферДвоичныхДанных(БуферДанныхПодписи, Контекст) Экспорт @@ -436,7 +432,7 @@ КонецПроцедуры // Возвращаемое значение: -// Структура: +// Структура: // * АдресСертификата - Строка // * ОткрытьДанные - см. ОткрытьСертификат.ОткрытьДанные // * ДанныеСертификата - см. ОткрытьСертификат.ДанныеСертификата @@ -567,7 +563,7 @@ КонецПроцедуры // Возвращаемое значение: -// Структура: +// Структура: // * АдресСертификата - Строка // * ИмяФайлаБезРасширения - Строка // * Сертификат - см. СохранитьСертификат.Сертификат @@ -632,8 +628,8 @@ // Продолжение процедуры СохранитьСертификат. // // Параметры: -// ПолученныеФайлы - Массив из ОписаниеПереданногоФайла -// Контекст - Структура +// ПолученныеФайлы - Массив из ОписаниеПереданногоФайла +// Контекст - Структура // Процедура СохранитьСертификатПослеПолученияФайлов(ПолученныеФайлы, Контекст) Экспорт @@ -676,8 +672,8 @@ // Продолжение процедуры СохранитьПодпись. // // Параметры: -// ПолученныеФайлы - Массив из ОписаниеПереданногоФайла -// Контекст - Структура +// ПолученныеФайлы - Массив из ОписаниеПереданногоФайла +// Контекст - Структура // Процедура СохранитьПодписьПослеПолученияФайла(ПолученныеФайлы, Контекст) Экспорт @@ -1244,7 +1240,7 @@ КонецПроцедуры // Возвращаемое значение: -// Структура: +// Структура: // * ОписаниеОшибкиНаСервере - Строка // * ОписаниеОшибкиНаКлиенте - Строка // * ПоказатьОшибку - см. ПроверитьСертификат.ПоказатьОшибку @@ -1289,11 +1285,37 @@ // Продолжение процедуры ПроверитьСертификат. Процедура ПроверитьСертификатНаКлиенте(Контекст) - Если ТипЗнч(Контекст.Сертификат) = Тип("СертификатКриптографии") Тогда - Контекст.Сертификат.НачатьВыгрузку(Новый ОписаниеОповещения( + СертификатДляПроверки = Контекст.Сертификат; + + Если ТипЗнч(СертификатДляПроверки) = Тип("Строка") Тогда + СертификатДляПроверки = ПолучитьИзВременногоХранилища(СертификатДляПроверки); + КонецЕсли; + Контекст.Вставить("СертификатДляПроверки", СертификатДляПроверки); + + Если ТипЗнч(СертификатДляПроверки) = Тип("ДвоичныеДанные") Тогда + СертификатКриптографии = Новый СертификатКриптографии; + СертификатКриптографии.НачатьИнициализацию(Новый ОписаниеОповещения( + "ПроверитьСертификатПослеИнициализацииСертификата", ЭтотОбъект, Контекст), + СертификатДляПроверки); + Иначе + ПроверитьСертификатПослеИнициализацииСертификата(СертификатДляПроверки, Контекст) + КонецЕсли; + +КонецПроцедуры + +// Продолжение процедуры ПроверитьСертификат. +Процедура ПроверитьСертификатПослеИнициализацииСертификата(СертификатКриптографии, Контекст) Экспорт + + Контекст.Вставить("СертификатКриптографии", СертификатКриптографии); + Контекст.Вставить("РежимыПроверкиСертификата", + ЭлектроннаяПодписьСлужебныйКлиентСервер.РежимыПроверкиСертификата( + ЗначениеЗаполнено(Контекст.НаДату))); + + Если ТипЗнч(Контекст.СертификатДляПроверки) = Тип("СертификатКриптографии") Тогда + Контекст.СертификатДляПроверки.НачатьВыгрузку(Новый ОписаниеОповещения( "ПроверитьСертификатПослеОпределенияАлгоритмаПодписания", ЭтотОбъект, Контекст)); Иначе - ПроверитьСертификатПослеОпределенияАлгоритмаПодписания(Контекст.Сертификат, Контекст); + ПроверитьСертификатПослеОпределенияАлгоритмаПодписания(Контекст.СертификатДляПроверки, Контекст); КонецЕсли; КонецПроцедуры @@ -1355,35 +1377,10 @@ Контекст.МенеджерКриптографии = Результат; - СертификатДляПроверки = Контекст.Сертификат; - - Если ТипЗнч(СертификатДляПроверки) = Тип("Строка") Тогда - СертификатДляПроверки = ПолучитьИзВременногоХранилища(СертификатДляПроверки); - КонецЕсли; - - Если ТипЗнч(СертификатДляПроверки) = Тип("ДвоичныеДанные") Тогда - СертификатКриптографии = Новый СертификатКриптографии; - СертификатКриптографии.НачатьИнициализацию(Новый ОписаниеОповещения( - "ПроверитьСертификатПослеИнициализацииСертификата", ЭтотОбъект, Контекст), - СертификатДляПроверки); - Иначе - ПроверитьСертификатПослеИнициализацииСертификата(СертификатДляПроверки, Контекст) - КонецЕсли; - -КонецПроцедуры - -// Продолжение процедуры ПроверитьСертификат. -Процедура ПроверитьСертификатПослеИнициализацииСертификата(СертификатКриптографии, Контекст) Экспорт - - РежимыПроверкиСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.РежимыПроверкиСертификата( - ЗначениеЗаполнено(Контекст.НаДату)); - - Контекст.Вставить("СертификатКриптографии", СертификатКриптографии); - Контекст.МенеджерКриптографии.НачатьПроверкуСертификата(Новый ОписаниеОповещения( "ПроверитьСертификатНаКлиентеПослеПроверки", ЭтотОбъект, Контекст, "ПроверитьСертификатНаКлиентеПослеОшибкиПроверки", ЭтотОбъект), - Контекст.СертификатКриптографии, РежимыПроверкиСертификата); + Контекст.СертификатКриптографии, Контекст.РежимыПроверкиСертификата); КонецПроцедуры @@ -1448,8 +1445,19 @@ КонецЕсли; МодульСервисКриптографииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииКлиент"); - МодульСервисКриптографииКлиент.ПроверитьСертификат(Новый ОписаниеОповещения( - "ПроверитьСертификатПослеПроверкиВМоделиСервиса", ЭтотОбъект, Контекст), ДанныеСертификата); + ПараметрыПроверки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПроверкиСертификатаВСервисе( + ЭлектроннаяПодписьКлиент.ОбщиеНастройки(), Контекст.РежимыПроверкиСертификата); + + Если ПараметрыПроверки <> Неопределено Тогда + // АПК:287-выкл - №640 - допустимо вызывать несуществующую процедуру БТС, + // так как проверяется версия БТС 2.0.3, начиная с которой процедура существует. + МодульСервисКриптографииКлиент.ПроверитьСертификатСПараметрами(Новый ОписаниеОповещения( + "ПроверитьСертификатПослеПроверкиВМоделиСервиса", ЭтотОбъект, Контекст), ДанныеСертификата, ПараметрыПроверки); + // АПК:287-вкл + Иначе + МодульСервисКриптографииКлиент.ПроверитьСертификат(Новый ОписаниеОповещения( + "ПроверитьСертификатПослеПроверкиВМоделиСервиса", ЭтотОбъект, Контекст), ДанныеСертификата); + КонецЕсли; КонецПроцедуры @@ -1469,6 +1477,15 @@ Возврат; КонецЕсли; + ОшибкаПросрочки = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатПросрочен( + Контекст.СертификатКриптографии, Контекст.НаДату, ДобавкаВремени()); + + Если ЗначениеЗаполнено(ОшибкаПросрочки) Тогда + Контекст.ОписаниеОшибкиНаСервере = ОшибкаПросрочки; + ПроверитьСертификатПослеНеуспешнойПроверки(Контекст); + Возврат; + КонецЕсли; + ВыполнитьОбработкуОповещения(Контекст.Оповещение, Истина); КонецПроцедуры @@ -1768,8 +1785,8 @@ // Продолжение процедуры СоздатьМенеджерКриптографии. // // Параметры: -// ИнформацияМодуля - ИнформацияМодуляКриптографии -// Контекст - Структура +// ИнформацияМодуля - ИнформацияМодуляКриптографии +// Контекст - Структура // Процедура СоздатьМенеджерКриптографииЦиклПослеПолученияИнформации(ИнформацияМодуля, Контекст) Экспорт @@ -1888,7 +1905,7 @@ // ПараметрыСоздания - Структура: // * ВЛичныйСписок - Булево - если не указано, значит Ложь. // Если Истина, то реквизит Пользователь будет заполнено текущим пользователем. -// * Организация - СправочникСсылка.Организации - значение по умолчанию. +// * Организация - ОпределяемыйТип.Организация - значение по умолчанию. // * СкрытьЗаявление - Булево - не предлагать создать заявление на выпуск сертификата. // * СоздатьЗаявление - Булево - сразу открыть форму создания заявления на выпуск сертификата. // @@ -2138,8 +2155,10 @@ ПараметрыФормы.Вставить("АдресДанныхСертификата", Адрес); ПараметрыФормы.Вставить("ЛичныйСписокПриДобавлении", Контекст.ВЛичныйСписок); ПараметрыФормы.Вставить("Организация", Контекст.Организация); + + ОбработчикЗавершения = ?(Контекст.Свойство("ОбработчикЗавершения"), Контекст.ОбработчикЗавершения, Неопределено); Форма = ОткрытьФорму("Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Форма.ДобавлениеСертификатаДляШифрования", - ПараметрыФормы, , , , , Контекст.ОбработчикЗавершения); + ПараметрыФормы, , , , , ОбработчикЗавершения); Если Форма = Неопределено Тогда ПоказатьПредупреждение(, @@ -2533,10 +2552,10 @@ // * ЗаголовокДанных - Строка - заголовок элемента данных, например Файл. // * ПоказатьКомментарий - Булево - (необязательный) - разрешает ввод комментария в форме // добавления подписей. Если не указан, значит Ложь. -// * Представление - Ссылка +// * Представление - ЛюбаяСсылка // - Строка - (необязательный), если не указан, тогда // представление вычисляется по значению свойства Объект. -// * Объект - Ссылка - ссылка на объект с табличной частью ЭлектронныеПодписи, +// * Объект - ЛюбаяСсылка - ссылка на объект с табличной частью ЭлектронныеПодписи, // из которой нужно получить список подписей. // * --// -- - Строка - адрес временного хранилища массива подписей с составом свойств, // как возвращает процедура ДобавитьПодписьИзФайла. @@ -2557,7 +2576,7 @@ // оповещения для метода НачатьЗапросРазрешенияПользователя. // Если разрешение не получено, значит все отменено. // -// ОбработкаРезультата - ОписаниеОповещения - необязательный параметр. +// ОбработкаРезультата - ОписаниеОповещения - // В результат передается параметр: // * Булево - Истина, если все прошло успешно. // @@ -2933,6 +2952,7 @@ ИначеЕсли РазрешенияПолучены Тогда ПараметрыСохранения = ФайловаяСистемаКлиент.ПараметрыСохраненияФайлов(); + ПараметрыСохранения.Интерактивно = Ложь; ПараметрыСохранения.Диалог.Каталог = Контекст.ПутьКФайлам; ФайловаяСистемаКлиент.СохранитьФайлы(Новый ОписаниеОповещения( "СохранитьДанныеВместеСПодписьюПослеПолученияФайлов", ЭтотОбъект, Контекст), @@ -3436,8 +3456,7 @@ // Только для внутреннего использования. Процедура ВыполнитьНаСтороне(Оповещение, Операция, СторонаВыполнения, ПараметрыВыполнения) Экспорт - Контекст = Новый Структура("ОписаниеДанных, Форма, ИдентификаторФормы, ЗначениеПароля, - |СертификатВерен, СертификатАдрес, ТекущийСписокПредставлений, ПолноеПредставлениеДанных"); + Контекст = ВыполнитьНаСторонеНовыйКонтекст(); ЗаполнитьЗначенияСвойств(Контекст, ПараметрыВыполнения); @@ -3614,6 +3633,11 @@ КонецПроцедуры // Продолжение процедуры ВыполнитьНаСтороне. +// +// Параметры: +// Результат - Число +// Контекст - см. ВыполнитьНаСторонеНовыйКонтекст +// Процедура ВыполнитьНаСторонеЦиклНачалоПродолжение(Результат, Контекст) Экспорт Контекст.Индекс = Контекст.Индекс + 1; @@ -3853,10 +3877,10 @@ // Продолжение процедуры ВыполнитьНаСтороне. // // Параметры: -// ДвоичныеДанные - Структура: -// * ИнформацияОбОшибке - Структура: -// ** Описание - Строка -// Контекст - Структура +// ДвоичныеДанные - Структура: +// * ИнформацияОбОшибке - Структура: +// ** Описание - Строка +// Контекст - Структура // Процедура ВыполнитьНаСторонеЦиклПослеОперацииНаКлиенте(ДвоичныеДанные, Контекст) Экспорт @@ -4084,6 +4108,35 @@ КонецПроцедуры +// Возвращаемое значение: +// Структура: +// * Оповещение - ОписаниеОповещения +// * Операция - Строка +// * НаСторонеКлиента - Булево +// * ОперацияНачалась - Булево +// * ОписаниеДанных - Структура +// * Форма - ФормаКлиентскогоПриложения +// * ИдентификаторФормы - УникальныйИдентификатор +// * ЗначениеПароля - Строка +// * СертификатВерен - Неопределено +// - Булево +// * СертификатАдрес - Строка +// * ТекущийСписокПредставлений - СписокЗначений +// - Массив +// * ПолноеПредставлениеДанных - Строка +// * МенеджерКриптографии - МенеджерКриптографии +// - Строка +// * СертификатКриптографии - СертификатКриптографии +// * Индекс - Число +// * СвойстваСертификатов - Структура +// * СертификатыШифрования - Массив +// +Функция ВыполнитьНаСторонеНовыйКонтекст() + + Возврат Новый Структура("ОписаниеДанных, Форма, ИдентификаторФормы, ЗначениеПароля, + |СертификатВерен, СертификатАдрес, ТекущийСписокПредставлений, ПолноеПредставлениеДанных"); + +КонецФункции // Только для внутреннего использования. Функция СвойстваТекущегоЭлементаДанных(ПараметрыВыполнения, СвойстваПодписи = Неопределено) Экспорт @@ -4433,8 +4486,8 @@ КонецПроцедуры // Параметры: -// ИнформацияМодуляКриптографии - ИнформацияМодуляКриптографии -// Контекст - Структура +// ИнформацияМодуляКриптографии - ИнформацияМодуляКриптографии +// Контекст - Структура // Процедура ПослеПолученияИнформацииМодуляКриптографии(ИнформацияМодуляКриптографии, Контекст) Экспорт @@ -4604,71 +4657,11 @@ Процедура НачатьПодписаниеXMLDSig(Контекст) - Попытка - ОписаниеОповещения = Новый ОписаниеОповещения( - "Подписание_ПослеВыполненияGetSignOIDFromCert", ЭтотОбъект, Контекст, - "Подписание_ПослеВыполненияGetSignOIDFromCert_Ошибка", ЭтотОбъект); - - Контекст.ОбъектКомпоненты.НачатьВызовGetSignOIDFromCert( - ОписаниеОповещения, - Контекст.СертификатКриптографииBase64); - Исключение - ЗавершитьОперациюСОшибкой( - Контекст, - НСтр("ru = 'Ошибка вызова метода GetSignOIDFromCert компоненты XMLDSig.'") + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; + ТекстОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверитьВыбратьАлгоритмПодписи( + Контекст.СертификатКриптографииBase64, Контекст.ДанныеАлгоритмаПодписания); -КонецПроцедуры - -Процедура Подписание_ПослеВыполненияGetSignOIDFromCert_Ошибка(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт - - СтандартнаяОбработка = Ложь; - - ЗавершитьОперациюСОшибкой( - Контекст, - НСтр("ru = 'Ошибка вызова метода GetSignOIDFromCert компоненты XMLDSig.'") + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); - -КонецПроцедуры - -Процедура Подписание_ПослеВыполненияGetSignOIDFromCert(OIDАлгоритмаПодписи, Параметры, Контекст) Экспорт - - Если OIDАлгоритмаПодписи = Неопределено Тогда - НачатьПолучениеТекстаОшибки(НСтр("ru = 'При выполнении метода GetSignOIDFromCert произошла ошибка:'"), Контекст); - Возврат; - КонецЕсли; - - OIDАлгоритмовПодписи = СтрРазделить(Контекст.ДанныеАлгоритмаПодписания.OIDАлгоритмаПодписи, Символы.ПС); - OIDАлгоритмовХеширования = СтрРазделить(Контекст.ДанныеАлгоритмаПодписания.OIDАлгоритмаХеширования, Символы.ПС); - АлгоритмыПодписи = СтрРазделить(Контекст.ДанныеАлгоритмаПодписания.АлгоритмПодписи, Символы.ПС); - АлгоритмыХеширования = СтрРазделить(Контекст.ДанныеАлгоритмаПодписания.АлгоритмХеширования, Символы.ПС); - - Контекст.ДанныеАлгоритмаПодписания.Вставить("OIDВыбранногоАлгоритмаПодписи", Неопределено); - Контекст.ДанныеАлгоритмаПодписания.Вставить("OIDВыбранногоАлгоритмаХеширования", Неопределено); - Контекст.ДанныеАлгоритмаПодписания.Вставить("ВыбранныйАлгоритмПодписи", Неопределено); - Контекст.ДанныеАлгоритмаПодписания.Вставить("ВыбранныйАлгоритмХеширования", Неопределено); - Для Индекс = 0 По OIDАлгоритмовПодписи.Количество() - 1 Цикл - - Если OIDАлгоритмаПодписи = OIDАлгоритмовПодписи[Индекс] Тогда - - Контекст.ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаПодписи = OIDАлгоритмовПодписи[Индекс]; - Контекст.ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования = OIDАлгоритмовХеширования[Индекс]; - Контекст.ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмПодписи = АлгоритмыПодписи[Индекс]; - Контекст.ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмХеширования = АлгоритмыХеширования[Индекс]; - - Прервать; - - КонецЕсли; - - КонецЦикла; - - Если Не ЗначениеЗаполнено(Контекст.ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаПодписи) Тогда - - ЗавершитьОперациюСОшибкой( - Контекст, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Алгоритм подписи сертификата криптографии отличается от алгоритма %1.'"), - Контекст.ДанныеАлгоритмаПодписания.ИмяАлгоритмаПодписи)); - + Если ЗначениеЗаполнено(ТекстОшибки) Тогда + ЗавершитьОперациюСОшибкой(Контекст, ТекстОшибки); Иначе Контекст.КонвертSOAP = СтрЗаменить(Контекст.КонвертSOAP, "%SignatureMethod%", Контекст.ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмПодписи); @@ -4825,54 +4818,11 @@ Процедура НачатьПроверкуПодписиXMLDSig(Контекст) - Попытка - ОписаниеОповещения = Новый ОписаниеОповещения( - "Проверка_ПослеВыполненияGetSignOIDFromCert", ЭтотОбъект, Контекст, - "Проверка_ПослеВыполненияGetSignOIDFromCert_Ошибка", ЭтотОбъект); - - Контекст.ОбъектКомпоненты.НачатьВызовGetSignOIDFromCert( - ОписаниеОповещения, - Контекст.СертификатКриптографииBase64); - Исключение - ЗавершитьОперациюСОшибкой(Контекст, - НСтр("ru = 'Ошибка вызова метода GetSignOIDFromCert компоненты XMLDSig.'") + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; + ТекстОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверитьВыбратьАлгоритмПодписи( + Контекст.СертификатКриптографииBase64, Контекст.ДанныеАлгоритмаПодписания); -КонецПроцедуры - -Процедура Проверка_ПослеВыполненияGetSignOIDFromCert_Ошибка(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт - - СтандартнаяОбработка = Ложь; - - ЗавершитьОперациюСОшибкой( - Контекст, - НСтр("ru = 'Ошибка вызова метода GetSignOIDFromCert компоненты XMLDSig.'") + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); - -КонецПроцедуры - -Процедура Проверка_ПослеВыполненияGetSignOIDFromCert(OIDАлгоритмаПодписи, Параметры, Контекст) Экспорт - - Если OIDАлгоритмаПодписи = Неопределено Тогда - НачатьПолучениеТекстаОшибки(НСтр("ru = 'При выполнении метода GetSignOIDFromCert произошла ошибка:'"), Контекст); - Возврат; - КонецЕсли; - - OIDАлгоритмовПодписи = СтрРазделить(Контекст.ДанныеАлгоритмаПодписания.OIDАлгоритмаПодписи, Символы.ПС); - OIDАлгоритмовХеширования = СтрРазделить(Контекст.ДанныеАлгоритмаПодписания.OIDАлгоритмаХеширования, Символы.ПС); - - Контекст.ДанныеАлгоритмаПодписания.Вставить("OIDВыбранногоАлгоритмаПодписи", Неопределено); - Контекст.ДанныеАлгоритмаПодписания.Вставить("OIDВыбранногоАлгоритмаХеширования", Неопределено); - Для Индекс = 0 По OIDАлгоритмовПодписи.Количество() - 1 Цикл - Если OIDАлгоритмаПодписи = OIDАлгоритмовПодписи[Индекс] Тогда - Контекст.ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаПодписи = OIDАлгоритмовПодписи[Индекс]; - Контекст.ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования = OIDАлгоритмовХеширования[Индекс]; - КонецЕсли; - КонецЦикла; - - Если Не ЗначениеЗаполнено(Контекст.ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаПодписи) Тогда - ЗавершитьОперациюСОшибкой( - Контекст, - НСтр("ru = 'Ошибка вызова метода Hash компоненты XMLDSig.'") + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + Если ЗначениеЗаполнено(ТекстОшибки) Тогда + ЗавершитьОперациюСОшибкой(Контекст, ТекстОшибки); Иначе Попытка @@ -5489,9 +5439,9 @@ // Продолжение процедуры ВыполнитьНаСтороне. // // Параметры: -// РезультатПоиска - Структура: -// * ОписаниеОшибки - ИнформацияОбОшибке -// Контекст - Структура +// РезультатПоиска - Структура: +// * ОписаниеОшибки - ИнформацияОбОшибке +// Контекст - Структура // Процедура ВыполнитьНаСторонеПослеВыгрузкиСертификатаВМоделиСервиса(РезультатПоиска, Контекст) Экспорт @@ -5867,7 +5817,7 @@ КонецФункции -Функция ДиагностическаяИнформацияОПрограммах(Оповещение) +Процедура ДиагностическаяИнформацияОПрограммах(Оповещение) ИспользуемыеПрограммы = ЭлектроннаяПодписьСлужебныйВызовСервера.ИспользуемыеПрограммы(); Если ИспользуемыеПрограммы.Количество() = 0 Тогда @@ -5883,9 +5833,9 @@ ИнформацияОПрограммахЦиклНачало(Контекст); -КонецФункции +КонецПроцедуры -Функция ИнформацияОПрограммахЦиклНачало(Контекст) +Процедура ИнформацияОПрограммахЦиклНачало(Контекст) ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии(); ПараметрыСоздания.ПоказатьОшибку = Неопределено; @@ -5897,15 +5847,15 @@ СоздатьМенеджерКриптографии(Оповещение, "", ПараметрыСоздания); -КонецФункции +КонецПроцедуры // Описание // // Параметры: -// МенеджерКриптографии - МенеджерКриптографии -// Контекст - Структура: -// * Индекс - Число +// МенеджерКриптографии - МенеджерКриптографии +// Контекст - Структура: +// * Индекс - Число // Процедура ИнформацияОПрограммахПослеСозданияМенеджераКриптографии(МенеджерКриптографии, Контекст) Экспорт diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Module.bsl index 409d06794..068316447 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиентСервер/Module.bsl @@ -63,7 +63,7 @@ // когда операция одна (не заполнен, когда операций несколько). // * Общая - Булево - если Истина, то одна ошибка общая для всех программ. // * ИмяКомпьютера - Строка - имя компьютера при выполнении операции на стороне сервера. -// * Ошибки - Массив Из см. НовыеСвойстваОшибки +// * Ошибки - Массив из см. НовыеСвойстваОшибки // Функция НовоеОписаниеОшибок(ИмяКомпьютера = "") Экспорт @@ -233,9 +233,9 @@ // Параметры: // ОписаниеПрограммы - Структура: // * Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования -// АлгоритмыПодписи - Массив Из Строка +// АлгоритмыПодписи - Массив из Строка // АлгоритмПодписи - Строка -// Ошибки - Массив Из см. НовыеСвойстваОшибки +// Ошибки - Массив из см. НовыеСвойстваОшибки // ЭтоСервер - Булево // ДобавлятьОшибку - Булево // @@ -427,7 +427,7 @@ // Только для внутреннего использования. // // Параметры: -// Ошибки - Массив Из см. НовыеСвойстваОшибки +// Ошибки - Массив из см. НовыеСвойстваОшибки // Программа - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования // Описание - Строка // КАдминистратору - Булево @@ -663,6 +663,30 @@ КонецФункции +// Только для внутреннего использования. +Функция ПараметрыПроверкиСертификатаВСервисе(ОбщиеНастройки, РежимыПроверкиСертификата) Экспорт + + Если Не ОбщиеНастройки.ДоступнаПроверкаСертификатаВОблачномСервисеСПараметрами Тогда + Возврат Неопределено; + КонецЕсли; + + Режимы = Новый Массив; + Для Каждого Режим Из РежимыПроверкиСертификата Цикл + Если Режим = РежимПроверкиСертификатаКриптографии.ИгнорироватьВремяДействия Тогда + Режимы.Добавить("ИгнорироватьВремяДействия"); + ИначеЕсли Режим = РежимПроверкиСертификатаКриптографии.ИгнорироватьДействительностьПодписи Тогда + Режимы.Добавить("ИгнорироватьДействительностьПодписи"); + ИначеЕсли Режим = РежимПроверкиСертификатаКриптографии.ИгнорироватьПроверкуВСпискеОтозванныхСертификатов Тогда + Режимы.Добавить("ИгнорироватьПроверкуВСпискеОтозванныхСертификатов"); + ИначеЕсли Режим = РежимПроверкиСертификатаКриптографии.РазрешитьТестовыеСертификаты Тогда + Режимы.Добавить("РазрешитьТестовыеСертификаты"); + КонецЕсли; + КонецЦикла; + + Возврат Новый Структура("РежимПроверкиСертификата", СтрСоединить(Режимы, ",")); + +КонецФункции + // Только для внутреннего использования. Функция СертификатПросрочен(Сертификат, НаДату, ДобавкаВремени) Экспорт @@ -1244,8 +1268,10 @@ ДанныеАлгоритмаПодписания = Новый Структура; - ДанныеАлгоритмаПодписания.Вставить("XPathSignedInfo", ""); - ДанныеАлгоритмаПодписания.Вставить("XPathПодписываемыйТег", ""); + ДанныеАлгоритмаПодписания.Вставить("XPathSignedInfo", "(//. | //@* | //namespace::*)[ancestor-or-self::*[local-name()='SignedInfo']]"); + ДанныеАлгоритмаПодписания.Вставить("XPathПодписываемыйТег", "(//. | //@* | //namespace::*)[ancestor-or-self::soap:Body]"); + + ДанныеАлгоритмаПодписания.Вставить("OIDАлгоритмаОткрытогоКлюча", ""); ДанныеАлгоритмаПодписания.Вставить("ИмяАлгоритмаПодписи", ""); ДанныеАлгоритмаПодписания.Вставить("OIDАлгоритмаПодписи", ""); @@ -1260,6 +1286,96 @@ КонецФункции +// Возвращаемое значение: +// см. НовыйНаборАлгоритмовДляСозданияПодписи +// Неопределено - если набор не найден. +// +Функция НаборАлгоритмовДляСозданияПодписи(ИдентификаторАлгоритмаОткрытогоКлюча) + + Наборы = НаборыАлгоритмовДляСозданияПодписи(); + Для Каждого Набор Из Наборы Цикл + Если Набор.ИдентификаторАлгоритмаОткрытогоКлюча = ИдентификаторАлгоритмаОткрытогоКлюча Тогда + Возврат Набор; + КонецЕсли; + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + +Функция ПроверитьВыбратьАлгоритмПодписи(СертификатКриптографииBase64, ДанныеАлгоритмаПодписания, ВызыватьИсключение = Ложь) Экспорт + + OIDАлгоритмаОткрытогоКлюча = АлгоритмПодписиСертификата( + Base64Значение(СертификатКриптографииBase64),, Истина); + + Если Не ЗначениеЗаполнено(OIDАлгоритмаОткрытогоКлюча) Тогда + ТекстОшибки = НСтр("ru = 'Не удалось получить алгоритм открытого ключа из сертификата.'"); + Если ВызыватьИсключение Тогда + ВызватьИсключение ТекстОшибки; + КонецЕсли; + Возврат ТекстОшибки; + КонецЕсли; + + ДанныеАлгоритмаПодписания.Вставить("OIDВыбранногоАлгоритмаПодписи", Неопределено); + ДанныеАлгоритмаПодписания.Вставить("OIDВыбранногоАлгоритмаХеширования", Неопределено); + ДанныеАлгоритмаПодписания.Вставить("ВыбранныйАлгоритмПодписи", Неопределено); + ДанныеАлгоритмаПодписания.Вставить("ВыбранныйАлгоритмХеширования", Неопределено); + + OIDАлгоритмовОткрытогоКлюча = СтрРазделить(ДанныеАлгоритмаПодписания.OIDАлгоритмаОткрытогоКлюча, Символы.ПС); + OIDАлгоритмовПодписи = СтрРазделить(ДанныеАлгоритмаПодписания.OIDАлгоритмаПодписи, Символы.ПС); + OIDАлгоритмовХеширования = СтрРазделить(ДанныеАлгоритмаПодписания.OIDАлгоритмаХеширования, Символы.ПС); + АлгоритмыПодписи = СтрРазделить(ДанныеАлгоритмаПодписания.АлгоритмПодписи, Символы.ПС); + АлгоритмыХеширования = СтрРазделить(ДанныеАлгоритмаПодписания.АлгоритмХеширования, Символы.ПС); + + АлгоритмыУказаны = Ложь; + Для Индекс = 0 По OIDАлгоритмовОткрытогоКлюча.Количество() - 1 Цикл + + Если OIDАлгоритмаОткрытогоКлюча = OIDАлгоритмовОткрытогоКлюча[Индекс] Тогда + + ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаПодписи = OIDАлгоритмовПодписи[Индекс]; + ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования = OIDАлгоритмовХеширования[Индекс]; + ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмПодписи = АлгоритмыПодписи[Индекс]; + ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмХеширования = АлгоритмыХеширования[Индекс]; + + АлгоритмыУказаны = Истина; + Прервать; + + КонецЕсли; + + КонецЦикла; + + Если Не АлгоритмыУказаны Тогда + НаборАлгоритмов = НаборАлгоритмовДляСозданияПодписи( + OIDАлгоритмаОткрытогоКлюча); + + Если НаборАлгоритмов <> Неопределено Тогда + ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаПодписи = НаборАлгоритмов.ИдентификаторАлгоритмаПодписи; + ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования = НаборАлгоритмов.ИдентификаторАлгоритмаХеширования; + ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмПодписи = НаборАлгоритмов.ИмяАлгоритмаПодписиXML; + ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмХеширования = НаборАлгоритмов.ИмяАлгоритмаХешированияXML; + КонецЕсли; + КонецЕсли; + + Если Не ЗначениеЗаполнено(ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаПодписи) + Или Не ЗначениеЗаполнено(ДанныеАлгоритмаПодписания.OIDВыбранногоАлгоритмаХеширования) + Или Не ЗначениеЗаполнено(ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмПодписи) + Или Не ЗначениеЗаполнено(ДанныеАлгоритмаПодписания.ВыбранныйАлгоритмХеширования) Тогда + + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не указаны алгоритмы подписания и хеширования для создания подписи, + |соответствующие алгоритму открытого ключа сертификата (OID %1).'"), + OIDАлгоритмаОткрытогоКлюча); + + Если ВызыватьИсключение Тогда + ВызватьИсключение ТекстОшибки; + КонецЕсли; + Возврат ТекстОшибки; + КонецЕсли; + + Возврат ""; + +КонецФункции + // См. ЭлектроннаяПодписьКлиент.ПараметрыCMS. Функция ПараметрыCMS() Экспорт @@ -1584,19 +1700,19 @@ #Область АлгоритмыПодписи -Функция АлгоритмСформированнойПодписи(ДанныеПодписи, ВключаяOID = Ложь) Экспорт +Функция АлгоритмСформированнойПодписи(ДанныеПодписи, ВключаяOID = Ложь, ТолькоOID = Ложь) Экспорт - Возврат АлгоритмПодписи(ДанныеПодписи, Ложь, ВключаяOID); + Возврат АлгоритмПодписи(ДанныеПодписи, Ложь, ВключаяOID, ТолькоOID); КонецФункции -Функция АлгоритмПодписиСертификата(ДанныеСертификата, ВключаяOID = Ложь) Экспорт +Функция АлгоритмПодписиСертификата(ДанныеСертификата, ВключаяOID = Ложь, ТолькоOID = Ложь) Экспорт - Возврат АлгоритмПодписи(ДанныеСертификата, Истина, ВключаяOID); + Возврат АлгоритмПодписи(ДанныеСертификата, Истина, ВключаяOID, ТолькоOID); КонецФункции -Функция АлгоритмПодписи(Данные, ЭтоДанныеСертификата, ВключаяOID = Ложь) +Функция АлгоритмПодписи(Данные, ЭтоДанныеСертификата, ВключаяOID = Ложь, ТолькоOID = Ложь) ДвоичныеДанные = ДвоичныеДанныеИзДанных(Данные, "ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписи"); @@ -1671,6 +1787,10 @@ Возврат ""; КонецЕсли; + Если ТолькоOID Тогда + Возврат OIDАлгоритмаПодписи; + КонецЕсли; + ИдентификаторыАлгоритмов = ИдентификаторыАлгоритмовПодписи(ЭтоДанныеСертификата); Алгоритм = АлгоритмПоOID(OIDАлгоритмаПодписи, ИдентификаторыАлгоритмов, ВключаяOID); @@ -1773,7 +1893,7 @@ // * ЭтоОшибкаКодированияASN1 - Булево // * ЭтоОшибкаСтруктурыДанных - Булево // * Смещение - Число -// * Родители - Массив Из Структура +// * Родители - Массив из Структура // * Буфер - БуферДвоичныхДанных // Функция НовыйАнализДанных(ДвоичныеДанные) @@ -2184,34 +2304,167 @@ ИдентификаторыАлгоритмов = Новый Соответствие; - ИдентификаторыАлгоритмов.Вставить("1.2.643.2.2.20", ИменаАлгоритмовПодписиГОСТ_34_10_94()); - ИдентификаторыАлгоритмов.Вставить("1.2.643.2.2.19", ИменаАлгоритмовПодписиГОСТ_34_10_2001()); - ИдентификаторыАлгоритмов.Вставить("1.2.643.7.1.1.1.1", ИменаАлгоритмовПодписиГОСТ_34_10_2012_256()); - ИдентификаторыАлгоритмов.Вставить("1.2.643.7.1.1.1.2", ИменаАлгоритмовПодписиГОСТ_34_10_2012_512()); - ИдентификаторыАлгоритмов.Вставить("1.2.840.113549.1.1.1", "RSA_SIGN"); // RSAEncryption. - - Если Не ТолькоАлгоритмыОткрытогоКлюча Тогда - ИдентификаторыАлгоритмов.Вставить("1.2.643.2.2.4", ИменаАлгоритмовПодписиГОСТ_34_10_94()); - ИдентификаторыАлгоритмов.Вставить("1.2.643.2.2.3", ИменаАлгоритмовПодписиГОСТ_34_10_2001()); - ИдентификаторыАлгоритмов.Вставить("1.2.643.7.1.1.3.2", ИменаАлгоритмовПодписиГОСТ_34_10_2012_256()); - ИдентификаторыАлгоритмов.Вставить("1.2.643.7.1.1.3.3", ИменаАлгоритмовПодписиГОСТ_34_10_2012_512()); - ИдентификаторыАлгоритмов.Вставить("1.2.840.113549.1.1.2", "RSA_SIGN"); // md2WithRSAEncryption. - ИдентификаторыАлгоритмов.Вставить("1.2.840.113549.1.1.3", "RSA_SIGN"); // md4withRSAEncryption. - ИдентификаторыАлгоритмов.Вставить("1.2.840.113549.1.1.4", "RSA_SIGN"); // md5WithRSAEncryption. - ИдентификаторыАлгоритмов.Вставить("1.2.840.113549.1.1.5", "RSA_SIGN"); // sha1WithRSAEncryption. - КонецЕсли; + Наборы = НаборыАлгоритмовДляСозданияПодписи(); + Для Каждого Набор Из Наборы Цикл + ИдентификаторыАлгоритмов.Вставить(Набор.ИдентификаторАлгоритмаОткрытогоКлюча, + СтрСоединить(Набор.ИменаАлгоритмаПодписи, ", ")); + Если ТолькоАлгоритмыОткрытогоКлюча Тогда + Продолжить; + КонецЕсли; + ИдентификаторыАлгоритмов.Вставить(Набор.ИдентификаторАлгоритмаПодписи, + СтрСоединить(Набор.ИменаАлгоритмаПодписи, ", ")); + КонецЦикла; Возврат ИдентификаторыАлгоритмов; КонецФункции +Функция ИдентификаторыАлгоритмовХеширования() + + ИдентификаторыАлгоритмов = Новый Соответствие; + + Наборы = НаборыАлгоритмовДляСозданияПодписи(); + Для Каждого Набор Из Наборы Цикл + ИдентификаторыАлгоритмов.Вставить(Набор.ИдентификаторАлгоритмаХеширования, + СтрСоединить(Набор.ИменаАлгоритмаХеширования, ", ")); + КонецЦикла; + + Возврат ИдентификаторыАлгоритмов; + +КонецФункции + + +// Возвращаемое значение: +// Массив из см. НовыйНаборАлгоритмовДляСозданияПодписи +// +Функция НаборыАлгоритмовДляСозданияПодписи() + + Наборы = Новый Массив; + + // ГОСТ 94 + Свойства = НовыйНаборАлгоритмовДляСозданияПодписи(); + Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.643.2.2.20"; + Свойства.ИдентификаторАлгоритмаПодписи = "1.2.643.2.2.4"; + Свойства.ИменаАлгоритмаПодписи = ИменаАлгоритмовПодписиГОСТ_34_10_94(); + Свойства.ИдентификаторАлгоритмаХеширования = "1.2.643.2.2.9"; + Свойства.ИменаАлгоритмаХеширования = ИменаАлгоритмовХешированияГОСТ_34_11_94(); + Свойства.ИмяАлгоритмаПодписиXML = "http://www.w3.org/2001/04/xmldsig-more#gostr341094-gostr3411"; + Свойства.ИмяАлгоритмаХешированияXML = "http://www.w3.org/2001/04/xmldsig-more#gostr3411"; + Наборы.Добавить(Свойства); + + // ГОСТ 2001 + Свойства = НовыйНаборАлгоритмовДляСозданияПодписи(); + Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.643.2.2.19"; + Свойства.ИдентификаторАлгоритмаПодписи = "1.2.643.2.2.3"; + Свойства.ИменаАлгоритмаПодписи = ИменаАлгоритмовПодписиГОСТ_34_10_2001(); + Свойства.ИдентификаторАлгоритмаХеширования = "1.2.643.2.2.9"; + Свойства.ИменаАлгоритмаХеширования = ИменаАлгоритмовХешированияГОСТ_34_11_94(); + Свойства.ИмяАлгоритмаПодписиXML = "http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"; + Свойства.ИмяАлгоритмаХешированияXML = "http://www.w3.org/2001/04/xmldsig-more#gostr3411"; + Наборы.Добавить(Свойства); + + // ГОСТ 2012/256 + Свойства = НовыйНаборАлгоритмовДляСозданияПодписи(); + Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.643.7.1.1.1.1"; + Свойства.ИдентификаторАлгоритмаПодписи = "1.2.643.7.1.1.3.2"; + Свойства.ИменаАлгоритмаПодписи = ИменаАлгоритмовПодписиГОСТ_34_10_2012_256(); + Свойства.ИдентификаторАлгоритмаХеширования = "1.2.643.7.1.1.2.2"; + Свойства.ИменаАлгоритмаХеширования = ИменаАлгоритмовХешированияГОСТ_34_11_2012_256(); + Свойства.ИмяАлгоритмаПодписиXML = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"; + Свойства.ИмяАлгоритмаХешированияXML = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"; + Наборы.Добавить(Свойства); + + // ГОСТ 2012/512 + Свойства = НовыйНаборАлгоритмовДляСозданияПодписи(); + Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.643.7.1.1.1.2"; + Свойства.ИдентификаторАлгоритмаПодписи = "1.2.643.7.1.1.3.3"; + Свойства.ИменаАлгоритмаПодписи = ИменаАлгоритмовПодписиГОСТ_34_10_2012_512(); + Свойства.ИдентификаторАлгоритмаХеширования = "1.2.643.7.1.1.2.3"; + Свойства.ИменаАлгоритмаХеширования = ИменаАлгоритмовХешированияГОСТ_34_11_2012_512(); + Свойства.ИмяАлгоритмаПодписиXML = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512"; + Свойства.ИмяАлгоритмаХешированияXML = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512"; + Наборы.Добавить(Свойства); + + // md2WithRSAEncryption + Свойства = НовыйНаборАлгоритмовДляСозданияПодписи(); + Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.840.113549.1.1.1"; + Свойства.ИдентификаторАлгоритмаПодписи = "1.2.840.113549.1.1.2"; + Свойства.ИменаАлгоритмаПодписи = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("RSA_SIGN"); + Свойства.ИдентификаторАлгоритмаХеширования = "1.2.840.113549.2.2"; + Свойства.ИменаАлгоритмаХеширования = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("MD2"); + Свойства.ИмяАлгоритмаПодписиXML = ""; + Свойства.ИмяАлгоритмаХешированияXML = ""; + Наборы.Добавить(Свойства); + + // md4withRSAEncryption + Свойства = НовыйНаборАлгоритмовДляСозданияПодписи(); + Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.840.113549.1.1.1"; + Свойства.ИдентификаторАлгоритмаПодписи = "1.2.840.113549.1.1.3"; + Свойства.ИменаАлгоритмаПодписи = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("RSA_SIGN"); + Свойства.ИдентификаторАлгоритмаХеширования = "1.2.840.113549.2.4"; + Свойства.ИменаАлгоритмаХеширования = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("MD4"); + Свойства.ИмяАлгоритмаПодписиXML = ""; + Свойства.ИмяАлгоритмаХешированияXML = ""; + Наборы.Добавить(Свойства); + + // md5WithRSAEncryption + Свойства = НовыйНаборАлгоритмовДляСозданияПодписи(); + Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.840.113549.1.1.1"; + Свойства.ИдентификаторАлгоритмаПодписи = "1.2.840.113549.1.1.4"; + Свойства.ИменаАлгоритмаПодписи = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("RSA_SIGN"); + Свойства.ИдентификаторАлгоритмаХеширования = "1.2.840.113549.2.5"; + Свойства.ИменаАлгоритмаХеширования = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("MD5"); + Свойства.ИмяАлгоритмаПодписиXML = ""; + Свойства.ИмяАлгоритмаХешированияXML = ""; + Наборы.Добавить(Свойства); + + // sha1WithRSAEncryption + Свойства = НовыйНаборАлгоритмовДляСозданияПодписи(); + Свойства.ИдентификаторАлгоритмаОткрытогоКлюча = "1.2.840.113549.1.1.1"; + Свойства.ИдентификаторАлгоритмаПодписи = "1.2.840.113549.1.1.5"; + Свойства.ИменаАлгоритмаПодписи = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("RSA_SIGN"); + Свойства.ИдентификаторАлгоритмаХеширования = "1.3.14.3.2.26"; + Свойства.ИменаАлгоритмаХеширования = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("SHA-1"); + Свойства.ИмяАлгоритмаПодписиXML = ""; + Свойства.ИмяАлгоритмаХешированияXML = ""; + Наборы.Добавить(Свойства); + + Возврат Наборы; + +КонецФункции + +// Возвращаемое значение: +// Структура: +// * ИдентификаторАлгоритмаОткрытогоКлюча - Строка +// * ИдентификаторАлгоритмаПодписи - Строка +// * ИменаАлгоритмаПодписи - Массив из Строка +// * ИдентификаторАлгоритмаХеширования - Строка +// * ИменаАлгоритмаХеширования - Массив из Строка +// * ИмяАлгоритмаПодписиXML - Строка +// * ИмяАлгоритмаХешированияXML - Строка +// +Функция НовыйНаборАлгоритмовДляСозданияПодписи() + + Свойства = Новый Структура; + Свойства.Вставить("ИдентификаторАлгоритмаОткрытогоКлюча", ""); + Свойства.Вставить("ИдентификаторАлгоритмаПодписи", ""); + Свойства.Вставить("ИменаАлгоритмаПодписи", Новый Массив); + Свойства.Вставить("ИдентификаторАлгоритмаХеширования", ""); + Свойства.Вставить("ИменаАлгоритмаХеширования", Новый Массив); + Свойства.Вставить("ИмяАлгоритмаПодписиXML", ""); + Свойства.Вставить("ИмяАлгоритмаХешированияXML", ""); + + Возврат Свойства; + +КонецФункции + Функция ИменаАлгоритмовПодписиГОСТ_34_10_94() Имена = Новый Массив; Имена.Добавить("ГОСТ 34.10-94"); // Представление. Имена.Добавить("GOST R 34.10-94"); - Возврат СтрСоединить(Имена, ", "); + Возврат Имена; КонецФункции @@ -2222,7 +2475,7 @@ Имена.Добавить("GOST R 34.10-2001"); Имена.Добавить("ECR3410-CP"); - Возврат СтрСоединить(Имена, ", "); + Возврат Имена; КонецФункции @@ -2235,7 +2488,7 @@ Имена.Добавить("GOST R 34.10-12 256"); Имена.Добавить("GOST3410-12-256"); - Возврат СтрСоединить(Имена, ", "); + Возврат Имена; КонецФункции @@ -2246,24 +2499,7 @@ Имена.Добавить("GR 34.10-2012 512"); Имена.Добавить("GOST 34.10-2012 512"); - Возврат СтрСоединить(Имена, ", "); - -КонецФункции - - -Функция ИдентификаторыАлгоритмовХеширования() - - ИдентификаторыАлгоритмов = Новый Соответствие; - - ИдентификаторыАлгоритмов.Вставить("1.2.643.2.2.9", ИменаАлгоритмовХешированияГОСТ_34_11_94()); - ИдентификаторыАлгоритмов.Вставить("1.2.643.7.1.1.2.2", ИменаАлгоритмовХешированияГОСТ_34_11_2012_256()); - ИдентификаторыАлгоритмов.Вставить("1.2.643.7.1.1.2.3", ИменаАлгоритмовХешированияГОСТ_34_11_2012_512()); - ИдентификаторыАлгоритмов.Вставить("1.2.840.113549.2.2", "MD2"); - ИдентификаторыАлгоритмов.Вставить("1.2.840.113549.2.4", "MD4"); - ИдентификаторыАлгоритмов.Вставить("1.2.840.113549.2.5", "MD5"); - ИдентификаторыАлгоритмов.Вставить("1.3.14.3.2.26", "SHA-1"); - - Возврат ИдентификаторыАлгоритмов; + Возврат Имена; КонецФункции @@ -2274,7 +2510,7 @@ Имена.Добавить("GOST R 34.11-94"); Имена.Добавить("RUS-HASH-CP"); - Возврат СтрСоединить(Имена, ", "); + Возврат Имена; КонецФункции @@ -2287,7 +2523,7 @@ Имена.Добавить("GOST R 34.11-12 256"); Имена.Добавить("GOST3411-12-256"); - Возврат СтрСоединить(Имена, ", "); + Возврат Имена; КонецФункции @@ -2298,7 +2534,7 @@ Имена.Добавить("GR 34.11-2012 512"); Имена.Добавить("GOST 34.11-2012 512"); - Возврат СтрСоединить(Имена, ", "); + Возврат Имена; КонецФункции diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйПовтИсп/Module.bsl index d31d144b6..2a79b4fa6 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйПовтИсп/Module.bsl @@ -18,7 +18,7 @@ // * СоздаватьЭлектронныеПодписиНаСервере - Булево // * ЗаявлениеНаВыпускСертификатаДоступно - Булево // * ОписанияПрограмм - ФиксированныйМассив из см. ОписаниеПрограммы -// * ОписанияПрограммПоСсылке - ФиксированноеСоответствие: +// * ОписанияПрограммПоСсылке - ФиксированноеСоответствие из КлючИЗначение: // ** Ключ - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования // ** Значение - см. ОписаниеПрограммы // @@ -51,8 +51,8 @@ ОбщиеНастройки.Вставить("ЗаявлениеНаВыпускСертификатаДоступно", Метаданные.Обработки.Найти("ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата") <> Неопределено); Если ОбщиеНастройки.ЗаявлениеНаВыпускСертификатаДоступно Тогда - Заявление = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата"); - ОбщиеНастройки.ЗаявлениеНаВыпускСертификатаДоступно = Заявление.ЗаявлениеНаВыпускСертификатаДоступно(); + МодульЗаявлениеНаВыпускНовогоКвалифицированногоСертификата = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата"); + ОбщиеНастройки.ЗаявлениеНаВыпускСертификатаДоступно = МодульЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ЗаявлениеНаВыпускСертификатаДоступно(); КонецЕсли; Запрос = Новый Запрос; @@ -115,6 +115,9 @@ ОбщиеНастройки.Вставить("ВерсияНастроек", Строка(Новый УникальныйИдентификатор)); + ОбщиеНастройки.Вставить("ДоступнаПроверкаСертификатаВОблачномСервисеСПараметрами", + ДоступнаПроверкаСертификатаВОблачномСервисеСПараметрами()); + Возврат Новый ФиксированнаяСтруктура(ОбщиеНастройки); КонецФункции @@ -283,4 +286,17 @@ КонецФункции +Функция ДоступнаПроверкаСертификатаВОблачномСервисеСПараметрами() + + Если Не ЭлектроннаяПодписьСлужебный.ИспользоватьЭлектроннуюПодписьВМоделиСервиса() Тогда + Возврат Ложь; + КонецЕсли; + + МодульТехнологияСервиса = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервиса"); + Версия = МодульТехнологияСервиса.ВерсияБиблиотеки(); + + Возврат ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Версия, "2.0.3.0") > 0; + +КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonModules/ЯндексПереводчик/Module.bsl b/SSL/src/CommonModules/ЯндексПереводчик/Module.bsl new file mode 100644 index 000000000..526f24980 --- /dev/null +++ b/SSL/src/CommonModules/ЯндексПереводчик/Module.bsl @@ -0,0 +1,282 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныеПроцедурыИФункции + +Функция ПеревестиТекст(Текст, ЯзыкПеревода = Неопределено, ИсходныйЯзык = Неопределено) Экспорт + + Если Не ЗначениеЗаполнено(Текст) Тогда + Возврат Текст; + КонецЕсли; + + Возврат ПеревестиТексты(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Текст), ЯзыкПеревода, ИсходныйЯзык)[Текст]; + +КонецФункции + +Функция ПеревестиТексты(Тексты, ЯзыкПеревода = Неопределено, ИсходныйЯзык = Неопределено) Экспорт + + ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("ПеревестиТексты", "Тексты", Тексты, Тип("Массив")); + + Если Не ЗначениеЗаполнено(ЯзыкПеревода) Тогда + ЯзыкПеревода = ОбщегоНазначения.КодОсновногоЯзыка(); + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + НастройкиАвторизации = НастройкиАвторизации(); + УстановитьПривилегированныйРежим(Ложь); + + ИмяХоста = "translate.api.cloud.yandex.net"; + + HTTPЗапрос = Новый HTTPЗапрос("/translate/v2/translate"); + HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json"); + HTTPЗапрос.Заголовки.Вставить("Authorization", "Bearer" + " " + IAMТокен()); + + ПараметрыЗапроса = Новый Структура; + ПараметрыЗапроса.Вставить("folder_id", НастройкиАвторизации.ИдентификаторКаталога); + ПараметрыЗапроса.Вставить("texts", Тексты); + ПараметрыЗапроса.Вставить("targetLanguageCode", ЯзыкПеревода); + + Если ЗначениеЗаполнено(ИсходныйЯзык) Тогда + ПараметрыЗапроса.Вставить("sourceLanguageCode", ИсходныйЯзык); + КонецЕсли; + + HTTPЗапрос.УстановитьТелоИзСтроки(ЗначениеВJSON(ПараметрыЗапроса)); + РезультатЗапроса = ВыполнитьЗапрос(HTTPЗапрос, ИмяХоста); + + Если Не РезультатЗапроса.ЗапросВыполнен Тогда + ВызватьИсключение ТекстОшибки(НСтр("ru = 'Не удалось выполнить перевод текста.'")); + КонецЕсли; + + ОтветСервера = JSONВЗначение(РезультатЗапроса.ОтветСервера); + + Результат = Новый Соответствие; + Для Индекс = 0 По Тексты.ВГраница() Цикл + Перевод = ОтветСервера["translations"][Индекс]; + Результат.Вставить(Тексты[Индекс], Перевод["text"]); + Если Не ЗначениеЗаполнено(ИсходныйЯзык) Тогда + ИсходныйЯзык = Перевод["detectedLanguageCode"]; + КонецЕсли; + КонецЦикла; + + Возврат Результат; + +КонецФункции + +Функция МаксимальныйРазмерПорции() Экспорт + + Возврат 10000; + +КонецФункции + +Функция IAMТокен() + + ПараметрыТокена = Новый Структура("IAMТокен,СрокДействия"); + + УстановитьПривилегированныйРежим(Истина); + ЗаполнитьЗначенияСвойств(ПараметрыТокена, НастройкиАвторизации()); + УстановитьПривилегированныйРежим(Ложь); + + Если Не ЗначениеЗаполнено(ПараметрыТокена.IAMТокен) + Или Не ЗначениеЗаполнено(ПараметрыТокена.СрокДействия) Или ПараметрыТокена.СрокДействия <= УниверсальноеВремя(ТекущаяДата()) Тогда // АПК:143 + ПараметрыТокена = НовыйIAMТокен(); + УстановитьПривилегированныйРежим(Истина); + Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Константа.СервисПереводаТекста"); + ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, ПараметрыТокена.IAMТокен, "IAMТокен"); + ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, ПараметрыТокена.СрокДействия, "СрокДействия"); + УстановитьПривилегированныйРежим(Ложь); + КонецЕсли; + + Возврат ПараметрыТокена.IAMТокен; + +КонецФункции + +Функция НовыйIAMТокен() + + ИмяХоста = "iam.api.cloud.yandex.net"; + + HTTPЗапрос = Новый HTTPЗапрос("/iam/v1/tokens"); + HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json"); + + ПараметрыЗапроса = Новый Структура; + + УстановитьПривилегированныйРежим(Истина); + ПараметрыЗапроса.Вставить("yandexPassportOauthToken", НастройкиАвторизации().OAuthТокен); + УстановитьПривилегированныйРежим(Ложь); + + HTTPЗапрос.УстановитьТелоИзСтроки(ЗначениеВJSON(ПараметрыЗапроса)); + + РезультатЗапроса = ВыполнитьЗапрос(HTTPЗапрос, ИмяХоста); + + Если Не РезультатЗапроса.ЗапросВыполнен Тогда + ВызватьИсключение ТекстОшибки(НСтр("ru = 'Не удалось авторизоваться в сервисе Яндекс.Переводчик.'")); + КонецЕсли; + + НастройкаАвторизации = JSONВЗначение(РезультатЗапроса.ОтветСервера, "expiresAt"); + IAMТокен = НастройкаАвторизации["iamToken"]; + СрокДействия = НастройкаАвторизации["expiresAt"]; + + Результат = Новый Структура; + Результат.Вставить("IAMТокен", IAMТокен); + Результат.Вставить("СрокДействия", СрокДействия); + + Возврат Результат; + +КонецФункции + +Функция ДоступныеЯзыки() Экспорт + + ИмяХоста = "translate.api.cloud.yandex.net"; + + HTTPЗапрос = Новый HTTPЗапрос("/translate/v2/languages"); + HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json"); + HTTPЗапрос.Заголовки.Вставить("Authorization", "Bearer" + " " + IAMТокен()); + + + ПараметрыЗапроса = Новый Структура; + + УстановитьПривилегированныйРежим(Истина); + ПараметрыЗапроса.Вставить("folder_id", НастройкиАвторизации().ИдентификаторКаталога); + УстановитьПривилегированныйРежим(Ложь); + + HTTPЗапрос.УстановитьТелоИзСтроки(ЗначениеВJSON(ПараметрыЗапроса)); + + РезультатЗапроса = ВыполнитьЗапрос(HTTPЗапрос, ИмяХоста); + + Если Не РезультатЗапроса.ЗапросВыполнен Тогда + ВызватьИсключение ТекстОшибки(НСтр("ru = 'Не удалось получить список доступных языков.'")); + КонецЕсли; + + Результат = Новый Массив; + ДоступныеЯзыки = JSONВЗначение(РезультатЗапроса.ОтветСервера); + Для Каждого Язык Из ДоступныеЯзыки["languages"] Цикл + КодЯзыка = Язык["code"]; + Если ЗначениеЗаполнено(КодЯзыка) Тогда + Результат.Добавить(КодЯзыка); + КонецЕсли; + КонецЦикла; + + Возврат Результат; + +КонецФункции + +Функция ВыполнитьЗапрос(Знач HTTPЗапрос, Знач ИмяХоста) + + Прокси = ПолучениеФайловИзИнтернета.ПолучитьПрокси("https"); + ЗащищенноеСоединение = ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение(); + + Попытка + Соединение = Новый HTTPСоединение(ИмяХоста, , , , Прокси, 60, ЗащищенноеСоединение); + HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос); + Исключение + ЗаписатьОшибкуВЖурналРегистрации(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось установить соединение с сервером %1 по причине: + |%2'"), ИмяХоста, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); + ВызватьИсключение; + КонецПопытки; + + Результат = Новый Структура; + Результат.Вставить("ЗапросВыполнен", Ложь); + Результат.Вставить("ОтветСервера", ""); + + Если HTTPОтвет.КодСостояния <> 200 Тогда + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Запрос ""%1"" не выполнен. Код состояния: %2.'"), HTTPЗапрос.АдресРесурса, HTTPОтвет.КодСостояния) + Символы.ПС + + HTTPОтвет.ПолучитьТелоКакСтроку(); + ЗаписатьОшибкуВЖурналРегистрации(ТекстОшибки); + КонецЕсли; + + Если HTTPОтвет.КодСостояния = 401 + Или HTTPОтвет.КодСостояния = 403 Тогда + ИнформацияОбОшибке = JSONВЗначение(HTTPОтвет.ПолучитьТелоКакСтроку()); + ВызватьИсключение ИнформацияОбОшибке["message"]; + КонецЕсли; + + Результат.ЗапросВыполнен = HTTPОтвет.КодСостояния = 200; + Результат.ОтветСервера = HTTPОтвет.ПолучитьТелоКакСтроку(); + + Возврат Результат; + +КонецФункции + +Функция НастройкиАвторизации() Экспорт + + ИменаПараметров = "OAuthТокен,ИдентификаторКаталога,IAMТокен,СрокДействия"; + Результат = Новый Структура(ИменаПараметров); + + Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Константа.СервисПереводаТекста"); + Настройки = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Владелец, ИменаПараметров); + Если ЗначениеЗаполнено(Настройки) Тогда + ЗаполнитьЗначенияСвойств(Результат, Настройки); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Параметры: +// Настройки - см. ПереводТекстаНаДругиеЯзыки.НастройкиСервисаПереводаТекста +// +Процедура ПриОпределенииНастроек(Настройки) Экспорт + + Настройки.ИнструкцияПоПодключению = СтроковыеФункции.ФорматированнаяСтрока(НСтр( + "ru = 'Как настроить: + |1. Подключите сервис Yandex.Cloud и активируйте платежный аккаунт. + |2. Перейдите на страницу Яндекс OAuth и скопируйте строку из букв и цифр в поле OAuth-токен. + |3. Перейдите в консоль управления Yandex Cloud, в списке Ваши ресурсы справа от каталога default скопируйте строку из букв и цифр и вставьте в поле Идентификатор каталога.'")); + + Параметр = Настройки.ПараметрыАвторизации.Добавить(); + Параметр.Имя = "OAuthТокен"; + Параметр.Представление = НСтр("ru = 'OAuth-токен'"); + Параметр.ОтображениеПодсказки = ОтображениеПодсказки.ОтображатьСверху; + + Параметр = Настройки.ПараметрыАвторизации.Добавить(); + Параметр.Имя = "ИдентификаторКаталога"; + Параметр.Представление = НСтр("ru = 'Идентификатор каталога'"); + Параметр.ОтображениеПодсказки = ОтображениеПодсказки.ОтображатьСверху; + +КонецПроцедуры + +Функция НастройкаВыполнена() Экспорт + + УстановитьПривилегированныйРежим(Истина); + НастройкиАвторизации = НастройкиАвторизации(); + Возврат ЗначениеЗаполнено(НастройкиАвторизации.OAuthТокен) И ЗначениеЗаполнено(НастройкиАвторизации.ИдентификаторКаталога); + +КонецФункции + +Функция ЗначениеВJSON(Значение) + ЗаписьJSON = Новый ЗаписьJSON; + ЗаписьJSON.УстановитьСтроку(); + ЗаписатьJSON(ЗаписьJSON, Значение); + Возврат ЗаписьJSON.Закрыть(); +КонецФункции + +Функция JSONВЗначение(Строка, ИменаСвойствСоЗначениямиДата = Неопределено) + ЧтениеJSON = Новый ЧтениеJSON; + ЧтениеJSON.УстановитьСтроку(Строка); + Возврат ПрочитатьJSON(ЧтениеJSON, Истина, ИменаСвойствСоЗначениямиДата); +КонецФункции + +Процедура ЗаписатьОшибкуВЖурналРегистрации(Комментарий) + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Перевод текста'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, , Перечисления.СервисыПереводаТекста.ЯндексПереводчик, Комментарий); + +КонецПроцедуры + +Функция ТекстОшибки(ТекстОшибки) + + Если Пользователи.ЭтоПолноправныйПользователь() Тогда + Возврат ТекстОшибки + Символы.ПС + НСтр("ru = 'Подробности см. в журнале регистрации.'"); + КонецЕсли; + + Возврат ТекстОшибки + Символы.ПС + НСтр("ru = 'Обратитесь к администратору.'"); + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/ЯндексПереводчик/ЯндексПереводчик.mdo b/SSL/src/CommonModules/ЯндексПереводчик/ЯндексПереводчик.mdo new file mode 100644 index 000000000..0b9d96204 --- /dev/null +++ b/SSL/src/CommonModules/ЯндексПереводчик/ЯндексПереводчик.mdo @@ -0,0 +1,11 @@ + + + ЯндексПереводчик + + ru + Яндекс переводчик + + true + true + true + diff --git a/SSL/src/CommonPictures/ВидыСравнения/Picture.zip b/SSL/src/CommonPictures/ВидыСравнения/Picture.zip new file mode 100644 index 000000000..d3430f953 Binary files /dev/null and b/SSL/src/CommonPictures/ВидыСравнения/Picture.zip differ diff --git a/SSL/src/CommonPictures/ВидыСравнения/ВидыСравнения.mdo b/SSL/src/CommonPictures/ВидыСравнения/ВидыСравнения.mdo new file mode 100644 index 000000000..ff44a97c6 --- /dev/null +++ b/SSL/src/CommonPictures/ВидыСравнения/ВидыСравнения.mdo @@ -0,0 +1,8 @@ + + + ВидыСравнения + + ru + Виды сравнения + + diff --git a/SSL/src/CommonPictures/ВставитьГруппировкуВыше/Picture.zip b/SSL/src/CommonPictures/ВставитьГруппировкуВыше/Picture.zip new file mode 100644 index 000000000..8a13f5dac Binary files /dev/null and b/SSL/src/CommonPictures/ВставитьГруппировкуВыше/Picture.zip differ diff --git a/SSL/src/CommonPictures/ВставитьГруппировкуВыше/ВставитьГруппировкуВыше.mdo b/SSL/src/CommonPictures/ВставитьГруппировкуВыше/ВставитьГруппировкуВыше.mdo new file mode 100644 index 000000000..dcb2ddbc8 --- /dev/null +++ b/SSL/src/CommonPictures/ВставитьГруппировкуВыше/ВставитьГруппировкуВыше.mdo @@ -0,0 +1,8 @@ + + + ВставитьГруппировкуВыше + + ru + Вставить группировку выше + + diff --git a/SSL/src/CommonPictures/ВставитьГруппировкуНиже/Picture.zip b/SSL/src/CommonPictures/ВставитьГруппировкуНиже/Picture.zip new file mode 100644 index 000000000..07b659604 Binary files /dev/null and b/SSL/src/CommonPictures/ВставитьГруппировкуНиже/Picture.zip differ diff --git a/SSL/src/CommonPictures/ВставитьГруппировкуНиже/ВставитьГруппировкуНиже.mdo b/SSL/src/CommonPictures/ВставитьГруппировкуНиже/ВставитьГруппировкуНиже.mdo new file mode 100644 index 000000000..8de967521 --- /dev/null +++ b/SSL/src/CommonPictures/ВставитьГруппировкуНиже/ВставитьГруппировкуНиже.mdo @@ -0,0 +1,8 @@ + + + ВставитьГруппировкуНиже + + ru + Вставить группировку ниже + + diff --git a/SSL/src/CommonPictures/ВставитьКолонкуСлева/Picture.zip b/SSL/src/CommonPictures/ВставитьКолонкуСлева/Picture.zip new file mode 100644 index 000000000..8d54aa3fb Binary files /dev/null and b/SSL/src/CommonPictures/ВставитьКолонкуСлева/Picture.zip differ diff --git a/SSL/src/CommonPictures/ВставитьКолонкуСлева/ВставитьКолонкуСлева.mdo b/SSL/src/CommonPictures/ВставитьКолонкуСлева/ВставитьКолонкуСлева.mdo new file mode 100644 index 000000000..4ebe2c190 --- /dev/null +++ b/SSL/src/CommonPictures/ВставитьКолонкуСлева/ВставитьКолонкуСлева.mdo @@ -0,0 +1,8 @@ + + + ВставитьКолонкуСлева + + ru + Вставить колонку слева + + diff --git a/SSL/src/CommonPictures/ВставитьКолонкуСправа/Picture.zip b/SSL/src/CommonPictures/ВставитьКолонкуСправа/Picture.zip new file mode 100644 index 000000000..65d2a1fc1 Binary files /dev/null and b/SSL/src/CommonPictures/ВставитьКолонкуСправа/Picture.zip differ diff --git a/SSL/src/CommonPictures/ВставитьКолонкуСправа/ВставитьКолонкуСправа.mdo b/SSL/src/CommonPictures/ВставитьКолонкуСправа/ВставитьКолонкуСправа.mdo new file mode 100644 index 000000000..11db0674b --- /dev/null +++ b/SSL/src/CommonPictures/ВставитьКолонкуСправа/ВставитьКолонкуСправа.mdo @@ -0,0 +1,8 @@ + + + ВставитьКолонкуСправа + + ru + Вставить колонку справа + + diff --git a/SSL/src/CommonPictures/ВысотаСтроки/Picture.zip b/SSL/src/CommonPictures/ВысотаСтроки/Picture.zip new file mode 100644 index 000000000..9935063e9 Binary files /dev/null and b/SSL/src/CommonPictures/ВысотаСтроки/Picture.zip differ diff --git a/SSL/src/CommonPictures/ВысотаСтроки/ВысотаСтроки.mdo b/SSL/src/CommonPictures/ВысотаСтроки/ВысотаСтроки.mdo new file mode 100644 index 000000000..2781aaa7e --- /dev/null +++ b/SSL/src/CommonPictures/ВысотаСтроки/ВысотаСтроки.mdo @@ -0,0 +1,8 @@ + + + ВысотаСтроки + + ru + Высота строки + + diff --git a/SSL/src/CommonPictures/Группировка/Picture.zip b/SSL/src/CommonPictures/Группировка/Picture.zip new file mode 100644 index 000000000..f8f38eb08 Binary files /dev/null and b/SSL/src/CommonPictures/Группировка/Picture.zip differ diff --git a/SSL/src/CommonPictures/Группировка/Группировка.mdo b/SSL/src/CommonPictures/Группировка/Группировка.mdo new file mode 100644 index 000000000..fd91b8219 --- /dev/null +++ b/SSL/src/CommonPictures/Группировка/Группировка.mdo @@ -0,0 +1,8 @@ + + + Группировка + + ru + Группировка + + diff --git a/SSL/src/CommonPictures/ДобавитьЭлементНастроек/Picture.zip b/SSL/src/CommonPictures/ДобавитьЭлементНастроек/Picture.zip new file mode 100644 index 000000000..fc206114a Binary files /dev/null and b/SSL/src/CommonPictures/ДобавитьЭлементНастроек/Picture.zip differ diff --git a/SSL/src/CommonPictures/ДобавитьЭлементНастроек/ДобавитьЭлементНастроек.mdo b/SSL/src/CommonPictures/ДобавитьЭлементНастроек/ДобавитьЭлементНастроек.mdo new file mode 100644 index 000000000..e16093266 --- /dev/null +++ b/SSL/src/CommonPictures/ДобавитьЭлементНастроек/ДобавитьЭлементНастроек.mdo @@ -0,0 +1,8 @@ + + + ДобавитьЭлементНастроек + + ru + Добавить элемент настроек + + diff --git a/SSL/src/CommonPictures/Закрепить/Picture.zip b/SSL/src/CommonPictures/Закрепить/Picture.zip new file mode 100644 index 000000000..df34f4265 Binary files /dev/null and b/SSL/src/CommonPictures/Закрепить/Picture.zip differ diff --git a/SSL/src/CommonPictures/Закрепить/Закрепить.mdo b/SSL/src/CommonPictures/Закрепить/Закрепить.mdo new file mode 100644 index 000000000..287cbfa0d --- /dev/null +++ b/SSL/src/CommonPictures/Закрепить/Закрепить.mdo @@ -0,0 +1,8 @@ + + + Закрепить + + ru + Закрепить + + diff --git a/SSL/src/CommonPictures/КроссТаблица/Picture.zip b/SSL/src/CommonPictures/КроссТаблица/Picture.zip new file mode 100644 index 000000000..8176f2859 Binary files /dev/null and b/SSL/src/CommonPictures/КроссТаблица/Picture.zip differ diff --git a/SSL/src/CommonPictures/КроссТаблица/КроссТаблица.mdo b/SSL/src/CommonPictures/КроссТаблица/КроссТаблица.mdo new file mode 100644 index 000000000..9982daa26 --- /dev/null +++ b/SSL/src/CommonPictures/КроссТаблица/КроссТаблица.mdo @@ -0,0 +1,8 @@ + + + КроссТаблица + + ru + Кросс-таблица + + diff --git a/SSL/src/CommonPictures/Открепить/Picture.zip b/SSL/src/CommonPictures/Открепить/Picture.zip new file mode 100644 index 000000000..ab5bc5b80 Binary files /dev/null and b/SSL/src/CommonPictures/Открепить/Picture.zip differ diff --git a/SSL/src/CommonPictures/Открепить/Открепить.mdo b/SSL/src/CommonPictures/Открепить/Открепить.mdo new file mode 100644 index 000000000..c05ed4f34 --- /dev/null +++ b/SSL/src/CommonPictures/Открепить/Открепить.mdo @@ -0,0 +1,8 @@ + + + Открепить + + ru + Открепить + + diff --git a/SSL/src/CommonPictures/ПерейтиВПолноэкранныйРежим/Picture.zip b/SSL/src/CommonPictures/ПерейтиВПолноэкранныйРежим/Picture.zip new file mode 100644 index 000000000..278d7ecee Binary files /dev/null and b/SSL/src/CommonPictures/ПерейтиВПолноэкранныйРежим/Picture.zip differ diff --git a/SSL/src/CommonPictures/ПерейтиВПолноэкранныйРежим/ПерейтиВПолноэкранныйРежим.mdo b/SSL/src/CommonPictures/ПерейтиВПолноэкранныйРежим/ПерейтиВПолноэкранныйРежим.mdo new file mode 100644 index 000000000..67402f578 --- /dev/null +++ b/SSL/src/CommonPictures/ПерейтиВПолноэкранныйРежим/ПерейтиВПолноэкранныйРежим.mdo @@ -0,0 +1,8 @@ + + + ПерейтиВПолноэкранныйРежим + + ru + Перейти в полноэкранный режим + + diff --git a/SSL/src/CommonPictures/ПереместитьГруппировкуВыше/Picture.zip b/SSL/src/CommonPictures/ПереместитьГруппировкуВыше/Picture.zip new file mode 100644 index 000000000..6ae93fa9a Binary files /dev/null and b/SSL/src/CommonPictures/ПереместитьГруппировкуВыше/Picture.zip differ diff --git a/SSL/src/CommonPictures/ПереместитьГруппировкуВыше/ПереместитьГруппировкуВыше.mdo b/SSL/src/CommonPictures/ПереместитьГруппировкуВыше/ПереместитьГруппировкуВыше.mdo new file mode 100644 index 000000000..41d47d82c --- /dev/null +++ b/SSL/src/CommonPictures/ПереместитьГруппировкуВыше/ПереместитьГруппировкуВыше.mdo @@ -0,0 +1,8 @@ + + + ПереместитьГруппировкуВыше + + ru + Переместить группировку выше + + diff --git a/SSL/src/CommonPictures/ПереместитьГруппировкуНиже/Picture.zip b/SSL/src/CommonPictures/ПереместитьГруппировкуНиже/Picture.zip new file mode 100644 index 000000000..9d9ee5a33 Binary files /dev/null and b/SSL/src/CommonPictures/ПереместитьГруппировкуНиже/Picture.zip differ diff --git a/SSL/src/CommonPictures/ПереместитьГруппировкуНиже/ПереместитьГруппировкуНиже.mdo b/SSL/src/CommonPictures/ПереместитьГруппировкуНиже/ПереместитьГруппировкуНиже.mdo new file mode 100644 index 000000000..200837b64 --- /dev/null +++ b/SSL/src/CommonPictures/ПереместитьГруппировкуНиже/ПереместитьГруппировкуНиже.mdo @@ -0,0 +1,8 @@ + + + ПереместитьГруппировкуНиже + + ru + Переместить группировку ниже + + diff --git a/SSL/src/CommonPictures/ПереместитьКолонкуВлево/Picture.zip b/SSL/src/CommonPictures/ПереместитьКолонкуВлево/Picture.zip new file mode 100644 index 000000000..d31601902 Binary files /dev/null and b/SSL/src/CommonPictures/ПереместитьКолонкуВлево/Picture.zip differ diff --git a/SSL/src/CommonPictures/ПереместитьКолонкуВлево/ПереместитьКолонкуВлево.mdo b/SSL/src/CommonPictures/ПереместитьКолонкуВлево/ПереместитьКолонкуВлево.mdo new file mode 100644 index 000000000..ea5c96633 --- /dev/null +++ b/SSL/src/CommonPictures/ПереместитьКолонкуВлево/ПереместитьКолонкуВлево.mdo @@ -0,0 +1,8 @@ + + + ПереместитьКолонкуВлево + + ru + Переместить колонку влево + + diff --git a/SSL/src/CommonPictures/ПереместитьКолонкуВправо/Picture.zip b/SSL/src/CommonPictures/ПереместитьКолонкуВправо/Picture.zip new file mode 100644 index 000000000..32a2b31e5 Binary files /dev/null and b/SSL/src/CommonPictures/ПереместитьКолонкуВправо/Picture.zip differ diff --git a/SSL/src/CommonPictures/ПереместитьКолонкуВправо/ПереместитьКолонкуВправо.mdo b/SSL/src/CommonPictures/ПереместитьКолонкуВправо/ПереместитьКолонкуВправо.mdo new file mode 100644 index 000000000..e23f004e0 --- /dev/null +++ b/SSL/src/CommonPictures/ПереместитьКолонкуВправо/ПереместитьКолонкуВправо.mdo @@ -0,0 +1,8 @@ + + + ПереместитьКолонкуВправо + + ru + Переместить колонку вправо + + diff --git a/SSL/src/CommonPictures/СдвинутьВверх/Picture.zip b/SSL/src/CommonPictures/СдвинутьВверх/Picture.zip new file mode 100644 index 000000000..fd56230ec Binary files /dev/null and b/SSL/src/CommonPictures/СдвинутьВверх/Picture.zip differ diff --git a/SSL/src/CommonPictures/СдвинутьВверх/СдвинутьВверх.mdo b/SSL/src/CommonPictures/СдвинутьВверх/СдвинутьВверх.mdo new file mode 100644 index 000000000..d1eab710e --- /dev/null +++ b/SSL/src/CommonPictures/СдвинутьВверх/СдвинутьВверх.mdo @@ -0,0 +1,8 @@ + + + СдвинутьВверх + + ru + Сдвинуть вверх + + diff --git a/SSL/src/CommonPictures/СдвинутьВниз/Picture.zip b/SSL/src/CommonPictures/СдвинутьВниз/Picture.zip new file mode 100644 index 000000000..09706fe93 Binary files /dev/null and b/SSL/src/CommonPictures/СдвинутьВниз/Picture.zip differ diff --git a/SSL/src/CommonPictures/СдвинутьВниз/СдвинутьВниз.mdo b/SSL/src/CommonPictures/СдвинутьВниз/СдвинутьВниз.mdo new file mode 100644 index 000000000..4ae08478e --- /dev/null +++ b/SSL/src/CommonPictures/СдвинутьВниз/СдвинутьВниз.mdo @@ -0,0 +1,8 @@ + + + СдвинутьВниз + + ru + Сдвинуть вниз + + diff --git a/SSL/src/CommonPictures/СортироватьСтрокиПоВозрастанию/Picture.zip b/SSL/src/CommonPictures/СортироватьСтрокиПоВозрастанию/Picture.zip new file mode 100644 index 000000000..aa1411f30 Binary files /dev/null and b/SSL/src/CommonPictures/СортироватьСтрокиПоВозрастанию/Picture.zip differ diff --git a/SSL/src/CommonPictures/СортироватьСтрокиПоВозрастанию/СортироватьСтрокиПоВозрастанию.mdo b/SSL/src/CommonPictures/СортироватьСтрокиПоВозрастанию/СортироватьСтрокиПоВозрастанию.mdo new file mode 100644 index 000000000..650b4cdd6 --- /dev/null +++ b/SSL/src/CommonPictures/СортироватьСтрокиПоВозрастанию/СортироватьСтрокиПоВозрастанию.mdo @@ -0,0 +1,8 @@ + + + СортироватьСтрокиПоВозрастанию + + ru + Сортировать строки по возрастанию + + diff --git a/SSL/src/CommonPictures/СортироватьСтрокиПоУбыванию/Picture.zip b/SSL/src/CommonPictures/СортироватьСтрокиПоУбыванию/Picture.zip new file mode 100644 index 000000000..4fbde8b39 Binary files /dev/null and b/SSL/src/CommonPictures/СортироватьСтрокиПоУбыванию/Picture.zip differ diff --git a/SSL/src/CommonPictures/СортироватьСтрокиПоУбыванию/СортироватьСтрокиПоУбыванию.mdo b/SSL/src/CommonPictures/СортироватьСтрокиПоУбыванию/СортироватьСтрокиПоУбыванию.mdo new file mode 100644 index 000000000..14d058675 --- /dev/null +++ b/SSL/src/CommonPictures/СортироватьСтрокиПоУбыванию/СортироватьСтрокиПоУбыванию.mdo @@ -0,0 +1,8 @@ + + + СортироватьСтрокиПоУбыванию + + ru + Сортировать строки по убыванию + + diff --git a/SSL/src/CommonPictures/СтрелкаВправоЗеленая/Picture.zip b/SSL/src/CommonPictures/СтрелкаВправоЗеленая/Picture.zip new file mode 100644 index 000000000..1ed473b77 Binary files /dev/null and b/SSL/src/CommonPictures/СтрелкаВправоЗеленая/Picture.zip differ diff --git a/SSL/src/CommonPictures/СтрелкаВправоЗеленая/СтрелкаВправоЗеленая.mdo b/SSL/src/CommonPictures/СтрелкаВправоЗеленая/СтрелкаВправоЗеленая.mdo new file mode 100644 index 000000000..2c7641b48 --- /dev/null +++ b/SSL/src/CommonPictures/СтрелкаВправоЗеленая/СтрелкаВправоЗеленая.mdo @@ -0,0 +1,8 @@ + + + СтрелкаВправоЗеленая + + ru + Стрелка вправо зеленая + + diff --git a/SSL/src/CommonPictures/Таблица/Picture.zip b/SSL/src/CommonPictures/Таблица/Picture.zip new file mode 100644 index 000000000..ec7ffa778 Binary files /dev/null and b/SSL/src/CommonPictures/Таблица/Picture.zip differ diff --git a/SSL/src/CommonPictures/Таблица/Таблица.mdo b/SSL/src/CommonPictures/Таблица/Таблица.mdo new file mode 100644 index 000000000..f8376c7d5 --- /dev/null +++ b/SSL/src/CommonPictures/Таблица/Таблица.mdo @@ -0,0 +1,8 @@ + + + Таблица + + ru + Таблица + + diff --git a/SSL/src/CommonPictures/ТипБулево/Picture.zip b/SSL/src/CommonPictures/ТипБулево/Picture.zip new file mode 100644 index 000000000..45985c2bd Binary files /dev/null and b/SSL/src/CommonPictures/ТипБулево/Picture.zip differ diff --git a/SSL/src/CommonPictures/ТипБулево/ТипБулево.mdo b/SSL/src/CommonPictures/ТипБулево/ТипБулево.mdo new file mode 100644 index 000000000..8aef36ff7 --- /dev/null +++ b/SSL/src/CommonPictures/ТипБулево/ТипБулево.mdo @@ -0,0 +1,8 @@ + + + ТипБулево + + ru + Тип булево + + diff --git a/SSL/src/CommonPictures/ТипГруппа/Picture.zip b/SSL/src/CommonPictures/ТипГруппа/Picture.zip new file mode 100644 index 000000000..f2ecaea0a Binary files /dev/null and b/SSL/src/CommonPictures/ТипГруппа/Picture.zip differ diff --git a/SSL/src/CommonPictures/ТипГруппа/ТипГруппа.mdo b/SSL/src/CommonPictures/ТипГруппа/ТипГруппа.mdo new file mode 100644 index 000000000..97a5c11cc --- /dev/null +++ b/SSL/src/CommonPictures/ТипГруппа/ТипГруппа.mdo @@ -0,0 +1,8 @@ + + + ТипГруппа + + ru + Тип группа + + diff --git a/SSL/src/CommonPictures/ТипДата/Picture.zip b/SSL/src/CommonPictures/ТипДата/Picture.zip new file mode 100644 index 000000000..26ac984d7 Binary files /dev/null and b/SSL/src/CommonPictures/ТипДата/Picture.zip differ diff --git a/SSL/src/CommonPictures/ТипДата/ТипДата.mdo b/SSL/src/CommonPictures/ТипДата/ТипДата.mdo new file mode 100644 index 000000000..be2d00731 --- /dev/null +++ b/SSL/src/CommonPictures/ТипДата/ТипДата.mdo @@ -0,0 +1,8 @@ + + + ТипДата + + ru + Тип дата + + diff --git a/SSL/src/CommonPictures/ТипДерево/Picture.zip b/SSL/src/CommonPictures/ТипДерево/Picture.zip new file mode 100644 index 000000000..5d4550bb5 Binary files /dev/null and b/SSL/src/CommonPictures/ТипДерево/Picture.zip differ diff --git a/SSL/src/CommonPictures/ТипДерево/ТипДерево.mdo b/SSL/src/CommonPictures/ТипДерево/ТипДерево.mdo new file mode 100644 index 000000000..bbc2088a7 --- /dev/null +++ b/SSL/src/CommonPictures/ТипДерево/ТипДерево.mdo @@ -0,0 +1,8 @@ + + + ТипДерево + + ru + Тип дерево + + diff --git a/SSL/src/CommonPictures/ТипИдентификатор/Picture.zip b/SSL/src/CommonPictures/ТипИдентификатор/Picture.zip new file mode 100644 index 000000000..8838df797 Binary files /dev/null and b/SSL/src/CommonPictures/ТипИдентификатор/Picture.zip differ diff --git a/SSL/src/CommonPictures/ТипИдентификатор/ТипИдентификатор.mdo b/SSL/src/CommonPictures/ТипИдентификатор/ТипИдентификатор.mdo new file mode 100644 index 000000000..e9949b827 --- /dev/null +++ b/SSL/src/CommonPictures/ТипИдентификатор/ТипИдентификатор.mdo @@ -0,0 +1,8 @@ + + + ТипИдентификатор + + ru + Тип идентификатор + + diff --git a/SSL/src/CommonPictures/ТипКонстанта/Picture.zip b/SSL/src/CommonPictures/ТипКонстанта/Picture.zip new file mode 100644 index 000000000..8df8df1d8 Binary files /dev/null and b/SSL/src/CommonPictures/ТипКонстанта/Picture.zip differ diff --git a/SSL/src/CommonPictures/ТипКонстанта/ТипКонстанта.mdo b/SSL/src/CommonPictures/ТипКонстанта/ТипКонстанта.mdo new file mode 100644 index 000000000..11d347ff9 --- /dev/null +++ b/SSL/src/CommonPictures/ТипКонстанта/ТипКонстанта.mdo @@ -0,0 +1,8 @@ + + + ТипКонстанта + + ru + Тип константа + + diff --git a/SSL/src/CommonPictures/ТипМакрос/Picture.zip b/SSL/src/CommonPictures/ТипМакрос/Picture.zip new file mode 100644 index 000000000..25b9d021b Binary files /dev/null and b/SSL/src/CommonPictures/ТипМакрос/Picture.zip differ diff --git a/SSL/src/CommonPictures/ТипМакрос/ТипМакрос.mdo b/SSL/src/CommonPictures/ТипМакрос/ТипМакрос.mdo new file mode 100644 index 000000000..04a7b6587 --- /dev/null +++ b/SSL/src/CommonPictures/ТипМакрос/ТипМакрос.mdo @@ -0,0 +1,8 @@ + + + ТипМакрос + + ru + Тип макрос + + diff --git a/SSL/src/CommonPictures/ТипОшибка/ТипОшибка.mdo b/SSL/src/CommonPictures/ТипОшибка/ТипОшибка.mdo new file mode 100644 index 000000000..bd7531cf5 --- /dev/null +++ b/SSL/src/CommonPictures/ТипОшибка/ТипОшибка.mdo @@ -0,0 +1,8 @@ + + + ТипОшибка + + ru + Тип ошибка + + diff --git a/SSL/src/CommonPictures/ТипСоставной/Picture.zip b/SSL/src/CommonPictures/ТипСоставной/Picture.zip new file mode 100644 index 000000000..e13b358b0 Binary files /dev/null and b/SSL/src/CommonPictures/ТипСоставной/Picture.zip differ diff --git a/SSL/src/CommonPictures/ТипСоставной/ТипСоставной.mdo b/SSL/src/CommonPictures/ТипСоставной/ТипСоставной.mdo new file mode 100644 index 000000000..efe377a5c --- /dev/null +++ b/SSL/src/CommonPictures/ТипСоставной/ТипСоставной.mdo @@ -0,0 +1,8 @@ + + + ТипСоставной + + ru + Тип составной + + diff --git a/SSL/src/CommonPictures/ТипСписок/Picture.zip b/SSL/src/CommonPictures/ТипСписок/Picture.zip new file mode 100644 index 000000000..197724a61 Binary files /dev/null and b/SSL/src/CommonPictures/ТипСписок/Picture.zip differ diff --git a/SSL/src/CommonPictures/ТипСписок/ТипСписок.mdo b/SSL/src/CommonPictures/ТипСписок/ТипСписок.mdo new file mode 100644 index 000000000..f31b02dec --- /dev/null +++ b/SSL/src/CommonPictures/ТипСписок/ТипСписок.mdo @@ -0,0 +1,8 @@ + + + ТипСписок + + ru + Тип список + + diff --git a/SSL/src/CommonPictures/ТипСсылка/Picture.zip b/SSL/src/CommonPictures/ТипСсылка/Picture.zip new file mode 100644 index 000000000..e2d0802ac Binary files /dev/null and b/SSL/src/CommonPictures/ТипСсылка/Picture.zip differ diff --git a/SSL/src/CommonPictures/ТипСсылка/ТипСсылка.mdo b/SSL/src/CommonPictures/ТипСсылка/ТипСсылка.mdo new file mode 100644 index 000000000..4a9dfbea4 --- /dev/null +++ b/SSL/src/CommonPictures/ТипСсылка/ТипСсылка.mdo @@ -0,0 +1,8 @@ + + + ТипСсылка + + ru + Тип ссылка + + diff --git a/SSL/src/CommonPictures/ТипСтрока/Picture.zip b/SSL/src/CommonPictures/ТипСтрока/Picture.zip new file mode 100644 index 000000000..4a8573620 Binary files /dev/null and b/SSL/src/CommonPictures/ТипСтрока/Picture.zip differ diff --git a/SSL/src/CommonPictures/ТипСтрока/ТипСтрока.mdo b/SSL/src/CommonPictures/ТипСтрока/ТипСтрока.mdo new file mode 100644 index 000000000..20929ee3b --- /dev/null +++ b/SSL/src/CommonPictures/ТипСтрока/ТипСтрока.mdo @@ -0,0 +1,8 @@ + + + ТипСтрока + + ru + Тип строка + + diff --git a/SSL/src/CommonPictures/ТипФильтр/Picture.zip b/SSL/src/CommonPictures/ТипФильтр/Picture.zip new file mode 100644 index 000000000..65b38e819 Binary files /dev/null and b/SSL/src/CommonPictures/ТипФильтр/Picture.zip differ diff --git a/SSL/src/CommonPictures/ТипФильтр/ТипФильтр.mdo b/SSL/src/CommonPictures/ТипФильтр/ТипФильтр.mdo new file mode 100644 index 000000000..f127a1d1f --- /dev/null +++ b/SSL/src/CommonPictures/ТипФильтр/ТипФильтр.mdo @@ -0,0 +1,8 @@ + + + ТипФильтр + + ru + Тип фильтр + + diff --git a/SSL/src/CommonPictures/ТипФункция/Picture.zip b/SSL/src/CommonPictures/ТипФункция/Picture.zip new file mode 100644 index 000000000..dd49924e6 Binary files /dev/null and b/SSL/src/CommonPictures/ТипФункция/Picture.zip differ diff --git a/SSL/src/CommonPictures/ТипФункция/ТипФункция.mdo b/SSL/src/CommonPictures/ТипФункция/ТипФункция.mdo new file mode 100644 index 000000000..a6acd9895 --- /dev/null +++ b/SSL/src/CommonPictures/ТипФункция/ТипФункция.mdo @@ -0,0 +1,8 @@ + + + ТипФункция + + ru + Тип функция + + diff --git a/SSL/src/CommonPictures/ТипЧисло/Picture.zip b/SSL/src/CommonPictures/ТипЧисло/Picture.zip new file mode 100644 index 000000000..5c6888991 Binary files /dev/null and b/SSL/src/CommonPictures/ТипЧисло/Picture.zip differ diff --git a/SSL/src/CommonPictures/ТипЧисло/ТипЧисло.mdo b/SSL/src/CommonPictures/ТипЧисло/ТипЧисло.mdo new file mode 100644 index 000000000..8962642fb --- /dev/null +++ b/SSL/src/CommonPictures/ТипЧисло/ТипЧисло.mdo @@ -0,0 +1,8 @@ + + + ТипЧисло + + ru + Тип число + + diff --git a/SSL/src/CommonPictures/ШиринаКолонки/Picture.zip b/SSL/src/CommonPictures/ШиринаКолонки/Picture.zip new file mode 100644 index 000000000..606a7a2c8 Binary files /dev/null and b/SSL/src/CommonPictures/ШиринаКолонки/Picture.zip differ diff --git a/SSL/src/CommonPictures/ШиринаКолонки/ШиринаКолонки.mdo b/SSL/src/CommonPictures/ШиринаКолонки/ШиринаКолонки.mdo new file mode 100644 index 000000000..fc2c9ca28 --- /dev/null +++ b/SSL/src/CommonPictures/ШиринаКолонки/ШиринаКолонки.mdo @@ -0,0 +1,8 @@ + + + ШиринаКолонки + + ru + Ширина колонки + + diff --git a/SSL/src/CommonTemplates/КомпонентаПечатиШтрихкодов/Template.addin b/SSL/src/CommonTemplates/КомпонентаПечатиШтрихкодов/Template.addin new file mode 100644 index 000000000..4509dd007 Binary files /dev/null and b/SSL/src/CommonTemplates/КомпонентаПечатиШтрихкодов/Template.addin differ diff --git a/SSL/src/CommonTemplates/КомпонентаПечатиШтрихкодов/КомпонентаПечатиШтрихкодов.mdo b/SSL/src/CommonTemplates/КомпонентаПечатиШтрихкодов/КомпонентаПечатиШтрихкодов.mdo new file mode 100644 index 000000000..34517ea69 --- /dev/null +++ b/SSL/src/CommonTemplates/КомпонентаПечатиШтрихкодов/КомпонентаПечатиШтрихкодов.mdo @@ -0,0 +1,10 @@ + + + КомпонентаПечатиШтрихкодов + + ru + Компонента печати штрихкодов + + Компонента использует библиотеку ImageMagick, разработанную ImageMagick Studio LLC. Лицензия http://www.imagemagick.org/script/license.php + AddIn + diff --git a/SSL/src/Configuration/Configuration.mdo b/SSL/src/Configuration/Configuration.mdo index 0c3db8213..cc1453d64 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.3.362 + 3.1.4.96 http://downloads.v8.1c.ru/tmplts/ true @@ -127,9 +127,16 @@ StyleItem.ФайлЗанятыйТекущимПользователем StyleItem.ФонРезультатовПоиска StyleItem.ФонУправляющегоПоля + StyleItem.ЦветИзмененногоПоля StyleItem.ЦветПустойГиперссылки StyleItem.ЦветРазделаПанелиФункций + StyleItem.ЦветТекстаВнимание StyleItem.ЦветТекстаНевыбраннойКартинки + StyleItem.ЦветТекстаОтрицательногоЗначения + StyleItem.ЦветТекстаПоложительногоЗначения + StyleItem.ЦветФонаВнимание + StyleItem.ЦветФонаОтрицательногоЗначения + StyleItem.ЦветФонаПоложительногоЗначения StyleItem.ЦветФонаПредупреждения CommonPicture.BotFather CommonPicture.BotFatherВконтакте @@ -156,6 +163,7 @@ CommonPicture.ВидыНавигацииПоВзаимодействиямОтПредметовВзаимодействий CommonPicture.ВидыНавигацииПоВзаимодействиямОтРеквизитаПредмета CommonPicture.ВидыОпераций + CommonPicture.ВидыСравнения CommonPicture.ВКонтакте16 CommonPicture.ВнешняяКомпонентаДоступна CommonPicture.ВнешняяКомпонентаНеДоступна @@ -163,7 +171,11 @@ CommonPicture.Вопрос32 CommonPicture.ВосклицательныйЗнакКрасный CommonPicture.ВосклицательныйЗнакСерый + CommonPicture.ВставитьГруппировкуВыше + CommonPicture.ВставитьГруппировкуНиже CommonPicture.ВставитьИзБуфераОбмена + CommonPicture.ВставитьКолонкуСлева + CommonPicture.ВставитьКолонкуСправа CommonPicture.Встреча CommonPicture.ВыбратьВариантОтчета CommonPicture.ВыполнитьРегламентноеЗаданиеВручную @@ -171,6 +183,7 @@ CommonPicture.ВыравниваниеПоПравомуКраю CommonPicture.ВыравниваниеПоЦентру CommonPicture.ВыравниваниеПоШирине + CommonPicture.ВысотаСтроки CommonPicture.ГраницаВезде CommonPicture.ГраницаВнутри CommonPicture.ГраницаВокруг @@ -178,6 +191,7 @@ CommonPicture.ГраницаСлева CommonPicture.ГраницаСнизу CommonPicture.ГраницаСправа + CommonPicture.Группировка CommonPicture.ДлительнаяОперация16 CommonPicture.ДлительнаяОперация48 CommonPicture.ДобавитьКомплексныйВопрос @@ -186,6 +200,7 @@ CommonPicture.ДобавитьРодительский CommonPicture.ДобавитьТабличныйВопрос CommonPicture.ДобавитьУсловныйВопрос + CommonPicture.ДобавитьЭлементНастроек CommonPicture.ДокументЗаписанКоннекторВерх CommonPicture.ДокументЗаписанКоннекторВерхНиз CommonPicture.ДокументЗаписанКоннекторЛево @@ -209,6 +224,7 @@ CommonPicture.ЗавершитьРаботу CommonPicture.ЗавершитьРедактированиеМакета CommonPicture.ЗакончитьРедактированиеФайла + CommonPicture.Закрепить CommonPicture.Заметка CommonPicture.ЗанятьФайл CommonPicture.ЗапланированноеВзаимодействие @@ -264,6 +280,7 @@ CommonPicture.КонтактнаяИнформация CommonPicture.КонтактнаяИнформацияНеактуально CommonPicture.КонтактнаяИнформацияПерейтиПоСсылке + CommonPicture.КроссТаблица CommonPicture.КурсивноеНачертание CommonPicture.Максимум CommonPicture.МенюДополнительныеФункции @@ -285,6 +302,7 @@ CommonPicture.Отборы CommonPicture.ОтветитьНаЭлектронноеПисьмо CommonPicture.ОтветитьНаЭлектронноеПисьмоВсем + CommonPicture.Открепить CommonPicture.ОткрытьВыбранныйФайл CommonPicture.ОткрытьМакет CommonPicture.ОтложитьРассмотрениеВзаимодействия @@ -300,11 +318,16 @@ CommonPicture.ПапкаОблачногоСервиса CommonPicture.Папки CommonPicture.ПапкиЭлектронныхПисем + CommonPicture.ПерейтиВПолноэкранныйРежим CommonPicture.ПереместитьВЗакладкиВзаимодействия CommonPicture.ПереместитьВлевоВверх CommonPicture.ПереместитьВлевоВсе CommonPicture.ПереместитьВПапкуПисем CommonPicture.ПереместитьВправоВниз + CommonPicture.ПереместитьГруппировкуВыше + CommonPicture.ПереместитьГруппировкуНиже + CommonPicture.ПереместитьКолонкуВлево + CommonPicture.ПереместитьКолонкуВправо CommonPicture.ПереслатьПисьмоКакВложение CommonPicture.ПереслатьЭлектронноеПисьмо CommonPicture.ПиктограммыДоступаКНастройкамОтчета @@ -361,6 +384,8 @@ CommonPicture.РедактироватьМакет CommonPicture.РедактироватьФайл CommonPicture.РежимИспользованияПриложенияВСервисеЛокально + CommonPicture.СдвинутьВверх + CommonPicture.СдвинутьВниз CommonPicture.СертификатКлюча CommonPicture.СинхронизацияДанных CommonPicture.СинхронизацияДанныхАнализДанных48 @@ -382,6 +407,8 @@ CommonPicture.СкрытаяНастройкаОтчета CommonPicture.СнятьПризнакРассмотреноУВзаимодействия CommonPicture.Создание + CommonPicture.СортироватьСтрокиПоВозрастанию + CommonPicture.СортироватьСтрокиПоУбыванию CommonPicture.СостояниеОбменаДанными CommonPicture.СостояниеОбменаДаннымиОшибка CommonPicture.СостояниеОригиналаПервичногоДокументаОригиналНеПолучен @@ -430,12 +457,29 @@ CommonPicture.СтрелкаВнизЗеленая CommonPicture.СтрелкаВнизСправка CommonPicture.СтрелкаВправо + CommonPicture.СтрелкаВправоЗеленая CommonPicture.СтрелкаВправоКрасная CommonPicture.Структура CommonPicture.СтруктураПодчиненности CommonPicture.Сумма + CommonPicture.Таблица CommonPicture.Телеграм16х16 CommonPicture.ТелефонныйЗвонок + CommonPicture.ТипБулево + CommonPicture.ТипГруппа + CommonPicture.ТипДата + CommonPicture.ТипДерево + CommonPicture.ТипИдентификатор + CommonPicture.ТипКонстанта + CommonPicture.ТипМакрос + CommonPicture.ТипОшибка + CommonPicture.ТипСоставной + CommonPicture.ТипСписок + CommonPicture.ТипСсылка + CommonPicture.ТипСтрока + CommonPicture.ТипФильтр + CommonPicture.ТипФункция + CommonPicture.ТипЧисло CommonPicture.ТипыМакетов CommonPicture.ТолстаяГраницаВокруг CommonPicture.ТолстаяГраницаСверху @@ -463,6 +507,7 @@ CommonPicture.Фотокамера CommonPicture.ЦветТекста CommonPicture.ЦветФона + CommonPicture.ШиринаКолонки CommonPicture.Шрифт CommonPicture.ЭлектронноеПисьмо CommonPicture.ЭлектронноеПисьмоВходящее @@ -587,7 +632,7 @@ Role.РедактированиеРеквизитовОбъектов Role.РежимВсеФункции Role.СохранениеДанныхПользователя - Role.УдалениеДанныхOData + Role.УдаленныйДоступOData Role.УдаленныйДоступБазоваяФункциональность Role.УдаленныйДоступОбменДаннымиВМоделиСервиса Role.УдаленныйКонтроль @@ -611,11 +656,13 @@ CommonTemplate.ИнструкцияПоСозданиюФаксимильнойПодписиИПечати CommonTemplate.КомпонентаTWAIN CommonTemplate.КомпонентаПечатиQRКода + CommonTemplate.КомпонентаПечатиШтрихкодов CommonTemplate.КомпонентаПоискаСтрок CommonTemplate.ПолучениеДереваОбработчиковОбновления CommonTemplate.СтруктураПодчиненности FilterCriterion.СвязанныеДокументы FilterCriterion.ФайлыВТоме + CommonModule.GoogleПереводчик CommonModule.АвтономнаяРабота CommonModule.АвтономнаяРаботаСлужебный CommonModule.АвтономнаяРаботаСлужебныйКлиент @@ -648,6 +695,9 @@ CommonModule.ВариантыОтчетовКлиентСервер CommonModule.ВариантыОтчетовПереопределяемый CommonModule.ВариантыОтчетовПовтИсп + CommonModule.ВариантыОтчетовСлужебный + CommonModule.ВариантыОтчетовСлужебныйКлиент + CommonModule.ВариантыОтчетовСлужебныйКлиентСервер CommonModule.ВерсионированиеОбъектов CommonModule.ВерсионированиеОбъектовКлиент CommonModule.ВерсионированиеОбъектовПереопределяемый @@ -677,6 +727,8 @@ CommonModule.ВызовОнлайнПоддержкиВызовСервера CommonModule.ВызовОнлайнПоддержкиКлиент CommonModule.ВызовОнлайнПоддержкиПереопределяемый + CommonModule.ГенерацияШтрихкода + CommonModule.ГенерацияШтрихкодаСерверПовтИсп CommonModule.ГрафикиРаботы CommonModule.ГрафикиРаботыКлиент CommonModule.ГрупповоеИзменениеОбъектов @@ -840,6 +892,7 @@ CommonModule.ОценкаПроизводительностиКлиентСервер CommonModule.ОценкаПроизводительностиПовтИсп CommonModule.ОценкаПроизводительностиСлужебный + CommonModule.ПереводТекстаНаДругиеЯзыки CommonModule.ПодключаемыеКоманды CommonModule.ПодключаемыеКомандыВызовСервера CommonModule.ПодключаемыеКомандыКлиент @@ -1017,6 +1070,7 @@ CommonModule.УправлениеПечатьюКлиент CommonModule.УправлениеПечатьюКлиентПереопределяемый CommonModule.УправлениеПечатьюКлиентСервер + CommonModule.УправлениеПечатьюМультиязычность CommonModule.УправлениеПечатьюПереопределяемый CommonModule.УправлениеПечатьюРФ CommonModule.УправлениеПечатьюСлужебный @@ -1036,6 +1090,7 @@ CommonModule.ФайловаяСистема CommonModule.ФайловаяСистемаКлиент CommonModule.ФайловаяСистемаСлужебныйКлиент + CommonModule.ФайловаяСистемаСлужебныйКлиентСервер CommonModule.ФизическиеЛицаКлиентСервер CommonModule.ЦентрМониторинга CommonModule.ЦентрМониторингаГлобальный @@ -1062,6 +1117,7 @@ CommonModule.ЭлектроннаяПодписьСлужебныйКлиент CommonModule.ЭлектроннаяПодписьСлужебныйКлиентСервер CommonModule.ЭлектроннаяПодписьСлужебныйПовтИсп + CommonModule.ЯндексПереводчик CommonAttribute.КомментарийЯзык1 CommonAttribute.КомментарийЯзык2 CommonAttribute.НаименованиеЯзык1 @@ -1163,14 +1219,14 @@ EventSubscription.ОбновлениеВерсииИБПередУдалениемСсылочногоОбъекта EventSubscription.ОбработкаПолученияФормыПользователяДляНеразделенныхПользователей EventSubscription.ОбработкаПроверкиЗаполненияПрисоединенногоФайла + EventSubscription.ОпределитьФормуПрисоединенногоФайлаВзаимодействия + EventSubscription.ОпределитьФормуПрисоединенногоФайлаШаблоныСообщений EventSubscription.ОтключитьАвтоматическуюСинхронизациюДанных EventSubscription.ОтключитьИспользованиеПланаОбмена EventSubscription.ОтключитьРассылкиПередУдалениемТипаПолучателейРассылки EventSubscription.ОтменитьОтправкуДанныхУзлаВРаспределеннойИнформационнойБазе EventSubscription.ОчиститьИнформациюОбАвтореВерсии EventSubscription.ОчиститьСсылкиНаУзелИнформационнойБазы - EventSubscription.ПереопределитьПолучаемуюФормуПрисоединенногоФайлаВзаимодействия - EventSubscription.ПереопределитьПолучаемуюФормуПрисоединенногоФайлаШаблоныСообщений EventSubscription.ПолучениеПолейПредставленияВзаимодействия EventSubscription.ПолучениеПредставленияВзаимодействия EventSubscription.ПолучитьПоляПредставленияБизнесПроцесса @@ -1275,6 +1331,7 @@ FunctionalOption.ИспользоватьПочтовыйКлиент FunctionalOption.ИспользоватьПризнакРассмотрено FunctionalOption.ИспользоватьПрочиеВзаимодействия + FunctionalOption.ИспользоватьСервисПереводаТекста FunctionalOption.ИспользоватьСинхронизациюДанных FunctionalOption.ИспользоватьСинхронизациюДанныхВЛокальномРежиме FunctionalOption.ИспользоватьСинхронизациюДанныхВМоделиСервиса @@ -1313,6 +1370,7 @@ DefinedType.АдресатЗапретаИзменения DefinedType.БезопасныйРежим DefinedType.БизнесПроцесс + DefinedType.БизнесПроцессОбъект DefinedType.ВерсионируемыеДанные DefinedType.ВерсионируемыеДанныеОбъект DefinedType.ВладелецВнешнихЗначенийВНаборахЗначенийДоступаОбъект @@ -1486,6 +1544,7 @@ Constant.ИспользоватьПрофилиБезопасностиДляДОО Constant.ИспользоватьПрочиеВзаимодействия Constant.ИспользоватьРазделениеПоОбластямДанных + Constant.ИспользоватьСервисПереводаТекста Constant.ИспользоватьСервисСклоненияMorpher Constant.ИспользоватьСинхронизациюДанных Constant.ИспользоватьСинхронизациюДанныхВЛокальномРежиме @@ -1547,6 +1606,7 @@ Constant.РазрешитьВыполнениеДООРегламентнымиЗаданиямиВМоделиСервиса Constant.СведенияОБлокируемыхОбъектах Constant.СведенияОбОбновленииИБ + Constant.СервисПереводаТекста Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы Constant.СинхронизироватьФайлы @@ -1560,6 +1620,7 @@ Constant.СписокРасширенийФайловOpenDocumentОбластиДанных Constant.СпособХраненияФайлов Constant.СтатусОбновленияКонфигурации + Constant.УчетнаяЗаписьДляВосстановленияПароля Constant.ХранитьФайлыВТомахНаДиске Constant.ЭтоАвтономноеРабочееМесто Constant.УдалитьЛогинДоступаКСервисуMorpher @@ -1574,6 +1635,7 @@ CommonForm.ВопросОбУстановкеВнешнейКомпоненты CommonForm.ВопросОбУстановкеРасширенияРаботыСКриптографией CommonForm.ВопросОбУстановкеРасширенияРаботыСФайлами + CommonForm.ВосстановлениеПаролей CommonForm.ВосстановлениеСвязиСГлавнымУзлом CommonForm.ВспомогательнаяФормаНастроекОтчета CommonForm.ВходВПрограммуЗапрещен @@ -1605,6 +1667,7 @@ CommonForm.НастройкаМоихОтчетовИОбработок CommonForm.НастройкаОнлайнПоддержки CommonForm.НастройкаОтправкиSMS + CommonForm.НастройкаПереводаТекста CommonForm.НастройкаРабочегоКаталога CommonForm.НастройкиВходаПользователей CommonForm.НастройкиПравОбъектов @@ -1716,6 +1779,7 @@ Catalog.ШаблоныСообщенийПрисоединенныеФайлы Catalog.ЭлектронноеПисьмоВходящееПрисоединенныеФайлы Catalog.ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы + Catalog.ЯзыкиПечатныхФорм Document.Анкета Document.Встреча Document.ЗапланированноеВзаимодействие @@ -1763,6 +1827,7 @@ Enum.РежимыВыполненияОтложенныхОбработчиков Enum.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок Enum.РезультатыВыполненияОбмена + Enum.СервисыПереводаТекста Enum.СостоянияБизнесПроцессов Enum.СостоянияДокументаСообщениеSMS Enum.СостоянияЗапросовНаИспользованиеВнешнихРесурсов @@ -1947,6 +2012,7 @@ InformationRegister.КомментарииСтатистики InformationRegister.КонтактыВзаимодействий InformationRegister.КурсыВалют + InformationRegister.КэшПереводов InformationRegister.КэшПрограммныхИнтерфейсов InformationRegister.НаборыЗначенийДоступа InformationRegister.НазначениеДополнительныхОбработок diff --git a/SSL/src/Configuration/ParentConfigurations.bin b/SSL/src/Configuration/ParentConfigurations.bin index cac341161..9a17853ab 100644 --- a/SSL/src/Configuration/ParentConfigurations.bin +++ b/SSL/src/Configuration/ParentConfigurations.bin @@ -1 +1 @@ -{6,1,1,6b6dc764-3bc3-11eb-058d-0242ac110002,1,5eddaff0-3bc3-11eb-c380-0242ac110002,"3.1.3.362","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6176,1,0,27a833c0-3bc3-11eb-e39c-0242ac110002,27a833c0-3bc3-11eb-e39c-0242ac110002,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,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,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,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,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,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,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,61cd6eab-6bab-4382-986e-4c7fc44f369b,61cd6eab-6bab-4382-986e-4c7fc44f369b,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,a4e4c91c-fd95-4369-98e3-51ffba79937b,a4e4c91c-fd95-4369-98e3-51ffba79937b,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,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,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,6b29b4b3-df0a-42f7-b89f-809ffbdacf02,6b29b4b3-df0a-42f7-b89f-809ffbdacf02,1,0,43d8dd53-df3e-407e-a3c1-5b893cc1976c,43d8dd53-df3e-407e-a3c1-5b893cc1976c,1,0,61e246f4-fe19-4377-8f69-fd1cb90e3f88,61e246f4-fe19-4377-8f69-fd1cb90e3f88,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,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,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,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,b7a0d00f-fbf3-41fe-b72f-c17e163264f9,b7a0d00f-fbf3-41fe-b72f-c17e163264f9,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,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,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,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,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,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,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,ea868745-71fc-483c-aa6e-f242c06c673f,ea868745-71fc-483c-aa6e-f242c06c673f,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,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,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,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,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,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,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,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,cafbea88-86f0-4a44-98f4-70d1837da452,cafbea88-86f0-4a44-98f4-70d1837da452,1,0,8c72f824-b667-4d74-84aa-30eccfbbd2f0,8c72f824-b667-4d74-84aa-30eccfbbd2f0,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,da0686ce-25e2-4d2c-b152-283f5e4cf4b1,da0686ce-25e2-4d2c-b152-283f5e4cf4b1,1,0,07288e13-583c-4caf-983a-76c5d2ebf66f,07288e13-583c-4caf-983a-76c5d2ebf66f,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,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,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,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,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,e91118e9-d054-41a1-bfe9-343179718f33,e91118e9-d054-41a1-bfe9-343179718f33,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,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,042245ef-3a30-46fb-b3e3-6599d5426cbd,042245ef-3a30-46fb-b3e3-6599d5426cbd,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,697bd1de-bbef-4362-aa39-71f6008f4bd7,697bd1de-bbef-4362-aa39-71f6008f4bd7,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,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,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,d1034240-ab06-413a-9828-a5c7dc879680,d1034240-ab06-413a-9828-a5c7dc879680,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,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,ab5b0155-a4b1-47a1-ad87-12365dde20c1,ab5b0155-a4b1-47a1-ad87-12365dde20c1,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,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,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,4655fa12-9169-4d08-bdab-9b3174d0b223,4655fa12-9169-4d08-bdab-9b3174d0b223,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,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,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,8ccd9be8-ef26-49b9-8cee-03ae4e500386,8ccd9be8-ef26-49b9-8cee-03ae4e500386,1,0,ddca925c-fdcd-40ce-a504-4fca1758de3f,ddca925c-fdcd-40ce-a504-4fca1758de3f,1,0,cafc6b5b-a76a-4b1b-9592-ba440f7bf34f,cafc6b5b-a76a-4b1b-9592-ba440f7bf34f,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,ea07cd11-418c-4e4f-be9f-c160ee8a64e8,ea07cd11-418c-4e4f-be9f-c160ee8a64e8,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,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,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,ea0a498a-a1cb-4f28-88cb-0bc62971172b,ea0a498a-a1cb-4f28-88cb-0bc62971172b,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,ede6a379-b0e5-4b8d-a454-779c0fd8b0b3,ede6a379-b0e5-4b8d-a454-779c0fd8b0b3,1,0,4fb8564e-2338-4c23-84a4-31f768047ced,4fb8564e-2338-4c23-84a4-31f768047ced,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,f0152598-ffa3-4eb7-811f-906e569373e6,f0152598-ffa3-4eb7-811f-906e569373e6,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,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,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,bbec9c3d-31dd-484e-ab32-41ef845f1370,bbec9c3d-31dd-484e-ab32-41ef845f1370,1,0,8692ba41-d91d-4af0-8aba-69dd5409d593,8692ba41-d91d-4af0-8aba-69dd5409d593,1,0,68e207e7-8c20-426d-8a0e-c3dd4d683631,68e207e7-8c20-426d-8a0e-c3dd4d683631,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,db82191f-77bd-44da-8b33-86f01018e25a,db82191f-77bd-44da-8b33-86f01018e25a,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,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,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,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,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,c6af8b0f-3767-4198-88e2-f5763cb0294a,c6af8b0f-3767-4198-88e2-f5763cb0294a,1,0,88b879b7-1bb3-4478-b569-35bdb5c56939,88b879b7-1bb3-4478-b569-35bdb5c56939,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,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,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,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,c0e01a15-6937-4331-bdd7-2f5a68d0d3dd,c0e01a15-6937-4331-bdd7-2f5a68d0d3dd,1,0,d065c02e-9991-468a-ae32-b8c29d078d03,d065c02e-9991-468a-ae32-b8c29d078d03,1,0,c509683e-eb13-4e1a-91ed-cd6982ec5001,c509683e-eb13-4e1a-91ed-cd6982ec5001,1,0,88bf6f58-7943-42c4-bc0f-56b991590026,88bf6f58-7943-42c4-bc0f-56b991590026,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,77adf47b-6015-46fc-9e29-f1c025ea0d81,77adf47b-6015-46fc-9e29-f1c025ea0d81,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,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,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,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,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,cbca7272-2aae-4e21-b3f5-12786f085648,cbca7272-2aae-4e21-b3f5-12786f085648,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,edf81bbb-905a-474d-959a-db5629a8e104,edf81bbb-905a-474d-959a-db5629a8e104,1,0,4c8eb34e-0bb6-487a-a2ae-24083b1f6d2e,4c8eb34e-0bb6-487a-a2ae-24083b1f6d2e,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,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,1d715463-691b-4c01-ae39-57c261f2a6ad,1d715463-691b-4c01-ae39-57c261f2a6ad,1,0,4c3d007f-a62c-4fd9-beda-58dbf08ad188,4c3d007f-a62c-4fd9-beda-58dbf08ad188,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,87dad256-122b-4d7e-b249-a2c313a9cf33,87dad256-122b-4d7e-b249-a2c313a9cf33,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,06323ebd-5f74-494a-99a5-eb77e23d8637,06323ebd-5f74-494a-99a5-eb77e23d8637,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,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,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,b98ca634-25a5-4366-af04-815ba34c8bb2,b98ca634-25a5-4366-af04-815ba34c8bb2,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,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,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,f2dc9319-ba60-421a-8340-be3e3a291393,f2dc9319-ba60-421a-8340-be3e3a291393,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,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,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,9162a85e-a385-42b0-b809-da916fce44b7,9162a85e-a385-42b0-b809-da916fce44b7,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,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,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,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,137ec4ee-5053-47a7-8f5d-f6e63174608f,137ec4ee-5053-47a7-8f5d-f6e63174608f,1,0,820bb4b4-895b-4ccf-a350-2545bf8a2f7e,820bb4b4-895b-4ccf-a350-2545bf8a2f7e,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,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,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,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,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,4e36184e-d818-4f38-9257-6d91d9cc85ae,4e36184e-d818-4f38-9257-6d91d9cc85ae,1,0,afcba8a1-5d3e-4a76-9be9-5fbda20d55bd,afcba8a1-5d3e-4a76-9be9-5fbda20d55bd,1,0,cbdc8d7e-b685-4c8d-9f47-d8bfb08300d4,cbdc8d7e-b685-4c8d-9f47-d8bfb08300d4,1,0,3893a258-a9c7-441a-b80c-1cc8c3f4735c,3893a258-a9c7-441a-b80c-1cc8c3f4735c,1,0,f9ad1ef3-7475-4d55-a1ef-eadceda9bf6b,f9ad1ef3-7475-4d55-a1ef-eadceda9bf6b,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,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,37ea0c64-2fec-4c2e-922b-d3a2f01f3e22,37ea0c64-2fec-4c2e-922b-d3a2f01f3e22,1,0,0722315c-9217-4ecf-80ff-d1ee89f84a53,0722315c-9217-4ecf-80ff-d1ee89f84a53,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,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,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,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,6a2add61-edb7-4561-bae9-06b3741e7726,6a2add61-edb7-4561-bae9-06b3741e7726,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,86c679c0-3531-4622-9a1f-3d9d6ccdd431,86c679c0-3531-4622-9a1f-3d9d6ccdd431,1,0,b1230b96-f4c8-4311-bfc0-df33bcc41394,b1230b96-f4c8-4311-bfc0-df33bcc41394,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,ae3876e2-bd06-415b-9d9a-b77d787be09e,ae3876e2-bd06-415b-9d9a-b77d787be09e,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,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,1260b5dd-0a74-43df-bdbb-215b253da28e,1260b5dd-0a74-43df-bdbb-215b253da28e,1,0,e37a7cf1-a7b5-4b6e-b818-0915598c8505,e37a7cf1-a7b5-4b6e-b818-0915598c8505,1,0,240bec31-cd59-477b-8459-8e3278da22dc,240bec31-cd59-477b-8459-8e3278da22dc,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,3b1d0974-6031-4841-b632-aadd4ff13b2c,3b1d0974-6031-4841-b632-aadd4ff13b2c,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,86c86ea2-d14e-4443-b36c-c1c17c4f768a,86c86ea2-d14e-4443-b36c-c1c17c4f768a,1,0,14512818-58b0-44cc-b00d-d37913c57aad,14512818-58b0-44cc-b00d-d37913c57aad,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,bb350b39-1f4d-460a-98c9-8d2308cf22f0,bb350b39-1f4d-460a-98c9-8d2308cf22f0,1,0,343b979a-97e3-4eac-a314-3bd3eea9c15c,343b979a-97e3-4eac-a314-3bd3eea9c15c,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,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,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,f88ccd7a-8d15-4b24-addf-da522a0b4a43,f88ccd7a-8d15-4b24-addf-da522a0b4a43,1,0,00e48a23-eb5b-4a29-b36c-218ab9760f23,00e48a23-eb5b-4a29-b36c-218ab9760f23,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,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,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,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,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,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,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,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,ea2c4c8e-23cc-4884-812e-1e959da48afc,ea2c4c8e-23cc-4884-812e-1e959da48afc,1,0,9474b4f1-b1bb-4fcf-acdb-a149a09b8490,9474b4f1-b1bb-4fcf-acdb-a149a09b8490,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,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,e417e2ab-5e25-40a9-8dc2-9552a4fe1a38,e417e2ab-5e25-40a9-8dc2-9552a4fe1a38,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,8c4c7982-36cc-4dc9-b055-9954f61e6365,8c4c7982-36cc-4dc9-b055-9954f61e6365,1,0,ba51c7f5-0074-4c99-a27d-ddfd4bfcc068,ba51c7f5-0074-4c99-a27d-ddfd4bfcc068,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,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,3b9c03bc-8517-498f-8052-e53854fb0753,3b9c03bc-8517-498f-8052-e53854fb0753,1,0,95a71c2e-aa39-42ec-8889-2390a553f146,95a71c2e-aa39-42ec-8889-2390a553f146,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,6c66ff27-19af-4728-95a8-463fd1c4dcd3,6c66ff27-19af-4728-95a8-463fd1c4dcd3,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,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,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,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,251ca8fe-09eb-45ca-be8b-0d8faf927009,251ca8fe-09eb-45ca-be8b-0d8faf927009,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,a1875d63-4303-46f1-bdea-fc529b5891f3,a1875d63-4303-46f1-bdea-fc529b5891f3,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,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,aae09896-3b22-4d7d-9059-e47660f8b88b,aae09896-3b22-4d7d-9059-e47660f8b88b,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,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,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,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,766c9bee-b0fc-4a7f-b88e-cd8c4aad73b8,766c9bee-b0fc-4a7f-b88e-cd8c4aad73b8,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,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,65dd4904-0837-4de5-a5e5-601151055d94,65dd4904-0837-4de5-a5e5-601151055d94,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,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,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,84395058-d46a-428c-b782-a9fa89fea14a,84395058-d46a-428c-b782-a9fa89fea14a,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,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,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,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,4d660fec-4a76-470e-bba9-3d031941b289,4d660fec-4a76-470e-bba9-3d031941b289,1,0,38bf6d3b-5435-4bac-b9fc-23b80afeb760,38bf6d3b-5435-4bac-b9fc-23b80afeb760,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,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,8d1c01a9-9806-4e5d-bafb-ce6af11d5650,8d1c01a9-9806-4e5d-bafb-ce6af11d5650,1,0,b8b267e3-75af-4140-b515-d99e8e748e84,b8b267e3-75af-4140-b515-d99e8e748e84,1,0,8014684f-e1f1-4163-9083-459a009c0aac,8014684f-e1f1-4163-9083-459a009c0aac,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,e55d259f-cfaa-46f9-92c4-687e1ff3b89d,e55d259f-cfaa-46f9-92c4-687e1ff3b89d,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,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,bbbc2d1f-2f78-4b7e-b5fb-ca7c74051221,bbbc2d1f-2f78-4b7e-b5fb-ca7c74051221,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,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,5f91b00f-d8fc-4d63-8486-66339357ab22,5f91b00f-d8fc-4d63-8486-66339357ab22,1,0,16d44ab1-4bce-4df8-a215-6ed5173c75a8,16d44ab1-4bce-4df8-a215-6ed5173c75a8,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,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,f8ab477c-8e78-48c0-9f99-27748b109706,f8ab477c-8e78-48c0-9f99-27748b109706,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,2d51aae9-650d-4719-a94d-2609b69a2d36,2d51aae9-650d-4719-a94d-2609b69a2d36,1,0,6025f5b5-6dc7-46b8-96e6-02823c5b4de7,6025f5b5-6dc7-46b8-96e6-02823c5b4de7,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,0eea37cc-47f8-4819-85da-d4991f4e58ed,0eea37cc-47f8-4819-85da-d4991f4e58ed,1,0,322645d4-e3fb-467b-a55d-d8e74cff2ea3,322645d4-e3fb-467b-a55d-d8e74cff2ea3,1,0,0f314b6b-5ed1-46ed-bdfd-cf53330c2783,0f314b6b-5ed1-46ed-bdfd-cf53330c2783,1,0,b51eaf45-baa1-4d1c-bcb7-a89bb8bcc26a,b51eaf45-baa1-4d1c-bcb7-a89bb8bcc26a,1,0,5ea29362-0ab7-4ca3-865e-bf93db5ca24b,5ea29362-0ab7-4ca3-865e-bf93db5ca24b,1,0,64ff6058-c6f3-4682-b9a1-11ec438fa447,64ff6058-c6f3-4682-b9a1-11ec438fa447,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,45a2569e-820c-4d7d-ba74-4a781d26bb2b,45a2569e-820c-4d7d-ba74-4a781d26bb2b,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,8a13c899-1659-48cf-9aa2-07ca99547b7b,8a13c899-1659-48cf-9aa2-07ca99547b7b,1,0,eb3f959c-94a4-4e77-b9f9-e81954254079,eb3f959c-94a4-4e77-b9f9-e81954254079,1,0,71dfde27-3762-4dd0-9252-6e703ce1b101,71dfde27-3762-4dd0-9252-6e703ce1b101,1,0,d8fc4644-5351-443c-8b5d-5de2c4b855d1,d8fc4644-5351-443c-8b5d-5de2c4b855d1,1,0,0f039952-09d3-49c8-b909-e8333a3fc8f9,0f039952-09d3-49c8-b909-e8333a3fc8f9,1,0,9cd2fc77-a4b0-457e-a6b0-63dbf521bf90,9cd2fc77-a4b0-457e-a6b0-63dbf521bf90,1,0,8363bd46-1ea5-44f0-858a-05bc03f6020e,8363bd46-1ea5-44f0-858a-05bc03f6020e,1,0,a321b6db-391b-4c65-8d27-ce486d10055e,a321b6db-391b-4c65-8d27-ce486d10055e,1,0,800ef5f0-fdd1-4f8b-8c0b-9744952bfb5b,800ef5f0-fdd1-4f8b-8c0b-9744952bfb5b,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,f5ef3f75-7d12-4284-844f-54d19d1f7e2f,f5ef3f75-7d12-4284-844f-54d19d1f7e2f,1,0,7974e41d-5af3-4636-b405-c9405d89fb53,7974e41d-5af3-4636-b405-c9405d89fb53,1,0,21fad9b6-44df-417c-ba18-de4b8af98a34,21fad9b6-44df-417c-ba18-de4b8af98a34,1,0,11c086b0-c646-4701-983d-c38758286354,11c086b0-c646-4701-983d-c38758286354,1,0,826c2821-147d-4aaf-910c-acfbdb58a29f,826c2821-147d-4aaf-910c-acfbdb58a29f,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,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,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,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,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,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,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,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,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,a2c42946-1cdb-457a-a45b-97781cfb4a15,a2c42946-1cdb-457a-a45b-97781cfb4a15,1,0,20adf54c-044c-4bea-8028-b6d20917a030,20adf54c-044c-4bea-8028-b6d20917a030,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,a666af62-aa5d-4b2b-b9e5-017d1c93ae6a,a666af62-aa5d-4b2b-b9e5-017d1c93ae6a,1,0,7604b15a-8c5e-4515-84b9-c1d36f9efd0a,7604b15a-8c5e-4515-84b9-c1d36f9efd0a,1,0,a1a44832-6026-47ae-affd-5b6d52e84307,a1a44832-6026-47ae-affd-5b6d52e84307,1,0,d2fd8650-d13a-411d-8206-61b16016bd82,d2fd8650-d13a-411d-8206-61b16016bd82,1,0,f98bcdb8-6eed-4b4f-b3da-d80b5e8bed44,f98bcdb8-6eed-4b4f-b3da-d80b5e8bed44,1,0,fbaa5b0a-56dc-4bf1-b1b2-e48073f63d13,fbaa5b0a-56dc-4bf1-b1b2-e48073f63d13,1,0,a92acf0e-9132-4456-9a82-1543d98ca453,a92acf0e-9132-4456-9a82-1543d98ca453,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,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,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,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,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,62a71ba7-3226-4d10-8cc9-ac9908a00ae7,62a71ba7-3226-4d10-8cc9-ac9908a00ae7,1,0,6ce1d71d-7548-4ee7-be78-21ae23d5a08d,6ce1d71d-7548-4ee7-be78-21ae23d5a08d,1,0,f5ad6743-b19b-44c4-b3d1-2e39d74a4abd,f5ad6743-b19b-44c4-b3d1-2e39d74a4abd,1,0,4b89b7fb-31d9-43c7-9f7e-b0c31fa3331d,4b89b7fb-31d9-43c7-9f7e-b0c31fa3331d,1,0,19b29d30-e395-42f2-b700-7474bb2cdcb7,19b29d30-e395-42f2-b700-7474bb2cdcb7,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,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,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,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,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,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,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,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,0526492c-be48-4c84-8d68-19fa1c7e9d6e,0526492c-be48-4c84-8d68-19fa1c7e9d6e,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,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,526c688e-a4d4-45f7-8bba-b8ceff38fe27,526c688e-a4d4-45f7-8bba-b8ceff38fe27,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,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,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,5c17a594-eb0b-4cdf-af35-0eaba968e065,5c17a594-eb0b-4cdf-af35-0eaba968e065,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,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,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,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,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,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,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,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,e6a53f32-0b7d-499d-844e-fb8df13a3519,e6a53f32-0b7d-499d-844e-fb8df13a3519,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,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,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,179868b7-d342-4df0-9386-c114d75faf3a,179868b7-d342-4df0-9386-c114d75faf3a,1,0,bbc4cc8c-31c2-4fcf-b86c-9ec65b2772b0,bbc4cc8c-31c2-4fcf-b86c-9ec65b2772b0,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,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,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,c4753515-a483-453e-a48b-b12d8ef48fd9,c4753515-a483-453e-a48b-b12d8ef48fd9,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,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,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,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,a5667633-9264-4dfa-9e26-c45e96e61ae3,a5667633-9264-4dfa-9e26-c45e96e61ae3,1,0,2eeea138-481c-4fde-9e8a-709d751cc469,2eeea138-481c-4fde-9e8a-709d751cc469,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,07e81872-afac-4720-86b4-91e7bf4a2881,07e81872-afac-4720-86b4-91e7bf4a2881,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,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,778e79ee-eb1a-4d52-8a31-58e781c78fe4,778e79ee-eb1a-4d52-8a31-58e781c78fe4,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,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,ce1ffc4e-56c2-45ce-80e8-8b96d00316bc,ce1ffc4e-56c2-45ce-80e8-8b96d00316bc,1,0,90420fe9-f75a-4bcc-8e1a-9d665a61ecef,90420fe9-f75a-4bcc-8e1a-9d665a61ecef,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,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,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,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,5c4ecf15-b92d-4610-b2bb-f2331c5c7528,5c4ecf15-b92d-4610-b2bb-f2331c5c7528,1,0,a8c09e65-6e10-4772-b264-6ead83d52fe3,a8c09e65-6e10-4772-b264-6ead83d52fe3,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,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,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,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,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,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,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,1773ff66-ebe4-46e1-b505-d07d87c7fe3e,1773ff66-ebe4-46e1-b505-d07d87c7fe3e,1,0,f5b66759-8102-4cba-a3fd-ee96db5bc809,f5b66759-8102-4cba-a3fd-ee96db5bc809,1,0,6c205eae-9113-46c1-a245-25d29173646e,6c205eae-9113-46c1-a245-25d29173646e,1,0,4cc4aa90-49fb-4602-9f9c-d4d47d223988,4cc4aa90-49fb-4602-9f9c-d4d47d223988,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,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,f660bf92-7de1-4a22-9cea-777069e4679d,f660bf92-7de1-4a22-9cea-777069e4679d,1,0,54f3fbe7-ac93-44f6-ba6e-37cb99f3569c,54f3fbe7-ac93-44f6-ba6e-37cb99f3569c,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,61892a62-9381-401d-af31-9073ef2509fb,61892a62-9381-401d-af31-9073ef2509fb,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,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,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,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,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,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,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,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,afe79ef0-7830-43ce-85f3-c4c97831aa67,afe79ef0-7830-43ce-85f3-c4c97831aa67,1,0,0d7c3192-b15b-4d40-83f9-b76c6f8e654f,0d7c3192-b15b-4d40-83f9-b76c6f8e654f,1,0,fe07f268-bcfd-40c6-adf3-79df859ff731,fe07f268-bcfd-40c6-adf3-79df859ff731,1,0,1a1c88ff-b0c4-42c3-bf10-ebdf4de935b7,1a1c88ff-b0c4-42c3-bf10-ebdf4de935b7,1,0,15e90374-99d9-48f7-b7d6-ec160cdb378f,15e90374-99d9-48f7-b7d6-ec160cdb378f,1,0,ad5b6b8e-c2b5-45aa-8e07-50ae8877ac8f,ad5b6b8e-c2b5-45aa-8e07-50ae8877ac8f,1,0,6c470f57-c920-435a-a013-ff83a737cf3a,6c470f57-c920-435a-a013-ff83a737cf3a,1,0,a5e13e12-72b7-477d-8d80-06015fa5dece,a5e13e12-72b7-477d-8d80-06015fa5dece,1,0,d9c47acd-b5ee-4ea1-b247-7cc09a13eb82,d9c47acd-b5ee-4ea1-b247-7cc09a13eb82,1,0,4a81906a-7db7-4e7d-a95e-79b07a43e573,4a81906a-7db7-4e7d-a95e-79b07a43e573,1,0,0bcabdf4-3348-405d-ba75-7bcc106f9e7f,0bcabdf4-3348-405d-ba75-7bcc106f9e7f,1,0,5f2980ca-3f1c-4680-a6e9-477825442782,5f2980ca-3f1c-4680-a6e9-477825442782,1,0,40fd6b4a-2180-4403-b7e6-48b42d8285b7,40fd6b4a-2180-4403-b7e6-48b42d8285b7,1,0,ef098c52-fcfa-4f0f-85b0-aba0d5aa46b2,ef098c52-fcfa-4f0f-85b0-aba0d5aa46b2,1,0,a671cb1e-b27a-44bb-a8ca-1388f099de2e,a671cb1e-b27a-44bb-a8ca-1388f099de2e,1,0,6cff6b09-91b5-4f2b-89aa-23d2f83f9d89,6cff6b09-91b5-4f2b-89aa-23d2f83f9d89,1,0,a4b6920e-3e25-4798-809a-27d7bfae4ee7,a4b6920e-3e25-4798-809a-27d7bfae4ee7,1,0,981f6e35-64b8-4d63-b383-32ea71fcd025,981f6e35-64b8-4d63-b383-32ea71fcd025,1,0,9a7b964d-1c06-44af-8d25-f84493c70a42,9a7b964d-1c06-44af-8d25-f84493c70a42,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,0f6f8fd9-b3af-4d06-bc47-bdad238d15b7,0f6f8fd9-b3af-4d06-bc47-bdad238d15b7,1,0,460e76d2-4ed6-464e-bf9c-a6bcf920aaf2,460e76d2-4ed6-464e-bf9c-a6bcf920aaf2,1,0,80c23bf0-cef0-4d07-a017-d90635f8041d,80c23bf0-cef0-4d07-a017-d90635f8041d,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,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,18ba2c0c-d606-47ee-9409-66acb24bd794,18ba2c0c-d606-47ee-9409-66acb24bd794,1,0,9f24891c-3846-455a-bf95-be3b186f4342,9f24891c-3846-455a-bf95-be3b186f4342,1,0,ddc332d9-1d60-40fe-87fd-7f2164db1edf,ddc332d9-1d60-40fe-87fd-7f2164db1edf,1,0,d0e3c3a5-e74c-4c0a-8679-77e6a097eb36,d0e3c3a5-e74c-4c0a-8679-77e6a097eb36,1,0,20c43755-49cc-4f11-bd2f-52a9e53547ef,20c43755-49cc-4f11-bd2f-52a9e53547ef,1,0,7dbed991-4883-444c-8ce2-96c203a905f2,7dbed991-4883-444c-8ce2-96c203a905f2,1,0,bbadd00d-6410-41ec-a7d8-4dbd52986cc2,bbadd00d-6410-41ec-a7d8-4dbd52986cc2,1,0,d5f66278-4ab2-407a-abef-eb7636e9ba95,d5f66278-4ab2-407a-abef-eb7636e9ba95,1,0,61e51391-c412-46a5-8290-d5183ad0db83,61e51391-c412-46a5-8290-d5183ad0db83,1,0,e9dfdaa2-4094-4501-a38a-3811e7e4c708,e9dfdaa2-4094-4501-a38a-3811e7e4c708,1,0,0a62947e-848a-47fa-a239-95aee6b955d4,0a62947e-848a-47fa-a239-95aee6b955d4,1,0,beaef14b-175f-4ebe-b387-9c922a42c99e,beaef14b-175f-4ebe-b387-9c922a42c99e,1,0,13daaad0-2726-4065-8158-47059865452a,13daaad0-2726-4065-8158-47059865452a,1,0,a7829dfb-adb9-4401-a609-ca9a0f2376b3,a7829dfb-adb9-4401-a609-ca9a0f2376b3,1,0,26f1076a-8100-4cf4-9539-29637a5e9137,26f1076a-8100-4cf4-9539-29637a5e9137,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,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,d7a72321-5f1f-427e-a54d-f308dab1b9c4,d7a72321-5f1f-427e-a54d-f308dab1b9c4,1,0,b183eb38-a96e-4e12-9220-4b4027ae875c,b183eb38-a96e-4e12-9220-4b4027ae875c,1,0,07f7e1b5-07b0-4017-bb91-31759c4ffed1,07f7e1b5-07b0-4017-bb91-31759c4ffed1,1,0,6de76d43-40d5-494f-8d30-2ef80c79bc7e,6de76d43-40d5-494f-8d30-2ef80c79bc7e,1,0,60146806-ee46-44d5-8a7a-2ed48741e1c1,60146806-ee46-44d5-8a7a-2ed48741e1c1,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,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,b1dd4569-6ed9-49f4-b05b-359229afb7a5,b1dd4569-6ed9-49f4-b05b-359229afb7a5,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,81c1f13c-e4ac-46b8-a205-c4f695ddf667,81c1f13c-e4ac-46b8-a205-c4f695ddf667,1,0,a26d8489-88a8-438e-bb58-c7b5a742a243,a26d8489-88a8-438e-bb58-c7b5a742a243,1,0,4b700bfd-5179-4504-b710-fd65036dded7,4b700bfd-5179-4504-b710-fd65036dded7,1,0,b046cb0b-f88b-4fb1-b08d-bb02b20dee74,b046cb0b-f88b-4fb1-b08d-bb02b20dee74,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,1cd36cf8-ae51-4fca-91d8-60c82f9e21e1,1cd36cf8-ae51-4fca-91d8-60c82f9e21e1,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,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,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,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,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,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,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,35dbc542-3ad9-4a72-9863-229a67cda425,35dbc542-3ad9-4a72-9863-229a67cda425,1,0,8e4277e9-983a-4d43-b08e-a4f918df87bf,8e4277e9-983a-4d43-b08e-a4f918df87bf,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,304feda3-6d33-466c-9e0d-9cea97d763be,304feda3-6d33-466c-9e0d-9cea97d763be,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,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,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,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,eaa11272-8cc2-4f82-808f-e4f641748574,eaa11272-8cc2-4f82-808f-e4f641748574,1,0,9dfd78a7-74ba-4c7a-8842-4baf4ffd5e4f,9dfd78a7-74ba-4c7a-8842-4baf4ffd5e4f,1,0,7d422da3-8ec4-4bc8-94ba-88d92625d4c7,7d422da3-8ec4-4bc8-94ba-88d92625d4c7,1,0,8035e1ce-a36a-4628-8196-1f04f50e230a,8035e1ce-a36a-4628-8196-1f04f50e230a,1,0,51f08b3c-2f03-408e-89d5-53ccbaec4e74,51f08b3c-2f03-408e-89d5-53ccbaec4e74,1,0,920ebc04-3018-4948-bae2-16de8f0f0c9a,920ebc04-3018-4948-bae2-16de8f0f0c9a,1,0,4c4fc449-05a5-4223-bd28-c73d27780a9b,4c4fc449-05a5-4223-bd28-c73d27780a9b,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,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,d126a11e-c770-4309-941f-cbcdd5cbad5d,d126a11e-c770-4309-941f-cbcdd5cbad5d,1,0,f4d88096-bff9-416a-8f75-9143ede1213f,f4d88096-bff9-416a-8f75-9143ede1213f,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,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,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,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,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,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,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,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,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,b67fb4f8-e895-4a8e-9230-31bc5cde4953,b67fb4f8-e895-4a8e-9230-31bc5cde4953,1,0,f3c9fde1-6d0e-4319-a798-ed8e330750de,f3c9fde1-6d0e-4319-a798-ed8e330750de,1,0,50d1bd75-3523-41c0-8da1-500731c0872b,50d1bd75-3523-41c0-8da1-500731c0872b,1,0,1a8d3872-6e19-4a49-b0ea-b120b6c09d7f,1a8d3872-6e19-4a49-b0ea-b120b6c09d7f,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,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,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,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,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,2b37c085-7c70-4004-93d3-24418b7b3ef2,2b37c085-7c70-4004-93d3-24418b7b3ef2,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,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,b50f3157-3c3a-4553-a16a-7fcd660e2824,b50f3157-3c3a-4553-a16a-7fcd660e2824,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,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,cb65fbad-69a0-47d8-b4a9-da49274c3eb7,cb65fbad-69a0-47d8-b4a9-da49274c3eb7,1,0,872521e3-413c-45ac-a6ea-39fe1324bae8,872521e3-413c-45ac-a6ea-39fe1324bae8,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,2902460a-ed86-41cf-8e8f-895adab9a72f,2902460a-ed86-41cf-8e8f-895adab9a72f,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,79ad09ba-875a-46bd-9cd9-9d084bf4f6ea,79ad09ba-875a-46bd-9cd9-9d084bf4f6ea,1,0,f237a21e-066a-48e6-a5c4-5dc2487c7a3b,f237a21e-066a-48e6-a5c4-5dc2487c7a3b,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,af805f10-3ec1-11eb-d398-0242ac110002,1,a2bc0a72-3ec1-11eb-0294-0242ac110002,"3.1.4.96","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6267,1,0,6cd94226-3ec1-11eb-529c-0242ac110002,6cd94226-3ec1-11eb-529c-0242ac110002,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,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,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,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,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,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,61cd6eab-6bab-4382-986e-4c7fc44f369b,61cd6eab-6bab-4382-986e-4c7fc44f369b,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,a4e4c91c-fd95-4369-98e3-51ffba79937b,a4e4c91c-fd95-4369-98e3-51ffba79937b,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,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,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,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,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,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,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,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,ea868745-71fc-483c-aa6e-f242c06c673f,ea868745-71fc-483c-aa6e-f242c06c673f,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,c9a03f19-42bb-4e07-8ce8-1b954e431ada,c9a03f19-42bb-4e07-8ce8-1b954e431ada,1,0,455a1ca6-7212-43ac-b5a2-cf85dd2f9c14,455a1ca6-7212-43ac-b5a2-cf85dd2f9c14,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,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,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,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,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,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,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,da0686ce-25e2-4d2c-b152-283f5e4cf4b1,da0686ce-25e2-4d2c-b152-283f5e4cf4b1,1,0,07288e13-583c-4caf-983a-76c5d2ebf66f,07288e13-583c-4caf-983a-76c5d2ebf66f,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,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,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,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,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,e91118e9-d054-41a1-bfe9-343179718f33,e91118e9-d054-41a1-bfe9-343179718f33,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,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,042245ef-3a30-46fb-b3e3-6599d5426cbd,042245ef-3a30-46fb-b3e3-6599d5426cbd,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,697bd1de-bbef-4362-aa39-71f6008f4bd7,697bd1de-bbef-4362-aa39-71f6008f4bd7,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,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,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,d1034240-ab06-413a-9828-a5c7dc879680,d1034240-ab06-413a-9828-a5c7dc879680,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,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,ab5b0155-a4b1-47a1-ad87-12365dde20c1,ab5b0155-a4b1-47a1-ad87-12365dde20c1,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,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,e7c366f7-c8e3-4ffe-bc5e-ca8a4619ec11,e7c366f7-c8e3-4ffe-bc5e-ca8a4619ec11,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,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,c4b01e52-4136-460d-bd82-970177f1e256,c4b01e52-4136-460d-bd82-970177f1e256,1,0,9533784b-311a-4dbe-b73e-7348aabd387e,9533784b-311a-4dbe-b73e-7348aabd387e,1,0,67b04258-04cc-4d85-9bd0-0862a104a5c9,67b04258-04cc-4d85-9bd0-0862a104a5c9,1,0,6ee215f9-20ab-4c48-b2c2-cb1869e8906c,6ee215f9-20ab-4c48-b2c2-cb1869e8906c,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,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,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,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,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,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,ea07cd11-418c-4e4f-be9f-c160ee8a64e8,ea07cd11-418c-4e4f-be9f-c160ee8a64e8,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,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,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,ea0a498a-a1cb-4f28-88cb-0bc62971172b,ea0a498a-a1cb-4f28-88cb-0bc62971172b,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,ede6a379-b0e5-4b8d-a454-779c0fd8b0b3,ede6a379-b0e5-4b8d-a454-779c0fd8b0b3,1,0,4fb8564e-2338-4c23-84a4-31f768047ced,4fb8564e-2338-4c23-84a4-31f768047ced,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,f0152598-ffa3-4eb7-811f-906e569373e6,f0152598-ffa3-4eb7-811f-906e569373e6,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,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,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,bbec9c3d-31dd-484e-ab32-41ef845f1370,bbec9c3d-31dd-484e-ab32-41ef845f1370,1,0,8692ba41-d91d-4af0-8aba-69dd5409d593,8692ba41-d91d-4af0-8aba-69dd5409d593,1,0,68e207e7-8c20-426d-8a0e-c3dd4d683631,68e207e7-8c20-426d-8a0e-c3dd4d683631,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,db82191f-77bd-44da-8b33-86f01018e25a,db82191f-77bd-44da-8b33-86f01018e25a,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,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,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,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,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,88b879b7-1bb3-4478-b569-35bdb5c56939,88b879b7-1bb3-4478-b569-35bdb5c56939,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,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,c0e01a15-6937-4331-bdd7-2f5a68d0d3dd,c0e01a15-6937-4331-bdd7-2f5a68d0d3dd,1,0,d065c02e-9991-468a-ae32-b8c29d078d03,d065c02e-9991-468a-ae32-b8c29d078d03,1,0,c509683e-eb13-4e1a-91ed-cd6982ec5001,c509683e-eb13-4e1a-91ed-cd6982ec5001,1,0,88bf6f58-7943-42c4-bc0f-56b991590026,88bf6f58-7943-42c4-bc0f-56b991590026,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,77adf47b-6015-46fc-9e29-f1c025ea0d81,77adf47b-6015-46fc-9e29-f1c025ea0d81,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,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,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,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,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,cbca7272-2aae-4e21-b3f5-12786f085648,cbca7272-2aae-4e21-b3f5-12786f085648,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,edf81bbb-905a-474d-959a-db5629a8e104,edf81bbb-905a-474d-959a-db5629a8e104,1,0,4c8eb34e-0bb6-487a-a2ae-24083b1f6d2e,4c8eb34e-0bb6-487a-a2ae-24083b1f6d2e,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,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,1d715463-691b-4c01-ae39-57c261f2a6ad,1d715463-691b-4c01-ae39-57c261f2a6ad,1,0,4c3d007f-a62c-4fd9-beda-58dbf08ad188,4c3d007f-a62c-4fd9-beda-58dbf08ad188,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,87dad256-122b-4d7e-b249-a2c313a9cf33,87dad256-122b-4d7e-b249-a2c313a9cf33,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,06323ebd-5f74-494a-99a5-eb77e23d8637,06323ebd-5f74-494a-99a5-eb77e23d8637,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,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,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,b98ca634-25a5-4366-af04-815ba34c8bb2,b98ca634-25a5-4366-af04-815ba34c8bb2,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,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,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,f2dc9319-ba60-421a-8340-be3e3a291393,f2dc9319-ba60-421a-8340-be3e3a291393,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,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,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,9162a85e-a385-42b0-b809-da916fce44b7,9162a85e-a385-42b0-b809-da916fce44b7,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,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,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,137ec4ee-5053-47a7-8f5d-f6e63174608f,137ec4ee-5053-47a7-8f5d-f6e63174608f,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,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,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,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,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,4e36184e-d818-4f38-9257-6d91d9cc85ae,4e36184e-d818-4f38-9257-6d91d9cc85ae,1,0,afcba8a1-5d3e-4a76-9be9-5fbda20d55bd,afcba8a1-5d3e-4a76-9be9-5fbda20d55bd,1,0,cbdc8d7e-b685-4c8d-9f47-d8bfb08300d4,cbdc8d7e-b685-4c8d-9f47-d8bfb08300d4,1,0,3893a258-a9c7-441a-b80c-1cc8c3f4735c,3893a258-a9c7-441a-b80c-1cc8c3f4735c,1,0,f9ad1ef3-7475-4d55-a1ef-eadceda9bf6b,f9ad1ef3-7475-4d55-a1ef-eadceda9bf6b,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,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,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,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,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,6a2add61-edb7-4561-bae9-06b3741e7726,6a2add61-edb7-4561-bae9-06b3741e7726,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,86c679c0-3531-4622-9a1f-3d9d6ccdd431,86c679c0-3531-4622-9a1f-3d9d6ccdd431,1,0,b1230b96-f4c8-4311-bfc0-df33bcc41394,b1230b96-f4c8-4311-bfc0-df33bcc41394,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,ae3876e2-bd06-415b-9d9a-b77d787be09e,ae3876e2-bd06-415b-9d9a-b77d787be09e,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,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,1260b5dd-0a74-43df-bdbb-215b253da28e,1260b5dd-0a74-43df-bdbb-215b253da28e,1,0,e37a7cf1-a7b5-4b6e-b818-0915598c8505,e37a7cf1-a7b5-4b6e-b818-0915598c8505,1,0,240bec31-cd59-477b-8459-8e3278da22dc,240bec31-cd59-477b-8459-8e3278da22dc,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,3b1d0974-6031-4841-b632-aadd4ff13b2c,3b1d0974-6031-4841-b632-aadd4ff13b2c,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,86c86ea2-d14e-4443-b36c-c1c17c4f768a,86c86ea2-d14e-4443-b36c-c1c17c4f768a,1,0,14512818-58b0-44cc-b00d-d37913c57aad,14512818-58b0-44cc-b00d-d37913c57aad,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,bb350b39-1f4d-460a-98c9-8d2308cf22f0,bb350b39-1f4d-460a-98c9-8d2308cf22f0,1,0,eaeb5aa8-8edf-4f74-8011-2d476f543bf6,eaeb5aa8-8edf-4f74-8011-2d476f543bf6,1,0,343b979a-97e3-4eac-a314-3bd3eea9c15c,343b979a-97e3-4eac-a314-3bd3eea9c15c,1,0,b2f17ef1-3f6f-4029-b3e2-28d6b79c5b76,b2f17ef1-3f6f-4029-b3e2-28d6b79c5b76,1,0,7adced5f-3a5f-419a-926c-0452aad86c86,7adced5f-3a5f-419a-926c-0452aad86c86,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,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,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,f88ccd7a-8d15-4b24-addf-da522a0b4a43,f88ccd7a-8d15-4b24-addf-da522a0b4a43,1,0,00e48a23-eb5b-4a29-b36c-218ab9760f23,00e48a23-eb5b-4a29-b36c-218ab9760f23,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,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,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,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,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,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,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,ea2c4c8e-23cc-4884-812e-1e959da48afc,ea2c4c8e-23cc-4884-812e-1e959da48afc,1,0,9474b4f1-b1bb-4fcf-acdb-a149a09b8490,9474b4f1-b1bb-4fcf-acdb-a149a09b8490,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,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,e417e2ab-5e25-40a9-8dc2-9552a4fe1a38,e417e2ab-5e25-40a9-8dc2-9552a4fe1a38,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,8c4c7982-36cc-4dc9-b055-9954f61e6365,8c4c7982-36cc-4dc9-b055-9954f61e6365,1,0,ba51c7f5-0074-4c99-a27d-ddfd4bfcc068,ba51c7f5-0074-4c99-a27d-ddfd4bfcc068,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,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,3b9c03bc-8517-498f-8052-e53854fb0753,3b9c03bc-8517-498f-8052-e53854fb0753,1,0,95a71c2e-aa39-42ec-8889-2390a553f146,95a71c2e-aa39-42ec-8889-2390a553f146,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,6c66ff27-19af-4728-95a8-463fd1c4dcd3,6c66ff27-19af-4728-95a8-463fd1c4dcd3,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,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,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,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,251ca8fe-09eb-45ca-be8b-0d8faf927009,251ca8fe-09eb-45ca-be8b-0d8faf927009,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,a1875d63-4303-46f1-bdea-fc529b5891f3,a1875d63-4303-46f1-bdea-fc529b5891f3,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,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,aae09896-3b22-4d7d-9059-e47660f8b88b,aae09896-3b22-4d7d-9059-e47660f8b88b,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,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,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,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,766c9bee-b0fc-4a7f-b88e-cd8c4aad73b8,766c9bee-b0fc-4a7f-b88e-cd8c4aad73b8,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,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,65dd4904-0837-4de5-a5e5-601151055d94,65dd4904-0837-4de5-a5e5-601151055d94,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,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,84395058-d46a-428c-b782-a9fa89fea14a,84395058-d46a-428c-b782-a9fa89fea14a,1,0,0b92cced-d818-400c-82b6-7726e912a478,0b92cced-d818-400c-82b6-7726e912a478,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,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,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,4d660fec-4a76-470e-bba9-3d031941b289,4d660fec-4a76-470e-bba9-3d031941b289,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,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,8d1c01a9-9806-4e5d-bafb-ce6af11d5650,8d1c01a9-9806-4e5d-bafb-ce6af11d5650,1,0,b8b267e3-75af-4140-b515-d99e8e748e84,b8b267e3-75af-4140-b515-d99e8e748e84,1,0,8014684f-e1f1-4163-9083-459a009c0aac,8014684f-e1f1-4163-9083-459a009c0aac,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,e55d259f-cfaa-46f9-92c4-687e1ff3b89d,e55d259f-cfaa-46f9-92c4-687e1ff3b89d,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,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,bbbc2d1f-2f78-4b7e-b5fb-ca7c74051221,bbbc2d1f-2f78-4b7e-b5fb-ca7c74051221,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,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,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,f8ab477c-8e78-48c0-9f99-27748b109706,f8ab477c-8e78-48c0-9f99-27748b109706,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,2d51aae9-650d-4719-a94d-2609b69a2d36,2d51aae9-650d-4719-a94d-2609b69a2d36,1,0,6025f5b5-6dc7-46b8-96e6-02823c5b4de7,6025f5b5-6dc7-46b8-96e6-02823c5b4de7,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,0eea37cc-47f8-4819-85da-d4991f4e58ed,0eea37cc-47f8-4819-85da-d4991f4e58ed,1,0,322645d4-e3fb-467b-a55d-d8e74cff2ea3,322645d4-e3fb-467b-a55d-d8e74cff2ea3,1,0,0f314b6b-5ed1-46ed-bdfd-cf53330c2783,0f314b6b-5ed1-46ed-bdfd-cf53330c2783,1,0,b51eaf45-baa1-4d1c-bcb7-a89bb8bcc26a,b51eaf45-baa1-4d1c-bcb7-a89bb8bcc26a,1,0,5ea29362-0ab7-4ca3-865e-bf93db5ca24b,5ea29362-0ab7-4ca3-865e-bf93db5ca24b,1,0,64ff6058-c6f3-4682-b9a1-11ec438fa447,64ff6058-c6f3-4682-b9a1-11ec438fa447,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,45a2569e-820c-4d7d-ba74-4a781d26bb2b,45a2569e-820c-4d7d-ba74-4a781d26bb2b,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,8a13c899-1659-48cf-9aa2-07ca99547b7b,8a13c899-1659-48cf-9aa2-07ca99547b7b,1,0,eb3f959c-94a4-4e77-b9f9-e81954254079,eb3f959c-94a4-4e77-b9f9-e81954254079,1,0,71dfde27-3762-4dd0-9252-6e703ce1b101,71dfde27-3762-4dd0-9252-6e703ce1b101,1,0,d8fc4644-5351-443c-8b5d-5de2c4b855d1,d8fc4644-5351-443c-8b5d-5de2c4b855d1,1,0,0f039952-09d3-49c8-b909-e8333a3fc8f9,0f039952-09d3-49c8-b909-e8333a3fc8f9,1,0,9cd2fc77-a4b0-457e-a6b0-63dbf521bf90,9cd2fc77-a4b0-457e-a6b0-63dbf521bf90,1,0,8363bd46-1ea5-44f0-858a-05bc03f6020e,8363bd46-1ea5-44f0-858a-05bc03f6020e,1,0,a321b6db-391b-4c65-8d27-ce486d10055e,a321b6db-391b-4c65-8d27-ce486d10055e,1,0,800ef5f0-fdd1-4f8b-8c0b-9744952bfb5b,800ef5f0-fdd1-4f8b-8c0b-9744952bfb5b,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,f5ef3f75-7d12-4284-844f-54d19d1f7e2f,f5ef3f75-7d12-4284-844f-54d19d1f7e2f,1,0,7974e41d-5af3-4636-b405-c9405d89fb53,7974e41d-5af3-4636-b405-c9405d89fb53,1,0,21fad9b6-44df-417c-ba18-de4b8af98a34,21fad9b6-44df-417c-ba18-de4b8af98a34,1,0,11c086b0-c646-4701-983d-c38758286354,11c086b0-c646-4701-983d-c38758286354,1,0,826c2821-147d-4aaf-910c-acfbdb58a29f,826c2821-147d-4aaf-910c-acfbdb58a29f,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,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,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,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,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,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,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,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,a2c42946-1cdb-457a-a45b-97781cfb4a15,a2c42946-1cdb-457a-a45b-97781cfb4a15,1,0,20adf54c-044c-4bea-8028-b6d20917a030,20adf54c-044c-4bea-8028-b6d20917a030,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,a666af62-aa5d-4b2b-b9e5-017d1c93ae6a,a666af62-aa5d-4b2b-b9e5-017d1c93ae6a,1,0,7604b15a-8c5e-4515-84b9-c1d36f9efd0a,7604b15a-8c5e-4515-84b9-c1d36f9efd0a,1,0,a1a44832-6026-47ae-affd-5b6d52e84307,a1a44832-6026-47ae-affd-5b6d52e84307,1,0,d2fd8650-d13a-411d-8206-61b16016bd82,d2fd8650-d13a-411d-8206-61b16016bd82,1,0,f98bcdb8-6eed-4b4f-b3da-d80b5e8bed44,f98bcdb8-6eed-4b4f-b3da-d80b5e8bed44,1,0,fbaa5b0a-56dc-4bf1-b1b2-e48073f63d13,fbaa5b0a-56dc-4bf1-b1b2-e48073f63d13,1,0,a92acf0e-9132-4456-9a82-1543d98ca453,a92acf0e-9132-4456-9a82-1543d98ca453,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,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,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,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,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,62a71ba7-3226-4d10-8cc9-ac9908a00ae7,62a71ba7-3226-4d10-8cc9-ac9908a00ae7,1,0,6ce1d71d-7548-4ee7-be78-21ae23d5a08d,6ce1d71d-7548-4ee7-be78-21ae23d5a08d,1,0,f5ad6743-b19b-44c4-b3d1-2e39d74a4abd,f5ad6743-b19b-44c4-b3d1-2e39d74a4abd,1,0,4b89b7fb-31d9-43c7-9f7e-b0c31fa3331d,4b89b7fb-31d9-43c7-9f7e-b0c31fa3331d,1,0,19b29d30-e395-42f2-b700-7474bb2cdcb7,19b29d30-e395-42f2-b700-7474bb2cdcb7,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,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,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,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,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,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,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,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,0526492c-be48-4c84-8d68-19fa1c7e9d6e,0526492c-be48-4c84-8d68-19fa1c7e9d6e,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,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,526c688e-a4d4-45f7-8bba-b8ceff38fe27,526c688e-a4d4-45f7-8bba-b8ceff38fe27,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,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,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,5c17a594-eb0b-4cdf-af35-0eaba968e065,5c17a594-eb0b-4cdf-af35-0eaba968e065,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,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,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,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,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,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,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,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,e6a53f32-0b7d-499d-844e-fb8df13a3519,e6a53f32-0b7d-499d-844e-fb8df13a3519,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,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,179868b7-d342-4df0-9386-c114d75faf3a,179868b7-d342-4df0-9386-c114d75faf3a,1,0,bbc4cc8c-31c2-4fcf-b86c-9ec65b2772b0,bbc4cc8c-31c2-4fcf-b86c-9ec65b2772b0,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,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,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,c4753515-a483-453e-a48b-b12d8ef48fd9,c4753515-a483-453e-a48b-b12d8ef48fd9,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,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,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,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,a5667633-9264-4dfa-9e26-c45e96e61ae3,a5667633-9264-4dfa-9e26-c45e96e61ae3,1,0,2eeea138-481c-4fde-9e8a-709d751cc469,2eeea138-481c-4fde-9e8a-709d751cc469,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,07e81872-afac-4720-86b4-91e7bf4a2881,07e81872-afac-4720-86b4-91e7bf4a2881,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,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,778e79ee-eb1a-4d52-8a31-58e781c78fe4,778e79ee-eb1a-4d52-8a31-58e781c78fe4,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,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,ce1ffc4e-56c2-45ce-80e8-8b96d00316bc,ce1ffc4e-56c2-45ce-80e8-8b96d00316bc,1,0,90420fe9-f75a-4bcc-8e1a-9d665a61ecef,90420fe9-f75a-4bcc-8e1a-9d665a61ecef,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,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,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,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,5c4ecf15-b92d-4610-b2bb-f2331c5c7528,5c4ecf15-b92d-4610-b2bb-f2331c5c7528,1,0,a8c09e65-6e10-4772-b264-6ead83d52fe3,a8c09e65-6e10-4772-b264-6ead83d52fe3,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,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,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,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,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,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,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,1773ff66-ebe4-46e1-b505-d07d87c7fe3e,1773ff66-ebe4-46e1-b505-d07d87c7fe3e,1,0,f5b66759-8102-4cba-a3fd-ee96db5bc809,f5b66759-8102-4cba-a3fd-ee96db5bc809,1,0,6c205eae-9113-46c1-a245-25d29173646e,6c205eae-9113-46c1-a245-25d29173646e,1,0,4cc4aa90-49fb-4602-9f9c-d4d47d223988,4cc4aa90-49fb-4602-9f9c-d4d47d223988,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,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,f660bf92-7de1-4a22-9cea-777069e4679d,f660bf92-7de1-4a22-9cea-777069e4679d,1,0,54f3fbe7-ac93-44f6-ba6e-37cb99f3569c,54f3fbe7-ac93-44f6-ba6e-37cb99f3569c,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,61892a62-9381-401d-af31-9073ef2509fb,61892a62-9381-401d-af31-9073ef2509fb,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,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,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,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,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,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,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,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,afe79ef0-7830-43ce-85f3-c4c97831aa67,afe79ef0-7830-43ce-85f3-c4c97831aa67,1,0,0d7c3192-b15b-4d40-83f9-b76c6f8e654f,0d7c3192-b15b-4d40-83f9-b76c6f8e654f,1,0,fe07f268-bcfd-40c6-adf3-79df859ff731,fe07f268-bcfd-40c6-adf3-79df859ff731,1,0,1a1c88ff-b0c4-42c3-bf10-ebdf4de935b7,1a1c88ff-b0c4-42c3-bf10-ebdf4de935b7,1,0,15e90374-99d9-48f7-b7d6-ec160cdb378f,15e90374-99d9-48f7-b7d6-ec160cdb378f,1,0,ad5b6b8e-c2b5-45aa-8e07-50ae8877ac8f,ad5b6b8e-c2b5-45aa-8e07-50ae8877ac8f,1,0,6c470f57-c920-435a-a013-ff83a737cf3a,6c470f57-c920-435a-a013-ff83a737cf3a,1,0,a5e13e12-72b7-477d-8d80-06015fa5dece,a5e13e12-72b7-477d-8d80-06015fa5dece,1,0,d9c47acd-b5ee-4ea1-b247-7cc09a13eb82,d9c47acd-b5ee-4ea1-b247-7cc09a13eb82,1,0,4a81906a-7db7-4e7d-a95e-79b07a43e573,4a81906a-7db7-4e7d-a95e-79b07a43e573,1,0,0bcabdf4-3348-405d-ba75-7bcc106f9e7f,0bcabdf4-3348-405d-ba75-7bcc106f9e7f,1,0,5f2980ca-3f1c-4680-a6e9-477825442782,5f2980ca-3f1c-4680-a6e9-477825442782,1,0,40fd6b4a-2180-4403-b7e6-48b42d8285b7,40fd6b4a-2180-4403-b7e6-48b42d8285b7,1,0,ef098c52-fcfa-4f0f-85b0-aba0d5aa46b2,ef098c52-fcfa-4f0f-85b0-aba0d5aa46b2,1,0,a671cb1e-b27a-44bb-a8ca-1388f099de2e,a671cb1e-b27a-44bb-a8ca-1388f099de2e,1,0,6cff6b09-91b5-4f2b-89aa-23d2f83f9d89,6cff6b09-91b5-4f2b-89aa-23d2f83f9d89,1,0,a4b6920e-3e25-4798-809a-27d7bfae4ee7,a4b6920e-3e25-4798-809a-27d7bfae4ee7,1,0,981f6e35-64b8-4d63-b383-32ea71fcd025,981f6e35-64b8-4d63-b383-32ea71fcd025,1,0,9a7b964d-1c06-44af-8d25-f84493c70a42,9a7b964d-1c06-44af-8d25-f84493c70a42,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,0f6f8fd9-b3af-4d06-bc47-bdad238d15b7,0f6f8fd9-b3af-4d06-bc47-bdad238d15b7,1,0,460e76d2-4ed6-464e-bf9c-a6bcf920aaf2,460e76d2-4ed6-464e-bf9c-a6bcf920aaf2,1,0,80c23bf0-cef0-4d07-a017-d90635f8041d,80c23bf0-cef0-4d07-a017-d90635f8041d,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,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,18ba2c0c-d606-47ee-9409-66acb24bd794,18ba2c0c-d606-47ee-9409-66acb24bd794,1,0,9f24891c-3846-455a-bf95-be3b186f4342,9f24891c-3846-455a-bf95-be3b186f4342,1,0,ddc332d9-1d60-40fe-87fd-7f2164db1edf,ddc332d9-1d60-40fe-87fd-7f2164db1edf,1,0,d0e3c3a5-e74c-4c0a-8679-77e6a097eb36,d0e3c3a5-e74c-4c0a-8679-77e6a097eb36,1,0,20c43755-49cc-4f11-bd2f-52a9e53547ef,20c43755-49cc-4f11-bd2f-52a9e53547ef,1,0,7dbed991-4883-444c-8ce2-96c203a905f2,7dbed991-4883-444c-8ce2-96c203a905f2,1,0,bbadd00d-6410-41ec-a7d8-4dbd52986cc2,bbadd00d-6410-41ec-a7d8-4dbd52986cc2,1,0,d5f66278-4ab2-407a-abef-eb7636e9ba95,d5f66278-4ab2-407a-abef-eb7636e9ba95,1,0,61e51391-c412-46a5-8290-d5183ad0db83,61e51391-c412-46a5-8290-d5183ad0db83,1,0,e9dfdaa2-4094-4501-a38a-3811e7e4c708,e9dfdaa2-4094-4501-a38a-3811e7e4c708,1,0,0a62947e-848a-47fa-a239-95aee6b955d4,0a62947e-848a-47fa-a239-95aee6b955d4,1,0,beaef14b-175f-4ebe-b387-9c922a42c99e,beaef14b-175f-4ebe-b387-9c922a42c99e,1,0,13daaad0-2726-4065-8158-47059865452a,13daaad0-2726-4065-8158-47059865452a,1,0,a7829dfb-adb9-4401-a609-ca9a0f2376b3,a7829dfb-adb9-4401-a609-ca9a0f2376b3,1,0,26f1076a-8100-4cf4-9539-29637a5e9137,26f1076a-8100-4cf4-9539-29637a5e9137,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,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,d7a72321-5f1f-427e-a54d-f308dab1b9c4,d7a72321-5f1f-427e-a54d-f308dab1b9c4,1,0,b183eb38-a96e-4e12-9220-4b4027ae875c,b183eb38-a96e-4e12-9220-4b4027ae875c,1,0,07f7e1b5-07b0-4017-bb91-31759c4ffed1,07f7e1b5-07b0-4017-bb91-31759c4ffed1,1,0,6de76d43-40d5-494f-8d30-2ef80c79bc7e,6de76d43-40d5-494f-8d30-2ef80c79bc7e,1,0,60146806-ee46-44d5-8a7a-2ed48741e1c1,60146806-ee46-44d5-8a7a-2ed48741e1c1,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,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,b1dd4569-6ed9-49f4-b05b-359229afb7a5,b1dd4569-6ed9-49f4-b05b-359229afb7a5,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,81c1f13c-e4ac-46b8-a205-c4f695ddf667,81c1f13c-e4ac-46b8-a205-c4f695ddf667,1,0,a26d8489-88a8-438e-bb58-c7b5a742a243,a26d8489-88a8-438e-bb58-c7b5a742a243,1,0,4b700bfd-5179-4504-b710-fd65036dded7,4b700bfd-5179-4504-b710-fd65036dded7,1,0,b046cb0b-f88b-4fb1-b08d-bb02b20dee74,b046cb0b-f88b-4fb1-b08d-bb02b20dee74,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,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,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,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,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,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,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,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,35dbc542-3ad9-4a72-9863-229a67cda425,35dbc542-3ad9-4a72-9863-229a67cda425,1,0,8e4277e9-983a-4d43-b08e-a4f918df87bf,8e4277e9-983a-4d43-b08e-a4f918df87bf,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,304feda3-6d33-466c-9e0d-9cea97d763be,304feda3-6d33-466c-9e0d-9cea97d763be,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,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,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,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,eaa11272-8cc2-4f82-808f-e4f641748574,eaa11272-8cc2-4f82-808f-e4f641748574,1,0,9dfd78a7-74ba-4c7a-8842-4baf4ffd5e4f,9dfd78a7-74ba-4c7a-8842-4baf4ffd5e4f,1,0,7d422da3-8ec4-4bc8-94ba-88d92625d4c7,7d422da3-8ec4-4bc8-94ba-88d92625d4c7,1,0,8035e1ce-a36a-4628-8196-1f04f50e230a,8035e1ce-a36a-4628-8196-1f04f50e230a,1,0,51f08b3c-2f03-408e-89d5-53ccbaec4e74,51f08b3c-2f03-408e-89d5-53ccbaec4e74,1,0,920ebc04-3018-4948-bae2-16de8f0f0c9a,920ebc04-3018-4948-bae2-16de8f0f0c9a,1,0,4c4fc449-05a5-4223-bd28-c73d27780a9b,4c4fc449-05a5-4223-bd28-c73d27780a9b,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,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,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,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,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,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,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,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,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,b67fb4f8-e895-4a8e-9230-31bc5cde4953,b67fb4f8-e895-4a8e-9230-31bc5cde4953,1,0,f3c9fde1-6d0e-4319-a798-ed8e330750de,f3c9fde1-6d0e-4319-a798-ed8e330750de,1,0,50d1bd75-3523-41c0-8da1-500731c0872b,50d1bd75-3523-41c0-8da1-500731c0872b,1,0,1a8d3872-6e19-4a49-b0ea-b120b6c09d7f,1a8d3872-6e19-4a49-b0ea-b120b6c09d7f,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,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,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,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,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,2b37c085-7c70-4004-93d3-24418b7b3ef2,2b37c085-7c70-4004-93d3-24418b7b3ef2,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,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,b50f3157-3c3a-4553-a16a-7fcd660e2824,b50f3157-3c3a-4553-a16a-7fcd660e2824,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,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,cb65fbad-69a0-47d8-b4a9-da49274c3eb7,cb65fbad-69a0-47d8-b4a9-da49274c3eb7,1,0,872521e3-413c-45ac-a6ea-39fe1324bae8,872521e3-413c-45ac-a6ea-39fe1324bae8,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,2902460a-ed86-41cf-8e8f-895adab9a72f,2902460a-ed86-41cf-8e8f-895adab9a72f,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,79ad09ba-875a-46bd-9cd9-9d084bf4f6ea,79ad09ba-875a-46bd-9cd9-9d084bf4f6ea,1,0,f237a21e-066a-48e6-a5c4-5dc2487c7a3b,f237a21e-066a-48e6-a5c4-5dc2487c7a3b,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/Constants/ВыполнятьЗамерыПроизводительности/ValueManagerModule.bsl b/SSL/src/Constants/ВыполнятьЗамерыПроизводительности/ValueManagerModule.bsl index 83b8656ec..998425095 100644 --- a/SSL/src/Constants/ВыполнятьЗамерыПроизводительности/ValueManagerModule.bsl +++ b/SSL/src/Constants/ВыполнятьЗамерыПроизводительности/ValueManagerModule.bsl @@ -16,12 +16,8 @@ Возврат; КонецЕсли; - РегЗадание = РегламентныеЗадания.НайтиПредопределенное(Метаданные.РегламентныеЗадания.ОчисткаЗамеровВремени); - - Если РегЗадание <> Неопределено Тогда - РегЗадание.Использование = Значение; - РегЗадание.Записать(); - КонецЕсли; + РегламентныеЗаданияСервер.УстановитьИспользованиеРегламентногоЗадания( + Метаданные.РегламентныеЗадания.ОчисткаЗамеровВремени, Истина); КонецПроцедуры diff --git a/SSL/src/Constants/ИспользоватьСервисПереводаТекста/ИспользоватьСервисПереводаТекста.mdo b/SSL/src/Constants/ИспользоватьСервисПереводаТекста/ИспользоватьСервисПереводаТекста.mdo new file mode 100644 index 000000000..3c47e50dc --- /dev/null +++ b/SSL/src/Constants/ИспользоватьСервисПереводаТекста/ИспользоватьСервисПереводаТекста.mdo @@ -0,0 +1,20 @@ + + + + + + + + ИспользоватьСервисПереводаТекста + + ru + Использовать сервис перевода текста + + + Boolean + + true + + + Managed + diff --git a/SSL/src/Constants/ОграничиватьДоступНаУровнеЗаписейУниверсально/ValueManagerModule.bsl b/SSL/src/Constants/ОграничиватьДоступНаУровнеЗаписейУниверсально/ValueManagerModule.bsl index 4ff1ca656..ba2b62b39 100644 --- a/SSL/src/Constants/ОграничиватьДоступНаУровнеЗаписейУниверсально/ValueManagerModule.bsl +++ b/SSL/src/Constants/ОграничиватьДоступНаУровнеЗаписейУниверсально/ValueManagerModule.bsl @@ -33,12 +33,11 @@ КонецЕсли; Если Значение И Не СтароеЗначение Тогда // Включено. - МенеджерЗначения = Константы.ПоследнееОбновлениеДоступа.СоздатьМенеджерЗначения(); - МенеджерЗначения.Значение = Новый ХранилищеЗначения(Неопределено); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(МенеджерЗначения); - НаборЗаписей = РегистрыСведений.ПараметрыОграниченияДоступа.СоздатьНаборЗаписей(); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборЗаписей); + УправлениеДоступомСлужебный.ОчиститьПоследнееОбновлениеДоступа(); РегистрыСведений.ПараметрыОграниченияДоступа.ОбновитьДанныеРегистра(); + ПараметрыПланирования = УправлениеДоступомСлужебный.ПараметрыПланированияОбновленияДоступа(); + ПараметрыПланирования.Описание = "ВключеноОграничиватьДоступНаУровнеЗаписейУниверсально"; + УправлениеДоступомСлужебный.ЗапланироватьОбновлениеДоступа(Неопределено, ПараметрыПланирования); КонецЕсли; Если Не Значение И СтароеЗначение Тогда // Выключено. diff --git a/SSL/src/Constants/СервисПереводаТекста/СервисПереводаТекста.mdo b/SSL/src/Constants/СервисПереводаТекста/СервисПереводаТекста.mdo new file mode 100644 index 000000000..c25419b64 --- /dev/null +++ b/SSL/src/Constants/СервисПереводаТекста/СервисПереводаТекста.mdo @@ -0,0 +1,20 @@ + + + + + + + + СервисПереводаТекста + + ru + Сервис перевода текста + + + EnumRef.СервисыПереводаТекста + + true + + + Managed + diff --git a/SSL/src/Constants/УчетнаяЗаписьДляВосстановленияПароля/УчетнаяЗаписьДляВосстановленияПароля.mdo b/SSL/src/Constants/УчетнаяЗаписьДляВосстановленияПароля/УчетнаяЗаписьДляВосстановленияПароля.mdo new file mode 100644 index 000000000..ac06d0a24 --- /dev/null +++ b/SSL/src/Constants/УчетнаяЗаписьДляВосстановленияПароля/УчетнаяЗаписьДляВосстановленияПароля.mdo @@ -0,0 +1,20 @@ + + + + + + + + УчетнаяЗаписьДляВосстановленияПароля + + ru + Учетная запись для восстановления пароля + + + ValueStorage + + true + + + Managed + diff --git a/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Form.form b/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Form.form index e0d87f5d6..f42ea6015 100644 --- a/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Form.form @@ -92,10 +92,6 @@ true - - <key>ru</key> - <value>Интервал времени</value> - ГруппаИнтервалВремениExtendedTooltip 25 @@ -241,10 +237,6 @@ true - - <key>ru</key> - <value>Статуса</value> - ГруппаСтатусаExtendedTooltip 30 diff --git a/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Module.bsl index 472aadf01..86ca91a03 100644 --- a/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Module.bsl @@ -398,13 +398,13 @@ // Параметры: -// КоличествоФайловВПорции - Число +// КоличествоФайловВПорции - Число // Возвращаемое значение: -// Массив из Структура: -// * Ссылка - ОпределяемыйТип.ПрисоединенныйФайл -// * Расширение - Строка -// * Наименование - Строка -// * Кодировка - Строка +// Массив из Структура: +// * Ссылка - ОпределяемыйТип.ПрисоединенныйФайл +// * Расширение - Строка +// * Наименование - Строка +// * Кодировка - Строка // &НаСервереБезКонтекста Функция ПолучитьФайлыДляИзвлеченияТекста(КоличествоФайловВПорции) diff --git a/SSL/src/DataProcessors/АктивныеПользователи/Forms/АктивныеПользователи/Module.bsl b/SSL/src/DataProcessors/АктивныеПользователи/Forms/АктивныеПользователи/Module.bsl index 5bd1b41fa..1949553a1 100644 --- a/SSL/src/DataProcessors/АктивныеПользователи/Forms/АктивныеПользователи/Module.bsl +++ b/SSL/src/DataProcessors/АктивныеПользователи/Forms/АктивныеПользователи/Module.bsl @@ -400,13 +400,12 @@ ШаблонТекстаЗапроса = "ВЫБРАТЬ | Ссылка КАК Ссылка |ИЗ - | %1 + | &ИмяТаблицы |ГДЕ | ИдентификаторПользователяИБ = &Идентификатор"; - ТекстЗапросаПоПользователям = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекстаЗапроса, Метаданные.Справочники.Пользователи.ПолноеИмя()); - - ТекстЗапросаПоВнешнимПользователям = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекстаЗапроса, Метаданные.Справочники.ВнешниеПользователи.ПолноеИмя()); + ТекстЗапросаПоПользователям = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяТаблицы", Метаданные.Справочники.Пользователи.ПолноеИмя()); + ТекстЗапросаПоВнешнимПользователям = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяТаблицы", Метаданные.Справочники.ВнешниеПользователи.ПолноеИмя()); Запрос.Текст = ТекстЗапросаПоПользователям; Запрос.Параметры.Вставить("Идентификатор", Идентификатор); diff --git a/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/БлокировкаСоединенийСИнформационнойБазой/Form.form b/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/БлокировкаСоединенийСИнформационнойБазой/Form.form index d56818155..c80ffda11 100644 --- a/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/БлокировкаСоединенийСИнформационнойБазой/Form.form +++ b/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/БлокировкаСоединенийСИнформационнойБазой/Form.form @@ -76,10 +76,6 @@ true - - <key>ru</key> - <value>Ошибка</value> - ГруппаОшибкаExtendedTooltip 85 @@ -301,10 +297,6 @@ true - - <key>ru</key> - <value>Период блокировки</value> - Ctrl+S ГруппаПериодБлокировкиExtendedTooltip @@ -501,10 +493,6 @@ true - - <key>ru</key> - <value>Запретить работу регламентных заданий</value> - ГруппаЗапретитьРаботуРегламентныхЗаданийРасширеннаяПодсказка 121 @@ -766,10 +754,6 @@ true - - <key>ru</key> - <value>Период блокировки 1</value> - true Ctrl+S @@ -798,10 +782,6 @@ true - - <key>ru</key> - <value>Содержимое</value> - ГруппаСодержимоеExtendedTooltip 108 @@ -827,10 +807,6 @@ true - - <key>ru</key> - <value>Состояние</value> - false ГруппаСостояниеExtendedTooltip @@ -884,10 +860,6 @@ true - - <key>ru</key> - <value>Режим</value> - false false @@ -991,10 +963,6 @@ true - - <key>ru</key> - <value>Основная командная панель</value> - ОсновнаяКоманднаяПанельExtendedTooltip 114 diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводАдресаВСвободнойФорме/Module.bsl b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводАдресаВСвободнойФорме/Module.bsl index aa243e7f6..82a13ed22 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводАдресаВСвободнойФорме/Module.bsl +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводАдресаВСвободнойФорме/Module.bsl @@ -488,6 +488,26 @@ Возврат РезультатВыбора(Контекст, ВозвращатьСписокЗначений); КонецФункции +// Параметры: +// Контекст - Структура: +// * ВидКонтактнойИнформации - см. УправлениеКонтактнойИнформациейСлужебный.СтруктураВидаКонтактнойИнформации +// * НаселенныйПунктДетально - Структура +// * ОсновнаяСтрана - СправочникСсылка.СтраныМира +// * Страна - СправочникСсылка.СтраныМира +// ВозвращатьСписокЗначений - Булево +// Возвращаемое значение: +// Структура: +// * ДанныеВыбора - Структура: +// ** Представление - Строка +// ** КонтактнаяИнформация - Строка +// ** Значение - Строка +// ** Комментарий - Строка +// ** ВведеноВСвободнойФорме - Булево +// ** ВВидеГиперссылки - Булево +// ** Вид - СправочникСсылка.ВидыКонтактнойИнформации +// ** Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации +// * ОшибкиЗаполнения - Массив из Строка +// &НаСервереБезКонтекста Функция РезультатВыбора(Контекст, ВозвращатьСписокЗначений = Ложь) @@ -674,7 +694,7 @@ Процедура ОтобразитьИнформациюОДатахДействияАдреса(ДействуетС) Если ВводНовогоАдреса Тогда - ТекстИсторическийАдрес = НСтр("ru = ''"); + ТекстИсторическийАдрес = ""; АдресНаДату = ДействуетС; Элементы.ГруппаИсторическийАдрес.Видимость = ЗначениеЗаполнено(ДействуетС); Иначе diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Module.bsl b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Module.bsl index d4388d18f..089f66f17 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Module.bsl +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Module.bsl @@ -320,6 +320,20 @@ Возврат НоваяДата; КонецФункции +// Параметры: +// РезультатЗакрытия - Структура: +// * ВВидеГиперссылки - Булево +// * ВведеноВСвободнойФорме - Булево +// * Вид - СправочникСсылка.ВидыКонтактнойИнформации +// * ДействуетС - Дата +// * Значение - Строка +// * Комментарий - Строка +// * КонтактнаяИнформация - Строка +// * КонтактнаяИнформацияОписаниеДополнительныхРеквизитов - см. УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме +// * Представление - Строка +// * Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации +// ДополнительныеПараметры - Структура +// &НаКлиенте Процедура ПослеРедактированияАдреса(РезультатЗакрытия, ДополнительныеПараметры) Экспорт diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/ManagerModule.bsl b/SSL/src/DataProcessors/ВводКонтактнойИнформации/ManagerModule.bsl index c2a537db3..3d4051fdc 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/ManagerModule.bsl @@ -20,7 +20,8 @@ ВыбраннаяФорма = ИмяФормыВводаКонтактнойИнформации(ВидИнформации); Если ВыбраннаяФорма = Неопределено Тогда - ВызватьИсключение НСтр("ru = 'Не обрабатываемый тип адреса: """ + ВидИнформации + """'"); + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не обрабатываемый тип адреса: ""%1""'"), ВидИнформации); КонецЕсли; КонецЕсли; diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/ObjectModule.bsl b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/ObjectModule.bsl index 330e88164..3e292b888 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/ObjectModule.bsl @@ -180,12 +180,12 @@ СоставПланаОбмена = УзелОбмена.Метаданные().Состав; // Внутреннее соединение с основной таблицей необходимо для исключения из выгрузки битых ссылок. - ТекстЗапроса = + ШаблонТекстаЗапроса = "ВЫБРАТЬ | ТаблицаИзменений.Ссылка |ИЗ - | #ПолноеИмя#.Изменения КАК ТаблицаИзменений - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ #ПолноеИмя# КАК ОсновнаяТаблица + | &ПолноеИмяТаблицыМетаданныхИзменения КАК ТаблицаИзменений + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ &ПолноеИмяТаблицыМетаданных КАК ОсновнаяТаблица | ПО ОсновнаяТаблица.Ссылка = ТаблицаИзменений.Ссылка |ГДЕ ТаблицаИзменений.Узел = &Узел"; @@ -193,16 +193,24 @@ Запрос.УстановитьПараметр("Узел", УзелОбмена); Для Каждого ЭлементСостава Из СоставПланаОбмена Цикл + Если Не ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(ЭлементСостава.Метаданные) Тогда + Продолжить; + КонецЕсли; + ПолноеИмяОбъекта = ЭлементСостава.Метаданные.ПолноеИмя(); ПравилоОбработки = КомпонентыОбмена.ПравилаОбработкиДанных.Найти(ЭлементСостава.Метаданные, "ОбъектВыборкиМетаданные"); Если ПравилоОбработки = Неопределено Тогда + Продолжить; + КонецЕсли; - Запрос.Текст = СтрЗаменить(ТекстЗапроса, "#ПолноеИмя#", ПолноеИмяОбъекта); + ПолноеИмяОбъектаИзменения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.Изменения", ПолноеИмяОбъекта); + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ПолноеИмяТаблицыМетаданныхИзменения", ПолноеИмяОбъектаИзменения); + Запрос.Текст = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяТаблицыМетаданных", ПолноеИмяОбъекта); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл @@ -684,7 +692,13 @@ ЭлементыНабораИзменения.Удалить(ЭлементыНабораИзменения[1]); КонецЦикла; ТаблицаДополнительныхИзменений = ДополнительнаяРегистрация; - + + ШаблонТекстаЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | ПсевдонимТаблицыМетаданных.Ссылка КАК ОбъектСсылка, + | &ИмяДобавляемойТаблицыТип КАК ОбъектТип + |ИЗ + | &ИмяДобавляемойТаблицы КАК ПсевдонимТаблицыМетаданных"; + // Дополнительные изменения Для Каждого Строка Из ТаблицаДополнительныхИзменений Цикл ПолноеИмяМетаданных = Строка.ПолноеИмяМетаданных; @@ -704,19 +718,17 @@ Набор.АвтоЗаполнениеДоступныхПолей = Истина; Набор.Имя = ИмяНабора; - Набор.Запрос = " - |ВЫБРАТЬ РАЗРЕШЕННЫЕ - | " + ИмяНабора + ".Ссылка КАК ОбъектСсылка, - | ТИП(" + ИмяДобавляемойТаблицы + ") КАК ОбъектТип - |ИЗ - | " + ИмяДобавляемойТаблицы + " КАК " + ИмяНабора + " - |"; + СтрокаЗамены = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Тип(%1)", ИмяДобавляемойТаблицы); + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяДобавляемойТаблицыТип", СтрокаЗамены); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяДобавляемойТаблицы", ИмяДобавляемойТаблицы); + Набор.Запрос = ТекстЗапроса; // Добавляем дополнительные наборы для получения данных их табличных частей отбора. ПараметрыДобавления = Новый Структура; ПараметрыДобавления.Вставить("ИмяДобавляемойТаблицы", ИмяДобавляемойТаблицы); ПараметрыДобавления.Вставить("СхемаКомпоновки", СхемаКомпоновки); ДобавитьДополнительныеНаборыКомпоновкиТабличныхЧастей(ТекущийОтбор.Элементы, ПараметрыДобавления); + КонецЦикла; КонецЦикла; @@ -799,13 +811,10 @@ // Процедура ДобавитьНаборВСхемуКомпоновки(СхемаКомпоновкиДанных, ИмяТаблицы, Представление = Неопределено) + ШаблонТекстаЗапроса = "ВЫБРАТЬ ПсевдонимТаблицыМД.Ссылка ИЗ &ИмяТаблицыМетаданных КАК ПсевдонимТаблицыМД"; + Набор = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")); - Набор.Запрос = " - |ВЫБРАТЬ - | Ссылка - |ИЗ - | " + ИмяТаблицы + " - |"; + Набор.Запрос = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяТаблицыМетаданных", ИмяТаблицы); Набор.АвтоЗаполнениеДоступныхПолей = Истина; Набор.ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Получить(0).Имя; Набор.Имя = "Набор" + Формат(СхемаКомпоновкиДанных.НаборыДанных.Количество()-1, "ЧН=; ЧГ="); @@ -851,7 +860,15 @@ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Некорректное имя метаданных ""%1""'"), ИмяДобавляемойТаблицы); КонецЕсли; - + + ШаблонТекстаЗапроса = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | Ссылка КАК ОбъектСсылка, + | &ИмяДобавляемойТаблицыТип КАК ОбъектТип + | ,&ВсеПоляТабличнойЧастиПоляЗапроса + |ИЗ + | &ВиртуальнаяТаблицаИсточник"; + Для Каждого Элемент Из ЭлементыИсточника Цикл Если ТипЗнч(Элемент) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда @@ -901,14 +918,13 @@ Набор.Имя = ИмяНабора; ВсеПоляТабличнойЧасти = РеквизитыТабличнойЧастиДляЗапроса(МетаданныеТабличнойЧасти, Псевдоним); - Набор.Запрос = " - |ВЫБРАТЬ РАЗРЕШЕННЫЕ - | Ссылка КАК ОбъектСсылка, - | ТИП(" + ИмяДобавляемойТаблицы + ") КАК ОбъектТип - | " + ВсеПоляТабличнойЧасти.ПоляЗапроса + " - |ИЗ - | " + ИмяДобавляемойТаблицы + "." + ИмяТаблицы + " - |"; + + СтрокаЗамены = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ТИП(%1)", ИмяДобавляемойТаблицы); + СтрокаЗаменыТаблица = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.%2", ИмяДобавляемойТаблицы, ИмяТаблицы); + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяДобавляемойТаблицыТип", СтрокаЗамены); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ",&ВсеПоляТабличнойЧастиПоляЗапроса", ВсеПоляТабличнойЧасти.ПоляЗапроса); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ВиртуальнаяТаблицаИсточник", СтрокаЗаменыТаблица); + Набор.Запрос = ТекстЗапроса; Для Каждого ИмяПоля Из ВсеПоляТабличнойЧасти.ИменаПолей Цикл Поле = Набор.Поля.Найти(ИмяПоля); diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ManagerModule.bsl b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ManagerModule.bsl index 838e92d25..9a90cee60 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ManagerModule.bsl @@ -28,9 +28,9 @@ // ТаблицаОбработчиков - ТаблицаЗначений - в данной процедуре требуется // дополнить эту таблицу значений информацией о регистрируемых произвольных // обработчиках выгрузки данных. Колонки: -// ОбъектМетаданных - ОбъектМетаданных, при выгрузке данных которого должен +// ОбъектМетаданных - ОбъектМетаданных - при выгрузке данных которого должен // вызываться регистрируемый обработчик, -// Обработчик - ОбщийМодуль, общий модуль, в котором реализован произвольный +// Обработчик - ОбщийМодуль - общий модуль, в котором реализован произвольный // обработчик выгрузки данных. Набор экспортных процедур, которые должны // быть реализованы в обработчике, зависит от установки значений следующих // колонок таблицы значений, @@ -50,7 +50,7 @@ // СериализаторXDTO, переданный в процедуру ПередВыгрузкойТипа() в качестве // значения параметра Сериализатор, а не полученных с помощью свойства глобального // контекста СериализаторXDTO, -// ОбъектМетаданных - ОбъектМетаданных, перед выгрузкой данных которого +// ОбъектМетаданных - ОбъектМетаданных - перед выгрузкой данных которого // был вызван обработчик, // Отказ - Булево - если в процедуре ПередВыгрузкойТипа() установить значение // данного параметра равным Истина - выгрузка объектов, соответствующих @@ -72,17 +72,27 @@ // СериализаторXDTO, переданный в процедуру ПередВыгрузкойОбъекта() в качестве // значения параметра Сериализатор, а не полученных с помощью свойства глобального // контекста СериализаторXDTO, -// Объект - КонстантаМенеджерЗначения.*, СправочникОбъект.*, ДокументОбъект.*, -// БизнесПроцессОбъект.*, ЗадачаОбъект.*, ПланСчетовОбъект.*, ПланОбменаОбъект.*, -// ПланВидовХарактеристикОбъект.*, ПланВидовРасчетаОбъект.*, РегистрСведенийНаборЗаписей.*, -// РегистрНакопленияНаборЗаписей.*, РегистрБухгалтерииНаборЗаписей.*, -// РегистрРасчетаНаборЗаписей.*, ПоследовательностьНаборЗаписей.*, ПерерасчетНаборЗаписей.* - +// Объект - КонстантаМенеджерЗначения.* +// - СправочникОбъект.* +// - ДокументОбъект.* +// - БизнесПроцессОбъект.* +// - ЗадачаОбъект.* +// - ПланСчетовОбъект.* +// - ПланОбменаОбъект.* +// - ПланВидовХарактеристикОбъект.* +// - ПланВидовРасчетаОбъект.* +// - РегистрСведенийНаборЗаписей.* +// - РегистрНакопленияНаборЗаписей.* +// - РегистрБухгалтерииНаборЗаписей.* +// - РегистрРасчетаНаборЗаписей.* +// - ПоследовательностьНаборЗаписей.* +// - ПерерасчетНаборЗаписей.* - // объект данных информационной базы, перед выгрузкой которого был вызван обработчик. // Значение, переданное в процедуру ПередВыгрузкойОбъекта() в качестве значения параметра // Объект может быть модифицировано внутри обработчика ПередВыгрузкойОбъекта(), при // этом внесенные изменения будут отражены в сериализации объекта в файлах выгрузки, но // не будут зафиксированы в информационной базе -// Артефакты - Массив Из ОбъектXDTO - набор дополнительной информации, логически неразрывно +// Артефакты - Массив из ОбъектXDTO - набор дополнительной информации, логически неразрывно // связанной с объектом, но не являющейся его частью (артефакты объекта). Артефакты должны // сформированы внутри обработчика ПередВыгрузкойОбъекта() и добавлены в массив, переданный // в качестве значения параметра Артефакты. Каждый артефакт должен являться XDTO-объектом, @@ -107,7 +117,7 @@ // СериализаторXDTO, переданный в процедуру ПослеВыгрузкиТипа() в качестве // значения параметра Сериализатор, а не полученных с помощью свойства глобального // контекста СериализаторXDTO, -// ОбъектМетаданных - ОбъектМетаданных, после выгрузки данных которого +// ОбъектМетаданных - ОбъектМетаданных - после выгрузки данных которого // был вызван обработчик. // Процедура ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков) Экспорт @@ -130,9 +140,9 @@ // ТаблицаОбработчиков - ТаблицаЗначений - в данной процедуре требуется // дополнить эту таблицу значений информацией о регистрируемых произвольных // обработчиках загрузки данных. Колонки: -// ОбъектМетаданных - ОбъектМетаданных, при загрузке данных которого должен +// ОбъектМетаданных - ОбъектМетаданных - при загрузке данных которого должен // вызываться регистрируемый обработчик, -// Обработчик - ОбщийМодуль, общий модуль, в котором реализован произвольный +// Обработчик - ОбщийМодуль - общий модуль, в котором реализован произвольный // обработчик загрузки данных. Набор экспортных процедур, которые должны // быть реализованы в обработчике, зависит от установки значений следующих // колонок таблицы значений, @@ -146,7 +156,7 @@ // Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер // контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий // к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// ОбъектМетаданных - ОбъектМетаданных, перед сопоставлением ссылок которого +// ОбъектМетаданных - ОбъектМетаданных - перед сопоставлением ссылок которого // был вызван обработчик, // СтандартнаяОбработка - Булево - если процедуре ПередСопоставлениемСсылок() // установить значение данного параметра равным Ложь, вместо стандартного @@ -161,14 +171,14 @@ // к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера, // ТаблицаИсходныхСсылок - ТаблицаЗначений - содержащая информацию о ссылках, // выгруженных из исходной ИБ. Колонки: -// ИсходнаяСсылка - ЛюбаяСсылка, ссылка объекта исходной ИБ, которую требуется +// ИсходнаяСсылка - ЛюбаяСсылка - ссылка объекта исходной ИБ, которую требуется // сопоставить c ссылкой в текущей ИБ, // Остальные колонки равным полям естественного ключа объекта, которые в // процессе выгрузки данных были переданы в функцию // Обработка.ВыгрузкаЗагрузкаДанныхМенеджерВыгрузкиДанныхИнформационнойБазы.ТребуетсяСопоставитьСсылкуПриЗагрузке() // Возвращаемое значение функции СопоставитьСсылки() - ТаблицаЗначений, колонки: -// ИсходнаяСсылка - ЛюбаяСсылка, ссылка объекта, выгруженная из исходной ИБ, -// Ссылка - ЛюбаяСсылка, сопоставленная исходной ссылка в текущей ИБ. +// ИсходнаяСсылка - ЛюбаяСсылка - ссылка объекта, выгруженная из исходной ИБ, +// Ссылка - ЛюбаяСсылка - сопоставленная исходной ссылка в текущей ИБ. // Отказ - Булево - если в процедуре ПередСопоставлениемСсылок() установить значение // данного параметра равным Истина - сопоставление ссылок, соответствующих // текущему объекту метаданных, выполняться не будет. @@ -180,7 +190,7 @@ // Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер // контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий // к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// ОбъектМетаданных - ОбъектМетаданных, перед загрузкой всех данных которого +// ОбъектМетаданных - ОбъектМетаданных - перед загрузкой всех данных которого // был вызван обработчик, // Отказ - Булево - если в процедуре ПередЗагрузкойТипа() установить значение данного // параметра равным Истина - загрузка всех объектов данных соответствующих текущему @@ -193,15 +203,25 @@ // Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер // контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий // к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// Объект - КонстантаМенеджерЗначения.*, СправочникОбъект.*, ДокументОбъект.*, -// БизнесПроцессОбъект.*, ЗадачаОбъект.*, ПланСчетовОбъект.*, ПланОбменаОбъект.*, -// ПланВидовХарактеристикОбъект.*, ПланВидовРасчетаОбъект.*, РегистрСведенийНаборЗаписей.*, -// РегистрНакопленияНаборЗаписей.*, РегистрБухгалтерииНаборЗаписей.*, -// РегистрРасчетаНаборЗаписей.*, ПоследовательностьНаборЗаписей.*, ПерерасчетНаборЗаписей.* - +// Объект - КонстантаМенеджерЗначения.* +// - СправочникОбъект.* +// - ДокументОбъект.* +// - БизнесПроцессОбъект.* +// - ЗадачаОбъект.* +// - ПланСчетовОбъект.* +// - ПланОбменаОбъект.* +// - ПланВидовХарактеристикОбъект.* +// - ПланВидовРасчетаОбъект.* +// - РегистрСведенийНаборЗаписей.* +// - РегистрНакопленияНаборЗаписей.* +// - РегистрБухгалтерииНаборЗаписей.* +// - РегистрРасчетаНаборЗаписей.* +// - ПоследовательностьНаборЗаписей.* +// - ПерерасчетНаборЗаписей.* - // объект данных информационной базы, перед загрузкой которого был вызван обработчик. // Значение, переданное в процедуру ПередЗагрузкойОбъекта() в качестве значения параметра // Объект может быть модифицировано внутри процедуры обработчика ПередЗагрузкойОбъекта(). -// Артефакты - Массив Из ОбъектXDTO - дополнительные данные, логически неразрывно связанные +// Артефакты - Массив из ОбъектXDTO - дополнительные данные, логически неразрывно связанные // с объектом данных, но не являющиеся его частью. Сформированы в экспортируемых процедурах // ПередВыгрузкойОбъекта() обработчиков выгрузки данных (см. комментарий к процедуре // ПриРегистрацииОбработчиковВыгрузкиДанных(). Каждый артефакт должен являться XDTO-объектом, @@ -218,13 +238,23 @@ // Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер // контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий // к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// Объект - КонстантаМенеджерЗначения.*, СправочникОбъект.*, ДокументОбъект.*, -// БизнесПроцессОбъект.*, ЗадачаОбъект.*, ПланСчетовОбъект.*, ПланОбменаОбъект.*, -// ПланВидовХарактеристикОбъект.*, ПланВидовРасчетаОбъект.*, РегистрСведенийНаборЗаписей.*, -// РегистрНакопленияНаборЗаписей.*, РегистрБухгалтерииНаборЗаписей.*, -// РегистрРасчетаНаборЗаписей.*, ПоследовательностьНаборЗаписей.*, ПерерасчетНаборЗаписей.* - +// Объект - КонстантаМенеджерЗначения.* +// - СправочникОбъект.* +// - ДокументОбъект.* +// - БизнесПроцессОбъект.* +// - ЗадачаОбъект.* +// - ПланСчетовОбъект.* +// - ПланОбменаОбъект.* +// - ПланВидовХарактеристикОбъект.* +// - ПланВидовРасчетаОбъект.* +// - РегистрСведенийНаборЗаписей.* +// - РегистрНакопленияНаборЗаписей.* +// - РегистрБухгалтерииНаборЗаписей.* +// - РегистрРасчетаНаборЗаписей.* +// - ПоследовательностьНаборЗаписей.* +// - ПерерасчетНаборЗаписей.* - // объект данных информационной базы, после загрузки которого был вызван обработчик. -// Артефакты - Массив Из ОбъектXDTO - дополнительные данные, логически неразрывно связанные +// Артефакты - Массив из ОбъектXDTO - дополнительные данные, логически неразрывно связанные // с объектом данных, но не являющиеся его частью. Сформированы в экспортируемых процедурах // ПередВыгрузкойОбъекта() обработчиков выгрузки данных (см. комментарий к процедуре // ПриРегистрацииОбработчиковВыгрузкиДанных(). Каждый артефакт должен являться XDTO-объектом, @@ -239,7 +269,7 @@ // Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер // контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий // к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// ОбъектМетаданных - ОбъектМетаданных, после загрузки всех объектов которого +// ОбъектМетаданных - ОбъектМетаданных - после загрузки всех объектов которого // был вызван обработчик. // Процедура ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков) Экспорт diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ObjectModule.bsl b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ObjectModule.bsl index 6eabe6610..31bd8d84d 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ObjectModule.bsl @@ -196,11 +196,11 @@ // Выполняет обработчики перед загрузкой определенного типа данных. // // Параметры: -// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер // контейнера, используемый в процессе выгрузи данных. Подробнее см. комментарий // к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. -// ОбъектМетаданных - ОбъектМетаданных - объект метаданных. -// Отказ - Булево - признак выполнения данной операции. +// ОбъектМетаданных - ОбъектМетаданных - объект метаданных. +// Отказ - Булево - признак выполнения данной операции. // Процедура ПередЗагрузкойТипа(Контейнер, ОбъектМетаданных, Отказ) Экспорт @@ -393,9 +393,9 @@ // Записывает объект в файл. // // Параметры: -// Объект - записываемый объект. -// ИмяФайла - Строка - путь к файлу. -// Сериализатор - СериализаторXDTO - сериализатор. +// Объект - записываемый объект. +// ИмяФайла - Строка - путь к файлу. +// Сериализатор - СериализаторXDTO - сериализатор. // Процедура ЗаписатьОбъектВФайл(Знач Объект, Знач ИмяФайла, Сериализатор = Неопределено) @@ -411,9 +411,9 @@ // Записывает объект в поток записи. // // Параметры: -// Объект - записываемый объект. -// ПотокЗаписи - ЗаписьXML - поток записи. -// Сериализатор - СериализаторXDTO - сериализатор. +// Объект - записываемый объект. +// ПотокЗаписи - ЗаписьXML - поток записи. +// Сериализатор - СериализаторXDTO - сериализатор. // Процедура ЗаписатьОбъектВПоток(Знач Объект, ПотокЗаписи, Сериализатор = Неопределено) @@ -437,10 +437,10 @@ // Возвращает объект из файла. // // Параметры: -// ИмяФайла - Строка - путь к файлу. +// ИмяФайла - Строка - путь к файлу. // // Возвращаемое значение: -// Объект +// Объект // Функция ПрочитатьОбъектИзФайла(Знач ИмяФайла) @@ -459,10 +459,10 @@ // Возвращает объект из файла. // // Параметры: -// ПотокЧтения - ЧтениеXML - поток чтения. +// ПотокЧтения - ЧтениеXML - поток чтения. // // Возвращаемое значение: -// Объект +// Объект // Функция ПрочитатьОбъектИзПотока(ПотокЧтения) @@ -484,9 +484,9 @@ // Возвращает префиксы для часто используемых пространств имен. // // Возвращаемое значение: -// Соответствие: -// Ключ - Строка - пространство имени. -// Значение - Строка - префикс. +// Соответствие из КлючИЗначение: +// Ключ - Строка - пространство имени. +// Значение - Строка - префикс. // Функция ПрефиксыПространствИмен() Экспорт diff --git a/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Form.form b/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Form.form index 09d46f824..553f5895a 100644 --- a/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Form.form @@ -251,10 +251,6 @@ true - - <key>ru</key> - <value>Ввода пароля</value> - ГруппаВводаПароляРасширеннаяПодсказка 91 @@ -280,10 +276,6 @@ true - - <key>ru</key> - <value>Запроса пароля</value> - ГруппаЗапросаПароляРасширеннаяПодсказка 132 @@ -347,10 +339,6 @@ true - - <key>ru</key> - <value>Декорация предупреждение</value> - ru Декорация предупреждения @@ -484,10 +472,6 @@ true - - <key>ru</key> - <value>Текст предупреждение</value> - ru Текст предупреждения @@ -517,10 +501,6 @@ true - - <key>ru</key> - <value>Предупреждения долгой синхронизации</value> - ГруппаПредупрежденияДолгойСинхронизацииРасширеннаяПодсказка 137 @@ -601,10 +581,6 @@ true - - <key>ru</key> - <value>Командная панель выполнения обмена</value> - ru Командная панель закрыть @@ -1347,10 +1323,6 @@ true - - <key>ru</key> - <value>Статусное сообщение</value> - СтатусноеСообщениеExtendedTooltip 110 @@ -1684,10 +1656,6 @@ true - - <key>ru</key> - <value>Панель требуется обновление</value> - ПанельТребуетсяОбновлениеExtendedTooltip 118 @@ -1823,10 +1791,6 @@ true - - <key>ru</key> - <value>Статус завершения обмена</value> - СтатусЗавершенияОбменаExtendedTooltip 101 @@ -1881,10 +1845,6 @@ true - - <key>ru</key> - <value>Командная панель закрыть</value> - КоманднаяПанельЗакрытьExtendedTooltip 125 @@ -1988,10 +1948,6 @@ true - - <key>ru</key> - <value>Командная панель</value> - КоманднаяПанельУстановитьЗакрытьExtendedTooltip 128 @@ -2099,10 +2055,6 @@ true - - <key>ru</key> - <value>Командная панель продолжить отмена</value> - КоманднаяПанельПродолжитьОтменаРасширеннаяПодсказка 165 @@ -2149,10 +2101,6 @@ true - - <key>ru</key> - <value>Панель действий</value> - ПанельДействийExtendedTooltip 123 @@ -2199,10 +2147,6 @@ true - - <key>ru</key> - <value>Выполнение обмена данными</value> - ВыполнениеОбменаДаннымиExtendedTooltip 88 diff --git a/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Module.bsl index 3eb5b24ac..5be2796d7 100644 --- a/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Module.bsl @@ -467,18 +467,6 @@ КонецПроцедуры -// Добавляет новую строку в конец текущей таблицы переходов. -// -// Параметры: -// -// ИмяОсновнойСтраницы (обязательный) - Строка - имя страницы панели "ПанельОсновная", которая соответствует текущему -// номеру перехода. -// ИмяОбработчикаПриОткрытии (необязательный) - Строка - имя функции-обработчика события открытия текущей страницы -// помощника. -// ДлительнаяОперация (необязательный) - Булево - признак отображения страницы длительной операции. -// Истина - отображается страница длительной операции; Ложь - отображается обычная страница. Значение по умолчанию -// Ложь. -// &НаСервере Функция ТаблицаПереходовНоваяСтрока(ИмяОсновнойСтраницы, ИмяОбработчикаПриОткрытии = "", diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыборВидаОбъектов/Module.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыборВидаОбъектов/Module.bsl index 87394347b..bc27b0e5c 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыборВидаОбъектов/Module.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыборВидаОбъектов/Module.bsl @@ -60,9 +60,9 @@ КонецПроцедуры // Параметры: -// РодительскаяПодсистема - ОбъектМетаданныхПодсистема +// РодительскаяПодсистема - ОбъектМетаданныхПодсистема // Возвращаемое значение: -// Соответствие +// Соответствие // &НаСервереБезКонтекста Функция ИменаПодчиненныхПодсистем(РодительскаяПодсистема) diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Module.bsl index 3a45ab120..9c459c8e3 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Module.bsl @@ -355,7 +355,7 @@ КонецПроцедуры // Параметры: -// Команда - КомандаФормы +// Команда - КомандаФормы // &НаКлиенте Процедура Подключаемый_УстановитьНастройку(Команда) @@ -507,10 +507,10 @@ КонецПроцедуры // Параметры: -// Реквизит - Структура: -// * Имя - Строка -// ПредставлениеСвязейПараметровВыбора - Строка -// ТабличнаяЧасть - ЭлементСпискаЗначений +// Реквизит - Структура: +// * Имя - Строка +// ПредставлениеСвязейПараметровВыбора - Строка +// ТабличнаяЧасть - ЭлементСпискаЗначений // &НаСервере Процедура УстановитьУсловноеФорматированиеРеквизитаТабличнойЧасти(Реквизит, ТабличнаяЧасть) @@ -948,9 +948,9 @@ КонецЦикла; Если ПодсистемаСуществует("СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов") Тогда - МодульЗапретРедактированияРеквизитовОбъектовКлиентМодуль = ОбщийМодуль("ЗапретРедактированияРеквизитовОбъектовКлиент"); - Если МодульЗапретРедактированияРеквизитовОбъектовКлиентМодуль <> Неопределено Тогда - МодульЗапретРедактированияРеквизитовОбъектовКлиентМодуль.ПроверитьСсылкиНаОбъект( + МодульЗапретРедактированияРеквизитовОбъектовКлиент = ОбщийМодуль("ЗапретРедактированияРеквизитовОбъектовКлиент"); + Если МодульЗапретРедактированияРеквизитовОбъектовКлиент <> Неопределено Тогда + МодульЗапретРедактированияРеквизитовОбъектовКлиент.ПроверитьСсылкиНаОбъект( Новый ОписаниеОповещения("РазрешитьРедактированиеРеквизитовЗавершение", ЭтотОбъект, ЗаблокированныеРеквизитыСтроки), МассивСсылок, СинонимыРеквизитов); @@ -1563,15 +1563,15 @@ КонецФункции // Параметры: -// НастройкиОтбора - Неопределено -// - Структура: +// НастройкиОтбора - Неопределено +// - Структура: // * ОграничитьВыборку - Булево // * ВключитьТабличныеЧастиВВыборку - Булево // * ОбновитьСписок - Булево -// ТекстСообщенияОбОшибке - Строка +// ТекстСообщенияОбОшибке - Строка // // Возвращаемое значение: -// ДеревоЗначений: +// ДеревоЗначений: // * Ссылка - ЛюбаяСсылка // &НаСервере @@ -1833,7 +1833,7 @@ Автонумерация = Неопределено; Для Каждого ИмяТипа Из СтрРазделить(ВидыИзменяемыхОбъектов, ",", Ложь) Цикл - ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ИмяТипа); + ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ИмяТипа); // ОбъектМетаданныхСправочник, ОбъектМетаданныхДокумент Если Метаданные.ПланыОбмена.Содержит(ОбъектМетаданных) Или Метаданные.ПланыВидовРасчета.Содержит(ОбъектМетаданных) @@ -2208,13 +2208,13 @@ КонецПроцедуры // Параметры: -// ОписаниеТабличнойЧасти - Структура: -// * Реквизиты - Массив из ОбъектМетаданныхРеквизит -// НередактируемыеРеквизиты - Массив из Строка -// ФильтруемыеРеквизиты - Массив -// ДоступныеРеквизиты - Массив +// ОписаниеТабличнойЧасти - Структура: +// * Реквизиты - Массив из ОбъектМетаданныхРеквизит +// НередактируемыеРеквизиты - Массив из Строка +// ФильтруемыеРеквизиты - Массив +// ДоступныеРеквизиты - Массив // Возвращаемое значение: -// Массив из ОбъектМетаданныхРеквизит +// Массив из ОбъектМетаданныхРеквизит // &НаСервере Функция ДоступныеДляИзмененияРеквизиты(ОписаниеТабличнойЧасти, НередактируемыеРеквизиты, ФильтруемыеРеквизиты, ДоступныеРеквизиты) @@ -2246,7 +2246,7 @@ // Возвращаемое значение: -// ТаблицаЗначений: +// ТаблицаЗначений: // * Имя - Строка // * Тип - Строка // * Представление - Строка @@ -2689,9 +2689,9 @@ // на уровне конфигурации. // // Параметры: -// ОбъектМетаданных - ОбъектМетаданных +// ОбъектМетаданных - ОбъектМетаданных // Возвращаемое значение: -// Массив +// Массив // &НаСервере Функция ПолучитьФильтрРедактированияПоТипу(ОбъектМетаданных) @@ -3347,7 +3347,7 @@ // например, "Справочник.Организации". // // Возвращаемое значение: -// СправочникМенеджер - , ДокументМенеджер, ... +// СправочникМенеджер, ДокументМенеджер, ... // &НаСервереБезКонтекста Функция МенеджерОбъектаПоПолномуИмени(ПолноеИмя) @@ -3560,7 +3560,7 @@ // Определяет принадлежность объекта метаданных к общему типу "Справочник". // // Параметры: -// ОбъектМетаданных - объект метаданных, для которого необходимо определить принадлежность к заданному типу. +// ОбъектМетаданных - ОбъектМетаданных - для которого необходимо определить принадлежность к заданному типу. // // Возвращаемое значение: // Булево @@ -3653,7 +3653,7 @@ // Определяет принадлежность объекта метаданных к общему типу "План видов характеристик". // // Параметры: -// ОбъектМетаданных - объект метаданных, для которого необходимо определить принадлежность к заданному типу. +// ОбъектМетаданных - ОбъектМетаданных - для которого необходимо определить принадлежность к заданному типу. // // Возвращаемое значение: // Булево @@ -3668,7 +3668,7 @@ // Возвращает имя базового типа по переданному значению объекта метаданных. // // Параметры: -// ОбъектМетаданных - объект метаданных, по которому необходимо определить базовый тип. +// ОбъектМетаданных - ОбъектМетаданных - по которому необходимо определить базовый тип. // // Возвращаемое значение: // Строка - имя базового типа по переданному значению объекта метаданных. @@ -4002,12 +4002,14 @@ Запрос.УстановитьПараметр("Ссылка", Ссылка); Запрос.Текст = "ВЫБРАТЬ - |" + ТекстПолей + " + | &ТекстПолей |ИЗ - | " + Ссылка.Метаданные().ПолноеИмя() + " КАК ПсевдонимЗаданнойТаблицы + | &ИмяТаблицы КАК ПсевдонимЗаданнойТаблицы |ГДЕ | ПсевдонимЗаданнойТаблицы.Ссылка = &Ссылка |"; + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстПолей", ТекстПолей); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицы", Ссылка.Метаданные().ПолноеИмя()); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); @@ -4055,6 +4057,7 @@ &НаКлиентеНаСервереБезКонтекста Функция ОбщийМодуль(Имя) +// АПК:488-выкл "Вычислить" вместо "ОбщегоНазначения.ВычислитьВБезопасномРежиме()", так как это автономная обработка. #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда Модуль = Вычислить(Имя); @@ -4071,6 +4074,7 @@ ВызватьИсключение ПодставитьПараметрыВСтроку(НСтр("ru = 'Общий модуль ""%1"" не существует.'"), Имя); КонецЕсли; #КонецЕсли +// АПК:488-вкл Возврат Модуль; @@ -4296,9 +4300,9 @@ // с большим количеством строк. // // Параметры: -// ТаблицаЗначений +// ТаблицаЗначений // Возвращаемое значение: -// Массив +// Массив // &НаСервереБезКонтекста Функция ТаблицаЗначенийВМассив(ТаблицаЗначений) @@ -4331,7 +4335,7 @@ // Минимальная версия программы 1.1. Обновите программу. // // Возвращаемое значение: -// ФорматированнаяСтрока +// ФорматированнаяСтрока // &НаСервереБезКонтекста Функция ФорматированнаяСтрока(Знач Строка) diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/ObjectModule.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/ObjectModule.bsl index 92d111436..9a881f6d3 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/ObjectModule.bsl @@ -157,11 +157,11 @@ // Параметры: -// Коллекция - Массив из ОбъектМетаданныхРеквизит -// - Массив из ОбъектМетаданныхТабличнаяЧасть -// ТолькоИмена - Булево +// Коллекция - Массив из ОбъектМетаданныхРеквизит +// - Массив из ОбъектМетаданныхТабличнаяЧасть +// ТолькоИмена - Булево // Возвращаемое значение: -// Массив +// Массив // Функция СписокЭлементов(Коллекция, ТолькоИмена = Истина) Результат = Новый Массив; @@ -384,8 +384,8 @@ КонецПроцедуры // Параметры: -// Блокировка - БлокировкаДанных -// Ссылка - ЛюбаяСсылка +// Блокировка - БлокировкаДанных +// Ссылка - ЛюбаяСсылка // Процедура ЗаблокироватьСсылку(Знач Блокировка, Знач Ссылка) @@ -438,8 +438,8 @@ НайденнаяСтрока.Значение = Значение; ОписаниеСвойства = ЗначенияРеквизитовОбъекта(Операция.Свойство, "ТипЗначения, МногострочноеПолеВвода"); - МодульУправлениеСвойствами = ОбщийМодуль("УправлениеСвойствамиСлужебный"); - Если МодульУправлениеСвойствами.ИспользоватьНеограниченнуюСтроку(ОписаниеСвойства.ТипЗначения, ОписаниеСвойства.МногострочноеПолеВвода) Тогда + МодульУправлениеСвойствамиСлужебный = ОбщийМодуль("УправлениеСвойствамиСлужебный"); + Если МодульУправлениеСвойствамиСлужебный.ИспользоватьНеограниченнуюСтроку(ОписаниеСвойства.ТипЗначения, ОписаниеСвойства.МногострочноеПолеВвода) Тогда НайденнаяСтрока.ТекстоваяСтрока = Значение; КонецЕсли; Иначе @@ -1215,12 +1215,14 @@ Запрос.УстановитьПараметр("Ссылка", Ссылка); Запрос.Текст = "ВЫБРАТЬ - |" + ТекстПолей + " + | &ТекстПолей |ИЗ - | " + Ссылка.Метаданные().ПолноеИмя() + " КАК ПсевдонимЗаданнойТаблицы + | &ИмяТаблицы КАК ПсевдонимЗаданнойТаблицы |ГДЕ | ПсевдонимЗаданнойТаблицы.Ссылка = &Ссылка |"; + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстПолей", ТекстПолей); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицы", Ссылка.Метаданные().ПолноеИмя()); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); @@ -1315,7 +1317,7 @@ Функция ОбщийМодуль(Имя) Экспорт Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда - Модуль = Вычислить(Имя); + Модуль = Вычислить(Имя); // АПК:488 "Вычислить" вместо "ОбщегоНазначения.ВычислитьВБезопасномРежиме()", так как это автономная обработка. Иначе Модуль = Неопределено; КонецЕсли; @@ -1379,7 +1381,7 @@ // Возвращает массив существующих в конфигурации разделителей. // // Возвращаемое значение: -// ФиксированныйМассив Из Строка - массив имен общих реквизитов, которые +// ФиксированныйМассив из Строка - массив имен общих реквизитов, которые // являются разделителями. // Функция РазделителиКонфигурации() Экспорт diff --git a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Module.bsl index afc54e944..64ac9742f 100644 --- a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Module.bsl @@ -134,26 +134,31 @@ &НаСервере Функция ПолучитьПредставлениеСтрокиДереваАнкеты(СтрокаДерева) - СтрокаВозврата = ""; - - ЕстьОграниченияПоСроку = ЗначениеЗаполнено(СтрокаДерева.ДатаОкончания); - Если ТипЗнч(СтрокаДерева.АнкетаОпрос) = Тип("ДокументСсылка.НазначениеОпросов") Тогда - СтрокаВозврата = СтрокаВозврата + НСтр("ru = 'Анкета'") + " '" + СтрокаДерева.Наименование + "'"; + Если ЗначениеЗаполнено(СтрокаДерева.ДатаОкончания) Тогда + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Анкета ""%1"", к заполнению до %2'"), + СтрокаДерева.Наименование, Формат(НачалоДня(КонецДня(СтрокаДерева.ДатаОкончания) + 1), "ДЛФ=D")); + Иначе + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Анкета ""%1""'"), СтрокаДерева.Наименование); + КонецЕсли; ИначеЕсли ТипЗнч(СтрокаДерева.АнкетаОпрос) = Тип("ДокументСсылка.Анкета") Тогда - СтрокаВозврата = СтрокаВозврата + НСтр("ru = 'Анкета'") + " '" + СтрокаДерева.Наименование - + "', " + НСтр("ru = 'последний раз редактировавшаяся'") + " " + Формат(СтрокаДерева.ДатаАнкеты, "ДЛФ=D"); - Иначе - Возврат СтрокаВозврата; + Если ЗначениеЗаполнено(СтрокаДерева.ДатаАнкеты) И ЗначениеЗаполнено(СтрокаДерева.ДатаОкончания) Тогда + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Анкета ""%1"", последний раз редактировавшаяся %2, к заполнению до %3'"), + СтрокаДерева.Наименование, Формат(СтрокаДерева.ДатаАнкеты, "ДЛФ=D"), + Формат(НачалоДня(КонецДня(СтрокаДерева.ДатаОкончания) + 1), "ДЛФ=D")); + ИначеЕсли ЗначениеЗаполнено(СтрокаДерева.ДатаАнкеты) Тогда + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Анкета ""%1"", последний раз редактировавшаяся %2'"), + СтрокаДерева.Наименование, Формат(СтрокаДерева.ДатаАнкеты, "ДЛФ=D")); + Иначе + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Анкета ""%1""'"), СтрокаДерева.Наименование); + КонецЕсли; КонецЕсли; - - Если ЕстьОграниченияПоСроку Тогда - СтрокаВозврата = СтрокаВозврата + ", " + НСтр("ru = 'к заполнению до'") + " " + Формат(НачалоДня(КонецДня(СтрокаДерева.ДатаОкончания) + 1),"ДЛФ=D"); - КонецЕсли; - - СтрокаВозврата = СтрокаВозврата + "."; - - Возврат СтрокаВозврата; + Возврат ""; КонецФункции diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/Событие/Form.form b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/Событие/Form.form index f54e202e9..f43649c7a 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/Событие/Form.form +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/Событие/Form.form @@ -71,10 +71,6 @@ true - - <key>ru</key> - <value>Кнопок</value> - ГруппаКнопокExtendedTooltip 158 @@ -187,10 +183,6 @@ true - - <key>ru</key> - <value>Дата пользователь</value> - ГруппаДатаПользовательExtendedTooltip 110 @@ -353,10 +345,6 @@ true - - <key>ru</key> - <value>Компьютер приложение разделение данных</value> - ГруппаКомпьютерПриложениеРазделениеДанныхExtendedTooltip 113 @@ -382,10 +370,6 @@ true - - <key>ru</key> - <value>Основные</value> - ГруппаОсновныеExtendedTooltip 109 @@ -515,10 +499,6 @@ true - - <key>ru</key> - <value>Событие</value> - ГруппаСобытиеExtendedTooltip 146 @@ -1915,10 +1895,6 @@ true - - <key>ru</key> - <value>Горизонтальная группа свойств пользователя ИБ</value> - ГоризонтальнаяГруппаСвойствПользователяИБExtendedTooltip 141 @@ -1970,10 +1946,6 @@ true - - <key>ru</key> - <value>Представления данных</value> - ПредставленияДанныхExtendedTooltip 119 @@ -2024,10 +1996,6 @@ true - - <key>ru</key> - <value>Основное</value> - ГруппаОсновноеРасширеннаяПодсказка 117 @@ -2393,10 +2361,6 @@ true - - <key>ru</key> - <value>Транзакция соединение</value> - ГруппаТранзакцияСоединениеExtendedTooltip 149 diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/ManagerModule.bsl b/SSL/src/DataProcessors/ЖурналРегистрации/ManagerModule.bsl index 2d3c6ae47..1346a511e 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЖурналРегистрации/ManagerModule.bsl @@ -13,10 +13,10 @@ // Возвращает значение перечисления соответствующе строковому имени статус события. // // Параметры: -// Имя - Строка - статус транзакции записи. +// Имя - Строка - статус транзакции записи. // // Возвращаемое значение: -// СтатусТранзакцииЗаписиЖурналаРегистрации - значение статуса транзакции. +// СтатусТранзакцииЗаписиЖурналаРегистрации - значение статуса транзакции. // Функция СтатусТранзакцииЗаписиЖурналаРегистрацииЗначениеПоИмени(Имя) Экспорт @@ -37,10 +37,10 @@ // Возвращает значение перечисления соответствующе строковому уровню журнала регистрации. // // Параметры: -// Имя - Строка - уровень журнала регистрации. +// Имя - Строка - уровень журнала регистрации. // // Возвращаемое значение: -// УровеньЖурналаРегистрации - значение уровня журнала регистрации. +// УровеньЖурналаРегистрации - значение уровня журнала регистрации. // Функция УровеньЖурналаРегистрацииЗначениеПоИмени(Имя) Экспорт @@ -61,7 +61,7 @@ // Устанавливает номер рисунка в строке события журнала. // // Параметры: -// СобытиеЖурнала - строка таблицы значений - строка журнала регистрации. +// СобытиеЖурнала - СтрокаТаблицыЗначений - строка журнала регистрации. // Процедура УстановитьНомерРисунка(СобытиеЖурнала) Экспорт diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Module.bsl index fbf1c2e1f..cd4d8b19b 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Module.bsl @@ -1293,9 +1293,9 @@ КонецПроцедуры // Возвращаемое значение: -// Структура: -// * Идентификатор - Число -// * Имя - Строка +// Структура: +// * Идентификатор - Число +// * Имя - Строка // &НаКлиенте Функция ОписаниеПараметраСопоставленияНеоднозначностей(Знач ВыбраннаяСтрока, Знач Имя) @@ -1360,7 +1360,7 @@ Элементы.СтраницыПомощника.ТекущаяСтраница = Элементы.ОтчетОЗагрузкеДанных; Элементы.ОткрытьСправочникПослеЗакрытияПомощника.Видимость = Истина; - Элементы.Закрыть.Заголовок = "Готово"; + Элементы.Закрыть.Заголовок = НСтр("ru='Готово'"); Элементы.Далее.Видимость = Ложь; Элементы.Назад.Видимость = Ложь; @@ -1369,8 +1369,8 @@ #КонецОбласти // Параметры: -// ТаблицаИнформацияПоКолонкам - ТаблицаЗначений -// КолонкиМакета - Массив из см. ЗагрузкаДанныхИзФайлаКлиентСервер.ОписаниеКолонкиМакета +// ТаблицаИнформацияПоКолонкам - ТаблицаЗначений +// КолонкиМакета - Массив из см. ЗагрузкаДанныхИзФайлаКлиентСервер.ОписаниеКолонкиМакета // &НаСервере Процедура ОпределитьДинамическийМакет(ТаблицаИнформацияПоКолонкам, КолонкиМакета) @@ -1401,7 +1401,7 @@ КонецПроцедуры // Возвращаемое значение: -// ТаблицаЗначений: +// ТаблицаЗначений: // ИмяКолонки - Строка // ПредставлениеКолонки - Строка // ТипКолонки - Произвольный @@ -1692,20 +1692,33 @@ КонецЦикла; Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ " + СписокКолонок + " + Запрос.Текст = "ВЫБРАТЬ + | &СписокКолонок |ПОМЕСТИТЬ ТаблицаСопоставления - |ИЗ &ТаблицаСопоставления КАК ТаблицаСопоставления + |ИЗ + | &ТаблицаСопоставления КАК ТаблицаСопоставления |; + | |ВЫБРАТЬ - | СправочникСопоставления.Ссылка, ТаблицаСопоставления.Идентификатор + | СправочникСопоставления.Ссылка, + | ТаблицаСопоставления.Идентификатор |ИЗ | ТаблицаСопоставления КАК ТаблицаСопоставления - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник." + ИмяСправочника + " КАК СправочникСопоставления - | ПО " + Условия.УсловиеОбъединения + " + | ЛЕВОЕ СОЕДИНЕНИЕ &СправочникСопоставления КАК СправочникСопоставления + | ПО &УсловиеОбъединения |ГДЕ - | СправочникСопоставления.Ссылка.ПометкаУдаления = ЛОЖЬ " + Условия.Где + " - | УПОРЯДОЧИТЬ ПО ТаблицаСопоставления.Идентификатор ИТОГИ ПО ТаблицаСопоставления.Идентификатор"; + | СправочникСопоставления.Ссылка.ПометкаУдаления = ЛОЖЬ + | И &Условия + |УПОРЯДОЧИТЬ ПО + | ТаблицаСопоставления.Идентификатор + |ИТОГИ + |ПО + | ТаблицаСопоставления.Идентификатор"; + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&СписокКолонок", СписокКолонок); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&СправочникСопоставления", "Справочник." + ИмяСправочника); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеОбъединения", Условия.УсловиеОбъединения); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Условия", ?(ПустаяСтрока(Условия.Где), "ИСТИНА", Условия.Где)); Запрос.УстановитьПараметр("ТаблицаСопоставления", ТаблицаСопоставления); РезультатЗапроса = Запрос.Выполнить(); @@ -2017,7 +2030,7 @@ КонецПроцедуры // Возвращаемое значение: -// ТаблицаЗначений: +// ТаблицаЗначений: // * Идентификатор - Число // &НаСервере @@ -2353,7 +2366,7 @@ КолонкаСвязьПараметровВыбора = КолонкиСодержащиеСвязиПараметровВыбора.Получить(Сред(Колонка.Имя, 4)); Если КолонкаСвязьПараметровВыбора <> Неопределено Тогда НовыйМассив = Новый Массив(); - Для каждого СвязьПараметраВыбора Из КолонкаСвязьПараметровВыбора Цикл + Для каждого СвязьПараметраВыбора Из КолонкаСвязьПараметровВыбора Цикл // СвязьПараметраВыбора Позиция = СтрНайти(СвязьПараметраВыбора.ПутьКДанным, ".", НаправлениеПоиска.СКонца); Если Позиция > 0 Тогда ИмяЭлемента = Сред(СвязьПараметраВыбора.ПутьКДанным, Позиция + 1); @@ -2593,14 +2606,14 @@ Если Результат <> Неопределено Тогда Если Результат.Количество() > 0 Тогда + + ИнформацияПоКолонкам.Очистить(); Для Каждого СтрокаТаблицы Из Результат Цикл - ПараметрыОтбора = Новый Структура("ИмяКолонки", СтрокаТаблицы.ИмяКолонки); - НайденныеСтроки = ИнформацияПоКолонкам.НайтиСтроки(ПараметрыОтбора); - Если НайденныеСтроки.Количество() > 0 Тогда - ЗаполнитьЗначенияСвойств(НайденныеСтроки[0], СтрокаТаблицы); - КонецЕсли; - СохранятьНастройки = Истина; + НоваяСтрока = ИнформацияПоКолонкам.Добавить(); + ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТаблицы); КонецЦикла; + СохранятьНастройки = Истина; + Иначе ИнформацияПоКолонкам.Очистить(); СформироватьМакетПоТипуЗагрузки(); diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РедактированиеБланка/Form.form b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РедактированиеБланка/Form.form index 277595169..4b6444309 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РедактированиеБланка/Form.form +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РедактированиеБланка/Form.form @@ -212,17 +212,73 @@ СписокКолонокКоманднаяПанель 3 - - СписокКолонокУстановитьФлажки - 25 + + СписокКолонокФлаги + 58 + + СписокКолонокУстановитьФлажки + 25 + true + true + + true + + + СписокКолонокУстановитьФлажкиРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + Form.Command.УстановитьФлажки + Normal + Auto + true + true + UserCmds + Auto + + + СписокКолонокСнятьФлажки + 27 + true + true + + true + + + СписокКолонокСнятьФлажкиРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + Form.Command.СнятьФлажки + Normal + Auto + true + true + UserCmds + Auto + true true true + + <key>ru</key> + <value>Список колонок флаги</value> + - СписокКолонокУстановитьФлажкиРасширеннаяПодсказка - 26 + СписокКолонокФлагиРасширеннаяПодсказка + 59 Label true true @@ -230,25 +286,79 @@ Left - Form.Command.УстановитьФлажки - Normal - Auto - true - true - UserCmds - Auto + + Compact + - - СписокКолонокСнятьФлажки - 27 + + СписокКолонокПеремещение + 60 + + СписокКолонокПереместитьВверх + 33 + true + true + + true + + + СписокКолонокПереместитьВверхРасширеннаяПодсказка + 34 + Label + true + true + + Left + + + Form.Item.СписокКолонок.StandardCommand.MoveUp + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + + СписокКолонокПереместитьВниз + 35 + true + true + + true + + + СписокКолонокПереместитьВнизРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + Form.Item.СписокКолонок.StandardCommand.MoveDown + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + true true true + + <key>ru</key> + <value>Список колонок перемещение</value> + - СписокКолонокСнятьФлажкиРасширеннаяПодсказка - 28 + СписокКолонокПеремещениеРасширеннаяПодсказка + 61 Label true true @@ -256,67 +366,9 @@ Left - Form.Command.СнятьФлажки - Normal - Auto - true - true - UserCmds - Auto - - - СписокКолонокПереместитьВверх - 33 - true - true - - true - - - СписокКолонокПереместитьВверхРасширеннаяПодсказка - 34 - Label - true - true - - Left - - - Form.Item.СписокКолонок.StandardCommand.MoveUp - Normal - Auto - true - true - UserCmds - Auto - InCommandBarAndInAdditionalSubmenu - - - СписокКолонокПереместитьВниз - 35 - true - true - - true - - - СписокКолонокПереместитьВнизРасширеннаяПодсказка - 36 - Label - true - true - - Left - - - Form.Item.СписокКолонок.StandardCommand.MoveDown - Normal - Auto - true - true - UserCmds - Auto - InCommandBarAndInAdditionalSubmenu + + Compact + ФормаСброситьВсеНастройки diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/ManagerModule.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/ManagerModule.bsl index db5aacbc1..da51dfba9 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/ManagerModule.bsl @@ -341,18 +341,23 @@ ТекстГде = ""; РазделительГде = ""; Для Каждого Поле Из МассивКолонок Цикл - ТекстГде = ТекстГде + РазделительГде + ИмяОбъекта + "." + Поле + " = &ПараметрПоиска"; + ТекстГде = ТекстГде + РазделительГде + "ТаблицаДанных." + Поле + " = &ПараметрПоиска"; РазделительГде = " ИЛИ "; КонецЦикла; - ТекстРазрешенные = ?(ПустаяСтрока(ТекстЗапроса), "РАЗРЕШЕННЫЕ ", ""); - ТекстШаблон = "ВЫБРАТЬ " + ТекстРазрешенные + "%1.Ссылка КАК СсылкаНаОбъект ИЗ %2.%1 КАК %1 ГДЕ " + ТекстГде; - Если ЗначениеЗаполнено(ТекстЗапроса) Тогда - ТекстОбъединитьВсе = Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС; - Иначе - ТекстОбъединитьВсе = ""; + ТекстШаблон = "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | ТаблицаДанных.Ссылка КАК СсылкаНаОбъект + |ИЗ + | &ИмяТаблицы КАК ТаблицаДанных + |ГДЕ + | &Условия"; + ТекстШаблон = СтрЗаменить(ТекстШаблон, "&Условия", ТекстГде); + ТекстШаблон = СтрЗаменить(ТекстШаблон, "&ИмяТаблицы", ТипОбъекта + "." + ИмяОбъекта); + Если Не ПустаяСтрока(ТекстЗапроса) Тогда + ТекстШаблон = СтрЗаменить(ТекстШаблон, "ВЫБРАТЬ РАЗРЕШЕННЫЕ", "ВЫБРАТЬ"); + ТекстЗапроса = ТекстЗапроса + Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС; КонецЕсли; - ТекстЗапроса = ТекстЗапроса + ТекстОбъединитьВсе + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстШаблон, ИмяОбъекта, ТипОбъекта); + ТекстЗапроса = ТекстЗапроса + ТекстШаблон; КонецЕсли; Возврат ТекстЗапроса; @@ -556,7 +561,7 @@ ИнформацияПоКолонкам.Очистить(); Позиция = 1; - МетаданныеСправочника= Метаданные.НайтиПоПолномуИмени(ПараметрыЗагрузки.ПолноеИмяОбъекта); + МетаданныеСправочника= Метаданные.НайтиПоПолномуИмени(ПараметрыЗагрузки.ПолноеИмяОбъекта); // ОбъектМетаданныхСправочник, ОбъектМетаданныхДокумент Если НЕ МетаданныеСправочника.Автонумерация И МетаданныеСправочника.ДлинаКода > 0 Тогда СоздатьКолонкуСтандартныеРеквизиты(ИнформацияПоКолонкам, МетаданныеСправочника, "Код", Позиция); @@ -958,7 +963,7 @@ ШиринаКолонки = 20; Иначе Для каждого ТипОбъекта Из Тип.Типы() Цикл - МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипОбъекта); + МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипОбъекта); // ОбъектМетаданныхСправочник СтруктураОбъекта = РазложитьПолноеИмяОбъекта(МетаданныеОбъекта.ПолноеИмя()); Если СтруктураОбъекта.ТипОбъекта = "Справочник" Тогда Если НЕ МетаданныеОбъекта.Автонумерация И МетаданныеОбъекта.ДлинаКода > 0 Тогда @@ -1268,10 +1273,10 @@ // Возвращает имя объекта в виде структуры. // // Параметры: -// ПолноеИмяОбъекта - Структура: -// * ТипОбъекта - Строка - тип объекта. -// * НазваниеОбъекта - Строка - название объекта. -// * ИмяТабличнойЧасти - Строка - имя табличной части. +// ПолноеИмяОбъекта - Структура: +// * ТипОбъекта - Строка - тип объекта. +// * НазваниеОбъекта - Строка - название объекта. +// * ИмяТабличнойЧасти - Строка - имя табличной части. // Функция РазложитьПолноеИмяОбъекта(ПолноеИмяОбъекта) Экспорт Результат = СтрРазделить(ПолноеИмяОбъекта, ".", Ложь); @@ -1773,7 +1778,7 @@ // Параметры: // ПолноеИмяОбъекта - Строка - полное наименование объекта. // Возвращаемое значение: -// - Соответствие: +// - Соответствие из КлючИЗначение: // * Ключ - Строка - имя колонки. // * Значение - Булево - признак доступности. // diff --git a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ManagerModule.bsl b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ManagerModule.bsl index 69973340e..18ab2c7c5 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ManagerModule.bsl @@ -18,18 +18,26 @@ // // Параметры: // Классификаторы - см. РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов.Классификаторы -// Описатель - см. РаботаСКлассификаторами.ОписаниеКлассификатора // -Процедура ПриДобавленииКлассификаторов(Классификаторы, Описатель) Экспорт +Процедура ПриДобавленииКлассификаторов(Классификаторы) Экспорт - Описатель.Идентификатор = ИдентификаторКлассификатора(); - Описатель.Наименование = НСтр("ru = 'Справочник БИК'"); - Описатель.ОбновлятьАвтоматически = Истина; - Описатель.ОбщиеДанные = Истина; - Описатель.ОбработкаРазделенныхДанных = Ложь; - Описатель.СохранятьФайлВКэш = Истина; + Описание = Неопределено; + Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда + МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами"); + Описание = МодульРаботаСКлассификаторами.ОписаниеКлассификатора(); + КонецЕсли; + Если Описание = Неопределено Тогда + Возврат; + КонецЕсли; + + Описание.Идентификатор = ИдентификаторКлассификатора(); + Описание.Наименование = НСтр("ru = 'Справочник БИК'"); + Описание.ОбновлятьАвтоматически = Истина; + Описание.ОбщиеДанные = Истина; + Описание.ОбработкаРазделенныхДанных = Ложь; + Описание.СохранятьФайлВКэш = Истина; - Классификаторы.Добавить(Описатель); + Классификаторы.Добавить(Описание); КонецПроцедуры @@ -79,12 +87,24 @@ Процедура ЗагрузитьДанные(Параметры) + АктуальныеЗаписи = Новый Массив; + + Для Каждого ДанныеОрганизации Из ПрочитатьСправочникБИК(Параметры) Цикл + АктуальныеЗаписи.Добавить(ЗаписатьЭлементКлассификатораБанковРФ(ДанныеОрганизации)); + КонецЦикла; + + ОтметитьНеактуальныеЗаписи(АктуальныеЗаписи); + +КонецПроцедуры + +Функция ПрочитатьСправочникБИК(Параметры) + ЧтениеТекста = Новый ЧтениеТекста(Параметры.ПутьКФайлуБИК, КодировкаТекста.UTF8); ТекстКлассификатора = ЧтениеТекста.Прочитать(); ЧтениеТекста.Закрыть(); СправочникБИК = JSONВЗначение(ТекстКлассификатора, "dateIn,dateOut"); - АктуальныеЗаписи = Новый Массив; + Результат = Новый Массив; Для Каждого Элемент Из СправочникБИК.bics Цикл ДанныеОрганизации = ДанныеОрганизации(Элемент); @@ -93,20 +113,26 @@ ДанныеОрганизации.КоррСчет = ОписаниеСчета.КоррСчет; Если ОписаниеСчета.Свойство("БИКРКЦ") Тогда ДанныеОрганизации.БИКРКЦ = ОписаниеСчета.БИКРКЦ; + Результат.Добавить(ОбщегоНазначения.СкопироватьРекурсивно(ДанныеОрганизации)); + Иначе + Результат.Вставить(0, ОбщегоНазначения.СкопироватьРекурсивно(ДанныеОрганизации)); КонецЕсли; - АктуальныеЗаписи.Добавить(ЗаписатьЭлементКлассификатораБанковРФ(ДанныеОрганизации)); КонецЦикла; Иначе ДанныеОрганизации.КоррСчет = ""; ДанныеОрганизации.БИКРКЦ = Справочники.КлассификаторБанков.ПустаяСсылка(); - АктуальныеЗаписи.Добавить(ЗаписатьЭлементКлассификатораБанковРФ(ДанныеОрганизации)); + Результат.Вставить(0, ДанныеОрганизации); КонецЕсли; КонецЦикла; - ОтметитьНеактуальныеЗаписи(АктуальныеЗаписи); + Возврат Результат; -КонецПроцедуры +КонецФункции +// Возвращаемое значение: +// Структура: +// * Наименование - Строка +// Функция ДанныеОрганизации(Знач Элемент) ДанныеОрганизации = СтруктураДанныхОрганизации(); @@ -345,19 +371,15 @@ //////////////////////////////////////////////////////////////////////////////// // Запись обработанных данных -/// Записывает/перезаписывает в справочник КлассификаторБанков данные банка. // Параметры: -// ПараметрыЗагрузкиДанных - Структура: -// СтруктураБанк - Структура или СтрокаТаблицыЗначений - данные банка. -// Загружено - Число - количество новых записей классификатора. -// Обновлено - Число - количество обновленных записей классификатора. +// СведенияОБанке - см. ДанныеОрганизации // Функция ЗаписатьЭлементКлассификатораБанковРФ(СведенияОБанке) НачатьТранзакцию(); Попытка Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить("Справочник.КлассификаторБанков"); + Блокировка.Добавить("Справочник.КлассификаторБанков"); Блокировка.Заблокировать(); РегионСсылка = Справочники.КлассификаторБанков.НайтиПоКоду(СведенияОБанке.КодРегиона); @@ -412,7 +434,7 @@ Для Каждого Реквизит Из БанкОбъект.Метаданные().Реквизиты Цикл ИмяРеквизита = Реквизит.Имя; - Если СведенияОБанке.Свойство(ИмяРеквизита) И ТипЗнч(БанкОбъект[ИмяРеквизита]) = Тип("Строка") Тогда + Если СведенияОБанке.Свойство(ИмяРеквизита) Тогда ОбновитьЗначениеРеквизита(БанкОбъект, ИмяРеквизита, Реквизит.Тип.ПривестиЗначение(СведенияОБанке[ИмяРеквизита])); КонецЕсли; КонецЦикла; diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Module.bsl deleted file mode 100644 index ca0121ec6..000000000 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Module.bsl +++ /dev/null @@ -1,290 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2020, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - ЗаполнитьФормуПоОбъекту(); - - Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда - Элементы.СклонениеЦелойЧасти.ВыравниваниеЭлементовИЗаголовков = ВариантВыравниванияЭлементовИЗаголовков.ЭлементыПравоЗаголовкиЛево; - Элементы.ГруппаПараметрыДробнойЧасти.ВыравниваниеЭлементовИЗаголовков = ВариантВыравниванияЭлементовИЗаголовков.ЭлементыПравоЗаголовкиЛево; - Элементы.ГруппаПримерПрописи.ВыравниваниеЭлементовИЗаголовков = ВариантВыравниванияЭлементовИЗаголовков.ЭлементыПравоЗаголовкиЛево; - Элементы.СуммаПрописью.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх; - Элементы.СуммаПрописью.Высота = 2; - Элементы.СуммаПрописью.МногострочныйРежим = Истина; - ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто; - КонецЕсли; -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиСобытийЭлементовШапкиФормы - -&НаКлиенте -Процедура СуммаЧислоПриИзменении(Элемент) - - УстановитьСуммуПрописью(ЭтотОбъект); - -КонецПроцедуры - -&НаКлиенте -Процедура ПолеПрописи4наРусскомПриИзменении(Элемент) - УстановитьСклоненияПараметровПрописи(ЭтотОбъект); - УстановитьСуммуПрописью(ЭтотОбъект); -КонецПроцедуры - -&НаКлиенте -Процедура ПолеПрописи4наРусскомАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) - - ДанныеВыбора = АвтоПодборПоСпискуВыбора(Элемент, Текст, СтандартнаяОбработка); - -КонецПроцедуры - -&НаКлиенте -Процедура ПолеПрописи4наРусскомОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) - - ДанныеВыбора = ОкончаниеВводаТекстаПоСпискуВыбора(Элемент, Текст, СтандартнаяОбработка); - -КонецПроцедуры - -&НаКлиенте -Процедура ПолеПрописи8наРусскомПриИзменении(Элемент) - УстановитьСклоненияПараметровПрописи(ЭтотОбъект); - УстановитьСуммуПрописью(ЭтотОбъект); -КонецПроцедуры - -&НаКлиенте -Процедура ПолеПрописи8наРусскомАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) - - ДанныеВыбора = АвтоПодборПоСпискуВыбора(Элемент, Текст, СтандартнаяОбработка); - -КонецПроцедуры - -&НаКлиенте -Процедура ПолеПрописи8наРусскомОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) - - ДанныеВыбора = ОкончаниеВводаТекстаПоСпискуВыбора(Элемент, Текст, СтандартнаяОбработка); - -КонецПроцедуры - -&НаКлиенте -Процедура ПолеПрописи1наРусскомПриИзменении(Элемент) - УстановитьСуммуПрописью(ЭтотОбъект); -КонецПроцедуры - -&НаКлиенте -Процедура ПолеПрописи2наРусскомПриИзменении(Элемент) - УстановитьСуммуПрописью(ЭтотОбъект); -КонецПроцедуры - -&НаКлиенте -Процедура ПолеПрописи3наРусскомПриИзменении(Элемент) - УстановитьСуммуПрописью(ЭтотОбъект); -КонецПроцедуры - -&НаКлиенте -Процедура ПолеПрописи5наРусскомПриИзменении(Элемент) - УстановитьСуммуПрописью(ЭтотОбъект); -КонецПроцедуры - -&НаКлиенте -Процедура ПолеПрописи6наРусскомПриИзменении(Элемент) - УстановитьСуммуПрописью(ЭтотОбъект); -КонецПроцедуры - -&НаКлиенте -Процедура ПолеПрописи7наРусскомПриИзменении(Элемент) - УстановитьСуммуПрописью(ЭтотОбъект); -КонецПроцедуры - -&НаКлиенте -Процедура ДлинаДробнойЧастиПриИзменении(Элемент) - УстановитьСуммуПрописью(ЭтотОбъект); -КонецПроцедуры - -&НаКлиенте -Процедура ДлинаДробнойЧастиАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка) - - ДанныеВыбора = АвтоПодборПоСпискуВыбора(Элемент, Текст, СтандартнаяОбработка); - -КонецПроцедуры - -&НаКлиенте -Процедура ДлинаДробнойЧастиОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) - - ДанныеВыбора = ОкончаниеВводаТекстаПоСпискуВыбора(Элемент, Текст, СтандартнаяОбработка); - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиКомандФормы - -&НаКлиенте -Процедура Установить(Команда) - Закрыть(ПараметрыПрописиНаРусском(ЭтотОбъект)); -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -&НаСервере -Процедура ЗаполнитьФормуПоОбъекту() - - ПрочитатьПараметрыПрописи(); - - УстановитьСклоненияПараметровПрописи(ЭтотОбъект); - УстановитьСуммуПрописью(ЭтотОбъект); - -КонецПроцедуры - -&НаКлиентеНаСервереБезКонтекста -Функция ПараметрыПрописиНаРусском(Форма) - - Возврат Форма.ПолеПрописи1наРусском + ", " - + Форма.ПолеПрописи2наРусском + ", " - + Форма.ПолеПрописи3наРусском + ", " - + НРег(Лев(Форма.ПолеПрописи4наРусском, 1)) + ", " - + Форма.ПолеПрописи5наРусском + ", " - + Форма.ПолеПрописи6наРусском + ", " - + Форма.ПолеПрописи7наРусском + ", " - + НРег(Лев(Форма.ПолеПрописи8наРусском, 1)) + ", " - + Форма.ДлинаДробнойЧасти; - -КонецФункции - -&НаКлиентеНаСервереБезКонтекста -Процедура УстановитьСуммуПрописью(Форма) - - Форма.СуммаПрописью = СуммаПрописью(Форма.СуммаЧисло, ПараметрыПрописиНаРусском(Форма)); - -КонецПроцедуры - -&НаСервереБезКонтекста -Функция СуммаПрописью(СуммаЧисло, ПараметрыПрописиНаРусском) - - Возврат Обработки.ЗагрузкаКурсовВалют.СуммаПрописью(СуммаЧисло, ПараметрыПрописиНаРусском); - -КонецФункции - -&НаСервере -Процедура ПрочитатьПараметрыПрописи() - - // Считывает параметры прописи и заполняет соответствующие поля диалога. - - СтрокаПараметров = СтрЗаменить(Параметры.ПараметрыПрописи, ",", Символы.ПС); - - ПолеПрописи1наРусском = СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 1)); - ПолеПрописи2наРусском = СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 2)); - ПолеПрописи3наРусском = СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 3)); - - Род = СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 4)); - - Если НРег(Род) = "м" Тогда - ПолеПрописи4наРусском = "Мужской"; - ИначеЕсли НРег(Род) = "ж" Тогда - ПолеПрописи4наРусском = "Женский"; - ИначеЕсли НРег(Род) = "с" Тогда - ПолеПрописи4наРусском = "Средний"; - КонецЕсли; - - ПолеПрописи5наРусском = СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 5)); - ПолеПрописи6наРусском = СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 6)); - ПолеПрописи7наРусском = СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 7)); - - Род = СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 8)); - - Если НРег(Род) = "м" Тогда - ПолеПрописи8наРусском = "Мужской"; - ИначеЕсли НРег(Род) = "ж" Тогда - ПолеПрописи8наРусском = "Женский"; - ИначеЕсли НРег(Род) = "с" Тогда - ПолеПрописи8наРусском = "Средний"; - КонецЕсли; - - ДлинаДробнойЧасти = СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 9)); - -КонецПроцедуры - -&НаКлиентеНаСервереБезКонтекста -Процедура УстановитьСклоненияПараметровПрописи(Форма) - - // Склонение заголовков параметров прописи. - - Элементы = Форма.Элементы; - - Если Форма.ПолеПрописи4наРусском = "Женский" Тогда - Элементы.ПолеПрописи1наРусском.Заголовок = НСтр("ru = 'Одна'"); - Элементы.ПолеПрописи2наРусском.Заголовок = НСтр("ru = 'Две'"); - ИначеЕсли Форма.ПолеПрописи4наРусском = "Мужской" Тогда - Элементы.ПолеПрописи1наРусском.Заголовок = НСтр("ru = 'Один'"); - Элементы.ПолеПрописи2наРусском.Заголовок = НСтр("ru = 'Два'"); - Иначе - Элементы.ПолеПрописи1наРусском.Заголовок = НСтр("ru = 'Одно'"); - Элементы.ПолеПрописи2наРусском.Заголовок = НСтр("ru = 'Два'"); - КонецЕсли; - - Если Форма.ПолеПрописи8наРусском = "Женский" Тогда - Элементы.ПолеПрописи5наРусском.Заголовок = НСтр("ru = 'Одна'"); - Элементы.ПолеПрописи6наРусском.Заголовок = НСтр("ru = 'Две'"); - ИначеЕсли Форма.ПолеПрописи8наРусском = "Мужской" Тогда - Элементы.ПолеПрописи5наРусском.Заголовок = НСтр("ru = 'Один'"); - Элементы.ПолеПрописи6наРусском.Заголовок = НСтр("ru = 'Два'"); - Иначе - Элементы.ПолеПрописи5наРусском.Заголовок = НСтр("ru = 'Одно'"); - Элементы.ПолеПрописи6наРусском.Заголовок = НСтр("ru = 'Два'"); - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Функция АвтоПодборПоСпискуВыбора(Элемент, Текст, СтандартнаяОбработка) - - // Вспомогательная функция управлением вводом. - - Для Каждого ЭлементВыбора Из Элемент.СписокВыбора Цикл - Если ВРег(Текст) = ВРег(Лев(ЭлементВыбора.Представление, СтрДлина(Текст))) Тогда - Результат = Новый СписокЗначений; - Результат.Добавить(ЭлементВыбора.Значение, ЭлементВыбора.Представление); - СтандартнаяОбработка = Ложь; - Возврат Результат; - КонецЕсли; - КонецЦикла; - - Возврат Неопределено; - -КонецФункции - -&НаКлиенте -Функция ОкончаниеВводаТекстаПоСпискуВыбора(Элемент, Текст, СтандартнаяОбработка) - - // Вспомогательная функция управлением вводом. - - СтандартнаяОбработка = Ложь; - - Для Каждого ЭлементВыбора Из Элемент.СписокВыбора Цикл - Если ВРег(Текст) = ВРег(ЭлементВыбора.Представление) Тогда - СтандартнаяОбработка = Истина; - ИначеЕсли ВРег(Текст) = ВРег(Лев(ЭлементВыбора.Представление, СтрДлина(Текст))) Тогда - СтандартнаяОбработка = Ложь; - Результат = Новый СписокЗначений; - Результат.Добавить(ЭлементВыбора.Значение, ЭлементВыбора.Представление); - Возврат Результат; - КонецЕсли; - КонецЦикла; - - Возврат Неопределено; - -КонецФункции - -#КонецОбласти - diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Form.form b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Form.form similarity index 84% rename from SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Form.form rename to SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Form.form index 51d18d894..bbbc52ddd 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Form.form +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Form.form @@ -5,7 +5,7 @@ 9 VeryHigh - ПолеПрописи4наРусском + ЦелаяЧастьРод 13 <key>ru</key> @@ -17,14 +17,14 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>ПолеПрописи4наРусском</segments> + <segments>ЦелаяЧастьРод</segments> </dataPath> <handlers> <event>OnChange</event> - <name>ПолеПрописи4наРусскомПриИзменении</name> + <name>ПолеВводаПриИзменении</name> </handlers> <extendedTooltip> - <name>ПолеПрописи4наРусскомExtendedTooltip</name> + <name>ЦелаяЧастьРодРасширеннаяПодсказка</name> <id>85</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -34,7 +34,7 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>ПолеПрописи4наРусскомКонтекстноеМеню</name> + <name>ЦелаяЧастьРодКонтекстноеМеню</name> <id>25</id> <autoFill>true</autoFill> </contextMenu> @@ -45,14 +45,6 @@ <showInFooter>true</showInFooter> <footerHorizontalAlign>Left</footerHorizontalAlign> <extInfo xsi:type="form:InputFieldExtInfo"> - <handlers> - <event>AutoComplete</event> - <name>ПолеПрописи4наРусскомАвтоПодбор</name> - </handlers> - <handlers> - <event>TextEditEnd</event> - <name>ПолеПрописи4наРусскомОкончаниеВводаТекста</name> - </handlers> <width>10</width> <maxWidth>15</maxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -65,7 +57,7 @@ <value>Мужской</value> </presentation> <value xsi:type="core:StringValue"> - <value>Мужской</value> + <value>м</value> </value> </choiceList> <choiceList> @@ -74,7 +66,7 @@ <value>Женский</value> </presentation> <value xsi:type="core:StringValue"> - <value>Женский</value> + <value>ж</value> </value> </choiceList> <choiceList> @@ -83,7 +75,7 @@ <value>Средний</value> </presentation> <value xsi:type="core:StringValue"> - <value>Средний</value> + <value>с</value> </value> </choiceList> <borderColor xsi:type="core:ColorRef"> @@ -93,7 +85,7 @@ </extInfo> </items> <items xsi:type="form:FormField"> - <name>ПолеПрописи1наРусском</name> + <name>ЦелаяЧастьОдин</name> <id>10</id> <title> <key>ru</key> @@ -105,14 +97,14 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>ПолеПрописи1наРусском</segments> + <segments>ЦелаяЧастьОдин</segments> </dataPath> <handlers> <event>OnChange</event> - <name>ПолеПрописи1наРусскомПриИзменении</name> + <name>ПолеВводаПриИзменении</name> </handlers> <extendedTooltip> - <name>ПолеПрописи1наРусскомExtendedTooltip</name> + <name>ЦелаяЧастьОдинРасширеннаяПодсказка</name> <id>86</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -122,7 +114,7 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>ПолеПрописи1наРусскомКонтекстноеМеню</name> + <name>ЦелаяЧастьОдинКонтекстноеМеню</name> <id>26</id> <autoFill>true</autoFill> </contextMenu> @@ -133,6 +125,10 @@ <showInFooter>true</showInFooter> <footerHorizontalAlign>Left</footerHorizontalAlign> <extInfo xsi:type="form:InputFieldExtInfo"> + <handlers> + <event>EditTextChange</event> + <name>ПолеВводаИзменениеТекстаРедактирования</name> + </handlers> <width>10</width> <maxWidth>15</maxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -146,7 +142,7 @@ </extInfo> </items> <items xsi:type="form:FormField"> - <name>ПолеПрописи2наРусском</name> + <name>ЦелаяЧатьДва</name> <id>11</id> <title> <key>ru</key> @@ -158,14 +154,14 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>ПолеПрописи2наРусском</segments> + <segments>ЦелаяЧатьДва</segments> </dataPath> <handlers> <event>OnChange</event> - <name>ПолеПрописи2наРусскомПриИзменении</name> + <name>ПолеВводаПриИзменении</name> </handlers> <extendedTooltip> - <name>ПолеПрописи2наРусскомExtendedTooltip</name> + <name>ЦелаяЧатьДваРасширеннаяПодсказка</name> <id>87</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -175,7 +171,7 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>ПолеПрописи2наРусскомКонтекстноеМеню</name> + <name>ЦелаяЧатьДваКонтекстноеМеню</name> <id>27</id> <autoFill>true</autoFill> </contextMenu> @@ -186,6 +182,10 @@ <showInFooter>true</showInFooter> <footerHorizontalAlign>Left</footerHorizontalAlign> <extInfo xsi:type="form:InputFieldExtInfo"> + <handlers> + <event>EditTextChange</event> + <name>ПолеВводаИзменениеТекстаРедактирования</name> + </handlers> <width>10</width> <maxWidth>15</maxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -211,11 +211,11 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>ПолеПрописи3наРусском</segments> + <segments>ЦелаяЧастьПять</segments> </dataPath> <handlers> <event>OnChange</event> - <name>ПолеПрописи3наРусскомПриИзменении</name> + <name>ПолеВводаПриИзменении</name> </handlers> <extendedTooltip> <name>ПолеПрописи3наРусскомExtendedTooltip</name> @@ -239,6 +239,10 @@ <showInFooter>true</showInFooter> <footerHorizontalAlign>Left</footerHorizontalAlign> <extInfo xsi:type="form:InputFieldExtInfo"> + <handlers> + <event>EditTextChange</event> + <name>ПолеВводаИзменениеТекстаРедактирования</name> + </handlers> <width>10</width> <maxWidth>15</maxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -294,7 +298,7 @@ <name>СклонениеДробнойЧасти</name> <id>14</id> <items xsi:type="form:FormField"> - <name>ПолеПрописи8наРусском</name> + <name>ДробнаяЧастьРод</name> <id>18</id> <title> <key>ru</key> @@ -306,14 +310,14 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>ПолеПрописи8наРусском</segments> + <segments>ДробнаяЧастьРод</segments> </dataPath> <handlers> <event>OnChange</event> - <name>ПолеПрописи8наРусскомПриИзменении</name> + <name>ПолеВводаПриИзменении</name> </handlers> <extendedTooltip> - <name>ПолеПрописи8наРусскомExtendedTooltip</name> + <name>ДробнаяЧастьРодРасширеннаяПодсказка</name> <id>91</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -323,7 +327,7 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>ПолеПрописи8наРусскомКонтекстноеМеню</name> + <name>ДробнаяЧастьРодКонтекстноеМеню</name> <id>29</id> <autoFill>true</autoFill> </contextMenu> @@ -334,14 +338,6 @@ <showInFooter>true</showInFooter> <footerHorizontalAlign>Left</footerHorizontalAlign> <extInfo xsi:type="form:InputFieldExtInfo"> - <handlers> - <event>AutoComplete</event> - <name>ПолеПрописи8наРусскомАвтоПодбор</name> - </handlers> - <handlers> - <event>TextEditEnd</event> - <name>ПолеПрописи8наРусскомОкончаниеВводаТекста</name> - </handlers> <width>10</width> <maxWidth>15</maxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -354,7 +350,7 @@ <value>Мужской</value> </presentation> <value xsi:type="core:StringValue"> - <value>Мужской</value> + <value>м</value> </value> </choiceList> <choiceList> @@ -363,7 +359,7 @@ <value>Женский</value> </presentation> <value xsi:type="core:StringValue"> - <value>Женский</value> + <value>ж</value> </value> </choiceList> <choiceList> @@ -372,7 +368,7 @@ <value>Средний</value> </presentation> <value xsi:type="core:StringValue"> - <value>Средний</value> + <value>с</value> </value> </choiceList> <borderColor xsi:type="core:ColorRef"> @@ -382,7 +378,7 @@ </extInfo> </items> <items xsi:type="form:FormField"> - <name>ПолеПрописи5наРусском</name> + <name>ДробнаяЧастьОдин</name> <id>17</id> <title> <key>ru</key> @@ -394,14 +390,14 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>ПолеПрописи5наРусском</segments> + <segments>ДробнаяЧастьОдин</segments> </dataPath> <handlers> <event>OnChange</event> - <name>ПолеПрописи5наРусскомПриИзменении</name> + <name>ПолеВводаПриИзменении</name> </handlers> <extendedTooltip> - <name>ПолеПрописи5наРусскомExtendedTooltip</name> + <name>ДробнаяЧастьОдинРасширеннаяПодсказка</name> <id>92</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -411,7 +407,7 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>ПолеПрописи5наРусскомКонтекстноеМеню</name> + <name>ДробнаяЧастьОдинКонтекстноеМеню</name> <id>30</id> <autoFill>true</autoFill> </contextMenu> @@ -422,6 +418,10 @@ <showInFooter>true</showInFooter> <footerHorizontalAlign>Left</footerHorizontalAlign> <extInfo xsi:type="form:InputFieldExtInfo"> + <handlers> + <event>EditTextChange</event> + <name>ПолеВводаИзменениеТекстаРедактирования</name> + </handlers> <width>10</width> <maxWidth>15</maxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -435,7 +435,7 @@ </extInfo> </items> <items xsi:type="form:FormField"> - <name>ПолеПрописи6наРусском</name> + <name>ДробнаяЧастьДва</name> <id>16</id> <title> <key>ru</key> @@ -447,14 +447,14 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>ПолеПрописи6наРусском</segments> + <segments>ДробнаяЧастьДва</segments> </dataPath> <handlers> <event>OnChange</event> - <name>ПолеПрописи6наРусскомПриИзменении</name> + <name>ПолеВводаПриИзменении</name> </handlers> <extendedTooltip> - <name>ПолеПрописи6наРусскомExtendedTooltip</name> + <name>ДробнаяЧастьДваРасширеннаяПодсказка</name> <id>93</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -464,7 +464,7 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>ПолеПрописи6наРусскомКонтекстноеМеню</name> + <name>ДробнаяЧастьДваКонтекстноеМеню</name> <id>31</id> <autoFill>true</autoFill> </contextMenu> @@ -475,6 +475,10 @@ <showInFooter>true</showInFooter> <footerHorizontalAlign>Left</footerHorizontalAlign> <extInfo xsi:type="form:InputFieldExtInfo"> + <handlers> + <event>EditTextChange</event> + <name>ПолеВводаИзменениеТекстаРедактирования</name> + </handlers> <width>10</width> <maxWidth>15</maxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -488,7 +492,7 @@ </extInfo> </items> <items xsi:type="form:FormField"> - <name>ПолеПрописи7наРусском</name> + <name>ДробнаяЧастьПять</name> <id>15</id> <title> <key>ru</key> @@ -500,14 +504,14 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>ПолеПрописи7наРусском</segments> + <segments>ДробнаяЧастьПять</segments> </dataPath> <handlers> <event>OnChange</event> - <name>ПолеПрописи7наРусскомПриИзменении</name> + <name>ПолеВводаПриИзменении</name> </handlers> <extendedTooltip> - <name>ПолеПрописи7наРусскомExtendedTooltip</name> + <name>ДробнаяЧастьПятьРасширеннаяПодсказка</name> <id>94</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -517,7 +521,7 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>ПолеПрописи7наРусскомКонтекстноеМеню</name> + <name>ДробнаяЧастьПятьКонтекстноеМеню</name> <id>32</id> <autoFill>true</autoFill> </contextMenu> @@ -528,6 +532,10 @@ <showInFooter>true</showInFooter> <footerHorizontalAlign>Left</footerHorizontalAlign> <extInfo xsi:type="form:InputFieldExtInfo"> + <handlers> + <event>EditTextChange</event> + <name>ПолеВводаИзменениеТекстаРедактирования</name> + </handlers> <width>10</width> <maxWidth>15</maxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -585,7 +593,7 @@ </dataPath> <handlers> <event>OnChange</event> - <name>ДлинаДробнойЧастиПриИзменении</name> + <name>ПолеВводаПриИзменении</name> </handlers> <extendedTooltip> <name>ДлинаДробнойЧастиExtendedTooltip</name> @@ -609,14 +617,6 @@ <showInFooter>true</showInFooter> <footerHorizontalAlign>Left</footerHorizontalAlign> <extInfo xsi:type="form:InputFieldExtInfo"> - <handlers> - <event>AutoComplete</event> - <name>ДлинаДробнойЧастиАвтоПодбор</name> - </handlers> - <handlers> - <event>TextEditEnd</event> - <name>ДлинаДробнойЧастиОкончаниеВводаТекста</name> - </handlers> <width>15</width> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -628,7 +628,7 @@ <value>2 знака</value> </presentation> <value xsi:type="core:StringValue"> - <value>2 знака</value> + <value>2</value> </value> </choiceList> <choiceList> @@ -637,7 +637,7 @@ <value>1 знак</value> </presentation> <value xsi:type="core:StringValue"> - <value>1 знак</value> + <value>1</value> </value> </choiceList> <choiceList> @@ -646,7 +646,7 @@ <value>3 знака</value> </presentation> <value xsi:type="core:StringValue"> - <value>3 знака</value> + <value>3</value> </value> </choiceList> <borderColor xsi:type="core:ColorRef"> @@ -732,7 +732,7 @@ </dataPath> <handlers> <event>OnChange</event> - <name>СуммаЧислоПриИзменении</name> + <name>ПолеВводаПриИзменении</name> </handlers> <extendedTooltip> <name>СуммаЧислоExtendedTooltip</name> @@ -836,22 +836,22 @@ <currentRowUse>Auto</currentRowUse> </extInfo> </items> - <commandBarLocation>Bottom</commandBarLocation> - <showCommandBar>true</showCommandBar> + <commandBarLocation>None</commandBarLocation> + <showCommandBar>false</showCommandBar> <autoCommandBar> <name>ФормаКоманднаяПанель</name> <id>-1</id> <items xsi:type="form:Button"> - <name>ФормаУстановить</name> - <id>106</id> + <name>ФормаЗаписатьИЗакрыть</name> + <id>100</id> <visible>true</visible> <enabled>true</enabled> <userVisible> <common>true</common> </userVisible> <extendedTooltip> - <name>ФормаУстановитьРасширеннаяПодсказка</name> - <id>107</id> + <name>ФормаЗаписатьИЗакрытьРасширеннаяПодсказка</name> + <id>101</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -859,7 +859,7 @@ <horizontalAlign>Left</horizontalAlign> </extInfo> </extendedTooltip> - <commandName>Form.Command.Установить</commandName> + <commandName>Form.Command.ЗаписатьИЗакрыть</commandName> <representation>Auto</representation> <defaultButton>true</defaultButton> <autoMaxWidth>true</autoMaxWidth> @@ -868,16 +868,16 @@ <representationInContextMenu>Auto</representationInContextMenu> </items> <items xsi:type="form:Button"> - <name>ФормаОтмена</name> - <id>108</id> + <name>ФормаЗаписать</name> + <id>102</id> <visible>true</visible> <enabled>true</enabled> <userVisible> <common>true</common> </userVisible> <extendedTooltip> - <name>ФормаОтменаРасширеннаяПодсказка</name> - <id>109</id> + <name>ФормаЗаписатьРасширеннаяПодсказка</name> + <id>103</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -885,7 +885,7 @@ <horizontalAlign>Left</horizontalAlign> </extInfo> </extendedTooltip> - <commandName>Form.StandardCommand.Cancel</commandName> + <commandName>Form.Command.Записать</commandName> <buttonImportance>Normal</buttonImportance> <representation>Auto</representation> <autoMaxWidth>true</autoMaxWidth> @@ -893,9 +893,13 @@ <placementArea>UserCmds</placementArea> <representationInContextMenu>Auto</representationInContextMenu> </items> - <horizontalAlign>Right</horizontalAlign> + <horizontalAlign>Left</horizontalAlign> <autoFill>true</autoFill> </autoCommandBar> + <handlers> + <event>OnOpen</event> + <name>ПриОткрытии</name> + </handlers> <handlers> <event>OnCreateAtServer</event> <name>ПриСозданииНаСервере</name> @@ -921,10 +925,10 @@ <showTitle>auto</showTitle> <showCloseButton>true</showCloseButton> <attributes> - <name>ПолеПрописи1наРусском</name> + <name>ЦелаяЧастьОдин</name> <title> <key>ru</key> - <value>Поле прописи1на русском</value> + <value>Целая часть один</value> 2 @@ -942,10 +946,10 @@ true - ПолеПрописи2наРусском + ЦелаяЧатьДва <key>ru</key> - <value>Поле прописи2на русском</value> + <value>Целая чать два</value> 3 @@ -963,10 +967,10 @@ true - ПолеПрописи3наРусском + ЦелаяЧастьПять <key>ru</key> - <value>Поле прописи3на русском</value> + <value>Целая часть пять</value> 4 @@ -984,10 +988,10 @@ true - ПолеПрописи4наРусском + ЦелаяЧастьРод <key>ru</key> - <value>Поле прописи4на русском</value> + <value>Целая часть род</value> 5 @@ -1003,10 +1007,10 @@ true - ПолеПрописи5наРусском + ДробнаяЧастьОдин <key>ru</key> - <value>Поле прописи5на русском</value> + <value>Дробная часть один</value> 6 @@ -1024,10 +1028,10 @@ true - ПолеПрописи6наРусском + ДробнаяЧастьДва <key>ru</key> - <value>Поле прописи6на русском</value> + <value>Дробная часть два</value> 7 @@ -1045,10 +1049,10 @@ true - ПолеПрописи7наРусском + ДробнаяЧастьПять <key>ru</key> - <value>Поле прописи7на русском</value> + <value>Дробная часть пять</value> 8 @@ -1066,10 +1070,10 @@ true - ПолеПрописи8наРусском + ДробнаяЧастьРод <key>ru</key> - <value>Поле прописи8на русском</value> + <value>Дробная часть род</value> 9 @@ -1160,26 +1164,47 @@ - Установить + ЗаписатьИЗакрыть <key>ru</key> - <value>Установить</value> + <value>Записать и закрыть</value> 1 ru - Установить + Записать и закрыть true - Установить + ЗаписатьИЗакрыть - true - DontUse + Auto + Auto + + + Записать + + <key>ru</key> + <value>Записать</value> + + 2 + + ru + Записать + + + true + + + + Записать + + + Auto Auto @@ -1189,6 +1214,14 @@ + + КодЯзыка + + String + + + true + diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Help/ru.html b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Help/ru.html new file mode 100644 index 000000000..5238a7ac0 --- /dev/null +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Help/ru.html @@ -0,0 +1,10 @@ + +

    Параметры прописи валюты

    +

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

    +
    • Целая часть - укажите параметры склонения целой части валюты: Род и соответствующие шаблоны склонения в единственном и множественном числе. +
    • Дробная часть - укажите параметры склонения дробной части валюты: Род и соответствующие шаблоны склонения в единственном и множественном числе. +
    • Число разрядов дробной части - в случае если дробная часть в печатных формах отображается числом, то можно установить нужное количество разрядов при выводе печатных форм документов. Например, если установлено количество разрядов 1 знак, то сумма по документу будет отображена, как 150,2 евро, а если 2 знака, то – 150,20 евро. +
    • Пример прописи суммы - число, введенное в поле Сумма, будет написано по указанным параметрам прописи валюты. Используйте эту возможность для проверки параметров прописи валюты.

    Параметры прописи валюты заполнены по умолчанию для основных валют: рубль, Евро, доллар. Для остальных валют их необходимо заполнить самостоятельно.

    +

    См. также:

    + \ No newline at end of file diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Module.bsl new file mode 100644 index 000000000..1fc8bd01a --- /dev/null +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты_ru/Module.bsl @@ -0,0 +1,185 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ПрочитатьПараметрыПрописи(); + УстановитьСклоненияПараметровПрописи(ЭтотОбъект); + + Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда + Элементы.СклонениеЦелойЧасти.ВыравниваниеЭлементовИЗаголовков = ВариантВыравниванияЭлементовИЗаголовков.ЭлементыПравоЗаголовкиЛево; + Элементы.ГруппаПараметрыДробнойЧасти.ВыравниваниеЭлементовИЗаголовков = ВариантВыравниванияЭлементовИЗаголовков.ЭлементыПравоЗаголовкиЛево; + Элементы.ГруппаПримерПрописи.ВыравниваниеЭлементовИЗаголовков = ВариантВыравниванияЭлементовИЗаголовков.ЭлементыПравоЗаголовкиЛево; + Элементы.СуммаПрописью.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх; + Элементы.СуммаПрописью.Высота = 2; + Элементы.СуммаПрописью.МногострочныйРежим = Истина; + ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + СуммаЧисло = 123.45; + УстановитьСуммуПрописью(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ПолеВводаПриИзменении(Элемент) + + Если Элемент = Элементы.ЦелаяЧастьРод + Или Элемент = Элементы.ДробнаяЧастьРод Тогда + УстановитьСклоненияПараметровПрописи(ЭтотОбъект); + КонецЕсли; + + Модифицированность = Истина; + УстановитьСуммуПрописью(); + ОповеститьВладельца(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПолеВводаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка) + + Модифицированность = Истина; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ЗаписатьИЗакрыть(Команда) + + ОповеститьВладельца(Истина, Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура Записать(Команда) + + ОповеститьВладельца(Истина); + Модифицированность = ВладелецФормы.Модифицированность; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаКлиентеНаСервереБезКонтекста +Функция ПараметрыПрописи(Форма) + + ПараметрыПрописи = Новый Массив; + ПараметрыПрописи.Добавить(Форма.ЦелаяЧастьОдин); + ПараметрыПрописи.Добавить(Форма.ЦелаяЧатьДва); + ПараметрыПрописи.Добавить(Форма.ЦелаяЧастьПять); + ПараметрыПрописи.Добавить(Форма.ЦелаяЧастьРод); + ПараметрыПрописи.Добавить(Форма.ДробнаяЧастьОдин); + ПараметрыПрописи.Добавить(Форма.ДробнаяЧастьДва); + ПараметрыПрописи.Добавить(Форма.ДробнаяЧастьПять); + ПараметрыПрописи.Добавить(Форма.ДробнаяЧастьРод); + ПараметрыПрописи.Добавить(Форма.ДлинаДробнойЧасти); + + Возврат СтрСоединить(ПараметрыПрописи, ", ");; + +КонецФункции + +&НаКлиенте +Процедура УстановитьСуммуПрописью() + + Если ЗначениеЗаполнено(Параметры.КодЯзыка) Тогда + СуммаПрописью = ЧислоПрописью(СуммаЧисло, "L=" + Параметры.КодЯзыка + ";ДП=Ложь", ПараметрыПрописи(ЭтотОбъект)); // АПК:1357 + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПрочитатьПараметрыПрописи() + + ПараметрыПрописи = СтрРазделить(Параметры.ПараметрыПрописи, ",", Истина); + Если ПараметрыПрописи.Количество() <> 9 Тогда + Возврат; + КонецЕсли; + + ЦелаяЧастьОдин = СокрЛП(ПараметрыПрописи[0]); + ЦелаяЧатьДва = СокрЛП(ПараметрыПрописи[1]); + ЦелаяЧастьПять = СокрЛП(ПараметрыПрописи[2]); + ЦелаяЧастьРод = СокрЛП(ПараметрыПрописи[3]); + ДробнаяЧастьОдин = СокрЛП(ПараметрыПрописи[4]); + ДробнаяЧастьДва = СокрЛП(ПараметрыПрописи[5]); + ДробнаяЧастьПять = СокрЛП(ПараметрыПрописи[6]); + ДробнаяЧастьРод = СокрЛП(ПараметрыПрописи[7]); + ДлинаДробнойЧасти = ОчиститьСтрокуСЧисломОтПостороннихСимволов(ПараметрыПрописи[8]); + +КонецПроцедуры + +&НаСервере +Функция ОчиститьСтрокуСЧисломОтПостороннихСимволов(СтрокаСЧислом) + + ПосторонниеСимволы = СтрСоединить(СтрРазделить(СтрокаСЧислом, "0123456789", Ложь), ""); + Возврат СтрСоединить(СтрРазделить(СтрокаСЧислом, ПосторонниеСимволы, Ложь), ""); + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Процедура УстановитьСклоненияПараметровПрописи(Форма) + + // Склонение заголовков параметров прописи. + + Элементы = Форма.Элементы; + + Если Форма.ЦелаяЧастьРод = "ж" Тогда + Элементы.ЦелаяЧастьОдин.Заголовок = НСтр("ru = 'Одна'"); + Элементы.ЦелаяЧатьДва.Заголовок = НСтр("ru = 'Две'"); + ИначеЕсли Форма.ЦелаяЧастьРод = "м" Тогда + Элементы.ЦелаяЧастьОдин.Заголовок = НСтр("ru = 'Один'"); + Элементы.ЦелаяЧатьДва.Заголовок = НСтр("ru = 'Два'"); + Иначе + Элементы.ЦелаяЧастьОдин.Заголовок = НСтр("ru = 'Одно'"); + Элементы.ЦелаяЧатьДва.Заголовок = НСтр("ru = 'Два'"); + КонецЕсли; + + Если Форма.ДробнаяЧастьРод = "ж" Тогда + Элементы.ДробнаяЧастьОдин.Заголовок = НСтр("ru = 'Одна'"); + Элементы.ДробнаяЧастьДва.Заголовок = НСтр("ru = 'Две'"); + ИначеЕсли Форма.ДробнаяЧастьРод = "м" Тогда + Элементы.ДробнаяЧастьОдин.Заголовок = НСтр("ru = 'Один'"); + Элементы.ДробнаяЧастьДва.Заголовок = НСтр("ru = 'Два'"); + Иначе + Элементы.ДробнаяЧастьОдин.Заголовок = НСтр("ru = 'Одно'"); + Элементы.ДробнаяЧастьДва.Заголовок = НСтр("ru = 'Два'"); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОповеститьВладельца(Записать = Ложь, Закрыть = Ложь) + + ПараметрыПрописи = Новый Структура; + ПараметрыПрописи.Вставить("КодЯзыка", Параметры.КодЯзыка); + ПараметрыПрописи.Вставить("ПараметрыПрописи", ПараметрыПрописи(ЭтотОбъект)); + ПараметрыПрописи.Вставить("Записать", Записать); + ПараметрыПрописи.Вставить("Закрыть", Закрыть); + + Оповестить("ПараметрыПрописиВалюты", ПараметрыПрописи, ВладелецФормы); + +КонецПроцедуры + +#КонецОбласти + diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ManagerModule.bsl b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ManagerModule.bsl index fdb03785a..b5be72814 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ManagerModule.bsl @@ -18,18 +18,26 @@ // // Параметры: // Классификаторы - см. РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов.Классификаторы -// Описатель - см. РаботаСКлассификаторами.ОписаниеКлассификатора // -Процедура ПриДобавленииКлассификаторов(Классификаторы, Описатель) Экспорт +Процедура ПриДобавленииКлассификаторов(Классификаторы) Экспорт - Описатель.Идентификатор = ИдентификаторКлассификатора(); - Описатель.Наименование = НСтр("ru = 'Общероссийский классификатор валют'"); - Описатель.ОбновлятьАвтоматически = Истина; - Описатель.ОбщиеДанные = Истина; - Описатель.ОбработкаРазделенныхДанных = Ложь; - Описатель.СохранятьФайлВКэш = Истина; + Описание = Неопределено; + Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда + МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами"); + Описание = МодульРаботаСКлассификаторами.ОписаниеКлассификатора(); + КонецЕсли; + Если Описание = Неопределено Тогда + Возврат; + КонецЕсли; + + Описание.Идентификатор = ИдентификаторКлассификатора(); + Описание.Наименование = НСтр("ru = 'Общероссийский классификатор валют'"); + Описание.ОбновлятьАвтоматически = Истина; + Описание.ОбщиеДанные = Истина; + Описание.ОбработкаРазделенныхДанных = Ложь; + Описание.СохранятьФайлВКэш = Истина; - Классификаторы.Добавить(Описатель); + Классификаторы.Добавить(Описание); КонецПроцедуры @@ -196,10 +204,6 @@ КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -// -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); @@ -252,7 +256,7 @@ // См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий. // // Параметры: -// Зависимости - ТаблицаЗначений +// Зависимости - ТаблицаЗначений // Процедура ПриОпределенииНастроекРегламентныхЗаданий(Зависимости) Экспорт Зависимость = Зависимости.Добавить(); @@ -497,18 +501,22 @@ КонецФункции -Функция СформироватьСуммуПрописью(СуммаЧислом, Валюта, ВыводитьСуммуБезКопеек = Ложь) Экспорт +Функция СформироватьСуммуПрописью(СуммаЧислом, Валюта, ВыводитьСуммуБезКопеек = Ложь, Знач КодЯзыка = Неопределено) Экспорт - ПараметрыПрописи = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Валюта, "ПараметрыПрописи"); - Возврат СуммаПрописью(СуммаЧислом, ПараметрыПрописи, ВыводитьСуммуБезКопеек); + ПараметрыПрописи = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Валюта, "ПараметрыПрописи", , КодЯзыка); + Возврат СуммаПрописью(СуммаЧислом, ПараметрыПрописи, ВыводитьСуммуБезКопеек, КодЯзыка); КонецФункции -Функция СуммаПрописью(СуммаЧислом, ПараметрыПрописиНаРусскомЯзыке, ВыводитьСуммуБезКопеек = Ложь) Экспорт +Функция СуммаПрописью(СуммаЧислом, ПараметрыПрописи, ВыводитьСуммуБезДробнойЧасти = Ложь, Знач КодЯзыка = Неопределено) + + Если Не ЗначениеЗаполнено(КодЯзыка) Тогда + КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка(); + КонецЕсли; Сумма = ?(СуммаЧислом < 0, -СуммаЧислом, СуммаЧислом); - Результат = ЧислоПрописью(Сумма, "L=ru_RU;ДП=Ложь", ПараметрыПрописиНаРусскомЯзыке); // АПК:1297 АПК:1357 не локализуется и всегда на русском языке - Если ВыводитьСуммуБезКопеек И Цел(Сумма) = Сумма Тогда + Результат = ЧислоПрописью(Сумма, "L=" + КодЯзыка + ";ДП=Ложь", ПараметрыПрописи); // АПК:1297 АПК:1357 + Если ВыводитьСуммуБезДробнойЧасти И Цел(Сумма) = Сумма Тогда Результат = Лев(Результат, СтрНайти(Результат, "0") - 1); КонецЕсли; Возврат Результат; diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ЗагрузкаКурсовВалют.mdo b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ЗагрузкаКурсовВалют.mdo index 843857e6b..1969b818e 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ЗагрузкаКурсовВалют.mdo +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ЗагрузкаКурсовВалют.mdo @@ -262,11 +262,12 @@ MobileDevice - ПараметрыПрописиВалюты + ПараметрыПрописиВалюты_ru ru Параметры прописи валюты на русском языке + АПК:58 ru diff --git a/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ЗаменаЭлементов/Module.bsl b/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ЗаменаЭлементов/Module.bsl index 3d0a218f9..98cd26a0f 100644 --- a/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ЗаменаЭлементов/Module.bsl +++ b/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ЗаменаЭлементов/Module.bsl @@ -721,12 +721,12 @@ КонецФункции // Параметры: -// Ссылки - СписокЗначений из ЛюбаяСсылка -// - Массив из ЛюбаяСсылка -// - ТаблицаЗначений: -// * Ссылка - ЛюбаяСсылка +// Ссылки - СписокЗначений из ЛюбаяСсылка +// - Массив из ЛюбаяСсылка +// - ТаблицаЗначений: +// * Ссылка - ЛюбаяСсылка // Возвращаемое значение: -// Массив +// Массив // &НаСервереБезКонтекста Функция МассивСсылокИзСписка(Знач Ссылки) diff --git a/SSL/src/DataProcessors/ЗаполнениеГрафиковРаботы/ManagerModule.bsl b/SSL/src/DataProcessors/ЗаполнениеГрафиковРаботы/ManagerModule.bsl index f7b629ed6..a4d085663 100644 --- a/SSL/src/DataProcessors/ЗаполнениеГрафиковРаботы/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗаполнениеГрафиковРаботы/ManagerModule.bsl @@ -10,9 +10,7 @@ #Область СлужебныеПроцедурыИФункции -// Параметры: -// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления -// +// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Обработчик = Обработчики.Добавить(); diff --git a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/ManagerModule.bsl b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/ManagerModule.bsl index da4b2f1d0..6f1a2b3f9 100644 --- a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/ManagerModule.bsl @@ -57,10 +57,13 @@ Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт - Возврат "3.1.3.347"; + Возврат "3.1.4.78"; КонецФункции +// Возвращаемое значение: +// Массив из см. ОписаниеПериодаНерабочихДней +// Функция ПериодыНерабочихДней(ПроизводственныйКалендарь, Период) Экспорт Периоды = Новый Массив; @@ -488,6 +491,14 @@ КонецФункции +// Возвращаемое значение: +// Структура: +// * Номер - Число +// * Период - СтандартныйПериод +// * Основание - Произвольный +// * Даты - Массив +// * Представление - Строка +// Функция ОписаниеПериодаНерабочихДней(Начало, Окончание, Основание = "", Номер = 0) ОбщегоНазначенияКлиентСервер.Проверить(Начало <= Окончание, НСтр("ru = 'Начало периода позже его завершения'")); diff --git a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Templates/ДанныеПроизводственныхКалендарей/Template.txt b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Templates/ДанныеПроизводственныхКалендарей/Template.txt index aab1813b9..a94c0df1b 100644 --- a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Templates/ДанныеПроизводственныхКалендарей/Template.txt +++ b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Templates/ДанныеПроизводственныхКалендарей/Template.txt @@ -300,6 +300,7 @@ + diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Module.bsl index 2f33c9700..c7651bd22 100644 --- a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Module.bsl @@ -41,7 +41,6 @@ ИнтернетПоддержкаПользователейПодключена = МодульИнтернетПоддержкаПользователей.ЗаполненыДанныеАутентификацииПользователяИнтернетПоддержки(); КонецЕсли; - ЗаполнитьСписокПрограмм(); ЗаполнитьЗаголовкиРеквизитов(); Если ЗначениеЗаполнено(Параметры.СертификатСсылка) Тогда @@ -903,8 +902,6 @@ Процедура ЗаписатьЗаявление() ТекущийОбъект = РеквизитФормыВЗначение("Объект"); - ЭтоНовоеСостояние = ПоследнееСостояниеЗаявления <> ТекущийОбъект.СостояниеЗаявления; - Содержание = ТекущийОбъект.СодержаниеЗаявления.Получить(); Если ТипЗнч(Содержание) <> Тип("Структура") Тогда Содержание = Новый Структура; @@ -2325,6 +2322,12 @@ КонецЕсли; + Если СписокПрограмм.Количество() = 0 Тогда + Если Не ЗаполнитьСписокПрограмм() Тогда + ПечатьЗаявленияПослеСозданияКлючаИЗапросаНаСертификат(Ложь, Контекст); + Возврат; + КонецЕсли; + КонецЕсли; ПредставлениеПрограммы = ПоставляемоеПредставлениеПрограммы(СписокПрограмм, Объект.Программа); СоздатьКлючИЗапросНаСертификат( @@ -2618,20 +2621,51 @@ &НаКлиенте Процедура ПриИзмененияСоставаИлиНастроекПрограмм() - ЗаполнитьСписокПрограмм(); + Если Не ЗаполнитьСписокПрограмм() Тогда + Возврат; + КонецЕсли; + ЗаполнитьПрограмму(); КонецПроцедуры -&НаСервере -Процедура ЗаполнитьСписокПрограмм() +&НаКлиенте +Функция ЗаполнитьСписокПрограмм(ОписаниеОшибки = "") СписокПрограмм.Очистить(); + НовыйСписокПрограмм = Новый Массив; // Массив из см. НовыйЭлементСпискаПрограмм + + ТекстОшибки = ЗаполнитьСписокПрограммНаСервере(НовыйСписокПрограмм, ВариантАлгоритмов, + Объект.СостояниеЗаявления, КонтейнерКлючаПуть, ПрограммаОблачногоСервиса); + + Если ЗначениеЗаполнено(ТекстОшибки) Тогда + ОписаниеОшибки = ТекстОшибки; + ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме( + НСтр("ru = 'Заполнение списка программ электронной подписи'"), "", + Новый Структура("ОписаниеОшибки", ТекстОшибки), Новый Структура); + Возврат Ложь; + КонецЕсли; + + Для Каждого Элемент Из НовыйСписокПрограмм Цикл + ЗаполнитьЗначенияСвойств(СписокПрограмм.Добавить(), Элемент); + КонецЦикла; + + Возврат Истина; + +КонецФункции + +&НаСервереБезКонтекста +Функция ЗаполнитьСписокПрограммНаСервере(СписокПрограмм, ВариантАлгоритмов, + СостояниеЗаявления, КонтейнерКлючаПуть, ПрограммаОблачногоСервиса) Если Не ЗначениеЗаполнено(КонтейнерКлючаПуть) - И Объект.СостояниеЗаявления = Перечисления.СостоянияЗаявленияНаВыпускСертификата.НеПодготовлено Тогда + И СостояниеЗаявления = Перечисления.СостоянияЗаявленияНаВыпускСертификата.НеПодготовлено Тогда - ВариантАлгоритмов = ВариантАлгоритмов(); + ТекстОшибки = ""; + ВариантАлгоритмов = ВариантАлгоритмов(ТекстОшибки); + Если ЗначениеЗаполнено(ТекстОшибки) Тогда + Возврат ТекстОшибки; + КонецЕсли; КонецЕсли; Если Не ЗначениеЗаполнено(ВариантАлгоритмов) Тогда @@ -2664,8 +2698,9 @@ Продолжить; КонецЕсли; - Строка = СписокПрограмм.Добавить(); + Строка = НовыйЭлементСпискаПрограмм(); ЗаполнитьЗначенияСвойств(Строка, Настройка); + СписокПрограмм.Добавить(Строка); ПрограммыВСправочнике = Программы.НайтиСтроки(Новый Структура("ИмяПрограммы, ТипПрограммы", Настройка.ИмяПрограммы, Настройка.ТипПрограммы)); @@ -2677,12 +2712,37 @@ КонецЦикла; Если ЗначениеЗаполнено(ПрограммаОблачногоСервиса) Тогда - НоваяПрограмма = СписокПрограмм.Добавить(); + НоваяПрограмма = НовыйЭлементСпискаПрограмм(); НоваяПрограмма.Ссылка = ПрограммаОблачногоСервиса; НоваяПрограмма.Представление = НСтр("ru = 'Облачный сервис'"); + СписокПрограмм.Добавить(НоваяПрограмма); КонецЕсли; -КонецПроцедуры + Возврат ""; + +КонецФункции + +// Возвращаемое значение: +// Структура: +// * Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования +// * Представление - Строка +// * Идентификатор - Строка +// * ИмяПрограммы - Строка +// * ТипПрограммы - Число +// +&НаСервереБезКонтекста +Функция НовыйЭлементСпискаПрограмм() + + НовыйЭлемент = Новый Структура; + НовыйЭлемент.Вставить("Ссылка", ПредопределенноеЗначение("Справочник.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка")); + НовыйЭлемент.Вставить("Представление", ""); + НовыйЭлемент.Вставить("Идентификатор", ""); + НовыйЭлемент.Вставить("ИмяПрограммы", ""); + НовыйЭлемент.Вставить("ТипПрограммы", 0); + + Возврат НовыйЭлемент; + +КонецФункции &НаКлиенте Процедура ЗаполнитьПрограмму(Оповещение = Неопределено) @@ -2838,6 +2898,12 @@ СтандартнаяОбработка = Ложь; ДанныеВыбора = Новый СписокЗначений; + Если СписокПрограмм.Количество() = 0 Тогда + Если Не ЗаполнитьСписокПрограмм() Тогда + Возврат; + КонецЕсли; + КонецЕсли; + Для Каждого Строка Из СписокПрограмм Цикл Значение = ?(ЗначениеЗаполнено(Строка.Ссылка), Строка.Ссылка, Строка.Идентификатор); ДанныеВыбора.Добавить(Значение, Строка.Представление); @@ -2862,7 +2928,7 @@ #Область WebСервис -&НаСервере +&НаСервереБезКонтекста Функция ВебСервисУЦ() ПараметрыПодключения = ОбщегоНазначения.ПараметрыПодключенияWSПрокси(); @@ -2875,8 +2941,8 @@ КонецФункции -&НаСервере -Функция ВариантАлгоритмов() +&НаСервереБезКонтекста +Функция ВариантАлгоритмов(ТекстОшибки) Попытка @@ -2917,11 +2983,20 @@ КонецЕсли; Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось получить требуемый вариант алгоритмов от сервера 1С:Подпись по причине: - |%1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); + ЗаголовокОшибки = + НСтр("ru = 'Не удалось получить требуемый вариант алгоритмов от сервера 1С:Подпись по причине:'") + + Символы.ПС; + ИмяСобытия = НСтр("ru = 'Электронная подпись.Заявление на выпуск сертификата'", + ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка,,, + ЗаголовокОшибки + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + + ТекстОшибки = ЗаголовокОшибки + КраткоеПредставлениеОшибки(ИнформацияОбОшибке); + Возврат ""; КонецПопытки; Возврат ВариантАлгоритмов; @@ -3211,9 +3286,9 @@ ЗаписьXML.ЗаписатьОбъявлениеXML(); ЗаписьXML.ЗаписатьНачалоЭлемента("Заявление"); - ЗаписьXML.ЗаписатьАтрибут("ВерсФорм", "1.3"); + ЗаписьXML.ЗаписатьАтрибут("ВерсФорм", "1.3"); // АПК:1036 внешний идентификатор ЗаписьXML.ЗаписатьАтрибут("ДатаВремяФормирования", XMLСтрока(ТекущаяДатаСеанса())); - ЗаписьXML.ЗаписатьАтрибут("ВерсПрог", "1С"); + ЗаписьXML.ЗаписатьАтрибут("ВерсПрог", "1С"); // АПК:1036 внешний идентификатор ЗаписьXMLЭлемент(ЗаписьXML, "ТипЗаявления", "1"); ЗаписьXMLЭлемент(ЗаписьXML, "ПризнакЮридическогоЛица", Не ЭтоИндивидуальныйПредприниматель); @@ -3259,13 +3334,13 @@ КонецЕсли; ДокументДатаВыдачиПредставление = ПредставлениеРеквизитаДокументДатаВыдачи(ДокументДатаВыдачи); - ЗаписьXML.ЗаписатьНачалоЭлемента("УдЛичн"); + ЗаписьXML.ЗаписатьНачалоЭлемента("УдЛичн"); // АПК:1036 внешний идентификатор ЗаписьXML.ЗаписатьАтрибут("КодВидДок", ДокументВид); ЗаписьXML.ЗаписатьАтрибут("СерНомДок", ДокументНомерПредставление); ЗаписьXML.ЗаписатьАтрибут("ДатаДок", ДокументДатаВыдачиПредставление); - ЗаписьXML.ЗаписатьАтрибут("ВыдДок", ДокументКемВыдан); - ЗаписьXML.ЗаписатьАтрибут("КодВыдДок", ДокументКодПодразделенияПредставление); - ЗаписьXML.ЗаписатьКонецЭлемента(); // КонецЭлемента УдЛичн. + ЗаписьXML.ЗаписатьАтрибут("ВыдДок", ДокументКемВыдан); // АПК:1036 внешний идентификатор + ЗаписьXML.ЗаписатьАтрибут("КодВыдДок", ДокументКодПодразделенияПредставление); // АПК:1036 внешний идентификатор + ЗаписьXML.ЗаписатьКонецЭлемента(); // КонецЭлемента УдЛичн. АПК:1036 внешний идентификатор Если Не ЭтоИндивидуальныйПредприниматель Тогда ЗаписьXMLЭлемент(ЗаписьXML, "Должность", Должность); @@ -3273,8 +3348,6 @@ ЗаписьXMLЭлемент(ЗаписьXML, "ЭлектроннаяПочта", ЭлектроннаяПочта); - Строки = СписокПрограмм.НайтиСтроки(Новый Структура("Ссылка", Объект.Программа)); - ЗаписьXML.ЗаписатьНачалоЭлемента("Криптопровайдер"); ЗаписьXMLЭлемент(ЗаписьXML, "ТипКриптопровайдера", XMLСтрока(ПрограммаТип)); ЗаписьXMLЭлемент(ЗаписьXML, "ИмяКриптопровайдера", XMLСтрока(ПрограммаИмя)); @@ -3296,9 +3369,7 @@ ЗаписьXMLЭлемент(ЗаписьXML, "БилетПользователя", Билет); ЗаписьXML.ЗаписатьКонецЭлемента(); // КонецЭлемента Заявление. - СтрокаXML = ЗаписьXML.Закрыть(); - Возврат СтрокаXML; КонецФункции @@ -3392,7 +3463,7 @@ ЗаписьXML.ЗаписатьНачалоЭлемента("пакет"); ЗаписьXML.ЗаписатьАтрибут("версияФормата", "1С:1.0"); - ЗаписьXML.ЗаписатьАтрибут("версПрог", "1.0"); + ЗаписьXML.ЗаписатьАтрибут("версПрог", "1.0"); // АПК:1036 внешний идентификатор ЗаписьXML.ЗаписатьАтрибут("типДокументооборота", "РегистрацияАбонентаЭДО"); ЗаписьXML.ЗаписатьАтрибут("типТранзакции", "Регистрация"); ЗаписьXML.ЗаписатьАтрибут("идентификаторДокументооборота", ИдентификаторДокументооборота); @@ -4159,9 +4230,7 @@ &НаКлиенте Процедура ПолучитьИмяНовогоКонтейнераКлюча(Оповещение) - // Дата используется только для уникальности имени, поэтому требуется время компьютера. - Дата = ТекущаяДата(); // Не заменять на текущую дату сеанса. - + Дата = ТекущаяДата(); // АПК:143 Используется только для уникальности имени, поэтому требуется время компьютера, а не текущая дата сеанса. ДатаСоздания = Формат(Дата, "ДФ=гггг-ММ-дд") + " " + Формат(Дата, "ДФ=ЧЧ") + "-" + Формат(Дата, "ДФ=мм"); Если ЭтоИндивидуальныйПредприниматель Тогда @@ -4419,8 +4488,11 @@ &НаКлиенте Процедура УстановитьСертификат(Оповещение) - Если СписокПрограмм.Количество() = 0 Тогда - ЗаполнитьСписокПрограмм(); + Если СписокПрограмм.Количество() = 0 + И Не ЗаполнитьСписокПрограмм(ОшибкаУстановкиСертификата) Тогда + + ВыполнитьОбработкуОповещения(Оповещение, Ложь); + Возврат; КонецЕсли; ДатаУстановкиСертификата = ОбщегоНазначенияКлиент.ДатаСеанса(); diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/ObjectModule.bsl b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/ObjectModule.bsl index bd1c5d088..99078b975 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/ObjectModule.bsl @@ -324,7 +324,7 @@ // Параметры: // ЭлементыПриемника - КоллекцияЭлементовОтбораКомпоновкиДанных - приемник. // ЭлементыИсточника - КоллекцияЭлементовОтбораКомпоновкиДанных - источник. -// СоответствиеПолей - Соответствие - определяет состав заменяемых полей отбора: +// СоответствиеПолей - Соответствие из КлючИЗначение - определяет состав заменяемых полей отбора: // * Ключ - исходный путь к данным поля. // * Значение - путь для результата. // Например для замены полей типа. @@ -630,13 +630,10 @@ // Процедура ДобавитьНаборВСхемуКомпоновки(СхемаКомпоновкиДанных, ИмяТаблицы, Представление = Неопределено) + ТекстЗапроса = СтрЗаменить("ВЫБРАТЬ ИмяТаблицыМетаданных.Ссылка КАК Ссылка ИЗ &ИмяТаблицы КАК ИмяТаблицыМетаданных", "&ИмяТаблицы", ИмяТаблицы); + Набор = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")); - Набор.Запрос = " - |ВЫБРАТЬ - | Ссылка - |ИЗ - | " + ИмяТаблицы + " - |"; + Набор.Запрос = ТекстЗапроса; Набор.АвтоЗаполнениеДоступныхПолей = Истина; Набор.ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Получить(0).Имя; Набор.Имя = "Набор" + Формат(СхемаКомпоновкиДанных.НаборыДанных.Количество()-1, "ЧН=; ЧГ="); @@ -701,44 +698,60 @@ КонецЕсли; КонецЕсли; + ШаблонЗапросаИзменений = + "ВЫБРАТЬ РАЗЛИЧНЫЕ РАЗРЕШЕННЫЕ + | ПсевдонимТаблицыРегистрации.Ссылка КАК ОбъектРегистрации, + | &ПолноеИмяТаблицыМетаданныхТип КАК ОбъектРегистрацииТип, + | &ПричинаРегистрацииАвтоматически КАК ПричинаРегистрации + |ИЗ + | &ПолноеИмяТаблицыМетаданных КАК ПсевдонимТаблицыРегистрации + |ГДЕ ПсевдонимТаблицыРегистрации.Узел = &УзелИнформационнойБазы"; + + ШаблонЗапросаКоличество = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | &ПолноеИмяТаблицыМетаданныхТип КАК Тип, + | КОЛИЧЕСТВО(ПсевдонимТаблицыРегистрации.Ссылка) КАК ОбщееКоличество + |ИЗ + | &ПолноеИмяТаблицыМетаданных КАК ПсевдонимТаблицыРегистрации"; + // Автоматические изменения и количества всегда. Для Каждого Строка Из ТаблицаМетаданныхСоставаУзла Цикл + ПолноеИмяМетаданных = Строка.ПолноеИмяМетаданных; Если СписокИменМетаданных <> Неопределено И ФильтрИменМетаданных[ПолноеИмяМетаданных] <> Истина Тогда Продолжить; КонецЕсли; + СтрокаЗаменыТип = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Тип(%1)", ПолноеИмяМетаданных); + СтрокаЗаменыТаблицаИзменений = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.Изменения", ПолноеИмяМетаданных); ИмяНабораПоМетаданным = СтрЗаменить(ПолноеИмяМетаданных, ".", "_"); + ИмяНабора = "Автоматически_" + ИмяНабораПоМетаданным; Если ЭлементыНабораИзменения.Найти(ИмяНабора) = Неопределено Тогда + Набор = ЭлементыНабораИзменения.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")); Набор.АвтоЗаполнениеДоступныхПолей = Не ОграничиватьИспользованиеОтбором; Набор.ИсточникДанных = ИсточникДанных; Набор.Имя = ИмяНабора; - Набор.Запрос = " - |ВЫБРАТЬ РАЗЛИЧНЫЕ РАЗРЕШЕННЫЕ - | " + ИмяНабора + "_Изменения.Ссылка КАК ОбъектРегистрации, - | ТИП(" + ПолноеИмяМетаданных + ") КАК ОбъектРегистрацииТип, - | &ПричинаРегистрацииАвтоматически КАК ПричинаРегистрации - |ИЗ - | " + ПолноеИмяМетаданных + ".Изменения КАК " + ИмяНабора + "_Изменения - |ГДЕ " + ИмяНабора + "_Изменения.Узел = &УзелИнформационнойБазы - |"; + + ТекстЗапроса = СтрЗаменить(ШаблонЗапросаИзменений, "&ПолноеИмяТаблицыМетаданныхТип", СтрокаЗаменыТип); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяТаблицыМетаданных", СтрокаЗаменыТаблицаИзменений); + Набор.Запрос = ТекстЗапроса; + КонецЕсли; ИмяНабора = "Количество_" + ИмяНабораПоМетаданным; Если ЭлементыНаборыКоличества.Найти(ИмяНабора) = Неопределено Тогда + Набор = ЭлементыНаборыКоличества.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")); Набор.АвтоЗаполнениеДоступныхПолей = Истина; Набор.ИсточникДанных = ИсточникДанных; Набор.Имя = ИмяНабора; - Набор.Запрос = " - |ВЫБРАТЬ РАЗРЕШЕННЫЕ - | ТИП(" + ПолноеИмяМетаданных + ") КАК Тип, - | КОЛИЧЕСТВО(" + ИмяНабора + ".Ссылка) КАК ОбщееКоличество - |ИЗ - | " + ПолноеИмяМетаданных + " КАК " + ИмяНабора + " - |"; + + ТекстЗапроса = СтрЗаменить(ШаблонЗапросаКоличество, "&ПолноеИмяТаблицыМетаданныхТип", СтрокаЗаменыТип); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяТаблицыМетаданных", СтрокаЗаменыТаблицаИзменений); + Набор.Запрос = ТекстЗапроса; + КонецЕсли; КонецЦикла; @@ -763,6 +776,14 @@ КонецЕсли; + ШаблонЗапросаДополнительно = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | ПсевдонимТаблицыРегистрации.Ссылка КАК ОбъектРегистрации, + | &ПолноеИмяТаблицыМетаданныхТип КАК ОбъектРегистрацииТип, + | &ПричинаРегистрацииДополнительно КАК ПричинаРегистрации + |ИЗ + | &ПолноеИмяТаблицыМетаданных КАК ПсевдонимТаблицыРегистрации"; + // Дополнительные изменения Для Каждого Строка Из ТаблицаДополнительныхИзменений Цикл ПолноеИмяМетаданных = Строка.ПолноеИмяМетаданных; @@ -778,27 +799,26 @@ Продолжить; КонецЕсли; + СтрокаЗаменыТип = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Тип(%1)", ИмяДобавляемойТаблицы); + ИмяНабора = "Дополнительно_" + СтрЗаменить(ИмяДобавляемойТаблицы, ".", "_"); Если ЭлементыНабораИзменения.Найти(ИмяНабора) = Неопределено Тогда + Набор = ЭлементыНабораИзменения.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")); Набор.ИсточникДанных = ИсточникДанных; Набор.АвтоЗаполнениеДоступныхПолей = Истина; Набор.Имя = ИмяНабора; - Набор.Запрос = " - |ВЫБРАТЬ РАЗРЕШЕННЫЕ - | " + ИмяНабора + ".Ссылка КАК ОбъектРегистрации, - | ТИП(" + ИмяДобавляемойТаблицы + ") КАК ОбъектРегистрацииТип, - | &ПричинаРегистрацииДополнительно КАК ПричинаРегистрации - |ИЗ - | " + ИмяДобавляемойТаблицы + " КАК " + ИмяНабора + " - |"; - + ТекстЗапроса = СтрЗаменить(ШаблонЗапросаДополнительно, "&ПолноеИмяТаблицыМетаданныхТип", СтрокаЗаменыТип); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяТаблицыМетаданных", ИмяДобавляемойТаблицы); + Набор.Запрос = ТекстЗапроса; + // Добавляем дополнительные наборы для получения данных их табличных частей отбора. ПараметрыДобавления = Новый Структура; ПараметрыДобавления.Вставить("ИмяДобавляемойТаблицы", ИмяДобавляемойТаблицы); ПараметрыДобавления.Вставить("СхемаКомпоновки", СхемаКомпоновки); ДобавитьДополнительныеНаборыКомпоновкиТабличныхЧастей(ТекущийОтбор.Элементы, ПараметрыДобавления) + КонецЕсли; КонецЦикла; @@ -919,7 +939,16 @@ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Некорректное имя метаданных ""%1"" для регистрации на узле ""%2""'"), ИмяДобавляемойТаблицы, УзелИнформационнойБазы); КонецЕсли; - + + ШаблонТекстаЗапроса = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | Ссылка КАК ОбъектРегистрации, + | &ИмяДобавляемойТаблицыТип КАК ОбъектРегистрацииТип, + | &ПричинаРегистрацииДополнительно КАК ПричинаРегистрации + | ,&ВсеПоляТабличнойЧасти + |ИЗ + | &ИмяДобавляемойТаблицы"; + Для Каждого Элемент Из ЭлементыИсточника Цикл Если ТипЗнч(Элемент) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда @@ -969,16 +998,14 @@ Набор.Имя = ИмяНабора; ВсеПоляТабличнойЧасти = РеквизитыТабличнойЧастиДляЗапроса(МетаданныеТабличнойЧасти, Псевдоним); - Набор.Запрос = " - |ВЫБРАТЬ РАЗРЕШЕННЫЕ - | Ссылка КАК ОбъектРегистрации, - | ТИП(" + ИмяДобавляемойТаблицы + ") КАК ОбъектРегистрацииТип, - | &ПричинаРегистрацииДополнительно КАК ПричинаРегистрации - | " + ВсеПоляТабличнойЧасти.ПоляЗапроса + " - |ИЗ - | " + ИмяДобавляемойТаблицы + "." + ИмяТаблицы + " - |"; - + ИмяДобавляемойТаблицыЗапросаДопОтборов = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.%2", ИмяДобавляемойТаблицы, ИмяТаблицы); + + СтрокаЗамены = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Тип(%1)", ИмяДобавляемойТаблицы); + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяДобавляемойТаблицыТип", СтрокаЗамены); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ",&ВсеПоляТабличнойЧасти", ВсеПоляТабличнойЧасти.ПоляЗапроса); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяДобавляемойТаблицы", ИмяДобавляемойТаблицыЗапросаДопОтборов); + Набор.Запрос = ТекстЗапроса; + Для Каждого ИмяПоля Из ВсеПоляТабличнойЧасти.ИменаПолей Цикл Поле = Набор.Поля.Найти(ИмяПоля); Если Поле = Неопределено Тогда diff --git a/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/ObjectModule.bsl b/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/ObjectModule.bsl index df5f26306..15e46edd2 100644 --- a/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/ObjectModule.bsl +++ b/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/ObjectModule.bsl @@ -268,8 +268,8 @@ // УзелПредка - ЗаписьXML - xml-узел предка объекта приемника. // ИмяКонстантыДляВыгрузки - Строка - значение, которое следует записать в атрибут ИмяКонстанты. // ЭтоВыгружаетсяОбъект - Булево - признак того что выгружается объект. -// ЭтоПравилоСГлобальнойВыгрузкойОбъектов - булево - признак глобальной выгрузки объектов. -// НеИспользоватьПравилоСГлобальнойВыгрузкойИНеЗапоминатьВыгруженные - булево - не используется. +// ЭтоПравилоСГлобальнойВыгрузкойОбъектов - Булево - признак глобальной выгрузки объектов. +// НеИспользоватьПравилоСГлобальнойВыгрузкойИНеЗапоминатьВыгруженные - Булево - не используется. // СтекВыгрузкиОбъекта - Массив из ЛюбаяСсылка - содержит сведения о вышестоящих объектах выгрузки. // // Возвращаемое значение: @@ -1127,12 +1127,12 @@ // ВыбиратьВсеПоля - Булево - признак необходимости выбора всех полей. // // Возвращаемое значение: -// РезультатЗапроса либо Неопределено - результат выполнения запроса для выгрузки очистки данных. +// РезультатЗапроса, Неопределено - результат выполнения запроса для выгрузки очистки данных. // Функция РезультатЗапросаДляВыгрузкиОчисткиДанных(Свойства, ИмяТипа, ВыборкаДляОчисткиДанных = Ложь, УдалятьОбъектыНепосредственно = Ложь, ВыбиратьВсеПоля = Истина) Экспорт - СтрокаРазрешения = ?(ВыгружатьТолькоРазрешенные, " РАЗРЕШЕННЫЕ ", ""); + СтрокаРазрешения = ?(ВыгружатьТолькоРазрешенные, " РАЗРЕШЕННЫЕ ", ""); // @Query-part-1 СтрокаВыбораПолей = ?(ВыбиратьВсеПоля, " * ", " ОбъектДляВыгрузки.Ссылка КАК Ссылка "); @@ -1145,89 +1145,93 @@ ИЛИ ИмяТипа = "Задача" ИЛИ ИмяТипа = "БизнесПроцесс" Тогда - Запрос = Новый Запрос(); + Запрос = Новый Запрос; - Если ИмяТипа = "РегистрБухгалтерии" Тогда + Запрос.Текст = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | ОбъектДляВыгрузки.Ссылка КАК Ссылка + |ИЗ + | &ИмяТаблицыМетаданных КАК ОбъектДляВыгрузки + |ГДЕ ОбъектДляВыгрузки.Родитель = &Родитель"; + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицыМетаданных", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.%2", ИмяТипа, Свойства.Имя)); + + Если НЕ ВыгружатьТолькоРазрешенные Тогда - СтрокаВыбораПолей = "*"; + Запрос.Текст = СтрЗаменить(Запрос.Текст, "РАЗРЕШЕННЫЕ", ""); // @Query-part-1 КонецЕсли; - Запрос.Текст = "ВЫБРАТЬ " + СтрокаРазрешения + " - | " + СтрокаВыбораПолей + " - |ИЗ - | " + ИмяТипа + "." + Свойства.Имя + " КАК ОбъектДляВыгрузки - | - |"; + Если ВыбиратьВсеПоля + ИЛИ ИмяТипа = "РегистрБухгалтерии" Тогда + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "ОбъектДляВыгрузки.Ссылка КАК Ссылка", "*"); + + КонецЕсли; - Если ВыборкаДляОчисткиДанных - И УдалятьОбъектыНепосредственно Тогда + Если (ВыборкаДляОчисткиДанных И УдалятьОбъектыНепосредственно) + И ((ИмяТипа = "Справочник" И Метаданные.Справочники[Свойства.Имя].Иерархический) + ИЛИ (ИмяТипа = "ПланВидовХарактеристик" И Метаданные.ПланыВидовХарактеристик[Свойства.Имя].Иерархический)) Тогда - Если (ИмяТипа = "Справочник" - ИЛИ ИмяТипа = "ПланВидовХарактеристик") Тогда - - Если ИмяТипа = "Справочник" Тогда - НужнаИерархия = Метаданные.Справочники[Свойства.Имя].Иерархический; - Иначе - НужнаИерархия = Метаданные.ПланыВидовХарактеристик[Свойства.Имя].Иерархический; - КонецЕсли; - - Если НужнаИерархия Тогда - - Запрос.Текст = Запрос.Текст + " - | ГДЕ ОбъектДляВыгрузки.Родитель = &Родитель - |"; - - Запрос.УстановитьПараметр("Родитель", Свойства.Менеджер.ПустаяСсылка()); - - КонецЕсли; - - КонецЕсли; + Запрос.УстановитьПараметр("Родитель", Свойства.Менеджер.ПустаяСсылка()); - КонецЕсли; - + Иначе + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "ГДЕ ОбъектДляВыгрузки.Родитель = &Родитель", ""); + + КонецЕсли; + ИначеЕсли ИмяТипа = "Документ" Тогда - Запрос = Новый Запрос(); + Запрос = Новый Запрос; + + Запрос.Текст = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | ОбъектДляВыгрузки.Ссылка КАК Ссылка + |ИЗ + | &ИмяТаблицыМетаданных КАК ОбъектДляВыгрузки"; + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицыМетаданных", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.%2", ИмяТипа, Свойства.Имя)); + + Если НЕ ВыгружатьТолькоРазрешенные Тогда + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "РАЗРЕШЕННЫЕ", ""); // @Query-part-1 + + КонецЕсли; - ИтоговоеОграничениеПоДате = ""; - - Запрос.Текст = "ВЫБРАТЬ " + СтрокаРазрешения + " - | " + СтрокаВыбораПолей + " - |ИЗ - | " + ИмяТипа + "." + Свойства.Имя + " КАК ОбъектДляВыгрузки - | - |" + ИтоговоеОграничениеПоДате; - - ИначеЕсли ИмяТипа = "РегистрСведений" Тогда - Непериодический = НЕ Свойства.Периодический; - ПодчиненныйРегистратору = Свойства.ПодчиненныйРегистратору; + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | * + | ,NULL КАК Активность + | ,NULL КАК Регистратор + | ,NULL КАК НомерСтроки + | ,NULL КАК Период + |ИЗ + | &ИмяТаблицыМетаданных КАК ОбъектДляВыгрузки"; - Запрос = Новый Запрос(); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицыМетаданных", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.%2", ИмяТипа, Свойства.Имя)); - ИтоговоеОграничениеПоДате = ""; - - СтрокаДополненияПолейВыборкиПодчиненРегистратору = ?(НЕ ПодчиненныйРегистратору, ", NULL КАК Активность, - | NULL КАК Регистратор, - | NULL КАК НомерСтроки", ""); + Если Свойства.ПодчиненныйРегистратору Тогда + + Запрос.Текст = СтрЗаменить(Запрос.Текст, ",NULL КАК Активность", ""); + Запрос.Текст = СтрЗаменить(Запрос.Текст, ",NULL КАК Регистратор", ""); + Запрос.Текст = СтрЗаменить(Запрос.Текст, ",NULL КАК НомерСтроки", ""); + + КонецЕсли; - СтрокаДополненияПолейВыборкиПериодичность = ?(Непериодический, ", NULL КАК Период", ""); - - Запрос.Текст = "ВЫБРАТЬ " + СтрокаРазрешения - + " - | * - | " + СтрокаДополненияПолейВыборкиПодчиненРегистратору + " - | " + СтрокаДополненияПолейВыборкиПериодичность + " - |ИЗ - | " + ИмяТипа + "." + Свойства.Имя + " КАК ОбъектДляВыгрузки - |" + ИтоговоеОграничениеПоДате; + Если Свойства.Периодический Тогда + + Запрос.Текст = СтрЗаменить(Запрос.Текст, ",NULL КАК Период", ""); + + КонецЕсли; Иначе Возврат Неопределено; - + КонецЕсли; @@ -1245,7 +1249,7 @@ // ВыбиратьВсеПоля - Булево - признак необходимости выбора всех полей. // // Возвращаемое значение: -// ВыборкаИзРезультатаЗапроса либо Неопределено - сформированная выборка для очистки данных. +// ВыборкаИзРезультатаЗапроса, Неопределено - сформированная выборка для очистки данных. // Функция ВыборкаДляВыгрузкиОчисткиДанных(Свойства, ИмяТипа, ВыборкаДляОчисткиДанных = Ложь, УдалятьОбъектыНепосредственно = Ложь, ВыбиратьВсеПоля = Истина) Экспорт @@ -1467,8 +1471,8 @@ // Правило - СтрокаТаблицыЗначений - из правил конвертации объектов: // * Свойства - см. КоллекцияПравилаКонвертацииСвойств // ВходящиеДанные - Произвольный - входящие данные для правила конвертации. -// НеВыгружатьОбъектыПоСсылкам - булево - признак для выгрузки свойств по ссылкам.. -// ИмяПКО - строка - имя правила конвертации. +// НеВыгружатьОбъектыПоСсылкам - Булево - признак для выгрузки свойств по ссылкам.. +// ИмяПКО - Строка - имя правила конвертации. // ПравилоВыгрузкиДанных - СтрокаТаблицыЗначений - из таблицы правил выгрузки данных. // Процедура ВыгрузитьРегистр(НаборЗаписейДляВыгрузки, @@ -1623,10 +1627,10 @@ // Создает в файле обмена запись об удалении объекта. // // Параметры: -// Ссылка - СправочникСсылка -// - ДокументСсылка - удаляемый объект. -// ТипПриемника - Строка - содержит строковое представление типа приемника. -// ТипИсточника - Строка - содержит строковое представление типа источника. +// Ссылка - СправочникСсылка +// - ДокументСсылка - удаляемый объект. +// ТипПриемника - Строка - содержит строковое представление типа приемника. +// ТипИсточника - Строка - содержит строковое представление типа источника. // Процедура ЗаписатьВФайлУдалениеОбъекта(Ссылка, Знач ТипПриемника, Знач ТипИсточника) Экспорт @@ -1646,8 +1650,8 @@ // Регистрирует объект, созданный при выгрузке. // // Параметры: -// Ссылка - СправочникСсылка -// - ДокументСсылка - регистрируемый объект. +// Ссылка - СправочникСсылка +// - ДокументСсылка - регистрируемый объект. // Процедура ЗарегистрироватьОбъектСозданныйПриВыгрузке(Ссылка) Экспорт @@ -1689,7 +1693,7 @@ // Признак того, что это загрузка в информационную базу. // // Возвращаемое значение: -// Булево - признак режима загрузки данных. +// Булево - признак режима загрузки данных. // Функция РежимЗагрузкиДанныхВИнформационнуюБазу() Экспорт @@ -1719,11 +1723,11 @@ // Записывает объект в информационную базу. // // Параметры: -// Объект - СправочникОбъект -// - ДокументОбъект - записываемый объект. -// Тип - Строка - тип объекта строкой. -// ЗаписатьОбъект - Булево - признак того что объект был записан. -// ОтправкаНазад - Булево - признак того что состояние элемента данных в этой информационной +// Объект - СправочникОбъект +// - ДокументОбъект - записываемый объект. +// Тип - Строка - тип объекта строкой. +// ЗаписатьОбъект - Булево - признак того что объект был записан. +// ОтправкаНазад - Булево - признак того что состояние элемента данных в этой информационной // базе должно быть передано в информационную базу корреспондента. // Процедура ЗаписатьОбъектВИБ(Объект, Тип, ЗаписатьОбъект = Ложь, Знач ОтправкаНазад = Ложь) Экспорт @@ -1795,9 +1799,9 @@ // Отменяет проведение объекта в информационной базе. // // Параметры: -// Объект - ДокументОбъект - документ для отмены проведения. -// Тип - Строка - тип объекта строкой. -// ЗаписатьОбъект - булево - признак того что объект был записан. +// Объект - ДокументОбъект - документ для отмены проведения. +// Тип - Строка - тип объекта строкой. +// ЗаписатьОбъект - Булево - признак того что объект был записан. // Процедура ОтменитьПроведениеОбъектаВИБ(Объект, Тип, ЗаписатьОбъект = Ложь) Экспорт @@ -1848,10 +1852,10 @@ // Устанавливает пометку удаления. // // Параметры: -// Объект - СправочникОбъект -// - ДокументОбъект - объект для установки пометки. -// ПометкаУдаления - Булево - флаг пометки удаления. -// ИмяТипаОбъекта - Строка - тип объекта строкой. +// Объект - СправочникОбъект +// - ДокументОбъект - объект для установки пометки. +// ПометкаУдаления - Булево - флаг пометки удаления. +// ИмяТипаОбъекта - Строка - тип объекта строкой. // Процедура УстановитьПометкуУдаленияУОбъекта(Объект, ПометкаУдаления, ИмяТипаОбъекта) Экспорт @@ -1957,7 +1961,7 @@ // ВыбиратьВсеПоля - Булево - признак необходимости выбора всех полей. // // Возвращаемое значение: -// РезультатЗапроса либо Неопределено - результат выполнения запроса для выгрузки очистки данных. +// РезультатЗапроса, Неопределено - результат выполнения запроса для выгрузки очистки данных. // Функция ПолучитьРезультатЗапросаДляВыгрузкиОчисткиДанных(Свойства, ИмяТипа, ВыборкаДляОчисткиДанных = Ложь, УдалятьОбъектыНепосредственно = Ложь, ВыбиратьВсеПоля = Истина) Экспорт @@ -1978,7 +1982,7 @@ // ВыбиратьВсеПоля - Булево - признак необходимости выбора всех полей. // // Возвращаемое значение: -// ВыборкаИзРезультатаЗапроса либо Неопределено - сформированная выборка для очистки данных. +// ВыборкаИзРезультатаЗапроса, Неопределено - сформированная выборка для очистки данных. // Функция ПолучитьВыборкуДляВыгрузкиОчисткиДанных(Свойства, ИмяТипа, ВыборкаДляОчисткиДанных = Ложь, УдалятьОбъектыНепосредственно = Ложь, ВыбиратьВсеПоля = Истина) Экспорт @@ -3362,7 +3366,7 @@ ПравилаРегистрацииОбъектов = ОбменДаннымиСобытия.ПравилаРегистрацииОбъектовПланаОбмена( ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелПланаОбмена)); - ПолеПравилаРегистрацииОбъектов = ПравилаРегистрацииОбъектов.Скопировать(, "ОбъектМетаданныхИмя, ИмяРеквизитаФлага"); + ПолеПравилаРегистрацииОбъектов = ПравилаРегистрацииОбъектов.Скопировать(, "ОбъектМетаданныхИмя, ИмяРеквизитаФлага"); // ТаблицаЗначений ПолеПравилаРегистрацииОбъектов.Индексы.Добавить("ОбъектМетаданныхИмя"); КонецЕсли; @@ -3541,7 +3545,7 @@ // Чем - Строка - символ, которым дополняется строка. // // Возвращаемое значение: -// Строка - , дополненная указанным символом до указанной длины. +// Строка - дополненная указанным символом до указанной длины. // Функция одДополнитьСтроку(Стр, Длина, Чем = " ") @@ -3755,23 +3759,28 @@ // Функция ПредопределенныйЭлементМенеджера(Знач Менеджер, Знач ИмяПредопределенного) - Запрос = Новый Запрос( СтрЗаменить(" - |ВЫБРАТЬ - | ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных, - | Ссылка КАК Ссылка - |ИЗ - | {ИмяТаблицы} - |ГДЕ - | Предопределенный - |", - "{ИмяТаблицы}", Метаданные.НайтиПоТипу(ТипЗнч(Менеджер)).ПолноеИмя())); + ШаблонТекстаЗапроса = + "ВЫБРАТЬ + | ПсевдонимТаблицыМетаданных.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных, + | ПсевдонимТаблицыМетаданных.Ссылка КАК Ссылка + |ИЗ + | &ИмяТаблицыМетаданных КАК ПсевдонимТаблицыМетаданных + |ГДЕ + | ПсевдонимТаблицыМетаданных.Предопределенный"; + + СтрокаЗамены = Метаданные.НайтиПоТипу(ТипЗнч(Менеджер)).ПолноеИмя(); + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяТаблицыМетаданных", СтрокаЗамены); + Запрос = Новый Запрос(ТекстЗапроса); Выборка = Запрос.Выполнить().Выбрать(); - Если Выборка.НайтиСледующий( Новый Структура("ИмяПредопределенныхДанных", ИмяПредопределенного) ) Тогда + Если Выборка.НайтиСледующий(Новый Структура("ИмяПредопределенныхДанных", ИмяПредопределенного)) Тогда + Возврат Выборка.Ссылка; + КонецЕсли; Возврат Неопределено; + КонецФункции // Осуществляет простой поиск объекта информационной базы по указанному свойству. @@ -4192,7 +4201,7 @@ // Нет. // // Возвращаемое значение: -// структура - объект типа структура +// Структура - объект типа структура // Функция ЗаписьПротоколаОбмена(КСообщенияОбОшибках = "", Знач СтрокаОшибки = "") @@ -7283,10 +7292,10 @@ // Тип - тип создаваемого объекта. // СвойстваПоиска - Структура - содержащая устанавливаемые реквизиты нового объекта. // Объект - объект информационной базы, созданный в результате выполнения. -// ЗаписыватьОбъектСразуПослеСоздания - булево. +// ЗаписыватьОбъектСразуПослеСоздания - Булево // НоваяСсылка - ссылка на созданный объект. // УстанавливатьУОбъектаВсеСвойстваПоиска - Булево. -// НаборЗаписейРегистра - РегистрСведенийНаборЗаписей, который создан. +// НаборЗаписейРегистра - РегистрСведенийНаборЗаписей - который создан. // // Возвращаемое значение: // Созданный объект, либо Неопределено (если не установлен ЗаписыватьОбъектСразуПослеСоздания). @@ -8101,7 +8110,7 @@ // // Параметры: // ТипОбъекта - тип искомого объекта. -// СвойстваПоиска - структура - содержащая свойства по которым производится поиск объекта. +// СвойстваПоиска - Структура - содержащая свойства по которым производится поиск объекта. // ОбъектНайден - если Ложь, то объект не найден, а создан новый. // // Возвращаемое значение: @@ -12587,9 +12596,24 @@ ИмяМетаданных = Правило.ИмяОбъектаДляЗапроса; - СтрокаРазрешения = ?(ВыгружатьТолькоРазрешенные, " РАЗРЕШЕННЫЕ ", ""); + ТекстЗапроса = + "ВЫБРАТЬ РАЗРЕШЕННЫЕ + | Объект.Ссылка КАК Ссылка + |ИЗ + | &ИмяТаблицыМетаданных КАК Объект + |{ГДЕ + | Объект.Ссылка.* КАК ПсевдонимДинамическогоУсловия}"; - ОбъектПостроительОтчета().Текст = "ВЫБРАТЬ " + СтрокаРазрешения + " Объект.Ссылка КАК Ссылка ИЗ " + ИмяМетаданных + " КАК Объект "+ "{ГДЕ Объект.Ссылка.* КАК " + СтрЗаменить(ИмяМетаданных, ".", "_") + "}"; + Если НЕ ВыгружатьТолькоРазрешенные Тогда + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "РАЗРЕШЕННЫЕ", ""); // @Query-part-1 + + КонецЕсли; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыМетаданных", ИмяМетаданных); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ПсевдонимДинамическогоУсловия", СтрЗаменить(ИмяМетаданных, ".", "_")); + + ОбъектПостроительОтчета().Текст = ТекстЗапроса; ОбъектПостроительОтчета().Отбор.Сбросить(); Если Не Правило.НастройкиПостроителя = Неопределено Тогда ОбъектПостроительОтчета().УстановитьНастройки(Правило.НастройкиПостроителя); @@ -13665,9 +13689,17 @@ Имя = ОбъектМД.Имя; ТипСсылкиСтрокой = ПрефиксИмениТипа + "." + Имя; - СтрокаПоиска = "ВЫБРАТЬ Ссылка ИЗ " + ИмяТипа + "." + Имя + " ГДЕ "; - СтрокаПоискаВыгрузкиСсылки = "ВЫБРАТЬ #ПоляПоиска# ИЗ " + ИмяТипа + "." + Имя; + + ТекстЗапросаПоиска = "ВЫБРАТЬ Ссылка ИЗ &ИмяТаблицыМетаданных"; + ТекстЗапросаПоиска = СтрЗаменить(ТекстЗапросаПоиска, "&ИмяТаблицыМетаданных", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.%2", ИмяТипа, Имя)); + СтрокаПоиска = ТекстЗапросаПоиска + " ГДЕ "; + + ТекстЗапросаВыгрузки = "ВЫБРАТЬ &ПоляПоискаПараметр ИЗ &ИмяТаблицыМетаданных"; + ТекстЗапросаВыгрузки = СтрЗаменить(ТекстЗапросаВыгрузки, "&ИмяТаблицыМетаданных", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1.%2", ИмяТипа, Имя)); + СтрокаПоискаВыгрузкиСсылки = СтрЗаменить(ТекстЗапросаВыгрузки, "&ПоляПоискаПараметр", "#ПоляПоиска#"); + ТипСсылки = Тип(ТипСсылкиСтрокой); + Структура = СтруктураПараметровМенеджера(Имя, ИмяТипа, ТипСсылкиСтрокой, Менеджер, ОбъектМД); Структура.Вставить("СтрокаПоиска",СтрокаПоиска); Структура.Вставить("СтрокаПоискаВыгрузкиСсылки",СтрокаПоискаВыгрузкиСсылки); @@ -13918,8 +13950,14 @@ // * Имя - Строка // * ИмяТипа - Строка // * ТипСсылкиСтрокой - Строка -// * Менеджер - СправочникМенеджер, ДокументМенеджер, РегистрСведенийМенеджер, и т.п. -// * ОбъектМД - ОбъектМетаданныхСправочник, ОбъектМетаданныхДокумент, ОбъектМетаданныхРегистрСведений, и т.п. +// * Менеджер - СправочникМенеджер +// - ДокументМенеджер +// - РегистрСведенийМенеджер +// - и т.п. +// * ОбъектМД - ОбъектМетаданныхСправочник +// - ОбъектМетаданныхДокумент +// - ОбъектМетаданныхРегистрСведений +// - и т.п. // * ПКО - СтрокаТаблицыЗначений - строка таблицы правил конвертации: // ** Свойства - см. КоллекцияПравилаКонвертацииСвойств // @@ -17500,6 +17538,11 @@ Если ВыгружаютсяКонстанты Тогда ПравилоВыгрузкиДанных = ТаблицаПравилВыгрузкиИспользуемые.Найти(Тип("КонстантыНабор"), "ОбъектВыборкиМетаданные"); + Если ПравилоВыгрузкиДанных = Неопределено Тогда + + ПравилоВыгрузкиДанных = ТаблицаПравилВыгрузкиИспользуемые.Найти(Тип("КонстантыНабор"), "ОбъектВыборки"); + + КонецЕсли; Иначе diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Module.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Module.bsl index adc8d4eb5..7048fd32b 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Module.bsl @@ -368,7 +368,7 @@ // ВидыОпераций - Структура - описывающая значения перечисления ОперацииАдминистрированияПрофилейБезопасности: // * Ключ - Строка - имя значения перечисления, // * Значение - ПеречислениеСсылка.ОперацииАдминистрированияПрофилейБезопасности, -// СценарийПримененияРазрешений - Массив Из Структура - сценарий применения изменений разрешений на +// СценарийПримененияРазрешений - Массив из Структура - сценарий применения изменений разрешений на // использование профилей безопасности в кластере серверов. Значениями массива являются структуры // со следующими полями: // * Операция - ПеречислениеСсылка.ОперацииАдминистрированияПрофилейБезопасности - операция, которую diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкиИспользованияПрофилейБезопасности/Form.form b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкиИспользованияПрофилейБезопасности/Form.form index ec5831a76..474c16730 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкиИспользованияПрофилейБезопасности/Form.form +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкиИспользованияПрофилейБезопасности/Form.form @@ -75,10 +75,6 @@ true - - <key>ru</key> - <value>Справка</value> - ГруппаСправкаExtendedTooltip 1603 @@ -99,10 +95,6 @@ true - - <key>ru</key> - <value>Заголовок</value> - ГруппаЗаголовокExtendedTooltip 1600 @@ -209,10 +201,6 @@ true - - <key>ru</key> - <value>Режим использования профилей безопасности</value> - ГруппаРежимИспользованияПрофилейБезопасностиРасширеннаяПодсказка 1612 @@ -238,10 +226,6 @@ true - - <key>ru</key> - <value>Профили безопасности колонки левая</value> - ГруппаПрофилиБезопасностиКолонкиЛеваяРасширеннаяПодсказка 1610 @@ -337,10 +321,6 @@ true - - <key>ru</key> - <value>Требуемые разрешения</value> - ГруппаТребуемыеРазрешенияРасширеннаяПодсказка 1622 @@ -452,10 +432,6 @@ true - - <key>ru</key> - <value>Профиль безопасности информационной базы</value> - ГруппаПрофильБезопасностиИнформационнойБазыРасширеннаяПодсказка 1629 @@ -481,10 +457,6 @@ true - - <key>ru</key> - <value>Профили безопасности колонка правая</value> - ГруппаПрофилиБезопасностиКолонкаПраваяРасширеннаяПодсказка 1620 @@ -510,10 +482,6 @@ true - - <key>ru</key> - <value>Безопасность колонки</value> - ГруппаБезопасностьКолонкиРасширеннаяПодсказка 1608 @@ -614,10 +582,6 @@ true - - <key>ru</key> - <value>Пояснение о лицензии КОРП</value> - ГруппаПояснениеОЛицензииКОРПРасширеннаяПодсказка 1646 @@ -718,10 +682,6 @@ true - - <key>ru</key> - <value>Открыть внешнюю обработку</value> - ГруппаОткрытьВнешнююОбработкуРасширеннаяПодсказка 1691 @@ -747,10 +707,6 @@ true - - <key>ru</key> - <value>Группа профили безопасности колонки левая</value> - ГруппаСервисныеФункцииКолонкиЛеваяРасширеннаяПодсказка 1665 @@ -846,10 +802,6 @@ true - - <key>ru</key> - <value>Восстановление профилей безопасности</value> - ГруппаВосстановлениеПрофилейБезопасностиРасширеннаяПодсказка 1684 @@ -875,10 +827,6 @@ true - - <key>ru</key> - <value>Группа профили безопасности колонка правая</value> - ГруппаСервисныеФункцииКолонкаПраваяРасширеннаяПодсказка 1667 @@ -937,10 +885,6 @@ true - - <key>ru</key> - <value>Профили безопасности</value> - ГруппаПрофилиБезопасностиРасширеннаяПодсказка 1606 diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/ManagerModule.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/ManagerModule.bsl index 7e50a8422..093e0a421 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/ManagerModule.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/ManagerModule.bsl @@ -6,13 +6,6 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Базовая функциональность". -// Серверные процедуры и функции общего назначения: -// - Управление разрешениями в профилях безопасности из текущей ИБ. -// -//////////////////////////////////////////////////////////////////////////////// - #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда #Область СлужебныеПроцедурыИФункции @@ -266,7 +259,7 @@ // Очищает регистры сведений, которые используются для хранения в ИБ перечня предоставленных разрешений. // // Параметры: -// ПрограммныйМодуль - ЛюбаяСсылка, ссылка на элемент справочника, соответствующая внешнему модулю, информацию +// ПрограммныйМодуль - ЛюбаяСсылка - ссылка на элемент справочника, соответствующая внешнему модулю, информацию // о ранее предоставленных разрешениях по которому требуется очистить. Если значение параметра не задано - // будет очищена информация о предоставленных разрешениях по всем внешним модулям. // ОчиститьРежимыПодключения - Булево - флаг необходимости дополнительной очистки режимов подключения diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/ObjectModule.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/ObjectModule.bsl index e80203fcc..10892cac4 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/ObjectModule.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/ObjectModule.bsl @@ -8,18 +8,9 @@ #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Базовая функциональность". -// Серверные процедуры и функции общего назначения: -// - Управление разрешениями в профилях безопасности из текущей ИБ. -// -//////////////////////////////////////////////////////////////////////////////// - #Область ОписаниеПеременных -#Область ВнутреннееСостояние - -// Массив(УникальныйИдентификатор) - массив идентификаторов запросов на использование внешних +// Массив из УникальныйИдентификатор - идентификаторы запросов на использование внешних // ресурсов, для применения которых инициализирован объект. // Перем ИдентификаторыЗапросов; @@ -72,7 +63,7 @@ // Перем ПланПримененияЗапросов; -// Таблица значений - исходный срез разрешений (в разрезе владельцев разрешений). Колонки: +// ТаблицаЗначений - исходный срез разрешений (в разрезе владельцев разрешений). Колонки: // * ТипПрограммногоМодуля - СправочникСсылка.ИдентификаторыОбъектовМетаданных, // * ИдентификаторПрограммногоМодуля - УникальныйИдентификатор, // * ТипВладельца - СправочникСсылка.ИдентификаторыОбъектовМетаданных, @@ -88,7 +79,7 @@ // * Значение - см. функцию ДополнениеРазрешения в модуле менеджера регистра. // РазрешенияНаИспользованиеВнешнихРесурсов). // -Перем ИсходныйСрезРазрешенийВРазрезеВладельцев; +Перем ИсходныйСрезРазрешенийВРазрезеВладельцев; // ТаблицаЗначений // Таблица значений - исходный срез разрешений (без учета владельцев разрешений). Колонки: // * ТипПрограммногоМодуля - СправочникСсылка.ИдентификаторыОбъектовМетаданных, @@ -106,7 +97,7 @@ // Перем ИсходныйСрезРазрешенийБезУчетаВладельцев; -// Таблица значений - срез разрешений в результате применения запросов (в разрезе владельцев разрешений). +// ТаблицаЗначений - срез разрешений в результате применения запросов (в разрезе владельцев разрешений). // Колонки: // * ТипПрограммногоМодуля - СправочникСсылка.ИдентификаторыОбъектовМетаданных, // * ИдентификаторПрограммногоМодуля - УникальныйИдентификатор, @@ -125,7 +116,7 @@ // Перем РезультатПримененияЗапросовВРазрезеВладельцев; -// Таблица значений - срез разрешений в результате применения запросов (в разрезе владельцев разрешений). +// ТаблицаЗначений - срез разрешений в результате применения запросов (в разрезе владельцев разрешений). // Колонки: // * ТипПрограммногоМодуля - СправочникСсылка.ИдентификаторыОбъектовМетаданных, // * ИдентификаторПрограммногоМодуля - УникальныйИдентификатор, @@ -212,8 +203,6 @@ #КонецОбласти -#КонецОбласти - #Область СлужебныйПрограммныйИнтерфейс // Добавляет идентификатор запроса в перечень обрабатываемых. После успешного применения будет выполнена очистка @@ -264,8 +253,8 @@ // ТипВладельца - СправочникСсылка.ИдентификаторыОбъектовМетаданных, // ИдентификаторВладельца - УникальныйИдентификатор, // РежимЗамещения - Булево, -// ДобавляемыеРазрешения - Массив из ОбъектXDTO или Неопределено, -// УдаляемыеРазрешения - Массив из ОбъектXDTO или Неопределено. +// ДобавляемыеРазрешения - Массив из ОбъектXDTO, Неопределено, +// УдаляемыеРазрешения - Массив из ОбъектXDTO, Неопределено. // Процедура ДобавитьЗапросРазрешенийНаИспользованиеВнешнихРесурсов( Знач ТипПрограммногоМодуля, Знач ИдентификаторПрограммногоМодуля, @@ -501,7 +490,7 @@ // Возвращает сценарий применения запросов разрешений на использование внешних ресурсов. // // Возвращаемое значение: -// Массив(Структура), поля структуры: +// Массив из Структура: // * Операция - ПеречислениеСсылка.ОперацииАдминистрированияПрофилейБезопасности, // * Профиль - Строка - имя профиля безопасности, // * Разрешения - см. АдминистрированиеКластера.СвойстваПрофиляБезопасности @@ -558,7 +547,8 @@ // Сериализует внутреннее состояние объекта. // -// Возвращаемое значение - Строка. +// Возвращаемое значение: +// Строка. // Функция ЗаписатьСостояниеВСтрокуXML() Экспорт @@ -1268,7 +1258,8 @@ // Возвращает физические пути стандартных виртуальных каталогов. // -// Возвращаемое значение - Соответствие: +// Возвращаемое значение: +// Соответствие из КлючИЗначение: // * Ключ - Строка - псевдоним виртуального каталога, // * Значение - Строка - физический путь. // @@ -1299,7 +1290,8 @@ // Возвращает семафор применения запросов на использование внешних ресурсов. // -// Возвращаемое значение - РегистрСведенийКлючЗаписи.ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов. +// Возвращаемое значение: +// РегистрСведенийКлючЗаписи.ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов. // Функция Семафор() diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопирования/Form.form b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопирования/Form.form index f640964ca..e9aaaf2d0 100644 --- a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопирования/Form.form +++ b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопирования/Form.form @@ -358,10 +358,6 @@ true - - <key>ru</key> - <value>Выбор варианта автоматического резервного копирования</value> - ВыборВариантаАвтоматическогоРезервногоКопированияРасширеннаяПодсказка 284 @@ -489,10 +485,6 @@ true - - <key>ru</key> - <value>Режимы работы</value> - РежимыРаботыРасширеннаяПодсказка 435 @@ -575,10 +567,6 @@ true - - <key>ru</key> - <value>Шаг 1. Выбор каталога</value> - ГруппаЗаведенияПутиКопированияРасширеннаяПодсказка 290 @@ -721,10 +709,6 @@ true - - <key>ru</key> - <value>Авторизации</value> - ГруппаАвторизацииExtendedTooltip 294 @@ -1031,10 +1015,6 @@ true - - <key>ru</key> - <value>Хранить последние за период</value> - ГруппаХранитьПоследниеЗаПериодРасширеннаяПодсказка 302 @@ -1225,10 +1205,6 @@ true - - <key>ru</key> - <value>Количество копий в каталоге</value> - ГруппаКоличествоКопийВКаталогеРасширеннаяПодсказка 357 @@ -1333,10 +1309,6 @@ true - - <key>ru</key> - <value>Параметры</value> - ГруппаПараметрыРасширеннаяПодсказка 378 @@ -1565,10 +1537,6 @@ true - - <key>ru</key> - <value>Ошибки</value> - ГруппаОшибкиExtendedTooltip 334 @@ -1594,10 +1562,6 @@ true - - <key>ru</key> - <value>Горизонтальная группа ошибка подключения</value> - ГоризонтальнаяГруппаОшибкаПодключенияExtendedTooltip 332 @@ -1776,10 +1740,6 @@ true - - <key>ru</key> - <value>Страницы помощника</value> - СтраницыПомощникаExtendedTooltip 268 @@ -1885,10 +1845,6 @@ true - - <key>ru</key> - <value>Командная панель</value> - КоманднаяПанельРасширеннаяПодсказка 371 diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ManagerModule.bsl b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ManagerModule.bsl index 369d49b5a..b6adffedb 100644 --- a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ManagerModule.bsl +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ManagerModule.bsl @@ -12,11 +12,12 @@ // АПК:581-выкл - вызывается из инструментов разработчика. -// Помещает во временное хранилище подготовленную структуру для просмотра метаданных +// Помещает во временное хранилище подготовленную структуру для просмотра метаданных. +// Для вызова из длительной операции (фонового задания). // // Параметры: -// Параметры - Структура - пустая структура. Наличие параметра обусловлено использованием в подсистеме ДлительныеОперации -// АдресХранилища - Строка - адрес временного хранилища, куда будут возвращены данные. Наличие параметра обусловлено использованием в подсистеме ДлительныеОперации +// Параметры - Структура - пустая структура. +// АдресХранилища - Строка - адрес временного хранилища, куда будут возвращены данные. // Процедура ПодготовитьПараметрыНастройкиСоставаСтандартногоИнтерфейсаOData(Параметры, АдресХранилища) Экспорт @@ -26,15 +27,14 @@ КонецПроцедуры // Возвращает роль, предназначенную для назначения пользователю информационной базы, -// логин и пароль которого будет использоваться при подключении к стандартному интерфейсу -// OData (в модели сервиса). +// логин и пароль которого будет использоваться при подключении к стандартному интерфейсу OData. // // Возвращаемое значение: -// ОбъектМетаданных (роль). +// ОбъектМетаданныхРоль // Функция РольДляСтандартногоИнтерфейсаOData() Экспорт - Возврат Метаданные.Роли.УдалениеДанныхOData; + Возврат Метаданные.Роли.УдаленныйДоступOData; КонецФункции @@ -220,7 +220,7 @@ // доступ к чтению объекта, // * Запись - Булево - через стандартный интерфейс OData может быть предоставлен // доступ к записи объекта, -// * Зависимости - Массив(ОбъектМетаданных) - массив объектов метаданных, которые +// * Зависимости - Массив из ОбъектМетаданных - массив объектов метаданных, которые // необходимо включить в состав стандартного интерфейса OData при // включении текущего объекта. // @@ -271,7 +271,7 @@ // OData (в модели сервиса). // // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - ОбъектМетаданных - объект метаданных, // * Значение - Массив(Строка) - массив названий прав доступа, // которые должны быть разрешены для данного объекта @@ -362,8 +362,6 @@ КонецЕсли; Если ТипЗнч(ОшибкиПоОбъектам) = Тип("Соответствие") Тогда - ШаблонОшибкиОтсутствуетПраво = НСтр("ru = 'В роли ""%2"" отсутствует право ""%3"" на объект ""%1"".'"); - ШаблонОшибкиПрисутствуетПраво = НСтр("ru = 'В роли ""%2"" установлено лишнее право ""%3"" на объект ""%1"".'"); Для Каждого КлючИЗначение Из ИзбыточныеПрава Цикл ПолноеИмя = КлючИЗначение.Ключ.ПолноеИмя(); ОшибкиПоОбъектам.Вставить(ПолноеИмя, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( @@ -970,7 +968,7 @@ // Проверяет, является ли переданный объект метаданных объектом ОбъектМетаданныхКонфигурация. // // Параметры: -// ОбъектМетаданных - проверяемый объект метаданных. +// ОбъектМетаданных - ОбъектМетаданных - проверяемый объект метаданных. // // Возвращаемое значение: // Булево @@ -984,7 +982,7 @@ // Проверяет, является ли переданный объект метаданных параметром сеанса. // // Параметры: -// ОбъектМетаданных - проверяемый объект метаданных. +// ОбъектМетаданных - ОбъектМетаданных - проверяемый объект метаданных. // // Возвращаемое значение: // Булево @@ -999,7 +997,7 @@ // Проверяет, является ли переданный объект метаданных общим реквизитом. // // Параметры: -// ОбъектМетаданных - проверяемый объект метаданных. +// ОбъектМетаданных - ОбъектМетаданных - проверяемый объект метаданных. // // Возвращаемое значение: // Булево @@ -1014,7 +1012,7 @@ // Проверяет, является ли переданный объект метаданных ссылочным. // // Параметры: -// ОбъектМетаданных - проверяемый объект метаданных. +// ОбъектМетаданных - ОбъектМетаданных - проверяемый объект метаданных. // // Возвращаемое значение: // Булево @@ -1036,7 +1034,7 @@ // Проверяет, является ли переданный объект метаданных ссылочным с поддержкой предопределенных элементов. // // Параметры: -// ОбъектМетаданных - проверяемый объект метаданных. +// ОбъектМетаданных - ОбъектМетаданных - проверяемый объект метаданных. // // Возвращаемое значение: // Булево @@ -1053,7 +1051,7 @@ // Проверяет, является ли переданный объект метаданных набором записей, поддерживающим итоги. // // Параметры: -// ОбъектМетаданных - проверяемый объект метаданных. +// ОбъектМетаданных - ОбъектМетаданных - проверяемый объект метаданных. // // Возвращаемое значение: // Булево diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Form.form b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Form.form index d30bf7a1a..0801ac51c 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Form.form +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Form.form @@ -1557,6 +1557,20 @@ true + + Источник + 13 + + String + + + + true + + + true + + Выбрать @@ -1741,6 +1755,13 @@ <types>CatalogRef.Пользователи</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 789fcce10..a14a7c1b7 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Module.bsl @@ -48,6 +48,8 @@ КонецЕсли; + Источник = Параметры.Источник; + КонецПроцедуры &НаСервере @@ -192,7 +194,7 @@ Результат = Новый Структура("ПользователиПриемник, КопироватьВсе, ОчисткаНастроек", ПользователиПриемник, КопироватьВсе, ОчисткаНастроек); - Оповестить("ВыборПользователя", Результат); + Оповестить("ВыборПользователя", Результат, Источник); Закрыть(); КонецПроцедуры diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/КопированиеНастроекПользователей/Module.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Forms/КопированиеНастроекПользователей/Module.bsl index e6d518890..f3a93c894 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/КопированиеНастроекПользователей/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/КопированиеНастроекПользователей/Module.bsl @@ -41,6 +41,10 @@ Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Если ВРег(ИмяСобытия) = ВРег("ВыборПользователя") Тогда + Если Источник <> ЭтотОбъект.ИмяФормы Тогда + Возврат; + КонецЕсли; + ПользователиПолучателиНастроек = Новый Структура("МассивПользователей", Параметр.ПользователиПриемник); КоличествоПользователей = Параметр.ПользователиПриемник.Количество(); @@ -180,6 +184,7 @@ ПараметрыФормы.Вставить("Пользователь", ПользовательСсылка); ПараметрыФормы.Вставить("ТипДействия", "Копирование"); ПараметрыФормы.Вставить("ВыбранныеПользователи", ВыбранныеПользователи); + ПараметрыФормы.Вставить("Источник", ЭтотОбъект.ИмяФормы); ОткрытьФорму("Обработка.НастройкиПользователей.Форма.ВыборПользователей", ПараметрыФормы); diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/НастройкиПользователей/Module.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Forms/НастройкиПользователей/Module.bsl index 2dc05bdd6..4f8be8135 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/НастройкиПользователей/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/НастройкиПользователей/Module.bsl @@ -100,6 +100,10 @@ &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + Если ВРег(ИмяСобытия) = ВРег("ВыборПользователя") И Источник <> ЭтотОбъект.ИмяФормы Тогда + Возврат; + КонецЕсли; + ПараметрыОбработкиОповещения = Новый Структура("ИмяСобытия, Параметр", ИмяСобытия, Параметр); ПодключитьОбработчикОжидания("Подключаемый_ВыполнитьОбработкуОповещения", 0.1, Истина); @@ -281,7 +285,7 @@ ПараметрыФормы.Вставить("Пользователь", ПользовательСсылка); ПараметрыФормы.Вставить("ТипДействия", "КопироватьВсе"); - ОткрытьФорму("Обработка.НастройкиПользователей.Форма.ВыборПользователей", ПараметрыФормы); + ВыбратьПользователей(ПараметрыФормы); КонецПроцедуры @@ -295,8 +299,7 @@ ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Пользователь", ПользовательСсылка); ПараметрыФормы.Вставить("ТипДействия", "КопироватьВсе"); - - ОткрытьФорму("Обработка.НастройкиПользователей.Форма.ВыборПользователей", ПараметрыФормы); + ВыбратьПользователей(ПараметрыФормы); КонецПроцедуры @@ -310,8 +313,7 @@ ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Пользователь", ПользовательСсылка); ПараметрыФормы.Вставить("ТипДействия", "КопироватьВсе"); - - ОткрытьФорму("Обработка.НастройкиПользователей.Форма.ВыборПользователей", ПараметрыФормы); + ВыбратьПользователей(ПараметрыФормы); КонецПроцедуры @@ -325,8 +327,7 @@ ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Пользователь", ПользовательСсылка); ПараметрыФормы.Вставить("ТипДействия", "КопироватьВсе"); - - ОткрытьФорму("Обработка.НастройкиПользователей.Форма.ВыборПользователей", ПараметрыФормы); + ВыбратьПользователей(ПараметрыФормы); КонецПроцедуры @@ -948,6 +949,14 @@ КонецПроцедуры +&НаКлиенте +Процедура ВыбратьПользователей(ПараметрыВыбора) + + ПараметрыВыбора.Вставить("Источник", ЭтотОбъект.ИмяФормы); + ОткрытьФорму("Обработка.НастройкиПользователей.Форма.ВыборПользователей", ПараметрыВыбора); + +КонецПроцедуры + &НаКлиенте Процедура ОчиститьНастройкиВыбраннымПользователямЗавершение(Ответ, ДополнительныеПараметры) Экспорт @@ -958,8 +967,7 @@ ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Пользователь", ПользовательСсылка); ПараметрыФормы.Вставить("ТипДействия", "Очистка"); - - ОткрытьФорму("Обработка.НастройкиПользователей.Форма.ВыборПользователей", ПараметрыФормы); + ВыбратьПользователей(ПараметрыФормы); КонецПроцедуры @@ -1236,8 +1244,7 @@ ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Пользователь", ПользовательСсылка); ПараметрыФормы.Вставить("ТипДействия", ""); - - ОткрытьФорму("Обработка.НастройкиПользователей.Форма.ВыборПользователей", ПараметрыФормы); + ВыбратьПользователей(ПараметрыФормы); КонецПроцедуры diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ОчисткаНастроекПользователей/Module.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ОчисткаНастроекПользователей/Module.bsl index 7abfbe32c..174ee28aa 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ОчисткаНастроекПользователей/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ОчисткаНастроекПользователей/Module.bsl @@ -24,6 +24,9 @@ Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Если ВРег(ИмяСобытия) = ВРег("ВыборПользователя") Тогда + Если Источник <> ЭтотОбъект.ИмяФормы Тогда + Возврат; + КонецЕсли; Если ПользователиКоторымОчищаютсяНастройки <> Неопределено Тогда Элементы.ВыбратьНастройки.Заголовок = НСтр("ru = 'Выбрать'"); @@ -175,6 +178,7 @@ ПараметрыФормы.Вставить("Пользователь", Пользователь); ПараметрыФормы.Вставить("ТипДействия", "Очистка"); ПараметрыФормы.Вставить("ВыбранныеПользователи", ВыбранныеПользователи); + ПараметрыФормы.Вставить("Источник", ЭтотОбъект.ИмяФормы); ОткрытьФорму("Обработка.НастройкиПользователей.Форма.ВыборПользователей", ПараметрыФормы); diff --git a/SSL/src/DataProcessors/НастройкиПользователей/ManagerModule.bsl b/SSL/src/DataProcessors/НастройкиПользователей/ManagerModule.bsl index f0190b263..732e0fc6b 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/ManagerModule.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/ManagerModule.bsl @@ -192,7 +192,7 @@ Результат = ПалитраСвойствСпискаНастроекФорм(); - СтрокаРезультата = Неопределено; + СтрокаРезультата = Неопределено; // СтрокаТаблицыЗначений: см. ПалитраСвойствСпискаНастроекФорм ОписаниеФормы = Неопределено; Настройки = ЧтениеНастроекИзХранилища(ХранилищеСистемныхНастроек, ИмяПользователя); @@ -801,10 +801,9 @@ // // Параметры: // ПользовательИсточник - Строка - имя пользователя информационной базы, от которого берутся настройки для копирования. -// ПользователиПриемник - Массив элементов ПользовательСсылка - пользователи, которым необходимо скопировать выбранные -// настройки. -// МассивНастроекДляКопирования - Массив - элемент массива - СписокЗначений, в котором содержатся ключи выбранных -// настроек. +// ПользователиПриемник - Массив из СправочникСсылка.Пользователи - пользователи, которым необходимо скопировать выбранные +// настройки. +// МассивНастроекДляКопирования - Массив из СписокЗначений - ключи выбранных настроек. // Процедура СкопироватьНастройкиВнешнегоВида(ПользовательИсточник, ПользователиПриемник, МассивНастроекДляКопирования) Экспорт @@ -1076,6 +1075,10 @@ // ПользовательИсточник - СправочникСсылка - пользователь, которого необходимо убрать из итоговой таблицы пользователей. // ТаблицаПользователей - ТаблицаЗначений - таблица, в которую записываются отобранные пользователи. // ПользовательВнешний - Булево - если Истина, то отбираются пользователи из справочника ВнешниеПользователи. +// Очистка - Булево +// +// Возвращаемое значение: +// ТаблицаЗначений // Функция ПользователиДляКопирования(ПользовательИсточник, ТаблицаПользователей, ПользовательВнешний, Очистка = Ложь) Экспорт @@ -1126,8 +1129,8 @@ | И &КромеПомеченныхНаУдаление | И &КромеСлужебныхПользователей | И Пользователи.Ссылка <> &ПользовательИсточник - | И НЕ(Пользователи.ИдентификаторПользователяИБ = &ПустойУникальныйИдентификатор - | И Пользователи.Ссылка <> &НеуказанныйПользователь)"; + | И НЕ (Пользователи.ИдентификаторПользователяИБ = &ПустойУникальныйИдентификатор + | И Пользователи.Ссылка <> &НеуказанныйПользователь)"; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&КромеПомеченныхНаУдаление", ?(Очистка, "Истина", "НЕ Пользователи.ПометкаУдаления")); @@ -1164,6 +1167,7 @@ КонецФункции + // Формирует дерево значений групп пользователей. // // Параметры: @@ -1359,9 +1363,9 @@ // ПользовательСсылка - СправочникСсылка.Пользователи - для которого нужно получить // имя пользователя информационной базы. // -// Возвращаемое значение -// - Неопределено - если Пользователь ИБ не найден. -// - Строка - имя пользователя информационной базы. +// Возвращаемое значение: +// Строка, Неопределено - имя пользователя информационной базы или неопределено, +// если Пользователь ИБ не найден. // Функция ИмяПользователяИБ(ПользовательСсылка) Экспорт @@ -2285,7 +2289,7 @@ // Добавляет настройки. // // Параметры: -// Параметры +// Параметры - Структура // ДеревоНастроек - ДеревоЗначений // Процедура ДобавитьНастройкиРабочегоСтолаИКомандногоИнтерфейса(Параметры, ДеревоНастроек) diff --git a/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/НастройкиЦентраМониторинга/Form.form b/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/НастройкиЦентраМониторинга/Form.form index 27acf30c1..019de9b9e 100644 --- a/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/НастройкиЦентраМониторинга/Form.form +++ b/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Forms/НастройкиЦентраМониторинга/Form.form @@ -187,10 +187,6 @@ <userVisible> <common>true</common> </userVisible> - <title> - <key>ru</key> - <value>Идентификатор</value> - ГруппаИдентификаторРасширеннаяПодсказка 28 @@ -283,10 +279,6 @@ true - - <key>ru</key> - <value>Состояние</value> - 1 СостояниеРасширеннаяПодсказка @@ -400,10 +392,6 @@ true - - <key>ru</key> - <value>Настройки отправки отчетов об ошибках</value> - ГруппаНастройкиОтправкиОтчетовОбОшибкахРасширеннаяПодсказка 39 diff --git a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаОбработчика/Module.bsl b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаОбработчика/Module.bsl index d5fb89a1a..9673092de 100644 --- a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаОбработчика/Module.bsl +++ b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/Forms/ФормаОбработчика/Module.bsl @@ -1094,7 +1094,7 @@ Возврат; КонецЕсли; - НоваяСтрока = Объект[ИмяТаблицы].Добавить(); + НоваяСтрока = Объект[ИмяТаблицы].Добавить(); // ДанныеФормыЭлементКоллекции - см. Обработка.ОписаниеОбработчиковОбновления.ЧитаемыеОбъекты НоваяСтрока.Ссылка = Объект.ОбработчикиОбновления[0].Ссылка; НоваяСтрока.ОбъектМетаданных = ОсновнойОбъектМетаданных; НоваяСтрока.ИндексКартинки = ИндексКартинки(ОсновнойОбъектМетаданных); diff --git a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/ManagerModule.bsl b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/ManagerModule.bsl index b850e54b5..7562c23f4 100644 --- a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/ManagerModule.bsl @@ -14,7 +14,7 @@ // а также заполняет переопределенные номера очереди у библиотечных обработчиков. // // Параметры: -// ИтерацииОбновления - Массив из см. ОбновлениеИнформационнойБазыСлужебный.ИтерацияОбновления +// ИтерацииОбновления - Массив из см. ОбновлениеИнформационнойБазыСлужебный.ИтерацияОбновления // Процедура ЗаполнитьНомерОчереди(ИтерацииОбновления) Экспорт diff --git a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/ObjectModule.bsl b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/ObjectModule.bsl index 5e20cf132..4e44751c8 100644 --- a/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ОписаниеОбработчиковОбновления/ObjectModule.bsl @@ -470,7 +470,7 @@ КонецЕсли; Если ИмяТабличнойЧасти <> "БлокируемыеОбъекты" ИЛИ НЕ ВзведенФлагБлокировки Тогда - ТабличнаяЧасть = ЭтотОбъект[ИмяТабличнойЧасти]; // ТабличнаяЧасть - + ТабличнаяЧасть = ЭтотОбъект[ИмяТабличнойЧасти]; // см. Обработка.ОписаниеОбработчиковОбновления.ЧитаемыеОбъекты НовоеОписание = ТабличнаяЧасть.Добавить(); НовоеОписание.Ссылка = СсылкаОбработчика; НовоеОписание.ОбъектМетаданных = СокрЛП(ИмяОбъекта); diff --git a/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/АвтоматическийЭкспортЗамеровПроизводительности/Module.bsl b/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/АвтоматическийЭкспортЗамеровПроизводительности/Module.bsl index 094f6f862..1129d187e 100644 --- a/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/АвтоматическийЭкспортЗамеровПроизводительности/Module.bsl +++ b/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/АвтоматическийЭкспортЗамеровПроизводительности/Module.bsl @@ -245,7 +245,7 @@ // Устанавливает новое расписание регламентному заданию. // // Параметры: -// НовоеРасписание - РасписаниеРегламентногоЗадания, которое надо установить. +// НовоеРасписание - РасписаниеРегламентногоЗадания - которое надо установить. // &НаСервереБезКонтекста Процедура УстановитьРасписание(Знач НовоеРасписание) diff --git a/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/ИсторияВыполнения/Form.form b/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/ИсторияВыполнения/Form.form index 6a312ff0e..1f587a3ce 100644 --- a/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/ИсторияВыполнения/Form.form +++ b/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/ИсторияВыполнения/Form.form @@ -263,10 +263,6 @@ true - - <key>ru</key> - <value>Параметры</value> - ГруппаПараметрыExtendedTooltip 30 @@ -362,10 +358,6 @@ История 16 - - <key>ru</key> - <value>История</value> - true true diff --git a/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/Форма/Form.form b/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/Форма/Form.form index 66d97c283..2e16c359d 100644 --- a/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/Форма/Form.form @@ -165,10 +165,6 @@ true - - <key>ru</key> - <value>Настройка периода</value> - НастройкаПериодаРасширеннаяПодсказка 100 @@ -318,10 +314,6 @@ true - - <key>ru</key> - <value>Настройка комментарий</value> - НастройкаКомментарийРасширеннаяПодсказка 102 @@ -382,10 +374,6 @@ Производительность 23 - - <key>ru</key> - <value>Производительность</value> - true true @@ -946,10 +934,6 @@ true - - <key>ru</key> - <value>Форма</value> - ФормаExtendedTooltip 81 diff --git a/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/Форма/Module.bsl index 61adf2a1b..9ab681048 100644 --- a/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ОценкаПроизводительности/Forms/Форма/Module.bsl @@ -801,7 +801,7 @@ // управляемую блокировку по значению ссылки. // // Параметры: -// Ссылка - ЛюбаяСсылка, ссылка, которую надо заблокировать. +// Ссылка - ЛюбаяСсылка - ссылка, которую надо заблокировать. // // Возвращаемое значение: // Объект - объект полученный из ссылки. @@ -820,7 +820,7 @@ // Фиксирует транзакцию и записывает объект. // // Параметры: -// Объект - ЛюбойОбъект, объект, изменения которого следует зафиксировать. +// Объект - Произвольный - объект, изменения которого следует зафиксировать. // Записывать - Булево - необходимость записи объекта перед фиксацией транзакции. // &НаСервереБезКонтекста diff --git a/SSL/src/DataProcessors/ОценкаПроизводительности/ObjectModule.bsl b/SSL/src/DataProcessors/ОценкаПроизводительности/ObjectModule.bsl index 11b420683..a59f8cabb 100644 --- a/SSL/src/DataProcessors/ОценкаПроизводительности/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ОценкаПроизводительности/ObjectModule.bsl @@ -50,19 +50,19 @@ // // Параметры: // ПараметрыВычисления - Структура: -// * ШагЧисло - Число - размер шага в секундах. -// * КоличествоШагов - Число - количество шагов в периоде. -// * ДатаНачала - Дата - дата начала замеров. -// * ДатаОкончания - Дата - дата окончания замеров. -// * ТаблицаКлючевыхОпераций - ТаблицаЗначений - содержит данные для выбора. Колонки: -// ** КлючеваяОперация - СправочникСсылка.КлючевыеОперации - ключевая операция. -// ** НомерСтроки - Число - приоритет ключевой операции. -// ** Целевое время - Число - целевое время ключевой операции. -// * ВыводитьИтоги - Булево +// * ШагЧисло - Число - размер шага в секундах. +// * КоличествоШагов - Число - количество шагов в периоде. +// * ДатаНачала - Дата - дата начала замеров. +// * ДатаОкончания - Дата - дата окончания замеров. +// * ТаблицаКлючевыхОпераций - ТаблицаЗначений - содержит данные для выбора. Колонки: +// ** КлючеваяОперация - СправочникСсылка.КлючевыеОперации - ключевая операция. +// ** НомерСтроки - Число - приоритет ключевой операции. +// ** Целевое время - Число - целевое время ключевой операции. +// * ВыводитьИтоги - Булево // // Возвращаемое значение: // ТаблицаЗначений - в таблице возвращается ключевая операция и -// показатель производительности за определенный период времени. +// показатель производительности за определенный период времени. // Функция ВычислитьAPDEX(ПараметрыВычисления) Экспорт Запрос = Новый Запрос; @@ -278,15 +278,15 @@ // // Возвращаемое значение: // Структура: -// ШагЧисло - Число - указывается размер шага в секундах. -// КоличествоШагов - Число - количество шагов в периоде. -// ДатаНачала - Дата - дата начала замеров. -// ДатаОкончания - Дата - дата окончания замеров. -// ТаблицаКлючевыхОпераций - ТаблицаЗначений: -// КлючеваяОперация - СправочникСсылка.КлючевыеОперации, ключевая операция. -// НомерСтроки - Число - приоритет ключевой операции. -// ЦелевоеВремя - Число - целевое время ключевой операции. -// ВыводитьИтоги - Булево, +// ШагЧисло - Число - указывается размер шага в секундах. +// КоличествоШагов - Число - количество шагов в периоде. +// ДатаНачала - Дата - дата начала замеров. +// ДатаОкончания - Дата - дата окончания замеров. +// ТаблицаКлючевыхОпераций - ТаблицаЗначений: +// КлючеваяОперация - СправочникСсылка.КлючевыеОперации, ключевая операция. +// НомерСтроки - Число - приоритет ключевой операции. +// ЦелевоеВремя - Число - целевое время ключевой операции. +// ВыводитьИтоги - Булево, // Истина, вычислять итоговую производительность // Ложь, не вычислять итоговую производительность. // diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Form.form index bdbc8cb80..caa20cb8a 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Form.form @@ -71,10 +71,6 @@ true - - <key>ru</key> - <value>Справка</value> - ГруппаСправкаExtendedTooltip 1603 @@ -95,10 +91,6 @@ true - - <key>ru</key> - <value>Заголовок</value> - ГруппаЗаголовокExtendedTooltip 1600 @@ -201,10 +193,6 @@ true - - <key>ru</key> - <value>Подключение ИПП</value> - ru Подключение к Интернет-поддержке пользователей @@ -273,10 +261,6 @@ true - - <key>ru</key> - <value>Настройки Интернет-поддержки левая колонка</value> - 43 false @@ -334,10 +318,6 @@ true - - <key>ru</key> - <value>Настройки Интернет-поддержки правая колонка</value> - 43 false @@ -365,10 +345,6 @@ true - - <key>ru</key> - <value>Настройки ИПП колонки</value> - ГруппаНастройкиИППКолонкиРасширеннаяПодсказка 1732 @@ -617,10 +593,6 @@ true - - <key>ru</key> - <value>Классификаторы предупреждения</value> - ГруппаКлассификаторыПредупрежденияРасширеннаяПодсказка 1908 @@ -646,10 +618,6 @@ true - - <key>ru</key> - <value>Настройка обновления</value> - ГруппаНастройкаОбновленияРасширеннаяПодсказка 1903 @@ -878,10 +846,6 @@ true - - <key>ru</key> - <value>Адресный классификатор настройки</value> - 43 false @@ -943,10 +907,6 @@ true - - <key>ru</key> - <value>Обработка загрузка курсов валют</value> - 43 false @@ -974,10 +934,6 @@ true - - <key>ru</key> - <value>Классификаторы БСП</value> - КлассификаторыБСПРасширеннаяПодсказка 1897 @@ -1091,10 +1047,6 @@ true - - <key>ru</key> - <value>Включение новостей</value> - true 43 false @@ -1155,10 +1107,6 @@ true - - <key>ru</key> - <value>Настройки новостей</value> - false ГруппаНастройкиНовостейРасширеннаяПодсказка @@ -1258,10 +1206,6 @@ true - - <key>ru</key> - <value>Обновление левая колонка</value> - 43 false @@ -1359,10 +1303,6 @@ true - - <key>ru</key> - <value>Открыть описание изменений системы</value> - false ГруппаОткрытьОписаниеИзмененийСистемыExtendedTooltip @@ -1389,10 +1329,6 @@ true - - <key>ru</key> - <value>Обновление правая колонка</value> - false ГруппаОбновлениеПраваяКолонкаРасширеннаяПодсказка @@ -1419,10 +1355,6 @@ true - - <key>ru</key> - <value>Обновление колонки</value> - ГруппаОбновлениеКолонкиРасширеннаяПодсказка 1758 @@ -1596,10 +1528,6 @@ true - - <key>ru</key> - <value>Расписание проверки обновлений</value> - true ГруппаРасписаниеПроверкиОбновленийРасширеннаяПодсказка @@ -1626,10 +1554,6 @@ true - - <key>ru</key> - <value>Обновление программы настройки</value> - Style.FormTextColor @@ -1714,10 +1638,6 @@ true - - <key>ru</key> - <value>Настройка исправления патчи</value> - 43 ГруппаНастройкаИсправленияПатчиРасширеннаяПодсказка @@ -1785,10 +1705,6 @@ true - - <key>ru</key> - <value>Обновление программы Исправления</value> - Style.FormTextColor @@ -1862,10 +1778,6 @@ true - - <key>ru</key> - <value>Отложенная обработка данных</value> - 43 false @@ -1943,10 +1855,6 @@ true - - <key>ru</key> - <value>Детализировать обновление ИБ в журнале регистрации</value> - false ГруппаДетализироватьОбновлениеИБВЖурналеРегистрацииExtendedTooltip @@ -1973,10 +1881,6 @@ true - - <key>ru</key> - <value>Обновление и описание изменений вторая строка</value> - ГруппаОбновлениеИОписаниеИзмененийВтораяСтрокаРасширеннаяПодсказка 1786 @@ -2133,10 +2037,6 @@ true - - <key>ru</key> - <value>Левая колонка первой группы</value> - 43 false @@ -2231,10 +2131,6 @@ true - - <key>ru</key> - <value>Правая колонка первой группы</value> - 43 false @@ -2489,10 +2385,6 @@ true - - <key>ru</key> - <value>Подключение обсуждений</value> - 43 false @@ -2638,10 +2530,6 @@ true - - <key>ru</key> - <value>Разрешение на вызов онлайн поддержки</value> - 43 false @@ -2703,10 +2591,6 @@ true - - <key>ru</key> - <value>Настройка онлайн поддержки</value> - 43 false @@ -2822,10 +2706,6 @@ true - - <key>ru</key> - <value>Разрешение склонения</value> - 43 false @@ -2887,10 +2767,6 @@ true - - <key>ru</key> - <value>Настройка склонения</value> - 43 false @@ -3081,10 +2957,6 @@ true - - <key>ru</key> - <value>Переключатель</value> - ГруппаПереключательРасширеннаяПодсказка 1671 @@ -3175,10 +3047,6 @@ true - - <key>ru</key> - <value>Переключатель</value> - ГруппаНастройкиОтправкиОтчетовОбОшибкахРасширеннаяПодсказка 1843 @@ -3269,10 +3137,6 @@ true - - <key>ru</key> - <value>Переключатель</value> - ГруппаОтправитьКонтактнуюИнформациюРасширеннаяПодсказка 1848 @@ -3298,10 +3162,6 @@ true - - <key>ru</key> - <value>Настройка автоматической отправки сведений об использовании программы</value> - ГруппаРазрешитьОтправлятьДанныеРасширеннаяПодсказка 1666 @@ -3413,10 +3273,6 @@ true - - <key>ru</key> - <value>Переключатель</value> - ГруппаСтороннемуРасширеннаяПодсказка 1833 @@ -3525,10 +3381,6 @@ true - - <key>ru</key> - <value>Отправки данных настройка ресурса общая</value> - ГруппаОтправкиДанныхНастройкаРесурсаОбщаяРасширеннаяПодсказка 1679 @@ -3638,10 +3490,6 @@ true - - <key>ru</key> - <value>Запретить отправлять данные</value> - ГруппаЗапретитьОтправлятьДанныеРасширеннаяПодсказка 1687 @@ -3747,10 +3595,6 @@ true - - <key>ru</key> - <value>Управление внешними компонентами</value> - 43 false @@ -3929,10 +3773,6 @@ true - - <key>ru</key> - <value>Сервис коннект</value> - 43 БИПГруппаСервисКоннектРасширеннаяПодсказка @@ -3998,10 +3838,6 @@ true - - <key>ru</key> - <value>БИП группа настройка коннект</value> - БИПГруппаНастройкаКоннектРасширеннаяПодсказка 1933 diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Module.bsl index 677d6527a..5b3e93ee7 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Module.bsl @@ -380,8 +380,8 @@ Процедура БИПФайлКлассификаторовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда - МодульПолучениеРаботаСКлассификаторамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); - МодульПолучениеРаботаСКлассификаторамиКлиент.ИнтернетПоддержкаИСервисы_БИПФайлКлассификаторовНачалоВыбора( + МодульРаботаСКлассификаторамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); + МодульРаботаСКлассификаторамиКлиент.ИнтернетПоддержкаИСервисы_БИПФайлКлассификаторовНачалоВыбора( ЭтотОбъект, Элемент, ДанныеВыбора, @@ -394,8 +394,8 @@ Процедура БИПВариантОбновленияКлассификаторовПриИзменении(Элемент) Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда - МодульПолучениеРаботаСКлассификаторамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); - МодульПолучениеРаботаСКлассификаторамиКлиент.ИнтернетПоддержкаИСервисы_БИПВариантОбновленияКлассификаторовПриИзменении( + МодульРаботаСКлассификаторамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); + МодульРаботаСКлассификаторамиКлиент.ИнтернетПоддержкаИСервисы_БИПВариантОбновленияКлассификаторовПриИзменении( ЭтотОбъект, Элемент); КонецЕсли; @@ -406,9 +406,9 @@ Процедура ДекорацияРасписаниеОбновленияКлассификаторовНажатие(Элемент) Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда - МодульПолучениеОбновленийПрограммыКлиент = + МодульРаботаСКлассификаторамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); - МодульПолучениеОбновленийПрограммыКлиент.ИнтернетПоддержкаИСервисы_ДекорацияРасписаниеОбновленияКлассификаторовНажатие( + МодульРаботаСКлассификаторамиКлиент.ИнтернетПоддержкаИСервисы_ДекорацияРасписаниеОбновленияКлассификаторовНажатие( ЭтотОбъект, Элемент); КонецЕсли; @@ -512,8 +512,8 @@ Процедура БИПОбновлениеКлассификаторов(Команда) Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда - МодульПолучениеРаботаСКлассификаторамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); - МодульПолучениеРаботаСКлассификаторамиКлиент.ИнтернетПоддержкаИСервисы_ОбновлениеКлассификаторов( + МодульРаботаСКлассификаторамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); + МодульРаботаСКлассификаторамиКлиент.ИнтернетПоддержкаИСервисы_ОбновлениеКлассификаторов( ЭтотОбъект, Команда); КонецЕсли; @@ -524,8 +524,8 @@ Процедура БИПФайлКлассификаторовПриИзменении(Элемент) Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда - МодульПолучениеРаботаСКлассификаторамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); - МодульПолучениеРаботаСКлассификаторамиКлиент.ИнтернетПоддержкаИСервисы_БИПФайлКлассификаторовПриИзменении( + МодульРаботаСКлассификаторамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); + МодульРаботаСКлассификаторамиКлиент.ИнтернетПоддержкаИСервисы_БИПФайлКлассификаторовПриИзменении( ЭтотОбъект, Элемент); КонецЕсли; @@ -536,8 +536,8 @@ Процедура БИПДекорацияОбновлениеКлассификаторовНеВыполняетсяОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда - МодульПолучениеРаботаСКлассификаторамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); - МодульПолучениеРаботаСКлассификаторамиКлиент.ИнтернетПоддержкаИСервисы_БИПДекорацияОбновлениеКлассификаторовНеВыполняетсяОбработкаНавигационнойСсылки( + МодульРаботаСКлассификаторамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); + МодульРаботаСКлассификаторамиКлиент.ИнтернетПоддержкаИСервисы_БИПДекорацияОбновлениеКлассификаторовНеВыполняетсяОбработкаНавигационнойСсылки( ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Form.form index 92102167d..b2c81c629 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Form.form @@ -72,10 +72,6 @@ true - - <key>ru</key> - <value>Справка</value> - ГруппаСправкаExtendedTooltip 2040 @@ -96,10 +92,6 @@ true - - <key>ru</key> - <value>Заголовок</value> - ГруппаЗаголовокExtendedTooltip 2037 @@ -210,10 +202,6 @@ true - - <key>ru</key> - <value>Пользователи и группы</value> - 43 false @@ -239,6 +227,38 @@ НастройкиВходаИОтчетПоПравам 2241 + + ВосстановлениеПаролей + 2243 + true + true + + true + + + ВосстановлениеПаролейРасширеннаяПодсказка + 2244 + + <key>ru</key> + <value>Помощь при входе, восстановление паролей пользователей</value> + + Label + true + true + + Left + + + Hyperlink + CommonForm.ВосстановлениеПаролей.StandardCommand.Open + Normal + Auto + true + true + UserCmds + ShowBottom + Auto + ГруппаНастройкиВходаПользователей 2142 @@ -283,10 +303,6 @@ true - - <key>ru</key> - <value>Настройки входа пользователей</value> - 43 false @@ -346,10 +362,6 @@ true - - <key>ru</key> - <value>Настройки входа и отчет по правам</value> - НастройкиВходаИОтчетПоПравамРасширеннаяПодсказка 2242 @@ -461,10 +473,6 @@ true - - <key>ru</key> - <value>Использовать внешних пользователей</value> - 43 false @@ -564,10 +572,6 @@ true - - <key>ru</key> - <value>Список внешних пользователей</value> - 41 false @@ -634,10 +638,6 @@ true - - <key>ru</key> - <value>Настройки входа внешних пользователей</value> - 43 false @@ -665,10 +665,6 @@ true - - <key>ru</key> - <value>Внешние пользователи и настройки входа</value> - false ГруппаВнешниеПользователиИНастройкиВходаРасширеннаяПодсказка @@ -811,10 +807,6 @@ true - - <key>ru</key> - <value>Группы доступа и ограничение на уровне записей</value> - 43 false @@ -986,10 +978,6 @@ true - - <key>ru</key> - <value>Профили групп доступа</value> - 43 false @@ -1017,10 +1005,6 @@ true - - <key>ru</key> - <value>Группы доступа, профили и ограничение на уровне записей</value> - ГруппаГруппыДоступаПрофилиИОграничениеНаУровнеЗаписейРасширеннаяПодсказка 2049 @@ -1119,10 +1103,6 @@ true - - <key>ru</key> - <value>Копирование настроек пользователей</value> - 43 false @@ -1184,10 +1164,6 @@ true - - <key>ru</key> - <value>Настройки пользователей</value> - 43 false @@ -1215,10 +1191,6 @@ true - - <key>ru</key> - <value>Работа с настройками пользователей</value> - ГруппаРаботаСНастройкамиПользователейРасширеннаяПодсказка 2060 @@ -1279,10 +1251,6 @@ true - - <key>ru</key> - <value>Очистка настроек пользователей</value> - 43 false @@ -1431,10 +1399,6 @@ true - - <key>ru</key> - <value>Даты запрета изменения использование</value> - ru Запрет изменения данных прошлых периодов. @@ -1541,10 +1505,6 @@ true - - <key>ru</key> - <value>Открыть настройки регистрации событий доступа к персональным данным</value> - 43 false @@ -1707,10 +1667,6 @@ true - - <key>ru</key> - <value>Дней до скрытия</value> - ru Причиной скрытия данных может быть истечение срока действия согласия субъекта или его отсутствие. @@ -1742,10 +1698,6 @@ true - - <key>ru</key> - <value>Скрытие персональных данных использование</value> - ГруппаСкрытиеПерсональныхДанныхИспользованиеРасширеннаяПодсказка 2224 @@ -1771,10 +1723,6 @@ true - - <key>ru</key> - <value>Настройки защиты персональных данных</value> - ГруппаНастройкиЗащитыПерсональныхДанныхРасширеннаяПодсказка 2222 @@ -1835,10 +1783,6 @@ true - - <key>ru</key> - <value>Обработка защита персональных данных</value> - 43 false diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Module.bsl index 8871469fa..103531ec8 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Module.bsl @@ -30,7 +30,7 @@ Или СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации() Или ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Или Не ПользователиСлужебный.ВнешниеПользователиВнедрены() Тогда - + Элементы.ГруппаВнешниеПользователи.Видимость = Ложь; Элементы.ОписаниеРаздела.Заголовок = НСтр("ru = 'Администрирование пользователей, настройка групп доступа, управление пользовательскими настройками.'"); @@ -72,6 +72,11 @@ Элементы.ГруппаЗащитаПерсональныхДанных.Видимость = Ложь; КонецЕсли; + Если ОбщегоНазначения.РазделениеВключено() + Или Не ПользователиСлужебныйКлиентСервер.ВерсияПредприятияПоддерживаетВосстановлениеПаролей() Тогда + Элементы.ВосстановлениеПаролей.Видимость = Ложь; + КонецЕсли; + // Обновление состояния элементов. УстановитьДоступность(); diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Form.form index 331e63714..88424f3d6 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Form.form @@ -70,10 +70,6 @@ true - - <key>ru</key> - <value>Справка</value> - ГруппаСправкаExtendedTooltip 2047 @@ -94,10 +90,6 @@ true - - <key>ru</key> - <value>Заголовок</value> - ГруппаЗаголовокExtendedTooltip 2044 @@ -208,10 +200,6 @@ true - - <key>ru</key> - <value>Способ хранения файлов</value> - 43 false @@ -269,10 +257,6 @@ true - - <key>ru</key> - <value>Перенос файлов</value> - ГруппаПереносФайловРасширеннаяПодсказка 2154 @@ -298,10 +282,6 @@ true - - <key>ru</key> - <value>Управление хранением файлов</value> - УправлениеХранениемФайловРасширеннаяПодсказка 2147 @@ -398,10 +378,6 @@ true - - <key>ru</key> - <value>Справочник тома хранения файлов</value> - 40 ГруппаСправочникТомаХраненияФайловExtendedTooltip @@ -474,10 +450,6 @@ true - - <key>ru</key> - <value>Хранить файлы в томах в разрезе владельца</value> - false ГруппаХранитьФайлыВТомахВРазрезеВладельцаРасширеннаяПодсказка @@ -504,10 +476,6 @@ true - - <key>ru</key> - <value>Управление томами файлов</value> - ГруппаУправлениеТомамиФайловExtendedTooltip 2049 @@ -665,10 +633,6 @@ true - - <key>ru</key> - <value>Управление расширениями файлов в ИБ</value> - ГруппаУправлениеРасширениямиФайловВИБРасширеннаяПодсказка 2162 @@ -819,10 +783,6 @@ true - - <key>ru</key> - <value>Размер файлов в ИБ</value> - ShowBottom ГруппаРазмерФайловВИБРасширеннаяПодсказка @@ -852,10 +812,6 @@ true - - <key>ru</key> - <value>Управление размером файлов в ИБ</value> - ГруппаУправлениеРазмеромФайловВИБРасширеннаяПодсказка 2181 @@ -1010,10 +966,6 @@ true - - <key>ru</key> - <value>Расширение</value> - ShowBottom ГруппаРасширениеExtendedTooltip @@ -1046,10 +998,6 @@ true - - <key>ru</key> - <value>Управление загрузкой файлов</value> - ГруппаУправлениеЗагрузкойФайловExtendedTooltip 2056 @@ -1166,10 +1114,6 @@ true - - <key>ru</key> - <value>Размер</value> - ShowBottom ГруппаРазмерExtendedTooltip @@ -1199,10 +1143,6 @@ true - - <key>ru</key> - <value>Максимальный размер файла области данных</value> - 43 ГруппаМаксимальныйРазмерФайлаОбластиДанныхExtendedTooltip @@ -1269,10 +1209,6 @@ true - - <key>ru</key> - <value>Настройка очистки файлов</value> - ГруппаНастройкаОчисткиФайловРасширеннаяПодсказка 2106 @@ -1298,10 +1234,6 @@ true - - <key>ru</key> - <value>Управление файлами</value> - false ГруппаУправлениеФайламиРасширеннаяПодсказка @@ -1422,10 +1354,6 @@ true - - <key>ru</key> - <value>Список расширений файлов open document области данных</value> - ShowBottom ГруппаСписокРасширенийФайловOpenDocumentОбластиДанныхExtendedTooltip @@ -1540,10 +1468,6 @@ true - - <key>ru</key> - <value>Список расширений текстовых файлов</value> - ГруппаСписокРасширенийТекстовыхФайловExtendedTooltip 2069 @@ -1568,10 +1492,6 @@ true - - <key>ru</key> - <value>Список расширений файлов</value> - ГруппаСписокРасширенийФайловРасширеннаяПодсказка 2130 @@ -1646,10 +1566,6 @@ true - - <key>ru</key> - <value>Синхронизация файлов</value> - 43 ГруппаСинхронизацияФайловРасширеннаяПодсказка @@ -1715,10 +1631,6 @@ true - - <key>ru</key> - <value>Настройки синхронизации файлов</value> - ГруппаНастройкиСинхронизацииФайловРасширеннаяПодсказка 2118 @@ -1744,10 +1656,6 @@ true - - <key>ru</key> - <value>Синхронизация файлов с облачными сервисами</value> - false ГруппаСинхронизацияФайловСОблачнымиСервисамиРасширеннаяПодсказка @@ -1903,10 +1811,6 @@ true - - <key>ru</key> - <value>Группа размер</value> - ShowBottom ГруппаРазмер1ExtendedTooltip @@ -1936,10 +1840,6 @@ true - - <key>ru</key> - <value>Максимальный размер файла</value> - ГруппаМаксимальныйРазмерФайлаExtendedTooltip 2085 @@ -2058,10 +1958,6 @@ true - - <key>ru</key> - <value>Список запрещенных расширений</value> - ShowBottom ГруппаСписокЗапрещенныхРасширенийExtendedTooltip @@ -2176,10 +2072,6 @@ true - - <key>ru</key> - <value>Список расширений файлов open document</value> - ГруппаСписокРасширенийФайловOpenDocumentExtendedTooltip 2093 @@ -2205,10 +2097,6 @@ true - - <key>ru</key> - <value>Список расширений</value> - ГруппаСписокРасширенийРасширеннаяПодсказка 2132 @@ -2265,10 +2153,6 @@ true - - <key>ru</key> - <value>Отступ 1</value> - ГруппаОтступ1ExtendedTooltip 2082 diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Form.form index 2d7b698cf..3d299855c 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Form.form @@ -71,10 +71,6 @@ true - - <key>ru</key> - <value>Справка</value> - ГруппаСправкаExtendedTooltip 1635 @@ -95,10 +91,6 @@ true - - <key>ru</key> - <value>Заголовок</value> - ГруппаЗаголовокExtendedTooltip 1632 @@ -235,10 +227,6 @@ true - - <key>ru</key> - <value>Частотный сервис</value> - ГруппаЧастотныйСервисExtendedTooltip 1637 @@ -301,10 +289,6 @@ true - - <key>ru</key> - <value>Отчеты администратора</value> - 43 false @@ -374,10 +358,6 @@ true - - <key>ru</key> - <value>Дополнительные отчеты по администрированию</value> - 43 false @@ -443,10 +423,6 @@ true - - <key>ru</key> - <value>Дополнительные обработки по администрированию</value> - 43 false @@ -474,10 +450,6 @@ true - - <key>ru</key> - <value>Дополнительные отчеты и обработки</value> - ГруппаДополнительныеОтчетыИОбработкиРасширеннаяПодсказка 1731 @@ -577,10 +549,6 @@ true - - <key>ru</key> - <value>Обработка регламентные и фоновые задания</value> - 43 false @@ -642,10 +610,6 @@ true - - <key>ru</key> - <value>Блокировка работы с внешними ресурсами</value> - 43 false @@ -673,10 +637,6 @@ true - - <key>ru</key> - <value>Регламентные задания</value> - ГруппаРегламентныеЗаданияРасширеннаяПодсказка 1643 @@ -738,10 +698,6 @@ true - - <key>ru</key> - <value>Обработка управление итогами и агрегатами открыть</value> - 43 false @@ -867,10 +823,6 @@ true - - <key>ru</key> - <value>Выбор способа резервного копирования</value> - true true @@ -980,10 +932,6 @@ true - - <key>ru</key> - <value>Резервного копирования</value> - 43 false @@ -1045,10 +993,6 @@ true - - <key>ru</key> - <value>Настройка резервного копирования</value> - 43 false @@ -1076,10 +1020,6 @@ true - - <key>ru</key> - <value>На локальном компьютере</value> - ГруппаНаЛокальномКомпьютереРасширеннаяПодсказка 2124 @@ -1181,10 +1121,6 @@ true - - <key>ru</key> - <value>Необходимо отключить облачный архив</value> - 86 false @@ -1356,10 +1292,6 @@ true - - <key>ru</key> - <value>Прогресс проверки облачного архива</value> - true ГруппаПрогрессПроверкиОблачногоАрхиваРасширеннаяПодсказка @@ -1486,10 +1418,6 @@ true - - <key>ru</key> - <value>Сервис облачный архив не подключен</value> - ГруппаСервисОблачныйАрхивНеПодключенРасширеннаяПодсказка 2163 @@ -1751,10 +1679,6 @@ true - - <key>ru</key> - <value>Группа резервное копирование программы</value> - 43 false @@ -1861,10 +1785,6 @@ true - - <key>ru</key> - <value>Группа восстановление резервной копии</value> - 43 false @@ -1892,10 +1812,6 @@ true - - <key>ru</key> - <value>Облачный архив сохранение восстановление</value> - ГруппаОблачныйАрхивСохранениеВосстановлениеРасширеннаяПодсказка 2183 @@ -2001,10 +1917,6 @@ true - - <key>ru</key> - <value>Группа настройка резервного копирования</value> - 43 false @@ -2158,10 +2070,6 @@ true - - <key>ru</key> - <value>Страницы состояний облачный архив</value> - true СтраницыСостоянийОблачныйАрхивРасширеннаяПодсказка @@ -2209,10 +2117,6 @@ true - - <key>ru</key> - <value>Резервное копирование и восстановление</value> - СтраницыРезервноеКопированиеИВосстановлениеРасширеннаяПодсказка 2120 @@ -2339,10 +2243,6 @@ true - - <key>ru</key> - <value>Обработка групповое изменение объектов</value> - 43 false @@ -2404,10 +2304,6 @@ true - - <key>ru</key> - <value>Поиск и удаление дублей</value> - 43 false @@ -2513,10 +2409,6 @@ true - - <key>ru</key> - <value>Установка обновлений</value> - 43 false @@ -2583,10 +2475,6 @@ true - - <key>ru</key> - <value>Установленные исправления</value> - ГруппаУстановленныеИсправленияРасширеннаяПодсказка 2228 @@ -2612,10 +2500,6 @@ true - - <key>ru</key> - <value>Обновление и описание изменений первая строка</value> - ГруппаОбновлениеИОписаниеИзмененийПерваяСтрокаРасширеннаяПодсказка 2044 @@ -2678,10 +2562,6 @@ true - - <key>ru</key> - <value>Отложенная обработка данных</value> - 43 false @@ -2744,10 +2624,6 @@ true - - <key>ru</key> - <value>Открыть описание изменений системы</value> - 43 false @@ -2775,10 +2651,6 @@ true - - <key>ru</key> - <value>Обновление и описание изменений вторая строка</value> - ГруппаОбновлениеИОписаниеИзмененийВтораяСтрокаРасширеннаяПодсказка 2060 @@ -2963,10 +2835,6 @@ true - - <key>ru</key> - <value>Приоритет</value> - ГруппаПриоритетРасширеннаяПодсказка 2238 @@ -2992,10 +2860,6 @@ true - - <key>ru</key> - <value>Настройка приоритета обновления</value> - ShowBottom 43 @@ -3077,10 +2941,6 @@ true - - <key>ru</key> - <value>Детализировать обновление ИБ в журнале регистрации</value> - 43 false @@ -3108,10 +2968,6 @@ true - - <key>ru</key> - <value>Результаты обновления программы третья строка</value> - ГруппаРезультатыОбновленияПрограммыТретьяСтрокаРасширеннаяПодсказка 2224 @@ -3255,10 +3111,6 @@ true - - <key>ru</key> - <value>Выполнять замеры производительности</value> - 43 false @@ -3397,10 +3249,6 @@ true - - <key>ru</key> - <value>Обработка оценка производительности</value> - 43 false diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Module.bsl index beef97301..e04f96ee1 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Module.bsl @@ -75,13 +75,6 @@ КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда - МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации"); - Элементы.ГруппаУстановкаОбновлений.Видимость = - Пользователи.ЭтоПолноправныйПользователь(, Истина) - И Не ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() - И Не ОбщегоНазначения.РазделениеВключено() - И Не ОбщегоНазначения.КлиентПодключенЧерезВебСервер() - И ОбщегоНазначения.ЭтоWindowsКлиент(); Элементы.ГруппаУстановленныеИсправления.Видимость = Пользователи.ЭтоПолноправныйПользователь(); diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Form.form index ac80ef3e2..5de849da9 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Form.form @@ -71,10 +71,6 @@ true - - <key>ru</key> - <value>Справка</value> - Right ГруппаСправкаExtendedTooltip @@ -96,10 +92,6 @@ true - - <key>ru</key> - <value>Заголовок</value> - ГруппаЗаголовокExtendedTooltip 1829 @@ -205,10 +197,6 @@ true - - <key>ru</key> - <value>Настройки программы</value> - ГруппаНастройкиПрограммыРасширеннаяПодсказка 1834 @@ -481,10 +469,6 @@ true - - <key>ru</key> - <value>Открыть параметры прокси сервера</value> - 43 false @@ -546,10 +530,6 @@ true - - <key>ru</key> - <value>Настройка использования профилей безопасности</value> - ru Группа открыть параметры прокси сервера @@ -681,10 +661,6 @@ true - - <key>ru</key> - <value>Настройка прокси сервера на сервере недоступна при использовании профилей безопасности</value> - ГруппаНастройкаПроксиСервераНаСервереНедоступнаПриИспользованииПрофилейБезопасностиРасширеннаяПодсказка 1942 @@ -868,10 +844,6 @@ true - - <key>ru</key> - <value>Использовать дополнительные реквизиты и сведения</value> - 43 false @@ -937,10 +909,6 @@ true - - <key>ru</key> - <value>Дополнительные реквизиты</value> - ГруппаДополнительныеРеквизитыExtendedTooltip 1859 @@ -1001,10 +969,6 @@ true - - <key>ru</key> - <value>Дополнительные сведения</value> - ГруппаДополнительныеСведенияExtendedTooltip 1862 @@ -1030,10 +994,6 @@ true - - <key>ru</key> - <value>Дополнительные реквизиты или сведения</value> - 43 false @@ -1167,10 +1127,6 @@ true - - <key>ru</key> - <value>Использовать версионирование объектов</value> - ru Хранение и просмотр версий документов и справочников программы. @@ -1310,10 +1266,6 @@ true - - <key>ru</key> - <value>Полнотекстовый поиск</value> - ru Управление поиском в документах, файлах, отчетах. @@ -1471,10 +1423,6 @@ true - - <key>ru</key> - <value>Горизонтальная группа</value> - ShowBottom ГоризонтальнаяГруппаРасширеннаяПодсказка @@ -1505,10 +1453,6 @@ true - - <key>ru</key> - <value>Использовать электронную подпись и шифрование</value> - 43 false @@ -1570,10 +1514,6 @@ true - - <key>ru</key> - <value>Настройки электронной подписи и шифрования</value> - 43 false @@ -1713,10 +1653,6 @@ true - - <key>ru</key> - <value>Регламентное удаление помеченных</value> - ShowBottom Группа2РасширеннаяПодсказка1 @@ -1807,10 +1743,6 @@ true - - <key>ru</key> - <value>Просмотр помеченных на удаление</value> - ru Открыть рабочее место для удаления помеченных diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Module.bsl index cd8ac3b30..aae618d93 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Module.bsl @@ -78,6 +78,8 @@ Элементы.ГруппаУдалениеПомеченных.Видимость = Ложь; КонецЕсли; + Элементы.РегиональныеНастройки.Видимость = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность"); + УстановитьДоступность(); НастройкиПрограммыПереопределяемый.ОбщиеНастройкиПриСозданииНаСервере(ЭтотОбъект); @@ -248,8 +250,14 @@ &НаКлиенте Процедура РегиональныеНастройки(Команда) + ПараметрыФормы = Новый Структура("Источник", "ПанельАдминистрированияБСП"); - ОткрытьФорму("ОбщаяФорма.РегиональныеНастройки", ПараметрыФормы); + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент"); + МодульМультиязычностьКлиент.ОткрытьФормуРегиональныхНастроек(, ПараметрыФормы); + КонецЕсли; + КонецПроцедуры &НаКлиенте diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Form.form index 79d275c22..a4299a2ba 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Form.form @@ -71,10 +71,6 @@ true - - <key>ru</key> - <value>Справка</value> - ГруппаСправкаExtendedTooltip 1641 @@ -95,10 +91,6 @@ true - - <key>ru</key> - <value>Заголовок</value> - ГруппаЗаголовокExtendedTooltip 1638 @@ -182,10 +174,6 @@ true - - <key>ru</key> - <value>Использовать почтовый клиент</value> - 43 false @@ -262,10 +250,6 @@ true - - <key>ru</key> - <value>Отправлять письма в формате HTML</value> - 43 false @@ -371,10 +355,6 @@ true - - <key>ru</key> - <value>Использовать прочие взаимодействия</value> - 43 false @@ -452,10 +432,6 @@ true - - <key>ru</key> - <value>Использовать признак рассмотрено</value> - 43 false @@ -555,10 +531,6 @@ true - - <key>ru</key> - <value>Безопасность почты</value> - БезопасностьПочтыРасширеннаяПодсказка 1806 @@ -648,10 +620,6 @@ true - - <key>ru</key> - <value>Открыть настройки системной учетной записи ЭП</value> - 43 false @@ -713,10 +681,6 @@ true - - <key>ru</key> - <value>Открыть учетные записи электронной почты</value> - 43 false @@ -927,10 +891,6 @@ true - - <key>ru</key> - <value>Использовать заметки</value> - 43 false @@ -1007,10 +967,6 @@ true - - <key>ru</key> - <value>Использовать напоминания пользователя</value> - 43 false @@ -1038,10 +994,6 @@ true - - <key>ru</key> - <value>Заметки напоминания</value> - ГруппаЗаметкиНапоминанияРасширеннаяПодсказка 1667 @@ -1118,10 +1070,6 @@ true - - <key>ru</key> - <value>Использовать анкетирование</value> - 43 false @@ -1203,10 +1151,6 @@ true - - <key>ru</key> - <value>Использовать шаблоны сообщений</value> - 43 false @@ -1264,10 +1208,6 @@ true - - <key>ru</key> - <value>Настройка шаблоны сообщений</value> - 43 false @@ -1295,10 +1235,6 @@ true - - <key>ru</key> - <value>Шаблоны сообщений</value> - ГруппаШаблоныСообщенийРасширеннаяПодсказка 1795 @@ -1413,10 +1349,6 @@ true - - <key>ru</key> - <value>Использовать бизнес процессы и задачи</value> - 43 false @@ -1478,10 +1410,6 @@ true - - <key>ru</key> - <value>Открыть роли и исполнители бизнес процессов</value> - 43 false @@ -1618,10 +1546,6 @@ true - - <key>ru</key> - <value>Использовать подчиненные бизнес процессы</value> - 43 false @@ -1699,10 +1623,6 @@ true - - <key>ru</key> - <value>Изменять задания задним числом</value> - 43 false @@ -1840,10 +1760,6 @@ true - - <key>ru</key> - <value>Использовать дату начала задач</value> - 43 false @@ -1921,10 +1837,6 @@ true - - <key>ru</key> - <value>Использовать дату и время в сроках задач</value> - 43 false @@ -2115,10 +2027,6 @@ true - - <key>ru</key> - <value>Мониторинг задач использование</value> - 43 false @@ -2173,10 +2081,6 @@ true - - <key>ru</key> - <value>Мониторинг задач</value> - ГруппаМониторингЗадачРасширеннаяПодсказка 1712 @@ -2340,10 +2244,6 @@ true - - <key>ru</key> - <value>Уведомление исполнителей о новых задачах использование</value> - 43 false @@ -2398,10 +2298,6 @@ true - - <key>ru</key> - <value>Уведомление исполнителей о новых задачах</value> - ГруппаУведомлениеИсполнителейОНовыхЗадачахРасширеннаяПодсказка 1737 diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Form.form index 5dee7f729..6769b2ac1 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Form.form @@ -71,10 +71,6 @@ true - - <key>ru</key> - <value>Справка</value> - ГруппаСправкаExtendedTooltip 1603 @@ -95,10 +91,6 @@ true - - <key>ru</key> - <value>Заголовок</value> - ГруппаЗаголовокExtendedTooltip 1600 @@ -160,15 +152,43 @@ ShowBottom Auto + + СправочникЯзыкиПечатныхФормОткрытьСписок + 1707 + true + true + + true + + + СправочникЯзыкиПечатныхФормОткрытьСписокРасширеннаяПодсказка + 1708 + + <key>ru</key> + <value>Доступные языки печатных форм</value> + + Label + true + true + + Left + + + Hyperlink + Catalog.ЯзыкиПечатныхФорм.StandardCommand.OpenList + Normal + Auto + true + true + UserCmds + ShowBottom + Auto + true true true - - <key>ru</key> - <value>Макеты печатных форм</value> - 43 false @@ -183,7 +203,7 @@ UsualGroup - HorizontalIfPossible + Vertical Auto true true @@ -234,10 +254,6 @@ true - - <key>ru</key> - <value>Подменю печать</value> - 43 false @@ -265,10 +281,6 @@ true - - <key>ru</key> - <value>Печать</value> - ГруппаПечатьРасширеннаяПодсказка 1628 @@ -334,10 +346,6 @@ true - - <key>ru</key> - <value>Отчеты</value> - 43 false @@ -400,10 +408,6 @@ true - - <key>ru</key> - <value>Рассылки отчетов</value> - 43 false @@ -431,10 +435,6 @@ true - - <key>ru</key> - <value>Варианты рассылки</value> - ГруппаВариантыРассылкиРасширеннаяПодсказка 1608 @@ -499,10 +499,6 @@ true - - <key>ru</key> - <value>Универсальный отчет</value> - 43 false @@ -569,10 +565,6 @@ true - - <key>ru</key> - <value>Настройка колонтитулов</value> - ГруппаНастройкаКолонтитуловРасширеннаяПодсказка 1693 @@ -598,10 +590,6 @@ true - - <key>ru</key> - <value>Универсальный отчет расширения</value> - ГруппаУниверсальныйОтчетРасширенияРасширеннаяПодсказка 1642 @@ -667,10 +655,6 @@ true - - <key>ru</key> - <value>Расширения</value> - 43 false @@ -733,10 +717,6 @@ true - - <key>ru</key> - <value>Внешние компоненты</value> - 43 false @@ -764,10 +744,6 @@ true - - <key>ru</key> - <value>Расширения и внешние компоненты</value> - ГруппаРасширенияИВнешниеКомпонентыРасширеннаяПодсказка 1691 @@ -848,10 +824,6 @@ true - - <key>ru</key> - <value>Дополнительные отчеты и обработки использование</value> - 43 false @@ -913,10 +885,6 @@ true - - <key>ru</key> - <value>Дополнительные отчеты и обработки настройка</value> - 43 false @@ -944,10 +912,6 @@ true - - <key>ru</key> - <value>Дополнительные отчеты и обработки</value> - ГруппаДополнительныеОтчетыИОбработкиРасширеннаяПодсказка 1615 @@ -975,10 +939,6 @@ true - - <key>ru</key> - <value>Колонки</value> - ГруппаКолонкиРасширеннаяПодсказка 1659 @@ -1057,10 +1017,6 @@ true - - <key>ru</key> - <value>Состояние оригиналов первичных документов использование</value> - 43 ГруппаСостояниеОригиналовПервичныхДокументовИспользованиеРасширеннаяПодсказка @@ -1126,10 +1082,6 @@ true - - <key>ru</key> - <value>Состояние оригиналов первичных документов настройка</value> - 43 ГруппаСостояниеОригиналовПервичныхДокументовНастройкаРасширеннаяПодсказка @@ -1156,10 +1108,6 @@ true - - <key>ru</key> - <value>Группа состояние оригиналов первичных документов.</value> - false ГруппаСостояниеОригиналовПервичныхДокументовРасширеннаяПодсказка diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Form.form index 5f6cc4d71..09743fe9b 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Form.form @@ -71,10 +71,6 @@ true - - <key>ru</key> - <value>Справка</value> - ГруппаСправкаExtendedTooltip 2016 @@ -95,10 +91,6 @@ true - - <key>ru</key> - <value>Заголовок</value> - ГруппаЗаголовокExtendedTooltip 2013 @@ -176,10 +168,6 @@ true - - <key>ru</key> - <value>Использовать синхронизацию данных</value> - 43 false @@ -242,10 +230,6 @@ true - - <key>ru</key> - <value>Настройки синхронизации данных</value> - 43 false @@ -273,10 +257,6 @@ true - - <key>ru</key> - <value>Синхронизация данных</value> - ГруппаСинхронизацияДанныхРасширеннаяПодсказка 2018 @@ -387,10 +367,6 @@ true - - <key>ru</key> - <value>Даты запрета загрузки использование</value> - ru Запрет загрузки данных прошлых периодов из других программ. @@ -427,10 +403,6 @@ true - - <key>ru</key> - <value>Даты запрета загрузки настройка</value> - 43 false @@ -458,10 +430,6 @@ true - - <key>ru</key> - <value>Даты запрета загрузки</value> - ГруппаДатыЗапретаЗагрузкиРасширеннаяПодсказка 2052 @@ -526,10 +494,6 @@ true - - <key>ru</key> - <value>Результатов синхронизации данных</value> - 43 false @@ -596,10 +560,6 @@ true - - <key>ru</key> - <value>Загрузка данных enterprise data</value> - 43 false @@ -627,10 +587,6 @@ true - - <key>ru</key> - <value>Синхронизация данных дополнительно</value> - ГруппаСинхронизацияДанныхДополнительноРасширеннаяПодсказка 2025 @@ -747,10 +703,6 @@ true - - <key>ru</key> - <value>Префикс узла распределенной информационной базы</value> - ShowBottom 43 @@ -949,10 +901,6 @@ true - - <key>ru</key> - <value>Интерфейс o data</value> - ГруппаИнтерфейсODataРасширеннаяПодсказка 2077 diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Form.form index f7f122e06..71d56b528 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Form.form @@ -46,10 +46,6 @@ true - - <key>ru</key> - <value>Применить настройки</value> - ГруппаПрименитьНастройкиРасширеннаяПодсказка 2106 @@ -166,10 +162,6 @@ true - - <key>ru</key> - <value>Синхронизация данных флаг</value> - ГруппаСинхронизацияДанныхФлагExtendedTooltip 2055 @@ -195,10 +187,6 @@ true - - <key>ru</key> - <value>Синхронизация данных группа</value> - ru Синхронизация данных с приложениями в сети Интернет @@ -346,10 +334,6 @@ true - - <key>ru</key> - <value>Синхронизация данных с приложениями в сети Интернет</value> - СинхронизацияДанныхСПриложениямиВИнтернетеExtendedTooltip 2061 @@ -456,10 +440,6 @@ true - - <key>ru</key> - <value>Синхронизация данных с программами в локальном режиме</value> - СинхронизацияДанныхСПрограммамиВЛокальномРежимеExtendedTooltip 2064 @@ -566,10 +546,6 @@ true - - <key>ru</key> - <value>Автономная работа</value> - АвтономнаяРаботаExtendedTooltip 2067 @@ -620,10 +596,6 @@ true - - <key>ru</key> - <value>Синхронизация данных подчиненная группировка</value> - СинхронизацияДанныхПодчиненнаяГруппировкаExtendedTooltip 2058 @@ -648,10 +620,6 @@ true - - <key>ru</key> - <value>Общие параметры для всех областей данных</value> - 43 ОбщиеПараметрыДляВсехОбластейДанныхExtendedTooltip @@ -872,10 +840,6 @@ true - - <key>ru</key> - <value>Настройки транспорта обмена</value> - НастройкиТранспортаОбменаГруппаExtendedTooltip 2073 @@ -964,10 +928,6 @@ true - - <key>ru</key> - <value>Синхронизация данных монитор синхронизации данных</value> - 43 ГруппаСинхронизацияДанныхМониторСинхронизацииДанныхExtendedTooltip @@ -994,10 +954,6 @@ true - - <key>ru</key> - <value>Группа</value> - ГруппаРасширеннаяПодсказка 2093 diff --git a/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Form.form b/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Form.form index 0eded1ed3..5b43fc313 100644 --- a/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Form.form @@ -168,10 +168,6 @@ true - - <key>ru</key> - <value>Настройки приемника</value> - НастройкиПриемникаРасширеннаяПодсказка 7 @@ -283,10 +279,6 @@ true - - <key>ru</key> - <value>Настройки источника</value> - НастройкиИсточникаРасширеннаяПодсказка 15 @@ -399,10 +391,6 @@ true - - <key>ru</key> - <value>Настройки владельца</value> - НастройкиВладельцаРасширеннаяПодсказка 23 @@ -566,10 +554,6 @@ true - - <key>ru</key> - <value>Настройки уточнения даты</value> - НастройкиУточненияДатыРасширеннаяПодсказка 36 @@ -595,10 +579,6 @@ true - - <key>ru</key> - <value>Настройки даты создания</value> - НастройкиДатыСозданияРасширеннаяПодсказка 31 @@ -715,10 +695,6 @@ true - - <key>ru</key> - <value>Настройки расширений</value> - НастройкиРасширенийРасширеннаяПодсказка 44 @@ -825,10 +801,6 @@ true - - <key>ru</key> - <value>Настройки дополнительных правил</value> - НастройкиДополнительныхПравилРасширеннаяПодсказка 52 diff --git a/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Module.bsl index dd9434896..7201c9959 100644 --- a/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ПереносФайлов/Forms/Форма/Module.bsl @@ -121,8 +121,10 @@ ОшибкиПереноса = ВыполнитьПереносНаСервере(); Если ОшибкиПереноса.Количество() = 0 Тогда - ПоказатьПредупреждение(, НСтр("ru = 'Завершен перенос файлов. Перенесено файлов" - + " " + Формат(ПеренесеноФайлов, "ЧН=0; ЧГ=") + ".'")); + Пояснение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Завершен перенос файлов. Перенесено файлов %1.'"), + Формат(ПеренесеноФайлов, "ЧН=0; ЧГ=")); + + ПоказатьПредупреждение(, Пояснение); Иначе Пояснение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПрограмм/Form.form b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПрограмм/Form.form index 094c76976..4c445b82d 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПрограмм/Form.form +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/НастройкиСообщенийИзДругихПрограмм/Form.form @@ -7,10 +7,6 @@ СписокПодключений 1 - - <key>ru</key> - <value>Список подключений</value> - true true diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/Форма/Form.form b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/Форма/Form.form index 44aa4bd88..4695c331b 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/Форма/Form.form @@ -527,10 +527,6 @@ true - - <key>ru</key> - <value>Локальный сервер взаимодействия</value> - ГруппаЛокальныйСерверВзаимодействияРасширеннаяПодсказка 121 @@ -588,10 +584,6 @@ true - - <key>ru</key> - <value>Пояснение регистрации</value> - ПояснениеРегистрацииРасширеннаяПодсказка 29 @@ -953,10 +945,6 @@ true - - <key>ru</key> - <value>Страницы</value> - СтраницыРасширеннаяПодсказка 4 @@ -1010,10 +998,6 @@ true - - <key>ru</key> - <value>Левая командная панель</value> - ЛеваяКоманднаяПанельРасширеннаяПодсказка 82 @@ -1120,10 +1104,6 @@ true - - <key>ru</key> - <value>Правая командная панель</value> - ПраваяКоманднаяПанельРасширеннаяПодсказка 84 @@ -1144,10 +1124,6 @@ true - - <key>ru</key> - <value>Командные панели</value> - КомандныеПанелиРасширеннаяПодсказка 86 diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Form.form b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Form.form index 8711ccfd7..4e21235a7 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Form.form +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Form.form @@ -5636,23 +5636,6 @@ Auto Auto - - пап - - <key>ru</key> - <value>Пап</value> - - 9 - - ru - Пап - - - true - - Auto - Auto - diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl index 70a92f3e7..944e9bcca 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl @@ -1246,7 +1246,7 @@ ИсточникДанных.ТипИсточникаДанных = "Local"; НаборДанных = СхемаКомпоновки.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")); - НаборДанных.Запрос = "ВЫБРАТЬ " + ДоступныеРеквизитыОтбора(ОбъектМетаданных) + " ИЗ " + ОбластьПоискаДублей; + НаборДанных.Запрос = "ВЫБРАТЬ " + ДоступныеРеквизитыОтбора(ОбъектМетаданных) + " ИЗ " + ОбластьПоискаДублей; // @query-part-2 НаборДанных.АвтоЗаполнениеДоступныхПолей = Истина; АдресСхемыКомпоновки = ПоместитьВоВременноеХранилище(СхемаКомпоновки, УникальныйИдентификатор); @@ -1391,8 +1391,10 @@ АдресНастроек = ПоместитьВоВременноеХранилище(ТаблицаНастроек, УникальныйИдентификатор); СписокВыбора = Элементы.ОбластьПоискаДублей.СписокВыбора; + КешКартинок = Новый Соответствие; Для Каждого СтрокаТаблицы Из ТаблицаНастроек Цикл - СписокВыбора.Добавить(СтрокаТаблицы.ПолноеИмя, СтрокаТаблицы.ПредставлениеСписка, , БиблиотекаКартинок[СтрокаТаблицы.Вид]); + КартинкаВида = КартинкаВидаМетаданных(КешКартинок, СтрокаТаблицы.Вид); + СписокВыбора.Добавить(СтрокаТаблицы.ПолноеИмя, СтрокаТаблицы.ПредставлениеСписка, , КартинкаВида); КонецЦикла; ВсеВариантыСравнения.Добавить("Равно", НСтр("ru = 'Совпадает'")); @@ -1582,6 +1584,20 @@ Возврат Результат; КонецФункции +&НаСервереБезКонтекста +Функция КартинкаВидаМетаданных(КешКартинок, Вид) + + Картинка = КешКартинок[Вид]; + Если Картинка = Неопределено Тогда + + Картинка = БиблиотекаКартинок[Вид]; + КешКартинок.Вставить(Вид, Картинка); + + КонецЕсли; + + Возврат Картинка; +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Работа с длительными операциями @@ -1742,7 +1758,7 @@ Функция ЗаполнитьРезультатыПоискаДублей(Знач АдресРезультата) // Получаем результат функции ГруппыДублей модуля обработки. - Данные = ПолучитьИзВременногоХранилища(АдресРезультата); // см. Обработка.ПоискИУдалениеДублей.ГруппыДублей + Данные = ПолучитьИзВременногоХранилища(АдресРезультата); // см. ОбработкаОбъект.ПоискИУдалениеДублей.ГруппыДублей ОписаниеОшибкиПоискаДублей = Данные.ОписаниеОшибки; ДеревоНайденныхДублей = РеквизитФормыВЗначение("НайденныеДубли"); @@ -2097,9 +2113,9 @@ // // Возвращаемое значение: // - Число - как связаны объекты метаданных между собой -// 0 - не связаны -// 1 - связь по реквизиту -// 2 - связь по Родителю/Владельцу +// 0 - не связаны +// 1 - связь по реквизиту +// 2 - связь по Родителю/Владельцу // &НаСервереБезКонтекста Функция КлючиСвязиМетаданных(Знач ИдентификаторОбрабатываемогоОбъекта, Знач МестоИспользования) @@ -2187,12 +2203,8 @@ ВыбранныеМестаИспользования = Новый Структура("ПредставлениеОтбора, ЗначениеОтбора","", Новый Структура); ВыбранныйДубль = ВозможныеДубли.НайтиСтроки(Новый Структура("ТипОбъектаМетаданных", ВыбранныйТип)); - ИдентификаторМетаданных = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ВыбранныйТип); - ВыбранныеМетаданные = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(ИдентификаторМетаданных); ВыбранныеМестаИспользования.ПредставлениеОтбора = НСтр("ru='Элементы, среди которых возможны дубли'"); - ЗначенияОтбора = Новый СписокЗначений; - Если ВыбранныйДубль.Количество() > 0 Тогда ВыбранныйДубль = ВыбранныйДубль[0]; diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/ObjectModule.bsl b/SSL/src/DataProcessors/ПоискИУдалениеДублей/ObjectModule.bsl index 6f110724d..df69e91a8 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/ObjectModule.bsl @@ -16,7 +16,7 @@ // ИмяОбластиПоискаДанных - Строка - имя области (полное имя метаданных). // // Возвращаемое значение: -// СправочникиМенеджер - , ПланыВидовХарактеристикМенеджер, +// СправочникиМенеджер, ПланыВидовХарактеристикМенеджер, // ПланыСчетовМенеджер, ПланыВидовРасчетаМенеджер - менеджер объекта. // Функция МенеджерОбластиПоискаДублей(Знач ИмяОбластиПоискаДанных) Экспорт @@ -571,20 +571,20 @@ // Описание // // Параметры: -// ТаблицаКандидатов - см. ТаблицаКандидатов -// ДанныеОсновногоЭлемента - Структура: -// * Ссылка - ЛюбаяСсылка -// * Наименование - Строка -// * Код - Строка -// * ПометкаУдаления - Булево -// ДанныеКандидата - Структура: -// * Ссылка - ЛюбаяСсылка -// * Наименование - Строка -// * Код - Строка -// * ПометкаУдаления - Булево -// СтруктураПолей - Структура +// ТаблицаКандидатов - см. ТаблицаКандидатов +// ДанныеОсновногоЭлемента - Структура: +// * Ссылка - ЛюбаяСсылка +// * Наименование - Строка +// * Код - Строка +// * ПометкаУдаления - Булево +// ДанныеКандидата - Структура: +// * Ссылка - ЛюбаяСсылка +// * Наименование - Строка +// * Код - Строка +// * ПометкаУдаления - Булево +// СтруктураПолей - Структура // Возвращаемое значение: -// СтрокаТаблицыЗначений +// СтрокаТаблицыЗначений // Функция ДобавитьСтрокуКандидатов(ТаблицаКандидатов, Знач ДанныеОсновногоЭлемента, Знач ДанныеКандидата, Знач СтруктураПолей) @@ -866,7 +866,7 @@ КонецПроцедуры // Возвращаемое значение: -// ТаблицаЗначений: +// ТаблицаЗначений: // * Ссылка - ЛюбаяСсылка // Функция ТаблицаДублей(ПоляДляСравненияНаПодобие, ПоляДляСравненияНаРавенство) @@ -900,7 +900,7 @@ КонецФункции // Возвращаемое значение: -// Структура: +// Структура: // * НезначимыеДубли - ТаблицаЗначений: // ** Ссылка - ЛюбаяСсылка // ** Родитель - ЛюбаяСсылка @@ -956,7 +956,7 @@ КонецФункции // Возвращаемое значение: -// ТаблицаЗначений: +// ТаблицаЗначений: // * Ссылка1 - ЛюбаяСсылка // * Поля1 - Структура: // ** Наименование - Строка diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Form.form b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Form.form index b6ab1177d..8bd3614b5 100644 --- a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Form.form +++ b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Form.form @@ -70,10 +70,6 @@ true - - <key>ru</key> - <value>Справка</value> - ГруппаСправкаExtendedTooltip 143 @@ -94,10 +90,6 @@ true - - <key>ru</key> - <value>Заголовок</value> - ГруппаЗаголовокExtendedTooltip 135 @@ -221,10 +213,6 @@ true - - <key>ru</key> - <value>Использовать полнотекстовый поиск</value> - ГруппаИспользоватьПолнотекстовыйПоискРасширеннаяПодсказка 114 @@ -378,10 +366,6 @@ true - - <key>ru</key> - <value>Максимальный размер индексируемых данных значение</value> - ГруппаМаксимальныйРазмерИндексируемыхДанныхЗначениеРасширеннаяПодсказка 196 @@ -443,10 +427,6 @@ true - - <key>ru</key> - <value>Максимальный размер индексируемых данных</value> - ГруппаМаксимальныйРазмерИндексируемыхДанныхРасширеннаяПодсказка 194 @@ -633,10 +613,6 @@ true - - <key>ru</key> - <value>Кнопки 1</value> - ГруппаКнопки1ExtendedTooltip 120 @@ -662,10 +638,6 @@ true - - <key>ru</key> - <value>Полнотекстовый поиск</value> - ru Группа управление автоматическим извлечением текстов @@ -853,10 +825,6 @@ true - - <key>ru</key> - <value>Колонки</value> - ГруппаКолонкиРасширеннаяПодсказка 158 diff --git a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/Форма/Form.form b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/Форма/Form.form index 1bc884519..f7a34b538 100644 --- a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/Форма/Form.form @@ -140,10 +140,6 @@ true - - <key>ru</key> - <value>Вариант подключения</value> - ru Используемый вариант подключения @@ -207,10 +203,6 @@ true - - <key>ru</key> - <value>Группа выбора вида транспорта из доступных</value> - true ГруппаВыборВидаТранспортаИзДоступныхExtendedTooltip @@ -404,10 +396,6 @@ true - - <key>ru</key> - <value>Параметров транспорта вертикальная</value> - ГруппаПараметрыТранспортаВертикальнаяРасширеннаяПодсказка 741 @@ -433,10 +421,6 @@ true - - <key>ru</key> - <value>Параметры транспорта</value> - ru Параметры транспорта общая группа @@ -738,10 +722,6 @@ true - - <key>ru</key> - <value>Группа картинки</value> - ГруппаКартинки2ExtendedTooltip 875 @@ -806,10 +786,6 @@ true - - <key>ru</key> - <value>Группа сообщения</value> - ГруппаСообщения2ExtendedTooltip 877 @@ -1073,10 +1049,6 @@ true - - <key>ru</key> - <value>Страницы статуса сопоставления данных</value> - СтраницыСтатусаСопоставленияДанныхРасширеннаяПодсказка 751 @@ -1188,10 +1160,6 @@ true - - <key>ru</key> - <value>Команда загрузки</value> - ГруппаКомандаЗагрузкиРасширеннаяПодсказка 759 @@ -1266,10 +1234,6 @@ true - - <key>ru</key> - <value>Команды списка</value> - ГруппаКомандыСпискаРасширеннаяПодсказка 761 @@ -1317,10 +1281,6 @@ true - - <key>ru</key> - <value>Команда обновления</value> - ГруппаКомандаОбновленияРасширеннаяПодсказка 764 @@ -1338,10 +1298,6 @@ true - - <key>ru</key> - <value>Командная панель таблицы статистики</value> - КоманднаяПанельТаблицыСтатистикиExtendedTooltip 757 @@ -1360,10 +1316,6 @@ ДеревоИнформацииСтатистики 405 - - <key>ru</key> - <value>Дерево информации статистики</value> - true true @@ -1519,10 +1471,6 @@ true - - <key>ru</key> - <value>Дерево информации статистики группа</value> - ДеревоИнформацииСтатистикиГруппаExtendedTooltip 773 @@ -1751,10 +1699,6 @@ true - - <key>ru</key> - <value>Дерево информации статистики группа число сопоставленных</value> - ru Число сопоставленных @@ -1933,10 +1877,6 @@ true - - <key>ru</key> - <value>Дерево информации статистики контекстное меню группа 1</value> - ДеревоИнформацииСтатистикиКонтекстноеМенюГруппа1ExtendedTooltip 767 @@ -2009,10 +1949,6 @@ true - - <key>ru</key> - <value>Информация статистики группа 2</value> - ИнформацияСтатистикиГруппа2ExtendedTooltip 769 @@ -2134,10 +2070,6 @@ true - - <key>ru</key> - <value>Завершение сопоставления</value> - ГруппаЗавершениеСопоставленияРасширеннаяПодсказка 992 @@ -2359,10 +2291,6 @@ true - - <key>ru</key> - <value>Типовой вариант дополнения нет горизонтальный</value> - ru Типовой вариант дополнения нет @@ -2392,10 +2320,6 @@ true - - <key>ru</key> - <value>Типовой вариант дополнения "Не добавлять"</value> - ТиповойВариантДополненияНетExtendedTooltip 823 @@ -2697,10 +2621,6 @@ true - - <key>ru</key> - <value>Отбор все документы горизонтальная</value> - ГруппаОтборВсеДокументыГоризонтальнаяРасширеннаяПодсказка 837 @@ -2726,10 +2646,6 @@ true - - <key>ru</key> - <value>Отбор все документы вертикальная</value> - ГруппаОтборВсеДокументыВертикальнаяРасширеннаяПодсказка 832 @@ -2755,10 +2671,6 @@ true - - <key>ru</key> - <value>Отбор все документы</value> - ГруппаОтборВсеДокументыExtendedTooltip 830 @@ -2784,10 +2696,6 @@ true - - <key>ru</key> - <value>Типовой вариант дополнения документы</value> - ТиповойВариантДополненияДокументыExtendedTooltip 828 @@ -2937,10 +2845,6 @@ true - - <key>ru</key> - <value>Произвольный вариант горизонтальный</value> - ГруппаПроизвольныйВариантГоризонтальныйРасширеннаяПодсказка 843 @@ -3092,10 +2996,6 @@ true - - <key>ru</key> - <value>Команды произвольного отбора</value> - ГруппаКомандыПроизвольногоОтбораРасширеннаяПодсказка 849 @@ -3121,10 +3021,6 @@ true - - <key>ru</key> - <value>Отбор детальный</value> - ГруппаОтборДетальныйExtendedTooltip 846 @@ -3150,10 +3046,6 @@ true - - <key>ru</key> - <value>Типовой вариант дополнения произвольный</value> - ТиповойВариантДополненияПроизвольныйExtendedTooltip 841 @@ -3473,10 +3365,6 @@ true - - <key>ru</key> - <value>Период выгрузки сценарий узла</value> - ГруппаПериодВыгрузкиСценарийУзлаExtendedTooltip 860 @@ -3502,10 +3390,6 @@ true - - <key>ru</key> - <value>Отбор настраиваемый вертикальный</value> - ГруппаОтборНастраиваемыйВертикальныйРасширеннаяПодсказка 857 @@ -3531,10 +3415,6 @@ true - - <key>ru</key> - <value>Отбор настраиваемый</value> - ГруппаОтборНастраиваемыйExtendedTooltip 855 @@ -3559,10 +3439,6 @@ true - - <key>ru</key> - <value>Настраиваемый вариант дополнения</value> - НастраиваемыйВариантДополненияExtendedTooltip 852 @@ -3589,10 +3465,6 @@ true - - <key>ru</key> - <value>Варианты дополнения выгрузки</value> - ВариантыДополненияВыгрузкиExtendedTooltip 822 @@ -3746,10 +3618,6 @@ true - - <key>ru</key> - <value>Загрузка типовых вариантов настроек горизонтальная</value> - ГруппаЗагрузкаТиповыхВариантовНастроекГоризонтальнаяРасширеннаяПодсказка 868 @@ -3775,10 +3643,6 @@ true - - <key>ru</key> - <value>Загрузка типовых вариантов настроек</value> - ГруппаЗагрузкаТиповыхВариантовНастроекExtendedTooltip 866 @@ -4041,10 +3905,6 @@ true - - <key>ru</key> - <value>Группа картинки</value> - ГруппаКартинки3ExtendedTooltip 882 @@ -4109,10 +3969,6 @@ true - - <key>ru</key> - <value>Группа сообщения</value> - ГруппаСообщения3ExtendedTooltip 884 @@ -4960,10 +4816,6 @@ true - - <key>ru</key> - <value>Страницы статуса загрузки данных</value> - СтраницыСтатусаЗагрузкиДанныхExtendedTooltip 788 @@ -5053,10 +4905,6 @@ true - - <key>ru</key> - <value>Загрузки данных</value> - ГруппаЗагрузкиДанныхExtendedTooltip 787 @@ -5366,10 +5214,6 @@ true - - <key>ru</key> - <value>Страницы статуса выгрузки данных</value> - СтраницыСтатусаВыгрузкиДанныхExtendedTooltip 799 @@ -5456,10 +5300,6 @@ true - - <key>ru</key> - <value>Выгрузки данных</value> - ru Группа загрузки данных @@ -5489,10 +5329,6 @@ true - - <key>ru</key> - <value>Результата выполнения обмена данными</value> - ГруппаРезультатаВыполненияОбменаДаннымиExtendedTooltip 786 @@ -5688,10 +5524,6 @@ true - - <key>ru</key> - <value>Ошибка загрузки сообщения для сопоставления</value> - ГруппаОшибкаЗагрузкиСообщенияДляСопоставленияРасширеннаяПодсказка 1007 @@ -5758,10 +5590,6 @@ true - - <key>ru</key> - <value>Картинка настройки расписания</value> - ru Картинка настройка расписания @@ -5864,10 +5692,6 @@ true - - <key>ru</key> - <value>Текст настройки расписания</value> - ru Текст настройка расписания @@ -5897,10 +5721,6 @@ true - - <key>ru</key> - <value>Группировка</value> - ГруппировкаExtendedTooltip 813 @@ -5926,10 +5746,6 @@ true - - <key>ru</key> - <value>Информационная надпись настройки расписания</value> - ru Группировка сообщения @@ -6023,10 +5839,6 @@ true - - <key>ru</key> - <value>Панель основная</value> - ПанельОсновнаяExtendedTooltip 728 @@ -6138,10 +5950,6 @@ true - - <key>ru</key> - <value>Командная панель 1</value> - true КоманднаяПанель1ExtendedTooltip @@ -6274,10 +6082,6 @@ true - - <key>ru</key> - <value>Командная панель 2</value> - true КоманднаяПанель2ExtendedTooltip @@ -6383,10 +6187,6 @@ true - - <key>ru</key> - <value>Командная панель 3</value> - true КоманднаяПанель3ExtendedTooltip @@ -6492,10 +6292,6 @@ true - - <key>ru</key> - <value>Командная панель 4</value> - true КоманднаяПанель4ExtendedTooltip @@ -6601,10 +6397,6 @@ true - - <key>ru</key> - <value>Командная панель 5</value> - КоманднаяПанель5РасширеннаяПодсказка 928 @@ -6739,10 +6531,6 @@ true - - <key>ru</key> - <value>Командная панель 6</value> - КоманднаяПанель6РасширеннаяПодсказка 981 @@ -6789,10 +6577,6 @@ true - - <key>ru</key> - <value>Панель навигации</value> - true ПанельНавигацииExtendedTooltip @@ -6814,10 +6598,6 @@ true - - <key>ru</key> - <value>Кнопок мастера</value> - ГруппаКнопокМастераExtendedTooltip 886 diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Form.form b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Form.form index bbb1fb9da..648f4d891 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Form.form +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Form.form @@ -715,10 +715,6 @@ true - - <key>ru</key> - <value>Настройка прав пользователей</value> - НастройкаПравПользователейExtendedTooltip 244 @@ -880,10 +876,6 @@ true - - <key>ru</key> - <value>Картинки</value> - ГруппаКартинкиExtendedTooltip 253 @@ -955,10 +947,6 @@ true - - <key>ru</key> - <value>Сообщения</value> - ГруппаСообщенияExtendedTooltip 255 @@ -1366,10 +1354,6 @@ true - - <key>ru</key> - <value>Панель основная</value> - ru Панель навигации @@ -1433,10 +1417,6 @@ true - - <key>ru</key> - <value>Командная панель слева 1</value> - КоманднаяПанельСлева1РасширеннаяПодсказка 298 @@ -1540,10 +1520,6 @@ true - - <key>ru</key> - <value>Командная панель справа 1</value> - true КоманднаяПанельСправа1РасширеннаяПодсказка @@ -1622,10 +1598,6 @@ true - - <key>ru</key> - <value>Командная панель слева 2</value> - КоманднаяПанельСлева2РасширеннаяПодсказка 303 @@ -1736,10 +1708,6 @@ true - - <key>ru</key> - <value>Командная панель справа 2</value> - true КоманднаяПанельСправа2РасширеннаяПодсказка @@ -1818,10 +1786,6 @@ true - - <key>ru</key> - <value>Командная панель слева 3</value> - КоманднаяПанельСлева3РасширеннаяПодсказка 308 @@ -1924,10 +1888,6 @@ true - - <key>ru</key> - <value>Командная панель справа 3</value> - true КоманднаяПанельСправа3РасширеннаяПодсказка @@ -2006,10 +1966,6 @@ true - - <key>ru</key> - <value>Командная панель слева 4</value> - КоманднаяПанельСлева4РасширеннаяПодсказка 313 @@ -2116,10 +2072,6 @@ true - - <key>ru</key> - <value>Командная панель справа 4</value> - true КоманднаяПанельСправа4РасширеннаяПодсказка @@ -2167,10 +2119,6 @@ true - - <key>ru</key> - <value>Панель навигации</value> - true ПанельНавигацииExtendedTooltip @@ -2192,10 +2140,6 @@ true - - <key>ru</key> - <value>Рамка панели навигации</value> - РамкаПанелиНавигацииExtendedTooltip 268 diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Module.bsl index 38dac7c9d..4c575ec4d 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Module.bsl @@ -28,7 +28,7 @@ Элементы.ОписаниеОграниченийПередачиДанных.Заголовок = ОписаниеОграниченийПередачиДанных(ИмяПланаОбмена, НастройкаОтборовНаУзле); - ИнструкцияПоНастройкеАвтономногоРабочегоМеста = АвтономнаяРаботаСлужебный.ТекстИнструкцииИзМакета("ИнструкцияПоНастройкеАвтономногоРабочегоМеста"); + ИнструкцияПоНастройкеАвтономногоРабочегоМеста = АвтономнаяРаботаСлужебный.ТекстИнструкцииИзМакета("ИнструкцияПоНастройкеАРМ"); Элементы.ПоясняющаяНадписьОВерсииПлатформы.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Для автономной работы на Вашем компьютере должна быть установлена diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ObjectModule.bsl b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ObjectModule.bsl index a203603ea..943210992 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ObjectModule.bsl @@ -14,10 +14,10 @@ // с переданными настройками и помещает во временное хранилище. // // Параметры: -// Настройки - Структура - настройки отборов на узле. -// ВыбранныеПользователиСинхронизации - Массив из СправочникСсылка.Пользователи -// АдресВременногоХранилищаНачальногоОбраза - Строка -// АдресВременногоХранилищаИнформацииОПакетеУстановки - Строка +// Настройки - Структура - настройки отборов на узле. +// ВыбранныеПользователиСинхронизации - Массив из СправочникСсылка.Пользователи +// АдресВременногоХранилищаНачальногоОбраза - Строка +// АдресВременногоХранилищаИнформацииОПакетеУстановки - Строка // Процедура СоздатьНачальныйОбразАвтономногоРабочегоМеста( Знач Настройки, @@ -176,7 +176,7 @@ ИмяФайлаИнструкции = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( КаталогАрхива, "ReadMe.html"); - ТекстИнструкции = АвтономнаяРаботаСлужебный.ТекстИнструкцииИзМакета("ИнструкцияПоНастройкеАвтономногоРабочегоМеста"); + ТекстИнструкции = АвтономнаяРаботаСлужебный.ТекстИнструкцииИзМакета("ИнструкцияПоНастройкеАРМ"); Текст = Новый ЗаписьТекста(ИмяФайлаИнструкции, КодировкаТекста.UTF8); Текст.Записать(ТекстИнструкции); diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/ИнструкцияПоНастройкеАвтономногоРабочегоМеста/Template.htmldoc b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/ИнструкцияПоНастройкеАРМ/Template.htmldoc similarity index 100% rename from SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/ИнструкцияПоНастройкеАвтономногоРабочегоМеста/Template.htmldoc rename to SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/ИнструкцияПоНастройкеАРМ/Template.htmldoc diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/ИнструкцияПоНастройкеАвтономногоРабочегоМеста/ru.html b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/ИнструкцияПоНастройкеАРМ/ru.html similarity index 100% rename from SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/ИнструкцияПоНастройкеАвтономногоРабочегоМеста/ru.html rename to SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/ИнструкцияПоНастройкеАРМ/ru.html diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ПомощникСозданияАвтономногоРабочегоМеста.mdo b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ПомощникСозданияАвтономногоРабочегоМеста.mdo index 5bd983ee1..f278c4582 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ПомощникСозданияАвтономногоРабочегоМеста.mdo +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ПомощникСозданияАвтономногоРабочегоМеста.mdo @@ -70,10 +70,10 @@ MobileDevice - ИнструкцияПоНастройкеАвтономногоРабочегоМеста + ИнструкцияПоНастройкеАРМ ru - Инструкция по настройке автономного рабочего места + Инструкция по настройке АРМ HTMLDocument diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Form.form b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Form.form index 4cfcec69a..725e7e3ff 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Form.form +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Form.form @@ -2287,6 +2287,19 @@ true + + ПоддерживаетсяСопоставлениеДанных + 5 + + Boolean + + + true + + + true + + ПодробноеОписаниеСинхронизацииДанных diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Module.bsl index 12e5ba75e..95c2317d3 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаСинхронизации/Module.bsl @@ -720,7 +720,8 @@ ЗначенияНастроекДляВарианта = ОбменДаннымиСервер.ЗначениеНастройкиПланаОбмена(ИмяПланаОбмена, "ИмяФормыСозданияНачальногоОбраза, - |ИмяФормыПомощникаНастройкиСинхронизацииДанных", + |ИмяФормыПомощникаНастройкиСинхронизацииДанных, + |ПоддерживаетсяСопоставлениеДанных", ИдентификаторНастройки); ЗаполнитьЗначенияСвойств(ЭтотОбъект, ЗначенияНастроекДляВарианта); @@ -803,10 +804,13 @@ Если Не НастройкаРИБ И Не НастройкаУниверсальногоОбмена - И ПолученыДанныеДляСопоставления Тогда - ДобавитьЭтапНастройки("СопоставлениеИЗагрузка", "ВыполнитьСопоставлениеИЗагрузкуДанных"); - КонецЕсли; + И ПолученыДанныеДляСопоставления + И ПоддерживаетсяСопоставлениеДанных <> Ложь Тогда + ДобавитьЭтапНастройки("СопоставлениеИЗагрузка", "ВыполнитьСопоставлениеИЗагрузкуДанных"); + + КонецЕсли; + Если ДоступнаИнтерактивнаяОтправка И (ЕстьНастройкиТранспорта Или НастройкаНовойСинхронизации) Тогда diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Module.bsl index d62164ba0..a1f181e3f 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Module.bsl @@ -14,9 +14,6 @@ ОбъектЗначение = Параметры.Ключ.ПолучитьОбъект(); ОбъектЗначение.Заполнить(Неопределено); - ЗаголовокОшибки = НСтр("ru = 'Ошибка при настройке формы элемента присоединенных файлов.'"); - ОкончаниеОшибки = НСтр("ru = 'В этом случае настройка формы элемента невозможна.'"); - НастроитьОбъектФормы(ОбъектЗначение); Если ТипЗнч(ЭтотОбъект.Объект.Владелец) = Тип("СправочникСсылка.Файлы") Тогда diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборКодировки/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборКодировки/Form.form index e0978d47b..53aae4c48 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборКодировки/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборКодировки/Form.form @@ -3,10 +3,6 @@ <items xsi:type="form:Table"> <name>СписокКодировок</name> <id>1</id> - <title> - <key>ru</key> - <value>Список кодировок</value> - true true diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Module.bsl index 774c9d20c..801510434 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ПрисоединенныеФайлы/Module.bsl @@ -369,8 +369,7 @@ ВладелецФайловСовпадает = ВладелецФайловСовпадает(Параметры.ВладелецФайла, ПеретаскиваемыйФайл); Если ВозможностьСоздаватьГруппыФайлов И ТипЗнч(ПеретаскиваемыйФайл) = ТипСправочникаСФайлами - И ВладелецФайловСовпадает(Параметры.ВладелецФайла, ПеретаскиваемыйФайл) Тогда - + И ВладелецФайловСовпадает Тогда Возврат; КонецЕсли; @@ -1290,7 +1289,7 @@ Если Результат <> Неопределено И Результат = "Продолжить" Тогда - ТекущиеДанные = ДополнительныеПараметры.ТекущиеДанные; + ТекущиеДанные = ДополнительныеПараметры.ТекущиеДанные; // см. ОбработкаОбъект.ПоискИУдалениеДублей.ГруппыДублей ФайлРедактируется = ТекущиеДанные.ФайлРедактируется И ТекущиеДанные.ФайлРедактируетТекущийПользователь; @@ -1320,6 +1319,7 @@ КонецПроцедуры // Параметры: +// Результат - Неопределено // ПараметрыВыполнения - Структура: // * ДанныеФайла - см. РаботаСФайлами.ДанныеФайла // @@ -1940,7 +1940,9 @@ КонецПроцедуры // Возвращаемое значение: -// ДанныеФормыСтруктура, ДанныеФормыЭлементКоллекции: +// ДанныеФормыСтруктура: +// * Ссылка - СправочникСсылка +// ДанныеФормыЭлементКоллекции: // * Ссылка - СправочникСсылка // &НаКлиенте diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактируемыеФайлы/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактируемыеФайлы/Module.bsl index 68f9783d3..3b04f8a27 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактируемыеФайлы/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РедактируемыеФайлы/Module.bsl @@ -60,8 +60,6 @@ #Область ОбработчикиСобытийЭлементовТаблицыФормыСписок -// Обработка события Выбор у списка. -// &НаКлиенте Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) @@ -310,18 +308,7 @@ Продолжить; КонецЕсли; Если Не СтрЗаканчиваетсяНа(МетаданныеСправочника.Имя, "ВерсииПрисоединенныхФайлов") И МетаданныеСправочника.Имя <> "ВерсииФайлов" Тогда - Если Не ПустаяСтрока(ТекстЗапроса) Тогда - ТекстЗапроса = ТекстЗапроса + " - | - |ОБЪЕДИНИТЬ ВСЕ - | - | ВЫБРАТЬ"; - Иначе - ТекстЗапроса = ТекстЗапроса + " - | ВЫБРАТЬ РАЗРЕШЕННЫЕ"; - КонецЕсли; - - ТекстЗапроса = ТекстЗапроса + " + ФрагментЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Файлы.Редактирует, | Файлы.ИндексКартинки, | Файлы.Наименование, @@ -331,9 +318,19 @@ | Файлы.ХранитьВерсии КАК ХранитьВерсии, | Файлы.Размер / 1024 |ИЗ - | " + МетаданныеСправочника.ПолноеИмя() + " КАК Файлы + | &ИмяТаблицы КАК Файлы |ГДЕ - | Файлы.Редактирует = &Редактирует" + | Файлы.Редактирует = &Редактирует"; + ФрагментЗапроса = СтрЗаменить(ФрагментЗапроса, "&ИмяТаблицы", МетаданныеСправочника.ПолноеИмя()); + Если Не ПустаяСтрока(ТекстЗапроса) Тогда + ТекстЗапроса = ТекстЗапроса + " + | + |ОБЪЕДИНИТЬ ВСЕ + |"; + ФрагментЗапроса = СтрЗаменить(ФрагментЗапроса, "ВЫБРАТЬ РАЗРЕШЕННЫЕ", "ВЫБРАТЬ"); + КонецЕсли; + ТекстЗапроса = ТекстЗапроса + ФрагментЗапроса; + КонецЕсли; КонецЦикла; diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РежимСозданияФайлаДляСохранитьКак/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РежимСозданияФайлаДляСохранитьКак/Form.form index 19402e0c9..7a419451d 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/РежимСозданияФайлаДляСохранитьКак/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/РежимСозданияФайлаДляСохранитьКак/Form.form @@ -88,10 +88,6 @@ true - - <key>ru</key> - <value>Сообщение</value> - ГруппаСообщениеExtendedTooltip 23 @@ -195,10 +191,6 @@ true - - <key>ru</key> - <value>Файл и кнопка</value> - ГруппаФайлИКнопкаExtendedTooltip 28 @@ -224,10 +216,6 @@ true - - <key>ru</key> - <value>Файл</value> - ГруппаФайлExtendedTooltip 26 diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФайлСуществует/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФайлСуществует/Form.form index ee5703c23..c47167ade 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФайлСуществует/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФайлСуществует/Form.form @@ -89,10 +89,6 @@ true - - <key>ru</key> - <value>Основная командная панель</value> - true ОсновнаяКоманднаяПанельExtendedTooltip diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЗавершениеРедактирования/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЗавершениеРедактирования/Form.form index 631e93623..78bd206d7 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЗавершениеРедактирования/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЗавершениеРедактирования/Form.form @@ -10,10 +10,6 @@ ВыбранныеФайлы 16 - - <key>ru</key> - <value>Выбранные файлы</value> - true true @@ -122,10 +118,6 @@ true - - <key>ru</key> - <value>Картинка и наименование</value> - КартинкаИНаименованиеExtendedTooltip 43 @@ -276,10 +268,6 @@ true - - <key>ru</key> - <value>Выбранные файлы</value> - ГруппаВыбранныеФайлыРасширеннаяПодсказка 38 @@ -465,10 +453,6 @@ true - - <key>ru</key> - <value>Основная командная панель</value> - ОсновнаяКоманднаяПанельExtendedTooltip 53 diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаИмпортаПапки/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаИмпортаПапки/Form.form index f78554589..5961e655f 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаИмпортаПапки/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаИмпортаПапки/Form.form @@ -230,10 +230,6 @@ true - - <key>ru</key> - <value>Свойств файлов</value> - ГруппаСвойствФайловExtendedTooltip 34 @@ -323,10 +319,6 @@ true - - <key>ru</key> - <value>Кодировка</value> - ГруппаКодировкаExtendedTooltip 37 @@ -429,10 +421,6 @@ true - - <key>ru</key> - <value>Основная командная панель</value> - ОсновнаяКоманднаяПанельExtendedTooltip 40 diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаИмпортаФайлов/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаИмпортаФайлов/Form.form index d35dbeb56..7281c7c8e 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаИмпортаФайлов/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаИмпортаФайлов/Form.form @@ -97,10 +97,6 @@ true - - <key>ru</key> - <value>Заголовок</value> - ЗаголовокExtendedTooltip 39 @@ -124,10 +120,6 @@ ВыбранныеФайлы 16 - - <key>ru</key> - <value>Выбранные файлы</value> - true true @@ -241,10 +233,6 @@ true - - <key>ru</key> - <value>Картинка и наименование</value> - КартинкаИНаименованиеExtendedTooltip 43 @@ -395,10 +383,6 @@ true - - <key>ru</key> - <value>Выбранные файлы</value> - ГруппаВыбранныеФайлыРасширеннаяПодсказка 38 @@ -648,10 +632,6 @@ true - - <key>ru</key> - <value>Кодировка</value> - ГруппаКодировкаExtendedTooltip 50 @@ -752,10 +732,6 @@ true - - <key>ru</key> - <value>Основная командная панель</value> - ОсновнаяКоманднаяПанельExtendedTooltip 53 diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЭкспортаПапки/Form.form b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЭкспортаПапки/Form.form index 11b804a8e..87c74adb4 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЭкспортаПапки/Form.form +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЭкспортаПапки/Form.form @@ -195,10 +195,6 @@ true - - <key>ru</key> - <value>Командная панель</value> - КоманднаяПанельExtendedTooltip 37 diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЭкспортаПапки/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЭкспортаПапки/Module.bsl index 97bef6432..f51b4e8e3 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЭкспортаПапки/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ФормаЭкспортаПапки/Module.bsl @@ -237,11 +237,6 @@ // .Пропустить - пропустить файл. // .Прервать - прервать выгрузку. // -// Возвращаемое значение: -// Структура: -// * Успех - Булево - Истина - можно продолжать выгрузку / выгрузка завершена успешно. -// Ложь - действие завершено с ошибками / выгрузка завершена с ошибками. -// &НаКлиенте Процедура ОбойтиДеревоФайлов(ОбработчикРезультата, ТаблицаФайлов, БазовыйКаталогСохранения, РодительскаяПапка, ОбщиеПараметры) @@ -269,7 +264,20 @@ ОбойтиДеревоФайловЗапускЦикла(ПараметрыВыполнения); КонецПроцедуры - +// Возвращаемое значение: +// Структура: +// * ОбработчикРезультата - см. ОбойтиДеревоФайлов.ОбработчикРезультата +// * ТаблицаФайлов - см. ОбойтиДеревоФайлов.ТаблицаФайлов +// * БазовыйКаталогСохранения - см. ОбойтиДеревоФайлов.БазовыйКаталогСохранения +// * РодительскаяПапка - см. ОбойтиДеревоФайлов.РодительскаяПапка +// * ОбщиеПараметры - см. ОбойтиДеревоФайлов.ОбщиеПараметры +// * Результат - Неопределено, КодВозвратаДиалога - добавляется позже +// * Успех - Булево +// * Элементы - см. Обработка.РаботаСФайлами.Форма.ФормаЭкспортаПапки.ДеревоФайлов +// * ВГраница - Число +// * Индекс - Число +// * ТребуетсяЗапускЦикла - Булево +// &НаКлиенте Функция ПараметрыВыполнения(Знач ОбработчикРезультата, Знач ТаблицаФайлов, Знач БазовыйКаталогСохранения, Знач РодительскаяПапка, Знач ОбщиеПараметры) ПараметрыВыполнения = Новый Структура; @@ -522,6 +530,10 @@ ОбойтиДеревоФайлов11(ПараметрыВыполнения); КонецПроцедуры +// Параметры: +// Ответ - КодВозвратаДиалога +// ПараметрыВыполнения - см. ПараметрыВыполнения +// &НаКлиенте Процедура ОбойтиДеревоФайлов10(Ответ, ПараметрыВыполнения) Экспорт Если РаботаСФайламиСлужебныйКлиент.БлокирующаяФормаОткрыта(ПараметрыВыполнения) Тогда @@ -598,6 +610,10 @@ ОбойтиДеревоФайлов14(ПараметрыВыполнения); КонецПроцедуры +// Параметры: +// Результат - КодВозвратаДиалога +// ПараметрыВыполнения - см. ПараметрыВыполнения +// &НаКлиенте Процедура ОбойтиДеревоФайлов12(Результат, ПараметрыВыполнения) Экспорт Если РаботаСФайламиСлужебныйКлиент.БлокирующаяФормаОткрыта(ПараметрыВыполнения) Тогда diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl index 96c2dd814..41c624003 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl @@ -1770,6 +1770,27 @@ КопияКомментария = Комментарий; КонецПроцедуры +// Параметры: +// Контекст - Структура: +// * ВидКонтактнойИнформации - см. УправлениеКонтактнойИнформациейСлужебный.СтруктураВидаКонтактнойИнформации +// * НаселенныйПунктДетально - Структура +// * ОсновнаяСтрана - СправочникСсылка.СтраныМира +// * Страна - СправочникСсылка.СтраныМира +// +// ВозвращатьСписокЗначений - Булево +// Возвращаемое значение: +// Структура: +// * ДанныеВыбора - Структура: +// ** Представление - Строка +// ** КонтактнаяИнформация - Строка +// ** Значение - Строка +// ** Комментарий - Строка +// ** ВведеноВСвободнойФорме - Булево +// ** ВВидеГиперссылки - Булево +// ** Вид - СправочникСсылка.ВидыКонтактнойИнформации +// ** Тип - ПеречислениеСсылка.ТипыКонтактнойИнформации +// * ОшибкиЗаполнения - Массив из Строка +// &НаСервереБезКонтекста Функция РезультатВыбора(Контекст, ВозвращатьСписокЗначений = Ложь) @@ -2426,7 +2447,7 @@ Процедура ОтобразитьИнформациюОДатахДействияАдреса(ДействуетС) Если ВводНовогоАдреса Тогда - ТекстИсторическийАдрес = НСтр("ru = ''"); + ТекстИсторическийАдрес = ""; АдресНаДату = ДействуетС; Элементы.ГруппаИсторическийАдрес.Видимость = ЗначениеЗаполнено(ДействуетС); Иначе @@ -3744,6 +3765,10 @@ |Исходный адрес будет перемещен в комментарий. |Продолжить?'"); + Если МеждународныйФорматАдреса Тогда + ТипАдреса = УправлениеКонтактнойИнформациейКлиентСервер.ИностранныйАдрес(); + КонецЕсли; + ДополнительныеПараметры = Новый Структура("ТипАдреса", ТипАдреса); Оповещение = Новый ОписаниеОповещения("ПереключитьНаСтруктурированныйВводЗавершение", ЭтотОбъект, ДополнительныеПараметры ); diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/ManagerModule.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/ManagerModule.bsl index eea8db86b..8da9ce835 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/ManagerModule.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/ManagerModule.bsl @@ -20,7 +20,9 @@ ВыбраннаяФорма = ИмяФормыВводаКонтактнойИнформации(ВидИнформации); Если ВыбраннаяФорма = Неопределено Тогда - ВызватьИсключение НСтр("ru = 'Не обрабатываемый тип адреса: """ + ВидИнформации + """'"); + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не обрабатываемый тип адреса: ""%1""'"), ВидИнформации); + ВызватьИсключение ТекстСообщения; КонецЕсли; КонецЕсли; @@ -339,20 +341,26 @@ // * ФорматАдреса - Строка - тип используемого классификатора. // // Возвращаемое значение: -// * Отказ - Булево - поставщик не доступен. -// * ПодробноеПредставлениеОшибки - Строка - описание ошибки, если поставщик недоступен. Неопределено, если Отказ +// Структура: +// * Данные - СписокЗначений - результат для автоподбора. +// * Отказ - Булево - поставщик не доступен. +// * ПодробноеПредставлениеОшибки - Строка - описание ошибки, если поставщик недоступен. Неопределено, если Отказ // = Ложь. -// * КраткоеПредставлениеОшибки - Строка - описание ошибки, если поставщик недоступен. Неопределено, если Отказ +// * КраткоеПредставлениеОшибки - Строка - описание ошибки, если поставщик недоступен. Неопределено, если Отказ // = Ложь. -// * ОбщаяЧастьПредставления - Строка - общая часть представлений адреса. -// * Данные - СписокЗначений - результат для автоподбора. // Функция СписокАвтоподбораНаселенногоПункта(Текст, ДополнительныеПараметры) Экспорт - Результат = Новый Структура("Данные", Новый СписокЗначений); - СтруктураОшибкиПоставщикаАдресногоКлассификатора(Результат); + + Результат = Новый Структура; + Результат.Вставить("Данные", Новый СписокЗначений); + Результат.Вставить("Отказ", Ложь); + Результат.Вставить("ПодробноеПредставлениеОшибки", Неопределено); + Результат.Вставить("КраткоеПредставлениеОшибки", Неопределено); + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда - Результат.Отказ = Истина; - Результат.КраткоеПредставлениеОшибки = НСтр("ru = 'Адресные сведения отсутствуют.'"); + Результат.Отказ = Истина; + Результат.КраткоеПредставлениеОшибки = НСтр("ru = 'Адресные сведения отсутствуют.'"); + Результат.ПодробноеПредставлениеОшибки = ""; Возврат Результат; КонецЕсли; @@ -372,18 +380,10 @@ // * ТипАдреса - Строка - тип используемого адреса. // // Возвращаемое значение: -// * Отказ - Булево - поставщик не доступен. -// * ПодробноеПредставлениеОшибки - Строка - описание ошибки, если поставщик недоступен. Неопределено, если Отказ -// = Ложь. -// * КраткоеПредставлениеОшибки - Строка - описание ошибки, если поставщик недоступен. Неопределено, если Отказ -// = Ложь. -// * Данные - СписокЗначений - результат для автоподбора. +// см. АдресныйКлассификаторСлужебный.АдресныеОбъектыУровня // Функция СписокАвтоподбораУлицы(Текст, ПараметрыАвтоподбора) Экспорт - Результат = Новый Структура("Данные", Новый СписокЗначений); - СтруктураОшибкиПоставщикаАдресногоКлассификатора(Результат); - Уровень = 7; РодительскийИдентификатор = ПараметрыАвтоподбора.Идентификатор; ТипАдреса = ПараметрыАвтоподбора.ТипАдреса; @@ -598,7 +598,7 @@ ИначеЕсли ЗначениеЗаполнено(ПолеПредставления) Или ТипЗначенийПолей = Тип("СписокЗначений") Тогда Результат.Представление = ПолеПредставления; Иначе - Результат.Представление = РаботаСАдресамиКлиентСервер.ПредставлениеАдреса(Результат, Истина, ) + Результат.Представление = РаботаСАдресамиКлиентСервер.ПредставлениеАдреса(Результат, Истина); КонецЕсли; Адрес.Состав = ?(АдресРоссийский, НациональныйАдрес, Результат.Представление); @@ -612,7 +612,7 @@ // ЗначенияПолей - Строка - сериализованная информация, значения полей. // Представление - Строка - представление старший-младший, используется для попытки разбора, если ЗначенияПолей // пусто. -// ОжидаемыйТип - ПеречислениеСсылка.ТипыКонтактнойИнформации - необязательный тип для контроля. +// ОжидаемыйТип - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип для контроля. // // Возвращаемое значение: // ОбъектXDTO - контактной информации. @@ -815,7 +815,7 @@ Возврат АдресРФ.СвРайМО; КонецЕсли; - АдресРФ.СвРайМО = ФабрикаXDTO.Создать( АдресРФ.Свойства().Получить("СвРайМО").Тип ); + АдресРФ.СвРайМО = ФабрикаXDTO.Создать(АдресРФ.Свойства().Получить("СвРайМО").Тип); Возврат АдресРФ.СвРайМО; КонецФункции @@ -1302,7 +1302,7 @@ // "НедопустимыеСимволыПолей" // "НеСоответствуетДлинаПолей". // * Сообщение - Строка - подробный текст ошибки. -// * Поля - массив структур с полями: +// * Поля - Массив из Структура: // ** ИмяПоля - внутренний идентификатор ошибочного поля. // ** Сообщение - подробный текст ошибки для поля. // @@ -1507,7 +1507,7 @@ КонецПроцедуры // Возвращаемое значение: -// Структура: +// Структура: // * Варианты - Массив // * АдресПроверен - Булево // * СущностьПоля - Неопределено @@ -1604,7 +1604,7 @@ // Параметры: // XDTOКонтактнаяИнформация - ОбъектXDTO // - Строка - контактная информация или строка XML. -// СтарыйСоставПолей - Булево - необязательный флаг того, что из состава полей будут исключены +// СтарыйСоставПолей - Булево - флаг того, что из состава полей будут исключены // поля, отсутствующие в версиях БСП младше 2.1.3. // // Возвращаемое значение: @@ -1670,7 +1670,7 @@ // Параметры: // XDTOАдрес - ОбъектXDTO // - Строка - контактная информация или строка XML. -// РасширенныйСоставПолей - Булево - необязательный флаг того, что состав полей будет сокращен для совместимости +// РасширенныйСоставПолей - Булево - флаг того, что состав полей будет сокращен для совместимости // с обменом БСП 2.1.2. // // Возвращаемое значение: diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Module.bsl index 1935044bc..7bb05c693 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Module.bsl @@ -54,9 +54,18 @@ СписокДанных.ПроизвольныйЗапрос = Истина; + ШаблонТекстаЗапроса = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | &ИменаПолейИРеквизитов + |ИЗ + | &ИмяТаблицыМетаданных КАК ИмяТаблицыМетаданных"; + + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИменаПолейИРеквизитов", СтруктураДанных); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыМетаданных", ИмяТаблицыДанных); + СвойстваСписка = СтруктураСвойствДинамическогоСписка(); СвойстваСписка.ДинамическоеСчитываниеДанных = Истина; - СвойстваСписка.ТекстЗапроса = "ВЫБРАТЬ РАЗЛИЧНЫЕ " + СтруктураДанных + " ИЗ " + ИмяТаблицыДанных; + СвойстваСписка.ТекстЗапроса = ТекстЗапроса; УстановитьСвойстваДинамическогоСписка(Элементы.СписокДанных, СвойстваСписка); diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Настройки/Form.form b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Настройки/Form.form index 6cf2392a5..62b447845 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Настройки/Form.form +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Настройки/Form.form @@ -125,10 +125,6 @@ true - - <key>ru</key> - <value>Авторегистрация вертикальная</value> - АвторегистрацияВертикальнаяРасширеннаяПодсказка 38 @@ -273,10 +269,6 @@ true - - <key>ru</key> - <value>Регистрация и номера сообщений</value> - РегистрацияИНомераСообщенийРасширеннаяПодсказка 35 @@ -400,10 +392,6 @@ true - - <key>ru</key> - <value>Консоль запросов вертикальная</value> - КонсольЗапросовВертикальнаяРасширеннаяПодсказка 46 @@ -429,10 +417,6 @@ true - - <key>ru</key> - <value>Консоль запросов расположение</value> - true КонсольЗапросовРасположениеРасширеннаяПодсказка diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Form.form b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Form.form index bba678032..76e9c3f68 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Form.form @@ -1972,6 +1972,10 @@ 65 Left + + OnActivateRow + СписокКонстантПриАктивизацииСтроки + ChoiceProcessing СписокКонстантОбработкаВыбора @@ -2623,6 +2627,10 @@ Selection СписокСсылокВыбор + + OnActivateRow + СписокСсылокПриАктивизацииСтроки + ChoiceProcessing СписокСсылокОбработкаВыбора @@ -3384,6 +3392,10 @@ Selection СписокНаборовЗаписейВыбор + + OnActivateRow + СписокНаборовЗаписейПриАктивизацииСтроки + ChoiceProcessing СписокНаборовЗаписейОбработкаВыбора diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl index 449f0fb80..aaff662c0 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl @@ -348,7 +348,14 @@ #КонецОбласти #Область ОбработчикиСобытийЭлементовТаблицыФормыСписокКонстант -// + +&НаКлиенте +Процедура СписокКонстантПриАктивизацииСтроки(Элемент) + + ДоступностьКоманды = Элементы.СписокКонстант.ВыделенныеСтроки.Количество() > 0; + Элементы.ПоказатьРезультатВыгрузки.Доступность = ДоступностьКоманды; + +КонецПроцедуры &НаКлиенте Процедура СписокКонстантОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) @@ -369,7 +376,15 @@ #КонецОбласти #Область ОбработчикиСобытийЭлементовТаблицыФормыСписокСсылок -// + +&НаКлиенте +Процедура СписокСсылокПриАктивизацииСтроки(Элемент) + + ДоступностьКоманды = Элементы.СписокСсылок.ВыделенныеСтроки.Количество() > 0; + Элементы.ПоказатьРезультатВыгрузки.Доступность = ДоступностьКоманды; + +КонецПроцедуры + &НаКлиенте Процедура СписокСсылокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; @@ -390,7 +405,14 @@ #КонецОбласти #Область ОбработчикиСобытийЭлементовТаблицыФормыСписокНаборовЗаписей -// + +&НаКлиенте +Процедура СписокНаборовЗаписейПриАктивизацииСтроки(Элемент) + + ДоступностьКоманды = Элементы.СписокНаборовЗаписей.ВыделенныеСтроки.Количество() > 0; + Элементы.ПоказатьРезультатВыгрузки.Доступность = ДоступностьКоманды; + +КонецПроцедуры &НаКлиенте Процедура СписокНаборовЗаписейВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) @@ -963,7 +985,18 @@ &НаКлиенте Процедура НастроитьРедактированиеИзменений() + НастроитьРедактированиеИзмененийСервер(ТекущаяСтрокаМетаданных); + + ТекущаяСтраницаСписка = Элементы.ВариантыСпискаОбъектов.ТекущаяСтраница; + Если ТекущаяСтраницаСписка <> Элементы.СтраницаКонстанты + И ТекущаяСтраницаСписка <> Элементы.СтраницаСписокСсылок + И ТекущаяСтраницаСписка <> Элементы.СтраницаНаборЗаписей Тогда + + Элементы.ПоказатьРезультатВыгрузки.Доступность = Ложь; + + КонецЕсли; + КонецПроцедуры &НаКлиенте @@ -1718,7 +1751,7 @@ КонецФункции // Возвращаемое значение: -// ДанныеФормыСтруктура - поля: +// ДанныеФормыСтруктура: // * Ссылка - ЛюбаяСсылка // * НомерСообщения - Число // * НеВыгружалось - Булево @@ -2018,6 +2051,7 @@ НовСтраница.Видимость = Истина; НастроитьВидимостьКомандОбщегоМеню(); + КонецПроцедуры // Вывод изменений для ссылочного типа (справочник, документ, план видов характеристик, @@ -2039,14 +2073,14 @@ | КОНЕЦ КАК НеВыгружалось, | ОсновнаяТаблица.Ссылка КАК СсылкаОбъекта |ИЗ - | #ИмяТаблицыИзменения# КАК ТаблицаИзменений - | ЛЕВОЕ СОЕДИНЕНИЕ #ИмяТаблицы# КАК ОсновнаяТаблица - | ПО (ОсновнаяТаблица.Ссылка = ТаблицаИзменений.Ссылка) + | &ИмяТаблицыМетаданныхИзменения КАК ТаблицаИзменений + | ЛЕВОЕ СОЕДИНЕНИЕ &ИмяТаблицыМетаданных КАК ОсновнаяТаблица + | ПО ТаблицаИзменений.Ссылка = ОсновнаяТаблица.Ссылка |ГДЕ | ТаблицаИзменений.Узел = &ВыбранныйУзел"; - СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "#ИмяТаблицы#", ИмяТаблицы); - СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "#ИмяТаблицыИзменения#", ИмяТаблицы + ".Изменения"); + СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "&ИмяТаблицыМетаданныхИзменения", ИмяТаблицы + ".Изменения"); + СвойстваСписка.ТекстЗапроса = СтрЗаменить(СвойстваСписка.ТекстЗапроса, "&ИмяТаблицыМетаданных", ИмяТаблицы); УстановитьСвойстваДинамическогоСписка(Элементы.СписокСсылок, СвойстваСписка); @@ -2082,46 +2116,71 @@ Авторегистрация.Добавить(СтруктураАвторегистрацииМетаданных.Константы[Индекс]); КонецЕсли; + ШаблонТекстаЗапроса = + "ВЫБРАТЬ + | &ИндексКартинкиАвторегистрация КАК ИндексКартинкиАвторегистрация, + | 2 КАК ИндексКартинки, + | ""&ПользовательскоеПредставлениеКонстанты"" КАК Наименование, + | ""&ИмяТаблицыМетаданныхПредставление"" КАК МетаПолноеИмя, + | ТаблицаИзменений.НомерСообщения КАК НомерСообщения, + | ВЫБОР + | КОГДА ТаблицаИзменений.НомерСообщения ЕСТЬ NULL + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК НеВыгружалось + |ИЗ + | &ИмяТаблицыМетаданных КАК ТаблицаИзменений + |ГДЕ + | ТаблицаИзменений.Узел = &ВыбранныйУзел"; + // И помнить про ограничение на количество таблиц. Текст = ""; Для Индекс = 0 По Имена.ВГраница() Цикл + Имя = Имена[Индекс]; - Текст = Текст + ?(Текст = "", "ВЫБРАТЬ", "ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ") + " - | " + Формат(Авторегистрация[Индекс], "ЧН=; ЧГ=") + " КАК ИндексКартинкиАвторегистрация, - | 2 КАК ИндексКартинки, - | - | """ + ОбработатьКавычкиВСтроке(Представления[Индекс]) + """ КАК Наименование, - | """ + Имя + """ КАК МетаПолноеИмя, - | - | ТаблицаИзменений.НомерСообщения КАК НомерСообщения, - | ВЫБОР - | КОГДА ТаблицаИзменений.НомерСообщения ЕСТЬ NULL ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ - | КОНЕЦ КАК НеВыгружалось - |ИЗ - | " + Имя + ".Изменения КАК ТаблицаИзменений - |ГДЕ - | ТаблицаИзменений.Узел = &ВыбранныйУзел - |"; + + Если НЕ ПустаяСтрока(Текст) Тогда + + Текст = Текст + Символы.ПС + Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС + Символы.ПС; + + КонецЕсли; + + ТекстПодзапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИндексКартинкиАвторегистрация", Формат(Авторегистрация[Индекс], "ЧН=; ЧГ=")); + ТекстПодзапроса = СтрЗаменить(ТекстПодзапроса, "&ПользовательскоеПредставлениеКонстанты", ОбработатьКавычкиВСтроке(Представления[Индекс])); + ТекстПодзапроса = СтрЗаменить(ТекстПодзапроса, "&ИмяТаблицыМетаданныхПредставление", Имя); + ТекстПодзапроса = СтрЗаменить(ТекстПодзапроса, "&ИмяТаблицыМетаданных", ПодставитьПараметрыВСтроку("%1.Изменения", Имя)); + + Текст = Текст + ТекстПодзапроса; + КонецЦикла; СвойстваСписка = СтруктураСвойствДинамическогоСписка(); СвойстваСписка.ДинамическоеСчитываниеДанных = Истина; - СвойстваСписка.ТекстЗапроса = + + ИтоговыйТекстЗапроса = "ВЫБРАТЬ - | ИндексКартинкиАвторегистрация, ИндексКартинки, МетаПолноеИмя, НеВыгружалось, - | Наименование, НомерСообщения - | + | ИндексКартинкиАвторегистрация, + | ИндексКартинки, + | МетаПолноеИмя, + | НеВыгружалось, + | Наименование, + | НомерСообщения |{ВЫБРАТЬ - | ИндексКартинкиАвторегистрация, ИндексКартинки, - | Наименование, МетаПолноеИмя, - | НомерСообщения, НеВыгружалось - |} - | - |ИЗ (" + Текст + ") Данные - | + | ИндексКартинкиАвторегистрация, + | ИндексКартинки, + | Наименование, + | МетаПолноеИмя, + | НомерСообщения, + | НеВыгружалось} + |ИЗ + | &ТекстВложенногоЗапроса КАК Данные |{ГДЕ - | Наименование, НомерСообщения, НеВыгружалось - |}"; + | Наименование, + | НомерСообщения, + | НеВыгружалось}"; + + ИтоговыйТекстЗапроса = СтрЗаменить(ИтоговыйТекстЗапроса, "&ТекстВложенногоЗапроса", ПодставитьПараметрыВСтроку("(%1)", Текст)); + СвойстваСписка.ТекстЗапроса = ИтоговыйТекстЗапроса; УстановитьСвойстваДинамическогоСписка(Элементы.СписокКонстант, СвойстваСписка); @@ -2278,7 +2337,8 @@ Элементы.ФормаУдалитьРегистрациюОтбор.Доступность = Ложь; КонецЕсли; -КонецПроцедуры + +КонецПроцедуры &НаСервере Функция МассивИменКлючейНабораЗаписей(ИмяТаблицы, ПрефиксИмен = "") @@ -2724,4 +2784,19 @@ КонецФункции +//////////////////////////////////////////////////////////////////////////////// +// Процедуры и функции из базовой функциональности для обеспечения автономности. + +&НаСервере +Функция ПодставитьПараметрыВСтроку(Знач СтрокаПодстановки, Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено) + + СтрокаПодстановки = СтрЗаменить(СтрокаПодстановки, "%1", Параметр1); + СтрокаПодстановки = СтрЗаменить(СтрокаПодстановки, "%2", Параметр2); + СтрокаПодстановки = СтрЗаменить(СтрокаПодстановки, "%3", Параметр3); + + Возврат СтрокаПодстановки; + +КонецФункции + + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl index 2ac28abfd..7e853fdc3 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl @@ -39,9 +39,9 @@ // * НомерОтправленного - Число - данные узла. // * НомерПринятого - Число - данные узла. // * НомерСообщения - Число -// - NULL - если указан объект, то номер сообщения для него, иначе NULL. +// - Null - если указан объект, то номер сообщения для него, иначе NULL. // * НеВыгружалось - Булево -// - NULL - если указан объект, то флаг выгрузки, иначе NULL. +// - Null - если указан объект, то флаг выгрузки, иначе NULL. // * Пометка - Булево - если указан объект, то 0 = нет регистрации, 1 - есть, иначе // всегда 0. // * ИсходнаяПометка - Булево - аналогично колонке "Пометка". @@ -68,88 +68,110 @@ Колонки.Добавить("ИсходнаяПометка"); Колонки.Добавить("ИдентификаторСтроки"); + ТекстПодзапроса = ""; + Запрос = Новый Запрос; Если ОбъектДанных = Неопределено Тогда + МетаОбъект = Неопределено; - ТекстЗапроса = " - |ВЫБРАТЬ - | ПРЕДСТАВЛЕНИЕССЫЛКИ(Ссылка) КАК Наименование, - | ВЫБОР - | КОГДА ПометкаУдаления ТОГДА 2 ИНАЧЕ 1 - | КОНЕЦ КАК ИндексКартинки, - | - | ""{0}"" КАК ПланОбменаИмя, - | Код КАК Код, - | Ссылка КАК Ссылка, - | НомерОтправленного КАК НомерОтправленного, - | НомерПринятого КАК НомерПринятого, - | NULL КАК НомерСообщения, - | NULL КАК НеВыгружалось, - | 0 КАК КоличествоИзмененийНаУзле - |ИЗ - | ПланОбмена.{0} КАК ПланОбмена - |ГДЕ - | НЕ ПланОбмена.ЭтотУзел - |"; + ТекстЗапроса = + "ВЫБРАТЬ + | ПРЕДСТАВЛЕНИЕССЫЛКИ(ПланОбмена.Ссылка) КАК Наименование, + | ВЫБОР + | КОГДА ПланОбмена.ПометкаУдаления + | ТОГДА 2 + | ИНАЧЕ 1 + | КОНЕЦ КАК ИндексКартинки, + | ""&ТекстовоеПредставлениеПланаОбмена"" КАК ПланОбменаИмя, + | ПланОбмена.Код КАК Код, + | ПланОбмена.Ссылка КАК Ссылка, + | ПланОбмена.НомерОтправленного КАК НомерОтправленного, + | ПланОбмена.НомерПринятого КАК НомерПринятого, + | NULL КАК НомерСообщения, + | NULL КАК НеВыгружалось, + | 0 КАК КоличествоИзмененийНаУзле + |ИЗ + | &ИмяТаблицыПланаОбмена КАК ПланОбмена + |ГДЕ + | НЕ ПланОбмена.ЭтотУзел"; Иначе + Если ТипЗнч(ОбъектДанных) = Тип("Структура") Тогда - ТекстЗапроса = ""; + Для Каждого КлючЗначение Из ОбъектДанных Цикл + ТекИмя = КлючЗначение.Ключ; - ТекстЗапроса = ТекстЗапроса + " + ТекстПодзапроса = ТекстПодзапроса + " |И ТаблицаИзменений." + ТекИмя + " = &" + ТекИмя; Запрос.УстановитьПараметр(ТекИмя, ОбъектДанных[ТекИмя]); + КонецЦикла; + ТекИмяТаблицы = ИмяТаблицы; МетаОбъект = МетаданныеПоПолномуИмени(ИмяТаблицы); ИначеЕсли ТипЗнч(ОбъектДанных) = Тип("Строка") Тогда - ТекстЗапроса = ""; + ТекИмяТаблицы = ОбъектДанных; МетаОбъект = МетаданныеПоПолномуИмени(ОбъектДанных); Иначе - ТекстЗапроса = " + + ТекстПодзапроса = " |И ТаблицаИзменений.Ссылка = &ОбъектРегистрации"; Запрос.УстановитьПараметр("ОбъектРегистрации", ОбъектДанных); МетаОбъект = ОбъектДанных.Метаданные(); ТекИмяТаблицы = МетаОбъект.ПолноеИмя(); + КонецЕсли; - ТекстЗапроса = " - |ВЫБРАТЬ - | ПРЕДСТАВЛЕНИЕССЫЛКИ(ПланОбмена.Ссылка) КАК Наименование, - | ВЫБОР - | КОГДА ПланОбмена.ПометкаУдаления ТОГДА 2 ИНАЧЕ 1 - | КОНЕЦ КАК ИндексКартинки, - | - | ""{0}"" КАК ПланОбменаИмя, - | ПланОбмена.Код КАК Код, - | ПланОбмена.Ссылка КАК Ссылка, - | ПланОбмена.НомерОтправленного КАК НомерОтправленного, - | ПланОбмена.НомерПринятого КАК НомерПринятого, - | ТаблицаИзменений.НомерСообщения КАК НомерСообщения, - | ВЫБОР - | КОГДА ТаблицаИзменений.НомерСообщения ЕСТЬ NULL - | ТОГДА ИСТИНА - | ИНАЧЕ ЛОЖЬ - | КОНЕЦ КАК НеВыгружалось, - | КОЛИЧЕСТВО(ТаблицаИзменений.Узел) КАК КоличествоИзмененийНаУзле - |ИЗ - | ПланОбмена.{0} КАК ПланОбмена - |ЛЕВОЕ СОЕДИНЕНИЕ - | " + ТекИмяТаблицы + ".Изменения КАК ТаблицаИзменений - |ПО - | ТаблицаИзменений.Узел = ПланОбмена.Ссылка - | " + ТекстЗапроса + " - |ГДЕ - | НЕ ПланОбмена.ЭтотУзел - |СГРУППИРОВАТЬ ПО - | ПланОбмена.Ссылка, - | ТаблицаИзменений.НомерСообщения - |"; + ТекстЗапроса = + "ВЫБРАТЬ + | ПРЕДСТАВЛЕНИЕССЫЛКИ(ПланОбмена.Ссылка) КАК Наименование, + | ВЫБОР + | КОГДА ПланОбмена.ПометкаУдаления + | ТОГДА 2 + | ИНАЧЕ 1 + | КОНЕЦ КАК ИндексКартинки, + | ""&ТекстовоеПредставлениеПланаОбмена"" КАК ПланОбменаИмя, + | ПланОбмена.Код КАК Код, + | ПланОбмена.Ссылка КАК Ссылка, + | ПланОбмена.НомерОтправленного КАК НомерОтправленного, + | ПланОбмена.НомерПринятого КАК НомерПринятого, + | ТаблицаИзменений.НомерСообщения КАК НомерСообщения, + | ВЫБОР + | КОГДА ТаблицаИзменений.НомерСообщения ЕСТЬ NULL + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ КАК НеВыгружалось, + | КОЛИЧЕСТВО(ТаблицаИзменений.Узел) КАК КоличествоИзмененийНаУзле + |ИЗ + | &ИмяТаблицыПланаОбмена КАК ПланОбмена + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СценарииОбменовДанными.Изменения КАК ТаблицаИзменений + | ПО ПланОбмена.Ссылка = ТаблицаИзменений.Узел + | И &УсловияОбъединенияТаблиц + |ГДЕ + | НЕ ПланОбмена.ЭтотУзел + | + |СГРУППИРОВАТЬ ПО + | ПланОбмена.Ссылка, + | ТаблицаИзменений.НомерСообщения, + | ВЫБОР + | КОГДА ПланОбмена.ПометкаУдаления + | ТОГДА 2 + | ИНАЧЕ 1 + | КОНЕЦ, + | ПланОбмена.Код, + | ПланОбмена.НомерОтправленного, + | ПланОбмена.НомерПринятого, + | ВЫБОР + | КОГДА ТаблицаИзменений.НомерСообщения ЕСТЬ NULL + | ТОГДА ИСТИНА + | ИНАЧЕ ЛОЖЬ + | КОНЕЦ"; + КонецЕсли; ТекНомерСтроки = 0; @@ -171,9 +193,13 @@ КонецЕсли; ИмяПлана = Мета.Имя; - Запрос.Текст = СтрЗаменить(ТекстЗапроса, "{0}", ИмяПлана); - Результат = Запрос.Выполнить(); + Запрос.Текст = СтрЗаменить(ТекстЗапроса, "&ТекстовоеПредставлениеПланаОбмена", ИмяПлана); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицыПланаОбмена", ПодставитьПараметрыВСтроку("ПланОбмена.%1", ИмяПлана)); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "Справочник.СценарииОбменовДанными", ТекИмяТаблицы); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "И &УсловияОбъединенияТаблиц", ТекстПодзапроса); + + Результат = Запрос.Выполнить(); Если Не Результат.Пустой() Тогда СтрокаПлана = Строки.Добавить(); СтрокаПлана.Наименование = Мета.Представление(); @@ -203,6 +229,7 @@ КонецЦикла; Возврат Дерево; + КонецФункции // Возвращает структуру, описывающую метаданные для плана обмена. @@ -344,6 +371,20 @@ Источник = СписокТаблиц; КонецЕсли; + ШаблонТекстаЗапроса = + "ВЫБРАТЬ + | ""&ПредставлениеТаблицыМетаданных"" КАК МетаПолноеИмя, + | ИмяТаблицыМетаданных.Узел КАК УзелОбмена, + | КОЛИЧЕСТВО(*) КАК КоличествоИзменений, + | КОЛИЧЕСТВО(ИмяТаблицыМетаданных.НомерСообщения) КАК КоличествоВыгруженных, + | КОЛИЧЕСТВО(*) - КОЛИЧЕСТВО(ИмяТаблицыМетаданных.НомерСообщения) КАК КоличествоНеВыгруженных + |ИЗ + | Справочник.СценарииОбменовДанными.Изменения КАК ИмяТаблицыМетаданных + |ГДЕ + | ИмяТаблицыМетаданных.Узел В (&СписокУзлов) + |СГРУППИРОВАТЬ ПО + | ИмяТаблицыМетаданных.Узел"; + // Пачками по 200 таблиц в запросе. Текст = ""; Номер = 0; @@ -361,21 +402,19 @@ Продолжить; КонецЕсли; - Текст = Текст + ?(Текст = "", "", "ОБЪЕДИНИТЬ ВСЕ") + " - |ВЫБРАТЬ - | """ + Элемент + """ КАК МетаПолноеИмя, - | Узел КАК УзелОбмена, - | КОЛИЧЕСТВО(*) КАК КоличествоИзменений, - | КОЛИЧЕСТВО(НомерСообщения) КАК КоличествоВыгруженных, - | КОЛИЧЕСТВО(*) - КОЛИЧЕСТВО(НомерСообщения) КАК КоличествоНеВыгруженных - |ИЗ - | " + Элемент + ".Изменения - |ГДЕ - | Узел В (&СписокУзлов) - |СГРУППИРОВАТЬ ПО - | Узел - |"; + ТекстПодзапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ПредставлениеТаблицыМетаданных", СокрЛП(Элемент)); + ТекстПодзапроса = СтрЗаменить(ТекстПодзапроса, "Справочник.СценарииОбменовДанными", СокрЛП(Элемент)); + + Если ПустаяСтрока(Текст) Тогда + Текст = ТекстПодзапроса; + + Иначе + + Текст = Текст + Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС + ТекстПодзапроса; + + КонецЕсли; + Номер = Номер + 1; Если Номер = 200 Тогда Запрос.Текст = Текст; @@ -563,7 +602,7 @@ // Возвращает начало полного имени формы для открытия по переданному объекту. // // Параметры: -// ТекущийОбъект - Строка или ДинамическийСписок - для которого необходимо получить имя формы. +// ТекущийОбъект - Строка, ДинамическийСписок - для которого необходимо получить имя формы. // Возвращаемое значение: // Строка - полное имя формы. // @@ -642,15 +681,22 @@ Результат = Новый Структура(Данные); - Запрос = Новый Запрос( - "ВЫБРАТЬ - | " + Данные + " - |ИЗ - | ПланОбмена." + ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(Ссылка) + " - |ГДЕ - | Ссылка = &Ссылка"); + Запрос = Новый Запрос; Запрос.УстановитьПараметр("Ссылка", Ссылка); + Запрос.Текст = + "ВЫБРАТЬ + | &ИменаРеквизитов + |ИЗ + | &ИмяТаблицыМетаданных КАК ИмяТаблицыМетаданных + |ГДЕ + | ИмяТаблицыМетаданных.Ссылка = &Ссылка"; + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИменаРеквизитов", Данные); + + ИмяПланаОбмена = Ссылка.Метаданные().Имя; + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицыМетаданных", ПодставитьПараметрыВСтроку("ПланОбмена.%1", ИмяПланаОбмена)); + Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда ЗаполнитьЗначенияСвойств(Результат, Выборка); @@ -658,7 +704,7 @@ Возврат Результат; -КонецФункции +КонецФункции // Запись реквизитов узла обмена. // @@ -930,7 +976,18 @@ НеУчитывать = НеУчитывать + "#" + МетаОбщий.Имя + "#" ; КонецЦикла; - Запрос = Новый Запрос("ВЫБРАТЬ * ИЗ " + Мета.ПолноеИмя() + ".Изменения ГДЕ ЛОЖЬ"); + ШаблонТекстаЗапроса = + "ВЫБРАТЬ + | * + |ИЗ + | &ИмяТаблицыМетаданных КАК ИмяТаблицыМетаданных + |ГДЕ + | ЛОЖЬ"; + + ИмяТаблицыМетаданных = Мета.ПолноеИмя() + ".Изменения"; + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяТаблицыМетаданных", ИмяТаблицыМетаданных); + + Запрос = Новый Запрос(ТекстЗапроса); ПустойРезультат = Запрос.Выполнить(); Для Каждого КолонкаРезультата Из ПустойРезультат.Колонки Цикл ИмяКолонки = КолонкаРезультата.Имя; @@ -945,6 +1002,7 @@ КонецЦикла; Возврат Измерения; + КонецЕсли; // Все измерения @@ -1060,7 +1118,7 @@ Префикс = ТаблицаФормы.Имя; Для Каждого Колонка Из Добавлять Цикл ТекИмя = Колонка.Имя; - ЭлементФормы = ЭлементыФормы.Вставить(Префикс + ТекИмя, Тип("ПолеФормы"), Родитель); + ЭлементФормы = ЭлементыФормы.Вставить(Префикс + ТекИмя, Тип("ПолеФормы"), Родитель); // ПолеФормы ЭлементФормы.Вид = ВидПоляФормы.ПолеВвода; ЭлементФормы.ПутьКДанным = ИмяРеквизитаТаблицы + "." + ТекИмя; ЭлементФормы.Заголовок = Колонка.Заголовок; @@ -1536,25 +1594,35 @@ Для Каждого Строка Из ИзмеренияНабораЗаписей(Характеристики.ИмяТаблицы) Цикл ПоляИзмерений = ПоляИзмерений + "," + Строка.Имя КонецЦикла; + ПоляИзмерений = Сред(ПоляИзмерений, 2); Если ПустаяСтрока(ПоляИзмерений) Тогда + // У регистра сведений нет измерений с основным отбором. // Регистрируются все изменения для объекта метаданных. ПланыОбмена.ЗарегистрироватьИзменения(Узел, ОбъектРегистрации); + Иначе - Запрос = Новый Запрос(" - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | " + ПоляИзмерений + " - |ИЗ - | " + Характеристики.ИмяТаблицы + " - |"); + + ШаблонТекстаЗапроса = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | &ИменаПолей + |ИЗ + | &ИмяТаблицыМетаданных КАК ИмяТаблицыМетаданных"; + + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИменаПолей", ПоляИзмерений); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыМетаданных", Характеристики.ИмяТаблицы); + + Запрос = Новый Запрос(ТекстЗапроса); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Данные = Новый Структура(ПоляИзмерений); ЗаполнитьЗначенияСвойств(Данные, Выборка); БСП_РегистрацияИзмененийНабора(Узел, Данные, Характеристики); КонецЦикла; + КонецЕсли; + ИначеЕсли Характеристики.ЭтоКонстанта Тогда Выборка = Характеристики.Менеджер.СоздатьМенеджерЗначения(); МодульОбменДаннымиСобытия.ЗарегистрироватьИзмененияДанных(Узел, Выборка, НастройкаКонтрольВыгрузкиОбъектов); @@ -1582,6 +1650,11 @@ // Возвращает управляемую форму, которой принадлежит элемент. // +// Параметры: +// ЭлементФормы - ЭлементыФормы +// Возвращаемое значение: +// ЭлементыФормы +// Функция ФормаЭлементаФормы(ЭлементФормы) Результат = ЭлементФормы; ТипыФормы = Новый ОписаниеТипов("ФормаКлиентскогоПриложения"); @@ -2177,27 +2250,37 @@ // У РС нет измерений с основным отбором. // Регистрируются все изменения для объекта метаданных. ПланыОбмена.ЗарегистрироватьИзменения(Узел, Описание.Метаданные); + // Для подсчета результата. - Запрос = Новый Запрос("ВЫБРАТЬ - |Количество(*) КАК Количество - |ИЗ " + ТекИмяТаблицы + " - |"); + ШаблонТекстаЗапроса = + "ВЫБРАТЬ + | Количество(*) КАК Количество + |ИЗ + | &ИмяТаблицыМетаданных КАК ИмяТаблицыМетаданных"; + + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяТаблицыМетаданных", ТекИмяТаблицы); + + Запрос = Новый Запрос(ТекстЗапроса); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Результат.Всего = Выборка.Количество; Результат.Успешно = Выборка.Количество; Возврат Результат; + КонецЕсли; Иначе Возврат Результат; КонецЕсли; - Запрос = Новый Запрос(" - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | " + ПоляИзмерений + " - |ИЗ - | " + ТекИмяТаблицы + " - |"); + ШаблонТекстаЗапроса = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | &ИменаПолейИлиРеквизитов + |ИЗ + | &ИмяТаблицыМетаданных КАК ИмяТаблицыМетаданных"; + + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИменаПолейИлиРеквизитов", ПоляИзмерений); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыМетаданных", ТекИмяТаблицы); + Запрос = Новый Запрос(ТекстЗапроса); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Если Описание.ЭтоНабор Тогда @@ -2210,6 +2293,7 @@ КонецЦикла; Возврат Результат; + КонецФункции // Обновляет данные ИОМ и регистрируем на переданном узле. @@ -2256,16 +2340,19 @@ Результат = 0; Запрос = Новый Запрос; + ШаблонТекстаЗапроса = + "ВЫБРАТЬ + | ИмяТаблицыМетаданных.Ссылка + |ИЗ + | &ИмяТаблицыМетаданных КАК ИмяТаблицыМетаданных + |ГДЕ + | ИмяТаблицыМетаданных.Предопределенный"; + Для Каждого ОбъектМетаданных Из КоллекцияМетаданных Цикл Если СоставУзла.Содержит(ОбъектМетаданных) Тогда - Запрос.Текст = " - |ВЫБРАТЬ - | Ссылка - |ИЗ - | " + ОбъектМетаданных.ПолноеИмя() + " - |ГДЕ - | Предопределенный"; + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяТаблицыМетаданных", ОбъектМетаданных.ПолноеИмя()); + Запрос.Текст = ТекстЗапроса; Выборка = Запрос.Выполнить().Выбрать(); Результат = Результат + Выборка.Количество(); @@ -2276,9 +2363,11 @@ КонецЦикла; КонецЕсли; + КонецЦикла; Возврат Результат; + КонецФункции // Параметры: @@ -2328,6 +2417,19 @@ Возврат Дерево; КонецФункции +//////////////////////////////////////////////////////////////////////////////// +// Процедуры и функции из базовой функциональности для обеспечения автономности. + +Функция ПодставитьПараметрыВСтроку(Знач СтрокаПодстановки, Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено) + + СтрокаПодстановки = СтрЗаменить(СтрокаПодстановки, "%1", Параметр1); + СтрокаПодстановки = СтрЗаменить(СтрокаПодстановки, "%2", Параметр2); + СтрокаПодстановки = СтрЗаменить(СтрокаПодстановки, "%3", Параметр3); + + Возврат СтрокаПодстановки; + +КонецФункции + #КонецОбласти #Иначе diff --git a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентноеЗадание/Module.bsl b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентноеЗадание/Module.bsl index 79c10d39c..5b4b8bcba 100644 --- a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентноеЗадание/Module.bsl +++ b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентноеЗадание/Module.bsl @@ -229,8 +229,18 @@ &НаСервере Процедура ЗаписатьРегламентноеЗаданиеНаСервере() + ПараметрыЗадания = Новый Структура( + "Ключ, + |Наименование, + |Использование, + |ИмяПользователя, + |ИнтервалПовтораПриАварийномЗавершении, + |КоличествоПовторовПриАварийномЗавершении, + |Расписание"); + ЗаполнитьЗначенияСвойств(ПараметрыЗадания, ЭтотОбъект); + Если Действие = "Изменить" Тогда - Задание = РегламентныеЗаданияСервер.ПолучитьРегламентноеЗадание(Идентификатор); + РегламентныеЗаданияСервер.ИзменитьЗадание(Идентификатор, ПараметрыЗадания); Иначе ПараметрыЗадания = Новый Структура; ПараметрыЗадания.Вставить("Метаданные", Метаданные.РегламентныеЗадания[ИмяМетаданных]); @@ -241,19 +251,6 @@ Действие = "Изменить"; КонецЕсли; - ЗаполнитьЗначенияСвойств( - Задание, - ЭтотОбъект, - "Ключ, - |Наименование, - |Использование, - |ИмяПользователя, - |ИнтервалПовтораПриАварийномЗавершении, - |КоличествоПовторовПриАварийномЗавершении"); - - Задание.Расписание = Расписание; - Задание.Записать(); - Модифицированность = Ложь; КонецПроцедуры diff --git a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентныеИФоновыеЗадания/Module.bsl b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентныеИФоновыеЗадания/Module.bsl index 1c4a28076..5856bcd14 100644 --- a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентныеИФоновыеЗадания/Module.bsl +++ b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентныеИФоновыеЗадания/Module.bsl @@ -836,9 +836,8 @@ &НаСервере Процедура УдалитьРегламентноеЗаданиеВыполнитьНаСервере(Знач Идентификатор) - Задание = РегламентныеЗаданияСервер.ПолучитьРегламентноеЗадание(Идентификатор); Строка = ТаблицаРегламентныеЗадания.НайтиСтроки(Новый Структура("Идентификатор", Идентификатор))[0]; - Задание.Удалить(); + РегламентныеЗаданияСервер.УдалитьЗадание(Идентификатор); ТаблицаРегламентныеЗадания.Удалить(ТаблицаРегламентныеЗадания.Индекс(Строка)); КонецПроцедуры @@ -888,12 +887,9 @@ Для каждого ВыделеннаяСтрока Из Элементы.ТаблицаРегламентныеЗадания.ВыделенныеСтроки Цикл ТекущиеДанные = ТаблицаРегламентныеЗадания.НайтиПоИдентификатору(ВыделеннаяСтрока); - Задание = РегламентныеЗаданияСервер.ПолучитьРегламентноеЗадание(ТекущиеДанные.Идентификатор); - Если Задание.Использование <> Включено Тогда - Задание.Использование = Включено; - Задание.Записать(); - ТекущиеДанные.Использование = Включено; - КонецЕсли; + РегламентныеЗаданияСервер.ИзменитьЗадание(ТекущиеДанные.Идентификатор, + Новый Структура("Использование", Включено)); + ТекущиеДанные.Использование = Включено; КонецЦикла; КонецПроцедуры diff --git a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Form.form b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Form.form index 045b8aa08..35ced4f22 100644 --- a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Form.form +++ b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Form.form @@ -157,10 +157,6 @@ true - - <key>ru</key> - <value>Авторизации</value> - ГруппаАвторизацииExtendedTooltip 105 @@ -290,10 +286,6 @@ true - - <key>ru</key> - <value>Группа картинки</value> - ГруппаКартинки1ExtendedTooltip 109 @@ -396,10 +388,6 @@ true - - <key>ru</key> - <value>Группа надписей</value> - ГруппаНадписей1ExtendedTooltip 111 @@ -614,10 +602,6 @@ true - - <key>ru</key> - <value>Comcntr файловый режим</value> - ГруппаComcntrФайловыйРежимExtendedTooltip 139 @@ -644,10 +628,6 @@ true - - <key>ru</key> - <value>Ошибки</value> - ГруппаОшибкиExtendedTooltip 131 @@ -699,10 +679,6 @@ true - - <key>ru</key> - <value>Страницы статуса восстановления</value> - СтраницыСтатусаВосстановленияРасширеннаяПодсказка 156 @@ -747,79 +723,6 @@ СтраницаИнформацииИВыполненияРезервногоКопирования 31 - - ГруппаПояснения - 32 - - НадписьПояснения - 33 - - <key>ru</key> - <value>Проводится подготовка к восстановлению данных. -Пожалуйста, не выключайте компьютер.</value> - - true - true - - true - - - НадписьПоясненияExtendedTooltip - 118 - Label - true - true - - Left - - - - НадписьПоясненияКонтекстноеМеню - 34 - true - - Label - true - - Style.TextFont - true - false - false - false - - - Left - - - true - true - - true - - - <key>ru</key> - <value>Пояснения</value> - - - ГруппаПоясненияExtendedTooltip - 117 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - ГруппаАктивныхПользователей 35 @@ -862,10 +765,6 @@ true - - <key>ru</key> - <value>Картинки активных пользователей</value> - ГруппаКартинкиАктивныхПользователейExtendedTooltip 120 @@ -969,10 +868,6 @@ КоличествоАктивныхПользователей 42 - - <key>ru</key> - <value><Количество></value> - true true @@ -1005,10 +900,6 @@ true - - <key>ru</key> - <value>Надписи активных пользователей</value> - ГруппаНадписиАктивныхПользователейExtendedTooltip 122 @@ -1029,15 +920,73 @@ Auto + + ДекорацияАктивныеСеансы + 188 + + <key>ru</key> + <value>Имеются активные сеансы работы с программой, +которые не могут быть завершены принудительно: +</value> + + true + true + + true + + + ДекорацияАктивныеСеансыРасширеннаяПодсказка + 190 + Label + true + true + + Left + + + + ДекорацияАктивныеСеансыКонтекстноеМеню + 189 + true + + Label + true + + Left + + + + НеДожидатьсяЗавершенияСеансов + 191 + true + true + + true + + + НеДожидатьсяЗавершенияСеансовРасширеннаяПодсказка + 192 + Label + true + true + + Left + + + UsualButton + Form.Command.НеДожидатьсяЗавершенияСеансов + Normal + Auto + true + true + UserCmds + Auto + true true true - - <key>ru</key> - <value>Группа</value> - ГруппаРасширеннаяПодсказка 143 @@ -1065,7 +1014,8 @@ <key>ru</key> - <value>Активных пользователей</value> + <value>Подготовка к восстановлению данных. +Пожалуйста, не выключайте компьютер.</value> ГруппаАктивныхПользователейExtendedTooltip @@ -1084,6 +1034,7 @@ NormalSeparation true true + auto Auto Auto @@ -1199,10 +1150,6 @@ true - - <key>ru</key> - <value>Неуспешного копирования</value> - ГруппаНеуспешногоКопированияРасширеннаяПодсказка 174 @@ -1295,10 +1242,6 @@ true - - <key>ru</key> - <value>Не удалось</value> - ГруппаНеУдалосьРасширеннаяПодсказка 179 @@ -1350,10 +1293,6 @@ true - - <key>ru</key> - <value>Страницы загрузки данных</value> - СтраницыЗагрузкиДанныхExtendedTooltip 95 @@ -1642,6 +1581,24 @@ DontUse Auto + + НеДожидатьсяЗавершенияСеансов + + <key>ru</key> + <value>Не дожидаться завершения сеансов (режим отладки)</value> + + 2 + + true + + + + НеДожидатьсяЗавершенияСеансов + + + Auto + Auto + diff --git a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Module.bsl b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Module.bsl index c87141e87..e3da9e74d 100644 --- a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Module.bsl +++ b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Module.bsl @@ -29,9 +29,7 @@ Объект.КаталогСРезервнымиКопиями = НастройкиРезервногоКопирования.КаталогХраненияРезервныхКопий; Если КоличествоСеансовИнформационнойБазы() > 1 Тогда - Элементы.СтраницыСтатусаВосстановления.ТекущаяСтраница = Элементы.СтраницаАктивныеПользователи; - КонецЕсли; ИнформацияОПользователе = РезервноеКопированиеИБСервер.ИнформацияОПользователе(); @@ -43,6 +41,8 @@ ПарольАдминистратораИБ = ""; КонецЕсли; + Элементы.НеДожидатьсяЗавершенияСеансов.Видимость = ОбщегоНазначения.РежимОтладки(); + КонецПроцедуры &НаКлиенте @@ -88,7 +88,7 @@ Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Если ИмяСобытия = "ЗавершениеРаботыПользователей" И Параметр.КоличествоСеансов <= 1 И Элементы.СтраницыЗагрузкиДанных.ТекущаяСтраница = Элементы.СтраницаИнформацииИВыполненияРезервногоКопирования Тогда - НачатьРезервноеКопирование(); + НачатьВосстановлениеДанных(); КонецЕсли; КонецПроцедуры @@ -145,37 +145,8 @@ КонецПроцедуры &НаКлиенте -Процедура ГотовоПослеПроверкиДоступаКИнформационнойБазе(РезультатПодключения, Контекст) Экспорт - - Если РезультатПодключения.ОшибкаПодключенияКомпоненты Тогда - Элементы.СтраницыСтатусаВосстановления.ТекущаяСтраница = Элементы.СтраницаОшибкаПодключения; - ОбнаруженнаяОшибкаПодключения = РезультатПодключения.КраткоеОписаниеОшибки; - Иначе - УстановитьПараметрыРезервногоКопирования(); - - Страницы = Элементы.СтраницыЗагрузкиДанных; - - Страницы.ТекущаяСтраница = Элементы.СтраницаИнформацииИВыполненияРезервногоКопирования; - Элементы.Закрыть.Доступность = Истина; - Элементы.Готово.Доступность = Ложь; - - КоличествоСеансовИнформационнойБазы = КоличествоСеансовИнформационнойБазы(); - Элементы.КоличествоАктивныхПользователей.Заголовок = КоличествоСеансовИнформационнойБазы; - - СоединенияИБВызовСервера.УстановитьБлокировкуСоединений(НСтр("ru = 'Выполняется восстановление информационной базы.'"), "РезервноеКопирование"); - - Если КоличествоСеансовИнформационнойБазы = 1 Тогда - СоединенияИБКлиент.УстановитьПризнакЗавершитьВсеСеансыКромеТекущего(Истина); - СоединенияИБКлиент.УстановитьПризнакРаботаПользователейЗавершается(Истина); - НачатьРезервноеКопирование(); - Иначе - СоединенияИБКлиент.УстановитьОбработчикиОжиданияЗавершенияРаботыПользователей(Истина); - УстановитьОбработчикОжиданияНачалаРезервногоКопирования(); - УстановитьОбработчикОжиданияИстеченияТаймаутаРезервногоКопирования(); - КонецЕсли; - - КонецЕсли; - +Процедура НеДожидатьсяЗавершенияСеансов(Команда) + НачатьВосстановлениеДанных(); КонецПроцедуры &НаКлиенте @@ -187,6 +158,57 @@ #Область СлужебныеПроцедурыИФункции +&НаКлиенте +Процедура ГотовоПослеПроверкиДоступаКИнформационнойБазе(РезультатПодключения, Контекст) Экспорт + + Если РезультатПодключения.ОшибкаПодключенияКомпоненты Тогда + Элементы.СтраницыСтатусаВосстановления.ТекущаяСтраница = Элементы.СтраницаОшибкаПодключения; + ОбнаруженнаяОшибкаПодключения = РезультатПодключения.КраткоеОписаниеОшибки; + Возврат; + КонецЕсли; + + УстановитьПараметрыРезервногоКопирования(); + + Страницы = Элементы.СтраницыЗагрузкиДанных; + + Страницы.ТекущаяСтраница = Элементы.СтраницаИнформацииИВыполненияРезервногоКопирования; + Элементы.Закрыть.Доступность = Истина; + Элементы.Готово.Доступность = Ложь; + + КоличествоСеансовИнформационнойБазы = ПроверитьНаличиеБлокирующихСеансов(); + + СоединенияИБВызовСервера.УстановитьБлокировкуСоединений(НСтр("ru = 'Выполняется восстановление информационной базы.'"), "РезервноеКопирование"); + + Если КоличествоСеансовИнформационнойБазы = 1 Тогда + СоединенияИБКлиент.УстановитьПризнакЗавершитьВсеСеансыКромеТекущего(Истина); + СоединенияИБКлиент.УстановитьПризнакРаботаПользователейЗавершается(Истина); + НачатьВосстановлениеДанных(); + Иначе + СоединенияИБКлиент.УстановитьОбработчикиОжиданияЗавершенияРаботыПользователей(Истина); + УстановитьОбработчикОжиданияНачалаРезервногоКопирования(); + УстановитьОбработчикОжиданияИстеченияТаймаутаРезервногоКопирования(); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция ПроверитьНаличиеБлокирующихСеансов() + + КоличествоСеансовИнформационнойБазы = КоличествоСеансовИнформационнойБазы(); + Элементы.КоличествоАктивныхПользователей.Заголовок = КоличествоСеансовИнформационнойБазы; + + ИнформацияОБлокирующихСеансах = СоединенияИБ.ИнформацияОБлокирующихСеансах(""); + ИмеютсяБлокирующиеСеансы = ИнформацияОБлокирующихСеансах.ИмеютсяБлокирующиеСеансы; + + Если ИмеютсяБлокирующиеСеансы Тогда + Элементы.ДекорацияАктивныеСеансы.Заголовок = ИнформацияОБлокирующихСеансах.ТекстСообщения; + КонецЕсли; + + Элементы.ДекорацияАктивныеСеансы.Видимость = ИмеютсяБлокирующиеСеансы; + Возврат КоличествоСеансовИнформационнойБазы; + +КонецФункции + &НаКлиенте Процедура УстановитьОбработчикОжиданияИстеченияТаймаутаРезервногоКопирования() @@ -325,13 +347,13 @@ Процедура ПроверкаНаЕдинственностьПодключения() Если КоличествоСеансовИнформационнойБазы() = 1 Тогда - НачатьРезервноеКопирование(); + НачатьВосстановлениеДанных(); КонецЕсли; КонецПроцедуры &НаКлиенте -Процедура НачатьРезервноеКопирование() +Процедура НачатьВосстановлениеДанных() #Если Не ВебКлиент И Не МобильныйКлиент Тогда @@ -387,14 +409,13 @@ ПараметрыРаботыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента(); СоздатьКаталог(ПараметрыКопирования.КаталогВременныхФайловОбновления); - ПараметрыСкрипта = Новый Структура; - ПараметрыСкрипта.Вставить("ИмяФайлаПрограммы" , ПараметрыКопирования.ИмяФайлаПрограммы); - ПараметрыСкрипта.Вставить("СобытиеЖурналаРегистрации" , ПараметрыКопирования.СобытиеЖурналаРегистрации); - ПараметрыСкрипта.Вставить("ИмяCOMСоединителя" , ПараметрыРаботыКлиента.ИмяCOMСоединителя); - ПараметрыСкрипта.Вставить("ЭтоБазоваяВерсияКонфигурации", ПараметрыРаботыКлиента.ЭтоБазоваяВерсияКонфигурации); - ПараметрыСкрипта.Вставить("ИнформационнаяБазаФайловая" , ПараметрыРаботыКлиента.ИнформационнаяБазаФайловая); - ПараметрыСкрипта.Вставить("ПараметрыСкрипта" , РезервноеКопированиеИБКлиент.ПараметрыАутентификацииАдминистратораОбновления(ПарольАдминистратораИБ)); - ПараметрыСкрипта.Вставить("ПараметрыЗапускаПредприятия" , ОбщегоНазначенияСлужебныйКлиент.ПараметрыЗапускаПредприятияИзСкрипта()); + ПараметрыСкрипта = РезервноеКопированиеИБКлиент.ОбщиеПараметрыСкрипта(); + ПараметрыСкрипта.ИмяФайлаПрограммы = ПараметрыКопирования.ИмяФайлаПрограммы; + ПараметрыСкрипта.СобытиеЖурналаРегистрации = ПараметрыКопирования.СобытиеЖурналаРегистрации; + ПараметрыСкрипта.ИмяCOMСоединителя = ПараметрыРаботыКлиента.ИмяCOMСоединителя; + ПараметрыСкрипта.ЭтоБазоваяВерсияКонфигурации = ПараметрыРаботыКлиента.ЭтоБазоваяВерсияКонфигурации; + ПараметрыСкрипта.ПараметрыСкрипта = РезервноеКопированиеИБКлиент.ПараметрыАутентификацииАдминистратораОбновления(ПарольАдминистратораИБ); + ПараметрыСкрипта.ПараметрыЗапускаПредприятия = ОбщегоНазначенияСлужебныйКлиент.ПараметрыЗапускаПредприятияИзСкрипта(); Скрипты = СформироватьТекстСкриптов(ПараметрыСкрипта, ПараметрыПриложения["СтандартныеПодсистемы.СообщенияДляЖурналаРегистрации"]); diff --git a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Form.form b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Form.form index 956178941..3d11ca730 100644 --- a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Form.form +++ b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Form.form @@ -231,10 +231,6 @@ true - - <key>ru</key> - <value>Авторизации</value> - ГруппаАвторизацииРасширеннаяПодсказка 303 @@ -440,10 +436,6 @@ true - - <key>ru</key> - <value>Надписей</value> - ГруппаНадписейExtendedTooltip 309 @@ -567,7 +559,6 @@ Left true - true 3 true true @@ -652,10 +643,6 @@ true - - <key>ru</key> - <value>Ошибка</value> - ГруппаОшибкаРасширеннаяПодсказка 360 @@ -707,10 +694,6 @@ true - - <key>ru</key> - <value>Страницы статуса копирования</value> - СтраницыСтатусаКопированияРасширеннаяПодсказка 393 @@ -755,80 +738,6 @@ СтраницаИнформацииИВыполненияРезервногоКопирования 7 - - ГруппаПояснения - 78 - - НадписьПояснения - 79 - - <key>ru</key> - <value>Проводится подготовка к созданию резервной копии. -Пожалуйста, не выключайте компьютер.</value> - - true - true - - true - - - НадписьПоясненияExtendedTooltip - 333 - Label - true - true - - Left - - - - НадписьПоясненияКонтекстноеМеню - 80 - true - - Label - true - true - - Style.TextFont - true - false - false - false - - - Left - - - true - true - - true - - - <key>ru</key> - <value>Пояснения</value> - - - ГруппаПоясненияExtendedTooltip - 332 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - ГруппаАктивныхПользователей 81 @@ -956,10 +865,6 @@ КоличествоАктивныхПользователей 89 - - <key>ru</key> - <value><Количество></value> - true true @@ -993,10 +898,6 @@ true - - <key>ru</key> - <value>Ожидания активных пользователей</value> - ГруппаОжиданияАктивныхПользователейРасширеннаяПодсказка 376 @@ -1086,10 +987,6 @@ true - - <key>ru</key> - <value>Страница ожидания времени запуска</value> - СтраницаОжиданияВремениЗапускаРасширеннаяПодсказка 378 @@ -1111,10 +1008,6 @@ true - - <key>ru</key> - <value>Ожидание</value> - ГруппаОжиданиеРасширеннаяПодсказка 374 @@ -1137,7 +1030,7 @@ ru Имеются активные сеансы работы с программой, которые не могут быть завершены принудительно: -<Сеансы> + true true @@ -1165,15 +1058,38 @@ Left + + НеДожидатьсяЗавершенияСеансов + 440 + true + true + + true + + + НеДожидатьсяЗавершенияСеансовРасширеннаяПодсказка + 441 + Label + true + true + + Left + + + UsualButton + Form.Command.НеДожидатьсяЗавершенияСеансов + Normal + Auto + true + true + UserCmds + Auto + true true true - - <key>ru</key> - <value>Завершение сеансов</value> - ГруппаЗавершениеСеансовРасширеннаяПодсказка 436 @@ -1199,10 +1115,6 @@ true - - <key>ru</key> - <value>Активные сеансы</value> - ГруппаАктивныеСеансыРасширеннаяПодсказка 421 @@ -1230,7 +1142,8 @@ <key>ru</key> - <value>Активных пользователей</value> + <value>Подготовка к резервному копированию. +Пожалуйста, не выключайте компьютер.</value> ГруппаАктивныхПользователейExtendedTooltip @@ -1249,6 +1162,7 @@ NormalSeparation true true + auto Auto Auto @@ -1420,10 +1334,6 @@ true - - <key>ru</key> - <value>Объявления о успешном резервном копирование</value> - ГруппаОбъявленияОУспешномРезервномКопированиеРасширеннаяПодсказка 343 @@ -1523,10 +1433,6 @@ true - - <key>ru</key> - <value>Автоматическое резервное копирование</value> - ГруппаАвтоматическоеРезервноеКопированиеРасширеннаяПодсказка 419 @@ -1627,10 +1533,6 @@ true - - <key>ru</key> - <value>Неуспешного копирования</value> - ГруппаНеуспешногоКопированияРасширеннаяПодсказка 348 @@ -1755,10 +1657,6 @@ true - - <key>ru</key> - <value>Расшифровка</value> - ГруппаРасшифровкаРасширеннаяПодсказка 408 @@ -1784,10 +1682,6 @@ true - - <key>ru</key> - <value>Не удалось</value> - ГруппаНеУдалосьРасширеннаяПодсказка 350 @@ -1839,10 +1733,6 @@ true - - <key>ru</key> - <value>Страницы помощника</value> - СтраницыПомощникаExtendedTooltip 290 @@ -2092,20 +1982,6 @@ true - - КаталогПрограммы - 11 - - String - - - - true - - - true - - ФормаДалее @@ -2172,6 +2048,24 @@ <currentRowUse>DontUse</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> + <formCommands> + <name>НеДожидатьсяЗавершенияСеансов</name> + <title> + <key>ru</key> + <value>Не дожидаться завершения сеансов (режим отладки)</value> + + 3 + + true + + + + НеДожидатьсяЗавершенияСеансов + + + Auto + Auto + РежимРаботы @@ -2200,6 +2094,7 @@ String + true diff --git a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Module.bsl b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Module.bsl index d57c56e7a..ff641ab21 100644 --- a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Module.bsl +++ b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Module.bsl @@ -66,8 +66,8 @@ ТекстЗаголовка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстЗаголовка, ДатаПоследнегоКопирования); КонецЕсли; Элементы.НадписьДатаПроведенияПоследнегоРезервногоКопирования.Заголовок = ТекстЗаголовка; - Элементы.ГруппаАвтоматическоеРезервноеКопирование.Видимость = Не НастройкиРезервногоКопирования.ВыполнятьАвтоматическоеРезервноеКопирование; + Элементы.НеДожидатьсяЗавершенияСеансов.Видимость = ОбщегоНазначения.РежимОтладки(); ИнформацияОПользователе = РезервноеКопированиеИБСервер.ИнформацияОПользователе(); ТребуетсяВводПароля = ИнформацияОПользователе.ТребуетсяВводПароля; @@ -87,8 +87,7 @@ КонецЕсли; РезервноеКопированиеИБСервер.УстановитьЗначениеНастройки("РучнойЗапускПоследнегоРезервногоКопирования", РучнойЗапуск); - Параметры.Свойство("КаталогПрограммы", КаталогПрограммы); - + КонецПроцедуры &НаКлиенте @@ -219,6 +218,11 @@ ОткрытьФорму("Обработка.ЖурналРегистрации.Форма.ЖурналРегистрации", , ЭтотОбъект); КонецПроцедуры +&НаКлиенте +Процедура НеДожидатьсяЗавершенияСеансов(Команда) + НачатьРезервноеКопирование(); +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -254,8 +258,7 @@ Возврат; КонецЕсли; - КоличествоСеансовИнформационнойБазы = КоличествоСеансовИнформационнойБазы(); - Элементы.КоличествоАктивныхПользователей.Заголовок = КоличествоСеансовИнформационнойБазы; + ПроверитьНаличиеБлокирующихСеансов(); Оповещение = Новый ОписаниеОповещения( "ПерейтиНаСтраницуРезервногоКопированияПослеПроверкиДоступаКИнформационнойБазе", ЭтотОбъект); РезервноеКопированиеИБКлиент.ПроверитьДоступКИнформационнойБазе(ПарольАдминистратораИБ, Оповещение); @@ -275,8 +278,7 @@ УстановитьПараметрыРезервногоКопирования(); УстановитьПроцессВыполняется(Истина); - КоличествоСеансовИнформационнойБазы = КоличествоСеансовИнформационнойБазы(); - Элементы.КоличествоАктивныхПользователей.Заголовок = КоличествоСеансовИнформационнойБазы; + КоличествоСеансовИнформационнойБазы = ПроверитьНаличиеБлокирующихСеансов(); Элементы.Отмена.Доступность = Истина; Элементы.Далее.Доступность = Ложь; @@ -289,8 +291,6 @@ СоединенияИБКлиент.УстановитьПризнакРаботаПользователейЗавершается(Истина); НачатьРезервноеКопирование(); Иначе - ПроверитьНаличиеБлокирующихСеансов(); - СоединенияИБКлиент.УстановитьОбработчикиОжиданияЗавершенияРаботыПользователей(Истина); УстановитьОбработчикОжиданияНачалаРезервногоКопирования(); УстановитьОбработчикОжиданияИстеченияТаймаутаРезервногоКопирования(); @@ -299,7 +299,10 @@ КонецПроцедуры &НаСервере -Процедура ПроверитьНаличиеБлокирующихСеансов() +Функция ПроверитьНаличиеБлокирующихСеансов() + + КоличествоСеансовИнформационнойБазы = КоличествоСеансовИнформационнойБазы(); + Элементы.КоличествоАктивныхПользователей.Заголовок = КоличествоСеансовИнформационнойБазы; ИнформацияОБлокирующихСеансах = СоединенияИБ.ИнформацияОБлокирующихСеансах(""); ИмеютсяБлокирующиеСеансы = ИнформацияОБлокирующихСеансах.ИмеютсяБлокирующиеСеансы; @@ -309,8 +312,9 @@ КонецЕсли; Элементы.ДекорацияАктивныеСеансы.Видимость = ИмеютсяБлокирующиеСеансы; + Возврат КоличествоСеансовИнформационнойБазы; -КонецПроцедуры +КонецФункции &НаКлиенте Процедура ПерейтиНаСтраницуРезультатовРезервногоКопирования() @@ -585,14 +589,14 @@ ПараметрыРаботыКлиентаПриЗапуске = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске(); СоздатьКаталог(ПараметрыРезервногоКопирования.КаталогВременныхФайловОбновления); - ПараметрыСкрипта = Новый Структура; - ПараметрыСкрипта.Вставить("КаталогПрограммы" , КаталогПрограммы); - ПараметрыСкрипта.Вставить("ИмяФайлаПрограммы" , ПараметрыРезервногоКопирования.ИмяФайлаПрограммы); - ПараметрыСкрипта.Вставить("СобытиеЖурналаРегистрации" , ПараметрыРезервногоКопирования.СобытиеЖурналаРегистрации); - ПараметрыСкрипта.Вставить("ИмяCOMСоединителя" , ПараметрыРаботыКлиентаПриЗапуске.ИмяCOMСоединителя); - ПараметрыСкрипта.Вставить("ЭтоБазоваяВерсияКонфигурации" , ПараметрыРаботыКлиентаПриЗапуске.ЭтоБазоваяВерсияКонфигурации); - ПараметрыСкрипта.Вставить("ПараметрыСкрипта" , РезервноеКопированиеИБКлиент.ПараметрыАутентификацииАдминистратораОбновления(ПарольАдминистратораИБ)); - ПараметрыСкрипта.Вставить("ПараметрыЗапускаПредприятия" , ОбщегоНазначенияСлужебныйКлиент.ПараметрыЗапускаПредприятияИзСкрипта()); + ПараметрыСкрипта = РезервноеКопированиеИБКлиент.ОбщиеПараметрыСкрипта(); + ПараметрыСкрипта.КаталогПрограммы = Параметры.КаталогПрограммы; + ПараметрыСкрипта.ИмяФайлаПрограммы = ПараметрыРезервногоКопирования.ИмяФайлаПрограммы; + ПараметрыСкрипта.СобытиеЖурналаРегистрации = ПараметрыРезервногоКопирования.СобытиеЖурналаРегистрации; + ПараметрыСкрипта.ИмяCOMСоединителя = ПараметрыРаботыКлиентаПриЗапуске.ИмяCOMСоединителя; + ПараметрыСкрипта.ЭтоБазоваяВерсияКонфигурации = ПараметрыРаботыКлиентаПриЗапуске.ЭтоБазоваяВерсияКонфигурации; + ПараметрыСкрипта.ПараметрыСкрипта = РезервноеКопированиеИБКлиент.ПараметрыАутентификацииАдминистратораОбновления(ПарольАдминистратораИБ); + ПараметрыСкрипта.ПараметрыЗапускаПредприятия = ОбщегоНазначенияСлужебныйКлиент.ПараметрыЗапускаПредприятияИзСкрипта(); Скрипты = СформироватьТекстСкриптов(ПараметрыСкрипта, ПараметрыПриложения["СтандартныеПодсистемы.СообщенияДляЖурналаРегистрации"]); diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОбновленияИБ/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОбновленияИБ/Module.bsl index 872dc221e..7ec6f74c7 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОбновленияИБ/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОбновленияИБ/Module.bsl @@ -98,6 +98,12 @@ РезультатВыполнения = ЗагрузитьПараметрыРаботыПрограммыВФоне(); + Если ТипЗнч(РезультатВыполнения) = Тип("Структура") + И РезультатВыполнения.Свойство("ОшибкаУдаленияИсправлений") Тогда + СообщениеОНеудачномОбновлении(РезультатВыполнения, Неопределено); + Возврат; + КонецЕсли; + ДополнительныеПараметры = Новый Структура("КраткоеПредставлениеОшибки, ПодробноеПредставлениеОшибки"); Если РезультатВыполнения = "ТребуетсяПерезапускСеанса" Тогда @@ -138,7 +144,16 @@ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации"); - Результат = МодульОбновлениеКонфигурации.ИсправленияИзменены(); + Попытка + Результат = МодульОбновлениеКонфигурации.ИсправленияИзменены(); + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("ОшибкаУдаленияИсправлений"); + ДополнительныеПараметры.Вставить("КраткоеПредставлениеОшибки", КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); + ДополнительныеПараметры.Вставить("ПодробноеПредставлениеОшибки", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + Возврат ДополнительныеПараметры; + КонецПопытки; Если Результат.ЕстьИзменения Тогда Возврат "ТребуетсяПерезапускСеанса"; КонецЕсли; diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Module.bsl index f925c6c64..fe50823fa 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Module.bsl @@ -415,8 +415,6 @@ &НаСервере Процедура СформироватьТаблицуОтложенныхОбработчиков(ВыполненыВсеОбработчики = Истина, НачальноеЗаполнение = Ложь) - ОписанияПодсистем = СтандартныеПодсистемыПовтИсп.ОписанияПодсистем().ПоИменам; - ОбработчикиНеВыполнялись = Истина; СведенияОбОбновлении = ОбновлениеИнформационнойБазыСлужебный.СведенияОбОбновленииИнформационнойБазы(); ВыполняетсяИзменениеПриоритета = СведенияОбОбновлении.УправлениеОтложеннымОбновлением.Свойство("ПриоритетЖелательноБыстрее") diff --git a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Form.form b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Form.form index 88514d865..ffeeb759c 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Form.form +++ b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Form.form @@ -428,10 +428,6 @@ true - - <key>ru</key> - <value>PDF</value> - ГруппаPDFExtendedTooltip 57 @@ -457,10 +453,6 @@ true - - <key>ru</key> - <value>Основное</value> - ГруппаОсновноеРасширеннаяПодсказка 82 @@ -607,10 +599,6 @@ true - - <key>ru</key> - <value>Формата хранения</value> - ГруппаФорматаХраненияExtendedTooltip 61 @@ -720,10 +708,6 @@ true - - <key>ru</key> - <value>Формата сканирования</value> - ГруппаФорматаСканированияExtendedTooltip 64 @@ -945,10 +929,6 @@ true - - <key>ru</key> - <value>Дополнительные настройки</value> - ГруппаДополнительныеНастройкиРасширеннаяПодсказка 84 @@ -974,10 +954,6 @@ true - - <key>ru</key> - <value>Настройки</value> - ГруппаНастройкиExtendedTooltip 55 diff --git a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Form.form b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Form.form index a5172cc47..07e55c4ae 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Form.form +++ b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Form.form @@ -380,10 +380,6 @@ true - - <key>ru</key> - <value>Формата хранения</value> - ГруппаФорматаХраненияExtendedTooltip 52 @@ -493,10 +489,6 @@ true - - <key>ru</key> - <value>Формата сканирования</value> - ГруппаФорматаСканированияExtendedTooltip 55 @@ -718,10 +710,6 @@ true - - <key>ru</key> - <value>Дополнительные настройки</value> - ГруппаДополнительныеНастройкиРасширеннаяПодсказка 72 @@ -747,10 +735,6 @@ true - - <key>ru</key> - <value>Настройки</value> - ГруппаНастройкиРасширеннаяПодсказка 70 diff --git a/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Form.form b/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Form.form index 67fccf25b..1781333c6 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Form.form +++ b/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Form.form @@ -10,10 +10,6 @@ ТаблицаФайлов 9 - - <key>ru</key> - <value>Таблица файлов</value> - true true @@ -279,10 +275,6 @@ true - - <key>ru</key> - <value>Изображения</value> - ГруппаИзображенияExtendedTooltip 31 @@ -447,10 +439,6 @@ true - - <key>ru</key> - <value>Текст настроек</value> - ГруппаТекстНастроекРасширеннаяПодсказка 54 @@ -476,10 +464,6 @@ true - - <key>ru</key> - <value>Сообщение</value> - 2 ГруппаСообщениеExtendedTooltip diff --git a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/ObjectModule.bsl b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/ObjectModule.bsl index 1b0f76feb..d5d264d12 100644 --- a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/ObjectModule.bsl +++ b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/ObjectModule.bsl @@ -88,12 +88,12 @@ КонецПроцедуры // Параметры: -// ОбъектМетаданных - ОбъектМетаданныхРегистрБухгалтерии -// - ОбъектМетаданныхРегистрНакопления -// - ОбъектМетаданныхРегистрРасчета -// - ОбъектМетаданныхРегистрСведений -// ПараметрыОтбора - Неопределено -// - Структура: +// ОбъектМетаданных - ОбъектМетаданныхРегистрБухгалтерии +// - ОбъектМетаданныхРегистрНакопления +// - ОбъектМетаданныхРегистрРасчета +// - ОбъектМетаданныхРегистрСведений +// ПараметрыОтбора - Неопределено +// - Структура: // * ОсновноеПолеОтбора - Строка // * Субъекты - Массив // @@ -135,10 +135,10 @@ | КОЛИЧЕСТВО(*) КАК Количество |ПОМЕСТИТЬ ВтВыборка |ИЗ - | %1 КАК Регистр + | &ИмяТаблицы КАК Регистр | |СГРУППИРОВАТЬ ПО - | Регистр.%2 + | &ИмяИзмерения |; |ВЫБРАТЬ | КОЛИЧЕСТВО(*) КАК ВышеПорога, @@ -168,10 +168,9 @@ Для Каждого Измерение Из МетаданныеРегистра.Измерения Цикл - Запрос = Новый Запрос; - Запрос.Текст = ШаблонЗапроса; - Запрос.Текст = СтрЗаменить(Запрос.Текст, "%1", ОбъектМетаданных.ПолноеИмя); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "%2", Измерение.Имя); + ТекстЗапроса = СтрЗаменить(ШаблонЗапроса, "&ИмяТаблицы", ОбъектМетаданных.ПолноеИмя); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяИзмерения", "Регистр." + Измерение.Имя); + Запрос = Новый Запрос(ТекстЗапроса); Результат = Запрос.Выполнить().Выгрузить(); Строка = ОписанияИзмерений.Добавить(); @@ -234,10 +233,9 @@ "ВЫБРАТЬ | КОЛИЧЕСТВО(*) КАК Количество |ИЗ - | %1 КАК Регистр"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%1", ПолноеИмя); - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса; + | &ИмяТаблицы КАК Регистр"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицы", ПолноеИмя); + Запрос = Новый Запрос(ТекстЗапроса); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); @@ -315,17 +313,17 @@ // Параметры: -// НаборЗаписейРегистра - РегистрРасчетаНаборЗаписейИмяРегистраРасчета -// - РегистрБухгалтерииНаборЗаписейИмяРегистраБухгалтерии -// - РегистрНакопленияНаборЗаписейИмяРегистраНакопления -// - РегистрСведенийНаборЗаписейИмяРегистраСведений -// ОбъектМетаданных - ДеревоЗначений: -// * Имя - Строка -// ПараметрыОтбора - Структура -// - Неопределено: +// НаборЗаписейРегистра - РегистрРасчетаНаборЗаписейИмяРегистраРасчета +// - РегистрБухгалтерииНаборЗаписейИмяРегистраБухгалтерии +// - РегистрНакопленияНаборЗаписейИмяРегистраНакопления +// - РегистрСведенийНаборЗаписейИмяРегистраСведений +// ОбъектМетаданных - ДеревоЗначений: +// * Имя - Строка +// ПараметрыОтбора - Структура +// - Неопределено: // * ОсновноеПолеОтбора - Строка // * Субъекты - Массив -// РегистрироватьНаУзлах - Булево +// РегистрироватьНаУзлах - Булево // Процедура ОбработатьНаборЗаписей(НаборЗаписейРегистра, ОбъектМетаданных, ПараметрыОтбора = Неопределено, РегистрироватьНаУзлах = Ложь) @@ -414,10 +412,10 @@ // Параметры: -// ОбъектМетаданных - ДеревоЗначений: -// * Имя - Строка -// ПараметрыОтбора - Структура -// - Неопределено: +// ОбъектМетаданных - ДеревоЗначений: +// * Имя - Строка +// ПараметрыОтбора - Структура +// - Неопределено: // * ОсновноеПолеОтбора - Строка // * Субъекты - Массив // @@ -650,19 +648,20 @@ Функция ДанныеОбъектаМетаданных(ОбъектМетаданных, ТекущаяСсылка = "") - Запрос = Новый Запрос; + ТекстЗапроса = + "ВЫБРАТЬ ПЕРВЫЕ 1000 + | ОбъектМетаданных.Ссылка + |ИЗ + | &ИмяТаблицы КАК ОбъектМетаданных + |ГДЕ + | ОбъектМетаданных.Ссылка > &Ссылка + |УПОРЯДОЧИТЬ ПО + | ОбъектМетаданных.Ссылка"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицы", ОбъектМетаданных.ПолноеИмя); + + Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Ссылка", ТекущаяСсылка); - - Запрос.Текст = - "ВЫБРАТЬ ПЕРВЫЕ 1000 - | ОбъектМетаданных.Ссылка - |ИЗ - | " + ОбъектМетаданных.ПолноеИмя + " КАК ОбъектМетаданных - |ГДЕ - | ОбъектМетаданных.Ссылка > &Ссылка - |УПОРЯДОЧИТЬ ПО - | ОбъектМетаданных.Ссылка"; - Возврат Запрос.Выполнить().Выгрузить(); КонецФункции @@ -782,10 +781,10 @@ // Процедуры и функции формирования дерева метаданных. // Параметры: -// Параметры - Структура: -// * ДеревоОбрабатываемыхОбъектов - ДеревоЗначений: -// ** Имя - Строка -// АдресХранилища - Строка +// Параметры - Структура: +// * ДеревоОбрабатываемыхОбъектов - ДеревоЗначений: +// ** Имя - Строка +// АдресХранилища - Строка // Процедура ЗаполнитьДеревоОбрабатываемыхОбъектов(Параметры, АдресХранилища) Экспорт @@ -866,10 +865,10 @@ КонецФункции // Параметры: -// ОбъектМетаданных - ОбъектМетаданных -// СтрокаДерева - СтрокаДереваЗначений: -// * Имя - Строка -// ТипМетаданных - Строка +// ОбъектМетаданных - ОбъектМетаданных +// СтрокаДерева - СтрокаДереваЗначений: +// * Имя - Строка +// ТипМетаданных - Строка // Процедура ДобавитьОбъекты(ОбъектМетаданных, СтрокаДерева, ТипМетаданных) diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/РезультатАвтоматическогоСопоставления/Form.form b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/РезультатАвтоматическогоСопоставления/Form.form index 6f6cf191f..c4128883e 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/РезультатАвтоматическогоСопоставления/Form.form +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/РезультатАвтоматическогоСопоставления/Form.form @@ -68,10 +68,6 @@ true - - <key>ru</key> - <value>Командная панель таблицы</value> - КоманднаяПанельТаблицыExtendedTooltip 153 @@ -90,10 +86,6 @@ ТаблицаАвтоматическиСопоставленныхОбъектов 31 - - <key>ru</key> - <value>Таблица автоматически сопоставленных объектов</value> - true true @@ -410,10 +402,6 @@ true - - <key>ru</key> - <value>Поля приемника</value> - true ПоляПриемникаExtendedTooltip @@ -690,10 +678,6 @@ true - - <key>ru</key> - <value>Поля источника</value> - ru Поля приемника @@ -893,10 +877,6 @@ true - - <key>ru</key> - <value>Командная панель формы</value> - true КоманднаяПанельФормыExtendedTooltip @@ -989,10 +969,6 @@ true - - <key>ru</key> - <value>Картинки</value> - ГруппаКартинкиExtendedTooltip 178 @@ -1057,10 +1033,6 @@ true - - <key>ru</key> - <value>Сообщения</value> - ГруппаСообщенияExtendedTooltip 180 @@ -1086,10 +1058,6 @@ true - - <key>ru</key> - <value>Группировка сообщения</value> - ГруппировкаСообщенияExtendedTooltip 177 @@ -1116,10 +1084,6 @@ true - - <key>ru</key> - <value>Рамка</value> - true true true @@ -1220,10 +1184,6 @@ true - - <key>ru</key> - <value>Группа картинки</value> - ГруппаКартинки1ExtendedTooltip 185 @@ -1288,10 +1248,6 @@ true - - <key>ru</key> - <value>Группа сообщения</value> - ГруппаСообщения1ExtendedTooltip 187 @@ -1317,10 +1273,6 @@ true - - <key>ru</key> - <value>Группировка сообщения 1</value> - ru Группировка сообщения @@ -1382,10 +1334,6 @@ true - - <key>ru</key> - <value>Рамка</value> - true true true @@ -1444,10 +1392,6 @@ true - - <key>ru</key> - <value>Командная панель формы 2</value> - true КоманднаяПанельФормы2ExtendedTooltip @@ -1540,10 +1484,6 @@ true - - <key>ru</key> - <value>Группа картинки</value> - ГруппаКартинки2ExtendedTooltip 194 @@ -1609,10 +1549,6 @@ true - - <key>ru</key> - <value>Группа сообщения</value> - ГруппаСообщения2ExtendedTooltip 196 @@ -1638,10 +1574,6 @@ true - - <key>ru</key> - <value>Группировка сообщения 2</value> - ru Группировка сообщения @@ -1703,10 +1635,6 @@ true - - <key>ru</key> - <value>Рамка</value> - true true true @@ -1765,10 +1693,6 @@ true - - <key>ru</key> - <value>Командная панель формы 1</value> - true КоманднаяПанельФормы1ExtendedTooltip @@ -1821,10 +1745,6 @@ true - - <key>ru</key> - <value>Панель основная</value> - true ПанельОсновнаяExtendedTooltip diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Form.form b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Form.form index 4f049ef14..0a3b7f567 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Form.form @@ -94,10 +94,6 @@ true - - <key>ru</key> - <value>Заголовка таблицы</value> - ГруппаЗаголовкаТаблицыExtendedTooltip 340 @@ -267,10 +263,6 @@ true - - <key>ru</key> - <value>Связи</value> - ГруппаСвязиExtendedTooltip 346 @@ -401,10 +393,6 @@ true - - <key>ru</key> - <value>Найти</value> - ГруппаНайтиExtendedTooltip 351 @@ -481,10 +469,6 @@ true - - <key>ru</key> - <value>Настройка</value> - ПодменюНастройкиExtendedTooltip 356 @@ -559,10 +543,6 @@ true - - <key>ru</key> - <value>Форма группа вывести список</value> - ФормаГруппаВывестиСписокExtendedTooltip 358 @@ -580,10 +560,6 @@ true - - <key>ru</key> - <value>Командная панель</value> - КоманднаяПанельExtendedTooltip 343 @@ -605,10 +581,6 @@ true - - <key>ru</key> - <value>Кнопки таблицы</value> - КнопкиТаблицыExtendedTooltip 342 @@ -638,10 +610,6 @@ ТаблицаСопоставления 22 - - <key>ru</key> - <value>Таблица сопоставления</value> - Style.ПоясняющийТекст @@ -927,10 +895,6 @@ true - - <key>ru</key> - <value>Поля приемника</value> - ru Поля источника @@ -957,10 +921,6 @@ true - - <key>ru</key> - <value><Эта программа></value> - ДанныеЭтойПрограммыExtendedTooltip 374 @@ -1239,10 +1199,6 @@ true - - <key>ru</key> - <value>Поля источника</value> - ПоляИсточникаExtendedTooltip 383 @@ -1265,10 +1221,6 @@ true - - <key>ru</key> - <value><Вторая программа></value> - ДанныеВторойПрограммыExtendedTooltip 382 @@ -1448,10 +1400,6 @@ true - - <key>ru</key> - <value>Таблица сопоставления контекстное меню группа связи</value> - ТаблицаСопоставленияКонтекстноеМенюГруппаСвязиExtendedTooltip 363 @@ -1524,10 +1472,6 @@ true - - <key>ru</key> - <value>Таблица сопоставления контекстное меню группа найти</value> - ТаблицаСопоставленияКонтекстноеМенюГруппаНайтиExtendedTooltip 366 @@ -1626,10 +1570,6 @@ true - - <key>ru</key> - <value>Таблица сопоставления контекстное меню группа вывести список</value> - ТаблицаСопоставленияКонтекстноеМенюГруппаВывестиСписокExtendedTooltip 370 @@ -1744,10 +1684,6 @@ true - - <key>ru</key> - <value>Картинки</value> - ГруппаКартинкиExtendedTooltip 393 @@ -1812,10 +1748,6 @@ true - - <key>ru</key> - <value>Сообщения</value> - ГруппаСообщенияExtendedTooltip 395 @@ -1841,10 +1773,6 @@ true - - <key>ru</key> - <value>Группировка сообщения</value> - ГруппировкаСообщенияExtendedTooltip 392 @@ -1871,10 +1799,6 @@ true - - <key>ru</key> - <value>Рамка</value> - true true true @@ -1975,10 +1899,6 @@ true - - <key>ru</key> - <value>Группа картинки</value> - ГруппаКартинки1ExtendedTooltip 400 @@ -2043,10 +1963,6 @@ true - - <key>ru</key> - <value>Группа сообщения</value> - ГруппаСообщения1ExtendedTooltip 402 @@ -2072,10 +1988,6 @@ true - - <key>ru</key> - <value>Группировка сообщения 1</value> - ru Группировка сообщения @@ -2106,10 +2018,6 @@ true - - <key>ru</key> - <value>Рамка</value> - true true true @@ -2166,10 +2074,6 @@ true - - <key>ru</key> - <value>Панель основная</value> - true ПанельОсновнаяExtendedTooltip @@ -2380,10 +2284,6 @@ true - - <key>ru</key> - <value>Дайджест сопоставления</value> - ИнформацияДайджестаСопоставленияExtendedTooltip 404 diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ObjectModule.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ObjectModule.bsl index c9a412e78..411f925eb 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ObjectModule.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/ObjectModule.bsl @@ -539,11 +539,14 @@ // // + // В текст запроса вместо служебных конструкций #any_text# + // добавим параметры, поддержим работу конструктора, потом вернем #any_text#. + ТекстЗапроса = " |//////////////////////////////////////////////////////////////////////////////// {ТаблицаИсточника} |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаИсточника# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаИсточника, | | ТаблицаИсточникаПараметр.Ссылка КАК Ссылка, | ТаблицаИсточникаПараметр.УникальныйИдентификатор КАК УникальныйИдентификатор, @@ -559,7 +562,12 @@ |; |"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаИсточника,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаИсточника#"); + Если ОбменДаннымиСервер.ЭтоПланОбменаXDTO(УзелИнформационнойБазы) Тогда + ТекстЗапроса = ТекстЗапроса + " |//////////////////////////////////////////////////////////////////////////////// {ТаблицаРегистраСоответствияОбъектовИнформационныхБаз} |ВЫБРАТЬ @@ -572,13 +580,19 @@ | РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов КАК СоответствияОбъектовИнформационныхБаз |ГДЕ | СоответствияОбъектовИнформационныхБаз.УзелИнформационнойБазы = &УзелИнформационнойБазы - | И СоответствияОбъектовИнформационныхБаз.Ссылка ССЫЛКА #ТаблицаПриемника# + | И СоответствияОбъектовИнформационныхБаз.Ссылка = &ЭмуляцияСтрокиЗамены | |ИНДЕКСИРОВАТЬ ПО | УникальныйИдентификаторПриемника |; |"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "СоответствияОбъектовИнформационныхБаз.Ссылка = &ЭмуляцияСтрокиЗамены", + "СоответствияОбъектовИнформационныхБаз.Ссылка ССЫЛКА #ТаблицаПриемника#"); + Иначе + ТекстЗапроса = ТекстЗапроса + " |//////////////////////////////////////////////////////////////////////////////// {ТаблицаРегистраСоответствияОбъектовИнформационныхБаз} |ВЫБРАТЬ @@ -599,6 +613,7 @@ | ТипИсточника |; |"; + КонецЕсли; ТекстЗапроса = ТекстЗапроса + " @@ -620,13 +635,14 @@ |"; Если ОбменДаннымиСервер.ЭтоПланОбменаXDTO(УзелИнформационнойБазы) Тогда + ТекстЗапроса = ТекстЗапроса + " |//////////////////////////////////////////////////////////////////////////////// {ТаблицаСопоставленныхОбъектовИсточникаПоРегистру} |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | - | #ПОЛЕ_СОРТИРОВКИ_Приемник# + | &ПОЛЕ_СОРТИРОВКИ_Приемник, | | Ссылка, | 0 КАК СтатусСопоставления, // сопоставленные объекты (0) @@ -644,12 +660,12 @@ |ИЗ | (ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовИсточникаПоРегистру_ВложенныйЗапрос# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовИсточникаПоРегистру_ВложенныйЗапрос, | | ЕСТЬNULL(СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника, ТаблицаПриемника.Ссылка) КАК Ссылка, | - | #ТаблицаИсточникаЭтоГруппа# КАК ЭтоГруппаИсточник, - | #СоответствияОбъектовИнформационныхБазЭтоГруппа# КАК ЭтоГруппаПриемник, + | &ТаблицаИсточникаЭтоГруппа КАК ЭтоГруппаИсточник, + | &СоответствияОбъектовИнформационныхБазЭтоГруппа КАК ЭтоГруппаПриемник, | | // {ДАННЫЕ РЕГИСТРА СОПОСТАВЛЕНИЯ} | ЕСТЬNULL(СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника, ТаблицаПриемника.Ссылка) КАК УникальныйИдентификаторПриемника, @@ -662,9 +678,9 @@ | ТаблицаРегистраСоответствияОбъектовИнформационныхБаз КАК СоответствияОбъектовИнформационныхБаз | ПО | СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторПриемника = ТаблицаИсточника.УникальныйИдентификатор - | И СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника ССЫЛКА #ТаблицаПриемника# + | И СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника = &СоответствияОбъектовИнформационныхБаз | ЛЕВОЕ СОЕДИНЕНИЕ - | #ТаблицаПриемника# КАК ТаблицаПриемника + | Справочник.СценарииОбменовДанными КАК ТаблицаПриемника // СтрокаАвтоматическойЗамены | ПО | ТаблицаИсточника.Ссылка = ТаблицаПриемника.Ссылка | ГДЕ @@ -676,9 +692,9 @@ |//////////////////////////////////////////////////////////////////////////////// {ТаблицаСопоставленныхОбъектовПриемникаПоРегистру} |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | - | #ПОЛЕ_СОРТИРОВКИ_Приемник# + | &ПОЛЕ_СОРТИРОВКИ_Приемник, | | Ссылка, | 0 КАК СтатусСопоставления, // сопоставленные объекты (0) @@ -696,12 +712,12 @@ |ИЗ | (ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПриемникаПоРегистру_ВложенныйЗапрос# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПриемникаПоРегистру_ВложенныйЗапрос, | | ТаблицаПриемника.Ссылка КАК Ссылка, | - | #ТаблицаПриемникаЭтоГруппа# КАК ЭтоГруппаИсточник, - | #ТаблицаПриемникаЭтоГруппа# КАК ЭтоГруппаПриемник, + | &ТаблицаПриемникаЭтоГруппа КАК ЭтоГруппаИсточник, + | &ТаблицаПриемникаЭтоГруппа КАК ЭтоГруппаПриемник, | | // {ДАННЫЕ РЕГИСТРА СОПОСТАВЛЕНИЯ} | СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника КАК УникальныйИдентификаторПриемника, @@ -709,7 +725,7 @@ | СоответствияОбъектовИнформационныхБаз.ТипПриемника КАК ТипИсточника, | СоответствияОбъектовИнформационныхБаз.ТипИсточника КАК ТипПриемника | ИЗ - | #ТаблицаПриемника# КАК ТаблицаПриемника + | Справочник.СценарииОбменовДанными КАК ТаблицаПриемника // СтрокаАвтоматическойЗамены | ЛЕВОЕ СОЕДИНЕНИЕ | ТаблицаРегистраСоответствияОбъектовИнформационныхБаз КАК СоответствияОбъектовИнформационныхБаз | ПО @@ -728,9 +744,9 @@ |//////////////////////////////////////////////////////////////////////////////// {ТаблицаСопоставленныхОбъектовПоНеутвержденнымСвязям} |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | - | #ПОЛЕ_СОРТИРОВКИ_Приемник# + | &ПОЛЕ_СОРТИРОВКИ_Приемник, | | Ссылка, | 3 КАК СтатусСопоставления, // неутвержденные связи (3) @@ -748,12 +764,12 @@ |ИЗ | (ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПоНеутвержденнымСвязям_ВложенныйЗапрос# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПоНеутвержденнымСвязям_ВложенныйЗапрос, | | ТаблицаНеутвержденныхСвязей.УникальныйИдентификаторИсточника КАК Ссылка, | - | #ТаблицаИсточникаЭтоГруппа# КАК ЭтоГруппаИсточник, - | #ТаблицаНеутвержденныхСвязейЭтоГруппа# КАК ЭтоГруппаПриемник, + | &ТаблицаИсточникаЭтоГруппа КАК ЭтоГруппаИсточник, + | &ТаблицаНеутвержденныхСвязейЭтоГруппа КАК ЭтоГруппаПриемник, | | // {ДАННЫЕ РЕГИСТРА СОПОСТАВЛЕНИЯ} | ТаблицаНеутвержденныхСвязей.УникальныйИдентификаторИсточника КАК УникальныйИдентификаторПриемника, @@ -766,21 +782,75 @@ | ТаблицаНеутвержденныхСвязей КАК ТаблицаНеутвержденныхСвязей | ПО | ТаблицаНеутвержденныхСвязей.УникальныйИдентификаторПриемника = ТаблицаИсточника.УникальныйИдентификатор - | И ТаблицаНеутвержденныхСвязей.УникальныйИдентификаторИсточника ССЫЛКА #ТаблицаПриемника# + | И ТаблицаНеутвержденныхСвязей.УникальныйИдентификаторИсточника = &ТаблицаПриемника | | ГДЕ | НЕ ТаблицаНеутвержденныхСвязей.УникальныйИдентификаторИсточника ЕСТЬ NULL | ) КАК ВложенныйЗапрос |; |"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЕ_СОРТИРОВКИ_Приемник,", + "#ПОЛЕ_СОРТИРОВКИ_Приемник#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовИсточникаПоРегистру_ВложенныйЗапрос,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовИсточникаПоРегистру_ВложенныйЗапрос#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ТаблицаИсточникаЭтоГруппа", + "#ТаблицаИсточникаЭтоГруппа#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&СоответствияОбъектовИнформационныхБазЭтоГруппа", + "#СоответствияОбъектовИнформационныхБазЭтоГруппа#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "И СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника = &СоответствияОбъектовИнформационныхБаз", + "И СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника ССЫЛКА #ТаблицаПриемника#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "Справочник.СценарииОбменовДанными КАК ТаблицаПриемника // СтрокаАвтоматическойЗамены", + "#ТаблицаПриемника# КАК ТаблицаПриемника"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПриемникаПоРегистру_ВложенныйЗапрос,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПриемникаПоРегистру_ВложенныйЗапрос#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПриемникаПоРегистру_ВложенныйЗапрос,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПриемникаПоРегистру_ВложенныйЗапрос#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ТаблицаПриемникаЭтоГруппа", + "#ТаблицаПриемникаЭтоГруппа#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПоНеутвержденнымСвязям_ВложенныйЗапрос,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПоНеутвержденнымСвязям_ВложенныйЗапрос#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ТаблицаНеутвержденныхСвязейЭтоГруппа", + "#ТаблицаНеутвержденныхСвязейЭтоГруппа#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "ТаблицаНеутвержденныхСвязей.УникальныйИдентификаторИсточника = &ТаблицаПриемника", + "ТаблицаНеутвержденныхСвязей.УникальныйИдентификаторИсточника ССЫЛКА #ТаблицаПриемника#"); + Иначе + ТекстЗапроса = ТекстЗапроса + " |//////////////////////////////////////////////////////////////////////////////// {ТаблицаСопоставленныхОбъектовИсточникаПоРегистру} |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | - | #ПОЛЕ_СОРТИРОВКИ_Приемник# + | &ПОЛЕ_СОРТИРОВКИ_Приемник, | | Ссылка, | 0 КАК СтатусСопоставления, // сопоставленные объекты (0) @@ -798,12 +868,12 @@ |ИЗ | (ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовИсточникаПоРегистру_ВложенныйЗапрос# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовИсточникаПоРегистру_ВложенныйЗапрос, | | СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника КАК Ссылка, | - | #ТаблицаИсточникаЭтоГруппа# КАК ЭтоГруппаИсточник, - | #СоответствияОбъектовИнформационныхБазЭтоГруппа# КАК ЭтоГруппаПриемник, + | &ТаблицаИсточникаЭтоГруппа КАК ЭтоГруппаИсточник, + | &СоответствияОбъектовИнформационныхБазЭтоГруппа КАК ЭтоГруппаПриемник, | | // {ДАННЫЕ РЕГИСТРА СОПОСТАВЛЕНИЯ} | СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника КАК УникальныйИдентификаторПриемника, @@ -824,9 +894,9 @@ |//////////////////////////////////////////////////////////////////////////////// {ТаблицаСопоставленныхОбъектовПриемникаПоРегистру} |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | - | #ПОЛЕ_СОРТИРОВКИ_Приемник# + | &ПОЛЕ_СОРТИРОВКИ_Приемник, | | Ссылка, | 0 КАК СтатусСопоставления, // сопоставленные объекты (0) @@ -844,12 +914,12 @@ |ИЗ | (ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПриемникаПоРегистру_ВложенныйЗапрос# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПриемникаПоРегистру_ВложенныйЗапрос, | | ТаблицаПриемника.Ссылка КАК Ссылка, | - | #ТаблицаПриемникаЭтоГруппа# КАК ЭтоГруппаИсточник, - | #ТаблицаПриемникаЭтоГруппа# КАК ЭтоГруппаПриемник, + | &ТаблицаПриемникаЭтоГруппа КАК ЭтоГруппаИсточник, + | &ТаблицаПриемникаЭтоГруппа КАК ЭтоГруппаПриемник, | | // {ДАННЫЕ РЕГИСТРА СОПОСТАВЛЕНИЯ} | СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника КАК УникальныйИдентификаторПриемника, @@ -857,7 +927,7 @@ | СоответствияОбъектовИнформационныхБаз.ТипПриемника КАК ТипИсточника, | СоответствияОбъектовИнформационныхБаз.ТипИсточника КАК ТипПриемника | ИЗ - | #ТаблицаПриемника# КАК ТаблицаПриемника + | Справочник.СценарииОбменовДанными КАК ТаблицаПриемника // СтрокаАвтоматическойЗамены | ЛЕВОЕ СОЕДИНЕНИЕ | ТаблицаРегистраСоответствияОбъектовИнформационныхБаз КАК СоответствияОбъектовИнформационныхБаз | ПО @@ -877,9 +947,9 @@ |//////////////////////////////////////////////////////////////////////////////// {ТаблицаСопоставленныхОбъектовПоНеутвержденнымСвязям} |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | - | #ПОЛЕ_СОРТИРОВКИ_Приемник# + | &ПОЛЕ_СОРТИРОВКИ_Приемник, | | Ссылка, | 3 КАК СтатусСопоставления, // неутвержденные связи (3) @@ -897,12 +967,12 @@ |ИЗ | (ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПоНеутвержденнымСвязям_ВложенныйЗапрос# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПоНеутвержденнымСвязям_ВложенныйЗапрос, | | ТаблицаНеутвержденныхСвязей.УникальныйИдентификаторИсточника КАК Ссылка, | - | #ТаблицаИсточникаЭтоГруппа# КАК ЭтоГруппаИсточник, - | #ТаблицаНеутвержденныхСвязейЭтоГруппа# КАК ЭтоГруппаПриемник, + | &ТаблицаИсточникаЭтоГруппа КАК ЭтоГруппаИсточник, + | &ТаблицаНеутвержденныхСвязейЭтоГруппа КАК ЭтоГруппаПриемник, | | // {ДАННЫЕ РЕГИСТРА СОПОСТАВЛЕНИЯ} | ТаблицаНеутвержденныхСвязей.УникальныйИдентификаторИсточника КАК УникальныйИдентификаторПриемника, @@ -922,15 +992,56 @@ | ) КАК ВложенныйЗапрос |; |"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЕ_СОРТИРОВКИ_Приемник,", + "#ПОЛЕ_СОРТИРОВКИ_Приемник#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовИсточникаПоРегистру_ВложенныйЗапрос,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовИсточникаПоРегистру_ВложенныйЗапрос#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ТаблицаИсточникаЭтоГруппа", + "#ТаблицаИсточникаЭтоГруппа#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&СоответствияОбъектовИнформационныхБазЭтоГруппа", + "#СоответствияОбъектовИнформационныхБазЭтоГруппа#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПриемникаПоРегистру_ВложенныйЗапрос,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПриемникаПоРегистру_ВложенныйЗапрос#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ТаблицаПриемникаЭтоГруппа", + "#ТаблицаПриемникаЭтоГруппа#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "Справочник.СценарииОбменовДанными КАК ТаблицаПриемника // СтрокаАвтоматическойЗамены", + "#ТаблицаПриемника# КАК ТаблицаПриемника"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПоНеутвержденнымСвязям_ВложенныйЗапрос,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПоНеутвержденнымСвязям_ВложенныйЗапрос#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ТаблицаНеутвержденныхСвязейЭтоГруппа", + "#ТаблицаНеутвержденныхСвязейЭтоГруппа#"); + КонецЕсли; ТекстЗапроса = ТекстЗапроса + " |//////////////////////////////////////////////////////////////////////////////// {ТаблицаСопоставленныхОбъектов} |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | - | #ПОЛЯ_СОРТИРОВКИ# + | &ПОЛЯ_СОРТИРОВКИ, | | Ссылка, | СтатусСопоставления, @@ -965,9 +1076,9 @@ | ( | ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | - | #ПОЛЯ_СОРТИРОВКИ# + | &ПОЛЯ_СОРТИРОВКИ, | | Ссылка, | СтатусСопоставления, @@ -988,9 +1099,9 @@ | | ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | - | #ПОЛЯ_СОРТИРОВКИ# + | &ПОЛЯ_СОРТИРОВКИ, | | Ссылка, | СтатусСопоставления, @@ -1011,9 +1122,9 @@ | | ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | - | #ПОЛЯ_СОРТИРОВКИ# + | &ПОЛЯ_СОРТИРОВКИ, | | Ссылка, | СтатусСопоставления, @@ -1041,9 +1152,9 @@ | | Ссылка, | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | - | #ПОЛЕ_СОРТИРОВКИ_Источник# + | &ПОЛЕ_СОРТИРОВКИ_Источник, | | -1 КАК СтатусСопоставления, // несопоставленные объекты источника (-1) | 1 КАК СтатусСопоставленияДополнительный, // несопоставленные объекты (1) @@ -1079,7 +1190,7 @@ | ЭтоГруппаИсточник, | ЭтоГруппаПриемник, | Ссылка, - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | УникальныйИдентификаторПриемника, | УникальныйИдентификаторИсточника, | ТипИсточника, @@ -1087,12 +1198,12 @@ | ИЗ | (ВЫБРАТЬ | - | #ТаблицаИсточникаЭтоГруппа# КАК ЭтоГруппаИсточник, + | &ТаблицаИсточникаЭтоГруппа КАК ЭтоГруппаИсточник, | NULL КАК ЭтоГруппаПриемник, | | ТаблицаИсточника.Ссылка КАК Ссылка, | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовИсточника_ВложенныйЗапрос# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовИсточника_ВложенныйЗапрос, | | // {ДАННЫЕ РЕГИСТРА СОПОСТАВЛЕНИЯ} | NULL КАК УникальныйИдентификаторПриемника, @@ -1111,12 +1222,12 @@ | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ - | #ТаблицаИсточникаЭтоГруппа#, + | &ТаблицаИсточникаЭтоГруппа, | NULL, | | ТаблицаИсточника.Ссылка, | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовИсточника_ВложенныйЗапрос1# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовИсточника_ВложенныйЗапрос1, | | // {ДАННЫЕ РЕГИСТРА СОПОСТАВЛЕНИЯ} | NULL, @@ -1136,7 +1247,7 @@ | ЭтоГруппаИсточник, | ЭтоГруппаПриемник, | Ссылка, - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | УникальныйИдентификаторПриемника, | УникальныйИдентификаторИсточника, | ТипИсточника, @@ -1149,9 +1260,9 @@ | | Ссылка, | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | - | #ПОЛЕ_СОРТИРОВКИ_Приемник# + | &ПОЛЕ_СОРТИРОВКИ_Приемник, | | 1 КАК СтатусСопоставления, // несопоставленные объекты приемника (1) | 1 КАК СтатусСопоставленияДополнительный, // несопоставленные объекты (1) @@ -1186,10 +1297,10 @@ | | ТаблицаПриемника.Ссылка КАК Ссылка, | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовПриемника_ВложенныйЗапрос# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовПриемника_ВложенныйЗапрос, | | NULL КАК ЭтоГруппаИсточник, - | #ТаблицаПриемникаЭтоГруппа# КАК ЭтоГруппаПриемник, + | &ТаблицаПриемникаЭтоГруппа КАК ЭтоГруппаПриемник, | | // {ДАННЫЕ РЕГИСТРА СОПОСТАВЛЕНИЯ} | ТаблицаПриемника.Ссылка КАК УникальныйИдентификаторПриемника, @@ -1197,7 +1308,7 @@ | Неопределено КАК ТипИсточника, | &ТипПриемника КАК ТипПриемника | ИЗ - | #ТаблицаПриемника# КАК ТаблицаПриемника + | Справочник.СценарииОбменовДанными КАК ТаблицаПриемника // СтрокаАвтоматическойЗамены | ЛЕВОЕ СОЕДИНЕНИЕ | ТаблицаСопоставленныхОбъектов КАК ТаблицаСопоставленныхОбъектов | ПО @@ -1209,6 +1320,50 @@ | |"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЯ_СОРТИРОВКИ,", + "#ПОЛЯ_СОРТИРОВКИ#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЕ_СОРТИРОВКИ_Источник,", + "#ПОЛЕ_СОРТИРОВКИ_Источник#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ТаблицаИсточникаЭтоГруппа", + "#ТаблицаИсточникаЭтоГруппа#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовИсточника_ВложенныйЗапрос,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовИсточника_ВложенныйЗапрос#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовИсточника_ВложенныйЗапрос1,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовИсточника_ВложенныйЗапрос1#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЕ_СОРТИРОВКИ_Приемник,", + "#ПОЛЕ_СОРТИРОВКИ_Приемник#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовПриемника_ВложенныйЗапрос,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовПриемника_ВложенныйЗапрос#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ТаблицаПриемникаЭтоГруппа", + "#ТаблицаПриемникаЭтоГруппа#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "Справочник.СценарииОбменовДанными КАК ТаблицаПриемника // СтрокаАвтоматическойЗамены", + "#ТаблицаПриемника# КАК ТаблицаПриемника"); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаИсточника#", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ТаблицаИсточникаПараметр.# КАК #,")); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления#", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ИсточникПолеNN, ПриемникПолеNN,")); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПоСсылке_ВложенныйЗапрос#", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ТаблицаПриемника.# КАК ПриемникПолеNN, ТаблицаИсточника.# КАК ИсточникПолеNN,")); @@ -1293,7 +1448,7 @@ | | Ссылка, | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | | ПриемникИндексКартинки, | ИсточникИндексКартинки, @@ -1312,7 +1467,7 @@ | ТаблицаНеСопоставленныхОбъектовПриемника.ПриемникИндексКартинки, | ТаблицаНеСопоставленныхОбъектовИсточника.ИсточникИндексКартинки, | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаАвтоматическиСопоставленныхОбъектовПоGUID_ВложенныйЗапрос# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаАвтоматическиСопоставленныхОбъектовПоGUID_ВложенныйЗапрос, | | // {ДАННЫЕ РЕГИСТРА СОПОСТАВЛЕНИЯ} | ТаблицаНеСопоставленныхОбъектовИсточника.УникальныйИдентификаторИсточника КАК УникальныйИдентификаторИсточника, @@ -1333,6 +1488,14 @@ |; |"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаАвтоматическиСопоставленныхОбъектовПоGUID_ВложенныйЗапрос,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаАвтоматическиСопоставленныхОбъектовПоGUID_ВложенныйЗапрос#"); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления#", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ИсточникПолеNN, ПриемникПолеNN,")); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаАвтоматическиСопоставленныхОбъектовПоGUID_ВложенныйЗапрос#", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ТаблицаНеСопоставленныхОбъектовИсточника.ИсточникПолеNN КАК ИсточникПолеNN, ТаблицаНеСопоставленныхОбъектовПриемника.ПриемникПолеNN КАК ПриемникПолеNN,")); @@ -1371,7 +1534,7 @@ | | Ссылка, | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | | ПриемникИндексКартинки, | ИсточникИндексКартинки, @@ -1387,7 +1550,7 @@ | | ТаблицаНеСопоставленныхОбъектовПриемника.Ссылка КАК Ссылка, | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаАвтоматическиСопоставленныхОбъектовПоGUID_ВложенныйЗапрос# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаАвтоматическиСопоставленныхОбъектовПоGUID_ВложенныйЗапрос, | | ТаблицаНеСопоставленныхОбъектовПриемника.ПриемникИндексКартинки, | ТаблицаНеСопоставленныхОбъектовИсточника.ИсточникИндексКартинки, @@ -1413,7 +1576,7 @@ |//////////////////////////////////////////////////////////////////////////////// {ТаблицаНеСопоставленныхОбъектовПриемникаПоПолям} |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектов# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектов, | | ТаблицаНеСопоставленныхОбъектов.ПриемникИндексКартинки, | @@ -1436,7 +1599,7 @@ |//////////////////////////////////////////////////////////////////////////////// {ТаблицаНеСопоставленныхОбъектовИсточникаПоПолям} |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектов# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектов, | | ТаблицаНеСопоставленныхОбъектов.ИсточникИндексКартинки, | @@ -1459,7 +1622,7 @@ |//////////////////////////////////////////////////////////////////////////////// {ТаблицаАвтоматическиСопоставленныхОбъектовПолная} // содержит повторяющиеся записи для источника и приемника |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | | ПриемникИндексКартинки, | ИсточникИндексКартинки, @@ -1473,7 +1636,7 @@ |ИЗ | (ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаАвтоматическиСопоставленныхОбъектовПолная_ВложенныйЗапрос# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаАвтоматическиСопоставленныхОбъектовПолная_ВложенныйЗапрос, | | ТаблицаНеСопоставленныхОбъектовПриемникаПоПолям.ПриемникИндексКартинки, | ТаблицаНеСопоставленныхОбъектовИсточникаПоПолям.ИсточникИндексКартинки, @@ -1488,7 +1651,7 @@ | ЛЕВОЕ СОЕДИНЕНИЕ | ТаблицаНеСопоставленныхОбъектовИсточникаПоПолям КАК ТаблицаНеСопоставленныхОбъектовИсточникаПоПолям | ПО - | #УСЛОВИЕ_СОПОСТАВЛЕНИЯ_ПО_ПОЛЯМ# + | &УСЛОВИЕ_СОПОСТАВЛЕНИЯ_ПО_ПОЛЯМ | | ГДЕ | НЕ ТаблицаНеСопоставленныхОбъектовИсточникаПоПолям.УникальныйИдентификаторИсточника ЕСТЬ NULL @@ -1544,7 +1707,7 @@ |//////////////////////////////////////////////////////////////////////////////// {ТаблицаАвтоматическиСопоставленныхОбъектовПоПолям} |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | | ПриемникИндексКартинки, | ИсточникИндексКартинки, @@ -1558,7 +1721,7 @@ |ИЗ | (ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | | ТаблицаАвтоматическиСопоставленныхОбъектовПолная.ПриемникИндексКартинки, | ТаблицаАвтоматическиСопоставленныхОбъектовПолная.ИсточникИндексКартинки, @@ -1591,7 +1754,7 @@ |//////////////////////////////////////////////////////////////////////////////// {ТаблицаАвтоматическиСопоставленныхОбъектов} |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | | ПриемникИндексКартинки, | ИсточникИндексКартинки, @@ -1606,7 +1769,7 @@ | ( | ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | | ПриемникИндексКартинки, | ИсточникИндексКартинки, @@ -1623,7 +1786,7 @@ | | ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | | ПриемникИндексКартинки, | ИсточникИндексКартинки, @@ -1640,6 +1803,26 @@ |; |"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаАвтоматическиСопоставленныхОбъектовПоGUID_ВложенныйЗапрос,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаАвтоматическиСопоставленныхОбъектовПоGUID_ВложенныйЗапрос#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектов,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектов#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаАвтоматическиСопоставленныхОбъектовПолная_ВложенныйЗапрос,", + "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаАвтоматическиСопоставленныхОбъектовПолная_ВложенныйЗапрос#"); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, + "&УСЛОВИЕ_СОПОСТАВЛЕНИЯ_ПО_ПОЛЯМ", + "#УСЛОВИЕ_СОПОСТАВЛЕНИЯ_ПО_ПОЛЯМ#"); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#УСЛОВИЕ_СОПОСТАВЛЕНИЯ_ПО_ПОЛЯМ#", ПолучитьУсловиеСопоставленияПоПолям(СписокПолейСопоставления)); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления#", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ИсточникПолеNN, ПриемникПолеNN,")); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектов#", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ТаблицаНеСопоставленныхОбъектов.ИсточникПолеNN КАК ИсточникПолеNN, ТаблицаНеСопоставленныхОбъектов.ПриемникПолеNN КАК ПриемникПолеNN,")); @@ -1796,7 +1979,7 @@ ТекстЗапроса = " |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | | ИСТИНА КАК Пометка, | @@ -1812,7 +1995,7 @@ | ТаблицаАвтоматическиСопоставленныхОбъектов |"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления#", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ИсточникПолеNN, ПриемникПолеNN,")); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления,", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ИсточникПолеNN, ПриемникПолеNN,")); Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; @@ -1829,9 +2012,9 @@ | |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | - | #ПОЛЯ_СОРТИРОВКИ# + | &ПОЛЯ_СОРТИРОВКИ, | | СтатусСопоставления, | СтатусСопоставленияДополнительный, @@ -1853,9 +2036,9 @@ | |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | - | #ПОЛЯ_СОРТИРОВКИ# + | &ПОЛЯ_СОРТИРОВКИ, | | СтатусСопоставления, | СтатусСопоставленияДополнительный, @@ -1877,9 +2060,9 @@ | |ВЫБРАТЬ | - | #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления# + | &ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления, | - | #ПОЛЯ_СОРТИРОВКИ# + | &ПОЛЯ_СОРТИРОВКИ, | | СтатусСопоставления, | СтатусСопоставленияДополнительный, @@ -1898,8 +2081,8 @@ | ТаблицаСопоставленныхОбъектов |"; - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления#", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ИсточникПолеNN, ПриемникПолеNN,")); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПОЛЯ_СОРТИРОВКИ#", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ПолеСортировкиNN,")); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления,", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ИсточникПолеNN, ПриемникПолеNN,")); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПОЛЯ_СОРТИРОВКИ,", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ПолеСортировкиNN,")); Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; diff --git a/SSL/src/DataProcessors/ТекущиеДела/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТекущиеДела/Forms/Форма/Module.bsl index d2e9d5817..d83c20cde 100644 --- a/SSL/src/DataProcessors/ТекущиеДела/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТекущиеДела/Forms/Форма/Module.bsl @@ -320,7 +320,7 @@ &НаСервере Процедура ЗагрузитьТекущиеДела(АдресТекущихДел) - ТекущиеДела = ПолучитьИзВременногоХранилища(АдресТекущихДел); // см. ТекущиеДелаСлужебный.ТекущиеДела + ТекущиеДела = ПолучитьИзВременногоХранилища(АдресТекущихДел); // см. ТекущиеДелаСервер.ТекущиеДела ВыводимыеДелаИРазделы = Новый Структура; Если ТолькоОбновлениеДел Тогда ЗаполнитьСвернутыеГруппы(); diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/НастройкиУдаленияОбъектов/Module.bsl b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/НастройкиУдаленияОбъектов/Module.bsl index 1c5b5903a..a264a33bb 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/НастройкиУдаленияОбъектов/Module.bsl +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/НастройкиУдаленияОбъектов/Module.bsl @@ -167,7 +167,7 @@ КонецФункции // Параметры: -// Настройки - см. НастройкиИзДанныхФормы +// Настройки - см. НастройкиИзДанныхФормы // &НаСервере Процедура ЗагрузитьНастройки(Настройки) @@ -242,7 +242,7 @@ КонецПроцедуры // Возвращаемое значение: -// Структура: +// Структура: // * РежимУдаления - Строка // * ВыбранныеРеквизиты - ТаблицаЗначений: // ** Метаданные - Строка @@ -376,10 +376,10 @@ КонецПроцедуры &НаСервере -Функция ЗавершитьПроверкаБлокировкиУдаляемыхОбъектовСервер() +Процедура ЗавершитьПроверкаБлокировкиУдаляемыхОбъектовСервер() Элементы.УдаляемыеОбъекты.Доступность = Истина; Элементы.УдаляемыеОбъекты.Картинка = БиблиотекаКартинок.ВосклицательныйЗнакКрасный; -КонецФункции +КонецПроцедуры #КонецОбласти diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Form.form b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Form.form index 68cc5dd4b..308c80ee5 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Form.form +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Form.form @@ -79,10 +79,6 @@ true - - <key>ru</key> - <value>Настройки отбора поиска</value> - Группа1РасширеннаяПодсказка 524 @@ -244,10 +240,6 @@ true - - <key>ru</key> - <value>Команды выбора</value> - КомандыВыбораExtendedTooltip 91 @@ -322,10 +314,6 @@ true - - <key>ru</key> - <value>Команды свернуть развернуть</value> - Группа1РасширеннаяПодсказка8 714 @@ -398,10 +386,6 @@ true - - <key>ru</key> - <value>Активны после поиска помеченные</value> - Группа1РасширеннаяПодсказка7 563 @@ -419,10 +403,6 @@ true - - <key>ru</key> - <value>Командная панель поиск помеченных</value> - Группа1РасширеннаяПодсказка1 682 @@ -501,10 +481,6 @@ true - - <key>ru</key> - <value>Основная</value> - Группа1РасширеннаяПодсказка14 618 @@ -522,7 +498,7 @@ 619 ГруппаОперацииСНеудаленными - 727 + 733 НеУдаленныеИзменить 621 @@ -551,7 +527,7 @@ НеудаленныеУстановитьСнятьПометкуУдаления - 729 + 735 true true @@ -559,7 +535,7 @@ НеудаленныеУстановитьСнятьПометкуУдаленияРасширеннаяПодсказка - 730 + 736 Label true true @@ -580,13 +556,10 @@ true - - <key>ru</key> - <value>Группа операции с неудаленными</value> - + None ГруппаОперацииСНеудаленнымиРасширеннаяПодсказка - 728 + 734 Label true true @@ -594,7 +567,9 @@ Left - + + Compact + Действия @@ -681,10 +656,6 @@ true - - <key>ru</key> - <value>Действия над элементами списка</value> - Группа1РасширеннаяПодсказка15 620 @@ -702,10 +673,6 @@ true - - <key>ru</key> - <value>Командная панель обработка ошибок</value> - Группа1РасширеннаяПодсказка23 686 @@ -776,10 +743,6 @@ true - - <key>ru</key> - <value>Командная панель формы</value> - Группа1РасширеннаяПодсказка3 535 @@ -916,10 +879,6 @@ true - - <key>ru</key> - <value>Пояснение к длительной операции</value> - Группа1РасширеннаяПодсказка5 712 @@ -973,10 +932,6 @@ true - - <key>ru</key> - <value>Состояние выполняется</value> - Группа1РасширеннаяПодсказка20 648 @@ -1073,10 +1028,6 @@ true - - <key>ru</key> - <value>Состояние выполнено</value> - Группа1РасширеннаяПодсказка21 650 @@ -1212,10 +1163,6 @@ true - - <key>ru</key> - <value>Состояние выполнено с ошибками</value> - Группа1РасширеннаяПодсказка16 672 @@ -1431,10 +1378,6 @@ true - - <key>ru</key> - <value>Страницы отображение состояния</value> - Группа1РасширеннаяПодсказка19 646 @@ -1459,10 +1402,6 @@ ДеревоПомеченныхНаУдаление 26 - - <key>ru</key> - <value>Дерево помеченных на удаление</value> - true true @@ -1570,10 +1509,6 @@ true - - <key>ru</key> - <value>Строка списка помеченных</value> - 20 СтрокаСпискаПомеченныхExtendedTooltip @@ -1766,10 +1701,6 @@ true - - <key>ru</key> - <value>Команды выбора</value> - КомандыВыбораИзМенюРасширеннаяПодсказка 364 @@ -1869,10 +1800,6 @@ true - - <key>ru</key> - <value>Дерево помеченных на удаление вспомогательные кнопки</value> - ДеревоПомеченныхНаУдалениеВспомогательныеКнопкиИзМенюРасширеннаяПодсказка 372 @@ -1994,10 +1921,6 @@ НеУдаленные 220 - - <key>ru</key> - <value>Не удаленные</value> - true true @@ -2286,10 +2209,6 @@ true - - <key>ru</key> - <value>Не удаленные таблица</value> - ГруппаНеУдаленныеТаблицаРасширеннаяПодсказка 314 @@ -2368,10 +2287,6 @@ МестаИспользованияНеудаленных 235 - - <key>ru</key> - <value>Связи не удаленных</value> - true true @@ -2774,10 +2689,6 @@ true - - <key>ru</key> - <value>Текст ошибки</value> - Группа1РасширеннаяПодсказка17 635 @@ -2829,10 +2740,6 @@ true - - <key>ru</key> - <value>Страницы вариантов отображения причин</value> - СтраницыВариантовОтображенияПричинРасширеннаяПодсказка 256 @@ -2853,10 +2760,6 @@ true - - <key>ru</key> - <value>Причины</value> - ГруппаПричиныРасширеннаяПодсказка 316 @@ -2882,10 +2785,6 @@ true - - <key>ru</key> - <value>Объекты, которые не удалось удалить (%1)</value> - ГруппаНеУдаленныеРасширеннаяПодсказка 230 @@ -2939,10 +2838,6 @@ true - - <key>ru</key> - <value>Страницы информация</value> - Группа1РасширеннаяПодсказка4 537 @@ -3132,10 +3027,6 @@ true - - <key>ru</key> - <value>Картинок</value> - ГруппаКартинокРасширеннаяПодсказка 546 diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl index f616a1591..884e7bf80 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl @@ -164,8 +164,7 @@ КонецЕсли; ДлительныеОперации.ОтменитьВыполнениеЗадания(ВыполняемаяОперация.ИдентификаторЗадания); - ИдентификаторЗадания = ?(ОбщегоНазначения.РежимОтладки(), УникальныйИдентификатор, ВыполняемаяОперация.ИдентификаторЗадания); - УдалениеПомеченныхОбъектовСлужебный.СнятьБлокировкуИспользованияУдаляемыхОбъектов(ИдентификаторЗадания); + УдалениеПомеченныхОбъектовСлужебный.СнятьБлокировкуИспользованияУдаляемыхОбъектов(УникальныйИдентификатор); УстановитьМонопольныйРежимНаСервере(Ложь); КонецПроцедуры @@ -357,13 +356,16 @@ &НаКлиенте Процедура УдалитьВсе(Команда) + ОповещениеПодтверждениеУдалитьВсе = Новый ОписаниеОповещения("ПриПодтвержденииУдалитьВсе", ЭтотОбъект, Новый Структура("Команда", Команда)); - ДобавитьЗадание(ЗаданияФормы().УдалениеПомеченных, "ПолноеУдаление"); - Если ВыполняемаяОперация = Неопределено Тогда - ДеревоПомеченныхНаУдалениеУстановитьВсе(Команда); - ЗапуститьЗадание(); + Если ВыполняемаяОперация = Неопределено И ВыбраныНеВсеОбъектыВДеревеПомеченных() Тогда + ПоказатьВопрос( + ОповещениеПодтверждениеУдалитьВсе, + НСтр("ru='Удалить все помеченные на удаление?'"), + РежимДиалогаВопрос.ДаНет); + Иначе + ВыполнитьОбработкуОповещения(ОповещениеПодтверждениеУдалитьВсе, КодВозвратаДиалога.Да); КонецЕсли; - КонецПроцедуры &НаКлиенте @@ -736,9 +738,9 @@ #КонецОбласти // Параметры: -// Ссылка - ЛюбаяСсылка +// Ссылка - ЛюбаяСсылка // Возвращаемое значение: -// Строка +// Строка // &НаСервереБезКонтекста Функция ИмяМетаданных(Ссылка) @@ -849,6 +851,22 @@ #Область КомандыФормы +&НаКлиенте +Функция ВыбраныНеВсеОбъектыВДеревеПомеченных() + Результат = Ложь; + + Для каждого СтрокаГруппы Из ДеревоПомеченныхНаУдаление.ПолучитьЭлементы() Цикл + + Если СтрокаГруппы.Пометка <> 1 Тогда + Результат = Истина; + Прервать; + КонецЕсли; + + КонецЦикла; + + Возврат Результат; +КонецФункции + &НаКлиенте Процедура ЗарегистрироватьДействиеМестаИспользования(МестоИспользования, Действие, Параметр = Неопределено) ДействиеПредставление = ?(Параметр = Неопределено, @@ -901,6 +919,16 @@ КонецЕсли; КонецПроцедуры +&НаКлиенте +Процедура ПриПодтвержденииУдалитьВсе(Результат, ДополнительныеПараметры) Экспорт + Если Результат <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + ДобавитьЗадание(ЗаданияФормы().УдалениеПомеченных, "ПолноеУдаление"); + ДеревоПомеченныхНаУдалениеУстановитьВсе(ДополнительныеПараметры.Команда); + ЗапуститьЗадание(); +КонецПроцедуры + &НаКлиенте Процедура ОткрытьФормуЗавершенияРаботыПользователей() @@ -922,6 +950,7 @@ ЗапуститьЗадание(); КонецЕсли; КонецПроцедуры + #КонецОбласти #Область СобытияФормы @@ -1153,8 +1182,10 @@ КонецЕсли; КонецЦикла; - НоваяСтрока.ОсновнаяПричина = (ПодчиненныеСтроки.Количество() = 0 Или СодержатьсяТолькоОшибки) - И Показываемые.Количество() = 0; + НоваяСтрока.ОсновнаяПричина = НЕ НоваяСтрока.ЭтоОшибка + И (ПодчиненныеСтроки.Количество() = 0 + ИЛИ СодержатьсяТолькоОшибки + ИЛИ Показываемые.Количество() = 0); КонецПроцедуры #КонецОбласти @@ -1171,7 +1202,11 @@ Если ЗначениеЗаполнено(ТекущиеДанные.ОбнаруженныйСсылка) Тогда Элементы.СвязиНеУдаленныхДействие.СписокВыбора.Очистить(); - Элементы.СвязиНеУдаленныхДействие.СписокВыбора.Добавить("Удалить", ПредставлениеКомандыУдалить(ТекущиеДанные)); + + // Дл ошибок и для констант не доступно действие Удаление + Если ТипЗнч(ТекущиеДанные.ОбнаруженныйСсылка) <> Тип("Строка") Тогда + Элементы.СвязиНеУдаленныхДействие.СписокВыбора.Добавить("Удалить", ПредставлениеКомандыУдалить(ТекущиеДанные)); + КонецЕсли; Действия = ТаблицаДействий.НайтиСтроки(Новый Структура("ОбнаруженныйСсылка", ТекущиеДанные.ОбнаруженныйСсылка)); Если НЕ(Действия.Количество() > 0 @@ -1268,8 +1303,8 @@ КонецПроцедуры // Параметры: -// Результат - СписокЗначений из Строка -// ДополнительныеПараметры - Структура +// Результат - СписокЗначений из Строка +// ДополнительныеПараметры - Структура // &НаКлиенте Процедура НастроитьОтборЗавершение(Результат, ДополнительныеПараметры) Экспорт @@ -1470,7 +1505,6 @@ Результат.Успешно = Ложь; Результат.КраткоеПредставлениеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке); Результат.ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); - СведенияОРезультатахУдаления = УдалениеПомеченныхОбъектовСлужебныйКлиентСервер.НовыйСведенияОРезультатахУдаления(); ИнформацияОбОшибке = ИнформацияОбОшибке(); ЗаписьЖурналаРегистрации(НСтр("ru = 'Удаление помеченных'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, @@ -1488,7 +1522,7 @@ МодульСоединенияИБ.РазрешитьРаботуПользователей(); КонецЕсли; КонецЕсли; - + Возврат Результат; КонецФункции @@ -1550,7 +1584,7 @@ КонецПроцедуры // Параметры: -// СведенияОРезультатахУдаления - см. УдалениеПомеченныхОбъектовСлужебныйКлиентСервер.НовыйСведенияОРезультатахУдаления +// СведенияОРезультатахУдаления - см. УдалениеПомеченныхОбъектовСлужебныйКлиентСервер.НовыйСведенияОРезультатахУдаления // &НаКлиенте Процедура ОбработатьРезультатВыполненияУдаления(СведенияОРезультатахУдаления) @@ -1574,8 +1608,8 @@ КонецПроцедуры // Параметры: -// РезультатУдаления - Структура: -// * АдресРезультата - Строка +// РезультатУдаления - Структура: +// * АдресРезультата - Строка // Возвращаемое значение: // см. УдалениеПомеченныхОбъектовСлужебныйКлиентСервер.НовыйСведенияОРезультатахУдаления // diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl index a2a5050e8..2db7740fa 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl @@ -67,7 +67,7 @@ // Параметры: // УдаляемыеОбъекты - Массив из ЛюбаяСсылка -// ПараметрыУдаления - см. ПараметрыУдаления +// ПараметрыУдаления - см. ПараметрыУдаления // Процедура УдалитьПомеченныеОбъектыКонкурентно(УдаляемыеОбъекты, ПараметрыУдаления) @@ -83,8 +83,8 @@ #Область ПреобразованиеКФорматуРезультата // Параметры: -// ПараметрыУдаления - см. ПараметрыУдаления -// НеУдаленные - см. РезультатОбработки +// ПараметрыУдаления - см. ПараметрыУдаления +// НеУдаленные - см. РезультатОбработки // Процедура ОтразитьНеУдаленные(ПараметрыУдаления, НеУдаленные) Если Не (ПараметрыУдаления.Свойство("ИнформацияОТипах")) Тогда @@ -136,9 +136,9 @@ #Область УдалениеОбъектов // Параметры: -// ПараметрыУдаления - см. ПараметрыУдаления -// УдаляемыеОбъекты - см. УдаляемыеОбъекты -// СведенияОМетаданных - см. СведенияОМетаданных +// ПараметрыУдаления - см. ПараметрыУдаления +// УдаляемыеОбъекты - см. УдаляемыеОбъекты +// СведенияОМетаданных - см. СведенияОМетаданных // // Возвращаемое значение: // см. РезультатОбработки @@ -179,13 +179,16 @@ РезультатУдаленияИзНеобработанногоПакета(ПараметрыУдаления, ОбъектыСЗапретомУдаления)); // Попробуем удалить объекты, образующие циклические ссылки в одной транзакции - Если РезультатыУдаления.НеудаленныеОбъекты.Количество() > 0 Тогда + КоличествоНеудаленныхЭлементов = 0; + Пока РезультатыУдаления.НеудаленныеОбъекты.Количество() <> КоличествоНеудаленныхЭлементов Цикл + КоличествоНеудаленныхЭлементов = РезультатыУдаления.НеудаленныеОбъекты.Количество(); + Пакет = ЦиклическиеСсылки(РезультатыУдаления.НеудаленныеОбъекты, РезультатыУдаления.МестаИспользования); РезультатОбработкиЦиклическихСсылок = ОбработатьПакетВОднойТранзакции(ПараметрыУдаления, Пакет); Если РезультатОбработкиЦиклическихСсылок.УдаленныеОбъекты.Количество() > 0 Тогда РезультатыУдаления = РезультатПослеУдаленияЦиклическихСсылок(РезультатыУдаления, РезультатОбработкиЦиклическихСсылок); КонецЕсли; - КонецЕсли; + КонецЦикла; Возврат РезультатыУдаления; КонецФункции @@ -247,7 +250,7 @@ КонецФункции Функция ОбработатьПакет(ПараметрыУдаления, Пакет) - РезультатОбработкиПакета = РезультатОбработки(); + РезультатОбработкиПакета = РезультатОбработки(); Если ЗначениеЗаполнено(ПараметрыУдаления.ИдентификаторЗадания) И ОбщегоНазначения.РежимОтладки() Тогда Идентификатор = ПараметрыУдаления.ИдентификаторЗадания; @@ -267,31 +270,32 @@ МестаИспользования = МестаИспользованияЭлементовПакета(ПараметрыУдаления, Пакет); - Буфер = Новый Структура; - Буфер.Вставить("Элементы", Новый Массив); - Буфер.Вставить("Код", КодыРезультатаУдаления().Успешно); - Буфер.Вставить("РезультатУдаления"); + ОсновнойИПодчиненныеОбъекты = Новый Структура; + ОсновнойИПодчиненныеОбъекты.Вставить("Элементы", Новый Массив); + ОсновнойИПодчиненныеОбъекты.Вставить("Код", КодыРезультатаУдаления().Успешно); + ОсновнойИПодчиненныеОбъекты.Вставить("РезультатУдаления"); Для Каждого Элемент Из Пакет Цикл - Буфер.Элементы.Добавить(Элемент); + ОсновнойИПодчиненныеОбъекты.Элементы.Добавить(Элемент); Если НЕ Элемент.ЭтоОсновнойОбъект Тогда Продолжить; КонецЕсли; НельзяУдалятьОсновнойОбъект = Ложь; + НеудаленныеЭлементы = Новый Массив; НачатьТранзакцию(); Попытка - Для каждого УдаляемыйСсылка Из Буфер.Элементы Цикл + Для каждого УдаляемыйСсылка Из ОсновнойИПодчиненныеОбъекты.Элементы Цикл Фильтр = Новый Структура("УдаляемыйСсылка", УдаляемыйСсылка.УдаляемыйСсылка); РезультатУдаления = УдалитьЭлементПакета( ПараметрыУдаления, УдаляемыйСсылка, МестаИспользования.Скопировать(Фильтр), - НельзяУдалятьОсновнойОбъект); + НеудаленныеЭлементы); - Если РезультатУдаления.Код <> КодыРезультатаУдаления().Успешно И НЕ НельзяУдалятьОсновнойОбъект Тогда + Если РезультатУдаления.Код <> КодыРезультатаУдаления().Успешно Тогда НельзяУдалятьОсновнойОбъект = Истина; - ОтменитьТранзакцию(); + НеудаленныеЭлементы.Добавить(РезультатУдаления.УдаляемыйСсылка); КонецЕсли; ОтразитьРезультатУдаленияЭлементаПакета( @@ -302,6 +306,8 @@ Если НЕ НельзяУдалятьОсновнойОбъект Тогда ЗафиксироватьТранзакцию(); + Иначе + ОтменитьТранзакцию(); КонецЕсли; Исключение @@ -309,9 +315,9 @@ ВызватьИсключение; КонецПопытки; - Буфер.Элементы.Очистить(); - Буфер.РезультатУдаления = Неопределено; - Буфер.Код = КодыРезультатаУдаления().Успешно; + ОсновнойИПодчиненныеОбъекты.Элементы.Очистить(); + ОсновнойИПодчиненныеОбъекты.РезультатУдаления = Неопределено; + ОсновнойИПодчиненныеОбъекты.Код = КодыРезультатаУдаления().Успешно; КонецЦикла; @@ -324,8 +330,8 @@ #Область ОчисткаСсылокНаУдаляемыеОбъекты // Параметры: -// ПараметрыУдаления - см. ПараметрыУдаления -// РезультатОбработкиПакета - см. РезультатОбработки +// ПараметрыУдаления - см. ПараметрыУдаления +// РезультатОбработкиПакета - см. РезультатОбработки // Процедура ОчиститьСсылкиНаУдаляемыеОбъекты(ПараметрыУдаления, РезультатОбработкиПакета) Если Не ПараметрыУдаления.ОчищатьСсылкиВМестахИспользования @@ -421,8 +427,8 @@ КонецПроцедуры // Параметры: -// РезультатыУдаления - см. РезультатОбработки -// РезультатОбработкиЦиклическихСсылок - см. РезультатОбработки +// РезультатыУдаления - см. РезультатОбработки +// РезультатОбработкиЦиклическихСсылок - см. РезультатОбработки // // Возвращаемое значение: // см. РезультатОбработки @@ -450,8 +456,8 @@ #Область ФормированиеДочернихПодчиненныхЭлементов // Параметры: -// ЭлементОчереди - см. УдаляемыеОбъекты -// ИнформацияОМетаданных - см. СведенияОМетаданных +// ЭлементОчереди - см. УдаляемыеОбъекты +// ИнформацияОМетаданных - см. СведенияОМетаданных // // Возвращаемое значение: // см. ТаблицаДочернихПодчиненныхЭлементов @@ -495,7 +501,7 @@ // Рекурсивно формирует таблицу дочерних элементов. // // Параметры: -// РезультатПакета - ДеревоЗначений +// РезультатПакета - ДеревоЗначений // // Возвращаемое значение: // см. ТаблицаДочернихПодчиненныхЭлементов @@ -521,7 +527,7 @@ КонецФункции // Параметры: -// РезультатПакета - ВыборкаИзРезультатаЗапроса +// РезультатПакета - ВыборкаИзРезультатаЗапроса // // Возвращаемое значение: // см. ТаблицаДочернихПодчиненныхЭлементов @@ -571,10 +577,10 @@ КонецФункции // Параметры: -// ИнформацияОМетаданных - см. СведенияОМетаданных +// ИнформацияОМетаданных - см. СведенияОМетаданных // // Возвращаемое значение: -// Строка +// Строка // Функция ТекстЗапросаПодчиненныхЭлементов(ИнформацияОМетаданных) ТекстыЗапросов = Новый Массив;// Массив из Строка @@ -603,8 +609,8 @@ #КонецОбласти // Параметры: -// РезультатыУдаления - см. РезультатОбработки -// РезультатОбработки - см. РезультатОбработки +// РезультатыУдаления - см. РезультатОбработки +// РезультатОбработки - см. РезультатОбработки // Функция ОбъединитьРезультатУдаления(РезультатыУдаления, РезультатОбработки) Результат = РезультатОбработки(); @@ -624,13 +630,13 @@ КонецФункции // Параметры: -// Приемник - ТаблицаЗначений -// Источник - ТаблицаЗначений -// КолонкаПриемника - Строка -// КолонкаИсточника - Строка +// Приемник - ТаблицаЗначений +// Источник - ТаблицаЗначений +// КолонкаПриемника - Строка +// КолонкаИсточника - Строка // // Возвращаемое значение: -// Булево +// Булево // Функция ИсточникаПодмножествоПриемника(Приемник, Источник, КолонкаПриемника, КолонкаИсточника) Результат = Истина; @@ -665,10 +671,10 @@ КонецФункции // Параметры: -// ПараметрыУдаления - см. ПараметрыУдаления -// РезультатОбработкиПакета - см. РезультатОбработки -// Элемент - см. ПакетУдаляемыхОбъектов -// РезультатУдаления - см. УдалитьЭлементПакета +// ПараметрыУдаления - см. ПараметрыУдаления +// РезультатОбработкиПакета - см. РезультатОбработки +// Элемент - см. ПакетУдаляемыхОбъектов +// РезультатУдаления - см. УдалитьЭлементПакета // Процедура ОтразитьРезультатУдаленияЭлементаПакета(ПараметрыУдаления, РезультатОбработкиПакета, РезультатУдаления) @@ -738,15 +744,21 @@ Возврат Результат; КонецФункции -// Возвращаемое значение: -// Структура: -// * Код - Строка -// * МестаИспользования - см. МестаИспользованияЭлементовПакета -// * Сообщения - Массив из СообщениеПользователю -// * ИнформацияОбОшибке - Неопределено -// - ИнформацияОбОшибке +// Параметры: +// ПараметрыУдаления - см. ПараметрыУдаления +// Элемент - СтрокаТаблицыЗначений: см. ПакетУдаляемыхОбъектов +// МестаИспользования - см. МестаИспользования +// НеудаленныеЭлементы - Массив из ЛюбаяСсылка // -Функция УдалитьЭлементПакета(ПараметрыУдаления, Элемент, МестаИспользования, НеУдалятьЭлемент) +// Возвращаемое значение: +// Структура: +// * Код - Строка +// * МестаИспользования - см. МестаИспользованияЭлементовПакета +// * Сообщения - Массив из СообщениеПользователю +// * ИнформацияОбОшибке - Неопределено +// - ИнформацияОбОшибке +// +Функция УдалитьЭлементПакета(ПараметрыУдаления, Элемент, МестаИспользования, НеудаленныеЭлементы) Результат = Новый Структура(); Результат.Вставить("УдаляемыйСсылка", Элемент.УдаляемыйСсылка); Результат.Вставить("Код", КодыРезультатаУдаления().Успешно); @@ -762,11 +774,14 @@ // У элемента есть неудаленные дочерние или подчиненные объекты Для Каждого ДочернийПодчиненныйЭлемент Из Элемент.ДочерниеПодчиненныеОбъекты Цикл - Если НЕ ОбъектУдален(ДочернийПодчиненныйЭлемент.Элемент) Тогда + Если НЕ ОбъектУдален(ДочернийПодчиненныйЭлемент.Элемент) + ИЛИ НеудаленныеЭлементы.Найти(ДочернийПодчиненныйЭлемент.Элемент) <> Неопределено Тогда + Результат.Код = КодыРезультатаУдаления().ЕстьМестаИспользования; Результат.МестаИспользования = ОставшиесяМестаИспользованияУдаляемогоОбъекта( ПараметрыУдаления, - МестаИспользования); + МестаИспользования, + ДочернийПодчиненныйЭлемент.Элемент); Возврат Результат; КонецЕсли; @@ -774,23 +789,21 @@ МестаОчисткиСсылок = МестаОчисткиСсылок(ПараметрыУдаления, МестаИспользования); - Если НЕ НеУдалятьЭлемент Тогда - Попытка - Блокировка = Новый БлокировкаДанных(); - ЭлементБлокировки = Блокировка.Добавить(Элемент.УдаляемыйСсылка.Метаданные().ПолноеИмя()); - ЭлементБлокировки.УстановитьЗначение("Ссылка", Элемент.УдаляемыйСсылка); - Блокировка.Заблокировать(); - - Объект = Элемент.УдаляемыйСсылка.ПолучитьОбъект(); - УдалитьОбъект(Объект); - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - Результат.Сообщения = ДлительныеОперации.СообщенияПользователю(Истина); - Результат.ИнформацияОбОшибке = ИнформацияОбОшибке; - Результат.Код = КодыРезультатаУдаления().ОшибкаПриУдалении; - Возврат Результат; - КонецПопытки; - КонецЕсли; + Попытка + Блокировка = Новый БлокировкаДанных(); + ЭлементБлокировки = Блокировка.Добавить(Элемент.УдаляемыйСсылка.Метаданные().ПолноеИмя()); + ЭлементБлокировки.УстановитьЗначение("Ссылка", Элемент.УдаляемыйСсылка); + Блокировка.Заблокировать(); + + Объект = Элемент.УдаляемыйСсылка.ПолучитьОбъект(); + УдалитьОбъект(Объект); + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + Результат.Сообщения = ДлительныеОперации.СообщенияПользователю(Истина); + Результат.ИнформацияОбОшибке = ИнформацияОбОшибке; + Результат.Код = КодыРезультатаУдаления().ОшибкаПриУдалении; + Возврат Результат; + КонецПопытки; ОставшиесяМестаИспользования = ОставшиесяМестаИспользованияУдаляемогоОбъекта( ПараметрыУдаления, @@ -830,7 +843,7 @@ МетаданныеМестаИспользования = СведенияОМестеИспользования.Метаданные; Контейнер = Новый Структура("Измерения", Новый Массив); ЗаполнитьЗначенияСвойств(Контейнер, МетаданныеМестаИспользования); - Измерения = Контейнер.Измерения; + Измерения = Контейнер.Измерения; // КоллекцияОбъектовМетаданных Для каждого Измерение Из Измерения Цикл Контейнер = Новый Структура(); Контейнер.Вставить("Ведущее", Ложь); @@ -850,8 +863,8 @@ КонецФункции // Параметры: -// ПараметрыУдаления - Структура -// Пакет - см. ПакетУдаляемыхОбъектов +// ПараметрыУдаления - Структура +// Пакет - см. ПакетУдаляемыхОбъектов // // Возвращаемое значение: // см. МестаИспользования @@ -873,8 +886,8 @@ КонецФункции // Параметры: -// Пакет - см. ПакетУдаляемыхОбъектов -// ДочерниеПодчиненныеЭлементы - см. ДочерниеПодчиненныеЭлементы +// Пакет - см. ПакетУдаляемыхОбъектов +// ДочерниеПодчиненныеЭлементы - см. ДочерниеПодчиненныеЭлементы // Процедура ДополнитьПакетДочернимиИПодчиненнымиЭлементами(Пакет, ОсновнойЭлемент, ДочерниеПодчиненныеЭлементы, Исключения) Для Каждого ОписаниеЭлемента Из ДочерниеПодчиненныеЭлементы Цикл @@ -892,7 +905,7 @@ КонецПроцедуры // Параметры: -// ПараметрыУдаления - см. ПараметрыУдаления +// ПараметрыУдаления - см. ПараметрыУдаления // Процедура ОповеститьОПрогрессе(ПараметрыВыполнения) ТекущееВремя = ТекущаяУниверсальнаяДатаВМиллисекундах(); @@ -910,8 +923,8 @@ #Область ФильтрыКоллекций // Параметры: -// Пакет - см. ПакетУдаляемыхОбъектов -// МестаИспользования - см. МестаИспользования +// Пакет - см. ПакетУдаляемыхОбъектов +// МестаИспользования - см. МестаИспользования // // Возвращаемое значение: // см. ПакетУдаляемыхОбъектов @@ -929,15 +942,15 @@ КонецФункции // Параметры: -// ПараметрыУдаления - Структура: +// ПараметрыУдаления - Структура: // * РазмерПакета - Число // * ИсключенияПоискаСсылок - Массив -// МестаИспользования - см. МестаИспользованияЭлементовПакета +// МестаИспользования - см. МестаИспользованияЭлементовПакета // // Возвращаемое значение: // см. МестаИспользования // -Функция ОставшиесяМестаИспользованияУдаляемогоОбъекта(ПараметрыУдаления, МестаИспользования) +Функция ОставшиесяМестаИспользованияУдаляемогоОбъекта(ПараметрыУдаления, МестаИспользования, СсылкаИсключение = Неопределено) Результат = МестаИспользования.СкопироватьКолонки(); Для Каждого СведенияОМестеИспользования Из МестаИспользования Цикл @@ -947,8 +960,9 @@ ЭтоКонстанта = Метаданные.Константы.Содержит(СведенияОМестеИспользования.Метаданные); Если ЭтоСсылка - И НЕ ОбъектУдален(СведенияОМестеИспользования.МестоИспользования) - И НЕ СведенияОМестеИспользования.ЭтоСлужебныеДанные Тогда + И (НЕ ОбъектУдален(СведенияОМестеИспользования.МестоИспользования) + ИЛИ СведенияОМестеИспользования.МестоИспользования = СсылкаИсключение) + И НЕ СведенияОМестеИспользования.ЭтоСлужебныеДанные Тогда ЗаполнитьЗначенияСвойств(Результат.Добавить(), СведенияОМестеИспользования); КонецЕсли; @@ -1042,11 +1056,11 @@ #Область Конструкторы // Параметры: -// УдаляемыеОбъекты - Массив из ЛюбаяСсылка -// Параметры - Структура +// УдаляемыеОбъекты - Массив из ЛюбаяСсылка +// Параметры - Структура // // Возвращаемое значение: -// Структура: +// Структура: // * КоличествоНеудаленных - Число // * ПовторноУдаляемые - Массив из ЛюбаяСсылка // * ПрепятствующиеУдалению - ТаблицаЗначений: @@ -1129,7 +1143,7 @@ КонецФункции // Возвращаемое значение: -// Структура: +// Структура: // * МестаИспользования - см. ПакетУдаляемыхОбъектов // * НеудаленныеОбъекты - см. МестаИспользования // * УдаленныеОбъекты - Массив из ЛюбаяСсылка @@ -1146,7 +1160,7 @@ КонецФункции // Возвращаемое значение: -// ТаблицаЗначений: +// ТаблицаЗначений: // * УдаляемыйСсылка - ЛюбаяСсылка // * МестоИспользования - ЛюбаяСсылка // * Метаданные - ОбъектМетаданных @@ -1167,7 +1181,7 @@ КонецФункции // Возвращаемое значение: -// ТаблицаЗначений: +// ТаблицаЗначений: // * УдаляемыйСсылка - ЛюбаяСсылка // * ЕстьДочерниеОбъекты - Булево // * ЕстьПодчиненныеОбъекты - Булево @@ -1205,15 +1219,15 @@ КонецФункции // Параметры: -// МассивУдаляемыхОбъектов - Массив из ЛюбаяСсылка -// СведенияОМетаданных - ТаблицаЗначений: +// МассивУдаляемыхОбъектов - Массив из ЛюбаяСсылка +// СведенияОМетаданных - ТаблицаЗначений: // * Метаданные - ОбъектМетаданных // * Иерархический - Булево // * Приоритет - Число // * Тип - Тип // // Возвращаемое значение: -// ТаблицаЗначений: +// ТаблицаЗначений: // * УдаляемыйСсылка - ЛюбаяСсылка // * Приоритет - Число // * Тип - Тип @@ -1247,11 +1261,11 @@ #Область ФормированиеСведенийОМетаданных // Параметры: -// ПараметрыУдаления - Структура -// УдаляемыеОбъекты - Массив из ЛюбаяСсылка +// ПараметрыУдаления - Структура +// УдаляемыеОбъекты - Массив из ЛюбаяСсылка // // Возвращаемое значение: -// ТаблицаЗначений: +// ТаблицаЗначений: // * Метаданные - ОбъектМетаданных // * Иерархический - Булево // * Приоритет - Число @@ -1275,7 +1289,7 @@ КонецФункции // Возвращаемое значение: -// ТаблицаЗначений: +// ТаблицаЗначений: // * Тип - Тип // * ПодчиненныеМетаданные - ОбъектМетаданных // * Реквизиты - Массив @@ -1636,8 +1650,8 @@ // Передача информации на клиент. // Параметры: -// ПараметрыВыполнения - см. ПараметрыУдаления -// ИмяКоллекции - Строка +// ПараметрыВыполнения - см. ПараметрыУдаления +// ИмяКоллекции - Строка // Процедура ОтметитьПрогрессОбходаКоллекции(ПараметрыВыполнения, ИмяКоллекции) ПараметрыВыполнения.Номер = ПараметрыВыполнения.Номер + 1; diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl index 4e4b40b3d..e59bd9371 100644 --- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl +++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl @@ -604,7 +604,7 @@ // НайденныйОбъектПоУникальномуИдентификатору - СправочникОбъект // - ДокументОбъект - объект информационной базы, // который был найден по уникальному идентификатору в ходе выполнения функции. -// ОбщаяСтруктураСвойств - структура - свойства искомого объекта. +// ОбщаяСтруктураСвойств - Структура - свойства искомого объекта. // ОбщиеСвойстваПоиска - Структура // СтрокаЗапросаПоискаПоУникальномуИдентификатору - Строка - текст запроса для поиска по уникальному идентификатору. // @@ -1284,7 +1284,7 @@ // Параметры: // КодСообщения - Строка - код сообщения. // СтрокаОшибки - Строка - строковое содержание ошибки. -// ИмяПравила - строка - имя правила конвертации объекта. +// ИмяПравила - Строка - имя правила конвертации объекта. // Источник - Произвольный - источник при конвертации которого возникла ошибка. // ТипОбъекта - Тип - тип объекта при конвертации которого возникла ошибка. // Объект - Произвольный - объект, полученный в результате конвертации. @@ -1595,7 +1595,7 @@ // только формируется xml-узел ссылки. // ПКО - СтрокаТаблицыЗначений - строка таблицы правил конвертации. // ЭтоПравилоСГлобальнойВыгрузкойОбъектов - Булево - признак правила с глобальной выгрузкой объектов. -// ВыборкаДляВыгрузкиДанных - ВыборкаРезультатаЗапроса - выборка содержащая данные для выгрузки. +// ВыборкаДляВыгрузкиДанных - ВыборкаИзРезультатаЗапроса - выборка содержащая данные для выгрузки. // // Возвращаемое значение: // ЗаписьXML - xml-узел ссылки или значение приемника. @@ -2212,11 +2212,10 @@ Функция ПолучитьРезультатЗапросаДляВыгрузкиОчисткиДанных(Свойства, ИмяТипа, ВыборкаДляОчисткиДанных = Ложь, УдалятьОбъектыНепосредственно = Ложь, ВыбиратьВсеПоля = Истина) Экспорт - СтрокаРазрешения = ?(ВыгружатьТолькоРазрешенные, " РАЗРЕШЕННЫЕ ", ""); - + СтрокаРазрешения = ?(ВыгружатьТолькоРазрешенные, " РАЗРЕШЕННЫЕ ", ""); // @Query-part-1 СтрокаВыбораПолей = ?(ВыбиратьВсеПоля, " * ", " ОбъектДляВыгрузки.Ссылка КАК Ссылка "); - Если ИмяТипа = "Справочник" + Если ИмяТипа = "Справочник" Или ИмяТипа = "ПланВидовХарактеристик" Или ИмяТипа = "ПланСчетов" Или ИмяТипа = "ПланВидовРасчета" @@ -2225,12 +2224,12 @@ Или ИмяТипа = "Задача" Или ИмяТипа = "БизнесПроцесс" Тогда - Запрос = Новый Запрос(); + Запрос = Новый Запрос; Если ИмяТипа = "Справочник" Тогда МетаданныеОбъектов = Метаданные.Справочники[Свойства.Имя]; ИначеЕсли ИмяТипа = "ПланВидовХарактеристик" Тогда - МетаданныеОбъектов = Метаданные.ПланыВидовХарактеристик[Свойства.Имя]; + МетаданныеОбъектов = Метаданные.ПланыВидовХарактеристик[Свойства.Имя]; ИначеЕсли ИмяТипа = "ПланСчетов" Тогда МетаданныеОбъектов = Метаданные.ПланыСчетов[Свойства.Имя]; ИначеЕсли ИмяТипа = "ПланВидовРасчета" Тогда @@ -2242,17 +2241,17 @@ ИначеЕсли ИмяТипа = "Задача" Тогда МетаданныеОбъектов = Метаданные.Задачи[Свойства.Имя]; ИначеЕсли ИмяТипа = "БизнесПроцесс" Тогда - МетаданныеОбъектов = Метаданные.БизнесПроцессы[Свойства.Имя]; + МетаданныеОбъектов = Метаданные.БизнесПроцессы[Свойства.Имя]; КонецЕсли; Если ИмяТипа = "РегистрБухгалтерии" Тогда - СтрокаВыбораПолей = "*"; + СтрокаВыбораПолей = " * "; ИмяТаблицыДляВыборки = Свойства.Имя + ".ДвиженияССубконто"; Иначе - ИмяТаблицыДляВыборки = Свойства.Имя; + ИмяТаблицыДляВыборки = Свойства.Имя; Если ВыгружатьТолькоРазрешенные И НЕ ВыбиратьВсеПоля Тогда @@ -2266,12 +2265,26 @@ КонецЕсли; - Запрос.Текст = "ВЫБРАТЬ " + СтрокаРазрешения + " - | " + СтрокаВыбораПолей + " - |ИЗ - | " + ИмяТипа + "." + ИмяТаблицыДляВыборки + " КАК ОбъектДляВыгрузки - | - |"; + Запрос.Текст = + "ВЫБРАТЬ // АвтозаменаРазрешенные + | * // АвтозаменаПолей + |ИЗ + | &ИмяТаблицыМетаданных КАК ОбъектДляВыгрузки"; + + Если НЕ ПустаяСтрока(СтрокаРазрешения) Тогда + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "// АвтозаменаРазрешенные", СтрокаРазрешения); + + КонецЕсли; + + Если СокрЛП(СтрокаВыбораПолей) <> "*" Тогда + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "* // АвтозаменаПолей", СтрокаВыбораПолей); + + КонецЕсли; + + СтрокаИмяТаблицыМетаданных = ПодставитьПараметрыВСтроку("%1.%2", ИмяТипа, ИмяТаблицыДляВыборки); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицыМетаданных", СтрокаИмяТаблицыМетаданных); ИначеЕсли ИмяТипа = "Документ" Тогда @@ -2286,53 +2299,81 @@ ИтоговоеОграничениеПоДате = ПолучитьСтрокуОграниченияПоДатеДляЗапроса(Свойства, ИмяТипа, "ОбъектДляВыгрузки", ВыборкаДляОчисткиДанных); - Запрос = Новый Запрос(); - + Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала); Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания); - Запрос.Текст = "ВЫБРАТЬ " + СтрокаРазрешения + " - | " + СтрокаВыбораПолей + " - |ИЗ - | " + ИмяТипа + "." + Свойства.Имя + " КАК ОбъектДляВыгрузки - | - |" + ИтоговоеОграничениеПоДате; - - + Запрос.Текст = + "ВЫБРАТЬ // АвтозаменаРазрешенные + | * // АвтозаменаПолей + |ИЗ + | &ИмяТаблицыМетаданных КАК ОбъектДляВыгрузки"; + + Если НЕ ПустаяСтрока(СтрокаРазрешения) Тогда + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "// АвтозаменаРазрешенные", СтрокаРазрешения); + + КонецЕсли; + + Если СокрЛП(СтрокаВыбораПолей) <> "*" Тогда + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "* // АвтозаменаПолей", СтрокаВыбораПолей); + + КонецЕсли; + + СтрокаИмяТаблицыМетаданных = ПодставитьПараметрыВСтроку("%1.%2", ИмяТипа, Свойства.Имя); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицыМетаданных", СтрокаИмяТаблицыМетаданных); + Запрос.Текст = Запрос.Текст + Символы.ПС + ИтоговоеОграничениеПоДате; + ИначеЕсли ИмяТипа = "РегистрСведений" Тогда - Непериодический = НЕ Свойства.Периодический; - ПодчиненныйРегистратору = Свойства.ПодчиненныйРегистратору; - ИтоговоеОграничениеПоДате = ПолучитьСтрокуОграниченияПоДатеДляЗапроса(Свойства, ИмяТипа, "ОбъектДляВыгрузки", ВыборкаДляОчисткиДанных); - - Запрос = Новый Запрос(); + Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала); Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания); - СтрокаДополненияПолейВыборкиПодчиненРегистратору = ?(НЕ ПодчиненныйРегистратору, ", NULL КАК Активность, - | NULL КАК Регистратор, - | NULL КАК НомерСтроки", ""); + Запрос.Текст = + "ВЫБРАТЬ // АвтозаменаРазрешенные + | * // АвтозаменаПолей + | + | ,NULL КАК Активность + | ,NULL КАК Регистратор + | ,NULL КАК НомерСтроки + | ,NULL КАК Период + | + |ИЗ + | &ИмяТаблицыМетаданных КАК ОбъектДляВыгрузки"; - СтрокаДополненияПолейВыборкиПериодичность = ?(Непериодический, ", NULL КАК Период", ""); + Если Свойства.ПодчиненныйРегистратору Тогда + + Запрос.Текст = СтрЗаменить(Запрос.Текст, ",NULL КАК Активность", ""); + Запрос.Текст = СтрЗаменить(Запрос.Текст, ",NULL КАК Регистратор", ""); + Запрос.Текст = СтрЗаменить(Запрос.Текст, ",NULL КАК НомерСтроки", ""); + + КонецЕсли; - Запрос.Текст = "ВЫБРАТЬ " + СтрокаРазрешения + " - | * - | - | " + СтрокаДополненияПолейВыборкиПодчиненРегистратору + " - | " + СтрокаДополненияПолейВыборкиПериодичность + " - | - |ИЗ - | " + ИмяТипа + "." + Свойства.Имя + " КАК ОбъектДляВыгрузки - | - |" + ИтоговоеОграничениеПоДате; + Если Свойства.Периодический Тогда + + Запрос.Текст = СтрЗаменить(Запрос.Текст, ",NULL КАК Период", ""); + + КонецЕсли; + + Если НЕ ПустаяСтрока(СтрокаРазрешения) Тогда + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "// АвтозаменаРазрешенные", СтрокаРазрешения); + + КонецЕсли; + + СтрокаИмяТаблицыМетаданных = ПодставитьПараметрыВСтроку("%1.%2", ИмяТипа, Свойства.Имя); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицыМетаданных", СтрокаИмяТаблицыМетаданных); + Запрос.Текст = Запрос.Текст + Символы.ПС + ИтоговоеОграничениеПоДате; Иначе Возврат Неопределено; - - КонецЕсли; + + КонецЕсли; Возврат Запрос.Выполнить(); @@ -2348,7 +2389,7 @@ // ВыбиратьВсеПоля - Булево - признак необходимости выбирать все поля. // // Возвращаемое значение: -// ВыборкаРезультатаЗапроса - выборка для выгрузки очистки данных. +// ВыборкаИзРезультатаЗапроса - выборка для выгрузки очистки данных. // Функция ПолучитьВыборкуДляВыгрузкиОчисткиДанных(Свойства, ИмяТипа, ВыборкаДляОчисткиДанных = Ложь, УдалятьОбъектыНепосредственно = Ложь, ВыбиратьВсеПоля = Истина) Экспорт @@ -5136,8 +5177,8 @@ // // Параметры: // Результат - ЗаписьТекста - объект типа ЗаписьТекста - для вывода обработчика в текстовый файл. -// Правило - строка таблицы значений с правилами конвертации объекта. -// ИмяОбработчика - строка - имя обработчика. +// Правило - СтрокаТаблицыЗначений - с правилами конвертации объекта. +// ИмяОбработчика - Строка - имя обработчика. // Процедура ДобавитьВПотокОбработчикПКО(Результат, Правило, ИмяОбработчика) @@ -5170,8 +5211,8 @@ // Параметры: // Результат - ЗаписьТекста - объект типа ЗаписьТекста - для вывода обработчика в текстовый файл. // Правило - строка дерева значений с правилами. -// ПрефиксОбработчика - строка - префикс обработчика: "ПВД" или "ПОД". -// ИмяОбработчика - строка - имя обработчика. +// ПрефиксОбработчика - Строка - префикс обработчика: "ПВД" или "ПОД". +// ИмяОбработчика - Строка - имя обработчика. // Процедура ДобавитьВПотокОбработчик(Результат, Правило, ПрефиксОбработчика, ИмяОбработчика) @@ -5189,7 +5230,7 @@ // // Параметры: // Результат - ЗаписьТекста - объект типа ЗаписьТекста - для вывода обработчика в текстовый файл. -// ИмяОбработчика - строка - имя обработчика. +// ИмяОбработчика - Строка - имя обработчика. // Процедура ДобавитьВПотокОбработчикКонвертации(Результат, ИмяОбработчика) @@ -5352,8 +5393,8 @@ // Параметры: // ОбработчикНовый - Строка - итоговая строка содержащая полный код алгоритма с учетом вложенности алгоритмов. // ИмяАлгоритма - Строка - имя алгоритма. -// СтрокаПрефикса - строка - задает начальное смещение выводимого комментария. -// Заголовок - строка - наименование комментария: "{НАЧАЛО АЛГОРИТМА}", "{КОНЕЦ АЛГОРИТМА}"... +// СтрокаПрефикса - Строка - задает начальное смещение выводимого комментария. +// Заголовок - Строка - наименование комментария: "{НАЧАЛО АЛГОРИТМА}", "{КОНЕЦ АЛГОРИТМА}"... // Процедура ЗаписатьЗаголовокБлокаАлгоритма(ОбработчикНовый, ИмяАлгоритма, СтрокаПрефикса, Заголовок) @@ -7469,7 +7510,7 @@ // // Параметры: // ТипОбъекта - тип искомого объекта. -// СвойстваПоиска - структура - содержащая свойства по которым производится поиск объекта. +// СвойстваПоиска - Структура - содержащая свойства по которым производится поиск объекта. // ОбъектНайден - если Ложь, то объект не найден, а создан новый. // // Возвращаемое значение: @@ -10972,57 +11013,82 @@ ИмяМетаданных = Правило.ИмяОбъектаДляЗапроса; - СтрокаРазрешения = ?(ВыгружатьТолькоРазрешенные, " РАЗРЕШЕННЫЕ ", ""); - - ПоляВыборки = ""; + СтрокаРазрешения = ?(ВыгружатьТолькоРазрешенные, " РАЗРЕШЕННЫЕ ", ""); // @Query-part-1 ЭтоВыгрузкаРегистра = (Правило.ИмяОбъектаДляЗапроса = Неопределено); Если ЭтоВыгрузкаРегистра Тогда - Непериодический = НЕ Свойства.Периодический; - ПодчиненныйРегистратору = Свойства.ПодчиненныйРегистратору; - - СтрокаДополненияПолейВыборкиПодчиненРегистратору = ?(НЕ ПодчиненныйРегистратору, ", NULL КАК Активность, - | NULL КАК Регистратор, - | NULL КАК НомерСтроки", ""); - - СтрокаДополненияПолейВыборкиПериодичность = ?(Непериодический, ", NULL КАК Период", ""); - ИтоговоеОграничениеПоДате = ПолучитьСтрокуОграниченияПоДатеДляЗапроса(Свойства, Свойства.ИмяТипа, Правило.ИмяОбъектаДляЗапросаРегистра, Ложь); - ПостроительОтчета.Текст = "ВЫБРАТЬ " + СтрокаРазрешения - + "| * - | - | " + СтрокаДополненияПолейВыборкиПодчиненРегистратору - + " | " + СтрокаДополненияПолейВыборкиПериодичность - + " | - | ИЗ " + Правило.ИмяОбъектаДляЗапросаРегистра - + " | - |" + ИтоговоеОграничениеПоДате; - - ПостроительОтчета.ЗаполнитьНастройки(); - - Иначе + ТекстЗапроса = + "ВЫБРАТЬ // АвтозаменаРазрешенные + | * // АвтозаменаПолей + | + | ,NULL КАК Активность + | ,NULL КАК Регистратор + | ,NULL КАК НомерСтроки + | ,NULL КАК Период + | + |ИЗ &ИмяТаблицыМетаданных КАК ОбъектДляВыгрузки"; - Если Правило.ВыбиратьДанныеДляВыгрузкиОднимЗапросом Тогда - - // Выбираем все поля объекта при выгрузке. - ПоляВыборки = "*"; + Если Свойства.ПодчиненныйРегистратору Тогда - Иначе - - ПоляВыборки = "Ссылка КАК Ссылка"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ",NULL КАК Активность", ""); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ",NULL КАК Регистратор", ""); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ",NULL КАК НомерСтроки", ""); КонецЕсли; + Если Свойства.Периодический Тогда + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ",NULL КАК Период", ""); + + КонецЕсли; + + Если НЕ ПустаяСтрока(СтрокаРазрешения) Тогда + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "// АвтозаменаРазрешенные", СтрокаРазрешения); + + КонецЕсли; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыМетаданных", Правило.ИмяОбъектаДляЗапросаРегистра); + ТекстЗапроса = ТекстЗапроса + Символы.ПС + ИтоговоеОграничениеПоДате; + + ПостроительОтчета.Текст = ТекстЗапроса; + ПостроительОтчета.ЗаполнитьНастройки(); + + Иначе + ИтоговоеОграничениеПоДате = ПолучитьСтрокуОграниченияПоДатеДляЗапроса(Свойства, Свойства.ИмяТипа,, Ложь); - ПостроительОтчета.Текст = "ВЫБРАТЬ " + СтрокаРазрешения + " " + ПоляВыборки + " ИЗ " + ИмяМетаданных + " + ТекстЗапроса = + "ВЫБРАТЬ // АвтозаменаРазрешенные + | * // АвтозаменаПолей | - |" + ИтоговоеОграничениеПоДате + " - | - |{ГДЕ Ссылка.* КАК " + СтрЗаменить(ИмяМетаданных, ".", "_") + "}"; + | ИЗ &ИмяТаблицыМетаданных КАК ОбъектДляВыгрузки"; + + Если НЕ ПустаяСтрока(СтрокаРазрешения) Тогда + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "// АвтозаменаРазрешенные", СтрокаРазрешения); + + КонецЕсли; + + Если Правило.ВыбиратьДанныеДляВыгрузкиОднимЗапросом <> Истина Тогда + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "* // АвтозаменаПолей", "ОбъектДляВыгрузки.Ссылка КАК Ссылка"); + + КонецЕсли; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыМетаданных", ИмяМетаданных); + ТекстЗапроса = ТекстЗапроса + Символы.ПС + ИтоговоеОграничениеПоДате; + + ПсевдонимКомпоновщикаОтчета = СтрЗаменить(ИмяМетаданных, ".", "_"); + СтрокаУсловияКомпоновщика = "{ГДЕ Ссылка.* КАК ПсевдонимКомпоновщикаОтчета}"; + СтрокаУсловияКомпоновщика = СтрЗаменить(СтрокаУсловияКомпоновщика, "ПсевдонимКомпоновщикаОтчета", ПсевдонимКомпоновщикаОтчета); + ТекстЗапроса = ТекстЗапроса + Символы.ПС + СтрокаУсловияКомпоновщика; + + ПостроительОтчета.Текст = ТекстЗапроса; КонецЕсли; @@ -11411,7 +11477,7 @@ КонецПроцедуры // Параметры: -// Данные - ЛюбаяСсылка, РегистрСведенийНаборЗаписей, и т.п. +// Данные - ЛюбаяСсылка - ссылка справочника, документа, ключ регистра сведений и т.д. // Процедура ПолучитьСтрокуПравилВыгрузкиПоОбъектуОбмена(Данные, МетаданныеПоследнегоОбъекта, МетаданныеОбъектаВыгрузки, ПоследняяСтрокаПравилВыгрузки, ТекущаяСтрокаПравилаВыгрузки, ВременныйМассивПравилКонвертации, ОбъектДляПравилВыгрузки, @@ -13752,14 +13818,27 @@ Имя = ОбъектМД.Имя; ТипСсылкиСтрокой = ПрефиксИмениТипа + "." + Имя; - СтрокаПоиска = "ВЫБРАТЬ Ссылка ИЗ " + ИмяТипа + "." + Имя + " ГДЕ "; + + ТекстЗапроса = + "ВЫБРАТЬ + | ПсевдонимТаблицыМетаданных.Ссылка + |ИЗ + | &ИмяТаблицыМетаданных КАК ПсевдонимТаблицыМетаданных + |ГДЕ + | ИСТИНА // АвтозаменаУсловия"; + + СтрокаЗамены = ""; + СтрокаЗамены = ПодставитьПараметрыВСтроку("%1.%2", ИмяТипа, Имя); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыМетаданных", СтрокаЗамены); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Истина // АвтозаменаУсловия", ""); + + СтрокаПоиска = ТекстЗапроса; ТипСсылки = Тип(ТипСсылкиСтрокой); Структура = СтруктураПараметровМенеджера(Имя, ИмяТипа, ТипСсылкиСтрокой, Менеджер, ОбъектМД); Структура.Вставить("ВозможенПоискПоПредопределенным", ВозможенПоискПоПредопределенным); Структура.Вставить("СтрокаПоиска", СтрокаПоиска); Менеджеры.Вставить(ТипСсылки, Структура); - СтруктураДляПланаОбмена = СтруктураПараметровПланаОбмена(Имя, ТипСсылки, Истина, Ложь); МенеджерыДляПлановОбмена.Вставить(ОбъектМД, СтруктураДляПланаОбмена); @@ -13989,8 +14068,14 @@ // * Имя - Строка // * ИмяТипа - Строка // * ТипСсылкиСтрокой - Строка -// * Менеджер - СправочникМенеджер, ДокументМенеджер, РегистрСведенийМенеджер, и т.п. -// * ОбъектМД - ОбъектМетаданныхСправочник, ОбъектМетаданныхДокумент, ОбъектМетаданныхРегистрСведений, и т.п. +// * Менеджер - СправочникМенеджер +// - ДокументМенеджер +// - РегистрСведенийМенеджер +// - и т.п. +// * ОбъектМД - ОбъектМетаданныхСправочник +// - ОбъектМетаданныхДокумент +// - ОбъектМетаданныхРегистрСведений +// - и т.п. // * ПКО - см. НайтиПравило // Функция Менеджеры(Тип) @@ -14581,16 +14666,18 @@ Функция ИмяПредопределенного(Ссылка) - Запрос = Новый Запрос; - Запрос.УстановитьПараметр("Ссылка", Ссылка); - Запрос.Текст = + ТекстЗапроса = "ВЫБРАТЬ - | ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных + | ПсевдонимЗаданнойТаблицы.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных |ИЗ - | " + Ссылка.Метаданные().ПолноеИмя() + " КАК ПсевдонимЗаданнойТаблицы + | &ИмяТаблицыМетаданных КАК ПсевдонимЗаданнойТаблицы |ГДЕ - | ПсевдонимЗаданнойТаблицы.Ссылка = &Ссылка - |"; + | ПсевдонимЗаданнойТаблицы.Ссылка = &Ссылка"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыМетаданных", Ссылка.Метаданные().ПолноеИмя()); + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); diff --git a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ОсновнаяФорма/Form.form b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ОсновнаяФорма/Form.form index a58f38068..74cdf0d01 100644 --- a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ОсновнаяФорма/Form.form +++ b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ОсновнаяФорма/Form.form @@ -93,10 +93,6 @@ true - - <key>ru</key> - <value>Установить период рассчитанных итогов</value> - ГруппаУстановитьПериодРассчитанныхИтоговРасширеннаяПодсказка 333 @@ -195,10 +191,6 @@ true - - <key>ru</key> - <value>Включение итогов</value> - ГруппаВключениеИтоговExtendedTooltip 336 @@ -331,10 +323,6 @@ true - - <key>ru</key> - <value>Перестроение и заполнение агрегатов</value> - ГруппаПерестроениеИЗаполнениеАгрегатовExtendedTooltip 340 @@ -432,10 +420,6 @@ true - - <key>ru</key> - <value>Получение оптимальных агрегатов</value> - ГруппаПолучениеОптимальныхАгрегатовExtendedTooltip 343 @@ -524,10 +508,6 @@ СписокИтогов 9 - - <key>ru</key> - <value>Список итогов</value> - true true @@ -681,10 +661,6 @@ true - - <key>ru</key> - <value>Список итогов наименование и режим</value> - СписокИтоговНаименованиеИРежимРасширеннаяПодсказка 415 @@ -1626,10 +1602,6 @@ АгрегатыПоРегистрам 56 - - <key>ru</key> - <value>Агрегаты по регистрам</value> - true true @@ -1782,10 +1754,6 @@ true - - <key>ru</key> - <value>Агрегаты по регистрам наименование и режим</value> - АгрегатыПоРегистрамНаименованиеИРежимРасширеннаяПодсказка 421 @@ -1898,10 +1866,6 @@ true - - <key>ru</key> - <value>Агрегаты по регистрам группа дата и эффект</value> - АгрегатыПоРегистрамГруппаДатаИЭффектРасширеннаяПодсказка 423 @@ -2014,10 +1978,6 @@ true - - <key>ru</key> - <value>Агрегаты по регистрам группа размеры</value> - АгрегатыПоРегистрамГруппаРазмерыРасширеннаяПодсказка 419 @@ -2711,10 +2671,6 @@ true - - <key>ru</key> - <value>Агрегаты регистра периодичность и использование</value> - АгрегатыРегистраПериодичностьИИспользованиеРасширеннаяПодсказка 417 @@ -3045,10 +3001,6 @@ true - - <key>ru</key> - <value>Расширенные инструменты</value> - РасширенныеИнструментыExtendedTooltip 347 @@ -3096,10 +3048,6 @@ true - - <key>ru</key> - <value>Операции</value> - ОперацииExtendedTooltip 330 @@ -3195,10 +3143,6 @@ true - - <key>ru</key> - <value>Подвал</value> - ПодвалExtendedTooltip 411 diff --git a/SSL/src/DefinedTypes/БизнесПроцессОбъект/БизнесПроцессОбъект.mdo b/SSL/src/DefinedTypes/БизнесПроцессОбъект/БизнесПроцессОбъект.mdo new file mode 100644 index 000000000..08677f69f --- /dev/null +++ b/SSL/src/DefinedTypes/БизнесПроцессОбъект/БизнесПроцессОбъект.mdo @@ -0,0 +1,14 @@ + + + + + + БизнесПроцессОбъект + + ru + Бизнес процесс объект + + + BusinessProcessObject.Задание + + diff --git a/SSL/src/DefinedTypes/ОбъектСНастраиваемымПорядком/ОбъектСНастраиваемымПорядком.mdo b/SSL/src/DefinedTypes/ОбъектСНастраиваемымПорядком/ОбъектСНастраиваемымПорядком.mdo index 844da5a1a..9d620ec1c 100644 --- a/SSL/src/DefinedTypes/ОбъектСНастраиваемымПорядком/ОбъектСНастраиваемымПорядком.mdo +++ b/SSL/src/DefinedTypes/ОбъектСНастраиваемымПорядком/ОбъектСНастраиваемымПорядком.mdo @@ -9,6 +9,7 @@ Объект с настраиваемым порядком + CatalogObject.ЯзыкиПечатныхФорм CatalogObject.ПравилаОбработкиЭлектроннойПочты CatalogObject.СостоянияОригиналовПервичныхДокументов CatalogObject.ВидыКонтактнойИнформации diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПараметрыЭлектронногоПисьма/Form.form b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПараметрыЭлектронногоПисьма/Form.form index c134656ff..58237fba6 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПараметрыЭлектронногоПисьма/Form.form +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПараметрыЭлектронногоПисьма/Form.form @@ -105,10 +105,6 @@ true - - <key>ru</key> - <value>Даты</value> - true ГруппаДатыExtendedTooltip @@ -216,10 +212,6 @@ true - - <key>ru</key> - <value>Включать внутренний номер</value> - ГруппаВключатьВнутреннийНомерExtendedTooltip 33 @@ -245,10 +237,6 @@ true - - <key>ru</key> - <value>Даты номер</value> - ГруппаДатыНомерExtendedTooltip 29 @@ -394,10 +382,6 @@ true - - <key>ru</key> - <value>Параметры отслеживания</value> - ГруппаПараметрыОтслеживанияExtendedTooltip 37 diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Form.form b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Form.form index ee9c3f885..77ab1abef 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Form.form +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Form.form @@ -73,10 +73,6 @@ true - - <key>ru</key> - <value>Письмо основание печать</value> - ГруппаПисьмоОснованиеПечатьРасширеннаяПодсказка 36 @@ -186,10 +182,6 @@ true - - <key>ru</key> - <value>Предупреждение безопасности</value> - ПредупреждениеБезопасностиРасширеннаяПодсказка 40 @@ -262,10 +254,6 @@ Вложения 4 - - <key>ru</key> - <value>Вложения</value> - true true @@ -408,10 +396,6 @@ true - - <key>ru</key> - <value>Вложения</value> - 15 ГруппаExtendedTooltip diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl index a20810898..d1570cc3b 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl @@ -2707,6 +2707,8 @@ Инд = Инд + 1; КонецЦикла; + ТекстУсловийПоЖурналуДокументов = ?(ПустаяСтрока(ТекстУсловийПоЖурналуДокументов), "ИСТИНА", ТекстУсловийПоЖурналуДокументов); + ТекстУсловийПоРегистру = ?(ПустаяСтрока(ТекстУсловийПоРегистру), "ИСТИНА", ТекстУсловийПоРегистру); ТекстЗапросаДинамическийСписок = "ВЫБРАТЬ @@ -2727,15 +2729,15 @@ | ПО | КонтактыВзаимодействий.Контакт = СостоянияКонтактовВзаимодействий.Контакт | И КонтактыВзаимодействий.Взаимодействие = ЖурналДокументовВзаимодействия.Ссылка - | %ТекстУсловияЖурналДокументов% + | И &ТекстУсловияЖурналДокументов | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыВзаимодействий | ПО | КонтактыВзаимодействий.Контакт = СостоянияКонтактовВзаимодействий.Контакт | И КонтактыВзаимодействий.Взаимодействие = ПредметыВзаимодействий.Взаимодействие - | %ТекстУсловияРегистрПапки%)"; + | И &ТекстУсловияРегистрПапки)"; - ТекстЗапросаДинамическийСписок = СтрЗаменить(ТекстЗапросаДинамическийСписок, "%ТекстУсловияЖурналДокументов%", ТекстУсловийПоЖурналуДокументов); - ТекстЗапросаДинамическийСписок = СтрЗаменить(ТекстЗапросаДинамическийСписок, "%ТекстУсловияРегистрПапки%", ТекстУсловийПоРегистру); + ТекстЗапросаДинамическийСписок = СтрЗаменить(ТекстЗапросаДинамическийСписок, "&ТекстУсловияЖурналДокументов", ТекстУсловийПоЖурналуДокументов); + ТекстЗапросаДинамическийСписок = СтрЗаменить(ТекстЗапросаДинамическийСписок, "&ТекстУсловияРегистрПапки", ТекстУсловийПоРегистру); СтруктураСвойствСписка.ТекстЗапроса = ТекстЗапросаДинамическийСписок; ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.КонтактыПанелиНавигации, СтруктураСвойствСписка); @@ -2952,11 +2954,10 @@ |//////////////////////////////////////////////////////////////////////////////// |"; - НайденнаяПозицияИЗ = СтрНайти(ТекстЗапроса,"ИЗ"); + НайденнаяПозицияИЗ = СтрНайти(ТекстЗапроса,"ИЗ"); // @query-part Если НайденнаяПозицияИЗ <> 0 Тогда ТекстЗапроса = Лев(ТекстЗапроса,НайденнаяПозицияИЗ - 1) + " ПОМЕСТИТЬ ОтборСписка - | " + Прав(ТекстЗапроса,СтрДлина(ТекстЗапроса) - НайденнаяПозицияИЗ + 1); - + | " + Прав(ТекстЗапроса,СтрДлина(ТекстЗапроса) - НайденнаяПозицияИЗ + 1); // @query-part КонецЕсли; Иначе @@ -4221,7 +4222,6 @@ &НаСервере Процедура СФормироватьДекорациюТолькоЗначимыеКонтакты() - МассивСтрок = Новый Массив; Если ТолькоЗначимыеКонтакты Тогда ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Контакты с взаимодействиями по отбору, изменить'")); Иначе @@ -4235,7 +4235,6 @@ &НаСервере Процедура СФормироватьДекорациюТолькоЗначимыеПредметы() - МассивСтрок = Новый Массив; Если ТолькоЗначимыеПредметы Тогда ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Предметы с взаимодействиями по отбору, изменить'")); Иначе diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСпискаПараметрическая/Module.bsl b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСпискаПараметрическая/Module.bsl index 56281680e..6ffeaf668 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСпискаПараметрическая/Module.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСпискаПараметрическая/Module.bsl @@ -1026,7 +1026,7 @@ // Получает массив, который передается в качестве параметра запроса при получении взаимодействий по контакту. // // Параметры: -// Контакт - Ссылка - контакт, для которого необходимо выполнить поиск связанных контактов. +// Контакт - ЛюбаяСсылка - контакт, для которого необходимо выполнить поиск связанных контактов. // // Возвращаемое значение: // Массив diff --git a/SSL/src/DocumentJournals/Взаимодействия/ManagerModule.bsl b/SSL/src/DocumentJournals/Взаимодействия/ManagerModule.bsl index ce98d89bf..6fe65cc20 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/ManagerModule.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Documents/Анкета/ManagerModule.bsl b/SSL/src/Documents/Анкета/ManagerModule.bsl index c46b49f7e..80ccbf17b 100644 --- a/SSL/src/Documents/Анкета/ManagerModule.bsl +++ b/SSL/src/Documents/Анкета/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт diff --git a/SSL/src/Documents/Встреча/ManagerModule.bsl b/SSL/src/Documents/Встреча/ManagerModule.bsl index 81e61b6fb..8604c204e 100644 --- a/SSL/src/Documents/Встреча/ManagerModule.bsl +++ b/SSL/src/Documents/Встреча/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -59,7 +59,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Documents/Встреча/ObjectModule.bsl b/SSL/src/Documents/Встреча/ObjectModule.bsl index 80d6e2026..d165af54a 100644 --- a/SSL/src/Documents/Встреча/ObjectModule.bsl +++ b/SSL/src/Documents/Встреча/ObjectModule.bsl @@ -29,7 +29,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступом.ЗаполнитьНаборыЗначенийДоступа. +// Параметры: +// Таблица - см. УправлениеДоступом.ТаблицаНаборыЗначенийДоступа +// Процедура ЗаполнитьНаборыЗначенийДоступа(Таблица) Экспорт ВзаимодействияСобытия.ЗаполнитьНаборыЗначенийДоступа(ЭтотОбъект, Таблица); diff --git a/SSL/src/Documents/ЗапланированноеВзаимодействие/ManagerModule.bsl b/SSL/src/Documents/ЗапланированноеВзаимодействие/ManagerModule.bsl index 5ea9dcca2..6351fa987 100644 --- a/SSL/src/Documents/ЗапланированноеВзаимодействие/ManagerModule.bsl +++ b/SSL/src/Documents/ЗапланированноеВзаимодействие/ManagerModule.bsl @@ -36,7 +36,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -57,7 +57,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Documents/ЗапланированноеВзаимодействие/ObjectModule.bsl b/SSL/src/Documents/ЗапланированноеВзаимодействие/ObjectModule.bsl index ce075409a..52edbd25d 100644 --- a/SSL/src/Documents/ЗапланированноеВзаимодействие/ObjectModule.bsl +++ b/SSL/src/Documents/ЗапланированноеВзаимодействие/ObjectModule.bsl @@ -29,8 +29,6 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступом.ЗаполнитьНаборыЗначенийДоступа. -// // Параметры: // Таблица - см. УправлениеДоступом.ТаблицаНаборыЗначенийДоступа // diff --git a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Form.form b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Form.form index 5abbdeed1..f829188e8 100644 --- a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Form.form +++ b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Form.form @@ -7,10 +7,6 @@ Респонденты 1 - - <key>ru</key> - <value>Респонденты</value> - true true @@ -244,10 +240,6 @@ true - - <key>ru</key> - <value>Списки</value> - ГруппаСпискиExtendedTooltip 34 diff --git a/SSL/src/Documents/НазначениеОпросов/ManagerModule.bsl b/SSL/src/Documents/НазначениеОпросов/ManagerModule.bsl index b18979da4..4a0eda038 100644 --- a/SSL/src/Documents/НазначениеОпросов/ManagerModule.bsl +++ b/SSL/src/Documents/НазначениеОпросов/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -82,13 +82,13 @@ // // Параметры: // Сообщение - Структура: -// * ЗначенияРеквизитов - Соответствие - список используемых в шаблоне реквизитов: +// * ЗначенияРеквизитов - Соответствие из КлючИЗначение - список используемых в шаблоне реквизитов: // ** Ключ - Строка - имя реквизита в шаблоне; // ** Значение - Строка - значение заполнения в шаблоне. -// * ЗначенияОбщихРеквизитов - Соответствие - список используемых в шаблоне общих реквизитов: +// * ЗначенияОбщихРеквизитов - Соответствие из КлючИЗначение - список используемых в шаблоне общих реквизитов: // ** Ключ - Строка - имя реквизита в шаблоне; // ** Значение - Строка - значение заполнения в шаблоне. -// * Вложения - Соответствие: +// * Вложения - Соответствие из КлючИЗначение: // ** Ключ - Строка - имя вложения в шаблоне; // ** Значение - ДвоичныеДанные // - Строка - двоичные данные или адрес во временном хранилище вложения. diff --git a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/ManagerModule.bsl b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/ManagerModule.bsl index 8fd23b81f..5fe9a6359 100644 --- a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/ManagerModule.bsl +++ b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/ManagerModule.bsl @@ -107,7 +107,7 @@ // МассивИменМакетов - Массив - имена макетов (Строка), в которые подставляются данные для печати. // // Возвращаемое значение: -// Соответствие - коллекция ссылок на объекты и их данные: +// Соответствие из КлючИЗначение - коллекция ссылок на объекты и их данные: // * Ключ - ЛюбаяСсылка - ссылка на объект информационной базы; // * Значение - Структура: // ** Ключ - Строка - имя макета, @@ -239,9 +239,10 @@ // Структура данных для подготовки печатных форм. // // Параметры: -// Согласия - массив документов типа ДокументСсылка.СогласиеНаОбработкуПерсональныхДанных. +// Согласия - Массив из ДокументСсылка.СогласиеНаОбработкуПерсональныхДанных. // -// Возвращаемое значение - см. ОписаниеСогласия +// Возвращаемое значение: +// Массив из см. Документ.СогласиеНаОбработкуПерсональныхДанных.ОписаниеСогласия // Функция ДанныеДляПечатиСогласий(Согласия) @@ -300,9 +301,12 @@ // Структура данных для подготовки печатных форм. // // Параметры: -// Согласия - массив документов типа ДокументСсылка.СогласиеНаОбработкуПерсональныхДанных. +// Согласия - Массив из ДокументСсылка.СогласиеНаОбработкуПерсональныхДанных. // -// Возвращаемое значение - см. ОписаниеСогласия +// Возвращаемое значение: +// Соответствие из КлючИЗначение: +// * Ключ - ДокументСсылка.СогласиеНаОбработкуПерсональныхДанных +// * Значение - см. Документ.СогласиеНаОбработкуПерсональныхДанных.ОписаниеСогласия // Функция СоответствиеДанныхДляПечатиСогласий(Согласия) @@ -318,6 +322,20 @@ КонецФункции +// Возвращаемое значение: +// Структура: +// * ДатаСогласия - Строка +// * ДокументОснование - ДокументСсылка.СогласиеНаОбработкуПерсональныхДанных +// * Организация - Строка +// * ОрганизацияВДательномПадеже - Строка +// * АдресОрганизации - Строка +// * ОтветственныйЗаОбработкуПерсональныхДанных - Строка +// * ОтветственныйЗаОбработкуПерсональныхДанныхВРодительномПадеже - Строка +// * ПериодДействия - Строка +// * ФИО - Строка +// * Адрес - Строка +// * ПаспортныеДанные - Строка +// Функция ОписаниеСогласия() ОписаниеСогласия = Новый Структура( @@ -388,12 +406,12 @@ // в формате офисного документа Office Open XML. // // Параметры: -// ДокументСсылка - Ссылка - объект, по которому требуется сформировать печатную форму. +// ДокументСсылка - ЛюбаяСсылка - объект, по которому требуется сформировать печатную форму. // МакетИДанныеОбъекта - Соответствие - коллекция ссылок на объекты и их данные. // ИмяМакета - Строка - наименование макета для печати. // // Возвращаемое значение: -// АдресХранилищаПечатнойФормы - Строка - адрес хранилища, куда помещается сформированный файл. +// Строка - адрес хранилища, куда помещается сформированный файл. // Функция НапечататьСогласиеНаОбработкуПерсональныхДанныхСубъекта(ДокументСсылка, МакетИДанныеОбъекта, ИмяМакета) diff --git a/SSL/src/Documents/СообщениеSMS/ManagerModule.bsl b/SSL/src/Documents/СообщениеSMS/ManagerModule.bsl index cfff28a24..71030e541 100644 --- a/SSL/src/Documents/СообщениеSMS/ManagerModule.bsl +++ b/SSL/src/Documents/СообщениеSMS/ManagerModule.bsl @@ -36,7 +36,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -57,7 +57,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Documents/СообщениеSMS/ObjectModule.bsl b/SSL/src/Documents/СообщениеSMS/ObjectModule.bsl index e0dd6e320..7b1848fce 100644 --- a/SSL/src/Documents/СообщениеSMS/ObjectModule.bsl +++ b/SSL/src/Documents/СообщениеSMS/ObjectModule.bsl @@ -29,7 +29,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступом.ЗаполнитьНаборыЗначенийДоступа. +// Параметры: +// Таблица - см. УправлениеДоступом.ТаблицаНаборыЗначенийДоступа +// Процедура ЗаполнитьНаборыЗначенийДоступа(Таблица) Экспорт ВзаимодействияСобытия.ЗаполнитьНаборыЗначенийДоступа(ЭтотОбъект, Таблица); diff --git a/SSL/src/Documents/ТелефонныйЗвонок/ManagerModule.bsl b/SSL/src/Documents/ТелефонныйЗвонок/ManagerModule.bsl index f8bdb7f0d..e3af96e67 100644 --- a/SSL/src/Documents/ТелефонныйЗвонок/ManagerModule.bsl +++ b/SSL/src/Documents/ТелефонныйЗвонок/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -76,7 +76,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Documents/ТелефонныйЗвонок/ObjectModule.bsl b/SSL/src/Documents/ТелефонныйЗвонок/ObjectModule.bsl index 65dda991f..389a136b7 100644 --- a/SSL/src/Documents/ТелефонныйЗвонок/ObjectModule.bsl +++ b/SSL/src/Documents/ТелефонныйЗвонок/ObjectModule.bsl @@ -44,8 +44,6 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступом.ЗаполнитьНаборыЗначенийДоступа. -// // Параметры: // Таблица - см. УправлениеДоступом.ТаблицаНаборыЗначенийДоступа // diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ManagerModule.bsl b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ManagerModule.bsl index b8b46b46a..c46b49b81 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ManagerModule.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -138,7 +138,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ObjectModule.bsl b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ObjectModule.bsl index 4099c9c2c..a13216889 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ObjectModule.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ObjectModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступом.ЗаполнитьНаборыЗначенийДоступа. +// Параметры: +// Таблица - см. УправлениеДоступом.ТаблицаНаборыЗначенийДоступа +// Процедура ЗаполнитьНаборыЗначенийДоступа(Таблица) Экспорт ВзаимодействияСобытия.ЗаполнитьНаборыЗначенийДоступа(ЭтотОбъект, Таблица); diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl index 1b2d9543d..b8aacf0a4 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl @@ -451,7 +451,7 @@ ПараметрыВложения.Вставить("Размер", ДвоичныеДанныеКартинки.Размер()); ПараметрыВложения.Вставить("ИДФайлаЭлектронногоПисьма", Вложение.ИдентификаторФайлаДляHTML); - ПрисоединенныйФайл = УправлениеЭлектроннойПочтой.ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища( + УправлениеЭлектроннойПочтой.ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища( Письмо, АдресКартинкиВоВременномХранилище, ПараметрыВложения); КонецЦикла; @@ -472,7 +472,7 @@ ПараметрыВложения.Вставить("Размер", Вложение.Размер); ПараметрыВложения.Вставить("ИДФайлаЭлектронногоПисьма", Вложение.ИДФайлаЭлектронногоПисьма); - ПрисоединенныйФайл = УправлениеЭлектроннойПочтой.ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища( + УправлениеЭлектроннойПочтой.ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища( Письмо, АдресКартинкиВоВременномХранилище, ПараметрыВложения); КонецЦикла; @@ -1567,7 +1567,7 @@ // Параметры: // Размер - Число - размер файла. // ДополнительныеПараметры - Структура: -// * СтрокаТаблицыВложений - СтрокаТаблицыЗначений - содержит: +// * СтрокаТаблицыВложений - СтрокаТаблицыЗначений: // ** Размер - Число - размер файла. // &НаКлиенте @@ -2448,7 +2448,6 @@ КонецЕсли; КонецЕсли; - ИдентификаторПисьма = РезультатОтправки.ИдентификаторПисьмаSMTP; Результат.ПисьмоОтправлено = Истина; НачатьТранзакцию(); diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ManagerModule.bsl b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ManagerModule.bsl index 52f3462ef..89d38e797 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ManagerModule.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -109,7 +109,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ObjectModule.bsl b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ObjectModule.bsl index 28db4c889..30a406517 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ObjectModule.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ObjectModule.bsl @@ -83,7 +83,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступом.ЗаполнитьНаборыЗначенийДоступа. +// Параметры: +// Таблица - см. УправлениеДоступом.ТаблицаНаборыЗначенийДоступа +// Процедура ЗаполнитьНаборыЗначенийДоступа(Таблица) Экспорт ВзаимодействияСобытия.ЗаполнитьНаборыЗначенийДоступа(ЭтотОбъект, Таблица); @@ -325,7 +327,7 @@ // // Параметры: // Письмо - ДокументСсылка.ЭлектронноеПисьмоВходящее -// - ДокументСсылка.ЭлектронноеПисьмоИсходящее - письмо-основание. +// - ДокументСсылка.ЭлектронноеПисьмоИсходящее - письмо-основание. // ПереноситьОтправителяВПолучатели - Булево - признак необходимости переноса отправителя письма основания в // создаваемое письмо. // ПереноситьВсехПолучателейПисьмаВПолучатели - Булево - признак необходимости переноса получателей письма основания в @@ -357,6 +359,7 @@ |ГДЕ | ЭлектронноеПисьмо.Ссылка = &Ссылка"; + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицы", ИмяТаблицы); Запрос.УстановитьПараметр("Ссылка", Письмо); @@ -372,7 +375,6 @@ ИдентификаторОснования = Выборка.ИдентификаторСообщения; ИдентификаторыОснований = СокрЛП(Выборка.ИдентификаторыОснований + " <" + ИдентификаторОснования + ">"); Кодировка = Выборка.Кодировка; - Предмет = Выборка.Предмет; Тема = ДобавлятьКТеме + Выборка.Тема; УчетнаяЗапись = Выборка.УчетнаяЗапись; ВзаимодействиеОснование = Выборка.Ссылка; @@ -427,7 +429,7 @@ ВыборкаОтправитель.ОтправительКонтакт); КонецЕсли; - + КонецЕсли; Если ПереноситьВсехПолучателейПисьмаВПолучатели Тогда diff --git a/SSL/src/Enums/СервисыПереводаТекста/СервисыПереводаТекста.mdo b/SSL/src/Enums/СервисыПереводаТекста/СервисыПереводаТекста.mdo new file mode 100644 index 000000000..b79941808 --- /dev/null +++ b/SSL/src/Enums/СервисыПереводаТекста/СервисыПереводаТекста.mdo @@ -0,0 +1,45 @@ + + + + + + + + СервисыПереводаТекста + + ru + Сервисы перевода текста + + + Use + Order + + Use + + + + + Use + Ref + + Use + + + + true + BothWays + + ЯндексПереводчик + + ru + Яндекс.Переводчик + + + + GoogleПереводчик + + ru + Google Переводчик + + + diff --git a/SSL/src/EventSubscriptions/ЗаписатьВСписокБизнесПроцессов/ЗаписатьВСписокБизнесПроцессов.mdo b/SSL/src/EventSubscriptions/ЗаписатьВСписокБизнесПроцессов/ЗаписатьВСписокБизнесПроцессов.mdo index 6e72779b4..86564d1ae 100644 --- a/SSL/src/EventSubscriptions/ЗаписатьВСписокБизнесПроцессов/ЗаписатьВСписокБизнесПроцессов.mdo +++ b/SSL/src/EventSubscriptions/ЗаписатьВСписокБизнесПроцессов/ЗаписатьВСписокБизнесПроцессов.mdo @@ -6,7 +6,7 @@ Записать в список бизнес процессов - BusinessProcessObject + DefinedType.БизнесПроцессОбъект OnWrite CommonModule.БизнесПроцессыИЗадачиСобытия.ЗаписатьВСписокБизнесПроцессов diff --git a/SSL/src/EventSubscriptions/ОбновитьСостояниеБизнесПроцесса/ОбновитьСостояниеБизнесПроцесса.mdo b/SSL/src/EventSubscriptions/ОбновитьСостояниеБизнесПроцесса/ОбновитьСостояниеБизнесПроцесса.mdo index 39e44d652..aeb6115f1 100644 --- a/SSL/src/EventSubscriptions/ОбновитьСостояниеБизнесПроцесса/ОбновитьСостояниеБизнесПроцесса.mdo +++ b/SSL/src/EventSubscriptions/ОбновитьСостояниеБизнесПроцесса/ОбновитьСостояниеБизнесПроцесса.mdo @@ -6,7 +6,7 @@ Обновить состояние бизнес процесса - BusinessProcessObject + DefinedType.БизнесПроцессОбъект BeforeWrite CommonModule.БизнесПроцессыИЗадачиСобытия.ОбновитьСостояниеБизнесПроцесса diff --git a/SSL/src/EventSubscriptions/ПереопределитьПолучаемуюФормуПрисоединенногоФайлаВзаимодействия/ПереопределитьПолучаемуюФормуПрисоединенногоФайлаВзаимодействия.mdo b/SSL/src/EventSubscriptions/ОпределитьФормуПрисоединенногоФайлаВзаимодействия/ОпределитьФормуПрисоединенногоФайлаВзаимодействия.mdo similarity index 80% rename from SSL/src/EventSubscriptions/ПереопределитьПолучаемуюФормуПрисоединенногоФайлаВзаимодействия/ПереопределитьПолучаемуюФормуПрисоединенногоФайлаВзаимодействия.mdo rename to SSL/src/EventSubscriptions/ОпределитьФормуПрисоединенногоФайлаВзаимодействия/ОпределитьФормуПрисоединенногоФайлаВзаимодействия.mdo index 5dea31400..6a4df8653 100644 --- a/SSL/src/EventSubscriptions/ПереопределитьПолучаемуюФормуПрисоединенногоФайлаВзаимодействия/ПереопределитьПолучаемуюФормуПрисоединенногоФайлаВзаимодействия.mdo +++ b/SSL/src/EventSubscriptions/ОпределитьФормуПрисоединенногоФайлаВзаимодействия/ОпределитьФормуПрисоединенногоФайлаВзаимодействия.mdo @@ -1,9 +1,9 @@ - ПереопределитьПолучаемуюФормуПрисоединенногоФайлаВзаимодействия + ОпределитьФормуПрисоединенногоФайлаВзаимодействия ru - Переопределить получаемую форму присоединенного файла (Взаимодействия) + Определить форму присоединенного файла (Взаимодействия) АПК:256 - обработчик в серверном модуле diff --git a/SSL/src/EventSubscriptions/ПереопределитьПолучаемуюФормуПрисоединенногоФайлаШаблоныСообщений/ПереопределитьПолучаемуюФормуПрисоединенногоФайлаШаблоныСообщений.mdo b/SSL/src/EventSubscriptions/ОпределитьФормуПрисоединенногоФайлаШаблоныСообщений/ОпределитьФормуПрисоединенногоФайлаШаблоныСообщений.mdo similarity index 68% rename from SSL/src/EventSubscriptions/ПереопределитьПолучаемуюФормуПрисоединенногоФайлаШаблоныСообщений/ПереопределитьПолучаемуюФормуПрисоединенногоФайлаШаблоныСообщений.mdo rename to SSL/src/EventSubscriptions/ОпределитьФормуПрисоединенногоФайлаШаблоныСообщений/ОпределитьФормуПрисоединенногоФайлаШаблоныСообщений.mdo index cca29e7eb..fa0123705 100644 --- a/SSL/src/EventSubscriptions/ПереопределитьПолучаемуюФормуПрисоединенногоФайлаШаблоныСообщений/ПереопределитьПолучаемуюФормуПрисоединенногоФайлаШаблоныСообщений.mdo +++ b/SSL/src/EventSubscriptions/ОпределитьФормуПрисоединенногоФайлаШаблоныСообщений/ОпределитьФормуПрисоединенногоФайлаШаблоныСообщений.mdo @@ -1,9 +1,9 @@ - ПереопределитьПолучаемуюФормуПрисоединенногоФайлаШаблоныСообщений + ОпределитьФормуПрисоединенногоФайлаШаблоныСообщений ru - Переопределить получаемую форму присоединенного файла (Шаблоны сообщений) + Определить форму присоединенного файла (Шаблоны сообщений) АПК:256 - обработчик в серверном модуле diff --git a/SSL/src/EventSubscriptions/УстановитьПометкуУдаленияЗадач/УстановитьПометкуУдаленияЗадач.mdo b/SSL/src/EventSubscriptions/УстановитьПометкуУдаленияЗадач/УстановитьПометкуУдаленияЗадач.mdo index b8dd4826d..8ae2988f3 100644 --- a/SSL/src/EventSubscriptions/УстановитьПометкуУдаленияЗадач/УстановитьПометкуУдаленияЗадач.mdo +++ b/SSL/src/EventSubscriptions/УстановитьПометкуУдаленияЗадач/УстановитьПометкуУдаленияЗадач.mdo @@ -6,7 +6,7 @@ Установить пометку удаления задач - BusinessProcessObject + DefinedType.БизнесПроцессОбъект BeforeWrite CommonModule.БизнесПроцессыИЗадачиСобытия.УстановитьПометкуУдаленияЗадач diff --git a/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ManagerModule.bsl b/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ManagerModule.bsl index 75aa93c55..703edd3d6 100644 --- a/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ManagerModule.bsl +++ b/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ManagerModule.bsl @@ -16,8 +16,8 @@ // Очередь - Число - очередь обработки данных. // // Возвращаемое значение: -// Массив - массив со значениями: -// * ПланОбменаСсылка.ОбновлениеИнформационнойБазы +// Массив - массив со значениями: +// * ПланОбменаСсылка.ОбновлениеИнформационнойБазы // Функция УзлыМеньшейОчереди(Очередь) Экспорт diff --git a/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo b/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo index 796b89229..7ef50d4c2 100644 --- a/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo +++ b/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo @@ -143,6 +143,9 @@ Constant.ДатаУведомленияОНовыхЗадачах + + InformationRegister.КэшПереводов + InformationRegister.ЗамерыКомментарииСтатистики @@ -902,6 +905,9 @@ InformationRegister.ОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных + + Catalog.ЯзыкиПечатныхФорм + Document.СогласиеНаОбработкуПерсональныхДанных diff --git a/SSL/src/FunctionalOptions/ИспользоватьСервисПереводаТекста/ИспользоватьСервисПереводаТекста.mdo b/SSL/src/FunctionalOptions/ИспользоватьСервисПереводаТекста/ИспользоватьСервисПереводаТекста.mdo new file mode 100644 index 000000000..8fa9718fd --- /dev/null +++ b/SSL/src/FunctionalOptions/ИспользоватьСервисПереводаТекста/ИспользоватьСервисПереводаТекста.mdo @@ -0,0 +1,10 @@ + + + ИспользоватьСервисПереводаТекста + + ru + Использовать сервис перевода текста + + Constant.ИспользоватьСервисПереводаТекста + true + diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/ManagerModule.bsl b/SSL/src/InformationRegisters/ВерсииОбъектов/ManagerModule.bsl index 3d192e74e..6f823a38b 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = @@ -30,7 +32,30 @@ // ТехнологияСервиса.ВыгрузкаЗагрузкаДанных -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. +// Подключается в ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. +// +// Параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера +// МенеджерВыгрузкиОбъекта - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерВыгрузкиДанныхИнформационнойБазы +// Сериализатор - СериализаторXDTO +// Объект - КонстантаМенеджерЗначения +// - СправочникОбъект +// - ДокументОбъект +// - БизнесПроцессОбъект +// - ЗадачаОбъект +// - ПланСчетовОбъект +// - ПланОбменаОбъект +// - ПланВидовХарактеристикОбъект +// - ПланВидовРасчетаОбъект +// - РегистрСведенийНаборЗаписей +// - РегистрНакопленияНаборЗаписей +// - РегистрБухгалтерииНаборЗаписей +// - РегистрРасчетаНаборЗаписей +// - ПоследовательностьНаборЗаписей +// - ПерерасчетНаборЗаписей +// Артефакты - Массив из ОбъектXDTO +// Отказ - Булево +// Процедура ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ) Экспорт ВыгружаемыеТипы = Новый Соответствие; @@ -918,6 +943,19 @@ КонецПроцедуры +// Параметры: +// СписокИзменившихсяТЧ - ТаблицаЗначений: +// * Значение - Строка +// ТабличныеЧасти_0 - Соответствие из КлючИЗначение: +// * Ключ - Строка +// * Значение - ТаблицаЗначений +// ТабличныеЧасти_1 - Соответствие из КлючИЗначение: +// * Ключ - Строка +// * Значение - ТаблицаЗначений +// +// Возвращаемое значение: +// Соответствие +// Функция РассчитатьИзмененияТабличныхЧастей(СписокИзменившихсяТЧ, ТабличныеЧасти_0, ТабличныеЧасти_1) Для Каждого ТабличнаяЧасть Из ТабличныеЧасти_0 Цикл @@ -1120,11 +1158,11 @@ КонецФункции // Параметры: -// СтрокаТЧ1 - СтрокаТаблицыЗначений -// СтрокаТЧ2 - СтрокаТаблицыЗначений -// Колонки - КоллекцияКолонокТаблицыЗначений +// СтрокаТЧ1 - СтрокаТаблицыЗначений +// СтрокаТЧ2 - СтрокаТаблицыЗначений +// Колонки - КоллекцияКолонокТаблицыЗначений // Возвращаемое значение: -// Булево +// Булево // Функция СтрокиТЧРавны(СтрокаТЧ1, СтрокаТЧ2, Колонки) @@ -1316,7 +1354,7 @@ // Параметры: -// СтрокаТаблицы - СтрокаТаблицыЗначений +// СтрокаТаблицы - СтрокаТаблицыЗначений // Функция ИндексСтроки(СтрокаТаблицы) Возврат СтрокаТаблицы.Владелец().Индекс(СтрокаТаблицы); diff --git a/SSL/src/InformationRegisters/ДампыПлатформы/ManagerModule.bsl b/SSL/src/InformationRegisters/ДампыПлатформы/ManagerModule.bsl index 468bb5139..30ca0d86a 100644 --- a/SSL/src/InformationRegisters/ДампыПлатформы/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ДампыПлатформы/ManagerModule.bsl @@ -82,7 +82,7 @@ Запрос = Новый Запрос; Запрос.Текст = - "ВЫБРАТЬ ПЕРВЫЕ %ТОП + "ВЫБРАТЬ ПЕРВЫЕ 1000 | ВариантДампа, | КоличествоВариантов |ИЗ @@ -93,7 +93,7 @@ | РегистрСведений.ДампыПлатформы КАК ДампыПлатформы | ГДЕ | ДампыПлатформы.ДатаРегистрации МЕЖДУ &ДатаНачалаМС И &ДатаОкончанияМС - | %УслВерсияПлатформы + | И &УслВерсияПлатформы | СГРУППИРОВАТЬ ПО | ДампыПлатформы.ВариантДампа | ) КАК Выборка @@ -101,19 +101,18 @@ | КоличествоВариантов УБЫВ |"; - Запрос.Текст = СтрЗаменить(Запрос.Текст, "%ТОП", Формат(Количество, "ЧГ=0")); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "1000", Формат(Количество, "ЧГ=0")); Запрос.УстановитьПараметр("ДатаНачалаМС", ДатаНачалаМС); Запрос.УстановитьПараметр("ДатаОкончанияМС", ДатаОкончанияМС); Если ВерсияПлатформы <> Неопределено Тогда ВерсияПлатформыЧисло = ЦентрМониторингаСлужебный.ВерсияПлатформыВЧисло(ВерсияПлатформы); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "%УслВерсияПлатформы", "И ДампыПлатформы.ВерсияПлатформы = &ВерсияПлатформы"); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УслВерсияПлатформы", "ДампыПлатформы.ВерсияПлатформы = &ВерсияПлатформы"); Запрос.УстановитьПараметр("ВерсияПлатформы", ВерсияПлатформыЧисло); Иначе - Запрос.Текст = СтрЗаменить(Запрос.Текст, "%УслВерсияПлатформы", ""); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УслВерсияПлатформы", "ИСТИНА"); КонецЕсли; РезультатЗапроса = Запрос.Выполнить(); - Возврат РезультатЗапроса; КонецФункции diff --git a/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/ManagerModule.bsl b/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/ManagerModule.bsl index 4ab883881..e145ac75d 100644 --- a/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/InformationRegisters/ДанныеОбработанныеВЦентральномУзлеРИБ/RecordSetModule.bsl b/SSL/src/InformationRegisters/ДанныеОбработанныеВЦентральномУзлеРИБ/RecordSetModule.bsl index 5c3b3233b..2a7a5ed65 100644 --- a/SSL/src/InformationRegisters/ДанныеОбработанныеВЦентральномУзлеРИБ/RecordSetModule.bsl +++ b/SSL/src/InformationRegisters/ДанныеОбработанныеВЦентральномУзлеРИБ/RecordSetModule.bsl @@ -33,7 +33,7 @@ И Не СтандартныеПодсистемыПовтИсп.ИспользуетсяРИБ("СФильтром"))) Тогда Отказ = Истина; - ТекстИсключения = НСтр("ru = 'Запись в РегистрСведений.ДанныеОбработанныеВЦентральномУзлеРИБ возможна только при отметке выполнения отложенного обработчика обновления информационной базы, который выполняется только в центральном узле.'"); + ТекстИсключения = НСтр("ru = 'Запись в РегистрСведений.ДанныеОбработанныеВЦентральномУзлеРИБ возможна только при отметке выполнения отложенного обработчика обновления информационной базы, который выполняется только в корневом узле.'"); ВызватьИсключение ТекстИсключения; КонецЕсли; diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Form.form b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Form.form index 0429e588f..b63727e15 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Form.form +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Form.form @@ -3362,6 +3362,20 @@ true + + ПереходКДругимДатамЗапрета + 20 + + String + + + + true + + + true + + ПодобратьОбъекты diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Module.bsl b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Module.bsl index 4de762577..8527dda3a 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Module.bsl +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Module.bsl @@ -21,12 +21,31 @@ УстановитьУсловноеОформление(); ДатыЗапретаИзмененияСлужебный.ОбновитьРазделыДатЗапретаИзменения(); + СвойстваРазделов = ДатыЗапретаИзмененияСлужебный.СвойстваРазделов(); + + // Проверки прав доступа. + Если Параметры.ДатыЗапретаЗагрузкиДанных Тогда + Если Не СвойстваРазделов.ДатыЗапретаЗагрузкиВнедрены Тогда + ВызватьИсключение ДатыЗапретаИзмененияСлужебный.ТекстОшибкиДатыЗапретаЗагрузкиНеВнедрены(); + КонецЕсли; + + Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда + ВызватьИсключение НСтр("ru = 'Недостаточно прав для настройки дат запрета загрузки данных прошлых периодов из других программ.'"); + КонецЕсли; + ЕстьПраваЗапретаИзмененияДанных = ПравоДоступа("Редактирование", Метаданные.РегистрыСведений.ДатыЗапретаИзменения) + И ПравоДоступа("Просмотр", Метаданные.ПланыВидовХарактеристик.РазделыДатЗапретаИзменения); + Иначе + Если Не ПравоДоступа("Редактирование", Метаданные.РегистрыСведений.ДатыЗапретаИзменения) + Или Не ПравоДоступа("Просмотр", Метаданные.ПланыВидовХарактеристик.РазделыДатЗапретаИзменения) Тогда + ВызватьИсключение НСтр("ru = 'Недостаточно прав для настройки дат запрета ввода и редактирования данных прошлых периодов.'"); + КонецЕсли; + ЕстьПраваЗапретаЗагрузкиДанных = СвойстваРазделов.ДатыЗапретаЗагрузкиВнедрены И Пользователи.ЭтоПолноправныйПользователь(); + КонецЕсли; // Кэширование текущей даты на сервере. НачалоДня = НачалоДня(ТекущаяДатаСеанса()); // Заполнение свойств разделов. - СвойстваРазделов = ДатыЗапретаИзмененияСлужебный.СвойстваРазделов(); ЗаполнитьЗначенияСвойств(ЭтотОбъект, СвойстваРазделов); Таблица = Новый ТаблицаЗначений; Таблица.Колонки.Добавить("Ссылка", Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.РазделыДатЗапретаИзменения")); @@ -62,15 +81,6 @@ // Настройка полей формы Если Параметры.ДатыЗапретаЗагрузкиДанных Тогда - - Если Не СвойстваРазделов.ДатыЗапретаЗагрузкиВнедрены Тогда - ВызватьИсключение ДатыЗапретаИзмененияСлужебный.ТекстОшибкиДатыЗапретаЗагрузкиНеВнедрены(); - КонецЕсли; - - Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда - ВызватьИсключение НСтр("ru = 'Недостаточно прав для работы с датами запрета загрузки.'"); - КонецЕсли; - Элементы.ИспользованиеДатЗапретаВыключеноНадпись.Заголовок = НСтр("ru = 'Даты запрета загрузки данных прошлых периодов из других программ отключены в настройках.'"); @@ -100,15 +110,15 @@ ПустаяСсылкаУзлаПланаОбмена, ОбъектМетаданных.Представление()); КонецЦикла; Элементы.Пользователи.КартинкаСтрок = БиблиотекаКартинок.ПиктограммыПланОбменаУзел; + НавигационнаяСсылка = "e1cib/command/РегистрСведений.ДатыЗапретаИзменения.Команда.ДатыЗапретаЗагрузкиДанных"; + + Если ЕстьПраваЗапретаИзмененияДанных Тогда + ПереходКДругимДатамЗапрета = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Также можно настроить <a href=""%1"">даты запрета ввода и редактирования данных</a> прошлых периодов.'"), + "e1cib/command/РегистрСведений.ДатыЗапретаИзменения.Команда.ДатыЗапретаИзмененияДанных"); + КонецЕсли; - НавигационнаяСсылка = - "e1cib/command/РегистрСведений.ДатыЗапретаИзменения.Команда.ДатыЗапретаЗагрузкиДанных"; Иначе - Если Не ПравоДоступа("Редактирование", Метаданные.РегистрыСведений.ДатыЗапретаИзменения) - Или Не ПравоДоступа("Просмотр", Метаданные.ПланыВидовХарактеристик.РазделыДатЗапретаИзменения) Тогда - ВызватьИсключение НСтр("ru = 'Недостаточно прав для работы с датами запрета изменения.'"); - КонецЕсли; - Элементы.ИспользованиеДатЗапретаВыключеноНадпись.Заголовок = НСтр("ru = 'Даты запрета ввода и редактирования данных прошлых периодов отключены в настройках программы.'"); Элементы.ПользователиПолноеПредставление.Заголовок = @@ -121,6 +131,12 @@ Тип("СправочникСсылка.ВнешниеПользователи"), НСтр("ru = 'Внешний пользователь'")); НавигационнаяСсылка = "e1cib/command/РегистрСведений.ДатыЗапретаИзменения.Команда.ДатыЗапретаИзмененияДанных"; + + Если ЕстьПраваЗапретаЗагрузкиДанных Тогда + ПереходКДругимДатамЗапрета = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Также можно настроить <a href=""%1"">даты запрета загрузки данных</a> из других программ.'"), + "e1cib/command/РегистрСведений.ДатыЗапретаИзменения.Команда.ДатыЗапретаЗагрузкиДанных"); + КонецЕсли; КонецЕсли; Список = Элементы.СпособУказанияДатыЗапрета.СписокВыбора; @@ -3145,7 +3161,10 @@ РасширеннаяПодсказка = НСтр("ru = 'Персональная настройка дат запрета ввода и редактирования данных прошлых периодов для выбранных пользователей.'"); КонецЕсли; КонецЕсли; - Элементы.УстановкаДатыЗапретаПояснение.Заголовок = РасширеннаяПодсказка; + Если Не ПустаяСтрока(ПереходКДругимДатамЗапрета) Тогда + РасширеннаяПодсказка = РасширеннаяПодсказка + Символы.ПС + ПереходКДругимДатамЗапрета; + КонецЕсли; + Элементы.УстановкаДатыЗапретаПояснение.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(РасширеннаяПодсказка); Если УстановкаДатыЗапрета <> "ДляВсехПользователей" Тогда ИзменитьВидимость(Элементы.УстановкаПоПользователям, Истина); diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Help/ru.html b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Help/ru.html index 3ccb04828..2cce7c452 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Help/ru.html +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Help/ru.html @@ -5,49 +5,75 @@ <p>Установка даты запрета загрузки данных выполняется по соответствующей команде в разделе <strong>Синхронизация данных</strong>.</p> <h3>О запрете изменения (загрузки) данных</h3> <ul><li>Иногда при работе с программой требуется установить запрет изменения каких-либо данных до определенной даты. Например, после сдачи квартальной бухгалтерской отчетности в налоговую инспекцию обычно устанавливается запрет изменения тех данных, которые использовались для формирования этой отчетности, то есть данных по последний день отчетного периода. -</li><li>Запрет загрузки, в отличие от запрета изменения, может быть установлен для данных, которые должны редактироваться только в одном узле информационной базы, а также по правилам, которые следуют из требований синхронизации данных, а не из типовых бизнес-процессов организации. Например, решение редактировать данные по некоторым организациям только в центральном офисе (в центральном узле), для того чтобы технически обеспечить закрепление ответственности за эти данные за конкретным сотрудником центрального офиса, является основанием запрета загрузки данных из других узлов.</li></ul><h3>Проявление установленного запрета</h3> +</li> +<li>Запрет загрузки, в отличие от запрета изменения, может быть установлен для данных, которые должны редактироваться только в одном узле информационной базы, а также по правилам, которые следуют из требований синхронизации данных, а не из типовых бизнес-процессов организации. Например, решение редактировать данные по некоторым организациям только в центральном офисе (в корневом узле), для того чтобы технически обеспечить закрепление ответственности за эти данные за конкретным сотрудником центрального офиса, является основанием запрета загрузки данных из других узлов.</li></ul><h3>Проявление установленного запрета</h3> <ul><li>Если дата запрета изменения данных установлена, то при попытке внести изменения в программу до даты запрета изменения выводится сообщение о невозможности изменения данных. <ul><li>Если в закрытом периоде есть объекты, помеченные на удаление, то их удаление будет невозможно. -</li><li>Если дата запрета изменения не установлена, то ограничения не действуют. </li></ul></li><li>Если дата запрета загрузки данных установлена, то при попытке получить данные в программу до даты запрета загрузки все запрещенные для получения данные будут пропущены, сведения о них будут записаны в журнал регистрации, а разрешенные данные будут получены.</li></ul><h3>Установка даты запрета</h3> +</li> +<li>Если дата запрета изменения не установлена, то ограничения не действуют. </li></ul></li> +<li>Если дата запрета загрузки данных установлена, то при попытке получить данные в программу до даты запрета загрузки все запрещенные для получения данные будут пропущены, сведения о них будут записаны в журнал регистрации, а разрешенные данные будут получены.</li></ul><h3>Установка даты запрета</h3> <ul><li> <div>В программе предусмотрена возможность установить или отключить дату запрета изменений (дату запрета загрузки данных). Для этого с помощью кнопки выберите соответствующее значение:</div> <ul><li><strong>Не установлены</strong> - в этом случае отключаются все установленные ранее даты запрета. -</li><li><strong>Для всех пользователей</strong> (<strong>Для всех информационных баз</strong>). -<ul><li>При этом становится доступным поле <strong>Дата запрета</strong>, В нижней части окна становится доступным раздел <strong>Другие способы указания даты запрета</strong>. </li></ul></li><li><strong>По пользователям</strong> (<strong>По информационным базам)</strong>.<strong> </strong>Эту возможность можно использовать, если дату запрета необходимо установить для конкретного <a href="Catalog.Пользователи.Form.ФормаЭлемента/Help">пользователя</a> или группы <a href="Catalog.Пользователи/Help">пользователей</a> (для конкретной информационной базы), или разным пользователям (<a href="CommonForm.ВыборУзловПлановОбмена/Help">информационным базам</a>) необходимо установить разные значения даты запрета. +</li> +<li><strong>Для всех пользователей</strong> (<strong>Для всех информационных баз</strong>). +<ul><li>При этом становится доступным поле <strong>Дата запрета</strong>, В нижней части окна становится доступным раздел <strong>Другие способы указания даты запрета</strong>. </li></ul></li> +<li><strong>По пользователям</strong> (<strong>По информационным базам)</strong>.<strong> </strong>Эту возможность можно использовать, если дату запрета необходимо установить для конкретного <a href="Catalog.Пользователи.Form.ФормаЭлемента/Help">пользователя</a> или группы <a href="Catalog.Пользователи/Help">пользователей</a> (для конкретной информационной базы), или разным пользователям (<a href="CommonForm.ВыборУзловПлановОбмена/Help">информационным базам</a>) необходимо установить разные значения даты запрета. <ul><li>При этом становится доступным список, в который можно добавлять пользователей/группы пользователей(информационные базы) и настраивать для каждого из них свое значение даты запрета. -</li><li> +</li> +<li> <p>Список состоит из колонок: </p> <ul><li><strong>Пользователь, группа пользователей</strong> (<strong>Программа: информационная база</strong> - наименование программы и информационной базы для этой программы). -</li><li><strong>Комментарий</strong> - напишите дополнительную информацию о пользователе (об информационной базе).</li></ul></li><li>В списке по умолчанию всегда присутствует элемент <strong><Для всех пользователей></strong> (<strong><Для всех информационных баз></strong>). Элемент нельзя удалить или изменить. Настройки даты запрета, выполненные для этого элемента, будут использоваться для всех пользователей (информационных баз), кроме тех, которые содержатся в списке. -</li><li>При необходимости добавьте в список нужных пользователей /группу пользователей (информационные базы): +</li> +<li><strong>Комментарий</strong> - напишите дополнительную информацию о пользователе (об информационной базе).</li></ul></li> +<li>В списке по умолчанию всегда присутствует элемент <strong><Для всех пользователей></strong> (<strong><Для всех информационных баз></strong>). Элемент нельзя удалить или изменить. Настройки даты запрета, выполненные для этого элемента, будут использоваться для всех пользователей (информационных баз), кроме тех, которые содержатся в списке. +</li> +<li>При необходимости добавьте в список нужных пользователей /группу пользователей (информационные базы): <ul><li>Нажмите <strong>Подобрать</strong>, для того чтобы выбрать из списка несколько пользователей (информационных баз). -<ul><li>Если в программе разрешены <a href="Catalog.ВнешниеПользователи/Help">внешние пользователи</a>, то предлагается выбрать тип пользователей для установки даты запрета. </li></ul></li><li>Нажмите <strong>Еще</strong><strong> - Добавить </strong>над списком, для того чтобы<img src="StdPicture.InputFieldSelect" width="12" height="12"></img> <strong>Выбрать</strong> пользователя/группу пользователей (программу и информационную базу для этой программы. Для каждой программы можно также выбрать элемент <<strong>Все информационные базы</strong>>).</li></ul></li><li>Для того чтобы выполнить настройку даты запрета, необходимо выделить в списке нужного пользователя/группу пользователей (информационную базу) или элемент <strong><Для всех пользователей></strong> (<strong><Для всех информационных баз></strong>), а сами настройки выполнить ниже в полях <strong>Способ указания даты</strong> <strong>запрета</strong> и <strong>Дата запрета</strong>.</li></ul></li></ul></li></ul><h3>Способы указания даты запрета</h3> +<ul><li>Если в программе разрешены <a href="Catalog.ВнешниеПользователи/Help">внешние пользователи</a>, то предлагается выбрать тип пользователей для установки даты запрета. </li></ul></li> +<li>Нажмите <strong>Еще</strong><strong> - Добавить </strong>над списком, для того чтобы<img src="StdPicture.InputFieldSelect" width="12" height="12"></img> <strong>Выбрать</strong> пользователя/группу пользователей (программу и информационную базу для этой программы. Для каждой программы можно также выбрать элемент <<strong>Все информационные базы</strong>>).</li></ul></li> +<li>Для того чтобы выполнить настройку даты запрета, необходимо выделить в списке нужного пользователя/группу пользователей (информационную базу) или элемент <strong><Для всех пользователей></strong> (<strong><Для всех информационных баз></strong>), а сами настройки выполнить ниже в полях <strong>Способ указания даты</strong> <strong>запрета</strong> и <strong>Дата запрета</strong>.</li></ul></li></ul></li></ul><h3>Способы указания даты запрета</h3> <p>Для настройки перейдите в раздел <strong>Другие способы указания даты запрета изменений</strong>, в поле <strong>Указывать дату запрета</strong> укажите нужное значение:</p> <ul><li><strong>Общая дата</strong> – при этом способе одна дата запрета задается для всех элементов данных программы. -</li><li><strong>По разделам</strong> – для каждого раздела программы устанавливается своя дата запрета. +</li> +<li><strong>По разделам</strong> – для каждого раздела программы устанавливается своя дата запрета. <ul><li>Когда дата запрета задается по разделам, становится доступным список, в который можно добавлять <strong>Разделы </strong>(соответствующей командой) и указывать для каждого раздела свое значение даты запрета. Список состоит из колонок: <ul><li><strong>Раздел, объект</strong> - в данном случае в колонке перечисляются разделы программы; -</li><li><strong>Дата запрета</strong> - выберите из списка тип значения даты запрета (можно выбрать произвольную дату или одну из относительных дат); -</li><li><strong>Действует по</strong> - для произвольной даты напишите или <img src="StdPicture.InputFieldCalendar" width="12" height="12"></img> выберите значение, для относительной даты значение проставляется программой автоматически.</li></ul></li><li>В списке по умолчанию присутствует элемент <strong><Общая дата></strong>. Значение даты запрета для этого элемента будет использоваться для всех разделов по умолчанию, кроме тех, которые уже содержатся в списке. </li></ul></li><li><strong>По объектам</strong> – даты запрета задаются в разрезе объектов программы. Для каждого объекта устанавливается своя дата запрета. Если выбрано это значение, то становится доступным список, в который можно добавлять объекты (соответствующей командой) и указывать для каждого объекта свое значение даты запрета. Так же, как и в предыдущем способе, в списке для аналогичных целей содержится элемент <strong><Общая дата></strong>. -</li><li><strong>По разделам и объектам</strong> – даты запрета задаются и в разрезе разделов, и в разрезе объектов. +</li> +<li><strong>Дата запрета</strong> - выберите из списка тип значения даты запрета (можно выбрать произвольную дату или одну из относительных дат); +</li> +<li><strong>Действует по</strong> - для произвольной даты напишите или <img src="StdPicture.InputFieldCalendar" width="12" height="12"></img> выберите значение, для относительной даты значение проставляется программой автоматически.</li></ul></li> +<li>В списке по умолчанию присутствует элемент <strong><Общая дата></strong>. Значение даты запрета для этого элемента будет использоваться для всех разделов по умолчанию, кроме тех, которые уже содержатся в списке. </li></ul></li> +<li><strong>По объектам</strong> – даты запрета задаются в разрезе объектов программы. Для каждого объекта устанавливается своя дата запрета. Если выбрано это значение, то становится доступным список, в который можно добавлять объекты (соответствующей командой) и указывать для каждого объекта свое значение даты запрета. Так же, как и в предыдущем способе, в списке для аналогичных целей содержится элемент <strong><Общая дата></strong>. +</li> +<li><strong>По разделам и объектам</strong> – даты запрета задаются и в разрезе разделов, и в разрезе объектов. <ul><li>При этом становится доступным список, в котором перечислены разделы и объекты. Можно указать для каждого раздела и каждого объекта свое значение даты запрета. Так же, как и в предыдущих способах, в списке содержится элемент <strong><Общая дата></strong> для аналогичных целей. <ul><li>Для выбора нескольких объектов в выделенном разделе выполните команду <strong>Подобрать</strong>. -</li><li>Также в нужном разделе можно выполнить команду <strong>Добавить</strong> контекстного меню по правой кнопки мыши, затем указать объект с помощью кнопки <img src="StdPicture.InputFieldSelect"></img> <strong>Выбрать</strong>. Также можно воспользоваться аналогичной командой меню <strong>Еще</strong>.</li></ul></li></ul></li></ul><p>Для того чтобы установить дату запрета изменения нужного раздела (объекта) или изменить общую дату, в нужной строке в колонке <strong>Дата запрета </strong>выполните команду <strong>Изменить </strong>контекстного меню по правой кнопке мыши или дважды щелкните по ней мышью. Для задания даты запрета нажмите кнопку <strong>Выбрать</strong>. После выбора даты для возврата к дальнейшим настройкам нажмите кнопку <strong>ОК</strong>.</p> +</li> +<li>Также в нужном разделе можно выполнить команду <strong>Добавить</strong> контекстного меню по правой кнопки мыши, затем указать объект с помощью кнопки <img src="StdPicture.InputFieldSelect"></img> <strong>Выбрать</strong>. Также можно воспользоваться аналогичной командой меню <strong>Еще</strong>.</li></ul></li></ul></li></ul><p>Для того чтобы установить дату запрета изменения нужного раздела (объекта) или изменить общую дату, в нужной строке в колонке <strong>Дата запрета </strong>выполните команду <strong>Изменить </strong>контекстного меню по правой кнопке мыши или дважды щелкните по ней мышью. Для задания даты запрета нажмите кнопку <strong>Выбрать</strong>. После выбора даты для возврата к дальнейшим настройкам нажмите кнопку <strong>ОК</strong>.</p> <p>Для отмены даты запрета нажмите кнопку <strong>Отключить</strong>.</p> <h3>Дата запрета</h3> <ul><li>При установке даты запрета можно задавать не только произвольную дату (в этом случае дату можно написать или выбрать из календаря, нажав <img src="StdPicture.InputFieldCalendar" width="12" height="12"></img>), но и относительную. -</li><li>Для этого нажмите ссылку <strong>Больше возможностей</strong>. -</li><li>Значения относительных дат: +</li> +<li>Для этого нажмите ссылку <strong>Больше возможностей</strong>. +</li> +<li>Значения относительных дат: <ul><li><strong>Конец прошлого года</strong>; -</li><li><strong>Конец прошлого квартала</strong>; -</li><li><strong>Конец прошлого месяца</strong>; -</li><li><strong>Конец прошлой недели</strong>; -</li><li><strong>Предыдущий день</strong>.</li></ul></li><li> +</li> +<li><strong>Конец прошлого квартала</strong>; +</li> +<li><strong>Конец прошлого месяца</strong>; +</li> +<li><strong>Конец прошлой недели</strong>; +</li> +<li><strong>Предыдущий день</strong>.</li></ul></li> +<li> <div>Для относительных дат (кроме значения <strong>Предыдущий день</strong>) можно задать количество дней «отсрочки» до установки даты запрета, в течение которых изменение данных все еще будет разрешено.</div> <ul><li> <div>Для этого необходимо включить флажок <strong>Разрешить изменение данных до даты запрета</strong>. Затем задайте количество дней "отсрочки", например, в течение 10 дней после даты запрета.</div></li></ul></li></ul><h3>Отчеты по датам запрета</h3> <p>Отчеты доступны по соответствующей команде. В отчетах возможна группировка данных: </p> <ul><li>по разделам/объектам: выберите отчет <strong>Даты запрета по разделам и объектам для пользователей </strong>(<strong>Даты запрета по разделам и объектам для информационных баз</strong>); -</li><li>по пользователям (по информационным базам): выберите отчет <strong>Даты запрета по пользователям </strong>(<strong>Даты запрета по информационным базам</strong>). </li></ul><p>Отчеты позволяют увидеть результирующие даты запрета, установленные для пользователей/групп пользователей (информационных баз) с учетом приоритетов.</p> +</li> +<li>по пользователям (по информационным базам): выберите отчет <strong>Даты запрета по пользователям </strong>(<strong>Даты запрета по информационным базам</strong>). </li></ul><p>Отчеты позволяют увидеть результирующие даты запрета, установленные для пользователей/групп пользователей (информационных баз) с учетом приоритетов.</p> <h3>См. также:</h3> <ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html> \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/ManagerModule.bsl b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/ManagerModule.bsl index c3e188a06..651b131ad 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/InformationRegisters/ДополнительныеСведения/ManagerModule.bsl b/SSL/src/InformationRegisters/ДополнительныеСведения/ManagerModule.bsl index 993c5be13..215375c34 100644 --- a/SSL/src/InformationRegisters/ДополнительныеСведения/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ДополнительныеСведения/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/InformationRegisters/ЗамерыВремени/ManagerModule.bsl b/SSL/src/InformationRegisters/ЗамерыВремени/ManagerModule.bsl index 2dd210196..c5a32017a 100644 --- a/SSL/src/InformationRegisters/ЗамерыВремени/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЗамерыВремени/ManagerModule.bsl @@ -107,7 +107,7 @@ // Возвращает таблицу настроек интервалов по умолчанию // // Возвращаемое значение: -// НастроечнаяТаблицаИнтервалов - таблица значений, содержащая настройки интервалов по умолчанию. +// НастроечнаяТаблицаИнтервалов - ТаблицаЗначений - содержащая настройки интервалов по умолчанию. // Колонки: НижняяГраница, ВерхняяГраница, Шаг. // Функция НастроечнаяТаблицаИнтервалов() @@ -221,7 +221,7 @@ // Должна содержать колонки НижняяГраница, ВерхняяГраница, Шаг типа Число. // // Возвращаемое значение: -// ТаблицаИнтервалов - таблица, содержащая нижнее и верхнее граничные значения для каждого из интервалов. +// ТаблицаИнтервалов - ТаблицаЗначений - содержащая нижнее и верхнее граничные значения для каждого из интервалов. // Колонки: НижняяГраница, ВерхняяГраница. // Функция ТаблицаИнтерваловПоНастройкам(ТаблицаНастроек) @@ -315,6 +315,7 @@ КонецЦикла; + // @query-part-1 ТекстЗапроса = "ВЫБОР " + ТекстЗапроса + ?(ПустаяСтрока(ТекстЗапроса), "", Символы.ПС) + " Иначе 0 Конец" + ?(СИменем, " КАК ExecutionTime, ", ","); Возврат ТекстЗапроса; diff --git a/SSL/src/InformationRegisters/ЗамерыВремениТехнологические/ManagerModule.bsl b/SSL/src/InformationRegisters/ЗамерыВремениТехнологические/ManagerModule.bsl index de2558813..540adc328 100644 --- a/SSL/src/InformationRegisters/ЗамерыВремениТехнологические/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЗамерыВремениТехнологические/ManagerModule.bsl @@ -66,7 +66,7 @@ // Возвращает таблицу настроек интервалов по умолчанию // // Возвращаемое значение: -// НастроечнаяТаблицаИнтервалов - таблица значений, содержащая настройки интервалов по умолчанию. +// НастроечнаяТаблицаИнтервалов - ТаблицаЗначений - содержащая настройки интервалов по умолчанию. // Колонки: НижняяГраница, ВерхняяГраница, Шаг. // Функция НастроечнаяТаблицаИнтервалов() @@ -180,7 +180,7 @@ // Должна содержать колонки НижняяГраница, ВерхняяГраница, Шаг типа Число. // // Возвращаемое значение: -// ТаблицаИнтервалов - таблица, содержащая нижнее и верхнее граничные значения для каждого из интервалов. +// ТаблицаИнтервалов - ТаблицаЗначений - содержащая нижнее и верхнее граничные значения для каждого из интервалов. // Колонки: НижняяГраница, ВерхняяГраница. // Функция ТаблицаИнтерваловПоНастройкам(ТаблицаНастроек) @@ -274,6 +274,7 @@ КонецЦикла; + // @query-part-1 ТекстЗапроса = "ВЫБОР " + ТекстЗапроса + ?(ПустаяСтрока(ТекстЗапроса), "", Символы.ПС) + " Иначе 0 Конец" + ?(СИменем, " КАК ExecutionTime, ", ","); Возврат ТекстЗапроса; diff --git a/SSL/src/InformationRegisters/ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов/ManagerModule.bsl b/SSL/src/InformationRegisters/ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов/ManagerModule.bsl index 78927601c..26bb46fd7 100644 --- a/SSL/src/InformationRegisters/ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов/ManagerModule.bsl @@ -13,11 +13,12 @@ // Создает запрос администрирования профилей безопасности. // // Параметры: -// ПрограммныйМодуль - ЛюбаяСсылка, ссылка, описывающая программный модуль, для подключения которого +// ПрограммныйМодуль - ЛюбаяСсылка - ссылка, описывающая программный модуль, для подключения которого // предназначен профиль безопасности, // Операция - ПеречислениеСсылка.ОперацииАдминистрированияПрофилейБезопасности. // -// Возвращаемое значение - УникальныйИдентификатор - идентификатор созданного запроса. +// Возвращаемое значение: +// УникальныйИдентификатор - идентификатор созданного запроса. // Функция ЗапросАдминистрированияРазрешений(Знач ПрограммныйМодуль, Знач Операция) Экспорт @@ -60,7 +61,7 @@ // Создает запрос разрешений на использование внешних ресурсов. // // Параметры: -// ПрограммныйМодуль - ЛюбаяСсылка, ссылка, описывающая программный модуль, для подключения которого +// ПрограммныйМодуль - ЛюбаяСсылка - ссылка, описывающая программный модуль, для подключения которого // предназначен профиль безопасности, // Владелец - ЛюбаяСсылка - ссылка на объект информационной базы, с которой логически связаны запрашиваемые // разрешения. Например, все разрешения на доступ к каталогам томов хранения файлов логически связаны @@ -72,14 +73,15 @@ // РежимЗамещения - Булево - определяет режим замещения ранее выданных разрешений для данного владельца. При // значении параметра равным Истина, помимо предоставления запрошенных разрешений в запрос будет добавлена // очистка всех разрешений, ранее запрошенных для этого же владельца. -// ДобавляемыеРазрешения - Массив Из ОбъектXDTO - массив ОбъектовXDTO, соответствующих внутренним описаниям +// ДобавляемыеРазрешения - Массив из ОбъектXDTO - массив ОбъектовXDTO, соответствующих внутренним описаниям // запрашиваемых разрешений на доступ к внешним ресурсам. Предполагается, что все ОбъектыXDTO, передаваемые // в качестве параметра, сформированы с помощью вызова функций РаботаВБезопасномРежиме.Разрешение*(). -// УдаляемыеРазрешения - Массив Из ОбъектXDTO - массив ОбъектовXDTO, соответствующих внутренним описаниям +// УдаляемыеРазрешения - Массив из ОбъектXDTO - массив ОбъектовXDTO, соответствующих внутренним описаниям // отменяемых разрешений на доступ к внешним ресурсам. Предполагается, что все ОбъектыXDTO, передаваемые // в качестве параметра, сформированы с помощью вызова функций РаботаВБезопасномРежиме.Разрешение*(). // -// Возвращаемое значение - УникальныйИдентификатор - идентификатор созданного запроса. +// Возвращаемое значение: +// УникальныйИдентификатор - идентификатор созданного запроса. // Функция ЗапросИспользованияРазрешений(Знач ПрограммныйМодуль, Знач Владелец, Знач РежимЗамещения, Знач ДобавляемыеРазрешения, Знач УдаляемыеРазрешения) Экспорт @@ -154,7 +156,7 @@ // Создает и инициализирует менеджер применения запросов на использование внешних ресурсов. // // Параметры: -// ИдентификаторыЗапросов - Массив Из УникальныйИдентификатор - идентификаторы запросов, для +// ИдентификаторыЗапросов - Массив из УникальныйИдентификатор - идентификаторы запросов, для // применения которых создается менеджер. // // Возвращаемое значение: @@ -386,8 +388,8 @@ // Создает "пустые" запросы замещения для всех ранее предоставленных разрешений. // // Возвращаемое значение: -// Массив Из УникальныйИдентификатор - идентификаторы запросов для замещения всех ранее -// предоставленных разрешений. +// Массив из УникальныйИдентификатор - идентификаторы запросов для замещения всех ранее +// предоставленных разрешений. // Функция ЗапросыЗамещенияДляВсехПредоставленныхРазрешений() Экспорт @@ -429,10 +431,11 @@ // Сериализует запросы на использование внешних ресурсов. // // Параметры: -// Идентификаторы - Массив Из УникальныйИдентификатор - идентификаторы сериализуемых +// Идентификаторы - Массив из УникальныйИдентификатор - идентификаторы сериализуемых // запросов. // -// Возвращаемое значение - Строка. +// Возвращаемое значение: +// Строка. // Функция ЗаписатьЗапросыВСтрокуXML(Знач Идентификаторы) Экспорт @@ -459,7 +462,7 @@ // Процедура ПрочитатьЗапросыИзСтрокиXML(Знач СтрокаXML) Экспорт - Запросы = ОбщегоНазначения.ЗначениеИзСтрокиXML(СтрокаXML); + Запросы = ОбщегоНазначения.ЗначениеИзСтрокиXML(СтрокаXML); // Массив из РегистрСведенийНаборЗаписей НачатьТранзакцию(); @@ -483,7 +486,7 @@ // Удаляет запросы на использование внешних ресурсов. // // Параметры: -// ИдентификаторыЗапросов - Массив Из УникальныйИдентификатор - идентификаторы удаляемых запросов. +// ИдентификаторыЗапросов - Массив из УникальныйИдентификатор - идентификаторы удаляемых запросов. // Процедура УдалитьЗапросы(Знач ИдентификаторыЗапросов) Экспорт diff --git a/SSL/src/InformationRegisters/ЗначенияГруппДоступа/ManagerModule.bsl b/SSL/src/InformationRegisters/ЗначенияГруппДоступа/ManagerModule.bsl index fcfdc816b..0e197b9fd 100644 --- a/SSL/src/InformationRegisters/ЗначенияГруппДоступа/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЗначенияГруппДоступа/ManagerModule.bsl @@ -14,7 +14,30 @@ // ТехнологияСервиса.ВыгрузкаЗагрузкаДанных -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. +// Подключается в ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. +// +// Параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера +// МенеджерВыгрузкиОбъекта - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерВыгрузкиДанныхИнформационнойБазы +// Сериализатор - СериализаторXDTO +// Объект - КонстантаМенеджерЗначения +// - СправочникОбъект +// - ДокументОбъект +// - БизнесПроцессОбъект +// - ЗадачаОбъект +// - ПланСчетовОбъект +// - ПланОбменаОбъект +// - ПланВидовХарактеристикОбъект +// - ПланВидовРасчетаОбъект +// - РегистрСведенийНаборЗаписей +// - РегистрНакопленияНаборЗаписей +// - РегистрБухгалтерииНаборЗаписей +// - РегистрРасчетаНаборЗаписей +// - ПоследовательностьНаборЗаписей +// - ПерерасчетНаборЗаписей +// Артефакты - Массив из ОбъектXDTO +// Отказ - Булево +// Процедура ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ) Экспорт УправлениеДоступомСлужебный.ПередВыгрузкойНабораЗаписей(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ); diff --git a/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/ManagerModule.bsl b/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/ManagerModule.bsl index 7d0818840..11cea0368 100644 --- a/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/ManagerModule.bsl @@ -14,7 +14,30 @@ // ТехнологияСервиса.ВыгрузкаЗагрузкаДанных -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. +// Подключается в ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. +// +// Параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера +// МенеджерВыгрузкиОбъекта - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерВыгрузкиДанныхИнформационнойБазы +// Сериализатор - СериализаторXDTO +// Объект - КонстантаМенеджерЗначения +// - СправочникОбъект +// - ДокументОбъект +// - БизнесПроцессОбъект +// - ЗадачаОбъект +// - ПланСчетовОбъект +// - ПланОбменаОбъект +// - ПланВидовХарактеристикОбъект +// - ПланВидовРасчетаОбъект +// - РегистрСведенийНаборЗаписей +// - РегистрНакопленияНаборЗаписей +// - РегистрБухгалтерииНаборЗаписей +// - РегистрРасчетаНаборЗаписей +// - ПоследовательностьНаборЗаписей +// - ПерерасчетНаборЗаписей +// Артефакты - Массив из ОбъектXDTO +// Отказ - Булево +// Процедура ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ) Экспорт УправлениеДоступомСлужебный.ПередВыгрузкойНабораЗаписей(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ); diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/ManagerModule.bsl b/SSL/src/InformationRegisters/ИсполнителиЗадач/ManagerModule.bsl index 37bc668c2..bd879af8d 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.ТекстДляВнешнихПользователей = diff --git a/SSL/src/InformationRegisters/ИсторияАдресныхОбъектов/Templates/Классификатор/Template.txt b/SSL/src/InformationRegisters/ИсторияАдресныхОбъектов/Templates/Классификатор/Template.txt deleted file mode 100644 index 0b25ed545..000000000 --- a/SSL/src/InformationRegisters/ИсторияАдресныхОбъектов/Templates/Классификатор/Template.txt +++ /dev/null @@ -1,103 +0,0 @@ -<ValueTable xmlns="http://v8.1c.ru/8.1/data/core" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ValueTable"> - - <column><Name xsi:type="xs:string">КодСубъектаРФ</Name> <ValueType><Type>xs:decimal</Type></ValueType></column> - <column><Name xsi:type="xs:string">Наименование</Name> <ValueType><Type>xs:string</Type></ValueType></column> - <column><Name xsi:type="xs:string">Сокращение</Name> <ValueType><Type>xs:string</Type></ValueType></column> - <column><Name xsi:type="xs:string">ПочтовыйИндекс</Name> <ValueType><Type>xs:decimal</Type></ValueType></column> - <column><Name xsi:type="xs:string">Идентификатор</Name> <ValueType><Type>UUID</Type></ValueType></column> - - <index><column>КодСубъектаРФ</column></index> - <index><column>Идентификатор</column></index> - - <row><Value>01</Value><Value>Адыгея</Value> <Value>Респ</Value> <Value>385000</Value><Value>d8327a56-80de-4df2-815c-4f6ab1224c50</Value></row> - <row><Value>02</Value><Value>Башкортостан</Value> <Value>Респ</Value> <Value>450000</Value><Value>6f2cbfd8-692a-4ee4-9b16-067210bde3fc</Value></row> - <row><Value>03</Value><Value>Бурятия</Value> <Value>Респ</Value> <Value>670000</Value><Value>a84ebed3-153d-4ba9-8532-8bdf879e1f5a</Value></row> - <row><Value>04</Value><Value>Алтай</Value> <Value>Респ</Value> <Value>649000</Value><Value>5c48611f-5de6-4771-9695-7e36a4e7529d</Value></row> - <row><Value>05</Value><Value>Дагестан</Value> <Value>Респ</Value> <Value>368000</Value><Value>0bb7fa19-736d-49cf-ad0e-9774c4dae09b</Value></row> - <row><Value>06</Value><Value>Ингушетия</Value> <Value>Респ</Value> <Value>386000</Value><Value>b2d8cd20-cabc-4deb-afad-f3c4b4d55821</Value></row> - <row><Value>07</Value><Value>Кабардино-Балкарская</Value> <Value>Респ</Value> <Value>000000</Value><Value>1781f74e-be4a-4697-9c6b-493057c94818</Value></row> - <row><Value>08</Value><Value>Калмыкия</Value> <Value>Респ</Value> <Value>000000</Value><Value>491cde9d-9d76-4591-ab46-ea93c079e686</Value></row> - <row><Value>09</Value><Value>Карачаево-Черкесская</Value> <Value>Респ</Value> <Value>000000</Value><Value>61b95807-388a-4cb1-9bee-889f7cf811c8</Value></row> - <row><Value>10</Value><Value>Карелия</Value> <Value>Респ</Value> <Value>000000</Value><Value>248d8071-06e1-425e-a1cf-d1ff4c4a14a8</Value></row> - <row><Value>11</Value><Value>Коми</Value> <Value>Респ</Value> <Value>000000</Value><Value>c20180d9-ad9c-46d1-9eff-d60bc424592a</Value></row> - <row><Value>12</Value><Value>Марий Эл</Value> <Value>Респ</Value> <Value>000000</Value><Value>de2cbfdf-9662-44a4-a4a4-8ad237ae4a3e</Value></row> - <row><Value>13</Value><Value>Мордовия</Value> <Value>Респ</Value> <Value>000000</Value><Value>37a0c60a-9240-48b5-a87f-0d8c86cdb6e1</Value></row> - <row><Value>14</Value><Value>Саха /Якутия/</Value> <Value>Респ</Value> <Value>000000</Value><Value>c225d3db-1db6-4063-ace0-b3fe9ea3805f</Value></row> - <row><Value>15</Value><Value>Северная Осетия - Алания</Value> <Value>Респ</Value> <Value>000000</Value><Value>de459e9c-2933-4923-83d1-9c64cfd7a817</Value></row> - <row><Value>16</Value><Value>Татарстан</Value> <Value>Респ</Value> <Value>420000</Value><Value>0c089b04-099e-4e0e-955a-6bf1ce525f1a</Value></row> - <row><Value>17</Value><Value>Тыва</Value> <Value>Респ</Value> <Value>660000</Value><Value>026bc56f-3731-48e9-8245-655331f596c0</Value></row> - <row><Value>18</Value><Value>Удмуртская</Value> <Value>Респ</Value> <Value>000000</Value><Value>52618b9c-bcbb-47e7-8957-95c63f0b17cc</Value></row> - <row><Value>19</Value><Value>Хакасия</Value> <Value>Респ</Value> <Value>655000</Value><Value>8d3f1d35-f0f4-41b5-b5b7-e7cadf3e7bd7</Value></row> - <row><Value>20</Value><Value>Чеченская</Value> <Value>Респ</Value> <Value>000000</Value><Value>de67dc49-b9ba-48a3-a4cc-c2ebfeca6c5e</Value></row> - <row><Value>21</Value><Value>Чувашская Республика -</Value> <Value>Чувашия</Value><Value>000000</Value><Value>878fc621-3708-46c7-a97f-5a13a4176b3e</Value></row> - <row><Value>22</Value><Value>Алтайский</Value> <Value>край</Value> <Value>000000</Value><Value>8276c6a1-1a86-4f0d-8920-aba34d4cc34a</Value></row> - <row><Value>23</Value><Value>Краснодарский</Value> <Value>край</Value> <Value>000000</Value><Value>d00e1013-16bd-4c09-b3d5-3cb09fc54bd8</Value></row> - <row><Value>24</Value><Value>Красноярский</Value> <Value>край</Value> <Value>000000</Value><Value>db9c4f8b-b706-40e2-b2b4-d31b98dcd3d1</Value></row> - <row><Value>25</Value><Value>Приморский</Value> <Value>край</Value> <Value>000000</Value><Value>43909681-d6e1-432d-b61f-ddac393cb5da</Value></row> - <row><Value>26</Value><Value>Ставропольский</Value> <Value>край</Value> <Value>000000</Value><Value>327a060b-878c-4fb4-8dc4-d5595871a3d8</Value></row> - <row><Value>27</Value><Value>Хабаровский</Value> <Value>край</Value> <Value>000000</Value><Value>7d468b39-1afa-41ec-8c4f-97a8603cb3d4</Value></row> - <row><Value>28</Value><Value>Амурская</Value> <Value>обл</Value> <Value>675000</Value><Value>844a80d6-5e31-4017-b422-4d9c01e9942c</Value></row> - <row><Value>29</Value><Value>Архангельская</Value> <Value>обл</Value> <Value>000000</Value><Value>294277aa-e25d-428c-95ad-46719c4ddb44</Value></row> - <row><Value>30</Value><Value>Астраханская</Value> <Value>обл</Value> <Value>000000</Value><Value>83009239-25cb-4561-af8e-7ee111b1cb73</Value></row> - <row><Value>31</Value><Value>Белгородская</Value> <Value>обл</Value> <Value>000000</Value><Value>639efe9d-3fc8-4438-8e70-ec4f2321f2a7</Value></row> - <row><Value>32</Value><Value>Брянская</Value> <Value>обл</Value> <Value>000000</Value><Value>f5807226-8be0-4ea8-91fc-39d053aec1e2</Value></row> - <row><Value>33</Value><Value>Владимирская</Value> <Value>обл</Value> <Value>000000</Value><Value>b8837188-39ee-4ff9-bc91-fcc9ed451bb3</Value></row> - <row><Value>34</Value><Value>Волгоградская</Value> <Value>обл</Value> <Value>000000</Value><Value>da051ec8-da2e-4a66-b542-473b8d221ab4</Value></row> - <row><Value>35</Value><Value>Вологодская</Value> <Value>обл</Value> <Value>000000</Value><Value>ed36085a-b2f5-454f-b9a9-1c9a678ee618</Value></row> - <row><Value>36</Value><Value>Воронежская</Value> <Value>обл</Value> <Value>000000</Value><Value>b756fe6b-bbd3-44d5-9302-5bfcc740f46e</Value></row> - <row><Value>37</Value><Value>Ивановская</Value> <Value>обл</Value> <Value>000000</Value><Value>0824434f-4098-4467-af72-d4f702fed335</Value></row> - <row><Value>38</Value><Value>Иркутская</Value> <Value>обл</Value> <Value>000000</Value><Value>6466c988-7ce3-45e5-8b97-90ae16cb1249</Value></row> - <row><Value>39</Value><Value>Калининградская</Value> <Value>обл</Value> <Value>000000</Value><Value>90c7181e-724f-41b3-b6c6-bd3ec7ae3f30</Value></row> - <row><Value>40</Value><Value>Калужская</Value> <Value>обл</Value> <Value>000000</Value><Value>18133adf-90c2-438e-88c4-62c41656de70</Value></row> - <row><Value>41</Value><Value>Камчатский</Value> <Value>край</Value> <Value>000000</Value><Value>d02f30fc-83bf-4c0f-ac2b-5729a866a207</Value></row> - <row><Value>42</Value><Value>Кемеровская</Value> <Value>обл</Value> <Value>000000</Value><Value>393aeccb-89ef-4a7e-ae42-08d5cebc2e30</Value></row> - <row><Value>43</Value><Value>Кировская</Value> <Value>обл</Value> <Value>610000</Value><Value>0b940b96-103f-4248-850c-26b6c7296728</Value></row> - <row><Value>44</Value><Value>Костромская</Value> <Value>обл</Value> <Value>000000</Value><Value>15784a67-8cea-425b-834a-6afe0e3ed61c</Value></row> - <row><Value>45</Value><Value>Курганская</Value> <Value>обл</Value> <Value>641000</Value><Value>4a3d970f-520e-46b9-b16c-50d4ca7535a8</Value></row> - <row><Value>46</Value><Value>Курская</Value> <Value>обл</Value> <Value>000000</Value><Value>ee594d5e-30a9-40dc-b9f2-0add1be44ba1</Value></row> - <row><Value>47</Value><Value>Ленинградская</Value> <Value>обл</Value> <Value>000000</Value><Value>6d1ebb35-70c6-4129-bd55-da3969658f5d</Value></row> - <row><Value>48</Value><Value>Липецкая</Value> <Value>обл</Value> <Value>000000</Value><Value>1490490e-49c5-421c-9572-5673ba5d80c8</Value></row> - <row><Value>49</Value><Value>Магаданская</Value> <Value>обл</Value> <Value>000000</Value><Value>9c05e812-8679-4710-b8cb-5e8bd43cdf48</Value></row> - <row><Value>50</Value><Value>Московская</Value> <Value>обл</Value> <Value>000000</Value><Value>29251dcf-00a1-4e34-98d4-5c47484a36d4</Value></row> - <row><Value>51</Value><Value>Мурманская</Value> <Value>обл</Value> <Value>000000</Value><Value>1c727518-c96a-4f34-9ae6-fd510da3be03</Value></row> - <row><Value>52</Value><Value>Нижегородская</Value> <Value>обл</Value> <Value>000000</Value><Value>88cd27e2-6a8a-4421-9718-719a28a0a088</Value></row> - <row><Value>53</Value><Value>Новгородская</Value> <Value>обл</Value> <Value>000000</Value><Value>e5a84b81-8ea1-49e3-b3c4-0528651be129</Value></row> - <row><Value>54</Value><Value>Новосибирская</Value> <Value>обл</Value> <Value>000000</Value><Value>1ac46b49-3209-4814-b7bf-a509ea1aecd9</Value></row> - <row><Value>55</Value><Value>Омская</Value> <Value>обл</Value> <Value>000000</Value><Value>05426864-466d-41a3-82c4-11e61cdc98ce</Value></row> - <row><Value>56</Value><Value>Оренбургская</Value> <Value>обл</Value> <Value>460000</Value><Value>8bcec9d6-05bc-4e53-b45c-ba0c6f3a5c44</Value></row> - <row><Value>57</Value><Value>Орловская</Value> <Value>обл</Value> <Value>000000</Value><Value>5e465691-de23-4c4e-9f46-f35a125b5970</Value></row> - <row><Value>58</Value><Value>Пензенская</Value> <Value>обл</Value> <Value>000000</Value><Value>c99e7924-0428-4107-a302-4fd7c0cca3ff</Value></row> - <row><Value>59</Value><Value>Пермский</Value> <Value>край</Value> <Value>000000</Value><Value>4f8b1a21-e4bb-422f-9087-d3cbf4bebc14</Value></row> - <row><Value>60</Value><Value>Псковская</Value> <Value>обл</Value> <Value>000000</Value><Value>f6e148a1-c9d0-4141-a608-93e3bd95e6c4</Value></row> - <row><Value>61</Value><Value>Ростовская</Value> <Value>обл</Value> <Value>000000</Value><Value>f10763dc-63e3-48db-83e1-9c566fe3092b</Value></row> - <row><Value>62</Value><Value>Рязанская</Value> <Value>обл</Value> <Value>390000</Value><Value>963073ee-4dfc-48bd-9a70-d2dfc6bd1f31</Value></row> - <row><Value>63</Value><Value>Самарская</Value> <Value>обл</Value> <Value>000000</Value><Value>df3d7359-afa9-4aaa-8ff9-197e73906b1c</Value></row> - <row><Value>64</Value><Value>Саратовская</Value> <Value>обл</Value> <Value>410000</Value><Value>df594e0e-a935-4664-9d26-0bae13f904fe</Value></row> - <row><Value>65</Value><Value>Сахалинская</Value> <Value>обл</Value> <Value>693000</Value><Value>aea6280f-4648-460f-b8be-c2bc18923191</Value></row> - <row><Value>66</Value><Value>Свердловская</Value> <Value>обл</Value> <Value>620000</Value><Value>92b30014-4d52-4e2e-892d-928142b924bf</Value></row> - <row><Value>67</Value><Value>Смоленская</Value> <Value>обл</Value> <Value>000000</Value><Value>e8502180-6d08-431b-83ea-c7038f0df905</Value></row> - <row><Value>68</Value><Value>Тамбовская</Value> <Value>обл</Value> <Value>392000</Value><Value>a9a71961-9363-44ba-91b5-ddf0463aebc2</Value></row> - <row><Value>69</Value><Value>Тверская</Value> <Value>обл</Value> <Value>000000</Value><Value>61723327-1c20-42fe-8dfa-402638d9b396</Value></row> - <row><Value>70</Value><Value>Томская</Value> <Value>обл</Value> <Value>000000</Value><Value>889b1f3a-98aa-40fc-9d3d-0f41192758ab</Value></row> - <row><Value>71</Value><Value>Тульская</Value> <Value>обл</Value> <Value>000000</Value><Value>d028ec4f-f6da-4843-ada6-b68b3e0efa3d</Value></row> - <row><Value>72</Value><Value>Тюменская</Value> <Value>обл</Value> <Value>000000</Value><Value>54049357-326d-4b8f-b224-3c6dc25d6dd3</Value></row> - <row><Value>73</Value><Value>Ульяновская</Value> <Value>обл</Value> <Value>433000</Value><Value>fee76045-fe22-43a4-ad58-ad99e903bd58</Value></row> - <row><Value>74</Value><Value>Челябинская</Value> <Value>обл</Value> <Value>454000</Value><Value>27eb7c10-a234-44da-a59c-8b1f864966de</Value></row> - <row><Value>75</Value><Value>Забайкальский</Value> <Value>край</Value> <Value>000000</Value><Value>b6ba5716-eb48-401b-8443-b197c9578734</Value></row> - <row><Value>76</Value><Value>Ярославская</Value> <Value>обл</Value> <Value>000000</Value><Value>a84b2ef4-db03-474b-b552-6229e801ae9b</Value></row> - <row><Value>77</Value><Value>Москва</Value> <Value>г</Value> <Value>000000</Value><Value>0c5b2444-70a0-4932-980c-b4dc0d3f02b5</Value></row> - <row><Value>78</Value><Value>Санкт-Петербург</Value> <Value>г</Value> <Value>190000</Value><Value>c2deb16a-0330-4f05-821f-1d09c93331e6</Value></row> - <row><Value>79</Value><Value>Еврейская</Value> <Value>Аобл</Value> <Value>000000</Value><Value>1b507b09-48c9-434f-bf6f-65066211c73e</Value></row> - <row><Value>80</Value><Value>Забайкальский край Агинский Бурятский</Value> <Value>округ</Value> <Value>000000</Value><Value>53ec9705-ec3e-4cbf-921f-229968e10aeb</Value></row> - <row><Value>81</Value><Value>Коми-Пермяцкий</Value> <Value>АО</Value> <Value>000000</Value><Value>e3d95b95-cc2d-440d-95c6-65577fae076e</Value></row> - <row><Value>82</Value><Value>Корякский</Value> <Value>АО</Value> <Value>000000</Value><Value>1e97910c-34fb-428a-a113-13a0024684ae</Value></row> - <row><Value>83</Value><Value>Ненецкий</Value> <Value>АО</Value> <Value>166000</Value><Value>89db3198-6803-4106-9463-cbf781eff0b8</Value></row> - <row><Value>84</Value><Value>Таймырский (Долгано-Ненецкий)</Value> <Value>АО</Value> <Value>000000</Value><Value>29a47e2d-7606-481d-98d5-444e755dec34</Value></row> - <row><Value>85</Value><Value>Иркутская обл Усть-Ордынский Бурятский</Value> <Value>округ</Value> <Value>669000</Value><Value>c2f0810a-d71e-4af6-85f1-e0bbd81b3e4d</Value></row> - <row><Value>86</Value><Value>Ханты-Мансийский Автономный округ - Югра</Value><Value>АО</Value> <Value>000000</Value><Value>d66e5325-3a25-4d29-ba86-4ca351d9704b</Value></row> - <row><Value>87</Value><Value>Чукотский</Value> <Value>АО</Value> <Value>000000</Value><Value>f136159b-404a-4f1f-8d8d-d169e1374d5c</Value></row> - <row><Value>88</Value><Value>Эвенкийский</Value> <Value>АО</Value> <Value>000000</Value><Value>2d7468f0-bec1-4571-85f3-bdefd62b3d50</Value></row> - <row><Value>89</Value><Value>Ямало-Ненецкий</Value> <Value>АО</Value> <Value>629000</Value><Value>826fa834-3ee8-404f-bdbc-13a5221cfb6e</Value></row> - <row><Value>99</Value><Value>Байконур</Value> <Value>г</Value> <Value>468320</Value><Value>63ed1a35-4be6-4564-a1ec-0c51f7383314</Value></row> - -</ValueTable> diff --git a/SSL/src/InformationRegisters/ИсторияАдресныхОбъектов/ИсторияАдресныхОбъектов.mdo b/SSL/src/InformationRegisters/ИсторияАдресныхОбъектов/ИсторияАдресныхОбъектов.mdo index 826c7b076..47a3ba3fb 100644 --- a/SSL/src/InformationRegisters/ИсторияАдресныхОбъектов/ИсторияАдресныхОбъектов.mdo +++ b/SSL/src/InformationRegisters/ИсторияАдресныхОбъектов/ИсторияАдресныхОбъектов.mdo @@ -292,12 +292,4 @@ <fillValue xsi:type="core:UndefinedValue"/> <mainFilter>true</mainFilter> </dimensions> - <templates uuid="1cd36cf8-ae51-4fca-91d8-60c82f9e21e1"> - <name>Классификатор</name> - <synonym> - <key>ru</key> - <value>Классификатор</value> - </synonym> - <templateType>TextDocument</templateType> - </templates> </mdclass:InformationRegister> diff --git a/SSL/src/InformationRegisters/КалендарныеГрафики/ManagerModule.bsl b/SSL/src/InformationRegisters/КалендарныеГрафики/ManagerModule.bsl index 119d46000..609d5b387 100644 --- a/SSL/src/InformationRegisters/КалендарныеГрафики/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/КалендарныеГрафики/ManagerModule.bsl @@ -167,9 +167,9 @@ // на основании которых они заполняются. // // Параметры: -// - УсловияОбновления - таблица значений с колонками. -// - КодПроизводственногоКалендаря - код производственного календаря, данные которого изменились, -// - Год - год, за который нужно обновить данные. +// - УсловияОбновления - ТаблицаЗначений: +// - КодПроизводственногоКалендаря - код производственного календаря, данные которого изменились, +// - Год - год, за который нужно обновить данные. // Процедура ОбновитьГрафикиРаботыПоДаннымПроизводственныхКалендарей(УсловияОбновления) Экспорт @@ -342,10 +342,11 @@ // Функция читает данные графика работы из регистра. // // Параметры: -// ГрафикРаботы - ссылка на текущий элемент справочника. -// НомерГода - номер года, за который необходимо прочитать график. +// ГрафикРаботы - ссылка на текущий элемент справочника. +// НомерГода - номер года, за который необходимо прочитать график. // -// Возвращаемое значение - соответствие - где Ключ - дата. +// Возвращаемое значение: +// Соответствие - где Ключ - дата. // Функция ПрочитатьДанныеГрафикаИзРегистра(ГрафикРаботы, НомерГода) Экспорт @@ -380,12 +381,12 @@ // Процедура записывает данные графика в регистр. // // Параметры: -// ГрафикРаботы - ссылка на текущий элемент справочника. -// НомерГода - номер года, за который необходимо записать график. -// ДниВключенныеВГрафик - соответствие даты и данных к ней относящихся. +// ГрафикРаботы - ссылка на текущий элемент справочника. +// НомерГода - номер года, за который необходимо записать график. +// ДниВключенныеВГрафик - соответствие даты и данных к ней относящихся. // // Возвращаемое значение -// Нет +// Нет // Процедура ЗаписатьДанныеГрафикаВРегистр(ГрафикРаботы, ДниВключенныеВГрафик, ДатаНачала, ДатаОкончания, ЗамещатьРучныеИзменения = Ложь) Экспорт @@ -512,7 +513,7 @@ // ДниВключенныеВГрафик, ДниВключенныеВГрафикПоНеделям, ДниВключенныеВГрафикПроизвольнойДлины. // // Возвращаемое значение: -// Структура: +// Структура: // * ПроизводственныйКалендарь // * СпособЗаполнения // * ШаблонЗаполнения @@ -539,13 +540,15 @@ // способа заполнения и других настроек. // // Параметры: -// ДатаНачала - Дата - начало заполнения данных. -// ДатаОкончания - Дата - окончание заполнения данных. -// ПараметрыЗаполнения - см. ПараметрыЗаполнения. +// ДатаНачала - Дата - начало заполнения данных. +// ДатаОкончания - Дата - окончание заполнения данных. +// ПараметрыЗаполнения - см. ПараметрыЗаполнения. // // Возвращаемое значение: -// Соответствие - где Ключ - дата, значение массив структур с описанием интервалов времени для: -// указанной даты. +// Соответствие из КлючИЗначение: +// * Ключ - Дата +// * Значение - Массив из Структура - с описанием интервалов времени для +// указанной даты. // Функция ДниВключенныеВГрафик(ДатаНачала, ДатаОкончания, ПараметрыЗаполнения) Экспорт diff --git a/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаЗаписи/Form.form b/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаЗаписи/Form.form index f0c3189ee..dbc49e51c 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаЗаписи/Form.form +++ b/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаЗаписи/Form.form @@ -42,7 +42,7 @@ </extInfo> </items> <items xsi:type="form:FormField"> - <name>ДляВнешнихПользователей</name> + <name>ВариантДоступа</name> <id>4</id> <visible>true</visible> <enabled>true</enabled> @@ -50,10 +50,10 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>Запись.ДляВнешнихПользователей</segments> + <segments>Запись.ВариантДоступа</segments> </dataPath> <extendedTooltip> - <name>ДляВнешнихПользователейРасширеннаяПодсказка</name> + <name>ВариантДоступаРасширеннаяПодсказка</name> <id>6</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -63,16 +63,24 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>ДляВнешнихПользователейКонтекстноеМеню</name> + <name>ВариантДоступаКонтекстноеМеню</name> <id>5</id> <autoFill>true</autoFill> </contextMenu> - <type>CheckBoxField</type> + <type>InputField</type> <editMode>Enter</editMode> <showInHeader>true</showInHeader> <headerHorizontalAlign>Left</headerHorizontalAlign> <showInFooter>true</showInFooter> - <extInfo xsi:type="form:CheckBoxFieldExtInfo"/> + <extInfo xsi:type="form:InputFieldExtInfo"> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <wrap>true</wrap> + <chooseType>true</chooseType> + <typeDomainEnabled>true</typeDomainEnabled> + <textEdit>true</textEdit> + <textSize>Normal</textSize> + </extInfo> </items> <items xsi:type="form:FormField"> <name>Поле1</name> diff --git a/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаСписка/Form.form b/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаСписка/Form.form index 5a2cef744..07520685b 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаСписка/Form.form +++ b/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаСписка/Form.form @@ -117,7 +117,6 @@ <dataPath xsi:type="form:DataPath"> <segments>Список.Регистр</segments> </dataPath> - <defaultItem>true</defaultItem> <extendedTooltip> <name>РегистрРасширеннаяПодсказка</name> <id>18</id> @@ -143,25 +142,215 @@ <autoMaxHeight>true</autoMaxHeight> </extInfo> </items> - <items xsi:type="form:FormField"> - <name>ДляВнешнихПользователей</name> - <id>19</id> - <title> - <key>ru</key> - <value>ВП</value> - + + ГруппаВариантДоступа + 47 + + ДляВнешнихПользователей + 19 + + <key>ru</key> + <value>ВП</value> + + true + true + + true + + + Список.ДляВнешнихПользователей + + true + + ru + Для внешних пользователей + + + ДляВнешнихПользователейРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + ДляВнешнихПользователейКонтекстноеМеню + 20 + true + + LabelField + Enter + true + Left + true + + 1 + true + true + + + + КоличествоПолейВСоединении + 49 + + <key>ru</key> + <value>КП</value> + + true + true + + true + + + Список.КоличествоПолейВСоединении + + + ru + Количество полей в соединении + + + КоличествоПолейВСоединенииРасширеннаяПодсказка + 51 + Label + true + true + + Left + + + + КоличествоПолейВСоединенииКонтекстноеМеню + 50 + true + + LabelField + Enter + true + Left + true + + 1 + true + true + + ru + ЧН=0; ЧГ= + + + + + НаборПолейВСоединении + 52 + + <key>ru</key> + <value>НП</value> + + true + true + + true + + + Список.НаборПолейВСоединении + + + ru + Набор полей в соединении + + + НаборПолейВСоединенииРасширеннаяПодсказка + 54 + Label + true + true + + Left + + + + НаборПолейВСоединенииКонтекстноеМеню + 53 + true + + LabelField + Enter + true + Left + true + + 1 + true + true + + ru + ЧЦ=2; ЧН=00; ЧВН=; ЧГ= + + + + + ВариантДоступа + 44 + + <key>ru</key> + <value>ВД</value> + + true + true + + + Список.ВариантДоступа + + + ru + Вариант доступа: +Бит 0 - ключ доступа для внешних пользователей. +Биты 1-5 - количество полей в соединении. +Биты 6-9 - набор полей в соединении. + + + ВариантДоступаРасширеннаяПодсказка + 46 + Label + true + true + + Left + + + + ВариантДоступаКонтекстноеМеню + 45 + true + + LabelField + Enter + true + Left + true + + 2 + true + true + + ru + ЧЦ=4; ЧН=0000; ЧВН=; ЧГ= + + + true true true - - Список.ДляВнешнихПользователей - - true + + <key>ru</key> + <value>Вариант доступа</value> + - ДляВнешнихПользователейРасширеннаяПодсказка - 21 + ГруппаВариантДоступаРасширеннаяПодсказка + 48 Label true true @@ -169,17 +358,12 @@ Left - - ДляВнешнихПользователейКонтекстноеМеню - 20 - true - - CheckBoxField - Enter - true - Left - true - + ColumnGroup + + InCell + auto + true + Поле1 @@ -192,7 +376,6 @@ Список.Поле1 - true Поле1РасширеннаяПодсказка 24 @@ -229,7 +412,6 @@ Список.Поле2 - true Поле2РасширеннаяПодсказка 27 @@ -266,7 +448,6 @@ Список.Поле3 - true Поле3РасширеннаяПодсказка 30 @@ -303,7 +484,6 @@ Список.Поле4 - true Поле4РасширеннаяПодсказка 33 @@ -340,7 +520,6 @@ Список.Поле5 - true Поле5РасширеннаяПодсказка 36 @@ -377,7 +556,6 @@ Список.КлючДоступа - true КлючДоступаРасширеннаяПодсказка 39 @@ -563,9 +741,37 @@
    true
    + ВЫБРАТЬ + КлючиДоступаКРегистрам.Регистр КАК Регистр, + КлючиДоступаКРегистрам.ВариантДоступа КАК ВариантДоступа, + КлючиДоступаКРегистрам.Поле1 КАК Поле1, + КлючиДоступаКРегистрам.Поле2 КАК Поле2, + КлючиДоступаКРегистрам.Поле3 КАК Поле3, + КлючиДоступаКРегистрам.Поле4 КАК Поле4, + КлючиДоступаКРегистрам.Поле5 КАК Поле5, + КлючиДоступаКРегистрам.КлючДоступа КАК КлючДоступа, + ВЫБОР + КОГДА КлючиДоступаКРегистрам.ВариантДоступа = 0 + ТОГДА ЛОЖЬ + ИНАЧЕ КлючиДоступаКРегистрам.ВариантДоступа - (ВЫРАЗИТЬ(КлючиДоступаКРегистрам.ВариантДоступа / 2 - 0.5 КАК ЧИСЛО(15, 0))) * 2 = 1 + КОНЕЦ КАК ДляВнешнихПользователей, + ВЫБОР + КОГДА КлючиДоступаКРегистрам.ВариантДоступа = 0 + ТОГДА 0 + КОГДА КлючиДоступаКРегистрам.ВариантДоступа / 64 >= 1 + ТОГДА (ВЫРАЗИТЬ(КлючиДоступаКРегистрам.ВариантДоступа / 2 - 0.5 КАК ЧИСЛО(15, 0))) - (ВЫРАЗИТЬ(КлючиДоступаКРегистрам.ВариантДоступа / 64 - 0.5 КАК ЧИСЛО(15, 0))) * 32 + ИНАЧЕ ВЫРАЗИТЬ(КлючиДоступаКРегистрам.ВариантДоступа / 2 - 0.5 КАК ЧИСЛО(15, 0)) + КОНЕЦ КАК КоличествоПолейВСоединении, + ВЫБОР + КОГДА КлючиДоступаКРегистрам.ВариантДоступа / 64 >= 1 + ТОГДА ВЫРАЗИТЬ(КлючиДоступаКРегистрам.ВариантДоступа / 64 - 0.5 КАК ЧИСЛО(15, 0)) + ИНАЧЕ 0 + КОНЕЦ КАК НаборПолейВСоединении +ИЗ + РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам InformationRegister.КлючиДоступаКРегистрам - true true + true true true diff --git a/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/КлючиДоступаКРегистрам.mdo b/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/КлючиДоступаКРегистрам.mdo index 78d640168..3894c6f1f 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/КлючиДоступаКРегистрам.mdo +++ b/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/КлючиДоступаКРегистрам.mdo @@ -97,17 +97,23 @@ true - ДляВнешнихПользователей + ВариантДоступа ru - Для внешних пользователей + Вариант доступа - Boolean + Number + + 4 + true + ru - Ключ доступа для внешних пользователей + Бит 0 - ключ доступа для внешних пользователей. +Биты 1-5 - количество полей в соединении. +Биты 6-9 - набор полей в соединении. diff --git a/SSL/src/InformationRegisters/КлючиДоступаКРегиструРезультатыПроверкиУчета/КлючиДоступаКРегиструРезультатыПроверкиУчета.mdo b/SSL/src/InformationRegisters/КлючиДоступаКРегиструРезультатыПроверкиУчета/КлючиДоступаКРегиструРезультатыПроверкиУчета.mdo index 9b41de225..e2086dc56 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаКРегиструРезультатыПроверкиУчета/КлючиДоступаКРегиструРезультатыПроверкиУчета.mdo +++ b/SSL/src/InformationRegisters/КлючиДоступаКРегиструРезультатыПроверкиУчета/КлючиДоступаКРегиструРезультатыПроверкиУчета.mdo @@ -73,17 +73,23 @@ - ДляВнешнихПользователей + ВариантДоступа ru - Для внешних пользователей + Вариант доступа - Boolean + Number + + 4 + true + ru - Ключ доступа для внешних пользователей + Бит 0 - ключ доступа для внешних пользователей. +Биты 1-5 - количество полей в соединении. +Биты 6-9 - версия состава полей в соединении. diff --git a/SSL/src/InformationRegisters/КэшПереводов/КэшПереводов.mdo b/SSL/src/InformationRegisters/КэшПереводов/КэшПереводов.mdo new file mode 100644 index 000000000..207db7e6e --- /dev/null +++ b/SSL/src/InformationRegisters/КэшПереводов/КэшПереводов.mdo @@ -0,0 +1,128 @@ + + + + + + + + + + + + КэшПереводов + + ru + Кэш переводов + + true + InDialog + + Use + Active + + Use + + + + + Use + LineNumber + + Use + + + + + Use + Recorder + + Use + + + + + Use + Period + + ShowError + Use + + + + Managed + + Перевод + + ru + Перевод + + + String + + + + + Use + + + + Текст + + ru + Текст + + + String + + 50 + + + + + true + Index + Use + + true + + + ЯзыкПеревода + + ru + Язык перевода + + + String + + 3 + + + + + true + Index + Use + + true + + + ИсходныйЯзык + + ru + Исходный язык + + + String + + 3 + + + + + true + Index + Use + + true + + diff --git a/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/ManagerModule.bsl b/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/ManagerModule.bsl index 4d7f28c25..8b1efe80f 100644 --- a/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/ManagerModule.bsl @@ -377,10 +377,10 @@ ПараметрыПолучения.Добавить(ЗащищенноеСоединение); ДанныеWSDL = ДанныеКэшаВерсий( - АдресWSDL, + АдресWSDL, Перечисления.ТипыДанныхКэшаПрограммныхИнтерфейсов.ОписаниеWebСервиса, ПараметрыПолучения, - Ложь); + Ложь); // ДвоичныеДанные ИмяФайлаWSDL = ПолучитьИмяВременногоФайла("wsdl"); ДанныеWSDL.Записать(ИмяФайлаWSDL); diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/ManagerModule.bsl b/SSL/src/InformationRegisters/НапоминанияПользователя/ManagerModule.bsl index 3078c9745..b0845fdeb 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/ManagerModule.bsl index 8b58d5fdc..0ef5444e5 100644 --- a/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиВариантовОтчетов/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = @@ -520,7 +522,7 @@ Возврат; КонецЕсли; - МодульОбсужденияСлужебный = ОбщегоНазначения.ОбщийМодуль("ОбсужденияСлужебный"); + МодульОбсуждения = ОбщегоНазначения.ОбщийМодуль("Обсуждения");; УстановитьПривилегированныйРежим(Истина); @@ -546,14 +548,7 @@ Продолжить; КонецЕсли; - Попытка - ИдентификаторПользователя = СистемаВзаимодействия.ПолучитьИдентификаторПользователя( - ПользователиВарианта.Идентификатор); - Исключение - Продолжить; - КонецПопытки; - - Получатели.Добавить(ИдентификаторПользователя); + Получатели.Добавить(ПользователиВарианта.Ссылка); КонецЦикла; @@ -566,33 +561,22 @@ #Область ГенерацияОповещенияНовыхПользователейВариантаОтчета ВариантОтчета = Записи[0].Вариант; - ПредставлениеВариантаОтчета = Строка(ВариантОтчета); - - ЗаголовокОбсуждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Доступ к отчету ""%1""'"), ПредставлениеВариантаОтчета); - - Обсуждение = МодульОбсужденияСлужебный.ОбсуждениеКонтекстное( - ВариантОтчета, ЗаголовокОбсуждения); // ОбсуждениеСистемыВзаимодействия - - Если СистемаВзаимодействия.ПолучитьРежимНаблюдения(Обсуждение.Идентификатор) Тогда - СистемаВзаимодействия.УстановитьРежимНаблюдения(Обсуждение.Идентификатор, Ложь); - КонецЕсли; - - Сообщение = СистемаВзаимодействия.СоздатьСообщение(Обсуждение.Идентификатор); - - Для Каждого Получатель Из Получатели Цикл - Сообщение.Получатели.Добавить(Получатель); - КонецЦикла; - - Сообщение.Автор = СистемаВзаимодействия.ИдентификаторТекущегоПользователя(); - Сообщение.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Предоставлен отчет %1'"), ПолучитьНавигационнуюСсылку(ВариантОтчета)); + + Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Предоставлен отчет %1'"), + ПолучитьНавигационнуюСсылку(ВариантОтчета)); + Сообщение = МодульОбсуждения.ОписаниеСообщения(Текст); Попытка - Сообщение.Записать(); + МодульОбсуждения.ОтправитьСообщение( + Пользователи.ТекущийПользователь(), + Получатели, + Сообщение, + ВариантОтчета); Исключение КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка(); + ПредставлениеВариантаОтчета = Строка(ВариантОтчета); ЗаписьЖурналаРегистрации( НСтр("ru = 'Варианты отчетов.Оповещение о предоставлении доступа к варианту отчета'", КодОсновногоЯзыка), diff --git a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаЗаписи/Form.form b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаЗаписи/Form.form index 17fea4ba8..8325b894d 100644 --- a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаЗаписи/Form.form +++ b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаЗаписи/Form.form @@ -3,10 +3,6 @@ ПравилоНастройкиОтбор 10 - - <key>ru</key> - <value>Правило настройки отбор</value> - true true @@ -317,10 +313,6 @@ true - - <key>ru</key> - <value>Командная панель</value> - ГруппаКоманднаяПанельРасширеннаяПодсказка 35 diff --git a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаЗаписи/Module.bsl index 536bdf8b4..9cf3e695d 100644 --- a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаЗаписи/Module.bsl @@ -96,32 +96,35 @@ КонецЕсли; ВсеСправочники = Справочники.ТипВсеСсылки(); ВсеДокументы = Документы.ТипВсеСсылки(); + ТекстЗапроса = "ВЫБРАТЬ - | " + ТипОбъекта.Имя + ".Ссылка,"; + | &ПоляВладельцаФайла + |ИЗ + | &ПолноеИмяВладелецФайла"; + + ПоляВладельцаФайла = ТипОбъекта.Имя + ".Ссылка"; Если ВсеСправочники.СодержитТип(ТипЗнч(ТипОбъекта.ЗначениеПустойСсылки)) Тогда Справочник = Метаданные.Справочники[ТипОбъекта.Имя]; Для Каждого Реквизит Из Справочник.Реквизиты Цикл - ТекстЗапроса = ТекстЗапроса + Символы.ПС + ТипОбъекта.Имя + "." + Реквизит.Имя + ","; + ПоляВладельцаФайла = ПоляВладельцаФайла + "," + Символы.ПС + ТипОбъекта.Имя + "." + Реквизит.Имя; КонецЦикла; ИначеЕсли ВсеДокументы.СодержитТип(ТипЗнч(ТипОбъекта.ЗначениеПустойСсылки)) Тогда Документ = Метаданные.Документы[ТипОбъекта.Имя]; Для Каждого Реквизит Из Документ.Реквизиты Цикл - ТекстЗапроса = ТекстЗапроса + Символы.ПС + ТипОбъекта.Имя + "." + Реквизит.Имя + ","; + ПоляВладельцаФайла = ПоляВладельцаФайла + "," + Символы.ПС + ТипОбъекта.Имя + "." + Реквизит.Имя; Если Реквизит.Тип.СодержитТип(Тип("Дата")) Тогда МассивРеквизитовСТипомДата.Добавить(Реквизит.Имя, Реквизит.Синоним); - ТекстЗапроса = ТекстЗапроса + Символы.ПС + "РАЗНОСТЬДАТ(" + Реквизит.Имя + ", &ТекущаяДата, ДЕНЬ) Как ДнейДоУдаленияОт" + Реквизит.Имя + ","; + ПоляВладельцаФайла = ПоляВладельцаФайла + "," + Символы.ПС + + СтрЗаменить("РАЗНОСТЬДАТ(&ИмяРеквизита, &ТекущаяДата, ДЕНЬ) Как ДнейДоУдаленияОт&ИмяРеквизита", + "&ИмяРеквизита", Реквизит.Имя); КонецЕсли; КонецЦикла; КонецЕсли; - // Удаляем лишнюю запятую - ТекстЗапроса= Лев(ТекстЗапроса, СтрДлина(ТекстЗапроса) - 1); - ТекстЗапроса = ТекстЗапроса + " - |ИЗ - | " + ТипОбъекта.ПолноеИмя+ " КАК " + ТипОбъекта.Имя; - + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоляВладельцаФайла", ПоляВладельцаФайла); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяВладелецФайла", ТипОбъекта.ПолноеИмя + " КАК " + ТипОбъекта.Имя); Возврат ТекстЗапроса; КонецФункции diff --git a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/ManagerModule.bsl index ab38adde7..1dd3c8e8c 100644 --- a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/ManagerModule.bsl @@ -12,14 +12,14 @@ // Возвращаемое значение: -// ТаблицаЗначений: -// * ВладелецФайла - ЛюбаяСсылка -// * ИдентификаторВладельца - СправочникСсылка.ИдентификаторыОбъектовМетаданных -// * ЭтоНастройкаДляЭлементаСправочника - БУлево -// * ТипВладельцаФайла - СправочникСсылка.ИдентификаторыОбъектовМетаданных -// * Действие - ПеречислениеСсылка.ВариантыОчисткиФайлов -// * ПериодОчистки - ПеречислениеСсылка.ПериодОчисткиФайлов -// * ЭтоФайл - Булево +// ТаблицаЗначений: +// * ВладелецФайла - ЛюбаяСсылка +// * ИдентификаторВладельца - СправочникСсылка.ИдентификаторыОбъектовМетаданных +// * ЭтоНастройкаДляЭлементаСправочника - Булево +// * ТипВладельцаФайла - СправочникСсылка.ИдентификаторыОбъектовМетаданных +// * Действие - ПеречислениеСсылка.ВариантыОчисткиФайлов +// * ПериодОчистки - ПеречислениеСсылка.ПериодОчисткиФайлов +// * ЭтоФайл - Булево // Функция ТекущиеНастройкиОчистки() Экспорт diff --git a/SSL/src/InformationRegisters/НастройкиПравОбъектов/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиПравОбъектов/ManagerModule.bsl index 03bba359a..14be5485b 100644 --- a/SSL/src/InformationRegisters/НастройкиПравОбъектов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиПравОбъектов/ManagerModule.bsl @@ -648,23 +648,23 @@ // // Возвращаемое значение: // Структура: -// * ПоТипам - ФиксированноеСоответствие: +// * ПоТипам - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип - тип ссылки или объекта из ОпределяемыйТип.ВладельцыНастроекПрав -// * Значение - ФиксированноеСоответствие: +// * Значение - ФиксированноеСоответствие из КлючИЗначение: // ** Ключ - Строка - имя возможного права // ** Значение - см. СвойстваВозможногоПрава -// * ПоТипамСсылок - ФиксированноеСоответствие: +// * ПоТипамСсылок - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип - тип ссылки из ОпределяемыйТип.ВладельцыНастроекПрав // * Значение - Массив из см. СвойстваВозможногоПрава -// * ПоПолнымИменам - ФиксированноеСоответствие: +// * ПоПолнымИменам - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Строка - владелец прав (полное имя таблицы) // * Значение - см. СвойстваВозможногоПрава // * ТипыВладельцев - Массив из ОпределяемыйТип.ВладелецНастроекПрав -// * ОтдельныеТаблицы - ФиксированноеСоответствие: +// * ОтдельныеТаблицы - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - СправочникСсылка.ИдентификаторыОбъектовМетаданных // - СправочникСсылка.ИдентификаторыОбъектовРасширений - идентификатор таблицы // * Значение - Строка - полное имя таблицы -// * ИерархическиеТаблицы - ФиксированноеСоответствие: +// * ИерархическиеТаблицы - ФиксированноеСоответствие из КлючИЗначение: // * Ключ - Тип - тип ссылки или объекта из ОпределяемыйТип.ВладельцыНастроекПрав // * Значение - Булево - Истина. // @@ -946,9 +946,9 @@ // * Заголовок - Строка // * Подсказка - Строка // * НачальноеЗначение - Булево -// * ТребуемыеПрава - Массив Из Строка -// * ЧтениеВТаблицах - Массив Из Строка -// * ИзменениеВТаблицах - Массив Из Строка +// * ТребуемыеПрава - Массив из Строка +// * ЧтениеВТаблицах - Массив из Строка +// * ИзменениеВТаблицах - Массив из Строка // Функция СвойстваВозможногоПрава(ВозможноеПраво) @@ -968,7 +968,7 @@ КонецФункции // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // Ключ - Тип // Значение - см. СвойстваВозможногоПрава // @@ -979,7 +979,7 @@ КонецФункции // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - Строка - полное имя права. // * Значение - ФиксированнаяСтруктура: // * Имя - Строка - имя возможного права. diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/НастройкиСинхронизацииФайлов/Module.bsl b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/НастройкиСинхронизацииФайлов/Module.bsl index b777dfeee..c71b67fe7 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/НастройкиСинхронизацииФайлов/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/НастройкиСинхронизацииФайлов/Module.bsl @@ -73,7 +73,7 @@ КонецЕсли; Если Не ТекущиеДанные.Синхронизировать И ТекущиеДанные.ПредыдущаяСинхронизация Тогда - + Оповещение = Новый ОписаниеОповещения("ПослеВопросаОСинхронизации", ЭтотОбъект); ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Для %1 завершить синхронизацию и отключить?'"), ТекущиеДанные.СинонимНаименованияОбъекта); @@ -301,7 +301,6 @@ ВладельцыФайлов.Добавить(СведенияОВладельце.ИмяВладельцаФайла); - НастройкаИмеетГлобальныеПравила = Ложь; Если ВсеСправочники.СодержитТип(СведенияОВладельце.ВладелецФайла) Тогда Если УзелСправочники = Неопределено Тогда УзелСправочники = ДеревоНастроек.Строки.Добавить(); @@ -557,9 +556,9 @@ КонецФункции // Параметры: -// Результат - Структура -// ДополнительныеПараметры - Структура: -// * ТекущаяСтрока - Число +// Результат - Структура +// ДополнительныеПараметры - Структура: +// * ТекущаяСтрока - Число // &НаКлиенте Процедура ОчиститьДанныеНастройкиЗавершение(Результат, ДополнительныеПараметры) Экспорт diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ПростаяФормаЗаписиНастройки/Form.form b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ПростаяФормаЗаписиНастройки/Form.form index 89c60b1ba..c1705a844 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ПростаяФормаЗаписиНастройки/Form.form +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ПростаяФормаЗаписиНастройки/Form.form @@ -153,10 +153,6 @@ true - - <key>ru</key> - <value>Командная панель</value> - ГруппаКоманднаяПанельРасширеннаяПодсказка 35 diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Form.form b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Form.form index d0628c9c5..fcbb24429 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Form.form +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Form.form @@ -205,10 +205,6 @@ true - - <key>ru</key> - <value>Синхронизация файлов объекта</value> - ГруппаСинхронизацияФайловОбъектаРасширеннаяПодсказка 73 @@ -319,10 +315,6 @@ ПравилоНастройкиОтбор 10 VeryLow - - <key>ru</key> - <value>Правило настройки отбор</value> - true true @@ -489,10 +481,6 @@ true - - <key>ru</key> - <value>Меню сгруппировать</value> - МенюСгруппироватьРасширеннаяПодсказка 146 @@ -682,10 +670,6 @@ true - - <key>ru</key> - <value>Контекстное меню добавить</value> - КонтекстноеМенюДобавитьРасширеннаяПодсказка 152 @@ -758,10 +742,6 @@ true - - <key>ru</key> - <value>Контекстное меню сгруппировать</value> - КонтекстноеМенюСгруппироватьРасширеннаяПодсказка 154 @@ -886,10 +866,6 @@ true - - <key>ru</key> - <value>Правила синхронизации</value> - ПравилоСинхронизацииГруппаРасширеннаяПодсказка 87 @@ -974,10 +950,6 @@ true - - <key>ru</key> - <value>Командная панель</value> - ГруппаКоманднаяПанельРасширеннаяПодсказка 35 diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Module.bsl b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Module.bsl index fa75d632e..fb14c0712 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Module.bsl @@ -243,32 +243,34 @@ КонецЕсли; ВсеСправочники = Справочники.ТипВсеСсылки(); ВсеДокументы = Документы.ТипВсеСсылки(); + ТекстЗапроса = "ВЫБРАТЬ - | " + ТипОбъекта.Имя + ".Ссылка,"; + | &ПоляВладельцаФайла + |ИЗ + | &ПолноеИмяВладелецФайла"; + + ПоляВладельцаФайла = ТипОбъекта.Имя + ".Ссылка"; Если ВсеСправочники.СодержитТип(ТипЗнч(ТипОбъекта.ЗначениеПустойСсылки)) Тогда Справочник = Метаданные.Справочники[ТипОбъекта.Имя]; Для Каждого Реквизит Из Справочник.Реквизиты Цикл - ТекстЗапроса = ТекстЗапроса + Символы.ПС + ТипОбъекта.Имя + "." + Реквизит.Имя + ","; + ПоляВладельцаФайла = ПоляВладельцаФайла + "," + Символы.ПС + ТипОбъекта.Имя + "." + Реквизит.Имя; КонецЦикла; - ИначеЕсли - ВсеДокументы.СодержитТип(ТипЗнч(ТипОбъекта.ЗначениеПустойСсылки)) Тогда + ИначеЕсли ВсеДокументы.СодержитТип(ТипЗнч(ТипОбъекта.ЗначениеПустойСсылки)) Тогда Документ = Метаданные.Документы[ТипОбъекта.Имя]; Для Каждого Реквизит Из Документ.Реквизиты Цикл - ТекстЗапроса = ТекстЗапроса + Символы.ПС + ТипОбъекта.Имя + "." + Реквизит.Имя + ","; + ПоляВладельцаФайла = ПоляВладельцаФайла + "," + Символы.ПС + ТипОбъекта.Имя + "." + Реквизит.Имя; Если Реквизит.Тип.СодержитТип(Тип("Дата")) Тогда МассивРеквизитовСТипомДата.Добавить(Реквизит.Имя, Реквизит.Синоним); - ТекстЗапроса = ТекстЗапроса + Символы.ПС + "РАЗНОСТЬДАТ(" + Реквизит.Имя + ", &ТекущаяДата, ДЕНЬ) Как ДнейДоУдаленияОт" + Реквизит.Имя + ","; + ПоляВладельцаФайла = ПоляВладельцаФайла + "," + Символы.ПС + + СтрЗаменить("РАЗНОСТЬДАТ(&ИмяРеквизита, &ТекущаяДата, ДЕНЬ) Как ДнейДоУдаленияОт&ИмяРеквизита", + "&ИмяРеквизита", Реквизит.Имя); КонецЕсли; КонецЦикла; КонецЕсли; - // Удаляем лишнюю запятую - ТекстЗапроса= Лев(ТекстЗапроса, СтрДлина(ТекстЗапроса) - 1); - ТекстЗапроса = ТекстЗапроса + " - |ИЗ - | " + ТипОбъекта.ПолноеИмя+ " КАК " + ТипОбъекта.Имя; - + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПоляВладельцаФайла", ПоляВладельцаФайла); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмяВладелецФайла", ТипОбъекта.ПолноеИмя + " КАК " + ТипОбъекта.Имя); Возврат ТекстЗапроса; КонецФункции diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/ManagerModule.bsl index 3958709ee..644adbe58 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/ManagerModule.bsl @@ -11,16 +11,16 @@ #Область СлужебныеПроцедурыИФункции // Возвращаемое значение: -// ТаблицаЗначений: -// * ВладелецФайла - ЛюбаяСсылка -// * ИдентификаторВладельца - СправочникСсылка.ИдентификаторыОбъектовМетаданных -// * ЭтоНастройкаДляЭлементаСправочника - Булево -// * ТипВладельцаФайла - СправочникСсылка.ИдентификаторыОбъектовМетаданных -// * ПравилоОтбора - ХранилищеЗначения -// * ЭтоФайл - Булево -// * Синхронизировать - Булево -// * УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиСинхронизацииФайлов -// * Наименование - Строка +// ТаблицаЗначений: +// * ВладелецФайла - ЛюбаяСсылка +// * ИдентификаторВладельца - СправочникСсылка.ИдентификаторыОбъектовМетаданных +// * ЭтоНастройкаДляЭлементаСправочника - Булево +// * ТипВладельцаФайла - СправочникСсылка.ИдентификаторыОбъектовМетаданных +// * ПравилоОтбора - ХранилищеЗначения +// * ЭтоФайл - Булево +// * Синхронизировать - Булево +// * УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиСинхронизацииФайлов +// * Наименование - Строка // Функция ТекущиеНастройкиСинхронизации() Экспорт diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/НастройкаПодключенияКСервису/Form.form b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/НастройкаПодключенияКСервису/Form.form index d9b76cbfe..4507dd762 100644 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/НастройкаПодключенияКСервису/Form.form +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/НастройкаПодключенияКСервису/Form.form @@ -143,10 +143,6 @@ true - - <key>ru</key> - <value>Пароль</value> - ГруппаПарольРасширеннаяПодсказка 27 @@ -249,10 +245,6 @@ true - - <key>ru</key> - <value>Предупреждение</value> - ГруппаПредупреждениеРасширеннаяПодсказка 30 diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/ManagerModule.bsl index 0f1d22697..2ff0b0ec0 100644 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/ManagerModule.bsl @@ -469,28 +469,28 @@ // Формируем текст запроса только по необходимым полям - // параметрам для указанного вида транспорта. - ТекстЗапроса = "ВЫБРАТЬ "; - + ВыбираемыеПоля = ""; Для Каждого ЭлементНастройки Из СтруктураНастроек Цикл - ТекстЗапроса = ТекстЗапроса + ЭлементНастройки.Ключ + ", "; + ВыбираемыеПоля = ВыбираемыеПоля + ЭлементНастройки.Ключ + ", "; КонецЦикла; // Убираем последний символ ", ". - СтроковыеФункцииКлиентСервер.УдалитьПоследнийСимволВСтроке(ТекстЗапроса, 2); + СтроковыеФункцииКлиентСервер.УдалитьПоследнийСимволВСтроке(ВыбираемыеПоля, 2); - ТекстЗапроса = ТекстЗапроса + " + ШаблонТекстаЗапроса = + "ВЫБРАТЬ + | &ВыбираемыеПоля |ИЗ | РегистрСведений.НастройкиТранспортаОбменаДанными КАК НастройкиТранспорта |ГДЕ - | НастройкиТранспорта.Корреспондент = &Корреспондент - |"; + | НастройкиТранспорта.Корреспондент = &Корреспондент"; - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса; + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ВыбираемыеПоля", ВыбираемыеПоля); + + Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("Корреспондент", Корреспондент); - Выборка = Запрос.Выполнить().Выбрать(); // Если есть данные для узла, то заполняем структуру. diff --git a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/ManagerModule.bsl index e89765102..50ad679e8 100644 --- a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/InformationRegisters/НеудаленныеОбъекты/ManagerModule.bsl b/SSL/src/InformationRegisters/НеудаленныеОбъекты/ManagerModule.bsl index c071f3d95..b6d22b533 100644 --- a/SSL/src/InformationRegisters/НеудаленныеОбъекты/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НеудаленныеОбъекты/ManagerModule.bsl @@ -14,11 +14,11 @@ // Если объект ранее не удалялся, то запись о количестве попыток будет отсутствовать. // // Параметры: -// Объекты - Массив из ЛюбаяСсылка +// Объекты - Массив из ЛюбаяСсылка // Возвращаемое значение: -// ТаблицаЗначений: -// * УдаляемыйСсылка - ЛюбаяСсылка -// * КоличествоПопыток - Число +// ТаблицаЗначений: +// * УдаляемыйСсылка - ЛюбаяСсылка +// * КоличествоПопыток - Число // Функция КоличествоПопытокОбъектов(Объекты) Экспорт Запрос = Новый Запрос; @@ -45,7 +45,7 @@ // Добавляет запись в регистр. // // Параметры: -// НеудаленнаяСсылка - ЛюбаяСсылка +// НеудаленнаяСсылка - ЛюбаяСсылка // Процедура Добавить(НеудаленнаяСсылка) Экспорт Запись = РегистрыСведений.НеудаленныеОбъекты.СоздатьМенеджерЗаписи(); diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаНаУровнеЗаписей/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаНаУровнеЗаписей/Module.bsl index 1004b985c..7ba75da51 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаНаУровнеЗаписей/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаНаУровнеЗаписей/Module.bsl @@ -695,15 +695,9 @@ Результат = УправлениеДоступомСлужебный.ЗапуститьОбновлениеДоступаНаУровнеЗаписей(Истина); - Если Результат.УжеВыполняется Тогда - ТекстПредупреждения = Результат.ТекстПредупреждения; - Иначе - ТекстПредупреждения = ""; - КонецЕсли; - СостояниеЗаданияОбновленияДоступа = СостояниеЗаданияОбновленияДоступа(); - Возврат ТекстПредупреждения; + Возврат Результат.ТекстПредупреждения; КонецФункции diff --git a/SSL/src/InformationRegisters/ОбработчикиСобытийСинхронизацииДанных/ManagerModule.bsl b/SSL/src/InformationRegisters/ОбработчикиСобытийСинхронизацииДанных/ManagerModule.bsl index 59c6baa98..bf251dfc6 100644 --- a/SSL/src/InformationRegisters/ОбработчикиСобытийСинхронизацииДанных/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ОбработчикиСобытийСинхронизацииДанных/ManagerModule.bsl @@ -17,6 +17,8 @@ УстановитьПривилегированныйРежим(Истина); + ШаблонТекста = "ПланОбмена.%1"; + ПланыОбменаРИБ = СтандартныеПодсистемыПовтИсп.ПланыОбменаРИБ(); Запрос = Новый Запрос(); Запрос.УстановитьПараметр("ГлавныйУзел", ПланыОбмена.ГлавныйУзел()); @@ -29,12 +31,15 @@ "ВЫБРАТЬ | ПланОбмена.Ссылка КАК Ссылка |ИЗ - | ПланОбмена.[ИмяПланаОбмена] КАК ПланОбмена + | &ИмяПланаОбмена КАК ПланОбмена |ГДЕ | НЕ ПланОбмена.ЭтотУзел | И НЕ ПланОбмена.ПометкаУдаления | И ПланОбмена.Ссылка <> &ГлавныйУзел"; - Запрос.Текст = СтрЗаменить(Запрос.Текст, "[ИмяПланаОбмена]", ИмяПланаОбмена); + + ИмяПланаОбменаСтрокой = СтрШаблон(ШаблонТекста, ИмяПланаОбмена); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяПланаОбмена", ИмяПланаОбменаСтрокой); + ВыборкаУзлов = Запрос.Выполнить().Выбрать(); Пока ВыборкаУзлов.Следующий() Цикл diff --git a/SSL/src/InformationRegisters/ПакетыДляОтправки/ManagerModule.bsl b/SSL/src/InformationRegisters/ПакетыДляОтправки/ManagerModule.bsl index c4643ccca..25c1dea8e 100644 --- a/SSL/src/InformationRegisters/ПакетыДляОтправки/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПакетыДляОтправки/ManagerModule.bsl @@ -65,8 +65,7 @@ Если ВсегоПакетов > ПакетовДляОтправки Тогда КрайнийПакет = ПолучитьКрайнийПакет(); - Запрос.Текст = " - |ВЫБРАТЬ ПЕРВЫЕ %ПакетовДляУдаления + Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1000 | ПакетыДляОтправки.НомерПакета КАК НомерПакета |ИЗ | РегистрСведений.ПакетыДляОтправки КАК ПакетыДляОтправки @@ -76,7 +75,7 @@ | ПакетыДляОтправки.НомерПакета УБЫВ |"; - Запрос.Текст = СтрЗаменить(Запрос.Текст, "%ПакетовДляУдаления", Формат(ВсегоПакетов - ПакетовДляОтправки, "ЧГ=")); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "1000", Формат(ВсегоПакетов - ПакетовДляОтправки, "ЧГ=")); Запрос.УстановитьПараметр("КрайнийПакет", КрайнийПакет); Результат = Запрос.Выполнить(); diff --git a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаЗаписи/Form.form b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаЗаписи/Form.form index 1deb07eb2..1781a54da 100644 --- a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаЗаписи/Form.form +++ b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаЗаписи/Form.form @@ -123,6 +123,88 @@ Normal + + ХешСуммаПостоянныхПараметров + 12 + true + true + + true + + + Запись.ХешСуммаПостоянныхПараметров + + + ХешСуммаПостоянныхПараметровРасширеннаяПодсказка + 14 + Label + true + true + + Left + + + + ХешСуммаПостоянныхПараметровКонтекстноеМеню + 13 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ХешСуммаПараметровШаблонов + 15 + true + true + + true + + + Запись.ХешСуммаПараметровШаблонов + + + ХешСуммаПараметровШаблоновРасширеннаяПодсказка + 17 + Label + true + true + + Left + + + + ХешСуммаПараметровШаблоновКонтекстноеМеню + 16 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + ФормаКоманднаяПанель -1 diff --git a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаСписка/Form.form b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаСписка/Form.form index 0f0a9af8c..8e6836015 100644 --- a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаСписка/Form.form +++ b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаСписка/Form.form @@ -168,24 +168,100 @@ Left true + 4 true true
    - - ДатаСоздания - 28 + + ДатаИХешСумма + 37 + + ДатаСоздания + 28 + true + true + + true + + + Список.ДатаСоздания + + + ДатаСозданияРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + + ДатаСозданияКонтекстноеМеню + 29 + 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 + + 50 + true + true + + true true true - - Список.ДатаСоздания - + + <key>ru</key> + <value>Дата и хеш сумма</value> + - ДатаСозданияРасширеннаяПодсказка - 30 + ДатаИХешСуммаРасширеннаяПодсказка + 38 Label true true @@ -193,36 +269,100 @@ Left - - ДатаСозданияКонтекстноеМеню - 29 - true - - LabelField - Enter - true - Left - true - - true - true + ColumnGroup + + Vertical + auto + true - - ХешСумма - 19 + + ДополнительныеХешСуммы + 39 + + ХешСуммаПостоянныхПараметров + 31 + true + true + + true + + + Список.ХешСуммаПостоянныхПараметров + + + ХешСуммаПостоянныхПараметровРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + + ХешСуммаПостоянныхПараметровКонтекстноеМеню + 32 + true + + LabelField + Enter + true + Left + true + + true + true + + + + ХешСуммаПараметровШаблонов + 34 + true + true + + true + + + Список.ХешСуммаПараметровШаблонов + + + ХешСуммаПараметровШаблоновРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + + ХешСуммаПараметровШаблоновКонтекстноеМеню + 35 + true + + LabelField + Enter + true + Left + true + + true + true + + true true true - - Список.ХешСумма - - true + + <key>ru</key> + <value>Дополнительные хеш суммы</value> + - ХешСуммаРасширеннаяПодсказка - 21 + ДополнительныеХешСуммыРасширеннаяПодсказка + 40 Label true true @@ -230,19 +370,11 @@ Left - - ХешСуммаКонтекстноеМеню - 20 - true - - LabelField - Enter - true - Left - true - - true - true + ColumnGroup + + Vertical + auto + true None diff --git a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/ПараметрыОграниченияДоступа.mdo b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/ПараметрыОграниченияДоступа.mdo index c505a078c..6e2cbee82 100644 --- a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/ПараметрыОграниченияДоступа.mdo +++ b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/ПараметрыОграниченияДоступа.mdo @@ -74,6 +74,90 @@ Use + + ХешСуммаПостоянныхПараметров + + ru + Хеш сумма постоянных параметров + + + String + + 48 + + + + ru + Хеш-сумма версии постоянных параметров ограничения доступа, +которые зависят от метаданных и используемых видов доступа. + + + + Use + Use + + + + ДляЗаписиОбъектовИПроверкиПрав + + ru + Для записи объектов и проверки прав + + + ValueStorage + + + ru + Параметров ограничения доступа, используемые перед записью объекта, при программной проверке прав, при обновлении ключей доступа к данным, ключей доступа пользователей и ключей доступа групп доступа. + + + + Use + Use + + + + ДляОтчетаПоПравамДоступа + + ru + Для отчета по правам доступа + + + ValueStorage + + + ru + Параметры ограничения доступа, используемые для отчета о правах доступа. + + + + Use + Use + + + + ХешСуммаПараметровШаблонов + + ru + Хеш сумма параметров шаблонов + + + String + + 48 + + + + ru + Хеш-сумма текущих параметров для шаблонов в сеансах пользователей и внешних пользователей +(параметры шаблонов могут меняться до первого полного завершения обновления доступа после записи новой версии). + + + + Use + Use + + ДляШаблоновВСеансахПользователей @@ -112,37 +196,18 @@ Use - - ДляЗаписиОбъектовИПроверкиПрав + + ВерсииПараметровШаблонов ru - Для записи объектов и проверки прав + Версии параметров шаблонов ValueStorage ru - Параметров ограничения доступа, используемые перед записью объекта, при программной проверке прав, при обновлении ключей доступа к данным, ключей доступа пользователей и ключей доступа групп доступа. - - - - Use - Use - - - - ДляОтчетаПоПравамДоступа - - ru - Для отчета по правам доступа - - - ValueStorage - - - ru - Параметры ограничения доступа, используемые для отчета о правах доступа. + Версии параметров для шаблонов в сеансах пользователей и внешних пользователей, требуемые для переходного процесса обновления доступа к регистрам. @@ -186,8 +251,8 @@ ru Порядковый номер версии, добавляемый при записи новой версии. -Требуется для устранения задержек ожидания окончания разделяемых блокировок при обновлении кэша. -При монопольном обновлении остается одна версия с номером 1. +Требуется для устранения задержек на блокировках при обновлении кэша. +Версии старее двух суток удаляются и остается только одна версия. diff --git a/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/ManagerModule.bsl b/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/ManagerModule.bsl index 90de9bc5a..d9e821529 100644 --- a/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/ManagerModule.bsl @@ -82,7 +82,19 @@ Справочники.ИдентификаторыОбъектовРасширений.ОбновитьДанныеСправочника(); КонецЕсли; - ИнтеграцияПодсистемБСП.ПриЗаполненииВсехПараметровРаботыРасширений(); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный"); + МодульУправлениеДоступомСлужебный.УстановитьЗаписьПараметровОграниченияДоступаВТекущемСеансе(Истина); + Попытка + ИнтеграцияПодсистемБСП.ПриЗаполненииВсехПараметровРаботыРасширений(); + Исключение + МодульУправлениеДоступомСлужебный.УстановитьЗаписьПараметровОграниченияДоступаВТекущемСеансе(Ложь); + ВызватьИсключение; + КонецПопытки; + МодульУправлениеДоступомСлужебный.УстановитьЗаписьПараметровОграниченияДоступаВТекущемСеансе(Ложь); + Иначе + ИнтеграцияПодсистемБСП.ПриЗаполненииВсехПараметровРаботыРасширений(); + КонецЕсли; ИмяПараметра = "СтандартныеПодсистемы.БазоваяФункциональность.ДатаПоследнегоЗаполненияВсехПараметровРаботыРасширений"; СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, ТекущаяДатаСеанса(), Истина); diff --git a/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/ManagerModule.bsl b/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/ManagerModule.bsl index 706a7236e..ed49085fa 100644 --- a/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПараметрыРаботыПрограммы/ManagerModule.bsl @@ -432,6 +432,7 @@ ИначеЕсли Результат.Статус = "Выполнено" Тогда РезультатВыполнения = ПолучитьИзВременногоХранилища(Результат.АдресРезультата); + УдалитьИзВременногоХранилища(Результат.АдресРезультата); Если ТипЗнч(РезультатВыполнения) = Тип("Структура") Тогда КраткоеПредставлениеОшибки = РезультатВыполнения.КраткоеПредставлениеОшибки; 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 index c74ab860d..b1457c3d4 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Form.form +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Form.form @@ -355,6 +355,48 @@ Normal + + МакетыПечатныхФормДоступныеЯзыки + 108 + true + true + + true + + + МакетыПечатныхФорм.ДоступныеЯзыки + + + МакетыПечатныхФормДоступныеЯзыкиРасширеннаяПодсказка + 110 + Label + true + true + + Left + + + + МакетыПечатныхФормДоступныеЯзыкиКонтекстноеМеню + 109 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + МакетыПечатныхФормКоманднаяПанель 56 @@ -1038,6 +1080,44 @@ true + + ДоступныеЯзыки + + <key>ru</key> + <value>Доступные языки</value> + + 7 + + String + + + + true + + + true + + + + + Макеты + 1 + + DynamicList + + + true + + + true + + + InformationRegister.ОбщиеПоставляемыеМакетыПечати + true + true + true + true + ИспользоватьИзмененныйМакет diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl index a5e775357..45222a11a 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl @@ -61,9 +61,12 @@ Если Не ТолькоПросмотр Тогда Макет = Параметр.ТабличныйДокумент; АдресМакетаВоВременномХранилище = ПоместитьВоВременноеХранилище(Макет); - ЗаписатьМакет(Параметр.ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище); + ЗаписатьМакет(Параметр.ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище, Параметр.КодЯзыка); + Для Каждого Макет Из МакетыПечатныхФорм.НайтиСтроки(Новый Структура("ИмяОбъектаМетаданныхМакета", Параметр.ИмяОбъектаМетаданныхМакета)) Цикл + Макет.ДоступныеЯзыки = ДоступныеЯзыкиМакета(Параметр.ИмяОбъектаМетаданныхМакета); + КонецЦикла; КонецЕсли; - ОбновитьОтображениеМакетов() + ОбновитьОтображениеМакетов(); КонецЕсли; КонецПроцедуры @@ -125,7 +128,9 @@ &НаКлиенте Процедура МакетыПечатныхФормВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) - ОткрытьМакетПечатнойФормы(); + Если Поле.Имя <> "МакетыПечатныхФормДоступныеЯзыки" Тогда + ОткрытьМакетПечатнойФормы(); + КонецЕсли; КонецПроцедуры &НаКлиенте @@ -205,9 +210,24 @@ + ПредставлениеВладельца + " " + ПредставлениеМакета + " " + ТипМакета; + + ОписаниеМакета.ДоступныеЯзыки = ДоступныеЯзыкиМакета(ИмяОбъектаМетаданныхМакета); + Возврат ОписаниеМакета; КонецФункции +&НаСервере +Функция ДоступныеЯзыкиМакета(Знач ИмяОбъектаМетаданныхМакета) + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда + МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); + Возврат МодульУправлениеПечатьюМультиязычность.ПредставлениеЯзыковМакета(ИмяОбъектаМетаданныхМакета); + КонецЕсли; + + Возврат ""; + +КонецФункции + &НаСервере Процедура УстановитьФлагиИспользованияИзмененныхМакетов() @@ -221,8 +241,23 @@ Запрос = Новый Запрос(ТекстЗапроса); ИзмененныеМакеты = Запрос.Выполнить().Выгрузить(); + + ЯзыкиПечатныхФорм = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ОбщегоНазначения.КодОсновногоЯзыка()); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда + МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); + ЯзыкиПечатныхФорм = МодульУправлениеПечатьюМультиязычность.ДоступныеЯзыки(); + КонецЕсли; + Для Каждого Макет Из ИзмененныеМакеты Цикл - ИмяОбъектаМетаданныхМакета = Макет.Объект + "." + Макет.ИмяМакета; + ИмяМакета = Макет.ИмяМакета; + Для Каждого КодЯзыка Из ЯзыкиПечатныхФорм Цикл + Если СтрЗаканчиваетсяНа(ИмяМакета, "_" + КодЯзыка) Тогда + ИмяМакета = Лев(ИмяМакета, СтрДлина(ИмяМакета) - СтрДлина(КодЯзыка) - 1); + Прервать; + КонецЕсли; + КонецЦикла; + + ИмяОбъектаМетаданныхМакета = Макет.Объект + "." + ИмяМакета; НайденныеСтроки = МакетыПечатныхФорм.НайтиСтроки(Новый Структура("ИмяОбъектаМетаданныхМакета", ИмяОбъектаМетаданныхМакета)); Для Каждого ОписаниеМакета Из НайденныеСтроки Цикл ОписаниеМакета.Изменен = Истина; @@ -469,28 +504,14 @@ Процедура УдалитьИзмененныеМакеты(УдаляемыеМакеты) Для Каждого ИмяОбъектаМетаданныхМакета Из УдаляемыеМакеты Цикл - ЧастиИмени = СтрРазделить(ИмяОбъектаМетаданныхМакета, "."); - ИмяМакета = ЧастиИмени[ЧастиИмени.ВГраница()]; - - ИмяВладельца = ""; - Для НомерЧасти = 0 По ЧастиИмени.ВГраница()-1 Цикл - Если Не ПустаяСтрока(ИмяВладельца) Тогда - ИмяВладельца = ИмяВладельца + "."; - КонецЕсли; - ИмяВладельца = ИмяВладельца + ЧастиИмени[НомерЧасти]; - КонецЦикла; - - МенеджерЗаписи = РегистрыСведений.ПользовательскиеМакетыПечати.СоздатьМенеджерЗаписи(); - МенеджерЗаписи.Объект = ИмяВладельца; - МенеджерЗаписи.ИмяМакета = ИмяМакета; - МенеджерЗаписи.Удалить(); + УправлениеПечатью.УдалитьМакет(ИмяОбъектаМетаданныхМакета); КонецЦикла; КонецПроцедуры &НаСервереБезКонтекста -Процедура ЗаписатьМакет(ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище) - УправлениеПечатью.ЗаписатьМакет(ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище); +Процедура ЗаписатьМакет(ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище, КодЯзыка = Неопределено) + УправлениеПечатью.ЗаписатьМакет(ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище, КодЯзыка); КонецПроцедуры &НаКлиенте diff --git a/SSL/src/InformationRegisters/ПользовательскиеНастройкиДоступаКОбработкам/ManagerModule.bsl b/SSL/src/InformationRegisters/ПользовательскиеНастройкиДоступаКОбработкам/ManagerModule.bsl index d73b92789..21dba8a9c 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеНастройкиДоступаКОбработкам/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПользовательскиеНастройкиДоступаКОбработкам/ManagerModule.bsl @@ -13,10 +13,10 @@ // Записывает таблицу настроек в данные регистра по указанным измерениям. // // Параметры: -// ТаблицаНастроек - ТаблицаЗначений -// ЗначенияИзмерений - Структура -// ЗначенияРесурсов - Структура -// УдалятьСтарые - Булево +// ТаблицаНастроек - ТаблицаЗначений +// ЗначенияИзмерений - Структура +// ЗначенияРесурсов - Структура +// УдалятьСтарые - Булево // Процедура ЗаписатьПакетНастроек(ТаблицаНастроек, ЗначенияИзмерений, ЗначенияРесурсов, УдалятьСтарые) Экспорт diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/ManagerModule.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/ManagerModule.bsl index a7de20bd7..74ffb3d14 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/ManagerModule.bsl @@ -101,8 +101,8 @@ // Загружает поставляемые правила для плана обмена. // // Параметры: -// ИмяПланаОбмена - Строка - имя плана обмена, для которого загружаются правила. -// ИмяФайлаПравил - Строка - полное имя файла правил обмена (*.zip). +// ИмяПланаОбмена - Строка - имя плана обмена, для которого загружаются правила. +// ИмяФайлаПравил - Строка - полное имя файла правил обмена (*.zip). // Процедура ЗагрузитьПоставляемыеПравила(ИмяПланаОбмена, ИмяФайлаПравил) Экспорт @@ -252,7 +252,7 @@ // Удаляет поставляемые правила для плана обмена (очищает данные в регистре). // // Параметры: -// ИмяПланаОбмена - Строка - имя плана обмена, для которого удаляются правила. +// ИмяПланаОбмена - Строка - имя плана обмена, для которого удаляются правила. // Процедура УдалитьПоставляемыеПравила(ИмяПланаОбмена) Экспорт @@ -278,7 +278,7 @@ // Определяет, используются ли типовых правила конвертации для плана обмена. // // Параметры: -// ИмяПланаОбмена - Строка - имя плана обмена, для которого загружаются правила. +// ИмяПланаОбмена - Строка - имя плана обмена, для которого загружаются правила. // // Возвращаемое значение: // Булево - если Истина, то используются; Ложь - нет. @@ -356,12 +356,12 @@ // Загружает правила в регистр. // // Параметры: -// Отказ - Булево - отказ от записи в регистр. -// Запись - РегистрСведенийЗапись.ПравилаДляОбменаДанными - запись регистра, в которую будут помещены данные. -// АдресВременногоХранилища - Строка - адрес временного хранилища, из которого будут загружены XML-правила. -// ИмяФайлаПравил - Строка - имя файла из которого были загружены файлы(оно также фиксируется в регистре). -// ДвоичныеДанные - ДвоичныеДанные - данные, в которые сохраняется XML-файл (в том числе и распакованный из ZIP-архива). -// ЭтоАрхив - Булево - признак того, что правила загружаются из ZIP-архива, а не из XML-файла. +// Отказ - Булево - отказ от записи в регистр. +// Запись - РегистрСведенийЗапись.ПравилаДляОбменаДанными - запись регистра, в которую будут помещены данные. +// АдресВременногоХранилища - Строка - адрес временного хранилища, из которого будут загружены XML-правила. +// ИмяФайлаПравил - Строка - имя файла из которого были загружены файлы(оно также фиксируется в регистре). +// ДвоичныеДанные - ДвоичныеДанные - данные, в которые сохраняется XML-файл (в том числе и распакованный из ZIP-архива). +// ЭтоАрхив - Булево - признак того, что правила загружаются из ZIP-архива, а не из XML-файла. // Процедура ЗагрузитьПравила(Отказ, Запись, АдресВременногоХранилища = "", ИмяФайлаПравил = "", ЭтоАрхив = Ложь) Экспорт @@ -773,22 +773,22 @@ // Возвращаемое значение функции. ПравилаЗачитанные = Неопределено; - ТекстЗапроса = " - |ВЫБРАТЬ - | ПравилаДляОбменаДанными.%1 КАК ПравилаЗачитанные + ШаблонТекстаЗапроса = + "ВЫБРАТЬ + | &ИмяРеквизита КАК ПравилаЗачитанные |ИЗ | РегистрСведений.ПравилаДляОбменаДанными КАК ПравилаДляОбменаДанными |ГДЕ - | ПравилаДляОбменаДанными.ИмяПланаОбмена = &ИмяПланаОбмена - | И ПравилаДляОбменаДанными.ВидПравил = ЗНАЧЕНИЕ(Перечисление.ВидыПравилДляОбменаДанными.ПравилаКонвертацииОбъектов) - | И ПравилаДляОбменаДанными.ПравилаЗагружены - |"; + | ПравилаДляОбменаДанными.ИмяПланаОбмена = &ИмяПланаОбмена + | И ПравилаДляОбменаДанными.ВидПравил = ЗНАЧЕНИЕ(Перечисление.ВидыПравилДляОбменаДанными.ПравилаКонвертацииОбъектов) + | И ПравилаДляОбменаДанными.ПравилаЗагружены"; - ТекстЗапроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстЗапроса, + ИмяРеквизита = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ПравилаДляОбменаДанными.%1", ?(ПолучатьПравилаКорреспондента, "ПравилаЗачитанныеКорреспондента", "ПравилаЗачитанные")); - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса; + ТекстЗапроса = СтрЗаменить(ШаблонТекстаЗапроса, "&ИмяРеквизита", ИмяРеквизита); + + Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("ИмяПланаОбмена", ИмяПланаОбмена); Результат = Запрос.Выполнить(); diff --git a/SSL/src/InformationRegisters/ПредметыПапкиВзаимодействий/ManagerModule.bsl b/SSL/src/InformationRegisters/ПредметыПапкиВзаимодействий/ManagerModule.bsl index 8e2cc4271..ff8d3e08a 100644 --- a/SSL/src/InformationRegisters/ПредметыПапкиВзаимодействий/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПредметыПапкиВзаимодействий/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/InformationRegisters/РазрешенияНаИспользованиеВнешнихРесурсов/ManagerModule.bsl b/SSL/src/InformationRegisters/РазрешенияНаИспользованиеВнешнихРесурсов/ManagerModule.bsl index e0098dade..e6fc47302 100644 --- a/SSL/src/InformationRegisters/РазрешенияНаИспользованиеВнешнихРесурсов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/РазрешенияНаИспользованиеВнешнихРесурсов/ManagerModule.bsl @@ -44,7 +44,8 @@ // Параметры: // Разрешение - ОбъектXDTO. // -// Возвращаемое значение - Произвольный (сериализуемый в XDTO). +// Возвращаемое значение: +// Произвольный // Функция ДополнениеРазрешения(Знач Разрешение) Экспорт @@ -63,21 +64,19 @@ // о владельцах разрешений, иначе текущий срез будет свернут по владельцу, // БезОписаний - Булево - если Истина - срез будет возвращен с очищенным полем Description у разрешений. // -// Возвращаемое значение - ТаблицаЗначений, колонки: +// Возвращаемое значение: +// ТаблицаЗначений: // * ТипПрограммногоМодуля - СправочникСсылка.ИдентификаторыОбъектовМетаданных // * ИдентификаторПрограммногоМодуля - УникальныйИдентификатор // * ТипВладельца - СправочникСсылка.ИдентификаторыОбъектовМетаданных // * ИдентификаторВладельца - УникальныйИдентификатор // * Тип - Строка - имя XDTO-типа, описывающего разрешения. -// * Разрешения - Соответствие: -// ** Ключ - Строка - ключ разрешения (см. функцию КлючРазрешения в модуле менеджера регистра. -// РазрешенияНаИспользованиеВнешнихРесурсов), +// * Разрешения - Соответствие из КлючИЗначение: +// ** Ключ - см. РегистрСведений.РазрешенияНаИспользованиеВнешнихРесурсов.КлючРазрешения // ** Значение - ОбъектXDTO - XDTO-описание разрешения. -// * ДополненияРазрешений - Соответствие - описание дополнений разрешений: -// ** Ключ - Строка - ключ разрешения (см. функцию КлючРазрешения в модуле менеджера регистра. -// РазрешенияНаИспользованиеВнешнихРесурсов), -// ** Значение - см. функцию ДополнениеРазрешения в модуле менеджера регистра. -// РазрешенияНаИспользованиеВнешнихРесурсов). +// * ДополненияРазрешений - Соответствие из КлючИЗначение - описание дополнений разрешений: +// ** Ключ - см. РегистрСведений.РазрешенияНаИспользованиеВнешнихРесурсов.КлючРазрешения +// ** Значение - см. РегистрСведений.РазрешенияНаИспользованиеВнешнихРесурсов.ДополнениеРазрешения // Функция СрезРазрешений(Знач ВРазрезеВладельцев = Истина, Знач БезОписаний = Ложь) Экспорт diff --git a/SSL/src/InformationRegisters/РежимыПодключенияВнешнихМодулей/ManagerModule.bsl b/SSL/src/InformationRegisters/РежимыПодключенияВнешнихМодулей/ManagerModule.bsl index 724f9c1d7..ab65f2a3d 100644 --- a/SSL/src/InformationRegisters/РежимыПодключенияВнешнихМодулей/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/РежимыПодключенияВнешнихМодулей/ManagerModule.bsl @@ -13,7 +13,7 @@ // Возвращает режим подключения внешнего модуля. // // Параметры: -// ПрограммныйМодуль - ЛюбаяСсылка, ссылка, соответствующая программному модулю, для которого запрашиваются +// ПрограммныйМодуль - ЛюбаяСсылка - ссылка, соответствующая программному модулю, для которого запрашиваются // режим подключения. // // Возвращаемое значение: diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Module.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Module.bsl index 7366c8ecb..1a329dbdc 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Module.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/Forms/Форма/Module.bsl @@ -1282,7 +1282,7 @@ КонецПроцедуры // Возвращаемое значение: -// ДанныеФормыСтруктура - поля: +// ДанныеФормыСтруктура: // * Дата - Дата // * Ссылка - ЛюбаяСсылка // * ТипСтрокой - Строка diff --git a/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl b/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl index 38a9883fd..9e8233011 100644 --- a/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/РезультатыОбменаДанными/ManagerModule.bsl @@ -265,12 +265,12 @@ | РегистрСведений.РезультатыОбменаДанными КАК РезультатыОбменаДанными |ГДЕ | ИСТИНА - | [ОтборПоПропущенным] - | [ОтборПоУзлуПланаОбмена] - | [ОтборПоТипуПроблемы] - | [ОтборПоПериоду] - | [ОтборПоПричине] - | [ОтборПоОбъекту]"); + | И &ОтборПоПропущенным + | И &ОтборПоУзлуПланаОбмена + | И &ОтборПоТипуПроблемы + | И &ОтборПоПериоду + | И &ОтборПоПричине + | И &ОтборПоОбъекту"); // Отбор по проигнорированным проблемам. СтрокаОтбора = ""; @@ -279,17 +279,7 @@ Или УчитыватьПроигнорированные = Ложь Тогда СтрокаОтбора = "И НЕ РезультатыОбменаДанными.Пропущена"; КонецЕсли; - Запрос.Текст = СтрЗаменить(Запрос.Текст, "[ОтборПоПропущенным]", СтрокаОтбора); - - // Отбор по типу проблемы. - СтрокаОтбора = ""; - ТипПроблемы = Неопределено; - Если ПараметрыПоиска.Свойство("ТипПроблемы", ТипПроблемы) - И ЗначениеЗаполнено(ТипПроблемы) Тогда - СтрокаОтбора = "И РезультатыОбменаДанными.ТипПроблемы В (&ТипыПроблемы)"; - Запрос.УстановитьПараметр("ТипыПроблемы", ТипПроблемы); - КонецЕсли; - Запрос.Текст = СтрЗаменить(Запрос.Текст, "[ОтборПоТипуПроблемы]", СтрокаОтбора); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "И &ОтборПоПропущенным", СтрокаОтбора); // Отбор по узлу плана обмена. СтрокаОтбора = ""; @@ -299,7 +289,17 @@ СтрокаОтбора = "И РезультатыОбменаДанными.УзелИнформационнойБазы В (&УзлыОбмена)"; Запрос.УстановитьПараметр("УзлыОбмена", ПараметрыПоиска.УзлыПланаОбмена); КонецЕсли; - Запрос.Текст = СтрЗаменить(Запрос.Текст, "[ОтборПоУзлуПланаОбмена]", СтрокаОтбора); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "И &ОтборПоУзлуПланаОбмена", СтрокаОтбора); + + // Отбор по типу проблемы. + СтрокаОтбора = ""; + ТипПроблемы = Неопределено; + Если ПараметрыПоиска.Свойство("ТипПроблемы", ТипПроблемы) + И ЗначениеЗаполнено(ТипПроблемы) Тогда + СтрокаОтбора = "И РезультатыОбменаДанными.ТипПроблемы В (&ТипыПроблемы)"; + Запрос.УстановитьПараметр("ТипыПроблемы", ТипПроблемы); + КонецЕсли; + Запрос.Текст = СтрЗаменить(Запрос.Текст, "И &ОтборПоТипуПроблемы", СтрокаОтбора); // Отбор по периоду. СтрокаОтбора = ""; @@ -312,7 +312,7 @@ Запрос.УстановитьПараметр("ДатаНачала", Период.ДатаНачала); Запрос.УстановитьПараметр("ДатаОкончания", Период.ДатаОкончания); КонецЕсли; - Запрос.Текст = СтрЗаменить(Запрос.Текст, "[ОтборПоПериоду]", СтрокаОтбора); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "И &ОтборПоПериоду", СтрокаОтбора); // Отбор по причине. СтрокаОтбора = ""; @@ -322,7 +322,7 @@ СтрокаОтбора = "И РезультатыОбменаДанными.Причина ПОДОБНО &Причина"; Запрос.УстановитьПараметр("Причина", "%" + СтрокаПоиска + "%"); КонецЕсли; - Запрос.Текст = СтрЗаменить(Запрос.Текст, "[ОтборПоПричине]", СтрокаОтбора); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "И &ОтборПоПричине", СтрокаОтбора); // Отбор по объекту. СтрокаОтбора = ""; @@ -332,7 +332,7 @@ СтрокаОтбора = "И РезультатыОбменаДанными.ПроблемныйОбъект В (&ПроблемныеОбъекты)"; Запрос.УстановитьПараметр("ПроблемныеОбъекты", ПроблемныеОбъекты); КонецЕсли; - Запрос.Текст = СтрЗаменить(Запрос.Текст, "[ОтборПоОбъекту]", СтрокаОтбора); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "И &ОтборПоОбъекту", СтрокаОтбора); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда diff --git a/SSL/src/InformationRegisters/РезультатыПроверкиУчета/ManagerModule.bsl b/SSL/src/InformationRegisters/РезультатыПроверкиУчета/ManagerModule.bsl index 61303a7b2..b9961f187 100644 --- a/SSL/src/InformationRegisters/РезультатыПроверкиУчета/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/РезультатыПроверкиУчета/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/InformationRegisters/СоставыГруппПользователей/ManagerModule.bsl b/SSL/src/InformationRegisters/СоставыГруппПользователей/ManagerModule.bsl index 7276939ef..9d59b0cfd 100644 --- a/SSL/src/InformationRegisters/СоставыГруппПользователей/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СоставыГруппПользователей/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Module.bsl b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Module.bsl index 93d88dca4..0f4845458 100644 --- a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Module.bsl +++ b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ИзменениеСостоянийОригиналовПервичныхДокументов/Module.bsl @@ -17,7 +17,7 @@ ЗаполнитьСписокПечатныхФормПоСсылке(); Если Параметры.Свойство("Ссылка") Тогда - Запись.Ссылка = Параметры.Ссылка; + Запись.Владелец = Параметры.Ссылка; ФильтрПечатныхФорм = "Все"; Элементы.НадписьПредупреждение.Заголовок = НСтр("ru='Состояние оригинала документа будет установлено по печатным формам'"); ИначеЕсли КомплектПечатныхФорм.Количество()= 0 Тогда @@ -86,7 +86,7 @@ Процедура СсылкаНаДокументНажатие(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; - ПоказатьЗначение(,Запись.Ссылка); + ПоказатьЗначение(,Запись.Владелец); КонецПроцедуры @@ -170,13 +170,16 @@ ЗаписатьСостоянияОригиналовПервичныхДокументов(); Оповестить("ИзменениеСостоянияОригиналаПервичногоДокумента"); Закрыть(); - УчетОригиналовПервичныхДокументовКлиент.ОповеститьПользователяОбУстановкеСостояний(1, Запись.Ссылка); + УчетОригиналовПервичныхДокументовКлиент.ОповеститьПользователяОбУстановкеСостояний(1, Запись.Владелец); ИначеЕсли КомплектПечатныхФорм.Количество() = 0 Тогда Закрыть(); КонецЕсли; КонецПроцедуры +// Параметры: +// Команда - КомандаФормы +// &НаКлиенте Процедура Подключаемый_УстановитьСостояниеОригинала(Команда) @@ -301,19 +304,20 @@ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда - ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ОбщегоНазначения.ИмяТаблицыПоСсылке(Запись.Ссылка)); + ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ОбщегоНазначения.ИмяТаблицыПоСсылке(Запись.Владелец)); СписокОбъектов = Новый Массив; СписокОбъектов.Добавить(ОбъектМетаданных); КоллекцияПечатныхФорм = УправлениеПечатью.КомандыПечатиФормы("ФормаДокумента", СписокОбъектов); - ОбъектМетаданных = ОбщегоНазначения.ИмяТаблицыПоСсылке(Запись.Ссылка); + ОбъектМетаданных = ОбщегоНазначения.ИмяТаблицыПоСсылке(Запись.Владелец); ЗапросТаблицаКоманд = ДополнительныеОтчетыИОбработки.НовыйЗапросПоДоступнымКомандам(Перечисления.ВидыДополнительныхОтчетовИОбработок.ПечатнаяФорма,ОбъектМетаданных, Истина); ТаблицаКоманд = ЗапросТаблицаКоманд.Выполнить().Выгрузить(); Для Каждого ТекСтрока Из КоллекцияПечатныхФорм Цикл НоваяСтрока = КомплектПечатныхФорм.Добавить(); - НоваяСтрока.ИмяМакета = ТекСтрока.Идентификатор; + Идентификатор = ТекСтрока.Идентификатор; + НоваяСтрока.ИмяМакета = Идентификатор; НоваяСтрока.Представление = ТекСтрока.Представление; НоваяСтрока.Картинка = 1; НоваяСтрока.ОригиналПолученКартинка = 0; @@ -324,7 +328,8 @@ Если КомплектПечатныхФорм.НайтиСтроки(Новый Структура("ИмяМакета", ТекСтрока.Идентификатор)) = 0 Тогда НоваяСтрока = КомплектПечатныхФорм.Добавить(); - НоваяСтрока.ИмяМакета = ТекСтрока.Идентификатор; + Идентификатор = ТекСтрока.Идентификатор; + НоваяСтрока.ИмяМакета = Идентификатор; НоваяСтрока.Представление = ТекСтрока.Представление; НоваяСтрока.Картинка = 1; НоваяСтрока.ОригиналПолученКартинка = 0; @@ -363,9 +368,9 @@ | РегистрСведений.СостоянияОригиналовПервичныхДокументов КАК СостоянияОригиналовПервичныхДокументов |ГДЕ | НЕ СостоянияОригиналовПервичныхДокументов.ОбщееСостояние - | И СостоянияОригиналовПервичныхДокументов.Ссылка = &Ссылка"; + | И СостоянияОригиналовПервичныхДокументов.Владелец = &Ссылка"; - Запрос.УстановитьПараметр("Ссылка", Запись.Ссылка); + Запрос.УстановитьПараметр("Ссылка", Запись.Владелец); Выборка = Запрос.Выполнить().Выбрать(); @@ -409,7 +414,7 @@ |ИЗ | РегистрСведений.СостоянияОригиналовПервичныхДокументов КАК СостоянияОригиналовПервичныхДокументов |ГДЕ - | ТИПЗНАЧЕНИЯ(СостоянияОригиналовПервичныхДокументов.Ссылка) = &Тип + | ТИПЗНАЧЕНИЯ(СостоянияОригиналовПервичныхДокументов.Владелец) = &Тип | И СостоянияОригиналовПервичныхДокументов.ДатаПоследнегоИзменения МЕЖДУ &ДатаНачала И &ДатаОкончания | И СостоянияОригиналовПервичныхДокументов.ФормаИзвне | @@ -417,7 +422,7 @@ | СостоянияОригиналовПервичныхДокументов.ПервичныйДокумент, | СостоянияОригиналовПервичныхДокументов.ПервичныйДокументПредставление"; - Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Тип","ТИП ("+ОбщегоНазначения.ИмяТаблицыПоСсылке(Запись.Ссылка)+")"); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Тип","ТИП ("+ОбщегоНазначения.ИмяТаблицыПоСсылке(Запись.Владелец)+")"); Запрос.УстановитьПараметр("ДатаНачала",НачалоМесяца(НачалоДня(ТекущаяДатаСеанса()))); Запрос.УстановитьПараметр("ДатаОкончания",КонецМесяца(КонецДня(ТекущаяДатаСеанса()))); @@ -509,11 +514,10 @@ Процедура УстановитьСсылкуНаОригинал() // Для отключения проверки конфигурации. - СвойстваЗаписи = Новый Структура("Ссылка"); - ЗаполнитьЗначенияСвойств(СвойстваЗаписи, Запись); + СвойстваЗаписи = Новый Структура("Ссылка", Запись.Владелец); Документ = СвойстваЗаписи.Ссылка.ПолучитьОбъект(); - ТипДокумента = Метаданные.НайтиПоПолномуИмени(ОбщегоНазначения.ИмяТаблицыПоСсылке(Запись.Ссылка)); + ТипДокумента = Метаданные.НайтиПоПолномуИмени(ОбщегоНазначения.ИмяТаблицыПоСсылке(Запись.Владелец)); Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрефиксацияОбъектов") Тогда Значения = Новый Структура("Документ,Номер,Дата",СокрЛП(ТипДокумента), @@ -521,7 +525,7 @@ СсылкаНаДокумент = НСтр("ru='[Документ] № [Номер] от [Дата]'"); СсылкаНаДокумент = СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку(СсылкаНаДокумент,Значения); Иначе - СсылкаНаДокумент = Запись.Ссылка; + СсылкаНаДокумент = Запись.Владелец; КонецЕсли; КонецПроцедуры @@ -567,11 +571,11 @@ Процедура ЗаписатьСостоянияОригиналовПервичныхДокументов() ПроверкаЗаписьСостоянияОригинала = РегистрыСведений.СостоянияОригиналовПервичныхДокументов.СоздатьНаборЗаписей(); - ПроверкаЗаписьСостоянияОригинала.Отбор.Ссылка.Установить(Запись.Ссылка); + ПроверкаЗаписьСостоянияОригинала.Отбор.Владелец.Установить(Запись.Владелец); ПроверкаЗаписьСостоянияОригинала.Прочитать(); Если ПроверкаЗаписьСостоянияОригинала.Количество() = 0 Тогда - РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(Запись.Ссылка,Запись.Состояние); + РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(Запись.Владелец,Запись.Состояние); КонецЕсли; Если КомплектПечатныхФорм.Количество()<> 0 Тогда @@ -583,19 +587,19 @@ Если ПроверкаЗаписьСостоянияОригинала.Количество() > 0 Тогда Если ПроверкаЗаписьСостоянияОригинала[0].Состояние <> ПечатнаяФорма.Состояние Тогда - РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(Запись.Ссылка, + РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(Запись.Владелец, ПечатнаяФорма.ИмяМакета,ПечатнаяФорма.Представление,ПечатнаяФорма.Состояние,ПечатнаяФорма.Извне); КонецЕсли; Иначе - РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(Запись.Ссылка, + РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(Запись.Владелец, ПечатнаяФорма.ИмяМакета,ПечатнаяФорма.Представление,ПечатнаяФорма.Состояние,ПечатнаяФорма.Извне); КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; - РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(Запись.Ссылка,Запись.Состояние); + РегистрыСведений.СостоянияОригиналовПервичныхДокументов.ЗаписатьОбщееСостояниеОригиналаДокумента(Запись.Владелец,Запись.Состояние); КонецПроцедуры diff --git a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ФормаЗаписи/Form.form b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ФормаЗаписи/Form.form index c66ef2dab..bb06ad9d9 100644 --- a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ФормаЗаписи/Form.form +++ b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/Forms/ФормаЗаписи/Form.form @@ -1,16 +1,23 @@ - Ссылка - 1 + Владелец + 24 + + <key>ru</key> + <value>Ссылка</value> + true true true + + Запись.Владелец + - СсылкаРасширеннаяПодсказка - 3 + ВладелецРасширеннаяПодсказка + 26 Label true true @@ -19,12 +26,11 @@ - СсылкаКонтекстноеМеню - 2 + ВладелецКонтекстноеМеню + 25 true InputField - true Enter true Left diff --git a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl index 19438d237..518c83afd 100644 --- a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/ManagerModule.bsl @@ -13,8 +13,8 @@ // Делает записи состояний оригиналов печатных форм регистр, после печати формы. // // Параметры: -// ОбъектыПечати - СписокЗначений - список документов. -// ПечатныеФормы - СписокЗначений - наименование макетов и представление печатных форм. +// ОбъектыПечати - СписокЗначений - список документов. +// ПечатныеФормы - СписокЗначений - наименование макетов и представление печатных форм. // Процедура ЗаписатьСостоянияОригиналовДокументаПослеПечатиФормы(ОбъектыПечати, ПечатныеФормы) Экспорт @@ -59,12 +59,12 @@ // Делает запись состояния оригинала печатной формы в регистр, после печати формы. // // Параметры: -// Документ - СсылкаДокумент - ссылка на документ. -// ПечатнаяФорма - Строка - имя макета печатной формы. +// Документ - ДокументСсылка - ссылка на документ. +// ПечатнаяФорма - Строка - имя макета печатной формы. // Представление - Строка - наименование печатной формы. -// Состояние - Строка -// - СсылкаСправочник - наименование или ссылка на состояние оригинала печатной формы. -// Извне - Булево - признак, показывающий принадлежит ли форма системе 1С. +// Состояние - Строка - наименование состояния оригинала печатной формы +// - СправочникСсылка - ссылка на состояние оригинала печатной формы. +// Извне - Булево - признак, показывающий принадлежит ли форма системе 1С. // Процедура ЗаписатьСостояниеОригиналаДокументаПоПечатнымФормам(Документ, ПечатнаяФорма, Представление, Состояние, Извне) Экспорт @@ -75,7 +75,7 @@ Попытка ЗаписьСостоянияОригинала = РегистрыСведений.СостоянияОригиналовПервичныхДокументов.СоздатьМенеджерЗаписи(); - ЗаписьСостоянияОригинала.Ссылка = Документ.Ссылка; + ЗаписьСостоянияОригинала.Владелец = Документ.Ссылка; ЗаписьСостоянияОригинала.ПервичныйДокумент = ПечатнаяФорма; ЗаписьСостоянияОригинала.ПервичныйДокументПредставление = Представление; ЗаписьСостоянияОригинала.Состояние = Справочники.СостоянияОригиналовПервичныхДокументов.НайтиПоНаименованию(Состояние); @@ -100,8 +100,8 @@ // Делает запись общего состояния оригинала документа в регистр. // // Параметры: -// Документ - СсылкаДокумент - ссылка на документ. -// Состояние - Строка - наименование состояния оригинала. +// Документ - ДокументСсылка - ссылка на документ. +// Состояние - Строка - наименование состояния оригинала. // Процедура ЗаписатьОбщееСостояниеОригиналаДокумента(Документ, Состояние) Экспорт @@ -117,11 +117,11 @@ Блокировка.Заблокировать(); ЗаписьСостоянияОригинала = РегистрыСведений.СостоянияОригиналовПервичныхДокументов.СоздатьМенеджерЗаписи(); - ЗаписьСостоянияОригинала.Ссылка = Документ.Ссылка; + ЗаписьСостоянияОригинала.Владелец = Документ.Ссылка; ЗаписьСостоянияОригинала.ПервичныйДокумент = ""; ПроверкаЗаписьСостоянияОригинала = РегистрыСведений.СостоянияОригиналовПервичныхДокументов.СоздатьНаборЗаписей(); - ПроверкаЗаписьСостоянияОригинала.Отбор.Ссылка.Установить(Документ.Ссылка); + ПроверкаЗаписьСостоянияОригинала.Отбор.Владелец.Установить(Документ.Ссылка); ПроверкаЗаписьСостоянияОригинала.Отбор.ОбщееСостояние.Установить(Ложь); ПроверкаЗаписьСостоянияОригинала.Прочитать(); Если ПроверкаЗаписьСостоянияОригинала.Количество() > 1 Тогда diff --git a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/СостоянияОригиналовПервичныхДокументов.mdo b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/СостоянияОригиналовПервичныхДокументов.mdo index 50ce3fd94..075e40da2 100644 --- a/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/СостоянияОригиналовПервичныхДокументов.mdo +++ b/SSL/src/InformationRegisters/СостоянияОригиналовПервичныхДокументов/СостоянияОригиналовПервичныхДокументов.mdo @@ -135,10 +135,10 @@ - Ссылка + Владелец ru - Ссылка + Владелец DefinedType.ОбъектСУчетомОригиналовПервичныхДокументов diff --git a/SSL/src/InformationRegisters/СтатистикаКонфигурации/ManagerModule.bsl b/SSL/src/InformationRegisters/СтатистикаКонфигурации/ManagerModule.bsl index 8d4eab6ea..4411a7de0 100644 --- a/SSL/src/InformationRegisters/СтатистикаКонфигурации/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/СтатистикаКонфигурации/ManagerModule.bsl @@ -169,7 +169,7 @@ НовСтрока.ОбъектМетаданных = ТекОбъектМетаданных; Если НетТабличныхЧастей[ТекОбъект.Ключ] = Неопределено Тогда - Для Каждого ТекТабличнаяЧасть Из ТекОбъектМетаданных.ТабличныеЧасти Цикл + Для Каждого ТекТабличнаяЧасть Из ТекОбъектМетаданных.ТабличныеЧасти Цикл // ОбъектМетаданныхТабличнаяЧасть ПолноеИмяТаблицы.Добавить(ТекТабличнаяЧасть.Имя); НовСтрока = ТаблицаЗначений.Добавить(); @@ -459,11 +459,11 @@ КонецФункции Функция ЗапросПоУмолчанию(ТаблицаМетаданных) - ТекстЗапроса = "ВЫБРАТЬ + ТекстЗапроса = СтрЗаменить("ВЫБРАТЬ | КОЛИЧЕСТВО(*) КАК Количество |ИЗ - | " + ТаблицаМетаданных + " - |"; + | &ТаблицаМетаданных + |", "&ТаблицаМетаданных", ТаблицаМетаданных); Возврат ТекстЗапроса; КонецФункции diff --git a/SSL/src/Reports/АнализВерсийОбъектов/АнализВерсийОбъектов.mdo b/SSL/src/Reports/АнализВерсийОбъектов/АнализВерсийОбъектов.mdo index 4eec4e37a..d8aba7bb0 100644 --- a/SSL/src/Reports/АнализВерсийОбъектов/АнализВерсийОбъектов.mdo +++ b/SSL/src/Reports/АнализВерсийОбъектов/АнализВерсийОбъектов.mdo @@ -11,6 +11,7 @@ true Report.АнализВерсийОбъектов.Template.ОсновнаяСхемаКомпоновкиДанных + SettingsStorage.ХранилищеВариантовОтчетов ru diff --git a/SSL/src/Reports/АнализЖурналаРегистрации/Forms/СведенияОРегламентномЗадании/Module.bsl b/SSL/src/Reports/АнализЖурналаРегистрации/Forms/СведенияОРегламентномЗадании/Module.bsl index 7fe6ea3fe..91948e796 100644 --- a/SSL/src/Reports/АнализЖурналаРегистрации/Forms/СведенияОРегламентномЗадании/Module.bsl +++ b/SSL/src/Reports/АнализЖурналаРегистрации/Forms/СведенияОРегламентномЗадании/Module.bsl @@ -30,6 +30,10 @@ ОтборПоРегламентнымЗаданиям.Вставить("Наименование", НаименованиеСобытия); КонецЕсли; РегЗадание = РегламентныеЗаданияСервер.НайтиЗадания(ОтборПоРегламентнымЗаданиям); + Если РегЗадание.Количество() = 0 И ОтборПоРегламентнымЗаданиям.Свойство("Наименование") Тогда + ОтборПоРегламентнымЗаданиям.Удалить("Наименование"); + РегЗадание = РегламентныеЗаданияСервер.НайтиЗадания(ОтборПоРегламентнымЗаданиям); + КонецЕсли; Если ЗначениеЗаполнено(РегЗадание) Тогда ИдентификаторРегламентногоЗадания = РегЗадание[0].УникальныйИдентификатор; КонецЕсли; @@ -78,7 +82,7 @@ Диалог.Показать(ОписаниеОповещения); Иначе - ПоказатьПредупреждение(,НСтр("ru = 'Невозможно получить расписание регламентного задания: регламентное задание было удалено или не указано его наименование.'")); + ПоказатьПредупреждение(,НСтр("ru = 'Невозможно изменить расписание регламентного задания: регламентное задание не существует в этой версии программы.'")); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Reports/АнализЖурналаРегистрации/ManagerModule.bsl b/SSL/src/Reports/АнализЖурналаРегистрации/ManagerModule.bsl index 4a52e0a98..3ceeb5519 100644 --- a/SSL/src/Reports/АнализЖурналаРегистрации/ManagerModule.bsl +++ b/SSL/src/Reports/АнализЖурналаРегистрации/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт НастройкиОтчета.ОпределитьНастройкиФормы = Истина; @@ -663,7 +665,7 @@ // отображения в таблице. // МинимальнаяПродолжительностьСеансовРегламентныхЗаданий - Число - минимальная продолжительность сеансов регламентных // заданий в секундах. -// ОтображатьФоновыеЗадания - булево - если истина, на диаграмме ганта будет выводиться строка с интервалами сеансов +// ОтображатьФоновыеЗадания - Булево - если истина, на диаграмме ганта будет выводиться строка с интервалами сеансов // фоновых заданий. // ВыводитьЗаголовок - ТипВыводаТекстаКомпоновкиДанных - предназначен для отключения/включения заголовка. // ВыводитьОтбор - ТипВыводаТекстаКомпоновкиДанных - предназначен для отключения/включения отображения отбора. @@ -894,20 +896,20 @@ // Функция получает информацию по регламентным задания из журнала регистрации. // // Параметры: -// ПараметрыЗаполнения - структура - набор параметров, необходимых для построения отчета: -// ДатаНачала - дата - начало периода, по которому будет собираться информация. -// ДатаОкончания - дата - окончание периода, по которому будет собираться информация. -// РазмерОдновременноСессий - число - минимальное количество одновременно работавших регламентных +// ПараметрыЗаполнения - Структура - набор параметров, необходимых для построения отчета: +// ДатаНачала - Дата - начало периода, по которому будет собираться информация. +// ДатаОкончания - Дата - окончание периода, по которому будет собираться информация. +// РазмерОдновременноСессий - Число - минимальное количество одновременно работавших регламентных // заданий для отображения в таблице. -// МинимальнаяПродолжительностьСеансовРегламентныхЗаданий - число - минимальная продолжительность +// МинимальнаяПродолжительностьСеансовРегламентныхЗаданий - Число - минимальная продолжительность // сеансов регламентных заданий в секундах. -// ОтображатьФоновыеЗадания - булево - если истина, на диаграмме ганта будет выводиться строка с +// ОтображатьФоновыеЗадания - Булево - если истина, на диаграмме ганта будет выводиться строка с // интервалами сеансов фоновых заданий. -// СкрытьРегламентныеЗадания - СписокЗначений - список регламентных заданий, которые необходимо исключить из отчета. +// СкрытьРегламентныеЗадания - СписокЗначений - список регламентных заданий, которые необходимо исключить из отчета. // // Возвращаемое значение -// таблица значений - таблица, содержащая информацию по работе регламентных заданий -// из журнала регистрации. +// ТаблицаЗначений - таблица, содержащая информацию по работе регламентных заданий +// из журнала регистрации. // Функция ДанныеДляОтчетаПоПродолжительностиРаботыРегламентныхЗаданий(ПараметрыЗаполнения) @@ -1354,8 +1356,8 @@ // // Параметры: // ДатаНачала - день, за который производится построение диаграммы. -// ДиаграммаГанта - диаграмма ганта, тип - РисунокТабличногоДокумента. -// ОдновременноСессий - таблица значений с данными по количеству одновременно работавших +// ДиаграммаГанта - ДиаграммаГанта, Тип - РисунокТабличногоДокумента. +// ОдновременноСессий - ТаблицаЗначений - с данными по количеству одновременно работавших // регламентных заданий в течении дня. // ЦветаФона - массив цветов для интервалов фона. // @@ -1386,7 +1388,7 @@ // Процедура формирования шкалы времени диаграммы ганта. // // Параметры: -// ДиаграммаГанта - диаграмма ганта, тип - РисунокТабличногоДокумента. +// ДиаграммаГанта - ДиаграммаГанта, Тип - РисунокТабличногоДокумента. // Процедура ШкалаВремениДиаграммыГанта(ДиаграммаГанта, ПериодАнализа) ЭлементыШкалыВремени = ДиаграммаГанта.ОбластьПостроения.ШкалаВремени.Элементы; @@ -1482,7 +1484,7 @@ // Функция, формирующая отчет по зарегистрированным в журнале регистрации ошибкам. // // Параметры: -// ДанныеЖурналаРегистрации - таблица значений - выгруженная таблица из журнала регистраций. +// ДанныеЖурналаРегистрации - ТаблицаЗначений - выгруженная таблица из журнала регистраций. // // Должны присутствовать следующие колонки: Дата, ИмяПользователя, ПредставлениеПриложения, // ПредставлениеСобытия, Комментарий, Уровень. @@ -1608,11 +1610,11 @@ // Функция получает информацию по ошибкам в журнале регистрации по переданному периоду. // // Параметры: -// ДатаНачала - дата - начала периода, по которому будет собираться информация. -// ДатаОкончания - дата - окончание периода, по которому будет собираться информация. +// ДатаНачала - Дата - начала периода, по которому будет собираться информация. +// ДатаОкончания - Дата - окончание периода, по которому будет собираться информация. // // Возвращаемое значение -// таблица значений - записи из журнала регистрации в соответствии с фильтром: +// ТаблицаЗначений - записи из журнала регистрации в соответствии с фильтром: // УровеньЖурналаРегистрации - УровеньЖурналаРегистрации.Ошибка // Начало и Окончание периода - из параметров. // diff --git a/SSL/src/Reports/АнализОпроса/Forms/РасшифровкаПростыхОтветов/Module.bsl b/SSL/src/Reports/АнализОпроса/Forms/РасшифровкаПростыхОтветов/Module.bsl index 33f331189..b7d0b2bb8 100644 --- a/SSL/src/Reports/АнализОпроса/Forms/РасшифровкаПростыхОтветов/Module.bsl +++ b/SSL/src/Reports/АнализОпроса/Forms/РасшифровкаПростыхОтветов/Module.bsl @@ -11,9 +11,8 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - ОбработатьВходящиеПараметры(Отказ); - - Если Отказ Тогда + Если ОбработатьВходящиеПараметры() Тогда + Отказ = Истина; Возврат; КонецЕсли; @@ -60,50 +59,47 @@ КонецПроцедуры -// Обрабатывает входящие параметры формы. -// -// Возвращаемое значение: -// Булево - отказ от запуска формы. -// &НаСервере -Процедура ОбработатьВходящиеПараметры(Отказ) +Функция ОбработатьВходящиеПараметры() Если Параметры.Свойство("ВопросШаблонаАнкеты") Тогда ВопросШаблонаАнкеты = Параметры.ВопросШаблонаАнкеты; Иначе - Отказ = Истина; + Возврат Истина; КонецЕсли; Если Параметры.Свойство("Опрос") Тогда Опрос = Параметры.Опрос; Иначе - Отказ = Истина; + Возврат Истина; КонецЕсли; Если Параметры.Свойство("ПолныйКод") Тогда ПолныйКод = Параметры.ПолныйКод; Иначе - Отказ = Истина; + Возврат Истина; КонецЕсли; Если Параметры.Свойство("НаименованиеОпроса") Тогда НаименованиеОпроса = Параметры.НаименованиеОпроса; Иначе - Отказ = Истина; + Возврат Истина; КонецЕсли; Если Параметры.Свойство("ДатаОпроса") Тогда ДатаОпроса = Параметры.ДатаОпроса; Иначе - Отказ = Истина; + Возврат Истина; КонецЕсли; Если Параметры.Свойство("ВариантОтчета") Тогда ВариантОтчета = Параметры.ВариантОтчета; Иначе - Отказ = Истина; + Возврат Истина; КонецЕсли; -КонецПроцедуры + Возврат Ложь; + +КонецФункции #КонецОбласти diff --git a/SSL/src/Reports/АнализОпроса/Forms/РасшифровкаТабличныхВопросов/Module.bsl b/SSL/src/Reports/АнализОпроса/Forms/РасшифровкаТабличныхВопросов/Module.bsl index 017bf2f57..ac57383e6 100644 --- a/SSL/src/Reports/АнализОпроса/Forms/РасшифровкаТабличныхВопросов/Module.bsl +++ b/SSL/src/Reports/АнализОпроса/Forms/РасшифровкаТабличныхВопросов/Module.bsl @@ -13,7 +13,7 @@ ФормулировкиЭлементарныхВопросов = Новый Соответствие; - Если ОбработатьВходящиеПараметры(ФормулировкиЭлементарныхВопросов) Тогда + Если ОбработатьВходящиеПараметры(ФормулировкиЭлементарныхВопросов) Тогда Отказ = Истина; Возврат; КонецЕсли; @@ -331,16 +331,17 @@ Если Параметры.Свойство("НаименованиеОпроса") Тогда НаименованиеОпроса = Параметры.НаименованиеОпроса; Иначе - Отказ = Истина; + Возврат Истина; КонецЕсли; Если Параметры.Свойство("ДатаОпроса") Тогда ДатаОпроса = Параметры.ДатаОпроса; Иначе - Отказ = Истина; + Возврат Истина; КонецЕсли; - РеквизитыВопросШаблона = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВопросШаблонаАнкеты,"ТипТабличногоВопроса,СоставТабличногоВопроса,ПредопределенныеОтветы,Формулировка"); + РеквизитыВопросШаблона = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВопросШаблонаАнкеты, + "ТипТабличногоВопроса,СоставТабличногоВопроса,ПредопределенныеОтветы,Формулировка"); Формулировка = РеквизитыВопросШаблона.Формулировка; ТипТабличногоВопроса = РеквизитыВопросШаблона.ТипТабличногоВопроса; СоставТабличногоВопроса.Загрузить(РеквизитыВопросШаблона.СоставТабличногоВопроса.Выгрузить()); @@ -348,7 +349,7 @@ ПолучитьФормулировкиЭлементарныхВопросов(ФормулировкиЭлементарныхВопросов); Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Ответы на вопрос № %1 опроса %2 от %3'"), ПолныйКод, НаименованиеОпроса, Формат(ДатаОпроса,"ДЛФ=D")); + НСтр("ru = 'Ответы на вопрос № %1 опроса %2 от %3'"), ПолныйКод, НаименованиеОпроса, Формат(ДатаОпроса, "ДЛФ=D")); Возврат Ложь; diff --git a/SSL/src/Reports/АнализОпроса/ManagerModule.bsl b/SSL/src/Reports/АнализОпроса/ManagerModule.bsl index cc9cd124a..f5216a951 100644 --- a/SSL/src/Reports/АнализОпроса/ManagerModule.bsl +++ b/SSL/src/Reports/АнализОпроса/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); diff --git a/SSL/src/Reports/АнализОпроса/ObjectModule.bsl b/SSL/src/Reports/АнализОпроса/ObjectModule.bsl index e47010c4f..3bdf278c1 100644 --- a/SSL/src/Reports/АнализОпроса/ObjectModule.bsl +++ b/SSL/src/Reports/АнализОпроса/ObjectModule.bsl @@ -879,7 +879,8 @@ // Параметры: // СтрокаДерева - строка дерева значений - строка дерева, данные которой будут преобразованы. // -// Возвращаемое значение - Строка - строка, предназначенная для вывод в отчет. +// Возвращаемое значение: +// Строка - строка, предназначенная для вывод в отчет. // Функция АгрегатныеЗначенияВСтроку(СтрокаДерева,АгрегироватьСуммуВОтчетах = Неопределено) @@ -1076,11 +1077,10 @@ | ТаблицаСправочника.Ссылка |ПОМЕСТИТЬ ДанныеСправочника |ИЗ - | " + МетаданныеТипаРеспондентов.ПолноеИмя() + " КАК ТаблицаСправочника + | &ТаблицаСправочника КАК ТаблицаСправочника |ГДЕ | (НЕ ТаблицаСправочника.ПометкаУдаления) - | " + ?(МетаданныеТипаРеспондентов.Иерархический И МетаданныеТипаРеспондентов.ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов, - " И (НЕ ТаблицаСправочника.ЭтоГруппа)","") + " + | И &ЭтоГруппа |; | |//////////////////////////////////////////////////////////////////////////////// @@ -1121,6 +1121,11 @@ | ОБЩИЕ, | Отвечал"; + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТаблицаСправочника", МетаданныеТипаРеспондентов.ПолноеИмя()); + Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ЭтоГруппа", + ?(МетаданныеТипаРеспондентов.Иерархический И МетаданныеТипаРеспондентов.ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов, + "НЕ ТаблицаСправочника.ЭтоГруппа", "ИСТИНА")); + Запрос.УстановитьПараметр("Опрос",Опрос); Запрос.УстановитьПараметр("Заполнил",НСтр("ru = 'Заполнил'")); Запрос.УстановитьПараметр("НачалЗаполнять",НСтр("ru = 'Начал заполнять'")); diff --git a/SSL/src/Reports/АнализПравДоступа/ManagerModule.bsl b/SSL/src/Reports/АнализПравДоступа/ManagerModule.bsl index 523071d22..3cde45ab6 100644 --- a/SSL/src/Reports/АнализПравДоступа/ManagerModule.bsl +++ b/SSL/src/Reports/АнализПравДоступа/ManagerModule.bsl @@ -42,7 +42,9 @@ КонецПроцедуры -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт @@ -94,7 +96,7 @@ // Возвращаемое значение: // Структура: // * ИмяПоляРасшифровки - Строка -// * СписокПолей - Соответствие: +// * СписокПолей - Соответствие из КлючИЗначение: // ** Ключ - Строка // ** Значение - Произвольный // diff --git a/SSL/src/Reports/АнализПравДоступа/ObjectModule.bsl b/SSL/src/Reports/АнализПравДоступа/ObjectModule.bsl index 79d32e19e..01e595fc7 100644 --- a/SSL/src/Reports/АнализПравДоступа/ObjectModule.bsl +++ b/SSL/src/Reports/АнализПравДоступа/ObjectModule.bsl @@ -184,6 +184,11 @@ #Область ОбработчикиСобытий +// Параметры: +// ДокументРезультат - ТабличныйДокумент +// ДанныеРасшифровки - ДанныеРасшифровкиКомпоновкиДанных +// СтандартнаяОбработка - Булево +// Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; diff --git a/SSL/src/Reports/АналитическийОтчетПоАнкетированию/ManagerModule.bsl b/SSL/src/Reports/АналитическийОтчетПоАнкетированию/ManagerModule.bsl index 1550685a5..de2a3ac61 100644 --- a/SSL/src/Reports/АналитическийОтчетПоАнкетированию/ManagerModule.bsl +++ b/SSL/src/Reports/АналитическийОтчетПоАнкетированию/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); diff --git a/SSL/src/Reports/БизнесПроцессы/ManagerModule.bsl b/SSL/src/Reports/БизнесПроцессы/ManagerModule.bsl index 867370a75..efd020d2e 100644 --- a/SSL/src/Reports/БизнесПроцессы/ManagerModule.bsl +++ b/SSL/src/Reports/БизнесПроцессы/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); diff --git a/SSL/src/Reports/ДатыЗапретаЗагрузки/ManagerModule.bsl b/SSL/src/Reports/ДатыЗапретаЗагрузки/ManagerModule.bsl index 2c6792c11..0d3733a43 100644 --- a/SSL/src/Reports/ДатыЗапретаЗагрузки/ManagerModule.bsl +++ b/SSL/src/Reports/ДатыЗапретаЗагрузки/ManagerModule.bsl @@ -14,12 +14,10 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов -// // Параметры: -// Настройки - см. ВариантыОтчетов.КоллекцияПредопределенныхВариантовОтчетов -// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета -// +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. +// Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); diff --git a/SSL/src/Reports/ДатыЗапретаИзменения/ManagerModule.bsl b/SSL/src/Reports/ДатыЗапретаИзменения/ManagerModule.bsl index f2358cf93..040e87dea 100644 --- a/SSL/src/Reports/ДатыЗапретаИзменения/ManagerModule.bsl +++ b/SSL/src/Reports/ДатыЗапретаИзменения/ManagerModule.bsl @@ -14,12 +14,10 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов -// // Параметры: -// Настройки - см. ВариантыОтчетов.КоллекцияПредопределенныхВариантовОтчетов -// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета -// +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. +// Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); diff --git a/SSL/src/Reports/ДвиженияДокумента/ManagerModule.bsl b/SSL/src/Reports/ДвиженияДокумента/ManagerModule.bsl index 07df9fe59..897b83274 100644 --- a/SSL/src/Reports/ДвиженияДокумента/ManagerModule.bsl +++ b/SSL/src/Reports/ДвиженияДокумента/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт @@ -101,7 +103,7 @@ // Предоставляет интерфейс для описания настроек вариантов отчетов. // // Параметры: -// Настройки - см. ВариантыОтчетов.КоллекцияПредопределенныхВариантовОтчетов +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. // Процедура ПриНастройкеВариантовОтчетов(Настройки) Экспорт diff --git a/SSL/src/Reports/ДвиженияДокумента/ObjectModule.bsl b/SSL/src/Reports/ДвиженияДокумента/ObjectModule.bsl index 87bb6e810..afd9a84b8 100644 --- a/SSL/src/Reports/ДвиженияДокумента/ObjectModule.bsl +++ b/SSL/src/Reports/ДвиженияДокумента/ObjectModule.bsl @@ -643,7 +643,7 @@ Если ЭлементДанных.ВидРегистра = "РегистрНакопления" Или ЭлементДанных.ВидРегистра = "РегистрСведений" Тогда - ПодготовитьГоризонтальныйВариантРегистровНакопленияИСведений_Горизонталь(НастройкиКД, НаборДанныхКД, ЭлементДанных); + ПодготовитьГоризонтальныйВариантРегистровНакопленияИСведений(НастройкиКД, НаборДанныхКД, ЭлементДанных); ИначеЕсли ЭлементДанных.ВидРегистра = "РегистрБухгалтерии" Тогда @@ -657,7 +657,7 @@ КонецПроцедуры -Процедура ПодготовитьГоризонтальныйВариантРегистровНакопленияИСведений_Горизонталь(НастройкиКД, НаборДанныхКД, ЭлементДанных) +Процедура ПодготовитьГоризонтальныйВариантРегистровНакопленияИСведений(НастройкиКД, НаборДанныхКД, ЭлементДанных) ВидРегистра = ЭлементДанных.ВидРегистра; ПредставлениеВидаРегистра = ЭлементДанных.ПредставлениеВидаРегистра; @@ -1724,7 +1724,6 @@ ОписаниеЧисла = Новый ОписаниеТипов("Число"); ОписаниеСтроки = Новый ОписаниеТипов("Строка"); - ОписаниеПризнака = Новый ОписаниеТипов("Булево"); ПалитраСвойствРегистров.Колонки.Добавить("Приоритет", ОписаниеЧисла); ПалитраСвойствРегистров.Колонки.Добавить("ПолноеИмяРегистра", ОписаниеСтроки); @@ -1927,7 +1926,7 @@ // - Неопределено // // Возвращаемое значение: -// Соответствие: +// Соответствие из КлючИЗначение: // * Ключ - ОбъектМетаданныхРегистрСведений // - ОбъектМетаданныхРегистрНакопления // - ОбъектМетаданныхРегистрРасчета @@ -1940,22 +1939,25 @@ КонецЕсли; Результат = Новый Соответствие; - Для Каждого ОбъектМетаданныхРегистр Из Движения Цикл - Если Не ПравоДоступа("Просмотр", ОбъектМетаданныхРегистр) Тогда + Для Каждого МетаданныеРегистра Из Движения Цикл + Если Не ПравоДоступа("Просмотр", МетаданныеРегистра) + Или Не ОбщегоНазначения.ОбъектМетаданныхДоступенПоФункциональнымОпциям(МетаданныеРегистра) Тогда Продолжить; КонецЕсли; - Результат.Вставить(ОбъектМетаданныхРегистр, "Регистратор"); + Результат.Вставить(МетаданныеРегистра, "Регистратор"); КонецЦикла; ДополнительныеРегистры = Новый Соответствие; ОтчетОДвиженияхДокументаПереопределяемый.ПриОпределенииРегистровСДвижениями(Регистратор, ДополнительныеРегистры); Для Каждого ДополнительныйРегистр Из ДополнительныеРегистры Цикл - Если Не ПравоДоступа("Просмотр", ДополнительныйРегистр.Ключ) Тогда + МетаданныеРегистра = ДополнительныйРегистр.Ключ; + Если Не ПравоДоступа("Просмотр", МетаданныеРегистра) + Или Не ОбщегоНазначения.ОбъектМетаданныхДоступенПоФункциональнымОпциям(МетаданныеРегистра) Тогда Продолжить; КонецЕсли; - Результат.Вставить(ДополнительныйРегистр.Ключ, ДополнительныйРегистр.Значение); + Результат.Вставить(МетаданныеРегистра, ДополнительныйРегистр.Значение); КонецЦикла; Возврат Результат; @@ -1973,6 +1975,11 @@ Для Каждого Движение Из ДвиженияДокумента Цикл МетаданныеРегистра = Движение.Ключ; + + Если Не ОбщегоНазначения.ОбъектМетаданныхДоступенПоФункциональнымОпциям(МетаданныеРегистра) Тогда + Продолжить; + КонецЕсли; + ПолноеИмяРегистра = МетаданныеРегистра.ПолноеИмя(); ТекстЗапросаШаблон = @@ -2308,6 +2315,10 @@ Для Каждого ЭлементСтруктуры Из СтруктураОтчета Цикл СвойстваРегистра = СвойстваРегистров.Найти(ЭлементСтруктуры.Имя, "ИмяГруппировки"); + Если СвойстваРегистра = Неопределено Тогда + ЭлементСтруктуры.Использование = Ложь; + Продолжить; + КонецЕсли; ЭлементСтруктуры.Использование = СписокРегистров.НайтиПоЗначению(ЭлементСтруктуры.Имя) <> Неопределено diff --git a/SSL/src/Reports/ЗависшиеЗадачи/ManagerModule.bsl b/SSL/src/Reports/ЗависшиеЗадачи/ManagerModule.bsl index a0f42e00c..57b9ecb87 100644 --- a/SSL/src/Reports/ЗависшиеЗадачи/ManagerModule.bsl +++ b/SSL/src/Reports/ЗависшиеЗадачи/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); diff --git a/SSL/src/Reports/Задания/ManagerModule.bsl b/SSL/src/Reports/Задания/ManagerModule.bsl index efb4894ee..d4842b517 100644 --- a/SSL/src/Reports/Задания/ManagerModule.bsl +++ b/SSL/src/Reports/Задания/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); diff --git a/SSL/src/Reports/Задачи/ManagerModule.bsl b/SSL/src/Reports/Задачи/ManagerModule.bsl index f634dd9e9..9c56b1e3a 100644 --- a/SSL/src/Reports/Задачи/ManagerModule.bsl +++ b/SSL/src/Reports/Задачи/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); diff --git a/SSL/src/Reports/ЗадачиИстекающиеНаДату/ManagerModule.bsl b/SSL/src/Reports/ЗадачиИстекающиеНаДату/ManagerModule.bsl index 120d48c4c..4e6ab61d8 100644 --- a/SSL/src/Reports/ЗадачиИстекающиеНаДату/ManagerModule.bsl +++ b/SSL/src/Reports/ЗадачиИстекающиеНаДату/ManagerModule.bsl @@ -15,7 +15,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); diff --git a/SSL/src/Reports/ИспользуемыеВнешниеРесурсы/ManagerModule.bsl b/SSL/src/Reports/ИспользуемыеВнешниеРесурсы/ManagerModule.bsl index f5da13b24..50d86cbef 100644 --- a/SSL/src/Reports/ИспользуемыеВнешниеРесурсы/ManagerModule.bsl +++ b/SSL/src/Reports/ИспользуемыеВнешниеРесурсы/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт @@ -226,8 +228,8 @@ // Формирует представление операций администрирования разрешений на использование внешних ресурсов. // // Параметры: -// ТабличныйДокумент - ТабличныйДокумент, в который будет выведено представление операций, -// Макет - ТабличныйДокумент, полученный из макета отчета ПредставленияРазрешений, +// ТабличныйДокумент - ТабличныйДокумент - в который будет выведено представление операций, +// Макет - ТабличныйДокумент - полученный из макета отчета ПредставленияРазрешений, // ОперацииАдминистрирования - ТаблицаЗначений - см. // Обработки.НастройкаРазрешенийНаИспользованиеВнешнихРесурсов.ОперацииАдминистрированияВЗапросах(). // @@ -289,7 +291,7 @@ ОбластьОтступа = Макет.ПолучитьОбласть("Отступ"); - Типы = НаборыРазрешений.Скопировать(); + Типы = НаборыРазрешений.Скопировать(); // ТаблицаЗначений Типы.Свернуть("Тип"); Типы.Колонки.Добавить("Порядок", Новый ОписаниеТипов("Число")); diff --git a/SSL/src/Reports/МестаИспользованияСсылок/ManagerModule.bsl b/SSL/src/Reports/МестаИспользованияСсылок/ManagerModule.bsl index ed932ae4e..7507d1f70 100644 --- a/SSL/src/Reports/МестаИспользованияСсылок/ManagerModule.bsl +++ b/SSL/src/Reports/МестаИспользованияСсылок/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); diff --git a/SSL/src/Reports/ОбъемНенужныхФайлов/ManagerModule.bsl b/SSL/src/Reports/ОбъемНенужныхФайлов/ManagerModule.bsl index fe42ead3b..e694bcb16 100644 --- a/SSL/src/Reports/ОбъемНенужныхФайлов/ManagerModule.bsl +++ b/SSL/src/Reports/ОбъемНенужныхФайлов/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт diff --git a/SSL/src/Reports/ОбъемНенужныхФайлов/ObjectModule.bsl b/SSL/src/Reports/ОбъемНенужныхФайлов/ObjectModule.bsl index 1e6fcf4fa..e944510b8 100644 --- a/SSL/src/Reports/ОбъемНенужныхФайлов/ObjectModule.bsl +++ b/SSL/src/Reports/ОбъемНенужныхФайлов/ObjectModule.bsl @@ -69,14 +69,14 @@ #Область СлужебныеПроцедурыИФункции // Параметры: -// ТаблицаНенужныхФайлов - ТаблицаЗначений: +// ТаблицаНенужныхФайлов - ТаблицаЗначений: // * ВладелецФайла - ЛюбаяСсылка // * ОбъемНенужныхФайлов - Число -// НастройкаОчистки - СтрокаТаблицыЗначений: -// * Действие - ПеречислениеСсылка.ВариантыОчисткиФайлов -// МассивИсключений - Неопределено -// - Массив -// ЭтоНастройкаДляЭлементаСправочника - Булево +// НастройкаОчистки - СтрокаТаблицыЗначений: +// * Действие - ПеречислениеСсылка.ВариантыОчисткиФайлов +// МассивИсключений - Неопределено +// - Массив +// ЭтоНастройкаДляЭлементаСправочника - Булево // Процедура ПолучитьОбъемНенужныхФайлов(ТаблицаНенужныхФайлов, НастройкаОчистки, МассивИсключений = Неопределено, ЭтоНастройкаДляЭлементаСправочника = Ложь) diff --git a/SSL/src/Reports/ОценкаПроизводительности/ManagerModule.bsl b/SSL/src/Reports/ОценкаПроизводительности/ManagerModule.bsl index f4f4082ee..02077495c 100644 --- a/SSL/src/Reports/ОценкаПроизводительности/ManagerModule.bsl +++ b/SSL/src/Reports/ОценкаПроизводительности/ManagerModule.bsl @@ -14,8 +14,10 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. -// +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. +// Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт ВариантыОтчетовСуществует = ОценкаПроизводительностиСлужебный.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов"); diff --git a/SSL/src/Reports/ПраваДоступа/Forms/ФормаОтчета/Module.bsl b/SSL/src/Reports/ПраваДоступа/Forms/ФормаОтчета/Module.bsl index 04a0649b0..11c8a2a99 100644 --- a/SSL/src/Reports/ПраваДоступа/Forms/ФормаОтчета/Module.bsl +++ b/SSL/src/Reports/ПраваДоступа/Forms/ФормаОтчета/Module.bsl @@ -1822,7 +1822,7 @@ // // Возвращаемое значение: // ТаблицаЗначений: -// ВидДоступа - Ссылка - пустая ссылка основного типа значений вида доступа. +// ВидДоступа - ЛюбаяСсылка - пустая ссылка основного типа значений вида доступа. // Представление - Строка - представление вида доступа. // Таблица - СправочникСсылка.ИдентификаторыОбъектовМетаданных, // например, СправочникСсылка.Контрагенты. diff --git a/SSL/src/Reports/ПраваДоступа/ManagerModule.bsl b/SSL/src/Reports/ПраваДоступа/ManagerModule.bsl index b366f0be8..08459ae07 100644 --- a/SSL/src/Reports/ПраваДоступа/ManagerModule.bsl +++ b/SSL/src/Reports/ПраваДоступа/ManagerModule.bsl @@ -14,11 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. -// // Параметры: -// Настройки - см. ВариантыОтчетов.КоллекцияПредопределенныхВариантовОтчетов -// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеВарианта +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт НастройкиОтчета.Включен = Ложь; diff --git a/SSL/src/Reports/ПроверкаЦелостностиТома/ManagerModule.bsl b/SSL/src/Reports/ПроверкаЦелостностиТома/ManagerModule.bsl index 36ea148be..e8cdc1090 100644 --- a/SSL/src/Reports/ПроверкаЦелостностиТома/ManagerModule.bsl +++ b/SSL/src/Reports/ПроверкаЦелостностиТома/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт diff --git a/SSL/src/Reports/ПрогрессОбновленияОбластейДанных/ПрогрессОбновленияОбластейДанных.mdo b/SSL/src/Reports/ПрогрессОбновленияОбластейДанных/ПрогрессОбновленияОбластейДанных.mdo index ce3695e72..f70b4c817 100644 --- a/SSL/src/Reports/ПрогрессОбновленияОбластейДанных/ПрогрессОбновленияОбластейДанных.mdo +++ b/SSL/src/Reports/ПрогрессОбновленияОбластейДанных/ПрогрессОбновленияОбластейДанных.mdo @@ -11,6 +11,7 @@ true Report.ПрогрессОбновленияОбластейДанных.Template.ОсновнаяСхемаКомпоновкиДанных + SettingsStorage.ХранилищеВариантовОтчетов ОсновнаяСхемаКомпоновкиДанных diff --git a/SSL/src/Reports/ПрогрессОтложенногоОбновления/ManagerModule.bsl b/SSL/src/Reports/ПрогрессОтложенногоОбновления/ManagerModule.bsl index c4b373173..10540fa39 100644 --- a/SSL/src/Reports/ПрогрессОтложенногоОбновления/ManagerModule.bsl +++ b/SSL/src/Reports/ПрогрессОтложенногоОбновления/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); diff --git a/SSL/src/Reports/ПрогрессОтложенногоОбновления/ObjectModule.bsl b/SSL/src/Reports/ПрогрессОтложенногоОбновления/ObjectModule.bsl index 077531657..ae1c94e29 100644 --- a/SSL/src/Reports/ПрогрессОтложенногоОбновления/ObjectModule.bsl +++ b/SSL/src/Reports/ПрогрессОтложенногоОбновления/ObjectModule.bsl @@ -85,20 +85,25 @@ ПолноеИмяЧастями.Удалить(2); // удалить лишний "Перерасчет" ПолноеИмя = СтрСоединить(ПолноеИмяЧастями, "."); КонецЕсли; + // Контекстный перевод ТекстЗапроса = ТекстЗапроса + ?(ТекстЗапроса = "", "", "ОБЪЕДИНИТЬ ВСЕ") + " |ВЫБРАТЬ - | """ + ПредставлениеТипаМетаданных(ПолноеИмяЧастями[0]) + """ КАК ТипМетаданных, - | """ + ПолноеИмяЧастями[1] + """ КАК ТипОбъекта, - | """ + ПолноеИмя + """ КАК ПолноеИмя, + | ""&ПредставлениеТипаМетаданных"" КАК ТипМетаданных, + | ""&ТипОбъекта"" КАК ТипОбъекта, + | ""&ПолноеИмя"" КАК ПолноеИмя, | Узел.Очередь КАК Очередь, | КОЛИЧЕСТВО(*) КАК КоличествоОбъектов |ИЗ - | " + ПолноеИмя + ".Изменения + | &ТаблицаИзменений |ГДЕ | Узел В (&СписокУзлов) |СГРУППИРОВАТЬ ПО | Узел |"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПредставлениеТипаМетаданных", ПредставлениеТипаМетаданных(ПолноеИмяЧастями[0])); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТипОбъекта", ПолноеИмяЧастями[1]); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ПолноеИмя", ПолноеИмя); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТаблицаИзменений", ПолноеИмя + ".Изменения"); Ограничение = Ограничение + 1; СоответствиеПредставлений.Вставить(ПолноеИмяЧастями[1], Представление); diff --git a/SSL/src/Reports/ПросроченныеЗадачи/ManagerModule.bsl b/SSL/src/Reports/ПросроченныеЗадачи/ManagerModule.bsl index c2dc6c80c..2bb983df5 100644 --- a/SSL/src/Reports/ПросроченныеЗадачи/ManagerModule.bsl +++ b/SSL/src/Reports/ПросроченныеЗадачи/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); diff --git a/SSL/src/Reports/РезультатыПроверкиУчета/Forms/АвтоисправлениеПроблемы/Module.bsl b/SSL/src/Reports/РезультатыПроверкиУчета/Forms/АвтоисправлениеПроблемы/Module.bsl index 4aa02505c..e8b6fa302 100644 --- a/SSL/src/Reports/РезультатыПроверкиУчета/Forms/АвтоисправлениеПроблемы/Module.bsl +++ b/SSL/src/Reports/РезультатыПроверкиУчета/Forms/АвтоисправлениеПроблемы/Module.bsl @@ -204,8 +204,8 @@ КонецПроцедуры // Возвращаемое значение: -// Структура: -// * Ссылка - СправочникСсылка.ПравилаПроверкиУчета +// Структура: +// * Ссылка - СправочникСсылка.ПравилаПроверкиУчета // &НаСервереБезКонтекста Функция ПравилоПроверкиПоИдентификатору( ИдентификаторПроверки) @@ -224,12 +224,12 @@ КонецФункции // Параметры: -// ОбъектМетаданных - ОбъектМетаданных -// ПредопределенныеВДанных - ТаблицаЗначений: -// * Ссылка - ЛюбаяСсылка -// Отсутствующие - Массив из ЛюбаяСсылка +// ОбъектМетаданных - ОбъектМетаданных +// ПредопределенныеВДанных - ТаблицаЗначений: +// * Ссылка - ЛюбаяСсылка +// Отсутствующие - Массив из ЛюбаяСсылка // Возвращаемое значение: -// Массив +// Массив // &НаСервереБезКонтекста Функция СвойстваОтсутствующихПредопределенных(ОбъектМетаданных, ПредопределенныеВДанных, Отсутствующие) diff --git a/SSL/src/Reports/РезультатыПроверкиУчета/ManagerModule.bsl b/SSL/src/Reports/РезультатыПроверкиУчета/ManagerModule.bsl index 739398a09..86a2877a4 100644 --- a/SSL/src/Reports/РезультатыПроверкиУчета/ManagerModule.bsl +++ b/SSL/src/Reports/РезультатыПроверкиУчета/ManagerModule.bsl @@ -14,7 +14,10 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. +// Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); @@ -39,9 +42,9 @@ // См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов. // // Параметры: -// КомандыОтчетов - см. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.КомандыОтчетов -// НастройкиФормы - см. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.Параметры -// СтандартнаяОбработка - см. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.СтандартнаяОбработка +// КомандыОтчетов - см. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.КомандыОтчетов +// НастройкиФормы - см. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.Параметры +// СтандартнаяОбработка - см. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.СтандартнаяОбработка // Процедура ПередДобавлениемКомандОтчетов(КомандыОтчетов, НастройкиФормы, СтандартнаяОбработка) Экспорт diff --git a/SSL/src/Reports/РезультатыПроверкиУчета/ObjectModule.bsl b/SSL/src/Reports/РезультатыПроверкиУчета/ObjectModule.bsl index bfe723b0b..6e58f5645 100644 --- a/SSL/src/Reports/РезультатыПроверкиУчета/ObjectModule.bsl +++ b/SSL/src/Reports/РезультатыПроверкиУчета/ObjectModule.bsl @@ -518,12 +518,12 @@ КонецФункции // Параметры: -// МассивПроверок - Массив Из ЛюбаяСсылка -// ПервыйЭлемент - ЛюбаяСсылка +// МассивПроверок - Массив из ЛюбаяСсылка +// ПервыйЭлемент - ЛюбаяСсылка // Возвращаемое значение: -// ТаблицаЗначений: -// *Ссылка - ЛюбаяСсылка -// *ПредставлениеСсылки - Строка +// ТаблицаЗначений: +// *Ссылка - ЛюбаяСсылка +// *ПредставлениеСсылки - Строка // Функция СписокПроверок(Знач МассивПроверок, ПервыйЭлемент) ТекстЗапроса = @@ -820,10 +820,10 @@ КонецФункции // Параметры: -// ПервыйУзелКД - НастройкиКомпоновкиДанных -// ВторойУзелКД - НастройкиКомпоновкиДанных +// ПервыйУзелКД - НастройкиКомпоновкиДанных +// ВторойУзелКД - НастройкиКомпоновкиДанных // Возвращаемое значение: -// Булево +// Булево // Функция ВыбранныеПоляИдентичны(ПервыйУзелКД, ВторойУзелКД) @@ -930,10 +930,10 @@ КонецФункции // Параметры: -// ПерваяГруппировка - ГруппировкаТаблицыКомпоновкиДанных -// ВтораяГруппировка - ГруппировкаТаблицыКомпоновкиДанных +// ПерваяГруппировка - ГруппировкаТаблицыКомпоновкиДанных +// ВтораяГруппировка - ГруппировкаТаблицыКомпоновкиДанных // Возвращаемое значение: -// Булево +// Булево // Функция ПоляГруппировокКомпоновкиИдентичны(ПерваяГруппировка, ВтораяГруппировка) @@ -971,10 +971,10 @@ КонецФункции // Параметры: -// ПервыеНастройкиКД - НастройкиКомпоновкиДанных -// ВторыеНастройкиКД - НастройкиКомпоновкиДанных +// ПервыеНастройкиКД - НастройкиКомпоновкиДанных +// ВторыеНастройкиКД - НастройкиКомпоновкиДанных // Возвращаемое значение: -// Булево +// Булево // Функция ПользовательскиеПоляИдентичны(ПервыеНастройкиКД, ВторыеНастройкиКД) @@ -1033,11 +1033,11 @@ КонецФункции // Возвращаемое значение: -// ДеревоЗначений: -// * УзелКД - КоллекцияЭлементовСтруктурыНастроекКомпоновкиДанных -// * Тип - Строка -// * Подтип - Строка -// * ЕстьСтруктура - Булево +// ДеревоЗначений: +// * УзелКД - КоллекцияЭлементовСтруктурыНастроекКомпоновкиДанных +// * Тип - Строка +// * Подтип - Строка +// * ЕстьСтруктура - Булево // Функция ДеревоСтруктуры() diff --git a/SSL/src/Reports/СведенияОПользователях/ManagerModule.bsl b/SSL/src/Reports/СведенияОПользователях/ManagerModule.bsl index ff55378f7..f56383cb7 100644 --- a/SSL/src/Reports/СведенияОПользователях/ManagerModule.bsl +++ b/SSL/src/Reports/СведенияОПользователях/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); diff --git a/SSL/src/Reports/СогласияНаОбработкуПерсональныхДанныхДействующие/ManagerModule.bsl b/SSL/src/Reports/СогласияНаОбработкуПерсональныхДанныхДействующие/ManagerModule.bsl index 8abed575f..dcde1ec5d 100644 --- a/SSL/src/Reports/СогласияНаОбработкуПерсональныхДанныхДействующие/ManagerModule.bsl +++ b/SSL/src/Reports/СогласияНаОбработкуПерсональныхДанныхДействующие/ManagerModule.bsl @@ -14,11 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов -// // Параметры: -// Настройки - см. ВариантыОтчетов.КоллекцияПредопределенныхВариантовОтчетов -// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); diff --git a/SSL/src/Reports/СогласияНаОбработкуПерсональныхДанныхИстекающие/ManagerModule.bsl b/SSL/src/Reports/СогласияНаОбработкуПерсональныхДанныхИстекающие/ManagerModule.bsl index 8403b571f..47b4f8b88 100644 --- a/SSL/src/Reports/СогласияНаОбработкуПерсональныхДанныхИстекающие/ManagerModule.bsl +++ b/SSL/src/Reports/СогласияНаОбработкуПерсональныхДанныхИстекающие/ManagerModule.bsl @@ -14,11 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов -// // Параметры: -// Настройки - см. ВариантыОтчетов.КоллекцияПредопределенныхВариантовОтчетов -// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); diff --git a/SSL/src/Reports/УниверсальныйОтчет/ManagerModule.bsl b/SSL/src/Reports/УниверсальныйОтчет/ManagerModule.bsl index 7ae8515cf..e4c42898f 100644 --- a/SSL/src/Reports/УниверсальныйОтчет/ManagerModule.bsl +++ b/SSL/src/Reports/УниверсальныйОтчет/ManagerModule.bsl @@ -14,7 +14,9 @@ // СтандартныеПодсистемы.ВариантыОтчетов -// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. +// Параметры: +// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. +// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета. // Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт @@ -451,7 +453,7 @@ Если ЗначениеЗаполнено(ОписаниеСсылки.Синоним) Тогда ПредставлениеОбъекта = ОписаниеСсылки.Синоним; ИначеЕсли ЗначениеЗаполнено(ОбъектМетаданных.ПредставлениеОбъекта) Тогда - ПредставлениеОбъекта = ОбъектМетаданных.ПредставлениеОбъекта; + ПредставлениеОбъекта = ОбщегоНазначения.ПредставлениеОбъекта(ОбъектМетаданных); КонецЕсли; ДобавитьПолеНабораДанных(СхемаКомпоновкиДанных.НаборыДанных[0], ОписаниеСсылки.Имя, ПредставлениеОбъекта); @@ -1294,8 +1296,8 @@ // например, "Валюты" или "КурсыВалют" и т.д. // // Возвращаемое значение: -// СправочникСсылка.ИдентификаторыОбъектовМетаданных, Неопределено -// ссылка на найденный элемент справочника, иначе - Неопределено. +// - СправочникСсылка.ИдентификаторыОбъектовМетаданных - ссылка на найденный элемент справочника +// - Неопределено // Функция ИсточникДанных(ТипМенеджера, ИмяОбъекта) ТипОбъекта = ТипОбъектаПоТипуМенеджера(ТипМенеджера); @@ -1360,6 +1362,13 @@ //////////////////////////////////////////////////////////////////////////////// // Стандартный заголовок. +// Параметры: +// Контекст - ФормаКлиентскогоПриложения +// - Структура +// Настройки - НастройкиКомпоновкиДанных +// ФиксированныеПараметры - Структура +// ДоступныеЗначения - СписокЗначений +// Процедура УстановитьСтандартныйЗаголовокОтчета(Контекст, Настройки, ФиксированныеПараметры, ДоступныеЗначения) Экспорт ЗначенияПараметров = ЗначенияПараметровСтандартногоЗаголовка(Контекст, ФиксированныеПараметры, ДоступныеЗначения); @@ -1367,7 +1376,7 @@ ПредставлениеПериода = ""; Если ЗначенияПараметров.Период <> Неопределено Тогда - Период = ЗначенияПараметров.Период; + Период = ЗначенияПараметров.Период; // СтандартныйПериод ПредставлениеПериода = СтроковыеФункции.ПредставлениеПериодаВТексте(Период.ДатаНачала, Период.ДатаОкончания); КонецЕсли; @@ -1439,7 +1448,7 @@ АдресСхемы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Контекст, "АдресСхемы"); КонецЕсли; - Схема = ПолучитьИзВременногоХранилища(АдресСхемы); + Схема = ПолучитьИзВременногоХранилища(АдресСхемы); // СхемаКомпоновкиДанных Для Каждого Элемент Из ЗначенияПараметров Цикл @@ -1502,6 +1511,12 @@ КонецПроцедуры +// Параметры: +// Настройки - НастройкиКомпоновкиДанных +// +// Возвращаемое значение: +// Булево +// Функция ВыводитьКоличествоЗаписей(Настройки) ВыводитьКоличествоЗаписей = Настройки.ПараметрыДанных.Элементы.Найти("ВыводитьКоличествоПодчиненныхЗаписей"); @@ -1667,7 +1682,7 @@ ВариантыИспользования.Добавить("ИспользоватьВОтборе"); ВариантыИспользования.Добавить("ИспользоватьВПараметрах"); - Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияРежимаСовместимости(), "8.3.16.0") < 0 Тогда + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СтандартныеПодсистемыСервер.ВерсияРежимаСовместимости(), "8.3.16.0") < 0 Тогда Возврат ВариантыИспользования; КонецЕсли; @@ -1679,45 +1694,6 @@ КонецФункции -// Возвращает версию режима совместимости в формате нумерации редакций и версий, например, 8.3.15.0. -// -// Возвращаемое значение: -// Строка - версия режима совместимости в формате нумерации редакций и версий. -// -Функция ВерсияРежимаСовместимости() - - Если Метаданные.РежимСовместимости = Метаданные.СвойстваОбъектов.РежимСовместимости.НеИспользовать Тогда - - Информация = Новый СистемнаяИнформация; - Возврат Информация.ВерсияПриложения; - - КонецЕсли; - - ОписаниеРежимаСовместимости = СтрРазделить(Метаданные.РежимСовместимости, "_"); - Символов = СтрДлина(ОписаниеРежимаСовместимости[0]); - - НомерРедакции = ""; - - Для НомерСимвола = 1 По Символов Цикл - - ТекущийСимвол = Сред(ОписаниеРежимаСовместимости[0], НомерСимвола, 1); - - Если СтрНайти("0123456789", ТекущийСимвол) > 0 Тогда - НомерРедакции = НомерРедакции + ТекущийСимвол; - КонецЕсли; - - КонецЦикла; - - ОписаниеРежимаСовместимости.Установить(0, НомерРедакции); - - Для Индекс = ОписаниеРежимаСовместимости.Количество() По 3 Цикл - ОписаниеРежимаСовместимости.Добавить("0"); - КонецЦикла; - - Возврат СтрСоединить(ОписаниеРежимаСовместимости, "."); - -КонецФункции - Функция ОформлениеКоличестваЗаписей(ДетальныеЗаписи, ИскомоеЗначение) ОформлениеКоличестваЗаписей = Неопределено; diff --git a/SSL/src/Reports/УниверсальныйОтчет/ObjectModule.bsl b/SSL/src/Reports/УниверсальныйОтчет/ObjectModule.bsl index 801f6dbea..659c0487b 100644 --- a/SSL/src/Reports/УниверсальныйОтчет/ObjectModule.bsl +++ b/SSL/src/Reports/УниверсальныйОтчет/ObjectModule.bsl @@ -224,6 +224,10 @@ ИнтеграцияПодсистемБСП.ПередЗагрузкойВариантаНаСервере(Контекст, Настройки); ОтчетыПереопределяемый.ПередЗагрузкойВариантаНаСервере(Контекст, Настройки); ПередЗагрузкойВариантаНаСервере(Контекст, Настройки); + + ИспользуемыеТаблицы = ВариантыОтчетов.ИспользуемыеТаблицы(СхемаКомпоновкиДанных); + ИспользуемыеТаблицы.Добавить(Метаданные().ПолноеИмя()); + Контекст.НастройкиОтчета.Вставить("ИспользуемыеТаблицы", ИспользуемыеТаблицы); ИначеЕсли ТипЗнч(Контекст) = Тип("Структура") Тогда АдресСхемы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Контекст, "АдресСхемы"); Если Не ЭтоАдресВременногоХранилища(АдресСхемы) Тогда diff --git a/SSL/src/Roles/АдминистраторСистемы/Rights.rights b/SSL/src/Roles/АдминистраторСистемы/Rights.rights index 885ac0d24..4e593d5af 100644 --- a/SSL/src/Roles/АдминистраторСистемы/Rights.rights +++ b/SSL/src/Roles/АдминистраторСистемы/Rights.rights @@ -995,93 +995,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 - - Constant.ИспользоватьСинхронизациюДанныхВМоделиСервиса @@ -2282,6 +2195,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.ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов @@ -2966,6 +2966,17 @@ true + + Report.ПрогрессОбновленияОбластейДанных + + Use + true + + + View + true + + Constant.ИспользоватьАльтернативныйСерверДляЗагрузкиКурсовВалют diff --git a/SSL/src/Roles/БазовыеПраваБСП/Rights.rights b/SSL/src/Roles/БазовыеПраваБСП/Rights.rights index 4411d2d3f..b3450b8cd 100644 --- a/SSL/src/Roles/БазовыеПраваБСП/Rights.rights +++ b/SSL/src/Roles/БазовыеПраваБСП/Rights.rights @@ -1417,6 +1417,17 @@ true + + Constant.СервисПереводаТекста + + Read + true + + + View + true + + Constant.НеИспользоватьРазделениеПоОбластямДанных @@ -1983,6 +1994,32 @@ true + + Catalog.ЯзыкиПечатныхФорм + + Read + true + + + View + true + + + InputByString + true + + + + Constant.ИспользоватьСервисПереводаТекста + + Read + true + + + View + true + + CommonForm.СозданиеНачальногоОбразаСФайлами @@ -2503,8 +2540,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -2582,25 +2619,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -2682,8 +2723,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5) @@ -2706,8 +2746,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -2786,75 +2826,196 @@ #Иначе ИСТИНА #КонецЕсли - - #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ЛОЖЬ - #Иначе - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ИСТИНА + И + ( + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 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 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле2;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле2;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле3;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле4;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле4 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Поле5;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле5 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант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 + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -2936,8 +3097,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениямРасширенный diff --git a/SSL/src/Roles/БазовыеПраваВнешнихПользователейБСП/Rights.rights b/SSL/src/Roles/БазовыеПраваВнешнихПользователейБСП/Rights.rights index 768ae1de3..553944ae5 100644 --- a/SSL/src/Roles/БазовыеПраваВнешнихПользователейБСП/Rights.rights +++ b/SSL/src/Roles/БазовыеПраваВнешнихПользователейБСП/Rights.rights @@ -1237,6 +1237,17 @@ true + + Constant.СервисПереводаТекста + + Read + true + + + View + true + + Constant.НеИспользоватьРазделениеПоОбластямДанных @@ -1693,6 +1704,32 @@ true + + Catalog.ЯзыкиПечатныхФорм + + Read + true + + + View + true + + + InputByString + true + + + + Constant.ИспользоватьСервисПереводаТекста + + Read + true + + + View + true + + CommonForm.СозданиеНачальногоОбразаСФайлами @@ -2169,8 +2206,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -2248,25 +2285,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -2348,8 +2389,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5) @@ -2372,8 +2412,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -2452,75 +2492,196 @@ #Иначе ИСТИНА #КонецЕсли - - #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ЛОЖЬ - #Иначе - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ИСТИНА + И + ( + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 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 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле2;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле2;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле3;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле4;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле4 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Поле5;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле5 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант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 + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -2602,8 +2763,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениям diff --git a/SSL/src/Roles/ДобавлениеИзменениеВзаимодействий/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеВзаимодействий/Rights.rights index 7200adc6f..074c1b04f 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеВзаимодействий/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеВзаимодействий/Rights.rights @@ -1459,8 +1459,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -1538,25 +1538,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -1638,8 +1642,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5) @@ -1662,8 +1665,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -1742,75 +1745,196 @@ #Иначе ИСТИНА #КонецЕсли - - #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ЛОЖЬ - #Иначе - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ИСТИНА + И + ( + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 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 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле2;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле2;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле3;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле4;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле4 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Поле5;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле5 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант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 + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -1892,8 +2016,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениямИНаборамРасширенный diff --git a/SSL/src/Roles/ДобавлениеИзменениеДатЗапретаИзменения/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеДатЗапретаИзменения/Rights.rights index eb67fd65d..2cef44708 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеДатЗапретаИзменения/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеДатЗапретаИзменения/Rights.rights @@ -106,8 +106,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -186,75 +186,196 @@ #Иначе ИСТИНА #КонецЕсли - - #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ЛОЖЬ - #Иначе - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ИСТИНА + И + ( + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 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 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле2;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле2;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле3;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле4;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле4 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Поле5;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле5 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант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 + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -336,7 +457,6 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли diff --git a/SSL/src/Roles/ДобавлениеИзменениеЗаданий/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеЗаданий/Rights.rights index 347fb2f52..c19c60362 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеЗаданий/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеЗаданий/Rights.rights @@ -227,8 +227,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -306,25 +306,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -406,8 +410,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениям diff --git a/SSL/src/Roles/ДобавлениеИзменениеЗаметок/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеЗаметок/Rights.rights index 10c9b7106..ae76484c2 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеЗаметок/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеЗаметок/Rights.rights @@ -100,8 +100,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -179,25 +179,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -279,7 +283,6 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли diff --git a/SSL/src/Roles/ДобавлениеИзменениеЛичныхВариантовОтчетов/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеЛичныхВариантовОтчетов/Rights.rights index 5f24a55fd..ef2b80968 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеЛичныхВариантовОтчетов/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеЛичныхВариантовОтчетов/Rights.rights @@ -188,8 +188,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -267,25 +267,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -367,7 +371,6 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли diff --git a/SSL/src/Roles/ДобавлениеИзменениеЛичныхШаблоновСообщений/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеЛичныхШаблоновСообщений/Rights.rights index 4bcef31cb..db2a09367 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеЛичныхШаблоновСообщений/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеЛичныхШаблоновСообщений/Rights.rights @@ -210,8 +210,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -289,25 +289,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -389,8 +393,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениямРасширенный diff --git a/SSL/src/Roles/ДобавлениеИзменениеНапоминаний/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеНапоминаний/Rights.rights index d5a8c5c71..410eb3d18 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеНапоминаний/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеНапоминаний/Rights.rights @@ -75,8 +75,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -155,75 +155,196 @@ #Иначе ИСТИНА #КонецЕсли - - #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ЛОЖЬ - #Иначе - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ИСТИНА + И + ( + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 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 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле2;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле2;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле3;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле4;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле4 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Поле5;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле5 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант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 + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -305,7 +426,6 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли diff --git a/SSL/src/Roles/ДобавлениеИзменениеПапокИФайлов/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеПапокИФайлов/Rights.rights index b906bc428..046ae64aa 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеПапокИФайлов/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеПапокИФайлов/Rights.rights @@ -237,8 +237,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -316,25 +316,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -416,8 +420,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениям diff --git a/SSL/src/Roles/ДобавлениеИзменениеПапокИФайловВнешнимиПользователями/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеПапокИФайловВнешнимиПользователями/Rights.rights index 61555df6a..31c273b74 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеПапокИФайловВнешнимиПользователями/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеПапокИФайловВнешнимиПользователями/Rights.rights @@ -237,8 +237,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -316,25 +316,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -416,8 +420,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениям diff --git a/SSL/src/Roles/ДобавлениеИзменениеРассылокОтчетов/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеРассылокОтчетов/Rights.rights index 9ad19cb8a..77ac71e15 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеРассылокОтчетов/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеРассылокОтчетов/Rights.rights @@ -14,6 +14,13 @@ true + + Catalog.РассылкиОтчетов.Command.СобытияРассылки + + View + true + + Configuration.БиблиотекаСтандартныхПодсистем @@ -45,13 +52,6 @@ true - - Catalog.РассылкиОтчетов.Command.СобытияРассылки - - View - true - - Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас @@ -123,8 +123,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -202,25 +202,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -302,7 +306,6 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли diff --git a/SSL/src/Roles/ДобавлениеИзменениеУчетныхЗаписейЭлектроннойПочты/Rights.rights b/SSL/src/Roles/ДобавлениеИзменениеУчетныхЗаписейЭлектроннойПочты/Rights.rights index e1c33e0c4..5b75cbaf3 100644 --- a/SSL/src/Roles/ДобавлениеИзменениеУчетныхЗаписейЭлектроннойПочты/Rights.rights +++ b/SSL/src/Roles/ДобавлениеИзменениеУчетныхЗаписейЭлектроннойПочты/Rights.rights @@ -100,8 +100,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -179,25 +179,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -279,8 +283,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениямРасширенный diff --git a/SSL/src/Roles/ИзменениеВыполнениеЗадач/Rights.rights b/SSL/src/Roles/ИзменениеВыполнениеЗадач/Rights.rights index deda95829..e8aa7fb60 100644 --- a/SSL/src/Roles/ИзменениеВыполнениеЗадач/Rights.rights +++ b/SSL/src/Roles/ИзменениеВыполнениеЗадач/Rights.rights @@ -194,8 +194,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -273,25 +273,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -373,8 +377,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениямИНаборамРасширенный diff --git a/SSL/src/Roles/ИзменениеДополнительныхСведений/Rights.rights b/SSL/src/Roles/ИзменениеДополнительныхСведений/Rights.rights index 26e4488d0..cce7b5b7f 100644 --- a/SSL/src/Roles/ИзменениеДополнительныхСведений/Rights.rights +++ b/SSL/src/Roles/ИзменениеДополнительныхСведений/Rights.rights @@ -75,8 +75,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -155,75 +155,196 @@ #Иначе ИСТИНА #КонецЕсли - - #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ЛОЖЬ - #Иначе - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ИСТИНА + И + ( + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 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 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле2;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле2;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле3;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле4;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле4 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Поле5;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле5 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант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 + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -305,8 +426,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениям diff --git a/SSL/src/Roles/ИзменениеУчастниковГруппДоступа/Rights.rights b/SSL/src/Roles/ИзменениеУчастниковГруппДоступа/Rights.rights index 2b9fdac9b..bee337fb8 100644 --- a/SSL/src/Roles/ИзменениеУчастниковГруппДоступа/Rights.rights +++ b/SSL/src/Roles/ИзменениеУчастниковГруппДоступа/Rights.rights @@ -154,8 +154,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -233,25 +233,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -333,8 +337,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5) @@ -357,8 +360,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -437,75 +440,196 @@ #Иначе ИСТИНА #КонецЕсли - - #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ЛОЖЬ - #Иначе - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ИСТИНА + И + ( + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 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 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле2;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле2;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле3;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле4;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле4 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Поле5;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле5 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант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 + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -587,8 +711,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениям diff --git a/SSL/src/Roles/ПолныеПрава/Rights.rights b/SSL/src/Roles/ПолныеПрава/Rights.rights index abdb29db9..c06bdbbdb 100644 --- a/SSL/src/Roles/ПолныеПрава/Rights.rights +++ b/SSL/src/Roles/ПолныеПрава/Rights.rights @@ -1397,45 +1397,6 @@ false - - Configuration.БиблиотекаСтандартныхПодсистем - - Administration - false - - - UpdateDataBaseConfiguration - false - - - ThickClient - false - - - ExternalConnection - false - - - Automation - false - - - TechnicalSpecialistMode - false - - - ConfigurationExtensionsAdministration - false - - - InteractiveOpenExtDataProcessors - false - - - InteractiveOpenExtReports - false - - Constant.ИспользоватьСинхронизациюДанныхВМоделиСервиса @@ -3141,6 +3102,45 @@ false + + Configuration.БиблиотекаСтандартныхПодсистем + + Administration + false + + + UpdateDataBaseConfiguration + false + + + ThickClient + false + + + ExternalConnection + false + + + Automation + false + + + TechnicalSpecialistMode + false + + + ConfigurationExtensionsAdministration + false + + + InteractiveOpenExtDataProcessors + false + + + InteractiveOpenExtReports + false + + InformationRegister.ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов @@ -4129,6 +4129,17 @@ false + + Report.ПрогрессОбновленияОбластейДанных + + Use + false + + + View + false + + Catalog.ПапкиФайлов @@ -5439,6 +5450,29 @@ false + + Catalog.ЯзыкиПечатныхФорм + + InteractiveDelete + false + + + InteractiveDeletePredefinedData + false + + + InteractiveSetDeletionMarkPredefinedData + false + + + InteractiveClearDeletionMarkPredefinedData + false + + + InteractiveDeleteMarkedPredefinedData + false + + Report.ИспользуемыеВнешниеРесурсы diff --git a/SSL/src/Roles/УдалениеДанныхOData/Rights.rights b/SSL/src/Roles/УдаленныйДоступOData/Rights.rights similarity index 97% rename from SSL/src/Roles/УдалениеДанныхOData/Rights.rights rename to SSL/src/Roles/УдаленныйДоступOData/Rights.rights index 19c294699..affcdf573 100644 --- a/SSL/src/Roles/УдалениеДанныхOData/Rights.rights +++ b/SSL/src/Roles/УдаленныйДоступOData/Rights.rights @@ -208,6 +208,28 @@ true + + Constant.УчетнаяЗаписьДляВосстановленияПароля + + Read + true + + + Update + true + + + + InformationRegister.КэшПереводов + + Read + true + + + Update + true + + Constant.ИспользоватьЭлектронныеПодписи @@ -1825,6 +1847,17 @@ true + + Constant.СервисПереводаТекста + + Read + true + + + Update + true + + Constant.ПервоеОбновлениеДоступаЗавершилось @@ -2233,6 +2266,36 @@ true + + Catalog.ЯзыкиПечатныхФорм + + Read + true + + + Insert + true + + + Update + true + + + Delete + true + + + + Constant.ИспользоватьСервисПереводаТекста + + Read + true + + + Update + true + + Document.СогласиеНаОбработкуПерсональныхДанных diff --git a/SSL/src/Roles/УдалениеДанныхOData/УдалениеДанныхOData.mdo b/SSL/src/Roles/УдаленныйДоступOData/УдаленныйДоступOData.mdo similarity index 82% rename from SSL/src/Roles/УдалениеДанныхOData/УдалениеДанныхOData.mdo rename to SSL/src/Roles/УдаленныйДоступOData/УдаленныйДоступOData.mdo index ac3f78ba3..772d55668 100644 --- a/SSL/src/Roles/УдалениеДанныхOData/УдалениеДанныхOData.mdo +++ b/SSL/src/Roles/УдаленныйДоступOData/УдаленныйДоступOData.mdo @@ -1,9 +1,9 @@ - УдалениеДанныхOData + УдаленныйДоступOData ru - Удаление данных (OData) + Удаленный доступ (OData) АПК:164 не проверять право удаления; АПК:375 права на устаревший объект; АПК:229 изменение регистра подчиненного регистратору; АПК:507 права на объекты других подсистем diff --git a/SSL/src/Roles/ЧтениеДополнительныхОтчетовИОбработок/Rights.rights b/SSL/src/Roles/ЧтениеДополнительныхОтчетовИОбработок/Rights.rights index 2913ac78f..459458c61 100644 --- a/SSL/src/Roles/ЧтениеДополнительныхОтчетовИОбработок/Rights.rights +++ b/SSL/src/Roles/ЧтениеДополнительныхОтчетовИОбработок/Rights.rights @@ -85,8 +85,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -164,25 +164,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -264,8 +268,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениям diff --git a/SSL/src/Roles/ЧтениеДополнительныхСведений/Rights.rights b/SSL/src/Roles/ЧтениеДополнительныхСведений/Rights.rights index e9335503f..2a28d44c0 100644 --- a/SSL/src/Roles/ЧтениеДополнительныхСведений/Rights.rights +++ b/SSL/src/Roles/ЧтениеДополнительныхСведений/Rights.rights @@ -58,8 +58,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -138,75 +138,196 @@ #Иначе ИСТИНА #КонецЕсли - - #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ЛОЖЬ - #Иначе - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ИСТИНА + И + ( + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 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 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле2;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле2;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле3;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле4;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле4 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Поле5;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле5 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант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 + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -288,8 +409,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениям diff --git a/SSL/src/Roles/ЧтениеЗаданий/Rights.rights b/SSL/src/Roles/ЧтениеЗаданий/Rights.rights index afbd6b844..e799e98cf 100644 --- a/SSL/src/Roles/ЧтениеЗаданий/Rights.rights +++ b/SSL/src/Roles/ЧтениеЗаданий/Rights.rights @@ -175,8 +175,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -254,25 +254,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -354,8 +358,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениямИНаборамРасширенный diff --git a/SSL/src/Roles/ЧтениеЗадач/Rights.rights b/SSL/src/Roles/ЧтениеЗадач/Rights.rights index 510e432ad..72b108536 100644 --- a/SSL/src/Roles/ЧтениеЗадач/Rights.rights +++ b/SSL/src/Roles/ЧтениеЗадач/Rights.rights @@ -145,8 +145,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -224,25 +224,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -324,8 +328,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениямИНаборамРасширенный diff --git a/SSL/src/Roles/ЧтениеРезультатовПроверкиУчета/Rights.rights b/SSL/src/Roles/ЧтениеРезультатовПроверкиУчета/Rights.rights index 57231c6bc..81b9548be 100644 --- a/SSL/src/Roles/ЧтениеРезультатовПроверкиУчета/Rights.rights +++ b/SSL/src/Roles/ЧтениеРезультатовПроверкиУчета/Rights.rights @@ -94,8 +94,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -174,75 +174,196 @@ #Иначе ИСТИНА #КонецЕсли - - #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ЛОЖЬ - #Иначе - И КлючиДоступаКРегистрам.ДляВнешнихПользователей = ИСТИНА + И + ( + КлючиДоступаКРегистрам.ВариантДоступа = + ( + #Если &ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 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 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле2;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле1=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5 #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле2;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле2;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле3;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле2=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле2 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле3;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле3;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле4;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле3=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле3 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле4;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле4;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Поле5;") #Тогда + #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле4=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле4 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) #КонецЕсли - #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Поле5;") #Тогда + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле5;") #Тогда И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5 - #ИначеЕсли СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Поле5=Null;") #Тогда - И КлючиДоступаКРегистрам.Поле5 = Значение(Перечисление.ДополнительныеЗначенияДоступа.Null) + #КонецЕсли + + #Если СтрСодержит(&СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант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 + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -324,8 +445,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениям diff --git a/SSL/src/Roles/ЧтениеУчетныхЗаписейЭлектроннойПочты/Rights.rights b/SSL/src/Roles/ЧтениеУчетныхЗаписейЭлектроннойПочты/Rights.rights index e9917e5dc..200cb47fb 100644 --- a/SSL/src/Roles/ЧтениеУчетныхЗаписейЭлектроннойПочты/Rights.rights +++ b/SSL/src/Roles/ЧтениеУчетныхЗаписейЭлектроннойПочты/Rights.rights @@ -54,8 +54,8 @@ // Информационная база заблокирована для обновления. ГДЕ ЛОЖЬ -#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляРегистра7,") #Тогда - Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 7 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. +#ИначеЕсли Не СтрСодержит(&ВерсииШаблоновОграниченияДоступа, ",ДляОбъекта8,") #Тогда + Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 8 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа. #ИначеЕсли &СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда // У пользователя отключены все виды доступа или @@ -133,25 +133,29 @@ #КонецЕсли #КонецЕсли ГДЕ - #Если "#ПолеОбъекта" = "" #Тогда + #Если "#ПолеОбъекта" = "" + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;;-") + Или СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+;-") #Тогда КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.Ссылка #Иначе КлючиДоступаКОбъектам.Объект = ТекущаяТаблица.#ПолеОбъекта #КонецЕсли И ( #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Не КлючиДоступаНаборовГруппДоступа.КлючДоступа Есть NULL + НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL #Иначе - Ложь + ЛОЖЬ #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":#ПолеОбъекта;*") #Тогда - Или Не КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;") #Тогда - Или Не КлючиДоступаПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли #Если СтрСодержит(&СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":#ПолеОбъекта;+") #Тогда - Или Не КлючиДоступаНаборовГруппПользователей.КлючДоступа Есть NULL + ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL #КонецЕсли ) ) @@ -233,8 +237,7 @@ #КонецЕсли #КонецЕсли -#КонецЕсли - +#КонецЕсли ПоЗначениямРасширенный diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/КонтекстнаяНастройкаОтчета/Form.form b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/КонтекстнаяНастройкаОтчета/Form.form new file mode 100644 index 000000000..7ed8f9d60 --- /dev/null +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/КонтекстнаяНастройкаОтчета/Form.form @@ -0,0 +1,3300 @@ + + + + Сортировка + 266 + + СортироватьПоВозрастанию + 1 + true + true + + true + + + СортироватьПоВозрастаниюРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualButton + Form.Command.СортироватьПоВозрастанию + Supplementary + Auto + true + true + UserCmds + Auto + None + + + СортироватьПоУбыванию + 3 + true + true + + true + + + СортироватьПоУбываниюРасширеннаяПодсказка + 4 + Label + true + true + + Left + + + UsualButton + Form.Command.СортироватьПоУбыванию + Supplementary + Auto + true + true + UserCmds + Auto + None + + true + true + + true + + + <key>ru</key> + <value>Сортировка</value> + + + СортировкаРасширеннаяПодсказка + 267 + Label + true + true + + Left + + + UsualGroup + + Vertical + Collapsible + Button + NormalSeparation + true + true + auto + Auto + Auto + + + + ФильтрПоЗначению + 16 + + Значения + 18 + + <key>ru</key> + <value>Значения</value> + + true + true + + true + + + Значения + + None + Add + Change + Copy + CopyToClipboard + Delete + EndEdit + MoveDown + MoveUp + Pickup + SelectAll + ShowMultipleSelection + ShowRowRearrangement + + ЗначенияПометка + 34 + true + true + + true + + + Значения.Check + + true + + OnChange + ЗначенияПометкаПриИзменении + + + ЗначенияПометкаРасширеннаяПодсказка + 36 + Label + true + true + + Left + + + + ЗначенияПометкаКонтекстноеМеню + 35 + true + + CheckBoxField + Auto + true + Left + true + + + + ЗначенияЗначение + 31 + true + true + + true + + + Значения.Value + + true + + ЗначенияЗначениеРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + + ЗначенияЗначениеКонтекстноеМеню + 32 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ЗначенияКоманднаяПанель + 20 + + ЗначенияИзменитьФлажки + 326 + + ЗначенияУстановитьФлажки + 322 + true + true + + true + + + ЗначенияУстановитьФлажкиРасширеннаяПодсказка + 323 + Label + true + true + + Left + + + Form.Item.Значения.StandardCommand.CheckAll + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + + ЗначенияСнятьФлажки + 324 + true + true + + true + + + ЗначенияСнятьФлажкиРасширеннаяПодсказка + 325 + Label + true + true + + Left + + + Form.Item.Значения.StandardCommand.UncheckAll + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Изменить флажки</value> + + + ЗначенияИзменитьФлажкиРасширеннаяПодсказка + 327 + Label + true + true + + Left + + + + Compact + + + + ЗначенияПоиск + 328 + + ЗначенияПоискПоТекущемуЗначению + 330 + true + + true + + + ЗначенияПоискПоТекущемуЗначениюРасширеннаяПодсказка + 331 + Label + true + true + + Left + + + Form.Item.Значения.StandardCommand.FindByCurrentValue + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + + ЗначенияНайти + 332 + true + + true + + + ЗначенияНайтиРасширеннаяПодсказка + 333 + Label + true + true + + Left + + + Form.Item.Значения.StandardCommand.Find + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + + ЗначенияОтменитьПоиск + 334 + true + + true + + + ЗначенияОтменитьПоискРасширеннаяПодсказка + 335 + Label + true + true + + Left + + + Form.Item.Значения.StandardCommand.CancelSearch + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + true + + true + + + <key>ru</key> + <value>Поиск</value> + + + ЗначенияПоискРасширеннаяПодсказка + 329 + Label + true + true + + Left + + + + + + ЗначенияСортировать + 338 + + ЗначенияСортироватьСписокПоВозрастанию + 340 + true + + true + + + ЗначенияСортироватьСписокПоВозрастаниюРасширеннаяПодсказка + 341 + Label + true + true + + Left + + + Form.Item.Значения.StandardCommand.SortListAsc + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + + ЗначенияСортироватьСписокПоУбыванию + 342 + true + + true + + + ЗначенияСортироватьСписокПоУбываниюРасширеннаяПодсказка + 343 + Label + true + true + + Left + + + Form.Item.Значения.StandardCommand.SortListDesc + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + true + + true + + + <key>ru</key> + <value>Сортировать</value> + + + ЗначенияСортироватьРасширеннаяПодсказка + 339 + Label + true + true + + Left + + + + + + ЗначенияПереместить + 336 + + ЗначенияПереместитьВверх + 344 + true + + true + + + ЗначенияПереместитьВверхРасширеннаяПодсказка + 345 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + + ЗначенияПереместитьВниз + 346 + true + + true + + + ЗначенияПереместитьВнизРасширеннаяПодсказка + 347 + Label + true + true + + Left + + + 0 + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + true + + true + + + <key>ru</key> + <value>Переместить</value> + + + ЗначенияПереместитьРасширеннаяПодсказка + 337 + Label + true + true + + Left + + + + + Left + true + + + Selection + ЗначенияВыбор + + + OnChange + ЗначенияПриИзменении + + + ЗначенияСтрокаПоиска + 22 + + ЗначенияСтрокаПоискаРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + ЗначенияСтрокаПоискаКонтекстноеМеню + 23 + true + + Значения + + true + + + + ЗначенияСостояниеПросмотра + 25 + + ЗначенияСостояниеПросмотраРасширеннаяПодсказка + 27 + Label + true + true + + Left + + + + ЗначенияСостояниеПросмотраКонтекстноеМеню + 26 + true + + ViewStatusAddition + Значения + + true + + + + ЗначенияУправлениеПоиском + 28 + + ЗначенияУправлениеПоискомРасширеннаяПодсказка + 30 + Label + true + true + + Left + + + + ЗначенияУправлениеПоискомКонтекстноеМеню + 29 + true + + SearchControlAddition + Значения + + true + + + + ЗначенияРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + ЗначенияКонтекстноеМеню + 19 + + ЗначенияКонтекстноеМенюПоиск + 348 + + ЗначенияКонтекстноеМенюПоискПоТекущемуЗначению + 350 + true + true + + true + + + ЗначенияКонтекстноеМенюПоискПоТекущемуЗначениюРасширеннаяПодсказка + 351 + Label + true + true + + Left + + + Form.Item.Значения.StandardCommand.FindByCurrentValue + Normal + Auto + true + true + UserCmds + Auto + + + ЗначенияКонтекстноеМенюНайти + 352 + true + true + + true + + + ЗначенияКонтекстноеМенюНайтиРасширеннаяПодсказка + 353 + Label + true + true + + Left + + + Form.Item.Значения.StandardCommand.Find + Normal + Auto + true + true + UserCmds + Auto + + + ЗначенияКонтекстноеМенюОтменитьПоиск + 354 + true + true + + true + + + ЗначенияКонтекстноеМенюОтменитьПоискРасширеннаяПодсказка + 355 + Label + true + true + + Left + + + Form.Item.Значения.StandardCommand.CancelSearch + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Поиск</value> + + + ЗначенияКонтекстноеМенюПоискРасширеннаяПодсказка + 349 + Label + true + true + + Left + + + + + + ЗначенияКонтекстноеМенюСортировать + 53 + + ЗначенияКонтекстноеМенюСортироватьСписокПоВозрастанию + 55 + true + true + + true + + + ЗначенияКонтекстноеМенюСортироватьСписокПоВозрастаниюРасширеннаяПодсказка + 56 + Label + true + true + + Left + + + Form.Item.Значения.StandardCommand.SortListAsc + Normal + Auto + true + true + UserCmds + Auto + + + ЗначенияКонтекстноеМенюСортироватьСписокПоУбыванию + 57 + true + true + + true + + + ЗначенияКонтекстноеМенюСортироватьСписокПоУбываниюРасширеннаяПодсказка + 58 + Label + true + true + + Left + + + Form.Item.Значения.StandardCommand.SortListDesc + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Сортировать</value> + + + ЗначенияКонтекстноеМенюСортироватьРасширеннаяПодсказка + 54 + Label + true + true + + Left + + + + + true + + true + true + true + true + MultiRow + Row + 1 + 1 + AutoUse + AutoUse + true + true + false + false + true + Auto + Auto + true + true + AsFileRef + + Значения.Picture + + CommandBar + true + + true + true + + true + + + <key>ru</key> + <value>Фильтр по значению</value> + + + ФильтрПоЗначениюРасширеннаяПодсказка + 17 + Label + true + true + + Left + + + UsualGroup + + Vertical + Collapsible + Button + NormalSeparation + true + true + auto + Auto + Auto + + + + ФильтрПоУсловию + 8 + + СвойстваФильтраПоУсловиюСлева + 376 + + Использование + 373 + true + true + + true + + + Использование + + None + + OnChange + ИспользованиеПриИзменении + + + ИспользованиеРасширеннаяПодсказка + 375 + Label + true + true + + Left + + + + ИспользованиеКонтекстноеМеню + 374 + true + + CheckBoxField + Enter + true + Left + true + + + true + true + + true + + + <key>ru</key> + <value>Свойства фильтра по условию слева</value> + + + СвойстваФильтраПоУсловиюСлеваРасширеннаяПодсказка + 377 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + СвойстваФильтраПоУсловиюСправа + 378 + + ВидСравнения + 10 + true + true + + true + + + ВидСравнения + + None + + OnChange + ВидСравненияПриИзменении + + + ВидСравненияРасширеннаяПодсказка + 12 + Label + true + true + + Left + + + + ВидСравненияКонтекстноеМеню + 11 + true + + InputField + Enter + true + Left + true + + true + true + true + true + false + true + true + true + true + Normal + + ru + Условие + + + + + ПравоеЗначение + 13 + true + true + + true + + + ПравоеЗначение + + None + + OnChange + ПравоеЗначениеПриИзменении + + + ПравоеЗначениеРасширеннаяПодсказка + 15 + Label + true + true + + Left + + + + ПравоеЗначениеКонтекстноеМеню + 14 + true + + InputField + Enter + true + Left + true + + + StartChoice + ПравоеЗначениеНачалоВыбора + + + ChoiceProcessing + ПравоеЗначениеОбработкаВыбора + + true + true + true + true + true + true + true + Normal + + ru + Значение + + + + true + true + + true + + + <key>ru</key> + <value>Свойства фильтра по условию справа</value> + + + СвойстваФильтраПоУсловиюСправаРасширеннаяПодсказка + 379 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Фильтр по условию</value> + + + ФильтрПоУсловиюРасширеннаяПодсказка + 9 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Collapsible + true + Button + NormalSeparation + true + true + auto + Auto + Auto + + + + КоманднаяПанель + 299 + + ДополнительныеВозможности + 212 + + ДополнительныеВозможностиОтступ + 294 + true + true + + true + + + ДополнительныеВозможностиОтступРасширеннаяПодсказка + 296 + Label + true + true + + Left + + + + ДополнительныеВозможностиОтступКонтекстноеМеню + 295 + true + + Label + true + true + + Left + + + + КомандыДополнительныхВозможностей + 292 + + Поле + 196 + + Вставка + 198 + + ВставитьПолеСлева + 156 + true + true + + true + + + ВставитьПолеСлеваРасширеннаяПодсказка + 157 + Label + true + true + + Left + + + UsualButton + Form.Command.ВставитьПолеСлева + Supplementary + Auto + true + true + UserCmds + Auto + None + + + ВставитьПолеСправа + 158 + true + true + + true + + + ВставитьПолеСправаРасширеннаяПодсказка + 159 + Label + true + true + + Left + + + UsualButton + Form.Command.ВставитьПолеСправа + Supplementary + Auto + true + true + UserCmds + Auto + None + + + ВставитьГруппировкуВыше + 160 + true + true + + true + + + ВставитьГруппировкуВышеРасширеннаяПодсказка + 161 + Label + true + true + + Left + + + UsualButton + Form.Command.ВставитьГруппировкуВыше + Supplementary + Auto + true + true + UserCmds + Auto + None + + + ВставитьГруппировкуНиже + 162 + true + true + + true + + + ВставитьГруппировкуНижеРасширеннаяПодсказка + 163 + Label + true + true + + Left + + + UsualButton + Form.Command.ВставитьГруппировкуНиже + Supplementary + Auto + true + true + UserCmds + Auto + None + + + ВставкаГраницаГруппы + 356 + true + true + + true + + + ВставкаГраницаГруппыРасширеннаяПодсказка + 358 + Label + true + true + + Left + + + + ВставкаГраницаГруппыКонтекстноеМеню + 357 + true + + Label + true + true + true + + Style.NormalTextFont + 1.0 + 100 + + + Left + + + 1 + + + + true + true + + true + + + <key>ru</key> + <value>Вставка</value> + + true + + ВставкаРасширеннаяПодсказка + 199 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + Перемещение + 200 + + ПереместитьПолеВлево + 186 + true + true + + true + + + ПереместитьПолеВлевоРасширеннаяПодсказка + 187 + Label + true + true + + Left + + + UsualButton + Form.Command.ПереместитьПолеВлево + Supplementary + Auto + true + true + UserCmds + Auto + None + + + ПереместитьПолеВправо + 188 + true + true + + true + + + ПереместитьПолеВправоРасширеннаяПодсказка + 189 + Label + true + true + + Left + + + UsualButton + Form.Command.ПереместитьПолеВправо + Supplementary + Auto + true + true + UserCmds + Auto + None + + + ПереместитьПолеВыше + 190 + true + true + + true + + + ПереместитьПолеВышеРасширеннаяПодсказка + 191 + Label + true + true + + Left + + + UsualButton + Form.Command.ПереместитьПолеВыше + Supplementary + Auto + true + true + UserCmds + Auto + None + + + ПереместитьПолеНиже + 192 + true + true + + true + + + ПереместитьПолеНижеРасширеннаяПодсказка + 193 + Label + true + true + + Left + + + UsualButton + Form.Command.ПереместитьПолеНиже + Supplementary + Auto + true + true + UserCmds + Auto + None + + + ПеремещениеГраницаГруппы + 359 + true + true + + true + + + ПеремещениеГраницаГруппыРасширеннаяПодсказка + 361 + Label + true + true + + Left + + + + ПеремещениеГраницаГруппыКонтекстноеМеню + 360 + true + + Label + true + true + true + + Style.NormalTextFont + 1.0 + 100 + + + Left + + + 1 + + + + true + true + + true + + + <key>ru</key> + <value>Перемещение</value> + + + ПеремещениеРасширеннаяПодсказка + 201 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + СкрытиеПереименование + 248 + + СкрытьПоле + 164 + true + true + + true + + + СкрытьПолеРасширеннаяПодсказка + 165 + Label + true + true + + Left + + + UsualButton + Form.Command.СкрытьПоле + Supplementary + Auto + true + true + UserCmds + Auto + None + + + Переименование + 303 + + ПереименоватьПоле + 166 + true + true + + true + + + ПереименоватьПолеРасширеннаяПодсказка + 167 + Label + true + true + + Left + + + UsualButton + Form.Command.ПереименоватьПоле + Supplementary + PictureAndText + true + true + UserCmds + + CommonPicture.Пустая + + Auto + None + + + ПредставлениеПоля + 305 + true + true + + true + + + ПредставлениеПоля + + None + + ПредставлениеПоляРасширеннаяПодсказка + 307 + Label + true + true + + Left + + + + ПредставлениеПоляКонтекстноеМеню + 306 + true + + InputField + Enter + true + Left + true + + + StartChoice + ПредставлениеПоляНачалоВыбора + + true + true + true + true + true + true + true + Normal + + + + ПереименоватьПолеЕще + 393 + true + true + + true + + + ПереименоватьПолеЕщеРасширеннаяПодсказка + 394 + Label + true + true + + Left + + + UsualButton + Form.Command.ПереименоватьПоле + Normal + Picture + true + true + UserCmds + Auto + WhenActive + + true + true + + true + + + <key>ru</key> + <value>Переименование</value> + + + ПереименованиеРасширеннаяПодсказка + 304 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + + СкрытиеПереименованиеГраницаГруппы + 362 + true + true + + true + + + СкрытиеПереименованиеГраницаГруппыРасширеннаяПодсказка + 364 + Label + true + true + + Left + + + + СкрытиеПереименованиеГраницаГруппыКонтекстноеМеню + 363 + true + + Label + true + true + true + + Style.NormalTextFont + 1.0 + 100 + + + Left + + + 1 + + + + true + true + + true + + + <key>ru</key> + <value>Скрытие, переименование</value> + + + СкрытиеПереименованиеРасширеннаяПодсказка + 249 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Поле</value> + + + ПолеРасширеннаяПодсказка + 197 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + Оформление + 202 + + УстановкаЦвета + 204 + + ОформитьОтрицательные + 172 + true + true + + true + + + ОформитьОтрицательныеРасширеннаяПодсказка + 173 + Label + true + true + + Left + + + UsualButton + Form.Command.ОформитьОтрицательные + Supplementary + Auto + true + true + UserCmds + Auto + None + + + ОформитьПоложительные + 174 + true + true + + true + + + ОформитьПоложительныеРасширеннаяПодсказка + 175 + Label + true + true + + Left + + + UsualButton + Form.Command.ОформитьПоложительные + Supplementary + Auto + true + true + UserCmds + Auto + None + + + УстановкаЦветаГраницаГруппы + 365 + true + true + + true + + + УстановкаЦветаГраницаГруппыРасширеннаяПодсказка + 367 + Label + true + true + + Left + + + + УстановкаЦветаГраницаГруппыКонтекстноеМеню + 366 + true + + Label + true + true + true + + Style.NormalTextFont + 1.0 + 100 + + + Left + + + 1 + + + + true + true + + true + + + <key>ru</key> + <value>Установка цвета</value> + + + УстановкаЦветаРасширеннаяПодсказка + 205 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + ГруппаШиринаВысота + 384 + + УстановкаШириныВысоты + 206 + + УстановкаВысотыСтроки + 308 + + УстановитьВысотуСтроки + 380 + true + true + + true + + + УстановитьВысотуСтрокиРасширеннаяПодсказка + 381 + Label + true + true + + Left + + + UsualButton + Form.Command.УстановитьВысотуСтроки + Supplementary + PictureAndText + true + true + UserCmds + + CommonPicture.ВысотаСтроки + + Auto + None + + + ВысотаСтроки + 310 + true + true + + true + + + ВысотаСтроки + + None + + ВысотаСтрокиРасширеннаяПодсказка + 312 + Label + true + true + + Left + + + + ВысотаСтрокиКонтекстноеМеню + 311 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + УстановитьВысотуСтрокиЕще + 389 + true + true + + true + + + УстановитьВысотуСтрокиЕщеРасширеннаяПодсказка + 390 + Label + true + true + + Left + + + UsualButton + Form.Command.УстановитьВысотуСтроки + Normal + Picture + true + true + UserCmds + Auto + WhenActive + + true + true + + true + + + <key>ru</key> + <value>Установка высоты строки</value> + + 50 + Left + + УстановкаВысотыСтрокиРасширеннаяПодсказка + 309 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Left + Auto + true + Auto + Auto + + + + УстановкаШириныКолонки + 313 + + УстановитьШиринуКолонки + 382 + true + true + + true + + + УстановитьШиринуКолонкиРасширеннаяПодсказка + 383 + Label + true + true + + Left + + + UsualButton + Form.Command.УстановитьШиринуКолонки + Supplementary + PictureAndText + true + true + UserCmds + + CommonPicture.ШиринаКолонки + + Auto + None + + + ШиринаКолонки + 315 + true + true + + true + + + ШиринаКолонки + + None + + ШиринаКолонкиРасширеннаяПодсказка + 317 + Label + true + true + + Left + + + + ШиринаКолонкиКонтекстноеМеню + 316 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + УстановитьШиринуКолонкиЕще + 391 + true + true + + true + + + УстановитьШиринуКолонкиЕщеРасширеннаяПодсказка + 392 + Label + true + true + + Left + + + UsualButton + Form.Command.УстановитьШиринуКолонки + Normal + Picture + true + true + UserCmds + Auto + WhenActive + + true + true + + true + + + <key>ru</key> + <value>Установка ширины колонки</value> + + 50 + Left + + УстановкаШириныКолонкиРасширеннаяПодсказка + 314 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Left + Auto + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Установка ширины, высоты</value> + + + УстановкаШириныВысотыРасширеннаяПодсказка + 207 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + DontUse + Auto + + + + Отступ + 386 + true + true + + true + + + ОтступРасширеннаяПодсказка + 388 + Label + true + true + + Left + + + + ОтступКонтекстноеМеню + 387 + true + + Label + true + true + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Ширина высота</value> + + + ГруппаШиринаВысотаРасширеннаяПодсказка + 385 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + + УстановкаШириныВысотыГраницаГруппы + 368 + true + true + + true + + + УстановкаШириныВысотыГраницаГруппыРасширеннаяПодсказка + 370 + Label + true + true + + Left + + + + УстановкаШириныВысотыГраницаГруппыКонтекстноеМеню + 369 + true + + Label + true + true + true + + Style.NormalTextFont + 1.0 + 100 + + + Left + + + 1 + + + + + ОформитьЕще + 182 + true + true + + true + + + ОформитьЕщеРасширеннаяПодсказка + 183 + Label + true + true + + Left + + + UsualButton + Form.Command.ОформитьЕще + Supplementary + Auto + true + true + UserCmds + Auto + None + + true + true + + true + + + <key>ru</key> + <value>Оформление</value> + + + ОформлениеРасширеннаяПодсказка + 203 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Команды дополнительных возможностей</value> + + + КомандыДополнительныхВозможностейРасширеннаяПодсказка + 293 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Еще</value> + + + ДополнительныеВозможностиРасширеннаяПодсказка + 213 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + PopUp + WeakSeparation + true + true + auto + Auto + Auto + + + + КомандыОсновные + 301 + + ФильтроватьИСформировать + 318 + VeryHigh + true + true + + true + + + ФильтроватьИСформироватьРасширеннаяПодсказка + 319 + Label + true + true + + Left + + + Form.Command.ФильтроватьИСформировать + true + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + + Фильтровать + 320 + true + true + + true + + + ФильтроватьРасширеннаяПодсказка + 321 + Label + true + true + + Left + + + Form.Command.Фильтровать + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + + Отмена + 284 + true + true + + true + + + ОтменаРасширеннаяПодсказка + 285 + Label + true + true + + Left + + + Form.StandardCommand.Cancel + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Команды основные</value> + + + КомандыОсновныеРасширеннаяПодсказка + 302 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Командная панель</value> + + Bottom + + КоманднаяПанельРасширеннаяПодсказка + 300 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + Right + + + OnOpen + ПриОткрытии + + + OnCreateAtServer + ПриСозданииНаСервере + + 35 + LockOwner + true + true + Vertical + true + true + true + true + + ВидСравнения + + <key>ru</key> + <value>Вид сравнения</value> + + 1 + + + true + + + true + + + + ПравоеЗначение + + <key>ru</key> + <value>Правое значение</value> + + 2 + + + true + + + true + + + + Значения + + <key>ru</key> + <value>Значения</value> + + 3 + + ValueList + + + true + + + true + + + + + + + Использование + + <key>ru</key> + <value>Использование</value> + + 4 + + Boolean + + + true + + + true + + + + КомпоновщикНастроек + 7 + + DataCompositionSettingsComposer + + + true + + + true + + + + ПредставлениеПоля + + <key>ru</key> + <value>Представление поля</value> + + 8 + + String + + 150 + + + + true + + + true + + + + ВысотаСтроки + + <key>ru</key> + <value>Высота строки</value> + + 9 + + Number + + 5 + true + + + + true + + + true + + + + ШиринаКолонки + + <key>ru</key> + <value>Ширина колонки</value> + + 10 + + Number + + 5 + true + + + + true + + + true + + + + НастройкиОтчета + 11 + + + true + + + true + + + + СвойстваЗаголовка + 12 + + + true + + + true + + + + ИдентификаторЭлементаСтруктурыНастроек + 13 + + + true + + + true + + + + ДоступныеЗначения + 5 + + ValueList + + + true + + + true + + + + + + + СнятьФильтрПоУсловию + 6 + + Boolean + + + true + + + true + + + + ИндексыГруппИЭлементов + 14 + + + true + + + true + + + + СортироватьПоВозрастанию + + <key>ru</key> + <value>Сортировать по возрастанию</value> + + 1 + + true + + + CommonPicture.СортироватьСтрокиПоВозрастанию + + + + СортироватьПоВозрастанию + + + TextPicture + Auto + Auto + + + СортироватьПоУбыванию + + <key>ru</key> + <value>Сортировать по убыванию</value> + + 2 + + true + + + CommonPicture.СортироватьСтрокиПоУбыванию + + + + СортироватьПоУбыванию + + + TextPicture + Auto + Auto + + + ВставитьГруппировкуВыше + + <key>ru</key> + <value>Вставить группировку выше</value> + + 3 + + true + + + CommonPicture.ВставитьГруппировкуВыше + + + + ВставитьГруппировкуВыше + + + TextPicture + Auto + Auto + + + ВставитьПолеСлева + + <key>ru</key> + <value>Вставить поле слева</value> + + 4 + + true + + + CommonPicture.ВставитьКолонкуСлева + + + + ВставитьПолеСлева + + + TextPicture + Auto + Auto + + + ВставитьГруппировкуНиже + + <key>ru</key> + <value>Вставить группировку ниже</value> + + 5 + + true + + + CommonPicture.ВставитьГруппировкуНиже + + + + ВставитьГруппировкуНиже + + + TextPicture + Auto + Auto + + + ВставитьПолеСправа + + <key>ru</key> + <value>Вставить поле справа</value> + + 6 + + true + + + CommonPicture.ВставитьКолонкуСправа + + + + ВставитьПолеСправа + + + TextPicture + Auto + Auto + + + СкрытьПоле + + <key>ru</key> + <value>Скрыть</value> + + 7 + + ru + Скрыть поле + + + true + + + CommonPicture.Пустая + + + + СкрытьПоле + + + TextPicture + Auto + Auto + + + ПереименоватьПоле + + <key>ru</key> + <value>Переименовать</value> + + 8 + + ru + Переименовать поле + + + true + + + + ПереименоватьПоле + + + Auto + Auto + + + ОформитьОтрицательные + + <key>ru</key> + <value>Отрицательные красным</value> + + 9 + + ru + Оформить отрицательные значения красным + + + true + + + CommonPicture.Пустая + + + + ОформитьОтрицательные + + + TextPicture + Auto + Auto + + + ОформитьПоложительные + + <key>ru</key> + <value>Положительные зеленым</value> + + 10 + + ru + Оформить отрицательные значения зеленым + + + true + + + CommonPicture.Пустая + + + + ОформитьПоложительные + + + TextPicture + Auto + Auto + + + УстановитьВысотуСтроки + + <key>ru</key> + <value>Высота строки</value> + + 11 + + ru + Установить высоту строки + + + true + + + + УстановитьВысотуСтроки + + + Auto + Auto + + + УстановитьШиринуКолонки + + <key>ru</key> + <value>Ширина колонки</value> + + 12 + + ru + Установить ширину колонки + + + true + + + + УстановитьШиринуКолонки + + + Auto + Auto + + + ОформитьЕще + + <key>ru</key> + <value>Оформление...</value> + + 13 + + ru + Настраиваемое оформление + + + true + + + StdPicture.DataCompositionConditionalAppearance + + + + ОформитьЕще + + + TextPicture + Auto + Auto + + + ПереместитьПолеВлево + + <key>ru</key> + <value>Переместить влево</value> + + 14 + + true + + + CommonPicture.ПереместитьКолонкуВлево + + + + ПереместитьПолеВлево + + + TextPicture + Auto + Auto + + + ПереместитьПолеНиже + + <key>ru</key> + <value>Переместить ниже</value> + + 15 + + true + + + CommonPicture.ПереместитьГруппировкуНиже + + + + ПереместитьПолеНиже + + + TextPicture + Auto + Auto + + + ПереместитьПолеВправо + + <key>ru</key> + <value>Переместить вправо</value> + + 16 + + true + + + CommonPicture.ПереместитьКолонкуВправо + + + + ПереместитьПолеВправо + + + TextPicture + Auto + Auto + + + ПереместитьПолеВыше + + <key>ru</key> + <value>Переместить выше</value> + + 17 + + true + + + CommonPicture.ПереместитьГруппировкуВыше + + + + ПереместитьПолеВыше + + + TextPicture + Auto + Auto + + + ФильтроватьИСформировать + + <key>ru</key> + <value>Применить и сформировать</value> + + 18 + + true + + + StdPicture.GenerateReport + + + + ФильтроватьИСформировать + + + Auto + Auto + + + Фильтровать + + <key>ru</key> + <value>Применить</value> + + 19 + + true + + + + Фильтровать + + + Auto + Auto + + + НастройкиОтчета + + + + ДанныеРасшифровки + + + + Документ + + SpreadsheetDocument + + + + СвойстваЗаголовка + + + + КомпоновщикНастроек + + DataCompositionSettingsComposer + + + + КэшЗначенийОтборов + + + + + + + diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/КонтекстнаяНастройкаОтчета/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/КонтекстнаяНастройкаОтчета/Module.bsl new file mode 100644 index 000000000..b52fcdfb2 --- /dev/null +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/КонтекстнаяНастройкаОтчета/Module.bsl @@ -0,0 +1,1197 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + УстановитьУсловноеОформление(); + ОпределитьПоведениеВМобильномКлиенте(); + + ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, "НастройкиОтчета, СвойстваЗаголовка"); + НастройкиОтчета.Вставить("КэшЗначенийОтборов", Параметры.КэшЗначенийОтборов); + + ЗаголовокПоля = СвойстваЗаголовка.Текст; + Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Настройка поля: %1'"), ЗаголовокПоля); + + ПредставлениеПоля = ЗаголовокПоля; + + КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(НастройкиОтчета.АдресСхемы)); + КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета.СвойстваРезультата.ИтоговыеНастройки); + + УстановитьСвойстваФильтраПоУсловию(ЗаголовокПоля); + ЗаполнитьЗначения(); + ОбновитьИндексыГруппИЭлементов(); + УточнитьДоступныеТипыЗначений(); + ОпределитьДоступностьДополнительныхВозможностей(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + ЗаполнитьЗначенияДополнительныхВозможностей(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовФильтраПоЗначению + +&НаКлиенте +Процедура ИспользованиеПриИзменении(Элемент) + + СнятьФильтрПоУсловию = Не Использование; + +КонецПроцедуры + +&НаКлиенте +Процедура ВидСравненияПриИзменении(Элемент) + + Использование = Истина; + ПолеПравогоЗначения = Элементы.ПравоеЗначение; + + Если ОтчетыКлиентСервер.ЭтоВидСравненияСписка(ВидСравнения) Тогда + + ПравоеЗначение = ОтчетыКлиентСервер.ЗначенияСписком(ПравоеЗначение); + ПравоеЗначение.ТипЗначения = Значения.ТипЗначения; + + УточнитьПравоеЗначение(ПравоеЗначение, ДоступныеЗначения); + + ПолеПравогоЗначения.ОграничениеТипа = Новый ОписаниеТипов("СписокЗначений"); + ПолеПравогоЗначения.ВыбиратьТип = Ложь; + ПолеПравогоЗначения.РежимВыбораИзСписка = Ложь; + ПолеПравогоЗначения.КнопкаВыбора = Истина; + + Иначе + + Если ТипЗнч(ПравоеЗначение) = Тип("СписокЗначений") Тогда + + Если ПравоеЗначение.Количество() > 0 Тогда + ПравоеЗначение = ПравоеЗначение[0].Значение; + Иначе + ПравоеЗначение = Значения.ТипЗначения.ПривестиЗначение(); + КонецЕсли; + + КонецЕсли; + + ДоступныеТипы = Значения.ТипЗначения.Типы(); + ЭтоСтрока = ДоступныеТипы.Количество() = 1 И ДоступныеТипы.Найти(Тип("Строка")) <> Неопределено; + + ОписаниеФильтра = ОписаниеФильтра(КомпоновщикНастроек, СвойстваЗаголовка); + ВыборГруппИЭлементов = ОтчетыКлиент.ЗначениеТипаИспользованиеГруппИЭлементов( + ?(ОписаниеФильтра = Неопределено, Неопределено, ОписаниеФильтра.ВыборГруппИЭлементов), ВидСравнения); + + ПолеПравогоЗначения.ОграничениеТипа = Значения.ТипЗначения; + ПолеПравогоЗначения.ВыбиратьТип = (ДоступныеТипы.Количество() <> 1); + ПолеПравогоЗначения.РежимВыбораИзСписка = (ПолеПравогоЗначения.СписокВыбора.Количество() > 0); + ПолеПравогоЗначения.КнопкаВыбора = Не ЭтоСтрока И Не ПолеПравогоЗначения.РежимВыбораИзСписка; + ПолеПравогоЗначения.ВыборГруппИЭлементов = ОтчетыКлиентСервер.ЗначениеТипаГруппыИЭлементы(ВыборГруппИЭлементов, ВидСравнения); + + КонецЕсли; + + ОпределитьДоступностьПоляПравогоЗначения(ПолеПравогоЗначения, ВидСравнения); + +КонецПроцедуры + +&НаКлиенте +Процедура ПравоеЗначениеПриИзменении(Элемент) + + Использование = Истина; + +КонецПроцедуры + +&НаКлиенте +Процедура ПравоеЗначениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + Если ТипЗнч(ПравоеЗначение) <> Тип("СписокЗначений") Тогда + Возврат; + КонецЕсли; + + СтандартнаяОбработка = Ложь; + + Фильтр = Фильтр(КомпоновщикНастроек, СвойстваЗаголовка); + ОписаниеФильтра = ОписаниеФильтра(КомпоновщикНастроек, СвойстваЗаголовка); + + ПараметрыВыбора = ОтчетыКлиентСервер.ПараметрыВыбора( + КомпоновщикНастроек.Настройки, КомпоновщикНастроек.ПользовательскиеНастройки.Элементы, Фильтр); + + ВыборГруппИЭлементов = ОтчетыКлиент.ЗначениеТипаИспользованиеГруппИЭлементов( + ?(ОписаниеФильтра = Неопределено, Неопределено, ОписаниеФильтра.ВыборГруппИЭлементов), ВидСравнения); + + ПараметрыОткрытия = Новый Структура; + ПараметрыОткрытия.Вставить("Отмеченные", ПравоеЗначение); + ПараметрыОткрытия.Вставить("ОписаниеТипов", ПравоеЗначение.ТипЗначения); + ПараметрыОткрытия.Вставить("ЗначенияДляВыбора", Элемент.СписокВыбора); + ПараметрыОткрытия.Вставить("ЗначенияДляВыбораЗаполнены", Элемент.СписокВыбора.Количество() > 0); + ПараметрыОткрытия.Вставить("ОграничиватьВыборУказаннымиЗначениями", ДоступныеЗначения.Количество() > 0); + ПараметрыОткрытия.Вставить("Представление", СвойстваЗаголовка.Текст); + ПараметрыОткрытия.Вставить("ПараметрыВыбора", Новый Массив(ПараметрыВыбора)); + ПараметрыОткрытия.Вставить("ВыборГруппИЭлементов", ВыборГруппИЭлементов); + ПараметрыОткрытия.Вставить("БыстрыйВыбор", ?(ОписаниеФильтра = Неопределено, Ложь, ОписаниеФильтра.БыстрыйВыбор)); + + ОткрытьФорму("ОбщаяФорма.ВводЗначенийСпискомСФлажками", ПараметрыОткрытия, Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура ПравоеЗначениеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + Если ТипЗнч(ВыбранноеЗначение) <> Тип("СписокЗначений") Тогда + Возврат; + КонецЕсли; + + СтандартнаяОбработка = Ложь; + + ПравоеЗначение.Очистить(); + + Для Каждого Элемент Из ВыбранноеЗначение Цикл + + Если Элемент.Пометка Тогда + ЗаполнитьЗначенияСвойств(ПравоеЗначение.Добавить(), Элемент); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыЗначения + +&НаКлиенте +Процедура ЗначенияПриИзменении(Элемент) + + Использование = Ложь; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗначенияВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + Если Поле <> Элементы.ЗначенияЗначение Тогда + Возврат; + КонецЕсли; + + Строка = Значения.НайтиПоИдентификатору(ВыбраннаяСтрока); + + ПоказатьЗначение(Неопределено, Строка.Значение); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗначенияПометкаПриИзменении(Элемент) + + СнятьФильтрПоУсловию = Ложь; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ФильтроватьИСформировать(Команда) + + ПрименитьНастройки(Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура Фильтровать(Команда) + + ПрименитьНастройки(Команда); + +КонецПроцедуры + +#Область Сортировка + +&НаКлиенте +Процедура СортироватьПоВозрастанию(Команда) + + ВариантыОтчетовСлужебныйКлиент.Сортировать(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура СортироватьПоУбыванию(Команда) + + ВариантыОтчетовСлужебныйКлиент.Сортировать(ЭтотОбъект, Команда); + +КонецПроцедуры + +#КонецОбласти + +#Область Вставка + +&НаКлиенте +Процедура ВставитьПолеСлева(Команда) + + ВариантыОтчетовСлужебныйКлиент.ВставитьПолеСлева(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ВставитьПолеСправа(Команда) + + ВариантыОтчетовСлужебныйКлиент.ВставитьПолеСправа(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ВставитьГруппировкуВыше(Команда) + + ВариантыОтчетовСлужебныйКлиент.ВставитьГруппировкуВыше(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ВставитьГруппировкуНиже(Команда) + + ВариантыОтчетовСлужебныйКлиент.ВставитьГруппировкуНиже(ЭтотОбъект, Команда); + +КонецПроцедуры + +#КонецОбласти + +#Область Перемещение + +&НаКлиенте +Процедура ПереместитьПолеВлево(Команда) + + ВариантыОтчетовСлужебныйКлиент.ПереместитьПолеВлево(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ПереместитьПолеВправо(Команда) + + ВариантыОтчетовСлужебныйКлиент.ПереместитьПолеВправо(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ПереместитьПолеВыше(Команда) + + ВариантыОтчетовСлужебныйКлиент.ПереместитьПолеВыше(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ПереместитьПолеНиже(Команда) + + ВариантыОтчетовСлужебныйКлиент.ПереместитьПолеНиже(ЭтотОбъект, Команда); + +КонецПроцедуры + +#КонецОбласти + +#Область СкрытиеПереименование + +&НаКлиенте +Процедура СкрытьПоле(Команда) + + ВариантыОтчетовСлужебныйКлиент.СкрытьПоле(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ПереименоватьПоле(Команда) + + Если Не ЗначениеЗаполнено(ПредставлениеПоля) Тогда + + ОбщегоНазначенияКлиент.СообщитьПользователю( + НСтр("ru = 'Необходимо ввести новый заголовок поля'"),, "ПредставлениеПоля"); + Возврат; + + КонецЕсли; + + ВариантыОтчетовСлужебныйКлиент.ПереименоватьПоле(ЭтотОбъект, Команда, ПредставлениеПоля); + +КонецПроцедуры + +&НаКлиенте +Процедура ПредставлениеПоляНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ПредставлениеПоля = Элемент.ТекстРедактирования; + ПереименоватьПоле(Команды.Найти("ПереименоватьПоле")); + +КонецПроцедуры + +#КонецОбласти + +#Область УстановкаЦвета + +&НаКлиенте +Процедура ОформитьОтрицательные(Команда) + + ВариантыОтчетовСлужебныйКлиент.ОформитьКрасным(ЭтотОбъект, Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура ОформитьПоложительные(Команда) + + ВариантыОтчетовСлужебныйКлиент.ОформитьЗеленым(ЭтотОбъект, Команда); + +КонецПроцедуры + +#КонецОбласти + +#Область УстановкаШириныВысоты + +&НаКлиенте +Процедура УстановитьВысотуСтроки(Команда) + + Если Не ЗначениеЗаполнено(ВысотаСтроки) Тогда + + ОбщегоНазначенияКлиент.СообщитьПользователю( + НСтр("ru = 'Необходимо ввести высоту строки'"),, "ВысотаСтроки"); + Возврат; + + КонецЕсли; + + ВариантыОтчетовСлужебныйКлиент.УстановитьВысотуСтроки(ЭтотОбъект, Команда, СвойстваЗаголовка, ВысотаСтроки); + ОповеститьОВыборе(КомпоновщикНастроек.Настройки); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьШиринуКолонки(Команда) + + Если Не ЗначениеЗаполнено(ШиринаКолонки) Тогда + + ОбщегоНазначенияКлиент.СообщитьПользователю( + НСтр("ru = 'Необходимо ввести ширину колонки'"),, "ШиринаКолонки"); + Возврат; + + КонецЕсли; + + ВариантыОтчетовСлужебныйКлиент.УстановитьШиринуКолонки(ЭтотОбъект, Команда, СвойстваЗаголовка, ШиринаКолонки); + ОповеститьОВыборе(КомпоновщикНастроек.Настройки); + +КонецПроцедуры + +#КонецОбласти + +#Область Оформление + +&НаКлиенте +Процедура ОформитьЕще(Команда) + + ВариантыОтчетовСлужебныйКлиент.ОформитьЕще(ВладелецФормы, Команда); + Закрыть(); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура УстановитьУсловноеОформление() + + УсловноеОформление.Элементы.Очистить(); + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Значения.Значение"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено; + + Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '(Пустые)'")); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ЗначенияЗначение.Имя); + +КонецПроцедуры + +&НаСервере +Процедура ОпределитьПоведениеВМобильномКлиенте() + + ЭтоМобильныйКлиент = ОбщегоНазначения.ЭтоМобильныйКлиент(); + Если Не ЭтоМобильныйКлиент Тогда + Возврат; + КонецЕсли; + + ОсновныеКоманды = Элементы.КомандыОсновные.ПодчиненныеЭлементы; + + Для НомерКоманды = 1 По ОсновныеКоманды.Количество() Цикл + Элементы.Переместить(ОсновныеКоманды[0], Элементы.ФормаКоманднаяПанель); + КонецЦикла; + + Элементы.ФильтроватьИСформировать.Отображение = ОтображениеКнопки.Картинка; + +КонецПроцедуры + +#Область Инициализация + +&НаСервере +Процедура УстановитьСвойстваФильтраПоУсловию(ЗаголовокПоля) + + Элементы.ВидСравнения.ДоступныеТипы = Новый ОписаниеТипов("ВидСравненияКомпоновкиДанных"); + ВидыСравнения = Элементы.ВидСравнения.СписокВыбора; + + Если СвойстваЗаголовка.ТипЗначения <> Неопределено Тогда + Значения.ТипЗначения = СвойстваЗаголовка.ТипЗначения; + КонецЕсли; + + ОписаниеФильтра = ОписаниеФильтра(КомпоновщикНастроек, СвойстваЗаголовка); + + Если ОписаниеФильтра = Неопределено Тогда + + Для Каждого ТекущийВид Из ВидСравненияКомпоновкиДанных Цикл + ВидыСравнения.Добавить(ТекущийВид); + КонецЦикла; + Иначе + Для Каждого ТекущийВид Из ОписаниеФильтра.ДоступныеВидыСравнения Цикл + ЗаполнитьЗначенияСвойств(ВидыСравнения.Добавить(), ТекущийВид); + КонецЦикла; + + Значения.ТипЗначения = ОписаниеФильтра.ТипЗначения; + Элементы.ЗначенияЗначение.ОграничениеТипа = Значения.ТипЗначения; + + Если ОписаниеФильтра.ДоступныеЗначения <> Неопределено Тогда + + ДоступныеЗначения.ТипЗначения = ОписаниеФильтра.ТипЗначения; + ДоступныеЗначения = ОписаниеФильтра.ДоступныеЗначения; + + КонецЕсли; + + КонецЕсли; + + ВидСравнения = ВидыСравнения[0].Значение; + +КонецПроцедуры + +&НаСервере +Процедура УточнитьДоступныеТипыЗначений() + + ДоступныеТипы = Значения.ТипЗначения.Типы(); + + Если ДоступныеТипы.Количество() = 0 Тогда + + Индексы = Новый Соответствие; + + Для Каждого Элемент Из Значения Цикл + + ТипЗначения = ТипЗнч(Элемент.Значение); + + Если Индексы[ТипЗначения] <> Неопределено Тогда + Продолжить; + КонецЕсли; + + ДоступныеТипы.Добавить(ТипЗначения); + Индексы.Вставить(ТипЗначения, Истина); + + КонецЦикла; + + Значения.ТипЗначения = Новый ОписаниеТипов(ДоступныеТипы); + + КонецЕсли; + + Фильтр = Фильтр(КомпоновщикНастроек, СвойстваЗаголовка); + + Если Фильтр <> Неопределено Тогда + ЗаполнитьЗначенияСвойств(ЭтотОбъект, Фильтр, "Использование, ВидСравнения, ПравоеЗначение"); + КонецЕсли; + + ЭтоСписок = (ТипЗнч(ПравоеЗначение) = Тип("СписокЗначений")); + + Если ЭтоСписок Тогда + + ПравоеЗначение.ТипЗначения = Значения.ТипЗначения; + ПравоеЗначение = Фильтр.ПравоеЗначение; + + УточнитьПравоеЗначение(ПравоеЗначение, ДоступныеЗначения); + + Иначе + + Элементы.ПравоеЗначение.ОграничениеТипа = Значения.ТипЗначения; + + КонецЕсли; + + ПолеПравогоЗначения = Элементы.ПравоеЗначение; + + Для Каждого Элемент Из ДоступныеЗначения Цикл + ЗаполнитьЗначенияСвойств(ПолеПравогоЗначения.СписокВыбора.Добавить(), Элемент); + КонецЦикла; + + ПолеПравогоЗначения.РежимВыбораИзСписка = Не ЭтоСписок + И (ПолеПравогоЗначения.СписокВыбора.Количество() > 0); + + ПолеПравогоЗначения.ВыбиратьТип = Не ЭтоСписок + И ДоступныеТипы.Количество() <> 1 + И Не ПолеПравогоЗначения.РежимВыбораИзСписка; + + ЭтоСтрока = Не ЭтоСписок + И ДоступныеТипы.Количество() = 1 + И ДоступныеТипы.Найти(Тип("Строка")) <> Неопределено; + + Элементы.ПравоеЗначение.КнопкаВыбора = Не ЭтоСтрока + И Не ПолеПравогоЗначения.РежимВыбораИзСписка; + + ОпределитьДоступностьПоляПравогоЗначения(ПолеПравогоЗначения, ВидСравнения); + +КонецПроцедуры + +&НаСервере +Процедура ОпределитьДоступностьДополнительныхВозможностей() + + ДействияДополнительныхВозможностей = ДействияДополнительныхВозможностей(); + + Для Каждого Действие Из ДействияДополнительныхВозможностей Цикл + Элементы[Действие].Доступность = СвойстваЗаголовка[Действие]; + КонецЦикла; + + СистемнаяИнформация = Новый СистемнаяИнформация; + + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.16.0") >= 0 Тогда + КартинкаВыбора = БиблиотекаКартинок["ОформлениеФлажок"]; + Иначе + КартинкаВыбора = БиблиотекаКартинок["ЗаписатьИЗакрыть"]; + КонецЕсли; + + Элементы.ПереименоватьПолеЕще.Картинка = КартинкаВыбора; + Элементы.УстановитьВысотуСтрокиЕще.Картинка = КартинкаВыбора; + Элементы.УстановитьШиринуКолонкиЕще.Картинка = КартинкаВыбора; + +КонецПроцедуры + +&НаСервере +Функция ДействияДополнительныхВозможностей() + + Действия = Новый Массив; + Действия.Добавить("ВставитьПолеСлева"); + Действия.Добавить("ВставитьПолеСправа"); + Действия.Добавить("ВставитьГруппировкуВыше"); + Действия.Добавить("ВставитьГруппировкуНиже"); + + Действия.Добавить("ПереместитьПолеВлево"); + Действия.Добавить("ПереместитьПолеВправо"); + Действия.Добавить("ПереместитьПолеВыше"); + Действия.Добавить("ПереместитьПолеНиже"); + + Действия.Добавить("СортироватьПоВозрастанию"); + Действия.Добавить("СортироватьПоУбыванию"); + + Действия.Добавить("ОформитьОтрицательные"); + Действия.Добавить("ОформитьПоложительные"); + + Возврат Действия; + +КонецФункции + +&НаКлиенте +Процедура ЗаполнитьЗначенияДополнительныхВозможностей() + + ПараметрыВысоты = ВариантыОтчетовСлужебныйКлиент.ПараметрыРазмераПоляОтчета(ЭтотОбъект, СвойстваЗаголовка); + ВысотаСтроки = ПараметрыВысоты.Размер; + + ПараметрыШирины = ВариантыОтчетовСлужебныйКлиент.ПараметрыРазмераПоляОтчета(ЭтотОбъект, СвойстваЗаголовка, "Ширина"); + ШиринаКолонки = ПараметрыШирины.Размер; + +КонецПроцедуры + +#Область ЗаполнениеЗначений + +&НаСервере +Процедура ЗаполнитьЗначения() + + ОпределитьВидыИерархииЗначений(); + + ДанныеРасшифровки = ПолучитьИзВременногоХранилища(Параметры.ДанныеРасшифровки); + + Если ТипЗнч(СвойстваЗаголовка.Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда + + ЗначениеЯчейки = ЗначениеЯчейки(СвойстваЗаголовка, ДанныеРасшифровки); + ЗаполнитьЗначенияСвойств(Значения.Добавить(), ЗначениеЯчейки); + Возврат; + + КонецЕсли; + + Документ = Параметры.Документ; + + СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета + Заголовки = СвойстваРезультата.Заголовки; + ГраницыРазделов = СвойстваРезультата.ГраницыРазделов; + + ДоступныеТипы = Значения.ТипЗначения; + КоличествоДоступныхТипов = ДоступныеТипы.Типы().Количество(); + + Индексы = Новый Соответствие; + + Для НомерСтроки = СвойстваЗаголовка.Низ + 1 По Документ.ВысотаТаблицы Цикл + + Граница = ГраницыРазделов.НайтиПоЗначению(НомерСтроки); + + Если Граница <> Неопределено + И Граница.Значение > НомерСтроки Тогда + + Прервать; + КонецЕсли; + + Ячейка = Документ.Область(НомерСтроки, СвойстваЗаголовка.Лево); + + Если Заголовки[Ячейка.Имя] <> Неопределено + Или Ячейка.ТипОбласти <> ТипОбластиЯчеекТабличногоДокумента.Прямоугольник + Или Не ЗначениеЗаполнено(Ячейка.Текст) Тогда + + Продолжить; + КонецЕсли; + + ЗначениеЯчейки = ЗначениеЯчейки(Ячейка, ДанныеРасшифровки); + + Если Индексы[ЗначениеЯчейки.Значение] <> Неопределено + Или (КоличествоДоступныхТипов > 0 + И Не ДоступныеТипы.СодержитТип(ТипЗнч(ЗначениеЯчейки.Значение))) Тогда + + Продолжить; + КонецЕсли; + + Индексы.Вставить(ЗначениеЯчейки.Значение, Истина); + + ДоступноеЗначение = ДоступныеЗначения.НайтиПоЗначению(ЗначениеЯчейки.Значение); + + Если ДоступноеЗначение = Неопределено Тогда + + ЗаполнитьЗначенияСвойств(Значения.Добавить(), ЗначениеЯчейки); + + Иначе + + ДоступноеЗначение.Пометка = Истина; + ЗаполнитьЗначенияСвойств(Значения.Добавить(), ДоступноеЗначение); + + КонецЕсли; + + КонецЦикла; + + ДополнитьЗначенияИзКэша(); + + Значения.СортироватьПоЗначению(); + +КонецПроцедуры + +// Параметры: +// Ячейка - ОбластьЯчеекТабличногоДокумента +// ДанныеРасшифровки - ДанныеРасшифровкиКомпоновкиДанных +// +// Возвращаемое значение: +// Структура: +// * Представление - Строка +// +&НаСервере +Функция ЗначениеЯчейки(Ячейка, ДанныеРасшифровки) + + ЗначениеЯчейки = СтандартноеЗначениеЯчейки(Ячейка.Текст); + + ДоступныеТипы = Значения.ТипЗначения; + КоличествоДоступныхТипов = ДоступныеТипы.Типы().Количество(); + + Если ТипЗнч(Ячейка.Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда + + ЭлементРасшифровки = ДанныеРасшифровки.Элементы[Ячейка.Расшифровка]; + Поля = ЭлементРасшифровки.ПолучитьПоля(); + + Если Поля.Количество() > 0 Тогда + + Значение = Поля[0].Значение; + + Если КоличествоДоступныхТипов = 0 Тогда + + ЗначениеЯчейки.Значение = Значение; + + ИначеЕсли ЗначениеЗаполнено(Значение) + И Не ДоступныеТипы.СодержитТип(ТипЗнч(Значение)) Тогда + + ЗначениеЯчейки.Значение = Null; + + ИначеЕсли Значение = Null Тогда + + ЗначениеЯчейки.Значение = ДоступныеТипы.ПривестиЗначение(Ячейка.Текст); + + Иначе + + ЗначениеЯчейки.Значение = ДоступныеТипы.ПривестиЗначение(Значение); + + КонецЕсли; + + Если ЗначениеЯчейки.Значение = Неопределено Тогда + ЗначениеЯчейки.Значение = Null; + КонецЕсли; + + Возврат ЗначениеЯчейки; + + КонецЕсли; + + КонецЕсли; + + Если ЭтоЧисло(Ячейка.Текст) Тогда + + ОписаниеЧисла = Новый ОписаниеТипов("Число"); + ЗначениеЯчейки.Значение = ОписаниеЧисла.ПривестиЗначение(Ячейка.Текст); + Возврат ЗначениеЯчейки; + + КонецЕсли; + + Возврат ЗначениеЯчейки; + +КонецФункции + +// Параметры: +// Значение - Строка +// +// Возвращаемое значение: +// Структура: +// * Значение - Строка +// * Представление - Строка +// * Пометка - Булево +// +&НаСервере +Функция СтандартноеЗначениеЯчейки(Значение) + + ЗначениеЯчейки = Новый Структура; + ЗначениеЯчейки.Вставить("Значение", Значение); + ЗначениеЯчейки.Вставить("Представление", Значение); + ЗначениеЯчейки.Вставить("Пометка", Истина); + + Возврат ЗначениеЯчейки; + +КонецФункции + +&НаСервере +Функция ЭтоЧисло(Знач ПроверяемоеЗначение) + + Если ПроверяемоеЗначение = "0" Тогда + Возврат Истина; + КонецЕсли; + + ОписаниеЧисла = Новый ОписаниеТипов("Число"); + + Возврат ОписаниеЧисла.ПривестиЗначение(ПроверяемоеЗначение) <> 0; + +КонецФункции + +&НаСервере +Процедура ДополнитьЗначенияИзКэша() + + Фильтр = Фильтр(КомпоновщикНастроек, СвойстваЗаголовка); + + Если Фильтр = Неопределено Тогда + Возврат; + КонецЕсли; + + КэшЗначенийОтборов = НастройкиОтчета.КэшЗначенийОтборов; + + Если ЗначениеЗаполнено(Фильтр.ИдентификаторПользовательскойНастройки) Тогда + ЗначениеФильтра = КэшЗначенийОтборов[Фильтр.ИдентификаторПользовательскойНастройки]; + КонецЕсли; + + Если ЗначениеФильтра <> Неопределено Тогда + + ЗначенияФильтра = ОтчетыКлиентСервер.ЗначенияСписком(ЗначениеФильтра); + ОтчетыКлиентСервер.ДополнитьСписок(Значения, ЗначенияФильтра); + Возврат; + + КонецЕсли; + + ФильтрОсновныхНастроек = Неопределено; + + Если ЗначениеЗаполнено(Фильтр.ИдентификаторПользовательскойНастройки) Тогда + + НайденныеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки.ПолучитьОсновныеНастройкиПоИдентификаторуПользовательскойНастройки( + Фильтр.ИдентификаторПользовательскойНастройки); + + Если НайденныеНастройки.Количество() > 0 Тогда + ФильтрОсновныхНастроек = НайденныеНастройки[0]; + КонецЕсли; + + Иначе + ФильтрОсновныхНастроек = Фильтр; + КонецЕсли; + + Если ТипЗнч(ФильтрОсновныхНастроек) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда + ЗначениеФильтра = КэшЗначенийОтборов[ФильтрОсновныхНастроек.ЛевоеЗначение]; + КонецЕсли; + + Если ЗначениеФильтра <> Неопределено Тогда + + ЗначенияФильтра = ОтчетыКлиентСервер.ЗначенияСписком(ЗначениеФильтра); + ОтчетыКлиентСервер.ДополнитьСписок(Значения, ЗначенияФильтра); + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ОбновитьИндексыГруппИЭлементов() + + ИндексыГруппИЭлементов = СтандартныеИндексыГруппИЭлементов(); + + Для Каждого Элемент Из Значения Цикл + + Значение = Элемент.Значение; + + Если Не ЗначениеЗаполнено(Значение) + Или Не ОбщегоНазначения.ЭтоСсылка(ТипЗнч(Значение)) Тогда + + Продолжить; + КонецЕсли; + + МетаданныеЗначения = Значение.Метаданные(); + + Если Не ОбщегоНазначения.ЭтоСправочник(МетаданныеЗначения) + И Не ОбщегоНазначения.ЭтоПланВидовХарактеристик(МетаданныеЗначения) Тогда + + Продолжить; + КонецЕсли; + + СвойстваЗначения = Новый Структура("ЭтоГруппа"); + ЗаполнитьЗначенияСвойств(СвойстваЗначения, Значение); + + Если СвойстваЗначения.ЭтоГруппа = Истина Тогда + ИндексыГруппИЭлементов.Группы.Вставить(Значение, Истина); + Иначе + ИндексыГруппИЭлементов.Элементы.Вставить(Значение, Истина); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +// Возвращаемое значение: +// Структура: +// * Группы - Соответствие +// * Элементы - Соответствие +// +&НаСервере +Функция СтандартныеИндексыГруппИЭлементов() + + Индексы = Новый Структура; + Индексы.Вставить("Группы", Новый Соответствие); + Индексы.Вставить("Элементы", Новый Соответствие); + + Возврат Индексы; + +КонецФункции + +&НаСервере +Процедура ОпределитьВидыИерархииЗначений() + + ВидыИерархииЗначений = Новый Соответствие; + + ВидыИерархии = Метаданные.СвойстваОбъектов.ВидИерархии; + ТипыЗначений = Значения.ТипЗначения.Типы(); + + Для Каждого ТипЗначения Из ТипыЗначений Цикл + + Если Не ОбщегоНазначения.ЭтоСсылка(ТипЗначения) Тогда + Продолжить; + КонецЕсли; + + МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипЗначения); + + Если Не ОбщегоНазначения.ЭтоСправочник(МетаданныеОбъекта) + И Не ОбщегоНазначения.ЭтоПланВидовХарактеристик(МетаданныеОбъекта) Тогда + + Продолжить; + КонецЕсли; + + Если МетаданныеОбъекта.ВидИерархии = ВидыИерархии.ИерархияГруппИЭлементов Тогда + ВидИерархии = ВидИерархииИерархияГруппИЭлементов(); + Иначе + ВидИерархии = ВидИерархииИерархияЭлементов(); + КонецЕсли; + + + ВидыИерархииЗначений.Вставить(ТипЗначения, ВидИерархии); + + КонецЦикла; + + НастройкиОтчета.Вставить("ВидыИерархииЗначений", ВидыИерархииЗначений); + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Функция ВидИерархииИерархияГруппИЭлементов() + + Возврат "ИерархияГруппИЭлементов"; + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Функция ВидИерархииИерархияЭлементов() + + Возврат "ИерархияЭлементов"; + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +&НаКлиенте +Процедура ПослеВыбораПоля(ВыбранноеПоле, ДополнительныеПараметры) Экспорт + + ВариантыОтчетовСлужебныйКлиент.ПослеВыбораПоля(ВыбранноеПоле, ДополнительныеПараметры); + + Если ТипЗнч(ВыбранноеПоле) = Тип("ДоступноеПолеКомпоновкиДанных") Тогда + ОповеститьОВыборе(КомпоновщикНастроек.Настройки); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПрименитьНастройки(Команда) + + Отказ = Ложь; + + Если СнятьФильтрПоУсловию Тогда + ВариантыОтчетовСлужебныйКлиент.СнятьФильтр(ЭтотОбъект, СвойстваЗаголовка); + Иначе + ПрименитьФильтр(Отказ); + КонецЕсли; + + Результат = ВариантыОтчетовСлужебныйКлиент.СтандартныйРезультатНастройкиИзКонтекстногоМеню( + КомпоновщикНастроек, Команда.Действие, ВладелецФормы.УникальныйИдентификатор); + + Если Не Отказ Тогда + ОповеститьОВыборе(Результат); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПрименитьФильтр(Отказ) + + Фильтр = Фильтр(КомпоновщикНастроек, СвойстваЗаголовка); + + Если Фильтр = Неопределено Тогда + + Фильтры = ВариантыОтчетовСлужебныйКлиентСервер.ФильтрыРазделаОтчета( + КомпоновщикНастроек.Настройки, СвойстваЗаголовка); + + Фильтр = Фильтры.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + Фильтр.ЛевоеЗначение = СвойстваЗаголовка.Поле; + + КонецЕсли; + + Фильтр.Использование = Истина; + + Если Использование Тогда + + Фильтр.ВидСравнения = ВидСравнения; + Фильтр.ПравоеЗначение = ПравоеЗначение; + Возврат; + + КонецЕсли; + + СписокПомеченных = Новый СписокЗначений; + СписокНепомеченных = Новый СписокЗначений; + + Для Каждого Элемент Из Значения Цикл + + Если Элемент.Пометка Тогда + ЗаполнитьЗначенияСвойств(СписокПомеченных.Добавить(), Элемент); + Иначе + ЗаполнитьЗначенияСвойств(СписокНепомеченных.Добавить(), Элемент); + КонецЕсли; + + КонецЦикла; + + Если СписокНепомеченных.Количество() = 0 Тогда + + НастройкиОтчета.СвойстваРезультата.ИтоговыеНастройки = КомпоновщикНастроек.Настройки; + ВариантыОтчетовСлужебныйКлиент.СнятьФильтр(ЭтотОбъект, СвойстваЗаголовка); + Фильтр = Неопределено; + + ИначеЕсли СписокНепомеченных.Количество() = 1 Тогда + + Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно; + Фильтр.ПравоеЗначение = СписокНепомеченных[0].Значение; + + ИначеЕсли СписокПомеченных.Количество() = 0 + Или СписокПомеченных.Количество() > СписокНепомеченных.Количество() Тогда + + Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке; + Фильтр.ПравоеЗначение = СписокНепомеченных; + + Иначе + + Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; + Фильтр.ПравоеЗначение = СписокПомеченных; + + КонецЕсли; + + Если ТипЗнч(Фильтр) <> Тип("ЭлементОтбораКомпоновкиДанных") Тогда + Возврат; + КонецЕсли; + + УточнитьУсловиеФильтра(Фильтр, Отказ); + ОтчетыКлиент.КэшироватьЗначениеОтбора(КомпоновщикНастроек, Фильтр, Значения); + +КонецПроцедуры + +&НаКлиенте +Процедура УточнитьУсловиеФильтра(Фильтр, Отказ) + + ИспользуютсяГруппы = Ложь; + ИспользуютсяЭлементы = Ложь; + + ЗначенияФильтра = ОтчетыКлиентСервер.ЗначенияСписком(Фильтр.ПравоеЗначение, Истина); + + Если ЗначенияФильтра.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + ПроверитьИспользованиеГруппИЭлементов(ЗначенияФильтра, ИспользуютсяГруппы, ИспользуютсяЭлементы); + + Если Не ИспользуютсяГруппы + И ИспользуютсяЭлементы Тогда + + Возврат; + КонецЕсли; + + Если ИспользуютсяГруппы + И ИспользуютсяЭлементы Тогда + + Отказ = Истина; + + ТекстПредупреждения = НСтр("ru = 'В списке выбраны группы и элементы. + |Необходимо выбрать только группы или только элементы.'"); + + ПоказатьПредупреждение(, ТекстПредупреждения); + Возврат; + + КонецЕсли; + + Если Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно Тогда + + Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВИерархии; + + ИначеЕсли Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке Тогда + + Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСпискеПоИерархии; + + Иначе + Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПроверитьИспользованиеГруппИЭлементов(ЗначенияФильтра, ИспользуютсяГруппы, ИспользуютсяЭлементы) + + Если ИндексыГруппИЭлементов.Группы.Количество() = 0 + И ИндексыГруппИЭлементов.Элементы.Количество() = 0 Тогда + + Возврат; + КонецЕсли; + + ТипГруппировкиПоля = ТипГруппировкиПоля(); + ВидыИерархииЗначений = НастройкиОтчета.ВидыИерархииЗначений; + + Для Каждого Элемент Из ЗначенияФильтра Цикл + + Если ИндексыГруппИЭлементов.Группы[Элемент.Значение] = Истина + Или (ИндексыГруппИЭлементов.Элементы[Элемент.Значение] = Истина + И ТипГруппировкиПоля <> ТипГруппировкиКомпоновкиДанных.Элементы + И ВидыИерархииЗначений[ТипЗнч(Элемент.Значение)] = ВидИерархииИерархияЭлементов()) Тогда + + ИспользуютсяГруппы = Истина; + + ИначеЕсли ИндексыГруппИЭлементов.Элементы[Элемент.Значение] = Истина Тогда + + ИспользуютсяЭлементы = Истина; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Функция ТипГруппировкиПоля() + + ТипГруппировкиПоля = ТипГруппировкиКомпоновкиДанных.Элементы; + ТекущаяГруппировка = КомпоновщикНастроек.Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторГруппировки); + + Если ТипЗнч(ТекущаяГруппировка) <> Тип("ГруппировкаКомпоновкиДанных") + И ТипЗнч(ТекущаяГруппировка) <> Тип("ГруппировкаТаблицыКомпоновкиДанных") Тогда + + Возврат ТипГруппировкиПоля; + КонецЕсли; + + ПолеГруппировки = ВариантыОтчетовСлужебныйКлиент.ПолеОтчета(ТекущаяГруппировка.ПоляГруппировки, СвойстваЗаголовка.Поле); + + Если ПолеГруппировки = Неопределено Тогда + Возврат ТипГруппировкиПоля; + КонецЕсли; + + Возврат ПолеГруппировки.ТипГруппировки; + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Функция Фильтр(КомпоновщикНастроек, СвойстваЗаголовка, Фильтры = Неопределено) + + Если Фильтры = Неопределено Тогда + Фильтры = ВариантыОтчетовСлужебныйКлиентСервер.ФильтрыРазделаОтчета(КомпоновщикНастроек.Настройки, СвойстваЗаголовка); + КонецЕсли; + + Возврат ВариантыОтчетовСлужебныйКлиентСервер.ФильтрРазделаОтчета(Фильтры, СвойстваЗаголовка.Поле); + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Функция ОписаниеФильтра(КомпоновщикНастроек, СвойстваЗаголовка) + + ОписаниеФильтра = Неопределено; + + Если СвойстваЗаголовка.Поле <> Неопределено Тогда + ОписаниеФильтра = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(СвойстваЗаголовка.Поле); + КонецЕсли; + + Возврат ОписаниеФильтра; + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Процедура УточнитьПравоеЗначение(ПравоеЗначение, ДоступныеЗначения) + + Если ТипЗнч(ПравоеЗначение) <> Тип("СписокЗначений") Тогда + Возврат; + КонецЕсли; + + Для Каждого Элемент Из ПравоеЗначение Цикл + + ДоступноеЗначение = ДоступныеЗначения.НайтиПоЗначению(Элемент.Значение); + + Если ДоступноеЗначение <> Неопределено Тогда + ЗаполнитьЗначенияСвойств(Элемент, ДоступноеЗначение); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Процедура ОпределитьДоступностьПоляПравогоЗначения(Поле, ВидСравнения) + + Поле.Доступность = ВидСравнения <> ВидСравненияКомпоновкиДанных.Заполнено + И ВидСравнения <> ВидСравненияКомпоновкиДанных.НеЗаполнено; + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ПанельДругихОтчетов/Form.form b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ПанельДругихОтчетов/Form.form index c9a01c922..aebef3e04 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ПанельДругихОтчетов/Form.form +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ПанельДругихОтчетов/Form.form @@ -46,10 +46,6 @@ true - - <key>ru</key> - <value>Другие отчеты</value> - СтраницаДругиеОтчетыРасширеннаяПодсказка 2 @@ -173,10 +169,6 @@ true - - <key>ru</key> - <value>Командная панель</value> - ГруппаКоманднаяПанельРасширеннаяПодсказка 11 @@ -198,10 +190,6 @@ true - - <key>ru</key> - <value>Подвал</value> - false ГруппаПодвалРасширеннаяПодсказка diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/РасширеннаяНастройкаФильтраОтчета/Form.form b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/РасширеннаяНастройкаФильтраОтчета/Form.form new file mode 100644 index 000000000..f2e8e3242 --- /dev/null +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/РасширеннаяНастройкаФильтраОтчета/Form.form @@ -0,0 +1,1259 @@ + + + + <key>ru</key> + <value>Фильтровать по</value> + + + ЭлементОтбора1 + 1 + + Использование1 + 44 + true + + true + + + Использование1 + + None + + Использование1РасширеннаяПодсказка + 46 + Label + true + true + + Left + + + + Использование1КонтекстноеМеню + 45 + true + + CheckBoxField + Enter + true + Left + true + + + + ГруппаЛевоеЗначение1 + 58 + + ЛевоеЗначение1 + 24 + true + + true + + + ЛевоеЗначение1 + + None + + ЛевоеЗначение1РасширеннаяПодсказка + 26 + Label + true + true + + Left + + + + ЛевоеЗначение1КонтекстноеМеню + 25 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + ru + Поле + + + + + ПредставлениеЛевогоЗначения1 + 60 + true + true + + true + + + ПредставлениеЛевогоЗначения1 + + None + + ПредставлениеЛевогоЗначения1РасширеннаяПодсказка + 62 + Label + true + true + + Left + + + + ПредставлениеЛевогоЗначения1КонтекстноеМеню + 61 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + ru + Поле + + + + true + true + + true + + + <key>ru</key> + <value>Левое значение 1</value> + + + ГруппаЛевоеЗначение1РасширеннаяПодсказка + 59 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + + ВидСравнения1 + 5 + true + true + + true + + + ВидСравнения1 + + None + + OnChange + ВидСравнения1ПриИзменении + + + ВидСравнения1РасширеннаяПодсказка + 7 + Label + true + true + + Left + + + + ВидСравнения1КонтекстноеМеню + 6 + true + + InputField + Enter + true + Left + true + + 15 + 15 + true + true + false + true + true + true + true + Normal + + ru + Условие + + + + + ПравоеЗначение1 + 8 + true + true + + true + + + ПравоеЗначение1 + + None + + ПравоеЗначение1РасширеннаяПодсказка + 10 + Label + true + true + + Left + + + + ПравоеЗначение1КонтекстноеМеню + 9 + true + + InputField + Enter + true + Left + true + + + StartChoice + ПравоеЗначение1НачалоВыбора + + + ChoiceProcessing + ПравоеЗначение1ОбработкаВыбора + + true + true + true + true + true + true + Normal + + ru + Значение + + + + true + true + + true + + + <key>ru</key> + <value>Элемент отбора 1</value> + + + ЭлементОтбора1РасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + Auto + Auto + + + + Дополнительно + 30 + + ИспользованиеГруппы + 47 + true + true + + true + + + ИспользованиеГруппы + + None + + OnChange + ИспользованиеГруппыПриИзменении + + + ИспользованиеГруппыРасширеннаяПодсказка + 49 + Label + true + true + + Left + + + + ИспользованиеГруппыКонтекстноеМеню + 48 + true + + CheckBoxField + Enter + true + Left + true + + + + ТипГруппыЭлементовФильтра + 17 + + <key>ru</key> + <value>Условие</value> + + true + true + + true + + + ТипГруппыЭлементовФильтра + + + OnChange + ТипГруппыЭлементовФильтраПриИзменении + + + ТипГруппыЭлементовФильтраРасширеннаяПодсказка + 19 + Label + true + true + + Left + + + + ТипГруппыЭлементовФильтраКонтекстноеМеню + 18 + true + + InputField + Enter + true + Left + true + + 4 + true + true + false + true + true + true + true + true + + + ru + И + + + ГруппаИ + + + + + ru + Или + + + ГруппаИли + + + Normal + 4 + + + true + true + + true + + + <key>ru</key> + <value>Еще</value> + + + ДополнительноРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + Button + true + true + Auto + Auto + + + + ЭлементОтбора2 + 3 + + ГруппаЛевоеЗначение2 + 63 + + ЛевоеЗначение2 + 27 + true + + true + + + ЛевоеЗначение2 + + None + + OnChange + ЛевоеЗначение2ПриИзменении + + + ЛевоеЗначение2РасширеннаяПодсказка + 29 + Label + true + true + + Left + + + + ЛевоеЗначение2КонтекстноеМеню + 28 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + ru + Поле + + + + + ПредставлениеЛевогоЗначения2 + 65 + true + true + + true + + + ПредставлениеЛевогоЗначения2 + + None + + ПредставлениеЛевогоЗначения2РасширеннаяПодсказка + 67 + Label + true + true + + Left + + + + ПредставлениеЛевогоЗначения2КонтекстноеМеню + 66 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + ru + Поле + + + + true + true + + true + + + <key>ru</key> + <value>Левое значение 2</value> + + + ГруппаЛевоеЗначение2РасширеннаяПодсказка + 64 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + true + true + Auto + Auto + + + + ВидСравнения2 + 11 + true + true + + true + + + ВидСравнения2 + + None + + OnChange + ВидСравнения2ПриИзменении + + + ВидСравнения2РасширеннаяПодсказка + 13 + Label + true + true + + Left + + + + ВидСравнения2КонтекстноеМеню + 12 + true + + InputField + Enter + true + Left + true + + 15 + 15 + true + true + false + true + true + true + true + Normal + + ru + Условие + + + + + ПравоеЗначение2 + 14 + true + true + + true + + + ПравоеЗначение2 + + None + + OnChange + ПравоеЗначение2ПриИзменении + + + ПравоеЗначение2РасширеннаяПодсказка + 16 + Label + true + true + + Left + + + + ПравоеЗначение2КонтекстноеМеню + 15 + true + + InputField + Enter + true + Left + true + + + StartChoice + ПравоеЗначение2НачалоВыбора + + + ChoiceProcessing + ПравоеЗначение2ОбработкаВыбора + + true + true + true + true + true + true + Normal + + ru + Значение + + + + true + true + + true + + + <key>ru</key> + <value>Элемент отбора 2</value> + + + ЭлементОтбора2РасширеннаяПодсказка + 4 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + Auto + Auto + + + + КоманднаяПанель + 68 + + ПерейтиКРасширеннымНастройкам + 72 + true + true + + true + + + ПерейтиКРасширеннымНастройкамРасширеннаяПодсказка + 73 + Label + true + true + + Left + + + Hyperlink + Form.Command.ПерейтиКРасширеннымНастройкам + Normal + Auto + true + true + UserCmds + Auto + + + КомандыОсновные + 70 + + ФильтроватьИСформировать + 56 + VeryHigh + true + true + + true + + + ФильтроватьИСформироватьРасширеннаяПодсказка + 57 + Label + true + true + + Left + + + Form.Command.ФильтроватьИСформировать + true + true + true + UserCmds + Auto + + + Фильтровать + 54 + true + true + + true + + + ФильтроватьРасширеннаяПодсказка + 55 + Label + true + true + + Left + + + Form.Command.Фильтровать + Normal + Auto + true + true + UserCmds + Auto + + + Отмена + 52 + true + true + + true + + + ОтменаРасширеннаяПодсказка + 53 + Label + true + true + + Left + + + Form.StandardCommand.Cancel + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Команды основные</value> + + + КомандыОсновныеРасширеннаяПодсказка + 71 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Командная панель</value> + + Bottom + + КоманднаяПанельРасширеннаяПодсказка + 69 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + NormalSeparation + true + true + Auto + Auto + + + + ФормаКоманднаяПанель + -1 + Right + + + OnOpen + ПриОткрытии + + + OnCreateAtServer + ПриСозданииНаСервере + + LockOwner + true + true + Vertical + true + true + true + auto + true + + ВидСравнения1 + + <key>ru</key> + <value>Вид сравнения 1</value> + + 1 + + + true + + + true + + + + ПравоеЗначение1 + + <key>ru</key> + <value>Правое значение 1</value> + + 2 + + + true + + + true + + + + ВидСравнения2 + + <key>ru</key> + <value>Вид сравнения 2</value> + + 3 + + + true + + + true + + + + ПравоеЗначение2 + + <key>ru</key> + <value>Правое значение 2</value> + + 4 + + + true + + + true + + + + ТипГруппыЭлементовФильтра + + <key>ru</key> + <value>Тип группы элементов фильтра</value> + + 5 + + String + + 50 + + + + true + + + true + + + + ЛевоеЗначение1 + + <key>ru</key> + <value>Левое значение 1</value> + + 6 + + + true + + + true + + + + ЛевоеЗначение2 + + <key>ru</key> + <value>Левое значение 2</value> + + 7 + + + true + + + true + + + + Использование1 + + <key>ru</key> + <value>Использование 1</value> + + 8 + + Boolean + + + true + + + true + + + + Использование2 + 9 + + Boolean + + + true + + + true + + + + КомпоновщикНастроек + 10 + + DataCompositionSettingsComposer + + + true + + + true + + + + СвойстваЗаголовка + 11 + + + true + + + true + + + + ПредставлениеЛевогоЗначения1 + + <key>ru</key> + <value>Представление левого значения 1</value> + + 12 + + String + + + + true + + + true + + + + ПредставлениеЛевогоЗначения2 + + <key>ru</key> + <value>Представление левого значения 2</value> + + 13 + + String + + + + true + + + true + + + + ТипЗначенияФильтра + 14 + + TypeDescription + + + true + + + true + + + + ДоступныеЗначения + 15 + + ValueList + + + true + + + true + + + + + + + НастройкиОтчета + 16 + + + true + + + true + + + + КлючТекущегоВарианта + 17 + + String + + + + true + + + true + + + + ИспользованиеГруппы + + <key>ru</key> + <value>Использование группы</value> + + 18 + + Boolean + + + true + + + true + + + + Фильтровать + + <key>ru</key> + <value>Применить</value> + + 1 + + true + + + + Фильтровать + + + Auto + Auto + + + ФильтроватьИСформировать + + <key>ru</key> + <value>Применить и сформировать</value> + + 2 + + true + + + StdPicture.GenerateReport + + + + ФильтроватьИСформировать + + + Auto + Auto + + + ПерейтиКРасширеннымНастройкам + + <key>ru</key> + <value>Больше возможностей</value> + + 3 + + ru + Перейти к расширенным настройкам фильтра + + + true + + + + ПерейтиКРасширеннымНастройкам + + + Auto + Auto + + + СвойстваЗаголовка + + + + НастройкиОтчета + + + + КлючТекущегоВарианта + + String + + + + + + + + diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/РасширеннаяНастройкаФильтраОтчета/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/РасширеннаяНастройкаФильтраОтчета/Module.bsl new file mode 100644 index 000000000..d57329632 --- /dev/null +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/РасширеннаяНастройкаФильтраОтчета/Module.bsl @@ -0,0 +1,670 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2020, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ОпределитьПоведениеВМобильномКлиенте(); + + ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, "НастройкиОтчета, КлючТекущегоВарианта"); + + КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(НастройкиОтчета.АдресСхемы)); + КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета.СвойстваРезультата.ИтоговыеНастройки); + + СвойстваЗаголовка = Параметры.СвойстваЗаголовка; + + ИнициализироватьДанныеФормы(); + + УстановитьУсловноеОформление(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + ПривестиПравыеЗначенияКУсловию(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовФормы + +&НаКлиенте +Процедура ТипГруппыЭлементовФильтраПриИзменении(Элемент) + + ИспользованиеГруппы = Истина; + Использование2 = Истина; + +КонецПроцедуры + +&НаКлиенте +Процедура ВидСравнения1ПриИзменении(Элемент) + + ПривестиПравоеЗначениеКУсловию(1); + +КонецПроцедуры + +&НаКлиенте +Процедура ПравоеЗначение1НачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + ПравоеЗначениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура ПравоеЗначение1ОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + ПравоеЗначениеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + +КонецПроцедуры + +&НаКлиенте +Процедура ИспользованиеГруппыПриИзменении(Элемент) + + Использование2 = ИспользованиеГруппы; + +КонецПроцедуры + +&НаКлиенте +Процедура ЛевоеЗначение2ПриИзменении(Элемент) + + Если ЗначениеЗаполнено(ЛевоеЗначение2) Тогда + + ИспользованиеГруппы = Истина; + Использование2 = Истина; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВидСравнения2ПриИзменении(Элемент) + + ИспользованиеГруппы = Истина; + Использование2 = Истина; + + ПривестиПравоеЗначениеКУсловию(2); + +КонецПроцедуры + +&НаКлиенте +Процедура ПравоеЗначение2ПриИзменении(Элемент) + + ИспользованиеГруппы = Истина; + Использование2 = Истина; + +КонецПроцедуры + +&НаКлиенте +Процедура ПравоеЗначение2НачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + ПравоеЗначениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура ПравоеЗначение2ОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + ПравоеЗначениеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ПерейтиКРасширеннымНастройкам(Команда) + + Настройки = КомпоновщикНастроек.Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторНастроек); + ГруппировкаФильтра = ВариантыОтчетовСлужебныйКлиентСервер.ГруппировкаФильтра(Настройки, СвойстваЗаголовка); + ИдентификаторГруппировкаФильтра = Настройки.ПолучитьИдентификаторПоОбъекту(ГруппировкаФильтра); + + ПутьКЭлементуСтруктурыНастроек = ОтчетыКлиент.ПолныйПутьКЭлементуНастроек( + КомпоновщикНастроек.Настройки, ГруппировкаФильтра); + + ОписаниеНастроекОтчета = ОписаниеНастроекОтчета(НастройкиОтчета); + + ЗаголовокГруппировкаФильтра = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Фильтры группировки ""%1"" отчета ""%2""'"), + Строка(ГруппировкаФильтра.ПоляГруппировки), + ОписаниеНастроекОтчета.Наименование); + + ДобавитьФильтры(); + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("КлючВарианта", КлючТекущегоВарианта); + ПараметрыФормы.Вставить("Вариант", КомпоновщикНастроек.Настройки); + ПараметрыФормы.Вставить("ПользовательскиеНастройки", КомпоновщикНастроек.ПользовательскиеНастройки); + ПараметрыФормы.Вставить("НастройкиОтчета", НастройкиОтчета); + ПараметрыФормы.Вставить("ВариантНаименование", ОписаниеНастроекОтчета.Наименование); + ПараметрыФормы.Вставить("ИдентификаторЭлементаСтруктурыНастроек", ИдентификаторГруппировкаФильтра); + ПараметрыФормы.Вставить("ПутьКЭлементуСтруктурыНастроек", ПутьКЭлементуСтруктурыНастроек); + ПараметрыФормы.Вставить("ТипЭлементаСтруктурыНастроек", Строка(ТипЗнч(ГруппировкаФильтра))); + ПараметрыФормы.Вставить("Заголовок", ЗаголовокГруппировкаФильтра); + ПараметрыФормы.Вставить("ИмяСтраницы", "СтраницаОтборы"); + ПараметрыФормы.Вставить("ОтображатьСтраницы", Ложь); + + ОткрытьФорму(НастройкиОтчета.ПолноеИмя + ".ФормаНастроек", ПараметрыФормы, ВладелецФормы); + Закрыть(); + +КонецПроцедуры + +&НаКлиенте +Процедура ФильтроватьИСформировать(Команда) + + ПрименитьФильтры(Команда); + +КонецПроцедуры + +&НаКлиенте +Процедура Фильтровать(Команда) + + ПрименитьФильтры(Команда); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ОпределитьПоведениеВМобильномКлиенте() + + ЭтоМобильныйКлиент = ОбщегоНазначения.ЭтоМобильныйКлиент(); + Если Не ЭтоМобильныйКлиент Тогда + Возврат; + КонецЕсли; + + ОсновныеКоманды = Элементы.КомандыОсновные.ПодчиненныеЭлементы; + + Для НомерКоманды = 1 По ОсновныеКоманды.Количество() Цикл + Элементы.Переместить(ОсновныеКоманды[0], Элементы.ФормаКоманднаяПанель); + КонецЦикла; + + Элементы.ФильтроватьИСформировать.Отображение = ОтображениеКнопки.Картинка; + +КонецПроцедуры + +#Область Инициализация + +&НаСервере +Процедура УстановитьУсловноеОформление() + + УсловноеОформление.Элементы.Очистить(); + + // + Элемент = УсловноеОформление.Элементы.Добавить(); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПредставлениеЛевогоЗначения1"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено; + + Элемент.Оформление.УстановитьЗначениеПараметра("Текст", Новый ПолеКомпоновкиДанных("ЛевоеЗначение1")); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ЛевоеЗначение1.Имя); + + // + Элемент = УсловноеОформление.Элементы.Добавить(); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПредставлениеЛевогоЗначения2"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено; + + Элемент.Оформление.УстановитьЗначениеПараметра("Текст", Новый ПолеКомпоновкиДанных("ЛевоеЗначение2")); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ЛевоеЗначение2.Имя); + +КонецПроцедуры + +&НаСервере +Процедура ИнициализироватьДанныеФормы() + + Фильтры = Неопределено; + ОписаниеФильтра = ОписаниеФильтра(КомпоновщикНастроек, СвойстваЗаголовка, Фильтры); + + Если ОписаниеФильтра <> Неопределено Тогда + ТипЗначенияФильтра = ОписаниеФильтра.ТипЗначения; + КонецЕсли; + + УстановитьЛевоеЗначение(СвойстваЗаголовка.Поле, ОписаниеФильтра); + УстановитьДоступныеВидыСравнения(ОписаниеФильтра); + УстановитьПравоеЗначение(ОписаниеФильтра); + + ТипГруппыЭлементовФильтра = Элементы.ТипГруппыЭлементовФильтра.СписокВыбора[0].Значение; + + НайтиФильтры(Фильтры); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьЛевоеЗначение(Поле, ОписаниеФильтра) + + Если ОписаниеФильтра = Неопределено Тогда + ПредставлениеЛевогоЗначения = Строка(Поле); + Иначе + ПредставлениеЛевогоЗначения = ОписаниеФильтра.Заголовок; + КонецЕсли; + + Для НомерЭлемента = 1 По 2 Цикл + + ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + "ЛевоеЗначение%1", НомерЭлемента); + + ЭтотОбъект[ИмяЭлемента] = Поле; + Элементы[ИмяЭлемента].ОграничениеТипа = Новый ОписаниеТипов("ПолеКомпоновкиДанных"); + + ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + "ПредставлениеЛевогоЗначения%1", НомерЭлемента); + + ЭтотОбъект[ИмяЭлемента] = ПредставлениеЛевогоЗначения; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьДоступныеВидыСравнения(ОписаниеФильтра) + + Если ОписаниеФильтра = Неопределено Тогда + ВидыСравнения = ВидСравненияКомпоновкиДанных; + Иначе + ВидыСравнения = ОписаниеФильтра.ДоступныеВидыСравнения.ВыгрузитьЗначения(); + КонецЕсли; + + Для НомерЭлемента = 1 По 2 Цикл + + ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + "ВидСравнения%1", НомерЭлемента); + + Элементы[ИмяЭлемента].ДоступныеТипы = Новый ОписаниеТипов("ВидСравненияКомпоновкиДанных"); + + Список = Элементы[ИмяЭлемента].СписокВыбора; + + Для Каждого ТекущийВид Из ВидыСравнения Цикл + Список.Добавить(ТекущийВид); + КонецЦикла; + + ЭтотОбъект[ИмяЭлемента] = Список[0].Значение; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьПравоеЗначение(ОписаниеФильтра) + + Если ОписаниеФильтра <> Неопределено + И ОписаниеФильтра.ДоступныеЗначения <> Неопределено Тогда + + ДоступныеЗначения = ОписаниеФильтра.ДоступныеЗначения; + КонецЕсли; + + Для НомерЭлемента = 1 По 2 Цикл + + ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + "ПравоеЗначение%1", НомерЭлемента); + + ПолеПравогоЗначения = Элементы[ИмяЭлемента]; + ПолеПравогоЗначения.СписокВыбора.Очистить(); + + Для Каждого ДоступноеЗначение Из ДоступныеЗначения Цикл + ЗаполнитьЗначенияСвойств(ПолеПравогоЗначения.СписокВыбора.Добавить(), ДоступноеЗначение); + КонецЦикла; + + ПолеПравогоЗначения.РежимВыбораИзСписка = ПолеПравогоЗначения.СписокВыбора.Количество() > 0; + + Условие = ЭтотОбъект[СтрШаблон("ВидСравнения%1", НомерЭлемента)]; + ОпределитьДоступностьПоляПравогоЗначения(ПолеПравогоЗначения, Условие); + + КонецЦикла; + + Если Параметры.Свойство("ПравоеЗначение") + И ЗначениеЗаполнено(Параметры.ПравоеЗначение) Тогда + + ПравоеЗначение1 = Параметры.ПравоеЗначение; + КонецЕсли; + +КонецПроцедуры + +// Параметры: +// Фильтр - ОтборКомпоновкиДанных +// +&НаСервере +Процедура НайтиФильтры(Фильтр) + + Для Каждого Элемент Из Фильтр.Элементы Цикл + + Если ТипЗнч(Элемент) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда + + ИспользованиеГруппы = Элемент.Использование; + ЭлементыГруппы = Элемент.Элементы; + + Если ЭлементыГруппы.Количество() <> 2 + Или ЭлементыГруппы[0].ЛевоеЗначение <> ЛевоеЗначение1 + Или ЭлементыГруппы[1].ЛевоеЗначение <> ЛевоеЗначение2 Тогда + + Продолжить; + КонецЕсли; + + УстановитьСвойстваФильтра(ЭлементыГруппы[0], 1); + УстановитьСвойстваФильтра(ЭлементыГруппы[1], 2); + + ТипГруппыЭлементовФильтра = СтрЗаменить(Элемент.ТипГруппы, " ", ""); + + ИначеЕсли Элемент.ЛевоеЗначение = ЛевоеЗначение1 Тогда + + УстановитьСвойстваФильтра(Элемент, 1); + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьСвойстваФильтра(Фильтр, НомерЭлемента) + + ЭтотОбъект[СтрШаблон("Использование%1", НомерЭлемента)] = Фильтр.Использование; + ЭтотОбъект[СтрШаблон("ВидСравнения%1", НомерЭлемента)] = Фильтр.ВидСравнения; + ЭтотОбъект[СтрШаблон("ПравоеЗначение%1", НомерЭлемента)] = Фильтр.ПравоеЗначение; + +КонецПроцедуры + +#КонецОбласти + +#Область ДобавлениеФильтра + +&НаКлиенте +Процедура ДобавитьФильтры() + + Фильтры = Фильтры(КомпоновщикНастроек, СвойстваЗаголовка); + + УдалитьФильтры(Фильтры); + + Если ИспользованиеГруппы Тогда + + Группа = ГруппаФильтра(Фильтры); + ДобавитьФильтр(Группа, ЛевоеЗначение1, ВидСравнения1, ПравоеЗначение1); + ДобавитьФильтр(Группа, ЛевоеЗначение2, ВидСравнения2, ПравоеЗначение2, 1); + + Иначе + + ДобавитьФильтр(Фильтры, ЛевоеЗначение1, ВидСравнения1, ПравоеЗначение1); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УдалитьФильтры(Фильтры) + + ФильтрыКУдалению = Новый Массив; + + Для Каждого Элемент Из Фильтры.Элементы Цикл + + Если ТипЗнч(Элемент) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда + + ЭлементыГруппы = Элемент.Элементы; + + Если ЭлементыГруппы.Количество() = 2 + И ЭлементыГруппы[0].ЛевоеЗначение = ЛевоеЗначение1 + И ЭлементыГруппы[1].ЛевоеЗначение = ЛевоеЗначение2 Тогда + + ФильтрыКУдалению.Добавить(Элемент); + КонецЕсли; + + ИначеЕсли Элемент.ЛевоеЗначение = ЛевоеЗначение1 Тогда + + ФильтрыКУдалению.Добавить(Элемент); + + КонецЕсли; + + КонецЦикла; + + Для Каждого Фильтр Из ФильтрыКУдалению Цикл + Фильтры.Элементы.Удалить(Фильтр); + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Функция ГруппаФильтра(Фильтр) + + Группа = Фильтр.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); + Группа.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных[ТипГруппыЭлементовФильтра]; + Группа.Использование = ИспользованиеГруппы; + + Возврат Группа; + +КонецФункции + +&НаКлиенте +Процедура ДобавитьФильтр(Фильтр, ЛевоеЗначение, ВидСравнения, ПравоеЗначение, Индекс = 0) + + Элемент = Фильтр.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + Элемент.ЛевоеЗначение = ЛевоеЗначение; + Элемент.ВидСравнения = ВидСравнения; + Элемент.ПравоеЗначение = ПравоеЗначение; + Элемент.Использование = Истина; + +КонецПроцедуры + +#КонецОбласти + +&НаКлиенте +Процедура ПривестиПравыеЗначенияКУсловию() + + Для НомерЭлемента = 1 По 2 Цикл + ПривестиПравоеЗначениеКУсловию(НомерЭлемента); + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ПривестиПравоеЗначениеКУсловию(НомерЭлемента) + + Условие = ЭтотОбъект[СтрШаблон("ВидСравнения%1", НомерЭлемента)]; + + ИмяПравогоЗначения = СтрШаблон("ПравоеЗначение%1", НомерЭлемента); + ПолеПравогоЗначения = Элементы[ИмяПравогоЗначения]; + + Если ОтчетыКлиентСервер.ЭтоВидСравненияСписка(Условие) Тогда + + ПравоеЗначение = ОтчетыКлиентСервер.ЗначенияСписком(ЭтотОбъект[ИмяПравогоЗначения]); + ЭтотОбъект[ИмяПравогоЗначения] = ПравоеЗначение; + ЭтотОбъект[ИмяПравогоЗначения].ТипЗначения = ТипЗначенияФильтра; + + УточнитьПравоеЗначение(ЭтотОбъект[ИмяПравогоЗначения]); + + ПолеПравогоЗначения.ОграничениеТипа = Новый ОписаниеТипов("СписокЗначений"); + ПолеПравогоЗначения.ВыбиратьТип = Ложь; + ПолеПравогоЗначения.РежимВыбораИзСписка = Ложь; + ПолеПравогоЗначения.КнопкаВыбора = Истина; + + Иначе + + Если ТипЗнч(ЭтотОбъект[ИмяПравогоЗначения]) = Тип("СписокЗначений") Тогда + + Если ЭтотОбъект[ИмяПравогоЗначения].Количество() > 0 Тогда + ПравоеЗначение = ЭтотОбъект[ИмяПравогоЗначения][0].Значение; + Иначе + ПравоеЗначение = ТипЗначенияФильтра.ПривестиЗначение(); + КонецЕсли; + + ЭтотОбъект[ИмяПравогоЗначения] = ПравоеЗначение; + + КонецЕсли; + + ДоступныеТипы = ТипЗначенияФильтра.Типы(); + ЭтоСтрока = ДоступныеТипы.Количество() = 1 И ДоступныеТипы.Найти(Тип("Строка")) <> Неопределено; + + ОписаниеФильтра = ОписаниеФильтра(КомпоновщикНастроек, СвойстваЗаголовка); + ВыборГруппИЭлементов = ОтчетыКлиент.ЗначениеТипаИспользованиеГруппИЭлементов( + ?(ОписаниеФильтра = Неопределено, Неопределено, ОписаниеФильтра.ВыборГруппИЭлементов), Условие); + + ПолеПравогоЗначения.ОграничениеТипа = ТипЗначенияФильтра; + ПолеПравогоЗначения.ВыбиратьТип = (ДоступныеТипы.Количество() <> 1); + ПолеПравогоЗначения.РежимВыбораИзСписка = (ПолеПравогоЗначения.СписокВыбора.Количество() > 0); + ПолеПравогоЗначения.КнопкаВыбора = Не ЭтоСтрока И Не ПолеПравогоЗначения.РежимВыбораИзСписка; + ПолеПравогоЗначения.ВыборГруппИЭлементов = ОтчетыКлиентСервер.ЗначениеТипаГруппыИЭлементы(ВыборГруппИЭлементов, Условие); + + КонецЕсли; + + ОпределитьДоступностьПоляПравогоЗначения(ПолеПравогоЗначения, Условие); + +КонецПроцедуры + +&НаКлиенте +Процедура УточнитьПравоеЗначение(ПравоеЗначение) + + Если ТипЗнч(ПравоеЗначение) <> Тип("СписокЗначений") Тогда + Возврат; + КонецЕсли; + + Для Каждого Элемент Из ПравоеЗначение Цикл + + ДоступноеЗначение = ДоступныеЗначения.НайтиПоЗначению(Элемент.Значение); + + Если ДоступноеЗначение <> Неопределено Тогда + ЗаполнитьЗначенияСвойств(Элемент, ДоступноеЗначение); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ПравоеЗначениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + ПравоеЗначение = ЭтотОбъект[Элемент.Имя]; + + Если ТипЗнч(ПравоеЗначение) <> Тип("СписокЗначений") Тогда + Возврат; + КонецЕсли; + + СтандартнаяОбработка = Ложь; + + ОписаниеФильтра = ОписаниеФильтра(КомпоновщикНастроек, СвойстваЗаголовка); + Фильтр = Фильтр(КомпоновщикНастроек, СвойстваЗаголовка); + + ПараметрыВыбора = ОтчетыКлиентСервер.ПараметрыВыбора( + КомпоновщикНастроек.Настройки, КомпоновщикНастроек.ПользовательскиеНастройки.Элементы, Фильтр); + + ВыборГруппИЭлементов = ОтчетыКлиент.ЗначениеТипаИспользованиеГруппИЭлементов( + ?(ОписаниеФильтра = Неопределено, Неопределено, ОписаниеФильтра.ВыборГруппИЭлементов), ВидСравнения); + + ПараметрыОткрытия = Новый Структура; + ПараметрыОткрытия.Вставить("Отмеченные", ПравоеЗначение); + ПараметрыОткрытия.Вставить("ОписаниеТипов", ПравоеЗначение.ТипЗначения); + ПараметрыОткрытия.Вставить("ЗначенияДляВыбора", Элемент.СписокВыбора); + ПараметрыОткрытия.Вставить("ЗначенияДляВыбораЗаполнены", Элемент.СписокВыбора.Количество() > 0); + ПараметрыОткрытия.Вставить("ОграничиватьВыборУказаннымиЗначениями", ДоступныеЗначения.Количество() > 0); + ПараметрыОткрытия.Вставить("Представление", СвойстваЗаголовка.Текст); + ПараметрыОткрытия.Вставить("ПараметрыВыбора", Новый Массив(ПараметрыВыбора)); + ПараметрыОткрытия.Вставить("ВыборГруппИЭлементов", ВыборГруппИЭлементов); + ПараметрыОткрытия.Вставить("БыстрыйВыбор", ?(ОписаниеФильтра = Неопределено, Ложь, ОписаниеФильтра.БыстрыйВыбор)); + + ОткрытьФорму("ОбщаяФорма.ВводЗначенийСпискомСФлажками", ПараметрыОткрытия, Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура ПравоеЗначениеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) + + Если ТипЗнч(ВыбранноеЗначение) <> Тип("СписокЗначений") Тогда + Возврат; + КонецЕсли; + + СтандартнаяОбработка = Ложь; + + ПравоеЗначение = ЭтотОбъект[Элемент.Имя]; + ПравоеЗначение.Очистить(); + + Для Каждого Элемент Из ВыбранноеЗначение Цикл + + Если Элемент.Пометка Тогда + ЗаполнитьЗначенияСвойств(ПравоеЗначение.Добавить(), Элемент); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаКлиенте +Процедура ПрименитьФильтры(Команда) + + ДобавитьФильтры(); + + Результат = ВариантыОтчетовСлужебныйКлиент.СтандартныйРезультатНастройкиИзКонтекстногоМеню( + КомпоновщикНастроек, Команда.Действие, ВладелецФормы.УникальныйИдентификатор); + + ОповеститьОВыборе(Результат); + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Функция Фильтры(КомпоновщикНастроек, СвойстваЗаголовка) + + Настройки = КомпоновщикНастроек.Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторНастроек); + Возврат ВариантыОтчетовСлужебныйКлиентСервер.ФильтрыРазделаОтчета(Настройки, СвойстваЗаголовка); + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Функция Фильтр(КомпоновщикНастроек, СвойстваЗаголовка) + + Фильтры = Фильтры(КомпоновщикНастроек, СвойстваЗаголовка); + Возврат ВариантыОтчетовСлужебныйКлиентСервер.ФильтрРазделаОтчета(Фильтры, СвойстваЗаголовка.Поле); + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Функция ОписаниеФильтра(КомпоновщикНастроек, СвойстваЗаголовка, Фильтры = Неопределено) + + ОписаниеФильтра = Неопределено; + + Если Фильтры = Неопределено Тогда + Фильтры = Фильтры(КомпоновщикНастроек, СвойстваЗаголовка); + КонецЕсли; + + Если СвойстваЗаголовка.Поле <> Неопределено Тогда + ОписаниеФильтра = Фильтры.ДоступныеПоляОтбора.НайтиПоле(СвойстваЗаголовка.Поле); + КонецЕсли; + + Возврат ОписаниеФильтра; + +КонецФункции + +&НаКлиентеНаСервереБезКонтекста +Процедура ОпределитьДоступностьПоляПравогоЗначения(Поле, Условие) + + Поле.Доступность = Условие <> ВидСравненияКомпоновкиДанных.Заполнено + И Условие <> ВидСравненияКомпоновкиДанных.НеЗаполнено; + +КонецПроцедуры + +// Параметры: +// Описание - см. ВариантыОтчетов.НастройкиФормыОтчета +// +// Возвращаемое значение: +// см. ВариантыОтчетов.НастройкиФормыОтчета +// +&НаКлиентеНаСервереБезКонтекста +Функция ОписаниеНастроекОтчета(Описание) + + Возврат Описание; + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Module.bsl index 4c62a71f6..aaee3cfb1 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/СохранениеВариантаОтчета/Module.bsl @@ -43,7 +43,10 @@ КонецЕсли; - МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект); + КонецЕсли; Элементы.Описание.КнопкаВыбора = Не Элементы.Описание.КнопкаОткрытия; @@ -145,7 +148,12 @@ &НаКлиенте Процедура Подключаемый_Открытие(Элемент, СтандартнаяОбработка) - МультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МультиязычностьКлиент"); + МодульМультиязычностьКлиент.ПриОткрытии(ЭтотОбъект, Объект, Элемент, СтандартнаяОбработка); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -440,7 +448,7 @@ &НаКлиентеНаСервереБезКонтекста Функция СформироватьСвободноеНаименование(Вариант, ВариантыОтчета) - ШаблонИмениВарианта = СокрЛП(Вариант.Наименование) +" - "+ НСтр("ru = 'копия'"); + ШаблонИмениВарианта = СокрЛП(Вариант.Наименование) + " - " + НСтр("ru = 'копия'"); СвободноеНаименование = ШаблонИмениВарианта; Найденные = ВариантыОтчета.НайтиСтроки(Новый Структура("Наименование", СвободноеНаименование)); @@ -458,6 +466,8 @@ КонецЕсли; КонецЦикла; + Возврат ШаблонИмениВарианта; + КонецФункции &НаКлиенте @@ -579,8 +589,12 @@ ВариантОбъект.ТолькоДляАвтора = Объект.ТолькоДляАвтора; ВариантОбъект.Представления.Загрузить(Объект.Представления.Выгрузить()); - МультиязычностьСервер.ПередЗаписьюНаСервере(ВариантОбъект); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда + МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер"); + МодульМультиязычностьСервер.ПередЗаписьюНаСервере(ВариантОбъект); + КонецЕсли; + ВариантОбъект.Записать(); ВариантСсылка = ВариантОбъект.Ссылка; @@ -636,8 +650,6 @@ &НаСервере Процедура ЗаполнитьСписокВариантов() - ТекущийКлючВарианта = ПрототипКлюч; - ОтборОтчеты = Новый Массив; ОтборОтчеты.Добавить(Контекст.ОтчетСсылка); ПараметрыПоиска = Новый Структура("Отчеты, ТолькоЛичные", ОтборОтчеты, Истина); diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ЭлементУсловногоОформленияОтчета/Module.bsl b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ЭлементУсловногоОформленияОтчета/Module.bsl index 4096fe303..6ebc486f4 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ЭлементУсловногоОформленияОтчета/Module.bsl +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/Forms/ЭлементУсловногоОформленияОтчета/Module.bsl @@ -60,6 +60,9 @@ КонецЕсли; КонецЕсли; + ПроверитьПолеОформления(ЭлементКД); + ПроверитьУсловие(ЭлементКД); + Для Каждого ПолеФлажка Из Элементы.ГруппаОбластьОтображения.ПодчиненныеЭлементы Цикл ИмяФлажка = ПолеФлажка.Имя; ФлажкиОбластиОтображения.Добавить(ИмяФлажка); @@ -192,6 +195,77 @@ КонецЕсли; КонецФункции +&НаСервере +Процедура ПроверитьПолеОформления(ЭлементОформления) + + Если Не Параметры.Свойство("Поле") + Или ТипЗнч(Параметры.Поле) <> Тип("ПолеКомпоновкиДанных") Тогда + + Возврат; + КонецЕсли; + + ПолеОформления = Неопределено; + + Для Каждого Элемент Из ЭлементОформления.Поля.Элементы Цикл + + Если Элемент.Поле = Параметры.Поле Тогда + + ПолеОформления = Элемент; + Прервать; + + КонецЕсли; + + КонецЦикла; + + Если ПолеОформления = Неопределено Тогда + + ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить(); + ПолеОформления.Поле = Параметры.Поле; + + КонецЕсли; + + ПолеОформления.Использование = Истина; + +КонецПроцедуры + +&НаСервере +Процедура ПроверитьУсловие(ЭлементОформления) + + Условие = Неопределено; + + Если Не Параметры.Свойство("Условие", Условие) + Или ТипЗнч(Условие) <> Тип("Структура") Тогда + + Возврат; + КонецЕсли; + + ЭлементОтбора = Неопределено; + + Для Каждого Элемент Из ЭлементОформления.Отбор.Элементы Цикл + + Если ТипЗнч(Элемент) = Тип("ЭлементОтбораКомпоновкиДанных") + И Элемент.ЛевоеЗначение = Условие.ЛевоеЗначение Тогда + + ЭлементОтбора = Элемент; + Прервать; + + КонецЕсли; + + КонецЦикла; + + Если ЭлементОтбора = Неопределено Тогда + + ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ЭлементОтбора.ЛевоеЗначение = Условие.ЛевоеЗначение; + + КонецЕсли; + + ЭлементОтбора.ВидСравнения = Условие.ВидСравнения; + ЭлементОтбора.ПравоеЗначение = Условие.ПравоеЗначение; + ЭлементОтбора.Использование = Истина; + +КонецПроцедуры + &НаКлиенте Процедура ОбновитьНаименованиеПоУмолчанию() ТребуетсяОбновлениеНаименованияПоУмолчанию = Истина; diff --git a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/ХранилищеВариантовОтчетов.mdo b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/ХранилищеВариантовОтчетов.mdo index 5240cb49d..2a4ac8d6b 100644 --- a/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/ХранилищеВариантовОтчетов.mdo +++ b/SSL/src/SettingsStorages/ХранилищеВариантовОтчетов/ХранилищеВариантовОтчетов.mdo @@ -42,6 +42,15 @@ PersonalComputer MobileDevice + + КонтекстнаяНастройкаОтчета + + ru + Контекстная настройка отчета + + PersonalComputer + MobileDevice + ОписаниеНовойВозможностиПоВыводуОписаний @@ -65,6 +74,15 @@ PersonalComputer MobileDevice + + РасширеннаяНастройкаФильтраОтчета + + ru + Расширенная настройка фильтра отчета + + PersonalComputer + MobileDevice + СохранениеВариантаОтчета diff --git a/SSL/src/StyleItems/ЦветИзмененногоПоля/ЦветИзмененногоПоля.mdo b/SSL/src/StyleItems/ЦветИзмененногоПоля/ЦветИзмененногоПоля.mdo new file mode 100644 index 000000000..f6bf39733 --- /dev/null +++ b/SSL/src/StyleItems/ЦветИзмененногоПоля/ЦветИзмененногоПоля.mdo @@ -0,0 +1,13 @@ + + + ЦветИзмененногоПоля + + ru + Цвет измененного поля + + + + Web.HoneyDew + + + diff --git a/SSL/src/StyleItems/ЦветТекстаВнимание/ЦветТекстаВнимание.mdo b/SSL/src/StyleItems/ЦветТекстаВнимание/ЦветТекстаВнимание.mdo new file mode 100644 index 000000000..0486d496e --- /dev/null +++ b/SSL/src/StyleItems/ЦветТекстаВнимание/ЦветТекстаВнимание.mdo @@ -0,0 +1,14 @@ + + + ЦветТекстаВнимание + + ru + Цвет текста внимание + + + + 157 + 86 + + + diff --git a/SSL/src/StyleItems/ЦветТекстаОтрицательногоЗначения/ЦветТекстаОтрицательногоЗначения.mdo b/SSL/src/StyleItems/ЦветТекстаОтрицательногоЗначения/ЦветТекстаОтрицательногоЗначения.mdo new file mode 100644 index 000000000..2dc25c216 --- /dev/null +++ b/SSL/src/StyleItems/ЦветТекстаОтрицательногоЗначения/ЦветТекстаОтрицательногоЗначения.mdo @@ -0,0 +1,14 @@ + + + ЦветТекстаОтрицательногоЗначения + + ru + Цвет текста отрицательного значения + + + + 157 + 1 + + + diff --git a/SSL/src/StyleItems/ЦветТекстаПоложительногоЗначения/ЦветТекстаПоложительногоЗначения.mdo b/SSL/src/StyleItems/ЦветТекстаПоложительногоЗначения/ЦветТекстаПоложительногоЗначения.mdo new file mode 100644 index 000000000..0ccf4e2aa --- /dev/null +++ b/SSL/src/StyleItems/ЦветТекстаПоложительногоЗначения/ЦветТекстаПоложительногоЗначения.mdo @@ -0,0 +1,15 @@ + + + ЦветТекстаПоложительногоЗначения + + ru + Цвет текста положительного значения + + + + 34 + 122 + 35 + + + diff --git a/SSL/src/StyleItems/ЦветФонаВнимание/ЦветФонаВнимание.mdo b/SSL/src/StyleItems/ЦветФонаВнимание/ЦветФонаВнимание.mdo new file mode 100644 index 000000000..033b9d211 --- /dev/null +++ b/SSL/src/StyleItems/ЦветФонаВнимание/ЦветФонаВнимание.mdo @@ -0,0 +1,15 @@ + + + ЦветФонаВнимание + + ru + Цвет фона внимание + + + + 255 + 236 + 157 + + + diff --git a/SSL/src/StyleItems/ЦветФонаОтрицательногоЗначения/ЦветФонаОтрицательногоЗначения.mdo b/SSL/src/StyleItems/ЦветФонаОтрицательногоЗначения/ЦветФонаОтрицательногоЗначения.mdo new file mode 100644 index 000000000..fa20805e6 --- /dev/null +++ b/SSL/src/StyleItems/ЦветФонаОтрицательногоЗначения/ЦветФонаОтрицательногоЗначения.mdo @@ -0,0 +1,15 @@ + + + ЦветФонаОтрицательногоЗначения + + ru + Цвет фона отрицательного значения + + + + 255 + 200 + 207 + + + diff --git a/SSL/src/StyleItems/ЦветФонаПоложительногоЗначения/ЦветФонаПоложительногоЗначения.mdo b/SSL/src/StyleItems/ЦветФонаПоложительногоЗначения/ЦветФонаПоложительногоЗначения.mdo new file mode 100644 index 000000000..7a5a1070a --- /dev/null +++ b/SSL/src/StyleItems/ЦветФонаПоложительногоЗначения/ЦветФонаПоложительногоЗначения.mdo @@ -0,0 +1,15 @@ + + + ЦветФонаПоложительногоЗначения + + ru + Цвет фона положительного значения + + + + 199 + 240 + 207 + + + diff --git a/SSL/src/Subsystems/Администрирование/CommandInterface.cmi b/SSL/src/Subsystems/Администрирование/CommandInterface.cmi index 1dc55491b..fec2d5c19 100644 --- a/SSL/src/Subsystems/Администрирование/CommandInterface.cmi +++ b/SSL/src/Subsystems/Администрирование/CommandInterface.cmi @@ -155,6 +155,10 @@ Catalog.ШаблоныСообщений.StandardCommand.OpenList + + Catalog.СостоянияОригиналовПервичныхДокументов.StandardCommand.OpenList + + CommonCommand.АвтономнаяРаботаВМоделиСервиса @@ -500,6 +504,7 @@ DataProcessor.НастройкаСтандартногоИнтерфейсаOData.Command.НастройкиСтандартногоИнтерфейсаOData Catalog.ВнешниеКомпоненты.StandardCommand.OpenList Catalog.ШаблоныСообщений.StandardCommand.OpenList + Catalog.СостоянияОригиналовПервичныхДокументов.StandardCommand.OpenList NavigationPanelSeeAlso @@ -562,6 +567,8 @@ DataProcessor.НастройкиЦентраМониторинга.Command.ПроблемыПроизводительности CommonForm.УстановленныеИсправления.StandardCommand.Open DataProcessor.НастройкаСтандартногоИнтерфейсаOData.StandardCommand.Open + CommonForm.ВосстановлениеПаролей.StandardCommand.Open + DataProcessor.ПодключениеОбсуждений.Command.НастройкиСообщенийИзДругихПрограмм diff --git a/SSL/src/Subsystems/Администрирование/Администрирование.mdo b/SSL/src/Subsystems/Администрирование/Администрирование.mdo index 343a502e3..264acfe3a 100644 --- a/SSL/src/Subsystems/Администрирование/Администрирование.mdo +++ b/SSL/src/Subsystems/Администрирование/Администрирование.mdo @@ -106,4 +106,5 @@ Catalog.ШаблоныСообщений Report.АнализПравДоступа Catalog.СостоянияОригиналовПервичныхДокументов + CommonForm.ВосстановлениеПаролей diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/БазоваяФункциональность/БазоваяФункциональность.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/БазоваяФункциональность/БазоваяФункциональность.mdo index 405ca71b8..e72c39aa8 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/БазоваяФункциональность/БазоваяФункциональность.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/БазоваяФункциональность/БазоваяФункциональность.mdo @@ -238,10 +238,6 @@ CommonModule.ФайловаяСистема CommonModule.ФайловаяСистемаКлиент CommonModule.ФайловаяСистемаСлужебныйКлиент - CommonForm.ВводНаРазныхЯзыках - CommonModule.МультиязычностьСервер - CommonModule.МультиязычностьКлиент - CommonModule.МультиязычностьКлиентСервер CommonModule.СтроковыеФункцииКлиентСерверРФ CommonModule.СтандартныеПодсистемыКлиентСерверЛокализация CommonModule.ИнтеграцияПодсистемБСПКлиентПовтИсп @@ -251,22 +247,12 @@ StyleItem.ЗаголовокУдаленногоРеквизитаШрифт CommonModule.СтроковыеФункцииКлиент CommonModule.СтроковыеФункции - CommonAttribute.НаименованиеЯзык2 - CommonAttribute.НаименованиеЯзык1 - CommonAttribute.КомментарийЯзык2 - CommonAttribute.КомментарийЯзык1 - FunctionalOption.ИспользоватьДополнительныйЯзык2 - FunctionalOption.ИспользоватьДополнительныйЯзык1 - CommonForm.РегиональныеНастройки - Constant.ИспользоватьДополнительныйЯзык1 - Constant.ИспользоватьДополнительныйЯзык2 Constant.ОсновнойЯзык - Constant.ДополнительныйЯзык1 - Constant.ДополнительныйЯзык2 - CommonModule.МультиязычностьПереопределяемый SessionParameter.ОсновнойЯзык - CommonModule.МультиязычностьПовтИсп CommonPicture.ПодменюСервис CommonForm.КонтрольДинамическогоОбновления + CommonPicture.СтрелкаВправоЗеленая + CommonPicture.Пустая + CommonModule.ФайловаяСистемаСлужебныйКлиентСервер Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/БизнесПроцессыИЗадачи/БизнесПроцессыИЗадачи.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/БизнесПроцессыИЗадачи/БизнесПроцессыИЗадачи.mdo index c0795276e..6aba25cf4 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/БизнесПроцессыИЗадачи/БизнесПроцессыИЗадачи.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/БизнесПроцессыИЗадачи/БизнесПроцессыИЗадачи.mdo @@ -79,5 +79,6 @@ ScheduledJob.СтартОтложенныхПроцессов Enum.СостоянияПроцессовДляЗапуска CommonPicture.СостоянияПроцессов + DefinedType.БизнесПроцессОбъект Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ВариантыОтчетов/ВариантыОтчетов.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ВариантыОтчетов/ВариантыОтчетов.mdo index 58c7fd339..c93759250 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ВариантыОтчетов/ВариантыОтчетов.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ВариантыОтчетов/ВариантыОтчетов.mdo @@ -83,5 +83,51 @@ StyleItem.ФонРезультатовПоиска StyleItem.ОбразецНастройкиКолонтитуловЦвет StyleItem.ОбразецНастройкиКолонтитуловШрифт + CommonModule.ВариантыОтчетовСлужебный + CommonModule.ВариантыОтчетовСлужебныйКлиент + CommonPicture.Открепить + CommonPicture.СдвинутьВниз + CommonPicture.СдвинутьВверх + CommonPicture.ВставитьГруппировкуВыше + CommonPicture.ВставитьКолонкуСлева + CommonPicture.ВставитьГруппировкуНиже + CommonPicture.ВставитьКолонкуСправа + CommonPicture.ВидыСравнения + CommonPicture.ВысотаСтроки + CommonPicture.ШиринаКолонки + CommonPicture.Группировка + CommonPicture.Таблица + CommonPicture.КроссТаблица + CommonPicture.ПереместитьГруппировкуВыше + CommonPicture.ПереместитьКолонкуВлево + CommonPicture.ПереместитьГруппировкуНиже + CommonPicture.ПереместитьКолонкуВправо + CommonPicture.СортироватьСтрокиПоВозрастанию + CommonPicture.СортироватьСтрокиПоУбыванию + CommonPicture.Закрепить + CommonPicture.ДобавитьЭлементНастроек + CommonPicture.ТипСоставной + CommonPicture.ТипКонстанта + CommonPicture.ТипДата + CommonPicture.ТипЧисло + CommonPicture.ТипОшибка + CommonPicture.ТипФильтр + CommonPicture.ТипФункция + CommonPicture.ТипБулево + CommonPicture.ТипГруппа + CommonPicture.ТипИдентификатор + CommonPicture.ТипСсылка + CommonPicture.ТипСписок + CommonPicture.ТипМакрос + CommonPicture.ТипСтрока + CommonPicture.ТипДерево + StyleItem.ЦветТекстаОтрицательногоЗначения + StyleItem.ЦветФонаОтрицательногоЗначения + StyleItem.ЦветТекстаПоложительногоЗначения + StyleItem.ЦветФонаПоложительногоЗначения + StyleItem.ЦветТекстаВнимание + StyleItem.ЦветФонаВнимание + CommonModule.ВариантыОтчетовСлужебныйКлиентСервер + CommonPicture.ПерейтиВПолноэкранныйРежим Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Взаимодействия/Взаимодействия.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Взаимодействия/Взаимодействия.mdo index b569b0895..58c996c58 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Взаимодействия/Взаимодействия.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Взаимодействия/Взаимодействия.mdo @@ -76,7 +76,7 @@ FunctionalOption.ОтправлятьПисьмаВФорматеHTML FunctionalOption.ИспользоватьПризнакРассмотрено StyleItem.ОшибкаПолнотекстовыйПоискФон - EventSubscription.ПереопределитьПолучаемуюФормуПрисоединенногоФайлаВзаимодействия + EventSubscription.ОпределитьФормуПрисоединенногоФайлаВзаимодействия Document.СообщениеSMS CommonPicture.НаписатьSMS ScheduledJob.ОбновлениеСтатусовДоставкиSMS diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ГенерацияШтрихкода/ГенерацияШтрихкода.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ГенерацияШтрихкода/ГенерацияШтрихкода.mdo new file mode 100644 index 000000000..cd2df69a0 --- /dev/null +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ГенерацияШтрихкода/ГенерацияШтрихкода.mdo @@ -0,0 +1,12 @@ + + + ГенерацияШтрихкода + + ru + Генерация штрихкода + + CommonTemplate.КомпонентаПечатиШтрихкодов + CommonModule.ГенерацияШтрихкодаСерверПовтИсп + CommonModule.ГенерацияШтрихкода + Subsystem.СтандартныеПодсистемы + diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ИнтерфейсOData/ИнтерфейсOData.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ИнтерфейсOData/ИнтерфейсOData.mdo index 006d02714..d21e4963a 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ИнтерфейсOData/ИнтерфейсOData.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ИнтерфейсOData/ИнтерфейсOData.mdo @@ -5,7 +5,7 @@ ru Интерфейс OData - Role.УдалениеДанныхOData + Role.УдаленныйДоступOData Constant.ПользовательСтандартногоИнтерфейсаOData DataProcessor.НастройкаСтандартногоИнтерфейсаOData CommonModule.ИнтерфейсODataСлужебныйПовтИсп diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Мультиязычность/Subsystems/БазоваяФункциональность/БазоваяФункциональность.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Мультиязычность/Subsystems/БазоваяФункциональность/БазоваяФункциональность.mdo new file mode 100644 index 000000000..49c74cb99 --- /dev/null +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Мультиязычность/Subsystems/БазоваяФункциональность/БазоваяФункциональность.mdo @@ -0,0 +1,27 @@ + + + БазоваяФункциональность + + ru + Базовая функциональность + + CommonModule.МультиязычностьКлиент + CommonModule.МультиязычностьКлиентСервер + CommonModule.МультиязычностьПереопределяемый + CommonModule.МультиязычностьПовтИсп + CommonModule.МультиязычностьСервер + CommonAttribute.КомментарийЯзык1 + CommonAttribute.КомментарийЯзык2 + CommonAttribute.НаименованиеЯзык1 + CommonAttribute.НаименованиеЯзык2 + FunctionalOption.ИспользоватьДополнительныйЯзык1 + FunctionalOption.ИспользоватьДополнительныйЯзык2 + StyleItem.ЦветИзмененногоПоля + CommonForm.ВводНаРазныхЯзыках + Constant.ДополнительныйЯзык1 + Constant.ДополнительныйЯзык2 + Constant.ИспользоватьДополнительныйЯзык1 + Constant.ИспользоватьДополнительныйЯзык2 + CommonForm.РегиональныеНастройки + Subsystem.СтандартныеПодсистемы.Subsystem.Мультиязычность + diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Мультиязычность/Subsystems/ПереводТекста/ПереводТекста.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Мультиязычность/Subsystems/ПереводТекста/ПереводТекста.mdo new file mode 100644 index 000000000..be345956b --- /dev/null +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Мультиязычность/Subsystems/ПереводТекста/ПереводТекста.mdo @@ -0,0 +1,18 @@ + + + ПереводТекста + + ru + Перевод текста + + CommonModule.ПереводТекстаНаДругиеЯзыки + CommonModule.ЯндексПереводчик + CommonModule.GoogleПереводчик + CommonForm.НастройкаПереводаТекста + Enum.СервисыПереводаТекста + Constant.ИспользоватьСервисПереводаТекста + InformationRegister.КэшПереводов + FunctionalOption.ИспользоватьСервисПереводаТекста + Constant.СервисПереводаТекста + Subsystem.СтандартныеПодсистемы.Subsystem.Мультиязычность + diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Мультиязычность/Subsystems/Печать/Печать.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Мультиязычность/Subsystems/Печать/Печать.mdo new file mode 100644 index 000000000..4ca9d5930 --- /dev/null +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Мультиязычность/Subsystems/Печать/Печать.mdo @@ -0,0 +1,11 @@ + + + Печать + + ru + Печать + + Catalog.ЯзыкиПечатныхФорм + CommonModule.УправлениеПечатьюМультиязычность + Subsystem.СтандартныеПодсистемы.Subsystem.Мультиязычность + diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Мультиязычность/Мультиязычность.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Мультиязычность/Мультиязычность.mdo new file mode 100644 index 000000000..3c057f271 --- /dev/null +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Мультиязычность/Мультиязычность.mdo @@ -0,0 +1,12 @@ + + + Мультиязычность + + ru + Мультиязычность + + БазоваяФункциональность + Печать + ПереводТекста + Subsystem.СтандартныеПодсистемы + diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Печать/Печать.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Печать/Печать.mdo index c84b29e08..f78555b98 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Печать/Печать.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Печать/Печать.mdo @@ -35,7 +35,6 @@ CommonTemplate.КомпонентаПечатиQRКода InformationRegister.НастройкиКомандПечати CommonForm.НастройкаКомандПечати - CommonPicture.Пустая CommonModule.УправлениеПечатьюКлиентСервер Role.РедактированиеПечатныхФорм CommonModule.УправлениеПечатьюСлужебный diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Пользователи/Пользователи.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Пользователи/Пользователи.mdo index d1b251c7b..406a6b142 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Пользователи/Пользователи.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/Пользователи/Пользователи.mdo @@ -72,5 +72,6 @@ CommonModule.ПользователиКлиент CommonModule.ВнешниеПользователиКлиент CommonPicture.ПользовательБезФотографии + CommonForm.ВосстановлениеПаролей Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСПочтовымиСообщениями/РаботаСПочтовымиСообщениями.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСПочтовымиСообщениями/РаботаСПочтовымиСообщениями.mdo index a446fca9e..478b13d18 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСПочтовымиСообщениями/РаботаСПочтовымиСообщениями.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/РаботаСПочтовымиСообщениями/РаботаСПочтовымиСообщениями.mdo @@ -25,5 +25,6 @@ Role.ЧтениеУчетныхЗаписейЭлектроннойПочты CommonPicture.ВводимыеСимволыСкрыты CommonPicture.ВводимыеСимволыВидны + Constant.УчетнаяЗаписьДляВосстановленияПароля Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ШаблоныСообщений/ШаблоныСообщений.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ШаблоныСообщений/ШаблоныСообщений.mdo index 29fac8084..2c97e6768 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ШаблоныСообщений/ШаблоныСообщений.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/Subsystems/ШаблоныСообщений/ШаблоныСообщений.mdo @@ -28,6 +28,6 @@ DefinedType.ВладелецШаблонаСообщения Role.ЧтениеШаблоновСообщений Role.ДобавлениеИзменениеЛичныхШаблоновСообщений - EventSubscription.ПереопределитьПолучаемуюФормуПрисоединенногоФайлаШаблоныСообщений + EventSubscription.ОпределитьФормуПрисоединенногоФайлаШаблоныСообщений Subsystem.СтандартныеПодсистемы diff --git a/SSL/src/Subsystems/СтандартныеПодсистемы/СтандартныеПодсистемы.mdo b/SSL/src/Subsystems/СтандартныеПодсистемы/СтандартныеПодсистемы.mdo index 24e4ad4ea..f49f0c780 100644 --- a/SSL/src/Subsystems/СтандартныеПодсистемы/СтандартныеПодсистемы.mdo +++ b/SSL/src/Subsystems/СтандартныеПодсистемы/СтандартныеПодсистемы.mdo @@ -17,6 +17,7 @@ Взаимодействия ВнешниеКомпоненты ВызовОнлайнПоддержки + ГенерацияШтрихкода ГрафикиРаботы ГрупповоеИзменениеОбъектов ДатыЗапретаИзменения @@ -31,6 +32,7 @@ КалендарныеГрафики КонтактнаяИнформация КонтрольВеденияУчета + Мультиязычность НапоминанияПользователя НастройкаПорядкаЭлементов НастройкиПрограммы diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ПеренаправитьЗадачи/Form.form b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ПеренаправитьЗадачи/Form.form index 2275bcb8d..4ce56d6cb 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ПеренаправитьЗадачи/Form.form +++ b/SSL/src/Tasks/ЗадачаИсполнителя/Forms/ПеренаправитьЗадачи/Form.form @@ -153,10 +153,6 @@ true - - <key>ru</key> - <value>Адресация исполнитель</value> - ГруппаАдресацияИсполнительРасширеннаяПодсказка 50 @@ -284,10 +280,6 @@ true - - <key>ru</key> - <value>Адресация роль</value> - ГруппаАдресацияРольРасширеннаяПодсказка 68 @@ -312,10 +304,6 @@ true - - <key>ru</key> - <value>Адресация</value> - ГруппаАдресацияExtendedTooltip 48 @@ -420,10 +408,6 @@ true - - <key>ru</key> - <value>Один объект адресации</value> - ГруппаОдинОбъектАдресацииExtendedTooltip 53 @@ -532,10 +516,6 @@ true - - <key>ru</key> - <value>Два объекта адресации</value> - ГруппаДваОбъектаАдресацииExtendedTooltip 55 @@ -561,10 +541,6 @@ true - - <key>ru</key> - <value>Объекты адресации</value> - ОбъектыАдресацииРасширеннаяПодсказка 66 @@ -590,10 +566,6 @@ true - - <key>ru</key> - <value>Объекты адресации</value> - ГруппаОбъектыАдресацииРасширеннаяПодсказка 61 @@ -695,10 +667,6 @@ true - - <key>ru</key> - <value>Документ</value> - false ДокументРасширеннаяПодсказка @@ -814,10 +782,6 @@ true - - <key>ru</key> - <value>Справка</value> - ГруппаСправкаExtendedTooltip 45 diff --git a/SSL/src/Tasks/ЗадачаИсполнителя/ManagerModule.bsl b/SSL/src/Tasks/ЗадачаИсполнителя/ManagerModule.bsl index 01b4b9c30..4a0b8e8ce 100644 --- a/SSL/src/Tasks/ЗадачаИсполнителя/ManagerModule.bsl +++ b/SSL/src/Tasks/ЗадачаИсполнителя/ManagerModule.bsl @@ -18,7 +18,7 @@ // с помощью обработки группового изменения реквизитов. // // Возвращаемое значение: -// Массив Из Строка +// Массив из Строка // Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт @@ -39,7 +39,9 @@ // СтандартныеПодсистемы.УправлениеДоступом -// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. +// Параметры: +// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение. +// Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт Ограничение.Текст = diff --git a/SSL/src/WebServices/InterfaceVersion/Module.bsl b/SSL/src/WebServices/InterfaceVersion/Module.bsl index 7689e128c..7d6d54f8b 100644 --- a/SSL/src/WebServices/InterfaceVersion/Module.bsl +++ b/SSL/src/WebServices/InterfaceVersion/Module.bsl @@ -14,7 +14,7 @@ // InterfaceName - Строка - имя подсистемы. // // Возвращаемое значение: -// Массив строк. +// Массив из Строка // // Пример использования: //