diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ДействиеВыполнить/Help/ru.html b/SSL/src/BusinessProcesses/Задание/Forms/ДействиеВыполнить/Help/ru.html index 8e41501c5..45da3e9c1 100644 --- a/SSL/src/BusinessProcesses/Задание/Forms/ДействиеВыполнить/Help/ru.html +++ b/SSL/src/BusinessProcesses/Задание/Forms/ДействиеВыполнить/Help/ru.html @@ -1,4 +1,4 @@ - +

Предназначена для выполнения бизнес-процесса Задание.

Открывается из списков задач, например, Мои задачи на рабочем столе или Все задачи.

Главное

diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ДействиеВыполнить/Module.bsl b/SSL/src/BusinessProcesses/Задание/Forms/ДействиеВыполнить/Module.bsl index a8472111b..855716140 100644 --- a/SSL/src/BusinessProcesses/Задание/Forms/ДействиеВыполнить/Module.bsl +++ b/SSL/src/BusinessProcesses/Задание/Forms/ДействиеВыполнить/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - // Для нового объекта выполняем код инициализации формы в ПриСозданииНаСервере. // Для существующего - в ПриЧтенииНаСервере. Если Объект.Ссылка.Пустая() Тогда diff --git a/SSL/src/BusinessProcesses/Задание/Forms/ДействиеПроверить/Help/ru.html b/SSL/src/BusinessProcesses/Задание/Forms/ДействиеПроверить/Help/ru.html index 46c6fe629..a10db517b 100644 --- a/SSL/src/BusinessProcesses/Задание/Forms/ДействиеПроверить/Help/ru.html +++ b/SSL/src/BusinessProcesses/Задание/Forms/ДействиеПроверить/Help/ru.html @@ -1,4 +1,4 @@ - +

Предназначена для проверки выполнения бизнес-процесса Задание.

Открывается из списков задач, например, Мои задачи на рабочем столе или Все задачи.

Главное

@@ -29,9 +29,8 @@
  • Для того чтобы запустить один бизнес-процесс на сновании другого, в задаче родительского бизнес-процесса выполните команду Создать на основании, из списка выберите вид бизнес-процесса, например, Задание. Заполните необходимые поля.
  • Отборы

    Просмотр всех заданий

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

    Ввод нового задания

    Управление движением бизнес-процесса

    Особенности использования переключателя Курс валюты

    +
  • Для отечественной валюты переключатель Курс валюты необходимо установить в положение вводится вручную, так как курс "относительно себя" всегда равен 1. Например, на Российском предприятии переключатель Курс валюты следует установить в положение вводится вручную для рубля.
  • Зависимость курса валюты от курса другой валюты

    Расчет по формуле

    Просмотр курса валюты

    + +
  • EUR*1,025
  • +
  • Но если возникает необходимость использовать функции с двумя и более параметрами, то параметры следует разделять запятыми, а дробные части чисел - точками, например: +
  • +
  • Подробнее о правилах построения подобных выражений см. раздел справки Язык выражений системы компоновки данных.
  • Просмотр курса валюты

    Ввод курса валюты вручную

    -

    Ввод курса валюты вручную

    +

    См. также:

    + +
  • Нажмите Создать, заполните курс валюты на нужную дату (по умолчанию установлена текущая дата).
  • См. также:

    \ No newline at end of file + +
  • Работа с формами.
  • \ No newline at end of file diff --git a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl index f4779a33d..c3404adc1 100644 --- a/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Валюты/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Объект.Ссылка.Пустая() Тогда Если Параметры.Свойство("КодВалюты") Тогда diff --git a/SSL/src/Catalogs/Валюты/Help/ru.html b/SSL/src/Catalogs/Валюты/Help/ru.html index 433f467b0..0a7a724d6 100644 --- a/SSL/src/Catalogs/Валюты/Help/ru.html +++ b/SSL/src/Catalogs/Валюты/Help/ru.html @@ -1,34 +1,43 @@ - +

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

    Открыть список валют можно из раздела Справочники.

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

    Добавление валюты из Общероссийского классификатора валют (ОКВ)

    Ввод валюты не из классификатора (вручную)

    + +
  • +
    Следующие поля новой валюты будут заполнены из классификатора автоматически: Наименование, Символьный код, Цифровой код, положение переключателя Курс валюты (будет установлено положение загружается из интернета, если имеется возможность загружать курс этой валюты с портала 1С:ИТС).
  • Ввод валюты не из классификатора (вручную)

    Загрузка курсов валют

    + +
  • Заполните сведения о валюте.
  • Загрузка курсов валют

    См. также:

    +
    Нажмите Загрузить курсы валют для перехода к загрузке курсов валют с портала 1С:ИТС. 
    + +
  • +
    Также в программе предусмотрено регламентное задание Загрузка курсов валют для автоматической загрузки курсов валют с портала 1С:ИТС.
  • См. также:

    \ No newline at end of file diff --git a/SSL/src/Catalogs/Валюты/ObjectModule.bsl b/SSL/src/Catalogs/Валюты/ObjectModule.bsl index 77e3eb978..7f5cd2c7e 100644 --- a/SSL/src/Catalogs/Валюты/ObjectModule.bsl +++ b/SSL/src/Catalogs/Валюты/ObjectModule.bsl @@ -179,12 +179,12 @@ Процедура ЗапланироватьКопированиеКурсовВалюты() - Перем МодульКурсыВалютСлужебныйВМоделиСервиса; + Перем РаботаСКурсамиВалютСлужебный; Если ОбщегоНазначения.РазделениеВключено() - И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ВалютыВМоделиСервиса") Тогда - МодульКурсыВалютСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("КурсыВалютСлужебныйВМоделиСервиса"); - МодульКурсыВалютСлужебныйВМоделиСервиса.ЗапланироватьКопированиеКурсовВалюты(ЭтотОбъект); + И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда + МодульРаботаСКурсамиВалютСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСКурсамиВалютСлужебный"); + МодульРаботаСКурсамиВалютСлужебный.ЗапланироватьКопированиеКурсовВалюты(ЭтотОбъект); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаВыбора/Form.form b/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаВыбора/Form.form index a0118a0e9..9e8334f2b 100644 --- a/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаВыбора/Form.form +++ b/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаВыбора/Form.form @@ -289,10 +289,6 @@ Left true - - OnCreateAtServer - ПриСозданииНаСервере - LockOwner true true diff --git a/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаСписка/Module.bsl index f54b9a1d1..fbfe4cf5f 100644 --- a/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если НЕ Пользователи.ЭтоСеансВнешнегоПользователя() Тогда ОбщегоНазначения.СообщитьПользователю( НСтр("ru = 'Варианты ответов анкет используются только внешними пользователями.'"),,,,Отказ); diff --git a/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаЭлемента/Module.bsl index 6527a724b..87368949f 100644 --- a/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Свойство("Владелец") И ТипЗнч(Параметры.Владелец) = Тип("ПланВидовХарактеристикСсылка.ВопросыДляАнкетирования") И НЕ Параметры.Владелец.Пустая() Тогда diff --git a/SSL/src/Catalogs/ВариантыОтветовАнкет/Help/ru.html b/SSL/src/Catalogs/ВариантыОтветовАнкет/Help/ru.html index f9615178c..e2e41297c 100644 --- a/SSL/src/Catalogs/ВариантыОтветовАнкет/Help/ru.html +++ b/SSL/src/Catalogs/ВариантыОтветовАнкет/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

    Задайте возможные варианты ответов на вопрос.

    diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Commands/Открыть/CommandModule.bsl b/SSL/src/Catalogs/ВариантыОтчетов/Commands/Открыть/CommandModule.bsl index 1a52f53d7..7e5b17537 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Commands/Открыть/CommandModule.bsl +++ b/SSL/src/Catalogs/ВариантыОтчетов/Commands/Открыть/CommandModule.bsl @@ -12,7 +12,7 @@ Процедура ОбработкаКоманды(СсылкаВарианта, ПараметрыВыполненияКоманды) Вариант = СсылкаВарианта; Форма = ПараметрыВыполненияКоманды.Источник; - Если ТипЗнч(Форма) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(Форма) = Тип("ФормаКлиентскогоПриложения") Тогда Если Форма.ИмяФормы = "Справочник.ВариантыОтчетов.Форма.ФормаСписка" Тогда Вариант = Форма.Элементы.Список.ТекущиеДанные; ИначеЕсли Форма.ИмяФормы = "Справочник.ВариантыОтчетов.Форма.ФормаЭлемента" Тогда diff --git a/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Help/ru.html b/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Help/ru.html index 6dcb3ac5a..df9d74b1d 100644 --- a/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Help/ru.html +++ b/SSL/src/Catalogs/ВариантыОтчетов/Forms/РазмещениеВРазделах/Help/ru.html @@ -1,4 +1,4 @@ - +

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

    Открывается по команде Разместить в разделах из списка Отчеты.

    Ввод группы внешних пользователей

    Включение группы внешних пользователей в другую группу

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

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

    Просмотр отчета Сведения о внешних пользователях

    Установка пароля

    Доступно только для администратора

    -

    Так удобнее настраивать права доступа.

    +

    Так удобнее настраивать права доступа.

    Ввод группы

    См. также

    diff --git a/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl index 1b54f5389..02bf2c43d 100644 --- a/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl +++ b/SSL/src/Catalogs/ГруппыВнешнихПользователей/ManagerModule.bsl @@ -24,7 +24,6 @@ НеРедактируемыеРеквизиты = Новый Массив; НеРедактируемыеРеквизиты.Добавить("ТипОбъектовАвторизации"); НеРедактируемыеРеквизиты.Добавить("ВсеОбъектыАвторизации"); - НеРедактируемыеРеквизиты.Добавить("Роли.УдалитьРоль"); Возврат НеРедактируемыеРеквизиты; diff --git a/SSL/src/Catalogs/ГруппыВнешнихПользователей/ГруппыВнешнихПользователей.mdo b/SSL/src/Catalogs/ГруппыВнешнихПользователей/ГруппыВнешнихПользователей.mdo index c4f30659f..c10df61e4 100644 --- a/SSL/src/Catalogs/ГруппыВнешнихПользователей/ГруппыВнешнихПользователей.mdo +++ b/SSL/src/Catalogs/ГруппыВнешнихПользователей/ГруппыВнешнихПользователей.mdo @@ -165,26 +165,6 @@ Use Use - - УдалитьТипОбъектовАвторизации - - ru - (не используется) Тип объектов авторизации - - В качестве типа используется пустая ссылка - - DefinedType.ВнешнийПользователь - - - ru - Не используется - - - - - Use - Use - ВсеОбъектыАвторизации @@ -287,26 +267,6 @@ Index Use - - УдалитьРоль - - ru - (не используется) Роль - - - String - - 150 - - - - ru - Разрешенное действие (роль), заданное для группы внешних пользователей - - - - Use - diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ВыборПоОтветственному/Module.bsl b/SSL/src/Catalogs/ГруппыДоступа/Forms/ВыборПоОтветственному/Module.bsl index 33b2dcb64..b6498e53f 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ВыборПоОтветственному/Module.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ВыборПоОтветственному/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Запрос = Новый Запрос; Запрос.УстановитьПараметр("Выбранные", Параметры.Выбранные); Запрос.УстановитьПараметр("ПользовательГрупп", Параметры.ПользовательГрупп); diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаВыбораГруппы/Help/ru.html b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаВыбораГруппы/Help/ru.html index c74094ad1..470d3fd44 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаВыбораГруппы/Help/ru.html +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаВыбораГруппы/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

    diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаВыбораГруппы/Module.bsl b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаВыбораГруппы/Module.bsl index a28f754e8..47d897491 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаВыбораГруппы/Module.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаВыбораГруппы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - // Отбор только групп. ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( Список, "ЭтоГруппа", Истина, , , Истина); diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаГруппы/Help/ru.html b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаГруппы/Help/ru.html index ce19b0d0c..b61feadfd 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаГруппы/Help/ru.html +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаГруппы/Help/ru.html @@ -1,4 +1,4 @@ - +

    Описание свойств папки групп доступа.

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

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

    diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаГруппы/Module.bsl b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаГруппы/Module.bsl index 599134707..ef77865c0 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаГруппы/Module.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаГруппы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если НЕ ПравоДоступа("Изменение", Метаданные.Справочники.ГруппыДоступа) ИЛИ ПараметрыДоступа("Изменение", Метаданные.Справочники.ГруппыДоступа, @@ -32,10 +28,6 @@ &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если ТекущийОбъект.Ссылка = Справочники.ГруппыДоступа.РодительПерсональныхГруппДоступа(Истина) Тогда ТолькоПросмотр = Истина; КонецЕсли; diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаСписка/Help/ru.html b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаСписка/Help/ru.html index 75f0bae75..e930833c9 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаСписка/Help/ru.html +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаСписка/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

    diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаСписка/Module.bsl index a8d6c310c..b947f0843 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.РежимВыбора Тогда СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(ЭтотОбъект, "ВыборПодбор"); Иначе diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Help/ru.html index 8d5bf912e..9e02f7617 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

    Описание свойств группы доступа.

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

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

    diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Module.bsl index c88b74e60..4d53190cd 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - // Подготовка вспомогательных данных. УправлениеДоступомСлужебный.ПриСозданииНаСервереФормыРедактированияРазрешенныхЗначений(ЭтотОбъект); @@ -135,10 +131,6 @@ &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если НЕ ВыполненаПроцедураПриСозданииНаСервере Тогда Возврат; КонецЕсли; diff --git a/SSL/src/Catalogs/ГруппыДоступа/Help/ru.html b/SSL/src/Catalogs/ГруппыДоступа/Help/ru.html index 1e0ec6e60..b820b3e2f 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/Help/ru.html +++ b/SSL/src/Catalogs/ГруппыДоступа/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

    Набор прав и возможности по их ограничению определяются заданным профилем групп доступа.

    diff --git a/SSL/src/Catalogs/ГруппыДоступа/ObjectModule.bsl b/SSL/src/Catalogs/ГруппыДоступа/ObjectModule.bsl index ced76cde7..f1e17864e 100644 --- a/SSL/src/Catalogs/ГруппыДоступа/ObjectModule.bsl +++ b/SSL/src/Catalogs/ГруппыДоступа/ObjectModule.bsl @@ -220,7 +220,7 @@ Процедура ОбновитьРолиПользователейПриИзмененииГруппыДоступа() - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей(); Иначе diff --git a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаСписка/Module.bsl index d40ce93de..87fb7e8da 100644 --- a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - НастроитьПорядокГруппыВсеПользователи(Список); Если Параметры.РежимВыбора Тогда diff --git a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Help/ru.html index 503662549..f8aef3df5 100644 --- a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

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

    Открывается с помощью кнопки  в списке Пользователи.

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

    @@ -17,6 +17,6 @@
  • При использовании команды Еще - Добавить можно включить в группу только одного пользователя.
  • На вкладке Комментарий можно написать подробное описание данной группы.
  • Права доступа группы пользователей

    См. также:

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

    \ No newline at end of file diff --git a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Module.bsl index 4ac92b1fc..389dd84d1 100644 --- a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Объект.Ссылка = Справочники.ГруппыПользователей.ПустаяСсылка() И Объект.Родитель = Справочники.ГруппыПользователей.ВсеПользователи Тогда diff --git a/SSL/src/Catalogs/ГруппыПользователей/Help/ru.html b/SSL/src/Catalogs/ГруппыПользователей/Help/ru.html index 85fa9b69d..6a0139838 100644 --- a/SSL/src/Catalogs/ГруппыПользователей/Help/ru.html +++ b/SSL/src/Catalogs/ГруппыПользователей/Help/ru.html @@ -1,4 +1,4 @@ - +

    Предназначен для ведения групп пользователей.

    Удобно использовать группы, когда в программе много пользователей:

    См. также:

    \ No newline at end of file diff --git a/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Help/ru.html b/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Help/ru.html index 72b3b819d..b779fb04c 100644 --- a/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Help/ru.html +++ b/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Help/ru.html @@ -1,4 +1,4 @@ - +

    Список предназначен для работы с заметками. В списке находятся все заметки, созданные Вами в программе.

    Открывается по команде Все заметки.

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

    diff --git a/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Module.bsl b/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Module.bsl index 3f0f2516c..07309b38e 100644 --- a/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Module.bsl +++ b/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Список.Параметры.УстановитьЗначениеПараметра("Пользователь", Пользователи.ТекущийПользователь()); Список.Параметры.УстановитьЗначениеПараметра("Предмет", ""); Список.Параметры.УстановитьЗначениеПараметра("Пометка", Перечисления.ЦветаЗаметок.ПустаяСсылка()); diff --git a/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Help/ru.html b/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Help/ru.html index adc978dda..2b8f7642a 100644 --- a/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Help/ru.html +++ b/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Help/ru.html @@ -1,4 +1,4 @@ - +

    Все заметки, введенные по поводу данного объекта программы, отображаются в этом списке.

    Открывается из карточки объекта программы по команде Мои заметки панели навигации.

    В списках объекты, с которыми связаны заметки, помечены значком .

    diff --git a/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Module.bsl b/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Module.bsl index 0ded54d71..ad8ec936b 100644 --- a/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Module.bsl +++ b/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Свойство("Предмет") Тогда Предмет = Параметры.Предмет; Список.Параметры.УстановитьЗначениеПараметра("Предмет", Предмет); diff --git a/SSL/src/Catalogs/Заметки/Forms/МоиЗаметки/Help/ru.html b/SSL/src/Catalogs/Заметки/Forms/МоиЗаметки/Help/ru.html index a6a382f0d..418641d02 100644 --- a/SSL/src/Catalogs/Заметки/Forms/МоиЗаметки/Help/ru.html +++ b/SSL/src/Catalogs/Заметки/Forms/МоиЗаметки/Help/ru.html @@ -1,4 +1,4 @@ - +

    Список размещается на рабочем столе программы, предназначен для работы с заметками. 

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

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

    diff --git a/SSL/src/Catalogs/Заметки/Forms/МоиЗаметки/Module.bsl b/SSL/src/Catalogs/Заметки/Forms/МоиЗаметки/Module.bsl index 92be30cbd..7bbf94635 100644 --- a/SSL/src/Catalogs/Заметки/Forms/МоиЗаметки/Module.bsl +++ b/SSL/src/Catalogs/Заметки/Forms/МоиЗаметки/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Список.Параметры.УстановитьЗначениеПараметра("Пользователь", Пользователи.ТекущийПользователь()); КонецПроцедуры diff --git a/SSL/src/Catalogs/Заметки/Forms/ФормаГруппы/Help/ru.html b/SSL/src/Catalogs/Заметки/Forms/ФормаГруппы/Help/ru.html index 3b42d5b9b..81ade426c 100644 --- a/SSL/src/Catalogs/Заметки/Forms/ФормаГруппы/Help/ru.html +++ b/SSL/src/Catalogs/Заметки/Forms/ФормаГруппы/Help/ru.html @@ -1,4 +1,4 @@ - +

    Ввод сведений о группе заметок.

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

    Ввод группы заметок

    diff --git a/SSL/src/Catalogs/Заметки/Forms/ФормаГруппы/Module.bsl b/SSL/src/Catalogs/Заметки/Forms/ФормаГруппы/Module.bsl index bfdb3774c..412c65a69 100644 --- a/SSL/src/Catalogs/Заметки/Forms/ФормаГруппы/Module.bsl +++ b/SSL/src/Catalogs/Заметки/Forms/ФормаГруппы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Объект.Ссылка.Пустая() Тогда Объект.Автор = Пользователи.ТекущийПользователь(); КонецЕсли; diff --git a/SSL/src/Catalogs/Заметки/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/Заметки/Forms/ФормаЭлемента/Help/ru.html index d32f7c8b3..bafef8ebf 100644 --- a/SSL/src/Catalogs/Заметки/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/Заметки/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

    diff --git a/SSL/src/Catalogs/Заметки/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Заметки/Forms/ФормаЭлемента/Module.bsl index ebe208892..7d6988fe5 100644 --- a/SSL/src/Catalogs/Заметки/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Заметки/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Свойство("Предмет") Тогда Объект.Предмет = Параметры.Предмет; Объект.ПредставлениеПредмета = ОбщегоНазначения.ПредметСтрокой(Объект.Предмет); diff --git a/SSL/src/Catalogs/Заметки/Help/ru.html b/SSL/src/Catalogs/Заметки/Help/ru.html index 4317ac20b..d4dbe3c02 100644 --- a/SSL/src/Catalogs/Заметки/Help/ru.html +++ b/SSL/src/Catalogs/Заметки/Help/ru.html @@ -1,4 +1,4 @@ - +

    Предназначен для управления заметками.

    Список Заметки относится к внутренним данным для администратора. Полезен для контроля всех заметок в программе, введенными всеми пользователями в программе.

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

    diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Help/ru.html b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Help/ru.html index 60151df59..a742d2e0f 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Help/ru.html +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Help/ru.html @@ -1,4 +1,4 @@ - +

    Предназначена для ввода сведений о группе значений дополнительных реквизитов (сведений).

    См. также:

    diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Module.bsl index 8c2ca4ac9..44d090a92 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаГруппы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если НЕ ЗначениеЗаполнено(Объект.Ссылка) И Параметры.ЗначенияЗаполнения.Свойство("Наименование") Тогда @@ -99,4 +95,4 @@ КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Module.bsl index 2613e23bf..1058bad66 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.РежимВыбора Тогда СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(ЭтотОбъект, "ВыборПодбор"); РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца; diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Help/ru.html index c941e01fb..a5b352301 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

    Предназначена для ввода значения дополнительного реквизита (сведения).

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

    Ввод значений

    diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl index 23b326f13..aa6242e46 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если НЕ ЗначениеЗаполнено(Объект.Ссылка) И Параметры.ЗначенияЗаполнения.Свойство("Наименование") Тогда diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Help/ru.html b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Help/ru.html index db1ab5b29..a1f7f61c4 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Help/ru.html +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Help/ru.html @@ -1,4 +1,4 @@ - +

    В списке задаются значения дополнительных реквизитов и сведений.

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

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

    diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Module.bsl index 2acf6623c..e2c978d5e 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.РежимВыбора Тогда СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(ЭтотОбъект, "ВыборПодбор"); РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца; diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Help/ru.html index bafd7ab7d..5f966a82c 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

    Предназначена для ввода значения дополнительного реквизита (сведения).

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

    Ввод значений

    diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl index 6443e6581..834dd25a7 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если НЕ ЗначениеЗаполнено(Объект.Ссылка) И Параметры.ЗначенияЗаполнения.Свойство("Наименование") Тогда diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Help/ru.html b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Help/ru.html index 256fdd448..2d3531bcf 100644 --- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Help/ru.html +++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Help/ru.html @@ -1,4 +1,4 @@ - +

     В списке задаются значения дополнительных реквизитов и сведений.

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

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

    diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаЭлемента/Help/ru.html index 3e8a067a9..c05836d8a 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

    Просмотр свойств идентификатора объекта метаданных программы.

    Заполняется автоматически при первом запуске (и каждом обновлении) программы, согласно метаданным программы, а также автоматически актуализируется при каждом обновлении версии программы (учитываются переименованные, добавленные и удаленные объекты метаданных).

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

    diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Help/ru.html b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Help/ru.html index cc7261c69..fc3e37eb7 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Help/ru.html +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Help/ru.html @@ -1,4 +1,4 @@ - +

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

    Список заполняется автоматически при первом запуске (и каждом обновлении) программы, согласно метаданным программы, а также автоматически актуализируется при каждом обновлении версии программы (учитываются переименованные, добавленные и удаленные объекты метаданных).

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

    diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl index 6476ab9ff..8bff646b2 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl @@ -339,65 +339,6 @@ КонецПроцедуры -// См. ОбщегоНазначения.ИдентификаторыОбъектовМетаданных. -Функция ИдентификаторыОбъектовМетаданных(ОписаниеОбъектовМетаданных, КромеНесуществующих = Ложь, ОдинЭлемент = Ложь) Экспорт - - УстановитьОтключениеБезопасногоРежима(Истина); - УстановитьПривилегированныйРежим(Истина); - ИдентификаторыПоПолнымИменам = КэшИдентификаторов().ИдентификаторыПоПолнымИменам; - УстановитьПривилегированныйРежим(Ложь); - УстановитьОтключениеБезопасногоРежима(Ложь); - - Результат = Новый Соответствие; - ПолныеИменаБезКэша = Новый Массив; - Для Каждого ОписаниеОбъектаМетаданных Из ОписаниеОбъектовМетаданных Цикл - - ТипОписанияОбъектаМетаданных = ТипЗнч(ОписаниеОбъектаМетаданных); - Если ТипОписанияОбъектаМетаданных = Тип("Тип") Тогда - - ОбъектМетаданных = Метаданные.НайтиПоТипу(ОписаниеОбъектаМетаданных); - Если ОбъектМетаданных = Неопределено Тогда - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Некорректное значение параметра ОписаниеОбъектовМетаданных функции ОбщегоНазначения.ИдентификаторыОбъектовМетаданных: - |Указан несуществующий объект метаданных: ""%1"".'"), - ОписаниеОбъектаМетаданных); - КонецЕсли; - ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); - ИначеЕсли ТипОписанияОбъектаМетаданных = Тип("Строка") Тогда - ПолноеИмя = ОписаниеОбъектаМетаданных; - ИначеЕсли ТипОписанияОбъектаМетаданных = Тип("ОбъектМетаданных") Тогда - ПолноеИмя = ОписаниеОбъектаМетаданных.ПолноеИмя(); - Иначе - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Некорректный тип параметра ОписаниеОбъектовМетаданных функции ОбщегоНазначения.ИдентификаторыОбъектовМетаданных: - |""%1""'"), - ТипОписанияОбъектаМетаданных); - КонецЕсли; - Идентификатор = ИдентификаторыПоПолнымИменам.Получить(ПолноеИмя); - - Если Идентификатор = Неопределено Тогда - ПолныеИменаБезКэша.Добавить(ПолноеИмя); - Иначе - Результат.Вставить(ПолноеИмя, Идентификатор); - КонецЕсли; - КонецЦикла; - - Если ПолныеИменаБезКэша.Количество() = 0 Тогда - Возврат Результат; - КонецЕсли; - - Идентификаторы = ИдентификаторыОбъектовМетаданныхСПопыткойПовтора(ПолныеИменаБезКэша, - КромеНесуществующих, ОдинЭлемент); - - Для Каждого КлючИЗначение Из Идентификаторы Цикл - Результат.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение); - ИдентификаторыПоПолнымИменам.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение); - КонецЦикла; - - Возврат Результат; - -КонецФункции - // Возвращает ссылки на объект метаданных, найденный по полному имени удаленного объекта метаданных. // Используется когда требуется сделать замену старой ссылки на новую или очистить ее. // @@ -573,19 +514,23 @@ // Реализация процедур, объявленных в других модулях. // См. ОбщегоНазначения.ИдентификаторОбъектаМетаданных. -Функция ИдентификаторОбъектаМетаданных(ОписаниеОбъектаМетаданных) Экспорт +Функция ИдентификаторОбъектаМетаданных(ОписаниеОбъектаМетаданных, ВызыватьИсключение) Экспорт ТипОписанияОбъектаМетаданных = ТипЗнч(ОписаниеОбъектаМетаданных); Если ТипОписанияОбъектаМетаданных = Тип("Тип") Тогда ОбъектМетаданных = Метаданные.НайтиПоТипу(ОписаниеОбъектаМетаданных); - Если ОбъектМетаданных = Неопределено Тогда + + Если ОбъектМетаданных <> Неопределено Тогда + ПолноеИмяОбъектаМетаданных = ОбъектМетаданных.ПолноеИмя(); + + ИначеЕсли Не ВызыватьИсключение Тогда + Возврат Null; + Иначе ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Некорректное значение параметра ОписаниеОбъектаМетаданных в функции ОбщегоНазначения.ИдентификаторОбъектаМетаданных. |Указан несуществующий объект метаданных: ""%1"".'"), ОписаниеОбъектаМетаданных); - Иначе - ПолноеИмяОбъектаМетаданных = ОбъектМетаданных.ПолноеИмя(); КонецЕсли; ИначеЕсли ТипОписанияОбъектаМетаданных = Тип("Строка") Тогда @@ -593,6 +538,9 @@ ИначеЕсли ТипОписанияОбъектаМетаданных = Тип("ОбъектМетаданных") Тогда ПолноеИмяОбъектаМетаданных = ОписаниеОбъектаМетаданных.ПолноеИмя(); + + ИначеЕсли Не ВызыватьИсключение Тогда + Возврат Null; Иначе ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Некорректный тип параметра ОписаниеОбъектаМетаданных в функции ОбщегоНазначения.ИдентификаторОбъектаМетаданных: @@ -603,7 +551,81 @@ Массив = Новый Массив; Массив.Добавить(ПолноеИмяОбъектаМетаданных); - Возврат ИдентификаторыОбъектовМетаданных(Массив, , Истина).Получить(ПолноеИмяОбъектаМетаданных); + Идентификатор = ИдентификаторыОбъектовМетаданных(Массив, + ВызыватьИсключение, Истина).Получить(ПолноеИмяОбъектаМетаданных); + + Если Идентификатор = Неопределено Тогда + Возврат Null; + КонецЕсли; + + Возврат Идентификатор; + +КонецФункции + +// См. ОбщегоНазначения.ИдентификаторыОбъектовМетаданных. +Функция ИдентификаторыОбъектовМетаданных(ОписаниеОбъектовМетаданных, ВызыватьИсключение = Истина, ОдинЭлемент = Ложь) Экспорт + + УстановитьОтключениеБезопасногоРежима(Истина); + УстановитьПривилегированныйРежим(Истина); + ИдентификаторыПоПолнымИменам = КэшИдентификаторов().ИдентификаторыПоПолнымИменам; + УстановитьПривилегированныйРежим(Ложь); + УстановитьОтключениеБезопасногоРежима(Ложь); + + Результат = Новый Соответствие; + ПолныеИменаБезКэша = Новый Массив; + Для Каждого ОписаниеОбъектаМетаданных Из ОписаниеОбъектовМетаданных Цикл + + ТипОписанияОбъектаМетаданных = ТипЗнч(ОписаниеОбъектаМетаданных); + Если ТипОписанияОбъектаМетаданных = Тип("Тип") Тогда + + ОбъектМетаданных = Метаданные.НайтиПоТипу(ОписаниеОбъектаМетаданных); + Если ОбъектМетаданных <> Неопределено Тогда + ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); + ИначеЕсли Не ВызыватьИсключение Тогда + Продолжить; + Иначе + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Некорректное значение параметра ОписаниеОбъектовМетаданных функции ОбщегоНазначения.ИдентификаторыОбъектовМетаданных: + |Указан несуществующий объект метаданных: ""%1"".'"), + ОписаниеОбъектаМетаданных); + КонецЕсли; + + ИначеЕсли ТипОписанияОбъектаМетаданных = Тип("Строка") Тогда + ПолноеИмя = ОписаниеОбъектаМетаданных; + + ИначеЕсли ТипОписанияОбъектаМетаданных = Тип("ОбъектМетаданных") Тогда + ПолноеИмя = ОписаниеОбъектаМетаданных.ПолноеИмя(); + + ИначеЕсли Не ВызыватьИсключение Тогда + Продолжить; + Иначе + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Некорректный тип параметра ОписаниеОбъектовМетаданных функции ОбщегоНазначения.ИдентификаторыОбъектовМетаданных: + |""%1""'"), + ТипОписанияОбъектаМетаданных); + КонецЕсли; + Идентификатор = ИдентификаторыПоПолнымИменам.Получить(ПолноеИмя); + + Если Идентификатор = Неопределено Тогда + ПолныеИменаБезКэша.Добавить(ПолноеИмя); + Иначе + Результат.Вставить(ПолноеИмя, Идентификатор); + КонецЕсли; + КонецЦикла; + + Если ПолныеИменаБезКэша.Количество() = 0 Тогда + Возврат Результат; + КонецЕсли; + + Идентификаторы = ИдентификаторыОбъектовМетаданныхСПопыткойПовтора(ПолныеИменаБезКэша, + ВызыватьИсключение, ОдинЭлемент); + + Для Каждого КлючИЗначение Из Идентификаторы Цикл + Результат.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение); + ИдентификаторыПоПолнымИменам.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение); + КонецЦикла; + + Возврат Результат; КонецФункции @@ -986,6 +1008,7 @@ Строка.Синоним = НСтр("ru = 'Планы видов характеристик'"); Строка.ИмяВЕдЧисле = "ПланВидовХарактеристик"; Строка.СинонимВЕдЧисле = НСтр("ru = 'План видов характеристик'"); + Строка.ОбъектыРасширений = Истина; // ПланыСчетов Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить(); @@ -994,6 +1017,7 @@ Строка.Синоним = НСтр("ru = 'Планы счетов'"); Строка.ИмяВЕдЧисле = "ПланСчетов"; Строка.СинонимВЕдЧисле = НСтр("ru = 'План счетов'"); + Строка.ОбъектыРасширений = Истина; // ПланыВидовРасчета Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить(); @@ -1002,6 +1026,7 @@ Строка.Синоним = НСтр("ru = 'Планы видов расчета'"); Строка.ИмяВЕдЧисле = "ПланВидовРасчета"; Строка.СинонимВЕдЧисле = НСтр("ru = 'План видов расчета'"); + Строка.ОбъектыРасширений = Истина; // РегистрыСведений Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить(); @@ -1019,6 +1044,7 @@ Строка.Синоним = НСтр("ru = 'Регистры накопления'"); Строка.ИмяВЕдЧисле = "РегистрНакопления"; Строка.СинонимВЕдЧисле = НСтр("ru = 'Регистр накопления'"); + Строка.ОбъектыРасширений = Истина; // РегистрыБухгалтерии Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить(); @@ -1027,6 +1053,7 @@ Строка.Синоним = НСтр("ru = 'Регистры бухгалтерии'"); Строка.ИмяВЕдЧисле = "РегистрБухгалтерии"; Строка.СинонимВЕдЧисле = НСтр("ru = 'Регистр бухгалтерии'"); + Строка.ОбъектыРасширений = Истина; // РегистрыРасчета Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить(); @@ -1035,6 +1062,7 @@ Строка.Синоним = НСтр("ru = 'Регистры расчета'"); Строка.ИмяВЕдЧисле = "РегистрРасчета"; Строка.СинонимВЕдЧисле = НСтр("ru = 'Регистр расчета'"); + Строка.ОбъектыРасширений = Истина; // БизнесПроцессы Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить(); @@ -1122,10 +1150,6 @@ УпорядочитьИОформитьСписок(Форма); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.РежимВыбора Тогда СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(Форма, "ВыборПодбор"); Форма.РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца; @@ -1145,12 +1169,7 @@ Параметры = Форма.Параметры; Элементы = Форма.Элементы; - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Форма.ТолькоПросмотр = Истина; - Форма.ПустаяСсылкаПредставление = Строка(ТипЗнч(Форма.Объект.ЗначениеПустойСсылки)); Если НЕ Пользователи.ЭтоПолноправныйПользователь(, Не ОбъектыРасширений) @@ -2540,14 +2559,14 @@ КонецФункции // Для функций ИдентификаторОбъектаМетаданныхПоПолномуИмени, ИдентификаторыОбъектовМетаданных. -Функция ИдентификаторыОбъектовМетаданныхСПопыткойПовтора(ПолныеИменаОбъектовМетаданных, КромеНесуществующих, ОдинЭлемент) +Функция ИдентификаторыОбъектовМетаданныхСПопыткойПовтора(ПолныеИменаОбъектовМетаданных, ВызыватьИсключение, ОдинЭлемент) СтандартныеПодсистемыПовтИсп.ИдентификаторыОбъектовМетаданныхПроверкаИспользования(Истина, ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()); Попытка Идентификаторы = ИдентификаторыОбъектовМетаданныхБезПопыткиПовтора( - ПолныеИменаОбъектовМетаданных, КромеНесуществующих, ОдинЭлемент); + ПолныеИменаОбъектовМетаданных, Истина, ОдинЭлемент); Исключение Если Не ОбщегоНазначения.РазделениеВключено() Или Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда @@ -2562,7 +2581,7 @@ Если Идентификаторы = Неопределено Тогда ОбновитьДанныеСправочника(); Идентификаторы = ИдентификаторыОбъектовМетаданныхБезПопыткиПовтора( - ПолныеИменаОбъектовМетаданных, КромеНесуществующих, ОдинЭлемент); + ПолныеИменаОбъектовМетаданных, ВызыватьИсключение, ОдинЭлемент); КонецЕсли; Возврат Идентификаторы; @@ -2570,7 +2589,7 @@ КонецФункции // Для функций ИдентификаторыОбъектовМетаданных. -Функция ИдентификаторыОбъектовМетаданныхБезПопыткиПовтора(ПолныеИменаОбъектовМетаданных, КромеНесуществующих, ОдинЭлемент) +Функция ИдентификаторыОбъектовМетаданныхБезПопыткиПовтора(ПолныеИменаОбъектовМетаданных, ВызыватьИсключение, ОдинЭлемент) УстановитьПривилегированныйРежим(Истина); @@ -2630,7 +2649,7 @@ // Если идентификатор не найден по полному имени, возможно что полное имя задано с ошибкой. ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмяОбъектаМетаданных); Если ОбъектМетаданных = Неопределено Тогда - Если КромеНесуществующих Тогда + Если Не ВызыватьИсключение Тогда Продолжить; КонецЕсли; ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ИдентификаторыОбъектовМетаданных.mdo b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ИдентификаторыОбъектовМетаданных.mdo index 16dd4172b..1c0719f38 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ИдентификаторыОбъектовМетаданных.mdo +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ИдентификаторыОбъектовМетаданных.mdo @@ -178,6 +178,996 @@ + + РегистрСведенийАдресныеОбъекты + + + + + + РегистрСведенийБезопасноеХранилищеДанных + + + + + + РегистрСведенийБезопасноеХранилищеДанныхОбластейДанных + + + + + + РегистрСведенийБлокировкиСеансовОбластейДанных + + + + + + РегистрСведенийБуферОперацийСтатистики + + + + + + РегистрСведенийВерсииКлассификаторов + + + + + + РегистрСведенийВерсииКлассификаторовОбластейДанных + + + + + + РегистрСведенийВерсииОбъектов + + + + + + РегистрСведенийВерсииПодсистем + + + + + + РегистрСведенийВерсииПодсистемОбластейДанных + + + + + + РегистрСведенийГруппыЗначенийДоступа + + + + + + РегистрСведенийДампыПлатформы + + + + + + РегистрСведенийДанныеОбработанныеВЦентральномУзлеРИБ + + + + + + РегистрСведенийДанныеОбъектовДляРегистрацииВОбменах + + + + + + РегистрСведенийДанныеПроизводственногоКалендаря + + + + + + РегистрСведенийДатыЗапретаИзменения + + + + + + РегистрСведенийДатыПоследнейЗагрузкиПочтовыхСообщений + + + + + + РегистрСведенийДвоичныеДанныеФайлов + + + + + + РегистрСведенийДомаЗданияСтроения + + + + + + РегистрСведенийДополнительныеАдресныеСведения + + + + + + РегистрСведенийЗаблокированныеДляПолученияУчетныеЗаписи + + + + + + РегистрСведенийЗависимостиПравДоступа + + + + + + РегистрСведенийЗагруженныеВерсииАдресныхСведений + + + + + + РегистрСведенийЗамерыВремени + + + + + + РегистрСведенийЗамерыВремениТехнологические + + + + + + РегистрСведенийЗамерыКомментарииСтатистики + + + + + + РегистрСведенийЗамерыОбластиСтатистики + + + + + + РегистрСведенийЗамерыОперацииСтатистики + + + + + + РегистрСведенийЗамерыСтатистики + + + + + + РегистрСведенийЗапросыРазрешенийНаИспользованиеВнешнихРесурсов + + + + + + РегистрСведенийЗапросыРазрешенийНаИспользованиеВнешнихРесурсовВМоделиСервиса + + + + + + РегистрСведенийЗапросыРазрешенийНаИспользованиеВнешнихРесурсовОбластейДанных + + + + + + РегистрСведенийЗемельныеУчастки + + + + + + РегистрСведенийЗначенияГруппДоступа + + + + + + РегистрСведенийЗначенияГруппДоступаПоУмолчанию + + + + + + РегистрСведенийИдентификаторыЗапросовНаПодключение + + + + + + РегистрСведенийИдентификаторыОбъектовВерсийРасширений + + + + + + РегистрСведенийИдентификаторыПолученныхЭлектронныхПисем + + + + + + РегистрСведенийИзмененияОбщихДанныхУзлов + + + + + + РегистрСведенийИспользованиеДополнительныхОтчетовИОбработокСервисаВАвтономномРабочемМесте + + + + + + РегистрСведенийИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных + + + + + + РегистрСведенийИспользованиеПоставляемыхРасширенийВОбластяхДанных + + + + + + РегистрСведенийИсторияАдресныхОбъектов + + + + + + РегистрСведенийКалендарныеГрафики + + + + + + РегистрСведенийКлючиДоступаВнешнихПользователей + + + + + + РегистрСведенийКлючиДоступаГруппДоступа + + + + + + РегистрСведенийКлючиДоступаКОбъектам + + + + + + РегистрСведенийКлючиДоступаКРегистрам + + + + + + РегистрСведенийКлючиДоступаКРегиструРезультатыПроверкиУчета + + + + + + РегистрСведенийКлючиДоступаНаборовГруппДоступа + + + + + + РегистрСведенийКлючиДоступаПользователей + + + + + + РегистрСведенийКодировкиФайлов + + + + + + РегистрСведенийКомментарииОперацииСтатистики + + + + + + РегистрСведенийКомментарииСтатистики + + + + + + РегистрСведенийКонтактыВзаимодействий + + + + + + РегистрСведенийКурсыВалют + + + + + + РегистрСведенийКэшПрограммныхИнтерфейсов + + + + + + РегистрСведенийКэшТестовыхПериодов + + + + + + РегистрСведенийНаборыЗначенийДоступа + + + + + + РегистрСведенийНазначениеДополнительныхОбработок + + + + + + РегистрСведенийНаличиеФайлов + + + + + + РегистрСведенийНаследованиеНастроекПравОбъектов + + + + + + РегистрСведенийНастройкиВерсионированияОбъектов + + + + + + РегистрСведенийНастройкиКомандПечати + + + + + + РегистрСведенийНастройкиОбменаДаннымиXDTO + + + + + + РегистрСведенийНастройкиОтправителя + + + + + + РегистрСведенийНастройкиОчисткиФайлов + + + + + + РегистрСведенийНастройкиПравОбъектов + + + + + + РегистрСведенийНастройкиСинхронизацииФайлов + + + + + + РегистрСведенийНастройкиТранспортаОбменаДанными + + + + + + РегистрСведенийНастройкиТранспортаОбменаОбластейДанных + + + + + + РегистрСведенийНастройкиТранспортаОбменаОбластиДанных + + + + + + РегистрСведенийНастройкиТранспортаОбменаСообщениями + + + + + + РегистрСведенийНепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма + + + + + + РегистрСведенийНеразделенныеПользователи + + + + + + РегистрСведенийНомераОтсканированныхФайлов + + + + + + РегистрСведенийОбластиДанных + + + + + + РегистрСведенийОбластиПерсональныхДанных + + + + + + РегистрСведенийОбластиСтатистики + + + + + + РегистрСведенийОбластиТребующиеОбработкиПоставляемыхДанных + + + + + + РегистрСведенийОбновлениеКлючейДоступаКДанным + + + + + + РегистрСведенийОбновлениеКлючейДоступаПользователей + + + + + + РегистрСведенийОбработчикиСобытийСинхронизацииДанных + + + + + + РегистрСведенийОбщиеНастройкиУзловИнформационныхБаз + + + + + + РегистрСведенийОперацииСтатистики + + + + + + РегистрСведенийОриентирыАдресныхОбъектов + + + + + + РегистрСведенийОтветыНаВопросыАнкет + + + + + + РегистрСведенийОчередьИзвлеченияТекста + + + + + + РегистрСведенийОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных + + + + + + РегистрСведенийОчередьИнсталляцииПоставляемыхРасширенийВОбластиДанных + + + + + + РегистрСведенийПакетыДляОтправки + + + + + + РегистрСведенийПакетыИнформацииПриЗапуске + + + + + + РегистрСведенийПараметрыОграниченияДоступа + + + + + + РегистрСведенийПараметрыРаботыВерсийРасширений + + + + + + РегистрСведенийПараметрыРаботыПрограммы + + + + + + РегистрСведенийПодпискиПолучателей + + + + + + РегистрСведенийПользовательскиеМакетыПечати + + + + + + РегистрСведенийПользовательскиеНастройкиДоступаКОбработкам + + + + + + РегистрСведенийПоставляемыеДанныеТребующиеОбработки + + + + + + РегистрСведенийПоставляемыеМакетыПечати + + + + + + РегистрСведенийПраваРолей + + + + + + РегистрСведенийПравилаДляОбменаДанными + + + + + + РегистрСведенийПредопределенныеВариантыОтчетовВерсийРасширений + + + + + + РегистрСведенийПрименениеРазрешенийНаИспользованиеВнешнихРесурсовВМоделиСервиса + + + + + + РегистрСведенийПрименениеРазрешенийНаИспользованиеВнешнихРесурсовОбластейДанных + + + + + + РегистрСведенийПричиныИзмененияАдресныхСведений + + + + + + РегистрСведенийПроцессыДляЗапуска + + + + + + РегистрСведенийПсевдонимыПредопределенныхУзлов + + + + + + РегистрСведенийПубличныеИдентификаторыСинхронизируемыхОбъектов + + + + + + РегистрСведенийПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux + + + + + + РегистрСведенийРабочиеКаталогиФайлов + + + + + + РегистрСведенийРазрешенияНаИспользованиеВнешнихРесурсов + + + + + + РегистрСведенийРазрешенияНаИспользованиеВнешнихРесурсовВМоделиСервиса + + + + + + РегистрСведенийРазрешенияНаИспользованиеВнешнихРесурсовОбластейДанных + + + + + + РегистрСведенийРежимыПодключенияВнешнихМодулей + + + + + + РегистрСведенийРежимыПодключенияВнешнихМодулейВМоделиСервиса + + + + + + РегистрСведенийРежимыПодключенияВнешнихМодулейОбластейДанных + + + + + + РегистрСведенийРезультатыОбменаДанными + + + + + + РегистрСведенийРезультатыПроверкиУчета + + + + + + РегистрСведенийРейтингАктивностиОбластейДанных + + + + + + РегистрСведенийРучныеИзмененияГрафиковРаботы + + + + + + РегистрСведенийСведенияОПользователях + + + + + + РегистрСведенийСведенияОФайлах + + + + + + РегистрСведенийСеансыВерсийРасширений + + + + + + РегистрСведенийСертификатыШифрования + + + + + + РегистрСведенийСессииОбменаСообщениямиСистемы + + + + + + РегистрСведенийСклоненияПредставленийОбъектов + + + + + + РегистрСведенийСлужебныеАдресныеСведения + + + + + + РегистрСведенийСогласияНаОбработкуПерсональныхДанных + + + + + + РегистрСведенийСообщенияОбменаДанными + + + + + + РегистрСведенийСообщенияОбменаДаннымиОбластейДанных + + + + + + РегистрСведенийСоответствияОбъектовИнформационныхБаз + + + + + + РегистрСведенийСоставыГруппПользователей + + + + + + РегистрСведенийСостоянияКонтактовВзаимодействий + + + + + + РегистрСведенийСостоянияОбменовДанными + + + + + + РегистрСведенийСостоянияОбменовДаннымиОбластейДанных + + + + + + РегистрСведенийСостоянияПапокПисем + + + + + + РегистрСведенийСостоянияПредметовВзаимодействий + + + + + + РегистрСведенийСостоянияРассылокОтчетов + + + + + + РегистрСведенийСостоянияУспешныхОбменовДанными + + + + + + РегистрСведенийСостоянияУспешныхОбменовДаннымиОбластейДанных + + + + + + РегистрСведенийСтатистикаКонфигурации + + + + + + РегистрСведенийСтатусыСинхронизацииФайловСОблачнымСервисом + + + + + + РегистрСведенийСубъектыДляСкрытияПерсональныхДанных + + + + + + РегистрСведенийТаблицыГруппДоступа + + + + + + РегистрСведенийУведомленияОПрочтении + + + + + + РегистрСведенийУровниСокращенийАдресныхСведений + + + + + + РегистрСведенийФайлыВРабочемКаталоге + + + + + + РегистрСведенийХранилищеСертификатов + + + + + + РегистрСведенийЭлектронныеПодписи + + + + + + РегистрСведенийВременныеИдентификаторыЗапросов + + + + + + РегистрСведенийДоступныеЛицензии + + + + + + РегистрСведенийЗанятыеЛицензии + + + + + + РегистрСведенийИнцидентыОграничениеСкоростиОтсылки + + + + + + РегистрСведенийИнцидентыОткрытые + + + + + + РегистрСведенийИнцидентыОтложенныеПроверки + + + + + + РегистрСведенийМиграцияПриложенийОчередьЗагрузки + + + + + + РегистрСведенийМиграцияПриложенийСостояниеВыгрузки + + + + + + РегистрСведенийМиграцияПриложенийСостояниеЗагрузки + + + + + + РегистрСведенийНастройкиУчетныхСистем + + + + + + РегистрСведенийОбъектыКОтправке + + + + + + РегистрСведенийПросмотренныеДанныеИнформационногоЦентра + + + + + + РегистрСведенийСвойстваЗаданий + + + + + + РегистрСведенийСостоянияИнтеграцииОбъектов + + + + + + РегистрСведенийФайлыОбластейДанных + + + + DontAutoUpdate InDialog diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаЭлемента/Help/ru.html index 91abb0117..e64ef340a 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

    Просмотр свойств идентификатора объекта метаданных расширений.

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

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

    diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Help/ru.html b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Help/ru.html index 5b7a6a97d..2bebc2ada 100644 --- a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Help/ru.html +++ b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

    diff --git a/SSL/src/Catalogs/Календари/Forms/РасписаниеРаботы/Module.bsl b/SSL/src/Catalogs/Календари/Forms/РасписаниеРаботы/Module.bsl index 783b472d2..d174434dc 100644 --- a/SSL/src/Catalogs/Календари/Forms/РасписаниеРаботы/Module.bsl +++ b/SSL/src/Catalogs/Календари/Forms/РасписаниеРаботы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - РасписаниеДня = Параметры.РасписаниеРаботы; Для Каждого ОписаниеИнтервала Из РасписаниеДня Цикл diff --git a/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Form.form index 883225c6e..7260a5fa2 100644 --- a/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Form.form @@ -530,7 +530,6 @@ СправочникГрафикиРаботы.ДатаОтсчета КАК ДатаОтсчета, СправочникГрафикиРаботы.УчитыватьПраздники КАК УчитыватьПраздники, СправочникГрафикиРаботы.Описание КАК Описание, - СправочникГрафикиРаботы.УдалитьВидКалендаря КАК УдалитьВидКалендаря, СправочникГрафикиРаботы.ГоризонтПланирования КАК ГоризонтПланирования, СправочникГрафикиРаботы.ВладелецГрафика КАК ВладелецГрафика, ДАТАВРЕМЯ(1, 1, 1) КАК ДатаНеобходимойЗаполненности, diff --git a/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Module.bsl index c03150466..4da4e0bbd 100644 --- a/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.РежимВыбора Тогда Элементы.Список.РежимВыбора = Истина; КонецЕсли; diff --git a/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Help/ru.html index 315a98faa..42ded773b 100644 --- a/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

    Сведения о графике работы.

    График работы вводится на основании производственного календаря. Графики работы можно ввести как для предприятия в целом, так и для его подразделений (например, график работы склада).

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

    diff --git a/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Module.bsl index 474a89af4..bfb788116 100644 --- a/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Module.bsl @@ -20,10 +20,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Не Объект.Ссылка.Пустая() Тогда Возврат; КонецЕсли; diff --git a/SSL/src/Catalogs/Календари/Help/ru.html b/SSL/src/Catalogs/Календари/Help/ru.html index 8371a5515..ee6c52f4e 100644 --- a/SSL/src/Catalogs/Календари/Help/ru.html +++ b/SSL/src/Catalogs/Календари/Help/ru.html @@ -1,4 +1,4 @@ - +

    Список предназначен для ведения графиков работы.

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

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

    diff --git a/SSL/src/Catalogs/Календари/Календари.mdo b/SSL/src/Catalogs/Календари/Календари.mdo index be43e77ee..b308beaf8 100644 --- a/SSL/src/Catalogs/Календари/Календари.mdo +++ b/SSL/src/Catalogs/Календари/Календари.mdo @@ -325,25 +325,6 @@ Use Use - - УдалитьВидКалендаря - - ru - (Не используется) вид календаря - - - EnumRef.УдалитьВидыКалендарей - - - ru - Вид заполнения календаря (не используется) - - - - - Use - Use - diff --git a/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Help/ru.html b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Help/ru.html index 6c488192c..d66071436 100644 --- a/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Help/ru.html +++ b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Help/ru.html @@ -1,25 +1,31 @@ - -

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

    + +

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

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

    • Наименование - полное наименование банка;
      -
    • +
    • +
    • БИК - БИК банка;
      -
    • +
    • +
    • Корр. счет - корреспондентский счет;
      -
    • +
    • +
    • Город - город, в котором находится банк;
      -
    • +
    • +
    • Адрес - полный адрес банка.

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

    -

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

    -

    Выбор банка

    +

    Выбор банка

    • Выделите нужный банк.
      -
    • +
    • +
    • Нажмите Выбрать.
      -
    • +
    • +
    • Также можно воспользоваться двойным щелчком мыши.

    См. также:

    \ No newline at end of file diff --git a/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Module.bsl index bf9d4fac5..064beb4f1 100644 --- a/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Module.bsl @@ -13,15 +13,16 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ИмяОбработки = "ЗагрузкаКлассификатораБанков"; ЕстьИсточникЗагрузкиДанных = Метаданные.Обработки.Найти(ИмяОбработки) <> Неопределено; - МожноОбновлятьКлассификатор = - Не ОбщегоНазначения.РазделениеВключено() // В модели сервиса обновляется автоматически. + МожноОбновлятьКлассификатор = Ложь; + Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда + МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами"); + МожноОбновлятьКлассификатор = МодульРаботаСКлассификаторами.ИнтерактивнаяЗагрузкаКлассификаторовДоступна(); + КонецЕсли; + + МожноОбновлятьКлассификатор = МожноОбновлятьКлассификатор И Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() // В узле РИБ обновляется автоматически. И ПравоДоступа("Изменение", Метаданные.Справочники.КлассификаторБанков); // Пользователь с необходимыми правами. @@ -41,7 +42,7 @@ &НаКлиенте Процедура ЗагрузитьКлассификатор(Команда) - РаботаСБанкамиКлиент.ОткрытьФормуЗагрузкиКлассификатора(ЭтотОбъект, Истина); + РаботаСБанкамиКлиент.ОткрытьФормуЗагрузкиКлассификатора(); КонецПроцедуры &НаКлиенте diff --git a/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаСписка/Module.bsl index 5edf49f08..118e7fffc 100644 --- a/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаСписка/Module.bsl @@ -13,21 +13,22 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ИмяОбработки = "ЗагрузкаКлассификатораБанков"; ЕстьИсточникЗагрузкиДанных = Метаданные.Обработки.Найти(ИмяОбработки) <> Неопределено; - МожноОбновлятьКлассификатор = - Не ОбщегоНазначения.РазделениеВключено() // В модели сервиса обновляется автоматически. + МожноОбновлятьКлассификатор = Ложь; + Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда + МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами"); + МожноОбновлятьКлассификатор = МодульРаботаСКлассификаторами.ИнтерактивнаяЗагрузкаКлассификаторовДоступна(); + КонецЕсли; + + МожноОбновлятьКлассификатор = МожноОбновлятьКлассификатор И Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() // В узле РИБ обновляется автоматически. И ПравоДоступа("Изменение", Метаданные.Справочники.КлассификаторБанков); // Пользователь с необходимыми правами. Элементы.ФормаЗагрузитьКлассификатор.Видимость = МожноОбновлятьКлассификатор И ЕстьИсточникЗагрузкиДанных; - Если Не Пользователи.ЭтоПолноправныйПользователь() Или Не МожноОбновлятьКлассификатор Тогда + Если ОбщегоНазначения.РазделениеВключено() Или ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда ТолькоПросмотр = Истина; КонецЕсли; @@ -39,7 +40,7 @@ &НаКлиенте Процедура ЗагрузитьКлассификатор(Команда) - РаботаСБанкамиКлиент.ОткрытьФормуЗагрузкиКлассификатора(ЭтотОбъект, Истина); + РаботаСБанкамиКлиент.ОткрытьФормуЗагрузкиКлассификатора(); КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Help/ru.html index fd3c9c9ae..6654e3263 100644 --- a/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Help/ru.html @@ -1,23 +1,23 @@ - +

    Описание свойств банка:

    • Наименование - полное наименование банка.
      -
    • +
    • +
    • -
      Входит в группу - по умолчанию указывается регион, в котором находится банк. Можно включить банк в новую группу, для этого выберите из списка нужную группу, нажав Показать все, для ввода новой группы нажмите Создать. 
      -
    • -
      Деятельность банка прекращена - программа учитывает недействующие банки и автоматически включает флажок для таких банков. Также можно его включить вручную, если получены сведения о закрытии банка.
      -
    • -
      БИК - БИК банка.
      -
    • -
      СВИФТ БИК.
      -
    • Корр. счет - корреспондентский счет. -
    • -
      ИНН.
      -
    • Город - город, в котором находится банк. -
    • -
      Адрес - полный адрес банка.
      -
    • -
      Телефоны - адреса и телефоны банков можно загрузить только с диска 1С:ИТС или ввести вручную.

    См. также:

    +
    Входит в группу - по умолчанию указывается регион, в котором находится банк. Можно включить банк в новую группу, для этого выберите из списка нужную группу, нажав Показать все, для ввода новой группы нажмите Создать. 
    +
    +
    +
  • ИНН.
  • +
  • +
    Телефоны.
  • +
  • Деятельность банка прекращена - программа учитывает недействующие банки и автоматически включает флажок для таких банков. Также можно его включить вручную, если получены сведения о закрытии банка.
  • +
    • Данные о банке сгруппированы в разделы:
    • +
      • Реквизиты для платежей внутри страны:
    +
        • БИК - БИК банка.
        • +
        • СВИФТ БИК.
        • +
        • Корр. счет - корреспондентский счет.
        • +
        • Город - город, в котором находится банк.
        • +
        • Адрес - полный адрес банка.
      • Реквизиты для международных платежей - заполнены, если банк ведет международные платежи. 

    См. также:

    \ No newline at end of file diff --git a/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Module.bsl index 4dc8945f2..c27b7e458 100644 --- a/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Элементы.СтраницыДеятельностьПрекращена.Видимость = Объект.ДеятельностьПрекращена Или Пользователи.ЭтоПолноправныйПользователь(); Элементы.СтраницыДеятельностьПрекращена.ТекущаяСтраница = ?(Пользователи.ЭтоПолноправныйПользователь(), Элементы.СтраницаФлажокДеятельностьПрекращена, Элементы.СтраницаНадписьДеятельностьПрекращена); @@ -35,7 +31,7 @@ &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда МодульАвтономнаяРабота = ОбщегоНазначения.ОбщийМодуль("АвтономнаяРабота"); МодульАвтономнаяРабота.ОбъектПриЧтенииНаСервере(ТекущийОбъект, ЭтотОбъект.ТолькоПросмотр); diff --git a/SSL/src/Catalogs/КлассификаторБанков/Help/ru.html b/SSL/src/Catalogs/КлассификаторБанков/Help/ru.html index c5ecc4f6f..6977d6d5b 100644 --- a/SSL/src/Catalogs/КлассификаторБанков/Help/ru.html +++ b/SSL/src/Catalogs/КлассификаторБанков/Help/ru.html @@ -1,43 +1,39 @@ - -

    В классификаторе банков РФ хранятся сведения о банках, которые используются при заполнении реквизитов банковских счетов, в документах и других объектах программы.

    -

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

    + +

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

    +

    Классификатор может быть заполнен автоматически с использованием Общероссийского классификатора банков. При использовании автоматической загрузки классификатора банков существенно снижается трудоемкость ввода информации, ввод информации о банке в различных документах сводится к выбору из классификатора, соответственно сводится к минимуму количество ошибок в отчетности, и кроме того, программа позволяет всегда поддерживать классификатор в актуальном состоянии. Загрузка классификаторов производится с портала 1С:ИТС.

    Банки, деятельность которых прекращена, в списке становятся неактивными.

    Открывается по команде Банки раздела Справочники.

    В классификаторе выводится:

    • Наименование банка - полное наименование банка;
      -
    • +
    • +
    • БИК - БИК банка;
      -
    • +
    • +
    • Корр. счет - корреспондентский счет;
      -
    • +
    • +
    • Город - город, в котором находится банк;
      -
    • -
      Адрес - полный адрес банка.

    Следует иметь в виду, что сведения об адресах и телефонах банков загружаются только с диска 1С:ИТС.

    -

    С помощью команды Еще - Изменить форму можно вывести дополнительную информацию:

    + +
  • +
    Адрес - полный адрес банка.
  • С помощью команды Еще - Изменить форму можно вывести дополнительную информацию:

    • Деятельность прекращена - программа учитывает недействующие банки и автоматически включает флажок для таких банков. Также можно его включить вручную, если получены сведения о закрытии банка.
      -
    • +
    • +
    • Группа банков - по умолчанию регион, в котором находится банк.
      -
    • +
    • +
    • СВИФТ БИК;
      -
    • -
      Телефоны - адреса и телефоны банков можно загрузить только с диска 1С:ИТС.

    Группировка банков

    + +
  • +
    Телефоны.
  • Группировка банков

    • Банки в списке сгруппированы по регионам, при входе в список видны только регионы банков. Выберите нужный регион для просмотра банков этого региона.
      -
    • -
      Также можно внутри регионов ввести свою группировку. Для этого нажмите Создать группу, введите наименование группы и перетащите в группу нужные банки с помощью мыши.

    Загрузка классификатора банков

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

      С помощью кнопки Загрузить классификатор можно обновить сведения о банках.

      -
    • -
      Также можно настроить обновление классификатора с сайта 1С автоматически по расписанию с помощью регламентного задания "Загрузка классификатора банков".
      -
    • -
      В карточку банка может загружаться не вся информация. Поля Адрес и Телефоны не заполняются, если классификатор загружается с сайта 1С.
      -
    • -
      При повторной загрузке перезаписываются только измененные сведения классификатора. При этом если был изменен БИК банка, то будет создана новая запись о банке. Если были изменены другие поля, то они при повторной загрузке будут перезаписаны (кроме полей Адрес и Телефоны в случае, когда классификатор перезагружается с сайта 1С).

    Ввод банка

    + +
  • +
    Также можно внутри регионов ввести свою группировку. Для этого нажмите Создать группу, введите наименование группы и перетащите в группу нужные банки с помощью мыши.
  • Ввод банка

    • При необходимости можно ввести банк, нажав Создать. Заполните необходимые параметры.

    См. также:

    • diff --git a/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаВыбора/Form.form b/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаВыбора/Form.form index bff4da66e..93e44f698 100644 --- a/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаВыбора/Form.form +++ b/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаВыбора/Form.form @@ -266,6 +266,10 @@ true + + Отбор + + diff --git a/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаВыбора/Module.bsl index 16022acce..ae1aae4c6 100644 --- a/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаВыбора/Module.bsl @@ -10,9 +10,12 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; + + ОценкаПроизводительностиКлиентСервер.УстановитьЭлементОтбора( + Список.Отбор, + "Ссылка", + Параметры.Отбор, + ВидСравненияКомпоновкиДанных.НеВСписке); ОценкаПроизводительностиКлиентСервер.УстановитьЭлементОтбора( Список.Отбор, diff --git a/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаСписка/Module.bsl index e3b91fc06..d896eea17 100644 --- a/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЭлементОбщаяПроизводительность = ОценкаПроизводительностиСлужебный.ПолучитьЭлементОбщаяПроизводительностьСистемы(); Если ЗначениеЗаполнено(ЭлементОбщаяПроизводительность) Тогда ОценкаПроизводительностиКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( diff --git a/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаЭлемента/Help/ru.html index 88e9b6d56..358d81a6e 100644 --- a/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

      Описание свойств ключевых операций.

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

      Сведения о ключевых операциях

      diff --git a/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаЭлемента/Module.bsl index 7d11562b0..22ec36195 100644 --- a/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/КлючевыеОперации/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЭлементОбщаяПроизводительность = ОценкаПроизводительностиСлужебный.ПолучитьЭлементОбщаяПроизводительностьСистемы(); Если Объект.Ссылка = ЭлементОбщаяПроизводительность Тогда Отказ = Истина; diff --git a/SSL/src/Catalogs/КлючевыеОперации/Help/ru.html b/SSL/src/Catalogs/КлючевыеОперации/Help/ru.html index 4dd7599c9..db4efbcc3 100644 --- a/SSL/src/Catalogs/КлючевыеОперации/Help/ru.html +++ b/SSL/src/Catalogs/КлючевыеОперации/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

      Список открывается по команде Ключевые операции раздела Сервисные подсистемы.

      diff --git a/SSL/src/Catalogs/КлючевыеОперации/ObjectModule.bsl b/SSL/src/Catalogs/КлючевыеОперации/ObjectModule.bsl index dd21a1732..31c523ce8 100644 --- a/SSL/src/Catalogs/КлючевыеОперации/ObjectModule.bsl +++ b/SSL/src/Catalogs/КлючевыеОперации/ObjectModule.bsl @@ -55,10 +55,11 @@ ТекстСообщения = НСтр("ru = 'Ключевая операция с приоритетом ""%1"" уже существует (%2).'"); ТекстСообщения = СтрЗаменить(ТекстСообщения, "%1", Строка(Приоритет)); ТекстСообщения = СтрЗаменить(ТекстСообщения, "%2", Выборка.Наименование); - ОценкаПроизводительностиКлиентСервер.ЗаписатьВЖурналРегистрации( - "Справочник.КлючевыеОперации.МодульОбъекта.ПередЗаписью", - УровеньЖурналаРегистрации.Ошибка, - ТекстСообщения); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Справочник.КлючевыеОперации.МодульОбъекта.ПередЗаписью'", Метаданные.ОсновнойЯзык.КодЯзыка), + УровеньЖурналаРегистрации.Ошибка, + , + НСтр("ru = 'Оценка производительности'"), + ТекстСообщения); ОценкаПроизводительностиСлужебный.СообщитьПользователю(ТекстСообщения); Отказ = Истина; КонецЕсли; diff --git a/SSL/src/Catalogs/КлючиДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/КлючиДоступа/Forms/ФормаСписка/Module.bsl index e9e6f7c5f..ccc13a940 100644 --- a/SSL/src/Catalogs/КлючиДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/КлючиДоступа/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; Если Параметры.РежимВыбора Тогда diff --git a/SSL/src/Catalogs/КлючиДоступа/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/КлючиДоступа/Forms/ФормаЭлемента/Module.bsl index e20546285..8db55f61d 100644 --- a/SSL/src/Catalogs/КлючиДоступа/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/КлючиДоступа/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; РасшифровкаСоставаПолей = РасшифровкаСоставаПолей(Объект.СоставПолей); diff --git a/SSL/src/Catalogs/НаборыГруппДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/НаборыГруппДоступа/Forms/ФормаСписка/Module.bsl index 04c3bbc9b..3688effed 100644 --- a/SSL/src/Catalogs/НаборыГруппДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/НаборыГруппДоступа/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; Если Параметры.РежимВыбора Тогда diff --git a/SSL/src/Catalogs/НаборыГруппДоступа/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/НаборыГруппДоступа/Forms/ФормаЭлемента/Module.bsl index 2d43d0573..54a2a7ee6 100644 --- a/SSL/src/Catalogs/НаборыГруппДоступа/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/НаборыГруппДоступа/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; СписокВыбора = Элементы.ТипЭлементовНабора.СписокВыбора; diff --git a/SSL/src/Catalogs/НаборыГруппДоступа/НаборыГруппДоступа.mdo b/SSL/src/Catalogs/НаборыГруппДоступа/НаборыГруппДоступа.mdo index b8a39395f..20a6bdd67 100644 --- a/SSL/src/Catalogs/НаборыГруппДоступа/НаборыГруппДоступа.mdo +++ b/SSL/src/Catalogs/НаборыГруппДоступа/НаборыГруппДоступа.mdo @@ -393,6 +393,7 @@ ru Форма списка + АПК:494 - допустимо, так как объем данных небольшой (от единиц до нескольких тысяч). PersonalComputer MobileDevice diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаГруппы/Module.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаГруппы/Module.bsl index 1fe044d19..8852feecd 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаГруппы/Module.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаГруппы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; ВидыСвойствНабора = УправлениеСвойствамиСлужебный.ВидыСвойствНабора(Объект.Ссылка); diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl index 910f9bbb6..bed238b30 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Свойство("ПоказатьДополнительныеРеквизиты") Тогда СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(ЭтотОбъект, "НаборыДополнительныхРеквизитов"); diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Help/ru.html index 06185923a..5f48e7b2e 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

      diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Module.bsl index decd192a6..4035efce7 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; ВидыСвойствНабора = УправлениеСвойствамиСлужебный.ВидыСвойствНабора(Объект.Ссылка); diff --git a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Help/ru.html b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Help/ru.html index 212961bee..07e74d20a 100644 --- a/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Help/ru.html +++ b/SSL/src/Catalogs/НаборыДополнительныхРеквизитовИСведений/Help/ru.html @@ -1,4 +1,4 @@ - +

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

      Можно настроить наборы дополнительных свойств для определенных объектов программы. 

      Способ хранения дополнительного свойства в программе и место размещения в окне объекта программы зависит от типа свойства:

      diff --git a/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ОбщиеВнешниеКомпоненты.mdo b/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ОбщиеВнешниеКомпоненты.mdo index 00152b995..f213031a9 100644 --- a/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ОбщиеВнешниеКомпоненты.mdo +++ b/SSL/src/Catalogs/ОбщиеВнешниеКомпоненты/ОбщиеВнешниеКомпоненты.mdo @@ -369,11 +369,26 @@ Use Use + + MacOS_x86_64 + + ru + macOS x86_64 + + + Boolean + + + + + Use + Use + MacOS_x86_64_Safari ru - Mac OS x86_64 Safari + macOS x86_64 Safari Boolean diff --git a/SSL/src/Catalogs/ОчередьЗаданий/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ОчередьЗаданий/Forms/ФормаЭлемента/Form.form deleted file mode 100644 index 692cbff78..000000000 --- a/SSL/src/Catalogs/ОчередьЗаданий/Forms/ФормаЭлемента/Form.form +++ /dev/null @@ -1,862 +0,0 @@ - - - - ГруппаСтраницы - 32 - - ГруппаОсновное - 33 - - Идентификатор - 29 - true - true - - true - - - Идентификатор - - - ИдентификаторExtendedTooltip - 42 - Label - true - true - - Left - - - - ИдентификаторКонтекстноеМеню - 30 - true - - LabelField - Show - Enter - true - Left - true - - true - true - - - - ПредставлениеРасписания - 38 - true - true - - true - - - ПредставлениеРасписания - - - ПредставлениеРасписанияExtendedTooltip - 43 - Label - true - true - - Left - - - - ПредставлениеРасписанияКонтекстноеМеню - 39 - true - - InputField - Show - Enter - true - Left - true - - - StartChoice - ПредставлениеРасписанияНачалоВыбора - - - Clearing - ПредставлениеРасписанияОчистка - - true - true - true - true - true - true - true - Normal - - - - ИмяМетода - 17 - true - true - - true - - - Объект.ИмяМетода - - - ИмяМетодаExtendedTooltip - 44 - Label - true - true - - Left - - - - ИмяМетодаКонтекстноеМеню - 18 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - Ключ - 23 - true - true - - true - - - Объект.Ключ - - - КлючExtendedTooltip - 45 - Label - true - true - - Left - - - - КлючКонтекстноеМеню - 24 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - Использование - 3 - true - true - - true - - - Объект.Использование - - - ИспользованиеExtendedTooltip - 46 - Label - true - true - - Left - - - - ИспользованиеКонтекстноеМеню - 4 - true - - CheckBoxField - Show - Auto - true - Left - true - - - - ЭксклюзивноеВыполнение - 11 - true - true - - true - - - Объект.ЭксклюзивноеВыполнение - - - ЭксклюзивноеВыполнениеExtendedTooltip - 47 - Label - true - true - - Left - - - - ЭксклюзивноеВыполнениеКонтекстноеМеню - 12 - true - - CheckBoxField - Show - Auto - true - Left - true - - - true - true - - true - - - <key>ru</key> - <value>Основное</value> - - - ГруппаОсновноеExtendedTooltip - 41 - Label - true - true - - Left - - - Page - - Vertical - auto - false - - - - ГруппаСостояниеВыполнения - 34 - - СостояниеЗадания - 7 - true - true - - true - - - Объект.СостояниеЗадания - - - СостояниеЗаданияExtendedTooltip - 49 - Label - true - true - - Left - - - - СостояниеЗаданияКонтекстноеМеню - 8 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - ЗапланированныйМоментЗапуска - 5 - true - true - - true - - - Объект.ЗапланированныйМоментЗапуска - - - ЗапланированныйМоментЗапускаExtendedTooltip - 50 - Label - true - true - - Left - - - - ЗапланированныйМоментЗапускаКонтекстноеМеню - 6 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - НомерПопытки - 15 - true - true - - true - - - Объект.НомерПопытки - - - НомерПопыткиExtendedTooltip - 51 - Label - true - true - - Left - - - - НомерПопыткиКонтекстноеМеню - 16 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - КоличествоПовторовПриАварийномЗавершении - 27 - true - true - - true - - - Объект.КоличествоПовторовПриАварийномЗавершении - - - КоличествоПовторовПриАварийномЗавершенииExtendedTooltip - 52 - Label - true - true - - Left - - - - КоличествоПовторовПриАварийномЗавершенииКонтекстноеМеню - 28 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - ИнтервалПовтораПриАварийномЗавершении - 25 - true - true - - true - - - Объект.ИнтервалПовтораПриАварийномЗавершении - - - ИнтервалПовтораПриАварийномЗавершенииExtendedTooltip - 53 - Label - true - true - - Left - - - - ИнтервалПовтораПриАварийномЗавершенииКонтекстноеМеню - 26 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - ДатаНачалаПоследнегоЗапуска - 19 - true - true - - true - - - Объект.ДатаНачалаПоследнегоЗапуска - - - ДатаНачалаПоследнегоЗапускаExtendedTooltip - 54 - Label - true - true - - Left - - - - ДатаНачалаПоследнегоЗапускаКонтекстноеМеню - 20 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - ДатаЗавершенияПоследнегоЗапуска - 21 - true - true - - true - - - Объект.ДатаЗавершенияПоследнегоЗапуска - - - ДатаЗавершенияПоследнегоЗапускаExtendedTooltip - 55 - Label - true - true - - Left - - - - ДатаЗавершенияПоследнегоЗапускаКонтекстноеМеню - 22 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - ИсполняющееФоновоеЗадание - 9 - true - true - - true - - - Объект.ИсполняющееФоновоеЗадание - - - ИсполняющееФоновоеЗаданиеExtendedTooltip - 56 - Label - true - true - - Left - - - - ИсполняющееФоновоеЗаданиеКонтекстноеМеню - 10 - true - - LabelField - Auto - true - Left - true - - true - true - - - true - true - - true - - - <key>ru</key> - <value>Состояние выполнения</value> - - - ГруппаСостояниеВыполненияExtendedTooltip - 48 - Label - true - true - - Left - - - Page - - Vertical - auto - false - - - - ГруппаПараметры - 35 - - ПараметрыМетода - 36 - true - true - - true - - - ПараметрыМетода - - None - - ПараметрыМетодаExtendedTooltip - 58 - Label - true - true - - Left - - - - ПараметрыМетодаКонтекстноеМеню - 37 - true - - InputField - Show - Enter - true - Left - true - - true - true - true - true - true - true - true - Normal - - - true - true - - true - - - <key>ru</key> - <value>Параметры</value> - - - ГруппаПараметрыExtendedTooltip - 57 - Label - true - true - - Left - - - Page - - Vertical - auto - false - - - true - true - - true - - - <key>ru</key> - <value>Страницы</value> - - - ГруппаСтраницыExtendedTooltip - 40 - Label - true - true - - Left - - - Pages - - TabsOnTop - Auto - - - - ФормаКоманднаяПанель - -1 - Left - true - - - BeforeClose - ПередЗакрытием - - - OnCreateAtServer - ПриСозданииНаСервере - - LockOwner - true - true - true - Vertical - true - true - true - auto - true - - Объект - 1 - - CatalogObject.ОчередьЗаданий - - - true - - - true - -
      true
      - true -
      - - Идентификатор - - <key>ru</key> - <value>Идентификатор</value> - - 2 - - String - - 36 - - - - true - - - true - - - - Расписание - - <key>ru</key> - <value>Расписание</value> - - 3 - - - true - - - true - - - - ПараметрыМетода - - <key>ru</key> - <value>Параметры метода</value> - - 4 - - String - - - - true - - - true - - true - - - ПредставлениеРасписания - - <key>ru</key> - <value>Расписание</value> - - 5 - - String - - - - true - - - true - - true - - - - - - - - AfterWriteAtServer - ПослеЗаписиНаСервере - - - OnReadAtServer - ПриЧтенииНаСервере - - - BeforeWriteAtServer - ПередЗаписьюНаСервере - - -
      diff --git a/SSL/src/Catalogs/ОчередьЗаданий/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ОчередьЗаданий/Forms/ФормаЭлемента/Module.bsl deleted file mode 100644 index f3254c9c6..000000000 --- a/SSL/src/Catalogs/ОчередьЗаданий/Forms/ФормаЭлемента/Module.bsl +++ /dev/null @@ -1,134 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - Если НЕ Пользователи.ЭтоПолноправныйПользователь(, Истина) Тогда - ТолькоПросмотр = Истина; - КонецЕсли; - - Если Объект.Ссылка.Пустая() Тогда - УстановитьПредставлениеРасписания(ЭтотОбъект); - ПараметрыМетода = ОбщегоНазначения.ЗначениеВСтрокуXML(Новый Массив); - КонецЕсли; - -КонецПроцедуры - -&НаСервере -Процедура ПриЧтенииНаСервере(ТекущийОбъект) - - Идентификатор = Объект.Ссылка.УникальныйИдентификатор(); - - Расписание = ТекущийОбъект.Расписание.Получить(); - УстановитьПредставлениеРасписания(ЭтотОбъект); - - ПараметрыМетода = ОбщегоНазначения.ЗначениеВСтрокуXML(ТекущийОбъект.Параметры.Получить()); - -КонецПроцедуры - -&НаСервере -Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) - - ТекущийОбъект.Расписание = Новый ХранилищеЗначения(Расписание); - ТекущийОбъект.Параметры = Новый ХранилищеЗначения(ОбщегоНазначения.ЗначениеИзСтрокиXML(ПараметрыМетода)); - -КонецПроцедуры - -&НаСервере -Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) - - Идентификатор = Объект.Ссылка.УникальныйИдентификатор(); - -КонецПроцедуры - -&НаКлиенте -Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) - - Если Не ЗавершениеРаботы Тогда - РазблокироватьДанныеФормыДляРедактирования(); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиСобытийЭлементовУправленияФормы - -&НаКлиенте -Процедура ПредставлениеРасписанияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - - СтандартнаяОбработка = Ложь; - ЗаблокироватьДанныеФормыДляРедактирования(); - - Если Расписание = Неопределено Тогда - РедактируемоеРасписание = Новый РасписаниеРегламентногоЗадания; - Иначе - РедактируемоеРасписание = Расписание; - КонецЕсли; - - Диалог = Новый ДиалогРасписанияРегламентногоЗадания(РедактируемоеРасписание); - ОписаниеОповещенияОЗакрытии = Новый ОписаниеОповещения("ИзменитьРасписание", ЭтотОбъект); - Диалог.Показать(ОписаниеОповещенияОЗакрытии); - -КонецПроцедуры - -&НаКлиенте -Процедура ПредставлениеРасписанияОчистка(Элемент, СтандартнаяОбработка) - - СтандартнаяОбработка = Ложь; - ЗаблокироватьДанныеФормыДляРедактирования(); - - Расписание = Неопределено; - Модифицированность = Истина; - УстановитьПредставлениеРасписания(ЭтотОбъект); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -&НаКлиенте -Процедура ИзменитьРасписание(НовоеРасписание, ДополнительныеПараметры) Экспорт - - Если НовоеРасписание = Неопределено Тогда - Возврат; - КонецЕсли; - - Расписание = НовоеРасписание; - Модифицированность = Истина; - УстановитьПредставлениеРасписания(ЭтотОбъект); - - ПоказатьОповещениеПользователя(НСтр("ru = 'Перепланирование'"), , НСтр("ru = 'Новое расписание будет учтено при - |следующем выполнении задания'")); - -КонецПроцедуры - -&НаКлиентеНаСервереБезКонтекста -Процедура УстановитьПредставлениеРасписания(Знач Форма) - - Расписание = Форма.Расписание; - - Если Расписание <> Неопределено Тогда - Форма.ПредставлениеРасписания = Строка(Расписание); - Иначе - Форма.ПредставлениеРасписания = НСтр("ru = '<Не задано>'"); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - - diff --git a/SSL/src/Catalogs/ОчередьЗаданий/ОчередьЗаданий.mdo b/SSL/src/Catalogs/ОчередьЗаданий/ОчередьЗаданий.mdo deleted file mode 100644 index 17aa0c026..000000000 --- a/SSL/src/Catalogs/ОчередьЗаданий/ОчередьЗаданий.mdo +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - ОчередьЗаданий - - ru - Очередь заданий - - true - DontUse - - Use - PredefinedDataName - - Use - - - - - Use - Predefined - - Use - - - - - Use - Ref - - Use - - - - - Use - DeletionMark - - Use - - - - - Use - IsFolder - - Use - - - - - Use - Owner - true - - ShowError - Use - - - - - Use - Parent - true - - Use - - - - - Use - Description - - ShowError - Use - - - - - Use - Code - - Use - - - - Use - Managed - - ru - Задание информационной базы - - 2 - true - String - Variable - InDialog - BothWays - Catalog.ОчередьЗаданий.Form.ФормаЭлемента - - Использование - - ru - Использование - - - Boolean - - - ru - Флаг использования задания - - - - - Use - Use - - - ЗапланированныйМоментЗапуска - - ru - Запланированный момент запуска - - - Date - - - - ru - Дата следующего планового запуска задания (UTC) - - - - - Use - Use - - - СостояниеЗадания - - ru - Состояние задания - - - EnumRef.СостоянияЗаданий - - - ru - Состояние задания очереди - - - - - Use - Use - - - ИсполняющееФоновоеЗадание - - ru - Исполняющее фоновое задание - - - UUID - - - ru - Идентификатор фонового задания выполняющего задание очереди - - - - - Use - - - ЭксклюзивноеВыполнение - - ru - Эксклюзивное выполнение - - - Boolean - - - ru - Флаг эксклюзивного выполнения задания в области - - - - - Use - Use - - - НомерПопытки - - ru - Номер попытки - - - Number - - 3 - true - - - - ru - Порядковый номер попытки выполнения задания - - - - - Use - Use - - - ИмяМетода - - ru - Имя метода - - - String - - 255 - - - - ru - Имя метода задания - - - - - Use - Use - - - Параметры - - ru - Параметры - - - ValueStorage - - - ru - Параметры для метода выполняющего задание (структура) - - - - - Use - Use - - - ДатаНачалаПоследнегоЗапуска - - ru - Дата начала последнего запуска - - - Date - - - - ru - Дата последнего начала выполнения задания - - - - - Use - Use - - - ДатаЗавершенияПоследнегоЗапуска - - ru - Дата завершения последнего запуска - - - Date - - - - ru - Дата последнего начала выполнения задания - - - - - Use - Use - - - Ключ - - ru - Ключ - - - String - - 128 - - - - ru - Ключ задания - - - - - Use - Use - - - ИнтервалПовтораПриАварийномЗавершении - - ru - Интервал повтора при аварийном завершении - - - Number - - 10 - true - - - - ru - Интервал времени ( в секундах), по истечении которого задание будет запущено повторно, если предыдущий его запуск завершился аварийно - - - - - Use - Use - - - Расписание - - ru - Расписание - - - ValueStorage - - - ru - Расписание выполнения задания - - - - - Use - Use - - - КоличествоПовторовПриАварийномЗавершении - - ru - Количество повторов при аварийном завершении - - - Number - - 10 - true - - - - ru - Количество повторов при аварийном завершении задания - - - - - Use - Use - - - ФормаЭлемента - - ru - Форма элемента - - PersonalComputer - MobileDevice - - diff --git a/SSL/src/Catalogs/ОчередьЗаданийОбластейДанных/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ОчередьЗаданийОбластейДанных/Forms/ФормаСписка/Form.form deleted file mode 100644 index 79235f27c..000000000 --- a/SSL/src/Catalogs/ОчередьЗаданийОбластейДанных/Forms/ФормаСписка/Form.form +++ /dev/null @@ -1,738 +0,0 @@ - - - - Список - 1 - - <key>ru</key> - <value>Список</value> - - true - true - - true - - - Список - - true - None - - ОбластьДанныхВспомогательныеДанные - 6 - - <key>ru</key> - <value>Область данных</value> - - true - true - - true - - - Список.ОбластьДанныхВспомогательныеДанные - - true - - ОбластьДанныхВспомогательныеДанныеExtendedTooltip - 35 - Label - true - true - - Left - - - - ОбластьДанныхВспомогательныеДанныеКонтекстноеМеню - 7 - true - - LabelField - Enter - true - Left - true - - true - true - - - - Использование - 8 - true - true - - true - - - Список.Использование - - true - - ИспользованиеExtendedTooltip - 36 - Label - true - true - - Left - - - - ИспользованиеКонтекстноеМеню - 9 - true - - CheckBoxField - Enter - true - Left - true - - - - ЗапланированныйМоментЗапуска - 10 - true - true - - true - - - Список.ЗапланированныйМоментЗапуска - - true - - ЗапланированныйМоментЗапускаExtendedTooltip - 37 - Label - true - true - - Left - - - - ЗапланированныйМоментЗапускаКонтекстноеМеню - 11 - true - - LabelField - Enter - true - Left - true - - true - true - - - - СостояниеЗадания - 12 - true - true - - true - - - Список.СостояниеЗадания - - true - - СостояниеЗаданияExtendedTooltip - 38 - Label - true - true - - Left - - - - СостояниеЗаданияКонтекстноеМеню - 13 - true - - LabelField - Enter - true - Left - true - - true - true - - - - ИсполняющееФоновоеЗадание - 14 - true - true - - true - - - Список.ИсполняющееФоновоеЗадание - - true - - ИсполняющееФоновоеЗаданиеExtendedTooltip - 39 - Label - true - true - - Left - - - - ИсполняющееФоновоеЗаданиеКонтекстноеМеню - 15 - true - - LabelField - Enter - true - Left - true - - true - true - - - - ЭксклюзивноеВыполнение - 16 - true - true - - true - - - Список.ЭксклюзивноеВыполнение - - true - - ЭксклюзивноеВыполнениеExtendedTooltip - 40 - Label - true - true - - Left - - - - ЭксклюзивноеВыполнениеКонтекстноеМеню - 17 - true - - CheckBoxField - Enter - true - Left - true - - - - Шаблон - 18 - true - true - - true - - - Список.Шаблон - - true - - ШаблонExtendedTooltip - 41 - Label - true - true - - Left - - - - ШаблонКонтекстноеМеню - 19 - true - - LabelField - Enter - true - Left - true - - true - true - - - - НомерПопытки - 20 - true - true - - true - - - Список.НомерПопытки - - true - - НомерПопыткиExtendedTooltip - 42 - Label - true - true - - Left - - - - НомерПопыткиКонтекстноеМеню - 21 - true - - LabelField - Enter - true - Left - true - - true - true - - - - ИмяМетода - 22 - true - true - - true - - - Список.ИмяМетода - - true - - ИмяМетодаExtendedTooltip - 43 - Label - true - true - - Left - - - - ИмяМетодаКонтекстноеМеню - 23 - true - - LabelField - Enter - true - Left - true - - true - true - - - - ДатаНачалаПоследнегоЗапуска - 24 - true - true - - true - - - Список.ДатаНачалаПоследнегоЗапуска - - true - - ДатаНачалаПоследнегоЗапускаExtendedTooltip - 44 - Label - true - true - - Left - - - - ДатаНачалаПоследнегоЗапускаКонтекстноеМеню - 25 - true - - LabelField - Enter - true - Left - true - - true - true - - - - ДатаЗавершенияПоследнегоЗапуска - 26 - true - true - - true - - - Список.ДатаЗавершенияПоследнегоЗапуска - - true - - ДатаЗавершенияПоследнегоЗапускаExtendedTooltip - 45 - Label - true - true - - Left - - - - ДатаЗавершенияПоследнегоЗапускаКонтекстноеМеню - 27 - true - - LabelField - Enter - true - Left - true - - true - true - - - - Ключ - 28 - true - true - - true - - - Список.Ключ - - true - - КлючExtendedTooltip - 46 - Label - true - true - - Left - - - - КлючКонтекстноеМеню - 29 - true - - LabelField - Enter - true - Left - true - - true - true - - - - ИнтервалПовтораПриАварийномЗавершении - 30 - true - true - - true - - - Список.ИнтервалПовтораПриАварийномЗавершении - - true - - ИнтервалПовтораПриАварийномЗавершенииExtendedTooltip - 47 - Label - true - true - - Left - - - - ИнтервалПовтораПриАварийномЗавершенииКонтекстноеМеню - 31 - true - - LabelField - Enter - true - Left - true - - true - true - - - - КоличествоПовторовПриАварийномЗавершении - 32 - true - true - - true - - - Список.КоличествоПовторовПриАварийномЗавершении - - true - - КоличествоПовторовПриАварийномЗавершенииExtendedTooltip - 48 - Label - true - true - - Left - - - - КоличествоПовторовПриАварийномЗавершенииКонтекстноеМеню - 33 - true - - LabelField - Enter - true - Left - true - - true - true - - - - Ссылка - 49 - true - true - - - Список.Ref - - - СсылкаРасширеннаяПодсказка - 51 - Label - true - true - - Left - - - - СсылкаКонтекстноеМеню - 50 - true - - LabelField - Enter - true - Left - true - - true - true - - - None - - СписокКоманднаяПанель - 3 - Left - - - СписокСтрокаПоиска - 52 - - СписокСтрокаПоискаРасширеннаяПодсказка - 54 - Label - true - true - - Left - - - - СписокСтрокаПоискаКонтекстноеМеню - 53 - true - - Список - - true - - - - СписокСостояниеПросмотра - 55 - - СписокСостояниеПросмотраРасширеннаяПодсказка - 57 - Label - true - true - - Left - - - - СписокСостояниеПросмотраКонтекстноеМеню - 56 - true - - ViewStatusAddition - Список - - true - - - - СписокУправлениеПоиском - 58 - - СписокУправлениеПоискомРасширеннаяПодсказка - 60 - Label - true - true - - Left - - - - СписокУправлениеПоискомКонтекстноеМеню - 59 - true - - SearchControlAddition - Список - - true - - - - СписокExtendedTooltip - 34 - Label - true - true - - Left - - - - СписокКонтекстноеМеню - 2 - true - - true - true - true - true - true - MultiRow -
      true
      - 1 - 1 - AutoUse - AutoUse - true - true - Auto - Auto - ExpandTopLevel - true - true - true - - Список.DefaultPicture - - true - - 60 - - 0001-01-01T00:00:00 - 0001-01-01T00:00:00 - - - true - true - -
      - - ФормаКоманднаяПанель - -1 - Left - true - - DontBlock - true - true - true - Vertical - true - true - true - auto - true - - Список - 1 - - DynamicList - - - true - - - true - -
      true
      - - Catalog.ОчередьЗаданийОбластейДанных - true - true - true - true - -
      - - - - - -
      diff --git a/SSL/src/Catalogs/ОчередьЗаданийОбластейДанных/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ОчередьЗаданийОбластейДанных/Forms/ФормаЭлемента/Form.form deleted file mode 100644 index 1d010bac7..000000000 --- a/SSL/src/Catalogs/ОчередьЗаданийОбластейДанных/Forms/ФормаЭлемента/Form.form +++ /dev/null @@ -1,942 +0,0 @@ - - - - ОбластьДанныхВспомогательныеДанные - 1 - true - true - - true - - - Объект.ОбластьДанныхВспомогательныеДанные - - - ОбластьДанныхВспомогательныеДанныеExtendedTooltip - 40 - Label - true - true - - Left - - - - ОбластьДанныхВспомогательныеДанныеКонтекстноеМеню - 2 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - ГруппаСтраницы - 32 - - ГруппаОсновное - 33 - - Идентификатор - 29 - true - true - - true - - - Идентификатор - - - ИдентификаторExtendedTooltip - 43 - Label - true - true - - Left - - - - ИдентификаторКонтекстноеМеню - 30 - true - - LabelField - Show - Enter - true - Left - true - - true - true - - - - Шаблон - 13 - true - true - - true - - - Объект.Шаблон - - - ШаблонExtendedTooltip - 44 - Label - true - true - - Left - - - - ШаблонКонтекстноеМеню - 14 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - ПредставлениеРасписания - 38 - true - true - - true - - - ПредставлениеРасписания - - - ПредставлениеРасписанияExtendedTooltip - 45 - Label - true - true - - Left - - - - ПредставлениеРасписанияКонтекстноеМеню - 39 - true - - InputField - Show - Enter - true - Left - true - - - StartChoice - ПредставлениеРасписанияНачалоВыбора - - - Clearing - ПредставлениеРасписанияОчистка - - true - true - true - true - true - true - true - Normal - - - - ИмяМетода - 17 - true - true - - true - - - Объект.ИмяМетода - - - ИмяМетодаExtendedTooltip - 46 - Label - true - true - - Left - - - - ИмяМетодаКонтекстноеМеню - 18 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - Ключ - 23 - true - true - - true - - - Объект.Ключ - - - КлючExtendedTooltip - 47 - Label - true - true - - Left - - - - КлючКонтекстноеМеню - 24 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - Использование - 3 - true - true - - true - - - Объект.Использование - - - ИспользованиеExtendedTooltip - 48 - Label - true - true - - Left - - - - ИспользованиеКонтекстноеМеню - 4 - true - - CheckBoxField - Show - Auto - true - Left - true - - - - ЭксклюзивноеВыполнение - 11 - true - true - - true - - - Объект.ЭксклюзивноеВыполнение - - - ЭксклюзивноеВыполнениеExtendedTooltip - 49 - Label - true - true - - Left - - - - ЭксклюзивноеВыполнениеКонтекстноеМеню - 12 - true - - CheckBoxField - Show - Auto - true - Left - true - - - true - true - - true - - - <key>ru</key> - <value>Основное</value> - - - ГруппаОсновноеExtendedTooltip - 42 - Label - true - true - - Left - - - Page - - Vertical - auto - false - - - - ГруппаСостояниеВыполнения - 34 - - СостояниеЗадания - 7 - true - true - - true - - - Объект.СостояниеЗадания - - - СостояниеЗаданияExtendedTooltip - 51 - Label - true - true - - Left - - - - СостояниеЗаданияКонтекстноеМеню - 8 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - ЗапланированныйМоментЗапуска - 5 - true - true - - true - - - Объект.ЗапланированныйМоментЗапуска - - - ЗапланированныйМоментЗапускаExtendedTooltip - 52 - Label - true - true - - Left - - - - ЗапланированныйМоментЗапускаКонтекстноеМеню - 6 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - НомерПопытки - 15 - true - true - - true - - - Объект.НомерПопытки - - - НомерПопыткиExtendedTooltip - 53 - Label - true - true - - Left - - - - НомерПопыткиКонтекстноеМеню - 16 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - КоличествоПовторовПриАварийномЗавершении - 27 - true - true - - true - - - Объект.КоличествоПовторовПриАварийномЗавершении - - - КоличествоПовторовПриАварийномЗавершенииExtendedTooltip - 54 - Label - true - true - - Left - - - - КоличествоПовторовПриАварийномЗавершенииКонтекстноеМеню - 28 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - ИнтервалПовтораПриАварийномЗавершении - 25 - true - true - - true - - - Объект.ИнтервалПовтораПриАварийномЗавершении - - - ИнтервалПовтораПриАварийномЗавершенииExtendedTooltip - 55 - Label - true - true - - Left - - - - ИнтервалПовтораПриАварийномЗавершенииКонтекстноеМеню - 26 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - ДатаНачалаПоследнегоЗапуска - 19 - true - true - - true - - - Объект.ДатаНачалаПоследнегоЗапуска - - - ДатаНачалаПоследнегоЗапускаExtendedTooltip - 56 - Label - true - true - - Left - - - - ДатаНачалаПоследнегоЗапускаКонтекстноеМеню - 20 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - ДатаЗавершенияПоследнегоЗапуска - 21 - true - true - - true - - - Объект.ДатаЗавершенияПоследнегоЗапуска - - - ДатаЗавершенияПоследнегоЗапускаExtendedTooltip - 57 - Label - true - true - - Left - - - - ДатаЗавершенияПоследнегоЗапускаКонтекстноеМеню - 22 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - ИсполняющееФоновоеЗадание - 9 - true - true - - true - - - Объект.ИсполняющееФоновоеЗадание - - - ИсполняющееФоновоеЗаданиеExtendedTooltip - 58 - Label - true - true - - Left - - - - ИсполняющееФоновоеЗаданиеКонтекстноеМеню - 10 - true - - LabelField - Auto - true - Left - true - - true - true - - - true - true - - true - - - <key>ru</key> - <value>Состояние выполнения</value> - - - ГруппаСостояниеВыполненияExtendedTooltip - 50 - Label - true - true - - Left - - - Page - - Vertical - auto - false - - - - ГруппаПараметры - 35 - - ПараметрыМетода - 36 - true - true - - true - - - ПараметрыМетода - - None - - ПараметрыМетодаExtendedTooltip - 60 - Label - true - true - - Left - - - - ПараметрыМетодаКонтекстноеМеню - 37 - true - - InputField - Show - Enter - true - Left - true - - true - true - true - true - true - true - true - Normal - - - true - true - - true - - - <key>ru</key> - <value>Параметры</value> - - - ГруппаПараметрыExtendedTooltip - 59 - Label - true - true - - Left - - - Page - - Vertical - auto - false - - - true - true - - true - - - <key>ru</key> - <value>Страницы</value> - - - ГруппаСтраницыExtendedTooltip - 41 - Label - true - true - - Left - - - Pages - - TabsOnTop - Auto - - - - ФормаКоманднаяПанель - -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 - - 36 - - - - true - - - true - - - - Расписание - - <key>ru</key> - <value>Расписание</value> - - 3 - - - true - - - true - - - - ПараметрыМетода - - <key>ru</key> - <value>Параметры метода</value> - - 4 - - String - - - - true - - - true - - true - - - ПредставлениеРасписания - - <key>ru</key> - <value>Расписание</value> - - 5 - - String - - - - true - - - true - - true - - - - - - - - AfterWriteAtServer - ПослеЗаписиНаСервере - - - OnReadAtServer - ПриЧтенииНаСервере - - - BeforeWriteAtServer - ПередЗаписьюНаСервере - - -
      diff --git a/SSL/src/Catalogs/ОчередьЗаданийОбластейДанных/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ОчередьЗаданийОбластейДанных/Forms/ФормаЭлемента/Module.bsl deleted file mode 100644 index ed29ae31d..000000000 --- a/SSL/src/Catalogs/ОчередьЗаданийОбластейДанных/Forms/ФормаЭлемента/Module.bsl +++ /dev/null @@ -1,132 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - Если НЕ Пользователи.ЭтоПолноправныйПользователь(, Истина) Тогда - ТолькоПросмотр = Истина; - КонецЕсли; - - Если Объект.Ссылка.Пустая() Тогда - УстановитьПредставлениеРасписания(ЭтотОбъект); - ПараметрыМетода = ОбщегоНазначения.ЗначениеВСтрокуXML(Новый Массив); - КонецЕсли; - -КонецПроцедуры - -&НаСервере -Процедура ПриЧтенииНаСервере(ТекущийОбъект) - - Идентификатор = Объект.Ссылка.УникальныйИдентификатор(); - - Расписание = ТекущийОбъект.Расписание.Получить(); - УстановитьПредставлениеРасписания(ЭтотОбъект); - - ПараметрыМетода = ОбщегоНазначения.ЗначениеВСтрокуXML(ТекущийОбъект.Параметры.Получить()); - -КонецПроцедуры - -&НаСервере -Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) - - ТекущийОбъект.Расписание = Новый ХранилищеЗначения(Расписание); - ТекущийОбъект.Параметры = Новый ХранилищеЗначения(ОбщегоНазначения.ЗначениеИзСтрокиXML(ПараметрыМетода)); - -КонецПроцедуры - -&НаСервере -Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) - - Идентификатор = Объект.Ссылка.УникальныйИдентификатор(); - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиСобытийЭлементовУправленияФормы - -&НаКлиенте -Процедура ПредставлениеРасписанияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - - СтандартнаяОбработка = Ложь; - ЗаблокироватьДанныеФормыДляРедактирования(); - - Если ЗначениеЗаполнено(Объект.Шаблон) Тогда - ПоказатьПредупреждение(, НСтр("ru = 'Для заданий на основе шаблонов, расписание задается в шаблоне.'")); - Возврат; - КонецЕсли; - - Если Расписание = Неопределено Тогда - РедактируемоеРасписание = Новый РасписаниеРегламентногоЗадания; - Иначе - РедактируемоеРасписание = Расписание; - КонецЕсли; - - Диалог = Новый ДиалогРасписанияРегламентногоЗадания(РедактируемоеРасписание); - ОписаниеОповещенияОЗакрытии = Новый ОписаниеОповещения("ИзменитьРасписание", ЭтотОбъект); - Диалог.Показать(ОписаниеОповещенияОЗакрытии); - -КонецПроцедуры - -&НаКлиенте -Процедура ПредставлениеРасписанияОчистка(Элемент, СтандартнаяОбработка) - - СтандартнаяОбработка = Ложь; - ЗаблокироватьДанныеФормыДляРедактирования(); - - Расписание = Неопределено; - Модифицированность = Истина; - УстановитьПредставлениеРасписания(ЭтотОбъект); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -&НаКлиенте -Процедура ИзменитьРасписание(НовоеРасписание, ДополнительныеПараметры) Экспорт - - Если НовоеРасписание = Неопределено Тогда - Возврат; - КонецЕсли; - - Расписание = НовоеРасписание; - Модифицированность = Истина; - УстановитьПредставлениеРасписания(ЭтотОбъект); - - ПоказатьОповещениеПользователя(НСтр("ru = 'Перепланирование'"), , НСтр("ru = 'Новое расписание будет учтено при - |следующем выполнении задания'")); - -КонецПроцедуры - -&НаКлиентеНаСервереБезКонтекста -Процедура УстановитьПредставлениеРасписания(Знач Форма) - - Расписание = Форма.Расписание; - - Если Расписание <> Неопределено Тогда - Форма.ПредставлениеРасписания = Строка(Расписание); - ИначеЕсли ЗначениеЗаполнено(Форма.Объект.Шаблон) Тогда - Форма.ПредставлениеРасписания = НСтр("ru = '<Задается в шаблоне>'"); - Иначе - Форма.ПредставлениеРасписания = НСтр("ru = '<Не задано>'"); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - - diff --git a/SSL/src/Catalogs/ОчередьЗаданийОбластейДанных/ОчередьЗаданийОбластейДанных.mdo b/SSL/src/Catalogs/ОчередьЗаданийОбластейДанных/ОчередьЗаданийОбластейДанных.mdo deleted file mode 100644 index 0141583c8..000000000 --- a/SSL/src/Catalogs/ОчередьЗаданийОбластейДанных/ОчередьЗаданийОбластейДанных.mdo +++ /dev/null @@ -1,431 +0,0 @@ - - - - - - - - - - ОчередьЗаданийОбластейДанных - - ru - Очередь заданий областей данных - - true - DontUse - - Use - PredefinedDataName - - Use - - - - - Use - Predefined - - Use - - - - - Use - Ref - - Use - - - - - Use - DeletionMark - - Use - - - - - Use - IsFolder - - Use - - - - - Use - Owner - true - - ShowError - Use - - - - - Use - Parent - true - - Use - - - - - Use - Description - - ShowError - Use - - - - - Use - Code - - Use - - - - Use - Managed - - ru - Задание области данных - - 2 - true - String - Variable - InDialog - BothWays - Catalog.ОчередьЗаданийОбластейДанных.Form.ФормаЭлемента - Catalog.ОчередьЗаданийОбластейДанных.Form.ФормаСписка - - Использование - - ru - Использование - - - Boolean - - - ru - Флаг использования задания - - - - - Use - Use - - - ЗапланированныйМоментЗапуска - - ru - Запланированный момент запуска - - - Date - - - - ru - Дата следующего планового запуска задания (UTC) - - - - - Use - Use - - - СостояниеЗадания - - ru - Состояние задания - - - EnumRef.СостоянияЗаданий - - - ru - Состояние задания очереди - - - - - Use - Use - - - ИсполняющееФоновоеЗадание - - ru - Исполняющее фоновое задание - - - UUID - - - ru - Идентификатор фонового задания выполняющего задание очереди - - - - - Use - - - ЭксклюзивноеВыполнение - - ru - Эксклюзивное выполнение - - - Boolean - - - ru - Флаг эксклюзивного выполнения задания в области - - - - - Use - Use - - - Шаблон - - ru - Шаблон - - - CatalogRef.ШаблоныЗаданийОчереди - - - ru - Шаблон задания - - - - - Index - Use - Use - - - НомерПопытки - - ru - Номер попытки - - - Number - - 3 - true - - - - ru - Порядковый номер попытки выполнения задания - - - - - Use - Use - - - ИмяМетода - - ru - Имя метода - - - String - - 255 - - - - ru - Имя метода задания - - - - - Use - Use - - - Параметры - - ru - Параметры - - - ValueStorage - - - ru - Параметры для метода выполняющего задание (структура) - - - - - Use - Use - - - ДатаНачалаПоследнегоЗапуска - - ru - Дата начала последнего запуска - - - Date - - - - ru - Дата последнего начала выполнения задания - - - - - Use - Use - - - ДатаЗавершенияПоследнегоЗапуска - - ru - Дата завершения последнего запуска - - - Date - - - - ru - Дата последнего начала выполнения задания - - - - - Use - Use - - - Ключ - - ru - Ключ - - - String - - 128 - - - - ru - Ключ задания - - - - - Use - Use - - - ИнтервалПовтораПриАварийномЗавершении - - ru - Интервал повтора при аварийном завершении - - - Number - - 10 - true - - - - ru - Интервал времени ( в секундах), по истечении которого задание будет запущено повторно, если предыдущий его запуск завершился аварийно - - - - - Use - Use - - - Расписание - - ru - Расписание - - - ValueStorage - - - ru - Расписание выполнения задания - - - - - Use - Use - - - КоличествоПовторовПриАварийномЗавершении - - ru - Количество повторов при аварийном завершении - - - Number - - 10 - true - - - - ru - Количество повторов при аварийном завершении задания - - - - - Use - Use - - - ФормаСписка - - ru - Форма списка - - PersonalComputer - MobileDevice - - - ФормаЭлемента - - ru - Форма элемента - - PersonalComputer - MobileDevice - - diff --git a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаВыбора/Module.bsl index edeaf281e..b96f8004c 100644 --- a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаВыбора/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Свойство("ТекущаяПапка") Тогда Элементы.Список.ТекущаяСтрока = Параметры.ТекущаяПапка; КонецЕсли; diff --git a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Help/ru.html index 49e57606c..6b5c583a0 100644 --- a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

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

      Сведения о папке

      • Заполните Наименование папки. Поле является обязательным; diff --git a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Module.bsl index 2f6a00f2a..a5379d765 100644 --- a/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПапкиФайлов/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Свойство("Родитель") Тогда Объект.Родитель = Параметры.Родитель; КонецЕсли; diff --git a/SSL/src/Catalogs/ПапкиФайлов/Help/ru.html b/SSL/src/Catalogs/ПапкиФайлов/Help/ru.html index ae5a96ad2..3302aff65 100644 --- a/SSL/src/Catalogs/ПапкиФайлов/Help/ru.html +++ b/SSL/src/Catalogs/ПапкиФайлов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

        Все файлы хранятся в структуре папок, которую удобно вести, например:

        • в соответствии с организационной структурой Вашего предприятия; diff --git a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаВыбора/Help/ru.html b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаВыбора/Help/ru.html index fdade2d71..41154db7e 100644 --- a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаВыбора/Help/ru.html +++ b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаВыбора/Help/ru.html @@ -1,4 +1,4 @@ - +

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

          Открывается по кнопке выбора, например, из окна папки.

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

          diff --git a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаСписка/Module.bsl index 1f4f6926a..e47f60385 100644 --- a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Отбор.Свойство("Владелец") Тогда Если НЕ Взаимодействия.ПользовательЯвляетсяОтветственнымЗаВедениеПапок(Параметры.Отбор.Владелец) Тогда diff --git a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаЭлемента/Help/ru.html index ea5078f13..db5cafa0e 100644 --- a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

          Описание свойств папки электронных писем.

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

          • Входящие - в эту папку попадают по умолчанию все входящие письма. diff --git a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаЭлемента/Module.bsl index 9b8605ab8..133e3cf4c 100644 --- a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Не ЗначениеЗаполнено(Объект.Владелец) Тогда Отказ = Истина; Возврат; diff --git a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Help/ru.html b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Help/ru.html index f0409c9ae..6af793c63 100644 --- a/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Help/ru.html +++ b/SSL/src/Catalogs/ПапкиЭлектронныхПисем/Help/ru.html @@ -1,4 +1,4 @@ - +

            Предназначен для категоризации входящей и исходящей почтовой корреспонденции. Владельцем папок является Учетная запись электронной почты.

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

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

            diff --git a/SSL/src/Catalogs/Пользователи/Commands/ПользователиИнформационнойБазы/CommandModule.bsl b/SSL/src/Catalogs/Пользователи/Commands/ПользователиИнформационнойБазы/CommandModule.bsl index dc037fe32..bb5f98265 100644 --- a/SSL/src/Catalogs/Пользователи/Commands/ПользователиИнформационнойБазы/CommandModule.bsl +++ b/SSL/src/Catalogs/Пользователи/Commands/ПользователиИнформационнойБазы/CommandModule.bsl @@ -13,7 +13,7 @@ ПараметрыФормы = Новый Структура; - Если ТипЗнч(ПараметрыВыполненияКоманды.Источник) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ПараметрыВыполненияКоманды.Источник) = Тип("ФормаКлиентскогоПриложения") Тогда Если ПараметрыВыполненияКоманды.Источник.ИмяФормы = "Справочник.Пользователи.Форма.ФормаСписка" Тогда diff --git a/SSL/src/Catalogs/Пользователи/Forms/ВыборПользователяОперационнойСистемы/Form.form b/SSL/src/Catalogs/Пользователи/Forms/ВыборПользователяОперационнойСистемы/Form.form index c6eaea395..da2d80fbe 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ВыборПользователяОперационнойСистемы/Form.form +++ b/SSL/src/Catalogs/Пользователи/Forms/ВыборПользователяОперационнойСистемы/Form.form @@ -610,13 +610,6 @@ true true UserCmds - - System.DefaultGUIFont - true - false - false - false - Auto diff --git a/SSL/src/Catalogs/Пользователи/Forms/ВыборПользователяОперационнойСистемы/Help/ru.html b/SSL/src/Catalogs/Пользователи/Forms/ВыборПользователяОперационнойСистемы/Help/ru.html index 3c006f4c4..3dc14a4fb 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ВыборПользователяОперационнойСистемы/Help/ru.html +++ b/SSL/src/Catalogs/Пользователи/Forms/ВыборПользователяОперационнойСистемы/Help/ru.html @@ -1,4 +1,4 @@ - +

            Предназначен для выбора имени пользователя, зарегистрированного в операционной системе, при регистрации в программе.

            Эта возможность позволяет пользователю входить в программу с регистрацией ОС.

            Список состоит из двух частей:

            diff --git a/SSL/src/Catalogs/Пользователи/Forms/ОграничениеНаВходВПрограмму/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ОграничениеНаВходВПрограмму/Module.bsl index f84571572..cd440a5d0 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ОграничениеНаВходВПрограмму/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/ОграничениеНаВходВПрограмму/Module.bsl @@ -19,7 +19,7 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) - Если ТипЗнч(ВладелецФормы) <> Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ВладелецФормы) <> Тип("ФормаКлиентскогоПриложения") Тогда Возврат; КонецЕсли; diff --git a/SSL/src/Catalogs/Пользователи/Forms/ПользователиИнформационнойБазы/Help/ru.html b/SSL/src/Catalogs/Пользователи/Forms/ПользователиИнформационнойБазы/Help/ru.html index 6fde043b4..e5204e6a6 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ПользователиИнформационнойБазы/Help/ru.html +++ b/SSL/src/Catalogs/Пользователи/Forms/ПользователиИнформационнойБазы/Help/ru.html @@ -1,4 +1,4 @@ - +

            Список предназначен для удобства согласования пользователей ИБ в Конфигураторе со списками Пользователи и Внешние пользователи.

            Список можно открыть по команде Еще - Пользователи информационной базы в меню списка пользователей (или внешних пользователей).

            При записи пользователя (или внешнего пользователя) вместе с ним автоматически создается или изменяется соответствующий ему пользователь ИБ. Однако есть ряд ситуаций, когда список пользователей ИБ становится несогласованным со списком пользователей. Тогда с помощью данного списка могут быть решены следующие задачи:

            diff --git a/SSL/src/Catalogs/Пользователи/Forms/ПользователиИнформационнойБазы/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ПользователиИнформационнойБазы/Module.bsl index 93776fdb3..3572b8138 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ПользователиИнформационнойБазы/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/ПользователиИнформационнойБазы/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - РазделениеВключено = ОбщегоНазначения.РазделениеВключено(); Если НЕ Пользователи.ЭтоПолноправныйПользователь(, Не РазделениеВключено) Тогда ВызватьИсключение НСтр("ru = 'Недостаточно прав для открытия списка пользователей информационной базы.'"); diff --git a/SSL/src/Catalogs/Пользователи/Forms/СменаПочты/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/СменаПочты/Module.bsl index 050116fee..b12b90a61 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/СменаПочты/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/СменаПочты/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Пользователь = Параметры.Пользователь; ПарольПользователяСервиса = Параметры.ПарольПользователяСервиса; СтараяПочта = Параметры.СтараяПочта; diff --git a/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Module.bsl index e76754c00..2c3be51d1 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/ФормаСписка/Module.bsl @@ -34,10 +34,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - // Начальное значение настройки до загрузки данных из настроек. ВыбиратьИерархически = Истина; diff --git a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Help/ru.html index e7213ce5d..b38ab6000 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

            Предназначена для описания свойств пользователя.

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

            Вход в программу разрешает только администратор. 

            diff --git a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl index 6d4455c46..9e2973636 100644 --- a/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Пользователи/Forms/ФормаЭлемента/Module.bsl @@ -20,10 +20,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если ОбщегоНазначения.РазделениеВключено() Тогда ДоступноИзменениеПользователей = Истина; @@ -1592,15 +1588,14 @@ // Поддержка контактной информации. &НаСервере -Функция Подключаемый_ОбновитьКонтактнуюИнформацию(Результат) +Процедура Подключаемый_ОбновитьКонтактнуюИнформацию(Результат) Экспорт МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); - Возврат МодульУправлениеКонтактнойИнформацией.ОбновитьКонтактнуюИнформацию( - ЭтотОбъект, Объект, Результат); + МодульУправлениеКонтактнойИнформацией.ОбновитьКонтактнуюИнформацию(ЭтотОбъект, Объект, Результат); -КонецФункции +КонецПроцедуры &НаСервере Процедура ПереопределитьРедактированиеКонтактнойИнформацииВСервисе() diff --git a/SSL/src/Catalogs/Пользователи/Help/ru.html b/SSL/src/Catalogs/Пользователи/Help/ru.html index ac47522ab..25eaea3c9 100644 --- a/SSL/src/Catalogs/Пользователи/Help/ru.html +++ b/SSL/src/Catalogs/Пользователи/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

            @@ -18,30 +18,43 @@
            Нажмите Еще - Установить пароль, напишите пароль.

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

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

          Группировка пользователей

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

          Ввод группы пользователей

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

      Ввод группы пользователей

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

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

      +
    • +
    • Также можно воспользоваться командой Создать контекстного меню по правой кнопке мыши в левой части списка.

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

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

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

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

    Просмотр отчета Сведения о пользователях

    • Отчет позволяет выполнить анализ настроек для входа (свойств пользователя ИБ) совместно с остальными свойствами пользователя в справочнике. Включает 3 варианта отчета - о пользователях, внешних пользователях и всех пользователях программы. -
    • Нажмите Еще - Сведения о пользователях, сформируйте отчет.

    См. также 

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

    \ No newline at end of file diff --git a/SSL/src/Catalogs/ПоставляемыеДанные/ПоставляемыеДанные.mdo b/SSL/src/Catalogs/ПоставляемыеДанные/ПоставляемыеДанные.mdo deleted file mode 100644 index b11a80d1c..000000000 --- a/SSL/src/Catalogs/ПоставляемыеДанные/ПоставляемыеДанные.mdo +++ /dev/null @@ -1,330 +0,0 @@ - - - - - - - - - - ПоставляемыеДанные - - 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 - Managed - Use - - ru - Кэш поставляемых данных - - 2 - true - 9 - String - Variable - true - true - InDialog - BothWays - - ВидДанных - - ru - Вид данных - - - String - - 20 - - - - ru - Вид поставляемых данных - - - - - Use - Use - - - ДатаДобавления - - ru - Дата добавления - - - Date - - - - ru - Дата добавления данных в менеджере сервиса - - - - - Use - Use - - - ХранимыйФайл - - ru - Хранимый файл - - - ValueStorage - - - ru - Тело файла при хранении в ИБ - - - - - Use - Use - - - ПутьКФайлу - - ru - Путь к файлу - - - String - - - - ru - Путь к файлу в томе (служебное поле) - - - - - Use - Use - - - Том - - ru - Том - - - CatalogRef.ТомаХраненияФайлов - - - ru - Том хранения файлов (когда файл хранится в томе) - - - - - Index - Use - - - ТипХраненияФайла - - ru - Тип хранения файла - - - EnumRef.ТипыХраненияФайлов - - - ru - Тип хранения файла (в томе или в информационной базе) - - - - - Index - Use - - - ИдентификаторФайла - - ru - Идентификатор файла - - - UUID - - - ru - Идентификатор файла поставляемых данных - - - - - Use - - - Описание - - ru - Описание - - - String - - - - ru - Краткое описание файла - - - - - Use - Use - - - - - - - ХарактеристикиДанных - - ru - Характеристики данных - - - Use - LineNumber - - Use - - - - - Характеристика - - ru - Характеристика - - - String - - 20 - - - - ru - Код характеристики поставляемых данных - - - - Use - Use - - - Значение - - ru - Значение - - - String - - - - ru - Значение характеристики поставляемых данных - - - - Use - Use - - - diff --git a/SSL/src/Catalogs/ПоставляемыеДополнительныеОтчетыИОбработки/ПоставляемыеДополнительныеОтчетыИОбработки.mdo b/SSL/src/Catalogs/ПоставляемыеДополнительныеОтчетыИОбработки/ПоставляемыеДополнительныеОтчетыИОбработки.mdo new file mode 100644 index 000000000..f7e2b8971 --- /dev/null +++ b/SSL/src/Catalogs/ПоставляемыеДополнительныеОтчетыИОбработки/ПоставляемыеДополнительныеОтчетыИОбработки.mdo @@ -0,0 +1,670 @@ + + + + + + + + + + ПоставляемыеДополнительныеОтчетыИОбработки + + ru + Поставляемые дополнительные отчеты и обработки + + true + Catalog.ПоставляемыеДополнительныеОтчетыИОбработки.StandardAttribute.Description + DontUse + + Use + PredefinedDataName + + Use + + + + + Use + Predefined + + Use + + + + + Use + Ref + + Use + + + + + Use + DeletionMark + + Use + + + + + Use + IsFolder + + Use + + + + + Use + Owner + true + + ShowError + Use + + + + + Use + Parent + true + + Use + + + + + Use + Description + + ru + Наименование + + + ShowError + Use + + + + + Use + Code + + Use + + + + Use + Managed + + ru + Поставляемый дополнительный отчет или обработка + + 2 + true + 100 + String + Variable + AsDescription + InDialog + BothWays + + Вид + + ru + Вид + + + EnumRef.ВидыДополнительныхОтчетовИОбработок + + + ru + Вид дополнительного отчета или обработки + + + + + Index + Use + + + ИспользоватьДляФормыОбъекта + + ru + Использовать для формы объекта + + + Boolean + + + ru + Признак использования для формы объекта + + + + + Index + Use + + + ИспользоватьДляФормыСписка + + ru + Использовать для формы списка + + + Boolean + + + ru + Признак использования для формы списка + + + + + Index + Use + + + Публикация + + ru + Публикация + + + EnumRef.ВариантыПубликацииДополнительныхОтчетовИОбработок + + + ru + Вариант публикации (опубликовано, опубликовано для тестирования, не опубликовано) + + + + ShowError + true + + Enum.ВариантыПубликацииДополнительныхОтчетовИОбработок.EnumValue.Используется + + Use + Use + + + ПричинаОтключения + + ru + Причина отключения + + + String + + 10 + + + + ru + Причина отключения (Блокировка администратором сервиса, Блокировка владельцем, Обновление версии конфигурации) + + + + + Use + Use + + + Информация + + ru + Информация + + + String + + 1024 + + + + ru + Краткая информация о внешней обработке + + + + + Use + Use + + + Версия + + ru + Версия + + + String + + 10 + + + + ru + Версия дополнительного отчета или обработки (устанавливается поставщиком) + + + + + Use + Use + + + БезопасныйРежим + + ru + Безопасный режим + + + Boolean + + + ru + Вызывать обработку в безопасном режиме. В безопасном режиме запрещены COM; загрузка внешних компонент; запуск внешних приложений и команд операционной системы; доступ к файловой системе (кроме временных файлов); доступ к сети Интернет. + + + + + Use + Use + + + ИмяОбъекта + + ru + Имя объекта + + + String + + 256 + + + + ru + Имя, под которым дополнительный отчет или обработка регистрируется в системе + + + + + Index + Use + Use + + + ИмяФайла + + ru + Имя файла + + + String + + 260 + + + + ru + Имя файла дополнительного отчета или обработки + + + + + Use + Use + + + ХранилищеОбработки + + ru + Хранилище обработки + + + ValueStorage + + + ru + Двоичные данные дополнительного отчета или обработки + + + + + Use + + + ХранилищеВариантов + + ru + Хранилище вариантов + + + String + + 150 + + + + ru + Хранилище вариантов отчетов + + + + + Use + Use + + + ВерсияGUID + + ru + Версия GUID + + + UUID + + + ru + Уникальный идентификатор версии + + + + + Use + + + КонтролироватьСовместимостьСВерсиямиКонфигурации + + ru + Контролировать совместимость с версиями конфигурации + + + Boolean + + + ru + Признак контроля совместимости с версиями конфигураций + + + + + Use + Use + + + ИспользуетХранилищеВариантов + + ru + Использует хранилище вариантов + + + Boolean + + + ru + Признак использования хранилища вариантов + + + + + Use + Use + + + РежимСовместимостиРазрешений + + ru + Режим совместимости разрешений + + + EnumRef.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок + + + ru + Режим совместимости разрешений (в зависимости от версии БСП) + + + + + Use + Use + + + + + + + Команды + + ru + Команды + + + Use + LineNumber + + Use + + + + + Идентификатор + + ru + Идентификатор + + + String + + 100 + + + + ru + Идентификатор команды (служебное поле) + + + + Use + Use + + + ВариантЗапуска + + ru + Вариант запуска + + + EnumRef.СпособыВызоваДополнительныхОбработок + + + ru + Вариант запуска команды (клиент, сервер, открытие формы) + + + + Use + Use + + + Представление + + ru + Команда + + Представление команды для конечного пользователя + + String + + 200 + + + + ru + Представление команды для конечного пользователя + + + + Use + Use + + + ПоказыватьОповещение + + ru + Показывать оповещение + + + Boolean + + + ru + Показывать оповещение пользователю после выполнения + + + + Use + + + Модификатор + + ru + Модификатор + + + String + + 9 + + + + ru + Модификатор команды (служебное поле) + + + + Use + + + Скрыть + + ru + Скрыть + + + Boolean + + + ru + Скрывать команду + + + + Use + Use + + + + + + + + Совместимость + + ru + Совместимость + + + Use + LineNumber + + Use + + + + + Версия + + ru + Версия + + + String + + 18 + + + + ru + Совместимость с версиями БСП + + + + Use + Use + + + + + + + + Разрешения + + ru + Разрешения + + + Use + LineNumber + + Use + + + + + ВидРазрешения + + ru + Вид разрешения + + + String + + 255 + + + + ru + Представление вида разрешения + + + + Use + Use + + + Параметры + + ru + Параметры + + + ValueStorage + + + ru + Параметры разрешения + + + + Use + Use + + + diff --git a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Help/ru.html b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Help/ru.html index 86be613b1..650301f45 100644 --- a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Help/ru.html +++ b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

    diff --git a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Module.bsl b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Module.bsl index 3108069c5..ed1632ed9 100644 --- a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Module.bsl +++ b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ПрименениеПравил/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Не ЗначениеЗаполнено(Параметры.УчетнаяЗапись) Или Параметры.УчетнаяЗапись.Пустая() Тогда Отказ = Истина; Возврат; diff --git a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl index 4efdfd6dc..c6e8b15dc 100644 --- a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Отбор.Свойство("Владелец") Тогда Если НЕ Взаимодействия.ПользовательЯвляетсяОтветственнымЗаВедениеПапок(Параметры.Отбор.Владелец) Тогда @@ -69,7 +65,7 @@ КонецПроцедуры &НаСервере -Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) +Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат); КонецПроцедуры diff --git a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаЭлемента/Help/ru.html index 2d221b00a..669a6a72c 100644 --- a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

    Предназначена для создания и хранения условий автоматического распределения входящей и исходящей корреспонденции по папкам. Правила настраиваются для каждой Учетной записи электронной почты.

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

    • В поле Условие необходимо выбрать наименование созданного правила - текстовое описание условия, по которому будут отбираться письма. diff --git a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl index 2235dc6f8..859ca9cd1 100644 --- a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Объект.Ссылка.Пустая() Тогда Если Не Взаимодействия.ПользовательЯвляетсяОтветственнымЗаВедениеПапок(Объект.Владелец) Тогда diff --git a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Help/ru.html b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Help/ru.html index 2fff6c3b7..1bf02ec32 100644 --- a/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Help/ru.html +++ b/SSL/src/Catalogs/ПравилаОбработкиЭлектроннойПочты/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

      diff --git a/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаСписка/Module.bsl index 68dcb379d..0d8a3bb92 100644 --- a/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаСписка/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - РазрешеноНастраиватьПравилаПроверкиУчета = ПравоДоступа("Изменение", Метаданные.Справочники.ПравилаПроверкиУчета); Элементы.ФормаВыполнитьПроверку.Видимость = РазрешеноНастраиватьПравилаПроверкиУчета; Элементы.СписокКонтекстноеМенюВыполнитьПроверку.Видимость = РазрешеноНастраиватьПравилаПроверкиУчета; @@ -375,7 +371,7 @@ КонецПроцедуры &НаСервере -Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) +Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат); КонецПроцедуры diff --git a/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаЭлемента/Help/ru.html index 873c3b943..27e5821ef 100644 --- a/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

      diff --git a/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаЭлемента/Module.bsl index 9e3115683..4a6fc3728 100644 --- a/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПравилаПроверкиУчета/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда ВызватьИсключение НСтр("ru='Интерактивное создание запрещено.'"); КонецЕсли; @@ -497,7 +493,7 @@ КонецПроцедуры &НаСервере -Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) +Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат); КонецПроцедуры diff --git a/SSL/src/Catalogs/ПравилаПроверкиУчета/Help/ru.html b/SSL/src/Catalogs/ПравилаПроверкиУчета/Help/ru.html index d68d4c395..442944ab7 100644 --- a/SSL/src/Catalogs/ПравилаПроверкиУчета/Help/ru.html +++ b/SSL/src/Catalogs/ПравилаПроверкиУчета/Help/ru.html @@ -1,4 +1,4 @@ - +

      Предназначен для хранения правил проверки учета.

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

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

      diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОшибкаОбращенияКПрограмме/Module.bsl b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОшибкаОбращенияКПрограмме/Module.bsl index 2246a0bed..f913d93a1 100644 --- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОшибкаОбращенияКПрограмме/Module.bsl +++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ОшибкаОбращенияКПрограмме/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Заголовок = Параметры.ЗаголовокФормы; ШиринаЗаголовка = СтрДлина(Заголовок); diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Help/ru.html index 4cebeef4d..c735d5be5 100644 --- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

      Сведения о программе электронной подписи и шифрования.

      Открывается по кнопке Добавить в списке Настройки электронной подписи и шифрования на вкладке Программы.

      Заполнение сведений о программе

      diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl index 93514c20a..3d2f3e9af 100644 --- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда ТолькоПросмотр = Истина; КонецЕсли; @@ -207,10 +203,6 @@ &НаКлиенте Процедура ЗаполнитьАлгоритмыВыбраннойПрограммы() - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - НачатьПодключениеРасширенияРаботыСКриптографией(Новый ОписаниеОповещения( "ЗаполнитьАлгоритмыВыбраннойПрограммыПослеПодключенияРасширенияРаботыСКриптографией", ЭтотОбъект)); diff --git a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Help/ru.html b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Help/ru.html index 0d3e9fcc3..c64a37744 100644 --- a/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Help/ru.html +++ b/SSL/src/Catalogs/ПрограммыЭлектроннойПодписиИШифрования/Help/ru.html @@ -1,4 +1,4 @@ - +

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

      Выделите программу, нажмите Выбрать.

       

      \ No newline at end of file diff --git a/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаСписка/Module.bsl index be0f0256d..6cb90ba19 100644 --- a/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ДоступноДобавлениеИзКлассификатора = Истина; Если Не ПравоДоступа("Добавление", Метаданные.Справочники.ПроизводственныеКалендари) Тогда ДоступноДобавлениеИзКлассификатора = Ложь; diff --git a/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаЭлемента/Help/ru.html index f09d08ab2..390bdd8fe 100644 --- a/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

      diff --git a/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаЭлемента/Module.bsl index 1e9c48637..e78bc6ab9 100644 --- a/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПроизводственныеКалендари/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Объект.Ссылка.Пустая() Тогда ЗаполнитьДаннымиТекущегоГода(Параметры.ЗначениеКопирования); УстановитьСвойстваПоляБазовогоКалендаря(ЭтотОбъект); @@ -29,7 +25,7 @@ &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда МодульАвтономнаяРабота = ОбщегоНазначения.ОбщийМодуль("АвтономнаяРабота"); МодульАвтономнаяРабота.ОбъектПриЧтенииНаСервере(ТекущийОбъект, ЭтотОбъект.ТолькоПросмотр); КонецЕсли; diff --git a/SSL/src/Catalogs/ПроизводственныеКалендари/Help/ru.html b/SSL/src/Catalogs/ПроизводственныеКалендари/Help/ru.html index 70d18c012..9847c28ce 100644 --- a/SSL/src/Catalogs/ПроизводственныеКалендари/Help/ru.html +++ b/SSL/src/Catalogs/ПроизводственныеКалендари/Help/ru.html @@ -1,9 +1,9 @@ - +

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

      Открывается по соответствующей команде в разделе Справочники.

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

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

      -

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

      +

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

      Ввод производственного календаря

      • Нажмите Создать, выберите способ создания производственного календаря:
        • По классификатору - добавить из классификатора, рекомендуется. Программа поставляется с классификатором производственных календарей. diff --git a/SSL/src/Catalogs/ПроизводственныеКалендари/Templates/ПФ_MXL_ПроизводственныйКалендарь/Template.mxlx b/SSL/src/Catalogs/ПроизводственныеКалендари/Templates/ПФ_MXL_ПроизводственныйКалендарь/Template.mxlx index e47cfe6ca..e2faf4afa 100644 --- a/SSL/src/Catalogs/ПроизводственныеКалендари/Templates/ПФ_MXL_ПроизводственныйКалендарь/Template.mxlx +++ b/SSL/src/Catalogs/ПроизводственныеКалендари/Templates/ПФ_MXL_ПроизводственныйКалендарь/Template.mxlx @@ -220,6 +220,12 @@ + + 7 + + true + + 8 @@ -237,6 +243,12 @@ + + 9 + + true + + 10 @@ -255,6 +267,12 @@ + + 11 + + true + + 12 diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаВыбораГруппы/Help/ru.html b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаВыбораГруппы/Help/ru.html index d67fa9d5e..814a73255 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаВыбораГруппы/Help/ru.html +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаВыбораГруппы/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

          diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаВыбораГруппы/Module.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаВыбораГруппы/Module.bsl index a28f754e8..47d897491 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаВыбораГруппы/Module.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаВыбораГруппы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - // Отбор только групп. ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( Список, "ЭтоГруппа", Истина, , , Истина); diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаГруппы/Help/ru.html b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаГруппы/Help/ru.html index b2bc74bf9..3b649249b 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаГруппы/Help/ru.html +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаГруппы/Help/ru.html @@ -1,4 +1,4 @@ - +

          Сведения о папке профилей групп доступа.

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

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

          diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаГруппы/Module.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаГруппы/Module.bsl index ae488bfb8..85d01592e 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаГруппы/Module.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаГруппы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда ТолькоПросмотр = Истина; КонецЕсли; diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Help/ru.html b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Help/ru.html index bd8d958f9..8cbc743a0 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Help/ru.html +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

          Список открывается по команде Профили групп доступа в разделе Администрирование - Настройка пользователей и прав.

          diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Module.bsl index b3a69fa46..b6f560389 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.РежимВыбора Тогда СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(ЭтотОбъект, "ВыборПодбор"); КонецЕсли; diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Help/ru.html index 60d589cc5..ddcf048d6 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

          Описание свойств профиля групп доступа.

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

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

          diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Module.bsl index 36c0a7369..1abba69a5 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Forms/ФормаЭлемента/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОбработатьИнтерфейсРолей("ЗаполнитьРоли", Объект.Роли); ОбработатьИнтерфейсРолей("НастроитьИнтерфейсРолейПриСозданииФормы", ЗначениеЗаполнено(Объект.Ссылка)); @@ -72,10 +68,6 @@ &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если НЕ ВыполненаПроцедураПриСозданииНаСервере Тогда Возврат; КонецЕсли; diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/Help/ru.html b/SSL/src/Catalogs/ПрофилиГруппДоступа/Help/ru.html index 144efb8d6..d4d6279a4 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/Help/ru.html +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/Help/ru.html @@ -1,4 +1,4 @@ - +

          Как правило, настройка профилей групп доступа обычно выполняется при внедрении и конфигурировании прикладного решения. Они предназначены для создания готовых подборок разрешенных действий (ролей), содержащих права доступа к объектам программы, и "разрезов" ограничения этих прав (видов доступа), которые предполагается использовать в группах доступа.

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

          С помощью профилей становится возможным:

          diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl index 390c17141..85669fd27 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl @@ -24,7 +24,6 @@ НеРедактируемыеРеквизиты = Новый Массив; НеРедактируемыеРеквизиты.Добавить("ИдентификаторПоставляемыхДанных"); НеРедактируемыеРеквизиты.Добавить("ПоставляемыйПрофильИзменен"); - НеРедактируемыеРеквизиты.Добавить("Роли.УдалитьРоль"); НеРедактируемыеРеквизиты.Добавить("ВидыДоступа.*"); НеРедактируемыеРеквизиты.Добавить("ЗначенияДоступа.*"); @@ -896,151 +895,6 @@ КонецПроцедуры -// Обработчики обновления информационной базы. - -// Заполняет идентификаторы поставляемых данных по совпадению с идентификатором ссылки. -Процедура ЗаполнитьИдентификаторыПоставляемыхДанных() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - ПоставляемыеПрофили = УправлениеДоступомСлужебныйПовтИсп.ОписаниеПоставляемыхПрофилей(); - - СсылкиПоставляемыхПрофилей = Новый Массив; - - Для каждого ОписаниеПрофиля Из ПоставляемыеПрофили.ОписанияПрофилейМассив Цикл - СсылкиПоставляемыхПрофилей.Добавить(ПолучитьСсылку( - Новый УникальныйИдентификатор(ОписаниеПрофиля.Идентификатор))); - КонецЦикла; - - Запрос = Новый Запрос; - Запрос.УстановитьПараметр("ПустойУникальныйИдентификатор", - ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор()); - - Запрос.УстановитьПараметр("СсылкиПоставляемыхПрофилей", СсылкиПоставляемыхПрофилей); - Запрос.Текст = - "ВЫБРАТЬ - | ПрофилиГруппДоступа.Ссылка - |ИЗ - | Справочник.ПрофилиГруппДоступа КАК ПрофилиГруппДоступа - |ГДЕ - | ПрофилиГруппДоступа.ИдентификаторПоставляемыхДанных = &ПустойУникальныйИдентификатор - | И ПрофилиГруппДоступа.Ссылка В (&СсылкиПоставляемыхПрофилей)"; - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - ПрофильОбъект = Выборка.Ссылка.ПолучитьОбъект(); - ПрофильОбъект.ИдентификаторПоставляемыхДанных = Выборка.Ссылка.УникальныйИдентификатор(); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ПрофильОбъект); - КонецЦикла; - -КонецПроцедуры - -// Заменяет ссылку на ПВХ.ВидыДоступа пустой ссылкой основного типа значений вида доступа. -Процедура ПреобразоватьИдентификаторыВидовДоступа() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ПрофилиГруппДоступа.Ссылка КАК Ссылка - |ИЗ - | Справочник.ПрофилиГруппДоступа КАК ПрофилиГруппДоступа - |ГДЕ - | (ИСТИНА В - | (ВЫБРАТЬ ПЕРВЫЕ 1 - | ИСТИНА - | ИЗ - | Справочник.ПрофилиГруппДоступа.ВидыДоступа КАК ВидыДоступа - | ГДЕ - | ВидыДоступа.Ссылка = ПрофилиГруппДоступа.Ссылка - | И ТИПЗНАЧЕНИЯ(ВидыДоступа.ВидДоступа) = ТИП(ПланВидовХарактеристик.УдалитьВидыДоступа)) - | ИЛИ ИСТИНА В - | (ВЫБРАТЬ ПЕРВЫЕ 1 - | ИСТИНА - | ИЗ - | Справочник.ПрофилиГруппДоступа.ЗначенияДоступа КАК ЗначенияДоступа - | ГДЕ - | ЗначенияДоступа.Ссылка = ПрофилиГруппДоступа.Ссылка - | И ТИПЗНАЧЕНИЯ(ЗначенияДоступа.ВидДоступа) = ТИП(ПланВидовХарактеристик.УдалитьВидыДоступа))) - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ГруппыДоступа.Ссылка - |ИЗ - | Справочник.ГруппыДоступа КАК ГруппыДоступа - |ГДЕ - | (ИСТИНА В - | (ВЫБРАТЬ ПЕРВЫЕ 1 - | ИСТИНА - | ИЗ - | Справочник.ГруппыДоступа.ВидыДоступа КАК ВидыДоступа - | ГДЕ - | ВидыДоступа.Ссылка = ГруппыДоступа.Ссылка - | И ТИПЗНАЧЕНИЯ(ВидыДоступа.ВидДоступа) = ТИП(ПланВидовХарактеристик.УдалитьВидыДоступа)) - | ИЛИ ИСТИНА В - | (ВЫБРАТЬ ПЕРВЫЕ 1 - | ИСТИНА - | ИЗ - | Справочник.ГруппыДоступа.ЗначенияДоступа КАК ЗначенияДоступа - | ГДЕ - | ЗначенияДоступа.Ссылка = ГруппыДоступа.Ссылка - | И ТИПЗНАЧЕНИЯ(ЗначенияДоступа.ВидДоступа) = ТИП(ПланВидовХарактеристик.УдалитьВидыДоступа)))"; - - Выборка = Запрос.Выполнить().Выбрать(); - - Если Выборка.Количество() = 0 Тогда - Возврат; - КонецЕсли; - - СвойстваВидовДоступа = УправлениеДоступомСлужебныйПовтИсп.СвойстваВидовДоступа(); - - Пока Выборка.Следующий() Цикл - Объект = Выборка.Ссылка.ПолучитьОбъект(); - - Индекс = Объект.ВидыДоступа.Количество()-1; - Пока Индекс >= 0 Цикл - Строка = Объект.ВидыДоступа[Индекс]; - Попытка - ИмяВидаДоступа = ПланыВидовХарактеристик.УдалитьВидыДоступа.ПолучитьИмяПредопределенного( - Строка.ВидДоступа); - Исключение - ИмяВидаДоступа = ""; - КонецПопытки; - СвойстваВидаДоступа = СвойстваВидовДоступа.ПоИменам.Получить(ИмяВидаДоступа); - Если СвойстваВидаДоступа = Неопределено Тогда - Объект.ВидыДоступа.Удалить(Индекс); - Иначе - Строка.ВидДоступа = СвойстваВидаДоступа.Ссылка; - КонецЕсли; - Индекс = Индекс - 1; - КонецЦикла; - - Индекс = Объект.ЗначенияДоступа.Количество()-1; - Пока Индекс >= 0 Цикл - Строка = Объект.ЗначенияДоступа[Индекс]; - Попытка - ИмяВидаДоступа = ПланыВидовХарактеристик.УдалитьВидыДоступа.ПолучитьИмяПредопределенного( - Строка.ВидДоступа); - Исключение - ИмяВидаДоступа = ""; - КонецПопытки; - СвойстваВидаДоступа = СвойстваВидовДоступа.ПоИменам.Получить(ИмяВидаДоступа); - Если СвойстваВидаДоступа = Неопределено Тогда - Объект.ЗначенияДоступа.Удалить(Индекс); - Иначе - Строка.ВидДоступа = СвойстваВидаДоступа.Ссылка; - Если Объект.ВидыДоступа.Найти(Строка.ВидДоступа, "ВидДоступа") = Неопределено Тогда - Объект.ЗначенияДоступа.Удалить(Индекс); - КонецЕсли; - КонецЕсли; - Индекс = Индекс - 1; - КонецЦикла; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); - КонецЦикла; - -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // Вспомогательные процедуры и функции. diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/ПрофилиГруппДоступа.mdo b/SSL/src/Catalogs/ПрофилиГруппДоступа/ПрофилиГруппДоступа.mdo index 644a98f66..0ee4f552b 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/ПрофилиГруппДоступа.mdo +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/ПрофилиГруппДоступа.mdo @@ -238,26 +238,6 @@ Index Use - - УдалитьРоль - - ru - (не используется) Роль - - - String - - 150 - - - - ru - Разрешенное действие (роль), заданное для профиля групп доступа - - - - Use - diff --git a/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Help/ru.html index 9a008b8c9..aa8c7db6f 100644 --- a/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

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

          Создание нового профиля

          • Ввести новый профиль можно с помощью кнопки Создать из списка профилей. diff --git a/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Help/ru.html b/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Help/ru.html index d20026536..096de123e 100644 --- a/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Help/ru.html +++ b/SSL/src/Catalogs/ПрофилиКлючевыхОпераций/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

            Для ввода профиля нажмите кнопку Создать.

            diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПараметрыFTP/Help/ru.html b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПараметрыFTP/Help/ru.html index b7ee19866..519a301a2 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПараметрыFTP/Help/ru.html +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПараметрыFTP/Help/ru.html @@ -1,4 +1,4 @@ - +

            Позволяет указать параметры, необходимые для подключения к FTP-ресурсу при рассылке отчетов.
            Поле Сервер и каталог является обязательным для заполнения, остальные поля не обязательны.

            Открывается из окна рассылки отчетов по кнопке  Выбрать.

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

            diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПараметрыFTP/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПараметрыFTP/Module.bsl index 96d987c9b..52eb74ce0 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПараметрыFTP/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПараметрыFTP/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; РеквизитыСправочника = Метаданные.Справочники.РассылкиОтчетов.Реквизиты; Элементы.СерверИКаталог.Подсказка = РеквизитыСправочника.FTPКаталог.Подсказка; Элементы.Порт.Подсказка = РеквизитыСправочника.FTPПорт.Подсказка; diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Help/ru.html b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Help/ru.html index e0cad2bd4..24d1c9a2a 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Help/ru.html +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Help/ru.html @@ -1,4 +1,4 @@ - +

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

            Открывается из рассылки отчетов по ссылке Укажите получателей.

            Список состоит из колонок:

            diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl index 315eb7ce4..95607259e 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl @@ -11,9 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, "ТипПолучателейРассылки, ВидПочтовогоАдресаПолучателей"); Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаВыбораГруппы/Help/ru.html b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаВыбораГруппы/Help/ru.html index 1aec359b1..2e08ee804 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаВыбораГруппы/Help/ru.html +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаВыбораГруппы/Help/ru.html @@ -1,4 +1,4 @@ - +

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

            Открывается из окна группы рассылок по кнопке выбора.

            Список по умолчанию выводится в виде дерева.

            diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаВыбораГруппы/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаВыбораГруппы/Module.bsl index 133438599..3b33ce868 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаВыбораГруппы/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаВыбораГруппы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( Список, "ЭтоГруппа", Истина, ВидСравненияКомпоновкиДанных.Равно, , , diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Help/ru.html b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Help/ru.html index ba6be2860..cba6342e7 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Help/ru.html +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Help/ru.html @@ -1,4 +1,4 @@ - +

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

            Сведения о группе

            • Напишите Наименование группы. diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Module.bsl index 59e0b5af1..69e89355d 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаГруппы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Объект.Ссылка.Пустая() Тогда Если Объект.Родитель = Справочники.РассылкиОтчетов.ЛичныеРассылки Тогда Объект.Родитель = Справочники.РассылкиОтчетов.ПустаяСсылка(); diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Module.bsl index 6b0a20ecd..9838229db 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаСписка/Module.bsl @@ -12,9 +12,6 @@ Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; Если Параметры.Свойство("Отображение") Тогда Элементы.Список.Отображение = ОтображениеТаблицы[Параметры.Отображение]; diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Help/ru.html index ceb0c0e3f..8fd40ae88 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

              diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl index 2cd2114b7..5b01d65e8 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl @@ -43,9 +43,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; ТекстОшибкиПриОткрытии = РассылкаОтчетов.ТекстОшибкиПроверкиПраваДобавления(); Если ЗначениеЗаполнено(ТекстОшибкиПриОткрытии) Тогда @@ -421,7 +418,7 @@ ПользовательскиеНастройкиКД = НастройкиОтчета.ПользовательскиеНастройки; // [3] Проверка значения настроек. Фильтр = Новый Структура("Использование, Значение", Истина, "[Получатель]"); - Найденные = ОтчетыКлиентСервер.НайтиНастройки(ПользовательскиеНастройкиКД.Элементы, Фильтр); + Найденные = ОтчетыКлиентСервер.ЭлементыНастроекОтобранные(ПользовательскиеНастройкиКД, Фильтр); Если Найденные.Количество() > 0 Тогда ОтчетПерсонализирован = Истина; КонецЕсли; @@ -1293,11 +1290,7 @@ Процедура ПредварительныйПросмотрОтчетаПродолжение(РезультатВыбора, ПараметрыОтчета) Экспорт ПользовательскиеНастройкиКД = ПараметрыОтчета.Настройки; Фильтр = Новый Структура("Использование, Значение", Истина, "[Получатель]"); - Если ТипЗнч(ПользовательскиеНастройкиКД) = Тип("ПользовательскиеНастройкиКомпоновкиДанных") Тогда - ПерсонализированныеНастройки = ОтчетыКлиентСервер.НайтиНастройки(ПользовательскиеНастройкиКД.Элементы, Фильтр); - Иначе - ПерсонализированныеНастройки = ОтчетыКлиентСервер.НайтиНастройки(ПользовательскиеНастройкиКД, Фильтр); - КонецЕсли; + ПерсонализированныеНастройки = ОтчетыКлиентСервер.ЭлементыНастроекОтобранные(ПользовательскиеНастройкиКД, Фильтр); Если Объект.Персонализирована Тогда Если РезультатВыбора = Неопределено Тогда Возврат; @@ -1458,8 +1451,10 @@ Возврат Неопределено; КонецЕсли; + ПользовательскиеНастройки = КомпоновщикНастроекКД.ПользовательскиеНастройки; + // Получение строки из состава настроек компоновки данных. - СтрокаНастроек = КомпоновщикНастроекКД.ПользовательскиеНастройки.ПолучитьОбъектПоИдентификатору(ИдентификаторНастройки); + СтрокаНастроек = ПользовательскиеНастройки.ПолучитьОбъектПоИдентификатору(ИдентификаторНастройки); Если СтрокаНастроек = Неопределено Тогда ПоказатьПредупреждение(, НСтр("ru = 'Не выбрана настройка отчета.'")); Возврат Неопределено; @@ -1477,14 +1472,16 @@ // Поле компоновки данных. Если ЭтоЭлементОтбора Тогда + НайденныеЭлементы = ПользовательскиеНастройки.ПолучитьОсновныеНастройкиПоИдентификаторуПользовательскойНастройки( + СтрокаНастроек.ИдентификаторПользовательскойНастройки); - Если ЗначениеЗаполнено(СтрокаНастроек.ЛевоеЗначение) Тогда - ПолеКД = СтрокаНастроек.ЛевоеЗначение; + Если НайденныеЭлементы.Количество() > 0 Тогда + ПолеКД = НайденныеЭлементы[0].ЛевоеЗначение; Иначе ПолеКД = ОпределитьПолеИзКомпоновщика(ИдентификаторНастройки, КомпоновщикНастроекКД.Настройки.Отбор.Элементы); Если ПолеКД = Неопределено Тогда - ПолеКД = ОпределитьПолеИзКомпоновщика(ИдентификаторНастройки, КомпоновщикНастроекКД.ПользовательскиеНастройки.Элементы); + ПолеКД = ОпределитьПолеИзКомпоновщика(ИдентификаторНастройки, ПользовательскиеНастройки.Элементы); КонецЕсли; Если ПолеКД = Неопределено Тогда ПоказатьПредупреждение(, НСтр("ru = 'Для настройки отчета не найдено описание доступного поля'")); diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Help/ru.html b/SSL/src/Catalogs/РассылкиОтчетов/Help/ru.html index 8f6e896ed..78413de3a 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Help/ru.html +++ b/SSL/src/Catalogs/РассылкиОтчетов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

              Открывается по команде Рассылки отчетов из раздела Сервисные подсистемы.

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

              diff --git a/SSL/src/Catalogs/РассылкиОтчетов/РассылкиОтчетов.mdo b/SSL/src/Catalogs/РассылкиОтчетов/РассылкиОтчетов.mdo index 86243d5b5..189d3e23e 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/РассылкиОтчетов.mdo +++ b/SSL/src/Catalogs/РассылкиОтчетов/РассылкиОтчетов.mdo @@ -796,50 +796,6 @@ Use Use - - УдалитьFTPПароль - - ru - (не используется) Пароль - - - String - - 50 - - - true - - ru - Пароль FTP сервера. - - - - - Use - - - УдалитьПарольАрхива - - ru - (не используется) Пароль архива - - - String - - 75 - - - true - - ru - Пароль ZIP архива - - - - - Use - УчетнаяЗапись diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Help/ru.html b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Help/ru.html index 89f42bdee..0d5e883bc 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Help/ru.html +++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Help/ru.html @@ -1,4 +1,4 @@ - +

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

              Открывается по кнопке Выбрать из поля Роль исполнителя бизнес-процессов и окон подбора ролей исполнителей.

              Роли исполнителей могут использоваться бизнес-процессами для ролевой маршрутизации задач. В этом случае поручение выдается не персонально исполнителю, а некоторой роли (например, Старший по залу), а соответствие пользователей ролям задается в списке Роли и исполнители и используется программой для доставки поручений конкретным пользователям. В определенных случаях роли исполнителя бывает недостаточно, чтобы точно определить исполнителей. Тогда необходимо указывать основной и дополнительный объекты адресации. Например, у роли Руководитель проектов могут присутствовать основной объект адресации Подразделение и дополнительный объект Проект. Таким образом, с помощью объектов адресации происходит уточнение, руководителям какого проекта и в каком подразделении адресуется задача.

              diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl index d2fc83499..4f66524b8 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаВыбора/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПростыеРоли = Ложь; Если Параметры.Свойство("ТолькоПростыеРоли", ТолькоПростыеРоли) И ТолькоПростыеРоли = Истина Тогда diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl index 1b18bc8a0..a04c94ba5 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - НастроитьОтображениеСпискаРолей(); КонецПроцедуры diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Help/ru.html index f4437a9f2..fd4b4137a 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Help/ru.html @@ -1,6 +1,6 @@ - +

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

              -

              Роли исполнителей могут использоваться бизнес-процессами для ролевой маршрутизации задач. В этом случае поручение выдается не персонально исполнителю, а некоторой роли (например, Старший по залу), а соответствие пользователей ролям задается в списке Роли и исполнители задач и используется программой для доставки поручений конкретным пользователям.

              +

              Роли исполнителей могут использоваться бизнес-процессами для ролевой маршрутизации задач. В этом случае поручение выдается не персонально исполнителю, а некоторой роли (например, Старший по залу), а соответствие пользователей ролям задается в списке Роли и исполнители задач и используется программой для доставки поручений конкретным пользователям.

              В определенных случаях роли исполнителя бывает недостаточно, чтобы точно определить исполнителей. Тогда необходимо указывать основной и дополнительный объекты адресации. Например, у роли Руководитель проектов могут присутствовать основной объект адресации Подразделение и дополнительный объект Проект. Таким образом, с помощью объектов адресации происходит уточнение, руководителям какого проекта и в каком подразделении адресуется задача.

              Список ролей поставляется в составе программы, но может быть расширен при необходимости.

              Сведения о роли исполнителя

              diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl index 911cb37ac..c2de9874d 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Элементы.ГруппаАдресации.Доступность = НЕ Объект.Предопределенный; Если НЕ Объект.Предопределенный Тогда Элементы.ГруппаТипыОбъектовАдресации.Доступность = Объект.ИспользуетсяСОбъектамиАдресации; diff --git a/SSL/src/Catalogs/РолиИсполнителей/Help/ru.html b/SSL/src/Catalogs/РолиИсполнителей/Help/ru.html index 173f18469..7705ccadd 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Help/ru.html +++ b/SSL/src/Catalogs/РолиИсполнителей/Help/ru.html @@ -1,4 +1,4 @@ - +

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

              Открывается по команде Роли исполнителей в разделе Бизнес-процессы и задачи.

              Роли исполнителей могут использоваться бизнес-процессами для ролевой маршрутизации задач. В этом случае поручение выдается не персонально исполнителю, а некоторой роли (например, Старший по залу), а соответствие пользователей ролям задается в списке Роли и исполнители задач и используется программой для доставки поручений конкретным пользователям. В определенных случаях роли исполнителя бывает недостаточно, чтобы точно определить исполнителей. Тогда необходимо указывать основной и дополнительный объекты адресации. Например, у роли Руководитель проектов могут присутствовать основной объект адресации Подразделение и дополнительный объект Проект. Таким образом, с помощью объектов адресации происходит уточнение, руководителям какого проекта и в каком подразделении адресуется задача.

              @@ -7,12 +7,12 @@

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

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

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

              -

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

              +

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

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

              • Наименование - полное наименование роли;
              • Краткое представление - сокращенное наименование роли для удобства использования. По умолчанию в это поле автоматически копируется Код;
              • Код - проставляется автоматически.

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

              - +
              Роль исполнителя
              @@ -32,7 +32,7 @@

              * если исключить Иванова И. и Петрова А. из роли Координатор выполнения задач, то Федоров К. будет получать уведомления также и по их объектам адресации.

              Особенности взаимодействия с внешними пользователями

              Ввод новой роли

              • Нажмите Создать, заполните необходимые поля.

              См. также: 

              diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl index 75f9dccf4..93d430d9c 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ВыборСертификатаДляПодписанияИлиРасшифровки/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЭлектроннаяПодписьСлужебный.НастроитьПояснениеВводаПароля(ЭтотОбъект, Элементы.СертификатУсиленнаяЗащитаЗакрытогоКлюча.Имя, Элементы.ПояснениеУсиленногоПароля.Имя); diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификата/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификата/Module.bsl index 46c2cc139..11e3474fb 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификата/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификата/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если ЭлектроннаяПодпись.ОбщиеНастройки().ЗаявлениеНаВыпускСертификатаДоступно И Не Параметры.СкрытьЗаявление Тогда diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl index bcedb88e4..2fadb7732 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ДобавлениеСертификатаДляШифрования/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - СертификатПараметрыРеквизитов = Новый Структура; Если Параметры.Свойство("Организация") Тогда СертификатПараметрыРеквизитов.Вставить("Организация", Параметры.Организация); diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ОповещениеОбОкончанииСрокаДействия/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ОповещениеОбОкончанииСрокаДействия/Module.bsl index 26558cad2..d1d23bc56 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ОповещениеОбОкончанииСрокаДействия/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ОповещениеОбОкончанииСрокаДействия/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Сертификат = Параметры.Сертификат; КонецПроцедуры diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПередачаПараметров/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПередачаПараметров/Module.bsl index cd27993a6..3cd49c454 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПередачаПараметров/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПередачаПараметров/Module.bsl @@ -121,7 +121,7 @@ И Контекст.КлиентскиеПараметры.Свойство("ОписаниеДанных") И ТипЗнч(Контекст.КлиентскиеПараметры.ОписаниеДанных) = Тип("Структура") И Контекст.КлиентскиеПараметры.ОписаниеДанных.Свойство("КонтекстОперации") - И ТипЗнч(Контекст.КлиентскиеПараметры.ОписаниеДанных.КонтекстОперации) = Тип("УправляемаяФорма") Тогда + И ТипЗнч(Контекст.КлиентскиеПараметры.ОписаниеДанных.КонтекстОперации) = Тип("ФормаКлиентскогоПриложения") Тогда #Если ВебКлиент Тогда ПродлитьХранениеКонтекстаОперации(Контекст.КлиентскиеПараметры.ОписаниеДанных.КонтекстОперации); @@ -133,7 +133,7 @@ &НаКлиенте Процедура ПродлитьХранениеКонтекстаОперации(Форма) Экспорт - Если ТипЗнч(Форма) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(Форма) = Тип("ФормаКлиентскогоПриложения") Тогда ВременноеХранилищеКонтекстовОпераций.Вставить(Форма, Новый Структура("Форма, Время", Форма, ОбщегоНазначенияКлиент.ДатаСеанса())); КонецЕсли; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Help/ru.html b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Help/ru.html index 7fba393ab..f34ac0920 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Help/ru.html +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Help/ru.html @@ -1,4 +1,4 @@ - +

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

              Открывается по кнопке Подобрать из окна Шифрование данных.

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

              diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Module.bsl index da4244bdb..2313e85fb 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодборСертификатовДляШифрования/Module.bsl @@ -13,10 +13,6 @@ ЭлектроннаяПодписьСлужебный.УстановитьУсловноеОформлениеСпискаСертификатов(Список); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Параметры.Отбор.Свойство("Организация", Организация); ЗакрыватьПриВыборе = Ложь; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Help/ru.html b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Help/ru.html index 3b9a398a3..42f80996e 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Help/ru.html +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

              Подписание данных

              diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl index c576ef735..e89f04981 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЭлектроннаяПодписьСлужебный.НастроитьПояснениеВводаПароля(ЭтотОбъект, , Элементы.ПояснениеУсиленногоПароля.Имя); @@ -446,7 +442,7 @@ КонецЕсли; Контекст.Вставить("ИдентификаторФормы", УникальныйИдентификатор); - Если ТипЗнч(ФормаОбъекта) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ФормаОбъекта) = Тип("ФормаКлиентскогоПриложения") Тогда Контекст.ИдентификаторФормы = ФормаОбъекта.УникальныйИдентификатор; ИначеЕсли ТипЗнч(ФормаОбъекта) = Тип("УникальныйИдентификатор") Тогда Контекст.ИдентификаторФормы = ФормаОбъекта; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl index 515871f28..f6981a83e 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПроверкаСертификата/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЭлектроннаяПодписьСлужебный.НастроитьПояснениеВводаПароля(ЭтотОбъект, , Элементы.ПояснениеУсиленногоПароля.Имя); diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПросмотрДанных/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПросмотрДанных/Module.bsl index 431dd8976..5e677c868 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПросмотрДанных/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПросмотрДанных/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Заголовок = Параметры.ПредставлениеДанных; Для каждого Представление Из Параметры.СписокПредставленийДанных Цикл diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Help/ru.html b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Help/ru.html index e54166326..eab88e053 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Help/ru.html +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Help/ru.html @@ -1,4 +1,4 @@ - +

              Предназначена для расшифровки данных.

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

              • В ссылке в верхней части окна указываются сведения о данных, которые будут расшифрованы. diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl index 8561ea6f4..2160d1988 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/РасшифровкаДанных/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЭлектроннаяПодписьСлужебный.НастроитьПояснениеВводаПароля(ЭтотОбъект, , Элементы.ПояснениеУсиленногоПароля.Имя); @@ -475,7 +471,7 @@ КонецЕсли; Контекст.Вставить("ИдентификаторФормы", УникальныйИдентификатор); - Если ТипЗнч(ФормаОбъекта) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ФормаОбъекта) = Тип("ФормаКлиентскогоПриложения") Тогда Контекст.ИдентификаторФормы = ФормаОбъекта.УникальныйИдентификатор; ИначеЕсли ТипЗнч(ФормаОбъекта) = Тип("УникальныйИдентификатор") Тогда Контекст.ИдентификаторФормы = ФормаОбъекта; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Help/ru.html b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Help/ru.html index c256c51fc..4355ead68 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Help/ru.html +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                • Представление - полное наименование сертификата; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Module.bsl index 21e20d1fe..829d3dad0 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаВыбора/Module.bsl @@ -13,10 +13,6 @@ ЭлектроннаяПодписьСлужебный.УстановитьУсловноеОформлениеСпискаСертификатов(Список); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Параметры.Отбор.Свойство("Организация", Организация); Если Не ЭлектроннаяПодпись.ИспользоватьШифрование() diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Help/ru.html index 85574f96d..eac692880 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

                  Сведения о сертификате электронной подписи.

                  В верхней части программа автоматически выводит данные о сертификате:

                  • Кому выдан; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl index 03f95a28d..a11c3900c 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЭлектроннаяПодписьСлужебный.НастроитьПояснениеВводаПароля(ЭтотОбъект, Элементы.УсиленнаяЗащитаЗакрытогоКлюча.Имя); diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Help/ru.html b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Help/ru.html index 2ac1cc549..62d14556f 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Help/ru.html +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                    Шифрование данных

                    • С помощью ссылки в верхней части окна можно просмотреть объект, который будет подписан. Ссылка принимает значение наименования объекта. diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Module.bsl index 24432d2d7..c49bebce6 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ШифрованиеДанных/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если ЗначениеЗаполнено(Параметры.НаборСертификатов) Тогда УказанНеизменяемыйНаборСертификатов = Истина; ЗаполнитьСертификатыШифрованияИзНабора(Параметры.НаборСертификатов); @@ -767,7 +763,7 @@ КонецЕсли; Контекст.Вставить("ИдентификаторФормы", УникальныйИдентификатор); - Если ТипЗнч(ФормаОбъекта) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ФормаОбъекта) = Тип("ФормаКлиентскогоПриложения") Тогда Контекст.ИдентификаторФормы = ФормаОбъекта.УникальныйИдентификатор; ИначеЕсли ТипЗнч(ФормаОбъекта) = Тип("УникальныйИдентификатор") Тогда Контекст.ИдентификаторФормы = ФормаОбъекта; diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Help/ru.html b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Help/ru.html index 194aa6666..e722ff622 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Help/ru.html +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Help/ru.html @@ -1,9 +1,12 @@ - +

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

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

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

                      С помощью электронной подписи можно:

                      • Подписывать объекты программы (например, поля Наименование и Краткое содержание); -
                      • Подписывать содержимое хранимых файлов; -
                      • Шифровать содержимое хранимых файлов; -
                      • Расшифровать зашифрованные файлы.
                      \ No newline at end of file +
                    • +
                    • Подписывать содержимое хранимых файлов; +
                    • +
                    • Шифровать содержимое хранимых файлов; +
                    • +
                    • Расшифровать зашифрованные файлы.
                    \ No newline at end of file diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/Штамп/Template.mxlx b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/Штамп/Template.mxlx index 33d9f82cf..68f5e476e 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/Штамп/Template.mxlx +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Templates/Штамп/Template.mxlx @@ -30,6 +30,12 @@ + + 0 + + true + + 1 diff --git a/SSL/src/Catalogs/СообщенияОбластейДанных/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/Catalogs/СообщенияОбластейДанных/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss deleted file mode 100644 index c0e9e682c..000000000 --- a/SSL/src/Catalogs/СообщенияОбластейДанных/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss +++ /dev/null @@ -1,25 +0,0 @@ - - - - Normal - dfcece9d-5077-440b-b6b3-45a5cb4538eb - - - - Код - Desc - - - Получатель.Наименование - 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 deleted file mode 100644 index 017066206..000000000 --- a/SSL/src/Catalogs/СообщенияОбластейДанных/Forms/ФормаСписка/Form.form +++ /dev/null @@ -1,1025 +0,0 @@ - - - - <key>ru</key> - <value>Сообщения областей данных</value> - - - ВариантГруппировки - 14 - true - true - - true - - - ВариантГруппировки - - - OnChange - ВариантГруппировкиПриИзменении - - - ВариантГруппировкиExtendedTooltip - 53 - Label - true - true - - Left - - - - ВариантГруппировкиКонтекстноеМеню - 15 - true - - InputField - Enter - true - Left - true - - 30 - true - true - false - true - true - true - true - - - ru - не группировать - - - БезГруппировки - - - - - ru - группировать по отправителю - - - ПоОтправителю - - - - - ru - группировать по получателю - - - ПоПолучателю - - - Normal - - - - Список - 1 - - <key>ru</key> - <value>Список</value> - - true - true - - true - - - Список - - None - - ОбластьДанныхВспомогательныеДанные - 37 - - <key>ru</key> - <value>Область данных</value> - - true - true - - true - - - Список.ОбластьДанныхВспомогательныеДанные - - - ОбластьДанныхВспомогательныеДанныеExtendedTooltip - 59 - Label - true - true - - Left - - - - ОбластьДанныхВспомогательныеДанныеКонтекстноеМеню - 38 - true - - LabelField - Enter - true - Left - true - - true - true - - - - Наименование - 4 - true - true - - true - - - Список.Description - - - НаименованиеExtendedTooltip - 60 - Label - true - true - - Left - - - - НаименованиеКонтекстноеМеню - 5 - true - - LabelField - Enter - true - Left - true - - true - true - - - - Отправитель - 10 - true - true - - true - - - Список.Отправитель - - - ОтправительExtendedTooltip - 61 - Label - true - true - - Left - - - - ОтправительКонтекстноеМеню - 11 - true - - LabelField - Enter - true - Left - true - - true - true - - - - Получатель - 12 - true - true - - true - - - Список.Получатель - - - ПолучательExtendedTooltip - 62 - Label - true - true - - Left - - - - ПолучательКонтекстноеМеню - 13 - true - - LabelField - Enter - true - Left - true - - true - true - - - - Ссылка - 63 - true - true - - - Список.Ref - - - СсылкаРасширеннаяПодсказка - 65 - Label - true - true - - Left - - - - СсылкаКонтекстноеМеню - 64 - true - - LabelField - Enter - true - Left - true - - true - true - - - None - - СписокКоманднаяПанель - 3 - Left - true - - - СписокSearchString - 66 - - СписокSearchStringExtendedTooltip - 68 - Label - true - true - - Left - - - - СписокSearchStringContextMenu - 67 - true - - Список - - true - - - - СписокViewStatus - 69 - - СписокViewStatusExtendedTooltip - 71 - Label - true - true - - Left - - - - СписокViewStatusContextMenu - 70 - true - - ViewStatusAddition - Список - - true - - - - СписокSearchControl - 72 - - СписокSearchControlExtendedTooltip - 74 - Label - true - true - - Left - - - - СписокSearchControlContextMenu - 73 - true - - SearchControlAddition - Список - - true - - - - СписокExtendedTooltip - 58 - Label - true - true - - Left - - - - СписокКонтекстноеМеню - 2 - - СписокГруппа1 - 34 - - СписокИзменить - 32 - true - true - - true - - - СписокИзменитьExtendedTooltip - 55 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.Change - Normal - Auto - true - true - UserCmds - Auto - - - СписокУдалить - 31 - true - true - - true - - - СписокУдалитьExtendedTooltip - 56 - Label - true - true - - Left - - - Form.Command.Удалить - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Список группа 1</value> - - - СписокГруппа1ExtendedTooltip - 54 - Label - true - true - - Left - - - - - - СписокКопироватьВБуферОбмена - 33 - true - true - - true - - - СписокКопироватьВБуферОбменаExtendedTooltip - 57 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.CopyToClipboard - Normal - Auto - true - true - UserCmds - Auto - - - HierarchicalList - true - true - true - MultiRow -
                    true
                    - 1 - 1 - AutoUse - AutoUse - true - true - Auto - Auto - ExpandTopLevel - true - true - true - - Список.DefaultPicture - - true - - true - 60 - - 0001-01-01T00:00:00 - 0001-01-01T00:00:00 - - - true - true - -
                    - - ФормаКоманднаяПанель - -1 - - ФормаГруппа2 - 28 - - ФормаИзменить - 20 - true - true - - true - - - ФормаИзменитьExtendedTooltip - 40 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.Change - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ФормаУдалить - 19 - true - true - - true - - - ФормаУдалитьExtendedTooltip - 41 - Label - true - true - - Left - - - Form.Command.Удалить - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - true - true - - true - - - <key>ru</key> - <value>Форма группа 2</value> - - - ФормаГруппа2ExtendedTooltip - 39 - Label - true - true - - Left - - - - - - ФормаГруппа1 - 27 - - ФормаОтправитьИПолучитьСообщения - 17 - true - true - - true - - - ФормаОтправитьИПолучитьСообщенияExtendedTooltip - 43 - Label - true - true - - Left - - - Form.Command.ОтправитьИПолучитьСообщения - Normal - Auto - true - true - UserCmds - Auto - - - ФормаНастройка - 18 - true - true - - true - - - ФормаНастройкаExtendedTooltip - 44 - Label - true - true - - Left - - - Form.Command.Настройка - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Форма группа 1</value> - - - ФормаГруппа1ExtendedTooltip - 42 - Label - true - true - - Left - - - - - - ФормаГруппа3 - 29 - - ФормаНайти - 21 - true - true - - true - - - ФормаНайтиExtendedTooltip - 46 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.Find - Normal - Auto - true - true - UserCmds - Auto - InCommandBarAndInAdditionalSubmenu - - - ФормаОтменитьПоиск - 22 - true - true - - true - - - ФормаОтменитьПоискExtendedTooltip - 47 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.CancelSearch - Normal - Auto - true - true - UserCmds - Auto - InCommandBarAndInAdditionalSubmenu - - true - true - - true - - - <key>ru</key> - <value>Форма группа 3</value> - - - ФормаГруппа3ExtendedTooltip - 45 - Label - true - true - - Left - - - - - - ФормаОбновить - 25 - true - true - - true - - - ФормаОбновитьExtendedTooltip - 48 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.Refresh - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ФормаГруппа4 - 30 - - ФормаНастройкаСписка - 23 - true - true - - true - - - ФормаНастройкаСпискаExtendedTooltip - 50 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.ListSettings - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ФормаВывестиСписок - 24 - true - true - - true - - - ФормаВывестиСписокExtendedTooltip - 51 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.OutputList - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ФормаКопироватьВБуферОбмена - 26 - true - true - - true - - - ФормаКопироватьВБуферОбменаExtendedTooltip - 52 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.CopyToClipboard - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - true - true - - true - - - <key>ru</key> - <value>Форма группа 4</value> - - - ФормаГруппа4ExtendedTooltip - 49 - Label - true - true - - Left - - - - - Left - - - OnCreateAtServer - ПриСозданииНаСервере - - DontBlock - true - true - Vertical - true - true - true - auto - true - - Список - 1 - - DynamicList - - - true - - - true - - - Список.Ref - -
                    true
                    - - ВЫБРАТЬ - СообщенияОбластейДанных.Получатель КАК Получатель, - СообщенияОбластейДанных.Ссылка, - СообщенияОбластейДанных.Заблокировано, - СообщенияОбластейДанных.Наименование, - СообщенияОбластейДанных.Отправитель, - СообщенияОбластейДанных.ЭтоБыстроеСообщение, - СообщенияОбластейДанных.Код, - СообщенияОбластейДанных.ОбластьДанныхВспомогательныеДанные -ИЗ - Справочник.СообщенияОбластейДанных КАК СообщенияОбластейДанных - Catalog.СообщенияОбластейДанных - true - true - true - true - true - -
                    - - ВариантГруппировки - - <key>ru</key> - <value>Группировка</value> - - 2 - - String - - 20 - - - - true - - - true - - - - ОтправитьИПолучитьСообщения - - <key>ru</key> - <value>Отправить и получить сообщения</value> - - 1 - - ru - Отправить и получить сообщения сейчас - - - true - - - CommonPicture.СинхронизацияДанныхВыполнение - - - - ОтправитьИПолучитьСообщения - - - TextPicture - DontUse - Auto - - - Настройка - - <key>ru</key> - <value>Настройка...</value> - - 2 - - ru - Настройка подсистемы обмена сообщениями - - - true - - - - Настройка - - - TextPicture - DontUse - Auto - - - Удалить - - <key>ru</key> - <value>Удалить</value> - - 3 - - ru - Удалить - - - true - - F8 - - StdPicture.DeleteDirectly - - - - Удалить - - - DontUse - Auto - - - - - - -
                    diff --git a/SSL/src/Catalogs/СообщенияОбластейДанных/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/СообщенияОбластейДанных/Forms/ФормаСписка/Module.bsl deleted file mode 100644 index ff69936b6..000000000 --- a/SSL/src/Catalogs/СообщенияОбластейДанных/Forms/ФормаСписка/Module.bsl +++ /dev/null @@ -1,224 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - УстановитьУсловноеОформление(); - - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - // Начальная настройка группировки. - ГруппировкаДанных = Список.КомпоновщикНастроек.Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); - ГруппировкаДанных.ИдентификаторПользовательскойНастройки = "ОсновнаяГруппировка"; - ГруппировкаДанных.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; - - ПоляГруппировки = ГруппировкаДанных.ПоляГруппировки; - - ЭлементГруппировкиДанных = ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); - ЭлементГруппировкиДанных.Поле = Новый ПолеКомпоновкиДанных("Получатель"); - ЭлементГруппировкиДанных.Использование = Истина; - - ЭлементГруппировкиДанных = ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); - ЭлементГруппировкиДанных.Поле = Новый ПолеКомпоновкиДанных("Отправитель"); - ЭлементГруппировкиДанных.Использование = Ложь; - - // Условная настройка группировки. - ВариантГруппировки = "ПоПолучателю"; - УстановитьГруппировкуСписка(); - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиСобытийЭлементовШапкиФормы - -&НаКлиенте -Процедура ВариантГруппировкиПриИзменении(Элемент) - - УстановитьГруппировкуСписка(); - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиКомандФормы - -&НаКлиенте -Процедура ОтправитьИПолучитьСообщения(Команда) - - ОбменСообщениямиКлиент.ОтправитьИПолучитьСообщения(); - - Элементы.Список.Обновить(); - -КонецПроцедуры - -&НаКлиенте -Процедура Настройка(Команда) - - ОткрытьФорму("ОбщаяФорма.НастройкаОбменаСообщениями",, ЭтотОбъект); - -КонецПроцедуры - -&НаКлиенте -Процедура Удалить(Команда) - - Если Элементы.Список.ТекущиеДанные <> Неопределено Тогда - - Если Элементы.Список.ТекущиеДанные.Свойство("ГруппировкаСтроки") - И ТипЗнч(Элементы.Список.ТекущиеДанные.ГруппировкаСтроки) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда - - ПоказатьПредупреждение(, НСтр("ru = 'Действие недоступно для строки группировки списка.'")); - - Иначе - - Если Элементы.Список.ВыделенныеСтроки.Количество() > 1 Тогда - - СтрокаВопроса = НСтр("ru = 'Удалить выделенные сообщения?'"); - - Иначе - - СтрокаВопроса = НСтр("ru = 'Удалить сообщение ""[Сообщение]""?'"); - СтрокаВопроса = СтрЗаменить(СтрокаВопроса, "[Сообщение]", Элементы.Список.ТекущиеДанные.Наименование); - - КонецЕсли; - - ОписаниеОповещения = Новый ОписаниеОповещения("УдалитьЗавершение", ЭтотОбъект); - ПоказатьВопрос(ОписаниеОповещения, СтрокаВопроса, РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да); - - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура УдалитьЗавершение(Ответ, ДополнительныеПараметры) Экспорт - - Если Ответ = КодВозвратаДиалога.Да Тогда - - УдалитьСообщениеНепосредственно(Элементы.Список.ВыделенныеСтроки); - - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -&НаСервере -Процедура УстановитьГруппировкуСписка() - - ГруппировкаПолучатель = Список.КомпоновщикНастроек.Настройки.Структура[0].ПоляГруппировки.Элементы[0]; - ГруппировкаОтправитель = Список.КомпоновщикНастроек.Настройки.Структура[0].ПоляГруппировки.Элементы[1]; - - Если ВариантГруппировки = "БезГруппировки" Тогда - - ГруппировкаПолучатель.Использование = Ложь; - ГруппировкаОтправитель.Использование = Ложь; - - Элементы.Отправитель.Видимость = Истина; - Элементы.Получатель.Видимость = Истина; - - Иначе - - Использование = (ВариантГруппировки = "ПоПолучателю"); - - ГруппировкаПолучатель.Использование = Использование; - ГруппировкаОтправитель.Использование = Не Использование; - - Элементы.Отправитель.Видимость = Использование; - Элементы.Получатель.Видимость = Не Использование; - - КонецЕсли; - -КонецПроцедуры - -&НаСервере -Процедура УдалитьСообщениеНепосредственно(Знач Сообщения) - - Для Каждого Сообщение Из Сообщения Цикл - - Если ТипЗнч(Сообщение) <> Тип("СправочникСсылка.СообщенияОбластейДанных") Тогда - Продолжить; - КонецЕсли; - - ОбъектСообщения = Сообщение.ПолучитьОбъект(); - - Если ОбъектСообщения <> Неопределено Тогда - - ОбъектСообщения.Заблокировать(); - - Если ЗначениеЗаполнено(ОбъектСообщения.Отправитель) - И ОбъектСообщения.Отправитель <> ОбменСообщениямиВнутренний.ЭтотУзел() Тогда - - ОбъектСообщения.ОбменДанными.Получатели.Добавить(ОбъектСообщения.Отправитель); - ОбъектСообщения.ОбменДанными.Получатели.АвтоЗаполнение = Ложь; - - КонецЕсли; - - ОбъектСообщения.ОбменДанными.Загрузка = Истина; // Наличие ссылок на справочник не должно препятствовать или замедлять удаление элементов справочника. - ОбъектСообщения.Удалить(); - - КонецЕсли; - - КонецЦикла; - - Элементы.Список.Обновить(); - -КонецПроцедуры - -&НаСервере -Процедура УстановитьУсловноеОформление() - - УсловноеОформление.Элементы.Очистить(); - - // Оформление заблокированной записи. - - Элемент = Список.УсловноеОформление.Элементы.Добавить(); - - ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); - ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Список.Имя); - - ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Заблокировано"); - ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - ОтборЭлемента.ПравоеЗначение = Истина; - - Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветОсобогоТекста); - - // Оформление быстрого сообщения. - - Элемент = Список.УсловноеОформление.Элементы.Добавить(); - - ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); - ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Список.Имя); - - ГруппаЭлементовОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); - ГруппаЭлементовОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; - - ОтборЭлемента = ГруппаЭлементовОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЭтоБыстроеСообщение"); - ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - ОтборЭлемента.ПравоеЗначение = Истина; - - ОтборЭлемента = ГруппаЭлементовОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Заблокировано"); - ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - ОтборЭлемента.ПравоеЗначение = Ложь; - - Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.РезультатУспехЦвет); - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/Catalogs/СообщенияОбластейДанных/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/СообщенияОбластейДанных/Forms/ФормаЭлемента/Form.form deleted file mode 100644 index 3974b7787..000000000 --- a/SSL/src/Catalogs/СообщенияОбластейДанных/Forms/ФормаЭлемента/Form.form +++ /dev/null @@ -1,348 +0,0 @@ - - - - Наименование - 1 - true - true - - true - - - Объект.Description - - - НаименованиеExtendedTooltip - 13 - Label - true - true - - Left - - - - НаименованиеКонтекстноеМеню - 2 - true - - InputField - true - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - Отправитель - 3 - true - true - - true - - - Объект.Отправитель - - - ОтправительExtendedTooltip - 14 - Label - true - true - - Left - - - - ОтправительКонтекстноеМеню - 4 - true - - InputField - true - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - Получатель - 5 - true - true - - true - - - Объект.Получатель - - - ПолучательExtendedTooltip - 15 - Label - true - true - - Left - - - - ПолучательКонтекстноеМеню - 6 - true - - InputField - true - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - ТелоСообщения - 11 - true - true - - true - - - ТелоСообщенияПредставление - - - ТелоСообщенияExtendedTooltip - 16 - Label - true - true - - Left - - - - ТелоСообщенияКонтекстноеМеню - 12 - true - - InputField - true - Enter - true - Left - true - - 12 - true - true - true - true - true - Normal - - - - Заблокировано - 9 - true - true - - true - - - Объект.Заблокировано - - - ЗаблокированоExtendedTooltip - 17 - Label - true - true - - Left - - - - ЗаблокированоКонтекстноеМеню - 10 - true - - CheckBoxField - Enter - true - Left - true - - - - КоличествоПопытокОбработкиСообщения - 19 - true - true - - true - - - Объект.КоличествоПопытокОбработкиСообщения - - - КоличествоПопытокОбработкиСообщенияРасширеннаяПодсказка - 21 - Label - true - true - - Left - - - - КоличествоПопытокОбработкиСообщенияКонтекстноеМеню - 20 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - ПодробноеПредставлениеОшибки - 7 - true - true - - true - - - Объект.ПодробноеПредставлениеОшибки - - Top - - ПодробноеПредставлениеОшибкиExtendedTooltip - 18 - Label - true - true - - Left - - - - ПодробноеПредставлениеОшибкиКонтекстноеМеню - 8 - true - - InputField - true - Enter - true - Left - true - - 4 - true - true - true - true - true - true - Normal - - - - ФормаКоманднаяПанель - -1 - Left - true - - - OnCreateAtServer - ПриСозданииНаСервере - - LockOwner - true - true - true - Vertical - true - true - true - UseIfNecessary - 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 deleted file mode 100644 index b92a7e883..000000000 --- a/SSL/src/Catalogs/СообщенияОбластейДанных/Forms/ФормаЭлемента/Module.bsl +++ /dev/null @@ -1,36 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - ТелоСообщения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Ссылка, "ТелоСообщения").Получить(); - - Если ТипЗнч(ТелоСообщения) = Тип("Строка") Тогда - - ТелоСообщенияПредставление = ТелоСообщения; - - Иначе - - Попытка - ТелоСообщенияПредставление = ОбщегоНазначения.ЗначениеВСтрокуXML(ТелоСообщения); - Исключение - ТелоСообщенияПредставление = НСтр("ru = 'Тело сообщения не может быть представлено строкой.'"); - КонецПопытки; - - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/Catalogs/СообщенияОбластейДанных/ObjectModule.bsl b/SSL/src/Catalogs/СообщенияОбластейДанных/ObjectModule.bsl deleted file mode 100644 index 868ca170c..000000000 --- a/SSL/src/Catalogs/СообщенияОбластейДанных/ObjectModule.bsl +++ /dev/null @@ -1,35 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда - -#Область ОбработчикиСобытий - -Процедура ПередЗаписью(Отказ) - - Если ОбменДанными.Загрузка Тогда - Возврат; - КонецЕсли; - - КаналСообщений = Наименование; - - СодержимоеТела = ТелоСообщения.Получить(); - - // СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса - СообщенияВМоделиСервиса.ПередОтправкойСообщения(КаналСообщений, СодержимоеТела); - // Конец СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса - - ТелоСообщения = Новый ХранилищеЗначения(СодержимоеТела); - -КонецПроцедуры - -#КонецОбласти - -#Иначе -ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); -#КонецЕсли \ No newline at end of file diff --git a/SSL/src/Catalogs/СообщенияОбластейДанных/СообщенияОбластейДанных.mdo b/SSL/src/Catalogs/СообщенияОбластейДанных/СообщенияОбластейДанных.mdo deleted file mode 100644 index 1c8a3fd49..000000000 --- a/SSL/src/Catalogs/СообщенияОбластейДанных/СообщенияОбластейДанных.mdo +++ /dev/null @@ -1,285 +0,0 @@ - - - - - - - - - - СообщенияОбластейДанных - - ru - Сообщения областей данных - - true - Catalog.СообщенияОбластейДанных.StandardAttribute.Description - DontUse - - Use - PredefinedDataName - - Use - - - - - Use - Predefined - - Use - - - - - Use - Ref - - Use - - - - - Use - DeletionMark - - Use - - - - - Use - IsFolder - - Use - - - - - Use - Owner - true - - ShowError - Use - - - - - Use - Parent - true - - Use - - - - - Use - Description - - ru - Канал сообщений - - - ru - Логический маршрут для транспортировки сообщений. - - - ShowError - Use - - - - - Use - Code - - ru - Входящий номер - - Входящий номер сообщения в очереди сообщений. Назначается системой в момент помещения сообщения в очередь сообщений. Сообщение может быть помещено в очередь при отправке или при приеме (загрузке). - - ru - Входящий номер сообщения в очереди сообщений. Назначается системой в момент помещения сообщения в очередь сообщений. Сообщение может быть помещено в очередь при отправке или при приеме (загрузке). - - - ShowError - Use - - - - Use - Managed - - ru - Сообщение области данных - - 2 - true - 30 - 150 - Variable - true - true - AsDescription - InDialog - BothWays - Catalog.СообщенияОбластейДанных.Form.ФормаЭлемента - Catalog.СообщенияОбластейДанных.Form.ФормаСписка - - ТелоСообщения - - ru - Тело сообщения - - - ValueStorage - - - ru - Пакет данных - - - - - Use - - - Отправитель - - ru - Отправитель - - - ExchangePlanRef.ОбменСообщениями - - - ru - Приложение, которое размещает сообщение (пакет данных) в канале - - - - - Use - - - Получатель - - ru - Получатель - - - ExchangePlanRef.ОбменСообщениями - - - ru - Приложение, которое считывает сообщение из канала - - - - - Index - Use - - - Заблокировано - - ru - Заблокировано - - - Boolean - - - ru - Признак блокировки сообщения - - - - - Index - Use - - - КоличествоПопытокОбработкиСообщения - - ru - Количество попыток обработки сообщения - - - Number - - 2 - true - - - - ru - Количество повторов при возникновении ошибки - - - - - Use - Use - - - ПодробноеПредставлениеОшибки - - ru - Подробное представление ошибки - - - String - - - - ru - Информация о возникшей ошибке - - - - - Use - Use - - - ЭтоБыстроеСообщение - - ru - Это быстрое сообщение - - Признак того, что сообщение требуется доставить и обработать быстро, вне порядка общей очереди сообщений. - - Boolean - - - ru - Признак того, что сообщение требуется доставить и обработать быстро, вне порядка общей очереди сообщений. - - - - - Index - Use - - - ФормаСписка - - ru - Форма списка - - PersonalComputer - MobileDevice - - - ФормаЭлемента - - ru - Форма элемента - - PersonalComputer - MobileDevice - - diff --git a/SSL/src/Catalogs/СообщенияСистемы/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/Catalogs/СообщенияСистемы/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss deleted file mode 100644 index c0e9e682c..000000000 --- a/SSL/src/Catalogs/СообщенияСистемы/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss +++ /dev/null @@ -1,25 +0,0 @@ - - - - Normal - dfcece9d-5077-440b-b6b3-45a5cb4538eb - - - - Код - Desc - - - Получатель.Наименование - 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 deleted file mode 100644 index 98d2e5cea..000000000 --- a/SSL/src/Catalogs/СообщенияСистемы/Forms/ФормаСписка/Form.form +++ /dev/null @@ -1,1007 +0,0 @@ - - - - <key>ru</key> - <value>Сообщения системы</value> - - - ВариантГруппировки - 14 - true - true - - true - - - ВариантГруппировки - - - OnChange - ВариантГруппировкиПриИзменении - - - ВариантГруппировкиExtendedTooltip - 49 - Label - true - true - - Left - - - - ВариантГруппировкиКонтекстноеМеню - 15 - true - - InputField - Enter - true - Left - true - - 30 - true - true - false - true - true - true - true - - - ru - не группировать - - - БезГруппировки - - - - - ru - группировать по отправителю - - - ПоОтправителю - - - - - ru - группировать по получателю - - - ПоПолучателю - - - Normal - - - - Список - 1 - - <key>ru</key> - <value>Список</value> - - true - true - - true - - - Список - - None - - Наименование - 4 - true - true - - true - - - Список.Description - - - НаименованиеExtendedTooltip - 55 - Label - true - true - - Left - - - - НаименованиеКонтекстноеМеню - 5 - true - - LabelField - Enter - true - Left - true - - true - true - - - - Отправитель - 10 - true - true - - true - - - Список.Отправитель - - - ОтправительExtendedTooltip - 56 - Label - true - true - - Left - - - - ОтправительКонтекстноеМеню - 11 - true - - LabelField - Enter - true - Left - true - - true - true - - - - Получатель - 12 - true - true - - true - - - Список.Получатель - - - ПолучательExtendedTooltip - 57 - Label - true - true - - Left - - - - ПолучательКонтекстноеМеню - 13 - true - - LabelField - Enter - true - Left - true - - true - true - - - - Ссылка - 58 - true - true - - - Список.Ref - - - СсылкаРасширеннаяПодсказка - 60 - Label - true - true - - Left - - - - СсылкаКонтекстноеМеню - 59 - true - - LabelField - Enter - true - Left - true - - true - true - - - None - - СписокКоманднаяПанель - 3 - Left - true - - - СписокSearchString - 61 - - СписокSearchStringExtendedTooltip - 63 - Label - true - true - - Left - - - - СписокSearchStringContextMenu - 62 - true - - Список - - true - - - - СписокViewStatus - 64 - - СписокViewStatusExtendedTooltip - 66 - Label - true - true - - Left - - - - СписокViewStatusContextMenu - 65 - true - - ViewStatusAddition - Список - - true - - - - СписокSearchControl - 67 - - СписокSearchControlExtendedTooltip - 69 - Label - true - true - - Left - - - - СписокSearchControlContextMenu - 68 - true - - SearchControlAddition - Список - - true - - - - СписокExtendedTooltip - 54 - Label - true - true - - Left - - - - СписокКонтекстноеМеню - 2 - - СписокГруппа1 - 34 - - СписокИзменить - 32 - true - true - - true - - - СписокИзменитьExtendedTooltip - 51 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.Change - Normal - Auto - true - true - UserCmds - Auto - - - СписокУдалить - 31 - true - true - - true - - - СписокУдалитьExtendedTooltip - 52 - Label - true - true - - Left - - - Form.Command.Удалить - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Список группа 1</value> - - - СписокГруппа1ExtendedTooltip - 50 - Label - true - true - - Left - - - - - - СписокКопироватьВБуферОбмена - 33 - true - true - - true - - - СписокКопироватьВБуферОбменаExtendedTooltip - 53 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.CopyToClipboard - Normal - Auto - true - true - UserCmds - Auto - - - HierarchicalList - true - true - true - MultiRow -
                    true
                    - 1 - 1 - AutoUse - AutoUse - true - true - Auto - Auto - ExpandTopLevel - true - true - true - - Список.DefaultPicture - - true - - true - 60 - - 0001-01-01T00:00:00 - 0001-01-01T00:00:00 - - - true - true - -
                    - - ФормаКоманднаяПанель - -1 - - ФормаГруппа2 - 28 - - ФормаИзменить - 20 - true - true - - true - - - ФормаИзменитьExtendedTooltip - 36 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.Change - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ФормаУдалить - 19 - true - true - - true - - - ФормаУдалитьExtendedTooltip - 37 - Label - true - true - - Left - - - Form.Command.Удалить - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - true - true - - true - - - <key>ru</key> - <value>Форма группа 2</value> - - - ФормаГруппа2ExtendedTooltip - 35 - Label - true - true - - Left - - - - - - ФормаГруппа1 - 27 - - ФормаОтправитьИПолучитьСообщения - 17 - true - true - - true - - - ФормаОтправитьИПолучитьСообщенияExtendedTooltip - 39 - Label - true - true - - Left - - - Form.Command.ОтправитьИПолучитьСообщения - Normal - Auto - true - true - UserCmds - Auto - - - ФормаНастройка - 18 - true - true - - true - - - ФормаНастройкаExtendedTooltip - 40 - Label - true - true - - Left - - - Form.Command.Настройка - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Форма группа 1</value> - - - ФормаГруппа1ExtendedTooltip - 38 - Label - true - true - - Left - - - - - - ФормаГруппа3 - 29 - - ФормаНайти - 21 - true - true - - true - - - ФормаНайтиExtendedTooltip - 42 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.Find - Normal - Auto - true - true - UserCmds - Auto - InCommandBarAndInAdditionalSubmenu - - - ФормаОтменитьПоиск - 22 - true - true - - true - - - ФормаОтменитьПоискExtendedTooltip - 43 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.CancelSearch - Normal - Auto - true - true - UserCmds - Auto - InCommandBarAndInAdditionalSubmenu - - true - true - - true - - - <key>ru</key> - <value>Форма группа 3</value> - - - ФормаГруппа3ExtendedTooltip - 41 - Label - true - true - - Left - - - - - - ФормаОбновить - 25 - true - true - - true - - - ФормаОбновитьExtendedTooltip - 44 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.Refresh - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ФормаГруппа4 - 30 - - ФормаНастройкаСписка - 23 - true - true - - true - - - ФормаНастройкаСпискаExtendedTooltip - 46 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.ListSettings - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ФормаВывестиСписок - 24 - true - true - - true - - - ФормаВывестиСписокExtendedTooltip - 47 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.OutputList - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - ФормаКопироватьВБуферОбмена - 26 - true - true - - true - - - ФормаКопироватьВБуферОбменаExtendedTooltip - 48 - Label - true - true - - Left - - - Form.Item.Список.StandardCommand.CopyToClipboard - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - true - true - - true - - - <key>ru</key> - <value>Форма группа 4</value> - - - ФормаГруппа4ExtendedTooltip - 45 - Label - true - true - - Left - - - - - Left - - - OnCreateAtServer - ПриСозданииНаСервере - - DontBlock - true - true - Vertical - true - true - true - auto - true - - Список - 1 - - DynamicList - - - true - - - true - - - Список.Ref - - - Список.Заблокировано - - - Список.ЭтоБыстроеСообщение - -
                    true
                    - - ВЫБРАТЬ - СообщенияСистемы.Получатель КАК Получатель, - СообщенияСистемы.Ссылка, - СообщенияСистемы.Заблокировано, - СообщенияСистемы.Наименование, - СообщенияСистемы.Отправитель, - СообщенияСистемы.ЭтоБыстроеСообщение, - СообщенияСистемы.Код -ИЗ - Справочник.СообщенияСистемы КАК СообщенияСистемы - Catalog.СообщенияСистемы - true - true - true - true - true - -
                    - - ВариантГруппировки - - <key>ru</key> - <value>Группировка</value> - - 2 - - String - - 20 - - - - true - - - true - - - - ЭтоСеансСУстановленнымиЗначениямиРазделителей - - <key>ru</key> - <value>Это сеанс с установленными значениями разделителей</value> - - 3 - - Boolean - - - true - - - true - - - - ОтправитьИПолучитьСообщения - - <key>ru</key> - <value>Отправить и получить сообщения</value> - - 1 - - ru - Отправить и получить сообщения сейчас - - - true - - - CommonPicture.СинхронизацияДанныхВыполнение - - - - ОтправитьИПолучитьСообщения - - - TextPicture - DontUse - Auto - - - Настройка - - <key>ru</key> - <value>Настройка...</value> - - 2 - - ru - Настройка подсистемы обмена сообщениями - - - true - - - - Настройка - - - TextPicture - DontUse - Auto - - - Удалить - - <key>ru</key> - <value>Удалить</value> - - 3 - - ru - Удалить - - - true - - F8 - - StdPicture.DeleteDirectly - - - - Удалить - - - DontUse - Auto - - - - - - -
                    diff --git a/SSL/src/Catalogs/СообщенияСистемы/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/СообщенияСистемы/Forms/ФормаСписка/Module.bsl deleted file mode 100644 index 6b74e7b7e..000000000 --- a/SSL/src/Catalogs/СообщенияСистемы/Forms/ФормаСписка/Module.bsl +++ /dev/null @@ -1,232 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - УстановитьУсловноеОформление(); - - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - ЭтоСеансСУстановленнымиЗначениямиРазделителей = РаботаВМоделиСервиса.РазделениеВключено() - И РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных(); - - // Начальная настройка группировки. - ГруппировкаДанных = Список.КомпоновщикНастроек.Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); - ГруппировкаДанных.ИдентификаторПользовательскойНастройки = "ОсновнаяГруппировка"; - ГруппировкаДанных.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; - - ПоляГруппировки = ГруппировкаДанных.ПоляГруппировки; - - ЭлементГруппировкиДанных = ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); - ЭлементГруппировкиДанных.Поле = Новый ПолеКомпоновкиДанных("Получатель"); - ЭлементГруппировкиДанных.Использование = Истина; - - ЭлементГруппировкиДанных = ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); - ЭлементГруппировкиДанных.Поле = Новый ПолеКомпоновкиДанных("Отправитель"); - ЭлементГруппировкиДанных.Использование = Ложь; - - // Условная настройка группировки. - ВариантГруппировки = "ПоПолучателю"; - УстановитьГруппировкуСписка(); - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиСобытийЭлементовШапкиФормы - -&НаКлиенте -Процедура ВариантГруппировкиПриИзменении(Элемент) - - УстановитьГруппировкуСписка(); - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиКомандФормы - -&НаКлиенте -Процедура ОтправитьИПолучитьСообщения(Команда) - - Если ЭтоСеансСУстановленнымиЗначениямиРазделителей Тогда - ТекстСообщения = НСтр("ru = 'Обработка сообщений возможна только в неразделенном сеансе администратора сервиса.'"); - ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения); - Возврат; - КонецЕсли; - - ОбменСообщениямиКлиент.ОтправитьИПолучитьСообщения(); - Элементы.Список.Обновить(); - -КонецПроцедуры - -&НаКлиенте -Процедура Настройка(Команда) - - ОткрытьФорму("ОбщаяФорма.НастройкаОбменаСообщениями",, ЭтотОбъект); - -КонецПроцедуры - -&НаКлиенте -Процедура Удалить(Команда) - - Если Элементы.Список.ТекущиеДанные <> Неопределено Тогда - - Если Элементы.Список.ТекущиеДанные.Свойство("ГруппировкаСтроки") - И ТипЗнч(Элементы.Список.ТекущиеДанные.ГруппировкаСтроки) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда - - ПоказатьПредупреждение(, НСтр("ru = 'Действие недоступно для строки группировки списка.'")); - - Иначе - - Если Элементы.Список.ВыделенныеСтроки.Количество() > 1 Тогда - - СтрокаВопроса = НСтр("ru = 'Удалить выделенные сообщения?'"); - - Иначе - - СтрокаВопроса = НСтр("ru = 'Удалить сообщение ""[Сообщение]""?'"); - СтрокаВопроса = СтрЗаменить(СтрокаВопроса, "[Сообщение]", Элементы.Список.ТекущиеДанные.Наименование); - - КонецЕсли; - - ОписаниеОповещения = Новый ОписаниеОповещения("УдалитьЗавершение", ЭтотОбъект); - ПоказатьВопрос(ОписаниеОповещения, СтрокаВопроса, РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да); - - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура УдалитьЗавершение(Ответ, ДополнительныеПараметры) Экспорт - - Если Ответ = КодВозвратаДиалога.Да Тогда - - УдалитьСообщениеНепосредственно(Элементы.Список.ВыделенныеСтроки); - - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -&НаСервере -Процедура УстановитьУсловноеОформление() - - УсловноеОформление.Элементы.Очистить(); - - // Оформление заблокированной записи. - - Элемент = Список.УсловноеОформление.Элементы.Добавить(); - - ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); - ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Список.Имя); - - ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Заблокировано"); - ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - ОтборЭлемента.ПравоеЗначение = Истина; - - Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ПоясняющийОшибкуТекст); - - // Оформление быстрого сообщения. - - Элемент = Список.УсловноеОформление.Элементы.Добавить(); - - ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); - ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Список.Имя); - - ГруппаЭлементовОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); - ГруппаЭлементовОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; - - ОтборЭлемента = ГруппаЭлементовОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Заблокировано"); - ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - ОтборЭлемента.ПравоеЗначение = Ложь; - - ОтборЭлемента = ГруппаЭлементовОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ЭтоБыстроеСообщение"); - ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - ОтборЭлемента.ПравоеЗначение = Истина; - - Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.РезультатУспехЦвет); - -КонецПроцедуры - -&НаСервере -Процедура УстановитьГруппировкуСписка() - - ГруппировкаПолучатель = Список.КомпоновщикНастроек.Настройки.Структура[0].ПоляГруппировки.Элементы[0]; - ГруппировкаОтправитель = Список.КомпоновщикНастроек.Настройки.Структура[0].ПоляГруппировки.Элементы[1]; - - Если ВариантГруппировки = "БезГруппировки" Тогда - - ГруппировкаПолучатель.Использование = Ложь; - ГруппировкаОтправитель.Использование = Ложь; - - Элементы.Отправитель.Видимость = Истина; - Элементы.Получатель.Видимость = Истина; - - Иначе - - Использование = (ВариантГруппировки = "ПоПолучателю"); - - ГруппировкаПолучатель.Использование = Использование; - ГруппировкаОтправитель.Использование = Не Использование; - - Элементы.Отправитель.Видимость = Использование; - Элементы.Получатель.Видимость = Не Использование; - - КонецЕсли; - -КонецПроцедуры - -&НаСервере -Процедура УдалитьСообщениеНепосредственно(Знач Сообщения) - - Для Каждого Сообщение Из Сообщения Цикл - - Если ТипЗнч(Сообщение) <> Тип("СправочникСсылка.СообщенияСистемы") Тогда - Продолжить; - КонецЕсли; - - ОбъектСообщения = Сообщение.ПолучитьОбъект(); - - Если ОбъектСообщения <> Неопределено Тогда - - ОбъектСообщения.Заблокировать(); - - Если ЗначениеЗаполнено(ОбъектСообщения.Отправитель) - И ОбъектСообщения.Отправитель <> ОбменСообщениямиВнутренний.ЭтотУзел() Тогда - - ОбъектСообщения.ОбменДанными.Получатели.Добавить(ОбъектСообщения.Отправитель); - ОбъектСообщения.ОбменДанными.Получатели.АвтоЗаполнение = Ложь; - - КонецЕсли; - - ОбъектСообщения.ОбменДанными.Загрузка = Истина; // Наличие ссылок на справочник не должно препятствовать или замедлять удаление элементов справочника. - ОбъектСообщения.Удалить(); - - КонецЕсли; - - КонецЦикла; - - Элементы.Список.Обновить(); - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/Catalogs/СообщенияСистемы/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/СообщенияСистемы/Forms/ФормаЭлемента/Form.form deleted file mode 100644 index 48aebbb4c..000000000 --- a/SSL/src/Catalogs/СообщенияСистемы/Forms/ФормаЭлемента/Form.form +++ /dev/null @@ -1,381 +0,0 @@ - - - - ГруппаШапка - 22 - - Наименование - 1 - true - true - - true - - - Объект.Description - - - НаименованиеExtendedTooltip - 13 - Label - true - true - - Left - - - - НаименованиеКонтекстноеМеню - 2 - true - - InputField - true - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - Отправитель - 3 - true - true - - true - - - Объект.Отправитель - - - ОтправительExtendedTooltip - 14 - Label - true - true - - Left - - - - ОтправительКонтекстноеМеню - 4 - true - - InputField - true - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - Получатель - 5 - true - true - - true - - - Объект.Получатель - - - ПолучательExtendedTooltip - 15 - Label - true - true - - Left - - - - ПолучательКонтекстноеМеню - 6 - true - - InputField - true - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - true - true - - true - - - <key>ru</key> - <value>Шапка</value> - - - ГруппаШапкаРасширеннаяПодсказка - 23 - Label - true - true - - Left - - - UsualGroup - - Vertical - Auto - true - true - DontUse - Auto - - - - ТелоСообщения - 11 - true - true - - true - - - ТелоСообщенияПредставление - - - ТелоСообщенияExtendedTooltip - 16 - Label - true - true - - Left - - - - ТелоСообщенияКонтекстноеМеню - 12 - true - - InputField - true - Enter - true - Left - true - - 12 - true - true - true - true - true - Normal - - - - Заблокировано - 9 - true - true - - true - - - Объект.Заблокировано - - - ЗаблокированоExtendedTooltip - 17 - Label - true - true - - Left - - - - ЗаблокированоКонтекстноеМеню - 10 - true - - CheckBoxField - Enter - true - Left - true - - - - КоличествоПопытокОбработкиСообщения - 19 - true - true - - true - - - Объект.КоличествоПопытокОбработкиСообщения - - - КоличествоПопытокОбработкиСообщенияРасширеннаяПодсказка - 21 - Label - true - true - - Left - - - - КоличествоПопытокОбработкиСообщенияКонтекстноеМеню - 20 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - ПодробноеПредставлениеОшибки - 7 - true - true - - true - - - Объект.ПодробноеПредставлениеОшибки - - Top - - ПодробноеПредставлениеОшибкиExtendedTooltip - 18 - Label - true - true - - Left - - - - ПодробноеПредставлениеОшибкиКонтекстноеМеню - 8 - true - - InputField - true - Enter - true - Left - true - - 4 - true - true - true - true - true - true - true - Normal - - - - ФормаКоманднаяПанель - -1 - Left - true - - - OnCreateAtServer - ПриСозданииНаСервере - - LockOwner - true - true - true - Vertical - true - true - true - UseIfNecessary - 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 deleted file mode 100644 index b92a7e883..000000000 --- a/SSL/src/Catalogs/СообщенияСистемы/Forms/ФормаЭлемента/Module.bsl +++ /dev/null @@ -1,36 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - ТелоСообщения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Ссылка, "ТелоСообщения").Получить(); - - Если ТипЗнч(ТелоСообщения) = Тип("Строка") Тогда - - ТелоСообщенияПредставление = ТелоСообщения; - - Иначе - - Попытка - ТелоСообщенияПредставление = ОбщегоНазначения.ЗначениеВСтрокуXML(ТелоСообщения); - Исключение - ТелоСообщенияПредставление = НСтр("ru = 'Тело сообщения не может быть представлено строкой.'"); - КонецПопытки; - - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/Catalogs/СообщенияСистемы/ManagerModule.bsl b/SSL/src/Catalogs/СообщенияСистемы/ManagerModule.bsl deleted file mode 100644 index 6c39e174a..000000000 --- a/SSL/src/Catalogs/СообщенияСистемы/ManagerModule.bsl +++ /dev/null @@ -1,36 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 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/Catalogs/СообщенияСистемы/ObjectModule.bsl b/SSL/src/Catalogs/СообщенияСистемы/ObjectModule.bsl deleted file mode 100644 index 868ca170c..000000000 --- a/SSL/src/Catalogs/СообщенияСистемы/ObjectModule.bsl +++ /dev/null @@ -1,35 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда - -#Область ОбработчикиСобытий - -Процедура ПередЗаписью(Отказ) - - Если ОбменДанными.Загрузка Тогда - Возврат; - КонецЕсли; - - КаналСообщений = Наименование; - - СодержимоеТела = ТелоСообщения.Получить(); - - // СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса - СообщенияВМоделиСервиса.ПередОтправкойСообщения(КаналСообщений, СодержимоеТела); - // Конец СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса - - ТелоСообщения = Новый ХранилищеЗначения(СодержимоеТела); - -КонецПроцедуры - -#КонецОбласти - -#Иначе -ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); -#КонецЕсли \ No newline at end of file diff --git a/SSL/src/Catalogs/СообщенияСистемы/СообщенияСистемы.mdo b/SSL/src/Catalogs/СообщенияСистемы/СообщенияСистемы.mdo deleted file mode 100644 index 2265dd7ca..000000000 --- a/SSL/src/Catalogs/СообщенияСистемы/СообщенияСистемы.mdo +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - - - - - СообщенияСистемы - - ru - Сообщения системы - - true - Catalog.СообщенияСистемы.StandardAttribute.Description - DontUse - - Use - PredefinedDataName - - Use - - - - - Use - Predefined - - Use - - - - - Use - Ref - - Use - - - - - Use - DeletionMark - - Use - - - - - Use - IsFolder - - Use - - - - - Use - Owner - true - - ShowError - Use - - - - - Use - Parent - true - - Use - - - - - Use - Description - - ru - Канал сообщений - - - ru - Логический маршрут для транспортировки сообщений. - - - ShowError - Use - - - - - Use - Code - - ru - Входящий номер - - Входящий номер сообщения в очереди сообщений. - - ru - Входящий номер сообщения в очереди сообщений. Назначается системой в момент помещения сообщения в очередь сообщений. Сообщение может быть помещено в очередь при отправке или при приеме (загрузке). - - - ShowError - Use - - - - Use - Managed - - ru - Сообщение системы - - 2 - true - 30 - 150 - Variable - true - true - AsDescription - InDialog - BothWays - Catalog.СообщенияСистемы.Form.ФормаЭлемента - Catalog.СообщенияСистемы.Form.ФормаСписка - - ТелоСообщения - - ru - Тело сообщения - - - ValueStorage - - - ru - Пакет данных - - - - - Use - - - Отправитель - - ru - Отправитель - - - ExchangePlanRef.ОбменСообщениями - - - ru - Приложение, которое размещает сообщение (пакет данных) в канале - - - - - Use - - - Получатель - - ru - Получатель - - - ExchangePlanRef.ОбменСообщениями - - - ru - Приложение, которое считывает сообщение из канала - - - - - Index - Use - - - Заблокировано - - ru - Заблокировано - - - Boolean - - - ru - Признак блокировки сообщения - - - - - Index - Use - - - КоличествоПопытокОбработкиСообщения - - ru - Количество попыток обработки сообщения - - - Number - - 2 - true - - - - ru - Количество повторов при возникновении ошибки - - - - - Use - Use - - - ПодробноеПредставлениеОшибки - - ru - Подробное представление ошибки - - - String - - - - ru - Информация о возникшей ошибке - - - - - Use - Use - - - ЭтоБыстроеСообщение - - ru - Это быстрое сообщение - - - Boolean - - - ru - Признак того, что сообщение требуется доставить и обработать быстро, вне порядка общей очереди сообщений. - - - - - Index - Use - - - ФормаСписка - - ru - Форма списка - - PersonalComputer - MobileDevice - - - ФормаЭлемента - - ru - Форма элемента - - PersonalComputer - MobileDevice - - diff --git a/SSL/src/Catalogs/СтраныМира/Forms/Классификатор/Help/ru.html b/SSL/src/Catalogs/СтраныМира/Forms/Классификатор/Help/ru.html index ce83a12b8..8ab8ee0bc 100644 --- a/SSL/src/Catalogs/СтраныМира/Forms/Классификатор/Help/ru.html +++ b/SSL/src/Catalogs/СтраныМира/Forms/Классификатор/Help/ru.html @@ -1,4 +1,4 @@ - +

                    Общероссийский классификатор стран мира (ОКСМ)

                    Общероссийский классификатор стран мира (ОКСМ) входит в состав Единой системы классификации и кодирования технико-экономической и социальной информации (ЕСКК) в Российской Федерации.

                    ОКСМ гармонизирован с Международным стандартом ИСО 3166-97 «Коды для представления наименований стран», разработанным Международной организацией по стандартизации (ИСО), и Межгосударственным классификатором стран мира MK (ИСО 3166) 004-97.

                    diff --git a/SSL/src/Catalogs/СтраныМира/Forms/Классификатор/Module.bsl b/SSL/src/Catalogs/СтраныМира/Forms/Классификатор/Module.bsl index a724ca3f2..41a0584ed 100644 --- a/SSL/src/Catalogs/СтраныМира/Forms/Классификатор/Module.bsl +++ b/SSL/src/Catalogs/СтраныМира/Forms/Классификатор/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если Параметры.Свойство("РежимОткрытияОкна") Тогда РежимОткрытияОкна = Параметры.РежимОткрытияОкна КонецЕсли; diff --git a/SSL/src/Catalogs/СтраныМира/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/СтраныМира/Forms/ФормаСписка/Module.bsl index dc7460355..821d2fb3f 100644 --- a/SSL/src/Catalogs/СтраныМира/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/СтраныМира/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - // Инициализируем внутренние флаги. МожноДобавлятьВСправочник = УправлениеКонтактнойИнформациейСлужебный.ЕстьПравоДобавления(); @@ -41,6 +37,7 @@ // Кнопки классификатора скрываем. Элементы.СписокВыбратьИзКлассификатора.Видимость = Ложь; Элементы.СписокКлассификатор.Видимость = Ложь; + Если МожноДобавлятьВСправочник Тогда Элементы.СписокСоздать.ТолькоВоВсехДействиях = Ложь; Элементы.СписокСоздать.КнопкаПоУмолчанию = Не РежимВыбора; @@ -65,7 +62,9 @@ КонецЕсли; Иначе - Если Не МожноДобавлятьВСправочник Тогда + Если МожноДобавлятьВСправочник Тогда + // Показываем справочник и кнопку выбора из классификатора (установки по умолчанию). + Иначе // Кнопки классификатора скрываем. Элементы.СписокВыбратьИзКлассификатора.Видимость = Ложь; Элементы.СписокКлассификатор.Видимость = Ложь; @@ -121,9 +120,11 @@ #КонецОбласти #Область ОбработчикиКомандФормы +// &НаКлиенте Процедура ОткрытьКлассификатор(Команда) + // Открываем на просмотр ПараметрыОткрытия = Новый Структура; ПараметрыОткрытия.Вставить("ТекущаяСтрока", Элементы.Список.ТекущаяСтрока); @@ -215,6 +216,7 @@ МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами"); Запрос.УстановитьПараметр("Классификатор", МодульРаботаСАдресами.ТаблицаКлассификатора()); ЭлементОтбора.ПравоеЗначение = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Catalogs/СтраныМира/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/СтраныМира/Forms/ФормаЭлемента/Module.bsl index a6ee6d45a..8030a54d6 100644 --- a/SSL/src/Catalogs/СтраныМира/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/СтраныМира/Forms/ФормаЭлемента/Module.bsl @@ -11,9 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Если Объект.Предопределенный Тогда Элементы.ГруппаНаименование.ТолькоПросмотр = Истина; diff --git a/SSL/src/Catalogs/СтраныМира/Help/ru.html b/SSL/src/Catalogs/СтраныМира/Help/ru.html index 87249ce9f..6ce85c2d1 100644 --- a/SSL/src/Catalogs/СтраныМира/Help/ru.html +++ b/SSL/src/Catalogs/СтраныМира/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                    Открывается по команде Страны мира раздела Справочники. В списке можно хранить только несколько необходимых для работы стран.

                    Может быть заполнен как вручную, так и по данным общероссийского классификатора стран мира (ОКСМ). Классификатор стран мира открывается по соответствующей команде меню Еще.

                    diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/НастройкаРасписанияОбменовДанными/Module.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/НастройкаРасписанияОбменовДанными/Module.bsl index ef98ad5c5..acc658659 100644 --- a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/НастройкаРасписанияОбменовДанными/Module.bsl +++ b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/НастройкаРасписанияОбменовДанными/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Список.Параметры.Элементы[0].Значение = Параметры.УзелИнформационнойБазы; Список.Параметры.Элементы[0].Использование = Истина; diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Help/ru.html index f67a9866a..1b25c95f5 100644 --- a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

                    Основное назначение сценария - это выполнение синхронизации данных автоматически по заданному расписанию. Сценарий необходим для задания расписания и порядка отправки и получения данных.

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

                    Настройка сценария синхронизации

                    diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Module.bsl index 3c8057048..f0e08a8bc 100644 --- a/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/СценарииОбменовДанными/Forms/ФормаЭлемента/Module.bsl @@ -21,10 +21,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЭтоНовый = (Объект.Ссылка.Пустая()); УзелИнформационнойБазы = Неопределено; diff --git a/SSL/src/Catalogs/СценарииОбменовДанными/Help/ru.html b/SSL/src/Catalogs/СценарииОбменовДанными/Help/ru.html index de0d84de4..45e7b4a16 100644 --- a/SSL/src/Catalogs/СценарииОбменовДанными/Help/ru.html +++ b/SSL/src/Catalogs/СценарииОбменовДанными/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                    Открыть список можно из раздела Синхронизация данных по соответствующей команде. Также можно открыть список сценариев из списка Синхронизация данных по соответствующей команде меню Еще.

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

                    diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl index a5219f671..51a8004f3 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/УдалениеЛишнихФайловИзТома/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Параметры.Свойство("ТомХраненияФайлов", ТомХраненияФайлов); ЗаполнитьТаблицуЛишнихФайлов(); diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Help/ru.html index 628e2bf3d..a504ce4af 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                    diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Module.bsl index 2e47e4f95..f5e48cfbb 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Forms/ФормаЭлемента/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Объект.Ссылка.Пустая() Тогда Объект.ПорядокЗаполнения = НайтиМаксимальныйПорядок() + 1; Иначе diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Help/ru.html b/SSL/src/Catalogs/ТомаХраненияФайлов/Help/ru.html index b7faa70a4..ce4980bf4 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Help/ru.html +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                    diff --git a/SSL/src/Catalogs/ТомаХраненияФайлов/Templates/МакетОтчета/Template.mxlx b/SSL/src/Catalogs/ТомаХраненияФайлов/Templates/МакетОтчета/Template.mxlx index 8b29e8627..ad70dff88 100644 --- a/SSL/src/Catalogs/ТомаХраненияФайлов/Templates/МакетОтчета/Template.mxlx +++ b/SSL/src/Catalogs/ТомаХраненияФайлов/Templates/МакетОтчета/Template.mxlx @@ -34,6 +34,12 @@ + + 0 + + true + + 1 diff --git a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Form.form index 044aad25b..10953e6c8 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Form.form @@ -751,7 +751,7 @@ ru Пароль изменен - 8 + 2 Boolean diff --git a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Module.bsl index 00dd636c3..2d973b864 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Module.bsl @@ -49,14 +49,14 @@ ПараметрыУчетнойЗаписи = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Объект.Ссылка, "Логин, Пароль"); УстановитьПривилегированныйРежим(Ложь); - Логин = ПараметрыУчетнойЗаписи.Логин; + Логин = ПараметрыУчетнойЗаписи.Логин; Пароль = ?(ЗначениеЗаполнено(ПараметрыУчетнойЗаписи.Пароль), ЭтотОбъект.УникальныйИдентификатор, ""); КонецЕсли; Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда Элементы.Наименование.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх; - КонецЕсли; + КонецЕсли КонецПроцедуры diff --git a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Help/ru.html b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Help/ru.html index ed16621e8..4e5665b11 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Help/ru.html +++ b/SSL/src/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Help/ru.html @@ -1,14 +1,20 @@ - +

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

                    Ввод новой учетной записи

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

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

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

                    См. также:

                    • diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Form.form index 3fbc06a81..9f3257a3c 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Form.form +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Form.form @@ -3014,23 +3014,6 @@ vasyapupkin@example.com завершена. true - - ИспользоватьБезопасныйВходНаСерверИсходящейПочты - - <key>ru</key> - <value>Использовать безопасный вход на сервер исходящей почты</value> - - 7 - - Boolean - - - true - - - true - - СерверИсходящейПочты @@ -3129,23 +3112,6 @@ vasyapupkin@example.com завершена.</value> <common>true</common> </edit> </attributes> - <attributes> - <name>ИспользоватьБезопасныйВходНаСерверВходящейПочты</name> - <title> - <key>ru</key> - <value>Использовать безопасный вход на сервер входящей почты</value> - - 13 - - Boolean - - - true - - - true - - СерверВходящейПочты diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl index c83abda65..a12f80d7f 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПомощникНастройкиУчетнойЗаписи/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; Элементы.КнопкаПерейтиКНастройкам.Видимость = Ложь; @@ -73,11 +70,11 @@ СсылкаНовойУчетнойЗаписи = Справочники.УчетныеЗаписиЭлектроннойПочты.ПолучитьСсылку(); Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда - МодульКонтактнаяИнформацияПользователя = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); - КонтактнаяИнформацияПользователя = МодульКонтактнаяИнформацияПользователя.ЗначенияКонтактнойИнформацииОбъекта( - Пользователи.ТекущийПользователь(), Перечисления["ТипыКонтактнойИнформации"].АдресЭлектроннойПочты); - Для Каждого Контакт Из КонтактнаяИнформацияПользователя Цикл - Адрес = Контакт.Значение; + МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); + КонтактнаяИнформацияОбъекта = МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта( + Пользователи.ТекущийПользователь(), Перечисления["ТипыКонтактнойИнформации"].АдресЭлектроннойПочты, , Ложь); + Для Каждого Контакт Из КонтактнаяИнформацияОбъекта Цикл + Адрес = Контакт.Представление; Если Справочники.УчетныеЗаписиЭлектроннойПочты.НайтиПоРеквизиту("АдресЭлектроннойПочты", Адрес).Пустая() Тогда АдресЭлектроннойПочты = Адрес; ТекущийЭлемент = Элементы.Пароль; @@ -511,12 +508,10 @@ Настройки.Вставить("СерверВходящейПочты", "imap." + ИмяСервераВУчетнойЗаписи); Настройки.Вставить("ПортСервераВходящейПочты", 993); Настройки.Вставить("ИспользоватьЗащищенноеСоединениеДляВходящейПочты", Истина); - Настройки.Вставить("ИспользоватьБезопасныйВходНаСерверВходящейПочты", Ложь); Настройки.Вставить("СерверИсходящейПочты", "smtp." + ИмяСервераВУчетнойЗаписи); Настройки.Вставить("ПортСервераИсходящейПочты", 587); Настройки.Вставить("ИспользоватьЗащищенноеСоединениеДляИсходящейПочты", Ложь); - Настройки.Вставить("ИспользоватьБезопасныйВходНаСерверИсходящейПочты", Ложь); Настройки.Вставить("ДлительностьОжиданияСервера", 30); Настройки.Вставить("ОставлятьКопииПисемНаСервере", Истина); @@ -699,14 +694,12 @@ Профиль.ПарольIMAP = ПарольДляПолученияПисем; Профиль.ПользовательIMAP = ИмяПользователяДляПолученияПисем; Профиль.ПортIMAP = ПортСервераВходящейПочты; - Профиль.ТолькоЗащищеннаяАутентификацияIMAP = ИспользоватьБезопасныйВходНаСерверВходящейПочты; Иначе Профиль.АдресСервераPOP3 = СерверВходящейПочты; Профиль.ИспользоватьSSLPOP3 = ИспользоватьЗащищенноеСоединениеДляВходящейПочты; Профиль.Пароль = ПарольДляПолученияПисем; Профиль.Пользователь = ИмяПользователяДляПолученияПисем; Профиль.ПортPOP3 = ПортСервераВходящейПочты; - Профиль.ТолькоЗащищеннаяАутентификацияPOP3 = ИспользоватьБезопасныйВходНаСерверВходящейПочты; КонецЕсли; КонецЕсли; @@ -717,7 +710,6 @@ Профиль.ПарольSMTP = ПарольДляОтправкиПисем; Профиль.ПользовательSMTP = ИмяПользователяДляОтправкиПисем; Профиль.ПортSMTP = ПортСервераИсходящейПочты; - Профиль.ТолькоЗащищеннаяАутентификацияSMTP = ИспользоватьБезопасныйВходНаСерверИсходящейПочты; КонецЕсли; Профиль.Таймаут = ДлительностьОжиданияСервера; diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаДоступаКУчетнойЗаписи/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаДоступаКУчетнойЗаписи/Module.bsl index 64408e601..c5248ea04 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаДоступаКУчетнойЗаписи/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ПроверкаДоступаКУчетнойЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Верх; КонецЕсли; diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Form.form index d4e6559e0..d3253189f 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Form.form @@ -559,12 +559,9 @@ СправочникУчетныеЗаписиЭлектроннойПочты.Ссылка КАК Ссылка, СправочникУчетныеЗаписиЭлектроннойПочты.ПометкаУдаления КАК ПометкаУдаления, СправочникУчетныеЗаписиЭлектроннойПочты.Наименование КАК Наименование, - СправочникУчетныеЗаписиЭлектроннойПочты.SMTPАутентификация КАК SMTPАутентификация, СправочникУчетныеЗаписиЭлектроннойПочты.АдресЭлектроннойПочты КАК АдресЭлектроннойПочты, СправочникУчетныеЗаписиЭлектроннойПочты.ВремяОжидания КАК ВремяОжидания, СправочникУчетныеЗаписиЭлектроннойПочты.ИмяПользователя КАК ИмяПользователя, - СправочникУчетныеЗаписиЭлектроннойПочты.ИспользоватьБезопасныйВходНаСерверВходящейПочты КАК ИспользоватьБезопасныйВходНаСерверВходящейПочты, - СправочникУчетныеЗаписиЭлектроннойПочты.ИспользоватьБезопасныйВходНаСерверИсходящейПочты КАК ИспользоватьБезопасныйВходНаСерверИсходящейПочты, СправочникУчетныеЗаписиЭлектроннойПочты.ИспользоватьДляОтправки КАК ИспользоватьДляОтправки, СправочникУчетныеЗаписиЭлектроннойПочты.ИспользоватьДляПолучения КАК ИспользоватьДляПолучения, СправочникУчетныеЗаписиЭлектроннойПочты.ИспользоватьЗащищенноеСоединениеДляВходящейПочты КАК ИспользоватьЗащищенноеСоединениеДляВходящейПочты, @@ -578,13 +575,7 @@ СправочникУчетныеЗаписиЭлектроннойПочты.ПротоколВходящейПочты КАК ПротоколВходящейПочты, СправочникУчетныеЗаписиЭлектроннойПочты.СерверВходящейПочты КАК СерверВходящейПочты, СправочникУчетныеЗаписиЭлектроннойПочты.СерверИсходящейПочты КАК СерверИсходящейПочты, - СправочникУчетныеЗаписиЭлектроннойПочты.СпособPOP3Аутентификации КАК СпособPOP3Аутентификации, - СправочникУчетныеЗаписиЭлектроннойПочты.СпособSMTPАутентификации КАК СпособSMTPАутентификации, СправочникУчетныеЗаписиЭлектроннойПочты.ТребуетсяВходНаСерверПередОтправкой КАК ТребуетсяВходНаСерверПередОтправкой, - СправочникУчетныеЗаписиЭлектроннойПочты.УдалитьВПредставлениеВключатьИмяПользователя КАК УдалитьВПредставлениеВключатьИмяПользователя, - СправочникУчетныеЗаписиЭлектроннойПочты.УдалитьОтветственныйЗаОбработкуПисем КАК УдалитьОтветственныйЗаОбработкуПисем, - СправочникУчетныеЗаписиЭлектроннойПочты.УдалитьПароль КАК УдалитьПароль, - СправочникУчетныеЗаписиЭлектроннойПочты.УдалитьПарольSMTP КАК УдалитьПарольSMTP, СправочникУчетныеЗаписиЭлектроннойПочты.ОтправлятьСкрытыеКопииПисемНаЭтотАдрес КАК ОтправлятьСкрытыеКопииПисемНаЭтотАдрес, СправочникУчетныеЗаписиЭлектроннойПочты.ВладелецУчетнойЗаписи КАК ВладелецУчетнойЗаписи, СправочникУчетныеЗаписиЭлектроннойПочты.Предопределенный КАК Предопределенный, diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl index eed4eb624..49a9cc9f5 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаСписка/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Элементы.ПоказыватьПерсональныеУчетныеЗаписиПользователей.Видимость = Пользователи.ЭтоПолноправныйПользователь(); ПереключитьВидимостьПерсональныхУчетныхЗаписей(Список, diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form index a729e6108..4fb91adfa 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Form.form @@ -805,7 +805,7 @@ </userVisible> <title> <key>ru</key> - <value>Группа период хранения сообщений на сервере</value> + <value>Период хранения сообщений на сервере</value> ГруппаПериодХраненияСообщенийНаСервереРасширеннаяПодсказка diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Help/ru.html index 4ce907e76..4b7c2daa4 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                      diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl index e65243d4b..a97f94a65 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Forms/ФормаЭлемента/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.БлокироватьВладельца Тогда РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца; КонецЕсли; diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Help/ru.html b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Help/ru.html index e2f6e1362..a6c91a0f0 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Help/ru.html +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                      diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl index 25a088df8..4eb69ed4a 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/ManagerModule.bsl @@ -460,12 +460,10 @@ Настройки.Вставить("СерверВходящейПочты", "pop." + ИмяСервераВУчетнойЗаписи); Настройки.Вставить("ПортСервераВходящейПочты", 995); Настройки.Вставить("ИспользоватьЗащищенноеСоединениеДляВходящейПочты", Истина); - Настройки.Вставить("ИспользоватьБезопасныйВходНаСерверВходящейПочты", Ложь); Настройки.Вставить("СерверИсходящейПочты", "smtp." + ИмяСервераВУчетнойЗаписи); Настройки.Вставить("ПортСервераИсходящейПочты", 465); Настройки.Вставить("ИспользоватьЗащищенноеСоединениеДляИсходящейПочты", Истина); - Настройки.Вставить("ИспользоватьБезопасныйВходНаСерверИсходящейПочты", Ложь); Настройки.Вставить("ТребуетсяВходНаСерверПередОтправкой", Ложь); Настройки.Вставить("ДлительностьОжиданияСервера", 30); @@ -569,14 +567,12 @@ Профиль.ПарольIMAP = НастройкиПрофиля.ПарольДляПолученияПисем; Профиль.ПользовательIMAP = НастройкиПрофиля.ИмяПользователяДляПолученияПисем; Профиль.ПортIMAP = НастройкиПрофиля.ПортСервераВходящейПочты; - Профиль.ТолькоЗащищеннаяАутентификацияIMAP = НастройкиПрофиля.ИспользоватьБезопасныйВходНаСерверВходящейПочты; Иначе Профиль.АдресСервераPOP3 = НастройкиПрофиля.СерверВходящейПочты; Профиль.ИспользоватьSSLPOP3 = НастройкиПрофиля.ИспользоватьЗащищенноеСоединениеДляВходящейПочты; Профиль.Пароль = НастройкиПрофиля.ПарольДляПолученияПисем; Профиль.Пользователь = НастройкиПрофиля.ИмяПользователяДляПолученияПисем; Профиль.ПортPOP3 = НастройкиПрофиля.ПортСервераВходящейПочты; - Профиль.ТолькоЗащищеннаяАутентификацияPOP3 = НастройкиПрофиля.ИспользоватьБезопасныйВходНаСерверВходящейПочты; КонецЕсли; КонецЕсли; @@ -587,7 +583,6 @@ Профиль.ПарольSMTP = НастройкиПрофиля.ПарольДляОтправкиПисем; Профиль.ПользовательSMTP = НастройкиПрофиля.ИмяПользователяДляОтправкиПисем; Профиль.ПортSMTP = НастройкиПрофиля.ПортСервераИсходящейПочты; - Профиль.ТолькоЗащищеннаяАутентификацияSMTP = НастройкиПрофиля.ИспользоватьБезопасныйВходНаСерверИсходящейПочты; КонецЕсли; Профиль.Таймаут = НастройкиПрофиля.ДлительностьОжиданияСервера; @@ -829,7 +824,7 @@ Функция РеквизитыТребующиеВводаПароляДляИзменения() Экспорт - Возврат "ИспользоватьДляОтправки,ИспользоватьДляПолучения,СерверВходящейПочты,СерверИсходящейПочты,ВладелецУчетнойЗаписи,ИспользоватьЗащищенноеСоединениеДляВходящейПочты,ИспользоватьЗащищенноеСоединениеДляИсходящейПочты,ИспользоватьБезопасныйВходНаСерверВходящейПочты,ИспользоватьБезопасныйВходНаСерверИсходящейПочты,Пользователь,ПользовательSMTP"; + Возврат "ИспользоватьДляОтправки,ИспользоватьДляПолучения,СерверВходящейПочты,СерверИсходящейПочты,ВладелецУчетнойЗаписи,ИспользоватьЗащищенноеСоединениеДляВходящейПочты,ИспользоватьЗащищенноеСоединениеДляИсходящейПочты,Пользователь,ПользовательSMTP"; КонецФункции diff --git a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/УчетныеЗаписиЭлектроннойПочты.mdo b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/УчетныеЗаписиЭлектроннойПочты.mdo index a21cb1f25..2f8beb119 100644 --- a/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/УчетныеЗаписиЭлектроннойПочты.mdo +++ b/SSL/src/Catalogs/УчетныеЗаписиЭлектроннойПочты/УчетныеЗаписиЭлектроннойПочты.mdo @@ -127,29 +127,6 @@ Catalog.УчетныеЗаписиЭлектроннойПочты.Form.ФормаЭлемента Catalog.УчетныеЗаписиЭлектроннойПочты.Form.ФормаСписка Catalog.УчетныеЗаписиЭлектроннойПочты.Form.ФормаВыбора - - SMTPАутентификация - - ru - SMTP аутентификация - - - EnumRef.ВариантыSMTPАутентификации - - - ru - Применяемые параметры SMTP аутентификации - - - - Use - DontUse - - Enum.ВариантыSMTPАутентификации.EmptyRef - - Use - Use - АдресЭлектроннойПочты @@ -223,44 +200,6 @@ Use Use - - ИспользоватьБезопасныйВходНаСерверВходящейПочты - - ru - Использовать безопасный вход на сервер входящей почты - - - Boolean - - - ru - Использовать шифрование учетных данных при аутентификации на сервере - - - - - Use - Use - - - ИспользоватьБезопасныйВходНаСерверИсходящейПочты - - ru - Использовать безопасный вход на сервер исходящей почты - - - Boolean - - - ru - Использовать шифрование учетных данных при аутентификации на сервере - - - - - Use - Use - ИспользоватьДляОтправки @@ -544,52 +483,6 @@ Use Use - - СпособPOP3Аутентификации - - ru - Способ POP3 аутентификации - - - EnumRef.СпособыPOP3Аутентификации - - - ru - Способ аутентификации на POP3 сервере - - - - Use - DontUse - - Enum.СпособыPOP3Аутентификации.EmptyRef - - Use - Use - - - СпособSMTPАутентификации - - ru - Способ SMTP аутентификации - - - EnumRef.СпособыSMTPАутентификации - - - ru - Способ аутентификации на сервере SMTP - - - - Use - DontUse - - Enum.СпособыSMTPАутентификации.EmptyRef - - Use - Use - ТребуетсяВходНаСерверПередОтправкой @@ -609,90 +502,6 @@ Use Use - - УдалитьВПредставлениеВключатьИмяПользователя - - ru - (не используется) В представление включать имя пользователя - - - Boolean - - - ru - В представление учетной записи включать имя пользователя - - - - - Use - Use - - - УдалитьОтветственныйЗаОбработкуПисем - - ru - (не используется) Ответственный за обработку писем - - - CatalogRef.Пользователи - - - ru - Ответственный за обработку писем - - - - - Catalog.Пользователи.EmptyRef - - Use - Use - - - УдалитьПароль - - ru - (не используется) Пароль - - - String - - 100 - - - true - - ru - Пароль для доступа к почте - - - - - Use - - - УдалитьПарольSMTP - - ru - (не используется) Пароль SMTP - - - String - - 100 - - - true - - ru - Имя пользователя для дополнительной аутентификации на SMTP сервере - - - - - Use - ОтправлятьСкрытыеКопииПисемНаЭтотАдрес diff --git a/SSL/src/Catalogs/Файлы/Forms/Файлы/Help/ru.html b/SSL/src/Catalogs/Файлы/Forms/Файлы/Help/ru.html index ade145f26..e1fb534d9 100644 --- a/SSL/src/Catalogs/Файлы/Forms/Файлы/Help/ru.html +++ b/SSL/src/Catalogs/Файлы/Forms/Файлы/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                      Работа со списком организована аналогично работе в Проводнике Windows.

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

                      diff --git a/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl index 627e44b4b..d7ea65dec 100644 --- a/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl +++ b/SSL/src/Catalogs/Файлы/Forms/Файлы/Module.bsl @@ -18,10 +18,6 @@ Элементы.ПоказыватьСлужебныеФайлы.Видимость = Пользователи.ЭтоПолноправныйПользователь(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Свойство("Папка") И Параметры.Папка <> Неопределено Тогда ПапкаПриОткрытии = Параметры.Папка; Иначе @@ -161,8 +157,7 @@ И ТипЗнч(Источник) <> Тип("Массив") Тогда Элементы.Список.Обновить(); - Если ТипЗнч(Параметр) = Тип("Структура") - И Параметр.Свойство("Файл") Тогда + Если ТипЗнч(Параметр) = Тип("Структура") И Параметр.Свойство("Файл") Тогда Элементы.Список.ТекущаяСтрока = Параметр.Файл; ИначеЕсли Источник <> Неопределено Тогда Элементы.Список.ТекущаяСтрока = Источник; diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаВыбора/Help/ru.html b/SSL/src/Catalogs/Файлы/Forms/ФормаВыбора/Help/ru.html index f841d9f3f..72615429f 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаВыбора/Help/ru.html +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаВыбора/Help/ru.html @@ -1,4 +1,4 @@ - +

                      Предназначен для выбора шаблона файла. Выбор осуществляется из папки Шаблоны файлов.

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

                      Открывается из списков Файлы или Присоединенные файлы по команде Создать - По шаблону.

                      diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/ФормаВыбора/Module.bsl index 7d9223787..ec236c65b 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаВыбора/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если ЗначениеЗаполнено(Параметры.ВладелецФайла) Тогда Список.Параметры.УстановитьЗначениеПараметра( "Владелец", Параметры.ВладелецФайла); diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Help/ru.html b/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Help/ru.html index 638fcdacf..9ab3ab5aa 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Help/ru.html +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Help/ru.html @@ -1,4 +1,4 @@ - +

                      Предназначена для выбора способа создания нового файла.

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

                      Способы создания нового файла

                      diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Module.bsl index 0bb6114c2..9acea8f74 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Module.bsl +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаНового/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - РежимСоздания = Параметры.РежимСоздания; Если Параметры.ДоступнаКомандаСканировать Тогда diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаПеретаскивания/Help/ru.html b/SSL/src/Catalogs/Файлы/Forms/ФормаПеретаскивания/Help/ru.html index b28182b2e..6467611dd 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаПеретаскивания/Help/ru.html +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаПеретаскивания/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                      Загрузка файлов и папок с помощью перетаскивания мышью

                      • diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаПеретаскивания/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/ФормаПеретаскивания/Module.bsl index ae8b2681d..6b8f646fe 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаПеретаскивания/Module.bsl +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаПеретаскивания/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ПапкаДляДобавления = Параметры.ПапкаДляДобавления; Для Каждого путьФайла Из Параметры.МассивИменФайлов Цикл diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаПодбора/Help/ru.html b/SSL/src/Catalogs/Файлы/Forms/ФормаПодбора/Help/ru.html index b341890f9..c2fb39b23 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаПодбора/Help/ru.html +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаПодбора/Help/ru.html @@ -1,4 +1,4 @@ - +

                        Предназначена для подбора файлов.

                        Список состоит из двух частей: слева список папок , справа - список файлов в выбранной папке. Список состоит из колонок:

                        • diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаПодбора/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/ФормаПодбора/Module.bsl index 86d5b38fc..1aa786967 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаПодбора/Module.bsl +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаПодбора/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если ЗначениеЗаполнено(Параметры.ВладелецФайла) Тогда Список.Параметры.УстановитьЗначениеПараметра( "Владелец", Параметры.ВладелецФайла); diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Help/ru.html index ae9ccb47a..c91de344c 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                          Открывается из списка присоединенных файлов с помощью команды Еще - Открыть карточку (клавиши F2).

                          Сведения о файле

                          diff --git a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl index 93fcd40f2..992447f77 100644 --- a/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/Файлы/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - РаботаСФайламиСлужебный.ФормаЭлементаПриСозданииНаСервере( ЭтотОбъект, Отказ, СтандартнаяОбработка, Параметры, ТолькоПросмотр); diff --git a/SSL/src/Catalogs/Файлы/Help/ru.html b/SSL/src/Catalogs/Файлы/Help/ru.html index c68720e49..c932eee4f 100644 --- a/SSL/src/Catalogs/Файлы/Help/ru.html +++ b/SSL/src/Catalogs/Файлы/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                          @@ -34,31 +34,44 @@

                          Для добавления нового файла в программу:

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

                        См. также:

                        \ No newline at end of file +
                      • +
                      • Загрузка файлов; +
                      • +
                      • Загрузка папок; +
                      • +
                      • Сохранение папки; +
                      • +
                      • Папки; +
                      • +
                      • Работа с формами.
                      \ No newline at end of file diff --git a/SSL/src/Catalogs/Файлы/Templates/МакетОтчета/Template.mxlx b/SSL/src/Catalogs/Файлы/Templates/МакетОтчета/Template.mxlx index 65d414964..e69fdab4b 100644 --- a/SSL/src/Catalogs/Файлы/Templates/МакетОтчета/Template.mxlx +++ b/SSL/src/Catalogs/Файлы/Templates/МакетОтчета/Template.mxlx @@ -34,6 +34,12 @@ + + 0 + + true + + 1 diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаВыбора/Help/ru.html b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаВыбора/Help/ru.html index d9ade9992..72ae8f7a5 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаВыбора/Help/ru.html +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаВыбора/Help/ru.html @@ -1,4 +1,4 @@ - +

                      Предназначен для выбора шаблонов анкеты.

                      Открывается при выборе шаблона анкет из документа Назначение опросов.

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

                      diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераКомплексныхВопросов/Help/ru.html b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераКомплексныхВопросов/Help/ru.html index a9fc25a0b..e5fd3765f 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераКомплексныхВопросов/Help/ru.html +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераКомплексныхВопросов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                      Открывается по команде Добавить - комплексный вопрос из шаблона анкеты.

                      • diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераКомплексныхВопросов/Module.bsl b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераКомплексныхВопросов/Module.bsl index 8435bfcec..2ccc8153d 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераКомплексныхВопросов/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераКомплексныхВопросов/Module.bsl @@ -17,10 +17,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - // Примем параметры формы владельца. ОбработатьПараметрыФормыВладельца(); diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераТабличныхВопросов/Help/ru.html b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераТабличныхВопросов/Help/ru.html index a1db194bf..a60bcc899 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераТабличныхВопросов/Help/ru.html +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераТабличныхВопросов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                        Открывается по команде Добавить - табличный вопрос из шаблона анкеты.

                        Выбор типа табличного вопроса

                        diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераТабличныхВопросов/Module.bsl b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераТабличныхВопросов/Module.bsl index 328f1401e..12af11c10 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераТабличныхВопросов/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаМастераТабличныхВопросов/Module.bsl @@ -25,10 +25,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - // Установим список выбора для типа табличного вопроса. Для каждого ЭлементМетаданных Из Метаданные.Перечисления.ТипыТабличныхВопросов.ЗначенияПеречисления Цикл Элементы.ТипТабличногоВопроса.СписокВыбора.Добавить(Перечисления.ТипыТабличныхВопросов[ЭлементМетаданных.Имя],ЭлементМетаданных.Синоним); diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Help/ru.html b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Help/ru.html index f3232f410..9dccf9b86 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Help/ru.html +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Help/ru.html @@ -1,4 +1,4 @@ - +

                        Предназначена для ввода простого вопроса в шаблон анкеты.

                        Открывается по команде Добавить - простой вопрос из шаблона анкеты.

                        Ввод простого вопроса в шаблон анкеты

                        diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Module.bsl b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Module.bsl index 49ed40511..00f452061 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаПростыхВопросов/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры); Если ТипСтрокиДерева = "Раздел" Тогда diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Help/ru.html index 36b779710..adf01e173 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

                        Предназначена для подготовки шаблона анкеты.

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

                        Укажите Наименование шаблона. Поле Наименование отображается в списке шаблонов.

                        diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Module.bsl index d8cf5691e..8c303bb83 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныАнкет/Forms/ФормаЭлемента/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Анкетирование.УстановитьКорневойЭлементДереваАнкеты(ДеревоАнкеты); Анкетирование.ЗаполнитьДеревоШаблонаАнкеты(ЭтотОбъект,"ДеревоАнкеты",Объект.Ссылка); АнкетированиеКлиентСервер.СформироватьНумерациюДерева(ДеревоАнкеты); diff --git a/SSL/src/Catalogs/ШаблоныАнкет/Help/ru.html b/SSL/src/Catalogs/ШаблоныАнкет/Help/ru.html index e1a784f8d..73e9a011a 100644 --- a/SSL/src/Catalogs/ШаблоныАнкет/Help/ru.html +++ b/SSL/src/Catalogs/ШаблоныАнкет/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                        Открывается по команде Шаблоны анкет раздела Анкетирование.

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

                        diff --git a/SSL/src/Catalogs/ШаблоныЗаданийОчереди/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ШаблоныЗаданийОчереди/Forms/ФормаЭлемента/Form.form deleted file mode 100644 index 26252ae8f..000000000 --- a/SSL/src/Catalogs/ШаблоныЗаданийОчереди/Forms/ФормаЭлемента/Form.form +++ /dev/null @@ -1,475 +0,0 @@ - - - - Идентификатор - 15 - true - true - - true - - - Идентификатор - - - ИдентификаторExtendedTooltip - 19 - Label - true - true - - Left - - - - ИдентификаторКонтекстноеМеню - 16 - true - - InputField - true - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - Наименование - 1 - true - true - - true - - - Объект.Description - - - НаименованиеExtendedTooltip - 20 - Label - true - true - - Left - - - - НаименованиеКонтекстноеМеню - 2 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - Имя - 13 - true - true - - true - - - Объект.Имя - - - ИмяExtendedTooltip - 21 - Label - true - true - - Left - - - - ИмяКонтекстноеМеню - 14 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - Использование - 3 - true - true - - true - - - Объект.Использование - - - ИспользованиеExtendedTooltip - 22 - Label - true - true - - Left - - - - ИспользованиеКонтекстноеМеню - 4 - true - - CheckBoxField - Show - Auto - true - Left - true - - - - ИмяМетода - 5 - true - true - - true - - - Объект.ИмяМетода - - - ИмяМетодаExtendedTooltip - 23 - Label - true - true - - Left - - - - ИмяМетодаКонтекстноеМеню - 6 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - Ключ - 7 - true - true - - true - - - Объект.Ключ - - - КлючExtendedTooltip - 24 - Label - true - true - - Left - - - - КлючКонтекстноеМеню - 8 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - КоличествоПовторовПриАварийномЗавершении - 9 - true - true - - true - - - Объект.КоличествоПовторовПриАварийномЗавершении - - - КоличествоПовторовПриАварийномЗавершенииExtendedTooltip - 25 - Label - true - true - - Left - - - - КоличествоПовторовПриАварийномЗавершенииКонтекстноеМеню - 10 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - ИнтервалПовтораПриАварийномЗавершении - 11 - true - true - - true - - - Объект.ИнтервалПовтораПриАварийномЗавершении - - - ИнтервалПовтораПриАварийномЗавершенииExtendedTooltip - 26 - Label - true - true - - Left - - - - ИнтервалПовтораПриАварийномЗавершенииКонтекстноеМеню - 12 - true - - InputField - Show - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - - ФормаКоманднаяПанель - -1 - - ФормаРасписание - 17 - true - true - - true - - - ФормаРасписаниеExtendedTooltip - 18 - Label - true - true - - Left - - - Form.Command.ОткрытьРасписаниеЗадания - Normal - Auto - true - true - UserCmds - Auto - - Left - true - - - BeforeClose - ПередЗакрытием - - - OnCreateAtServer - ПриСозданииНаСервере - - LockOwner - true - true - true - Vertical - true - true - true - auto - true - - Объект - 1 - - CatalogObject.ШаблоныЗаданийОчереди - - - true - - - true - -
                        true
                        - true -
                        - - Идентификатор - - <key>ru</key> - <value>Идентификатор</value> - - 2 - - String - - 36 - - - - true - - - true - - - - Расписание - - <key>ru</key> - <value>Расписание</value> - - 3 - - - true - - - true - - - - ОткрытьРасписаниеЗадания - - <key>ru</key> - <value>Открыть расписание задания</value> - - 1 - - ru - Открыть расписание задания - - - true - - - StdPicture.SetTime - - - - ОткрытьРасписаниеЗадания - - - TextPicture - DontUse - Auto - - - - - - - - AfterWriteAtServer - ПослеЗаписиНаСервере - - - OnReadAtServer - ПриЧтенииНаСервере - - - BeforeWriteAtServer - ПередЗаписьюНаСервере - - -
                        diff --git a/SSL/src/Catalogs/ШаблоныЗаданийОчереди/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ШаблоныЗаданийОчереди/Forms/ФормаЭлемента/Module.bsl deleted file mode 100644 index a90b8d35e..000000000 --- a/SSL/src/Catalogs/ШаблоныЗаданийОчереди/Forms/ФормаЭлемента/Module.bsl +++ /dev/null @@ -1,90 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - Если Объект.Ссылка.Пустая() Тогда - Расписание = Новый РасписаниеРегламентногоЗадания; - КонецЕсли; - -КонецПроцедуры - -&НаСервере -Процедура ПриЧтенииНаСервере(ТекущийОбъект) - - Идентификатор = Объект.Ссылка.УникальныйИдентификатор(); - - Расписание = ТекущийОбъект.Расписание.Получить(); - -КонецПроцедуры - -&НаСервере -Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) - - ТекущийОбъект.Расписание = Новый ХранилищеЗначения(Расписание); - -КонецПроцедуры - -&НаСервере -Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) - - Идентификатор = Объект.Ссылка.УникальныйИдентификатор(); - -КонецПроцедуры - -&НаКлиенте -Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) - - Если Не ЗавершениеРаботы Тогда - РазблокироватьДанныеФормыДляРедактирования(); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиКомандФормы - -&НаКлиенте -Процедура ОткрытьРасписаниеЗадания(Команда) - - Диалог = Новый ДиалогРасписанияРегламентногоЗадания(Расписание); - Диалог.Показать(Новый ОписаниеОповещения("ОткрытьРасписаниеЗавершение", ЭтотОбъект)); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -&НаКлиенте -Процедура ОткрытьРасписаниеЗавершение(НовоеРасписание, ТекущиеДанные) Экспорт - - Если НовоеРасписание = Неопределено Тогда - Возврат; - КонецЕсли; - - Расписание = НовоеРасписание; - ЗаблокироватьДанныеФормыДляРедактирования(); - Модифицированность = Истина; - - ПоказатьОповещениеПользователя(НСтр("ru = 'Перепланирование'"), , НСтр("ru = 'Новое расписание будет учтено при - |следующем выполнении задания по - |шаблону или обновлении версии ИБ'")); - -КонецПроцедуры - - -#КонецОбласти \ No newline at end of file diff --git a/SSL/src/Catalogs/ШаблоныЗаданийОчереди/ШаблоныЗаданийОчереди.mdo b/SSL/src/Catalogs/ШаблоныЗаданийОчереди/ШаблоныЗаданийОчереди.mdo deleted file mode 100644 index d5412ab90..000000000 --- a/SSL/src/Catalogs/ШаблоныЗаданийОчереди/ШаблоныЗаданийОчереди.mdo +++ /dev/null @@ -1,273 +0,0 @@ - - - - - - - - - - ШаблоныЗаданийОчереди - - ru - Шаблоны заданий очереди - - true - Catalog.ШаблоныЗаданийОчереди.StandardAttribute.Description - DontUse - - Use - PredefinedDataName - - Use - - - - - Use - Predefined - - Use - - - - - Use - Ref - - Use - - - - - Use - DeletionMark - - Use - - - - - Use - IsFolder - - Use - - - - - Use - Owner - true - - ShowError - Use - - - - - Use - Parent - true - - Use - - - - - Use - Description - - ru - Наименование задания - - - ShowError - Use - - - - - Use - Code - - Use - - - - Use - Managed - - ru - Шаблон задания - - 2 - true - 150 - String - Variable - AsDescription - InDialog - BothWays - Catalog.ШаблоныЗаданийОчереди.Form.ФормаЭлемента - - Использование - - ru - Использование - - - Boolean - - - ru - Флаг использования задания - - - - - Use - Use - - - ИмяМетода - - ru - Имя метода - - - String - - 255 - - - - ru - Имя метода задания - - - - - Use - Use - - - Ключ - - ru - Ключ - - - String - - 128 - - - - ru - Ключ задания - - - - - Use - Use - - - КоличествоПовторовПриАварийномЗавершении - - ru - Количество повторов при аварийном завершении - - - Number - - 10 - true - - - - ru - Количество повторов при аварийном завершении задания - - - - - Use - Use - - - ИнтервалПовтораПриАварийномЗавершении - - ru - Интервал повтора при аварийном завершении - - - Number - - 10 - true - - - - ru - Интервал времени ( в секундах), по истечении которого задание будет запущено повторно, если предыдущий его запуск завершился аварийно - - - - - Use - Use - - - Расписание - - ru - Расписание - - - ValueStorage - - - ru - Расписание выполнения задания - - - - - Use - Use - - - Имя - - ru - Имя - - - String - - 255 - - - - ru - Имя задания - - - - - Index - Use - Use - - - ФормаЭлемента - - ru - Форма элемента - - PersonalComputer - MobileDevice - - diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ЗаполнитьПроизвольныеПараметры/Module.bsl b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ЗаполнитьПроизвольныеПараметры/Module.bsl index 0c78347a4..d8847aba8 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ЗаполнитьПроизвольныеПараметры/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ЗаполнитьПроизвольныеПараметры/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Предмет = Параметры.Предмет; ДобавитьЭлементыФормыПараметровШаблона(Параметры.Шаблон); diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ПроизвольныйПараметр/Module.bsl b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ПроизвольныйПараметр/Module.bsl index f3328f04a..a27482bdd 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ПроизвольныйПараметр/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ПроизвольныйПараметр/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если Параметры.ОписаниеТипа.Типы().Количество() > 0 Тогда НайденныйТипПараметра = Параметры.ОписаниеТипа.Типы()[0]; КонецЕсли; diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/СформироватьСообщение/Help/ru.html b/SSL/src/Catalogs/ШаблоныСообщений/Forms/СформироватьСообщение/Help/ru.html index 708970e9a..f81b393d4 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/СформироватьСообщение/Help/ru.html +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/СформироватьСообщение/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                        В левой части списка перечислены наименования шаблонов, в правой части показывается содержание шаблона.

                        Использование шаблона

                        diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаСписка/Module.bsl index 2f185d555..8940ce837 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаСписка/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ИнициализироватьОтборы(); Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Help/ru.html index 986eac8c7..f2d41d462 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

                        Предназначена для создания шаблона электронного письма или SMS-сообщения.

                        Шаблон электронного письма

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

                        diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl index 1ea2814fe..29b581aaa 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ШаблоныСообщений/Forms/ФормаЭлемента/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если Параметры.Свойство("ПараметрыСообщения") Тогда ПараметрыСообщения = Параметры.ПараметрыСообщения; КонецЕсли; @@ -1287,14 +1283,13 @@ ИмяФайла = ""; Расширение = ПолучитьРасширениеФайла(ВыбранныйФайл.Имя); - ПолучитьКаталогИИмяФайла(ВыбранныйФайл.Имя, "", ИмяФайла); - + НоваяСтрока = Вложения.Добавить(); НоваяСтрока.Статус = "ВнешнийНовый"; НоваяСтрока.Выбрано = 1; НоваяСтрока.Имя = ВыбранныйФайл.Хранение; - НоваяСтрока.Представление = ИмяФайла; - НоваяСтрока.Идентификатор = ИмяФайла; + НоваяСтрока.Представление = ВыбранныйФайл.Имя; + НоваяСтрока.Идентификатор = ВыбранныйФайл.Имя; НоваяСтрока.ИндексКартинки = ПолучитьИндексПиктограммыФайлаКлиент(Расширение); КонецЦикла; @@ -1303,33 +1298,6 @@ КонецПроцедуры -// Получает каталог и имя файла для переданного полного имени файла. -// -// Параметры: -// ПолноеИмяФайла - Строка - полное имя файла, из которого будут получены имя каталога и имя файла. -// ИмяКаталога - Строка - в данную переменную будет помещено полученное имя каталога. -// ИмяФайла - Строка - в данную переменную будет помещено полученное имя файла. -// -&НаКлиентеНаСервереБезКонтекста -Процедура ПолучитьКаталогИИмяФайла(Знач ПолноеИмяФайла, ИмяКаталога, ИмяФайла) - - ИмяФайла = ПолноеИмяФайла; - ИмяКаталога = ""; - - Пока Истина Цикл - - Позиция = Макс(СтрНайти(ИмяФайла, "\"), СтрНайти(ИмяФайла, "/")); - Если Позиция = 0 Тогда - Возврат; - КонецЕсли; - - ИмяКаталога = ИмяКаталога + Лев(ИмяФайла, Позиция); - ИмяФайла = Сред(ИмяФайла, Позиция+1); - - КонецЦикла; - -КонецПроцедуры - // Получает расширение для переданного имени файла. // // Параметры: diff --git a/SSL/src/Catalogs/ШаблоныСообщений/Help/ru.html b/SSL/src/Catalogs/ШаблоныСообщений/Help/ru.html index 3957aa5fb..e2ac47771 100644 --- a/SSL/src/Catalogs/ШаблоныСообщений/Help/ru.html +++ b/SSL/src/Catalogs/ШаблоныСообщений/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                        Открывается по ссылке Шаблоны сообщений в разделе Администрирование - Органайзер - Заметки, напоминания, анкетирование, шаблоны сообщений.

                        Отборы списка

                        diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаВыбора/Form.form b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаВыбора/Form.form index 5e7e4c511..b37c4133e 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаВыбора/Form.form +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаВыбора/Form.form @@ -266,10 +266,6 @@ Left true - - OnCreateAtServer - ПриСозданииНаСервере - LockOwner true true diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаВыбора/Help/ru.html b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаВыбора/Help/ru.html index 34b902805..d7e58baa6 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаВыбора/Help/ru.html +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаВыбора/Help/ru.html @@ -1,4 +1,4 @@ - +

                        Предназначен для выбора вопросов.

                        Открывается при выборе вопроса по команде Добавить - простой вопрос в шаблоне анкеты или в Помощнике создания табличных вопросов.

                        Одним из важных этапов подготовки анкет является составление вопросов.

                        diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Help/ru.html index c4420ea7e..700db44ac 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

                        Предназначена для ввода вопроса.

                        Одним из важных этапов подготовки анкет является составление вопросов.

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

                        diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Module.bsl index ba5bade3a..d1703fed6 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаЭлемента/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект); // Установим отбор по владельцу на динамическом списке справочника "Варианты ответов анкет". @@ -195,7 +191,7 @@ КонецПроцедуры &НаСервере -Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) +Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт Если СтрНачинаетсяС(Контекст.ИмяКомандыВФорме, "ВариантыОтветовАнкет") Тогда ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.ТаблицаВариантыОтветов, Результат); Иначе diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Help/ru.html b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Help/ru.html index 5020495a7..8e9f0c84a 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Help/ru.html +++ b/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Help/ru.html @@ -1,4 +1,4 @@ - +

                        Подготовка вопросов для анкетирования.

                        Открывается по команде Вопросы для анкетирования в разделе Анкетирование.

                        Одним из важных этапов подготовки анкет является составление вопросов.

                        diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ВыборРеквизита/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ВыборРеквизита/Module.bsl index 97ac8d920..02cbaab1a 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ВыборРеквизита/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ВыборРеквизита/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; ТаблицаРеквизитов = ПолучитьИзВременногоХранилища(Параметры.РеквизитыОбъекта); ЗначениеВРеквизитФормы(ТаблицаРеквизитов, "РеквизитыОбъекта"); diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ЗависимостьРеквизитов/Help/ru.html b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ЗависимостьРеквизитов/Help/ru.html index d33799873..962a602d1 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ЗависимостьРеквизитов/Help/ru.html +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ЗависимостьРеквизитов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                        Для общих дополнительных реквизитов данная настройка недоступна.

                        Для ввода новых условий нажмите кнопку Добавить условие.

                        diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ЗависимостьРеквизитов/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ЗависимостьРеквизитов/Module.bsl index b89618edc..552c952a5 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ЗависимостьРеквизитов/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ЗависимостьРеквизитов/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - УстановитьУсловноеОформление(); НастраиваемоеСвойство = Параметры.НастраиваемоеСвойство; diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ИзменениеНастройкиСвойства/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ИзменениеНастройкиСвойства/Module.bsl index 8618b4c11..c67b11edb 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ИзменениеНастройкиСвойства/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ИзменениеНастройкиСвойства/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.ЭтоДополнительноеСведение Тогда Элементы.ТипыСвойства.ТекущаяСтраница = Элементы.ДополнительноеСведение; Заголовок = НСтр("ru = 'Изменить настройку дополнительного сведения'"); diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/РазблокированиеРеквизитов/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/РазблокированиеРеквизитов/Module.bsl index cfbf59161..1b9d7bc49 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/РазблокированиеРеквизитов/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/РазблокированиеРеквизитов/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если УправлениеСвойствамиСлужебный.ДополнительноеСвойствоИспользуется(Параметры.Ссылка) Тогда Элементы.ДиалогиПользователя.ТекущаяСтраница = Элементы.ОбъектИспользуется; diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаВыбора/Help/ru.html b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаВыбора/Help/ru.html index 690989878..b3dd8691e 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаВыбора/Help/ru.html +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаВыбора/Help/ru.html @@ -1,4 +1,4 @@ - +

                        Список предназначен для выбора дополнительных реквизитов (сведений).

                        Открывается из списка Дополнительные реквизиты (сведения) с помощью команд Добавить - По образцу или Добавить - Общее (Общий).

                        Добавление по образцу

                        diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаВыбора/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаВыбора/Module.bsl index 3bdf29a5f..551462de1 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаВыбора/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Свойство("ЭтоВыборЗначенияДоступа") Тогда Параметры.ЭтоДополнительноеСведение = Истина; КонецЕсли; diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаСписка/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаСписка/Module.bsl index 5f214c45a..78eb99033 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка( Список, "ПредставлениеГруппировкиОбщихСвойств", diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Help/ru.html index 680a0c310..56576b079 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Help/ru.html +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Help/ru.html @@ -1,4 +1,4 @@ - +

                        Предназначена для настройки дополнительных реквизитов (сведений).

                        Открывается по команде Добавить или Создать в списке Дополнительные реквизиты (сведения).

                        Назначение нового дополнительного реквизита (сведения) справочнику или документу

                        diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl index 3e9f2dd63..b969c1245 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Forms/ФормаЭлемента/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект); СоздатьСтруктуруПереданныхПараметров(); diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Help/ru.html b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Help/ru.html index 954a024cb..7e0557815 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Help/ru.html +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                        При выборе вида дополнительного свойства нужно руководствоваться следующими соображениями:

                        • Дополнительные реквизиты являются неотъемлемой частью «объекта со свойствами». Они хранятся в табличной части объекта и доступны тем же пользователям, которым доступен и сам «объект со свойствами». Дополнительные реквизиты редактируются в окне объекта наряду с его остальными реквизитами. diff --git a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ДополнительныеРеквизитыИСведения.mdo b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ДополнительныеРеквизитыИСведения.mdo index da7cc3ff0..8ace381dd 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ДополнительныеРеквизитыИСведения.mdo +++ b/SSL/src/ChartsOfCharacteristicTypes/ДополнительныеРеквизитыИСведения/ДополнительныеРеквизитыИСведения.mdo @@ -441,25 +441,6 @@ Use Use - - УдалитьСклоненияПредмета - - ru - (не используется) Склонения предмета - - - String - - - - ru - Ранее содержал заголовок формы значения и заголовок формы выбора значений - - - - - Use - ФорматСвойства diff --git a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Help/ru.html b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Help/ru.html index 9fd0faf7b..3b8932deb 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Help/ru.html +++ b/SSL/src/ChartsOfCharacteristicTypes/ОбъектыАдресацииЗадач/Help/ru.html @@ -1,4 +1,4 @@ - +

                          Содержит список объектов программы, которые могут использоваться вместе с ролями исполнителей для ролевой адресации.

                          Открывается по соответствующей команде раздела Бизнес-процессы и задачи.

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

                          diff --git a/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаСписка/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаСписка/Module.bsl index c11e0f039..8296876e4 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; Элементы.Список.РежимВыбора = Параметры.РежимВыбора; diff --git a/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаЭлемента/Module.bsl b/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаЭлемента/Module.bsl index 7395fe8ae..136052163 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/ChartsOfCharacteristicTypes/РазделыДатЗапретаИзменения/Forms/ФормаЭлемента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; ДатыЗапретаИзмененияСлужебный.ОбновитьРазделыДатЗапретаИзменения(); diff --git a/SSL/src/ChartsOfCharacteristicTypes/УдалитьВидыДоступа/УдалитьВидыДоступа.mdo b/SSL/src/ChartsOfCharacteristicTypes/УдалитьВидыДоступа/УдалитьВидыДоступа.mdo deleted file mode 100644 index 1634de375..000000000 --- a/SSL/src/ChartsOfCharacteristicTypes/УдалитьВидыДоступа/УдалитьВидыДоступа.mdo +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - - - - - УдалитьВидыДоступа - - ru - (не используется) Виды доступа - - true - ChartOfCharacteristicTypes.УдалитьВидыДоступа.StandardAttribute.Description - DontUse - - Use - PredefinedDataName - - Use - - - - - Use - ValueType - - - - Use - - - - - Use - Description - - ru - Наименование вида доступа - - - ShowError - Use - - - - - Use - Code - - Use - - - - - Use - IsFolder - - Use - - - - - Use - Parent - true - - Use - - - - - Use - Predefined - - Use - - - - - Use - DeletionMark - - Use - - - - - Use - Ref - - Use - - - - DontUse - Managed - Use - - ru - (Не используется) Вид доступа - - - CatalogRef.ПапкиФайлов - CatalogRef.ВнешниеПользователи - CatalogRef.ГруппыВнешнихПользователей - CatalogRef.ГруппыПользователей - ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения - CatalogRef.Пользователи - CatalogRef.УчетныеЗаписиЭлектроннойПочты - - true - 50 - WithinSubordination - AsDescription - - - ВнешниеПользователи - Внешние пользователи - - CatalogRef.ВнешниеПользователи - CatalogRef.ГруппыВнешнихПользователей - - - - ДополнительныеСведения - Дополнительные сведения - - ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения - - - - Организации - Организации - - CatalogRef.ПапкиФайлов - CatalogRef.ВнешниеПользователи - CatalogRef.ГруппыВнешнихПользователей - CatalogRef.ГруппыПользователей - ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения - CatalogRef.Пользователи - CatalogRef.УчетныеЗаписиЭлектроннойПочты - - - - ПапкиФайлов - Папки файлов - - CatalogRef.ПапкиФайлов - - - - Пользователи - Пользователи - - CatalogRef.ГруппыПользователей - CatalogRef.Пользователи - - - - ПравоДобавления - Право добавления - - CatalogRef.Пользователи - - - - ПравоИзменения - Право изменения - - CatalogRef.Пользователи - - - - ПравоЧтения - Право чтения - - CatalogRef.Пользователи - - - - УчетныеЗаписиЭлектроннойПочты - Учетные записи электронной почты - - CatalogRef.УчетныеЗаписиЭлектроннойПочты - - - - InDialog - BothWays - diff --git a/SSL/src/CommonAttributes/ОбластьДанныхВспомогательныеДанные/ОбластьДанныхВспомогательныеДанные.mdo b/SSL/src/CommonAttributes/ОбластьДанныхВспомогательныеДанные/ОбластьДанныхВспомогательныеДанные.mdo index 225f32225..b16532145 100644 --- a/SSL/src/CommonAttributes/ОбластьДанныхВспомогательныеДанные/ОбластьДанныхВспомогательныеДанные.mdo +++ b/SSL/src/CommonAttributes/ОбластьДанныхВспомогательныеДанные/ОбластьДанныхВспомогательныеДанные.mdo @@ -16,24 +16,12 @@ Use - - Catalog.СообщенияОбластейДанных - Use - ScheduledJob.РассылкаОтчетов Use - InformationRegister.РейтингАктивностиОбластейДанных - Use - - - Constant.ДатаПоследнегоСтартаКлиентскогоСеанса - Use - - - InformationRegister.ОбластиДанных + InformationRegister.ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных Use @@ -44,18 +32,26 @@ InformationRegister.ОчередьИзвлеченияТекста Use - - Constant.ПрефиксОбластиДанных - Use - - - Constant.ЧасовойПоясОбластиДанных - Use - Constant.СведенияОБлокируемыхОбъектах Use + + InformationRegister.СостоянияОбменовДаннымиОбластейДанных + Use + + + InformationRegister.СостоянияУспешныхОбменовДаннымиОбластейДанных + Use + + + InformationRegister.СообщенияОбменаДаннымиОбластейДанных + Use + + + InformationRegister.ОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных + Use + Constant.СведенияОбОбновленииИБ Use @@ -64,18 +60,6 @@ InformationRegister.ВерсииПодсистемОбластейДанных Use - - Constant.ПредставлениеОбластиДанных - Use - - - Constant.ВыполнитьРезервноеКопированиеОбластиДанных - Use - - - Catalog.ОчередьЗаданийОбластейДанных - Use - InformationRegister.БлокировкиСеансовОбластейДанных Use diff --git a/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo b/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo index 95f2eca2e..b3131a14e 100644 --- a/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo +++ b/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo @@ -18,10 +18,6 @@ 0 - - Constant.МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания - DontUse - ScheduledJob.ОбновлениеПредопределенныхВариантовОтчетов DontUse @@ -30,10 +26,6 @@ ScheduledJob.ПолучениеИОтправкаЭлектронныхПисем DontUse - - InformationRegister.ПоставляемыеДанныеТребующиеОбработки - DontUse - Constant.ПараметрыАдминистрированияИБ DontUse @@ -42,10 +34,6 @@ ScheduledJob.СлияниеИндексаППД DontUse - - Constant.КопироватьОбластиДанныхИзЭталонной - DontUse - InformationRegister.СообщенияОбменаДанными DontUse @@ -58,10 +46,6 @@ InformationRegister.ЗамерыКомментарииСтатистики DontUse - - ExchangePlan.ОбменСообщениями - DontUse - ScheduledJob.ОчисткаНенужныхФайлов DontUse @@ -102,18 +86,10 @@ Constant.НастройкаПроксиСервера DontUse - - Catalog.СообщенияОбластейДанных - DontUse - InformationRegister.ДомаЗданияСтроения DontUse - - InformationRegister.ПодпискиПолучателей - DontUse - InformationRegister.ЗависимостиПравДоступа DontUse @@ -138,24 +114,16 @@ Constant.ВыполнятьЗамерыПроизводительности DontUse - - Constant.ИспользоватьАльтернативныйСерверДляЗагрузкиКлассификатораБанков - DontUse - Constant.ПрофильБезопасностиИнформационнойБазы DontUse - - InformationRegister.УдалитьЗамерыВремениТехнологические - DontUse - Constant.ИспользоватьСинхронизациюДанныхВМоделиСервиса DontUse - InformationRegister.РейтингАктивностиОбластейДанных + InformationRegister.ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных DontUse @@ -166,46 +134,30 @@ ScheduledJob.ПланированиеИзвлеченияТекстаВМоделиСервиса DontUse - - Constant.РежимИспользованияИнформационнойБазы - DontUse - Catalog.КлючевыеОперации DontUse - Constant.СообщениеБлокировкиПриОбновленииКонфигурации + Constant.НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса DontUse - InformationRegister.ОбластиТребующиеОбработкиПоставляемыхДанных + Constant.АдресДляВосстановленияПароляУчетнойЗаписи DontUse ScheduledJob.СкрытиеПерсональныхДанныхСубъектов DontUse - - ScheduledJob.ОбслуживаниеОбластейДанных - DontUse - Catalog.СценарииОбменовДанными DontUse - - Constant.ДатаПоследнегоСтартаКлиентскогоСеанса - DontUse - Catalog.ИдентификаторыОбъектовМетаданных DontUse - - Constant.КаталогОбменаФайламиВМоделиСервиса - DontUse - ScheduledJob.СинхронизацияФайлов DontUse @@ -214,6 +166,10 @@ Catalog.ОбщиеВнешниеКомпоненты DontUse + + InformationRegister.НастройкиТранспортаОбменаОбластейДанных + DontUse + ScheduledJob.ОчисткаУстаревшихВерсийОбъектов DontUse @@ -226,30 +182,14 @@ InformationRegister.ОбластиПерсональныхДанных DontUse - - InformationRegister.НастройкиТранспортаОбменаСообщениями - DontUse - InformationRegister.ДанныеПроизводственногоКалендаря DontUse - - ScheduledJob.ЗагрузкаКлассификатораБанков - DontUse - InformationRegister.ПричиныИзмененияАдресныхСведений DontUse - - InformationRegister.УдалитьБлокировкиСеансовОбластиДанных - DontUse - - - Constant.УдалитьПарольСлужебногоПользователяМенеджераСервиса - DontUse - Constant.СписокРасширенийТекстовыхФайлов DontUse @@ -267,11 +207,11 @@ DontUse - Catalog.ШаблоныЗаданийОчереди + Constant.СписокРасширенийФайловOpenDocument DontUse - Constant.СписокРасширенийФайловOpenDocument + ScheduledJob.СинхронизацияДанныхСПриложениемВИнтернете DontUse @@ -282,14 +222,6 @@ Constant.ЗагрузитьСообщениеОбменаДанными DontUse - - Constant.ПоддержкаРезервногоКопирования - DontUse - - - InformationRegister.НастройкиОтправителя - DontUse - InformationRegister.ВерсииПодсистем DontUse @@ -299,11 +231,7 @@ DontUse - InformationRegister.ОбластиДанных - DontUse - - - InformationRegister.УдалитьВерсииПодсистем + Constant.ИспользоватьАвтономнуюРаботуВМоделиСервиса DontUse @@ -314,16 +242,20 @@ Constant.ИзвлекатьТекстыФайловНаСервере DontUse + + Constant.ИспользоватьПрофилиБезопасностиДляДОиО + DontUse + Constant.КоличествоЗамеровВПакетеЭкспорта DontUse - ScheduledJob.ОтложенноеОбновлениеИБ + Constant.РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса DontUse - Constant.КаталогОбменаФайламиВМоделиСервисаLinux + ScheduledJob.ОтложенноеОбновлениеИБ DontUse @@ -350,18 +282,14 @@ InformationRegister.ПакетыИнформацииПриЗапуске DontUse - - InformationRegister.УдалитьОбластиКРезервномуКопированию - DontUse - - - Catalog.ОчередьЗаданий - DontUse - InformationRegister.ЗамерыОбластиСтатистики DontUse + + Constant.ПриоритетОбновленияВОбластяхДанных + DontUse + ScheduledJob.УдалениеУстаревшихПараметровРаботыВерсийРасширений DontUse @@ -370,6 +298,10 @@ Catalog.ПроизводственныеКалендари DontUse + + Catalog.ПоставляемыеДополнительныеОтчетыИОбработки + DontUse + ScheduledJob.ОбновлениеАгрегатов DontUse @@ -378,18 +310,10 @@ InformationRegister.ДополнительныеАдресныеСведения DontUse - - Constant.МаксимальноеКоличествоИсполняющихФоновыхЗаданий - DontUse - Constant.КоличествоПотоковОбновленияДоступа DontUse - - InformationRegister.УдалитьОчередьИзвлеченияТекста - DontUse - ScheduledJob.ОбновлениеСтатусовДоставкиSMS DontUse @@ -403,25 +327,25 @@ DontUse - Constant.ПрефиксОбластиДанных + InformationRegister.НеразделенныеПользователи + DontUse + + + Constant.МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса + DontUse + + + Constant.ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса DontUse InformationRegister.УдалитьЗамерыВремени3 DontUse - - Constant.ЧасовойПоясОбластиДанных - DontUse - ScheduledJob.ИзвлечениеТекста DontUse - - ScheduledJob.ПланированиеОбработкиЗаданий - DontUse - Constant.ИспользоватьАльтернативныйСерверДляЗагрузкиКурсовВалют DontUse @@ -458,10 +382,6 @@ ScheduledJob.СтартОтложенныхПроцессов DontUse - - Constant.УдалитьКонечнаяТочкаМенеджераСервиса - DontUse - Constant.СведенияОБлокируемыхОбъектах DontUse @@ -470,6 +390,10 @@ Catalog.ПредопределенныеВариантыОтчетов DontUse + + Constant.ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете + DontUse + Constant.ОценкаПроизводительностиПериодЗаписи DontUse @@ -479,11 +403,11 @@ DontUse - Constant.ИспользуютсяПрофилиБезопасности + InformationRegister.СостоянияОбменовДаннымиОбластейДанных DontUse - Constant.БлокировкаОтправкиБыстрыхСообщений + Constant.ИспользуютсяПрофилиБезопасности DontUse @@ -494,18 +418,22 @@ InformationRegister.ПараметрыРаботыПрограммы DontUse - - Constant.УдалитьИмяСлужебногоПользователяМенеджераСервиса - DontUse - InformationRegister.УдалитьНастройкиТранспортаОбмена DontUse + + Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы + DontUse + ScheduledJob.ОчисткаЗамеровВремени DontUse + + InformationRegister.СостоянияУспешныхОбменовДаннымиОбластейДанных + DontUse + Constant.ИспользоватьНесколькоПроизводственныхКалендарей DontUse @@ -526,14 +454,6 @@ Constant.НастройкаПодчиненногоУзлаРИБЗавершена DontUse - - ScheduledJob.ОбновлениеОбластейДанных - DontUse - - - Constant.УдалитьВнутреннийАдресМенеджераСервиса - DontUse - Catalog.КлассификаторБанков DontUse @@ -551,25 +471,21 @@ DontUse - InformationRegister.УдалитьЗамерыВремени + InformationRegister.СообщенияОбменаДаннымиОбластейДанных DontUse ScheduledJob.СборИОтправкаСтатистики DontUse - - InformationRegister.УдалитьЗамерыВремени2 - DontUse - - - Constant.РазмерБлокаПередачиФайла - DontUse - Constant.СообщениеОбменаДаннымиИзГлавногоУзла DontUse + + InformationRegister.ОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных + DontUse + ScheduledJob.ЗагрузкаКурсовВалют DontUse @@ -614,26 +530,14 @@ ScheduledJob.ЗапускДополнительныхОбработок DontUse - - ChartOfCharacteristicTypes.УдалитьВидыДоступа - DontUse - Constant.КоличествоПотоковОбновленияИнформационнойБазы DontUse - - InformationRegister.УдалитьОбластиДанных - DontUse - InformationRegister.СостоянияУспешныхОбменовДанными DontUse - - InformationRegister.УдалитьРейтингАктивностиОбластейДанных - DontUse - InformationRegister.ЗемельныеУчастки DontUse @@ -650,6 +554,10 @@ InformationRegister.ВерсииПодсистемОбластейДанных DontUse + + Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы + DontUse + Constant.КоличествоЭлементовВТранзакцииЗагрузкиДанных DontUse @@ -658,14 +566,6 @@ ScheduledJob.СинхронизацияДанных DontUse - - InformationRegister.УдалитьСтраныМира - DontUse - - - ScheduledJob.ОтправкаИПолучениеСообщенийСистемы - DontUse - ScheduledJob.ПроверкаВеденияУчета DontUse @@ -686,10 +586,6 @@ Constant.ИсточникДанныхАдресногоКлассификатора DontUse - - Constant.ПредставлениеОбластиДанных - DontUse - InformationRegister.ЗамерыСтатистики DontUse @@ -702,18 +598,10 @@ InformationRegister.ОриентирыАдресныхОбъектов DontUse - - Constant.ВыполнитьРезервноеКопированиеОбластиДанных - DontUse - InformationRegister.ОперацииСтатистики DontUse - - Catalog.ОчередьЗаданийОбластейДанных - DontUse - Constant.ПовторитьЗагрузкуСообщенияОбменаДаннымиПередЗапуском DontUse @@ -742,20 +630,12 @@ InformationRegister.РежимыПодключенияВнешнихМодулей DontUse - - Catalog.СообщенияСистемы - DontUse - - - Catalog.ПоставляемыеДанные - DontUse - InformationRegister.БезопасноеХранилищеДанных DontUse - InformationRegister.УдалитьОчередьЗаданий + Constant.ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой DontUse diff --git a/SSL/src/CommonCommands/НастройкаОбменаСообщениями/CommandModule.bsl b/SSL/src/CommonCommands/АвтономнаяРабота/CommandModule.bsl similarity index 72% rename from SSL/src/CommonCommands/НастройкаОбменаСообщениями/CommandModule.bsl rename to SSL/src/CommonCommands/АвтономнаяРабота/CommandModule.bsl index 38873eb89..c7cc64865 100644 --- a/SSL/src/CommonCommands/НастройкаОбменаСообщениями/CommandModule.bsl +++ b/SSL/src/CommonCommands/АвтономнаяРабота/CommandModule.bsl @@ -11,8 +11,10 @@ &НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) - ОткрытьФорму("ОбщаяФорма.НастройкаОбменаСообщениями",, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно); + ОткрытьФорму("ОбщаяФорма.АвтономнаяРабота",, ПараметрыВыполненияКоманды.Источник, + ПараметрыВыполненияКоманды.Уникальность, + ПараметрыВыполненияКоманды.Окно); КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonCommands/ОбменСообщениями/ОбменСообщениями.mdo b/SSL/src/CommonCommands/АвтономнаяРабота/АвтономнаяРабота.mdo similarity index 61% rename from SSL/src/CommonCommands/ОбменСообщениями/ОбменСообщениями.mdo rename to SSL/src/CommonCommands/АвтономнаяРабота/АвтономнаяРабота.mdo index 5eb75f797..76c0268f8 100644 --- a/SSL/src/CommonCommands/ОбменСообщениями/ОбменСообщениями.mdo +++ b/SSL/src/CommonCommands/АвтономнаяРабота/АвтономнаяРабота.mdo @@ -1,9 +1,9 @@ - - ОбменСообщениями + + АвтономнаяРабота ru - Обмен сообщениями + Автономная работа NavigationPanelOrdinary Auto diff --git a/SSL/src/CommonCommands/ОбменСообщениями/CommandModule.bsl b/SSL/src/CommonCommands/АвтономнаяРаботаВМоделиСервиса/CommandModule.bsl similarity index 71% rename from SSL/src/CommonCommands/ОбменСообщениями/CommandModule.bsl rename to SSL/src/CommonCommands/АвтономнаяРаботаВМоделиСервиса/CommandModule.bsl index 9d8dc98ff..68c9f47de 100644 --- a/SSL/src/CommonCommands/ОбменСообщениями/CommandModule.bsl +++ b/SSL/src/CommonCommands/АвтономнаяРаботаВМоделиСервиса/CommandModule.bsl @@ -11,8 +11,11 @@ &НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) - ОткрытьФорму("Справочник.СообщенияСистемы.ФормаСписка",, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно); + ОткрытьФорму("ОбщаяФорма.АвтономнаяРаботаВМоделиСервиса",, + ПараметрыВыполненияКоманды.Источник, + ПараметрыВыполненияКоманды.Уникальность, + ПараметрыВыполненияКоманды.Окно); КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonCommands/НастройкаОбменаСообщениями/НастройкаОбменаСообщениями.mdo b/SSL/src/CommonCommands/АвтономнаяРаботаВМоделиСервиса/АвтономнаяРаботаВМоделиСервиса.mdo similarity index 55% rename from SSL/src/CommonCommands/НастройкаОбменаСообщениями/НастройкаОбменаСообщениями.mdo rename to SSL/src/CommonCommands/АвтономнаяРаботаВМоделиСервиса/АвтономнаяРаботаВМоделиСервиса.mdo index 348b534a2..3845c3619 100644 --- a/SSL/src/CommonCommands/НастройкаОбменаСообщениями/НастройкаОбменаСообщениями.mdo +++ b/SSL/src/CommonCommands/АвтономнаяРаботаВМоделиСервиса/АвтономнаяРаботаВМоделиСервиса.mdo @@ -1,9 +1,9 @@ - - НастройкаОбменаСообщениями + + АвтономнаяРаботаВМоделиСервиса ru - Настройка обмена сообщениями + Автономная работа NavigationPanelOrdinary Auto diff --git a/SSL/src/CommonCommands/ЗагрузитьКурсыВалют/CommandModule.bsl b/SSL/src/CommonCommands/ЗагрузитьКурсыВалют/CommandModule.bsl index da1b5e4ca..f093de335 100644 --- a/SSL/src/CommonCommands/ЗагрузитьКурсыВалют/CommandModule.bsl +++ b/SSL/src/CommonCommands/ЗагрузитьКурсыВалют/CommandModule.bsl @@ -42,7 +42,7 @@ &НаСервере Процедура ЗагрузитьКурсы() - КурсыВалютСлужебныйВМоделиСервиса.ЗагрузитьКурсы(); + РаботаСКурсамиВалютСлужебный.ЗагрузитьКурсы(); КонецПроцедуры diff --git a/SSL/src/CommonCommands/НастройкиПодключенияКонечнойТочки/CommandModule.bsl b/SSL/src/CommonCommands/НастройкиПодключенияКонечнойТочки/CommandModule.bsl deleted file mode 100644 index 5936c9921..000000000 --- a/SSL/src/CommonCommands/НастройкиПодключенияКонечнойТочки/CommandModule.bsl +++ /dev/null @@ -1,35 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытий - -&НаКлиенте -Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) - - ПараметрыЗаписи = Новый Структура; - ПараметрыЗаписи.Вставить("Ключ", КлючЗаписиРегистра(ПараметрКоманды)); - ПараметрыЗаписи.Вставить("ЗначенияЗаполнения", Новый Структура("КонечнаяТочка", ПараметрКоманды)); - - ОткрытьФорму("РегистрСведений.НастройкиТранспортаОбменаСообщениями.ФормаЗаписи", - ПараметрыЗаписи, ПараметрыВыполненияКоманды.Источник); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -&НаСервере -Функция КлючЗаписиРегистра(КонечнаяТочка) - - Возврат РегистрыСведений.НастройкиТранспортаОбменаСообщениями.СоздатьКлючЗаписи( - Новый Структура("КонечнаяТочка", КонечнаяТочка)); - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonCommands/НастройкиПодключенияКонечнойТочки/НастройкиПодключенияКонечнойТочки.mdo b/SSL/src/CommonCommands/НастройкиПодключенияКонечнойТочки/НастройкиПодключенияКонечнойТочки.mdo deleted file mode 100644 index 4f7b0d1b6..000000000 --- a/SSL/src/CommonCommands/НастройкиПодключенияКонечнойТочки/НастройкиПодключенияКонечнойТочки.mdo +++ /dev/null @@ -1,17 +0,0 @@ - - - НастройкиПодключенияКонечнойТочки - - ru - Настройки подключения конечной точки - - CommandGroup.ПараметрыСинхронизацииДанных - - ExchangePlanRef.ОбменСообщениями - - Auto - - ru - Настройка параметров подключения конечной точки - - diff --git a/SSL/src/CommonCommands/ОтправитьSMS/CommandModule.bsl b/SSL/src/CommonCommands/ОтправитьSMS/CommandModule.bsl index 02695d4be..5379d9c0a 100644 --- a/SSL/src/CommonCommands/ОтправитьSMS/CommandModule.bsl +++ b/SSL/src/CommonCommands/ОтправитьSMS/CommandModule.bsl @@ -12,7 +12,7 @@ Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) ДополнительныеПараметры = Новый Структура("ИмяФормыИсточникаСообщения", ""); - Если ТипЗнч(ПараметрыВыполненияКоманды.Источник) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ПараметрыВыполненияКоманды.Источник) = Тип("ФормаКлиентскогоПриложения") Тогда ДополнительныеПараметры.ИмяФормыИсточникаСообщения = ПараметрыВыполненияКоманды.Источник.ИмяФормы; КонецЕсли; diff --git a/SSL/src/CommonCommands/ОтправитьПисьмо/CommandModule.bsl b/SSL/src/CommonCommands/ОтправитьПисьмо/CommandModule.bsl index 1caed8b5b..3f2f3e2d1 100644 --- a/SSL/src/CommonCommands/ОтправитьПисьмо/CommandModule.bsl +++ b/SSL/src/CommonCommands/ОтправитьПисьмо/CommandModule.bsl @@ -12,7 +12,7 @@ Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) ДополнительныеПараметры = Новый Структура("ИмяФормыИсточникаСообщения", ""); - Если ТипЗнч(ПараметрыВыполненияКоманды.Источник) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ПараметрыВыполненияКоманды.Источник) = Тип("ФормаКлиентскогоПриложения") Тогда ДополнительныеПараметры.ИмяФормыИсточникаСообщения = ПараметрыВыполненияКоманды.Источник.ИмяФормы; КонецЕсли; diff --git a/SSL/src/CommonCommands/СоздатьРезервнуюКопию/CommandModule.bsl b/SSL/src/CommonCommands/СинхронизацияДанныхВМоделиСервиса/CommandModule.bsl similarity index 74% rename from SSL/src/CommonCommands/СоздатьРезервнуюКопию/CommandModule.bsl rename to SSL/src/CommonCommands/СинхронизацияДанныхВМоделиСервиса/CommandModule.bsl index 8b5095838..8b225ec3d 100644 --- a/SSL/src/CommonCommands/СоздатьРезервнуюКопию/CommandModule.bsl +++ b/SSL/src/CommonCommands/СинхронизацияДанныхВМоделиСервиса/CommandModule.bsl @@ -11,7 +11,10 @@ &НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) - ОткрытьФорму("ОбщаяФорма.СозданиеРезервнойКопии", , ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно); + ОткрытьФорму("ОбщаяФорма.СинхронизацияДанных",, + ПараметрыВыполненияКоманды.Источник, + ПараметрыВыполненияКоманды.Уникальность, + ПараметрыВыполненияКоманды.Окно); КонецПроцедуры diff --git a/SSL/src/CommonCommands/СинхронизацияДанныхВМоделиСервиса/СинхронизацияДанныхВМоделиСервиса.mdo b/SSL/src/CommonCommands/СинхронизацияДанныхВМоделиСервиса/СинхронизацияДанныхВМоделиСервиса.mdo new file mode 100644 index 000000000..fe53e3797 --- /dev/null +++ b/SSL/src/CommonCommands/СинхронизацияДанныхВМоделиСервиса/СинхронизацияДанныхВМоделиСервиса.mdo @@ -0,0 +1,14 @@ + + + СинхронизацияДанныхВМоделиСервиса + + ru + Синхронизация данных + + NavigationPanelOrdinary + Auto + + ru + Синхронизация данных с моими приложениями + + diff --git a/SSL/src/CommonCommands/СобытияОтправки/СобытияОтправки.mdo b/SSL/src/CommonCommands/СобытияОтправки/СобытияОтправки.mdo index deb37f293..1c88fd736 100644 --- a/SSL/src/CommonCommands/СобытияОтправки/СобытияОтправки.mdo +++ b/SSL/src/CommonCommands/СобытияОтправки/СобытияОтправки.mdo @@ -6,9 +6,6 @@ События отправки
                          FormNavigationPanelGoTo - - ExchangePlanRef.ОбменСообщениями - PictureAndText ru diff --git a/SSL/src/CommonCommands/СобытияПолучения/СобытияПолучения.mdo b/SSL/src/CommonCommands/СобытияПолучения/СобытияПолучения.mdo index 86ea1d564..268fc22ad 100644 --- a/SSL/src/CommonCommands/СобытияПолучения/СобытияПолучения.mdo +++ b/SSL/src/CommonCommands/СобытияПолучения/СобытияПолучения.mdo @@ -6,9 +6,6 @@ События получения FormNavigationPanelGoTo - - ExchangePlanRef.ОбменСообщениями - PictureAndText ru diff --git a/SSL/src/CommonCommands/СоздатьРезервнуюКопию/СоздатьРезервнуюКопию.mdo b/SSL/src/CommonCommands/СоздатьРезервнуюКопию/СоздатьРезервнуюКопию.mdo deleted file mode 100644 index e22dc9d3f..000000000 --- a/SSL/src/CommonCommands/СоздатьРезервнуюКопию/СоздатьРезервнуюКопию.mdo +++ /dev/null @@ -1,10 +0,0 @@ - - - СоздатьРезервнуюКопию - - ru - Создать резервную копию - - ActionsPanelTools - Auto - diff --git a/SSL/src/CommonCommands/УдалитьНастройкуСинхронизации/CommandModule.bsl b/SSL/src/CommonCommands/УдалитьНастройкуСинхронизации/CommandModule.bsl index e2fa240a8..6df27e463 100644 --- a/SSL/src/CommonCommands/УдалитьНастройкуСинхронизации/CommandModule.bsl +++ b/SSL/src/CommonCommands/УдалитьНастройкуСинхронизации/CommandModule.bsl @@ -11,7 +11,7 @@ &НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) - Если ТипЗнч(ПараметрыВыполненияКоманды.Источник) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ПараметрыВыполненияКоманды.Источник) = Тип("ФормаКлиентскогоПриложения") Тогда ПараметрыВыполненияКоманды.Источник.Закрыть(); КонецЕсли; diff --git a/SSL/src/CommonForms/АвтономнаяРабота/Form.form b/SSL/src/CommonForms/АвтономнаяРабота/Form.form new file mode 100644 index 000000000..db0073daa --- /dev/null +++ b/SSL/src/CommonForms/АвтономнаяРабота/Form.form @@ -0,0 +1,1462 @@ + + + + АвтономнаяРабота + 2 + + СинхронизацияДанных + 3 + + Группа3 + 56 + + Декорация5 + 57 + true + true + + true + + + Декорация5ExtendedTooltip + 71 + Label + true + true + + Left + + + + Декорация5КонтекстноеМеню + 58 + true + + 2 + true + 1 + true + + + CommonPicture.Информация + + + + + Декорация4 + 54 + + <key>ru</key> + <value>Настроена синхронизация данных с приложением в Интернете.</value> + + true + true + + true + + + Декорация4ExtendedTooltip + 72 + Label + true + true + + Left + + + + Декорация4КонтекстноеМеню + 55 + true + + Label + true + true + + Left + + + true + true + + true + + + Группа3ExtendedTooltip + 70 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + Группа2 + 4 + + Группа7 + 5 + + ВыполнитьСинхронизациюДанных + 6 + true + true + + true + + true + + ВыполнитьСинхронизациюДанныхExtendedTooltip + 75 + Label + true + true + + Left + + + UsualButton + Form.Command.ВыполнитьСинхронизациюДанных + Auto + true + true + true + UserCmds + Auto + + + Декорация3 + 7 + + <key>ru</key> + <value>Выполнить синхронизацию данных сейчас.</value> + + true + true + + true + + + Декорация3ExtendedTooltip + 76 + Label + true + true + + Left + + + + Декорация3КонтекстноеМеню + 8 + true + + Label + true + true + + Left + + + true + true + + true + + + Группа7ExtendedTooltip + 74 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + Группа1 + 65 + + ИнформацияОПоследнейСинхронизации + 50 + + <key>ru</key> + <value>Последняя синхронизация: <Дата>.</value> + + true + true + + true + + + ИнформацияОПоследнейСинхронизацииExtendedTooltip + 78 + Label + true + true + + Left + + + + ИнформацияОПоследнейСинхронизацииКонтекстноеМеню + 51 + true + + Label + true + true + + Style.ПоясняющийТекст + + + Left + + + + ПерейтиККонфликтам + 64 + true + true + + true + + + ПерейтиККонфликтамExtendedTooltip + 79 + Label + true + true + + Left + + + Hyperlink + Form.Command.ПерейтиККонфликтам + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + Группа1ExtendedTooltip + 77 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + true + true + + true + + + Группа2ExtendedTooltip + 73 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + НастройкаСинхронизацииДанных + 11 + + Группа10 + 12 + + СинхронизироватьДанныеПриНачалеРаботыПрограммы + 13 + true + true + + true + + + СинхронизироватьДанныеПриНачалеРаботыПрограммы + + Right + + OnChange + СинхронизироватьДанныеПриНачалеРаботыПрограммыПриИзменении + + + СинхронизироватьДанныеПриНачалеРаботыПрограммыExtendedTooltip + 82 + Label + true + true + + Left + + + + СинхронизироватьДанныеПриНачалеРаботыПрограммыКонтекстноеМеню + 14 + true + + CheckBoxField + Enter + true + Left + true + + + + СинхронизироватьДанныеПриЗавершенииРаботыПрограммы + 18 + true + true + + true + + + СинхронизироватьДанныеПриЗавершенииРаботыПрограммы + + Right + + OnChange + СинхронизироватьДанныеПриЗавершенииРаботыПрограммыПриИзменении + + + СинхронизироватьДанныеПриЗавершенииРаботыПрограммыExtendedTooltip + 83 + Label + true + true + + Left + + + + СинхронизироватьДанныеПриЗавершенииРаботыПрограммыКонтекстноеМеню + 19 + true + + CheckBoxField + Enter + true + Left + true + + + + Декорация9 + 15 + + <key>ru</key> + <value>Если ведется одновременная работа с приложением в Интернете, +то рекомендуется получать актуальные данные каждый раз при начале работы программы +и отправлять данные обратно при завершении работы с программой.</value> + + true + true + + true + + + Декорация9ExtendedTooltip + 84 + Label + true + true + + Left + + + + Декорация9КонтекстноеМеню + 16 + true + + Label + true + + Style.ПоясняющийТекст + + + Left + + + true + true + + true + + + Группа10ExtendedTooltip + 81 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + Группа11 + 22 + + НастройкаАвтоматическойСинхронизации + 63 + + Группа4 + 59 + + СинхронизироватьДанныеПоРасписанию + 23 + true + true + + true + + + СинхронизироватьДанныеПоРасписанию + + Right + + OnChange + СинхронизироватьДанныеПоРасписаниюПриИзменении + + + СинхронизироватьДанныеПоРасписаниюExtendedTooltip + 88 + Label + true + true + + Left + + + + СинхронизироватьДанныеПоРасписаниюКонтекстноеМеню + 24 + true + + CheckBoxField + Enter + true + Left + true + + + + ВариантРасписанияСинхронизацииДанных + 60 + true + true + + true + + + ВариантРасписанияСинхронизацииДанных + + None + + OnChange + ВариантРасписанияСинхронизацииДанныхПриИзменении + + + ВариантРасписанияСинхронизацииДанныхExtendedTooltip + 89 + Label + true + true + + Left + + + + ВариантРасписанияСинхронизацииДанныхКонтекстноеМеню + 61 + true + + InputField + Enter + true + Left + true + + 30 + true + true + true + true + true + true + Normal + + + + ИзменитьРасписаниеСинхронизацииДанных + 27 + true + true + + true + + + ИзменитьРасписаниеСинхронизацииДанныхExtendedTooltip + 90 + Label + true + true + + Left + + + UsualButton + Form.Command.ИзменитьРасписаниеСинхронизацииДанных + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + Группа4ExtendedTooltip + 87 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + Декорация11 + 25 + + <key>ru</key> + <value>При наличии постоянного подключения к Интернету +рекомендуется включить автоматическую синхронизацию данных.</value> + + true + true + + true + + + Декорация11ExtendedTooltip + 91 + Label + true + true + + Left + + + + Декорация11КонтекстноеМеню + 26 + true + + Label + true + + Style.ПоясняющийТекст + + + Left + + + + НастроитьПодключение + 62 + true + true + + true + + + НастроитьПодключениеExtendedTooltip + 92 + Label + true + true + + Left + + + UsualButton + Form.Command.НастроитьПодключение + Normal + Auto + true + UserCmds + Auto + + + Группа9 + 112 + + ПоказыватьПредупреждениеОДолгойСинхронизации + 109 + true + true + + true + + + ПоказыватьПредупреждениеОДолгойСинхронизации + + Right + + OnChange + ПоказыватьПредупреждениеОДолгойСинхронизацииПриИзменении + + + ПоказыватьПредупреждениеОДолгойСинхронизацииРасширеннаяПодсказка + 111 + Label + true + true + + Left + + + + ПоказыватьПредупреждениеОДолгойСинхронизацииКонтекстноеМеню + 110 + true + + CheckBoxField + Enter + true + Left + true + + CheckBox + + + + Декорация1 + 101 + + <key>ru</key> + <value>При синхронизации данных может быть получено обновление из приложения в Интернете. +Получение и установка обновления может занять длительное время.</value> + + true + true + + true + + + Декорация1РасширеннаяПодсказка + 103 + Label + true + true + + Left + + + + Декорация1КонтекстноеМеню + 102 + true + + Label + true + + Style.ПоясняющийТекст + + + Left + + + true + true + + true + + + Группа9РасширеннаяПодсказка + 113 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Настройка автоматической синхронизации</value> + + + НастройкаАвтоматическойСинхронизацииExtendedTooltip + 86 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + Группа11ExtendedTooltip + 85 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Синхронизировать данные</value> + + true + + НастройкаСинхронизацииДанныхExtendedTooltip + 80 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + auto + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Синхронизация данных</value> + + + СинхронизацияДанныхExtendedTooltip + 69 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + ПолученоОбновлениеКонфигурации + 28 + + Группа6 + 29 + + Декорация2 + 30 + true + true + + true + + + Декорация2ExtendedTooltip + 95 + Label + true + true + + Left + + + + Декорация2КонтекстноеМеню + 31 + true + + 5 + true + 2 + true + + + CommonPicture.Предупреждение32 + + + + + ПоясняющаяНадписьПолученоОбновление + 32 + + <key>ru</key> + <value>Получено обновление программы из Интернета. +Необходимо установить полученное обновление, после чего синхронизация будет продолжена.</value> + + true + true + + true + + + ПоясняющаяНадписьПолученоОбновлениеExtendedTooltip + 96 + Label + true + true + + Left + + + + ПоясняющаяНадписьПолученоОбновлениеКонтекстноеМеню + 33 + true + + Label + true + + Left + Center + + + true + true + + true + + + Группа6ExtendedTooltip + 94 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + УстановитьОбновление + 34 + true + true + + true + + + УстановитьОбновлениеExtendedTooltip + 97 + Label + true + true + + Left + + + UsualButton + Form.Command.УстановитьОбновление + Normal + Auto + true + true + UserCmds + Auto + + + Группа5 + 67 + + ИнформацияОПоследнейСинхронизации1 + 52 + + <key>ru</key> + <value>Последняя синхронизация: <Дата>.</value> + + true + true + + true + + + ИнформацияОПоследнейСинхронизации1ExtendedTooltip + 99 + Label + true + true + + Left + + + + ИнформацияОПоследнейСинхронизации1КонтекстноеМеню + 53 + true + + Label + true + true + + Style.ПоясняющийТекст + + + Left + + + + ПерейтиККонфликтам1 + 66 + true + true + + true + + + ПерейтиККонфликтам1ExtendedTooltip + 100 + Label + true + true + + Left + + + Hyperlink + Form.Command.ПерейтиККонфликтам + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + Группа5ExtendedTooltip + 98 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Получено обновление конфигурации</value> + + + ПолученоОбновлениеКонфигурацииExtendedTooltip + 93 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Автономная работа</value> + + + АвтономнаяРаботаExtendedTooltip + 68 + Label + true + true + + Left + + + Pages + + Auto + + + None + false + + ФормаКоманднаяПанель + -1 + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + OnOpen + ПриОткрытии + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + true + Vertical + true + true + UseIfNecessary + auto + true + + СинхронизироватьДанныеПоРасписанию + + <key>ru</key> + <value>Автоматически:</value> + + 1 + + Boolean + + + true + + + true + + + + СинхронизироватьДанныеПриЗавершенииРаботыПрограммы + + <key>ru</key> + <value>При завершении работы программы</value> + + 2 + + Boolean + + + true + + + true + + + + СинхронизироватьДанныеПриНачалеРаботыПрограммы + + <key>ru</key> + <value>При начале работы программы</value> + + 3 + + Boolean + + + true + + + true + + + + ПриложениеВСервисе + + <key>ru</key> + <value>Приложение в сервисе</value> + + 4 + + ExchangePlanRef + + + true + + + true + + + + ВариантРасписанияСинхронизацииДанных + + <key>ru</key> + <value>Вариант расписания синхронизации данных</value> + + 6 + + Number + + 1 + true + + + + true + + + true + + + + РасписаниеСинхронизацииДанных + + <key>ru</key> + <value>Расписание синхронизации данных</value> + + 7 + + + true + + + true + + + + ПользовательскоеРасписаниеСинхронизацииДанных + + <key>ru</key> + <value>Пользовательское расписание синхронизации данных</value> + + 8 + + + true + + + true + + + + АдресДляВосстановленияПароляУчетнойЗаписи + + <key>ru</key> + <value>Адрес для восстановления пароля учетной записи</value> + + 9 + + String + + + + true + + + true + + + + ПарольПользователяСохраняется + + <key>ru</key> + <value>Пароль пользователя сохраняется</value> + + 10 + + Boolean + + + true + + + true + + + + ПоказыватьПредупреждениеОДолгойСинхронизации + + <key>ru</key> + <value>Запрашивать подтверждение перед запуском синхронизации</value> + + 5 + + Boolean + + + true + + + true + + + + ВыполнитьСинхронизациюДанных + + <key>ru</key> + <value>Синхронизировать</value> + + 1 + + true + + + StdPicture.Refresh + + + + ВыполнитьСинхронизациюДанных + + + TextPicture + DontUse + Auto + + + ИзменитьРасписаниеСинхронизацииДанных + + <key>ru</key> + <value>Изменить...</value> + + 2 + + ru + Изменить расписание синхронизации данных + + + true + + + + ИзменитьРасписаниеСинхронизацииДанных + + + DontUse + Auto + + + УстановитьОбновление + + <key>ru</key> + <value>Установить обновление</value> + + 3 + + true + + + + УстановитьОбновление + + + DontUse + Auto + + + НастроитьПодключение + + <key>ru</key> + <value>Настроить подключение...</value> + + 4 + + ru + Настроить подключение + + + true + + + + НастроитьПодключение + + + DontUse + Auto + + + ПерейтиККонфликтам + + <key>ru</key> + <value>Предупреждений нет</value> + + 5 + + ru + Перейти к конфликтам синхронизации данных + + + true + + + + ПерейтиККонфликтам + + + DontUse + Auto + + + + + + diff --git a/SSL/src/CommonForms/АвтономнаяРабота/Module.bsl b/SSL/src/CommonForms/АвтономнаяРабота/Module.bsl new file mode 100644 index 000000000..1287acc32 --- /dev/null +++ b/SSL/src/CommonForms/АвтономнаяРабота/Module.bsl @@ -0,0 +1,476 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + УстановитьПривилегированныйРежим(Истина); + + Если Не АвтономнаяРаботаСлужебный.ЭтоАвтономноеРабочееМесто() Тогда + ВызватьИсключение НСтр("ru = 'Эта информационная база не является автономным рабочим местом.'"); + КонецЕсли; + + ПриложениеВСервисе = АвтономнаяРаботаСлужебный.ПриложениеВСервисе(); + + РегламентноеЗадание = РегламентныеЗаданияСервер.ПолучитьРегламентноеЗадание( + Метаданные.РегламентныеЗадания.СинхронизацияДанныхСПриложениемВИнтернете); + + СинхронизироватьДанныеПоРасписанию = РегламентноеЗадание.Использование; + РасписаниеСинхронизацииДанных = РегламентноеЗадание.Расписание; + + ПриИзмененииРасписанияСинхронизацииДанных(); + + СинхронизироватьДанныеПриНачалеРаботыПрограммы = Константы.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы.Получить(); + СинхронизироватьДанныеПриЗавершенииРаботыПрограммы = Константы.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы.Получить(); + + АдресДляВосстановленияПароляУчетнойЗаписи = АвтономнаяРаботаСлужебный.АдресДляВосстановленияПароляУчетнойЗаписи(); + + УстановитьПривилегированныйРежим(Ложь); + + ОбновитьВидимостьНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + ПодключитьОбработчикОжидания("ОбновитьВидимость", 60); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "ВыполненОбменДанными" Тогда + ОбновитьВидимость(); + + ИначеЕсли ИмяСобытия = "ИзмененыНастройкиПользователя" Тогда + ОбновитьВидимость(); + + ИначеЕсли ИмяСобытия = "Запись_НастройкиТранспортаОбмена" Тогда + + Если Параметр.Свойство("НастройкаАвтоматическойСинхронизации") Тогда + СинхронизироватьДанныеПоРасписанию = Истина; + СинхронизироватьДанныеПоРасписаниюПриИзмененииЗначения(); + КонецЕсли; + + ИначеЕсли ИмяСобытия = "ЗакрытаФормаРезультатовОбменаДанными" Тогда + ОбновитьЗаголовокПереходаККонфликтам(); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПоказыватьПредупреждениеОДолгойСинхронизацииПриИзменении(Элемент) + + ПереключитьПредупреждениеОДолгойСинхронизации(ПоказыватьПредупреждениеОДолгойСинхронизации); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ВыполнитьСинхронизациюДанных(Команда) + + ОбменДаннымиКлиент.ВыполнитьОбменДаннымиОбработкаКоманды(ПриложениеВСервисе, ЭтотОбъект, АдресДляВосстановленияПароляУчетнойЗаписи); + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьРасписаниеСинхронизацииДанных(Команда) + + Диалог = Новый ДиалогРасписанияРегламентногоЗадания(РасписаниеСинхронизацииДанных); + ОписаниеОповещения = Новый ОписаниеОповещения("ИзменитьРасписаниеСинхронизацииДанныхЗавершение", ЭтотОбъект); + Диалог.Показать(ОписаниеОповещения); + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьРасписаниеСинхронизацииДанныхЗавершение(Расписание, ДополнительныеПараметры) Экспорт + + Если Расписание <> Неопределено Тогда + + РасписаниеСинхронизацииДанных = Расписание; + + ИзменитьРасписаниеСинхронизацииДанныхНаСервере(); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьОбновление(Команда) + + ОбменДаннымиКлиент.УстановитьОбновлениеКонфигурации(); + +КонецПроцедуры + +&НаКлиенте +Процедура СинхронизироватьДанныеПоРасписаниюПриИзменении(Элемент) + + Если СинхронизироватьДанныеПоРасписанию И Не ПарольПользователяСохраняется Тогда + + СинхронизироватьДанныеПоРасписанию = Ложь; + + НастроитьПодключениеКСервису(Истина); + + Иначе + + СинхронизироватьДанныеПоРасписаниюПриИзмененииЗначения(); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВариантРасписанияСинхронизацииДанныхПриИзменении(Элемент) + + ВариантРасписанияСинхронизацииДанныхПриИзмененииНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура СинхронизироватьДанныеПриНачалеРаботыПрограммыПриИзменении(Элемент) + + УстановитьЗначениеКонстанты_СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы( + СинхронизироватьДанныеПриНачалеРаботыПрограммы); +КонецПроцедуры + +&НаКлиенте +Процедура СинхронизироватьДанныеПриЗавершенииРаботыПрограммыПриИзменении(Элемент) + + УстановитьЗначениеКонстанты_СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы( + СинхронизироватьДанныеПриЗавершенииРаботыПрограммы); + + ИмяПараметра = "СтандартныеПодсистемы.ПредлагатьСинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииСеанса"; + Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда + ПараметрыПриложения.Вставить(ИмяПараметра, Неопределено); + КонецЕсли; + + ПараметрыПриложения["СтандартныеПодсистемы.ПредлагатьСинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииСеанса"] = + СинхронизироватьДанныеПриЗавершенииРаботыПрограммы; + +КонецПроцедуры + +&НаКлиенте +Процедура НастроитьПодключение(Команда) + + НастроитьПодключениеКСервису(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПерейтиККонфликтам(Команда) + + УзлыОбмена = Новый Массив; + УзлыОбмена.Добавить(ПриложениеВСервисе); + + ПараметрыОткрытия = Новый Структура; + ПараметрыОткрытия.Вставить("УзлыОбмена", УзлыОбмена); + ОткрытьФорму("РегистрСведений.РезультатыОбменаДанными.Форма.Форма", ПараметрыОткрытия); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаКлиенте +Процедура ОбновитьВидимость() + + ОбновитьВидимостьНаСервере(); + +КонецПроцедуры + +&НаСервере +Процедура ОбновитьВидимостьНаСервере() + + УстановитьПривилегированныйРежим(Истина); + + ПредставлениеДатыСинхронизации = ОбменДаннымиСервер.ПредставлениеДатыСинхронизации( + АвтономнаяРаботаСлужебный.ДатаПоследнейУспешнойСинхронизации(ПриложениеВСервисе)); + Элементы.ИнформацияОПоследнейСинхронизации.Заголовок = ПредставлениеДатыСинхронизации + "."; + Элементы.ИнформацияОПоследнейСинхронизации1.Заголовок = ПредставлениеДатыСинхронизации + "."; + + ОбновитьЗаголовокПереходаККонфликтам(); + + ТребуетсяУстановкаОбновления = ОбменДаннымиСервер.ТребуетсяУстановкаОбновления(); + + Элементы.АвтономнаяРабота.ТекущаяСтраница = ?(ТребуетсяУстановкаОбновления, + Элементы.ПолученоОбновлениеКонфигурации, + Элементы.СинхронизацияДанных); + + Элементы.ВыполнитьСинхронизациюДанных.КнопкаПоУмолчанию = Не ТребуетсяУстановкаОбновления; + Элементы.ВыполнитьСинхронизациюДанных.АктивизироватьПоУмолчанию = Не ТребуетсяУстановкаОбновления; + + Элементы.УстановитьОбновление.КнопкаПоУмолчанию = ТребуетсяУстановкаОбновления; + Элементы.УстановитьОбновление.АктивизироватьПоУмолчанию = ТребуетсяУстановкаОбновления; + + НастройкиТранспортаWS = РегистрыСведений.НастройкиТранспортаОбменаДанными.НастройкиТранспортаWS(ПриложениеВСервисе); + + ПарольПользователяСохраняется = НастройкиТранспортаWS.WSЗапомнитьПароль; + + СинхронизироватьДанныеПоРасписанию = РегламентныеЗаданияСервер.РегламентноеЗаданиеИспользуется(Метаданные.РегламентныеЗадания.СинхронизацияДанныхСПриложениемВИнтернете); + + Элементы.НастроитьПодключение.Доступность = СинхронизироватьДанныеПоРасписанию; + Элементы.ВариантРасписанияСинхронизацииДанных.Доступность = СинхронизироватьДанныеПоРасписанию; + Элементы.ИзменитьРасписаниеСинхронизацииДанных.Доступность = СинхронизироватьДанныеПоРасписанию; + + УстановитьПривилегированныйРежим(Ложь); + + // Устанавливаем видимость по ролям + РольДоступнаНастройкаСинхронизацииДанных = ОбменДаннымиСервер.ЕстьПраваНаАдминистрированиеОбменов(); + Элементы.НастройкаСинхронизацииДанных.Видимость = РольДоступнаНастройкаСинхронизацииДанных; + Элементы.УстановитьОбновление.Видимость = РольДоступнаНастройкаСинхронизацииДанных; + + Если РольДоступнаНастройкаСинхронизацииДанных Тогда + Элементы.ПоясняющаяНадписьПолученоОбновление.Заголовок = НСтр("ru = 'Получено обновление программы из Интернета. + |Необходимо установить полученное обновление, после чего синхронизация будет продолжена.'"); + Иначе + Элементы.ПоясняющаяНадписьПолученоОбновление.Заголовок = НСтр("ru = 'Получено обновление программы из Интернета. + |Обратитесь к администратору информационной базы для установки полученного обновления.'"); + КонецЕсли; + + ПоказыватьПредупреждениеОДолгойСинхронизации = АвтономнаяРаботаСлужебный.ФлагНастройкиВопросаОДолгойСинхронизации(); +КонецПроцедуры + +&НаСервере +Процедура ОбновитьЗаголовокПереходаККонфликтам() + + Если ОбменДаннымиПовтИсп.ИспользуетсяВерсионирование() Тогда + + СтруктураЗаголовка = ОбменДаннымиСервер.СтруктураЗаголовкаГиперссылкиМонитораПроблем(ПриложениеВСервисе); + + ЗаполнитьЗначенияСвойств (Элементы.ПерейтиККонфликтам, СтруктураЗаголовка); + ЗаполнитьЗначенияСвойств (Элементы.ПерейтиККонфликтам1, СтруктураЗаголовка); + + Иначе + + Элементы.ПерейтиККонфликтам.Видимость = Ложь; + Элементы.ПерейтиККонфликтам1.Видимость = Ложь; + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ВариантРасписанияСинхронизацииДанныхПриИзмененииНаСервере() + + НовоеРасписаниеСинхронизацииДанных = ""; + + Если ВариантРасписанияСинхронизацииДанных = 1 Тогда + + НовоеРасписаниеСинхронизацииДанных = ПредопределенноеРасписаниеВариант1(); + + ИначеЕсли ВариантРасписанияСинхронизацииДанных = 2 Тогда + + НовоеРасписаниеСинхронизацииДанных = ПредопределенноеРасписаниеВариант2(); + + ИначеЕсли ВариантРасписанияСинхронизацииДанных = 3 Тогда + + НовоеРасписаниеСинхронизацииДанных = ПредопределенноеРасписаниеВариант3(); + + Иначе // 4 + + НовоеРасписаниеСинхронизацииДанных = ПользовательскоеРасписаниеСинхронизацииДанных; + + КонецЕсли; + + Если Строка(РасписаниеСинхронизацииДанных) <> Строка(НовоеРасписаниеСинхронизацииДанных) Тогда + + РасписаниеСинхронизацииДанных = НовоеРасписаниеСинхронизацииДанных; + + РегламентныеЗаданияСервер.УстановитьРасписаниеРегламентногоЗадания( + Метаданные.РегламентныеЗадания.СинхронизацияДанныхСПриложениемВИнтернете, + РасписаниеСинхронизацииДанных); + + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ПереключитьПредупреждениеОДолгойСинхронизации(Знач Флаг) + + АвтономнаяРаботаСлужебный.ФлагНастройкиВопросаОДолгойСинхронизации(Флаг); + +КонецПроцедуры + +&НаСервере +Процедура ПриИзмененииРасписанияСинхронизацииДанных() + + Элементы.ВариантРасписанияСинхронизацииДанных.СписокВыбора.Очистить(); + Элементы.ВариантРасписанияСинхронизацииДанных.СписокВыбора.Добавить(1, НСтр("ru = 'Каждые 15 минут'")); + Элементы.ВариантРасписанияСинхронизацииДанных.СписокВыбора.Добавить(2, НСтр("ru = 'Каждый час'")); + Элементы.ВариантРасписанияСинхронизацииДанных.СписокВыбора.Добавить(3, НСтр("ru = 'Каждый день в 10:00, кроме сб. и вс.'")); + + // Определяем текущий вариант расписания синхронизации данных + ВариантыРасписанияСинхронизацииДанных = Новый Соответствие; + ВариантыРасписанияСинхронизацииДанных.Вставить(Строка(ПредопределенноеРасписаниеВариант1()), 1); + ВариантыРасписанияСинхронизацииДанных.Вставить(Строка(ПредопределенноеРасписаниеВариант2()), 2); + ВариантыРасписанияСинхронизацииДанных.Вставить(Строка(ПредопределенноеРасписаниеВариант3()), 3); + + ВариантРасписанияСинхронизацииДанных = ВариантыРасписанияСинхронизацииДанных[Строка(РасписаниеСинхронизацииДанных)]; + + Если ВариантРасписанияСинхронизацииДанных = 0 Тогда + + ВариантРасписанияСинхронизацииДанных = 4; + Элементы.ВариантРасписанияСинхронизацииДанных.СписокВыбора.Добавить(4, Строка(РасписаниеСинхронизацииДанных)); + ПользовательскоеРасписаниеСинхронизацииДанных = РасписаниеСинхронизацииДанных; + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ИзменитьРасписаниеСинхронизацииДанныхНаСервере() + + РегламентныеЗаданияСервер.УстановитьРасписаниеРегламентногоЗадания( + Метаданные.РегламентныеЗадания.СинхронизацияДанныхСПриложениемВИнтернете, + РасписаниеСинхронизацииДанных); + + ПриИзмененииРасписанияСинхронизацииДанных(); + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура УстановитьЗначениеКонстанты_СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы(Знач Значение) + + УстановитьПривилегированныйРежим(Истина); + + Константы.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы.Установить(Значение); + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура УстановитьЗначениеКонстанты_СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы(Знач Значение) + + УстановитьПривилегированныйРежим(Истина); + + Константы.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы.Установить(Значение); + +КонецПроцедуры + +&НаКлиенте +Процедура НастроитьПодключениеКСервису(НастройкаАвтоматическойСинхронизации = Ложь) + + Отбор = Новый Структура("Узел", ПриложениеВСервисе); + ЗначенияЗаполнения = Новый Структура("Узел", ПриложениеВСервисе); + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("АдресДляВосстановленияПароляУчетнойЗаписи", АдресДляВосстановленияПароляУчетнойЗаписи); + ПараметрыФормы.Вставить("НастройкаАвтоматическойСинхронизации", НастройкаАвтоматическойСинхронизации); + + ОбменДаннымиКлиент.ОткрытьФормуЗаписиРегистраСведенийПоОтбору(Отбор, + ЗначенияЗаполнения, "НастройкиТранспортаОбменаДанными", ЭтотОбъект, "НастройкаПодключенияКСервису", ПараметрыФормы); + + ОбновитьВидимостьНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура СинхронизироватьДанныеПоРасписаниюПриИзмененииЗначения() + + УстановитьИспользованиеРегламентногоЗадания(СинхронизироватьДанныеПоРасписанию); + + Элементы.НастроитьПодключение.Доступность = СинхронизироватьДанныеПоРасписанию; + Элементы.ВариантРасписанияСинхронизацииДанных.Доступность = СинхронизироватьДанныеПоРасписанию; + Элементы.ИзменитьРасписаниеСинхронизацииДанных.Доступность = СинхронизироватьДанныеПоРасписанию; + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура УстановитьИспользованиеРегламентногоЗадания(Знач СинхронизироватьДанныеПоРасписанию) + + РегламентныеЗаданияСервер.УстановитьИспользованиеРегламентногоЗадания( + Метаданные.РегламентныеЗадания.СинхронизацияДанныхСПриложениемВИнтернете, + СинхронизироватьДанныеПоРасписанию); + +КонецПроцедуры + +// Предопределенные расписания синхронизации данных + +&НаСервереБезКонтекста +Функция ПредопределенноеРасписаниеВариант1() // Каждые 15 минут + + Месяцы = Новый Массив; + Месяцы.Добавить(1); + Месяцы.Добавить(2); + Месяцы.Добавить(3); + Месяцы.Добавить(4); + Месяцы.Добавить(5); + Месяцы.Добавить(6); + Месяцы.Добавить(7); + Месяцы.Добавить(8); + Месяцы.Добавить(9); + Месяцы.Добавить(10); + Месяцы.Добавить(11); + Месяцы.Добавить(12); + + ДниНедели = Новый Массив; + ДниНедели.Добавить(1); + ДниНедели.Добавить(2); + ДниНедели.Добавить(3); + ДниНедели.Добавить(4); + ДниНедели.Добавить(5); + ДниНедели.Добавить(6); + ДниНедели.Добавить(7); + + Расписание = Новый РасписаниеРегламентногоЗадания; + Расписание.Месяцы = Месяцы; + Расписание.ДниНедели = ДниНедели; + Расписание.ПериодПовтораВТечениеДня = 60*15; // 15 минут + Расписание.ПериодПовтораДней = 1; // каждый день + + Возврат Расписание; +КонецФункции + +&НаСервереБезКонтекста +Функция ПредопределенноеРасписаниеВариант2() // Каждый час + + Возврат АвтономнаяРаботаСлужебный.РасписаниеСинхронизацииДанныхПоУмолчанию(); + +КонецФункции + +&НаСервереБезКонтекста +Функция ПредопределенноеРасписаниеВариант3() // Каждый день в 10:00, кроме сб. и вс. + + Месяцы = Новый Массив; + Месяцы.Добавить(1); + Месяцы.Добавить(2); + Месяцы.Добавить(3); + Месяцы.Добавить(4); + Месяцы.Добавить(5); + Месяцы.Добавить(6); + Месяцы.Добавить(7); + Месяцы.Добавить(8); + Месяцы.Добавить(9); + Месяцы.Добавить(10); + Месяцы.Добавить(11); + Месяцы.Добавить(12); + + ДниНедели = Новый Массив; + ДниНедели.Добавить(1); + ДниНедели.Добавить(2); + ДниНедели.Добавить(3); + ДниНедели.Добавить(4); + ДниНедели.Добавить(5); + + Расписание = Новый РасписаниеРегламентногоЗадания; + Расписание.Месяцы = Месяцы; + Расписание.ДниНедели = ДниНедели; + Расписание.ВремяНачала = Дата('00010101100000'); // 10:00 + Расписание.ПериодПовтораДней = 1; // каждый день + + Возврат Расписание; +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonForms/СозданиеРезервнойКопии/СозданиеРезервнойКопии.mdo b/SSL/src/CommonForms/АвтономнаяРабота/АвтономнаяРабота.mdo similarity index 58% rename from SSL/src/CommonForms/СозданиеРезервнойКопии/СозданиеРезервнойКопии.mdo rename to SSL/src/CommonForms/АвтономнаяРабота/АвтономнаяРабота.mdo index 0c5613b91..ad223052b 100644 --- a/SSL/src/CommonForms/СозданиеРезервнойКопии/СозданиеРезервнойКопии.mdo +++ b/SSL/src/CommonForms/АвтономнаяРабота/АвтономнаяРабота.mdo @@ -1,9 +1,9 @@ - - СозданиеРезервнойКопии + + АвтономнаяРабота ru - Создание резервной копии + Автономная работа PersonalComputer MobileDevice diff --git a/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Form.form b/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Form.form new file mode 100644 index 000000000..6b3c8aa89 --- /dev/null +++ b/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Form.form @@ -0,0 +1,2146 @@ + + + + АвтономнаяРабота + 3 + + АвтономнаяРаботаНеНастроена + 52 + + Группа1 + 53 + + Декорация2 + 54 + true + true + + true + + + Декорация2ExtendedTooltip + 119 + Label + true + true + + Left + + + + Декорация2КонтекстноеМеню + 55 + true + + 5 + true + 2 + true + + + CommonPicture.Информация32 + + + + + Группа4 + 100 + + Декорация1 + 56 + + <key>ru</key> + <value>Автономная работа не настроена. +Если нет постоянного подключения к Интернету, то можно выгрузить данные на компьютер и работать автономно. Например, на время командировки. Данные можно синхронизировать в любой момент при наличии подключения к Интернету.</value> + + true + true + + true + + + Декорация1ExtendedTooltip + 121 + Label + true + true + + Left + + + + Декорация1КонтекстноеМеню + 57 + true + + Label + 75 + true + true + + Left + + + + Декорация4 + 101 + + <key>ru</key> + <value>Для автономной работы необходимо чтобы на компьютере была установлена платформа 1С:Предприятие.</value> + + true + true + + true + + + Декорация4ExtendedTooltip + 122 + Label + true + true + + Left + + + + Декорация4КонтекстноеМеню + 102 + true + + Label + true + + Left + + + + КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие + 99 + true + true + + true + + + КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятиеExtendedTooltip + 123 + Label + true + true + + Left + + + Hyperlink + Form.Command.КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие + Normal + Auto + true + UserCmds + Auto + + true + true + + true + + + Группа4ExtendedTooltip + 120 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + Группа1ExtendedTooltip + 118 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + Группа8 + 58 + + СоздатьАвтономноеРабочееМесто + 59 + true + true + + true + + + СоздатьАвтономноеРабочееМестоExtendedTooltip + 125 + Label + true + true + + Left + + + UsualButton + Form.Command.СоздатьАвтономноеРабочееМесто + Normal + Auto + true + true + UserCmds + Auto + + + Декорация3 + 60 + + <key>ru</key> + <value>Создать автономное рабочее место для работы без подключения к Интернету.</value> + + true + true + + true + + + Декорация3ExtendedTooltip + 126 + Label + true + true + + Left + + + + Декорация3КонтекстноеМеню + 61 + true + + Label + true + + Left + + + true + true + + true + + + Группа8ExtendedTooltip + 124 + Label + true + true + + Left + + + UsualGroup + + Auto + NormalSeparation + true + true + Auto + Auto + + + + КакНастроитьАвтономноеРабочееМесто + 110 + true + true + + true + + + КакНастроитьАвтономноеРабочееМестоExtendedTooltip + 127 + Label + true + true + + Left + + + Hyperlink + Form.Command.КакНастроитьАвтономноеРабочееМесто + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Автономная работа не настроена</value> + + + АвтономнаяРаботаНеНастроенаExtendedTooltip + 117 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + ОдноАвтономноеРабочееМесто + 4 + + Группа9 + 113 + + Группа5 + 5 + + Декорация5 + 72 + + <key>ru</key> + <value>Автономное рабочее место:</value> + + true + true + + true + + + Декорация5ExtendedTooltip + 131 + Label + true + true + + Left + + + + Декорация5КонтекстноеМеню + 73 + true + + Label + true + true + + Left + + + + АвтономноеРабочееМесто + 67 + true + true + + true + + + АвтономноеРабочееМесто + + None + + АвтономноеРабочееМестоExtendedTooltip + 132 + Label + true + true + + Left + + + + АвтономноеРабочееМестоКонтекстноеМеню + 68 + true + + LabelField + Left + Enter + true + Left + true + + true + + System.DefaultGUIFont + true + false + false + false + + + + true + true + + true + + + Группа5ExtendedTooltip + 130 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + Группа3 + 76 + + ИнформацияОПоследнейСинхронизации + 10 + + <key>ru</key> + <value>Последняя синхронизация: <Дата>.</value> + + true + true + + true + + + ИнформацияОПоследнейСинхронизацииExtendedTooltip + 134 + Label + true + true + + Left + + + + ИнформацияОПоследнейСинхронизацииКонтекстноеМеню + 11 + true + + Label + true + true + + Style.ПоясняющийТекст + + + Left + + + + ПерейтиККонфликтам + 114 + true + true + + true + + + ПерейтиККонфликтамExtendedTooltip + 135 + Label + true + true + + Left + + + Hyperlink + Form.Command.ПерейтиККонфликтам + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + Группа3ExtendedTooltip + 133 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + Группа2 + 14 + + Группа10 + 183 + + ИзменитьАвтономноеРабочееМесто + 15 + true + true + + true + + + ИзменитьАвтономноеРабочееМестоExtendedTooltip + 137 + Label + true + true + + Left + + + UsualButton + Form.Command.ИзменитьАвтономноеРабочееМесто + Normal + Auto + 12 + true + true + UserCmds + Auto + + + СоставОтправляемыхДанных + 181 + true + true + + true + + + СоставОтправляемыхДанныхРасширеннаяПодсказка + 182 + Label + true + true + + Left + + + UsualButton + Form.Command.СоставОтправляемыхДанных + Normal + Picture + 3 + true + true + UserCmds + Auto + + true + true + + true + + + Группа10РасширеннаяПодсказка + 184 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ОписаниеОграниченийПередачиДанных + 74 + + <key>ru</key> + <value><Описание ограничений передачи данных></value> + + true + true + + true + + + ОписаниеОграниченийПередачиДанныхExtendedTooltip + 138 + Label + true + true + + Left + + + + ОписаниеОграниченийПередачиДанныхКонтекстноеМеню + 75 + true + + Label + true + true + + Left + + + true + true + + true + + + Группа2ExtendedTooltip + 136 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + Группа6 + 16 + + ПрекратитьСинхронизациюСАвтономнымРабочимМестом + 69 + true + true + + true + + + ПрекратитьСинхронизациюСАвтономнымРабочимМестомExtendedTooltip + 140 + Label + true + true + + Left + + + UsualButton + Form.Command.ПрекратитьСинхронизациюСАвтономнымРабочимМестом + Normal + Auto + 16 + true + true + UserCmds + Auto + + + Декорация8 + 18 + + <key>ru</key> + <value>Прекратить синхронизацию с этим автономным рабочим местом.</value> + + true + true + + true + + + Декорация8ExtendedTooltip + 141 + Label + true + true + + Left + + + + Декорация8КонтекстноеМеню + 19 + true + + Label + true + true + + Left + + + true + true + + true + + + Группа6ExtendedTooltip + 139 + Label + true + true + + Left + + + UsualGroup + + Auto + NormalSeparation + true + true + Auto + Auto + + + true + true + + true + + + Группа9ExtendedTooltip + 129 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + + Группа7 + 20 + + СоздатьАвтономноеРабочееМесто1 + 21 + true + true + + true + + + СоздатьАвтономноеРабочееМесто1ExtendedTooltip + 143 + Label + true + true + + Left + + + UsualButton + Form.Command.СоздатьАвтономноеРабочееМесто + Normal + Auto + true + true + UserCmds + Auto + + + Декорация7 + 22 + + <key>ru</key> + <value>Создать ещё одно автономное рабочее место для работы без подключения к Интернету.</value> + + true + true + + true + + + Декорация7ExtendedTooltip + 144 + Label + true + true + + Left + + + + Декорация7КонтекстноеМеню + 23 + true + + Label + true + + Left + + + true + true + + true + + + Группа7ExtendedTooltip + 142 + Label + true + true + + Left + + + UsualGroup + + Auto + NormalSeparation + true + true + Auto + Auto + + + + КакНастроитьАвтономноеРабочееМесто1 + 111 + true + true + + true + + + КакНастроитьАвтономноеРабочееМесто1ExtendedTooltip + 145 + Label + true + true + + Left + + + Hyperlink + Form.Command.КакНастроитьАвтономноеРабочееМесто + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Одно автономное рабочее место</value> + + + ОдноАвтономноеРабочееМестоExtendedTooltip + 128 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + НесколькоАвтономныхРабочихМест + 24 + + ПерейтиККонфликтам1 + 115 + true + true + + true + + + ПерейтиККонфликтам1ExtendedTooltip + 147 + Label + true + true + + Left + + + Hyperlink + Form.Command.ПерейтиККонфликтам + Normal + Auto + true + true + UserCmds + Auto + + + СписокАвтономныхРабочихМест + 78 + + <key>ru</key> + <value>Список автономных рабочих мест</value> + + true + true + + true + + + СписокАвтономныхРабочихМест + + None + Add + Change + Copy + Delete + EndEdit + MoveDown + MoveUp + SortListAsc + SortListDesc + + СписокАвтономныхРабочихМестАвтономноеРабочееМесто + 81 + true + true + + true + + + СписокАвтономныхРабочихМест.АвтономноеРабочееМесто + + + СписокАвтономныхРабочихМестАвтономноеРабочееМестоExtendedTooltip + 167 + Label + true + true + + Left + + + + СписокАвтономныхРабочихМестАвтономноеРабочееМестоКонтекстноеМеню + 82 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + СписокАвтономныхРабочихМестПредставлениеДатыСинхронизации + 96 + true + true + + true + + + СписокАвтономныхРабочихМест.ПредставлениеДатыСинхронизации + + + СписокАвтономныхРабочихМестПредставлениеДатыСинхронизацииExtendedTooltip + 168 + Label + true + true + + Left + + + + СписокАвтономныхРабочихМестПредставлениеДатыСинхронизацииКонтекстноеМеню + 97 + true + + InputField + Auto + true + Left + true + + true + true + true + + ru + ДЛФ=DDT + + + ru + ДЛФ=DDT + + true + true + true + Normal + + + + СписокАвтономныхРабочихМестКоманднаяПанель + 80 + + СписокАвтономныхРабочихМестСоздатьАвтономноеРабочееМесто + 85 + true + true + + true + + + СписокАвтономныхРабочихМестСоздатьАвтономноеРабочееМестоExtendedTooltip + 154 + Label + true + true + + Left + + + Form.Command.СоздатьАвтономноеРабочееМесто + Normal + Auto + true + true + UserCmds + Auto + + + СписокАвтономныхРабочихМестИзменитьАвтономноеРабочееМестоВСписке + 98 + true + true + + true + + + СписокАвтономныхРабочихМестИзменитьАвтономноеРабочееМестоВСпискеExtendedTooltip + 155 + Label + true + true + + Left + + + Form.Command.ИзменитьАвтономноеРабочееМестоВСписке + Normal + Auto + true + true + UserCmds + Auto + + + СписокАвтономныхРабочихМестПрекратитьСинхронизациюСАвтономнымРабочимМестом + 87 + + <key>ru</key> + <value>Прекратить синхронизацию</value> + + true + true + + true + + + СписокАвтономныхРабочихМестПрекратитьСинхронизациюСАвтономнымРабочимМестомExtendedTooltip + 156 + Label + true + true + + Left + + + Form.Command.ПрекратитьСинхронизациюСАвтономнымРабочимМестомВСписке + Normal + Auto + true + true + UserCmds + + StdPicture.Delete + + Auto + InAdditionalSubmenu + + + СписокАвтономныхРабочихМестСоставОтправляемыхДанных + 170 + true + true + + true + + + СписокАвтономныхРабочихМестСоставОтправляемыхДанныхРасширеннаяПодсказка + 171 + Label + true + true + + Left + + + Form.Command.СоставОтправляемыхДанных + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + СписокАвтономныхРабочихМестГруппа3 + 95 + + СписокАвтономныхРабочихМестОбновить + 88 + true + true + + true + + + СписокАвтономныхРабочихМестОбновитьExtendedTooltip + 158 + Label + true + true + + Left + + + Form.Command.Обновить + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Список автономных рабочих мест группа 3</value> + + + СписокАвтономныхРабочихМестГруппа3ExtendedTooltip + 157 + Label + true + true + + Left + + + + + + СписокАвтономныхРабочихМестГруппа1 + 93 + + СписокАвтономныхРабочихМестНайти + 89 + true + true + + true + + + СписокАвтономныхРабочихМестНайтиExtendedTooltip + 160 + Label + true + true + + Left + + + Form.Item.СписокАвтономныхРабочихМест.StandardCommand.Find + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + СписокАвтономныхРабочихМестОтменитьПоиск + 90 + true + true + + true + + + СписокАвтономныхРабочихМестОтменитьПоискExtendedTooltip + 161 + Label + true + true + + Left + + + Form.Item.СписокАвтономныхРабочихМест.StandardCommand.CancelSearch + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Список автономных рабочих мест группа 1</value> + + + СписокАвтономныхРабочихМестГруппа1ExtendedTooltip + 159 + Label + true + true + + Left + + + + + + СписокАвтономныхРабочихМестГруппа2 + 94 + + СписокАвтономныхРабочихМестКопироватьВБуферОбмена + 92 + true + true + + true + + + СписокАвтономныхРабочихМестКопироватьВБуферОбменаExtendedTooltip + 163 + Label + true + true + + Left + + + Form.Item.СписокАвтономныхРабочихМест.StandardCommand.CopyToClipboard + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + СписокАвтономныхРабочихМестВывестиСписок + 91 + true + true + + true + + + СписокАвтономныхРабочихМестВывестиСписокExtendedTooltip + 164 + Label + true + true + + Left + + + Form.Item.СписокАвтономныхРабочихМест.StandardCommand.OutputList + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Список автономных рабочих мест группа 2</value> + + + СписокАвтономныхРабочихМестГруппа2ExtendedTooltip + 162 + Label + true + true + + Left + + + + + + СписокАвтономныхРабочихМестКнопка1 + 109 + true + true + + true + + + СписокАвтономныхРабочихМестКнопка1ExtendedTooltip + 165 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + + Left + + + Selection + СписокАвтономныхРабочихМестВыбор + + + СписокАвтономныхРабочихМестСтрокаПоиска + 185 + + СписокАвтономныхРабочихМестСтрокаПоискаРасширеннаяПодсказка + 187 + Label + true + true + + Left + + + + СписокАвтономныхРабочихМестСтрокаПоискаКонтекстноеМеню + 186 + true + + СписокАвтономныхРабочихМест + + true + + + + СписокАвтономныхРабочихМестСостояниеПросмотра + 188 + + СписокАвтономныхРабочихМестСостояниеПросмотраРасширеннаяПодсказка + 190 + Label + true + true + + Left + + + + СписокАвтономныхРабочихМестСостояниеПросмотраКонтекстноеМеню + 189 + true + + ViewStatusAddition + СписокАвтономныхРабочихМест + + true + + + + СписокАвтономныхРабочихМестУправлениеПоиском + 191 + + СписокАвтономныхРабочихМестУправлениеПоискомРасширеннаяПодсказка + 193 + Label + true + true + + Left + + + + СписокАвтономныхРабочихМестУправлениеПоискомКонтекстноеМеню + 192 + true + + SearchControlAddition + СписокАвтономныхРабочихМест + + true + + + + СписокАвтономныхРабочихМестExtendedTooltip + 166 + Label + true + true + + Left + + + + СписокАвтономныхРабочихМестКонтекстноеМеню + 79 + + СписокАвтономныхРабочихМестСоздатьАвтономноеРабочееМесто1 + 103 + true + true + + true + + + СписокАвтономныхРабочихМестСоздатьАвтономноеРабочееМесто1ExtendedTooltip + 148 + Label + true + true + + Left + + + Form.Command.СоздатьАвтономноеРабочееМесто + Normal + Auto + true + true + UserCmds + Auto + + + СписокАвтономныхРабочихМестИзменитьАвтономноеРабочееМестоВСписке1 + 104 + true + true + + true + + + СписокАвтономныхРабочихМестИзменитьАвтономноеРабочееМестоВСписке1ExtendedTooltip + 149 + Label + true + true + + Left + + + Form.Command.ИзменитьАвтономноеРабочееМестоВСписке + Normal + Auto + true + true + UserCmds + Auto + + + СписокАвтономныхРабочихМестПрекратитьСинхронизациюСАвтономнымРабочимМестом1 + 105 + + <key>ru</key> + <value>Прекратить синхронизацию</value> + + true + true + + true + + + СписокАвтономныхРабочихМестПрекратитьСинхронизациюСАвтономнымРабочимМестом1ExtendedTooltip + 150 + Label + true + true + + Left + + + Form.Command.ПрекратитьСинхронизациюСАвтономнымРабочимМестомВСписке + Normal + Auto + true + true + UserCmds + + StdPicture.Delete + + Auto + InAdditionalSubmenu + + + СписокАвтономныхРабочихМестКонтекстноеМенюСоставОтправляемыхДанных + 172 + true + true + + true + + + СписокАвтономныхРабочихМестКонтекстноеМенюСоставОтправляемыхДанныхРасширеннаяПодсказка + 173 + Label + true + true + + Left + + + Form.Command.СоставОтправляемыхДанных + Normal + Auto + true + true + UserCmds + Auto + + + СписокАвтономныхРабочихМестГруппа4 + 106 + + СписокАвтономныхРабочихМестКопироватьВБуферОбмена1 + 107 + true + true + + true + + + СписокАвтономныхРабочихМестКопироватьВБуферОбмена1ExtendedTooltip + 152 + Label + true + true + + Left + + + Form.Item.СписокАвтономныхРабочихМест.StandardCommand.CopyToClipboard + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + + СписокАвтономныхРабочихМестВывестиСписок1 + 108 + true + true + + true + + + СписокАвтономныхРабочихМестВывестиСписок1ExtendedTooltip + 153 + Label + true + true + + Left + + + Form.Item.СписокАвтономныхРабочихМест.StandardCommand.OutputList + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Список автономных рабочих мест группа 4</value> + + + СписокАвтономныхРабочихМестГруппа4ExtendedTooltip + 151 + Label + true + true + + Left + + + + + + true + true + true + true + Row +
                          true
                          + 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + Auto + true + true + true + true + None + None + None + true + +
                          + + КакНастроитьАвтономноеРабочееМесто2 + 112 + true + true + + true + + + КакНастроитьАвтономноеРабочееМесто2ExtendedTooltip + 169 + Label + true + true + + Left + + + Hyperlink + Form.Command.КакНастроитьАвтономноеРабочееМесто + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Несколько автономных рабочих мест</value> + + + НесколькоАвтономныхРабочихМестExtendedTooltip + 146 + Label + true + true + + Left + + + Page + + Vertical + auto + false + +
                          + true + true + + true + + + <key>ru</key> + <value>Автономная работа</value> + + true + + АвтономнаяРаботаExtendedTooltip + 116 + Label + true + true + + Left + + + Pages + + Auto + +
                          + None + false + + ФормаКоманднаяПанель + -1 + Left + true + + + NotificationProcessing + ОбработкаОповещения + + + OnOpen + ПриОткрытии + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + true + Vertical + true + true + UseIfNecessary + auto + true + + АвтономноеРабочееМесто + + <key>ru</key> + <value>Автономное рабочее место</value> + + 2 + + ExchangePlanRef + + + true + + + true + + + + СписокАвтономныхРабочихМест + + <key>ru</key> + <value>Список автономных рабочих мест</value> + + 1 + + ValueTable + + + true + + + true + + + АвтономноеРабочееМесто + + <key>ru</key> + <value>Автономное рабочее место</value> + + 1 + + ExchangePlanRef + + + true + + + true + + + + ПредставлениеДатыСинхронизации + + <key>ru</key> + <value>Последняя синхронизация</value> + + 2 + + String + + + + true + + + true + + + + + ИзменитьАвтономноеРабочееМесто + + <key>ru</key> + <value>Настроить...</value> + + 1 + + true + + + StdPicture.Change + + + + ИзменитьАвтономноеРабочееМесто + + + TextPicture + DontUse + Auto + + + ПрекратитьСинхронизациюСАвтономнымРабочимМестом + + <key>ru</key> + <value>Прекратить</value> + + 2 + + true + + + StdPicture.Stop + + + + ПрекратитьСинхронизациюСАвтономнымРабочимМестом + + + TextPicture + DontUse + Auto + + + СоздатьАвтономноеРабочееМесто + + <key>ru</key> + <value>Создать...</value> + + 3 + + true + + + StdPicture.CreateListItem + + + + СоздатьАвтономноеРабочееМесто + + + TextPicture + DontUse + Auto + + + Обновить + + <key>ru</key> + <value>Обновить</value> + + 4 + + ru + Обновить + + + true + + F5 + + StdPicture.Refresh + + + + Обновить + + + Picture + DontUse + Auto + + + ИзменитьАвтономноеРабочееМестоВСписке + + <key>ru</key> + <value>Изменить</value> + + 5 + + ru + Изменить автономное рабочее место в списке + + + true + + + StdPicture.Change + + + + ИзменитьАвтономноеРабочееМестоВСписке + + + TextPicture + DontUse + Auto + + + ПрекратитьСинхронизациюСАвтономнымРабочимМестомВСписке + + <key>ru</key> + <value>Прекратить синхронизацию</value> + + 6 + + ru + Прекратить синхронизацию с автономным рабочим местом в списке + + + true + + + + ПрекратитьСинхронизациюСАвтономнымРабочимМестомВСписке + + + DontUse + Auto + + + КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие + + <key>ru</key> + <value>Как установить или обновить версию платформы 1С:Предприятие</value> + + 7 + + true + + + + КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие + + + DontUse + Auto + + + КакНастроитьАвтономноеРабочееМесто + + <key>ru</key> + <value>Как настроить автономное рабочее место</value> + + 8 + + ru + Как настроить автономное рабочее место + + + true + + + + КакНастроитьАвтономноеРабочееМесто + + + DontUse + Auto + + + ПерейтиККонфликтам + + <key>ru</key> + <value>Предупреждений нет</value> + + 9 + + ru + Перейти к конфликтам синхронизации данных + + + true + + + + ПерейтиККонфликтам + + + DontUse + Auto + + + СоставОтправляемыхДанных + + <key>ru</key> + <value>Состав отправляемых данных</value> + + 10 + + ru + Состав отправляемых данных + + + true + + + StdPicture.InputFieldOpen + + + + СоставОтправляемыхДанных + + + DontUse + Auto + + + + + +
                          diff --git a/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Module.bsl b/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Module.bsl new file mode 100644 index 000000000..0e52409d1 --- /dev/null +++ b/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/Module.bsl @@ -0,0 +1,335 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + // Создавать и отключать автономные рабочие места может только администратор абонента. + Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда + + ВызватьИсключение НСтр("ru = 'Недостаточно прав для настройки автономной работы.'"); + + ИначеЕсли Не АвтономнаяРаботаСлужебный.АвтономнаяРаботаПоддерживается() Тогда + + ВызватьИсключение НСтр("ru = 'Возможность автономной работы в программе не предусмотрена.'"); + + КонецЕсли; + + ОбновитьМониторАвтономнойРаботыНаСервере(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + ПодключитьОбработчикОжидания("ОбновитьМониторАвтономнойРаботы", 60); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) + + Если ИмяСобытия = "Создание_АвтономноеРабочееМесто" + ИЛИ ИмяСобытия = "Запись_АвтономноеРабочееМесто" + ИЛИ ИмяСобытия = "Удаление_АвтономноеРабочееМесто" Тогда + + ОбновитьМониторАвтономнойРаботы(); + + ИначеЕсли ИмяСобытия = "ЗакрытаФормаРезультатовОбменаДанными" Тогда + + ОбновитьЗаголовокПереходаККонфликтам(); + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура СоздатьАвтономноеРабочееМесто(Команда) + + ОткрытьФорму("Обработка.ПомощникСозданияАвтономногоРабочегоМеста.Форма.НастройкаНаСторонеСервиса",, ЭтотОбъект, "1"); + +КонецПроцедуры + +&НаКлиенте +Процедура ПрекратитьСинхронизациюСАвтономнымРабочимМестом(Команда) + + ОтключитьАвтономноеРабочееМесто(АвтономноеРабочееМесто); + +КонецПроцедуры + +&НаКлиенте +Процедура ПрекратитьСинхронизациюСАвтономнымРабочимМестомВСписке(Команда) + + ТекущиеДанные = Элементы.СписокАвтономныхРабочихМест.ТекущиеДанные; + + Если ТекущиеДанные <> Неопределено Тогда + + ОтключитьАвтономноеРабочееМесто(ТекущиеДанные.АвтономноеРабочееМесто); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьАвтономноеРабочееМесто(Команда) + + Если АвтономноеРабочееМесто <> Неопределено Тогда + + ПоказатьЗначение(, АвтономноеРабочееМесто); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ИзменитьАвтономноеРабочееМестоВСписке(Команда) + + ТекущиеДанные = Элементы.СписокАвтономныхРабочихМест.ТекущиеДанные; + + Если ТекущиеДанные <> Неопределено Тогда + + ПоказатьЗначение(, ТекущиеДанные.АвтономноеРабочееМесто); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура Обновить(Команда) + + ОбновитьМониторАвтономнойРаботы(); + +КонецПроцедуры + +&НаКлиенте +Процедура СписокАвтономныхРабочихМестВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + + ПоказатьЗначение(, Элементы.СписокАвтономныхРабочихМест.ТекущиеДанные.АвтономноеРабочееМесто); + +КонецПроцедуры + +&НаКлиенте +Процедура КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие(Команда) + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ИмяМакета", "КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие"); + ПараметрыФормы.Вставить("Заголовок", НСтр("ru = 'Как установить или обновить версию платформы 1С:Предприятие'")); + + ОткрытьФорму("Обработка.ПомощникСозданияАвтономногоРабочегоМеста.Форма.ДополнительноеОписание", ПараметрыФормы, ЭтотОбъект, "КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие"); + +КонецПроцедуры + +&НаКлиенте +Процедура КакНастроитьАвтономноеРабочееМесто(Команда) + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ИмяМакета", "ИнструкцияПоНастройкеАвтономногоРабочегоМеста"); + ПараметрыФормы.Вставить("Заголовок", НСтр("ru = 'Как настроить автономное рабочее место'")); + + ОткрытьФорму("Обработка.ПомощникСозданияАвтономногоРабочегоМеста.Форма.ДополнительноеОписание", ПараметрыФормы, ЭтотОбъект, "ИнструкцияПоНастройкеАвтономногоРабочегоМеста"); + +КонецПроцедуры + +&НаКлиенте +Процедура ПерейтиККонфликтам(Команда) + + ПараметрыОткрытия = Новый Структура; + ПараметрыОткрытия.Вставить("УзлыОбмена", МассивИспользуемыхУзлов(АвтономноеРабочееМесто, СписокАвтономныхРабочихМест)); + + ОткрытьФорму("РегистрСведений.РезультатыОбменаДанными.Форма.Форма", ПараметрыОткрытия); + +КонецПроцедуры + +&НаКлиенте +Процедура СоставОтправляемыхДанных(Команда) + + ТекущаяСтраница = Элементы.АвтономнаяРабота.ТекущаяСтраница; + АвтономныйУзел = Неопределено; + + Если ТекущаяСтраница = Элементы.ОдноАвтономноеРабочееМесто Тогда + АвтономныйУзел = АвтономноеРабочееМесто; + + ИначеЕсли ТекущаяСтраница = Элементы.НесколькоАвтономныхРабочихМест Тогда + ТекущиеДанные = Элементы.СписокАвтономныхРабочихМест.ТекущиеДанные; + Если ТекущиеДанные <> Неопределено Тогда + АвтономныйУзел = ТекущиеДанные.АвтономноеРабочееМесто; + КонецЕсли; + + КонецЕсли; + + Если ЗначениеЗаполнено(АвтономныйУзел) Тогда + ОбменДаннымиКлиент.ОткрытьСоставОтправляемыхДанных(АвтономныйУзел); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ОбновитьМониторАвтономнойРаботыНаСервере() + + УстановитьПривилегированныйРежим(Истина); + + КоличествоАвтономныхРабочихМест = АвтономнаяРаботаСлужебный.КоличествоАвтономныхРабочихМест(); + ОбновитьЗаголовокПереходаККонфликтам(); + + Если КоличествоАвтономныхРабочихМест = 0 Тогда + + Элементы.АвтономнаяРаботаНеНастроена.Видимость = Истина; + + Элементы.АвтономнаяРабота.ТекущаяСтраница = Элементы.АвтономнаяРаботаНеНастроена; + Элементы.ОдноАвтономноеРабочееМесто.Видимость = Ложь; + Элементы.НесколькоАвтономныхРабочихМест.Видимость = Ложь; + + ИначеЕсли КоличествоАвтономныхРабочихМест = 1 Тогда + + Элементы.ОдноАвтономноеРабочееМесто.Видимость = Истина; + + Элементы.АвтономнаяРабота.ТекущаяСтраница = Элементы.ОдноАвтономноеРабочееМесто; + Элементы.АвтономнаяРаботаНеНастроена.Видимость = Ложь; + Элементы.НесколькоАвтономныхРабочихМест.Видимость = Ложь; + + АвтономноеРабочееМесто = АвтономнаяРаботаСлужебный.АвтономноеРабочееМесто(); + СписокАвтономныхРабочихМест.Очистить(); + + Элементы.ИнформацияОПоследнейСинхронизации.Заголовок = ОбменДаннымиСервер.ПредставлениеДатыСинхронизации( + АвтономнаяРаботаСлужебный.ДатаПоследнейУспешнойСинхронизации(АвтономноеРабочееМесто)) + "."; + + Элементы.ОписаниеОграниченийПередачиДанных.Заголовок = АвтономнаяРаботаСлужебный.ОписаниеОграниченийПередачиДанных(АвтономноеРабочееМесто); + + ИначеЕсли КоличествоАвтономныхРабочихМест > 1 Тогда + + Элементы.НесколькоАвтономныхРабочихМест.Видимость = Истина; + + Элементы.АвтономнаяРабота.ТекущаяСтраница = Элементы.НесколькоАвтономныхРабочихМест; + Элементы.АвтономнаяРаботаНеНастроена.Видимость = Ложь; + Элементы.ОдноАвтономноеРабочееМесто.Видимость = Ложь; + + АвтономноеРабочееМесто = Неопределено; + СписокАвтономныхРабочихМест.Загрузить(АвтономнаяРаботаСлужебный.МониторАвтономныхРабочихМест()); + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ОбновитьЗаголовокПереходаККонфликтам() + + Если ОбменДаннымиПовтИсп.ИспользуетсяВерсионирование() Тогда + + СтруктураЗаголовка = ОбменДаннымиСервер.СтруктураЗаголовкаГиперссылкиМонитораПроблем( + МассивИспользуемыхУзлов(АвтономноеРабочееМесто, СписокАвтономныхРабочихМест)); + + ЗаполнитьЗначенияСвойств (Элементы.ПерейтиККонфликтам, СтруктураЗаголовка); + ЗаполнитьЗначенияСвойств (Элементы.ПерейтиККонфликтам1, СтруктураЗаголовка); + + Иначе + + Элементы.ПерейтиККонфликтам.Видимость = Ложь; + Элементы.ПерейтиККонфликтам1.Видимость = Ложь; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Функция ПолучитьТекущийИндексСтроки(ИмяТаблицы) + + // возвращаемое значение функции + ИндексСтроки = Неопределено; + + // при обновлении монитора выполняем позиционирование курсора + ТекущиеДанные = Элементы[ИмяТаблицы].ТекущиеДанные; + + Если ТекущиеДанные <> Неопределено Тогда + + ИндексСтроки = ЭтотОбъект[ИмяТаблицы].Индекс(ТекущиеДанные); + + КонецЕсли; + + Возврат ИндексСтроки; +КонецФункции + +&НаКлиенте +Процедура ВыполнитьПозиционированиеКурсора(ИмяТаблицы, ИндексСтроки) + + Если ИндексСтроки <> Неопределено Тогда + + // выполняем проверки позиционирования курсора после получения новых данных + Если ЭтотОбъект[ИмяТаблицы].Количество() <> 0 Тогда + + Если ИндексСтроки > ЭтотОбъект[ИмяТаблицы].Количество() - 1 Тогда + + ИндексСтроки = ЭтотОбъект[ИмяТаблицы].Количество() - 1; + + КонецЕсли; + + // позиционируем курсор + Элементы[ИмяТаблицы].ТекущаяСтрока = ЭтотОбъект[ИмяТаблицы][ИндексСтроки].ПолучитьИдентификатор(); + + КонецЕсли; + + КонецЕсли; + + // если спозиционировать строку не удалось, то устанавливаем текущей первую строку + Если Элементы[ИмяТаблицы].ТекущаяСтрока = Неопределено + И ЭтотОбъект[ИмяТаблицы].Количество() <> 0 Тогда + + Элементы[ИмяТаблицы].ТекущаяСтрока = ЭтотОбъект[ИмяТаблицы][0].ПолучитьИдентификатор(); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьМониторАвтономнойРаботы() + + ИндексСтроки = ПолучитьТекущийИндексСтроки("СписокАвтономныхРабочихМест"); + + ОбновитьМониторАвтономнойРаботыНаСервере(); + + // выполняем позиционирование курсора + ВыполнитьПозиционированиеКурсора("СписокАвтономныхРабочихМест", ИндексСтроки); + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Функция МассивИспользуемыхУзлов(АвтономноеРабочееМесто, СписокАвтономныхРабочихМест) + + УзлыОбмена = Новый Массив; + + Если ЗначениеЗаполнено(АвтономноеРабочееМесто) Тогда + УзлыОбмена.Добавить(АвтономноеРабочееМесто); + Иначе + Для Каждого СтрокаУзла Из СписокАвтономныхРабочихМест Цикл + УзлыОбмена.Добавить(СтрокаУзла.АвтономноеРабочееМесто); + КонецЦикла; + КонецЕсли; + + Возврат УзлыОбмена; + +КонецФункции + +&НаКлиенте +Процедура ОтключитьАвтономноеРабочееМесто(ОтключаемоеАвтономноеРабочееМесто) + + ПараметрыФормы = Новый Структура("АвтономноеРабочееМесто", ОтключаемоеАвтономноеРабочееМесто); + + ОткрытьФорму("ОбщаяФорма.ОтключениеАвтономногоРабочегоМеста", ПараметрыФормы, ЭтотОбъект, ОтключаемоеАвтономноеРабочееМесто); + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/CommonForms/ПодключениеКонечнойТочки/ПодключениеКонечнойТочки.mdo b/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/АвтономнаяРаботаВМоделиСервиса.mdo similarity index 57% rename from SSL/src/CommonForms/ПодключениеКонечнойТочки/ПодключениеКонечнойТочки.mdo rename to SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/АвтономнаяРаботаВМоделиСервиса.mdo index daf4dfc07..30280326f 100644 --- a/SSL/src/CommonForms/ПодключениеКонечнойТочки/ПодключениеКонечнойТочки.mdo +++ b/SSL/src/CommonForms/АвтономнаяРаботаВМоделиСервиса/АвтономнаяРаботаВМоделиСервиса.mdo @@ -1,9 +1,9 @@ - - ПодключениеКонечнойТочки + + АвтономнаяРаботаВМоделиСервиса ru - Подключение конечной точки + Автономная работа PersonalComputer MobileDevice diff --git a/SSL/src/CommonForms/АдреснаяКнига/Help/ru.html b/SSL/src/CommonForms/АдреснаяКнига/Help/ru.html index aecdf516e..c906ccff3 100644 --- a/SSL/src/CommonForms/АдреснаяКнига/Help/ru.html +++ b/SSL/src/CommonForms/АдреснаяКнига/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                          Открывается по кнопке  Выбрать из полей Кому, Копии, Скрытые исходящего письма.

                          diff --git a/SSL/src/CommonForms/АдреснаяКнига/Module.bsl b/SSL/src/CommonForms/АдреснаяКнига/Module.bsl index 4627bf635..b75e6147f 100644 --- a/SSL/src/CommonForms/АдреснаяКнига/Module.bsl +++ b/SSL/src/CommonForms/АдреснаяКнига/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Взаимодействия.ОбработатьНеобходимостьОтображенияГруппПользователей(ЭтотОбъект); Взаимодействия.ДобавитьСтраницыФормыПодбораКонтактов(ЭтотОбъект); diff --git a/SSL/src/CommonForms/БлокировкаРаботыСВнешнимиРесурсами/Help/ru.html b/SSL/src/CommonForms/БлокировкаРаботыСВнешнимиРесурсами/Help/ru.html index c6ed10d2a..37f5839f5 100644 --- a/SSL/src/CommonForms/БлокировкаРаботыСВнешнимиРесурсами/Help/ru.html +++ b/SSL/src/CommonForms/БлокировкаРаботыСВнешнимиРесурсами/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                          Как определяется факт перемещения информационной базы

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

                          diff --git a/SSL/src/CommonForms/ВводЗначенийСпискомСФлажками/Help/ru.html b/SSL/src/CommonForms/ВводЗначенийСпискомСФлажками/Help/ru.html index 6bb471096..5414697a4 100644 --- a/SSL/src/CommonForms/ВводЗначенийСпискомСФлажками/Help/ru.html +++ b/SSL/src/CommonForms/ВводЗначенийСпискомСФлажками/Help/ru.html @@ -1,4 +1,4 @@ - +

                          Предназначен для ввода нескольких значений в список для отбора.

                          Открывается из вкладки Отборы окна Настройки отчета по двойному щелчку мыши в столбце Значение для операций В списке, Не в списке, В группе из списка, Не в группе из списка.

                          Подбор значений

                          diff --git a/SSL/src/CommonForms/ВводЗначенийСпискомСФлажками/Module.bsl b/SSL/src/CommonForms/ВводЗначенийСпискомСФлажками/Module.bsl index f91b6f2c4..b765b6702 100644 --- a/SSL/src/CommonForms/ВводЗначенийСпискомСФлажками/Module.bsl +++ b/SSL/src/CommonForms/ВводЗначенийСпискомСФлажками/Module.bsl @@ -17,9 +17,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Параметры.Свойство("ОграничиватьВыборУказаннымиЗначениями", ОграничиватьВыборУказаннымиЗначениями); БыстрыйВыбор = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "БыстрыйВыбор", Ложь); diff --git a/SSL/src/CommonForms/ВводНаРазныхЯзыках/Module.bsl b/SSL/src/CommonForms/ВводНаРазныхЯзыках/Module.bsl index 286fada9f..52b88b5aa 100644 --- a/SSL/src/CommonForms/ВводНаРазныхЯзыках/Module.bsl +++ b/SSL/src/CommonForms/ВводНаРазныхЯзыках/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОбъектМетаданных = Параметры.Ссылка.Метаданные(); Реквизит = ОбъектМетаданных.Реквизиты.Найти(Параметры.ИмяРеквизита); Если Реквизит = Неопределено Тогда diff --git a/SSL/src/CommonForms/Вопрос/Module.bsl b/SSL/src/CommonForms/Вопрос/Module.bsl index e2fa2d1b6..733281211 100644 --- a/SSL/src/CommonForms/Вопрос/Module.bsl +++ b/SSL/src/CommonForms/Вопрос/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; // Размещение заголовка. Если Не ПустаяСтрока(Параметры.Заголовок) Тогда diff --git a/SSL/src/CommonForms/ВопросОбУстановкеВнешнейКомпоненты/Module.bsl b/SSL/src/CommonForms/ВопросОбУстановкеВнешнейКомпоненты/Module.bsl index 5b532df68..783b9ef13 100644 --- a/SSL/src/CommonForms/ВопросОбУстановкеВнешнейКомпоненты/Module.bsl +++ b/SSL/src/CommonForms/ВопросОбУстановкеВнешнейКомпоненты/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Не ПустаяСтрока(Параметры.ТекстПояснения) Тогда Элементы.ДекорацияПояснение.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = '%1 diff --git a/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСКриптографией/Module.bsl b/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСКриптографией/Module.bsl index 3efadcd87..3f394ba98 100644 --- a/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСКриптографией/Module.bsl +++ b/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСКриптографией/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Не ПустаяСтрока(Параметры.ЗаголовокВопроса) Тогда Заголовок = Параметры.ЗаголовокВопроса; КонецЕсли; diff --git a/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСФайлами/Module.bsl b/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСФайлами/Module.bsl index 31bed656b..0ade1c2c9 100644 --- a/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСФайлами/Module.bsl +++ b/SSL/src/CommonForms/ВопросОбУстановкеРасширенияРаботыСФайлами/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Не ПустаяСтрока(Параметры.ТекстПредложения) Тогда Элементы.ДекорацияПояснение.Заголовок = Параметры.ТекстПредложения + Символы.ПС diff --git a/SSL/src/CommonForms/ВосстановлениеСвязиСГлавнымУзлом/Help/ru.html b/SSL/src/CommonForms/ВосстановлениеСвязиСГлавнымУзлом/Help/ru.html index 252bf9bd8..469d48e89 100644 --- a/SSL/src/CommonForms/ВосстановлениеСвязиСГлавнымУзлом/Help/ru.html +++ b/SSL/src/CommonForms/ВосстановлениеСвязиСГлавнымУзлом/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                          Отмена главного узла (временное отключение подчиненного узла) может потребоваться в случаях:

                          diff --git a/SSL/src/CommonForms/ВосстановлениеСвязиСГлавнымУзлом/Module.bsl b/SSL/src/CommonForms/ВосстановлениеСвязиСГлавнымУзлом/Module.bsl index a1736c471..1c16c5eb8 100644 --- a/SSL/src/CommonForms/ВосстановлениеСвязиСГлавнымУзлом/Module.bsl +++ b/SSL/src/CommonForms/ВосстановлениеСвязиСГлавнымУзлом/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ГлавныйУзел = Константы.ГлавныйУзел.Получить(); Если Не ЗначениеЗаполнено(ГлавныйУзел) Тогда diff --git a/SSL/src/CommonForms/ВходВОбластьДанных/Form.form b/SSL/src/CommonForms/ВходВОбластьДанных/Form.form deleted file mode 100644 index 75848a7c6..000000000 --- a/SSL/src/CommonForms/ВходВОбластьДанных/Form.form +++ /dev/null @@ -1,219 +0,0 @@ - - - - ЗначениеРазделителя - 1 - true - true - - true - - - ОбластьДанных - - true - - ЗначениеРазделителяExtendedTooltip - 6 - Label - true - true - - Left - - - - ЗначениеРазделителяКонтекстноеМеню - 2 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - ГруппаВходВОбласть - 5 - - ФормаВойтиВОбластьДанных - 3 - true - true - - true - - - ФормаВойтиВОбластьДанныхExtendedTooltip - 8 - Label - true - true - - Left - - - Form.Command.ВойтиВОбластьДанных - Auto - true - true - true - UserCmds - Auto - - - ФормаВыйтиИзОбластиДанных - 4 - true - true - - true - - - ФормаВыйтиИзОбластиДанныхExtendedTooltip - 9 - Label - true - true - - Left - - - Form.Command.ВыйтиИзОбластиДанных - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Вход в область</value> - - - ГруппаВходВОбластьExtendedTooltip - 7 - Label - true - true - - Left - - - CommandBar - - Left - - - None - false - - ФормаКоманднаяПанель - -1 - Left - true - - - OnOpen - ПриОткрытии - - - OnCreateAtServer - ПриСозданииНаСервере - - LockWholeInterface - true - true - true - Vertical - true - true - true - auto - true - - ОбластьДанных - - <key>ru</key> - <value>Область данных</value> - - 1 - - Number - - 7 - true - - - - true - - - true - - - - ВойтиВОбластьДанных - - <key>ru</key> - <value>Войти в область данных</value> - - 1 - - ru - Войти в область данных - - - true - - - - ВойтиВОбластьДанных - - - DontUse - Auto - - - ВыйтиИзОбластиДанных - - <key>ru</key> - <value>Выйти из области данных</value> - - 2 - - ru - Выйти из области данных - - - true - - - - ВыйтиИзОбластиДанных - - - DontUse - Auto - - - - - - diff --git a/SSL/src/CommonForms/ВходВОбластьДанных/Module.bsl b/SSL/src/CommonForms/ВходВОбластьДанных/Module.bsl deleted file mode 100644 index a2fb00de6..000000000 --- a/SSL/src/CommonForms/ВходВОбластьДанных/Module.bsl +++ /dev/null @@ -1,293 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОписаниеПеременных - -&НаКлиенте -Перем ОбновитьИнтерфейс; - -#КонецОбласти - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - СтандартныеПодсистемыСервер.УстановитьПустуюФормуНаПустойРабочийСтол(); - -КонецПроцедуры - -&НаКлиенте -Процедура ПриОткрытии(Отказ) - ОбновитьИнтерфейс = Ложь; -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиКомандФормы - -&НаКлиенте -Процедура ВойтиВОбластьДанных(Команда) - - Если ОсуществленВходВОбластьДанных() Тогда - ВыйтиИзОбластиДанныхНаСервере(); - ОбновитьИнтерфейс = Истина; - СтандартныеПодсистемыКлиент.УстановитьРасширенныйЗаголовокПриложения(Истина); - - ПодключитьОбработчикОжидания("ВойтиВОбластьДанныхПослеВыхода", 0.1, Истина); - УстановитьДоступностьКнопок(Ложь); - Иначе - ВойтиВОбластьДанныхПослеВыхода(); - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура ВыйтиИзОбластиДанных(Команда) - - Если ОсуществленВходВОбластьДанных() Тогда - // Закрытие форм разделенного рабочего стола. - ОбновитьИнтерфейс(); - ПодключитьОбработчикОжидания("ПродолжениеВыходаИзОбластиДанныхПослеСкрытияФормРабочегоСтола", 0.1, Истина); - УстановитьДоступностьКнопок(Ложь); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -&НаКлиенте -Процедура ОбновитьИнтерфейсПриНеобходимости() - - Если ОбновитьИнтерфейс Тогда - ОбновитьИнтерфейс = Ложь; - ОбновитьИнтерфейс(); - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура ВойтиВОбластьДанныхПослеВыхода() - - УстановитьДоступностьКнопок(Истина); - - Если НЕ УказаннаяОбластьДанныхЗаполнена(ОбластьДанных) Тогда - ОписаниеОповещения = Новый ОписаниеОповещения("ВойтиВОбластьДанныхПослеВыхода2", ЭтотОбъект); - ПоказатьВопрос(ОписаниеОповещения, НСтр("ru = 'Выбранная область данных не используется, продолжить вход?'"), - РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет); - Возврат; - КонецЕсли; - - ВойтиВОбластьДанныхПослеВыхода2(); - -КонецПроцедуры - -&НаКлиенте -Процедура ВойтиВОбластьДанныхПослеВыхода2(Ответ = Неопределено, ДополнительныеПараметры = Неопределено) Экспорт - - Если Ответ = КодВозвратаДиалога.Нет Тогда - ОбновитьИнтерфейсПриНеобходимости(); - Возврат; - КонецЕсли; - - ВойтиВОбластьДанныхНаСервере(ОбластьДанных); - - ОбновитьИнтерфейс = Истина; - - ОбработкаЗавершения = Новый ОписаниеОповещения( - "ПродолжениеВходаВОбластьДанныхПослеДействийПередНачаломРаботыСистемы", ЭтотОбъект); - - СтандартныеПодсистемыКлиент.ПередНачаломРаботыСистемы(ОбработкаЗавершения); - -КонецПроцедуры - -&НаКлиенте -Процедура ПродолжениеВходаВОбластьДанныхПослеДействийПередНачаломРаботыСистемы(Результат, Контекст) Экспорт - - Если Результат.Отказ Тогда - ВыйтиИзОбластиДанныхНаСервере(); - ОбновитьИнтерфейс = Истина; - СтандартныеПодсистемыКлиент.УстановитьРасширенныйЗаголовокПриложения(Истина); - ОбновитьИнтерфейсПриНеобходимости(); - Активизировать(); - УстановитьДоступностьКнопок(Ложь); - ПодключитьОбработчикОжидания("ВключитьДоступностьКнопок", 2, Истина); - Иначе - ОбработкаЗавершения = Новый ОписаниеОповещения( - "ПродолжениеВходаВОбластьДанныхПослеДействийПриНачалеРаботыСистемы", ЭтотОбъект); - - СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы(ОбработкаЗавершения); - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура ПродолжениеВходаВОбластьДанныхПослеДействийПриНачалеРаботыСистемы(Результат, Контекст) Экспорт - - Если Результат.Отказ Тогда - ВыйтиИзОбластиДанныхНаСервере(); - ОбновитьИнтерфейс = Истина; - СтандартныеПодсистемыКлиент.УстановитьРасширенныйЗаголовокПриложения(Истина); - КонецЕсли; - - ОбновитьИнтерфейсПриНеобходимости(); - Активизировать(); - - УстановитьДоступностьКнопок(Ложь); - ПодключитьОбработчикОжидания("ВключитьДоступностьКнопок", 2, Истина); - Оповестить("ВыполненВходВОбластьДанных"); - -КонецПроцедуры - -&НаКлиенте -Процедура ПродолжениеВыходаИзОбластиДанныхПослеСкрытияФормРабочегоСтола() - - УстановитьДоступностьКнопок(Истина); - - ВыйтиИзОбластиДанныхНаСервере(); - - // Отображение форм неразделенного рабочего стола. - ОбновитьИнтерфейс(); - - СтандартныеПодсистемыКлиент.УстановитьРасширенныйЗаголовокПриложения(Истина); - - Активизировать(); - - УстановитьДоступностьКнопок(Ложь); - ПодключитьОбработчикОжидания("ВключитьДоступностьКнопок", 2, Истина); - Оповестить("ВыполненВыходИзОбластиДанных"); - -КонецПроцедуры - -&НаСервереБезКонтекста -Функция УказаннаяОбластьДанныхЗаполнена(Знач ОбластьДанных) - - УстановитьПривилегированныйРежим(Истина); - - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ОбластиДанных"); - ЭлементБлокировки.УстановитьЗначение("ОбластьДанныхВспомогательныеДанные", ОбластьДанных); - ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый; - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ОбластиДанных.Статус КАК Статус - |ИЗ - | РегистрСведений.ОбластиДанных КАК ОбластиДанных - |ГДЕ - | ОбластиДанных.ОбластьДанныхВспомогательныеДанные = &ОбластьДанных"; - Запрос.УстановитьПараметр("ОбластьДанных", ОбластьДанных); - - НачатьТранзакцию(); - Попытка - Блокировка.Заблокировать(); - Результат = Запрос.Выполнить(); - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - - Если Результат.Пустой() Тогда - Возврат Ложь; - Иначе - Выборка = Результат.Выбрать(); - Выборка.Следующий(); - Возврат Выборка.Статус = Перечисления.СтатусыОбластейДанных.Используется - КонецЕсли; - -КонецФункции - -&НаСервереБезКонтекста -Процедура ВойтиВОбластьДанныхНаСервере(Знач ОбластьДанных) - - УстановитьПривилегированныйРежим(Истина); - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных); - - НачатьТранзакцию(); - - Попытка - - КлючОбласти = РаботаВМоделиСервиса.СоздатьКлючЗаписиРегистраСведенийВспомогательныхДанных( - РегистрыСведений.ОбластиДанных, - Новый Структура(РаботаВМоделиСервиса.РазделительВспомогательныхДанных(), ОбластьДанных)); - ЗаблокироватьДанныеДляРедактирования(КлючОбласти); - - Блокировка = Новый БлокировкаДанных; - Элемент = Блокировка.Добавить("РегистрСведений.ОбластиДанных"); - Элемент.УстановитьЗначение("ОбластьДанныхВспомогательныеДанные", ОбластьДанных); - Элемент.Режим = РежимБлокировкиДанных.Разделяемый; - Блокировка.Заблокировать(); - - МенеджерЗаписи = РегистрыСведений.ОбластиДанных.СоздатьМенеджерЗаписи(); - МенеджерЗаписи.ОбластьДанныхВспомогательныеДанные = ОбластьДанных; - МенеджерЗаписи.Прочитать(); - Если Не МенеджерЗаписи.Выбран() Тогда - МенеджерЗаписи.ОбластьДанныхВспомогательныеДанные = ОбластьДанных; - МенеджерЗаписи.Статус = Перечисления.СтатусыОбластейДанных.Используется; - МенеджерЗаписи.Записать(); - КонецЕсли; - РазблокироватьДанныеДляРедактирования(КлючОбласти); - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -&НаСервере -Процедура ВыйтиИзОбластиДанныхНаСервере() - - УстановитьПривилегированныйРежим(Истина); - - // Восстановление форм разделенного рабочего стола. - СтандартныеПодсистемыВызовСервера.СкрытьРабочийСтолПриНачалеРаботыСистемы(Ложь); - - СтандартныеПодсистемыСервер.УстановитьПустуюФормуНаПустойРабочийСтол(); - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - -КонецПроцедуры - -&НаСервереБезКонтекста -Функция ОсуществленВходВОбластьДанных() - - УстановитьПривилегированныйРежим(Истина); - ОсуществленВход = РаботаВМоделиСервиса.ИспользованиеРазделителяСеанса(); - - // Подготовка к закрытию форм разделенного рабочего стола. - Если ОсуществленВход Тогда - СтандартныеПодсистемыВызовСервера.СкрытьРабочийСтолПриНачалеРаботыСистемы(Истина); - КонецЕсли; - - Возврат ОсуществленВход; - -КонецФункции - -&НаКлиенте -Процедура ВключитьДоступностьКнопок() - - УстановитьДоступностьКнопок(Истина); - -КонецПроцедуры - -&НаКлиенте -Процедура УстановитьДоступностьКнопок(Доступность) - - Элементы.ЗначениеРазделителя.Доступность = Доступность; - Элементы.ГруппаВходВОбласть.Доступность = Доступность; - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonForms/ВыборДаты/Help/ru.html b/SSL/src/CommonForms/ВыборДаты/Help/ru.html index cb7db2946..e73b29d21 100644 --- a/SSL/src/CommonForms/ВыборДаты/Help/ru.html +++ b/SSL/src/CommonForms/ВыборДаты/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                          Однако иногда (как правило, в начале года) необходимо временно заполнить данные самостоятельно. Это имеет смысл, если данные календаря нужны, но официально он еще не принят и в программе его еще нет, т.к. еще не все переносы правительство утвердило. Можно заполнить переносы раньше, а потом, когда данные общегосударственного календаря будут утверждены и войдут в поставку программы, переносы автоматически корректируются.

                          diff --git a/SSL/src/CommonForms/ВыборДаты/Module.bsl b/SSL/src/CommonForms/ВыборДаты/Module.bsl index f28ee0c5f..0c29e2a1d 100644 --- a/SSL/src/CommonForms/ВыборДаты/Module.bsl +++ b/SSL/src/CommonForms/ВыборДаты/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - НачальноеЗначение = Параметры.НачальноеЗначение; Если Не ЗначениеЗаполнено(НачальноеЗначение) Тогда diff --git a/SSL/src/CommonForms/ВыборДействияПриОбнаруженииОтличийФайла/Module.bsl b/SSL/src/CommonForms/ВыборДействияПриОбнаруженииОтличийФайла/Module.bsl index da016fe8a..30b8ee531 100644 --- a/SSL/src/CommonForms/ВыборДействияПриОбнаруженииОтличийФайла/Module.bsl +++ b/SSL/src/CommonForms/ВыборДействияПриОбнаруженииОтличийФайла/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЗаполнитьЗначенияСвойств( ЭтотОбъект, Параметры, diff --git a/SSL/src/CommonForms/ВыборИсполнителяБизнесПроцесса/Help/ru.html b/SSL/src/CommonForms/ВыборИсполнителяБизнесПроцесса/Help/ru.html index f87e8f954..f8b592ce0 100644 --- a/SSL/src/CommonForms/ВыборИсполнителяБизнесПроцесса/Help/ru.html +++ b/SSL/src/CommonForms/ВыборИсполнителяБизнесПроцесса/Help/ru.html @@ -1,11 +1,11 @@ - +

                          Предназначен для выбора исполнителя бизнес-процесса (например, Задания).

                          Открывается из бизнес-процесса по кнопке выбора в поле Исполнитель. 

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

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

                          Пользователи

                          Особенности взаимодействия с внешними пользователями

                          • Исполнителями некоторых бизнес-процессов могут быть и внешние пользователи (например, партнеры или контактные лица партнеров).
                            diff --git a/SSL/src/CommonForms/ВыборИсполнителяБизнесПроцесса/Module.bsl b/SSL/src/CommonForms/ВыборИсполнителяБизнесПроцесса/Module.bsl index b6d353d95..a3dc826a9 100644 --- a/SSL/src/CommonForms/ВыборИсполнителяБизнесПроцесса/Module.bsl +++ b/SSL/src/CommonForms/ВыборИсполнителяБизнесПроцесса/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.ТолькоПростыеРоли Тогда ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( СписокРоли, "ИспользуетсяБезОбъектовАдресации", Истина,,Истина); diff --git a/SSL/src/CommonForms/ВыборКонтакта/Help/ru.html b/SSL/src/CommonForms/ВыборКонтакта/Help/ru.html index a523e03cf..5fa215c2b 100644 --- a/SSL/src/CommonForms/ВыборКонтакта/Help/ru.html +++ b/SSL/src/CommonForms/ВыборКонтакта/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                            Поле Контакт всегда присутствует во всех документах взаимодействий, однако представление контактов в документах различается:

                            • В документах Встреча и Запланированное взаимодействие присутствует список участников, в который необходимо добавить все контакты, которые будут участвовать в запланированном мероприятии или встрече. diff --git a/SSL/src/CommonForms/ВыборКонтакта/Module.bsl b/SSL/src/CommonForms/ВыборКонтакта/Module.bsl index fbda22ae5..23979f4b0 100644 --- a/SSL/src/CommonForms/ВыборКонтакта/Module.bsl +++ b/SSL/src/CommonForms/ВыборКонтакта/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - СохранитьПараметрыОткрытия(Параметры); Взаимодействия.ОбработатьНеобходимостьОтображенияГруппПользователей(ЭтотОбъект); Взаимодействия.ДобавитьСтраницыФормыПодбораКонтактов(ЭтотОбъект); diff --git a/SSL/src/CommonForms/ВыборОбъектовИнформационнойБазыКорреспондента/Module.bsl b/SSL/src/CommonForms/ВыборОбъектовИнформационнойБазыКорреспондента/Module.bsl index af3ee60ac..5e58f8300 100644 --- a/SSL/src/CommonForms/ВыборОбъектовИнформационнойБазыКорреспондента/Module.bsl +++ b/SSL/src/CommonForms/ВыборОбъектовИнформационнойБазыКорреспондента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Параметры.Свойство("ВыборГруппИЭлементов", ВыборГруппИЭлементов); РежимПодбора = (Параметры.ЗакрыватьПриВыборе = Ложь); diff --git a/SSL/src/CommonForms/ВыборОбъектовМетаданных/Help/ru.html b/SSL/src/CommonForms/ВыборОбъектовМетаданных/Help/ru.html index dcac6b6a9..563070c22 100644 --- a/SSL/src/CommonForms/ВыборОбъектовМетаданных/Help/ru.html +++ b/SSL/src/CommonForms/ВыборОбъектовМетаданных/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                              Список объектов программы представляет собой дерево, сгруппирован по типам объектов программы.

                              diff --git a/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl b/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl index 06b56a909..af646c68f 100644 --- a/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl +++ b/SSL/src/CommonForms/ВыборОбъектовМетаданных/Module.bsl @@ -40,10 +40,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ВыбранныеОбъектыМетаданных.ЗагрузитьЗначения(Параметры.ВыбранныеОбъектыМетаданных.ВыгрузитьЗначения()); Если Параметры.ФильтрПоОбъектамМетаданных.Количество() > 0 Тогда diff --git a/SSL/src/CommonForms/ВыборПутиКАрхивуФайловТомов/Help/ru.html b/SSL/src/CommonForms/ВыборПутиКАрхивуФайловТомов/Help/ru.html index 2e9b323ae..7ca63d799 100644 --- a/SSL/src/CommonForms/ВыборПутиКАрхивуФайловТомов/Help/ru.html +++ b/SSL/src/CommonForms/ВыборПутиКАрхивуФайловТомов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                              diff --git a/SSL/src/CommonForms/ВыборПутиКАрхивуФайловТомов/Module.bsl b/SSL/src/CommonForms/ВыборПутиКАрхивуФайловТомов/Module.bsl index 1d3d88fc2..42e355d52 100644 --- a/SSL/src/CommonForms/ВыборПутиКАрхивуФайловТомов/Module.bsl +++ b/SSL/src/CommonForms/ВыборПутиКАрхивуФайловТомов/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда Элементы.ПутьКАрхивуWindows.Заголовок = НСтр("ru = 'Для сервера 1С:Предприятия под управлением Microsoft Windows'"); Иначе diff --git a/SSL/src/CommonForms/ВыборРолиИсполнителя/Module.bsl b/SSL/src/CommonForms/ВыборРолиИсполнителя/Module.bsl index 35e76abb0..bdd130422 100644 --- a/SSL/src/CommonForms/ВыборРолиИсполнителя/Module.bsl +++ b/SSL/src/CommonForms/ВыборРолиИсполнителя/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Роль = Параметры.РольИсполнителя; ОсновнойОбъектАдресации = Параметры.ОсновнойОбъектАдресации; diff --git a/SSL/src/CommonForms/ВыборТиповПользователей/Help/ru.html b/SSL/src/CommonForms/ВыборТиповПользователей/Help/ru.html index 634fb8916..38f4f0de1 100644 --- a/SSL/src/CommonForms/ВыборТиповПользователей/Help/ru.html +++ b/SSL/src/CommonForms/ВыборТиповПользователей/Help/ru.html @@ -1,4 +1,4 @@ - +

                              Предназначена для выбора типов пользователей.

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

                              См. также:

                              diff --git a/SSL/src/CommonForms/ВыборТиповПользователей/Module.bsl b/SSL/src/CommonForms/ВыборТиповПользователей/Module.bsl index e05b59b49..7e27bcd07 100644 --- a/SSL/src/CommonForms/ВыборТиповПользователей/Module.bsl +++ b/SSL/src/CommonForms/ВыборТиповПользователей/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Заголовок = Параметры.Заголовок; МассивПредставлений = ?(Параметры.ЭтоОтбор, diff --git a/SSL/src/CommonForms/ВыборУзловПлановОбмена/Help/ru.html b/SSL/src/CommonForms/ВыборУзловПлановОбмена/Help/ru.html index bcf611066..00b6829c5 100644 --- a/SSL/src/CommonForms/ВыборУзловПлановОбмена/Help/ru.html +++ b/SSL/src/CommonForms/ВыборУзловПлановОбмена/Help/ru.html @@ -1,4 +1,4 @@ - +

                              Предназначен для выбора узлов плана обмена (информационных баз).

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

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

                              diff --git a/SSL/src/CommonForms/ВыборУзловПлановОбмена/Module.bsl b/SSL/src/CommonForms/ВыборУзловПлановОбмена/Module.bsl index e95013d68..5cbe45674 100644 --- a/SSL/src/CommonForms/ВыборУзловПлановОбмена/Module.bsl +++ b/SSL/src/CommonForms/ВыборУзловПлановОбмена/Module.bsl @@ -15,9 +15,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; // Обработка стандартных параметров. Если Параметры.ЗакрыватьПриВыборе = Ложь Тогда diff --git a/SSL/src/CommonForms/ВыборФорматаВложений/Help/ru.html b/SSL/src/CommonForms/ВыборФорматаВложений/Help/ru.html index ed92774eb..405b45e55 100644 --- a/SSL/src/CommonForms/ВыборФорматаВложений/Help/ru.html +++ b/SSL/src/CommonForms/ВыборФорматаВложений/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                              Вызывается по кнопке  Отправить по почте.

                              • Укажите с помощью флажков, в каком формате (или нескольких форматах) нужно отправить документ. diff --git a/SSL/src/CommonForms/ВыборФорматаВложений/Module.bsl b/SSL/src/CommonForms/ВыборФорматаВложений/Module.bsl index f54fe1f68..c36bacd10 100644 --- a/SSL/src/CommonForms/ВыборФорматаВложений/Module.bsl +++ b/SSL/src/CommonForms/ВыборФорматаВложений/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; // Загрузка переданных параметров. ПереданныйМассивФорматов = Новый Массив; diff --git a/SSL/src/CommonForms/ГруппыПользователей/Help/ru.html b/SSL/src/CommonForms/ГруппыПользователей/Help/ru.html index 99d8ebade..da5d21b48 100644 --- a/SSL/src/CommonForms/ГруппыПользователей/Help/ru.html +++ b/SSL/src/CommonForms/ГруппыПользователей/Help/ru.html @@ -1,4 +1,4 @@ - +

                                Предназначен для назначения групп пользователю (внешнему пользователю).

                                Список групп пользователя можно открыть по команде Группы панели навигации пользователя (внешнего пользователя).

                                Назначение групп пользователю

                                diff --git a/SSL/src/CommonForms/ГруппыПользователей/Module.bsl b/SSL/src/CommonForms/ГруппыПользователей/Module.bsl index 87c7a50e7..0e0db1838 100644 --- a/SSL/src/CommonForms/ГруппыПользователей/Module.bsl +++ b/SSL/src/CommonForms/ГруппыПользователей/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Пользователь <> Неопределено Тогда МассивПользователей = Новый Массив; МассивПользователей.Добавить(Параметры.Пользователь); diff --git a/SSL/src/CommonForms/ДлительнаяОперация/Module.bsl b/SSL/src/CommonForms/ДлительнаяОперация/Module.bsl index e2d320a67..14f8368ff 100644 --- a/SSL/src/CommonForms/ДлительнаяОперация/Module.bsl +++ b/SSL/src/CommonForms/ДлительнаяОперация/Module.bsl @@ -20,10 +20,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТекстСообщения = НСтр("ru = 'Пожалуйста, подождите...'"); Если Не ПустаяСтрока(Параметры.ТекстСообщения) Тогда ТекстСообщения = Параметры.ТекстСообщения + Символы.ПС + ТекстСообщения; @@ -247,7 +243,7 @@ Функция ВозвращатьРезультатВОбработкуВыбора() Возврат ОписаниеОповещенияОЗакрытии = Неопределено И Параметры.ПолучатьРезультат - И ТипЗнч(ВладелецФормы) = Тип("УправляемаяФорма"); + И ТипЗнч(ВладелецФормы) = Тип("ФормаКлиентскогоПриложения"); КонецФункции &НаСервере diff --git a/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Help/ru.html b/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Help/ru.html index 6f99477a7..e817c10be 100644 --- a/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Help/ru.html +++ b/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                                diff --git a/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Module.bsl b/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Module.bsl index dae336bbe..0a741c3cf 100644 --- a/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Module.bsl +++ b/SSL/src/CommonForms/ДобавлениеЭлектроннойПодписиИзФайла/Module.bsl @@ -26,10 +26,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если ЗначениеЗаполнено(Параметры.ЗаголовокДанных) Тогда Элементы.ПредставлениеДанных.Заголовок = Параметры.ЗаголовокДанных; Иначе diff --git a/SSL/src/CommonForms/ДополнительноеОписание/Module.bsl b/SSL/src/CommonForms/ДополнительноеОписание/Module.bsl index 12ea20606..01422ecbe 100644 --- a/SSL/src/CommonForms/ДополнительноеОписание/Module.bsl +++ b/SSL/src/CommonForms/ДополнительноеОписание/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Макет = ПолучитьОбщийМакет(Параметры.ИмяМакета); ПолеHTMLДокумента = Макет.ПолучитьТекст(); diff --git a/SSL/src/CommonForms/ДополнительныеОтчетыИОбработки/Module.bsl b/SSL/src/CommonForms/ДополнительныеОтчетыИОбработки/Module.bsl index ebd61cdab..79485b3af 100644 --- a/SSL/src/CommonForms/ДополнительныеОтчетыИОбработки/Module.bsl +++ b/SSL/src/CommonForms/ДополнительныеОтчетыИОбработки/Module.bsl @@ -17,9 +17,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Если ЗначениеЗаполнено(Параметры.ИмяРаздела) И Параметры.ИмяРаздела <> ДополнительныеОтчетыИОбработкиКлиентСервер.ИмяНачальнойСтраницы() Тогда diff --git a/SSL/src/CommonForms/ДополнительныеПараметрыПроксиСервера/Help/ru.html b/SSL/src/CommonForms/ДополнительныеПараметрыПроксиСервера/Help/ru.html index 55b34b418..bc911e91a 100644 --- a/SSL/src/CommonForms/ДополнительныеПараметрыПроксиСервера/Help/ru.html +++ b/SSL/src/CommonForms/ДополнительныеПараметрыПроксиСервера/Help/ru.html @@ -1,4 +1,4 @@ - +

                                Настраиваются для механизмов, которые работают с веб-сервисами.

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

                                По умолчанию включен флажок Использовать прокси-сервер по умолчанию для всех протоколов.

                                diff --git a/SSL/src/CommonForms/ДополнительныеПараметрыПроксиСервера/Module.bsl b/SSL/src/CommonForms/ДополнительныеПараметрыПроксиСервера/Module.bsl index 5958f773a..31bbc2f24 100644 --- a/SSL/src/CommonForms/ДополнительныеПараметрыПроксиСервера/Module.bsl +++ b/SSL/src/CommonForms/ДополнительныеПараметрыПроксиСервера/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - // Заполнение данных формы Сервер = Параметры.Сервер; Порт = Параметры.Порт; diff --git a/SSL/src/CommonForms/ИнформацияНеразделенногоПользователя/Form.form b/SSL/src/CommonForms/ИнформацияНеразделенногоПользователя/Form.form new file mode 100644 index 000000000..d5ff5af85 --- /dev/null +++ b/SSL/src/CommonForms/ИнформацияНеразделенногоПользователя/Form.form @@ -0,0 +1,107 @@ + + + + <key>ru</key> + <value>Служебный пользователь</value> + + + НеразделенныйПользователь + 1 + + <key>ru</key> + <value>Неразделенный пользователь</value> + + true + true + + true + + + НеразделенныйПользовательExtendedTooltip + 3 + Label + true + true + + Left + + + + НеразделенныйПользовательКонтекстноеМеню + 2 + true + + Label + true + + Left + + + None + false + + ФормаКоманднаяПанель + -1 + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + LockOwner + true + true + Vertical + true + true + UseIfNecessary + auto + true + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + 0 + + + + + diff --git a/SSL/src/InformationRegisters/НастройкиОтправителя/Forms/ФормаЗаписи/Module.bsl b/SSL/src/CommonForms/ИнформацияНеразделенногоПользователя/Module.bsl similarity index 61% rename from SSL/src/InformationRegisters/НастройкиОтправителя/Forms/ФормаЗаписи/Module.bsl rename to SSL/src/CommonForms/ИнформацияНеразделенногоПользователя/Module.bsl index 0e5990f4b..7811aff40 100644 --- a/SSL/src/InformationRegisters/НастройкиОтправителя/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/CommonForms/ИнформацияНеразделенногоПользователя/Module.bsl @@ -11,16 +11,11 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - Если ЗначениеЗаполнено(Запись.Получатель) Тогда - - Элементы.Получатель.Видимость = Ложь; - - КонецЕсли; + Элементы.НеразделенныйПользователь.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Просмотр сведений о пользователе %1 не доступен, т.к. это + |служебная учетная запись, предусмотренная для администраторов сервиса.'"), + Параметры.Ключ.Наименование); КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonForms/ВходВОбластьДанных/ВходВОбластьДанных.mdo b/SSL/src/CommonForms/ИнформацияНеразделенногоПользователя/ИнформацияНеразделенногоПользователя.mdo similarity index 56% rename from SSL/src/CommonForms/ВходВОбластьДанных/ВходВОбластьДанных.mdo rename to SSL/src/CommonForms/ИнформацияНеразделенногоПользователя/ИнформацияНеразделенногоПользователя.mdo index f34864b41..c03a4f2cf 100644 --- a/SSL/src/CommonForms/ВходВОбластьДанных/ВходВОбластьДанных.mdo +++ b/SSL/src/CommonForms/ИнформацияНеразделенногоПользователя/ИнформацияНеразделенногоПользователя.mdo @@ -1,9 +1,9 @@ - - ВходВОбластьДанных + + ИнформацияНеразделенногоПользователя ru - Вход в область данных + Информация неразделенного пользователя PersonalComputer MobileDevice diff --git a/SSL/src/CommonForms/МастерАнкетыПоРазделам/Module.bsl b/SSL/src/CommonForms/МастерАнкетыПоРазделам/Module.bsl index cbbf83390..19c075bca 100644 --- a/SSL/src/CommonForms/МастерАнкетыПоРазделам/Module.bsl +++ b/SSL/src/CommonForms/МастерАнкетыПоРазделам/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если НЕ Параметры.Свойство("ШаблонАнкеты") Тогда Отказ = Истина; Возврат; diff --git a/SSL/src/CommonForms/НастройкаОбменаСообщениями/Form.form b/SSL/src/CommonForms/МониторСинхронизацииДанныхВМоделиСервиса/Form.form similarity index 68% rename from SSL/src/CommonForms/НастройкаОбменаСообщениями/Form.form rename to SSL/src/CommonForms/МониторСинхронизацииДанныхВМоделиСервиса/Form.form index cf308b608..94b4059af 100644 --- a/SSL/src/CommonForms/НастройкаОбменаСообщениями/Form.form +++ b/SSL/src/CommonForms/МониторСинхронизацииДанныхВМоделиСервиса/Form.form @@ -23,27 +23,247 @@ EndEdit MoveDown MoveUp - SelectAll SortListAsc SortListDesc + + СписокСостоянияУзловОбластьДанных + 51 + true + true + + true + + + СписокСостоянияУзлов.ОбластьДанных + + + СписокСостоянияУзловОбластьДанныхExtendedTooltip + 73 + Label + true + true + + Left + + + + СписокСостоянияУзловОбластьДанныхКонтекстноеМеню + 52 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + СписокСостоянияУзловИмяПланаОбмена + 45 + true + true + + true + + + СписокСостоянияУзлов.ИмяПланаОбмена + + + СписокСостоянияУзловИмяПланаОбменаExtendedTooltip + 74 + Label + true + true + + Left + + + + СписокСостоянияУзловИмяПланаОбменаКонтекстноеМеню + 46 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + СписокСостоянияУзловУзелИнформационнойБазы + 10 + true + true + + true + + + СписокСостоянияУзлов.УзелИнформационнойБазы + + + СписокСостоянияУзловУзелИнформационнойБазыExtendedTooltip + 75 + Label + true + true + + Left + + + + СписокСостоянияУзловУзелИнформационнойБазыКонтекстноеМеню + 11 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + - СписокСостоянияУзловГруппаОсновная - 44 - - СписокСостоянияУзловВедущая - 45 + ГруппаВыгрузки + 47 + + ГруппаСостоянияВыгрузки + 19 + + СписокСостоянияУзловРезультатПоследнейВыгрузкиДанных + 6 + true + true + + true + + + СписокСостоянияУзлов.РезультатПоследнейВыгрузкиДанных + + None + + СписокСостоянияУзловРезультатПоследнейВыгрузкиДанныхExtendedTooltip + 78 + Label + true + true + + Left + + + + СписокСостоянияУзловРезультатПоследнейВыгрузкиДанныхКонтекстноеМеню + 7 + true + + PictureField + Auto + true + Left + true + + true + true + true + true + + CommonPicture.СостояниеОбменаДанными + + + + 1 + + + + + СписокСостоянияУзловДатаПоследнейВыгрузки + 16 + true + true + + true + + + СписокСостоянияУзлов.ПредставлениеДатыПоследнейВыгрузки + + + СписокСостоянияУзловДатаПоследнейВыгрузкиExtendedTooltip + 79 + Label + true + true + + Left + + + + СписокСостоянияУзловДатаПоследнейВыгрузкиКонтекстноеМеню + 17 + true + + InputField + Auto + true + Left + true + + true + true + true + + ru + ДЛФ=DDT; ДП=Никогда + + + ru + ДЛФ=DDT; ДП=Никогда + + true + true + true + Normal + + true true true - - СписокСостоянияУзлов.Ведущая - - None + + <key>ru</key> + <value>Состояния выгрузки</value> + - СписокСостоянияУзловВедущаяExtendedTooltip - 79 + ГруппаСостоянияВыгрузкиExtendedTooltip + 77 Label true true @@ -51,43 +271,25 @@ Left - - СписокСостоянияУзловВедущаяКонтекстноеМеню - 46 - true - - PictureField - Auto - true - Left - true - - true - true - true - true - - CommonPicture.ВедущаяКонечнаяТочка - - - - 1 - + ColumnGroup + + InCell + auto + true - СписокСостоянияУзловУзелИнформационнойБазы - 10 - true + СписокСостоянияУзловДатаПоследнейУспешнойВыгрузки + 4 true true - СписокСостоянияУзлов.УзелИнформационнойБазы + СписокСостоянияУзлов.ПредставлениеДатыПоследнейУспешнойВыгрузки - СписокСостоянияУзловУзелИнформационнойБазыExtendedTooltip + СписокСостоянияУзловДатаПоследнейУспешнойВыгрузкиExtendedTooltip 80 Label true @@ -97,8 +299,8 @@ - СписокСостоянияУзловУзелИнформационнойБазыКонтекстноеМеню - 11 + СписокСостоянияУзловДатаПоследнейУспешнойВыгрузкиКонтекстноеМеню + 5 true InputField @@ -110,6 +312,14 @@ true true true + + ru + ДЛФ=DDT; ДП=Никогда + + + ru + ДЛФ=DDT; ДП=Никогда + true true true @@ -123,11 +333,12 @@ <key>ru</key> - <value>Список состояния узлов группа основная</value> + <value>Выгрузки</value> + true - СписокСостоянияУзловГруппаОсновнаяExtendedTooltip - 78 + ГруппаВыгрузкиExtendedTooltip + 76 Label true true @@ -137,14 +348,14 @@ ColumnGroup - InCell + Vertical auto true ГруппаЗагрузки - 52 + 48 ГруппаСостоянияЗагрузки 18 @@ -195,18 +406,18 @@ - СписокСостоянияУзловДатаПоследнейУспешнойЗагрузки - 12 + СписокСостоянияУзловДатаПоследнейЗагрузки + 14 true true true - СписокСостоянияУзлов.ПредставлениеДатыПоследнейУспешнойЗагрузки + СписокСостоянияУзлов.ПредставлениеДатыПоследнейЗагрузки - СписокСостоянияУзловДатаПоследнейУспешнойЗагрузкиExtendedTooltip + СписокСостоянияУзловДатаПоследнейЗагрузкиExtendedTooltip 84 Label true @@ -216,8 +427,8 @@ - СписокСостоянияУзловДатаПоследнейУспешнойЗагрузкиКонтекстноеМеню - 13 + СписокСостоянияУзловДатаПоследнейЗагрузкиКонтекстноеМеню + 15 true InputField @@ -229,6 +440,14 @@ true true true + + ru + ДЛФ=DDT; ДП=Никогда + + + ru + ДЛФ=DDT; ДП=Никогда + true true true @@ -262,17 +481,17 @@ - СписокСостоянияУзловДатаПоследнейЗагрузки - 14 + СписокСостоянияУзловДатаПоследнейУспешнойЗагрузки + 12 true true - СписокСостоянияУзлов.ПредставлениеДатыПоследнейЗагрузки + СписокСостоянияУзлов.ПредставлениеДатыПоследнейУспешнойЗагрузки - СписокСостоянияУзловДатаПоследнейЗагрузкиExtendedTooltip + СписокСостоянияУзловДатаПоследнейУспешнойЗагрузкиExtendedTooltip 85 Label true @@ -282,8 +501,8 @@ - СписокСостоянияУзловДатаПоследнейЗагрузкиКонтекстноеМеню - 15 + СписокСостоянияУзловДатаПоследнейУспешнойЗагрузкиКонтекстноеМеню + 13 true InputField @@ -295,6 +514,14 @@ true true true + + ru + ДЛФ=DDT; ДП=Никогда + + + ru + ДЛФ=DDT; ДП=Никогда + true true true @@ -310,7 +537,7 @@ ru Загрузки - true + true ГруппаЗагрузкиExtendedTooltip 81 @@ -328,461 +555,11 @@ true - - ГруппаВыгрузки - 51 - - ГруппаСостоянияВыгрузки - 19 - - СписокСостоянияУзловРезультатПоследнейВыгрузкиДанных - 6 - true - true - - true - - - СписокСостоянияУзлов.РезультатПоследнейВыгрузкиДанных - - None - - СписокСостоянияУзловРезультатПоследнейВыгрузкиДанныхExtendedTooltip - 88 - Label - true - true - - Left - - - - СписокСостоянияУзловРезультатПоследнейВыгрузкиДанныхКонтекстноеМеню - 7 - true - - PictureField - Auto - true - Left - true - - true - true - true - true - - CommonPicture.СостояниеОбменаДанными - - - - 1 - - - - - СписокСостоянияУзловДатаПоследнейУспешнойВыгрузки - 4 - true - true - - true - - - СписокСостоянияУзлов.ПредставлениеДатыПоследнейУспешнойВыгрузки - - - СписокСостоянияУзловДатаПоследнейУспешнойВыгрузкиExtendedTooltip - 89 - Label - true - true - - Left - - - - СписокСостоянияУзловДатаПоследнейУспешнойВыгрузкиКонтекстноеМеню - 5 - true - - InputField - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - true - true - - true - - - <key>ru</key> - <value>Состояния выгрузки</value> - - - ГруппаСостоянияВыгрузкиExtendedTooltip - 87 - Label - true - true - - Left - - - ColumnGroup - - InCell - auto - true - - - - СписокСостоянияУзловДатаПоследнейВыгрузки - 16 - true - - true - - - СписокСостоянияУзлов.ПредставлениеДатыПоследнейВыгрузки - - - СписокСостоянияУзловДатаПоследнейВыгрузкиExtendedTooltip - 90 - Label - true - true - - Left - - - - СписокСостоянияУзловДатаПоследнейВыгрузкиКонтекстноеМеню - 17 - true - - InputField - Auto - true - Left - true - - true - true - true - true - true - true - Normal - - - true - true - - true - - - <key>ru</key> - <value>Выгрузки</value> - - true - - ГруппаВыгрузкиExtendedTooltip - 86 - Label - true - true - - Left - - - ColumnGroup - - Vertical - auto - true - - СписокСостоянияУзловКоманднаяПанель 3 - СписокСостоянияУзловОтправитьИПолучитьСообщенияСейчас - 30 - - СписокСостоянияУзловОтправитьИПолучитьСообщения - 21 - true - true - - true - - - СписокСостоянияУзловОтправитьИПолучитьСообщенияExtendedTooltip - 62 - Label - true - true - - Left - - - Form.Command.ОтправитьИПолучитьСообщения - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Список состояния узлов отправить и получить сообщения сейчас</value> - - - СписокСостоянияУзловОтправитьИПолучитьСообщенияСейчасExtendedTooltip - 61 - Label - true - true - - Left - - - - - - СписокСостоянияУзловРасписаниеОтправкиИПолучения - 43 - - СписокСостоянияУзловВключитьОтключитьРасписаниеОтправкиИПолученияСообщенийСистемы - 42 - true - true - - true - - - СписокСостоянияУзловВключитьОтключитьРасписаниеОтправкиИПолученияСообщенийСистемыExtendedTooltip - 64 - Label - true - true - - Left - - - Form.Command.ВключитьОтключитьРасписаниеОтправкиИПолученияСообщенийСистемы - Normal - Auto - true - true - UserCmds - Auto - - - СписокСостоянияУзловНастроитьРасписаниеОтправкиИПолученияСообщенийСистемы - 41 - true - true - - true - - - СписокСостоянияУзловНастроитьРасписаниеОтправкиИПолученияСообщенийСистемыExtendedTooltip - 65 - Label - true - true - - Left - - - Form.Command.НастроитьРасписаниеОтправкиИПолученияСообщенийСистемы - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Расписание отправки и получения</value> - - - СписокСостоянияУзловРасписаниеОтправкиИПолученияExtendedTooltip - 63 - Label - true - true - - Left - - - Popup - - - StdPicture.ScheduledJob - - PictureAndText - Normal - - - - СписокСостоянияУзловПодключитьКонечнуюТочку - 22 - true - true - - true - - - СписокСостоянияУзловПодключитьКонечнуюТочкуExtendedTooltip - 66 - Label - true - true - - Left - - - Form.Command.ПодключитьКонечнуюТочку - Normal - Auto - true - true - UserCmds - Auto - - - СписокСостоянияУзловИзменитьКонечнуюТочку - 31 - true - true - - true - - - СписокСостоянияУзловИзменитьКонечнуюТочкуExtendedTooltip - 67 - Label - true - true - - Left - - - Form.Command.ИзменитьКонечнуюТочку - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - СписокСостоянияУзловГруппа2 - 28 - - СписокСостоянияУзловОбновитьМонитор - 20 - true - true - - true - - - СписокСостоянияУзловОбновитьМониторExtendedTooltip - 69 - Label - true - true - - Left - - - Form.Command.ОбновитьМонитор - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - true - true - - true - - - <key>ru</key> - <value>Список состояния узлов группа 2</value> - - - СписокСостоянияУзловГруппа2ExtendedTooltip - 68 - Label - true - true - - Left - - - - - - СписокСостоянияУзловНастроитьПодписки - 47 - true - true - - true - - - СписокСостоянияУзловНастроитьПодпискиExtendedTooltip - 70 - Label - true - true - - Left - - - Form.Command.НастроитьПодписки - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - - - СписокСостоянияУзловГруппа1 + СписокСостоянияУзловГруппаНайти 27 СписокСостоянияУзловНайти @@ -794,7 +571,7 @@ СписокСостоянияУзловНайтиExtendedTooltip - 72 + 62 Label true true @@ -809,7 +586,7 @@ true UserCmds Auto - InAdditionalSubmenu + InCommandBarAndInAdditionalSubmenu СписокСостоянияУзловОтменитьПоиск @@ -821,7 +598,7 @@ СписокСостоянияУзловОтменитьПоискExtendedTooltip - 73 + 63 Label true true @@ -836,6 +613,134 @@ true UserCmds Auto + InCommandBarAndInAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Список состояния узлов группа найти</value> + + + СписокСостоянияУзловГруппаНайтиExtendedTooltip + 61 + Label + true + true + + Left + + + + + + СписокСостоянияУзловГруппаОбновитьМонитор + 28 + + СписокСостоянияУзловОбновитьМонитор + 20 + true + true + + true + + + СписокСостоянияУзловОбновитьМониторExtendedTooltip + 65 + Label + true + true + + Left + + + Form.Command.ОбновитьМонитор + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Список состояния узлов группа обновить монитор</value> + + + СписокСостоянияУзловГруппаОбновитьМониторExtendedTooltip + 64 + Label + true + true + + Left + + + + + + СписокСостоянияУзловПодробно + 49 + true + true + + true + + + СписокСостоянияУзловПодробноExtendedTooltip + 66 + Label + true + true + + Left + + + Form.Command.Подробно + Normal + Auto + true + true + UserCmds + Auto + + + СписокСостоянияУзловГруппаВывестиСписок + 50 + + СписокСостоянияУзловКопироватьВБуферОбмена + 26 + true + true + + true + + + СписокСостоянияУзловКопироватьВБуферОбменаExtendedTooltip + 68 + Label + true + true + + Left + + + Form.Item.СписокСостоянияУзлов.StandardCommand.CopyToClipboard + Normal + Auto + true + true + UserCmds + Auto InAdditionalSubmenu @@ -848,7 +753,7 @@ СписокСостоянияУзловВывестиСписокExtendedTooltip - 74 + 69 Label true true @@ -865,33 +770,6 @@ Auto InAdditionalSubmenu - - СписокСостоянияУзловКопироватьВБуферОбмена - 26 - true - true - - true - - - СписокСостоянияУзловКопироватьВБуферОбменаExtendedTooltip - 75 - Label - true - true - - Left - - - Form.Item.СписокСостоянияУзлов.StandardCommand.CopyToClipboard - Normal - Auto - true - true - UserCmds - Auto - InAdditionalSubmenu - true true @@ -899,11 +777,11 @@ <key>ru</key> - <value>Список состояния узлов группа 1</value> + <value>Список состояния узлов группа вывести список</value> - СписокСостоянияУзловГруппа1ExtendedTooltip - 71 + СписокСостоянияУзловГруппаВывестиСписокExtendedTooltip + 67 Label true true @@ -914,7 +792,7 @@ - СписокСостоянияУзловПодробно + СписокСостоянияУзловИзменитьФорму 53 true true @@ -922,8 +800,8 @@ true - СписокСостоянияУзловПодробноExtendedTooltip - 76 + СписокСостоянияУзловИзменитьФормуExtendedTooltip + 70 Label true true @@ -931,7 +809,33 @@ Left - Form.Command.Подробно + Form.StandardCommand.CustomizeForm + Normal + Auto + true + true + UserCmds + Auto + + + СписокСостоянияУзловСправка + 54 + true + true + + true + + + СписокСостоянияУзловСправкаExtendedTooltip + 71 + Label + true + true + + Left + + + Form.StandardCommand.Help Normal Auto true @@ -941,16 +845,12 @@ Left - - Selection - СписокСостоянияУзловВыбор - - СписокСостоянияУзловSearchString - 91 + СписокСостоянияУзловСтрокаПоиска + 86 - СписокСостоянияУзловSearchStringExtendedTooltip - 93 + СписокСостоянияУзловСтрокаПоискаРасширеннаяПодсказка + 88 Label true true @@ -959,8 +859,8 @@ - СписокСостоянияУзловSearchStringContextMenu - 92 + СписокСостоянияУзловСтрокаПоискаКонтекстноеМеню + 87 true СписокСостоянияУзлов @@ -969,11 +869,11 @@ - СписокСостоянияУзловViewStatus - 94 + СписокСостоянияУзловСостояниеПросмотра + 89 - СписокСостоянияУзловViewStatusExtendedTooltip - 96 + СписокСостоянияУзловСостояниеПросмотраРасширеннаяПодсказка + 91 Label true true @@ -982,8 +882,8 @@ - СписокСостоянияУзловViewStatusContextMenu - 95 + СписокСостоянияУзловСостояниеПросмотраКонтекстноеМеню + 90 true ViewStatusAddition @@ -993,11 +893,11 @@ - СписокСостоянияУзловSearchControl - 97 + СписокСостоянияУзловУправлениеПоиском + 92 - СписокСостоянияУзловSearchControlExtendedTooltip - 99 + СписокСостоянияУзловУправлениеПоискомРасширеннаяПодсказка + 94 Label true true @@ -1006,8 +906,8 @@ - СписокСостоянияУзловSearchControlContextMenu - 98 + СписокСостоянияУзловУправлениеПоискомКонтекстноеМеню + 93 true SearchControlAddition @@ -1018,7 +918,7 @@ СписокСостоянияУзловExtendedTooltip - 77 + 72 Label true true @@ -1029,61 +929,9 @@ СписокСостоянияУзловКонтекстноеМеню 2 - - СписокСостоянияУзловКонтекстноеМенюИзменитьКонечнуюТочку - 32 - true - true - - true - - - СписокСостоянияУзловКонтекстноеМенюИзменитьКонечнуюТочкуExtendedTooltip - 54 - Label - true - true - - Left - - - Form.Command.ИзменитьКонечнуюТочку - Normal - Auto - true - true - UserCmds - Auto - СписокСостоянияУзловКонтекстноеМенюГруппа2 38 - - СписокСостоянияУзловКонтекстноеМенюПерейтиВЖурналРегистрацииСобытийЗагрузкиДанных - 40 - true - true - - true - - - СписокСостоянияУзловКонтекстноеМенюПерейтиВЖурналРегистрацииСобытийЗагрузкиДанныхExtendedTooltip - 56 - Label - true - true - - Left - - - Form.Command.ПерейтиВЖурналРегистрацииСобытийЗагрузкиДанных - Normal - Auto - true - true - UserCmds - Auto - СписокСостоянияУзловКонтекстноеМенюПерейтиВЖурналРегистрацииСобытийВыгрузкиДанных 39 @@ -1094,7 +942,7 @@ СписокСостоянияУзловКонтекстноеМенюПерейтиВЖурналРегистрацииСобытийВыгрузкиДанныхExtendedTooltip - 57 + 56 Label true true @@ -1110,6 +958,32 @@ UserCmds Auto + + СписокСостоянияУзловКонтекстноеМенюПерейтиВЖурналРегистрацииСобытийЗагрузкиДанных + 40 + true + true + + true + + + СписокСостоянияУзловКонтекстноеМенюПерейтиВЖурналРегистрацииСобытийЗагрузкиДанныхExtendedTooltip + 57 + Label + true + true + + Left + + + Form.Command.ПерейтиВЖурналРегистрацииСобытийЗагрузкиДанных + Normal + Auto + true + true + UserCmds + Auto + true true @@ -1208,13 +1082,9 @@ - true - true - true true true true - MultiRow Row
                                true
                                1 @@ -1223,14 +1093,14 @@ AutoUse true true - false true Auto Auto true true - true - true + None + None + None true
                                @@ -1241,10 +1111,6 @@ -1 Left - - NotificationProcessing - ОбработкаОповещения - OnCreateAtServer ПриСозданииНаСервере @@ -1257,6 +1123,7 @@ true true true + UseIfNecessary auto true @@ -1279,7 +1146,7 @@ ДатаПоследнейУспешнойВыгрузки <key>ru</key> - <value>Дата успешной отправки</value> + <value>Данные отправлены</value> 1 @@ -1331,7 +1198,7 @@ УзелИнформационнойБазы <key>ru</key> - <value>Конечная точка</value> + <value>Приложение</value> 4 @@ -1348,7 +1215,7 @@ ДатаПоследнейУспешнойЗагрузки <key>ru</key> - <value>Дата успешного получения</value> + <value>Данные получены</value> 5 @@ -1366,7 +1233,7 @@ ДатаПоследнейЗагрузки <key>ru</key> - <value>Дата получения</value> + <value>Последняя попытка получения</value> 6 @@ -1384,7 +1251,7 @@ ДатаПоследнейВыгрузки <key>ru</key> - <value>Дата отправки</value> + <value>Последняя попытка отправки</value> 7 @@ -1417,14 +1284,18 @@ - Ведущая + ОбластьДанных <key>ru</key> - <value>Ведущая</value> + <value>Область данных</value> 9 - Boolean + Number + + 7 + true + true @@ -1506,58 +1377,6 @@ - - ПодключитьКонечнуюТочку - - <key>ru</key> - <value>Подключить конечную точку</value> - - 1 - - ru - Подключить конечную точку - - - true - - - StdPicture.CreateListItem - - - - ПодключитьКонечнуюТочку - - - TextPicture - DontUse - Auto - - - ОтправитьИПолучитьСообщения - - <key>ru</key> - <value>Отправить и получить сообщения</value> - - 2 - - ru - Отправить и получить сообщения сейчас - - - true - - - CommonPicture.СинхронизацияДанныхВыполнение - - - - ОтправитьИПолучитьСообщения - - - TextPicture - DontUse - Auto - ОбновитьМонитор @@ -1584,37 +1403,11 @@ <currentRowUse>DontUse</currentRowUse> <selectedRowsUse>Auto</selectedRowsUse> </formCommands> - <formCommands> - <name>ИзменитьКонечнуюТочку</name> - <title> - <key>ru</key> - <value>Изменить</value> - - 5 - - ru - Изменить конечную точку - - - true - - F2 - - StdPicture.Change - - - - ИзменитьКонечнуюТочку - - - DontUse - Auto - ПерейтиВЖурналРегистрацииСобытийВыгрузкиДанных <key>ru</key> - <value>События отправки сообщений</value> + <value>События отправки данных...</value> 4 @@ -1624,6 +1417,9 @@ true + + StdPicture.EventLog + ПерейтиВЖурналРегистрацииСобытийВыгрузкиДанных @@ -1636,7 +1432,7 @@ ПерейтиВЖурналРегистрацииСобытийЗагрузкиДанных <key>ru</key> - <value>События получения сообщений</value> + <value>События получения данных...</value> 6 @@ -1646,6 +1442,9 @@ true + + StdPicture.EventLog + ПерейтиВЖурналРегистрацииСобытийЗагрузкиДанных @@ -1654,80 +1453,13 @@ DontUse Auto - - НастроитьРасписаниеОтправкиИПолученияСообщенийСистемы - - <key>ru</key> - <value>Настроить расписание...</value> - - 7 - - ru - Настроить расписание отправки и получения сообщений системы - - - true - - - - НастроитьРасписаниеОтправкиИПолученияСообщенийСистемы - - - Picture - DontUse - Auto - - - ВключитьОтключитьРасписаниеОтправкиИПолученияСообщенийСистемы - - <key>ru</key> - <value>Включить расписание отправки и получения</value> - - 8 - - ru - Включить/отключить расписание отправки и получения сообщений системы - - - true - - - - ВключитьОтключитьРасписаниеОтправкиИПолученияСообщенийСистемы - - - DontUse - Auto - - - НастроитьПодписки - - <key>ru</key> - <value>Настроить подписки...</value> - - 9 - - ru - Настроить подписки - - - true - - - - НастроитьПодписки - - - DontUse - Auto - Подробно <key>ru</key> <value>Подробно</value> - 10 + 1 ru Показать подробную информацию diff --git a/SSL/src/CommonForms/МониторСинхронизацииДанныхВМоделиСервиса/Module.bsl b/SSL/src/CommonForms/МониторСинхронизацииДанныхВМоделиСервиса/Module.bsl new file mode 100644 index 000000000..15599b0ed --- /dev/null +++ b/SSL/src/CommonForms/МониторСинхронизацииДанныхВМоделиСервиса/Module.bsl @@ -0,0 +1,155 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Не Пользователи.ЭтоПолноправныйПользователь(Неопределено, Истина, Ложь) Тогда + ВызватьИсключение НСтр("ru = 'Нет прав на администрирование обменов данными.'"); + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + ОбновитьСписокСостоянияУзлов(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ПерейтиВЖурналРегистрацииСобытийВыгрузкиДанных(Команда) + + ТекущиеДанные = Элементы.СписокСостоянияУзлов.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ТекущиеДанные.УзелИнформационнойБазы = Неопределено Тогда + Возврат; + КонецЕсли; + + ОбменДаннымиКлиент.ПерейтиВЖурналРегистрацииСобытийДанныхМодально(ТекущиеДанные.УзелИнформационнойБазы, ЭтотОбъект, "ВыгрузкаДанных"); + +КонецПроцедуры + +&НаКлиенте +Процедура ПерейтиВЖурналРегистрацииСобытийЗагрузкиДанных(Команда) + + ТекущиеДанные = Элементы.СписокСостоянияУзлов.ТекущиеДанные; + + Если ТекущиеДанные = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ТекущиеДанные.УзелИнформационнойБазы = Неопределено Тогда + Возврат; + КонецЕсли; + + ОбменДаннымиКлиент.ПерейтиВЖурналРегистрацииСобытийДанныхМодально(ТекущиеДанные.УзелИнформационнойБазы, ЭтотОбъект, "ЗагрузкаДанных"); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьМонитор(Команда) + + ОбновитьДанныеМонитора(); + +КонецПроцедуры + +&НаКлиенте +Процедура Подробно(Команда) + + ПодробноНаСервере(); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ОбновитьСписокСостоянияУзлов() + + СписокСостоянияУзлов.Очистить(); + + СписокСостоянияУзлов.Загрузить( + ОбменДаннымиВМоделиСервиса.ТаблицаМонитораОбменаДанными(ОбменДаннымиПовтИсп.РазделенныеПланыОбменаБСП())); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьДанныеМонитора() + + ИндексСтрокиСписокСостоянияУзлов = ПолучитьТекущийИндексСтроки("СписокСостоянияУзлов"); + + // выполняем обновление таблиц монитора на сервере + ОбновитьСписокСостоянияУзлов(); + + // выполняем позиционирование курсора + ВыполнитьПозиционированиеКурсора("СписокСостоянияУзлов", ИндексСтрокиСписокСостоянияУзлов); + +КонецПроцедуры + +&НаКлиенте +Функция ПолучитьТекущийИндексСтроки(ИмяТаблицы) + + // возвращаемое значение функции + ИндексСтроки = Неопределено; + + // при обновлении монитора выполняем позиционирование курсора + ТекущиеДанные = Элементы[ИмяТаблицы].ТекущиеДанные; + + Если ТекущиеДанные <> Неопределено Тогда + + ИндексСтроки = ЭтотОбъект[ИмяТаблицы].Индекс(ТекущиеДанные); + + КонецЕсли; + + Возврат ИндексСтроки; +КонецФункции + +&НаКлиенте +Процедура ВыполнитьПозиционированиеКурсора(ИмяТаблицы, ИндексСтроки) + + Если ИндексСтроки <> Неопределено Тогда + + // выполняем проверки позиционирования курсора после получения новых данных + Если ЭтотОбъект[ИмяТаблицы].Количество() <> 0 Тогда + + Если ИндексСтроки > ЭтотОбъект[ИмяТаблицы].Количество() - 1 Тогда + + ИндексСтроки = ЭтотОбъект[ИмяТаблицы].Количество() - 1; + + КонецЕсли; + + // позиционируем курсор + Элементы[ИмяТаблицы].ТекущаяСтрока = ЭтотОбъект[ИмяТаблицы][ИндексСтроки].ПолучитьИдентификатор(); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПодробноНаСервере() + + Элементы.СписокСостоянияУзловПодробно.Пометка = Не Элементы.СписокСостоянияУзловПодробно.Пометка; + + Элементы.СписокСостоянияУзловДатаПоследнейУспешнойВыгрузки.Видимость = Элементы.СписокСостоянияУзловПодробно.Пометка; + Элементы.СписокСостоянияУзловДатаПоследнейУспешнойЗагрузки.Видимость = Элементы.СписокСостоянияУзловПодробно.Пометка; + Элементы.СписокСостоянияУзловИмяПланаОбмена.Видимость = Элементы.СписокСостоянияУзловПодробно.Пометка; + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/CommonForms/МониторСинхронизацииДанныхВМоделиСервиса/МониторСинхронизацииДанныхВМоделиСервиса.mdo b/SSL/src/CommonForms/МониторСинхронизацииДанныхВМоделиСервиса/МониторСинхронизацииДанныхВМоделиСервиса.mdo new file mode 100644 index 000000000..067b9864e --- /dev/null +++ b/SSL/src/CommonForms/МониторСинхронизацииДанныхВМоделиСервиса/МониторСинхронизацииДанныхВМоделиСервиса.mdo @@ -0,0 +1,11 @@ + + + МониторСинхронизацииДанныхВМоделиСервиса + + ru + Монитор синхронизации данных в модели сервиса + + PersonalComputer + MobileDevice + true + diff --git a/SSL/src/CommonForms/НапоминаниеПриРедактировании/Module.bsl b/SSL/src/CommonForms/НапоминаниеПриРедактировании/Module.bsl index 99b53af4e..860504e23 100644 --- a/SSL/src/CommonForms/НапоминаниеПриРедактировании/Module.bsl +++ b/SSL/src/CommonForms/НапоминаниеПриРедактировании/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - БольшеНеПоказывать = Ложь; КонецПроцедуры diff --git a/SSL/src/CommonForms/НастройкаДоступаКСервисуMorpher/Help/ru.html b/SSL/src/CommonForms/НастройкаДоступаКСервисуMorpher/Help/ru.html index ed8587f9f..9b4c23939 100644 --- a/SSL/src/CommonForms/НастройкаДоступаКСервисуMorpher/Help/ru.html +++ b/SSL/src/CommonForms/НастройкаДоступаКСервисуMorpher/Help/ru.html @@ -1,4 +1,4 @@ - +

                                Предназначена для ввода данных регистрации на сервисе склонений http://morpher.ru/.

                                Открывается по команде Настройка доступа к сервису "Морфер" в разделе Администрирование - Интернет-Поддержка и Сервисы.

                                Анонимный вход

                                diff --git a/SSL/src/CommonForms/НастройкаДоступаКСервисуMorpher/Module.bsl b/SSL/src/CommonForms/НастройкаДоступаКСервисуMorpher/Module.bsl index 9e59c899b..2a5ecef33 100644 --- a/SSL/src/CommonForms/НастройкаДоступаКСервисуMorpher/Module.bsl +++ b/SSL/src/CommonForms/НастройкаДоступаКСервисуMorpher/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - УстановитьПривилегированныйРежим(Истина); ВладелецТокена = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("РегистрСведений.СклоненияПредставленийОбъектов"); Токен = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ВладелецТокена, "ТокенДоступаКСервисуMorpher", Истина); diff --git a/SSL/src/CommonForms/НастройкаКомандПечати/Help/ru.html b/SSL/src/CommonForms/НастройкаКомандПечати/Help/ru.html index 1458b702f..eb82d4cad 100644 --- a/SSL/src/CommonForms/НастройкаКомандПечати/Help/ru.html +++ b/SSL/src/CommonForms/НастройкаКомандПечати/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                                Открывается по команде Подменю "Печать" в разделе Администрирование - Печатные формы, отчеты и обработки.

                                Список состоит из двух частей:

                                @@ -9,8 +9,8 @@
                                • Нажмите кнопку Перейти в список для того чтобы открыть выделенный список, для которого настраиваются команды.

                                Внешние печатные формы

                                Печатные формы из расширения

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

                              Печатные формы из расширения

                              • Разработчик может назначить печатные формы в расширении.
                              • diff --git a/SSL/src/CommonForms/НастройкаКомандПечати/Module.bsl b/SSL/src/CommonForms/НастройкаКомандПечати/Module.bsl index 58ee36908..179d16b4f 100644 --- a/SSL/src/CommonForms/НастройкаКомандПечати/Module.bsl +++ b/SSL/src/CommonForms/НастройкаКомандПечати/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Отбор = Параметры.Отбор; Если Отбор.Количество() > 0 Тогда diff --git a/SSL/src/CommonForms/НастройкаМоихОтчетовИОбработок/Module.bsl b/SSL/src/CommonForms/НастройкаМоихОтчетовИОбработок/Module.bsl index 0b0a23280..a912c0602 100644 --- a/SSL/src/CommonForms/НастройкаМоихОтчетовИОбработок/Module.bsl +++ b/SSL/src/CommonForms/НастройкаМоихОтчетовИОбработок/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Если Параметры.ВидОбработок = Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительнаяОбработка Тогда Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( diff --git a/SSL/src/CommonForms/НастройкаОбменаСообщениями/Module.bsl b/SSL/src/CommonForms/НастройкаОбменаСообщениями/Module.bsl deleted file mode 100644 index eeadfa5cf..000000000 --- a/SSL/src/CommonForms/НастройкаОбменаСообщениями/Module.bsl +++ /dev/null @@ -1,293 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - Если РаботаВМоделиСервиса.РазделениеВключено() - И РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда - - ОбщегоНазначения.СообщитьПользователю( - НСтр("ru = 'Настройка подсистемы в разделенном режиме не поддерживается.'"),,,, Отказ); - Возврат; - КонецЕсли; - - ОбновитьСписокСостоянияУзлов(); - - УстановитьПривилегированныйРежим(Истина); - - Элементы.СписокСостоянияУзловВключитьОтключитьРасписаниеОтправкиИПолученияСообщенийСистемы.Пометка = - РегламентныеЗаданияСервер.РегламентноеЗаданиеИспользуется( - Метаданные.РегламентныеЗадания.ОтправкаИПолучениеСообщенийСистемы);; - -КонецПроцедуры - -&НаКлиенте -Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) - - Если ИмяСобытия = ОбменСообщениямиКлиент.ИмяСобытияВыполненаОтправкаИПолучениеСообщений() - ИЛИ ИмяСобытия = ОбменСообщениямиКлиент.ИмяСобытияЗакрытаФормаКонечнойТочки() - ИЛИ ИмяСобытия = ОбменСообщениямиКлиент.ИмяСобытияДобавленаКонечнаяТочка() - ИЛИ ИмяСобытия = ОбменСообщениямиКлиент.ИмяСобытияУстановленаВедущаяКонечнаяТочка() Тогда - - ОбновитьДанныеМонитора(); - - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиСобытийЭлементовШапкиФормы - -&НаКлиенте -Процедура СписокСостоянияУзловВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) - - ИзменитьКонечнуюТочку(Неопределено); - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиКомандФормы - -&НаКлиенте -Процедура ПодключитьКонечнуюТочку(Команда) - - ОткрытьФорму("ОбщаяФорма.ПодключениеКонечнойТочки",, ЭтотОбъект, 1); - -КонецПроцедуры - -&НаКлиенте -Процедура НастроитьПодписки(Команда) - - ОткрытьФорму("РегистрСведений.ПодпискиПолучателей.Форма.НастройкаПодписокЭтойКонечнойТочки",, ЭтотОбъект); - -КонецПроцедуры - -&НаКлиенте -Процедура ОтправитьИПолучитьСообщения(Команда) - - ОбменСообщениямиКлиент.ОтправитьИПолучитьСообщения(); - -КонецПроцедуры - -&НаКлиенте -Процедура ИзменитьКонечнуюТочку(Команда) - - ТекущиеДанные = Элементы.СписокСостоянияУзлов.ТекущиеДанные; - - Если ТекущиеДанные = Неопределено Тогда - Возврат; - КонецЕсли; - - ПоказатьЗначение(, ТекущиеДанные.УзелИнформационнойБазы); - -КонецПроцедуры - -&НаКлиенте -Процедура ПерейтиВЖурналРегистрацииСобытийВыгрузкиДанных(Команда) - - ТекущиеДанные = Элементы.СписокСостоянияУзлов.ТекущиеДанные; - - Если ТекущиеДанные = Неопределено Тогда - Возврат; - КонецЕсли; - - ОбменДаннымиКлиент.ПерейтиВЖурналРегистрацииСобытийДанныхМодально(ТекущиеДанные.УзелИнформационнойБазы, ЭтотОбъект, "ВыгрузкаДанных"); - -КонецПроцедуры - -&НаКлиенте -Процедура ПерейтиВЖурналРегистрацииСобытийЗагрузкиДанных(Команда) - - ТекущиеДанные = Элементы.СписокСостоянияУзлов.ТекущиеДанные; - - Если ТекущиеДанные = Неопределено Тогда - Возврат; - КонецЕсли; - - ОбменДаннымиКлиент.ПерейтиВЖурналРегистрацииСобытийДанныхМодально(ТекущиеДанные.УзелИнформационнойБазы, ЭтотОбъект, "ЗагрузкаДанных"); - -КонецПроцедуры - -&НаКлиенте -Процедура НастроитьРасписаниеОтправкиИПолученияСообщенийСистемы(Команда) - - Диалог = Новый ДиалогРасписанияРегламентногоЗадания(ПолучитьРасписание()); - ОписаниеОповещения = Новый ОписаниеОповещения("УстановитьРасписаниеОтправкиИПолученияСообщенийСистемы", ЭтотОбъект); - Диалог.Показать(ОписаниеОповещения); - -КонецПроцедуры - -&НаКлиенте -Процедура УстановитьРасписаниеОтправкиИПолученияСообщенийСистемы(Расписание, ДополнительныеПараметры) Экспорт - - Если Расписание <> Неопределено Тогда - - УстановитьРасписание(Расписание); - - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура ВключитьОтключитьРасписаниеОтправкиИПолученияСообщенийСистемы(Команда) - - ВключитьОтключитьРасписаниеОтправкиИПолученияСообщенийСистемыНаСервере(); - -КонецПроцедуры - -&НаКлиенте -Процедура ОбновитьМонитор(Команда) - - ОбновитьДанныеМонитора(); - -КонецПроцедуры - -&НаКлиенте -Процедура Подробно(Команда) - - ПодробноНаСервере(); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -&НаСервере -Процедура ВключитьОтключитьРасписаниеОтправкиИПолученияСообщенийСистемыНаСервере() - - УстановитьПривилегированныйРежим(Истина); - - Элементы.СписокСостоянияУзловВключитьОтключитьРасписаниеОтправкиИПолученияСообщенийСистемы.Пометка = - НЕ РегламентныеЗаданияСервер.РегламентноеЗаданиеИспользуется( - Метаданные.РегламентныеЗадания.ОтправкаИПолучениеСообщенийСистемы); - - РегламентныеЗаданияСервер.УстановитьИспользованиеРегламентногоЗадания( - Метаданные.РегламентныеЗадания.ОтправкаИПолучениеСообщенийСистемы, - Элементы.СписокСостоянияУзловВключитьОтключитьРасписаниеОтправкиИПолученияСообщенийСистемы.Пометка); - -КонецПроцедуры - -&НаСервереБезКонтекста -Функция ПолучитьРасписание() - - УстановитьПривилегированныйРежим(Истина); - - Возврат РегламентныеЗаданияСервер.РасписаниеРегламентногоЗадания( - Метаданные.РегламентныеЗадания.ОтправкаИПолучениеСообщенийСистемы); - -КонецФункции - -&НаСервереБезКонтекста -Процедура УстановитьРасписание(Знач Расписание) - - УстановитьПривилегированныйРежим(Истина); - - РегламентныеЗаданияСервер.УстановитьРасписаниеРегламентногоЗадания( - Метаданные.РегламентныеЗадания.ОтправкаИПолучениеСообщенийСистемы, - Расписание); - -КонецПроцедуры - -&НаСервере -Процедура ОбновитьСписокСостоянияУзлов() - - СписокСостоянияУзлов.Очистить(); - - Массив = Новый Массив; - Массив.Добавить("ОбменСообщениями"); - - МонитораОбменаДанными = ОбменДаннымиСервер.ТаблицаМонитораОбменаДанными(Массив, "Ведущая,Заблокирована"); - - // Обновляем данные в списке состояния узлов. - Для Каждого Настройка Из МонитораОбменаДанными Цикл - - Если Настройка.Заблокирована Тогда - Продолжить; - КонецЕсли; - - ЗаполнитьЗначенияСвойств(СписокСостоянияУзлов.Добавить(), Настройка); - - КонецЦикла; - -КонецПроцедуры - -&НаКлиенте -Процедура ОбновитьДанныеМонитора() - - ИндексСтрокиСписокСостоянияУзлов = ПолучитьТекущийИндексСтроки("СписокСостоянияУзлов"); - - // Выполняем обновление таблиц монитора на сервере. - ОбновитьСписокСостоянияУзлов(); - - // Выполняем позиционирование курсора. - ВыполнитьПозиционированиеКурсора("СписокСостоянияУзлов", ИндексСтрокиСписокСостоянияУзлов); - -КонецПроцедуры - -&НаКлиенте -Функция ПолучитьТекущийИндексСтроки(ИмяТаблицы) - - // Возвращаемое значение функции. - ИндексСтроки = Неопределено; - - // При обновлении монитора выполняем позиционирование курсора. - ТекущиеДанные = Элементы[ИмяТаблицы].ТекущиеДанные; - - Если ТекущиеДанные <> Неопределено Тогда - - ИндексСтроки = ЭтотОбъект[ИмяТаблицы].Индекс(ТекущиеДанные); - - КонецЕсли; - - Возврат ИндексСтроки; -КонецФункции - -&НаКлиенте -Процедура ВыполнитьПозиционированиеКурсора(ИмяТаблицы, ИндексСтроки) - - Если ИндексСтроки <> Неопределено Тогда - - // Выполняем проверки позиционирования курсора после получения новых данных. - Если ЭтотОбъект[ИмяТаблицы].Количество() <> 0 Тогда - - Если ИндексСтроки > ЭтотОбъект[ИмяТаблицы].Количество() - 1 Тогда - - ИндексСтроки = ЭтотОбъект[ИмяТаблицы].Количество() - 1; - - КонецЕсли; - - // позиционируем курсор - Элементы[ИмяТаблицы].ТекущаяСтрока = ЭтотОбъект[ИмяТаблицы][ИндексСтроки].ПолучитьИдентификатор(); - - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - -&НаСервере -Процедура ПодробноНаСервере() - - Элементы.СписокСостоянияУзловПодробно.Пометка = Не Элементы.СписокСостоянияУзловПодробно.Пометка; - - Элементы.СписокСостоянияУзловДатаПоследнейЗагрузки.Видимость = Элементы.СписокСостоянияУзловПодробно.Пометка; - Элементы.СписокСостоянияУзловДатаПоследнейВыгрузки.Видимость = Элементы.СписокСостоянияУзловПодробно.Пометка; - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonForms/НастройкаОнлайнПоддержки/Help/ru.html b/SSL/src/CommonForms/НастройкаОнлайнПоддержки/Help/ru.html index ab1614606..17b598354 100644 --- a/SSL/src/CommonForms/НастройкаОнлайнПоддержки/Help/ru.html +++ b/SSL/src/CommonForms/НастройкаОнлайнПоддержки/Help/ru.html @@ -4,7 +4,7 @@ TD { VERTICAL-ALIGN: top } - +

                                Предназначена для настройки кнопки запуска приложения для связи со специалистом онлайн-поддержки (1С-Коннект) на начальной странице. Настройки хранятся для каждого пользователя с привязкой к рабочему месту.

                                Открывается по команде Настройка онлайн-поддержки в разделе Администрирование - Интернет-поддержка и сервисы - Онлайн-поддержка.

                                Запуск одной и той же базы под веб-клиентом и тонким клиентом потребует две процедуры настройки.

                                diff --git a/SSL/src/CommonForms/НастройкаОтправкиSMS/Help/ru.html b/SSL/src/CommonForms/НастройкаОтправкиSMS/Help/ru.html index e7b434d33..b104c659e 100644 --- a/SSL/src/CommonForms/НастройкаОтправкиSMS/Help/ru.html +++ b/SSL/src/CommonForms/НастройкаОтправкиSMS/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                                Открывается по команде Настройка отправки SMS раздела Администрирование - Органайзер - Отправка SMS.

                                С помощью SMS можно организовать:

                                diff --git a/SSL/src/CommonForms/НастройкаОтправкиSMS/Module.bsl b/SSL/src/CommonForms/НастройкаОтправкиSMS/Module.bsl index a746a253f..9a8c4a471 100644 --- a/SSL/src/CommonForms/НастройкаОтправкиSMS/Module.bsl +++ b/SSL/src/CommonForms/НастройкаОтправкиSMS/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Константа.ПровайдерSMS"); УстановитьПривилегированныйРежим(Истина); НастройкиПровайдера = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Владелец, "Пароль, Логин, ИмяОтправителя"); diff --git a/SSL/src/CommonForms/НастройкаРабочегоКаталога/Help/ru.html b/SSL/src/CommonForms/НастройкаРабочегоКаталога/Help/ru.html index a9c090253..b02de289b 100644 --- a/SSL/src/CommonForms/НастройкаРабочегоКаталога/Help/ru.html +++ b/SSL/src/CommonForms/НастройкаРабочегоКаталога/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                                Открывается по ссылке Настройка рабочего каталога в персональных настройках программы (вкладка Работа с файлами).

                                diff --git a/SSL/src/CommonForms/НастройкаРабочегоКаталога/Module.bsl b/SSL/src/CommonForms/НастройкаРабочегоКаталога/Module.bsl index b5c36c024..4d5aff4d1 100644 --- a/SSL/src/CommonForms/НастройкаРабочегоКаталога/Module.bsl +++ b/SSL/src/CommonForms/НастройкаРабочегоКаталога/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если ОбщегоНазначения.ЭтоВебКлиент() Тогда Элементы.СейчасВЛокальномКэшеФайлов.Видимость = Ложь; Элементы.ОчиститьРабочийКаталог.Видимость = Ложь; diff --git a/SSL/src/CommonForms/НастройкиВходаПользователей/Help/ru.html b/SSL/src/CommonForms/НастройкиВходаПользователей/Help/ru.html index d0eda5001..efd1a28ca 100644 --- a/SSL/src/CommonForms/НастройкиВходаПользователей/Help/ru.html +++ b/SSL/src/CommonForms/НастройкиВходаПользователей/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                                Требования к паролю

                                Для защиты от несанкционированного доступа к программе укажите с помощью флажков:

                                diff --git a/SSL/src/CommonForms/НастройкиВходаПользователей/Module.bsl b/SSL/src/CommonForms/НастройкиВходаПользователей/Module.bsl index 1691654cd..b93ac8ef4 100644 --- a/SSL/src/CommonForms/НастройкиВходаПользователей/Module.bsl +++ b/SSL/src/CommonForms/НастройкиВходаПользователей/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ПоказатьНастройкиВнешнихПользователей = Параметры.ПоказатьНастройкиВнешнихПользователей; ПредлагаемыеЗначенияНастроек = Новый Структура; diff --git a/SSL/src/CommonForms/НастройкиПравОбъектов/Module.bsl b/SSL/src/CommonForms/НастройкиПравОбъектов/Module.bsl index cfa960499..7f10f5cae 100644 --- a/SSL/src/CommonForms/НастройкиПравОбъектов/Module.bsl +++ b/SSL/src/CommonForms/НастройкиПравОбъектов/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - СсылкаНаОбъект = Параметры.СсылкаНаОбъект; Если Не ЗначениеЗаполнено(СсылкаНаОбъект) Тогда ВызватьИсключение НСтр("ru = 'Не указан владелец настроек прав.'"); diff --git a/SSL/src/CommonForms/НастройкиРегистрацииСобытийДоступаКПерсональнымДанным/Help/ru.html b/SSL/src/CommonForms/НастройкиРегистрацииСобытийДоступаКПерсональнымДанным/Help/ru.html index 23844dcba..4d6f0f2e1 100644 --- a/SSL/src/CommonForms/НастройкиРегистрацииСобытийДоступаКПерсональнымДанным/Help/ru.html +++ b/SSL/src/CommonForms/НастройкиРегистрацииСобытийДоступаКПерсональнымДанным/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                                Открывается по команде Регистрация событий доступа к персональным данным из раздела Поддержка и обслуживание - Администрирование.

                                Регистрация почти всех событий (кроме событий доступа к персональным данным в программе выполняются по умолчанию).

                                diff --git a/SSL/src/CommonForms/НастройкиРегистрацииСобытийДоступаКПерсональнымДанным/Module.bsl b/SSL/src/CommonForms/НастройкиРегистрацииСобытийДоступаКПерсональнымДанным/Module.bsl index 669c40816..64f9c9d8e 100644 --- a/SSL/src/CommonForms/НастройкиРегистрацииСобытийДоступаКПерсональнымДанным/Module.bsl +++ b/SSL/src/CommonForms/НастройкиРегистрацииСобытийДоступаКПерсональнымДанным/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если НЕ Пользователи.ЭтоПолноправныйПользователь(, Истина) Тогда Отказ = Истина; КонецЕсли; diff --git a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Help/ru.html b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Help/ru.html index 9a6fab925..8e1ecf5e1 100644 --- a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Help/ru.html +++ b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Help/ru.html @@ -1,4 +1,4 @@ - +

                                Настройка параметров для использования средств электронной подписи и шифрования (криптографии). 

                                Открывается по команде Настройки электронной подписи и шифрования раздела Администрирование - Общие настройки.

                                Для электронной подписи и шифрования требуется установить специальную стороннюю программу (криптопровайдер).

                                @@ -18,8 +18,8 @@
                              • Можно добавить записи о других программах (поставляются готовые настройки для Microsoft Enhanced CSP, ViPNet CSP, КриптоПро CSP, ЛИССИ CSP, Сигнал-КОМ CSP).
                              • Если требуется использовать программу отличную от известных, тогда нужно указать ее имя, тип и алгоритмы, как указано в инструкции, поставляемой ее производителем.
                              • В колонке Результат проверки отражаются сведения, по которым можно понять установлена ли программа на компьютере или нет или же установлена, но некорректно. -
                              • Linux: Путь к программе (<Имя программы, соответствующей выделенной строке в списке>) - поле, которое требуется обязательно заполнять на компьютерах под управлением ОС Linux.
                              • -
                              • В нижней части списка расположена ссылка Инструкция по работе с программами электронной подписи и шифрования. Перейдите по этой ссылке в соответствующий раздел 1С:ИТС, если имеются вопросы. +
                              • Linux: Путь к программе (<Имя программы, соответствующей выделенной строке в списке>) - поле, которое требуется обязательно заполнять на компьютерах под управлением ОС Linux.
                              • +
                              • В нижней части списка расположена ссылка Инструкция по работе с программами электронной подписи и шифрования. Перейдите по этой ссылке в соответствующий раздел 1С:ИТС, если имеются вопросы.
                              • Проверять подписи и сертификаты на сервере - этот флажок виден только для серверных баз. Если его установить, тогда проверка электронной подписи и сертификата будет происходить на сервере, что позволяет не устанавливать программу на каждом компьютере, гдетребуется только такие операции.
                                • В записи о программе можно перейти к списку Пути к программе на серверах Linux - в котором нужно указать пути для тех компьютеров, на которых сервер 1С:Предприятия работает под управлением ОС Linux.

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

                              • Задайте Расширение для зашифрованных файлов при отправке по почте, при выполнении команды Сохранить как и при экспорте папки (по умолчанию .p7m). diff --git a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl index 47709989a..063ea0e1c 100644 --- a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl +++ b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl @@ -21,10 +21,6 @@ УстановитьУсловноеОформление(); ЭлектроннаяПодписьСлужебный.УстановитьУсловноеОформлениеСпискаСертификатов(Сертификаты, Истина); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - НавигационнаяСсылка = "e1cib/app/ОбщаяФорма.НастройкиЭлектроннойПодписиИШифрования"; Если Не ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда diff --git a/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Help/ru.html b/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Help/ru.html index 5e0ebc8c0..8ddbf4deb 100644 --- a/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Help/ru.html +++ b/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                                diff --git a/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Module.bsl b/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Module.bsl index bf2c76273..03bebf8f0 100644 --- a/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Module.bsl +++ b/SSL/src/CommonForms/ОписаниеИзмененийПрограммы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - НастройкиПодсистемы = ОбновлениеИнформационнойБазыСлужебный.НастройкиПодсистемы(); АдресФормыВПрограмме = НастройкиПодсистемы.РасположениеОписанияИзмененийПрограммы; diff --git a/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Form.form b/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Form.form new file mode 100644 index 000000000..fc427e334 --- /dev/null +++ b/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Form.form @@ -0,0 +1,1102 @@ + + + + <key>ru</key> + <value>Прекращение синхронизации данных</value> + + + ПанельОсновная + 1 + + Начало + 14 + + Группа7 + 15 + + Декорация3 + 16 + true + true + + true + + + Декорация3ExtendedTooltip + 34 + Label + true + true + + Left + + + + Декорация3КонтекстноеМеню + 17 + true + + 4 + true + 2 + true + + + CommonPicture.Предупреждение32 + + + + + Декорация1 + 18 + + <key>ru</key> + <value>Синхронизация с автономным рабочим местом будет прекращена +без возможности восстановления. +Убедитесь, что все данные из автономного рабочего места +перенесены в приложение в Интернете.</value> + + true + true + + true + + + Декорация1ExtendedTooltip + 35 + Label + true + true + + Left + + + + Декорация1КонтекстноеМеню + 19 + true + + Label + true + + Left + Center + + + true + true + + true + + + Группа7ExtendedTooltip + 33 + Label + true + true + + Left + + + UsualGroup + + Auto + NormalSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Начало</value> + + true + + НачалоExtendedTooltip + 32 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + Ожидание + 8 + + Группа8 + 9 + + Декорация4 + 10 + true + true + + true + + + Декорация4ExtendedTooltip + 38 + Label + true + true + + Left + + + + Декорация4КонтекстноеМеню + 11 + true + + 8 + true + 3 + true + + + CommonPicture.ДлительнаяОперация48 + + + + + Декорация5 + 12 + + <key>ru</key> + <value>Отключение автономного рабочего места. +Пожалуйста, подождите...</value> + + true + true + + true + + + Декорация5ExtendedTooltip + 39 + Label + true + true + + Left + + + + Декорация5КонтекстноеМеню + 13 + true + + Label + 3 + true + + Left + Center + + + true + true + + true + + + Группа8ExtendedTooltip + 37 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Ожидание</value> + + + ОжиданиеExtendedTooltip + 36 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + Завершение + 2 + + Группа9 + 3 + + Декорация6 + 4 + true + true + + true + + + Декорация6ExtendedTooltip + 42 + Label + true + true + + Left + + + + Декорация6КонтекстноеМеню + 5 + true + + 4 + true + 2 + true + + + CommonPicture.Информация32 + + + + + Декорация2 + 6 + + <key>ru</key> + <value>Синхронизация с автономным рабочим местом прекращена. +Теперь его можно удалить из списка информационных баз +на Вашем компьютере.</value> + + true + true + + true + + + Декорация2ExtendedTooltip + 43 + Label + true + true + + Left + + + + Декорация2КонтекстноеМеню + 7 + true + + Label + true + + Left + Center + + + true + true + + true + + + Группа9ExtendedTooltip + 41 + Label + true + true + + Left + + + UsualGroup + + Auto + NormalSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Завершение</value> + + + ЗавершениеExtendedTooltip + 40 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Панель основная</value> + + true + + ПанельОсновнаяExtendedTooltip + 31 + Label + true + true + + Left + + + Pages + + Auto + + + + ПанельНавигации + 20 + + СтраницаНавигацииНачало + 27 + + Группа5 + 28 + + ПрекратитьСинхронизациюДанных + 29 + true + true + + true + + + ПрекратитьСинхронизациюДанныхExtendedTooltip + 47 + Label + true + true + + Left + + + Form.Command.ПрекратитьСинхронизациюДанных + Auto + true + true + true + UserCmds + Auto + + + Отменить + 30 + true + true + + true + + + ОтменитьExtendedTooltip + 48 + Label + true + true + + Left + + + Form.Command.Отменить + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + Группа5ExtendedTooltip + 46 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Страница навигации начало</value> + + + СтраницаНавигацииНачалоExtendedTooltip + 45 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + СтраницаНавигацииОжидание + 21 + + Группа6 + 22 + + Закрыть + 23 + true + false + + true + + + ЗакрытьExtendedTooltip + 51 + Label + true + true + + Left + + + Form.Command.Закрыть + Normal + Auto + true + true + UserCmds + Auto + + true + false + + true + + true + + Группа6ExtendedTooltip + 50 + Label + true + true + + Left + + + CommandBar + + Right + + + true + false + + true + + + <key>ru</key> + <value>Страница навигации ожидание</value> + + true + true + + СтраницаНавигацииОжиданиеExtendedTooltip + 49 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + СтраницаНавигацииОкончание + 24 + + Группа14 + 25 + + Закрыть1 + 26 + true + true + + true + + + Закрыть1ExtendedTooltip + 54 + Label + true + true + + Left + + + Form.Command.Закрыть + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + true + + Группа14ExtendedTooltip + 53 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Страница навигации окончание</value> + + true + + СтраницаНавигацииОкончаниеExtendedTooltip + 52 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Панель навигации</value> + + + ПанельНавигацииExtendedTooltip + 44 + Label + true + true + + Left + + + Pages + + Auto + + + None + false + + ФормаКоманднаяПанель + -1 + Left + true + + + OnOpen + ПриОткрытии + + + OnCreateAtServer + ПриСозданииНаСервере + + LockOwner + true + true + Vertical + true + true + UseIfNecessary + auto + true + + ТаблицаПереходов + + <key>ru</key> + <value>Таблица переходов</value> + + 1 + + ValueTable + + + true + + + true + + + ПорядковыйНомерПерехода + + <key>ru</key> + <value>Порядковый номер перехода</value> + + 1 + + Number + + 3 + true + + + + 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> + + 5 + + String + + + + true + + + true + + + + ИмяОбработчикаПриПереходеДалее + + <key>ru</key> + <value>Имя обработчика при переходе далее</value> + + 6 + + String + + + + true + + + true + + + + ИмяОбработчикаПриПереходеНазад + + <key>ru</key> + <value>Имя обработчика при переходе назад</value> + + 7 + + String + + + + true + + + true + + + + ДлительнаяОперация + + <key>ru</key> + <value>Длительная операция</value> + + 8 + + Boolean + + + true + + + true + + + + ИмяОбработчикаДлительнойОперации + + <key>ru</key> + <value>Имя обработчика длительной операции</value> + + 9 + + String + + + + true + + + true + + + + + ПорядковыйНомерПерехода + + <key>ru</key> + <value>Порядковый номер перехода</value> + + 2 + + Number + + 3 + true + + + + true + + + true + + + + ДлительнаяОперация + + <key>ru</key> + <value>Длительная операция</value> + + 3 + + Boolean + + + true + + + true + + + + ДлительнаяОперацияЗавершена + + <key>ru</key> + <value>Длительная операция завершена</value> + + 4 + + Boolean + + + true + + + true + + + + ИдентификаторЗадания + + <key>ru</key> + <value>Идентификатор задания</value> + + 5 + + + true + + + true + + + + СобытиеЖурналаРегистрацииУдалениеАвтономногоРабочегоМеста + + <key>ru</key> + <value>Событие журнала регистрации удаление автономного рабочего места</value> + + 6 + + String + + + + true + + + true + + + + АвтономноеРабочееМесто + + <key>ru</key> + <value>Автономное рабочее место</value> + + 7 + + ExchangePlanRef + + + true + + + true + + + + ПараметрыОбработчикаОжидания + + <key>ru</key> + <value>Параметры обработчика ожидания</value> + + 8 + + + true + + + true + + + + Закрыть + + <key>ru</key> + <value>Закрыть</value> + + 1 + + ru + Закрыть + + + true + + + + ЗакрытьФорму + + + DontUse + Auto + + + Отменить + + <key>ru</key> + <value>Отменить</value> + + 2 + + ru + Отменить + + + true + + + + Отменить + + + DontUse + Auto + + + ПрекратитьСинхронизациюДанных + + <key>ru</key> + <value>Прекратить синхронизацию данных</value> + + 3 + + ru + Прекратить синхронизацию данных + + + true + + + + ПрекратитьСинхронизациюДанных + + + DontUse + Auto + + + + + + diff --git a/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Module.bsl b/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Module.bsl new file mode 100644 index 000000000..14457fd35 --- /dev/null +++ b/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/Module.bsl @@ -0,0 +1,540 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + АвтономноеРабочееМесто = Параметры.АвтономноеРабочееМесто; + + Если Не ЗначениеЗаполнено(АвтономноеРабочееМесто) Тогда + ВызватьИсключение НСтр("ru = 'Не задано автономное рабочее место.'"); + КонецЕсли; + + СобытиеЖурналаРегистрацииУдалениеАвтономногоРабочегоМеста = АвтономнаяРаботаСлужебный.СобытиеЖурналаРегистрацииУдалениеАвтономногоРабочегоМеста(); + + УстановитьОсновнойСценарий(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + // Позиционируемся на первом шаге помощника + УстановитьПорядковыйНомерПерехода(1); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ПрекратитьСинхронизациюДанных(Команда) + + ПерейтиДалее(); + +КонецПроцедуры + +&НаКлиенте +Процедура Отменить(Команда) + + Закрыть(); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗакрытьФорму(Команда) + + Закрыть(); + +КонецПроцедуры + +// Обработчики ожидания + +&НаКлиенте +Процедура ОбработчикОжиданияДлительнойОперации() + + Попытка + + Если ЗаданиеВыполнено(ИдентификаторЗадания) Тогда + + ДлительнаяОперация = Ложь; + ДлительнаяОперацияЗавершена = Истина; + ПерейтиДалее(); + + Иначе + + ОбменДаннымиКлиент.ОбновитьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжидания); + ПодключитьОбработчикОжидания("ОбработчикОжиданияДлительнойОперации", ПараметрыОбработчикаОжидания.ТекущийИнтервал, Истина); + + КонецЕсли; + + Исключение + + ЗаписатьОшибкуВЖурналРегистрации( + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), СобытиеЖурналаРегистрацииУдалениеАвтономногоРабочегоМеста); + + ДлительнаяОперация = Ложь; + ПерейтиНазад(); + ПоказатьПредупреждение(,НСтр("ru = 'В процессе работы возникли ошибки.'")); + + КонецПопытки; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Поставляемая часть + +&НаКлиенте +Процедура ИзменитьПорядковыйНомерПерехода(Итератор) + + ОчиститьСообщения(); + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + Итератор); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьПорядковыйНомерПерехода(Знач Значение) + + ЭтоПереходДалее = (Значение > ПорядковыйНомерПерехода); + + ПорядковыйНомерПерехода = Значение; + + Если ПорядковыйНомерПерехода < 0 Тогда + + ПорядковыйНомерПерехода = 0; + + КонецЕсли; + + ПорядковыйНомерПереходаПриИзменении(ЭтоПереходДалее); + +КонецПроцедуры + +&НаКлиенте +Процедура ПорядковыйНомерПереходаПриИзменении(Знач ЭтоПереходДалее) + + // Выполняем обработчики событий перехода + ВыполнитьОбработчикиСобытийПерехода(ЭтоПереходДалее); + + // Устанавливаем отображение страниц + СтрокиПереходаТекущие = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода)); + + Если СтрокиПереходаТекущие.Количество() = 0 Тогда + ВызватьИсключение НСтр("ru = 'Не определена страница для отображения.'"); + КонецЕсли; + + СтрокаПереходаТекущая = СтрокиПереходаТекущие[0]; + + Элементы.ПанельОсновная.ТекущаяСтраница = Элементы[СтрокаПереходаТекущая.ИмяОсновнойСтраницы]; + Элементы.ПанельНавигации.ТекущаяСтраница = Элементы[СтрокаПереходаТекущая.ИмяСтраницыНавигации]; + + // Устанавливаем текущую кнопку по умолчанию + КнопкаДалее = ПолучитьКнопкуФормыПоИмениКоманды(Элементы.ПанельНавигации.ТекущаяСтраница, "ПрекратитьСинхронизациюДанных"); + + Если КнопкаДалее <> Неопределено Тогда + + КнопкаДалее.КнопкаПоУмолчанию = Истина; + + Иначе + + КнопкаГотово = ПолучитьКнопкуФормыПоИмениКоманды(Элементы.ПанельНавигации.ТекущаяСтраница, "Закрыть"); + + Если КнопкаГотово <> Неопределено Тогда + + КнопкаГотово.КнопкаПоУмолчанию = Истина; + + КонецЕсли; + + КонецЕсли; + + Если ЭтоПереходДалее И СтрокаПереходаТекущая.ДлительнаяОперация Тогда + + ПодключитьОбработчикОжидания("ВыполнитьОбработчикДлительнойОперации", 0.1, Истина); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьОбработчикиСобытийПерехода(Знач ЭтоПереходДалее) + + // Обработчики событий переходов + Если ЭтоПереходДалее Тогда + + СтрокиПерехода = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода - 1)); + + Если СтрокиПерехода.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + СтрокаПерехода = СтрокиПерехода[0]; + + // обработчик ПриПереходеДалее + Если Не ПустаяСтрока(СтрокаПерехода.ИмяОбработчикаПриПереходеДалее) + И Не СтрокаПерехода.ДлительнаяОперация Тогда + + ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ)"; + ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПерехода.ИмяОбработчикаПриПереходеДалее); + + Отказ = Ложь; + + ВозвращаемоеЗначение = Вычислить(ИмяПроцедуры); + + Если Отказ Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1); + + Возврат; + + КонецЕсли; + + КонецЕсли; + + Иначе + + СтрокиПерехода = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода + 1)); + + Если СтрокиПерехода.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + СтрокаПерехода = СтрокиПерехода[0]; + + // обработчик ПриПереходеНазад + Если Не ПустаяСтрока(СтрокаПерехода.ИмяОбработчикаПриПереходеНазад) + И Не СтрокаПерехода.ДлительнаяОперация Тогда + + ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ)"; + ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПерехода.ИмяОбработчикаПриПереходеНазад); + + Отказ = Ложь; + + ВозвращаемоеЗначение = Вычислить(ИмяПроцедуры); + + Если Отказ Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1); + + Возврат; + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + СтрокиПереходаТекущие = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода)); + + Если СтрокиПереходаТекущие.Количество() = 0 Тогда + ВызватьИсключение НСтр("ru = 'Не определена страница для отображения.'"); + КонецЕсли; + + СтрокаПереходаТекущая = СтрокиПереходаТекущие[0]; + + Если СтрокаПереходаТекущая.ДлительнаяОперация И Не ЭтоПереходДалее Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1); + Возврат; + КонецЕсли; + + // обработчик ПриОткрытии + Если Не ПустаяСтрока(СтрокаПереходаТекущая.ИмяОбработчикаПриОткрытии) Тогда + + ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ, ПропуститьСтраницу, ЭтоПереходДалее)"; + ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПереходаТекущая.ИмяОбработчикаПриОткрытии); + + Отказ = Ложь; + ПропуститьСтраницу = Ложь; + + ВозвращаемоеЗначение = Вычислить(ИмяПроцедуры); + + Если Отказ Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1); + + Возврат; + + ИначеЕсли ПропуститьСтраницу Тогда + + Если ЭтоПереходДалее Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1); + + Возврат; + + Иначе + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1); + + Возврат; + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьОбработчикДлительнойОперации() + + СтрокиПереходаТекущие = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода)); + + Если СтрокиПереходаТекущие.Количество() = 0 Тогда + ВызватьИсключение НСтр("ru = 'Не определена страница для отображения.'"); + КонецЕсли; + + СтрокаПереходаТекущая = СтрокиПереходаТекущие[0]; + + // обработчик ОбработкаДлительнойОперации + Если Не ПустаяСтрока(СтрокаПереходаТекущая.ИмяОбработчикаДлительнойОперации) Тогда + + ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ, ПерейтиДалее)"; + ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПереходаТекущая.ИмяОбработчикаДлительнойОперации); + + Отказ = Ложь; + ПерейтиДалее = Истина; + + ВозвращаемоеЗначение = Вычислить(ИмяПроцедуры); + + Если Отказ Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1); + + Возврат; + + ИначеЕсли ПерейтиДалее Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1); + + Возврат; + + КонецЕсли; + + Иначе + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1); + + Возврат; + + КонецЕсли; + +КонецПроцедуры + +// Добавляет новую строку в конец текущей таблицы переходов +// +// Параметры: +// +// ПорядковыйНомерПерехода (обязательный) - Число. Порядковый номер перехода, который соответствует текущему шагу перехода +// ИмяОсновнойСтраницы (обязательный) - Строка. Имя страницы панели "ПанельОсновная", которая соответствует текущему +// номеру перехода +// ИмяСтраницыНавигации (обязательный) - Строка. Имя страницы панели "ПанельНавигации", которая соответствует текущему +// номеру перехода +// ИмяСтраницыДекорации (необязательный) - Строка. Имя страницы панели "ПанельДекорации", которая соответствует +// текущему номеру перехода +// ИмяОбработчикаПриОткрытии (необязательный) - Строка. Имя функции-обработчика события открытия текущей страницы помощника +// ИмяОбработчикаПриПереходеДалее (необязательный) - Строка. Имя функции-обработчика события перехода на следующую +// страницу помощника +// ИмяОбработчикаПриПереходеНазад (необязательный) - Строка. Имя функции-обработчика события перехода на предыдущую +// страницу помощника +// ДлительнаяОперация (необязательный) - Булево. Признак отображения страницы длительной операции. +// Истина - отображается страница длительной операции; Ложь - отображается обычная страница. Значение по умолчанию - Ложь. +// +&НаСервере +Функция ТаблицаПереходовНоваяСтрока(ИмяОсновнойСтраницы, ИмяСтраницыНавигации, ИмяСтраницыДекорации = "") + + НоваяСтрока = ТаблицаПереходов.Добавить(); + + НоваяСтрока.ПорядковыйНомерПерехода = ТаблицаПереходов.Количество(); + НоваяСтрока.ИмяОсновнойСтраницы = ИмяОсновнойСтраницы; + НоваяСтрока.ИмяСтраницыДекорации = ИмяСтраницыДекорации; + НоваяСтрока.ИмяСтраницыНавигации = ИмяСтраницыНавигации; + + Возврат НоваяСтрока; + +КонецФункции + +&НаКлиенте +Функция ПолучитьКнопкуФормыПоИмениКоманды(ЭлементФормы, ИмяКоманды) + + Для Каждого Элемент Из ЭлементФормы.ПодчиненныеЭлементы Цикл + + Если ТипЗнч(Элемент) = Тип("ГруппаФормы") Тогда + + ЭлементФормыПоИмениКоманды = ПолучитьКнопкуФормыПоИмениКоманды(Элемент, ИмяКоманды); + + Если ЭлементФормыПоИмениКоманды <> Неопределено Тогда + + Возврат ЭлементФормыПоИмениКоманды; + + КонецЕсли; + + ИначеЕсли ТипЗнч(Элемент) = Тип("КнопкаФормы") + И СтрНайти(Элемент.ИмяКоманды, ИмяКоманды) > 0 Тогда + + Возврат Элемент; + + Иначе + + Продолжить; + + КонецЕсли; + + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + +&НаКлиенте +Процедура ПерейтиДалее() + + ИзменитьПорядковыйНомерПерехода(+1); + +КонецПроцедуры + +&НаКлиенте +Процедура ПерейтиНазад() + + ИзменитьПорядковыйНомерПерехода(-1); + +КонецПроцедуры + +//////////////////////////////////////////////////////////////////////////////// +// Переопределяемая часть - Служебные процедуры и функции + +&НаСервере +Процедура УдалитьАвтономноеРабочееМесто(Отказ, СообщениеОбОшибке = "") + + КонтекстУдаления = Новый Структура("АвтономноеРабочееМесто", АвтономноеРабочееМесто); + + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); + ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Удаление автономного рабочего места'"); + ПараметрыВыполнения.ЗапуститьНеВФоне = Ложь; + ПараметрыВыполнения.ЗапуститьВФоне = Истина; + + ФоновоеЗадание = ДлительныеОперации.ВыполнитьВФоне( + "АвтономнаяРаботаСлужебный.УдалитьАвтономноеРабочееМесто", + КонтекстУдаления, + ПараметрыВыполнения); + + Если ФоновоеЗадание.Статус = "Выполняется" Тогда + ДлительнаяОперация = Истина; + ИдентификаторЗадания = ФоновоеЗадание.ИдентификаторЗадания; + ИначеЕсли ФоновоеЗадание.Статус = "Выполнено" Тогда + Возврат; + Иначе + Отказ = Истина; + СообщениеОбОшибке = ФоновоеЗадание.КраткоеПредставлениеОшибки; + Если ЗначениеЗаполнено(ФоновоеЗадание.ПодробноеПредставлениеОшибки) Тогда + СообщениеОбОшибке = ФоновоеЗадание.ПодробноеПредставлениеОшибки; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ЗаписатьОшибкуВЖурналРегистрации(СтрокаСообщенияОбОшибке, Событие) + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка,,, СтрокаСообщенияОбОшибке); + +КонецПроцедуры + +//////////////////////////////////////////////////////////////////////////////// +// Переопределяемая часть - Обработчики событий переходов + +&НаКлиенте +Функция Подключаемый_Ожидание_ОбработкаДлительнойОперации(Отказ, ПерейтиДалее) + + ДлительнаяОперация = Ложь; + ДлительнаяОперацияЗавершена = Ложь; + ИдентификаторЗадания = Неопределено; + + СообщениеОбОшибке = ""; + УдалитьАвтономноеРабочееМесто(Отказ, СообщениеОбОшибке); + + Если Отказ Тогда + + ПоказатьПредупреждение(, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'При удалении автономного рабочего места возникли ошибки: %1'"), СообщениеОбОшибке)); + + ИначеЕсли Не ДлительнаяОперация Тогда + + Оповестить("Удаление_АвтономноеРабочееМесто"); + + КонецЕсли; + +КонецФункции + +&НаКлиенте +Функция Подключаемый_ОжиданиеДлительнаяОперация_ОбработкаДлительнойОперации(Отказ, ПерейтиДалее) + + Если ДлительнаяОперация Тогда + + ПерейтиДалее = Ложь; + + ОбменДаннымиКлиент.ИнициализироватьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжидания); + + ПодключитьОбработчикОжидания("ОбработчикОжиданияДлительнойОперации", ПараметрыОбработчикаОжидания.ТекущийИнтервал, Истина); + + КонецЕсли; + +КонецФункции + +&НаКлиенте +Функция Подключаемый_ОжиданиеДлительнаяОперацияОкончание_ОбработкаДлительнойОперации(Отказ, ПерейтиДалее) + + Если ДлительнаяОперацияЗавершена Тогда + + Оповестить("Удаление_АвтономноеРабочееМесто"); + + КонецЕсли; + +КонецФункции + +&НаСервереБезКонтекста +Функция ЗаданиеВыполнено(ИдентификаторЗадания) + + Возврат ДлительныеОперации.ЗаданиеВыполнено(ИдентификаторЗадания); + +КонецФункции + +//////////////////////////////////////////////////////////////////////////////// +// Переопределяемая часть - Инициализация переходов помощника + +&НаСервере +Процедура УстановитьОсновнойСценарий() + + ТаблицаПереходов.Очистить(); + + НовыйПереход = ТаблицаПереходовНоваяСтрока("Начало", "СтраницаНавигацииНачало"); + + НовыйПереход = ТаблицаПереходовНоваяСтрока("Ожидание", "СтраницаНавигацииОжидание"); + НовыйПереход.ДлительнаяОперация = Истина; + НовыйПереход.ИмяОбработчикаДлительнойОперации = "Ожидание_ОбработкаДлительнойОперации"; + + НовыйПереход = ТаблицаПереходовНоваяСтрока("Ожидание", "СтраницаНавигацииОжидание"); + НовыйПереход.ДлительнаяОперация = Истина; + НовыйПереход.ИмяОбработчикаДлительнойОперации = "ОжиданиеДлительнаяОперация_ОбработкаДлительнойОперации"; + + НовыйПереход = ТаблицаПереходовНоваяСтрока("Ожидание", "СтраницаНавигацииОжидание"); + НовыйПереход.ДлительнаяОперация = Истина; + НовыйПереход.ИмяОбработчикаДлительнойОперации = "ОжиданиеДлительнаяОперацияОкончание_ОбработкаДлительнойОперации"; + + НовыйПереход = ТаблицаПереходовНоваяСтрока("Завершение", "СтраницаНавигацииОкончание"); + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/CommonForms/УстановкаВедущейКонечнойТочки/УстановкаВедущейКонечнойТочки.mdo b/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/ОтключениеАвтономногоРабочегоМеста.mdo similarity index 52% rename from SSL/src/CommonForms/УстановкаВедущейКонечнойТочки/УстановкаВедущейКонечнойТочки.mdo rename to SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/ОтключениеАвтономногоРабочегоМеста.mdo index f23ca68e2..bd00082b1 100644 --- a/SSL/src/CommonForms/УстановкаВедущейКонечнойТочки/УстановкаВедущейКонечнойТочки.mdo +++ b/SSL/src/CommonForms/ОтключениеАвтономногоРабочегоМеста/ОтключениеАвтономногоРабочегоМеста.mdo @@ -1,9 +1,9 @@ - - УстановкаВедущейКонечнойТочки + + ОтключениеАвтономногоРабочегоМеста ru - Установка ведущей конечной точки + Отключение автономного рабочего места PersonalComputer MobileDevice diff --git a/SSL/src/CommonForms/ОтправкаSMS/Help/ru.html b/SSL/src/CommonForms/ОтправкаSMS/Help/ru.html index c5d1422d5..92e8b3183 100644 --- a/SSL/src/CommonForms/ОтправкаSMS/Help/ru.html +++ b/SSL/src/CommonForms/ОтправкаSMS/Help/ru.html @@ -1,4 +1,4 @@ - +

                                Предназначена для набора и отправки сообщений SMS.

                                Открывается из карточек объектов программы (партнеров, организаций и т.п.) с помощью кнопки  - Отправить SMS.

                                Для отправки SMS необходимо заключить договор с одним из операторов сотовой связи (МТС или Билайн), указав в настройках отправки SMS полученные регистрационные данные.

                                diff --git a/SSL/src/CommonForms/ОтправкаSMS/Module.bsl b/SSL/src/CommonForms/ОтправкаSMS/Module.bsl index d9e018a55..ddcd9cde1 100644 --- a/SSL/src/CommonForms/ОтправкаSMS/Module.bsl +++ b/SSL/src/CommonForms/ОтправкаSMS/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - СтатусОтправки = НСтр("ru = 'Сообщение отправляется...'"); ТекстСообщения = Параметры.Текст; diff --git a/SSL/src/CommonForms/ОтправкаСообщения/Form.form b/SSL/src/CommonForms/ОтправкаСообщения/Form.form index 1a61a022b..daa50000c 100644 --- a/SSL/src/CommonForms/ОтправкаСообщения/Form.form +++ b/SSL/src/CommonForms/ОтправкаСообщения/Form.form @@ -821,6 +821,7 @@ true true true + AsFileRef true diff --git a/SSL/src/CommonForms/ОтправкаСообщения/Help/ru.html b/SSL/src/CommonForms/ОтправкаСообщения/Help/ru.html index 361112cd8..7b30dd059 100644 --- a/SSL/src/CommonForms/ОтправкаСообщения/Help/ru.html +++ b/SSL/src/CommonForms/ОтправкаСообщения/Help/ru.html @@ -1,4 +1,4 @@ - +

                                Предназначена для отправки электронного сообщения.

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

                                Написание электронного сообщения

                                diff --git a/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl b/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl index 354816368..6b4d9648e 100644 --- a/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl +++ b/SSL/src/CommonForms/ОтправкаСообщения/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - РезультатУспехЦвет = ЦветаСтиля.РезультатУспехЦвет; ВложенияДляПисьма = Новый Структура; @@ -366,11 +362,28 @@ СтандартнаяОбработка = Ложь; - Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Файл") Тогда - ОписаниеОповещения = Новый ОписаниеОповещения("ВложенияПеретаскиваниеЗавершение", ЭтотОбъект, Новый Структура("Имя", ПараметрыПеретаскивания.Значение.Имя)); - НачатьПомещениеФайла(ОписаниеОповещения, , ПараметрыПеретаскивания.Значение.ПолноеИмя, Ложь); + КоллекцияЗначений = ПараметрыПеретаскивания.Значение; + Если ТипЗнч(КоллекцияЗначений) <> Тип("Массив") Тогда + КоллекцияЗначений = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ПараметрыПеретаскивания.Значение); КонецЕсли; + ЗагружаемыеФайлы = Новый Массив; + Для Каждого Файл Из КоллекцияЗначений Цикл + Если ТипЗнч(Файл) = Тип("СсылкаНаФайл") Тогда + ЗагружаемыеФайлы.Добавить(Файл); + КонецЕсли; + КонецЦикла; + + Если Не ЗначениеЗаполнено(ЗагружаемыеФайлы) Тогда + Возврат; + КонецЕсли; + + ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗагрузкеВложений", ЭтотОбъект); + ПараметрыЗагрузки = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла(); + ПараметрыЗагрузки.ИдентификаторФормы = УникальныйИдентификатор; + ПараметрыЗагрузки.Интерактивно = Ложь; + ФайловаяСистемаКлиент.ЗагрузитьФайлы(ОписаниеОповещения, ПараметрыЗагрузки, ЗагружаемыеФайлы); + КонецПроцедуры &НаКлиенте @@ -839,13 +852,16 @@ КонецФункции &НаКлиенте -Процедура ВложенияПеретаскиваниеЗавершение(Результат, АдресВременногоХранилища, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт - Файлы = Новый Массив; - ПередаваемыйФайл = Новый ОписаниеПередаваемогоФайла(ДополнительныеПараметры.Имя, АдресВременногоХранилища); - Файлы.Добавить(ПередаваемыйФайл); +Процедура ПриЗагрузкеВложений(Файлы, ДополнительныеПараметры) Экспорт + + Если Файлы = Неопределено Тогда + Возврат; + КонецЕсли; + ДобавитьФайлыВСписок(Файлы); ОбновитьПредставлениеВложений(); ТребуетсяПодтверждениеЗакрытияФормы = Истина; + КонецПроцедуры &НаКлиенте diff --git a/SSL/src/CommonForms/ОтчетОСохраненииФайловЭлектронныхПодписей/Module.bsl b/SSL/src/CommonForms/ОтчетОСохраненииФайловЭлектронныхПодписей/Module.bsl index 157eb84af..c4d0bfd85 100644 --- a/SSL/src/CommonForms/ОтчетОСохраненииФайловЭлектронныхПодписей/Module.bsl +++ b/SSL/src/CommonForms/ОтчетОСохраненииФайловЭлектронныхПодписей/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Текст = Параметры.Текст; ПапкаСФайлами = Параметры.ПапкаСФайлами; diff --git a/SSL/src/CommonForms/ПанельОтчетов/Help/ru.html b/SSL/src/CommonForms/ПанельОтчетов/Help/ru.html index c2e2075e9..7ed82844c 100644 --- a/SSL/src/CommonForms/ПанельОтчетов/Help/ru.html +++ b/SSL/src/CommonForms/ПанельОтчетов/Help/ru.html @@ -1,37 +1,56 @@ - +

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

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

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

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

                                +
                              • +
                              • в режиме настройки.

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

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

                              Поиск отчетов

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

                          Поиск отчетов

                          Поиск доступен как в режиме просмотра, так и в режиме настройки.

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

                          Формирование отчета

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

                      Формирование отчета

                      • Нажмите левой кнопкой мыши по наименованию отчета.

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

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

                      Все отчеты

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

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

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

                    См. также:

                    \ No newline at end of file diff --git a/SSL/src/CommonForms/ПанельОтчетов/Module.bsl b/SSL/src/CommonForms/ПанельОтчетов/Module.bsl index 3f5bb3548..2cbb2e842 100644 --- a/SSL/src/CommonForms/ПанельОтчетов/Module.bsl +++ b/SSL/src/CommonForms/ПанельОтчетов/Module.bsl @@ -15,9 +15,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; ОпределитьПоведениеВМобильномКлиенте(); Если Не ЗначениеЗаполнено(Параметры.ПутьКПодсистеме) Тогда diff --git a/SSL/src/CommonForms/ПараметрыАдминистрированияПрограммы/Help/ru.html b/SSL/src/CommonForms/ПараметрыАдминистрированияПрограммы/Help/ru.html index 53e6bb37a..be96ecbc1 100644 --- a/SSL/src/CommonForms/ПараметрыАдминистрированияПрограммы/Help/ru.html +++ b/SSL/src/CommonForms/ПараметрыАдминистрированияПрограммы/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                    Параметры необходимы для выполнения различных административных действий с клиент-серверной информационной базой:

                    diff --git a/SSL/src/CommonForms/ПараметрыАдминистрированияПрограммы/Module.bsl b/SSL/src/CommonForms/ПараметрыАдминистрированияПрограммы/Module.bsl index fb00ad495..736981573 100644 --- a/SSL/src/CommonForms/ПараметрыАдминистрированияПрограммы/Module.bsl +++ b/SSL/src/CommonForms/ПараметрыАдминистрированияПрограммы/Module.bsl @@ -11,16 +11,12 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если ОбщегоНазначения.ИнформационнаяБазаФайловая() И Параметры.ЗапрашиватьПараметрыАдминистрированияКластера Тогда ВызватьИсключение НСтр("ru = 'Настройка параметров кластера серверов доступна только в клиент-серверном режиме работы.'"); КонецЕсли; Если Параметры.ЗапрашиватьПараметрыАдминистрированияКластера - И ОбщегоНазначения.ЭтоOSXКлиент() Тогда + И ОбщегоНазначения.ЭтоMacOSКлиент() Тогда Возврат; // Отказ устанавливается в ПриОткрытии. КонецЕсли; @@ -79,7 +75,7 @@ Процедура ПриОткрытии(Отказ) Если Параметры.ЗапрашиватьПараметрыАдминистрированияКластера - И ОбщегоНазначенияКлиент.ЭтоOSXКлиент() Тогда + И ОбщегоНазначенияКлиент.ЭтоMacOSКлиент() Тогда Отказ = Истина; ТекстСообщения = НСтр("ru = 'Подключение к кластеру серверов недоступно в клиенте под управлением ОС X.'"); ПоказатьПредупреждение(,ТекстСообщения); diff --git a/SSL/src/CommonForms/ПараметрыПроксиСервера/Help/ru.html b/SSL/src/CommonForms/ПараметрыПроксиСервера/Help/ru.html index a442b54a7..5e5700dec 100644 --- a/SSL/src/CommonForms/ПараметрыПроксиСервера/Help/ru.html +++ b/SSL/src/CommonForms/ПараметрыПроксиСервера/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                    Программа предоставляет возможности для получения файлов из сети Интернет по протоколам HTTP, HTTPS, FTP и сохранения полученных файлов на клиенте, сервере или во временном хранилище.

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

                    diff --git a/SSL/src/CommonForms/ПараметрыПроксиСервера/Module.bsl b/SSL/src/CommonForms/ПараметрыПроксиСервера/Module.bsl index 93a8c855f..340f89e5c 100644 --- a/SSL/src/CommonForms/ПараметрыПроксиСервера/Module.bsl +++ b/SSL/src/CommonForms/ПараметрыПроксиСервера/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - НастройкаПроксиНаКлиенте = Параметры.НастройкаПроксиНаКлиенте; Если НЕ Параметры.НастройкаПроксиНаКлиенте И НЕ Пользователи.ЭтоПолноправныйПользователь(, Истина) Тогда diff --git a/SSL/src/CommonForms/ПечатьДокументов/Form.form b/SSL/src/CommonForms/ПечатьДокументов/Form.form index 9d494226b..4cfdee6fd 100644 --- a/SSL/src/CommonForms/ПечатьДокументов/Form.form +++ b/SSL/src/CommonForms/ПечатьДокументов/Form.form @@ -1906,7 +1906,7 @@ OnActivate - ТекущаяПечатнаяФормаПриАктивизацииОбласти + ТекущаяПечатнаяФормаПриАктивизации 30 true @@ -3158,7 +3158,7 @@ ru Адрес хранилища рисунков - 28 + 7 String diff --git a/SSL/src/CommonForms/ПечатьДокументов/Help/ru.html b/SSL/src/CommonForms/ПечатьДокументов/Help/ru.html index b30b7ebd0..f20f95fc1 100644 --- a/SSL/src/CommonForms/ПечатьДокументов/Help/ru.html +++ b/SSL/src/CommonForms/ПечатьДокументов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                    diff --git a/SSL/src/CommonForms/ПечатьДокументов/Module.bsl b/SSL/src/CommonForms/ПечатьДокументов/Module.bsl index 4fcf7b44e..38c188ebe 100644 --- a/SSL/src/CommonForms/ПечатьДокументов/Module.bsl +++ b/SSL/src/CommonForms/ПечатьДокументов/Module.bsl @@ -15,10 +15,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Не ПравоДоступа("Изменение", Метаданные.РегистрыСведений.ПользовательскиеМакетыПечати) Тогда Элементы.КнопкаПерейтиКУправлениюМакетами.Видимость = Ложь; КонецЕсли; @@ -234,7 +230,7 @@ КонецПроцедуры &НаКлиенте -Процедура ТекущаяПечатнаяФормаПриАктивизацииОбласти(Элемент) +Процедура ТекущаяПечатнаяФормаПриАктивизации(Элемент) ПодключитьОбработчикОжидания("РассчитатьПоказателиДинамически", 0.2, Истина); КонецПроцедуры diff --git a/SSL/src/CommonForms/ПодготовкаНовогоПисьма/Module.bsl b/SSL/src/CommonForms/ПодготовкаНовогоПисьма/Module.bsl index d8a6a6576..ea99c935d 100644 --- a/SSL/src/CommonForms/ПодготовкаНовогоПисьма/Module.bsl +++ b/SSL/src/CommonForms/ПодготовкаНовогоПисьма/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Для Каждого ФорматСохранения Из УправлениеПечатью.НастройкиФорматовСохраненияТабличногоДокумента() Цикл ВыбранныеФорматыСохранения.Добавить(Строка(ФорматСохранения.ТипФайлаТабличногоДокумента), Строка(ФорматСохранения.Ссылка), Ложь, ФорматСохранения.Картинка); diff --git a/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Form.form b/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Form.form index 661e77a17..d8d1f9b87 100644 --- a/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Form.form +++ b/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Form.form @@ -253,10 +253,6 @@ Windows_x86_Chrome 106 - - <key>ru</key> - <value>Windows x86 chrome</value> - true true @@ -288,10 +284,6 @@ Windows_x86_Firefox 112 - - <key>ru</key> - <value>Windows x86 firefox</value> - true true @@ -323,10 +315,6 @@ Windows_x86_MSIE 118 - - <key>ru</key> - <value>Windows x86 MSIE</value> - true true @@ -453,10 +441,6 @@ Windows_x86_64_Firefox 115 - - <key>ru</key> - <value>Windows x86 64 firefox</value> - true true @@ -488,10 +472,6 @@ Windows_x86_64_MSIE 121 - - <key>ru</key> - <value>Windows x86 64 MSIE</value> - true true @@ -558,7 +538,7 @@ <key>ru</key> - <value>Windows</value> + <value>Группа Windows</value> true @@ -760,10 +740,6 @@ Linux_x86_Chrome 138 - - <key>ru</key> - <value>Linux x86 chrome</value> - true true @@ -795,10 +771,6 @@ Linux_x86_Firefox 144 - - <key>ru</key> - <value>Linux x86 firefox</value> - true true @@ -894,10 +866,6 @@ Linux_x86_64_Chrome 141 - - <key>ru</key> - <value>Linux x86 64 chrome</value> - true true @@ -929,10 +897,6 @@ Linux_x86_64_Firefox 147 - - <key>ru</key> - <value>Linux x86 64 firefox</value> - true true @@ -999,7 +963,7 @@ <key>ru</key> - <value>Linux</value> + <value>Группа Linux</value> true true @@ -1030,6 +994,41 @@ MacOS 153 + + MacOS1СПредприятие + 161 + + <key>ru</key> + <value>1С:Предприятие</value> + + true + true + + true + + + MacOS1СПредприятиеРасширеннаяПодсказка + 163 + Label + true + true + + Left + + + + MacOS1СПредприятиеКонтекстноеМеню + 162 + true + + Label + 10 + true + true + + Left + + MacOSSafari 84 @@ -1064,13 +1063,73 @@ Left
                    + true + true + + true + + + <key>ru</key> + <value>macOS</value> + + + MacOSРасширеннаяПодсказка + 154 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + auto + Auto + Auto + + + + MacOS_x86_64 + 164 + + MacOS_x86_64_1СПредприятие + 166 + true + true + + true + + + MacOS_x86_64_1СПредприятиеРасширеннаяПодсказка + 168 + Label + true + true + + Left + + + + MacOS_x86_64_1СПредприятиеКонтекстноеМеню + 167 + true + + true + true + + + CommonPicture.ВнешняяКомпонентаНеДоступна + + + MacOS_x86_64_Safari 150 - - <key>ru</key> - <value>Mac o s x86 64 safari</value> - true true @@ -1106,11 +1165,11 @@ <key>ru</key> - <value>Mac OS</value> + <value>x86-64</value> - MacOSРасширеннаяПодсказка - 154 + MacOS_x86_64РасширеннаяПодсказка + 165 Label true true @@ -1120,7 +1179,8 @@ UsualGroup - HorizontalIfPossible + Vertical + Center Auto true true @@ -1136,7 +1196,7 @@ <key>ru</key> - <value>OS X (macOS)</value> + <value>Группа macOS</value> true true @@ -1247,10 +1307,6 @@ true Windows_x86_MSIE - - <key>ru</key> - <value>Windows x86 MSIE</value> - 1 Boolean @@ -1264,10 +1320,6 @@ Windows_x86_Firefox - - <key>ru</key> - <value>Windows x86 firefox</value> - 2 Boolean @@ -1281,10 +1333,6 @@ Windows_x86_Chrome - - <key>ru</key> - <value>Windows x86 chrome</value> - 3 Boolean @@ -1298,10 +1346,6 @@ Windows_x86_64_MSIE - - <key>ru</key> - <value>Windows x86 64 MSIE</value> - 4 Boolean @@ -1315,10 +1359,6 @@ Windows_x86_64 - - <key>ru</key> - <value>Windows x86 64</value> - 5 Boolean @@ -1332,10 +1372,6 @@ Windows_x86 - - <key>ru</key> - <value>Windows x86</value> - 6 Boolean @@ -1349,10 +1385,6 @@ MacOS_x86_64_Safari - - <key>ru</key> - <value>Mac o s x86 64 safari</value> - 7 Boolean @@ -1366,10 +1398,6 @@ Linux_x86_Firefox - - <key>ru</key> - <value>Linux x86 firefox</value> - 8 Boolean @@ -1383,10 +1411,6 @@ Linux_x86_Chrome - - <key>ru</key> - <value>Linux x86 chrome</value> - 9 Boolean @@ -1400,10 +1424,6 @@ Linux_x86_64_Firefox - - <key>ru</key> - <value>Linux x86 64 firefox</value> - 10 Boolean @@ -1417,10 +1437,6 @@ Linux_x86_64_Chrome - - <key>ru</key> - <value>Linux x86 64 chrome</value> - 11 Boolean @@ -1434,10 +1450,6 @@ Linux_x86_64 - - <key>ru</key> - <value>Linux x86 64</value> - 12 Boolean @@ -1451,10 +1463,6 @@ Linux_x86 - - <key>ru</key> - <value>Linux x86</value> - 13 Boolean @@ -1466,6 +1474,19 @@ true + + MacOS_x86_64 + 14 + + Boolean + + + true + + + true + + ПоддерживаемыеКлиенты diff --git a/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Module.bsl b/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Module.bsl index 2334abc07..690081c76 100644 --- a/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Module.bsl +++ b/SSL/src/CommonForms/ПоддерживаемыеКлиентскиеПриложения/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если ТипЗнч(Параметры.ПоддерживаемыеКлиенты) = Тип("Структура") Тогда ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры.ПоддерживаемыеКлиенты); КонецЕсли; @@ -36,6 +32,7 @@ Элементы.Linux_x86_64_1СПредприятие.Картинка = ?(Linux_x86_64, Доступна, НеДоступна); Элементы.Linux_x86_64_Chrome.Картинка = ?(Linux_x86_64_Chrome, Доступна, НеДоступна); Элементы.Linux_x86_64_Firefox.Картинка = ?(Linux_x86_64_Firefox, Доступна, НеДоступна); + Элементы.MacOS_x86_64_1СПредприятие.Картинка = ?(MacOS_x86_64, Доступна, НеДоступна); Элементы.MacOS_x86_64_Safari.Картинка = ?(MacOS_x86_64_Safari, Доступна, НеДоступна); КонецПроцедуры diff --git a/SSL/src/CommonForms/ПодключениеКонечнойТочки/Form.form b/SSL/src/CommonForms/ПодключениеКонечнойТочки/Form.form deleted file mode 100644 index ffa24bedf..000000000 --- a/SSL/src/CommonForms/ПодключениеКонечнойТочки/Form.form +++ /dev/null @@ -1,718 +0,0 @@ - - - - <key>ru</key> - <value>Подключение конечной точки</value> - - - НастройкиПодключенияОтправителя - 9 - - НастройкиОтправителяWSURLВебСервиса - 19 - true - true - - true - - - НастройкиОтправителяWSURLВебСервиса - - - НастройкиОтправителяWSURLВебСервисаExtendedTooltip - 28 - Label - true - true - - Left - - - - НастройкиОтправителяWSURLВебСервисаКонтекстноеМеню - 20 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - Декорация1 - 35 - - <key>ru</key> - <value>Веб-адрес публикации информационной базы (конечной точки), например: http://myserver/infobase</value> - - true - true - - true - - - Декорация1РасширеннаяПодсказка - 37 - Label - true - true - - Left - - - - Декорация1КонтекстноеМеню - 36 - true - - Label - true - - Style.ПоясняющийТекст - - - Left - - - - НастройкиОтправителяWSИмяПользователя - 21 - true - true - - true - - - НастройкиОтправителяWSИмяПользователя - - - НастройкиОтправителяWSИмяПользователяExtendedTooltip - 29 - Label - true - true - - Left - - - - НастройкиОтправителяWSИмяПользователяКонтекстноеМеню - 22 - true - - InputField - Enter - true - Left - true - - 30 - true - true - false - true - true - true - true - Normal - - - - НастройкиОтправителяWSПароль - 23 - true - true - - true - - - НастройкиОтправителяWSПароль - - - НастройкиОтправителяWSПарольExtendedTooltip - 30 - Label - true - true - - Left - - - - НастройкиОтправителяWSПарольКонтекстноеМеню - 24 - true - - InputField - Enter - true - Left - true - - 30 - true - true - false - true - true - true - true - true - Normal - - - - Декорация3 - 41 - - <key>ru</key> - <value>Имя и пароль служебного пользователя с ролью "Удаленный доступ (Обмен сообщениями)"</value> - - true - true - - true - - - Декорация3РасширеннаяПодсказка - 43 - Label - true - true - - Left - - - - Декорация3КонтекстноеМеню - 42 - true - - Label - true - - Style.ПоясняющийТекст - - - Left - - - true - true - - true - - - <key>ru</key> - <value>Настройки подключения к конечной точке</value> - - - НастройкиПодключенияОтправителяExtendedTooltip - 27 - Label - true - true - - Left - - - UsualGroup - - Vertical - Auto - NormalSeparation - true - true - auto - Auto - Auto - - - - НастройкиПодключенияПолучателя - 12 - - НастройкиПолучателяWSURLВебСервиса - 13 - true - true - - true - - - НастройкиПолучателяWSURLВебСервиса - - - НастройкиПолучателяWSURLВебСервисаExtendedTooltip - 32 - Label - true - true - - Left - - - - НастройкиПолучателяWSURLВебСервисаКонтекстноеМеню - 14 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - Декорация2 - 38 - - <key>ru</key> - <value>Веб-адрес публикации этой информационной базы, например: http://myserver/thisinfobase</value> - - true - true - - true - - - Декорация2РасширеннаяПодсказка - 40 - Label - true - true - - Left - - - - Декорация2КонтекстноеМеню - 39 - true - - Label - true - - Style.ПоясняющийТекст - - - Left - - - - НастройкиПолучателяWSИмяПользователя - 15 - true - true - - true - - - НастройкиПолучателяWSИмяПользователя - - - НастройкиПолучателяWSИмяПользователяExtendedTooltip - 33 - Label - true - true - - Left - - - - НастройкиПолучателяWSИмяПользователяКонтекстноеМеню - 16 - true - - InputField - Enter - true - Left - true - - 30 - true - true - false - true - true - true - true - Normal - - - - НастройкиПолучателяWSПароль - 17 - true - true - - true - - - НастройкиПолучателяWSПароль - - - НастройкиПолучателяWSПарольExtendedTooltip - 34 - Label - true - true - - Left - - - - НастройкиПолучателяWSПарольКонтекстноеМеню - 18 - true - - InputField - Enter - true - Left - true - - 30 - true - true - false - true - true - true - true - true - Normal - - - - Декорация4 - 44 - - <key>ru</key> - <value>Имя и пароль служебного пользователя с ролью "Удаленный доступ (Обмен сообщениями)" в этой информационной базе.</value> - - true - true - - true - - - Декорация4РасширеннаяПодсказка - 46 - Label - true - true - - Left - - - - Декорация4КонтекстноеМеню - 45 - true - - Label - true - - Style.ПоясняющийТекст - - - Left - - - true - true - - true - - - <key>ru</key> - <value>Настройки подключения из конечной точки к этой информационной базе</value> - - - НастройкиПодключенияПолучателяExtendedTooltip - 31 - Label - true - true - - Left - - - UsualGroup - - Vertical - Auto - NormalSeparation - true - true - auto - Auto - Auto - - - Bottom - true - - ФормаКоманднаяПанель - -1 - - ФормаПодключитьКонечнуюТочку - 10 - true - true - - true - - - ФормаПодключитьКонечнуюТочкуExtendedTooltip - 25 - Label - true - true - - Left - - - Form.Command.ПодключитьКонечнуюТочку - Auto - true - true - true - UserCmds - Auto - - - ФормаЗакрыть - 11 - - <key>ru</key> - <value>Отмена</value> - - true - true - - true - - - ФормаЗакрытьExtendedTooltip - 26 - Label - true - true - - Left - - - Form.StandardCommand.Close - Normal - true - true - UserCmds - Auto - - Right - - - BeforeClose - ПередЗакрытием - - - OnCreateAtServer - ПриСозданииНаСервере - - CustomizeForm - Help - LockOwner - true - true - Vertical - true - true - true - auto - true - - НастройкиОтправителяWSURLВебСервиса - - <key>ru</key> - <value>Строка подключения</value> - - 1 - - String - - - - true - - - true - - ShowError - - - НастройкиОтправителяWSИмяПользователя - - <key>ru</key> - <value>Имя пользователя</value> - - 2 - - String - - 50 - - - - true - - - true - - - - НастройкиОтправителяWSПароль - - <key>ru</key> - <value>Пароль</value> - - 3 - - String - - 50 - - - - true - - - true - - - - СобытиеЖурналаРегистрацииПодключениеКонечнойТочки - - <key>ru</key> - <value>Событие журнала регистрации подключение конечной точки</value> - - 5 - - String - - - - true - - - true - - - - НастройкиПолучателяWSURLВебСервиса - - <key>ru</key> - <value>Строка подключения</value> - - 4 - - String - - - - true - - - true - - ShowError - - - НастройкиПолучателяWSИмяПользователя - - <key>ru</key> - <value>Имя пользователя</value> - - 6 - - String - - 50 - - - - true - - - true - - - - НастройкиПолучателяWSПароль - - <key>ru</key> - <value>Пароль</value> - - 7 - - String - - 50 - - - - true - - - true - - - - ПодключитьКонечнуюТочку - - <key>ru</key> - <value>Подключить</value> - - 1 - - ru - Подключить конечную точку - - - true - - - - ПодключитьКонечнуюТочку - - - DontUse - Auto - - - - - - diff --git a/SSL/src/CommonForms/ПодключениеКонечнойТочки/Module.bsl b/SSL/src/CommonForms/ПодключениеКонечнойТочки/Module.bsl deleted file mode 100644 index cb6907d63..000000000 --- a/SSL/src/CommonForms/ПодключениеКонечнойТочки/Module.bsl +++ /dev/null @@ -1,117 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - СобытиеЖурналаРегистрацииПодключениеКонечнойТочки = ОбменСообщениямиВнутренний.СобытиеЖурналаРегистрацииПодключениеКонечнойТочки(); - - СтандартныеПодсистемыСервер.УстановитьОтображениеЗаголовковГрупп(ЭтотОбъект); - -КонецПроцедуры - -&НаКлиенте -Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) - - Оповещение = Новый ОписаниеОповещения("ПодключитьИЗакрыть", ЭтотОбъект); - ТекстПредупреждения = НСтр("ru = 'Отменить подключение конечной точки?'"); - ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияФормы(Оповещение, Отказ, ЗавершениеРаботы, ТекстПредупреждения); - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиКомандФормы - -&НаКлиенте -Процедура ПодключитьКонечнуюТочку(Команда) - - ПодключитьИЗакрыть(); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -&НаКлиенте -Процедура ПодключитьИЗакрыть(Результат = Неопределено, ДополнительныеПараметры = Неопределено) Экспорт - - Отказ = Ложь; - ОшибкаЗаполнения = Ложь; - - ПодключитьКонечнуюТочкуНаСервере(Отказ, ОшибкаЗаполнения); - - Если ОшибкаЗаполнения Тогда - Возврат; - КонецЕсли; - - Если Отказ Тогда - - НСтрока = НСтр("ru = 'При подключении конечной точки возникли ошибки. - |Перейти в журнал регистрации?'"); - ОписаниеОповещения = Новый ОписаниеОповещения("ОткрытьЖурналРегистрации", ЭтотОбъект); - ПоказатьВопрос(ОписаниеОповещения, НСтрока, РежимДиалогаВопрос.ДаНет, ,КодВозвратаДиалога.Нет); - Возврат; - КонецЕсли; - - Оповестить(ОбменСообщениямиКлиент.ИмяСобытияДобавленаКонечнаяТочка()); - - ПоказатьОповещениеПользователя(,,НСтр("ru = 'Подключение конечной точки успешно завершено.'")); - - Модифицированность = Ложь; - - Закрыть(); - -КонецПроцедуры - -&НаКлиенте -Процедура ОткрытьЖурналРегистрации(Ответ, ДополнительныеПараметры) Экспорт - - Если Ответ = КодВозвратаДиалога.Да Тогда - - Отбор = Новый Структура; - Отбор.Вставить("СобытиеЖурналаРегистрации", СобытиеЖурналаРегистрацииПодключениеКонечнойТочки); - ОткрытьФорму("Обработка.ЖурналРегистрации.Форма", Отбор, ЭтотОбъект); - - КонецЕсли; - -КонецПроцедуры - -&НаСервере -Процедура ПодключитьКонечнуюТочкуНаСервере(Отказ, ОшибкаЗаполнения) - - Если Не ПроверитьЗаполнение() Тогда - ОшибкаЗаполнения = Истина; - Возврат; - КонецЕсли; - - НастройкиПодключенияОтправителя = ОбменДаннымиСервер.СтруктураПараметровWS(); - НастройкиПодключенияОтправителя.WSURLВебСервиса = НастройкиОтправителяWSURLВебСервиса; - НастройкиПодключенияОтправителя.WSИмяПользователя = НастройкиОтправителяWSИмяПользователя; - НастройкиПодключенияОтправителя.WSПароль = НастройкиОтправителяWSПароль; - - НастройкиПодключенияПолучателя = ОбменДаннымиСервер.СтруктураПараметровWS(); - НастройкиПодключенияПолучателя.WSURLВебСервиса = НастройкиПолучателяWSURLВебСервиса; - НастройкиПодключенияПолучателя.WSИмяПользователя = НастройкиПолучателяWSИмяПользователя; - НастройкиПодключенияПолучателя.WSПароль = НастройкиПолучателяWSПароль; - - ОбменСообщениями.ПодключитьКонечнуюТочку( - Отказ, - НастройкиПодключенияОтправителя, - НастройкиПодключенияПолучателя); - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonForms/ПоискИсполняемогоФайлаОнлайнПоддержки/Help/ru.html b/SSL/src/CommonForms/ПоискИсполняемогоФайлаОнлайнПоддержки/Help/ru.html index 13a19761c..c48ecaf34 100644 --- a/SSL/src/CommonForms/ПоискИсполняемогоФайлаОнлайнПоддержки/Help/ru.html +++ b/SSL/src/CommonForms/ПоискИсполняемогоФайлаОнлайнПоддержки/Help/ru.html @@ -1,3 +1,3 @@ - +

                    Предназначена для повторного указания пути к исполняемому файлу приложения для связи со специалистом онлайн-поддержки. Возникает в случае отсутствия файла по указанному пути.

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

                    \ No newline at end of file diff --git a/SSL/src/CommonForms/ПользователиСервиса/Module.bsl b/SSL/src/CommonForms/ПользователиСервиса/Module.bsl index 14a603bc1..753aa96a1 100644 --- a/SSL/src/CommonForms/ПользователиСервиса/Module.bsl +++ b/SSL/src/CommonForms/ПользователиСервиса/Module.bsl @@ -13,15 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - РежимРаботы = Константы.РежимИспользованияИнформационнойБазы.Получить(); - Если РежимРаботы = Перечисления.РежимыИспользованияИнформационнойБазы.Демонстрационный Тогда - ВызватьИсключение(НСтр("ru = 'В демонстрационном режиме не доступно добавление новых пользователей'")); - КонецЕсли; - // Форма недоступна пока подготовка не закончена. Доступность = Ложь; diff --git a/SSL/src/CommonForms/ПраваДоступа/Help/ru.html b/SSL/src/CommonForms/ПраваДоступа/Help/ru.html index 17bd1257b..7bef3e83a 100644 --- a/SSL/src/CommonForms/ПраваДоступа/Help/ru.html +++ b/SSL/src/CommonForms/ПраваДоступа/Help/ru.html @@ -1,4 +1,4 @@ - +

                    Предназначен для просмотра и настройки состава групп доступа пользователя (внешнего пользователя).

                    Открывается по команде Права доступа на панели навигации пользователя (внешнего пользователя).

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

                    diff --git a/SSL/src/CommonForms/ПраваДоступа/Module.bsl b/SSL/src/CommonForms/ПраваДоступа/Module.bsl index b37917766..ba9f53cec 100644 --- a/SSL/src/CommonForms/ПраваДоступа/Module.bsl +++ b/SSL/src/CommonForms/ПраваДоступа/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ПользовательИБПолноправный = Пользователи.ЭтоПолноправныйПользователь(); СвойДоступ = Параметры.Пользователь = Пользователи.АвторизованныйПользователь(); diff --git a/SSL/src/CommonForms/ПраваДоступаУпрощенно/Help/ru.html b/SSL/src/CommonForms/ПраваДоступаУпрощенно/Help/ru.html index 7b25ceb29..582f4c54d 100644 --- a/SSL/src/CommonForms/ПраваДоступаУпрощенно/Help/ru.html +++ b/SSL/src/CommonForms/ПраваДоступаУпрощенно/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                    Для настройки прав доступа пользователя (внешнего пользователя) воспользуйтесь командой Права доступа панели навигации.

                    diff --git a/SSL/src/CommonForms/ПраваДоступаУпрощенно/Module.bsl b/SSL/src/CommonForms/ПраваДоступаУпрощенно/Module.bsl index dfbdef6b3..7ced8bfb5 100644 --- a/SSL/src/CommonForms/ПраваДоступаУпрощенно/Module.bsl +++ b/SSL/src/CommonForms/ПраваДоступаУпрощенно/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если НЕ ЗначениеЗаполнено(Параметры.Пользователь) Тогда Отказ = Истина; Возврат; @@ -85,7 +81,7 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) - Если ТипЗнч(ВладелецФормы) <> Тип("УправляемаяФорма") + Если ТипЗнч(ВладелецФормы) <> Тип("ФормаКлиентскогоПриложения") Или ВладелецФормы.Окно <> Окно Тогда АвтоЗаголовок = Ложь; diff --git a/SSL/src/CommonForms/ПредупреждениеБезопасности/Form.form b/SSL/src/CommonForms/ПредупреждениеБезопасности/Form.form index d752975c5..66e45878c 100644 --- a/SSL/src/CommonForms/ПредупреждениеБезопасности/Form.form +++ b/SSL/src/CommonForms/ПредупреждениеБезопасности/Form.form @@ -1400,26 +1400,185 @@
                    - ПередУдалениемРасширения - 179 + ПередУдалениемРасширенияБезДанных + 211 - ПредупрежденииПередУдалениемРасширения - 181 + ПредупрежденииПередУдалениемРасширенияБезДанных + 213 <key>ru</key> - <value>Подключенное расширение может хранить данные в информационной базе. -Удаление расширения приведет к безвозвратной потере этих данных. -Перед удалением ознакомьтесь с документацией по расширению, -которую можно получить от поставщика расширения.</value> + <value>Удаление расширения необратимо. + +Чтобы установить расширение повторно после удаления, проверьте что +имеется файл с этим расширением или его можно скачать из Интернет.</value> true true true + + ru + Чтобы сохранить расширение в файл выберите команду +"Сохранить как ..." в контекстном меню. + + ShowBottom + + ПредупрежденииПередУдалениемРасширенияБезДанныхРасширеннаяПодсказка + 215 + Label + true + true + + Left + + + + ПредупрежденииПередУдалениемРасширенияБезДанныхКонтекстноеМеню + 214 + true + + Label + true + false + + Left + + + + КоманднаяПанель12 + 222 + + Продолжить12 + 224 + + <key>ru</key> + <value>Удалить</value> + + true + true + + true + + + Продолжить12РасширеннаяПодсказка + 225 + Label + true + true + + Left + + + Form.Command.Продолжить + Normal + Auto + true + true + UserCmds + Auto + + + Отмена12 + 226 + true + true + + true + + + Отмена12РасширеннаяПодсказка + 227 + Label + true + true + + Left + + + Form.StandardCommand.Cancel + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Командная панель4</value> + + + КоманднаяПанель12РасширеннаяПодсказка + 223 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Перед удалением расширения без данных</value> + + + ПередУдалениемРасширенияБезДанныхРасширеннаяПодсказка + 212 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + ПередУдалениемРасширенияСДанными + 179 + + ПредупрежденииПередУдалениемРасширения + 228 + + <key>ru</key> + <value>Удаляемое расширение хранит данные в информационной базе, +которые будут безвозвратно потеряны.</value> + + true + true + + true + + + ru + Ознакомьтесь с документацией по расширению, +которую можно получить от поставщика расширения. + + ShowBottom ПредупрежденииПередУдалениемРасширенияРасширеннаяПодсказка - 183 + 230 Label true true @@ -1429,7 +1588,7 @@ ПредупрежденииПередУдалениемРасширенияКонтекстноеМеню - 182 + 229 true Label @@ -1604,10 +1763,10 @@ <key>ru</key> - <value>Перед удалением расширения</value> + <value>Перед удалением расширения с данными</value> - ПередУдалениемРасширенияРасширеннаяПодсказка + ПередУдалениемРасширенияСДаннымиРасширеннаяПодсказка 180 Label true @@ -1624,26 +1783,28 @@ - ПередОтключениемРасширения + ПередОтключениемРасширенияСДанными 192 ПредупрежденииПередОтключениемРасширения 194 <key>ru</key> - <value>Подключенное расширение может хранить данные в информационной базе. -Отключение расширения приведет к недоступности этих данных -и может привести к невозможности изменять часть данных самой программы. -Перед отключением расширения ознакомьтесь с документацией по расширению, -которое можно получить от поставщика расширения. - -Отключить расширение?</value> + <value>Отключаемое расширение хранит данные в информационной базе, +которые станут недоступными, кроме того некоторые данные +самой программы могут стать недоступными для изменения.</value> true true true + + ru + Ознакомьтесь с документацией по расширению, +которую можно получить от поставщика расширения. + + ShowBottom ПредупрежденииПередОтключениемРасширенияРасширеннаяПодсказка 196 @@ -1666,6 +1827,40 @@ Left + + ПредупрежденииПередОтключениемРасширенияТекстОтключить + 231 + + <key>ru</key> + <value>Отключить расширение?</value> + + true + true + + true + + + ПредупрежденииПередОтключениемРасширенияТекстОтключитьРасширеннаяПодсказка + 233 + Label + true + true + + Left + + + + ПредупрежденииПередОтключениемРасширенияТекстОтключитьКонтекстноеМеню + 232 + true + + Label + true + false + + Left + + КоманднаяПанель11 199 @@ -1759,7 +1954,7 @@ Перед удалением расширения - ПередОтключениемРасширенияРасширеннаяПодсказка + ПередОтключениемРасширенияСДаннымиРасширеннаяПодсказка 193 Label true diff --git a/SSL/src/CommonForms/ПредупреждениеБезопасности/Module.bsl b/SSL/src/CommonForms/ПредупреждениеБезопасности/Module.bsl index 489ce7397..4b55d38e5 100644 --- a/SSL/src/CommonForms/ПредупреждениеБезопасности/Module.bsl +++ b/SSL/src/CommonForms/ПредупреждениеБезопасности/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Если Не ЗначениеЗаполнено(Параметры.Ключ) Тогда ТекстОшибки = НСтр("ru = 'Общая форма ""Предупреждение безопасности"" является вспомогательной и открывается из служебных механизмов программы.'"); @@ -67,6 +64,12 @@ Элементы.ПредупрежденииПередУдалениемРасширенияТекстУдалить.Заголовок = НСтр("ru = 'Удалить расширение?'"); КонецЕсли; + Если ТекущаяСтраница = Элементы.ПередУдалениемРасширенияСДанными + Или ТекущаяСтраница = Элементы.ПередУдалениемРасширенияБезДанных + Или ТекущаяСтраница = Элементы.ПередОтключениемРасширенияСДанными Тогда + Заголовок = НСтр("ru = 'Предупреждение'"); + КонецЕсли; + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/CommonForms/ПредупрежденияПриЗавершенииРаботы/Module.bsl b/SSL/src/CommonForms/ПредупрежденияПриЗавершенииРаботы/Module.bsl index 72e694ff8..426bc6d4e 100644 --- a/SSL/src/CommonForms/ПредупрежденияПриЗавершенииРаботы/Module.bsl +++ b/SSL/src/CommonForms/ПредупрежденияПриЗавершенииРаботы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Ключ = ""; Для Каждого Предупреждение Из Параметры.Предупреждения Цикл Ключ = Ключ + Предупреждение.ДействиеПриУстановленномФлажке.Форма + Предупреждение.ДействиеПриНажатииГиперссылки.Форма; diff --git a/SSL/src/CommonForms/ПриоритетОбновленияВОбластяхДанных/Form.form b/SSL/src/CommonForms/ПриоритетОбновленияВОбластяхДанных/Form.form new file mode 100644 index 000000000..2304eb4c6 --- /dev/null +++ b/SSL/src/CommonForms/ПриоритетОбновленияВОбластяхДанных/Form.form @@ -0,0 +1,191 @@ + + + + ПриоритетОбновленияВОбластяхДанныхРаботаПользователей + 8 + true + true + + true + + + ПриоритетОбновленияВОбластяхДанных.ПриоритетОбновленияВОбластяхДанных + + None + ShowBottom + + ПриоритетОбновленияВОбластяхДанныхРаботаПользователейРасширеннаяПодсказка + 10 + + <key>ru</key> + <value>Обновление выполняется медленно во всех областях (по обработчику за раз и в один поток), экономя аппаратные ресурсы для задач пользователей.</value> + + Label + true + true + + Left + + + + ПриоритетОбновленияВОбластяхДанныхРаботаПользователейКонтекстноеМеню + 9 + true + + RadioButtonField + Enter + true + Left + true + + + + ru + Работа пользователей + + + РаботаПользователей + + + Vertical + + + + ПриоритетОбновленияВОбластяхДанныхОбработкаДанных + 11 + true + true + + true + + + ПриоритетОбновленияВОбластяхДанных.ПриоритетОбновленияВОбластяхДанных + + None + ShowBottom + + ПриоритетОбновленияВОбластяхДанныхОбработкаДанныхРасширеннаяПодсказка + 13 + + <key>ru</key> + <value>Обновление выполняется быстро во всех областях (непрерывно и в несколько потоков, если поддерживается), в ущерб производительности интерактивной работы пользователей.</value> + + Label + true + true + + Left + + + + ПриоритетОбновленияВОбластяхДанныхОбработкаДанныхКонтекстноеМеню + 12 + true + + RadioButtonField + Enter + true + Left + true + + + + ru + Обработка данных + + + ОбработкаДанных + + + Vertical + + + + ПриоритетОбновленияВОбластяхДанныхНеПереопределять + 14 + true + true + + true + + + ПриоритетОбновленияВОбластяхДанных.ПриоритетОбновленияВОбластяхДанных + + None + ShowBottom + + ПриоритетОбновленияВОбластяхДанныхНеПереопределятьРасширеннаяПодсказка + 16 + + <key>ru</key> + <value>Обновление в каждой области выполняется со своим приоритетом (в каждой свой).</value> + + Label + true + true + + Left + + + + ПриоритетОбновленияВОбластяхДанныхНеПереопределятьКонтекстноеМеню + 15 + true + + RadioButtonField + Enter + true + Left + true + + + + ru + Не переопределять + + + + Vertical + + + + ФормаКоманднаяПанель + -1 + Left + true + + LockOwner + true + true + true + Vertical + true + true + true + auto + true + + ПриоритетОбновленияВОбластяхДанных + + <key>ru</key> + <value>Приоритет обновления в областях данных</value> + + 2 + + ConstantsSet + + + true + + + true + +
                    true
                    + true +
                    + + + + + +
                    diff --git a/SSL/src/CommonForms/НастройкаОбменаСообщениями/НастройкаОбменаСообщениями.mdo b/SSL/src/CommonForms/ПриоритетОбновленияВОбластяхДанных/ПриоритетОбновленияВОбластяхДанных.mdo similarity index 56% rename from SSL/src/CommonForms/НастройкаОбменаСообщениями/НастройкаОбменаСообщениями.mdo rename to SSL/src/CommonForms/ПриоритетОбновленияВОбластяхДанных/ПриоритетОбновленияВОбластяхДанных.mdo index 03d80a0bf..1fab36a64 100644 --- a/SSL/src/CommonForms/НастройкаОбменаСообщениями/НастройкаОбменаСообщениями.mdo +++ b/SSL/src/CommonForms/ПриоритетОбновленияВОбластяхДанных/ПриоритетОбновленияВОбластяхДанных.mdo @@ -1,9 +1,9 @@ - - НастройкаОбменаСообщениями + + ПриоритетОбновленияВОбластяхДанных ru - Настройка обмена сообщениями + Приоритет обновления в областях данных PersonalComputer MobileDevice diff --git a/SSL/src/CommonForms/Расширения/Help/ru.html b/SSL/src/CommonForms/Расширения/Help/ru.html index 5c4ae7088..b91cb27ce 100644 --- a/SSL/src/CommonForms/Расширения/Help/ru.html +++ b/SSL/src/CommonForms/Расширения/Help/ru.html @@ -1,39 +1,52 @@ - +

                    Список предназначен для добавления к программе расширений конфигурации. Они позволяют добавлять новые возможности в программу без ее прямого изменения.

                    Подробнее о расширениях и работе с ними см. сайт.

                    Открывается по команде Расширения в разделе Администрирование - Печатные формы, отчеты и обработки.

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

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

                    В списке с помощью значков отображается состояние расширений. Расширение может быть:

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

                  В списке с помощью значков отображается состояние расширений. Расширение может быть:

                  • подключено (тогда в списке зеленый кружок). Подробнее о подключении расширений см. http://its.1c.ru/db/v837doc#bookmark:dev:TI000001534;
                    -
                  • +
                  • +
                  • не подключено (тогда в списке красный кружок);
                    -
                  • +
                  • +
                  • установлено (тогда в списке серый кружок) - после перезапуска будет либо подключено, либо не подключено.

                  Добавление расширения

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

                  Удаление расширения

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

                  Перезапуск программы

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

                Удаление расширения

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

                Перезапуск программы

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

                Сохранение расширения в файл

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

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

                Обновление расширения

                • Выделите расширение, нажмите Обновить из файла, укажите путь к файлу на компьютере.
                  -
                • +
                • +
                • Следует использовать эту кнопку для установки новой версии расширения.
                  -
                • +
                • +
                • Также нужно использовать эту возможность для возврата к предыдущей версии, если новая версия содержит ошибку (однако не рекомендуется устанавливать расширение меньшей версии, т.к. это может привести к потере сделанных настроек).
                \ No newline at end of file diff --git a/SSL/src/CommonForms/Расширения/Module.bsl b/SSL/src/CommonForms/Расширения/Module.bsl index 483b94480..9c774bce1 100644 --- a/SSL/src/CommonForms/Расширения/Module.bsl +++ b/SSL/src/CommonForms/Расширения/Module.bsl @@ -20,10 +20,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - НавигационнаяСсылка = "e1cib/app/ОбщаяФорма.Расширения"; Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда @@ -139,7 +135,8 @@ ИдентификаторСтроки = ТекущееРасширение.ПолучитьИдентификатор(); - Если Не ТекущееРасширение.Подключать Тогда + Если Не ТекущееРасширение.Подключать + И ЭтоРасширениеСДанными(ТекущееРасширение.ИдентификаторРасширения) Тогда Контекст = Новый Структура; Контекст.Вставить("ИдентификаторСтроки", ИдентификаторСтроки); @@ -147,14 +144,11 @@ Оповещение = Новый ОписаниеОповещения("ОтключитьРасширениеПослеПодтверждения", ЭтотОбъект, Контекст); ПараметрыФормы = Новый Структура; - ПараметрыФормы.Вставить("Ключ", "ПередОтключениемРасширения"); + ПараметрыФормы.Вставить("Ключ", "ПередОтключениемРасширенияСДанными"); ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы,,,,, Оповещение) - - Иначе - + Иначе СписокРасширенийПодключатьПриИзмененииНаСервере(ИдентификаторСтроки); - КонецЕсли; КонецПроцедуры @@ -397,20 +391,10 @@ КонецФункции -&НаСервере +&НаСервереБезКонтекста Функция НайтиРасширение(ИдентификаторРасширения) - Отбор = Новый Структура; - Отбор.Вставить("УникальныйИдентификатор", Новый УникальныйИдентификатор(ИдентификаторРасширения)); - Расширения = РасширенияКонфигурации.Получить(Отбор); - - Расширение = Неопределено; - - Если Расширения.Количество() = 1 Тогда - Расширение = Расширения[0]; - КонецЕсли; - - Возврат Расширение; + Возврат Справочники.ВерсииРасширений.НайтиРасширение(ИдентификаторРасширения); КонецФункции @@ -439,29 +423,43 @@ Возврат; КонецЕсли; - Если ВыделенныеСтроки.Количество() = 1 Тогда - ТекущееРасширение = Элементы.СписокРасширений.ТекущиеДанные; + ИдентификаторыРасширений = Новый Массив; + ПропускаемыеСтроки = Новый Массив; + + Для Каждого ИдентификаторСтроки Из ВыделенныеСтроки Цикл + СтрокаРасширения = СписокРасширений.НайтиПоИдентификатору(ИдентификаторСтроки); - Если ТекущееРасширение.Общее - И ЭтоНеразделенныйПользовательВОбласти - Или ТекущееРасширение.ПолученоИзГлавногоУзлаРИБ Тогда + Если СтрокаРасширения.Общее + И ЭтоНеразделенныйПользовательВОбласти + Или СтрокаРасширения.ПолученоИзГлавногоУзлаРИБ Тогда - // Если нажали на клавиатуре Del, и выделена одна строка, - // с общим расширением в сеансе с разделителями - // или в подчиненном узле РИБ, полученное из главного узла, - // то нажатие игнорируется. - Возврат; + ПропускаемыеСтроки.Добавить(ИдентификаторСтроки); + Продолжить; КонецЕсли; + ИдентификаторыРасширений.Добавить(СтрокаРасширения.ИдентификаторРасширения); + КонецЦикла; + + Для Каждого ИдентификаторСтроки Из ПропускаемыеСтроки Цикл + ВыделенныеСтроки.Удалить(ВыделенныеСтроки.Найти(ИдентификаторСтроки)); + КонецЦикла; + + Если ИдентификаторыРасширений.Количество() = 0 Тогда + Возврат; КонецЕсли; Контекст = Новый Структура; - Контекст.Вставить("ВыделенныеСтроки", ВыделенныеСтроки); + Контекст.Вставить("ИдентификаторыРасширений", ИдентификаторыРасширений); Оповещение = Новый ОписаниеОповещения("УдалитьРасширениеПослеПодтверждения", ЭтотОбъект, Контекст); ПараметрыФормы = Новый Структура; - ПараметрыФормы.Вставить("Ключ", "ПередУдалениемРасширения"); - ПараметрыФормы.Вставить("МножественныйВыбор", ВыделенныеСтроки.Количество() > 1); + ПараметрыФормы.Вставить("МножественныйВыбор", ИдентификаторыРасширений.Количество() > 1); + + Если ЕстьРасширениеСДанными(ИдентификаторыРасширений) Тогда + ПараметрыФормы.Вставить("Ключ", "ПередУдалениемРасширенияСДанными"); + Иначе + ПараметрыФормы.Вставить("Ключ", "ПередУдалениемРасширенияБезДанных"); + КонецЕсли; ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы,,,,, Оповещение) @@ -477,7 +475,7 @@ Оповещение = Новый ОписаниеОповещения("УдалитьРасширениеПродолжение", ЭтотОбъект, Контекст); Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда - Запросы = ЗапросыНаОтменуРазрешенийИспользованияВнешнегоМодуля(Контекст.ВыделенныеСтроки); + Запросы = ЗапросыНаОтменуРазрешенийИспользованияВнешнегоМодуля(Контекст.ИдентификаторыРасширений); МодульРаботаВБезопасномРежимеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаВБезопасномРежимеКлиент"); МодульРаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(Запросы, ЭтотОбъект, Оповещение); Иначе @@ -503,7 +501,7 @@ Контекст = ТекущийКонтекст; Попытка - УдалитьРасширенияНаСервере(Контекст.ВыделенныеСтроки); + УдалитьРасширенияНаСервере(Контекст.ИдентификаторыРасширений); Исключение ИнформацияОбОшибке = ИнформацияОбОшибке(); ПодключитьОбработчикОжидания("СкрытьДлительнуюОперацию", 0.1, Истина); @@ -515,89 +513,10 @@ КонецПроцедуры &НаСервере -Процедура УдалитьРасширенияНаСервере(ВыделенныеСтроки) - - УдаляемыеРасширения = Новый Массив; +Процедура УдалитьРасширенияНаСервере(ИдентификаторыРасширений) ТекстОшибки = ""; - Попытка - УдаляемоеРасширение = ""; - Для Каждого ЭлементСписка Из СписокРасширений Цикл - Если ВыделенныеСтроки.Найти(ЭлементСписка.ПолучитьИдентификатор()) = Неопределено Тогда - Продолжить; - КонецЕсли; - Расширение = НайтиРасширение(ЭлементСписка.ИдентификаторРасширения); - Если Расширение <> Неопределено Тогда - ОписаниеРасширения = Новый Структура; - ОписаниеРасширения.Вставить("Удалено", Ложь); - ОписаниеРасширения.Вставить("Расширение", Расширение); - ОписаниеРасширения.Вставить("ДанныеРасширения", Расширение.ПолучитьДанные()); - УдаляемыеРасширения.Добавить(ОписаниеРасширения); - КонецЕсли; - КонецЦикла; - Индекс = УдаляемыеРасширения.Количество() - 1; - Пока Индекс >= 0 Цикл - ОписаниеРасширения = УдаляемыеРасширения[Индекс]; - ОтключитьПредупрежденияБезопасности(ОписаниеРасширения.Расширение); - УдаляемоеРасширение = ОписаниеРасширения.Расширение.Синоним; - ОписаниеРасширения.Расширение.Удалить(); - УдаляемоеРасширение = ""; - ОписаниеРасширения.Удалено = Истина; - Индекс = Индекс - 1; - КонецЦикла; - - Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() - И РасширенияКонфигурации.Получить().Количество() = 0 Тогда - - Справочники.ВерсииРасширений.ПриУдаленииВсехРасширений(); - КонецЕсли; - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось удалить расширение ""%1"" по причине: - | - |%2'"), - УдаляемоеРасширение, - КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); - КонецПопытки; - - Если Не ЗначениеЗаполнено(ТекстОшибки) Тогда - Попытка - РегистрыСведений.ПараметрыРаботыВерсийРасширений.ОбновитьПараметрыРаботыРасширений(); - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'После удаления, при подготовке оставшихся расширений к работе, произошла ошибка: - | - |%1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); - КонецПопытки; - КонецЕсли; - - Если ЗначениеЗаполнено(ТекстОшибки) Тогда - ИнформацияОбОшибкеВосстановления = Неопределено; - ВосстановлениеВыполнялось = Ложь; - Попытка - Для Каждого ОписаниеРасширения Из УдаляемыеРасширения Цикл - Если Не ОписаниеРасширения.Удалено Тогда - Продолжить; - КонецЕсли; - ОписаниеРасширения.Расширение.Записать(ОписаниеРасширения.ДанныеРасширения); - ВосстановлениеВыполнялось = Истина; - КонецЦикла; - Исключение - ИнформацияОбОшибкеВосстановления = ИнформацияОбОшибке(); - ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС - + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'При попытке восстановить удаленные расширения произошла еще одна ошибка: - |%1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибкеВосстановления)); - КонецПопытки; - Если ВосстановлениеВыполнялось - И ИнформацияОбОшибкеВосстановления = Неопределено Тогда - - ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС - + НСтр("ru = 'Удаленные расширения были восстановлены.'"); - КонецЕсли; - КонецЕсли; + Справочники.ВерсииРасширений.УдалитьРасширения(ИдентификаторыРасширений, ТекстОшибки); Если ЗначениеЗаполнено(ТекстОшибки) Тогда ВызватьИсключение ТекстОшибки; @@ -628,28 +547,9 @@ КонецПроцедуры &НаСервере -Функция ЗапросыНаОтменуРазрешенийИспользованияВнешнегоМодуля(ВыделенныеСтроки) +Функция ЗапросыНаОтменуРазрешенийИспользованияВнешнегоМодуля(ИдентификаторыРасширений) - Запросы = Новый Массив; - - МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); - Если Не МодульРаботаВБезопасномРежиме.ИспользуютсяПрофилиБезопасности() Тогда - Возврат Запросы; - КонецЕсли; - - Разрешения = Новый Массив; - - Для Каждого ИдентификаторСтроки Из ВыделенныеСтроки Цикл - ТекущееРасширение = СписокРасширений.НайтиПоИдентификатору(ИдентификаторСтроки); - Разрешения.Добавить(МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеВнешнегоМодуля( - ТекущееРасширение.Имя, ТекущееРасширение.КонтрольнаяСумма)); - КонецЦикла; - - Запросы.Добавить(МодульРаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов( - ОбщегоНазначения.ИдентификаторОбъектаМетаданных("РегистрСведений.ПараметрыРаботыВерсийРасширений"), - Разрешения)); - - Возврат Запросы; + Возврат Справочники.ВерсииРасширений.ЗапросыНаОтменуРазрешенийИспользованияВнешнегоМодуля(ИдентификаторыРасширений); КонецФункции @@ -881,6 +781,7 @@ Попытка Если ИдентификаторРасширения <> Неопределено Тогда ОтключитьПредупрежденияБезопасности(Расширение); + ОтключитьИспользованиеОсновныхРолейДляВсехПользователей(Расширение); НовыеДвоичныеДанные = ПолучитьИзВременногоХранилища(ПомещенныеФайлы[0].Хранение); Ошибки = Расширение.ПроверитьВозможностьПрименения(НовыеДвоичныеДанные, Ложь); Для Каждого Ошибка Из Ошибки Цикл @@ -895,29 +796,51 @@ |%1'"), ТекстОшибки); Иначе - Расширение.Записать(НовыеДвоичныеДанные); - НовыеДвоичныеДанныеЗаписаны = Истина; - Расширение = НайтиРасширение(ИдентификаторРасширения); - Если ПрежнееИмяРасширения = Расширение.Имя Тогда + ОписаниеРасширения = Новый ОписаниеКонфигурации(НовыеДвоичныеДанные); + Если ПрежнееИмяРасширения = ОписаниеРасширения.Имя Тогда + Расширение.Записать(НовыеДвоичныеДанные); + НовыеДвоичныеДанныеЗаписаны = Истина; + Расширение = НайтиРасширение(ИдентификаторРасширения); ПроверяемыеРасширения.Вставить(Расширение.Имя, Расширение.Синоним); Иначе ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Нельзя заменить расширение ""%1"" на ""%2"".'"), ПрежнееИмяРасширения, - Расширение.Имя); + ОписаниеРасширения.Имя); КонецЕсли; КонецЕсли; Иначе + ОписаниеНовыхРасширений = Новый СписокЗначений; Для Каждого ПомещенныйФайл Из ПомещенныеФайлы Цикл - Расширение = РасширенияКонфигурации.Создать(); - ОтключитьПредупрежденияБезопасности(Расширение); - ИмяФайлаДобавляемогоРасширения = ПомещенныйФайл.Имя; - Расширение.Записать(ПолучитьИзВременногоХранилища(ПомещенныйФайл.Хранение)); - ИмяФайлаДобавляемогоРасширения = Неопределено; - Расширение = НайтиРасширение(Строка(Расширение.УникальныйИдентификатор)); - ДобавленныеРасширения.Вставить(0, Расширение); - ПроверяемыеРасширения.Вставить(Расширение.Имя, Расширение.Синоним); + ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(ПомещенныйФайл.Хранение); + ОписаниеРасширения = Новый ОписаниеКонфигурации(ДвоичныеДанныеФайла); + Отбор = Новый Структура("Имя", ОписаниеРасширения.Имя); + Расширения = РасширенияКонфигурации.Получить(Отбор); + Если Расширения.Количество() > 0 Тогда + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Нельзя добавить расширение ""%1"" + |из файла ""%2"", + |так как расширение с таким именем уже существует.'"), + ОписаниеРасширения.Имя, + ПомещенныйФайл.Имя); + Прервать; + КонецЕсли; КонецЦикла; + Если Не ЗначениеЗаполнено(ТекстОшибки) Тогда + Для Каждого ПомещенныйФайл Из ПомещенныеФайлы Цикл + ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(ПомещенныйФайл.Хранение); + ОписаниеРасширения = Новый ОписаниеКонфигурации(ДвоичныеДанныеФайла); + Расширение = РасширенияКонфигурации.Создать(); + ОтключитьПредупрежденияБезопасности(Расширение); + ОтключитьИспользованиеОсновныхРолейДляВсехПользователей(Расширение); + ИмяФайлаДобавляемогоРасширения = ПомещенныйФайл.Имя; + Расширение.Записать(ДвоичныеДанныеФайла); + ИмяФайлаДобавляемогоРасширения = Неопределено; + Расширение = НайтиРасширение(Строка(Расширение.УникальныйИдентификатор)); + ДобавленныеРасширения.Вставить(0, Расширение); + ПроверяемыеРасширения.Вставить(Расширение.Имя, Расширение.Синоним); + КонецЦикла; + КонецЕсли; КонецЕсли; Исключение ИнформацияОбОшибке = ИнформацияОбОшибке(); @@ -929,11 +852,11 @@ ИначеЕсли ЗначениеЗаполнено(ИмяФайлаДобавляемогоРасширения) Тогда ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось добавить расширение из файла - |""%1"" - |по причине: + НСтр("ru = 'Не удалось добавить расширение ""%1"" + |из файла ""%2"" по причине: | - |%2'"), + |%3'"), + ОписаниеРасширения.Имя, ИмяФайлаДобавляемогоРасширения, КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); Иначе @@ -967,6 +890,8 @@ Если Расширение = Неопределено Тогда Расширение = РасширенияКонфигурации.Создать(); КонецЕсли; + ОтключитьПредупрежденияБезопасности(Расширение); + ОтключитьИспользованиеОсновныхРолейДляВсехПользователей(Расширение); Расширение.Записать(ДанныеРасширения); КонецЕсли; ВосстановлениеВыполнялось = Истина; @@ -1039,6 +964,7 @@ Расширение.БезопасныйРежим = СтрокаСписка.БезопасныйРежимФлаг; ОтключитьПредупрежденияБезопасности(Расширение); + ОтключитьИспользованиеОсновныхРолейДляВсехПользователей(Расширение); Попытка Расширение.Записать(); Исключение @@ -1055,6 +981,32 @@ КонецПроцедуры +&НаСервереБезКонтекста +Функция ЕстьРасширениеСДанными(ИдентификаторыРасширений) + + Для Каждого ИдентификаторРасширения Из ИдентификаторыРасширений Цикл + Если ЭтоРасширениеСДанными(ИдентификаторРасширения) Тогда + Возврат Истина; + КонецЕсли; + КонецЦикла; + + Возврат Ложь; + +КонецФункции + +&НаСервереБезКонтекста +Функция ЭтоРасширениеСДанными(ИдентификаторРасширения) + + Расширение = НайтиРасширение(ИдентификаторРасширения); + + Если Расширение = Неопределено Тогда + Возврат Ложь; + КонецЕсли; + + Возврат Расширение.ИзменяетСтруктуруДанных(); + +КонецФункции + &НаСервере Процедура СписокРасширенийПодключатьПриИзмененииНаСервере(ИдентификаторСтроки) @@ -1072,6 +1024,7 @@ Расширение.Активно = СтрокаСписка.Подключать; ОтключитьПредупрежденияБезопасности(Расширение); + ОтключитьИспользованиеОсновныхРолейДляВсехПользователей(Расширение); Попытка Расширение.Записать(); Исключение @@ -1103,6 +1056,7 @@ Расширение.ИспользуетсяВРаспределеннойИнформационнойБазе = СтрокаСписка.ПередаватьВПодчиненныеУзлыРИБ; ОтключитьПредупрежденияБезопасности(Расширение); + ОтключитьИспользованиеОсновныхРолейДляВсехПользователей(Расширение); Попытка Расширение.Записать(); Исключение @@ -1144,6 +1098,7 @@ ДанныеОбновляемогоРасширения = ВременноеРасширение.ПолучитьДанные(); КонецЕсли; ОтключитьПредупрежденияБезопасности(ВременноеРасширение); + ОтключитьИспользованиеОсновныхРолейДляВсехПользователей(ВременноеРасширение); ДанныеРасширения = ПолучитьИзВременногоХранилища(ПомещенныйФайл.Хранение); ВременноеРасширение.Записать(ДанныеРасширения); ТребуетсяВосстановление = Истина; @@ -1158,6 +1113,8 @@ Если ВременноеРасширение = Неопределено Тогда ВременноеРасширение = РасширенияКонфигурации.Создать(); КонецЕсли; + ОтключитьПредупрежденияБезопасности(ВременноеРасширение); + ОтключитьИспользованиеОсновныхРолейДляВсехПользователей(ВременноеРасширение); ВременноеРасширение.Записать(ДанныеОбновляемогоРасширения); КонецЕсли; ТребуетсяВосстановление = Ложь; @@ -1193,6 +1150,8 @@ Если ВременноеРасширение = Неопределено Тогда ВременноеРасширение = РасширенияКонфигурации.Создать(); КонецЕсли; + ОтключитьПредупрежденияБезопасности(ВременноеРасширение); + ОтключитьИспользованиеОсновныхРолейДляВсехПользователей(ВременноеРасширение); ВременноеРасширение.Записать(ДанныеОбновляемогоРасширения); КонецЕсли; Исключение @@ -1239,7 +1198,14 @@ &НаСервере Процедура ОтключитьПредупрежденияБезопасности(Расширение) - Расширение.ЗащитаОтОпасныхДействий = ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений(); + Справочники.ВерсииРасширений.ОтключитьПредупрежденияБезопасности(Расширение); + +КонецПроцедуры + +&НаСервере +Процедура ОтключитьИспользованиеОсновныхРолейДляВсехПользователей(Расширение) + + Справочники.ВерсииРасширений.ОтключитьИспользованиеОсновныхРолейДляВсехПользователей(Расширение); КонецПроцедуры @@ -1332,7 +1298,7 @@ СеансЗапущенБезРазделителей = Истина; Если ОбщегоНазначения.РазделениеВключено() - И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей(); diff --git a/SSL/src/CommonForms/РедактированиеГиперссылки/Module.bsl b/SSL/src/CommonForms/РедактированиеГиперссылки/Module.bsl index 5a1abf8ba..d58a3f93f 100644 --- a/SSL/src/CommonForms/РедактированиеГиперссылки/Module.bsl +++ b/SSL/src/CommonForms/РедактированиеГиперссылки/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ЭтотОбъект.ТолькоПросмотр = Параметры.ТолькоПросмотр; Элементы.Ссылка.ОграничениеТипа = Параметры.ТипЗначения; diff --git a/SSL/src/CommonForms/РедактированиеДополнительныхСведений/Help/ru.html b/SSL/src/CommonForms/РедактированиеДополнительныхСведений/Help/ru.html index 05a16daf7..da67cd4f3 100644 --- a/SSL/src/CommonForms/РедактированиеДополнительныхСведений/Help/ru.html +++ b/SSL/src/CommonForms/РедактированиеДополнительныхСведений/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                Открывается с помощью кнопки  Дополнительные сведения из окон объектов программы, для которых были настроены дополнительные сведения.

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

                diff --git a/SSL/src/CommonForms/РедактированиеДополнительныхСведений/Module.bsl b/SSL/src/CommonForms/РедактированиеДополнительныхСведений/Module.bsl index 717dda23d..d5bcbcb08 100644 --- a/SSL/src/CommonForms/РедактированиеДополнительныхСведений/Module.bsl +++ b/SSL/src/CommonForms/РедактированиеДополнительныхСведений/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Не ПравоДоступа("Изменение", Метаданные.РегистрыСведений.ДополнительныеСведения) Тогда Элементы.ФормаЗаписать.Видимость = Ложь; Элементы.ФормаЗаписатьИЗакрыть.Видимость = Ложь; diff --git a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Form.form b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Form.form index 987ce51b5..476cd25d5 100644 --- a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Form.form +++ b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Form.form @@ -1378,7 +1378,7 @@ OnActivate - ТабличныйДокументПриАктивизацииОбласти + ТабличныйДокументПриАктивизации 50 true diff --git a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Help/ru.html b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Help/ru.html index 06218536c..4b619656e 100644 --- a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Help/ru.html +++ b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                Для редактирования табличного документа или макета в печатной форме или табличном документе выполните команду Изменить макет меню Еще.

                Важно: при редактировании макетов печатных форм необходимо иметь в виду, что изменение имен областей, а также параметров макета может привести к потере работоспособности печатной формы. Восстановление стандартной печатной формы выполняется в списке Макеты печатных форм.

                diff --git a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl index c1b4ba6f7..922568e85 100644 --- a/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl +++ b/SSL/src/CommonForms/РедактированиеТабличногоДокумента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.РежимОткрытияОкна <> Неопределено Тогда РежимОткрытияОкна = Параметры.РежимОткрытияОкна; КонецЕсли; @@ -121,7 +117,7 @@ #Область ОбработчикиСобытийЭлементовШапкиФормы &НаКлиенте -Процедура ТабличныйДокументПриАктивизацииОбласти(Элемент) +Процедура ТабличныйДокументПриАктивизации(Элемент) ОбновитьПометкиКнопокКоманднойПанели(); КонецПроцедуры @@ -233,7 +229,7 @@ // Шрифт Шрифт = Область.Шрифт; - Элементы.ТабличныйДокументЖирный.Пометка = Шрифт <> Неопределено И Шрифт.Жирный = Истина; + Элементы.ТабличныйДокументЖирный.Пометка = Шрифт <> Неопределено И Шрифт.Полужирный = Истина; Элементы.ТабличныйДокументНаклонный.Пометка = Шрифт <> Неопределено И Шрифт.Наклонный = Истина; Элементы.ТабличныйДокументПодчеркивание.Пометка = Шрифт <> Неопределено И Шрифт.Подчеркивание = Истина; Элементы.Зачеркивание.Пометка = Шрифт <> Неопределено И Шрифт.Зачеркивание = Истина; diff --git a/SSL/src/CommonForms/Сертификат/Help/ru.html b/SSL/src/CommonForms/Сертификат/Help/ru.html index 6284ffa2b..8dc093527 100644 --- a/SSL/src/CommonForms/Сертификат/Help/ru.html +++ b/SSL/src/CommonForms/Сертификат/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                Основные сведения о сертификате

                • Кому выдан - личные данные владельца сертификата; diff --git a/SSL/src/CommonForms/Сертификат/Module.bsl b/SSL/src/CommonForms/Сертификат/Module.bsl index 49a1438a5..27bcdf704 100644 --- a/SSL/src/CommonForms/Сертификат/Module.bsl +++ b/SSL/src/CommonForms/Сертификат/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если ЗначениеЗаполнено(Параметры.АдресСертификата) Тогда ДанныеСертификата = ПолучитьИзВременногоХранилища(Параметры.АдресСертификата); Сертификат = Новый СертификатКриптографии(ДанныеСертификата); diff --git a/SSL/src/CommonForms/СинхронизацияДанных/Form.form b/SSL/src/CommonForms/СинхронизацияДанных/Form.form index 8a98434a6..a52a6b1fe 100644 --- a/SSL/src/CommonForms/СинхронизацияДанных/Form.form +++ b/SSL/src/CommonForms/СинхронизацияДанных/Form.form @@ -2996,10 +2996,10 @@ - ЕстьПравоАдминистрированиеОбменов + ЕстьПраваНаАдминистрированиеОбменов <key>ru</key> - <value>Есть право администрирование обменов</value> + <value>Есть права на администрирование обменов</value> 4 @@ -3050,10 +3050,10 @@ - ЕстьПравоОбновления + ЕстьПраваНаВыполнениеОбновленияКонфигурации <key>ru</key> - <value>Есть право обновления</value> + <value>Есть права на выполнение обновления конфигурации</value> 9 @@ -3067,10 +3067,10 @@ - ЕстьПравоПросмотрЖурналаРегистрации + ЕстьПраваНаПросмотрЖурналаРегистрации <key>ru</key> - <value>Есть право просмотр журнала регистрации</value> + <value>Есть права на просмотр журнала регистрации</value> 10 @@ -3275,7 +3275,7 @@ ru Индекс строки список приложений - 22 + 3 true @@ -3623,6 +3623,9 @@ true + + CommonPicture.СинхронизацияДанныхВыгрузить + НачальнаяВыгрузкаДанных diff --git a/SSL/src/CommonForms/СинхронизацияДанных/Help/ru.html b/SSL/src/CommonForms/СинхронизацияДанных/Help/ru.html index 6cef9af04..e10b25844 100644 --- a/SSL/src/CommonForms/СинхронизацияДанных/Help/ru.html +++ b/SSL/src/CommonForms/СинхронизацияДанных/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                  diff --git a/SSL/src/CommonForms/СинхронизацияДанных/Module.bsl b/SSL/src/CommonForms/СинхронизацияДанных/Module.bsl index f8ba17742..f79dae3c8 100644 --- a/SSL/src/CommonForms/СинхронизацияДанных/Module.bsl +++ b/SSL/src/CommonForms/СинхронизацияДанных/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ПроверитьВозможностьНастройкиСинхронизацииДанных(Отказ); Если Отказ Тогда @@ -968,7 +964,7 @@ ВидТранспорта = РегистрыСведений.НастройкиТранспортаОбменаДанными.ВидТранспортаСообщенийОбменаПоУмолчанию( СтрокаПриложение.УзелИнформационнойБазы); - + Если ВидТранспорта = Перечисления.ВидыТранспортаСообщенийОбмена.WS Или ВидТранспорта = Перечисления.ВидыТранспортаСообщенийОбмена.ВнешняяСистема Тогда СтрокаПриложение.РежимРаботыПриложения = 1; // сервис @@ -992,7 +988,7 @@ СтрокаПриложение.ДоступнаИнтерактивнаяОтправка = СтрокаПриложение.ДоступнаИнтерактивнаяОтправка И Не (СтрокаПриложение.ВариантОбменаДанными = "ТолькоПолучение"); - + СостояниеСинхронизации = СостояниеСинхронизацииДанных(СтрокаПриложение); СтрокаПриложение.СостояниеПредставление = СостояниеСинхронизации.Представление; СтрокаПриложение.СостояниеКартинка = СостояниеСинхронизации.Картинка; @@ -1087,10 +1083,10 @@ &НаСервере Процедура ИнициализироватьРеквизитыФормы() - ЕстьПравоАдминистрированиеОбменов = ОбменДаннымиСервер.ЕстьПраваНаАдминистрированиеОбменов(); + ЕстьПраваНаАдминистрированиеОбменов = ОбменДаннымиСервер.ЕстьПраваНаАдминистрированиеОбменов(); + ЕстьПраваНаПросмотрЖурналаРегистрации = ПравоДоступа("ЖурналРегистрации", Метаданные); - ЕстьПравоПросмотрЖурналаРегистрации = ПравоДоступа("ЖурналРегистрации", Метаданные); - ЕстьПравоОбновления = ПравоДоступа("ОбновлениеКонфигурацииБазыДанных", Метаданные); + ЕстьПраваНаВыполнениеОбновленияКонфигурации = ПравоДоступа("ОбновлениеКонфигурацииБазыДанных", Метаданные); ПрефиксИБ = ОбменДаннымиСервер.ПрефиксИнформационнойБазы(); @@ -1103,24 +1099,24 @@ Процедура УстановитьОтображениеЭлементовФормы() // Командная панель. - Элементы.СписокПриложенийГруппаУправление.Видимость = ЕстьПравоАдминистрированиеОбменов; - Элементы.СписокПриложенийГруппаИзменениеИСостав.Видимость = ЕстьПравоАдминистрированиеОбменов И ЕстьНастроенныеОбмены; + Элементы.СписокПриложенийГруппаУправление.Видимость = ЕстьПраваНаАдминистрированиеОбменов; + Элементы.СписокПриложенийГруппаИзменениеИСостав.Видимость = ЕстьПраваНаАдминистрированиеОбменов И ЕстьНастроенныеОбмены; Элементы.СписокПриложенийГруппаВыполненияОбменаДанными.Видимость = ЕстьНастроенныеОбмены; - Элементы.СписокПриложенийГруппаРасписаниеВыполненияОбмена.Видимость = ЕстьПравоАдминистрированиеОбменов И ЕстьНастроенныеОбмены; - Элементы.СписокПриложенийГруппаСобытия.Видимость = ЕстьПравоПросмотрЖурналаРегистрации И ЕстьНастроенныеОбмены; - Элементы.СписокПриложенийУдалитьНастройкуСинхронизации.Видимость = ЕстьПравоАдминистрированиеОбменов И ЕстьНастроенныеОбмены; + Элементы.СписокПриложенийГруппаРасписаниеВыполненияОбмена.Видимость = ЕстьПраваНаАдминистрированиеОбменов И ЕстьНастроенныеОбмены; + Элементы.СписокПриложенийГруппаСобытия.Видимость = ЕстьПраваНаПросмотрЖурналаРегистрации И ЕстьНастроенныеОбмены; + Элементы.СписокПриложенийУдалитьНастройкуСинхронизации.Видимость = ЕстьПраваНаАдминистрированиеОбменов И ЕстьНастроенныеОбмены; // Контекстное меню. - Элементы.СписокПриложенийКонтекстноеМенюГруппаИзменениеИСостав.Видимость = ЕстьПравоАдминистрированиеОбменов И ЕстьНастроенныеОбмены; + Элементы.СписокПриложенийКонтекстноеМенюГруппаИзменениеИСостав.Видимость = ЕстьПраваНаАдминистрированиеОбменов И ЕстьНастроенныеОбмены; Элементы.СписокПриложенийКонтекстноеМенюГруппаВыполненияОбменаДанными.Видимость = ЕстьНастроенныеОбмены; - Элементы.СписокПриложенийКонтекстноеМенюГруппаРасписаниеВыполненияОбмена.Видимость = ЕстьПравоАдминистрированиеОбменов И ЕстьНастроенныеОбмены; - Элементы.СписокПриложенийКонтекстноеМенюГруппаСобытия.Видимость = ЕстьПравоПросмотрЖурналаРегистрации И ЕстьНастроенныеОбмены; - Элементы.СписокПриложенийКонтекстноеМенюГруппаУправление.Видимость = ЕстьПравоАдминистрированиеОбменов И ЕстьНастроенныеОбмены; + Элементы.СписокПриложенийКонтекстноеМенюГруппаРасписаниеВыполненияОбмена.Видимость = ЕстьПраваНаАдминистрированиеОбменов И ЕстьНастроенныеОбмены; + Элементы.СписокПриложенийКонтекстноеМенюГруппаСобытия.Видимость = ЕстьПраваНаПросмотрЖурналаРегистрации И ЕстьНастроенныеОбмены; + Элементы.СписокПриложенийКонтекстноеМенюГруппаУправление.Видимость = ЕстьПраваНаАдминистрированиеОбменов И ЕстьНастроенныеОбмены; // Видимость элементов в шапке формы. Элементы.ИнформационнаяПанельТребуетсяОбновление.Видимость = ТребуетсяОбновление; - Если ЕстьПравоОбновления Тогда + Если ЕстьПраваНаВыполнениеОбновленияКонфигурации Тогда Элементы.ПравоОбновленияСтраницы.ТекущаяСтраница = Элементы.ИнформацияОбменДаннымиПриостановленЕстьПравоОбновления; Иначе Элементы.ПравоОбновленияСтраницы.ТекущаяСтраница = Элементы.ИнформацияОбменДаннымиПриостановленНетПраваОбновления; diff --git a/SSL/src/CommonForms/Склонения/Form.form b/SSL/src/CommonForms/Склонения/Form.form index b9645ae09..700842cb5 100644 --- a/SSL/src/CommonForms/Склонения/Form.form +++ b/SSL/src/CommonForms/Склонения/Form.form @@ -35,7 +35,7 @@ ГруппаПадежи 29 - ИменительныйПадеж + Именительный 4 <key>ru</key> @@ -47,10 +47,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> @@ -60,7 +60,7 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>ИменительныйПадежКонтекстноеМеню</name> + <name>ИменительныйКонтекстноеМеню</name> <id>5</id> <autoFill>true</autoFill> </contextMenu> @@ -82,7 +82,7 @@ </extInfo> </items> <items xsi:type="form:FormField"> - <name>РодительныйПадеж</name> + <name>Родительный</name> <id>7</id> <title> <key>ru</key> @@ -94,10 +94,10 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>РодительныйПадеж</segments> + <segments>Родительный</segments> </dataPath> <extendedTooltip> - <name>РодительныйПадежРасширеннаяПодсказка</name> + <name>РодительныйРасширеннаяПодсказка</name> <id>9</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -107,7 +107,7 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>РодительныйПадежКонтекстноеМеню</name> + <name>РодительныйКонтекстноеМеню</name> <id>8</id> <autoFill>true</autoFill> </contextMenu> @@ -128,7 +128,7 @@ </extInfo> </items> <items xsi:type="form:FormField"> - <name>ДательныйПадеж</name> + <name>Дательный</name> <id>10</id> <title> <key>ru</key> @@ -140,10 +140,10 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>ДательныйПадеж</segments> + <segments>Дательный</segments> </dataPath> <extendedTooltip> - <name>ДательныйПадежРасширеннаяПодсказка</name> + <name>ДательныйРасширеннаяПодсказка</name> <id>12</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -153,7 +153,7 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>ДательныйПадежКонтекстноеМеню</name> + <name>ДательныйКонтекстноеМеню</name> <id>11</id> <autoFill>true</autoFill> </contextMenu> @@ -174,7 +174,7 @@ </extInfo> </items> <items xsi:type="form:FormField"> - <name>ВинительныйПадеж</name> + <name>Винительный</name> <id>13</id> <title> <key>ru</key> @@ -186,10 +186,10 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>ВинительныйПадеж</segments> + <segments>Винительный</segments> </dataPath> <extendedTooltip> - <name>ВинительныйПадежРасширеннаяПодсказка</name> + <name>ВинительныйРасширеннаяПодсказка</name> <id>15</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -199,7 +199,7 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>ВинительныйПадежКонтекстноеМеню</name> + <name>ВинительныйКонтекстноеМеню</name> <id>14</id> <autoFill>true</autoFill> </contextMenu> @@ -220,7 +220,7 @@ </extInfo> </items> <items xsi:type="form:FormField"> - <name>ТворительныйПадеж</name> + <name>Творительный</name> <id>16</id> <title> <key>ru</key> @@ -232,10 +232,10 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>ТворительныйПадеж</segments> + <segments>Творительный</segments> </dataPath> <extendedTooltip> - <name>ТворительныйПадежРасширеннаяПодсказка</name> + <name>ТворительныйРасширеннаяПодсказка</name> <id>18</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -245,7 +245,7 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>ТворительныйПадежКонтекстноеМеню</name> + <name>ТворительныйКонтекстноеМеню</name> <id>17</id> <autoFill>true</autoFill> </contextMenu> @@ -266,7 +266,7 @@ </extInfo> </items> <items xsi:type="form:FormField"> - <name>ПредложныйПадеж</name> + <name>Предложный</name> <id>19</id> <title> <key>ru</key> @@ -278,10 +278,10 @@ <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>ПредложныйПадеж</segments> + <segments>Предложный</segments> </dataPath> <extendedTooltip> - <name>ПредложныйПадежРасширеннаяПодсказка</name> + <name>ПредложныйРасширеннаяПодсказка</name> <id>21</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -291,7 +291,7 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>ПредложныйПадежКонтекстноеМеню</name> + <name>ПредложныйКонтекстноеМеню</name> <id>20</id> <autoFill>true</autoFill> </contextMenu> @@ -341,91 +341,19 @@ </extInfo> </items> <items xsi:type="form:FormGroup"> - <name>ГруппаИнформационнаяНадписьСервисСклонения</name> - <id>45</id> - <items xsi:type="form:FormGroup"> - <name>ГруппаИнформационнаяНадписьВключениеСервиса</name> - <id>43</id> - <items xsi:type="form:Decoration"> - <name>ДекорацияКартинка</name> - <id>40</id> - <visible>true</visible> - <enabled>true</enabled> - <userVisible> - <common>true</common> - </userVisible> - <extendedTooltip> - <name>ДекорацияКартинкаРасширеннаяПодсказка</name> - <id>42</id> - <type>Label</type> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - <extInfo xsi:type="form:LabelDecorationExtInfo"> - <horizontalAlign>Left</horizontalAlign> - </extInfo> - </extendedTooltip> - <contextMenu> - <name>ДекорацияКартинкаКонтекстноеМеню</name> - <id>41</id> - <autoFill>true</autoFill> - </contextMenu> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - <extInfo xsi:type="form:PictureDecorationExtInfo"> - <picture xsi:type="core:PictureRef"> - <picture>CommonPicture.Информация</picture> - </picture> - </extInfo> - </items> - <items xsi:type="form:Decoration"> - <name>ДекорацияНадписьВключениеСервиса</name> - <id>35</id> - <title> - <key>ru</key> - <value>Склонение было выполнено без использования сервиса «Морфер». -Включить использование сервиса можно в настройках программы.</value> - - true - true - - true - - - ДекорацияНадписьВключениеСервисаРасширеннаяПодсказка - 37 - Label - true - true - - Left - - - - ДекорацияНадписьВключениеСервисаКонтекстноеМеню - 36 - true - - Label - true - - Style.ПоясняющийТекст - - - Left - - + ГруппаИнформационнаяНадписьНедоступностьСервиса + 47 + + ДекорацияКартинкаПредупреждение + 52 true true true - - <key>ru</key> - <value>Информационная надпись включение сервиса</value> - - ГруппаИнформационнаяНадписьВключениеСервисаРасширеннаяПодсказка - 44 + ДекорацияКартинкаПредупреждениеРасширеннаяПодсказка + 54 Label true true @@ -433,94 +361,35 @@ Left - Page - - HorizontalIfPossible - false + + ДекорацияКартинкаПредупреждениеКонтекстноеМеню + 53 + true + + true + true + + + CommonPicture.Информация + - - ГруппаИнформационнаяНадписьДоступностьСервиса - 47 - - ДекорацияКартинкаПредупреждение - 52 - true - true - - true - - - ДекорацияКартинкаПредупреждениеРасширеннаяПодсказка - 54 - Label - true - true - - Left - - - - ДекорацияКартинкаПредупреждениеКонтекстноеМеню - 53 - true - - true - true - - - CommonPicture.Предупреждение - - - - - ДекорацияНадписьДоступностьСервиса - 49 - - <key>ru</key> - <value>Сервис склонения «Морфер» недоступен.</value> - - true - true - - true - - - ДекорацияНадписьДоступностьСервисаРасширеннаяПодсказка - 51 - Label - true - true - - Left - - - - ДекорацияНадписьДоступностьСервисаКонтекстноеМеню - 50 - true - - Label - true - - Style.ПоясняющийТекст - - - Left - - + + ДекорацияНадписьДоступностьСервиса + 49 + + <key>ru</key> + <value>Не удалось просклонять с помощью альтернативного внешнего сервиса склонения «Морфер». +Склонение выполнено с помощью встроенных возможностей программы.</value> + true true true - - <key>ru</key> - <value>Информационная надпись доступность сервиса</value> - - ГруппаИнформационнаяНадписьДоступностьСервисаРасширеннаяПодсказка - 48 + ДекорацияНадписьДоступностьСервисаРасширеннаяПодсказка + 51 Label true true @@ -528,10 +397,18 @@ Left - Page - - HorizontalIfPossible - false + + ДекорацияНадписьДоступностьСервисаКонтекстноеМеню + 50 + true + + Label + true + + Style.ПоясняющийТекст + + + Left true @@ -541,11 +418,11 @@ <key>ru</key> - <value>Информационная надпись сервис склонения</value> + <value>Информационная надпись недоступность сервиса</value> - ГруппаИнформационнаяНадписьСервисСклоненияРасширеннаяПодсказка - 46 + ГруппаИнформационнаяНадписьНедоступностьСервисаРасширеннаяПодсказка + 48 Label true true @@ -553,8 +430,14 @@ Left - Pages - + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + Auto Auto @@ -640,10 +523,10 @@ auto true - ИменительныйПадеж + Именительный <key>ru</key> - <value>Именительный падеж</value> + <value>Именительный</value> 1 @@ -659,10 +542,10 @@ true - РодительныйПадеж + Родительный <key>ru</key> - <value>Родительный падеж</value> + <value>Родительный</value> 2 @@ -678,10 +561,10 @@ true - ДательныйПадеж + Дательный <key>ru</key> - <value>Дательный падеж</value> + <value>Дательный</value> 3 @@ -697,10 +580,10 @@ true - ВинительныйПадеж + Винительный <key>ru</key> - <value>Винительный падеж</value> + <value>Винительный</value> 4 @@ -716,10 +599,10 @@ true - ТворительныйПадеж + Творительный <key>ru</key> - <value>Творительный падеж</value> + <value>Творительный</value> 5 @@ -735,10 +618,10 @@ true - ПредложныйПадеж + Предложный <key>ru</key> - <value>Предложный падеж</value> + <value>Предложный</value> 6 diff --git a/SSL/src/CommonForms/Склонения/Help/ru.html b/SSL/src/CommonForms/Склонения/Help/ru.html index 87698ace6..97b30482a 100644 --- a/SSL/src/CommonForms/Склонения/Help/ru.html +++ b/SSL/src/CommonForms/Склонения/Help/ru.html @@ -1,8 +1,9 @@ - -

                  Склонения представления выбранного объекта.

                  -

                  Открывается по ссылке Склонения из карточки объекта.

                  -

                  Склонение может быть выполнено программой без использования сервиса morpher.ru. Включить использование сервиса можно в настройках программы.

                  + +

                  Склонения представления выбранного элемента списка.

                  +

                  Открывается по ссылке Склонения из карточки элемента списка.

                  +

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

                  +

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

                  Возможны неточности автоматического склонения.

                  -

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

                  -

                  Исправьте склонения вручную, нажмите кнопку ОК. Для сохранения склонений в карточке объекта программы нажмите кнопку Записать и закрыть.

                  +

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

                  +

                  Исправьте склонения вручную, нажмите кнопку ОК. Для сохранения склонений в карточке элемента списка нажмите кнопку Записать и закрыть.

                  Если исправленный вариант склонения не устраивает, нажмите кнопку Просклонять повторно.

                  \ No newline at end of file diff --git a/SSL/src/CommonForms/Склонения/Module.bsl b/SSL/src/CommonForms/Склонения/Module.bsl index 615aafba7..596922bb0 100644 --- a/SSL/src/CommonForms/Склонения/Module.bsl +++ b/SSL/src/CommonForms/Склонения/Module.bsl @@ -16,22 +16,24 @@ Склонения = Параметры.Склонения; КонецЕсли; - Если Параметры.Свойство("ЭтоФИО") Тогда - ЭтоФИО = Параметры.ЭтоФИО; + ПараметрыСклонения = Неопределено; + Параметры.Свойство("ПараметрыСклонения", ПараметрыСклонения); + + Если ПараметрыСклонения = Неопределено Тогда + ПараметрыСклонения = СклонениеПредставленийОбъектовКлиентСервер.ПараметрыСклонения(); КонецЕсли; - Если Параметры.Свойство("Пол") Тогда - Пол = Параметры.Пол; - КонецЕсли; + ЭтоФИО = ПараметрыСклонения.ЭтоФИО; + Пол = ПараметрыСклонения.Пол; Если Параметры.Свойство("Представление") Тогда Представление = Параметры.Представление; КонецЕсли; Если Параметры.Свойство("ИзмененоПредставление") Тогда - ИзмененоПредставление = Параметры.ИзмененоПредставление; - КонецЕсли; - + ИзмененоПредставление = Параметры.ИзмененоПредставление; + КонецЕсли; + ОбновитьГруппуИнформационнаяНадписьСервисСклонения(); КонецПроцедуры @@ -39,13 +41,10 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) - ДлительнаяОперация = ПросклонятьПредставлениеПоВсемПадежам(); + Если ИзмененоПредставление Или Склонения = Неопределено Тогда + НачатьСклонение(Ложь); + КонецЕсли; - ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); - - ОповещениеОЗавершении = Новый ОписаниеОповещения("ПросклонятьПредставлениеПоВсемПадежамЗавершение", ЭтотОбъект); - ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания); - КонецПроцедуры #КонецОбласти @@ -63,8 +62,8 @@ Процедура КомандаОК(Команда) СтруктураСклонения = СклонениеПредставленийОбъектовКлиентСервер.СтруктураСклонения(); - ЗаполнитьЗначенияСвойств(СтруктураСклонения, ЭтотОбъект); - + ЗаполнитьЗначенияСвойств(СтруктураСклонения, ЭтотОбъект); + Закрыть(СтруктураСклонения); КонецПроцедуры @@ -72,7 +71,7 @@ &НаКлиенте Процедура КомандаПросклонятьПовторно(Команда) - ПросклонятьПовторноНаСервере(); + НачатьСклонение(Истина); КонецПроцедуры @@ -80,78 +79,60 @@ #Область СлужебныеПроцедурыИФункции -&НаСервере -Функция ПросклонятьПредставлениеПоВсемПадежам() +&НаКлиенте +Процедура НачатьСклонение(ПоказыватьСообщения) - ПараметрыПроцедуры = Новый Структура; - ПараметрыПроцедуры.Вставить("Представление", Представление); - ПараметрыПроцедуры.Вставить("ЭтоФИО", ЭтоФИО); - ПараметрыПроцедуры.Вставить("Пол", Пол); - ПараметрыПроцедуры.Вставить("ИзмененоПредставление", ИзмененоПредставление); - ПараметрыПроцедуры.Вставить("Склонения", Склонения); - - ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); - ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Склонение представления'"); + ЗаполнитьСклонениеПоУмолчанию(); - Возврат ДлительныеОперации.ВыполнитьВФоне("СклонениеПредставленийОбъектов.ПросклонятьПредставлениеПоВсемПадежамДлительнаяОперация", - ПараметрыПроцедуры, ПараметрыВыполнения); + ОповещениеОЗавершении = Новый ОписаниеОповещения("ЗавершитьСклонение", ЭтотОбъект); -КонецФункции + ПараметрыСклонения = СклонениеПредставленийОбъектовКлиентСервер.ПараметрыСклонения(); + ПараметрыСклонения.ЭтоФИО = ЭтоФИО; + ПараметрыСклонения.Пол = Пол; + СклонениеПредставленийОбъектовКлиент.НачатьСклонение(ЭтотОбъект, Представление, ПараметрыСклонения, ПоказыватьСообщения, ОповещениеОЗавершении); + +КонецПроцедуры &НаКлиенте -Процедура ПросклонятьПредставлениеПоВсемПадежамЗавершение(Результат, ДополнительныеПараметры) Экспорт +Процедура ЗавершитьСклонение(Результат, ДополнительныеПараметры) Экспорт Если Результат = Неопределено Тогда Возврат; КонецЕсли; - СтруктураСклонений = ПолучитьИзВременногоХранилища(Результат.АдресРезультата); - - Если ТипЗнч(СтруктураСклонений) = Тип("Структура") Тогда - ЗаполнитьЗначенияСвойств(ЭтотОбъект, СтруктураСклонений); - Склонения = Новый ФиксированнаяСтруктура(СтруктураСклонений); + Если Склонения <> Неопределено Тогда + ЗаполнитьЗначенияСвойств(ЭтотОбъект, Склонения); КонецЕсли; ОбновитьГруппуИнформационнаяНадписьСервисСклонения(); -КонецПроцедуры - -&НаСервере -Процедура ОбновитьГруппуИнформационнаяНадписьСервисСклонения() - - Элементы.ГруппаИнформационнаяНадписьСервисСклонения.Видимость = Ложь; - - Если ЭтоФИО Тогда - Возврат; - КонецЕсли; - - ИспользоватьСервисСклонения = Константы.ИспользоватьСервисСклоненияMorpher.Получить(); - - Если Не ИспользоватьСервисСклонения Тогда - Элементы.ГруппаИнформационнаяНадписьСервисСклонения.Видимость = Истина; - Элементы.ГруппаИнформационнаяНадписьСервисСклонения.ТекущаяСтраница = Элементы.ГруппаИнформационнаяНадписьВключениеСервиса; - Возврат; - КонецЕсли; - - Если Не СклонениеПредставленийОбъектов.ДоступенСервисСклонения() Тогда - Элементы.ГруппаИнформационнаяНадписьСервисСклонения.Видимость = Истина; - Элементы.ГруппаИнформационнаяНадписьСервисСклонения.ТекущаяСтраница = Элементы.ГруппаИнформационнаяНадписьДоступностьСервиса; - КонецЕсли; - КонецПроцедуры &НаСервере -Процедура ПросклонятьПовторноНаСервере() +Процедура ОбновитьГруппуИнформационнаяНадписьСервисСклонения() - СклонениеПредставленийОбъектов.УстановитьДоступностьСервисаСклонения(Истина); + Элементы.ГруппаИнформационнаяНадписьНедоступностьСервиса.Видимость = Ложь; - ИзмененоПредставление = Истина; - СтруктураСклонения = СклонениеПредставленийОбъектов.ДанныеСклонения(Представление, ЭтоФИО, Пол, Истина); - ЗаполнитьЗначенияСвойств(ЭтотОбъект, СтруктураСклонения); - Склонения = Новый ФиксированнаяСтруктура(СтруктураСклонения); - ИзмененоПредставление = Ложь; + ИспользоватьСервисСклонения = Константы.ИспользоватьСервисСклоненияMorpher.Получить(); + Если Не ИспользоватьСервисСклонения Тогда + Возврат; + КонецЕсли; - ОбновитьГруппуИнформационнаяНадписьСервисСклонения(); + Если Не СклонениеПредставленийОбъектов.ДоступенСервисСклонения() Тогда + Элементы.ГруппаИнформационнаяНадписьНедоступностьСервиса.Видимость = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗаполнитьСклонениеПоУмолчанию() + + Именительный = Представление; + Родительный = Представление; + Дательный = Представление; + Винительный = Представление; + Творительный = Представление; + Предложный = Представление; КонецПроцедуры diff --git a/SSL/src/CommonForms/СменаПароля/Help/ru.html b/SSL/src/CommonForms/СменаПароля/Help/ru.html index 2894d40c5..e629c63a6 100644 --- a/SSL/src/CommonForms/СменаПароля/Help/ru.html +++ b/SSL/src/CommonForms/СменаПароля/Help/ru.html @@ -1,4 +1,4 @@ - +

                  Предназначена для ввода или смены пароля.

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

                  Ввод пароля

                  diff --git a/SSL/src/CommonForms/СменаПароля/Module.bsl b/SSL/src/CommonForms/СменаПароля/Module.bsl index c34977b0a..02dcc1349 100644 --- a/SSL/src/CommonForms/СменаПароля/Module.bsl +++ b/SSL/src/CommonForms/СменаПароля/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ПриВходеВПрограмму = Параметры.ПриВходеВПрограмму; ВернутьПарольБезУстановки = Параметры.ВернутьПарольБезУстановки; СтарыйПароль = Параметры.СтарыйПароль; diff --git a/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Help/ru.html b/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Help/ru.html index 9be7f68c4..fd38c8c0b 100644 --- a/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Help/ru.html +++ b/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Help/ru.html @@ -1,4 +1,4 @@ - +

                  Предназначена для указания параметров файловой или клиент-серверной базы при создании начального образа РИБ. При настройке синхронизации РИБ (внешние файлы) необходимо указать, где будет создан начальный образ РИБ. Если файлы хранятся в томах, также потребуется указать путь к файлу, в который будет записан архив (.zip) со всеми файлами в томах.

                  Открывается по команде  Создать начальный образ из Помощника создания синхронизации данных при настройке синхронизации РИБ (внешние файлы). Также можно в списке Синхронизация данных с помощью кнопки  открыть настройку синхронизации РИБ (внешние файлы), нажать кнопку Создание начального образа подчиненного узла распределенной информационной базы.

                  Параметры информационной базы

                  diff --git a/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Module.bsl b/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Module.bsl index 343a4793a..241532414 100644 --- a/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Module.bsl +++ b/SSL/src/CommonForms/СозданиеНачальногоОбразаСФайлами/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Менеджер = ПланыОбмена[Параметры.Узел.Метаданные().Имя]; Если Параметры.Узел = Менеджер.ЭтотУзел() Тогда diff --git a/SSL/src/CommonForms/СозданиеРезервнойКопии/Form.form b/SSL/src/CommonForms/СозданиеРезервнойКопии/Form.form deleted file mode 100644 index d11508c1f..000000000 --- a/SSL/src/CommonForms/СозданиеРезервнойКопии/Form.form +++ /dev/null @@ -1,539 +0,0 @@ - - - - ГруппаСтраницы - 5 - - СтраницаДоВыгрузки - 6 - - ДекорацияСообщениеДоВыгрузки - 1 - - <key>ru</key> - <value>Процесс выгрузки данных может занять продолжительное время. - -Выгрузка не сможет начаться, пока другие пользователи работают с приложением. -</value> - - true - true - - true - - - ДекорацияСообщениеДоВыгрузкиExtendedTooltip - 32 - Label - true - true - - Left - - - - ДекорацияСообщениеДоВыгрузкиКонтекстноеМеню - 2 - true - - Label - true - - Left - - - true - true - - true - - - <key>ru</key> - <value>До выгрузки</value> - - - СтраницаДоВыгрузкиExtendedTooltip - 31 - Label - true - true - - Left - - - Page - - Vertical - false - - - - СтраницаПослеВыгрузкиУспех - 8 - - ДекорацияУспех - 42 - - <key>ru</key> - <value>Декорация успех</value> - - true - true - - true - - - ДекорацияУспехРасширеннаяПодсказка - 44 - Label - true - true - - Left - - - - ДекорацияУспехКонтекстноеМеню - 43 - true - - true - true - - - CommonPicture.Успешно32 - - - - - ГруппаФайл - 13 - - ДекорацияСообщениеПослеВыгрузкиУспех - 9 - - <key>ru</key> - <value>Процесс создания копии успешно завершен.</value> - - true - true - - true - - - ДекорацияСообщениеПослеВыгрузкиУспехExtendedTooltip - 34 - Label - true - true - - Left - - - - ДекорацияСообщениеПослеВыгрузкиУспехКонтекстноеМеню - 10 - true - - Label - true - - Left - - - - ДекорацияФайл - 14 - - <key>ru</key> - <value>Файл выгрузки помещен в менеджер сервиса.</value> - - true - true - - true - - - ДекорацияФайлExtendedTooltip - 36 - Label - true - true - - Left - - - - ДекорацияФайлКонтекстноеМеню - 15 - true - - Label - true - - Left - - - true - true - - true - - - <key>ru</key> - <value>Файл</value> - - - ГруппаФайлExtendedTooltip - 35 - Label - true - true - - Left - - - UsualGroup - - Vertical - Auto - true - true - Auto - Auto - - - true - true - - true - - - <key>ru</key> - <value>После выгрузки Успех</value> - - - СтраницаПослеВыгрузкиУспехExtendedTooltip - 33 - Label - true - true - - Left - - - Page - - HorizontalIfPossible - false - - - - СтраницаПослеВыгрузкиОшибка - 22 - - ДекорацияОшибка - 39 - - <key>ru</key> - <value>Декорация ошибка</value> - - true - true - - true - - - ДекорацияОшибкаРасширеннаяПодсказка - 41 - Label - true - true - - Left - - - - ДекорацияОшибкаКонтекстноеМеню - 40 - true - - true - true - - - CommonPicture.Ошибка32 - - - - - СообщениеОбОшибке - 25 - - <key>ru</key> - <value>Процесс выгрузки закончился с ошибкой</value> - - true - true - - true - - - СообщениеОбОшибке - - Top - - СообщениеОбОшибкеExtendedTooltip - 38 - Label - true - true - - Left - - - - СообщениеОбОшибкеКонтекстноеМеню - 26 - true - - InputField - true - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - true - true - - true - - - <key>ru</key> - <value>После выгрузки Ошибка</value> - - - СтраницаПослеВыгрузкиОшибкаExtendedTooltip - 37 - Label - true - true - - Left - - - Page - - HorizontalIfPossible - false - - - true - true - - true - - - <key>ru</key> - <value>Страницы</value> - - true - - ГруппаСтраницыExtendedTooltip - 30 - Label - true - true - - Left - - - Pages - - Auto - - - Bottom - true - - ФормаКоманднаяПанель - -1 - - ФормаСоздатьКопиюОбласти - 4 - true - true - - true - - - ФормаСоздатьКопиюОбластиExtendedTooltip - 27 - Label - true - true - - Left - - - Form.Command.СоздатьКопиюОбласти - Auto - true - true - true - UserCmds - Auto - - - ФормаЗакрыть - 3 - true - true - - true - - - ФормаЗакрытьExtendedTooltip - 28 - Label - true - true - - Left - - - Form.StandardCommand.Close - Normal - true - true - UserCmds - Auto - - - ФормаСправка - 12 - true - true - - true - - - ФормаСправкаExtendedTooltip - 29 - Label - true - true - - Left - - - Form.StandardCommand.Help - Normal - Auto - true - true - UserCmds - Auto - - Right - - - OnCreateAtServer - ПриСозданииНаСервере - - LockWholeInterface - true - true - true - Vertical - true - true - true - auto - true - - АдресХранилища - - <key>ru</key> - <value>Адрес хранилища</value> - - 1 - - String - - - - true - - - true - - - - ИдентификаторЗадания - - <key>ru</key> - <value>Идентификатор задания</value> - - 2 - - UUID - - - true - - - true - - - - СообщениеОбОшибке - - <key>ru</key> - <value>Сообщение об ошибке</value> - - 5 - - String - - - - true - - - true - - - - СоздатьКопиюОбласти - - <key>ru</key> - <value>Создать резервную копию приложения</value> - - 1 - - true - - - - СоздатьКопиюОбласти - - - DontUse - Auto - - - - - - diff --git a/SSL/src/CommonForms/СозданиеРезервнойКопии/Module.bsl b/SSL/src/CommonForms/СозданиеРезервнойКопии/Module.bsl deleted file mode 100644 index d813c329c..000000000 --- a/SSL/src/CommonForms/СозданиеРезервнойКопии/Module.bsl +++ /dev/null @@ -1,146 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - - Если Не РаботаВМоделиСервиса.ИспользованиеРазделителяСеанса() Тогда - ВызватьИсключение(НСтр("ru = 'Не установлено значение разделителя'")); - КонецЕсли; - - ПереключитьСтраницу(ЭтотОбъект); - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиКомандФормы - -&НаКлиенте -Процедура СоздатьКопиюОбласти(Команда) - - ДлительнаяОперация = СоздатьКопиюОбластиНаСервере(); - ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); - - ОповещениеОЗавершении = Новый ОписаниеОповещения("СоздатьКопиюОбластиЗавершение", ЭтотОбъект); - ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -&НаКлиенте -Процедура СоздатьКопиюОбластиЗавершение(Результат, ДополнительныеПараметры) Экспорт - - Если Результат = Неопределено Тогда - - Возврат; - - КонецЕсли; - - ОбработатьРезультатВыполненияЗадания(Результат); - -КонецПроцедуры - -&НаКлиенте -Процедура ОбработатьРезультатВыполненияЗадания(Результат) - - СнятьМонопольныйРежим(); - - Если Результат.Статус = "Ошибка" Тогда - - ЗаписатьИсключениеНаСервере(Результат.ПодробноеПредставлениеОшибки); - ВызватьИсключение Результат.КраткоеПредставлениеОшибки; - - ИначеЕсли НЕ ПустаяСтрока(Результат.АдресРезультата) Тогда - - УдалитьИзВременногоХранилища(Результат.АдресРезультата); - Результат.АдресРезультата = ""; - // Перейти на страницу результата. - ПереключитьСтраницу(ЭтотОбъект, "СтраницаПослеВыгрузкиУспех"); - - КонецЕсли; - -КонецПроцедуры - -&НаКлиентеНаСервереБезКонтекста -Процедура ПереключитьСтраницу(Форма, Знач ИмяСтраницы = "СтраницаДоВыгрузки") - - Форма.Элементы.ГруппаСтраницы.ТекущаяСтраница = Форма.Элементы[ИмяСтраницы]; - - Если ИмяСтраницы = "СтраницаДоВыгрузки" Тогда - Форма.Элементы.ФормаСоздатьКопиюОбласти.Доступность = Истина; - Иначе - Форма.Элементы.ФормаСоздатьКопиюОбласти.Доступность = Ложь; - КонецЕсли; - -КонецПроцедуры - -&НаСервере -Процедура ЗаписатьИсключениеНаСервере(Знач ПредставлениеОшибки) - - СнятьМонопольныйРежим(); - - Событие = РезервноеКопированиеОбластейДанных.НаименованиеФоновогоРезервногоКопирования(); - ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, , , ПредставлениеОшибки); - -КонецПроцедуры - -&НаСервере -Функция СоздатьКопиюОбластиНаСервере() - - ОбластьДанных = РаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); - УстановитьМонопольныйРежим(Истина); - - ПараметрыЗадания = РезервноеКопированиеОбластейДанных.СоздатьПустыеПараметрыВыгрузки(); - ПараметрыЗадания.ОбластьДанных = ОбластьДанных; - ПараметрыЗадания.ИДКопии = Новый УникальныйИдентификатор; - ПараметрыЗадания.Принудительно = Истина; - ПараметрыЗадания.ПоТребованию = Истина; - - ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(ЭтотОбъект.УникальныйИдентификатор); - ПараметрыВыполнения.НаименованиеФоновогоЗадания = РезервноеКопированиеОбластейДанных.НаименованиеФоновогоРезервногоКопирования(); - ПараметрыВыполнения.ЗапуститьВФоне = Истина; - - Попытка - - Результат = ДлительныеОперации.ВыполнитьВФоне( - РезервноеКопированиеОбластейДанных.ИмяМетодаФоновогоРезервногоКопирования(), - ПараметрыЗадания, - ПараметрыВыполнения); - - Исключение - - ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - ЗаписатьИсключениеНаСервере(ПредставлениеОшибки); - ВызватьИсключение; - - КонецПопытки; - - АдресХранилища = Результат.АдресРезультата; - ИдентификаторЗадания = Результат.ИдентификаторЗадания; - - Возврат Результат; - -КонецФункции - -&НаСервереБезКонтекста -Процедура СнятьМонопольныйРежим() - - УстановитьМонопольныйРежим(Ложь); - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonForms/СохранениеВместеСЭлектроннойПодписью/Help/ru.html b/SSL/src/CommonForms/СохранениеВместеСЭлектроннойПодписью/Help/ru.html index 412fcd960..840dc3eba 100644 --- a/SSL/src/CommonForms/СохранениеВместеСЭлектроннойПодписью/Help/ru.html +++ b/SSL/src/CommonForms/СохранениеВместеСЭлектроннойПодписью/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                  Открывается при выполнении команды  Электронные подписи и шифрование - Сохранить вместе с электронной подписью, например, из списка файлов, присоединенных файлов или карточки файла (карточки присоединенного файла), если персональная настройка действий При сохранении с электронной подписью установлена в "Спрашивать". Команду можно найти в панели навигации или в меню Еще, а также в контекстном меню по правой кнопке мыши.

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

                  diff --git a/SSL/src/CommonForms/СохранениеВместеСЭлектроннойПодписью/Module.bsl b/SSL/src/CommonForms/СохранениеВместеСЭлектроннойПодписью/Module.bsl index 194399982..e9b9b6835 100644 --- a/SSL/src/CommonForms/СохранениеВместеСЭлектроннойПодписью/Module.bsl +++ b/SSL/src/CommonForms/СохранениеВместеСЭлектроннойПодписью/Module.bsl @@ -20,10 +20,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ПерсональныеНастройки = ЭлектроннаяПодпись.ПерсональныеНастройки(); СохранятьСертификатВместеСПодписью = ПерсональныеНастройки.СохранятьСертификатВместеСПодписью; СохранятьСертификатВместеСПодписьюИсходноеЗначение = СохранятьСертификатВместеСПодписью; diff --git a/SSL/src/CommonForms/СохранениеПечатнойФормы/Help/ru.html b/SSL/src/CommonForms/СохранениеПечатнойФормы/Help/ru.html index 1bf5fcd65..7435cdf8d 100644 --- a/SSL/src/CommonForms/СохранениеПечатнойФормы/Help/ru.html +++ b/SSL/src/CommonForms/СохранениеПечатнойФормы/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                  • С помощью переключателя выберите, как сохранить печатную форму:
                    • Сохранить в папку на компьютер. diff --git a/SSL/src/CommonForms/СохранениеПечатнойФормы/Module.bsl b/SSL/src/CommonForms/СохранениеПечатнойФормы/Module.bsl index 116ce935e..e364a52de 100644 --- a/SSL/src/CommonForms/СохранениеПечатнойФормы/Module.bsl +++ b/SSL/src/CommonForms/СохранениеПечатнойФормы/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; // заполнение списка форматов Для Каждого ФорматСохранения Из УправлениеПечатью.НастройкиФорматовСохраненияТабличногоДокумента() Цикл @@ -177,7 +174,7 @@ МожноПрисоединять = Неопределено; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда - МодульРаботаСФайлами = ОбщегоНазначения.ОбщийМодуль("ПрисоединенныеФайлы"); + МодульРаботаСФайлами = ОбщегоНазначения.ОбщийМодуль("РаботаСФайлами"); МожноПрисоединять = МодульРаботаСФайлами.КОбъектуМожноПрисоединятьФайлы(СсылкаНаОбъект); КонецЕсли; diff --git a/SSL/src/CommonForms/СравнениеТабличныхДокументов/Attributes/ТабличныйДокументЛевый/ExtInfo/SpreadsheetData.mxlx b/SSL/src/CommonForms/СравнениеТабличныхДокументов/Attributes/ТабличныйДокументЛевый/ExtInfo/SpreadsheetData.mxlx index 70a095c0a..498ab0ee1 100644 --- a/SSL/src/CommonForms/СравнениеТабличныхДокументов/Attributes/ТабличныйДокументЛевый/ExtInfo/SpreadsheetData.mxlx +++ b/SSL/src/CommonForms/СравнениеТабличныхДокументов/Attributes/ТабличныйДокументЛевый/ExtInfo/SpreadsheetData.mxlx @@ -3,5 +3,11 @@ 0 + + 0 + + true + + 0 \ No newline at end of file diff --git a/SSL/src/CommonForms/СравнениеТабличныхДокументов/Attributes/ТабличныйДокументПравый/ExtInfo/SpreadsheetData.mxlx b/SSL/src/CommonForms/СравнениеТабличныхДокументов/Attributes/ТабличныйДокументПравый/ExtInfo/SpreadsheetData.mxlx index 70a095c0a..498ab0ee1 100644 --- a/SSL/src/CommonForms/СравнениеТабличныхДокументов/Attributes/ТабличныйДокументПравый/ExtInfo/SpreadsheetData.mxlx +++ b/SSL/src/CommonForms/СравнениеТабличныхДокументов/Attributes/ТабличныйДокументПравый/ExtInfo/SpreadsheetData.mxlx @@ -3,5 +3,11 @@ 0 + + 0 + + true + + 0 \ No newline at end of file diff --git a/SSL/src/CommonForms/СравнениеТабличныхДокументов/Form.form b/SSL/src/CommonForms/СравнениеТабличныхДокументов/Form.form index 732410e93..5ec6515e7 100644 --- a/SSL/src/CommonForms/СравнениеТабличныхДокументов/Form.form +++ b/SSL/src/CommonForms/СравнениеТабличныхДокументов/Form.form @@ -128,7 +128,7 @@ OnActivate - ТабличныйДокументЛевыйПриАктивизацииОбласти + ТабличныйДокументЛевыйПриАктивизации 50 true @@ -302,7 +302,7 @@ OnActivate - ТабличныйДокументПравыйПриАктивизацииОбласти + ТабличныйДокументПравыйПриАктивизации 50 true diff --git a/SSL/src/CommonForms/СравнениеТабличныхДокументов/Module.bsl b/SSL/src/CommonForms/СравнениеТабличныхДокументов/Module.bsl index 688791548..67ea32a1f 100644 --- a/SSL/src/CommonForms/СравнениеТабличныхДокументов/Module.bsl +++ b/SSL/src/CommonForms/СравнениеТабличныхДокументов/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда Отказ = Истина; ВызватьИсключение НСтр("ru = 'Операция не доступна в мобильном клиенте, необходимо использовать тонкий клиент.'"); @@ -36,7 +32,7 @@ #Область ОбработчикиСобытийЭлементовТаблицыФормыТабличныйДокументЛевый &НаКлиенте -Процедура ТабличныйДокументЛевыйПриАктивизацииОбласти(Элемент) +Процедура ТабличныйДокументЛевыйПриАктивизации(Элемент) Если БлокировкаОбработкиАктивизации = Истина Тогда Возврат; @@ -57,7 +53,7 @@ #Область ОбработчикиСобытийЭлементовТаблицыФормыТабличныйДокументПравый &НаКлиенте -Процедура ТабличныйДокументПравыйПриАктивизацииОбласти(Элемент) +Процедура ТабличныйДокументПравыйПриАктивизации(Элемент) Если БлокировкаОбработкиАктивизации = Истина Тогда Возврат; diff --git a/SSL/src/CommonForms/СтруктураПодчиненности/Help/ru.html b/SSL/src/CommonForms/СтруктураПодчиненности/Help/ru.html index 1ae51955d..dcce04e6f 100644 --- a/SSL/src/CommonForms/СтруктураПодчиненности/Help/ru.html +++ b/SSL/src/CommonForms/СтруктураПодчиненности/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                      Отчет предоставляет оперативный и наглядный доступ ко всей цепочке взаимосвязанных с точки зрения бизнес-логики документов и списков. Объекты программы считаются взаимосвязанными, если один объект ссылается на другой. В программе взаимосвязь объектов выглядит так: в одном объекте программы (назовем его дочерним) в качестве какого-либо реквизита указан другой объект (назовем его родительским). Отчет позволяет из какого-либо одного объекта программы увидеть всю цепочку взаимосвязанных с ним объектов.

                      diff --git a/SSL/src/CommonForms/СтруктураПодчиненности/Module.bsl b/SSL/src/CommonForms/СтруктураПодчиненности/Module.bsl index b92aaf53c..6952d52cf 100644 --- a/SSL/src/CommonForms/СтруктураПодчиненности/Module.bsl +++ b/SSL/src/CommonForms/СтруктураПодчиненности/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОпределитьНастройки(); Параметры.Свойство("ОбъектОтбора", ОбъектСсылка); diff --git a/SSL/src/CommonForms/УстановкаВедущейКонечнойТочки/Form.form b/SSL/src/CommonForms/УстановкаВедущейКонечнойТочки/Form.form deleted file mode 100644 index 10594eb0d..000000000 --- a/SSL/src/CommonForms/УстановкаВедущейКонечнойТочки/Form.form +++ /dev/null @@ -1,383 +0,0 @@ - - - - <key>ru</key> - <value>Установка ведущей конечной точки</value> - - - НастройкиПодключения - 9 - - WSURLВебСервиса - 1 - true - true - - true - - - WSURLВебСервиса - - - WSURLВебСервисаExtendedTooltip - 15 - Label - true - true - - Left - - - - WSURLВебСервисаКонтекстноеМеню - 2 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - WSИмяПользователя - 3 - true - true - - true - - - WSИмяПользователя - - - WSИмяПользователяExtendedTooltip - 16 - Label - true - true - - Left - - - - WSИмяПользователяКонтекстноеМеню - 4 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - WSПароль - 5 - true - true - - true - - - WSПароль - - - WSПарольExtendedTooltip - 17 - Label - true - true - - Left - - - - WSПарольКонтекстноеМеню - 6 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - true - Normal - - - true - true - - true - - - <key>ru</key> - <value>Задайте параметры подключения к конечной точке</value> - - - НастройкиПодключенияExtendedTooltip - 14 - Label - true - true - - Left - - - UsualGroup - - Vertical - Auto - NormalSeparation - true - true - auto - Auto - Auto - - - Bottom - true - - ФормаКоманднаяПанель - -1 - - ФормаУстановить - 10 - true - true - - true - - - ФормаУстановитьExtendedTooltip - 12 - Label - true - true - - Left - - - Form.Command.Установить - Auto - true - true - true - UserCmds - Auto - - - ФормаЗакрыть - 11 - - <key>ru</key> - <value>Отмена</value> - - true - true - - true - - - ФормаЗакрытьExtendedTooltip - 13 - Label - true - true - - Left - - - Form.StandardCommand.Close - Normal - true - true - UserCmds - Auto - - Right - - - BeforeClose - ПередЗакрытием - - - OnCreateAtServer - ПриСозданииНаСервере - - CustomizeForm - Help - DontBlock - true - true - Vertical - true - true - true - auto - true - - WSURLВебСервиса - - <key>ru</key> - <value>Строка подключения</value> - - 1 - - String - - - - true - - - true - - ShowError - - - WSИмяПользователя - - <key>ru</key> - <value>Имя пользователя</value> - - 2 - - String - - 50 - - - - true - - - true - - - - WSПароль - - <key>ru</key> - <value>Пароль</value> - - 3 - - String - - 50 - - - - true - - - true - - - - СобытиеЖурналаРегистрацииУстановкаВедущейКонечнойТочки - - <key>ru</key> - <value>Событие журнала регистрации установка ведущей конечной точки</value> - - 5 - - String - - - - true - - - true - - - - КонечнаяТочка - - <key>ru</key> - <value>Конечная точка</value> - - 4 - - ExchangePlanRef.ОбменСообщениями - - - true - - - true - - - - ЗакрытьФормуБезусловно - - <key>ru</key> - <value>Закрыть форму безусловно</value> - - 6 - - Boolean - - - true - - - true - - - - Установить - - <key>ru</key> - <value>Установить</value> - - 1 - - ru - Установить - - - true - - - - Установить - - - DontUse - Auto - - - - - - diff --git a/SSL/src/CommonForms/УстановкаВедущейКонечнойТочки/Module.bsl b/SSL/src/CommonForms/УстановкаВедущейКонечнойТочки/Module.bsl deleted file mode 100644 index 3c1438af4..000000000 --- a/SSL/src/CommonForms/УстановкаВедущейКонечнойТочки/Module.bsl +++ /dev/null @@ -1,107 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - СобытиеЖурналаРегистрацииУстановкаВедущейКонечнойТочки = ОбменСообщениямиВнутренний.СобытиеЖурналаРегистрацииУстановкаВедущейКонечнойТочки(); - - КонечнаяТочка = Параметры.КонечнаяТочка; - - // Зачитываем значения настроек подключения. - ЗаполнитьЗначенияСвойств(ЭтотОбъект, РегистрыСведений.НастройкиТранспортаОбменаСообщениями.НастройкиТранспортаWS(КонечнаяТочка)); - - Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Установка ведущей конечной точки для ""%1""'"), - ОбщегоНазначения.ЗначениеРеквизитаОбъекта(КонечнаяТочка, "Наименование")); - -КонецПроцедуры - -&НаКлиенте -Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) - - ТекстПредупреждения = НСтр("ru = 'Отменить выполнение операции?'"); - ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияПроизвольнойФормы( - ЭтотОбъект, Отказ, ЗавершениеРаботы, ТекстПредупреждения, "ЗакрытьФормуБезусловно"); - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиКомандФормы - -&НаКлиенте -Процедура Установить(Команда) - - Отказ = Ложь; - ОшибкаЗаполнения = Ложь; - - УстановитьВедущуюКонечнуюТочкуНаСервере(Отказ, ОшибкаЗаполнения); - - Если ОшибкаЗаполнения Тогда - Возврат; - КонецЕсли; - - Если Отказ Тогда - - НСтрока = НСтр("ru = 'При установке ведущей конечной точки возникли ошибки. - |Перейти в журнал регистрации?'"); - ОписаниеОповещения = Новый ОписаниеОповещения("ОткрытьЖурналРегистрации", ЭтотОбъект); - ПоказатьВопрос(ОписаниеОповещения, НСтрока, РежимДиалогаВопрос.ДаНет, ,КодВозвратаДиалога.Нет); - Возврат; - КонецЕсли; - - Оповестить(ОбменСообщениямиКлиент.ИмяСобытияУстановленаВедущаяКонечнаяТочка()); - - ПоказатьОповещениеПользователя(,, НСтр("ru = 'Установка ведущей конечной точки успешно завершена.'")); - - ЗакрытьФормуБезусловно = Истина; - - Закрыть(); - -КонецПроцедуры - -&НаКлиенте -Процедура ОткрытьЖурналРегистрации(Ответ, ДополнительныеПараметры) Экспорт - - Если Ответ = КодВозвратаДиалога.Да Тогда - - Отбор = Новый Структура; - Отбор.Вставить("СобытиеЖурналаРегистрации", СобытиеЖурналаРегистрацииУстановкаВедущейКонечнойТочки); - ОткрытьФорму("Обработка.ЖурналРегистрации.Форма", Отбор, ЭтотОбъект); - - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -&НаСервере -Процедура УстановитьВедущуюКонечнуюТочкуНаСервере(Отказ, ОшибкаЗаполнения) - - Если Не ПроверитьЗаполнение() Тогда - ОшибкаЗаполнения = Истина; - Возврат; - КонецЕсли; - - НастройкиПодключенияWS = ОбменДаннымиСервер.СтруктураПараметровWS(); - - ЗаполнитьЗначенияСвойств(НастройкиПодключенияWS, ЭтотОбъект); - - ОбменСообщениямиВнутренний.УстановитьВедущуюКонечнуюТочкуНаСторонеОтправителя(Отказ, НастройкиПодключенияWS, КонечнаяТочка); - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Form.form b/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Form.form index 0cc04b891..f84814d16 100644 --- a/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Form.form +++ b/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Form.form @@ -154,16 +154,12 @@ UserCmds Auto - Center + Right OnOpen ПриОткрытии - - OnCreateAtServer - ПриСозданииНаСервере - LockOwner true true diff --git a/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Module.bsl b/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Module.bsl index a549719ac..4f65763cd 100644 --- a/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Module.bsl +++ b/SSL/src/CommonForms/УстановкаВнешнейКомпонентыНевозможна/Module.bsl @@ -8,30 +8,25 @@ #Область ОбработчикиСобытийФормы -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - -КонецПроцедуры - &НаКлиенте Процедура ПриОткрытии(Отказ) - Если Не ПустаяСтрока(Параметры.ТекстПояснения) Тогда - Элементы.ДекорацияПояснение.Заголовок = СтроковыеФункцииКлиентСервер.ФорматированнаяСтрока( - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = '%1 - | - |Не предусмотрена работа внешней компоненты - |в клиентском приложении %2. - |Используйте поддерживаемое клиентское приложение или обратитесь к разработчику внешней компоненты.'"), - Параметры.ТекстПояснения, - ПредставлениеТекущегоКлиента())); + ТекстПояснения = Параметры.ТекстПояснения; + + Если ПустаяСтрока(ТекстПояснения) Тогда + ТекстПояснения = НСтр("ru = 'Установка внешней компоненты невозможна.'"); КонецЕсли; + Элементы.ДекорацияПояснение.Заголовок = СтроковыеФункцииКлиентСервер.ФорматированнаяСтрока( + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 + | + |Не предусмотрена работа внешней компоненты + |в клиентском приложении %2. + |Используйте поддерживаемое клиентское приложение или обратитесь к разработчику внешней компоненты.'"), + ТекстПояснения, + ПредставлениеТекущегоКлиента())); + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/CommonForms/УстановленныеИсправления/Help/ru.html b/SSL/src/CommonForms/УстановленныеИсправления/Help/ru.html index 846a8b228..a27b4d6e1 100644 --- a/SSL/src/CommonForms/УстановленныеИсправления/Help/ru.html +++ b/SSL/src/CommonForms/УстановленныеИсправления/Help/ru.html @@ -1,4 +1,4 @@ - +

                      Предназначен для управления исправлениями (патчами).

                      Открывается с помощью ссылки Установленные исправления (патчи) в разделе Администрирование - Обновление программы.

                      Установка исправлений

                      diff --git a/SSL/src/CommonForms/УстановленныеИсправления/Module.bsl b/SSL/src/CommonForms/УстановленныеИсправления/Module.bsl index b0afbcd7f..a369ef5c3 100644 --- a/SSL/src/CommonForms/УстановленныеИсправления/Module.bsl +++ b/SSL/src/CommonForms/УстановленныеИсправления/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации() Тогда ВызватьИсключение НСтр("ru = 'Текущий режим работы не поддерживается.'"); КонецЕсли; @@ -135,11 +131,17 @@ Возврат; КонецЕсли; + ИдентификаторыРасширений = Новый Массив; + Для Каждого ИдентификаторСтроки Из ВыделенныеСтроки Цикл + СтрокаИсправления = УстановленныеИсправления.НайтиПоИдентификатору(ИдентификаторСтроки); + ИдентификаторыРасширений.Добавить(СтрокаИсправления.ИдентификаторРасширения); + КонецЦикла; + Контекст = Новый Структура; - Контекст.Вставить("ВыделенныеСтроки", ВыделенныеСтроки); + Контекст.Вставить("ИдентификаторыРасширений", ИдентификаторыРасширений); Оповещение = Новый ОписаниеОповещения("УдалитьРасширениеПослеПодтверждения", ЭтотОбъект, Контекст); - Если ВыделенныеСтроки.Количество() > 1 Тогда + Если ИдентификаторыРасширений.Количество() > 1 Тогда ТекстВопроса = НСтр("ru = 'Удалить выделенные исправления?'", "ru"); Иначе ТекстВопроса = НСтр("ru = 'Удалить исправление?'", "ru"); @@ -157,7 +159,7 @@ Обработчик = Новый ОписаниеОповещения("УдалитьРасширениеПродолжение", ЭтотОбъект, Контекст); Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда - Запросы = ЗапросНаОтменуРазрешенийИспользованияВнешнегоМодуля(Контекст.ВыделенныеСтроки); + Запросы = ЗапросыНаОтменуРазрешенийИспользованияВнешнегоМодуля(Контекст.ИдентификаторыРасширений); МодульРаботаВБезопасномРежимеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаВБезопасномРежимеКлиент"); МодульРаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(Запросы, ЭтотОбъект, Обработчик); Иначе @@ -184,7 +186,7 @@ Контекст = ТекущийКонтекст; Попытка - УдалитьРасширенияНаСервере(Контекст.ВыделенныеСтроки); + УдалитьРасширенияНаСервере(Контекст.ИдентификаторыРасширений); Исключение ИнформацияОбОшибке = ИнформацияОбОшибке(); ПоказатьПредупреждение(, КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); @@ -194,89 +196,10 @@ КонецПроцедуры &НаСервере -Процедура УдалитьРасширенияНаСервере(ВыделенныеСтроки) - - УдаляемыеРасширения = Новый Массив; +Процедура УдалитьРасширенияНаСервере(ИдентификаторыРасширений) ТекстОшибки = ""; - Попытка - УдаляемоеРасширение = ""; - Для Каждого ЭлементСписка Из УстановленныеИсправления Цикл - Если ВыделенныеСтроки.Найти(ЭлементСписка.ПолучитьИдентификатор()) = Неопределено Тогда - Продолжить; - КонецЕсли; - Расширение = НайтиРасширение(ЭлементСписка.ИдентификаторРасширения); - Если Расширение <> Неопределено Тогда - ОписаниеРасширения = Новый Структура; - ОписаниеРасширения.Вставить("Удалено", Ложь); - ОписаниеРасширения.Вставить("Расширение", Расширение); - ОписаниеРасширения.Вставить("ДанныеРасширения", Расширение.ПолучитьДанные()); - УдаляемыеРасширения.Добавить(ОписаниеРасширения); - КонецЕсли; - КонецЦикла; - Индекс = УдаляемыеРасширения.Количество() - 1; - Пока Индекс >= 0 Цикл - ОписаниеРасширения = УдаляемыеРасширения[Индекс]; - ОтключитьПредупрежденияБезопасности(ОписаниеРасширения.Расширение); - УдаляемоеРасширение = ОписаниеРасширения.Расширение.Синоним; - ОписаниеРасширения.Расширение.Удалить(); - УдаляемоеРасширение = ""; - ОписаниеРасширения.Удалено = Истина; - Индекс = Индекс - 1; - КонецЦикла; - - Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() - И РасширенияКонфигурации.Получить().Количество() = 0 Тогда - - Справочники.ВерсииРасширений.ПриУдаленииВсехРасширений(); - КонецЕсли; - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось удалить расширение ""%1"" по причине: - | - |%2'"), - УдаляемоеРасширение, - КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); - КонецПопытки; - - Если Не ЗначениеЗаполнено(ТекстОшибки) Тогда - Попытка - РегистрыСведений.ПараметрыРаботыВерсийРасширений.ОбновитьПараметрыРаботыРасширений(); - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'После удаления, при подготовке оставшихся расширений к работе, произошла ошибка: - | - |%1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); - КонецПопытки; - КонецЕсли; - - Если ЗначениеЗаполнено(ТекстОшибки) Тогда - ИнформацияОбОшибкеВосстановления = Неопределено; - ВосстановлениеВыполнялось = Ложь; - Попытка - Для Каждого ОписаниеРасширения Из УдаляемыеРасширения Цикл - Если Не ОписаниеРасширения.Удалено Тогда - Продолжить; - КонецЕсли; - ОписаниеРасширения.Расширение.Записать(ОписаниеРасширения.ДанныеРасширения); - ВосстановлениеВыполнялось = Истина; - КонецЦикла; - Исключение - ИнформацияОбОшибкеВосстановления = ИнформацияОбОшибке(); - ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС - + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'При попытке восстановить удаленные расширения произошла еще одна ошибка: - |%1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибкеВосстановления)); - КонецПопытки; - Если ВосстановлениеВыполнялось - И ИнформацияОбОшибкеВосстановления = Неопределено Тогда - - ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС - + НСтр("ru = 'Удаленные расширения были восстановлены.'"); - КонецЕсли; - КонецЕсли; + Справочники.ВерсииРасширений.УдалитьРасширения(ИдентификаторыРасширений, ТекстОшибки); Если ЗначениеЗаполнено(ТекстОшибки) Тогда ВызватьИсключение ТекстОшибки; @@ -287,49 +210,9 @@ КонецПроцедуры &НаСервере -Функция НайтиРасширение(ИдентификаторРасширения) +Функция ЗапросыНаОтменуРазрешенийИспользованияВнешнегоМодуля(ИдентификаторыРасширений) - Отбор = Новый Структура; - Отбор.Вставить("УникальныйИдентификатор", Новый УникальныйИдентификатор(ИдентификаторРасширения)); - УстановитьПривилегированныйРежим(Истина); - Расширения = РасширенияКонфигурации.Получить(Отбор); - УстановитьПривилегированныйРежим(Ложь); - - Расширение = Неопределено; - - Если Расширения.Количество() = 1 Тогда - Расширение = Расширения[0]; - КонецЕсли; - - Возврат Расширение; - -КонецФункции - -&НаСервере -Процедура ОтключитьПредупрежденияБезопасности(Расширение) - - Расширение.ЗащитаОтОпасныхДействий = ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений(); - -КонецПроцедуры - -&НаСервере -Функция ЗапросНаОтменуРазрешенийИспользованияВнешнегоМодуля(ВыделенныеСтроки) - - Разрешения = Новый Массив; - МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); - - Для Каждого ИдентификаторСтроки Из ВыделенныеСтроки Цикл - ТекущееРасширение = УстановленныеИсправления.НайтиПоИдентификатору(ИдентификаторСтроки); - Разрешения.Добавить(МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеВнешнегоМодуля( - ТекущееРасширение.Имя, ТекущееРасширение.КонтрольнаяСумма)); - КонецЦикла; - - Запросы = Новый Массив; - Запросы.Добавить(МодульРаботаВБезопасномРежиме.ЗапросНаОтменуРазрешенийИспользованияВнешнихРесурсов( - ОбщегоНазначения.ИдентификаторОбъектаМетаданных("РегистрСведений.ПараметрыРаботыВерсийРасширений"), - Разрешения)); - - Возврат Запросы; + Возврат Справочники.ВерсииРасширений.ЗапросыНаОтменуРазрешенийИспользованияВнешнегоМодуля(ИдентификаторыРасширений); КонецФункции diff --git a/SSL/src/CommonForms/УточнениеКонтактов/Help/ru.html b/SSL/src/CommonForms/УточнениеКонтактов/Help/ru.html index 7e11849ca..6272c28a3 100644 --- a/SSL/src/CommonForms/УточнениеКонтактов/Help/ru.html +++ b/SSL/src/CommonForms/УточнениеКонтактов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                      diff --git a/SSL/src/CommonForms/УточнениеКонтактов/Module.bsl b/SSL/src/CommonForms/УточнениеКонтактов/Module.bsl index cdb858b3f..7b47a6598 100644 --- a/SSL/src/CommonForms/УточнениеКонтактов/Module.bsl +++ b/SSL/src/CommonForms/УточнениеКонтактов/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Предмет = Параметры.Предмет; Письмо = Параметры.Письмо; НеИзменятьПредставлениеПриИзмененииКонтакта = (ТипЗнч(Письмо) = Тип("ДокументСсылка.ЭлектронноеПисьмоВходящее")); diff --git a/SSL/src/CommonForms/ФайлыВТоме/Help/ru.html b/SSL/src/CommonForms/ФайлыВТоме/Help/ru.html index 06c3f06be..f4ab2fedd 100644 --- a/SSL/src/CommonForms/ФайлыВТоме/Help/ru.html +++ b/SSL/src/CommonForms/ФайлыВТоме/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                      diff --git a/SSL/src/CommonForms/ФайлыВТоме/Module.bsl b/SSL/src/CommonForms/ФайлыВТоме/Module.bsl index 6b3730d4c..ddd9e0397 100644 --- a/SSL/src/CommonForms/ФайлыВТоме/Module.bsl +++ b/SSL/src/CommonForms/ФайлыВТоме/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Том = Параметры.Том; // Определение доступных хранилищ файлов. diff --git a/SSL/src/CommonForms/ФормаВариантаОтчета/Module.bsl b/SSL/src/CommonForms/ФормаВариантаОтчета/Module.bsl index 95627b29e..a29483fa1 100644 --- a/SSL/src/CommonForms/ФормаВариантаОтчета/Module.bsl +++ b/SSL/src/CommonForms/ФормаВариантаОтчета/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; ОпределитьПоведениеВМобильномКлиенте(); @@ -52,9 +49,6 @@ &НаСервере Процедура ПередЗагрузкойВариантаНаСервере(НовыеНастройкиКД) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Если ТипЗнч(ФормаПараметры.Отбор) = Тип("Структура") Тогда ОтчетыСервер.УстановитьФиксированныеОтборы(ФормаПараметры.Отбор, НовыеНастройкиКД, НастройкиОтчета); diff --git a/SSL/src/CommonForms/ФормаНастроекОтчета/Help/ru.html b/SSL/src/CommonForms/ФормаНастроекОтчета/Help/ru.html index 43170d73b..91ea9e6ca 100644 --- a/SSL/src/CommonForms/ФормаНастроекОтчета/Help/ru.html +++ b/SSL/src/CommonForms/ФормаНастроекОтчета/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                      С помощью кнопки Вид можно перевести настройки в один из режимов:

                      diff --git a/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl b/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl index 459f1ddee..4ae1be2f8 100644 --- a/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl +++ b/SSL/src/CommonForms/ФормаНастроекОтчета/Module.bsl @@ -20,9 +20,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; ОпределитьПоведениеВМобильномКлиенте(); @@ -113,9 +110,6 @@ &НаСервере Процедура ПередЗагрузкойВариантаНаСервере(НовыеНастройкиКД) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Если ТипЗнч(ФормаПараметры.Отбор) = Тип("Структура") Тогда ОтчетыСервер.УстановитьФиксированныеОтборы(ФормаПараметры.Отбор, НовыеНастройкиКД, НастройкиОтчета); @@ -136,9 +130,6 @@ &НаСервере Процедура ПередЗагрузкойПользовательскихНастроекНаСервере(НовыеПользовательскиеНастройкиКД) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; НеобходимоОбновитьНастройки = Истина; @@ -155,9 +146,6 @@ &НаСервере Процедура ПриОбновленииСоставаПользовательскихНастроекНаСервере(СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; СтандартнаяОбработка = Ложь; ВариантМодифицирован = Ложь; @@ -4291,7 +4279,7 @@ КонецЕсли; ИмяОткрываемойФормы = НастройкиОтчета.ПолноеИмя + ?(ИспользоватьФормуВарианта, ".ФормаВарианта", ".ФормаНастроек"); - ОткрытьФорму(ИмяОткрываемойФормы, ПараметрыФормы, ЭтотОбъект,,,, Обработчик); + ОткрытьФорму(ИмяОткрываемойФормы, ПараметрыФормы, ЭтотОбъект,,,, Обработчик, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); КонецПроцедуры &НаКлиенте @@ -5389,7 +5377,7 @@ #КонецОбласти - #Область СвойстваЭлементовСтраницыПоляИСортировки + #Область СвойстваЭлементовСтраницыПоляИСортировки СвойствоЭлементаСтруктуры = СвойствоЭлементаСтруктурыНастроек( КомпоновщикНастроек, "Выбор", ИдентификаторЭлементаСтруктурыНастроек, РасширенныйРежим); diff --git a/SSL/src/CommonForms/ФормаОтчета/Form.form b/SSL/src/CommonForms/ФормаОтчета/Form.form index 0ea40748f..ac83694c0 100644 --- a/SSL/src/CommonForms/ФормаОтчета/Form.form +++ b/SSL/src/CommonForms/ФормаОтчета/Form.form @@ -2466,7 +2466,7 @@ OnActivate - ОтчетТабличныйДокументПриАктивизацииОбласти + ОтчетТабличныйДокументПриАктивизации Selection diff --git a/SSL/src/CommonForms/ФормаОтчета/Help/ru.html b/SSL/src/CommonForms/ФормаОтчета/Help/ru.html index f73ede487..4a4a0062d 100644 --- a/SSL/src/CommonForms/ФормаОтчета/Help/ru.html +++ b/SSL/src/CommonForms/ФормаОтчета/Help/ru.html @@ -1,4 +1,4 @@ - +

                      Для просмотра отчета необходимо нажать кнопку Сформировать, предварительно задав параметры (если они предусмотрены). В клиент-серверном варианте работы программы предусмотрено формирование отчетов в фоновом режиме.

                      Режим формирования

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

                      Варианты отчета

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

                  Выбор варианта отчета

                  +
                  Включить в существующую рассылку отчетов. Для этого из списка рассылок выберите нужную.

                Выбор варианта отчета

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

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

                • diff --git a/SSL/src/CommonForms/ФормаОтчета/Module.bsl b/SSL/src/CommonForms/ФормаОтчета/Module.bsl index 389266b15..8a0fcdaa6 100644 --- a/SSL/src/CommonForms/ФормаОтчета/Module.bsl +++ b/SSL/src/CommonForms/ФормаОтчета/Module.bsl @@ -27,9 +27,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; ОпределитьПоведениеВМобильномКлиенте(); @@ -197,6 +194,7 @@ ОтобразитьСостояниеОтчета(НСтр("ru = 'Отчет не сформирован. Нажмите ""Сформировать"" для получения отчета.'")); + ИнтеграцияПодсистемБСП.ПриСозданииНаСервереВариантыОтчетов(ЭтотОбъект, Отказ, СтандартнаяОбработка); ОтчетыПереопределяемый.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка); Если НастройкиОтчета.События.ПриСозданииНаСервере Тогда ОтчетОбъект.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка); @@ -223,7 +221,7 @@ РезультатОбработан = Ложь; // Приемка результата из стандартных форм. - Если ТипЗнч(ПодчиненнаяФорма) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ПодчиненнаяФорма) = Тип("ФормаКлиентскогоПриложения") Тогда ИмяПодчиненнойФормы = ПодчиненнаяФорма.ИмяФормы; Если ИмяПодчиненнойФормы = "ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.НастройкиОтчета" Или ПодчиненнаяФорма.ОписаниеОповещенияОЗакрытии <> Неопределено Тогда @@ -276,6 +274,7 @@ МодульРассылкаОтчетовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РассылкаОтчетовКлиент"); МодульРассылкаОтчетовКлиент.ФормаОтчетаОбработкаВыбора(ЭтотОбъект, Результат, ПодчиненнаяФорма, РезультатОбработан); КонецЕсли; + ИнтеграцияПодсистемБСПКлиент.ПриОбработкеВыбора(ЭтотОбъект, Результат, ПодчиненнаяФорма, РезультатОбработан); ОтчетыКлиентПереопределяемый.ОбработкаВыбора(ЭтотОбъект, Результат, ПодчиненнаяФорма, РезультатОбработан); КонецПроцедуры @@ -287,20 +286,18 @@ ОповещениеОбработано = Истина; ВариантыПанелиКлючТекущегоВарианта = " - "; КонецЕсли; + ИнтеграцияПодсистемБСПКлиент.ПриОбработкеОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник, ОповещениеОбработано); ОтчетыКлиентПереопределяемый.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник, ОповещениеОбработано); КонецПроцедуры &НаСервере Процедура ПередЗагрузкойВариантаНаСервере(НовыеНастройкиКД) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - // Ничего не делать если отчет не на СКД и никаких настроек не загружено. Если НовыеНастройкиКД = Неопределено Или Не РежимВариантаОтчета() Тогда Возврат; КонецЕсли; + ИнтеграцияПодсистемБСП.ПередЗагрузкойВариантаНаСервере(ЭтотОбъект, НовыеНастройкиКД); ОтчетыПереопределяемый.ПередЗагрузкойВариантаНаСервере(ЭтотОбъект, НовыеНастройкиКД); Если НастройкиОтчета.События.ПередЗагрузкойВариантаНаСервере Тогда ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); @@ -320,9 +317,6 @@ &НаСервере Процедура ПриЗагрузкеВариантаНаСервере(НовыеНастройкиКД) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; // Ничего не делать если отчет не на СКД и никаких настроек не загружено. Если Не РежимВариантаОтчета() И НовыеНастройкиКД = Неопределено Тогда @@ -362,9 +356,6 @@ &НаСервере Процедура ПередЗагрузкойПользовательскихНастроекНаСервере(НовыеПользовательскиеНастройкиКД) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Если НастройкиОтчета.События.ПередЗагрузкойНастроекВКомпоновщик Тогда // Подготовка к переинициализации. @@ -379,8 +370,7 @@ &НаСервере Процедура ПриЗагрузкеПользовательскихНастроекНаСервере(НовыеПользовательскиеНастройкиКД) - Если Параметры.Свойство("АвтоТест") - Или Не РежимВариантаОтчета() Тогда + Если Не РежимВариантаОтчета() Тогда Возврат; КонецЕсли; @@ -392,8 +382,7 @@ &НаСервере Процедура ПриОбновленииСоставаПользовательскихНастроекНаСервере(СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") - Или Не РежимВариантаОтчета() Тогда + Если Не РежимВариантаОтчета() Тогда Возврат; КонецЕсли; @@ -475,8 +464,8 @@ &НаКлиенте Процедура ОтчетТабличныйДокументВыбор(Элемент, Область, СтандартнаяОбработка) - ИнтеграцияПодсистемБСПКлиент.ОбработкаВыбораТабличногоДокумента(ЭтотОбъект, Элемент, Область, СтандартнаяОбработка); Если СтандартнаяОбработка Тогда + ИнтеграцияПодсистемБСПКлиент.ПриОбработкеВыбораТабличногоДокумента(ЭтотОбъект, Элемент, Область, СтандартнаяОбработка); ОтчетыКлиентПереопределяемый.ОбработкаВыбораТабличногоДокумента(ЭтотОбъект, Элемент, Область, СтандартнаяОбработка); КонецЕсли; @@ -511,6 +500,8 @@ МодульАнализЖурналаРегистрацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АнализЖурналаРегистрацииКлиент"); МодульАнализЖурналаРегистрацииКлиент.ФормаОтчетаОбработкаРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); КонецЕсли; + + ИнтеграцияПодсистемБСПКлиент.ПриОбработкеРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); ОтчетыКлиентПереопределяемый.ОбработкаРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); КонецПроцедуры @@ -520,11 +511,13 @@ МодульАнализЖурналаРегистрацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АнализЖурналаРегистрацииКлиент"); МодульАнализЖурналаРегистрацииКлиент.ФормаОтчетаОбработкаДополнительнойРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); КонецЕсли; + + ИнтеграцияПодсистемБСПКлиент.ПриОбработкеДополнительнойРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); ОтчетыКлиентПереопределяемый.ОбработкаДополнительнойРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка); КонецПроцедуры &НаКлиенте -Процедура ОтчетТабличныйДокументПриАктивизацииОбласти(Элемент) +Процедура ОтчетТабличныйДокументПриАктивизации(Элемент) ПодключитьОбработчикОжидания("РассчитатьПоказателиДинамически", 0.2, Истина); КонецПроцедуры @@ -791,6 +784,7 @@ Обработчик = Новый ОписаниеОповещения(МассивПодстрок[1], КлиентскийМодуль, Команда); ВыполнитьОбработкуОповещения(Обработчик, ЭтотОбъект); Иначе + ИнтеграцияПодсистемБСПКлиент.ПриОбработкеКоманды(ЭтотОбъект, Команда, Ложь); ОтчетыКлиентПереопределяемый.ОбработчикКоманды(ЭтотОбъект, Команда, Ложь); КонецЕсли; КонецПроцедуры @@ -931,6 +925,7 @@ МодульОценкаПроизводительностиКлиент.ЗавершитьЗамерВремени(ИдентификаторЗамера); КонецЕсли; + ИнтеграцияПодсистемБСПКлиент.ПослеФормирования(ЭтотОбъект, Результат.Статус = "Выполнено"); ОтчетыКлиентПереопределяемый.ПослеФормирования(ЭтотОбъект, Результат.Статус = "Выполнено"); КонецПроцедуры diff --git a/SSL/src/CommonForms/ФормаПоиска/Help/ru.html b/SSL/src/CommonForms/ФормаПоиска/Help/ru.html index 00a6dc4a9..1ec21b5e2 100644 --- a/SSL/src/CommonForms/ФормаПоиска/Help/ru.html +++ b/SSL/src/CommonForms/ФормаПоиска/Help/ru.html @@ -1,4 +1,4 @@ - +

                  Предназначена для полнотекстового поиска.

                  Можно выполнять поиск прямо с Начальной страницы.

                  Полнотекстовый поиск

                  diff --git a/SSL/src/CommonForms/ФормаПоиска/Module.bsl b/SSL/src/CommonForms/ФормаПоиска/Module.bsl index e1f4fd48e..e1c31960a 100644 --- a/SSL/src/CommonForms/ФормаПоиска/Module.bsl +++ b/SSL/src/CommonForms/ФормаПоиска/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Пользователи.ЭтоСеансВнешнегоПользователя() Тогда Возврат; КонецЕсли; diff --git a/SSL/src/CommonForms/ЭлектроннаяПодпись/Help/ru.html b/SSL/src/CommonForms/ЭлектроннаяПодпись/Help/ru.html index 1a4d2b63a..d23c193ea 100644 --- a/SSL/src/CommonForms/ЭлектроннаяПодпись/Help/ru.html +++ b/SSL/src/CommonForms/ЭлектроннаяПодпись/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                  С помощью электронной подписи можно:

                  diff --git a/SSL/src/CommonForms/ЭлектроннаяПодпись/Module.bsl b/SSL/src/CommonForms/ЭлектроннаяПодпись/Module.bsl index 53b9f6c1b..3e3e9c5b2 100644 --- a/SSL/src/CommonForms/ЭлектроннаяПодпись/Module.bsl +++ b/SSL/src/CommonForms/ЭлектроннаяПодпись/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры.СвойстваПодписи); Если Параметры.СвойстваПодписи.ПодписьВерна Тогда diff --git a/SSL/src/CommonModules/АвтономнаяРабота/Module.bsl b/SSL/src/CommonModules/АвтономнаяРабота/Module.bsl new file mode 100644 index 000000000..555a36465 --- /dev/null +++ b/SSL/src/CommonModules/АвтономнаяРабота/Module.bsl @@ -0,0 +1,115 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Обработчик события формы ПриЧтенииНаСервере, который +// встраивается в формы элементов данных +// (элементов справочников, документов, записей регистров, и др.), +// чтобы заблокировать форму, если это попытка изменения неразделенных данных, +// получаемых из приложения, в автономном рабочем месте. +// +// Параметры: +// ТекущийОбъект - СправочникОбъект, +// ДокументОбъект, +// ПланВидовХарактеристикОбъект, +// ПланСчетовОбъект, +// ПланВидовРасчетаОбъект, +// БизнесПроцессОбъект, +// ЗадачаОбъект, +// ПланОбменаОбъект, +// РегистрСведенийМенеджерЗаписи, +// РегистрНакопленияМенеджерЗаписи, +// РегистрБухгалтерииМенеджерЗаписи, +// РегистрРасчетаМенеджерЗаписи - менеджер записи. +// ТолькоПросмотр - Булево - Свойство ТолькоПросмотр формы. +// +Процедура ОбъектПриЧтенииНаСервере(ТекущийОбъект, ТолькоПросмотр) Экспорт + + Если Не ТолькоПросмотр Тогда + + ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(ТекущийОбъект)); + АвтономнаяРаботаСлужебный.ОпределитьВозможностьИзмененияДанных(ОбъектМетаданных, ТолькоПросмотр); + + КонецЕсли; + +КонецПроцедуры + +// Отключает автоматическую синхронизацию между приложением в интернете +// и автономным рабочим местом в случаях когда, не задан пароль для установки подключения. +// +// Параметры: +// Источник - РегистрСведенийНаборЗаписей.НастройкиТранспортаОбменаДанными - запись регистра настроек транспорта, +// которая была изменена. +// +Процедура ОтключитьАвтоматическуюСинхронизациюДанныхСПриложениемВИнтернете(Источник) Экспорт + + АвтономнаяРаботаСлужебный.ОтключитьАвтоматическуюСинхронизациюДанныхСПриложениемВИнтернете(Источник); + +КонецПроцедуры + +// Читает и устанавливает настройку предупреждения о продолжительной синхронизации АРМ. +// +// Параметры: +// ЗначениеФлага - Булево - устанавливаемое значение флага +// ОписаниеНастройки - Структура - принимает значение для описания настройки. +// +// Возвращаемое значение: +// Булево, Неопределено - значение настройки отображения предупреждения о долгой синхронизации. +// +Функция ФлагНастройкиВопросаОДолгойСинхронизации(ЗначениеФлага = Неопределено, ОписаниеНастройки = Неопределено) Экспорт + + Возврат АвтономнаяРаботаСлужебный.ФлагНастройкиВопросаОДолгойСинхронизации(ЗначениеФлага, ОписаниеНастройки); + +КонецФункции + +// Возвращает адрес для восстановления пароля учетной записи приложения в интернете. +// +// Возвращаемое значение: +// Строка - адрес восстановления пароля учетной записи. +// +Функция АдресДляВосстановленияПароляУчетнойЗаписи() Экспорт + + Возврат АвтономнаяРаботаСлужебный.АдресДляВосстановленияПароляУчетнойЗаписи(); + +КонецФункции + +// Настраивает автономное рабочее место при первом запуске. +// Заполняет состав пользователей и другие настройки. +// Вызывается перед авторизацией пользователя. Может потребоваться перезапуск. +// +// Параметры: +// Параметры - Структура - структура параметров. +// +// Возвращаемое значение: +// Булево - признак возможности продолжения настройки автономного рабочего места. +// +Функция ПродолжитьНастройкуАвтономногоРабочегоМеста(Параметры) Экспорт + + Если Не АвтономнаяРаботаСлужебный.НеобходимоВыполнитьНастройкуАвтономногоРабочегоМестаПриПервомЗапуске() Тогда + Возврат Ложь; + КонецЕсли; + + Попытка + АвтономнаяРаботаСлужебный.ВыполнитьНастройкуАвтономногоРабочегоМестаПриПервомЗапуске(); + Параметры.Вставить("ПерезапуститьПослеНастройкиАвтономногоРабочегоМеста"); + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + + ЗаписьЖурналаРегистрации(АвтономнаяРаботаСлужебный.СобытиеЖурналаРегистрацииСозданиеАвтономногоРабочегоМеста(), + УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + + Параметры.Вставить("ОшибкаПриНастройкеАвтономногоРабочегоМеста", + КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); + КонецПопытки; + + Возврат Истина; + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/ФайловыеФункции/ФайловыеФункции.mdo b/SSL/src/CommonModules/АвтономнаяРабота/АвтономнаяРабота.mdo similarity index 65% rename from SSL/src/CommonModules/ФайловыеФункции/ФайловыеФункции.mdo rename to SSL/src/CommonModules/АвтономнаяРабота/АвтономнаяРабота.mdo index b3e741c32..3c5d281e0 100644 --- a/SSL/src/CommonModules/ФайловыеФункции/ФайловыеФункции.mdo +++ b/SSL/src/CommonModules/АвтономнаяРабота/АвтономнаяРабота.mdo @@ -1,9 +1,9 @@ - - ФайловыеФункции + + АвтономнаяРабота ru - Файловые функции + Автономная работа true true diff --git a/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl b/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl new file mode 100644 index 000000000..c72acdb96 --- /dev/null +++ b/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/Module.bsl @@ -0,0 +1,944 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +// Обработчики условных вызовов из БСП + +// Читает и устанавливает настройку предупреждение о продолжительной синхронизации АРМ +// Параметры: +// ЗначениеФлага - Булево - устанавливаемое значение флага +// ОписаниеНастройки - Структура - принимает значение для описания настройки +// Для внутреннего использования. +// +Функция ФлагНастройкиВопросаОДолгойСинхронизации(ЗначениеФлага = Неопределено, ОписаниеНастройки = Неопределено) Экспорт + ОписаниеНастройки = Новый Структура; + + ОписаниеНастройки.Вставить("КлючОбъекта", "НастройкиПрограммы"); + ОписаниеНастройки.Вставить("КлючНастроек", "ПоказыватьПредупреждениеОДолгойСинхронизацииАРМ"); + ОписаниеНастройки.Вставить("Представление", НСтр("ru = 'Показывать предупреждение о длительной синхронизации'")); + + ОписаниеНастроек = Новый ОписаниеНастроек; + ЗаполнитьЗначенияСвойств(ОписаниеНастроек, ОписаниеНастройки); + + Если ЗначениеФлага = Неопределено Тогда + // Чтение + Возврат ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(ОписаниеНастроек.КлючОбъекта, ОписаниеНастроек.КлючНастроек, Истина); + КонецЕсли; + + // Запись + ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(ОписаниеНастроек.КлючОбъекта, ОписаниеНастроек.КлючНастроек, ЗначениеФлага, ОписаниеНастроек); +КонецФункции + +// Для внутреннего использования +// +Функция АдресДляВосстановленияПароляУчетнойЗаписи() Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Возврат СокрЛП(Константы.АдресДляВосстановленияПароляУчетнойЗаписи.Получить()); +КонецФункции + +//////////////////////////////////////////////////////////////////////////////// +// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ, ИСПОЛЬЗУЕМЫЕ НА СТОРОНЕ СЕРВИСА + +// Для внутреннего использования +// +Процедура СоздатьНачальныйОбразАвтономногоРабочегоМеста(Параметры, + АдресВременногоХранилищаНачальногоОбраза, + АдресВременногоХранилищаИнформацииОПакетеУстановки) Экспорт + + ПомощникСозданияАвтономногоРабочегоМеста = Обработки.ПомощникСозданияАвтономногоРабочегоМеста.Создать(); + + ЗаполнитьЗначенияСвойств(ПомощникСозданияАвтономногоРабочегоМеста, Параметры); + + ПомощникСозданияАвтономногоРабочегоМеста.СоздатьНачальныйОбразАвтономногоРабочегоМеста( + Параметры.НастройкаОтборовНаУзле, + Параметры.ВыбранныеПользователиСинхронизации, + АдресВременногоХранилищаНачальногоОбраза, + АдресВременногоХранилищаИнформацииОПакетеУстановки); + +КонецПроцедуры + +// Для внутреннего использования +// +Процедура УдалитьАвтономноеРабочееМесто(Параметры, АдресХранилища) Экспорт + + ОбменДаннымиСервер.ПроверитьВозможностьАдминистрированияОбменов(); + + УстановитьПривилегированныйРежим(Истина); + + НачатьТранзакцию(); + Попытка + + АвтономноеРабочееМестоОбъект = Параметры.АвтономноеРабочееМесто.ПолучитьОбъект(); + + Если АвтономноеРабочееМестоОбъект <> Неопределено Тогда + + АвтономноеРабочееМестоОбъект.Удалить(); + + КонецЕсли; + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +// Для внутреннего использования +// +Функция АвтономнаяРаботаПоддерживается() Экспорт + + Возврат ОбменДаннымиПовтИсп.АвтономнаяРаботаПоддерживается(); + +КонецФункции + +// Для внутреннего использования +// +Функция КоличествоАвтономныхРабочихМест() Экспорт + + ТекстЗапроса = " + |ВЫБРАТЬ + | КОЛИЧЕСТВО(*) КАК Количество + |ИЗ + | ПланОбмена.[ИмяПланаОбмена] КАК Таблица + |ГДЕ + | Таблица.Ссылка <> &ПриложениеВСервисе + | И НЕ Таблица.ПометкаУдаления"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяПланаОбмена]", ПланОбменаАвтономнойРаботы()); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ПриложениеВСервисе", ПриложениеВСервисе()); + Запрос.Текст = ТекстЗапроса; + + Выборка = Запрос.Выполнить().Выбрать(); + Выборка.Следующий(); + + Возврат Выборка.Количество; +КонецФункции + +// Для внутреннего использования +// +Функция ПриложениеВСервисе() Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Если ОбменДаннымиСервер.ГлавныйУзел() <> Неопределено Тогда + + Возврат ОбменДаннымиСервер.ГлавныйУзел(); + + Иначе + + Возврат ПланыОбмена[ПланОбменаАвтономнойРаботы()].ЭтотУзел(); + + КонецЕсли; + +КонецФункции + +// Для внутреннего использования +// +Функция АвтономноеРабочееМесто() Экспорт + + ТекстЗапроса = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | Таблица.Ссылка КАК АвтономноеРабочееМесто + |ИЗ + | ПланОбмена.[ИмяПланаОбмена] КАК Таблица + |ГДЕ + | Таблица.Ссылка <> &ПриложениеВСервисе + | И НЕ Таблица.ПометкаУдаления"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяПланаОбмена]", ПланОбменаАвтономнойРаботы()); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ПриложениеВСервисе", ПриложениеВСервисе()); + Запрос.Текст = ТекстЗапроса; + + Результат = Запрос.Выполнить(); + + Если Результат.Пустой() Тогда + Возврат Неопределено; + КонецЕсли; + + Выборка = Результат.Выбрать(); + Выборка.Следующий(); + + Возврат Выборка.АвтономноеРабочееМесто; +КонецФункции + +// Для внутреннего использования +// +Функция ПланОбменаАвтономнойРаботы() Экспорт + + Возврат ОбменДаннымиПовтИсп.ПланОбменаАвтономнойРаботы(); + +КонецФункции + +// Для внутреннего использования +// +Функция ЭтоУзелАвтономногоРабочегоМеста(Знач УзелИнформационнойБазы) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Возврат ОбменДаннымиПовтИсп.ЭтоУзелАвтономногоРабочегоМеста(УзелИнформационнойБазы); + +КонецФункции + +// Для внутреннего использования +// +Функция ДатаПоследнейУспешнойСинхронизации(АвтономноеРабочееМесто) Экспорт + + ТекстЗапроса = + "ВЫБРАТЬ + | МИНИМУМ(СостоянияУспешныхОбменовДанными.ДатаОкончания) КАК ДатаСинхронизации + |ИЗ + | [СостоянияУспешныхОбменовДанными] КАК СостоянияУспешныхОбменовДанными + |ГДЕ + | СостоянияУспешныхОбменовДанными.УзелИнформационнойБазы = &АвтономноеРабочееМесто"; + + Если ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[СостоянияУспешныхОбменовДанными]", "РегистрСведений.СостоянияУспешныхОбменовДаннымиОбластейДанных"); + Иначе + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[СостоянияУспешныхОбменовДанными]", "РегистрСведений.СостоянияУспешныхОбменовДанными"); + КонецЕсли; + + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапроса; + Запрос.УстановитьПараметр("АвтономноеРабочееМесто", АвтономноеРабочееМесто); + + Выборка = Запрос.Выполнить().Выбрать(); + Выборка.Следующий(); + + Возврат ?(ЗначениеЗаполнено(Выборка.ДатаСинхронизации), Выборка.ДатаСинхронизации, Неопределено); +КонецФункции + +// Для внутреннего использования +// +Функция СформироватьНаименованиеАвтономногоРабочегоМестаПоУмолчанию() Экспорт + + ТекстЗапроса = " + |ВЫБРАТЬ + | КОЛИЧЕСТВО(*) КАК Количество + |ИЗ + | ПланОбмена.[ИмяПланаОбмена] КАК Таблица + |ГДЕ + | Таблица.Наименование ПОДОБНО &ШаблонИмени"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяПланаОбмена]", ПланОбменаАвтономнойРаботы()); + + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапроса; + Запрос.УстановитьПараметр("ШаблонИмени", НаименованиеАвтономногоРабочегоМестаПоУмолчанию() + "%"); + + Выборка = Запрос.Выполнить().Выбрать(); + Выборка.Следующий(); + + Количество = Выборка.Количество; + + Если Количество = 0 Тогда + + Возврат НаименованиеАвтономногоРабочегоМестаПоУмолчанию(); + + Иначе + + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + "%1 (%2)", + НаименованиеАвтономногоРабочегоМестаПоУмолчанию(), XMLСтрока(Количество + 1)); + + КонецЕсли; + +КонецФункции + +// Для внутреннего использования +// +Функция СформироватьПрефиксАвтономногоРабочегоМеста(Знач ПоследнийПрефикс = "") Экспорт + + ДопустимыеСимволы = ДопустимыеСимволыПрефиксаАвтономногоРабочегоМеста(); + + СимволПоследнегоАвтономногоРабочегоМеста = Лев(ПоследнийПрефикс, 1); + + ПозицияСимвола = СтрНайти(ДопустимыеСимволы, СимволПоследнегоАвтономногоРабочегоМеста); + + Если ПозицияСимвола = 0 ИЛИ ПустаяСтрока(СимволПоследнегоАвтономногоРабочегоМеста) Тогда + + Символ = Лев(ДопустимыеСимволы, 1); // Используем первый символ + + ИначеЕсли ПозицияСимвола >= СтрДлина(ДопустимыеСимволы) Тогда + + Символ = Прав(ДопустимыеСимволы, 1); // Используем последний символ + + Иначе + + Символ = Сред(ДопустимыеСимволы, ПозицияСимвола + 1, 1); // Используем следующий символ + + КонецЕсли; + + ПрефиксПриложения = Прав(ПолучитьФункциональнуюОпцию("ПрефиксИнформационнойБазы"), 1); + + Результат = "[Символ][ПрефиксПриложения]"; + Результат = СтрЗаменить(Результат, "[Символ]", Символ); + Результат = СтрЗаменить(Результат, "[ПрефиксПриложения]", ПрефиксПриложения); + + Возврат Результат; +КонецФункции + +// Для внутреннего использования +// +Функция ИмяФайлаПакетаУстановки() Экспорт + + Возврат НСтр("ru = 'Автономная работа.zip'"); + +КонецФункции + +// Для внутреннего использования +// +Функция ОписаниеОграниченийПередачиДанных(АвтономноеРабочееМесто) Экспорт + + ПланОбменаАвтономнойРаботы = ПланОбменаАвтономнойРаботы(); + + НастройкаОтборовНаУзле = ОбменДаннымиСервер.НастройкаОтборовНаУзле(ПланОбменаАвтономнойРаботы, ""); + + Если НастройкаОтборовНаУзле.Количество() = 0 Тогда + Возврат ""; + КонецЕсли; + + Реквизиты = Новый Массив; + + Для Каждого Элемент Из НастройкаОтборовНаУзле Цикл + + Реквизиты.Добавить(Элемент.Ключ); + + КонецЦикла; + + Реквизиты = СтрСоединить(Реквизиты, ","); + + ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(АвтономноеРабочееМесто, Реквизиты); + + Для Каждого Элемент Из НастройкаОтборовНаУзле Цикл + + Если ТипЗнч(Элемент.Значение) = Тип("Структура") Тогда + + Таблица = ЗначенияРеквизитов[Элемент.Ключ].Выгрузить(); + + Для Каждого ВложенныйЭлемент Из Элемент.Значение Цикл + + НастройкаОтборовНаУзле[Элемент.Ключ][ВложенныйЭлемент.Ключ] = Таблица.ВыгрузитьКолонку(ВложенныйЭлемент.Ключ); + + КонецЦикла; + + Иначе + + НастройкаОтборовНаУзле[Элемент.Ключ] = ЗначенияРеквизитов[Элемент.Ключ]; + + КонецЕсли; + + КонецЦикла; + + Возврат ОбменДаннымиСервер.ОписаниеОграниченийПередачиДанных(ПланОбменаАвтономнойРаботы, НастройкаОтборовНаУзле, ""); +КонецФункции + +// Для внутреннего использования +// +Функция МониторАвтономныхРабочихМест() Экспорт + + ТекстЗапроса = " + |ВЫБРАТЬ + | СостоянияУспешныхОбменовДанными.УзелИнформационнойБазы КАК АвтономноеРабочееМесто, + | МИНИМУМ(СостоянияУспешныхОбменовДанными.ДатаОкончания) КАК ДатаСинхронизации + |ПОМЕСТИТЬ СостоянияУспешныхОбменовДанными + |ИЗ + | РегистрСведений.СостоянияУспешныхОбменовДаннымиОбластейДанных КАК СостоянияУспешныхОбменовДанными + | + |СГРУППИРОВАТЬ ПО + | СостоянияУспешныхОбменовДанными.УзелИнформационнойБазы + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ПланОбмена.Ссылка КАК АвтономноеРабочееМесто, + | ЕСТЬNULL(СостоянияУспешныхОбменовДанными.ДатаСинхронизации, Неопределено) КАК ДатаСинхронизации + |ИЗ + | ПланОбмена.[ИмяПланаОбмена] КАК ПланОбмена + | + | ЛЕВОЕ СОЕДИНЕНИЕ СостоянияУспешныхОбменовДанными КАК СостоянияУспешныхОбменовДанными + | ПО ПланОбмена.Ссылка = СостоянияУспешныхОбменовДанными.АвтономноеРабочееМесто + | + |ГДЕ + | ПланОбмена.Ссылка <> &ПриложениеВСервисе + | И НЕ ПланОбмена.ПометкаУдаления + | + |УПОРЯДОЧИТЬ ПО + | ПланОбмена.Представление"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяПланаОбмена]", ПланОбменаАвтономнойРаботы()); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ПриложениеВСервисе", ПриложениеВСервисе()); + Запрос.Текст = ТекстЗапроса; + + НастройкиСинхронизации = Запрос.Выполнить().Выгрузить(); + НастройкиСинхронизации.Колонки.Добавить("ПредставлениеДатыСинхронизации"); + + Для Каждого НастройкаСинхронизации Из НастройкиСинхронизации Цикл + + Если ЗначениеЗаполнено(НастройкаСинхронизации.ДатаСинхронизации) Тогда + НастройкаСинхронизации.ПредставлениеДатыСинхронизации = + ОбменДаннымиСервер.ОтносительнаяДатаСинхронизации(НастройкаСинхронизации.ДатаСинхронизации); + Иначе + НастройкаСинхронизации.ПредставлениеДатыСинхронизации = НСтр("ru = 'не выполнялась'"); + КонецЕсли; + + КонецЦикла; + + Возврат НастройкиСинхронизации; +КонецФункции + +// Для внутреннего использования +// +Функция СобытиеЖурналаРегистрацииСозданиеАвтономногоРабочегоМеста() Экспорт + + Возврат НСтр("ru = 'Автономная работа.Создание автономного рабочего места'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +// Для внутреннего использования +// +Функция СобытиеЖурналаРегистрацииУдалениеАвтономногоРабочегоМеста() Экспорт + + Возврат НСтр("ru = 'Автономная работа.Удаление автономного рабочего места'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +// Для внутреннего использования +// +Функция ТекстИнструкцииИзМакета(Знач ИмяМакета) Экспорт + + Результат = Обработки.ПомощникСозданияАвтономногоРабочегоМеста.ПолучитьМакет(ИмяМакета).ПолучитьТекст(); + Результат = СтрЗаменить(Результат, "[НазваниеПрограммы]", Метаданные.Синоним); + Результат = СтрЗаменить(Результат, "[ВерсияПлатформы]", ОбменДаннымиВМоделиСервиса.ТребуемаяВерсияПлатформы()); + Возврат Результат; +КонецФункции + +//////////////////////////////////////////////////////////////////////////////// +// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ, ИСПОЛЬЗУЕМЫЕ НА СТОРОНЕ АВТОНОМНОГО РАБОЧЕГО МЕСТА + +// Для внутреннего использования. +// +Процедура ВыполнитьНастройкуАвтономногоРабочегоМестаПриПервомЗапуске() Экспорт + + Если Не ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда + ВызватьИсключение НСтр("ru = 'Первый запуск автономного рабочего места должен выполняться + |в файловом режиме работы информационной базы.'"); + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + // Правила обмена не мигрируют в РИБ, поэтому выполняем загрузку правил. + ОбменДаннымиСервер.ВыполнитьОбновлениеПравилДляОбменаДанными(); + ЗагрузитьДанныеНачальногоОбраза(); + ЗагрузитьПараметрыИзНачальногоОбраза(); + + УстановитьПривилегированныйРежим(Ложь); + + ОбменДаннымиСервер.ПриПродолженииНастройкиПодчиненногоУзлаРИБ(); + +КонецПроцедуры + +// Для внутреннего использования +// +Процедура ОтключитьАвтоматическуюСинхронизациюДанныхСПриложениемВИнтернете(Источник) Экспорт + + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + + ОтключитьАвтоматическуюСинхронизацию = Ложь; + + Для Каждого СтрокаНабора Из Источник Цикл + + Если СтрокаНабора.ВидТранспортаСообщенийОбменаПоУмолчанию = Перечисления.ВидыТранспортаСообщенийОбмена.WS + И Не СтрокаНабора.WSЗапомнитьПароль Тогда + + ОтключитьАвтоматическуюСинхронизацию = Истина; + Прервать; + + КонецЕсли; + + КонецЦикла; + + Если ОтключитьАвтоматическуюСинхронизацию Тогда + + УстановитьПривилегированныйРежим(Истина); + + РегламентныеЗаданияСервер.УстановитьИспользованиеРегламентногоЗадания( + Метаданные.РегламентныеЗадания.СинхронизацияДанныхСПриложениемВИнтернете, Ложь); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +// Для внутреннего использования +// +Функция НеобходимоВыполнитьНастройкуАвтономногоРабочегоМестаПриПервомЗапуске() Экспорт + + УстановитьПривилегированныйРежим(Истина); + Возврат Не Константы.НастройкаПодчиненногоУзлаРИБЗавершена.Получить() И ЭтоАвтономноеРабочееМесто(); + +КонецФункции + +// Для внутреннего использования +// +Функция СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботы() Экспорт + + Возврат ЭтоАвтономноеРабочееМесто() + И Константы.НастройкаПодчиненногоУзлаРИБЗавершена.Получить() + И Константы.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы.Получить() + И СинхронизацияССервисомДавноНеВыполнялась() + И ОбменДаннымиСервер.СинхронизацияДанныхРазрешена(); + +КонецФункции + +// Для внутреннего использования +// +Функция СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботы() Экспорт + + Возврат ЭтоАвтономноеРабочееМесто() + И Константы.НастройкаПодчиненногоУзлаРИБЗавершена.Получить() + И Константы.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы.Получить() + И ОбменДаннымиСервер.СинхронизацияДанныхРазрешена(); + +КонецФункции + +// Для внутреннего использования +// +Функция РасписаниеСинхронизацииДанныхПоУмолчанию() Экспорт // Каждый час + + Месяцы = Новый Массив; + Месяцы.Добавить(1); + Месяцы.Добавить(2); + Месяцы.Добавить(3); + Месяцы.Добавить(4); + Месяцы.Добавить(5); + Месяцы.Добавить(6); + Месяцы.Добавить(7); + Месяцы.Добавить(8); + Месяцы.Добавить(9); + Месяцы.Добавить(10); + Месяцы.Добавить(11); + Месяцы.Добавить(12); + + ДниНедели = Новый Массив; + ДниНедели.Добавить(1); + ДниНедели.Добавить(2); + ДниНедели.Добавить(3); + ДниНедели.Добавить(4); + ДниНедели.Добавить(5); + ДниНедели.Добавить(6); + ДниНедели.Добавить(7); + + Расписание = Новый РасписаниеРегламентногоЗадания; + Расписание.Месяцы = Месяцы; + Расписание.ДниНедели = ДниНедели; + Расписание.ПериодПовтораВТечениеДня = 60*60; // 60 минут + Расписание.ПериодПовтораДней = 1; // каждый день + + Возврат Расписание; +КонецФункции + +// Для внутреннего использования +// +Функция ЭтоАвтономноеРабочееМесто() Экспорт + + Возврат ОбменДаннымиСервер.ЭтоАвтономноеРабочееМесто(); + +КонецФункции + +// Для внутреннего использования +// +Функция ПараметрыФормыВыполненияОбменаДанными() Экспорт + + Возврат Новый Структура("УзелИнформационнойБазы, АдресДляВосстановленияПароляУчетнойЗаписи, ЗакрытьПриУспешнойСинхронизации", + ПриложениеВСервисе(), АдресДляВосстановленияПароляУчетнойЗаписи(), Истина); +КонецФункции + +// Для внутреннего использования +// +Функция СинхронизацияССервисомДавноНеВыполнялась(Знач Интервал = 3600) Экспорт // 1 час по умолчанию + + Возврат Истина; + +КонецФункции + +// Определяет возможность внесения изменений в объект +// Объект нельзя записать в Автономном рабочем месте, если он одновременно соответствует следующим условиям: +// 1. Это автономное рабочее место. +// 2. Это неразделенный объект метаданных. +// 3. Этот объект входит в состав плана обмена автономной работы. +// 4. Не входит в список исключений. +// +// Параметры: +// ОбъектМетаданных - Метаданные проверяемого объекта +// Только просмотр - Булево - Если Истина, то объект доступен только для просмотра. +// +Процедура ОпределитьВозможностьИзмененияДанных(ОбъектМетаданных, ТолькоПросмотр) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + + УстановитьПривилегированныйРежим(Истина); + + ТолькоПросмотр = ЭтоАвтономноеРабочееМесто() + И (Не МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ОбъектМетаданных.ПолноеИмя(), + МодульРаботаВМоделиСервиса.РазделительОсновныхДанных()) + И Не МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ОбъектМетаданных.ПолноеИмя(), + МодульРаботаВМоделиСервиса.РазделительВспомогательныхДанных())) + И Не ОбъектМетаданныхЯвляетсяИсключением(ОбъектМетаданных) + И Метаданные.ПланыОбмена[ПланОбменаАвтономнойРаботы()].Состав.Содержит(ОбъектМетаданных); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура УстановитьИспользованиеИтоговРегистров(ФлагИспользования) + + ДатаСеанса = ТекущаяДатаСеанса(); + РегистрНакопленияПериод = КонецМесяца(ДобавитьМесяц(ДатаСеанса, -1)); // Конец прошлого месяца. + РегистрБухгалтерииПериод = КонецМесяца(ДатаСеанса); // Конец текущего месяца. + + ВидОстатки = Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки; + + Для Каждого РегистрМетаданные Из Метаданные.РегистрыНакопления Цикл + + Если РегистрМетаданные.ВидРегистра <> ВидОстатки Тогда + Продолжить; + КонецЕсли; + + РегистрНакопленияМенеджер = РегистрыНакопления[РегистрМетаданные.Имя]; + + РегистрНакопленияМенеджер.УстановитьИспользованиеИтогов(ФлагИспользования); + РегистрНакопленияМенеджер.УстановитьИспользованиеТекущихИтогов(ФлагИспользования); + + Если ФлагИспользования Тогда + РегистрНакопленияМенеджер.УстановитьМаксимальныйПериодРассчитанныхИтогов(РегистрНакопленияПериод); + РегистрНакопленияМенеджер.ПересчитатьТекущиеИтоги(); + КонецЕсли; + + КонецЦикла; + + Для Каждого РегистрМетаданные Из Метаданные.РегистрыБухгалтерии Цикл + + РегистрБухгалтерииМенеджер = РегистрыБухгалтерии[РегистрМетаданные.Имя]; + + РегистрБухгалтерииМенеджер.УстановитьИспользованиеИтогов(ФлагИспользования); + РегистрБухгалтерииМенеджер.УстановитьИспользованиеТекущихИтогов(ФлагИспользования); + + Если ФлагИспользования Тогда + РегистрБухгалтерииМенеджер.УстановитьМаксимальныйПериодРассчитанныхИтогов(РегистрБухгалтерииПериод); + РегистрБухгалтерииМенеджер.ПересчитатьТекущиеИтоги(); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Функция ЭтоОбъектНачальногоОбразаУзлаРИБ(Знач Объект) + + Если ОбменДаннымиПовтИсп.АвтономнаяРаботаПоддерживается() Тогда + РежимРегистрации = СтандартныеПодсистемыПовтИсп.РежимРегистрацииДанныхДляПланаОбмена( + Объект.ПолноеИмя(), ОбменДаннымиПовтИсп.ПланОбменаАвтономнойРаботы()); + Если РежимРегистрации = "АвторегистрацияОтключена" Тогда + Возврат Истина; + КонецЕсли; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +// Для внутреннего использования +// +Функция НаименованиеАвтономногоРабочегоМестаПоУмолчанию() + + Результат = НСтр("ru = 'Автономная работа - %1'"); + + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Результат, ПолноеИмяПользователя()); + +КонецФункции + +// Для внутреннего использования +// +Функция ДопустимыеСимволыПрефиксаАвтономногоРабочегоМеста() + + Возврат НСтр("ru = 'АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЭЮЯабвгдежзиклмнопрстуфхцчшэюя'"); // 54 символа + +КонецФункции + +// Для внутреннего использования +// +Процедура ЗагрузитьПараметрыИзНачальногоОбраза() + + Параметры = ПолучитьПараметрыИзНачальногоОбраза(); + + Попытка + ПланыОбмена.УстановитьГлавныйУзел(Неопределено); + Исключение + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСозданиеАвтономногоРабочегоМеста(), + УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение НСтр("ru = 'Возможно, информационная база открыта в режиме конфигуратора. + |Завершите работу конфигуратора и повторите запуск программы.'"); + КонецПопытки; + + // Создаем узлы плана обмена автономной работы в нулевой области данных + УзелАвтономногоРабочегоМеста = ПланыОбмена[ПланОбменаАвтономнойРаботы()].ЭтотУзел().ПолучитьОбъект(); + УзелАвтономногоРабочегоМеста.Код = Параметры.КодАвтономногоРабочегоМеста; + УзелАвтономногоРабочегоМеста.Наименование = Параметры.НаименованиеАвтономногоРабочегоМеста; + УзелАвтономногоРабочегоМеста.ДополнительныеСвойства.Вставить("ПолучениеСообщенияОбмена"); + УзелАвтономногоРабочегоМеста.Записать(); + + УзелПриложенияВСервисе = ПланыОбмена[ПланОбменаАвтономнойРаботы()].СоздатьУзел(); + УзелПриложенияВСервисе.Код = Параметры.КодПриложенияВСервисе; + УзелПриложенияВСервисе.Наименование = Параметры.НаименованиеПриложенияВСервисе; + УзелПриложенияВСервисе.ДополнительныеСвойства.Вставить("ПолучениеСообщенияОбмена"); + УзелПриложенияВСервисе.Записать(); + + // Назначение созданного узла главным. + ПланыОбмена.УстановитьГлавныйУзел(УзелПриложенияВСервисе.Ссылка); + СтандартныеПодсистемыСервер.СохранитьГлавныйУзел(); + + НачатьТранзакцию(); + Попытка + + Константы.ИспользоватьСинхронизациюДанных.Установить(Истина); + Константы.НастройкиПодчиненногоУзлаРИБ.Установить(""); + Константы.ПрефиксУзлаРаспределеннойИнформационнойБазы.Установить(Параметры.Префикс); + Константы.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы.Установить(Истина); + Константы.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы.Установить(Истина); + Константы.ЗаголовокСистемы.Установить(Параметры.ЗаголовокСистемы); + + Константы.ЭтоАвтономноеРабочееМесто.Установить(Истина); + Константы.ИспользоватьРазделениеПоОбластямДанных.Установить(Ложь); + + // Константа влияет на открытие помощника по настройке автономного рабочего места. + Константы.НастройкаПодчиненногоУзлаРИБЗавершена.Установить(Истина); + + // Добавляем запись в РС транспорта обмена. + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("ВидТранспортаСообщенийОбменаПоУмолчанию", Перечисления.ВидыТранспортаСообщенийОбмена.WS); + СтруктураЗаписи.Вставить("WSИспользоватьПередачуБольшогоОбъемаДанных", Истина); + СтруктураЗаписи.Вставить("WSURLВебСервиса", Параметры.URL); + СтруктураЗаписи.Вставить("Корреспондент", ПриложениеВСервисе()); + + РегистрыСведений.НастройкиТранспортаОбменаДанными.ДобавитьЗапись(СтруктураЗаписи); + + // Добавляем запись в РС общих настроек узлов информационных баз. + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("УзелИнформационнойБазы", ПриложениеВСервисе()); + СтруктураЗаписи.Вставить("НастройкаЗавершена", Истина); + СтруктураЗаписи.Вставить("Префикс", Параметры.Префикс); + Если Параметры.Свойство("ПрефиксПриложенияВСервисе") Тогда + СтруктураЗаписи.Вставить("ПрефиксКорреспондента", Параметры.ПрефиксПриложенияВСервисе); + КонецЕсли; + ОбменДаннымиСлужебный.ДобавитьЗаписьВРегистрСведений(СтруктураЗаписи, "ОбщиеНастройкиУзловИнформационныхБаз"); + + // Устанавливаем дату создания начального образа, как дату первой успешной синхронизации данных. + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("УзелИнформационнойБазы", ПриложениеВСервисе()); + СтруктураЗаписи.Вставить("ДействиеПриОбмене", Перечисления.ДействияПриОбмене.ВыгрузкаДанных); + СтруктураЗаписи.Вставить("ДатаОкончания", Параметры.ДатаСозданияНачальногоОбраза); + РегистрыСведений.СостоянияУспешныхОбменовДанными.ДобавитьЗапись(СтруктураЗаписи); + + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("УзелИнформационнойБазы", ПриложениеВСервисе()); + СтруктураЗаписи.Вставить("ДействиеПриОбмене", Перечисления.ДействияПриОбмене.ЗагрузкаДанных); + СтруктураЗаписи.Вставить("ДатаОкончания", Параметры.ДатаСозданияНачальногоОбраза); + РегистрыСведений.СостоянияУспешныхОбменовДанными.ДобавитьЗапись(СтруктураЗаписи); + + // Устанавливаем расписание синхронизации по умолчанию. + // Расписание отключаем, т.к. пароль пользователя не задан. + РегламентныеЗаданияСервер.УстановитьИспользованиеРегламентногоЗадания(Метаданные.РегламентныеЗадания.СинхронизацияДанныхСПриложениемВИнтернете, Ложь); + РегламентныеЗаданияСервер.УстановитьРасписаниеРегламентногоЗадания(Метаданные.РегламентныеЗадания.СинхронизацияДанныхСПриложениемВИнтернете, РасписаниеСинхронизацииДанныхПоУмолчанию()); + + // Создаем пользователя ИБ и связываем его с пользователем из справочника пользователей. + Роли = Новый Массив; + Роли.Добавить("АдминистраторСистемы"); + Роли.Добавить("ПолныеПрава"); + + ОписаниеПользователяИБ = Новый Структура; + ОписаниеПользователяИБ.Вставить("Действие", "Записать"); + ОписаниеПользователяИБ.Вставить("Имя", Параметры.ИмяВладельца); + ОписаниеПользователяИБ.Вставить("Роли", Роли); + ОписаниеПользователяИБ.Вставить("АутентификацияСтандартная", Истина); + ОписаниеПользователяИБ.Вставить("ПоказыватьВСпискеВыбора", Истина); + + Пользователь = Справочники.Пользователи.ПолучитьСсылку(Новый УникальныйИдентификатор(Параметры.Владелец)).ПолучитьОбъект(); + + Если Пользователь = Неопределено Тогда + ВызватьИсключение НСтр("ru = 'Идентификация пользователя не выполнена. + |Возможно, справочник пользователей не включен в состав плана обмена автономной работы.'"); + КонецЕсли; + + УстановитьМинимальнуюДлинуПаролейПользователей(0); + УстановитьПроверкуСложностиПаролейПользователей(Ложь); + + Пользователь.Служебный = Ложь; + Пользователь.ДополнительныеСвойства.Вставить("ОписаниеПользователяИБ", ОписаниеПользователяИБ); + Пользователь.ДополнительныеСвойства.Вставить("СозданиеАдминистратора", + НСтр("ru = 'Начальная настройка автономного рабочего места.'")); + Пользователь.Записать(); + + ПланыОбмена.УдалитьРегистрациюИзменений(УзелПриложенияВСервисе.Ссылка); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСозданиеАвтономногоРабочегоМеста(), + УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +// Для внутреннего использования +// +Процедура ЗагрузитьДанныеНачальногоОбраза() + + КаталогИнформационнойБазы = ОбщегоНазначенияКлиентСервер.КаталогФайловойИнформационнойБазы(); + + ИмяФайлаДанныхНачальногоОбраза = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( + КаталогИнформационнойБазы, + "data.xml"); + + ФайлДанныхНачальногоОбраза = Новый Файл(ИмяФайлаДанныхНачальногоОбраза); + Если Не ФайлДанныхНачальногоОбраза.Существует() Тогда + Возврат; // Данные начального образа были успешно загружены ранее + КонецЕсли; + + ДанныеНачальногоОбраза = Новый ЧтениеXML; + ДанныеНачальногоОбраза.ОткрытьФайл(ИмяФайлаДанныхНачальногоОбраза); + ДанныеНачальногоОбраза.Прочитать(); + ДанныеНачальногоОбраза.Прочитать(); + + Попытка + УстановитьИспользованиеИтоговРегистров(Ложь); + + Пока ВозможностьЧтенияXML(ДанныеНачальногоОбраза) Цикл + + ЭлементДанных = ПрочитатьXML(ДанныеНачальногоОбраза); + ЭлементДанных.ДополнительныеСвойства.Вставить("СозданиеНачальногоОбраза"); + + ЭлементДанных.ОбменДанными.Загрузка = Истина; + ЭлементДанных.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов"); + ЭлементДанных.Записать(); + + КонецЦикла; + + УстановитьИспользованиеИтоговРегистров(Истина); + Исключение + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСозданиеАвтономногоРабочегоМеста(), + УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + + ДанныеНачальногоОбраза = Неопределено; + ВызватьИсключение; + КонецПопытки; + + ДанныеНачальногоОбраза.Закрыть(); + + Попытка + УдалитьФайлы(ИмяФайлаДанныхНачальногоОбраза); + Исключение + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСозданиеАвтономногоРабочегоМеста(), УровеньЖурналаРегистрации.Ошибка,,, + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + +КонецПроцедуры + +// Для внутреннего использования +// +Функция ПолучитьПараметрыИзНачальногоОбраза() + + СтрокаXML = Константы.НастройкиПодчиненногоУзлаРИБ.Получить(); + + Если ПустаяСтрока(СтрокаXML) Тогда + ВызватьИсключение НСтр("ru = 'В автономное рабочее место не были переданы настройки. + |Работа с автономным рабочим место невозможна.'"); + КонецЕсли; + + ЧтениеXML = Новый ЧтениеXML; + ЧтениеXML.УстановитьСтроку(СтрокаXML); + + ЧтениеXML.Прочитать(); // Параметры + ВерсияФормата = ЧтениеXML.ПолучитьАтрибут("ВерсияФормата"); + + ЧтениеXML.Прочитать(); // ПараметрыАвтономногоРабочегоМеста + + Результат = СчитатьДанныеВСтруктуру(ЧтениеXML); + + ЧтениеXML.Закрыть(); + + Возврат Результат; +КонецФункции + +// Для внутреннего использования +// +Функция СчитатьДанныеВСтруктуру(ЧтениеXML) + + // возвращаемое значение функции + Результат = Новый Структура; + + Если ЧтениеXML.ТипУзла <> ТипУзлаXML.НачалоЭлемента Тогда + ВызватьИсключение НСтр("ru = 'Ошибка чтения XML'"); + КонецЕсли; + + ЧтениеXML.Прочитать(); + + Пока ЧтениеXML.ТипУзла <> ТипУзлаXML.КонецЭлемента Цикл + + Ключ = ЧтениеXML.Имя; + + Результат.Вставить(Ключ, ПрочитатьXML(ЧтениеXML)); + + КонецЦикла; + + ЧтениеXML.Прочитать(); + + Возврат Результат; +КонецФункции + +//////////////////////////////////////////////////////////////////////////////// +// Обработчики условных вызовов в другие подсистемы + +// Выполняет проверку объекта на вхождение в список исключений +Функция ОбъектМетаданныхЯвляетсяИсключением(Знач ОбъектМетаданных) + + // Безопасное хранилище паролей + Если ОбъектМетаданных = Метаданные.РегистрыСведений.БезопасноеХранилищеДанных Тогда + Возврат Истина; + КонецЕсли; + + // Справочник ИдентификаторыОбъектовМетаданных является объектом начального узла РИБ. + // В подчиненных узлах РИБ допустимо обновление многих реквизитов справочника по значениям + // свойств метаданных в строгом соответствии главному узлу (требуется для нештатных ситуаций). + // Контроль изменения осуществляется в справочнике в процедуре ПередЗаписью модуля объекта. + Если ОбъектМетаданных = Метаданные.Справочники.ИдентификаторыОбъектовМетаданных Тогда + Возврат Истина; + КонецЕсли; + + Возврат ЭтоОбъектНачальногоОбразаУзлаРИБ(ОбъектМетаданных); + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОчередьЗаданийСлужебный/ОчередьЗаданийСлужебный.mdo b/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/АвтономнаяРаботаСлужебный.mdo similarity index 60% rename from SSL/src/CommonModules/ОчередьЗаданийСлужебный/ОчередьЗаданийСлужебный.mdo rename to SSL/src/CommonModules/АвтономнаяРаботаСлужебный/АвтономнаяРаботаСлужебный.mdo index 6188ea708..750c93b7a 100644 --- a/SSL/src/CommonModules/ОчередьЗаданийСлужебный/ОчередьЗаданийСлужебный.mdo +++ b/SSL/src/CommonModules/АвтономнаяРаботаСлужебный/АвтономнаяРаботаСлужебный.mdo @@ -1,9 +1,9 @@ - - ОчередьЗаданийСлужебный + + АвтономнаяРаботаСлужебный ru - Очередь заданий служебный + Автономная работа служебный true true diff --git a/SSL/src/CommonModules/АвтономнаяРаботаСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/АвтономнаяРаботаСлужебныйКлиент/Module.bsl new file mode 100644 index 000000000..91f089378 --- /dev/null +++ b/SSL/src/CommonModules/АвтономнаяРаботаСлужебныйКлиент/Module.bsl @@ -0,0 +1,47 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныеПроцедурыИФункции + +// Обработчики условных вызовов из БСП + +// Проверяет настройку автономного рабочего места и уведомляет об ошибке. +Процедура ПередНачаломРаботыСистемы(Параметры) Экспорт + + ПараметрыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске(); + + Если ПараметрыКлиента.Свойство("ПерезапуститьПослеНастройкиАвтономногоРабочегоМеста") Тогда + Параметры.Отказ = Истина; + Параметры.Перезапустить = Истина; + Возврат; + КонецЕсли; + + Если НЕ ПараметрыКлиента.Свойство("ОшибкаПриНастройкеАвтономногоРабочегоМеста") Тогда + Возврат; + КонецЕсли; + + Параметры.Отказ = Истина; + Параметры.ИнтерактивнаяОбработка = Новый ОписаниеОповещения( + "ИнтерактивнаяОбработкаПриПроверкеНастройкиАвтономногоРабочегоМеста", ЭтотОбъект); + +КонецПроцедуры + +/////////////////////////////////////////////////////////////////////////////// +// Обработчики оповещений. + +// Предупреждает об ошибке настройки автономного рабочего места. +Процедура ИнтерактивнаяОбработкаПриПроверкеНастройкиАвтономногоРабочегоМеста(Параметры, Неопределен) Экспорт + + ПараметрыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске(); + + СтандартныеПодсистемыКлиент.ПоказатьПредупреждениеИПродолжить( + Параметры, ПараметрыКлиента.ОшибкаПриНастройкеАвтономногоРабочегоМеста); + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/CommonModules/ПрисоединенныеФайлыКлиент/ПрисоединенныеФайлыКлиент.mdo b/SSL/src/CommonModules/АвтономнаяРаботаСлужебныйКлиент/АвтономнаяРаботаСлужебныйКлиент.mdo similarity index 56% rename from SSL/src/CommonModules/ПрисоединенныеФайлыКлиент/ПрисоединенныеФайлыКлиент.mdo rename to SSL/src/CommonModules/АвтономнаяРаботаСлужебныйКлиент/АвтономнаяРаботаСлужебныйКлиент.mdo index b402975a4..9c7e397de 100644 --- a/SSL/src/CommonModules/ПрисоединенныеФайлыКлиент/ПрисоединенныеФайлыКлиент.mdo +++ b/SSL/src/CommonModules/АвтономнаяРаботаСлужебныйКлиент/АвтономнаяРаботаСлужебныйКлиент.mdo @@ -1,9 +1,9 @@ - - ПрисоединенныеФайлыКлиент + + АвтономнаяРаботаСлужебныйКлиент ru - Присоединенные файлы клиент + Автономная работа служебный клиент true true diff --git a/SSL/src/CommonModules/АдминистрированиеКластера/Module.bsl b/SSL/src/CommonModules/АдминистрированиеКластера/Module.bsl index a138a61f3..0b800f4de 100644 --- a/SSL/src/CommonModules/АдминистрированиеКластера/Module.bsl +++ b/SSL/src/CommonModules/АдминистрированиеКластера/Module.bsl @@ -572,11 +572,11 @@ // Возвращает описания сеансов информационной базы. // // Параметры: -// ПараметрыАдминистрированияКластера - (См. АдминистрированиеКластера.ПараметрыАдминистрированияКластера) -// ПараметрыАдминистрированияИБ - (См. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера) +// ПараметрыАдминистрированияКластера - Структура - См. АдминистрированиеКластера.ПараметрыАдминистрированияКластера +// ПараметрыАдминистрированияИБ - Структура - См. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера // Параметр может быть опущен в том случае, если аналогичные поля были указаны в структуре, переданной // в качестве значения параметра ПараметрыАдминистрированияКластера. -// Фильтр - Массив из Структура - описывающих условия фильтрации сеансов. Поля структур, входящих в массив: +// Фильтр - Массив - из Структура - описывающих условия фильтрации сеансов. Поля структур, входящих в массив: // * Свойство - Строка, имя свойства, по которому осуществляется фильтрация. Допустимые значения - см. // Возвращаемое значение функции АдминистрированиеКластера.СвойстваСеанса(), // * ВидСравнения - значение системного перечисления ВидСравнения, вид сравнения значений сеансов с указанным @@ -605,7 +605,7 @@ // равенство. // // Возвращаемое значение: -// Массив из (см. АдминистрированиеКластера.СвойстваСеанса) +// Массив - из см. АдминистрированиеКластера.СвойстваСеанса // Функция СеансыИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ = Неопределено, Знач Фильтр = Неопределено) Экспорт @@ -631,7 +631,7 @@ // описание см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера(), // Параметр может быть опущен в том случае, если аналогичные поля были указаны в структуре, переданной // в качестве значения параметра ПараметрыАдминистрированияКластера. -// Фильтр - Массив из Структура - описывающих условия фильтрации сеансов. Поля структур, входящих в массив: +// Фильтр - Массив - из Структура - описывающих условия фильтрации сеансов. Поля структур, входящих в массив: // * Свойство - Строка, имя свойства, по которому осуществляется фильтрация. Допустимые значения - см. // Возвращаемое значение функции АдминистрированиеКластера.СвойстваСеанса(), // * ВидСравнения - значение системного перечисления ВидСравнения, вид сравнения значений сеансов с указанным @@ -781,7 +781,7 @@ // описание см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера(), // Параметр может быть опущен в том случае, если аналогичные поля были указаны в структуре, переданной // в качестве значения параметра ПараметрыАдминистрированияКластера. -// Фильтр - Массив из Структура - описывающих условия фильтрации сеансов. Поля структур, входящих в массив: +// Фильтр - Массив - из Структура - описывающих условия фильтрации сеансов. Поля структур, входящих в массив: // * Свойство - Строка, имя свойства, по которому осуществляется фильтрация. Допустимые значения - см. // Возвращаемое значение функции АдминистрированиеКластера.СвойстваСеанса(), // * ВидСравнения - значение системного перечисления ВидСравнения, вид сравнения значений сеансов с указанным @@ -998,9 +998,8 @@ // Проверяет существование в кластере серверов профиля безопасности. // // Параметры: -// ПараметрыАдминистрированияКластера - Структура - структура, описывающая параметры подключения к кластеру серверов, -// описание см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера(), -// ИмяПрофиля - Строка - имя профиля безопасности, существование которого проверяется. +// ПараметрыАдминистрированияКластера - Структура - см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера. +// ИмяПрофиля - Строка - имя профиля безопасности, существование которого проверяется. // // Возвращаемое значение: // Булево @@ -1423,11 +1422,12 @@ // Возвращает описания кластеров серверов. // -// ПараметрыАдминистрированияКластера - (См. АдминистрированиеКластера.ПараметрыАдминистрированияКластера) +// Параметры: +// ПараметрыАдминистрированияКластера - Структура - См. АдминистрированиеКластера.ПараметрыАдминистрированияКластера // Фильтр - Структура - параметры фильтрации кластеров серверов. // // Возвращаемое значение: -// Массив из Структура - свойства. +// Массив - из Структура - свойства. // Функция СвойстваКластеров(Знач ПараметрыАдминистрированияКластера, Знач Фильтр = Неопределено) Экспорт @@ -1491,9 +1491,9 @@ // // Параметры: // ИдентификаторКластера - Строка - внутренний идентификатор кластера серверов. -// ПараметрыАдминистрированияКластера - (См. АдминистрированиеКластера.ПараметрыАдминистрированияКластера) +// ПараметрыАдминистрированияКластера - Структура - См. АдминистрированиеКластера.ПараметрыАдминистрированияКластера // ИдентификаторИнформационнойБазы - Строка - внутренний идентификатор информационной базы. -// Фильтр - Массив из Структура - описывающих условия фильтрации сеансов. Поля структур, входящих в массив: +// Фильтр - Массив - из Структура - описывающих условия фильтрации сеансов. Поля структур, входящих в массив: // * Свойство - Строка, имя свойства, по которому осуществляется фильтрация. Допустимые значения - см. // Возвращаемое значение функции АдминистрированиеКластера.СвойстваСеанса(), // * ВидСравнения - значение системного перечисления ВидСравнения, вид сравнения значений сеансов с указанным @@ -1524,8 +1524,8 @@ // иначе - без использования. // // Возвращаемое значение: -// - Массив из (См. АдминистрированиеКластера.СвойстваСеанса) -// - Массив из Соответствие - описывающих свойства сеансов в нотации утилиты rac (при ИспользоватьСловарь = Ложь). +// - Массив - из (См. АдминистрированиеКластера.СвойстваСеанса) +// - Массив - из Соответствие - описывающих свойства сеансов в нотации утилиты rac (при ИспользоватьСловарь = Ложь). // Функция СвойстваСеансов(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИдентификаторИнформационнойБазы, Знач Фильтр = Неопределено, Знач ИспользоватьСловарь = Истина) Экспорт @@ -1544,10 +1544,10 @@ // // Параметры: // ИдентификаторКластера - Строка - внутренний идентификатор кластера серверов. -// ПараметрыАдминистрированияКластера - (См. АдминистрированиеКластера.ПараметрыАдминистрированияКластера) +// ПараметрыАдминистрированияКластера - Структура - См. АдминистрированиеКластера.ПараметрыАдминистрированияКластера // ИдентификаторИнформационнойБазы - Строка - внутренний идентификатор информационной базы. -// ПараметрыАдминистрированияИнформационнойБазы - (См. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера) -// Фильтр - Массив из Структура - описывающих условия фильтрации сеансов. Поля структур, входящих в массив: +// ПараметрыАдминистрированияИнформационнойБазы - Структура - См. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера +// Фильтр - Массив - из Структура - описывающих условия фильтрации сеансов. Поля структур, входящих в массив: // * Свойство - Строка, имя свойства, по которому осуществляется фильтрация. Допустимые значения - см. // Возвращаемое значение функции АдминистрированиеКластера.СвойстваСеанса(), // * ВидСравнения - значение системного перечисления ВидСравнения, вид сравнения значений сеансов с указанным @@ -1578,8 +1578,8 @@ // иначе - без использования. // // Возвращаемое значение: -// - Массив из (См. АдминистрированиеКластера.СвойстваСоединения) -// - Массив из Соответствие - описывающих свойства соединений в нотации утилиты rac (при ИспользоватьСловарь = Ложь). +// - Массив - из Структура См. АдминистрированиеКластера.СвойстваСоединения +// - Массив - из Соответствие - описывающих свойства соединений в нотации утилиты rac (при ИспользоватьСловарь = Ложь). // Функция СвойстваСоединений(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИдентификаторИнформационнойБазы, Знач ПараметрыАдминистрированияИнформационнойБазы, Знач Фильтр = Неопределено, Знач ИспользоватьСловарь = Ложь) Экспорт diff --git a/SSL/src/CommonModules/АдминистрированиеКластераRAS/Module.bsl b/SSL/src/CommonModules/АдминистрированиеКластераRAS/Module.bsl index 97b2be114..31c529fa1 100644 --- a/SSL/src/CommonModules/АдминистрированиеКластераRAS/Module.bsl +++ b/SSL/src/CommonModules/АдминистрированиеКластераRAS/Module.bsl @@ -1703,7 +1703,7 @@ // Строки, допускающие произвольные символы, выводятся в двойных кавычках, при этом двойные кавычки в самих строках дублируются. Цифры = "0123456789"; Латиница = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - Кириллица = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЪЬЭЮЯабвгдежзийклмнопрстуфхцчшщыъьэюя"; // АПК:1036 алфовит не проверять орфографически. + Кириллица = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЪЬЭЮЯабвгдежзийклмнопрстуфхцчшщыъьэюя"; // АПК:1036 алфавит не проверять орфографически. ДопустимыеСимволы = Цифры + Латиница + Кириллица + "-"; Если СтрокаСодержитТолькоДопустимыеСимволы(Значение, ДопустимыеСимволы) Тогда Возврат Значение; diff --git a/SSL/src/CommonModules/АдресныйКлассификатор/Module.bsl b/SSL/src/CommonModules/АдресныйКлассификатор/Module.bsl index 13840b56c..ab585f0bb 100644 --- a/SSL/src/CommonModules/АдресныйКлассификатор/Module.bsl +++ b/SSL/src/CommonModules/АдресныйКлассификатор/Module.bsl @@ -378,19 +378,6 @@ Возврат АдресныйКлассификаторСлужебный.ОпределитьИдентификаторыАдреса(Адрес); КонецФункции -// Устарела. Следует использовать АдресныйКлассификатор.АдресныйКлассификаторЗагружен. -// Определяет наличие адресных сведений в адресном классификаторе. -// При использовании веб-сервиса фирмы 1С предоставляющего через интернет сведения об -// адресах РФ в формате ФИАС всегда возвращает Истина. -// -// Возвращаемое значение: -// Булево - Истина, если адресный классификатор содержит сведения хотя бы по одному региону; -// Ложь, если адресные сведения отсутствуют. -// -Функция КлассификаторЗагружен() Экспорт - Возврат АдресныйКлассификаторЗагружен(); -КонецФункции - #КонецОбласти #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/АдресныйКлассификаторВМоделиСервисаСлужебный/Module.bsl b/SSL/src/CommonModules/АдресныйКлассификаторВМоделиСервисаСлужебный/Module.bsl deleted file mode 100644 index 91578bd07..000000000 --- a/SSL/src/CommonModules/АдресныйКлассификаторВМоделиСервисаСлужебный/Module.bsl +++ /dev/null @@ -1,217 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. - -// См. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных. -Процедура ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики) Экспорт - - ЗарегистрироватьОбработчикиПоставляемыхДанных(Обработчики); - -КонецПроцедуры - -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. -Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт - - Типы.Добавить(Метаданные.Константы.ИсточникДанныхАдресногоКлассификатора); - - МетаданныеРегистров = Метаданные.РегистрыСведений; - - Типы.Добавить(МетаданныеРегистров.АдресныеОбъекты); - Типы.Добавить(МетаданныеРегистров.ДомаЗданияСтроения); - Типы.Добавить(МетаданныеРегистров.ДополнительныеАдресныеСведения); - Типы.Добавить(МетаданныеРегистров.ЗагруженныеВерсииАдресныхСведений); - Типы.Добавить(МетаданныеРегистров.ИсторияАдресныхОбъектов); - Типы.Добавить(МетаданныеРегистров.ОриентирыАдресныхОбъектов); - Типы.Добавить(МетаданныеРегистров.ПричиныИзмененияАдресныхСведений); - Типы.Добавить(МетаданныеРегистров.СлужебныеАдресныеСведения); - Типы.Добавить(МетаданныеРегистров.УровниСокращенийАдресныхСведений); - -КонецПроцедуры - -// Вызывается при получении уведомления о новых данных. -// В теле следует проверить, необходимы ли эти данные приложению, -// и если да - установить флажок Загружать. -// -// Параметры: -// Дескриптор - ОбъектXDTO - Дескриптор. -// Загружать - Булево - Истина, если загружать, Ложь - иначе. -// -Процедура ДоступныНовыеДанные(Знач Дескриптор, Загружать) Экспорт - - Если Дескриптор.DataType = "ФИАС30" Тогда - - Загружать = ПроверитьНаличиеНовыхДанных(Дескриптор); - - КонецЕсли; - -КонецПроцедуры - -// Вызывается после вызова ДоступныНовыеДанные, позволяет разобрать данные. -// -// Параметры: -// Дескриптор - ОбъектXDTO - Дескриптор. -// ПутьКФайлу - Строка - полное имя извлеченного файла. Файл будет автоматически удален -// после завершения процедуры. Если в менеджере сервиса не был -// указан файл - значение аргумента равно Неопределено. -// -Процедура ОбработатьНовыеДанные(Знач Дескриптор, Знач ПутьКФайлу) Экспорт - - Если Дескриптор.DataType = "ФИАС30" Тогда - ОбработатьФИАС(Дескриптор, ПутьКФайлу); - КонецЕсли; - -КонецПроцедуры - -// Вызывается при отмене обработки данных в случае сбоя. -// -// Параметры: -// Дескриптор - ОбъектXDTO - Дескриптор. -// -Процедура ОбработкаДанныхОтменена(Знач Дескриптор) Экспорт - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Регистрирует обработчики поставляемых данных за день и за все время. -// -// Параметры: -// Обработчики - ТаблицаЗначений - таблица для добавления обработчиков. Содержит колонки. -// * ВидДанных - Строка - код вида данных, обрабатываемый обработчиком. -// * КодОбработчика - Строка - будет использоваться при восстановлении обработки данных после сбоя. -// * Обработчик - ОбщийМодуль - модуль, содержащий экспортные процедуры: -// ДоступныНовыеДанные(Дескриптор, Загружать) Экспорт -// ОбработатьНовыеДанные(Дескриптор, ПутьКФайлу) Экспорт -// ОбработкаДанныхОтменена(Дескриптор) Экспорт -// -Процедура ЗарегистрироватьОбработчикиПоставляемыхДанных(Знач Обработчики) - - Обработчик = Обработчики.Добавить(); - Обработчик.ВидДанных = "ФИАС30"; - Обработчик.КодОбработчика = "ФИАС30"; - Обработчик.Обработчик = АдресныйКлассификаторВМоделиСервисаСлужебный; - -КонецПроцедуры - -Функция ПараметрыФИАС() - - Возврат Новый Структура("Версия, Регион"); - -КонецФункции - -Функция ПараметрыВерсииИзФайла(Знач Дескриптор) - - ПараметрыВерсии = ПараметрыФИАС(); - - ОписаниеТипаЧисло = Новый ОписаниеТипов("Число"); - Для Каждого Характеристика Из Дескриптор.Properties.Property Цикл - Если Характеристика.Code = "Регион" Тогда - ПараметрыВерсии.Регион = ОписаниеТипаЧисло.ПривестиЗначение(Характеристика.Value); - ИначеЕсли Характеристика.Code = "Версия" Тогда - ПараметрыВерсии.Версия = ОписаниеТипаЧисло.ПривестиЗначение(Характеристика.Value); - КонецЕсли; - КонецЦикла; - - Возврат ПараметрыВерсии; - -КонецФункции - -Функция ОписаниеПоследнейЗагрузкиФИАС(Знач КодРегиона) - - ОписаниеТипаЧисло = Новый ОписаниеТипов("Число"); - Результат = ПараметрыФИАС(); - Запрос = Новый Запрос(); - - Запрос.УстановитьПараметр("КодСубъектаРФ", КодРегиона); - Запрос.Текст = - "ВЫБРАТЬ - | ЗагруженныеВерсииАдресныхСведений.Версия, - | ЗагруженныеВерсииАдресныхСведений.КодСубъектаРФ КАК Регион - |ИЗ - | РегистрСведений.ЗагруженныеВерсииАдресныхСведений КАК ЗагруженныеВерсииАдресныхСведений - |ГДЕ - | ЗагруженныеВерсииАдресныхСведений.КодСубъектаРФ = &КодСубъектаРФ"; - - Выборка = Запрос.Выполнить().Выбрать(); - Если Выборка.Следующий() Тогда - Результат.Версия = ОписаниеТипаЧисло.ПривестиЗначение(Выборка.Версия); - Результат.Регион = Выборка.Регион; - КонецЕсли; - - Возврат Результат; - -КонецФункции - -Функция ПроверитьНаличиеНовыхДанных(Знач Дескриптор) - - ПараметрыНовыхДанных = ПараметрыВерсииИзФайла(Дескриптор); - Если ПараметрыНовыхДанных.Версия = Неопределено Тогда - Возврат Ложь; - КонецЕсли; - - Если НЕ ЗначениеЗаполнено(ПараметрыНовыхДанных.Регион) Тогда - Возврат Истина; - КонецЕсли; - - ПараметрыТекущихДанных = ОписаниеПоследнейЗагрузкиФИАС(ПараметрыНовыхДанных.Регион); - Если ПараметрыТекущихДанных.Версия = Неопределено - ИЛИ ПараметрыНовыхДанных.Версия > ПараметрыТекущихДанных.Версия Тогда - Возврат Истина; - КонецЕсли; - - Возврат Ложь; - -КонецФункции - -Процедура ОбработатьФИАС(Знач Дескриптор, Знач ПутьКФайлу) - - КаталогФайлов = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ПолучитьИмяВременногоФайла()); - - Попытка - ЧтениеZIP = Новый ЧтениеZipФайла(ПутьКФайлу); - ЧтениеZIP.ИзвлечьВсе(КаталогФайлов, РежимВосстановленияПутейФайловZIP.НеВосстанавливать); - ЧтениеZIP.Закрыть(); - - // Загружаем только то, что передано в файлах. - СубъектыРФ = Новый Массив; - ТипЧисло = Новый ОписаниеТипов("Число"); - ОписаниеФайлов = Новый Массив; - - Для Каждого Файл Из НайтиФайлы(КаталогФайлов, "??.ZIP") Цикл - КодРегиона = ТипЧисло.ПривестиЗначение(Лев(Файл.Имя, 2)); - Если КодРегиона > 0 Тогда - СубъектыРФ.Добавить(КодРегиона); - КонецЕсли; - ОписаниеФайлов.Добавить( Новый Структура("Имя, Хранение", Файл.ПолноеИмя, Файл.ПолноеИмя)); - КонецЦикла; - - Если СубъектыРФ.Количество() > 0 Тогда - - ПараметрыЗагрузки = АдресныйКлассификаторСлужебный.ПараметрыЗагрузкиКлассификатораАдресов(); - ПараметрыЗагрузки.ЗагружатьИсториюАдресов = Истина; - ПараметрыЗагрузки.ЗагружатьПорциями = Истина; - ПараметрыЗагрузки.ОповещатьОПрогрессе = Ложь; - - АдресныйКлассификаторСлужебный.ЗагрузитьКлассификаторАдресов(СубъектыРФ, ОписаниеФайлов, ПараметрыЗагрузки); - - КонецЕсли; - - Исключение - ФайловаяСистема.УдалитьВременныйФайл(КаталогФайлов); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/АдресныйКлассификаторВМоделиСервисаСлужебный/АдресныйКлассификаторВМоделиСервисаСлужебный.mdo b/SSL/src/CommonModules/АдресныйКлассификаторВМоделиСервисаСлужебный/АдресныйКлассификаторВМоделиСервисаСлужебный.mdo deleted file mode 100644 index bb63d06dc..000000000 --- a/SSL/src/CommonModules/АдресныйКлассификаторВМоделиСервисаСлужебный/АдресныйКлассификаторВМоделиСервисаСлужебный.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - АдресныйКлассификаторВМоделиСервисаСлужебный - - ru - Адресный классификатор в модели сервиса служебный - - true - true - true - diff --git a/SSL/src/CommonModules/АдресныйКлассификаторКлиент/Module.bsl b/SSL/src/CommonModules/АдресныйКлассификаторКлиент/Module.bsl index 94989a3d0..8dff05b8d 100644 --- a/SSL/src/CommonModules/АдресныйКлассификаторКлиент/Module.bsl +++ b/SSL/src/CommonModules/АдресныйКлассификаторКлиент/Module.bsl @@ -62,47 +62,6 @@ КонецПроцедуры -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать ПоказатьФормуЗагрузкиАдресногоКлассификатора. -// Проверяет наличие обновлений адресного классификатора на сайте -// для тех субъектов, которые ранее уже загружались. -// -// Параметры: -// ПараметрыВыполнения - ПараметрыВыполненияКоманды, Структура - параметры открытия формы. -// -Процедура ОткрытьФормуПроверкиОбновления(ПараметрыВыполнения) Экспорт - - ПараметрыФормы = Новый Структура; - ПараметрыФормы.Вставить("Режим", "ПроверкаОбновления"); - ОткрытьФормуЗагрузкиАдресногоКлассификатора(ПараметрыФормы, ПараметрыВыполнения); -КонецПроцедуры - -// Устарела. Следует использовать ПоказатьФормуЗагрузкиАдресногоКлассификатора. -// Проверяет наличие обновлений адресного классификатора на сайте 1С -// для тех субъектов, которые ранее уже загружались. -// -// Параметры: -// ПараметрыФормы - Структура - не используется, обратная совместимость. -// ПараметрыВыполнения - ПараметрыВыполненияКоманды, Структура - параметры открытия формы. -// ОповещениеОЗакрытие - ОписаниеОповещения - оповещение, которое вызывается при закрытие формы загрузки адресного классификатора. -// -Процедура ОткрытьФормуЗагрузкиАдресногоКлассификатора(ПараметрыФормы, ПараметрыВыполнения, ОповещениеОЗакрытие = Неопределено) Экспорт - - ПараметрыВыполненияФормы = Новый Структура("Уникальность, Окно, НавигационнаяСсылка, Источник", Ложь); - Если ТипЗнч(ПараметрыВыполнения) = Тип("Структура") Тогда - ПараметрыВыполненияФормы = Новый Структура("Уникальность, Окно, НавигационнаяСсылка, Источник", Ложь); - ЗаполнитьЗначенияСвойств(ПараметрыВыполненияФормы, ПараметрыВыполнения); - КонецЕсли; - - ОткрытьФорму("РегистрСведений.АдресныеОбъекты.Форма.ЗагрузкаАдресногоКлассификатора", ПараметрыВыполнения, - ПараметрыВыполненияФормы.Источник, ПараметрыВыполненияФормы.Уникальность, - ПараметрыВыполненияФормы.Окно, ПараметрыВыполненияФормы.НавигационнаяСсылка, ОповещениеОЗакрытие); - -КонецПроцедуры - -#КонецОбласти - #КонецОбласти #Область СлужебныйПрограммныйИнтерфейс @@ -127,7 +86,7 @@ // Вызывает диалог выбора каталога. // // Параметры: -// Форма - УправляемаяФорма - вызывающий объект. +// Форма - ФормаКлиентскогоПриложения - вызывающий объект. // ПутьКДанным - Строка - полное имя реквизита формы, содержащего текущее значение каталога. // Например. // "РабочийКаталог" или "Объект.КаталогИзображений". diff --git a/SSL/src/CommonModules/АдресныйКлассификаторПовтИсп/Module.bsl b/SSL/src/CommonModules/АдресныйКлассификаторПовтИсп/Module.bsl index 0c0ce7fca..fd0292116 100644 --- a/SSL/src/CommonModules/АдресныйКлассификаторПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/АдресныйКлассификаторПовтИсп/Module.bsl @@ -117,26 +117,34 @@ Результат.Вставить("КлассификаторДоступен", КлассификаторДоступен); ИспользоватьЗагруженные = Ложь; + ЕстьЗагруженныеСведения = Ложь; СведенияОЗагрузкеСубъектовРФ = АдресныйКлассификаторСлужебный.СведенияОЗагрузкеСубъектовРФ(); Для каждого СведенияОбСубъектеРФ Из СведенияОЗагрузкеСубъектовРФ Цикл - Сведения = Новый Структура(); - Если КлассификаторДоступен Тогда - Сведения.Вставить("ИспользоватьЗагруженные", СведенияОбСубъектеРФ.Загружено И НЕ СведенияОбСубъектеРФ.Устарело); - Иначе - Сведения.Вставить("ИспользоватьЗагруженные", СведенияОбСубъектеРФ.Загружено); + ЗагруженныеСведенияРегионаАктуальны = СведенияОбСубъектеРФ.Загружено; + + Если КлассификаторДоступен И СведенияОбСубъектеРФ.Устарело = Истина Тогда + ЗагруженныеСведенияРегионаАктуальны = Ложь; КонецЕсли; - Если НЕ ИспользоватьЗагруженные И Сведения.ИспользоватьЗагруженные Тогда + Если СведенияОбСубъектеРФ.Загружено Тогда + ЕстьЗагруженныеСведения = Истина; + КонецЕсли; + + Если ЗагруженныеСведенияРегионаАктуальны Тогда ИспользоватьЗагруженные = Истина; КонецЕсли; + + Сведения = Новый Структура(); + Сведения.Вставить("ИспользоватьЗагруженные", ЗагруженныеСведенияРегионаАктуальны); Сведения.Вставить("ДатаЗагрузки", СведенияОбСубъектеРФ.ДатаЗагрузки); Результат.Вставить(СведенияОбСубъектеРФ.КодСубъектаРФ, Сведения); КонецЦикла; Результат.Вставить("ИспользоватьЗагруженные", ИспользоватьЗагруженные); + Результат.Вставить("ЕстьЗагруженныеСведения", ЕстьЗагруженныеСведения); Возврат Новый ФиксированноеСоответствие(Результат); diff --git a/SSL/src/CommonModules/АдресныйКлассификаторСлужебный/Module.bsl b/SSL/src/CommonModules/АдресныйКлассификаторСлужебный/Module.bsl index aa7e5a5d3..ebe30a942 100644 --- a/SSL/src/CommonModules/АдресныйКлассификаторСлужебный/Module.bsl +++ b/SSL/src/CommonModules/АдресныйКлассификаторСлужебный/Module.bsl @@ -19,6 +19,10 @@ Возврат АдресныйКлассификаторПовтИсп.СведенияОЗагрузкеСубъектовРФ(); КонецФункции +Функция ЕстьПравоДобавлениеИзменениеАдресныхСведений() Экспорт + Возврат ПравоДоступа("Изменение", Метаданные.РегистрыСведений.АдресныеОбъекты); +КонецФункции + // Проверка доступности поставщика - локальной базы или сервиса. // // Возвращаемое значение: @@ -643,7 +647,7 @@ Для каждого СведенияОДоме Из РезультатВебСервис.Данные Цикл - ОписаниеДома = ОписаниеДомаИЗемельногоУчастка(); + ОписаниеДома = ОписаниеДома(); Если СведенияОДоме.buildings.Количество() > 0 Тогда Для каждого СведенияОСтроении Из СведенияОДоме.buildings Цикл Если СтрСравнить(СведенияОСтроении.Type, "Корпус") = 0 Тогда @@ -763,7 +767,8 @@ КонецЕсли; Если ВариантыЗемельныхУчастков.Количество() = 0 И ЗагруженныеАдресныеСведения["КлассификаторДоступен"] = Истина Тогда - ТекстGETЗапроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("select?parentId=%1&limit=%2&level=75", + + ТекстGETЗапроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("selectStead?parentId=%1&limit=%2", Строка(ИдентификаторАдресногоОбъекта), Формат(ПорцияПриПоиске, "ЧГ=0")); Если ЗначениеЗаполнено(СтрокаПоиска) Тогда ТекстGETЗапроса = ТекстGETЗапроса + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("&text=%1", @@ -780,23 +785,30 @@ Для каждого СведенияОДоме Из РезультатВебСервис.Данные Цикл - ОписаниеУчастка = ОписаниеДомаИЗемельногоУчастка(); + ОписаниеДома = ОписаниеДома(); + Если СведенияОДоме.buildings.Количество() > 0 Тогда + Для каждого СведенияОСтроении Из СведенияОДоме.buildings Цикл + Если СтрСравнить(СведенияОСтроении.Type, "Корпус") = 0 Тогда + ОписаниеДома.Корпус= СведенияОСтроении.Number; + Иначе + ОписаниеДома.НазваниеСтроения = СведенияОСтроении.Type; + ОписаниеДома.Строение = СведенияОСтроении.Number; + КонецЕсли; + КонецЦикла; + КонецЕсли; - ОписаниеУчастка.Идентификатор = СведенияОДоме.id; - ОписаниеУчастка.Дом = СведенияОДоме.steadNumber; - ОписаниеУчастка.Индекс = Формат(СведенияОДоме.ZipCode, "ЧГ=0"); - ОписаниеУчастка.ОКТМО = Формат(СведенияОДоме.oktmo, "ЧГ=0"); - ОписаниеУчастка.ОКАТО = Формат(СведенияОДоме.okato, "ЧГ=0"); - ОписаниеУчастка.КодИФНСФЛ = Формат(СведенияОДоме.ifnsFlCode, "ЧГ=0"); - ОписаниеУчастка.КодИФНСЮЛ = Формат(СведенияОДоме.ifnsUlCode, "ЧГ=0"); - ОписаниеУчастка.КодУчасткаИФНСФЛ = Формат(СведенияОДоме.ifnsFlAreaCode, "ЧГ=0"); - ОписаниеУчастка.КодУчасткаИФНСЮЛ = Формат(СведенияОДоме.ifnsUlAreaCode, "ЧГ=0"); - - НовыйУчасток = ВариантыЗемельныхУчастков.Добавить(); - НовыйУчасток.Значение = ОписаниеУчастка; - НовыйУчасток.Представление = СведенияОДоме.steadNumber; - НовыйУчасток.Идентификатор = СведенияОДоме.id; + ОписаниеДома.Идентификатор = СведенияОДоме.id; + ОписаниеДома.Дом = СведенияОДоме.number; + ОписаниеДома.НазваниеВладения = СведенияОДоме.type; + ОписаниеДома.Индекс = Формат(СведенияОДоме.ZipCode, "ЧГ=0"); + ОписаниеДома.ОКТМО = Формат(СведенияОДоме.oktmo, "ЧГ=0"); + ОписаниеДома.ОКАТО = Формат(СведенияОДоме.okato, "ЧГ=0"); + ОписаниеДома.КодИФНСФЛ = Формат(СведенияОДоме.ifnsFlCode, "ЧГ=0"); + ОписаниеДома.КодИФНСЮЛ = Формат(СведенияОДоме.ifnsUlCode, "ЧГ=0"); + ОписаниеДома.КодУчасткаИФНСФЛ = Формат(СведенияОДоме.ifnsFlAreaCode, "ЧГ=0"); + ОписаниеДома.КодУчасткаИФНСЮЛ = Формат(СведенияОДоме.ifnsUlAreaCode, "ЧГ=0"); + ДобавитьИнформациюОДоме(ВариантыЗемельныхУчастков, ОписаниеДома, НаименованиеЗданийИСтроений, СтрокаПоиска); КонецЦикла; КонецЕсли; @@ -1348,8 +1360,8 @@ | Классификатор.Наименование + "" "" + Классификатор.Сокращение КАК Представление, | Классификатор.КодСубъектаРФ КАК КодСубъектаРФ, | ЗагруженныеВерсииАдресныхСведений.Версия КАК Версия, - | ЗагруженныеВерсииАдресныхСведений.ДатаВерсии КАК ДатаВерсии, - | ЗагруженныеВерсииАдресныхСведений.ДатаЗагрузки КАК ДатаЗагрузки, + | ЕСТЬNULL(ЗагруженныеВерсииАдресныхСведений.ДатаВерсии, ДАТАВРЕМЯ(1, 1, 1, 1, 1, 1)) КАК ДатаВерсии, + | ЕСТЬNULL(ЗагруженныеВерсииАдресныхСведений.ДатаЗагрузки, ДАТАВРЕМЯ(1, 1, 1, 1, 1, 1)) КАК ДатаЗагрузки, | АдресныеОбъекты.Идентификатор КАК Идентификатор, | НЕ ЗагруженныеВерсииАдресныхСведений.Версия ЕСТЬ NULL КАК Загружено, | ДОБАВИТЬКДАТЕ(ЗагруженныеВерсииАдресныхСведений.ДатаЗагрузки, МЕСЯЦ, 1) < &ТекущаяДата КАК Устарело @@ -1358,7 +1370,7 @@ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗагруженныеВерсииАдресныхСведений КАК ЗагруженныеВерсииАдресныхСведений | ПО (Классификатор.КодСубъектаРФ = ЗагруженныеВерсииАдресныхСведений.КодСубъектаРФ) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты - | ПО АдресныеОбъекты.КодСубъектаРФ = Классификатор.КодСубъектаРФ + | ПО АдресныеОбъекты.КодСубъектаРФ = Классификатор.КодСубъектаРФ |ГДЕ | АдресныеОбъекты.Уровень = 1 |УПОРЯДОЧИТЬ ПО @@ -1393,93 +1405,6 @@ Возврат ЗагруженныеСведения; КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Загрузка адресного классификатора. - -// Загрузка всех данных классификатора адресов. -// -// Параметры: -// КодыСубъектовРФ - Массив - Содержит числовые коды регионов-субъектов для загрузки. -// -// ОписаниеФайлов - Строка, Массив - Каталог на сервере, в котором находятся файлы данных. Ожидается, что имена -// файлов будут в верхнем регистре. -// Массив элементов типа ОписаниеПередаваемогоФайла или структур с полями. -// * Имя - Строка - Имя или полное имя передаваемого файла. -// * Хранение - ДвоичныеДанные, Строка - Описание хранения файла. Строка -// может быть путем на файловой системе или адресом во временном -// хранилище. -// ОповещатьОПрогрессе - Булево - Флаг оповещения о прогрессе (см ДлительныеОперации.СообщитьПрогресс). -// -Процедура ЗагрузитьКлассификаторАдресов(КодыСубъектовРФ, ОписаниеФайлов, ПараметрыЗагрузки) Экспорт - - ДатаЗагрузки = ТекущаяУниверсальнаяДата(); - - Если ТипЗнч(ОписаниеФайлов) = Тип("Строка") Тогда - // Файлы уже подготовлены - КаталогФайлов = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ОписаниеФайлов); - Иначе - КаталогФайлов = ИзвлечьФайлыВКаталог(ОписаниеФайлов); - КонецЕсли; - - Попытка - - СлужебныеАдресныеСведения = СлужебныеАдресныеСведения(КаталогФайлов); - ОбновитьСлужебныеАдресныеСведения(СлужебныеАдресныеСведения); - - // 2. Все заказанные субъекты - ВсегоСубъектов = КодыСубъектовРФ.Количество(); - НомерПоПорядку = 0; - - Для Каждого СубъектРФ Из КодыСубъектовРФ Цикл - - НаименованиеРегиона = АдресныйКлассификатор.НаименованиеРегионаПоКоду(СубъектРФ); - НомерПоПорядку = НомерПоПорядку + 1; - - Если ПараметрыЗагрузки.ОповещатьОПрогрессе Тогда - - ОсталосьДляЗагрузки = ВсегоСубъектов - НомерПоПорядку; - ОповеститьОПрогрессе(НаименованиеРегиона, СубъектРФ, ОсталосьДляЗагрузки); - - КонецЕсли; - - Попытка - - ЗагрузитьАдресныеСведенияПоРегиону(СубъектРФ, КаталогФайлов, ПараметрыЗагрузки); - - // Ставим версию данных загрузки региона. - УстановитьИнформациюОЗагрузкеВерсии(СубъектРФ, СлужебныеАдресныеСведения.Версия, СлужебныеАдресныеСведения.ДатаВерсии, ДатаЗагрузки); - - Исключение - - // Во время загрузки возникла ошибка, очищаем частично загруженные данные. - КодыСубъектаРФ = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СубъектРФ); - - ОчиститьКлассификаторАдресов(КодыСубъектаРФ); - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка, - ,, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не удалось загрузить адресные сведения субъекта РФ: %1 %2 - |по причине: %3'"), СубъектРФ, НаименованиеРегиона, ОписаниеОшибки())); - ВызватьИсключение; - КонецПопытки; - - КонецЦикла; - - // 4. Загружаем сокращения адресов. - // Эти данные будут нужны при разборах адреса из строки. - ОбновитьАдресныеСокращения(КаталогФайлов); - - // 5. Очищаем временный каталог. - ФайловаяСистема.УдалитьВременныйФайл(КаталогФайлов); - - Исключение - - // Очищаем временный каталог. - ФайловаяСистема.УдалитьВременныйФайл(КаталогФайлов); - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. @@ -1620,10 +1545,173 @@ КонецПроцедуры +#Область АдресныйКлассификаторВМоделиСервиса + +//////////////////////////////////////////////////////////////////////////////// +// Обработчики событий подсистем конфигурации. + +// См. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных. +Процедура ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики) Экспорт + + ЗарегистрироватьОбработчикиПоставляемыхДанных(Обработчики); + +КонецПроцедуры + +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. +Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт + + Типы.Добавить(Метаданные.Константы.ИсточникДанныхАдресногоКлассификатора); + + МетаданныеРегистров = Метаданные.РегистрыСведений; + + Типы.Добавить(МетаданныеРегистров.АдресныеОбъекты); + Типы.Добавить(МетаданныеРегистров.ДомаЗданияСтроения); + Типы.Добавить(МетаданныеРегистров.ДополнительныеАдресныеСведения); + Типы.Добавить(МетаданныеРегистров.ЗагруженныеВерсииАдресныхСведений); + Типы.Добавить(МетаданныеРегистров.ИсторияАдресныхОбъектов); + Типы.Добавить(МетаданныеРегистров.ОриентирыАдресныхОбъектов); + Типы.Добавить(МетаданныеРегистров.ПричиныИзмененияАдресныхСведений); + Типы.Добавить(МетаданныеРегистров.СлужебныеАдресныеСведения); + Типы.Добавить(МетаданныеРегистров.УровниСокращенийАдресныхСведений); + +КонецПроцедуры + +// Вызывается при получении уведомления о новых данных. +// В теле следует проверить, необходимы ли эти данные приложению, +// и если да - установить флажок Загружать. +// +// Параметры: +// Дескриптор - ОбъектXDTO - Дескриптор. +// Загружать - Булево - Истина, если загружать, Ложь - иначе. +// +Процедура ДоступныНовыеДанные(Знач Дескриптор, Загружать) Экспорт + + Если Дескриптор.DataType = "ФИАС30" Тогда + + Загружать = ПроверитьНаличиеНовыхДанных(Дескриптор); + + КонецЕсли; + +КонецПроцедуры + +// Вызывается после вызова ДоступныНовыеДанные, позволяет разобрать данные. +// +// Параметры: +// Дескриптор - ОбъектXDTO - Дескриптор. +// ПутьКФайлу - Строка - полное имя извлеченного файла. Файл будет автоматически удален +// после завершения процедуры. Если в менеджере сервиса не был +// указан файл - значение аргумента равно Неопределено. +// +Процедура ОбработатьНовыеДанные(Знач Дескриптор, Знач ПутьКФайлу) Экспорт + + Если Дескриптор.DataType = "ФИАС30" Тогда + ОбработатьФИАС(Дескриптор, ПутьКФайлу); + КонецЕсли; + +КонецПроцедуры + +// Вызывается при отмене обработки данных в случае сбоя. +// +// Параметры: +// Дескриптор - ОбъектXDTO - Дескриптор. +// +Процедура ОбработкаДанныхОтменена(Знач Дескриптор) Экспорт + +КонецПроцедуры + +#КонецОбласти + #КонецОбласти #Область СлужебныеПроцедурыИФункции +//////////////////////////////////////////////////////////////////////////////// +// Загрузка адресного классификатора. + +// Загрузка всех данных классификатора адресов. +// +// Параметры: +// КодыСубъектовРФ - Массив - Содержит числовые коды регионов-субъектов для загрузки. +// +// ОписаниеФайлов - Строка, Массив - Каталог на сервере, в котором находятся файлы данных. Ожидается, что имена +// файлов будут в верхнем регистре. +// Массив элементов типа ОписаниеПередаваемогоФайла или структур с полями. +// * Имя - Строка - Имя или полное имя передаваемого файла. +// * Хранение - ДвоичныеДанные, Строка - Описание хранения файла. Строка +// может быть путем на файловой системе или адресом во временном +// хранилище. +// ОповещатьОПрогрессе - Булево - Флаг оповещения о прогрессе (см ДлительныеОперации.СообщитьПрогресс). +// +Процедура ЗагрузитьКлассификаторАдресов(КодыСубъектовРФ, ОписаниеФайлов, ПараметрыЗагрузки) + + ДатаЗагрузки = ТекущаяУниверсальнаяДата(); + + Если ТипЗнч(ОписаниеФайлов) = Тип("Строка") Тогда + // Файлы уже подготовлены + КаталогФайлов = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ОписаниеФайлов); + Иначе + КаталогФайлов = ИзвлечьФайлыВКаталог(ОписаниеФайлов); + КонецЕсли; + + Попытка + + СлужебныеАдресныеСведения = СлужебныеАдресныеСведения(КаталогФайлов); + ОбновитьСлужебныеАдресныеСведения(СлужебныеАдресныеСведения); + + // 2. Все заказанные субъекты + ВсегоСубъектов = КодыСубъектовРФ.Количество(); + НомерПоПорядку = 0; + + Для Каждого СубъектРФ Из КодыСубъектовРФ Цикл + + НаименованиеРегиона = АдресныйКлассификатор.НаименованиеРегионаПоКоду(СубъектРФ); + НомерПоПорядку = НомерПоПорядку + 1; + + Если ПараметрыЗагрузки.ОповещатьОПрогрессе Тогда + + ОсталосьДляЗагрузки = ВсегоСубъектов - НомерПоПорядку; + ОповеститьОПрогрессе(НаименованиеРегиона, СубъектРФ, ОсталосьДляЗагрузки); + + КонецЕсли; + + Попытка + + ЗагрузитьАдресныеСведенияПоРегиону(СубъектРФ, КаталогФайлов, ПараметрыЗагрузки); + + // Ставим версию данных загрузки региона. + УстановитьИнформациюОЗагрузкеВерсии(СубъектРФ, СлужебныеАдресныеСведения.Версия, СлужебныеАдресныеСведения.ДатаВерсии, ДатаЗагрузки); + + Исключение + + // Во время загрузки возникла ошибка, очищаем частично загруженные данные. + КодыСубъектаРФ = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СубъектРФ); + + ОчиститьКлассификаторАдресов(КодыСубъектаРФ); + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка, + ,, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не удалось загрузить адресные сведения субъекта РФ: %1 %2 + |по причине: %3'"), СубъектРФ, НаименованиеРегиона, ОписаниеОшибки())); + ВызватьИсключение; + КонецПопытки; + + КонецЦикла; + + // 4. Загружаем сокращения адресов. + // Эти данные будут нужны при разборах адреса из строки. + ОбновитьАдресныеСокращения(КаталогФайлов); + + // 5. Очищаем временный каталог. + ФайловаяСистема.УдалитьВременныйФайл(КаталогФайлов); + + Исключение + + // Очищаем временный каталог. + ФайловаяСистема.УдалитьВременныйФайл(КаталогФайлов); + ВызватьИсключение; + + КонецПопытки; + +КонецПроцедуры + // Возвращает настройку текущего источника данных адресов. // // Возвращаемое значение: @@ -3595,10 +3683,6 @@ Результат.Вставить("ifnsFlCode", Адрес.ifnsFLCode); Результат.Вставить("ifnsUlAreaCode", Адрес.ifnsULAreaCode); Результат.Вставить("ifnsUlCode", Адрес.ifnsULCode); - Результат.Вставить("steadNumber", Адрес.stead); - Если ЗначениеЗаполнено(Адрес.stead) Тогда - Результат.steadType = ТипАдресногоОбъектаУчасток(); - КонецЕсли; Результат.Вставить("apartments", Новый Массив); Для Каждого Дом Из Адрес.apartments Цикл @@ -3620,12 +3704,6 @@ КонецФункции -Функция ТипАдресногоОбъектаУчасток() - - Возврат "участок"; - -КонецФункции - Функция НовыйАдресДляДляПередачиВСервис() Адрес = Новый Структура; @@ -3668,9 +3746,6 @@ Адрес.Вставить("street"); Адрес.Вставить("streetId"); Адрес.Вставить("streetType"); - Адрес.Вставить("steadNumber"); - Адрес.Вставить("steadId"); - Адрес.Вставить("steadType"); Адрес.Вставить("territory"); Адрес.Вставить("territoryId"); Адрес.Вставить("territoryType"); @@ -3713,11 +3788,6 @@ Результат.houseType = ТРег(Результат.houseType); - // Зависит от версии веб-сервиса - Если Адрес.Свойство("steadNumber") Тогда - Результат.stead = Строка(Адрес.steadNumber); - КонецЕсли; - Для каждого Строение Из Результат.buildings Цикл Строение.type = ТРег(Строение.type); КонецЦикла; @@ -3952,7 +4022,7 @@ ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "СубъектРФ", НСтр("ru = 'Адрес не может быть проверен, так как он введен в свободной форме'") ); Возврат Результат; - КонецЕсли; + КонецЕсли; // Субъект должен быть всегда Если ПустаяСтрока(Адрес.Area) Тогда @@ -5010,7 +5080,7 @@ Для каждого Дом Из МассивДомов Цикл НомерДома = СтрРазделить(Сред(Дом, 25), "~", Истина); - ОписаниеДома = ОписаниеДомаИЗемельногоУчастка(); + ОписаниеДома = ОписаниеДома(); ОписаниеДома.Идентификатор = УникальныйИдентификаторИзСтроки64(Лев(Дом, 24)); Если ЗначениеЗаполнено(НомерДома[0]) Тогда ОписаниеДома.ВидВладения = ТипЧисло.ПривестиЗначение(Лев(НомерДома[0], 1)); @@ -5064,7 +5134,7 @@ КонецПроцедуры -Функция ОписаниеДомаИЗемельногоУчастка() +Функция ОписаниеДома() ОписаниеДома = Новый Структура; ОписаниеДома.Вставить("ДомЧислом"); @@ -5122,9 +5192,9 @@ Если ЗначениеЗаполнено(ОписаниеДома.Корпус) Тогда Если ПустаяСтрока(СтрокаПоиска) Или Не СтрНачинаетсяС(ОписаниеДома.Корпус, СтрокаПоиска) Тогда - ТекстПроСтроения = "корпус" + " " + ОписаниеДома.Корпус; + ТекстПроСтроения = "корпус" + " " + ОписаниеДома.Корпус; Иначе - ТекстПроСтроения = Новый ФорматированнаяСтрока("корпус" + " ", + ТекстПроСтроения = Новый ФорматированнаяСтрока( "корпус" + " ", Новый ФорматированнаяСтрока(СтрокаПоиска, Новый Шрифт(,, Истина) , ЦветаСтиля.РезультатУспехЦвет), Сред(ОписаниеДома.Корпус, СтрДлина(СтрокаПоиска) + 1)); КонецЕсли; @@ -7538,7 +7608,7 @@ Функция ОписаниеЗемельногоУчастка() ОписаниеДома = Новый Структура; - ОписаниеДома.Вставить("Дом", ""); + ОписаниеДома.Вставить("Номер", ""); ОписаниеДома.Вставить("Идентификатор"); ОписаниеДома.Вставить("Индекс", ""); ОписаниеДома.Вставить("ОКТМО", ""); @@ -7565,7 +7635,7 @@ НомерУчастка = СтрРазделить(Сред(Участок, 25), "~", Истина); ОписаниеУчастка = ОписаниеЗемельногоУчастка(); - ОписаниеУчастка.Дом = НомерУчастка[0]; + ОписаниеУчастка.Номер = НомерУчастка[0]; ОписаниеУчастка.Идентификатор = УникальныйИдентификаторИзСтроки64(Лев(Участок, 24)); ОписаниеУчастка.Индекс = Формат(Запись.ПочтовыйИндекс, "ЧГ=0"); @@ -7582,7 +7652,7 @@ ЗемельныйУчасток = ВариантыЗемельныхУчастков.Добавить(); ЗемельныйУчасток.Представление = НомерУчастка[0]; ЗемельныйУчасток.Значение = ОписаниеУчастка; - ИначеЕсли СтрНачинаетсяС(ОписаниеУчастка.Дом, СтрокаПоиска) Тогда + ИначеЕсли СтрНачинаетсяС(ОписаниеУчастка.Номер, СтрокаПоиска) Тогда ЗемельныйУчасток = ВариантыЗемельныхУчастков.Добавить(); ЗемельныйУчасток.Представление = НомерУчастка[0]; ЗемельныйУчасток.Значение = ОписаниеУчастка; @@ -7650,4 +7720,138 @@ #КонецОбласти +#Область АдресныйКлассификаторВМоделиСервиса + +// Регистрирует обработчики поставляемых данных за день и за все время. +// +// Параметры: +// Обработчики - ТаблицаЗначений - таблица для добавления обработчиков. Содержит колонки. +// * ВидДанных - Строка - код вида данных, обрабатываемый обработчиком. +// * КодОбработчика - Строка - будет использоваться при восстановлении обработки данных после сбоя. +// * Обработчик - ОбщийМодуль - модуль, содержащий экспортные процедуры: +// ДоступныНовыеДанные(Дескриптор, Загружать) Экспорт +// ОбработатьНовыеДанные(Дескриптор, ПутьКФайлу) Экспорт +// ОбработкаДанныхОтменена(Дескриптор) Экспорт +// +Процедура ЗарегистрироватьОбработчикиПоставляемыхДанных(Знач Обработчики) + + Обработчик = Обработчики.Добавить(); + Обработчик.ВидДанных = "ФИАС30"; + Обработчик.КодОбработчика = "ФИАС30"; + Обработчик.Обработчик = АдресныйКлассификаторСлужебный; + +КонецПроцедуры + +Функция ПараметрыФИАС() + + Возврат Новый Структура("Версия, Регион"); + +КонецФункции + +Функция ПараметрыВерсииИзФайла(Знач Дескриптор) + + ПараметрыВерсии = ПараметрыФИАС(); + + ОписаниеТипаЧисло = Новый ОписаниеТипов("Число"); + Для Каждого Характеристика Из Дескриптор.Properties.Property Цикл + Если Характеристика.Code = "Регион" Тогда + ПараметрыВерсии.Регион = ОписаниеТипаЧисло.ПривестиЗначение(Характеристика.Value); + ИначеЕсли Характеристика.Code = "Версия" Тогда + ПараметрыВерсии.Версия = ОписаниеТипаЧисло.ПривестиЗначение(Характеристика.Value); + КонецЕсли; + КонецЦикла; + + Возврат ПараметрыВерсии; + +КонецФункции + +Функция ОписаниеПоследнейЗагрузкиФИАС(Знач КодРегиона) + + ОписаниеТипаЧисло = Новый ОписаниеТипов("Число"); + Результат = ПараметрыФИАС(); + Запрос = Новый Запрос(); + + Запрос.УстановитьПараметр("КодСубъектаРФ", КодРегиона); + Запрос.Текст = + "ВЫБРАТЬ + | ЗагруженныеВерсииАдресныхСведений.Версия, + | ЗагруженныеВерсииАдресныхСведений.КодСубъектаРФ КАК Регион + |ИЗ + | РегистрСведений.ЗагруженныеВерсииАдресныхСведений КАК ЗагруженныеВерсииАдресныхСведений + |ГДЕ + | ЗагруженныеВерсииАдресныхСведений.КодСубъектаРФ = &КодСубъектаРФ"; + + Выборка = Запрос.Выполнить().Выбрать(); + Если Выборка.Следующий() Тогда + Результат.Версия = ОписаниеТипаЧисло.ПривестиЗначение(Выборка.Версия); + Результат.Регион = Выборка.Регион; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ПроверитьНаличиеНовыхДанных(Знач Дескриптор) + + ПараметрыНовыхДанных = ПараметрыВерсииИзФайла(Дескриптор); + Если ПараметрыНовыхДанных.Версия = Неопределено Тогда + Возврат Ложь; + КонецЕсли; + + Если НЕ ЗначениеЗаполнено(ПараметрыНовыхДанных.Регион) Тогда + Возврат Истина; + КонецЕсли; + + ПараметрыТекущихДанных = ОписаниеПоследнейЗагрузкиФИАС(ПараметрыНовыхДанных.Регион); + Если ПараметрыТекущихДанных.Версия = Неопределено + ИЛИ ПараметрыНовыхДанных.Версия > ПараметрыТекущихДанных.Версия Тогда + Возврат Истина; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +Процедура ОбработатьФИАС(Знач Дескриптор, Знач ПутьКФайлу) + + КаталогФайлов = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ПолучитьИмяВременногоФайла()); + + Попытка + ЧтениеZIP = Новый ЧтениеZipФайла(ПутьКФайлу); + ЧтениеZIP.ИзвлечьВсе(КаталогФайлов, РежимВосстановленияПутейФайловZIP.НеВосстанавливать); + ЧтениеZIP.Закрыть(); + + // Загружаем только то, что передано в файлах. + СубъектыРФ = Новый Массив; + ТипЧисло = Новый ОписаниеТипов("Число"); + ОписаниеФайлов = Новый Массив; + + Для Каждого Файл Из НайтиФайлы(КаталогФайлов, "??.ZIP") Цикл + КодРегиона = ТипЧисло.ПривестиЗначение(Лев(Файл.Имя, 2)); + Если КодРегиона > 0 Тогда + СубъектыРФ.Добавить(КодРегиона); + КонецЕсли; + ОписаниеФайлов.Добавить( Новый Структура("Имя, Хранение", Файл.ПолноеИмя, Файл.ПолноеИмя)); + КонецЦикла; + + Если СубъектыРФ.Количество() > 0 Тогда + + ПараметрыЗагрузки = ПараметрыЗагрузкиКлассификатораАдресов(); + ПараметрыЗагрузки.ЗагружатьИсториюАдресов = Истина; + ПараметрыЗагрузки.ЗагружатьПорциями = Истина; + ПараметрыЗагрузки.ОповещатьОПрогрессе = Ложь; + + ЗагрузитьКлассификаторАдресов(СубъектыРФ, ОписаниеФайлов, ПараметрыЗагрузки); + + КонецЕсли; + + Исключение + ФайловаяСистема.УдалитьВременныйФайл(КаталогФайлов); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +#КонецОбласти + #КонецОбласти diff --git a/SSL/src/CommonModules/АнализЖурналаРегистрацииКлиент/Module.bsl b/SSL/src/CommonModules/АнализЖурналаРегистрацииКлиент/Module.bsl index de4c672b4..e88a35a01 100644 --- a/SSL/src/CommonModules/АнализЖурналаРегистрацииКлиент/Module.bsl +++ b/SSL/src/CommonModules/АнализЖурналаРегистрацииКлиент/Module.bsl @@ -14,7 +14,7 @@ // Обработчик расшифровки табличного документа формы отчета. // // Параметры: -// ФормаОтчета - УправляемаяФорма - Форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения - Форма отчета. // Элемент - ПолеФормы - Табличный документ. // Расшифровка - Передается из параметров обработчика "как есть". // СтандартнаяОбработка - Передается из параметров обработчика "как есть". @@ -69,7 +69,7 @@ // Обработчик дополнительной расшифровки (меню табличного документа формы отчета). // // Параметры: -// ФормаОтчета - УправляемаяФорма - Форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения - Форма отчета. // Элемент - ПолеФормы - Табличный документ. // Расшифровка - Передается из параметров обработчика "как есть". // СтандартнаяОбработка - Передается из параметров обработчика "как есть". diff --git a/SSL/src/CommonModules/Анкетирование/Module.bsl b/SSL/src/CommonModules/Анкетирование/Module.bsl index cd67ecbfe..3d58ca2dc 100644 --- a/SSL/src/CommonModules/Анкетирование/Module.bsl +++ b/SSL/src/CommonModules/Анкетирование/Module.bsl @@ -44,10 +44,6 @@ // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.2.7"; - Обработчик.Процедура = "Анкетирование.ИнвертироватьПризнакВключенияВАрхивАнкет"; - Обработчик = Обработчики.Добавить(); Обработчик.Версия = "2.3.5.6"; Обработчик.Идентификатор = Новый УникальныйИдентификатор("cfda47d2-f61f-4c23-84a6-80c77b52e6e5"); @@ -103,34 +99,6 @@ #Область СлужебныеПроцедурыИФункции -// Инвертирует значение реквизита НеПоказыватьВАрхивеАнкет в соответствии с новым названием ПоказыватьВАрхивеАнкет. -Процедура ИнвертироватьПризнакВключенияВАрхивАнкет() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ - | НазначениеОпросов.Ссылка, - | НазначениеОпросов.ПоказыватьВАрхивеАнкет - |ИЗ - | Документ.НазначениеОпросов КАК НазначениеОпросов - |ГДЕ - | НазначениеОпросов.Проведен"; - - Результат = Запрос.Выполнить(); - Если Результат.Пустой() Тогда - Возврат; - КонецЕсли; - - Выборка = Результат.Выбрать(); - Пока Выборка.Следующий() Цикл - - ДокументОбъект = Выборка.Ссылка.ПолучитьОбъект(); - ДокументОбъект.ПоказыватьВАрхивеАнкет = НЕ Выборка.ПоказыватьВАрхивеАнкет; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ДокументОбъект); - - КонецЦикла; - -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // Заполнение дерева анкеты @@ -337,7 +305,7 @@ // Заполняет дерево шаблона анкеты. // // Параметры: -// Форма - УправляемаяФорма - форма, для которой заполняется дерево. +// Форма - ФормаКлиентскогоПриложения - форма, для которой заполняется дерево. // ИмяДереваАнкеты - Строка - имя реквизита формы, в котором будет содержаться дерево анкеты. // ШаблонАнкеты - СправочникСсылка.ШаблоныАнкет - ссылка на шаблон анкеты, согласно которому будет // заполнено дерево. @@ -500,7 +468,7 @@ // Выполняет построение формы, согласно раздела шаблона анкеты. // // Параметры: -// Форма - УправляемаяФорма - форма для которой получается информация. +// Форма - ФормаКлиентскогоПриложения - форма для которой получается информация. // ТекущиеДанныеДеревоРазделов - ДанныеФормыЭлементДерева - текущий раздел, для которого строится форма заполнения. // Процедура ПостроениеФормыЗаполненияПоРазделу(Форма,ТекущиеДанныеДеревоРазделов) Экспорт @@ -817,7 +785,7 @@ // Устанавливает фокус на первом вопросе открывшегося раздела. // // Параметры: -// Форма - УправляемаяФорма - форма для которой выполняется действие. +// Форма - ФормаКлиентскогоПриложения - форма для которой выполняется действие. // Процедура СпозиционироватьсяНаПервомВопросеРаздела(Форма) @@ -1681,7 +1649,7 @@ // реквизиты формы. // // Параметры: -// Форма - УправляемаяФорма - форма для которой получается информация. +// Форма - ФормаКлиентскогоПриложения - форма для которой получается информация. // ШаблонАнкеты - СправочникСсылка.ШаблонАнкеты - шаблон анкеты, по которому получается информация. // Раздел - СправочникСсылка.ВопросыШаблонаАнкеты - раздел анкеты, по которому получается информация. // ПолныйКодРаздела - Строка - Полный код раздела, по которому получается информация. @@ -1868,7 +1836,7 @@ // Формирует таблицу подчинения вопросов. // // Параметры: -// Форма - УправляемаяФорма - форма для которой формируется таблица подчинения. +// Форма - ФормаКлиентскогоПриложения - форма для которой формируется таблица подчинения. // Процедура СформироватьТаблицуПодчиненияВопросов(Форма) Экспорт diff --git a/SSL/src/CommonModules/БанкиСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/БанкиСлужебныйВМоделиСервиса/Module.bsl deleted file mode 100644 index f85ced1d1..000000000 --- a/SSL/src/CommonModules/БанкиСлужебныйВМоделиСервиса/Module.bsl +++ /dev/null @@ -1,91 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. - -// Вызывается при получении уведомления о новых данных. -// В теле следует проверить, необходимы ли эти данные приложению, -// и если да - установить флажок Загружать. -// -// Параметры: -// Дескриптор - ОбъектXDTO - Дескриптор. -// Загружать - Булево - Истина, если загружать, Ложь - иначе. -// -Процедура ДоступныНовыеДанные(Знач Дескриптор, Загружать) Экспорт - - Если Дескриптор.DataType = "БанкиРФ" Тогда - Загружать = Истина; - КонецЕсли; - -КонецПроцедуры - -// Вызывается после вызова ДоступныНовыеДанные, позволяет разобрать данные. -// -// Параметры: -// Дескриптор - ОбъектXDTO - Дескриптор. -// ПутьКФайлу - Строка - полное имя извлеченного файла. Файл будет автоматически удален -// после завершения процедуры. Если в менеджере сервиса не был -// указан файл - значение аргумента равно Неопределено. -// -Процедура ОбработатьНовыеДанные(Знач Дескриптор, Знач ПутьКФайлу) Экспорт - - Если Дескриптор.DataType = "БанкиРФ" И ЗначениеЗаполнено(ПутьКФайлу) Тогда - ИмяОбработки = "ЗагрузкаКлассификатораБанков"; - Если Метаданные.Обработки.Найти(ИмяОбработки) <> Неопределено Тогда - Обработки[ИмяОбработки].ЗагрузитьДанныеИзФайла(ПутьКФайлу); - КонецЕсли; - КонецЕсли; - -КонецПроцедуры - -// Вызывается при отмене обработки данных в случае сбоя. -// -// Параметры: -// Дескриптор - ОбъектXDTO - Дескриптор. -// -Процедура ОбработкаДанныхОтменена(Знач Дескриптор) Экспорт - - // ничего не надо делать. - -КонецПроцедуры - -// См. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных. -Процедура ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики) Экспорт - - ЗарегистрироватьОбработчикиПоставляемыхДанных(Обработчики); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Регистрирует обработчики поставляемых данных. -// -// Параметры: -// Обработчики - ТаблицаЗначений - таблица для добавления обработчиков. Содержит колонки. -// * ВидДанных - Строка - код вида данных, обрабатываемый обработчиком. -// * КодОбработчика - Строка - будет использоваться при восстановлении обработки данных после сбоя. -// * Обработчик - ОбщийМодуль - модуль, содержащий экспортные процедуры: -// ДоступныНовыеДанные(Дескриптор, Загружать) Экспорт -// ОбработатьНовыеДанные(Дескриптор, ПутьКФайлу) Экспорт -// ОбработкаДанныхОтменена(Дескриптор) Экспорт -// -Процедура ЗарегистрироватьОбработчикиПоставляемыхДанных(Знач Обработчики) - - Обработчик = Обработчики.Добавить(); - Обработчик.ВидДанных = "БанкиРФ"; - Обработчик.КодОбработчика = "ЗагрузкаКлассификатораБанковРФ"; - Обработчик.Обработчик = БанкиСлужебныйВМоделиСервиса; - -КонецПроцедуры - -#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиВызовСервера/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиВызовСервера/Module.bsl index 9ee5eebe1..c8c5f6fa7 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиВызовСервера/Module.bsl @@ -485,26 +485,6 @@ КонецФункции -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать БизнесПроцессыИЗадачиСервер.УведомитьИсполнителейОНовыхЗадачах. -// -Процедура УведомитьИсполнителейОНовыхЗадачах() Экспорт - - БизнесПроцессыИЗадачиСервер.УведомитьИсполнителейОНовыхЗадачах(); - -КонецПроцедуры - -// Устарела. Следует использовать БизнесПроцессыИЗадачиСервер.ПроконтролироватьЗадачи. -// -Процедура ПроконтролироватьЗадачи() Экспорт - - БизнесПроцессыИЗадачиСервер.ПроконтролироватьЗадачи(); - -КонецПроцедуры - -#КонецОбласти - #КонецОбласти diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиент/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиент/Module.bsl index 4f30a19d9..1fe0de495 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиент/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиКлиент/Module.bsl @@ -79,7 +79,7 @@ // Предназначена для вызова из формы бизнес-процесса. // // Параметры: -// Форма - УправляемаяФорма - форма бизнес-процесса. +// Форма - ФормаКлиентскогоПриложения - форма бизнес-процесса. // Процедура ОстановитьБизнесПроцессИзФормыОбъекта(Форма) Экспорт Форма.Объект.Состояние = ПредопределенноеЗначение("Перечисление.СостоянияБизнесПроцессов.Остановлен"); @@ -150,7 +150,7 @@ // Предназначена для вызова из формы бизнес-процесса. // // Параметры: -// Форма - УправляемаяФорма - форма бизнес-процесса. +// Форма - ФормаКлиентскогоПриложения - форма бизнес-процесса. // Процедура ПродолжитьБизнесПроцессИзФормыОбъекта(Форма) Экспорт @@ -195,7 +195,7 @@ // Отмечает указанную задачу как принятую к исполнению. // // Параметры: -// Форма - УправляемаяФорма - Форма задачи. +// Форма - ФормаКлиентскогоПриложения - Форма задачи. // ТекущийПользователь - СправочникСсылка.ВнешниеПользователи, СправочникСсылка.Пользователи - ссылка на текущего // пользователя программы. // @@ -248,7 +248,7 @@ // Отмечает указанную задачу как не принятую к исполнению. // // Параметры: -// Форма - УправляемаяФорма - Форма задачи. +// Форма - ФормаКлиентскогоПриложения - Форма задачи. // Процедура ОтменитьПринятиеЗадачиКИсполнению(Форма) Экспорт @@ -268,7 +268,7 @@ // Устанавливает доступность команд принятия к исполнению. // // Параметры: -// Форма - УправляемаяФорма - Форма задачи. +// Форма - ФормаКлиентскогоПриложения - Форма задачи. // Процедура ОбновитьДоступностьКомандПринятияКИсполнению(Форма) Экспорт @@ -322,7 +322,7 @@ // Для вызова из обработчика события формы ОбработкаОповещения. // // Параметры: -// Форма - УправляемаяФорма - Форма выполнения задачи. +// Форма - ФормаКлиентскогоПриложения - Форма выполнения задачи. // ИмяСобытия - Строка - Имя события. // Параметр - Произвольный - Параметр события. // Источник - Произвольный - Источник события. @@ -346,7 +346,7 @@ // Для вызова из обработчика события таблицы формы ПередНачаломДобавления. // // Параметры: -// Форма - УправляемаяФорма - Форма задачи. +// Форма - ФормаКлиентскогоПриложения - Форма задачи. // Элемент - Произвольный - Элементы таблицы формы. // Отказ - Булево - Признак отказа от добавления объекта. Если в теле процедуры-обработчика установить данному // параметру значение Истина, то добавление объекта выполнено не будет. @@ -372,7 +372,7 @@ // Записать и закрыть форму выполнения задачи. // // Параметры: -// Форма - УправляемаяФорма - форма выполнения задачи. +// Форма - ФормаКлиентскогоПриложения - форма выполнения задачи. // ВыполнитьЗадачу - Булево - задача записывается в режиме выполнения. // ПараметрыОповещения - Структура - дополнительные параметры оповещения. // @@ -413,7 +413,7 @@ // Открыть форму для ввода нового задания. // // Параметры: -// ФормаВладелец - УправляемаяФорма - форма, которая должна быть владельцем для открываемой. +// ФормаВладелец - ФормаКлиентскогоПриложения - форма, которая должна быть владельцем для открываемой. // ПараметрыФормы - Структура - параметры открываемой формы. // Процедура СоздатьЗадание(Знач ФормаВладелец = Неопределено, Знач ПараметрыФормы = Неопределено) Экспорт @@ -426,7 +426,7 @@ // // Параметры: // МассивЗадач - Массив - список задач, которые необходимо перенаправить. -// ВладелецФорма - УправляемаяФорма - форма, которая должна быть владельцем для открываемой +// ВладелецФорма - ФормаКлиентскогоПриложения - форма, которая должна быть владельцем для открываемой // формы перенаправления задач. // Процедура ПеренаправитьЗадачи(МассивЗадач, ВладелецФорма) Экспорт @@ -459,7 +459,7 @@ // ЗадачаСсылка - ЗадачаСсылка - Ссылка на задачу. // // Возвращаемое значение: -// УправляемаяФорма - форма дополнительной задачи исполнителя. +// ФормаКлиентскогоПриложения - форма дополнительной задачи исполнителя. // Процедура ОткрытьДопИнформациюОЗадаче(Знач ЗадачаСсылка) Экспорт diff --git a/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl b/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl index 9c35b72f9..489f305eb 100644 --- a/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl +++ b/SSL/src/CommonModules/БизнесПроцессыИЗадачиСервер/Module.bsl @@ -11,7 +11,7 @@ // Инициализирует общие параметры формы выполнения задачи. // // Параметры: -// ФормаЗадачи - УправляемаяФорма - форма выполнения задачи. +// ФормаЗадачи - ФормаКлиентскогоПриложения - форма выполнения задачи. // ЗадачаОбъект - ЗадачаОбъект - объект задачи. // ЭлементГруппаСостояние - ГруппаФормы - группа с информации о состоянии задачи. // ЭлементДатаИсполнения - ПолеФормы - поле с датой исполнения задачи. @@ -824,7 +824,7 @@ ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.УведомлениеИсполнителейОНовыхЗадачах); ОписаниеОшибки = ""; - ВидСообщения = НСтр("ru = 'Бизнес-процессы и задачи. Уведомление о новых задачах.'", ОбщегоНазначения.КодОсновногоЯзыка()); + ВидСообщения = НСтр("ru = 'Бизнес-процессы и задачи.Уведомление о новых задачах'", ОбщегоНазначения.КодОсновногоЯзыка()); Если НЕ СистемнаяУчетнаяЗаписьНастроена(ОписаниеОшибки) Тогда ЗаписьЖурналаРегистрации(ВидСообщения, УровеньЖурналаРегистрации.Ошибка, @@ -874,7 +874,7 @@ ОписаниеОшибки = ""; Если НЕ СистемнаяУчетнаяЗаписьНастроена(ОписаниеОшибки) Тогда - ВидСообщения = НСтр("ru = 'Бизнес-процессы и задачи. Мониторинг задач.'", ОбщегоНазначения.КодОсновногоЯзыка()); + ВидСообщения = НСтр("ru = 'Бизнес-процессы и задачи.Мониторинг задач'", ОбщегоНазначения.КодОсновногоЯзыка()); ЗаписьЖурналаРегистрации(ВидСообщения, УровеньЖурналаРегистрации.Ошибка, Метаданные.РегламентныеЗадания.МониторингЗадач,, ОписаниеОшибки); Возврат; @@ -1024,44 +1024,13 @@ Обработчик.НачальноеЗаполнение = Истина; Обработчик.Процедура = "БизнесПроцессыИЗадачиСервер.ЗаполнитьОтветственногоЗаКонтрольИсполнения"; - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.0.6.6"; - Обработчик.Процедура = "БизнесПроцессыИЗадачиСервер.ЗаполнитьПредметСтрокой"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.1.1.2"; - Обработчик.Процедура = "БизнесПроцессыИЗадачиСервер.ЗаполнитьСостоянияИПринятияКИсполнению"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.2.1.1"; - Обработчик.Процедура = "БизнесПроцессыИЗадачиСервер.ЗаполнитьКодРолиИсполнителя"; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.3.39"; - Обработчик.Идентификатор = Новый УникальныйИдентификатор("80A64E76-12CC-4075-A80B-9EB93C411C85"); - Обработчик.Процедура = "БизнесПроцессы.Задание.ОбработатьДанныеДляПереходаНаНовуюВерсию"; - Обработчик.Комментарий = НСтр("ru = 'Обновление прав доступа для бизнес-процесса ""Задание"". - |До завершения обработки будут действовать прежние права доступа к заданиям.'"); - Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ОчередьОтложеннойОбработки = 1; - Обработчик.ПроцедураЗаполненияДанныхОбновления = "БизнесПроцессы.Задание.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"; - Обработчик.ЧитаемыеОбъекты = "БизнесПроцесс.Задание"; - Обработчик.ИзменяемыеОбъекты = "БизнесПроцесс.Задание"; - Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; - Обработчик.БлокируемыеОбъекты = "БизнесПроцесс.Задание"; - КонецЕсли; - Обработчик = Обработчики.Добавить(); Обработчик.НачальноеЗаполнение = Истина; Обработчик.Версия = "2.3.3.70"; Обработчик.Процедура = "БизнесПроцессыИЗадачиСервер.ОбновитьИспользованиеРегламентныхЗаданий"; Обработчик.ОбщиеДанные = Ложь; Обработчик.РежимВыполнения = "Оперативно"; - Обработчик.Идентификатор = Новый УникальныйИдентификатор("86ec32f9-d28f-4282-1e6f-222a8653d2e0"); - Обработчик.Комментарий = - НСтр("ru = 'Определяет использование регламентного задания выполняющего старт отложенных бизнес-процессов.'"); - + Обработчик = Обработчики.Добавить(); Обработчик.НачальноеЗаполнение = Истина; Обработчик.РежимВыполнения = "Оперативно"; @@ -2308,129 +2277,6 @@ КонецПроцедуры -// Инициализировать новое поле Состояние у тех бизнес-процессов, у которых оно есть. -// -Процедура ЗаполнитьСостоянияИПринятияКИсполнению() Экспорт - - // Обновления состояния бизнес-процессов и задач. - Для каждого МетаданныеБизнесПроцесса Из Метаданные.БизнесПроцессы Цикл - - РеквизитСостояние = МетаданныеБизнесПроцесса.Реквизиты.Найти("Состояние"); - Если РеквизитСостояние = Неопределено Тогда - Продолжить; - КонецЕсли; - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | БизнесПроцессы.Ссылка КАК Ссылка - |ИЗ - | %1 КАК БизнесПроцессы"; - - Запрос.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Запрос.Текст, МетаданныеБизнесПроцесса.ПолноеИмя()); - - Результат = Запрос.Выполнить(); - - ВыборкаДетальныеЗаписи = Результат.Выбрать(); - - Пока ВыборкаДетальныеЗаписи.Следующий() Цикл - - БизнесПроцесс = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); - БизнесПроцесс.Заблокировать(); - БизнесПроцесс.Состояние = Перечисления.СостоянияБизнесПроцессов.Активен; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(БизнесПроцесс); - - КонецЦикла; - - КонецЦикла; - - // Обновления принятия к исполнению задач. - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | Задачи.Ссылка КАК Ссылка - |ИЗ - | Задача.ЗадачаИсполнителя КАК Задачи"; - - Результат = Запрос.Выполнить(); - - ВыборкаДетальныеЗаписи = Результат.Выбрать(); - - Пока ВыборкаДетальныеЗаписи.Следующий() Цикл - - ЗадачаОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); - - Если ЗадачаОбъект.Выполнена = Истина Тогда - ЗадачаОбъект.ПринятаКИсполнению = Истина; - ЗадачаОбъект.ДатаПринятияКИсполнению = ЗадачаОбъект.ДатаИсполнения; - КонецЕсли; - - ЗадачаОбъект.СостояниеБизнесПроцесса = Перечисления.СостоянияБизнесПроцессов.Активен; - - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ЗадачаОбъект); - - КонецЦикла; - -КонецПроцедуры - -// Заполнить новое поле ПредметСтрокой у задачи ЗадачаИсполнителя. -// -Процедура ЗаполнитьПредметСтрокой() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ЗадачаИсполнителя.Ссылка КАК Ссылка, - | ЗадачаИсполнителя.Предмет КАК Предмет - |ИЗ - | Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя"; - - Результат = Запрос.Выполнить(); - ВыборкаДетальныеЗаписи = Результат.Выбрать(); - Пока ВыборкаДетальныеЗаписи.Следующий() Цикл - - ПредметСсылка = ВыборкаДетальныеЗаписи.Предмет; - Если ПредметСсылка = Неопределено ИЛИ ПредметСсылка.Пустая() Тогда - Продолжить; - КонецЕсли; - - ЗадачаОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); - ЗадачаОбъект.ПредметСтрокой = ОбщегоНазначения.ПредметСтрокой(ПредметСсылка); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ЗадачаОбъект); - - КонецЦикла; - -КонецПроцедуры - -// Перенести данные из стандартного реквизита Код в новый реквизит КраткоеПредставление. -// -Процедура ЗаполнитьКодРолиИсполнителя() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | РолиИсполнителей.Ссылка КАК Ссылка, - | РолиИсполнителей.Код КАК Код - |ИЗ - | Справочник.РолиИсполнителей КАК РолиИсполнителей"; - - Результат = Запрос.Выполнить(); - ВыборкаДетальныеЗаписи = Результат.Выбрать(); - Пока ВыборкаДетальныеЗаписи.Следующий() Цикл - - ЗначениеКода = ВыборкаДетальныеЗаписи.Код; - Если ПустаяСтрока(ЗначениеКода) Тогда - Продолжить; - КонецЕсли; - - РольИсполнителейОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); - РольИсполнителейОбъект.КраткоеПредставление = ЗначениеКода; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(РольИсполнителейОбъект); - - КонецЦикла; - -КонецПроцедуры - // Возвращает адрес электронной почты пользователя Получатель для рассылки уведомлений о задачах. // // Параметры: diff --git a/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl index 48cf6d02b..2cd551226 100644 --- a/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl +++ b/SSL/src/CommonModules/ВариантыОтчетов/Module.bsl @@ -204,7 +204,7 @@ // // Настройки общей формы отчета подсистемы "Варианты отчетов". // // // // Параметры: -// // Форма - УправляемаяФорма, Неопределено - Форма отчета или форма настроек отчета. +// // Форма - ФормаКлиентскогоПриложения, Неопределено - Форма отчета или форма настроек отчета. // // Неопределено когда вызов без контекста. // // КлючВарианта - Строка, Неопределено - Имя предопределенного // // или уникальный идентификатор пользовательского варианта отчета. @@ -293,7 +293,7 @@ // // Настройки общей формы отчета подсистемы "Варианты отчетов". // // // // Параметры: -// // Форма - УправляемаяФорма, Неопределено - форма отчета или форма настроек отчета. +// // Форма - ФормаКлиентскогоПриложения, Неопределено - форма отчета или форма настроек отчета. // // Неопределено когда вызов без контекста. // // КлючВарианта - Строка, Неопределено - имя предопределенного // // или уникальный идентификатор пользовательского варианта отчета. @@ -398,7 +398,7 @@ // Вызывается в одноименном обработчике формы отчета после выполнения кода формы. // // Параметры: -// Форма - УправляемаяФорма - форма отчета. +// Форма - ФормаКлиентскогоПриложения - форма отчета. // Настройки - ОбъектМетаданных - передается "как есть" из процедуры ПриСохраненииПользовательскихНастроекНаСервере. // Процедура ПриСохраненииПользовательскихНастроекНаСервере(Форма, Настройки) Экспорт @@ -949,102 +949,6 @@ ЗаписатьВЖурналЗавершениеПроцедуры(ПредставлениеПроцедуры); КонецПроцедуры -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует отказаться от использования. -// -// Возвращаемое значение: -// ТаблицаЗначений - используемые разделы. -// -Функция ИспользуемыеРазделы() Экспорт - Результат = Новый ТаблицаЗначений; - Результат.Колонки.Добавить("Ссылка", Новый ОписаниеТипов("СправочникСсылка.ИдентификаторыОбъектовМетаданных")); - Результат.Колонки.Добавить("Метаданные", Новый ОписаниеТипов("ОбъектМетаданных, Строка")); - Результат.Колонки.Добавить("Имя", ОписаниеТиповСтрока()); - Результат.Колонки.Добавить("Представление", ОписаниеТиповСтрока()); - Результат.Колонки.Добавить("ЗаголовокПанели", ОписаниеТиповСтрока()); - - ИдентификаторНачальнойСтраницы = ВариантыОтчетовКлиентСервер.ИдентификаторНачальнойСтраницы(); - - СписокРазделов = Новый СписокЗначений; - - ВариантыОтчетовПереопределяемый.ОпределитьРазделыСВариантамиОтчетов(СписокРазделов); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.НастройкиПрограммы") Тогда - МодульОбработкиПанельАдминистрированияБСП = ОбщегоНазначения.ОбщийМодуль("Обработки.ПанельАдминистрированияБСП"); - МодульОбработкиПанельАдминистрированияБСП.ПриОпределенииРазделовСВариантамиОтчетов(СписокРазделов); - КонецЕсли; - - Для Каждого ЭлементСписка Из СписокРазделов Цикл - РазделМетаданные = ЭлементСписка.Значение; - Если ЗначениеЗаполнено(ЭлементСписка.Представление) Тогда - ШаблонЗаголовка = ЭлементСписка.Представление; - Иначе - ШаблонЗаголовка = НСтр("ru = 'Отчеты раздела ""%1""'"); - КонецЕсли; - - Строка = Результат.Добавить(); - Строка.Ссылка = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(РазделМетаданные); - Если РазделМетаданные = ИдентификаторНачальнойСтраницы Тогда - Строка.Метаданные = ИдентификаторНачальнойСтраницы; - Строка.Имя = ИдентификаторНачальнойСтраницы; - Строка.Представление = НСтр("ru = 'Начальная страница'"); - Иначе - Строка.Метаданные = РазделМетаданные; - Строка.Имя = РазделМетаданные.Имя; - Строка.Представление = РазделМетаданные.Представление(); - КонецЕсли; - Строка.ЗаголовокПанели = СтрЗаменить(ШаблонЗаголовка, "%1", Строка.Представление); // Переход на СтрШаблон невозможен. - КонецЦикла; - - Возврат Результат; -КонецФункции - -// Устарела. Следует отказаться от использования. -// Полное обновление индекса поиска вариантов отчетов. -// Следует вызывать из процедуры ПриДобавленииОбработчиковОбновления конфигурации. -// Внимание: должна вызываться только один раз из модуля конечного прикладного решения. -// Не предназначена для вызова из библиотек. -// -// Параметры: -// Обработчики - Коллекция - передается "как есть" из вызываемой процедуры. -// Версия - Строка - версия конфигурации, при переходе на которую -// необходимо полностью обновить индекс поиска. -// Рекомендуется указывать последнюю функциональную версию, -// при обновлении на которую были внесены изменения -// в представления объектов метаданных или их реквизитов, -// которые могут выводиться в отчетах. -// Поднимается при необходимости. -// -// Пример: -// ВариантыОтчетов.ДобавитьОбработчикиПолногоОбновления(Обработчики, "11.1.7.8"); -// -Процедура ДобавитьОбработчикиПолногоОбновления(Обработчики, Версия) Экспорт - Возврат; -КонецПроцедуры - -// Устарела. Следует использовать ВариантОтчета. -// Получает ссылку варианта отчета по набору ключевых реквизитов. -// -// Параметры: -// Отчет - СправочникСсылка.ИдентификаторыОбъектовРасширений, -// СправочникСсылка.ИдентификаторыОбъектовМетаданных, -// СправочникСсылка.ДополнительныеОтчетыИОбработки, -// Строка - ссылка отчета или полное имя внешнего отчета. -// КлючВарианта - Строка - имя варианта отчета. -// -// Возвращаемое значение: -// * СправочникСсылка.ВариантыОтчетов - когда вариант найден. -// * Неопределено - когда вариант не найден. -// -Функция ПолучитьСсылку(Отчет, КлючВарианта) Экспорт - - Возврат ВариантОтчета(Отчет, КлючВарианта); - -КонецФункции - -#КонецОбласти - #КонецОбласти #Область СлужебныйПрограммныйИнтерфейс @@ -1288,6 +1192,7 @@ ЭлементБлокировки = Блокировка.Добавить("Справочник.ВариантыОтчетов"); ЭлементБлокировки.ИсточникДанных = ВариантыДополнительногоОтчета; ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Ссылка", "Ссылка"); + Блокировка.Заблокировать(); Для каждого ВариантОтчета Из ВариантыДополнительногоОтчета Цикл @@ -1761,7 +1666,9 @@ // Установка колонтитулов. НастройкиКолонтитулов = Неопределено; - Результат.НастройкиКД.ДополнительныеСвойства.Свойство("НастройкиКолонтитулов", НастройкиКолонтитулов); + Если Результат.НастройкиКД <> Неопределено Тогда + Результат.НастройкиКД.ДополнительныеСвойства.Свойство("НастройкиКолонтитулов", НастройкиКолонтитулов); + КонецЕсли; НазваниеОтчета = ""; Если ЗначениеЗаполнено(Результат.СсылкаВарианта) Тогда @@ -2283,24 +2190,6 @@ //////////////////////////////////////////////////////////////////////////////// // 2. Обновление разделенных данных. - // 2.1. Перевести разделенные данные на версию 2.1.1.0. - Обработчик = Обработчики.Добавить(); - Обработчик.ВыполнятьВГруппеОбязательных = Истина; - Обработчик.ОбщиеДанные = Ложь; - Обработчик.РежимВыполнения = "Монопольно"; - Обработчик.Версия = "2.1.1.0"; - Обработчик.Приоритет = 80; - Обработчик.Процедура = "ВариантыОтчетов.ПерейтиКРедакции21"; - - // 2.2. Перевести разделенные данные на версию 2.1.3.6. - Обработчик = Обработчики.Добавить(); - Обработчик.ВыполнятьВГруппеОбязательных = Истина; - Обработчик.ОбщиеДанные = Ложь; - Обработчик.РежимВыполнения = "Монопольно"; - Обработчик.Версия = "2.1.3.6"; - Обработчик.Приоритет = 80; - Обработчик.Процедура = "ВариантыОтчетов.ЗаполнитьСсылкиПредопределенных"; - // 2.3. Обновить разделенные данные в локальном режиме. Обработчик = Обработчики.Добавить(); Обработчик.ВыполнятьВГруппеОбязательных = Истина; @@ -2313,15 +2202,6 @@ //////////////////////////////////////////////////////////////////////////////// // 3. Отложенное обновление. - // 3.1. Адаптация к интерфейсу "Такси". - Обработчик = Обработчики.Добавить(); - Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.Идентификатор = Новый УникальныйИдентификатор("814d41ec-82e2-4d25-9334-8335e589fc1f"); - Обработчик.ОбщиеДанные = Ложь; - Обработчик.Версия = "2.2.3.31"; - Обработчик.Процедура = "ВариантыОтчетов.СократитьКоличествоБыстрыхНастроек"; - Обработчик.Комментарий = НСтр("ru = 'Уменьшает количество быстрых настроек в пользовательских отчетах до 2 шт.'"); - // 3.2. Заполнить информацию для поиска предопределенных вариантов отчетов. Если РазрешеноИндексированиеНеразделенныхДанных() Тогда Обработчик = Обработчики.Добавить(); @@ -2753,6 +2633,7 @@ Функция СписокРазделов() Экспорт СписокРазделов = Новый СписокЗначений; + ИнтеграцияПодсистемБСП.ПриОпределенииРазделовСВариантамиОтчетов(СписокРазделов); ВариантыОтчетовПереопределяемый.ОпределитьРазделыСВариантамиОтчетов(СписокРазделов); Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.НастройкиПрограммы") Тогда @@ -2811,6 +2692,7 @@ Изменения.Колонки.Добавить("АктуальноеИмяВарианта", РеквизитыВариантов.КлючВарианта.Тип); // Переопределяемая часть. + ИнтеграцияПодсистемБСП.ПриИзмененииКлючейВариантовОтчетов(Изменения); ВариантыОтчетовПереопределяемый.ЗарегистрироватьИзмененияКлючейВариантовОтчетов(Изменения); Изменения.Колонки.Отчет.Имя = "ОтчетМетаданные"; @@ -3038,6 +2920,7 @@ Результат.ДругиеОтчеты.Вставить("ЗакрыватьПослеВыбора", Истина); Результат.ДругиеОтчеты.Вставить("ПоказыватьФлажок", Ложь); + ИнтеграцияПодсистемБСП.ПриОпределенииНастроекВариантовОтчетов(Результат); ВариантыОтчетовПереопределяемый.ПриОпределенииНастроек(Результат); Возврат Результат; @@ -3262,275 +3145,6 @@ КонецПроцедуры -// [2.1.1.1] Выполняет перенос данных справочника "Варианты отчетов" для редакции 2.1. -Процедура ПерейтиКРедакции21() Экспорт - ПредставлениеПроцедуры = НСтр("ru = 'Перейти к редакции 2.1'"); - ЗаписатьВЖурналЗапускПроцедуры(ПредставлениеПроцедуры); - - ТекстЗапроса = - "ВЫБРАТЬ РАЗЛИЧНЫЕ - | ВариантыОтчетов.Ссылка, - | ВариантыОтчетов.УдалитьКлючОбъекта КАК ОтчетПолноеИмя - |ИЗ - | Справочник.ВариантыОтчетов КАК ВариантыОтчетов - |ГДЕ - | ВариантыОтчетов.УдалитьКлючОбъекта <> """""; - - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса; - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - - // Сформировать информацию об отчете. - ОтчетИнформация = СформироватьИнформациюОбОтчетеПоПолномуИмени(Выборка.ОтчетПолноеИмя); - - // Проверить результат - Если ТипЗнч(ОтчетИнформация.ТекстОшибки) = Тип("Строка") Тогда - ЗаписатьВЖурнал(УровеньЖурналаРегистрации.Ошибка, ОтчетИнформация.ТекстОшибки, Выборка.Ссылка); - Продолжить; - КонецЕсли; - - ВариантОбъект = Выборка.Ссылка.ПолучитьОбъект(); - - Если ВариантОбъект.ТипОтчета = Перечисления.ТипыОтчетов.УдалитьПользовательский - Или ВариантОбъект.ТипОтчета = Перечисления.ТипыОтчетов.Внешний Тогда - ВариантОбъект.Пользовательский = Истина; - Иначе - ВариантОбъект.Пользовательский = Ложь; - КонецЕсли; - - ВариантОбъект.Отчет = ОтчетИнформация.Отчет; - ВариантОбъект.ТипОтчета = ОтчетИнформация.ТипОтчета; - - Если ОтчетИнформация.ТипОтчета = Перечисления.ТипыОтчетов.Внешний Тогда - // Установка настроек варианта внешнего отчета, характерных для всех вариантов внешних отчетов. - // Все варианты внешних отчетов являются пользовательскими поскольку - // предопределенные варианты внешних отчетов не регистрируются в системе, - // а зачитываются каждый раз динамически. - ВариантОбъект.Пользовательский = Истина; - - // Варианты внешних отчетов не могут открываться из панели отчетов. - ВариантОбъект.Размещение.Очистить(); - - Иначе - - // Замена полных имен подсистем на ссылки справочника "Идентификаторы объектов метаданных". - Редакция21ПривестиНастройкиПоРазделам(ВариантОбъект); - - // Перенос пользовательских настроек из табличной части в регистр сведений. - Редакция21ПеренестиПользовательскиеНастройкиВРегистр(ВариантОбъект); - - КонецЕсли; - - // Варианты поставляются без автора. - Если Не ВариантОбъект.Пользовательский Тогда - ВариантОбъект.Автор = Неопределено; - КонецЕсли; - - ВариантОбъект.УдалитьКлючОбъекта = ""; - ВариантОбъект.УдалитьПредставлениеОбъекта = ""; - ВариантОбъект.УдалитьИсключенияБыстрогоДоступа.Очистить(); - ЗаписатьПредопределенный(ВариантОбъект); - КонецЦикла; - - ЗаписатьВЖурналЗавершениеПроцедуры(ПредставлениеПроцедуры); -КонецПроцедуры - -// [2.1.3.6] Заполняет ссылки предопределенных элементов справочника "Варианты отчетов". -Процедура ЗаполнитьСсылкиПредопределенных() Экспорт - ПредставлениеПроцедуры = НСтр("ru = 'Заполнить ссылки предопределенных вариантов отчетов'"); - ЗаписатьВЖурналЗапускПроцедуры(ПредставлениеПроцедуры); - - // Составить таблицу замен старых ключей вариантов на актуальные. - Изменения = ИзмененияКлючей(); - - // Получить ссылки вариантов отчетов для замены ключей, - // исключив из списка замен те варианты отчетов, - // актуальные ключи которых уже зарегистрированы, - // или старые ключи которых уже не заняты. - ТекстЗапроса = - "ВЫБРАТЬ - | Изменения.Отчет КАК Отчет, - | Изменения.СтароеИмяВарианта КАК СтароеИмяВарианта, - | Изменения.АктуальноеИмяВарианта КАК АктуальноеИмяВарианта - |ПОМЕСТИТЬ втИзменения - |ИЗ - | &Изменения КАК Изменения - | - |ИНДЕКСИРОВАТЬ ПО - | СтароеИмяВарианта, - | АктуальноеИмяВарианта - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | ВариантыОтчетов.Ссылка КАК ВариантОтчета, - | ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ИдентификаторыОбъектовМетаданных) КАК ОтчетДляЗаменыКлючей, - | ЕСТЬNULL(втИзменения.АктуальноеИмяВарианта, ВариантыОтчетов.КлючВарианта) КАК АктуальныйКлючВарианта - |ПОМЕСТИТЬ втАктуальные - |ИЗ - | Справочник.ВариантыОтчетов КАК ВариантыОтчетов - | ЛЕВОЕ СОЕДИНЕНИЕ втИзменения КАК втИзменения - | ПО ВариантыОтчетов.Отчет = втИзменения.Отчет - | И ВариантыОтчетов.КлючВарианта = втИзменения.СтароеИмяВарианта - |ГДЕ - | ВариантыОтчетов.Пользовательский = ЛОЖЬ - | И ВариантыОтчетов.ТипОтчета = &ТипОтчета - | И ВариантыОтчетов.ПометкаУдаления = ЛОЖЬ - | И ВариантыОтчетов.ПредопределенныйВариант = &ПустойПредопределенный - | - |ИНДЕКСИРОВАТЬ ПО - | АктуальныйКлючВарианта, - | ВариантОтчета - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | втАктуальные.ВариантОтчета, - | ПредопределенныеВариантыОтчетов.Наименование, - | ПредопределенныеВариантыОтчетов.КлючВарианта, - | ЕСТЬNULL(ПредопределенныеВариантыОтчетов.Ссылка, НЕОПРЕДЕЛЕНО) КАК ПредопределенныйВариант - |ИЗ - | втАктуальные КАК втАктуальные - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов КАК ПредопределенныеВариантыОтчетов - | ПО втАктуальные.ОтчетДляЗаменыКлючей = ПредопределенныеВариантыОтчетов.Отчет - | И втАктуальные.АктуальныйКлючВарианта = ПредопределенныеВариантыОтчетов.КлючВарианта"; - - Запрос = Новый Запрос; - Запрос.УстановитьПараметр("Изменения", Изменения); - Запрос.УстановитьПараметр("ТипОтчета", Перечисления.ТипыОтчетов.Внутренний); // Поддержка расширений не требуется. - Запрос.УстановитьПараметр("ПустойПредопределенный", Справочники.ПредопределенныеВариантыОтчетов.ПустаяСсылка()); - Запрос.Текст = ТекстЗапроса; - - // Заменить имена вариантов на ссылки. - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - ВариантОбъект = Выборка.Ссылка.ПолучитьОбъект(); - ВариантОбъект.ДополнительныеСвойства.Вставить("ЗаполнениеПредопределенных", Истина); - ВариантОбъект.ДополнительныеСвойства.Вставить("ИндексироватьСхему", Ложь); - Если ЗначениеЗаполнено(Выборка.ПредопределенныйВариант) Тогда - ЗаполнитьЗначенияСвойств(ВариантОбъект, Выборка, "Наименование, КлючВарианта, ПредопределенныйВариант"); - Найденные = ВариантОбъект.Размещение.НайтиСтроки(Новый Структура("УдалитьПредопределенная", Истина)); - Для Каждого СтрокаТаблицы Из Найденные Цикл - ВариантОбъект.Размещение.Удалить(СтрокаТаблицы); - КонецЦикла; - ВариантОбъект.Описание = ""; - ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ВариантОбъект); - Иначе - ВариантОбъект.УстановитьПометкуУдаления(Истина); - КонецЕсли; - КонецЦикла; - - ЗаписатьВЖурналЗавершениеПроцедуры(ПредставлениеПроцедуры); - -КонецПроцедуры - -// [2.2.3.30] Уменьшает количество быстрых настроек в пользовательских вариантах отчетов до 2 шт. -Процедура СократитьКоличествоБыстрыхНастроек(ВходящиеПараметры = Неопределено) Экспорт - ПредставлениеПроцедуры = НСтр("ru = 'Сокращение количества быстрых настроек в отчетах'"); - ЗаписатьВЖурналЗапускПроцедуры(ПредставлениеПроцедуры); - - // Чтение сведений от предыдущего запуска с ошибками. - Параметры = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - ВариантыОтчетовКлиентСервер.ПолноеИмяПодсистемы(), - "СократитьКоличествоБыстрыхНастроек"); - Запрос = Новый Запрос; - Если Параметры = Неопределено Тогда - Запрос.Текст = "ВЫБРАТЬ Ссылка, Отчет ИЗ Справочник.ВариантыОтчетов ГДЕ Пользовательский И ТипОтчета <> &Внешний"; - Запрос.УстановитьПараметр("Внешний", Перечисления.ТипыОтчетов.Внешний); - НомерПопытки = 1; - Иначе - Запрос.Текст = "ВЫБРАТЬ Ссылка, Отчет ИЗ Справочник.ВариантыОтчетов ГДЕ Ссылка В (&ВариантыСОшибками)"; - Запрос.УстановитьПараметр("ВариантыСОшибками", Параметры.ВариантыСОшибками); - НомерПопытки = Параметры.НомерПопытки + 1; - КонецЕсли; - ТаблицаОтчетов = Запрос.Выполнить().Выгрузить(); - - Записано = 0; - Ошибок = 0; - ПодключенныеОтчеты = Новый Соответствие; - ПоУмолчаниюВсеПодключены = Неопределено; - ВариантыСОшибками = Новый Массив; - - Для Каждого СтрокаТаблицы Из ТаблицаОтчетов Цикл - ОтчетОбъект = ПодключенныеОтчеты.Получить(СтрокаТаблицы.Отчет); - Если ОтчетОбъект = Неопределено Тогда - Подключение = ПодключитьОтчетОбъект(СтрокаТаблицы.Отчет, Истина); - Если Подключение.Успех Тогда - ОтчетОбъект = Подключение.Объект; - ОтчетМетаданные = Подключение.Метаданные; - Если Не ОтчетПодключенКОсновнойФорме(ОтчетМетаданные, ПоУмолчаниюВсеПодключены) Тогда - // Отчет не подключен к общей форме отчета. - // Уменьшение количества быстрых настроек должно выполняться прикладным кодом. - ОтчетОбъект = ""; - КонецЕсли; - Иначе // Отчет не найден. - ЗаписатьВЖурнал(УровеньЖурналаРегистрации.Ошибка, Подключение.ТекстОшибки, СтрокаТаблицы.Ссылка); - ОтчетОбъект = ""; - КонецЕсли; - ПодключенныеОтчеты.Вставить(СтрокаТаблицы.Отчет, ОтчетОбъект); - КонецЕсли; - Если ОтчетОбъект = "" Тогда - Продолжить; - КонецЕсли; - - ВариантОбъект = СтрокаТаблицы.Ссылка.ПолучитьОбъект(); - - ИнформацияОбОшибке = Неопределено; - Попытка - ТребуетсяЗапись = УменьшитьКоличествоБыстрыхНастроек(ВариантОбъект, ОтчетОбъект); - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - ТребуетсяЗапись = Ложь; - КонецПопытки; - Если ИнформацияОбОшибке <> Неопределено Тогда // Возникла проблема. - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Вариант ""%1"" отчета ""%2"":'") - + Символы.ПС + НСтр("ru = 'При уменьшении количества быстрых настроек пользовательского возникла ошибка:'") - + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке), - ВариантОбъект.Ссылка, ВариантОбъект.КлючВарианта, ВариантОбъект.Отчет); - ЗаписатьВЖурнал(УровеньЖурналаРегистрации.Ошибка, ТекстОшибки); - ВариантыСОшибками.Добавить(ВариантОбъект.Ссылка); - Ошибок = Ошибок + 1; - КонецЕсли; - - Если ТребуетсяЗапись Тогда - ВариантОбъект.ДополнительныеСвойства.Вставить("ИндексироватьСхему", Ложь); - ВариантОбъект.ДополнительныеСвойства.Вставить("ОтчетОбъект", ОтчетОбъект); - ЗаписатьПредопределенный(ВариантОбъект); - Записано = Записано + 1; - КонецЕсли; - КонецЦикла; - - Если Ошибок > 0 Тогда - // Запись сведений для следующего запуска. - Параметры = Новый Структура; - Параметры.Вставить("НомерПопытки", НомерПопытки); - Параметры.Вставить("ВариантыСОшибками", ВариантыСОшибками); - - ОбщегоНазначения.ХранилищеОбщихНастроекСохранить( - ВариантыОтчетовКлиентСервер.ПолноеИмяПодсистемы(), - "СократитьКоличествоБыстрыхНастроек", - Параметры); - ИначеЕсли НомерПопытки > 1 Тогда - // Удаление сведений от предыдущих запусков. - ОбщегоНазначения.ХранилищеОбщихНастроекУдалить( - ВариантыОтчетовКлиентСервер.ПолноеИмяПодсистемы(), - "СократитьКоличествоБыстрыхНастроек", - ИмяПользователя()); - КонецЕсли; - - ЗаписатьВЖурналЗавершениеПроцедуры(ПредставлениеПроцедуры, Записано); - - Если Ошибок > 0 Тогда - ТекстОшибки = ПредставлениеПроцедуры + ":" + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось уменьшить количество быстрых настроек %1 отчетов.'"), Ошибок); - ЗаписьЖурналаРегистрации(НаименованиеПодсистемы(Неопределено), - УровеньЖурналаРегистрации.Предупреждение, , , ТекстОшибки); - КонецЕсли; - -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // Обновление информационной базы / Начальное заполнение и актуализация справочников. @@ -3670,8 +3284,10 @@ НачатьТранзакцию(); Попытка Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить("Справочник.ВариантыОтчетов"); + ЭлементБлокировки = Блокировка.Добавить(Выборка.Ссылка.Метаданные().ПолноеИмя()); ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка); + Блокировка.Заблокировать(); + ВариантОбъект = Выборка.Ссылка.ПолучитьОбъект(); Если ВариантОбъект = Неопределено Тогда ОтменитьТранзакцию(); @@ -4295,10 +3911,10 @@ Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("Справочник.ВариантыОтчетов"); ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка); + Блокировка.Заблокировать(); ВариантОбъект = Выборка.Ссылка.ПолучитьОбъект(); ВариантОбъект.Родитель = Выборка.Родитель; - ВариантОбъект.Заблокировать(); ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ВариантОбъект); ЗафиксироватьТранзакцию(); @@ -4377,7 +3993,6 @@ ЗаменитьКлючиПользовательскихНастроек(ИзменяемыеРеквизиты, СтрокаТаблицы); ВариантОбъект = СтрокаТаблицы.РеквизитСсылка.ПолучитьОбъект(); - ВариантОбъект.Заблокировать(); КонецЕсли; ИсключаяСвойства = ?(ВариантОбъект.ВидимостьПоУмолчаниюПереопределена, "ВидимостьПоУмолчанию", Неопределено); ЗаполнитьЗначенияСвойств(ВариантОбъект, ИзменяемыеРеквизиты, , ИсключаяСвойства); @@ -4734,80 +4349,6 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Обновление информационной базы / Переход к редакции 2.1. - -// Замена структуры хранения настроек по разделам, переход на ссылки справочника ИОМ. -// Вызывается только для вариантов внутренних отчетов. -// -Процедура Редакция21ПривестиНастройкиПоРазделам(ВариантОбъект) - - Количество = ВариантОбъект.Размещение.Количество(); - Для Номер = 1 По Количество Цикл - ОбратныйИндекс = Количество - Номер; - СтрокаТаблицы = ВариантОбъект.Размещение[ОбратныйИндекс]; - - Если ЗначениеЗаполнено(СтрокаТаблицы.Подсистема) Тогда - Продолжить; // Заполнение не требуется. - КонецЕсли; - - Если Не ЗначениеЗаполнено(СтрокаТаблицы.УдалитьПодсистема) Тогда - ВариантОбъект.Размещение.Удалить(СтрокаТаблицы); - Продолжить; // Заполнение невозможно. - КонецЕсли; - - ПодсистемаПолноеИмя = "Подсистема." + СтрЗаменить(СтрокаТаблицы.УдалитьПодсистема, "\", ".Подсистема."); - ПодсистемаМетаданные = Метаданные.НайтиПоПолномуИмени(ПодсистемаПолноеИмя); - Если ПодсистемаМетаданные = Неопределено Тогда - ВариантОбъект.Размещение.Удалить(СтрокаТаблицы); - Продолжить; // Заполнение невозможно. - КонецЕсли; - - ПодсистемаСсылка = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПодсистемаМетаданные); - Если Не ЗначениеЗаполнено(ПодсистемаСсылка) Или ТипЗнч(ПодсистемаСсылка) = Тип("Строка") Тогда - ВариантОбъект.Размещение.Удалить(СтрокаТаблицы); - Продолжить; // Заполнение невозможно. - КонецЕсли; - - СтрокаТаблицы.Использование = Истина; - СтрокаТаблицы.Подсистема = ПодсистемаСсылка; - СтрокаТаблицы.УдалитьПодсистема = ""; - СтрокаТаблицы.УдалитьНазвание = ""; - - КонецЦикла; - -КонецПроцедуры - -// Заполнение регистра "НастройкиВариантовОтчетов". -// Вызывается только для вариантов внутренних отчетов. -// -Процедура Редакция21ПеренестиПользовательскиеНастройкиВРегистр(ВариантОбъект) - ТаблицаПодсистем = ВариантОбъект.Размещение.Выгрузить(Новый Структура("Использование", Истина)); - ТаблицаПодсистем.Свернуть("Подсистема"); - - ТаблицаПользователей = ВариантОбъект.УдалитьИсключенияБыстрогоДоступа.Выгрузить(); - ТаблицаПользователей.Колонки.УдалитьПользователь.Имя = "Пользователь"; - ТаблицаПользователей.Свернуть("Пользователь"); - - ПакетНастроек = Новый ТаблицаЗначений; - ПакетНастроек.Колонки.Добавить("Подсистема", ТаблицаПодсистем.Колонки.Подсистема.ТипЗначения); - ПакетНастроек.Колонки.Добавить("Пользователь", ТаблицаПользователей.Колонки.Пользователь.ТипЗначения); - ПакетНастроек.Колонки.Добавить("Видимость", Новый ОписаниеТипов("Булево")); - - Для Каждого СтрокаПодсистема Из ТаблицаПодсистем Цикл - Для Каждого СтрокаПользователь Из ТаблицаПользователей Цикл - Настройка = ПакетНастроек.Добавить(); - Настройка.Подсистема = СтрокаПодсистема.РазделИлиГруппа; - Настройка.Пользователь = СтрокаПользователь.Пользователь; - Настройка.Видимость = Не ВариантОбъект.ВидимостьПоУмолчанию; - КонецЦикла; - КонецЦикла; - - Измерения = Новый Структура("Вариант", ВариантОбъект.Ссылка); - Ресурсы = Новый Структура("БыстрыйДоступ", Ложь); - РегистрыСведений.НастройкиВариантовОтчетов.ЗаписатьПакетНастроек(ПакетНастроек, Измерения, Ресурсы, Истина); -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // Работа с деревом подсистем из форм. @@ -5320,12 +4861,15 @@ КонецФункции // Представления параметров и отборов из СКД. -Функция СформироватьПредставленияПараметровИОтборов(КомпоновщикНастроекКД) +Функция СформироватьПредставленияПараметровИОтборов(КомпоновщикНастроек) Результат = Новый Массив; - НастройкиКД = КомпоновщикНастроекКД.Настройки; + + Настройки = КомпоновщикНастроек.Настройки; + ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки; + Режимы = РежимОтображенияЭлементаНастройкиКомпоновкиДанных; - Для Каждого ПользовательскаяНастройка Из КомпоновщикНастроекКД.ПользовательскиеНастройки.Элементы Цикл + Для Каждого ПользовательскаяНастройка Из ПользовательскиеНастройки.Элементы Цикл ТипНастройки = ТипЗнч(ПользовательскаяНастройка); Если ТипНастройки = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда ЭтоОтбор = Ложь; @@ -5341,10 +4885,13 @@ Идентификатор = ПользовательскаяНастройка.ИдентификаторПользовательскойНастройки; - ОбщаяНастройка = ОтчетыКлиентСервер.ПолучитьОбъектПоПользовательскомуИдентификатору(НастройкиКД, Идентификатор); + ОбщаяНастройка = ОтчетыКлиентСервер.ПолучитьОбъектПоПользовательскомуИдентификатору( + Настройки, Идентификатор,, ПользовательскиеНастройки); + Если ОбщаяНастройка = Неопределено Тогда Продолжить; КонецЕсли; + Если ПользовательскаяНастройка.РежимОтображения = Режимы.Авто И ОбщаяНастройка.РежимОтображения <> Режимы.БыстрыйДоступ Тогда Продолжить; @@ -5357,7 +4904,7 @@ ИначеЕсли ЗначениеЗаполнено(СтруктураПредставлений.Представление) Тогда ЭлементЗаголовок = СтруктураПредставлений.Представление; Иначе - ДоступнаяНастройка = ОтчетыКлиентСервер.НайтиДоступнуюНастройку(НастройкиКД, ОбщаяНастройка); + ДоступнаяНастройка = ОтчетыКлиентСервер.НайтиДоступнуюНастройку(Настройки, ОбщаяНастройка); Если ДоступнаяНастройка <> Неопределено И ЗначениеЗаполнено(ДоступнаяНастройка.Заголовок) Тогда ЭлементЗаголовок = ДоступнаяНастройка.Заголовок; Иначе @@ -5419,72 +4966,6 @@ //////////////////////////////////////////////////////////////////////////////// // Уменьшение количества пользовательских настроек. -// Вызывается из события ПриЗаписи вариантов. Часть проверок выполняется до вызова. -Функция УменьшитьКоличествоБыстрыхНастроек(ВариантОбъект, ОтчетОбъект) - - Если ВариантОбъект = Неопределено Тогда - Возврат Ложь; // Варианта нет в базе. Заполнение не требуется. - КонецЕсли; - - // Схема компоновки, на основании которой будет выполняться отчет. - СхемаКД = ОтчетОбъект.СхемаКомпоновкиДанных; - Если СхемаКД = Неопределено Тогда - Возврат Ложь; // Отчет не на СКД. Заполнение не требуется. - КонецЕсли; - - // Чтение настроек из данных варианта. - НастройкиКД = ВариантОбъект.Настройки.Получить(); - Если ТипЗнч(НастройкиКД) <> Тип("НастройкиКомпоновкиДанных") Тогда - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Обнаружены пустые настройки пользовательского варианта ""%1"" отчета ""%2"".'"), - ВариантОбъект.КлючВарианта, ВариантОбъект.Отчет); - ЗаписатьВЖурнал(УровеньЖурналаРегистрации.Ошибка, ТекстОшибки, ВариантОбъект.Ссылка); - Возврат Ложь; // Возникла проблема. - КонецЕсли; - - // Описывает связь настроек компоновки данных и схемы компоновки данных. - КомпоновщикНастроекКД = ОтчетОбъект.КомпоновщикНастроек; - - // Выполняет инициализацию компоновщика и его настроек (Настройки) источником доступных настроек. - КомпоновщикНастроекКД.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКД)); - - // Загружает настройки в компоновщик и сбрасывает пользовательские настройки. - ОтчетыКлиентСервер.ЗагрузитьНастройки(КомпоновщикНастроекКД, НастройкиКД); - - УсловияВывода = Новый Структура; - УсловияВывода.Вставить("ТолькоПользовательские", Истина); - УсловияВывода.Вставить("ТолькоБыстрые", Истина); - УсловияВывода.Вставить("ИдентификаторТекущегоУзлаКД", Неопределено); - - НастройкиОтчета = НастройкиФормыОтчета(ВариантОбъект.Отчет, ВариантОбъект.КлючВарианта, ОтчетОбъект); - - Информация = ОтчетыСервер.РасширеннаяИнформацияОНастройках(КомпоновщикНастроекКД, НастройкиОтчета, ОтчетОбъект, УсловияВывода); - БыстрыеНастройки = Информация.ПользовательскиеНастройки.Скопировать(Новый Структура("ВыводРазрешен, Быстрая", Истина, Истина)); - Если БыстрыеНастройки.Количество() <= 2 Тогда - ОтчетыСервер.ОчиститьРасширеннуюИнформациюОНастройках(Информация); - Возврат Ложь; // Уменьшение количества не требуется. - КонецЕсли; - - Исключаемые = БыстрыеНастройки.НайтиСтроки(Новый Структура("ТипЭлементов", "СтандартныйПериод")); - Для Каждого СтрокаТаблицы Из Исключаемые Цикл - БыстрыеНастройки.Удалить(СтрокаТаблицы); - КонецЦикла; - - Потрачено = Исключаемые.Количество(); - Для Каждого СтрокаТаблицы Из БыстрыеНастройки Цикл - Если Потрачено < 2 Тогда - Потрачено = Потрачено + 1; - Продолжить; - КонецЕсли; - СтрокаТаблицы.НастройкаВариантаКД.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный; - КонецЦикла; - - ВариантОбъект.Настройки = Новый ХранилищеЗначения(КомпоновщикНастроекКД.Настройки); - ОтчетыСервер.ОчиститьРасширеннуюИнформациюОНастройках(Информация); - - Возврат Истина; -КонецФункции - Функция НастройкиФормыОтчета(ОтчетСсылка, КлючВарианта, ОтчетОбъект) Экспорт НастройкиОтчета = ОтчетыКлиентСервер.НастройкиОтчетаПоУмолчанию(); diff --git a/SSL/src/CommonModules/ВариантыОтчетовКлиент/Module.bsl b/SSL/src/CommonModules/ВариантыОтчетовКлиент/Module.bsl index 4d1cd3090..dda8dcca6 100644 --- a/SSL/src/CommonModules/ВариантыОтчетовКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВариантыОтчетовКлиент/Module.bsl @@ -11,7 +11,7 @@ // Открывает форму указанного отчета. // // Параметры: -// ФормаВладелец - УправляемаяФорма, Неопределено - форма, из которой открывается отчет. +// ФормаВладелец - ФормаКлиентскогоПриложения, Неопределено - форма, из которой открывается отчет. // Вариант - СправочникСсылка.ВариантыОтчетов, СправочникСсылка.ДополнительныеОтчетыИОбработки - вариант // отчета, форму которого требуется открыть. Если передан тип СправочникСсылка.ДополнительныеОтчетыИОбработки, // то открывается дополнительный отчет, подключенный к программе. @@ -31,7 +31,7 @@ Возврат; Иначе ПараметрыОткрытия = Новый Структура("Ссылка, Отчет, ТипОтчета, ИмяОтчета, КлючВарианта, КлючЗамеров"); - Если ТипЗнч(ФормаВладелец) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ФормаВладелец) = Тип("ФормаКлиентскогоПриложения") Тогда ЗаполнитьЗначенияСвойств(ПараметрыОткрытия, ФормаВладелец); КонецЕсли; ЗаполнитьЗначенияСвойств(ПараметрыОткрытия, Вариант); @@ -160,7 +160,7 @@ // // Параметры: // Варианты - Массив - перемещаемые варианты отчетов (СправочникСсылка.ВариантыОтчетов). -// Владелец - УправляемаяФорма - для блокирования окна владельца. +// Владелец - ФормаКлиентскогоПриложения - для блокирования окна владельца. // Процедура ОткрытьДиалогРазмещенияВариантовВРазделах(Варианты, Владелец = Неопределено) Экспорт @@ -241,7 +241,7 @@ // Обработчик результата работы процедуры РедактироватьМногострочныйТекст. Процедура РедактироватьМногострочныйТекстЗавершение(Текст, ПараметрыИсточника) Экспорт - Если ТипЗнч(ПараметрыИсточника.ФормаИлиОбработчик) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ПараметрыИсточника.ФормаИлиОбработчик) = Тип("ФормаКлиентскогоПриложения") Тогда Форма = ПараметрыИсточника.ФормаИлиОбработчик; Обработчик = Неопределено; Иначе diff --git a/SSL/src/CommonModules/ВерсионированиеОбъектов/Module.bsl b/SSL/src/CommonModules/ВерсионированиеОбъектов/Module.bsl index 0d57bbf32..0e020c26c 100644 --- a/SSL/src/CommonModules/ВерсионированиеОбъектов/Module.bsl +++ b/SSL/src/CommonModules/ВерсионированиеОбъектов/Module.bsl @@ -98,7 +98,7 @@ // Выполняет с формой действия, необходимые для подключения подсистемы версионирования. // // Параметры: -// Форма - УправляемаяФорма - форма для подключения механизма версионирования. +// Форма - ФормаКлиентскогоПриложения - форма для подключения механизма версионирования. // Процедура ПриСозданииНаСервере(Форма) Экспорт @@ -239,55 +239,6 @@ #Область СлужебныйПрограммныйИнтерфейс -// Дозаполняет реквизиты регистра версий. -Процедура ОбновитьСведенияОВерсияхОбъектов(Параметры) Экспорт - - ТекстЗапроса = - "ВЫБРАТЬ ПЕРВЫЕ 10000 - | ВерсииОбъектов.Объект, - | ВерсииОбъектов.НомерВерсии - |ИЗ - | РегистрСведений.ВерсииОбъектов КАК ВерсииОбъектов - |ГДЕ - | ВерсииОбъектов.РазмерДанных = 0"; - - Запрос = Новый Запрос(ТекстЗапроса); - Выборка = Запрос.Выполнить().Выбрать(); - - ОбработаноЗаписей = 0; - Пока Выборка.Следующий() Цикл - НаборЗаписей = РегистрыСведений.ВерсииОбъектов.СоздатьНаборЗаписей(); - НаборЗаписей.Отбор.Объект.Установить(Выборка.Объект); - НаборЗаписей.Отбор.НомерВерсии.Установить(Выборка.НомерВерсии); - НаборЗаписей.Прочитать(); - Попытка - НаборЗаписей.Записать(); - ОбработаноЗаписей = ОбработаноЗаписей + 1; - Исключение - ЗаписьЖурналаРегистрации( - НСтр("ru = 'Версионирование'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, НаборЗаписей.Метаданные(), - , - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не удалось обновить сведения о версии №%1 объекта ""%2"" по причине: - |%3'", ОбщегоНазначения.КодОсновногоЯзыка()), - Выборка.НомерВерсии, - ОбщегоНазначения.ПредметСтрокой(Выборка.Объект), - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); - КонецПопытки; - КонецЦикла; - - Если Выборка.Количество() > 0 Тогда - Если ОбработаноЗаписей = 0 Тогда - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре ОбновитьСведенияОВерсияхОбъектов не удалось обработать некоторые записи регистра сведений ВерсииОбъектов (пропущены): %1'"), - Выборка.Количество()); - ВызватьИсключение ТекстСообщения; - КонецЕсли; - Параметры.ОбработкаЗавершена = Ложь; - КонецЕсли; - -КонецПроцедуры - // Записывает версию объекта в информационную базу. // // Параметры: @@ -515,43 +466,6 @@ КонецФункции -Процедура ПеренестиНастройкиВерсионирования() Экспорт - - ТекстЗапроса = - "ВЫБРАТЬ - | УдалитьНастройкиВерсионированияОбъектов.ТипОбъекта КАК ИмяОбъекта, - | УдалитьНастройкиВерсионированияОбъектов.Вариант, - | УдалитьНастройкиВерсионированияОбъектов.СрокХраненияВерсий - |ИЗ - | РегистрСведений.УдалитьНастройкиВерсионированияОбъектов КАК УдалитьНастройкиВерсионированияОбъектов"; - - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса; - РезультатЗапроса = Запрос.Выполнить(); - Если РезультатЗапроса.Пустой() Тогда - Возврат; - КонецЕсли; - НастройкиВерсионирования = РезультатЗапроса.Выгрузить(); - - НаборЗаписей = РегистрыСведений.НастройкиВерсионированияОбъектов.СоздатьНаборЗаписей(); - Для Каждого НастройкаВерсионирования Из НастройкиВерсионирования Цикл - ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(НастройкаВерсионирования.ИмяОбъекта); - Если ОбъектМетаданных = Неопределено Тогда - Продолжить; - КонецЕсли; - ТипОбъекта = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданных); - - Запись = НаборЗаписей.Добавить(); - ЗаполнитьЗначенияСвойств(Запись, НастройкаВерсионирования); - Запись.ТипОбъекта = ТипОбъекта; - КонецЦикла; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборЗаписей); - - НаборЗаписей = РегистрыСведений.УдалитьНастройкиВерсионированияОбъектов.СоздатьНаборЗаписей(); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборЗаписей); - -КонецПроцедуры - Функция ЕстьПравоЧтенияИнформацииОВерсияхОбъектов() Экспорт Возврат ПравоДоступа("Просмотр", Метаданные.РегистрыСведений.ВерсииОбъектов); КонецФункции @@ -955,23 +869,6 @@ КонецПроцедуры -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.3.8"; - Обработчик.Процедура = "ВерсионированиеОбъектов.ОбновитьСведенияОВерсияхОбъектов"; - Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.Идентификатор = Новый УникальныйИдентификатор("b403067e-7c2d-461c-89f9-5d5fc95dcab6"); - Обработчик.Комментарий = НСтр("ru = 'Обновление сведений о записанных версиях объектов. После выполнения обновления увеличится скорость записи версионируемых объектов.'"); - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.4.13"; - Обработчик.Процедура = "ВерсионированиеОбъектов.ПеренестиНастройкиВерсионирования"; - Обработчик.Комментарий = НСтр("ru = 'Обновление настроек версионирования.'"); - -КонецПроцедуры - // См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий. Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт Настройка = Настройки.Добавить(); diff --git a/SSL/src/CommonModules/Взаимодействия/Module.bsl b/SSL/src/CommonModules/Взаимодействия/Module.bsl index ab1babce5..e8263dcc5 100644 --- a/SSL/src/CommonModules/Взаимодействия/Module.bsl +++ b/SSL/src/CommonModules/Взаимодействия/Module.bsl @@ -155,7 +155,7 @@ // Подготавливает оповещение при создании на сервере документа взаимодействий. // Параметры: -// Форма - УправляемаяФорма - форма, из которой будет отправлено оповещение. +// Форма - ФормаКлиентскогоПриложения - форма, из которой будет отправлено оповещение. // Параметры - Структура - параметры создания формы документа взаимодействий. // ИспользоватьВзаимодействиеОснование - Булево - признак необходимости учитывать документ-основание. // @@ -699,10 +699,7 @@ // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт - Типы.Добавить(Метаданные.РегистрыСведений.ЗаблокированныеДляПолученияУчетныеЗаписи); - Типы.Добавить(Метаданные.РегистрыСведений.Удалить_АктивныеПредметыВзаимодействий); - КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиента. @@ -877,94 +874,6 @@ Обработчик.НачальноеЗаполнение = Истина; Обработчик.Процедура = "Взаимодействия.ОтключитьПодсистемуВМоделиСервиса"; - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.1.2.4"; - Обработчик.Процедура = "Взаимодействия.ОбновитьХранениеПредмета_1_2_1_4"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.1.2.4"; - Обработчик.Процедура = "Взаимодействия.ОбновитьХранениеОтветственныйУчетнаяЗапись_1_2_1_4"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.1.2.4"; - Обработчик.Процедура = "Взаимодействия.СоздатьПапкиЭлектронныхПисем_1_2_1_4"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.1.2.4"; - Обработчик.Процедура = "Взаимодействия.ПереместитьПисьмаВПредопределенныеПапки_1_2_1_4"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.1.2.4"; - Обработчик.Процедура = "Взаимодействия.ПреобразоватьОписаниеВТему_1_2_1_4"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.1.2.4"; - Обработчик.Процедура = "Взаимодействия.ЗаполнитьРазмерДляИсходящихЭлектронныхПисем_1_2_1_4"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.0.1.2"; - Обработчик.Процедура = "Взаимодействия.ВыполнитьПерекодировкуПапокЭлектроннойПочты_2_0_1_2"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.3.22"; - Обработчик.Процедура = "Взаимодействия.ОбновитьХранениеВключатьВПредставлениеИмяПользователя_2_1_3_22"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.12"; - Обработчик.Процедура = "РегистрыСведений.ПредметыПапкиВзаимодействий.ОбновитьХранениеРассмотреноРассмотретьПосле_2_2_0_0"; - Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.Идентификатор = Новый УникальныйИдентификатор("c12dc82c-2358-4abd-9622-656a6a188062"); - Обработчик.Комментарий = НСтр("ru = 'Переносится хранение реквизитов ""Рассмотрено"" и ""РассмотретьПосле"" в регистр сведений ""ПредметыПапкиВзаимодействий"". Без выполнения обработчика значения данных реквизитов будут отображаться некорректно.'"); - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.12"; - Обработчик.Процедура = "РегистрыСведений.КонтактыВзаимодействий.ЗаполнитьКонтактыВзаимодействий_2_2_0_0"; - Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.Идентификатор = Новый УникальныйИдентификатор("bfe0bff5-6d5c-4359-a994-6e76bf824454"); - Обработчик.Комментарий = НСтр("ru = 'Заполняется вспомогательный регистр сведений ""КонтактыВзаимодействий"". Без выполнения обработчика не будут корректно работать отборы по контактам взаимодействий.'"); - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.12"; - Обработчик.Процедура = "РегистрыСведений.СостоянияПапокПисем.РассчитатьСостоянияПапокЭлектронныхПисем_2_2_0_0"; - Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.Идентификатор = Новый УникальныйИдентификатор("48cc6281-e934-45d6-b673-819c68016d11"); - Обработчик.Комментарий = НСтр("ru = 'Выполняется первоначальный расчет количества нерассмотренных писем по папкам. Без выполнения обработчика не будет корректно выводится информация о количестве нерассмотренных писем по папкам.'"); - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.12"; - Обработчик.Процедура = "РегистрыСведений.СостоянияПредметовВзаимодействий.РассчитатьСостоянияПредметовВзаимодействий_2_2_0_0"; - Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.Идентификатор = Новый УникальныйИдентификатор("0eec6511-cb6c-443b-b27b-6b888aad99ef"); - Обработчик.Комментарий = НСтр("ru = 'Выполняется первоначальный расчет количества состояний предметов взаимодействий. Без выполнения обработчика не будет корректно выводится информация в панель навигации журнала взаимодействий по предметам.'"); - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.12"; - Обработчик.Процедура = "РегистрыСведений.СостоянияКонтактовВзаимодействий.РассчитатьСостоянияКонтактовВзаимодействий_2_2_0_0"; - Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.Идентификатор = Новый УникальныйИдентификатор("4ec55cf6-e322-49f2-b977-77b718a4e7ca"); - Обработчик.Комментарий = НСтр("ru = 'Выполняется первоначальный расчет количества состояний контактов взаимодействий. Без выполнения обработчика не будет корректно выводится информация в панель навигации журнала взаимодействий по контактам.'"); - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.29"; - Обработчик.Процедура = "Взаимодействия.ОтключитьПодсистемуВМоделиСервиса"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.3.28"; - Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.Идентификатор = Новый УникальныйИдентификатор("301d4867-5fb2-45ff-9d32-dc3e5da008df"); - Обработчик.Процедура = "Документы.ЭлектронноеПисьмоВходящее.ЗаполнитьВзаимодействияОснованияУПодчиненныхПисем"; - Обработчик.ПроцедураЗаполненияДанныхОбновления = "Документы.ЭлектронноеПисьмоВходящее.ЗаполнитьВзаимодействияОснованияУПодчиненныхПисемКОбработке"; - Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; - Обработчик.ОчередьОтложеннойОбработки = 1; - Обработчик.ЧитаемыеОбъекты = "Документ.ЭлектронноеПисьмоВходящее, Документ.ЭлектронноеПисьмоИсходящее"; - Обработчик.ИзменяемыеОбъекты = "Документ.ЭлектронноеПисьмоВходящее"; - Обработчик.БлокируемыеОбъекты = "Документ.ЭлектронноеПисьмоВходящее"; - Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика(); - Приоритет = Обработчик.ПриоритетыВыполнения.Добавить(); - Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ОбработатьДанныеДляПереходаНаНовуюВерсию"; - Приоритет.Порядок = "Любой"; - Обработчик.Комментарий = НСтр("ru = 'Выполняет дозаполнение реквизита ВзаимодействиеОснование для входящих писем, у которых письмо основание в ИБ есть, но оно не указано.'"); - Обработчик = Обработчики.Добавить(); Обработчик.Версия = "2.3.6.76"; Обработчик.Идентификатор = Новый УникальныйИдентификатор("35e85660-7125-4079-b5df-5a71dbb43a48"); @@ -1005,16 +914,6 @@ Блокировка.Добавить("РегистрСведений.НастройкиУчетныхЗаписейЭлектроннойПочты"); КонецПроцедуры -Функция ЕстьВозможностьФильтрацииСодержимогоHTML() Экспорт - - СистемнаяИнформация = Новый СистемнаяИнформация; - ТекущаяВерсияПлатформы = СистемнаяИнформация.ВерсияПриложения; - ТребуемаяВерсияПлатформы = "8.3.13.0"; - - Возврат ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ТребуемаяВерсияПлатформы, ТекущаяВерсияПлатформы) <= 0; - -КонецФункции - // См. УправлениеСвойствамиПереопределяемый.ПриПолученииПредопределенныхНаборовСвойств. Процедура ПриПолученииПредопределенныхНаборовСвойств(Наборы) Экспорт Набор = Наборы.Строки.Добавить(); @@ -1142,7 +1041,7 @@ // // Параметры: // Контакт - СправочникСсылка - контакт на котором необходимо спозиционироваться в форме. -// Форма - УправляемаяФорма - форма для которой выполняются действия. +// Форма - ФормаКлиентскогоПриложения - форма для которой выполняются действия. // Процедура УстановитьТекущимКонтакт(Контакт, Форма) Экспорт @@ -1211,15 +1110,13 @@ Возврат Адрес; ИначеЕсли ПустаяСтрока(Адрес) Тогда Возврат Представление; - ИначеЕсли СокрЛП(Представление) = СокрЛП(Адрес) Тогда - Возврат Адрес; КонецЕсли; ВариантыПоиска = Новый СписокЗначений; Представление = ДобавитьКавычкиКСтроке(Представление); Адрес = ДобавитьКавычкиКСтроке(Адрес); - ВариантыПоиска.Добавить(Представление + " И " + Адрес); ВариантыПоиска.Добавить(Представление + " ИЛИ " + Адрес); + ВариантыПоиска.Добавить(Представление + " И " + Адрес); Возврат ВариантыПоиска; @@ -1657,7 +1554,7 @@ // // Параметры: // Телефон - Строка - строка, содержащая телефон. -// Форма - УправляемаяФорма - Форма, для которой выполняется операция. +// Форма - ФормаКлиентскогоПриложения - Форма, для которой выполняется операция. // // Возвращаемое значение: // Булево - Истина, если найден хотя бы один контакт. @@ -1793,7 +1690,7 @@ // // Параметры: // Наименование - Строка - строка, содержащая начало наименования контакта. -// Форма - УправляемаяФорма - Форма, для которой выполняется операция. +// Форма - ФормаКлиентскогоПриложения - Форма, для которой выполняется операция. // // Возвращаемое значение: // Булево - Истина, если найден хотя бы один контакт. @@ -1895,7 +1792,7 @@ // Параметры: // СтрокаПоиска - Строка - служит основой для поиска. // ПоДомену - Булево - признак того, что поиск необходимо осуществлять по домену. -// Форма - УправляемаяФорма - Форма, для которой выполняется операция. +// Форма - ФормаКлиентскогоПриложения - Форма, для которой выполняется операция. // // Возвращаемое значение: // Булево - Истина, если найден хотя бы один контакт. @@ -1987,7 +1884,7 @@ // Выполняет поиск контактов по строке. // // Параметры: -// Форма - УправляемаяФорма - форма для которой осуществляется поиск. +// Форма - ФормаКлиентскогоПриложения - форма для которой осуществляется поиск. // ДляАдреснойКниги - Булево - признак того, что поиск осуществляется для адресной книги. // // Возвращаемое значение: @@ -2288,7 +2185,7 @@ // Получает значения реквизитов документа взаимодействия, хранящиеся в регистре и // устанавливает их в соответствующие реквизиты формы. // Параметры: -// Форма - УправляемаяФорма - форма документа взаимодействия. +// Форма - ФормаКлиентскогоПриложения - форма документа взаимодействия. // Процедура УстановитьРеквизитыФормыВзаимодействияПоДаннымРегистра(Форма) Экспорт @@ -3589,7 +3486,7 @@ // Устанавливает заголовок формы электронного письма. // // Параметры: -// Форма - УправляемаяФорма - форма для которой выполняется процедура. +// Форма - ФормаКлиентскогоПриложения - форма для которой выполняется процедура. // Процедура УстановитьЗаголовокФормыЭлектронногоПисьма(Форма) Экспорт @@ -3624,536 +3521,6 @@ КонецПроцедуры -// Процедура обновления ИБ для версии БСП 1.2.1.4. -// Перемещает письма в предопределенные папки. -// -Процедура ПереместитьПисьмаВПредопределенныеПапки_1_2_1_4() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ - | ЭлектронноеПисьмоВходящее.Ссылка КАК Письмо, - | ПапкиЭлектронныхПисем.Ссылка КАК Папка - |ИЗ - | Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПапкиЭлектронныхПисем КАК ПапкиЭлектронныхПисем - | ПО ЭлектронноеПисьмоВходящее.УчетнаяЗапись = ПапкиЭлектронныхПисем.Владелец - |ГДЕ - | ПапкиЭлектронныхПисем.Наименование = &Входящие - | И ПапкиЭлектронныхПисем.ПредопределеннаяПапка - | И (НЕ ЭлектронноеПисьмоВходящее.ПометкаУдаления) - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ЭлектронноеПисьмоИсходящее.Ссылка, - | ПапкиЭлектронныхПисем.Ссылка - |ИЗ - | Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПапкиЭлектронныхПисем КАК ПапкиЭлектронныхПисем - | ПО ЭлектронноеПисьмоИсходящее.УчетнаяЗапись = ПапкиЭлектронныхПисем.Владелец - |ГДЕ - | ЭлектронноеПисьмоИсходящее.СтатусПисьма = ЗНАЧЕНИЕ(Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Отправлено) - | И ПапкиЭлектронныхПисем.ПредопределеннаяПапка - | И ПапкиЭлектронныхПисем.Наименование = &Отправленные - | И (НЕ ЭлектронноеПисьмоИсходящее.ПометкаУдаления) - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ЭлектронноеПисьмоИсходящее.Ссылка, - | ПапкиЭлектронныхПисем.Ссылка - |ИЗ - | Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПапкиЭлектронныхПисем КАК ПапкиЭлектронныхПисем - | ПО ЭлектронноеПисьмоИсходящее.УчетнаяЗапись = ПапкиЭлектронныхПисем.Владелец - |ГДЕ - | ЭлектронноеПисьмоИсходящее.СтатусПисьма = ЗНАЧЕНИЕ(Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Черновик) - | И ПапкиЭлектронныхПисем.ПредопределеннаяПапка - | И ПапкиЭлектронныхПисем.Наименование = &Черновики - | И (НЕ ЭлектронноеПисьмоИсходящее.ПометкаУдаления) - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ЭлектронноеПисьмоИсходящее.Ссылка, - | ПапкиЭлектронныхПисем.Ссылка - |ИЗ - | Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПапкиЭлектронныхПисем КАК ПапкиЭлектронныхПисем - | ПО ЭлектронноеПисьмоИсходящее.УчетнаяЗапись = ПапкиЭлектронныхПисем.Владелец - |ГДЕ - | ЭлектронноеПисьмоИсходящее.СтатусПисьма = ЗНАЧЕНИЕ(Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Исходящее) - | И ПапкиЭлектронныхПисем.ПредопределеннаяПапка - | И ПапкиЭлектронныхПисем.Наименование = &Исходящие - | И (НЕ ЭлектронноеПисьмоИсходящее.ПометкаУдаления) - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ЭлектронноеПисьмоВходящее.Ссылка, - | ПапкиЭлектронныхПисем.Ссылка - |ИЗ - | Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПапкиЭлектронныхПисем КАК ПапкиЭлектронныхПисем - | ПО ЭлектронноеПисьмоВходящее.УчетнаяЗапись = ПапкиЭлектронныхПисем.Владелец - |ГДЕ - | ЭлектронноеПисьмоВходящее.ПометкаУдаления - | И ПапкиЭлектронныхПисем.ПредопределеннаяПапка - | И ПапкиЭлектронныхПисем.Наименование = &Удаленные - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ЭлектронноеПисьмоИсходящее.Ссылка, - | ПапкиЭлектронныхПисем.Ссылка - |ИЗ - | Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПапкиЭлектронныхПисем КАК ПапкиЭлектронныхПисем - | ПО ЭлектронноеПисьмоИсходящее.УчетнаяЗапись = ПапкиЭлектронныхПисем.Владелец - |ГДЕ - | ЭлектронноеПисьмоИсходящее.ПометкаУдаления - | И ПапкиЭлектронныхПисем.ПредопределеннаяПапка - | И ПапкиЭлектронныхПисем.Наименование = &Удаленные"; - - УстановитьПараметрыЗапросаИменаПредопределенныеПапки(Запрос); - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - - ВзаимодействияВызовСервера.УстановитьПапкуЭлектронногоПисьма(Выборка.Письмо, Выборка.Папка); - - КонецЦикла; - -КонецПроцедуры - -// Процедура обновления ИБ для версии БСП 1.2.1.4. -// Переносит предмет взаимодействий из реквизита документа в регистр сведений ПредметыПапкиВзаимодействий. -// -Процедура СоздатьПапкиЭлектронныхПисем_1_2_1_4() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ - | УчетныеЗаписиЭлектроннойПочты.Ссылка - |ИЗ - | Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты"; - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - - УправлениеЭлектроннойПочтой.СоздатьПредопределенныеПапкиЭлектронныхПисемДляУчетнойЗаписи(Выборка.Ссылка); - - КонецЦикла; - -КонецПроцедуры - -// Процедура обновления ИБ для версии БСП 1.2.1.4. -// Переносит данные из реквизита ОтветственныйЗаОбработкуПисем справочника УчетныеЗаписиЭлектроннойПочты в -// реквизиты ОтветственныйЗаОбработкуПисем и ОтветственныйЗаВедениеПапок регистра сведений -// НастройкиУчетныхЗаписейЭлектроннойПочты. -// -Процедура ОбновитьХранениеОтветственныйУчетнаяЗапись_1_2_1_4() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ - | УчетныеЗаписиЭлектроннойПочты.Ссылка, - | УчетныеЗаписиЭлектроннойПочты.УдалитьОтветственныйЗаОбработкуПисем - |ИЗ - | Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты - |ГДЕ - | УчетныеЗаписиЭлектроннойПочты.УдалитьОтветственныйЗаОбработкуПисем <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) - |"; - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - - МенеджерЗаписи = РегистрыСведений.НастройкиУчетныхЗаписейЭлектроннойПочты.СоздатьМенеджерЗаписи(); - МенеджерЗаписи.УчетнаяЗаписьЭлектроннойПочты = Выборка.Ссылка; - МенеджерЗаписи.ВключатьПодписьДляНовыхСообщений = Ложь; - МенеджерЗаписи.ВключатьПодписьПриОтветеПересылке = Ложь; - МенеджерЗаписи.ОтветственныйЗаОбработкуПисем = Выборка.УдалитьОтветственныйЗаОбработкуПисем; - МенеджерЗаписи.ОтветственныйЗаВедениеПапок = Выборка.УдалитьОтветственныйЗаОбработкуПисем; - МенеджерЗаписи.Записать(); - - КонецЦикла; - -КонецПроцедуры - -// Процедура обновления ИБ для версии БСП 2.1.3.22. -// Переносит данные из реквизита ВключатьВПредставлениеИмяПользователя справочника УчетныеЗаписиЭлектроннойПочты в -// реквизит ВключатьВПредставлениеИмяПользователя регистра сведений НастройкиУчетныхЗаписейЭлектроннойПочты. -// -Процедура ОбновитьХранениеВключатьВПредставлениеИмяПользователя_2_1_3_22() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = " - |ВЫБРАТЬ - | УчетныеЗаписиЭлектроннойПочты.Ссылка - |ИЗ - | РегистрСведений.НастройкиУчетныхЗаписейЭлектроннойПочты КАК НастройкиУчетныхЗаписейЭлектроннойПочты - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты - | ПО НастройкиУчетныхЗаписейЭлектроннойПочты.УчетнаяЗаписьЭлектроннойПочты = УчетныеЗаписиЭлектроннойПочты.Ссылка - |ГДЕ - | УчетныеЗаписиЭлектроннойПочты.УдалитьВПредставлениеВключатьИмяПользователя - | И НЕ НастройкиУчетныхЗаписейЭлектроннойПочты.ВПредставлениеВключатьИмяПользователя"; - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - - НаборЗаписей = РегистрыСведений.НастройкиУчетныхЗаписейЭлектроннойПочты.СоздатьНаборЗаписей(); - НаборЗаписей.Отбор.УчетнаяЗаписьЭлектроннойПочты.Установить(Выборка.Ссылка); - НаборЗаписей.Прочитать(); - Для Каждого Запись Из НаборЗаписей Цикл - Запись.ВПредставлениеВключатьИмяПользователя = Истина; - КонецЦикла; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборЗаписей); - - КонецЦикла; - -КонецПроцедуры - -// Процедура обновления ИБ для версии БСП 1.2.1.4. -// Переносит предмет взаимодействий из реквизита документа в регистр сведений ПредметыПапкиВзаимодействий. -// -Процедура ОбновитьХранениеПредмета_1_2_1_4() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ - | Встреча.Ссылка, - | Встреча.УдалитьПредмет КАК Предмет - |ИЗ - | Документ.Встреча КАК Встреча - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ЗапланированноеВзаимодействие.Ссылка, - | ЗапланированноеВзаимодействие.УдалитьПредмет - |ИЗ - | Документ.ЗапланированноеВзаимодействие КАК ЗапланированноеВзаимодействие - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ТелефонныйЗвонок.Ссылка, - | ТелефонныйЗвонок.УдалитьПредмет КАК Предмет - |ИЗ - | Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ЭлектронноеПисьмоВходящее.Ссылка, - | ЭлектронноеПисьмоВходящее.УдалитьПредмет КАК Предмет - |ИЗ - | Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ЭлектронноеПисьмоИсходящее.Ссылка, - | ЭлектронноеПисьмоИсходящее.УдалитьПредмет КАК Предмет - |ИЗ - | Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее"; - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - - УстановитьПредмет(Выборка.Ссылка, ?(ЗначениеЗаполнено(Выборка.Предмет), Выборка.Предмет, Выборка.Ссылка)); - - КонецЦикла; - -КонецПроцедуры - -// Процедура обновления ИБ для версии БСП 1.2.1.4. -// Преобразовывает начало описания документов "Встреча", "Телефонный звонок" и "Запланированное взаимодействие" в -// реквизит Тема. -// -Процедура ПреобразоватьОписаниеВТему_1_2_1_4() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = " - |ВЫБРАТЬ - | Встреча.Ссылка, - | ПОДСТРОКА(Встреча.Описание, 1, 1024) КАК Описание - |ИЗ - | Документ.Встреча КАК Встреча - |ГДЕ - | Встреча.Тема <> """""""" - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ЗапланированноеВзаимодействие.Ссылка, - | ПОДСТРОКА(ЗапланированноеВзаимодействие.Описание, 1, 1024) - |ИЗ - | Документ.ЗапланированноеВзаимодействие КАК ЗапланированноеВзаимодействие - |ГДЕ - | ЗапланированноеВзаимодействие.Тема <> """""""" - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ТелефонныйЗвонок.Ссылка, - | ПОДСТРОКА(ТелефонныйЗвонок.Описание, 1, 1024) - |ИЗ - | Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок - |ГДЕ - | ТелефонныйЗвонок.Тема <> """""""""; - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - Если Не ПустаяСтрока(Выборка.Описание) Тогда - ВзаимодействиеОбъект = Выборка.Ссылка.ПолучитьОбъект(); - ВзаимодействиеОбъект.Тема = Выборка.Описание; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ВзаимодействиеОбъект); - КонецЕсли; - КонецЦикла; - -КонецПроцедуры - -// Процедура обновления ИБ для версии БСП 1.2.1.4. -// Определяет оценочный размер исходящих писем. -// -Процедура ЗаполнитьРазмерДляИсходящихЭлектронныхПисем_1_2_1_4() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ - | ЭлектронноеПисьмоИсходящее.Ссылка - |ИЗ - | Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее"; - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - - ПисьмоОбъект = Выборка.Ссылка.ПолучитьОбъект(); - ПисьмоОбъект.Размер = ОценитьРазмерИсходящегоЭлектронногоПисьма(Выборка.Ссылка); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ПисьмоОбъект); - - КонецЦикла; - -КонецПроцедуры - -// Заполняет коды у предопределенных папок и выполняет перекодировку справочника -// если это необходимо. -// -Процедура ВыполнитьПерекодировкуПапокЭлектроннойПочты_2_0_1_2() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ - | ПапкиЭлектронныхПисем.Владелец КАК Владелец - |ПОМЕСТИТЬ ПапкиСПроблемами - |ИЗ - | Справочник.ПапкиЭлектронныхПисем КАК ПапкиЭлектронныхПисем - |ГДЕ - | ПапкиЭлектронныхПисем.Код = """" - | И ПапкиЭлектронныхПисем.ПредопределеннаяПапка - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | ПапкиЭлектронныхПисем.Ссылка - |ИЗ - | Справочник.ПапкиЭлектронныхПисем КАК ПапкиЭлектронныхПисем - |ГДЕ - | ПапкиЭлектронныхПисем.Владелец В - | (ВЫБРАТЬ - | ПапкиСПроблемами.Владелец - | ИЗ - | ПапкиСПроблемами КАК ПапкиСПроблемами) - | И ПапкиЭлектронныхПисем.ПредопределеннаяПапка - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | ПапкиЭлектронныхПисем.Ссылка КАК Ссылка - |ИЗ - | Справочник.ПапкиЭлектронныхПисем КАК ПапкиЭлектронныхПисем - |ГДЕ - | ПапкиЭлектронныхПисем.Владелец В - | (ВЫБРАТЬ - | ПапкиСПроблемами.Владелец - | ИЗ - | ПапкиСПроблемами КАК ПапкиСПроблемами) - | И (НЕ ПапкиЭлектронныхПисем.ПредопределеннаяПапка) - | - |УПОРЯДОЧИТЬ ПО - | ПапкиЭлектронныхПисем.Код"; - - Результат = Запрос.ВыполнитьПакет(); - ВыборкаПредопределенные = Результат[1].Выбрать(); - - Пока ВыборкаПредопределенные.Следующий() Цикл - - ПапкаОбъект = ВыборкаПредопределенные.Ссылка.ПолучитьОбъект(); - ПапкаОбъект.УстановитьНовыйКод(); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ПапкаОбъект); - - КонецЦикла; - - ВыборкаПользовательские = Результат[2].Выбрать(); - - Пока ВыборкаПользовательские.Следующий() Цикл - - ПапкаОбъект = ВыборкаПользовательские.Ссылка.ПолучитьОбъект(); - ПапкаОбъект.УстановитьНовыйКод(); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ПапкаОбъект); - КонецЦикла; - -КонецПроцедуры - -Функция ТекстЗапросаОтметкиКОбработкиЗаполненияПисемОснований(ПолноеИмяДокумента) Экспорт - - Текст = " - |ВЫБРАТЬ - | ТаблицаДокумента.Ссылка КАК Ссылка - |ИЗ - | ЖурналДокументов.Взаимодействия КАК Взаимодействия - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПолноеИмяДокумента КАК ТаблицаДокумента - | ПО Взаимодействия.ИдентификаторСообщения = ТаблицаДокумента.ИдентификаторОснования - | И Взаимодействия.УчетнаяЗапись = ТаблицаДокумента.УчетнаяЗапись - | И Взаимодействия.Ссылка <> ТаблицаДокумента.ВзаимодействиеОснование - | И (Взаимодействия.ИдентификаторСообщения <> """") - | И (ТаблицаДокумента.ВзаимодействиеОснование <> """")"; - - Возврат СтрЗаменить(Текст, "ПолноеИмяДокумента", ПолноеИмяДокумента); - -КонецФункции - -Процедура ЗаполнитьВзаимодействияОснованияУПодчиненныхПисем(Параметры, ПолноеИмяДокумента, МетаданныеДокумента) Экспорт - - ТекстЗапроса = " - |ВЫБРАТЬ - | ТаблицаДокумента.Ссылка КАК Письмо, - | Взаимодействия.Ссылка КАК ПисьмоОснование - |ИЗ - | &ВТДокументыДляОбработки КАК СсылкиДляОбработки - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЭлектронноеПисьмоИсходящее КАК ТаблицаДокумента - | ПО ТаблицаДокумента.Ссылка = СсылкиДляОбработки.Ссылка - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЖурналДокументов.Взаимодействия КАК Взаимодействия - | ПО Взаимодействия.ИдентификаторСообщения = ТаблицаДокумента.ИдентификаторОснования - | И Взаимодействия.УчетнаяЗапись = ТаблицаДокумента.УчетнаяЗапись - | И Взаимодействия.Ссылка <> ТаблицаДокумента.ВзаимодействиеОснование - | И (Взаимодействия.ИдентификаторСообщения <> """") - | И (ТаблицаДокумента.ВзаимодействиеОснование <> """") - | - |; - |////////////////////////////////////////////////////////////////////////////////1 - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | СсылкиДляОбработки.Ссылка - |ИЗ - | &ВТДокументыДляОбработки КАК СсылкиДляОбработки - |; - |"; - - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ПолноеИмяДокумента", ПолноеИмяДокумента); - - МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; - Результат = ОбновлениеИнформационнойБазы.СоздатьВременнуюТаблицуСсылокДляОбработки(Параметры.Очередь, ПолноеИмяДокумента, МенеджерВременныхТаблиц); - Если НЕ Результат.ЕстьДанныеДляОбработки Тогда - Параметры.ОбработкаЗавершена = Истина; - Возврат; - КонецЕсли; - Если НЕ Результат.ЕстьЗаписиВоВременнойТаблице Тогда - Параметры.ОбработкаЗавершена = Ложь; - Возврат; - КонецЕсли; - - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ВТДокументыДляОбработки", Результат.ИмяВременнойТаблицы); - - Запрос = Новый Запрос(ТекстЗапроса); - Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; - - Результат = Запрос.ВыполнитьПакет(); - ВыборкаПисьма = Результат[0].Выбрать(); - - // Здесь все документы, пришедшие из очереди. - ТаблицаСсылокКОбработке = Результат[1].Выгрузить(); - СоответствиеОбработанныхДокументов = Новый Соответствие; - - Пока ВыборкаПисьма.Следующий() Цикл - - НачатьТранзакцию(); - - Попытка - - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить(ПолноеИмяДокумента); - ЭлементБлокировки.УстановитьЗначение("Ссылка", ВыборкаПисьма.Письмо); - Блокировка.Заблокировать(); - - Исключение - - ОтменитьТранзакцию(); - СоответствиеОбработанныхДокументов.Вставить(ВыборкаПисьма.Письмо); - ТекстСообщения = НСтр("ru = 'Не удалось заблокировать документ: %Регистратор% по причине: %Причина%'"); - ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Регистратор%", ВыборкаПисьма.Письмо); - ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Причина%", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), - УровеньЖурналаРегистрации.Предупреждение, - МетаданныеДокумента, - ВыборкаПисьма.Письмо, - ТекстСообщения); - Продолжить; - - КонецПопытки; - - Попытка - - ПисьмоОбъект = ВыборкаПисьма.Письмо.ПолучитьОбъект(); - - Если ПисьмоОбъект = Неопределено Тогда - - СоответствиеОбработанныхДокументов.Вставить(ВыборкаПисьма.Письмо); - - Иначе - - ПисьмоОбъект.ВзаимодействиеОснование = ВыборкаПисьма.ПисьмоОснование; - - ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ПисьмоОбъект, Истина); - - СоответствиеОбработанныхДокументов.Вставить(ВыборкаПисьма.Письмо); - ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(ВыборкаПисьма.Письмо,, Параметры.Очередь); - - КонецЕсли; - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - ТекстСообщения = НСтр("ru = 'Не удалось обработать документ: %Регистратор% по причине: %Причина%'"); - ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Регистратор%", ВыборкаПисьма.Письмо); - ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Причина%", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), - УровеньЖурналаРегистрации.Предупреждение, - МетаданныеДокумента, - ВыборкаПисьма.Письмо, - ТекстСообщения); - ВызватьИсключение; - - КонецПопытки; - - КонецЦикла; - - Для Каждого СтрокаТаблицы Из ТаблицаСсылокКОбработке Цикл - - Если СоответствиеОбработанныхДокументов.Получить(СтрокаТаблицы.Ссылка) = Неопределено Тогда - ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СтрокаТаблицы.Ссылка,, Параметры.Очередь); - КонецЕсли; - - КонецЦикла; - - Параметры.ОбработкаЗавершена = Не ОбновлениеИнформационнойБазы.ЕстьДанныеДляОбработки(Параметры.Очередь, ПолноеИмяДокумента); - -КонецПроцедуры - // Заполняет список выбора для поля "Рассмотреть после". // // Параметры: @@ -4274,7 +3641,7 @@ // Обработчик события перед записью, возникающих в формах документов взаимодействий. // // Параметры: -// Форма - УправляемаяФорма - форма в которой произошло событие. +// Форма - ФормаКлиентскогоПриложения - форма в которой произошло событие. // ТекущийОбъект - ДокументОбъект - документ, в котором возникло событие. // Процедура ПередЗаписьюВзаимодействияИзФормы(Форма, ТекущийОбъект, ИзменилисьКонтакты = Ложь) Экспорт @@ -4314,7 +3681,7 @@ // в формах списков документов взаимодействий. // // Параметры: -// Форма - УправляемаяФорма - форма для которой выполняется процедура. +// Форма - ФормаКлиентскогоПриложения - форма для которой выполняется процедура. // Настройки - Соответствие - загружаемые настройки. // Процедура ПриЗагрузкеТипаВзаимодействийИзНастроек(Форма, Настройки) Экспорт @@ -4470,7 +3837,7 @@ // Инициализирует переданную форму списка взаимодействий Форма согласно значениям // функциональных опций. // Параметры: -// Форма - УправляемаяФорма - форма, для которой выполняется инициализация реквизитов. +// Форма - ФормаКлиентскогоПриложения - форма, для которой выполняется инициализация реквизитов. // Параметры - Структура - // Процедура ИнициализироватьФормуСпискаВзаимодействий(Форма, Параметры) Экспорт @@ -4512,7 +3879,7 @@ // Определяет необходимость отображения для адресной книги и форм выбора контакта групп пользователей. // // Параметры: -// Форма - УправляемаяФорма - форма для которой будет выполняться процедура. +// Форма - ФормаКлиентскогоПриложения - форма для которой будет выполняться процедура. // Процедура ОбработатьНеобходимостьОтображенияГруппПользователей(Форма) Экспорт @@ -4848,8 +4215,8 @@ КонецЕсли; - ЕстьВнешниеРесурсы = ЕстьВнешниеРесурсы(ДокументHTML); - ОтключитьНебезопасноеСодержимое(ДокументHTML, ЕстьВнешниеРесурсы И ОтключитьВнешниеРесурсы); + ЕстьВнешниеРесурсы = РаботаСПочтовымиСообщениями.ЕстьВнешниеРесурсы(ДокументHTML); + РаботаСПочтовымиСообщениями.ОтключитьНебезопасноеСодержимое(ДокументHTML, ЕстьВнешниеРесурсы И ОтключитьВнешниеРесурсы); Возврат ДокументHTML; @@ -8768,123 +8135,12 @@ КонецФункции -Функция ЕстьВнешниеРесурсы(ДокументHTML) - - Если Не ЕстьВозможностьФильтрацииСодержимогоHTML() Тогда - Возврат Ложь; - КонецЕсли; - - Фильтры = Новый Массив; - Фильтры.Добавить(ФильтрПоАтрибуту("src", "^(http|https)://")); - - Фильтр = ОбъединитьФильтры(Фильтры); - НайденныеУзлы = ДокументHTML.НайтиПоФильтру(ЗначениеВJSON(Фильтр)); - - Возврат НайденныеУзлы.Количество() > 0; - -КонецФункции - -Процедура ОтключитьНебезопасноеСодержимое(ДокументHTML, ОтключитьВнешниеРесурсы = Истина) - - Если Не ЕстьВозможностьФильтрацииСодержимогоHTML() Тогда - Возврат; - КонецЕсли; - - Фильтры = Новый Массив; - Фильтры.Добавить(ФильтрПоИмениУзла("script")); - Фильтры.Добавить(ФильтрПоИмениУзла("link")); - Фильтры.Добавить(ФильтрПоИмениУзла("iframe")); - Фильтры.Добавить(ФильтрПоИмениАтрибута("onerror")); - Фильтры.Добавить(ФильтрПоИмениАтрибута("onmouseover")); - Фильтры.Добавить(ФильтрПоИмениАтрибута("onmouseout")); - Фильтры.Добавить(ФильтрПоИмениАтрибута("onclick")); - Фильтры.Добавить(ФильтрПоИмениАтрибута("onload")); - - Фильтр = ОбъединитьФильтры(Фильтры); - ДокументHTML.УдалитьПоФильтру(ЗначениеВJSON(Фильтр)); - - Если ОтключитьВнешниеРесурсы Тогда - Фильтр = ФильтрПоАтрибуту("src", "^(http|https)://"); - НайденныеУзлы = ДокументHTML.НайтиПоФильтру(ЗначениеВJSON(Фильтр)); - Для Каждого Узел Из НайденныеУзлы Цикл - Узел.Значение = ""; - КонецЦикла; - КонецЕсли; - -КонецПроцедуры - -Функция ФильтрПоИмениУзла(ИмяУзла) - - Результат = Новый Структура; - Результат.Вставить("type", "elementname"); - Результат.Вставить("value", Новый Структура("value, operation", ИмяУзла, "equals")); - - Возврат Результат; - -КонецФункции - -Функция ОбъединитьФильтры(Фильтры, ТипОбъединения = "Или") - - Если Фильтры.Количество() = 1 Тогда - Возврат Фильтры[0]; - КонецЕсли; - - Результат = Новый Структура; - Результат.Вставить("type", ?(ТипОбъединения = "И", "intersection", "union")); - Результат.Вставить("value", Фильтры); - - Возврат Результат; - -КонецФункции - -Функция ФильтрПоАтрибуту(ИмяАтрибута, ШаблонЗначения) - - Фильтры = Новый Массив; - Фильтры.Добавить(ФильтрПоИмениАтрибута(ИмяАтрибута)); - Фильтры.Добавить(ФильтрПоЗначениюАтрибута(ШаблонЗначения)); - - Результат = ОбъединитьФильтры(Фильтры, "И"); - - Возврат Результат; - -КонецФункции - -Функция ФильтрПоИмениАтрибута(ИмяАтрибута) - - Результат = Новый Структура; - Результат.Вставить("type", "attribute"); - Результат.Вставить("value", Новый Структура("value, operation", ИмяАтрибута, "nameequals")); - - Возврат Результат; - -КонецФункции - -Функция ФильтрПоЗначениюАтрибута(ШаблонЗначения) - - Результат = Новый Структура; - Результат.Вставить("type", "attribute"); - Результат.Вставить("value", Новый Структура("value, operation", ШаблонЗначения, "valuematchesregex")); - - Возврат Результат; - -КонецФункции - -Функция ЗначениеВJSON(Значение) - - ЗаписьJSON = Новый ЗаписьJSON; - ЗаписьJSON.УстановитьСтроку(); - ЗаписатьJSON(ЗаписьJSON, Значение); - - Возврат ЗаписьJSON.Закрыть(); - -КонецФункции - Процедура ОтфильтроватьСодержимоеТекстаHTML(ТекстHTML, Кодировка = Неопределено, ОтключитьВнешниеРесурсы = Истина, ЕстьВнешниеРесурсы = Неопределено) Экспорт ДокументHTML = ПолучитьОбъектДокументHTMLИзТекстаHTML(ТекстHTML, Кодировка); - ЕстьВнешниеРесурсы = ЕстьВнешниеРесурсы(ДокументHTML); - ОтключитьНебезопасноеСодержимое(ДокументHTML, ЕстьВнешниеРесурсы И ОтключитьВнешниеРесурсы); + ЕстьВнешниеРесурсы = РаботаСПочтовымиСообщениями.ЕстьВнешниеРесурсы(ДокументHTML); + РаботаСПочтовымиСообщениями.ОтключитьНебезопасноеСодержимое(ДокументHTML, ЕстьВнешниеРесурсы И ОтключитьВнешниеРесурсы); ТекстHTML = ПолучитьТекстHTMLИзОбъектаДокументHTML(ДокументHTML); КонецПроцедуры diff --git a/SSL/src/CommonModules/ВзаимодействияКлиент/Module.bsl b/SSL/src/CommonModules/ВзаимодействияКлиент/Module.bsl index ff7706c1f..72886bb1c 100644 --- a/SSL/src/CommonModules/ВзаимодействияКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияКлиент/Module.bsl @@ -8,36 +8,53 @@ #Область ПрограммныйИнтерфейс -// Открывает форму нового документа "Сообщение SMS" -// с переданными в процедуру параметрами. +// Открывает форму нового документа "Сообщение SMS" с переданными параметрами. // // Параметры: -// Адресаты - Строка, СписокЗначений, Массив - список получателей письма. -// Текст - Строка - текст письма. -// Предмет - Ссылка - предмет письма. -// ОтправлятьВТранслите - Булево - признак того, что сообщение при отправке должно быть преобразовано в латинские -// символы. +// ПараметрыФормы - Структура - см. ВзаимодействияКлиент.ПараметрыФормыОтправкиSMS. +// УдалитьТекст - Строка - не используется. +// УдалитьПредмет - Ссылка - не используется. +// УдалитьОтправлятьВТранслите - Булево - не используется. // -Процедура ОткрытьФормуОтправкиSMS(знач Адресаты = Неопределено, - знач Текст = "", - знач Предмет = Неопределено, - знач ОтправлятьВТранслите = Ложь) Экспорт +Процедура ОткрытьФормуОтправкиSMS(Знач ПараметрыФормы = Неопределено, + Знач УдалитьТекст = "", Знач УдалитьПредмет = Неопределено, Знач УдалитьОтправлятьВТранслите = Ложь) Экспорт - ПараметрыСообщения = Новый Структура; - - ПараметрыСообщения.Вставить("Адресаты", Адресаты); - ПараметрыСообщения.Вставить("Текст", Текст); - ПараметрыСообщения.Вставить("Предмет", Предмет); - ПараметрыСообщения.Вставить("ОтправлятьВТранслите", ОтправлятьВТранслите); - - ОткрытьФорму("Документ.СообщениеSMS.ФормаОбъекта", ПараметрыСообщения); + Если ТипЗнч(ПараметрыФормы) <> Тип("Структура") Тогда + Параметры = ПараметрыФормыОтправкиSMS(); + Параметры.Адресаты = ПараметрыФормы; + Параметры.Текст = УдалитьТекст; + Параметры.Предмет = УдалитьПредмет; + Параметры.ОтправлятьВТранслите = УдалитьОтправлятьВТранслите; + ПараметрыФормы = Параметры; + КонецЕсли; + ОткрытьФорму("Документ.СообщениеSMS.ФормаОбъекта", ПараметрыФормы); КонецПроцедуры +// Возвращает параметры для передачи в ВзаимодействияКлиент.ОткрытьФормуОтправкиSMS. +// +// Возвращаемое значение: +// Структура - со свойствами: +// * Адресаты - Строка, СписокЗначений, Массив - список получателей письма. +// * Текст - Строка - текст письма. +// * Предмет - Ссылка - предмет письма. +// * ОтправлятьВТранслите - Булево - признак того, что сообщение при отправке должно быть преобразовано в латинские +// символы. +Функция ПараметрыФормыОтправкиSMS() Экспорт + + Результат = Новый Структура; + Результат.Вставить("Адресаты", Неопределено); + Результат.Вставить("Текст", ""); + Результат.Вставить("Предмет", Неопределено); + Результат.Вставить("ОтправлятьВТранслите", Ложь); + Возврат Результат; + +КонецФункции + // Обработчик для события формы ПослеЗаписиНаСервере. Вызывается для контакта. // // Параметры: -// Форма - УправляемаяФорма - форма, для которой обрабатывается событие. +// Форма - ФормаКлиентскогоПриложения - форма, для которой обрабатывается событие. // Объект - ДанныеФормыКоллекция - данные объекта хранимые в форме. // ПараметрыЗаписи - Структура - структура, в которую добавляются параметры, которые потом будут // посланы с оповещением. @@ -67,7 +84,7 @@ // Обработчик для события формы ПослеЗаписиНаСервере. Вызывается для взаимодействия или предмета взаимодействия. // // Параметры: -// Форма - УправляемаяФорма - форма, для которой обрабатывается событие. +// Форма - ФормаКлиентскогоПриложения - форма, для которой обрабатывается событие. // Объект - ДанныеФормыКоллекция - данные объекта хранимые в форме. // ПараметрыЗаписи - Структура - структура, в которую добавляются параметры, которые потом будут // посланы с оповещением. @@ -172,53 +189,6 @@ КонецПроцедуры -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать РаботаСПочтовымиСообщениямиКлиент.СоздатьНовоеПисьмо. -// -// Открывает форму нового документа "Электронное письмо исходящее" -// с переданными в процедуру параметрами. -// -// Параметры: -// Отправитель - СправочникСсылка.УчетныеЗаписи - учетная запись, с которой выполняется отправка. -// Получатели - Строка, СписокЗначений, Массив - список получателей письма. -// - Структура - сведения о получателях письма. -// * Кому - Строка, СписокЗначений, Массив - список получателей письма. -// * Копии - Строка, СписокЗначений, Массив - список получателей копий письма. -// * СкрытыеКопии - Строка, СписокЗначений, Массив - список получателей скрытых копий письма. -// Тема - Строка - тема письма. -// Текст - Строка - текст письма. -// СписокФайлов - Массив - вложения письма. -// Предмет - Ссылка - предмет письма. -// ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - описание оповещения о закрытии формы письма. -// -Процедура ОткрытьФормуОтправкиПочтовогоСообщения(Знач Отправитель = Неопределено, - Знач Получатели = Неопределено, - Знач Тема = "", - Знач Текст = "", - Знач СписокФайлов = Неопределено, - Знач Предмет = Неопределено, - Знач ОписаниеОповещенияОЗакрытии = Неопределено) Экспорт - - ПараметрыПисьма = Новый Структура; - - Если ТипЗнч(Получатели) = Тип("Структура") Тогда - ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(ПараметрыПисьма, Получатели, Истина); - Иначе - ПараметрыПисьма.Вставить("Кому", Получатели); - КонецЕсли; - ПараметрыПисьма.Вставить("УчетнаяЗапись", Отправитель); - ПараметрыПисьма.Вставить("Тема", Тема); - ПараметрыПисьма.Вставить("Тело", Текст); - ПараметрыПисьма.Вставить("Вложения", СписокФайлов); - ПараметрыПисьма.Вставить("Предмет", Предмет); - - ОткрытьФорму("Документ.ЭлектронноеПисьмоИсходящее.ФормаОбъекта", ПараметрыПисьма, , , , , ОписаниеОповещенияОЗакрытии); - -КонецПроцедуры - -#КонецОбласти - #КонецОбласти #Область СлужебныйПрограммныйИнтерфейс @@ -567,7 +537,7 @@ // // Параметры: // Элемент - ТаблицаФормы - таблица в которой произошло событие. - // Форма - УправляемаяФорма - форма, на которой находятся элементы. + // Форма - ФормаКлиентскогоПриложения - форма, на которой находятся элементы. // Процедура КонтактВладелецПриАктивизацииСтроки(Элемент,Форма) Экспорт diff --git a/SSL/src/CommonModules/ВзаимодействияКлиентСервер/Module.bsl b/SSL/src/CommonModules/ВзаимодействияКлиентСервер/Module.bsl index 7007ba8ad..504b759d4 100644 --- a/SSL/src/CommonModules/ВзаимодействияКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияКлиентСервер/Module.bsl @@ -242,7 +242,7 @@ // Проверяет заполнение контактов в документе взаимодействий и обновляет форму документа взаимодействий// // Параметры: // Объект - ДокументОбъект - документ взаимодействий, для которой выполняется проверка. -// Форма - УправляемаяФорма - форма документа взаимодействий. +// Форма - ФормаКлиентскогоПриложения - форма документа взаимодействий. // ВидДокумента - Строка - строковое имя документа взаимодействий. // Процедура ПроверитьЗаполнениеКонтактов(Объект,Форма,ВидДокумента) Экспорт @@ -281,7 +281,7 @@ // Обрабатывает изменение быстрого отбора динамического списка документов взаимодействий. // // Параметры: -// Форма - УправляемаяФорма - форма, для которой выполняется действий. +// Форма - ФормаКлиентскогоПриложения - форма, для которой выполняется действий. // ИмяОтбора - Строка - имя изменяемого отбора. // ОтборПоПредмету - Булево - признак того, что форма списка параметрическая и на нее наложен отбор по предмету. // @@ -325,7 +325,7 @@ // Обрабатывает изменение быстрого отбора по типу взаимодействий динамического списка документов взаимодействий. // // Параметры: -// Форма - УправляемаяФорма - Содержит динамический список, в котором расположен изменяемый отбор. +// Форма - ФормаКлиентскогоПриложения - Содержит динамический список, в котором расположен изменяемый отбор. // ТипВзаимодействия - Строка - имя накладываемого отбора. // Процедура ПриИзмененииОтбораТипВзаимодействий(Форма,ТипВзаимодействия) Экспорт diff --git a/SSL/src/CommonModules/ВзаимодействияСобытия/Module.bsl b/SSL/src/CommonModules/ВзаимодействияСобытия/Module.bsl index c57b3e8ad..ea56b91c8 100644 --- a/SSL/src/CommonModules/ВзаимодействияСобытия/Module.bsl +++ b/SSL/src/CommonModules/ВзаимодействияСобытия/Module.bsl @@ -119,6 +119,7 @@ СтрокаТаб = Таблица.Добавить(); СтрокаТаб.НомерНабора = НомерНабора; СтрокаТаб.ЗначениеДоступа = Объект.Ответственный; + ИначеЕсли ТипЗнч(Объект) = Тип("ДокументОбъект.ЭлектронноеПисьмоВходящее") Тогда // Логика ограничения по умолчанию: объект доступен если доступен "Ответственный" или "Учетная запись". @@ -136,6 +137,7 @@ СтрокаТаб = Таблица.Добавить(); СтрокаТаб.НомерНабора = НомерНабора; СтрокаТаб.ЗначениеДоступа = Объект.Ответственный; + ИначеЕсли ТипЗнч(Объект) = Тип("ДокументОбъект.ЭлектронноеПисьмоИсходящее") Тогда // Логика ограничения по умолчанию: объект доступен если доступен "Ответственный" или "Учетная запись" diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебный/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебный/Module.bsl index a13dec6dd..11b7af2bd 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыВМоделиСервисаСлужебный/Module.bsl @@ -41,8 +41,7 @@ ОбщаяКомпонента.Заполнить(Неопределено); // Конструктор по умолчанию. ДвоичныеДанныеКомпоненты = Новый ДвоичныеДанные(ОписаниеКомпоненты.ПутьКФайлу); - АдресХранилищаФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанныеКомпоненты); - Информация = ВнешниеКомпонентыСлужебный.ИнформацияОКомпонентеИзФайла(АдресХранилищаФайла, Ложь); + Информация = ВнешниеКомпонентыСлужебный.ИнформацияОКомпонентеИзФайла(ДвоичныеДанныеКомпоненты, Ложь); Если Не Информация.Разобрано Тогда ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые внешние компоненты.Загрузка поставляемой компоненты'", diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыКлиент/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыКлиент/Module.bsl index b52968826..d2e561f0f 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыКлиент/Module.bsl @@ -43,13 +43,13 @@ // Выполняет проверку возможности исполнения компоненты на текущем клиенте пользователя. // // Параметры: -// Оповещение - ОписаниеОповещения - Описание оповещения о подключении со следующими параметрами: +// Оповещение - ОписаниеОповещения - описание оповещения о подключении со следующими параметрами: // * Результат - Структура - результат подключения компоненты: -// ** Подключено - Булево - признак подключения. +// ** Подключено - Булево - признак подключения; // ** ПодключаемыйМодуль - AddIn - экземпляр объекта внешней компоненты; -// - ФиксированноеСоответствие - экземпляры объектов внешней компоненты, -// указанные в ПараметрыПодключения.ИдентификаторыСозданияОбъектов, -// Ключ - Идентификатор, Значение - экземпляр объекта. +// - ФиксированноеСоответствие - экземпляры объектов внешней компоненты, +// указанные в ПараметрыПодключения.ИдентификаторыСозданияОбъектов; +// Ключ - Идентификатор, Значение - экземпляр объекта. // ** ОписаниеОшибки - Строка - краткое описание ошибки. При отмене пользователем пустая строка. // * ДополнительныеПараметры - Структура - значение, которое было указано при создании объекта ОписаниеОповещения. // Идентификатор - Строка - идентификатор объекта внешней компоненты. @@ -109,11 +109,11 @@ КонецПроцедуры -// Подключает компоненту, выполненную по технологии COM, из реестре Windows в асинхронном режиме. +// Подключает компоненту, выполненную по технологии COM, из реестра Windows в асинхронном режиме. // (не рекомендуется, для обратной совместимости с компонентами 1С 7.7). // // Параметры: -// Оповещение - ОписаниеОповещения - Описание оповещения о подключении со следующими параметрами: +// Оповещение - ОписаниеОповещения - описание оповещения о подключении со следующими параметрами: // * Результат - Структура - результат подключения компоненты: // ** Подключено - Булево - признак подключения. // ** ПодключаемыйМодуль - AddIn - экземпляр объекта внешней компоненты. @@ -186,7 +186,7 @@ // Выполняет проверку возможности исполнения компоненты на текущем клиенте пользователя. // // Параметры: -// Оповещение - ОписаниеОповещения - Описание оповещения об установке внешней компоненты: +// Оповещение - ОписаниеОповещения - описание оповещения об установке внешней компоненты: // * Результат - Структура - результат установки компоненты: // ** Установлено - Булево - признак установки. // ** ОписаниеОшибки - Строка - краткое описание ошибки. При отмене пользователем пустая строка. @@ -233,12 +233,12 @@ КонецПроцедуры -// Возвращает структуру параметров для описания правил поиска дополнительной информации в составе внешней компоненты +// Возвращает структуру параметров для описания правил поиска дополнительной информации в составе внешней компоненты, // см. процедуру ЗагрузитьКомпонентуИзФайла. // // Возвращаемое значение: // Структура - коллекция параметров: -// * ИмяФайлаXML - Строка - (необязательный) имя файла в составе компоненты из которого будет извлечена информация. +// * ИмяФайлаXML - Строка - (необязательный) имя файла в составе компоненты, из которого будет извлечена информация. // * ВыражениеXPath - Строка - (необязательный) XPath путь до информации в файле. // // Пример: @@ -264,7 +264,7 @@ // * Идентификатор - Строка -(необязательный) идентификатор объекта внешней компоненты. // * Версия - Строка - (необязательный) версия компоненты. // * ПараметрыПоискаДополнительнойИнформации - Соответствие - (необязательный) параметры. -// ** Ключ - Строка - Идентификатор дополнительной запрошенной информации. +// ** Ключ - Строка - идентификатор дополнительной запрошенной информации. // ** Значение - Строка - см. функцию ПараметрыПоискаДополнительнойИнформации. // Пример: // @@ -286,13 +286,13 @@ // Загружает файл компоненты в справочник внешних компонент в асинхронном режиме. // // Параметры: -// Оповещение - ОписаниеОповещения - Описание оповещения об установке внешней компоненты: +// Оповещение - ОписаниеОповещения - описание оповещения об установке внешней компоненты: // * Результат - Структура - результат загрузки компоненты: // ** Загружена - Булево - признак загрузки. // ** Идентификатор - Строка - идентификатор объекта внешней компоненты. // ** Версия - Строка - версия загруженной компоненты. // ** Наименование - Строка - наименование загруженной компоненты. -// ** ДополнительнаяИнформация - Соответствие - дополнительная информация о компоненте. +// ** ДополнительнаяИнформация - Соответствие - дополнительная информация о компоненте, // если не запрашивалась - пустое соответствие. // *** Ключ - Строка - см. функцию ПараметрыПоискаДополнительнойИнформации. // *** Значение - Строка - см. функцию ПараметрыПоискаДополнительнойИнформации. diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl index f25807e82..1c7304607 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыСервер/Module.bsl @@ -127,7 +127,8 @@ Продолжить; КонецЕсли; - Информация = ВнешниеКомпонентыСлужебный.ИнформацияОКомпонентеИзФайла(СтрокаРезультата.АдресФайла, Ложь); + ДвоичныеДанные = ПолучитьИзВременногоХранилища(СтрокаРезультата.АдресФайла); + Информация = ВнешниеКомпонентыСлужебный.ИнформацияОКомпонентеИзФайла(ДвоичныеДанные, Ложь); Если Не Информация.Разобрано Тогда diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl index 0ff8c68e9..eef7073e5 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебный/Module.bsl @@ -47,7 +47,7 @@ // Разбирает файл компоненты для получения служебной информации о компоненте // // Параметры: -// АдресХранилищаФайла - Строка - адрес хранилища, в котором расположены двоичные данные файла компоненты. +// ДвоичныеДанные - ДвоичныеДанные - двоичные данные файла компоненты. // ВыполнятьРазборИнфоФайла - Булево - (необязательный) требуется ли дополнительно анализировать // данные файла INFO.XML, если он есть. // ПараметрыПоискаДополнительнойИнформации - Соответствие - (необязательный) @@ -79,7 +79,7 @@ // * ДополнительнаяИнформация - Соответствие - информация, полученная по переданным параметрам поиска. // * ОписаниеОшибки - Строка - текст ошибки, в случае, если не разобрано. // -Функция ИнформацияОКомпонентеИзФайла(АдресХранилищаФайла, ВыполнятьРазборИнфоФайла = Истина, +Функция ИнформацияОКомпонентеИзФайла(ДвоичныеДанные, ВыполнятьРазборИнфоФайла = Истина, Знач ПараметрыПоискаДополнительнойИнформации = Неопределено) Экспорт Если ПараметрыПоискаДополнительнойИнформации = Неопределено Тогда @@ -92,12 +92,6 @@ // Дополнительная запрашиваемая информация. ДополнительнаяИнформация = Новый Соответствие; - // Получение и загрузка двоичных данных компоненты. - ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилищаФайла); - - // Очищаем выделенную память в хранилище - УдалитьИзВременногоХранилища(АдресХранилищаФайла); - // Контроль соответствия компоненты. НайденМанифест = Ложь; @@ -415,6 +409,7 @@ Реквизиты.Вставить("Windows_x86_Chrome"); Реквизиты.Вставить("Linux_x86_Chrome"); Реквизиты.Вставить("Linux_x86_64_Chrome"); + Реквизиты.Вставить("MacOS_x86_64"); Реквизиты.Вставить("MacOS_x86_64_Safari"); Реквизиты.Вставить("Идентификатор"); Реквизиты.Вставить("Наименование"); @@ -542,6 +537,13 @@ Продолжить; КонецЕсли; + Если ОперационнаяСистема = "macos" + И (АрхитектураПлатформы = "x86_64" Или АрхитектураПлатформы = "universal") Тогда + + Реквизиты.MacOS_x86_64 = Истина; + Продолжить; + КонецЕсли; + Если ОперационнаяСистема = "macos" И (АрхитектураПлатформы = "x86_64" Или АрхитектураПлатформы = "universal") И ТипКомпоненты = "plugin" И ПрограммаПросмотра = "safari" Тогда @@ -551,7 +553,7 @@ КонецЕсли; КонецЕсли; - КонецЦикла; + КонецЦикла; КонецЕсли; ЧтениеXML.Закрыть(); @@ -712,7 +714,8 @@ ВызватьИсключение ТекстОшибки; КонецЕсли; - Информация = ИнформацияОКомпонентеИзФайла(СтрокаРезультата.АдресФайла, Ложь); + ДвоичныеДанные = ПолучитьИзВременногоХранилища(СтрокаРезультата.АдресФайла); + Информация = ИнформацияОКомпонентеИзФайла(ДвоичныеДанные, Ложь); Если Не Информация.Разобрано Тогда ЗаписьЖурналаРегистрации(НСтр("ru = 'Обновление внешних компонент'", diff --git a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl index f72448a23..a8257f935 100644 --- a/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеКомпонентыСлужебныйКлиент/Module.bsl @@ -168,6 +168,10 @@ ИначеЕсли СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86_64 Тогда + Если Браузер = Неопределено Тогда + Возврат Реквизиты.MacOS_x86_64; + КонецЕсли; + Если Браузер = "Safari" Тогда Возврат Реквизиты.MacOS_x86_64_Safari; КонецЕсли; diff --git a/SSL/src/CommonModules/ВнешниеПользователи/Module.bsl b/SSL/src/CommonModules/ВнешниеПользователи/Module.bsl index a05c879e3..427682241 100644 --- a/SSL/src/CommonModules/ВнешниеПользователи/Module.bsl +++ b/SSL/src/CommonModules/ВнешниеПользователи/Module.bsl @@ -79,7 +79,7 @@ // являющихся объектом авторизации в справочнике ВнешниеПользователи. // // Параметры: -// Форма - УправляемаяФорма - вызывающий объект. +// Форма - ФормаКлиентскогоПриложения - вызывающий объект. // Процедура НастроитьОтображениеСпискаВнешнихПользователей(Форма) Экспорт diff --git a/SSL/src/CommonModules/ГрафикиРаботы/Module.bsl b/SSL/src/CommonModules/ГрафикиРаботы/Module.bsl index 785d4298b..d10250b37 100644 --- a/SSL/src/CommonModules/ГрафикиРаботы/Module.bsl +++ b/SSL/src/CommonModules/ГрафикиРаботы/Module.bsl @@ -453,14 +453,6 @@ // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.3.1"; - Обработчик.Процедура = "ГрафикиРаботы.ЗаполнитьНастройкиЗаполненияГрафиковРаботы"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.2.14"; - Обработчик.Процедура = "ГрафикиРаботы.ЗаполнитьКоличествоДнейВГрафикеСНачалаГода"; - Если Метаданные.Обработки.Найти("ЗаполнениеГрафиковРаботы") <> Неопределено Тогда МодульГрафикиРаботы = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеГрафиковРаботы"); МодульГрафикиРаботы.ПриДобавленииОбработчиковОбновления(Обработчики); @@ -477,165 +469,4 @@ КонецПроцедуры -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Заполняет производственный календарь для тех графиков работы, -// которые были созданы не по шаблону или до появления производственных календарей. -// -Процедура ЗаполнитьНастройкиЗаполненияГрафиковРаботы() Экспорт - - ПроизводственныйКалендарь = КалендарныеГрафики.ОсновнойПроизводственныйКалендарь(); - Если ПроизводственныйКалендарь = Неопределено Тогда - // Если по какой-то причине нет производственного календаря по умолчанию, - // заполнение настроек бессмысленно. - Возврат; - КонецЕсли; - - ТекстЗапроса = - "ВЫБРАТЬ - | Календари.Ссылка, - | Календари.УдалитьВидКалендаря КАК ВидКалендаря, - | Календари.ПроизводственныйКалендарь - |ИЗ - | Справочник.Календари КАК Календари - |ГДЕ - | Календари.СпособЗаполнения = ЗНАЧЕНИЕ(Перечисление.СпособыЗаполненияГрафикаРаботы.ПустаяСсылка)"; - - Запрос = Новый Запрос(ТекстЗапроса); - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - ГрафикРаботыОбъект = Выборка.Ссылка.ПолучитьОбъект(); - Если Не ЗначениеЗаполнено(Выборка.ПроизводственныйКалендарь) Тогда - // Устанавливаем календарь РФ - ГрафикРаботыОбъект.ПроизводственныйКалендарь = ПроизводственныйКалендарь; - КонецЕсли; - ГрафикРаботыОбъект.ДатаНачала = Дата(2012, 1, 1); - Если Не ЗначениеЗаполнено(Выборка.ВидКалендаря) Тогда - // Если вид календаря не был указан, нет возможности вписать точную настройку заполнения. - ГрафикРаботыОбъект.СпособЗаполнения = Перечисления.СпособыЗаполненияГрафикаРаботы.ПоЦикламПроизвольнойДлины; - ГрафикРаботыОбъект.ДатаОтсчета = Дата(2012, 1, 1); - Иначе - // Для пятидневки и шестидневки заполняем соответствующую настройку. - ГрафикРаботыОбъект.УчитыватьПраздники = Истина; - ГрафикРаботыОбъект.СпособЗаполнения = Перечисления.СпособыЗаполненияГрафикаРаботы.ПоНеделям; - КоличествоРабочихДней = 5; - Если Выборка.ВидКалендаря = Перечисления.УдалитьВидыКалендарей.Шестидневка Тогда - КоличествоРабочихДней = 6; - КонецЕсли; - ГрафикРаботыОбъект.ШаблонЗаполнения.Очистить(); - Для НомерДня = 1 По 7 Цикл - НоваяСтрока = ГрафикРаботыОбъект.ШаблонЗаполнения.Добавить(); - НоваяСтрока.ДеньВключенВГрафик = НомерДня <= КоличествоРабочихДней; - КонецЦикла; - КонецЕсли; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ГрафикРаботыОбъект); - КонецЦикла; - -КонецПроцедуры - -// Заполняет вторичные данные для оптимизации расчета дат по календарю. -// -Процедура ЗаполнитьКоличествоДнейВГрафикеСНачалаГода() Экспорт - - ТекстЗапроса = - "ВЫБРАТЬ РАЗЛИЧНЫЕ - | ДанныеПроизводственногоКалендаря.Дата, - | ДанныеПроизводственногоКалендаря.Год - |ПОМЕСТИТЬ ВТДаты - |ИЗ - | РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | Даты.Год, - | КОЛИЧЕСТВО(Даты.Дата) КАК КоличествоДней - |ПОМЕСТИТЬ ВТКоличествоДнейПоГодам - |ИЗ - | ВТДаты КАК Даты - | - |СГРУППИРОВАТЬ ПО - | Даты.Год - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | КалендарныеГрафики.Календарь, - | КалендарныеГрафики.Год, - | КОЛИЧЕСТВО(КалендарныеГрафики.ДатаГрафика) КАК КоличествоДней - |ПОМЕСТИТЬ ВТКоличествоДнейПоГрафикам - |ИЗ - | РегистрСведений.КалендарныеГрафики КАК КалендарныеГрафики - | - |СГРУППИРОВАТЬ ПО - | КалендарныеГрафики.Календарь, - | КалендарныеГрафики.Год - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | КоличествоДнейПоГрафикам.Календарь, - | КоличествоДнейПоГрафикам.Год - |ПОМЕСТИТЬ ВТГрафикиГоды - |ИЗ - | ВТКоличествоДнейПоГрафикам КАК КоличествоДнейПоГрафикам - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКоличествоДнейПоГодам КАК КоличествоДнейПоГодам - | ПО КоличествоДнейПоГрафикам.Год = КоличествоДнейПоГодам.Год - | И КоличествоДнейПоГрафикам.КоличествоДней < КоличествоДнейПоГодам.КоличествоДней - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | ГрафикиГоды.Календарь КАК Календарь, - | ГрафикиГоды.Год КАК Год, - | Даты.Дата КАК ДатаГрафика, - | ЕСТЬNULL(КалендарныеГрафики.ДеньВключенВГрафик, ЛОЖЬ) КАК ДеньВключенВГрафик - |ИЗ - | ВТГрафикиГоды КАК ГрафикиГоды - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТДаты КАК Даты - | ПО ГрафикиГоды.Год = Даты.Год - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК КалендарныеГрафики - | ПО (КалендарныеГрафики.Календарь = ГрафикиГоды.Календарь) - | И (КалендарныеГрафики.Год = ГрафикиГоды.Год) - | И (КалендарныеГрафики.ДатаГрафика = Даты.Дата) - | - |УПОРЯДОЧИТЬ ПО - | ГрафикиГоды.Календарь, - | ГрафикиГоды.Год, - | Даты.Дата - |ИТОГИ ПО - | Календарь, - | Год"; - - // Выбираем графики работы и годы, для которых не заполнено значение ресурса КоличествоДнейВГрафикеСНачалаГода, - // заполняем для них последовательно рассчитывая количество дней. - - Запрос = Новый Запрос(ТекстЗапроса); - ВыборкаПоГрафикам = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); - Пока ВыборкаПоГрафикам.Следующий() Цикл - ВыборкаПоГодам = ВыборкаПоГрафикам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); - Пока ВыборкаПоГодам.Следующий() Цикл - НаборЗаписей = РегистрыСведений.КалендарныеГрафики.СоздатьНаборЗаписей(); - КоличествоДнейВГрафикеСНачалаГода = 0; - Выборка = ВыборкаПоГодам.Выбрать(); - Пока Выборка.Следующий() Цикл - Если Выборка.ДеньВключенВГрафик Тогда - КоличествоДнейВГрафикеСНачалаГода = КоличествоДнейВГрафикеСНачалаГода + 1; - КонецЕсли; - СтрокаНабора = НаборЗаписей.Добавить(); - ЗаполнитьЗначенияСвойств(СтрокаНабора, Выборка); - СтрокаНабора.КоличествоДнейВГрафикеСНачалаГода = КоличествоДнейВГрафикеСНачалаГода; - КонецЦикла; - НаборЗаписей.Отбор.Календарь.Установить(ВыборкаПоГодам.Календарь); - НаборЗаписей.Отбор.Год.Установить(ВыборкаПоГодам.Год); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборЗаписей); - КонецЦикла; - КонецЦикла; - -КонецПроцедуры - -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовКлиент/Module.bsl b/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовКлиент/Module.bsl index c59e13952..3057b7776 100644 --- a/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовКлиент/Module.bsl +++ b/SSL/src/CommonModules/ГрупповоеИзменениеОбъектовКлиент/Module.bsl @@ -18,7 +18,7 @@ Если СписокРеквизит = Неопределено Тогда Форма = СписокЭлемент.Родитель; - Пока ТипЗнч(Форма) <> Тип("УправляемаяФорма") Цикл + Пока ТипЗнч(Форма) <> Тип("ФормаКлиентскогоПриложения") Цикл Форма = Форма.Родитель; КонецЦикла; diff --git a/SSL/src/CommonModules/ДатыЗапретаИзменения/Module.bsl b/SSL/src/CommonModules/ДатыЗапретаИзменения/Module.bsl index c52bc2d6e..d86ff27a5 100644 --- a/SSL/src/CommonModules/ДатыЗапретаИзменения/Module.bsl +++ b/SSL/src/CommonModules/ДатыЗапретаИзменения/Module.bsl @@ -173,7 +173,7 @@ // документов, записей регистров и др., чтобы заблокировать форму, если изменение запрещено. // // Параметры: -// Форма - УправляемаяФорма - форма элемента объекта или записи регистра. +// Форма - ФормаКлиентскогоПриложения - форма элемента объекта или записи регистра. // // ТекущийОбъект - СправочникОбъект, // ДокументОбъект, diff --git a/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебный/Module.bsl b/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебный/Module.bsl index a11c08dfb..504237728 100644 --- a/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ДатыЗапретаИзмененияСлужебный/Module.bsl @@ -77,22 +77,6 @@ Обработчик.НачальноеЗаполнение = Истина; Обработчик.Процедура = "ДатыЗапретаИзмененияСлужебный.УстановитьНачальнуюДатуЗапретаИзменения"; - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.1.1.12"; - Обработчик.Процедура = "ДатыЗапретаИзмененияСлужебный.ЗаменитьНеопределеноНаЗначениеПеречисления"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.1.3.2"; - Обработчик.Процедура = "ДатыЗапретаИзмененияСлужебный.УдалитьПустыеДатыЗапретаПоУмолчанию"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.1.51"; - Обработчик.Процедура = "ДатыЗапретаИзмененияСлужебный.ЗаполнитьИспользованиеДатЗапрета"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.1.55"; - Обработчик.Процедура = "ДатыЗапретаИзмененияСлужебный.УстановитьОтносительныеДатыЗапрета"; - Обработчик = Обработчики.Добавить(); Обработчик.ОбщиеДанные = Истина; Обработчик.Версия = "2.4.1.1"; @@ -769,150 +753,6 @@ КонецПроцедуры -// Обработчик обновления выполняет замену значения Неопределено -// измерения Пользователь регистра сведений ДатыЗапретаИзменения -// на значение Перечисление.ВидыНазначенияДатЗапрета.ДляВсехПользователей. -// -Процедура ЗаменитьНеопределеноНаЗначениеПеречисления() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - НаборЗаписей = РегистрыСведений.ДатыЗапретаИзменения.СоздатьНаборЗаписей(); - НаборЗаписей.Отбор.Пользователь.Установить(Неопределено); - НаборЗаписей.Прочитать(); - Если НаборЗаписей.Количество() > 0 Тогда - Таблица = НаборЗаписей.Выгрузить(); - НаборЗаписей.Отбор.Пользователь.Установить(Перечисления.ВидыНазначенияДатЗапрета.ДляВсехПользователей); - Таблица.ЗаполнитьЗначения(Перечисления.ВидыНазначенияДатЗапрета.ДляВсехПользователей, "Пользователь"); - НаборЗаписей.Загрузить(Таблица); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборЗаписей); - КонецЕсли; - -КонецПроцедуры - -// Обработчик обновления выполняет удаление пустых дат запрета заданных -// для всех пользователей или всех планов обмена, т.е. "По умолчанию", -// т.к. по умолчанию даты запрета пустые. -// -Процедура УдалитьПустыеДатыЗапретаПоУмолчанию() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Запрос = Новый Запрос; - Запрос.УстановитьПараметр("ПустаяДата", '00000000'); - Запрос.Текст = - "ВЫБРАТЬ - | ДатыЗапретаИзменения.Раздел, - | ДатыЗапретаИзменения.Объект, - | ДатыЗапретаИзменения.Пользователь - |ИЗ - | РегистрСведений.ДатыЗапретаИзменения КАК ДатыЗапретаИзменения - |ГДЕ - | ДатыЗапретаИзменения.Пользователь В (ЗНАЧЕНИЕ(Перечисление.ВидыНазначенияДатЗапрета.ДляВсехПользователей), ЗНАЧЕНИЕ(Перечисление.ВидыНазначенияДатЗапрета.ДляВсехИнформационныхБаз)) - | И ДатыЗапретаИзменения.ДатаЗапрета = &ПустаяДата - | И ДатыЗапретаИзменения.ОписаниеДатыЗапрета = """""; - - Выгрузка = Запрос.Выполнить().Выгрузить(); - - Если Выгрузка.Количество() > 0 Тогда - МенеджерЗаписи = РегистрыСведений.ДатыЗапретаИзменения.СоздатьМенеджерЗаписи(); - НачатьТранзакцию(); - Попытка - Для каждого Строка Из Выгрузка Цикл - ЗаполнитьЗначенияСвойств(МенеджерЗаписи, Строка); - МенеджерЗаписи.Прочитать(); - Если МенеджерЗаписи.Выбран() Тогда - МенеджерЗаписи.Записать(); - КонецЕсли; - КонецЦикла; - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - КонецЕсли; - -КонецПроцедуры - -// Обработчик обновления выполняет заполнение констант -// использования дат запрета по наличию настроенных дат. -// -Процедура ЗаполнитьИспользованиеДатЗапрета() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ РАЗЛИЧНЫЕ - | ДатыЗапретаИзменения.Пользователь КАК Адресат - |ИЗ - | РегистрСведений.ДатыЗапретаИзменения КАК ДатыЗапретаИзменения"; - - ЗапретИзмененияИспользуется = Ложь; - ЗапретЗагрузкиИспользуется = Ложь; - - ТипыПользователей = Новый Массив; - ТипыПользователей.Добавить(Тип("СправочникСсылка.Пользователи")); - ТипыПользователей.Добавить(Тип("СправочникСсылка.ГруппыПользователей")); - ТипыПользователей.Добавить(Тип("СправочникСсылка.ВнешниеПользователи")); - ТипыПользователей.Добавить(Тип("СправочникСсылка.ГруппыВнешнихПользователей")); - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - - Если Выборка.Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехПользователей Тогда - ЗапретИзмененияИспользуется = Истина; - - ИначеЕсли Выборка.Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехИнформационныхБаз Тогда - ЗапретЗагрузкиИспользуется = Истина; - - ИначеЕсли ТипыПользователей.Найти(ТипЗнч(Выборка.Адресат)) <> Неопределено Тогда - ЗапретИзмененияИспользуется = Истина; - - ИначеЕсли ПланыОбмена.ТипВсеСсылки().СодержитТип(ТипЗнч(Выборка.Адресат)) Тогда - ЗапретЗагрузкиИспользуется = Истина; - КонецЕсли; - КонецЦикла; - - Если ЗапретИзмененияИспользуется Тогда - Константы.ИспользоватьДатыЗапретаИзменения.Установить(Истина); - КонецЕсли; - - Если ЗапретЗагрузкиИспользуется Тогда - Константы.ИспользоватьДатыЗапретаЗагрузки.Установить(Истина); - КонецЕсли; - -КонецПроцедуры - -// Обработчик устанавливает значение сохранение '00020202' для относительных дат запрета. -Процедура УстановитьОтносительныеДатыЗапрета() Экспорт - - Блокировка = Новый БлокировкаДанных; - Блокировка.Добавить("РегистрСведений.ДатыЗапретаИзменения"); - НачатьТранзакцию(); - Попытка - Блокировка.Заблокировать(); - НаборЗаписей = РегистрыСведений.ДатыЗапретаИзменения.СоздатьНаборЗаписей(); - НаборЗаписей.Прочитать(); - ЕстьИзменения = Ложь; - Для Каждого Запись Из НаборЗаписей Цикл - - Если ЗначениеЗаполнено(Запись.ОписаниеДатыЗапрета) - И Запись.ДатаЗапрета <> '00020202' Тогда - - Запись.ДатаЗапрета = '00020202'; - ЕстьИзменения = Истина; - КонецЕсли; - КонецЦикла; - Если ЕстьИзменения Тогда - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборЗаписей); - КонецЕсли; - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - // Обработчик преобразует план видов характеристик разделы дат запрета изменения. Процедура ОчиститьПредопределенныеЭлементыРазделовДатЗапрета() Экспорт diff --git a/SSL/src/CommonModules/ДлительныеОперации/Module.bsl b/SSL/src/CommonModules/ДлительныеОперации/Module.bsl index 76af2ef12..0927a7c07 100644 --- a/SSL/src/CommonModules/ДлительныеОперации/Module.bsl +++ b/SSL/src/CommonModules/ДлительныеОперации/Module.bsl @@ -184,12 +184,10 @@ ЗаданиеВыполнено = Ложь; Если ПараметрыВыполнения.ОжидатьЗавершение <> 0 Тогда - Попытка - Задание.ОжидатьЗавершения(ПараметрыВыполнения.ОжидатьЗавершение); + Задание = Задание.ОжидатьЗавершенияВыполнения(ПараметрыВыполнения.ОжидатьЗавершение); + Если Задание.Состояние <> СостояниеФоновогоЗадания.Активно Тогда ЗаданиеВыполнено = Истина; - Исключение - // Специальная обработка не требуется, возможно исключение вызвано истечением времени ожидания. - КонецПопытки; + КонецЕсли; КонецЕсли; Если ЗаданиеВыполнено Тогда @@ -249,10 +247,13 @@ КонецФункции // Регистрирует информацию о ходе выполнения длительной операции. -// В дальнейшем ее можно считать при помощи функции ДлительныеОперации.ПрочитатьПрогресс. // Во избежание избыточного потребления памяти и ее утечек при выполнении одной длительной операции // не следует сообщать прогресс более 100 раз. // +// Для того чтобы выводить ход выполнения длительной операции для пользователя, следует установить +// свойство ВыводитьПрогрессВыполнения в Истина (см. ДлительныеОперацииКлиент.ПараметрыОжидания). +// Его также можно получать отдельно при помощи функции ДлительныеОперации.ПрочитатьПрогресс. +// // Параметры: // Процент - Число - процент выполнения. // Текст - Строка - информация о текущей операции. @@ -404,7 +405,7 @@ // из сеанса текущего пользователя. // // Возвращаемое значение: -//  ФиксированныйМассив - объекты СообщениеПользователю, которые были сформированы в фоновом задании. +// ФиксированныйМассив - объекты СообщениеПользователю, которые были сформированы в фоновом задании. // // Пример: // Операция = ДлительныеОперации.ВыполнитьВФоне(...); @@ -509,11 +510,8 @@ ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания; Задание = ЗапуститьФоновоеЗаданиеСКонтекстомКлиента(ИмяЭкспортнойПроцедуры, ПараметрыВыполнения, ПараметрыЭкспортнойПроцедуры); - Попытка - Задание.ОжидатьЗавершения(ВремяОжидания); - Исключение - // Специальная обработка не требуется, возможно исключение вызвано истечением времени ожидания. - КонецПопытки; + + Задание = Задание.ОжидатьЗавершенияВыполнения(ВремяОжидания); Статус = ОперацияВыполнена(Задание.УникальныйИдентификатор); Результат.ЗаданиеВыполнено = Статус.Статус = "Выполнено"; diff --git a/SSL/src/CommonModules/ДлительныеОперацииГлобальный/Module.bsl b/SSL/src/CommonModules/ДлительныеОперацииГлобальный/Module.bsl index db0c58850..2f1d09955 100644 --- a/SSL/src/CommonModules/ДлительныеОперацииГлобальный/Module.bsl +++ b/SSL/src/CommonModules/ДлительныеОперацииГлобальный/Module.bsl @@ -43,7 +43,7 @@ Если ДлительнаяОперация.ФормаВладелец <> Неопределено И Не ДлительнаяОперация.ФормаВладелец.Открыта() Тогда ОперацияОтменена = Истина; КонецЕсли; - Если ДлительнаяОперация.ОповещениеОЗавершении <> Неопределено И ТипЗнч(ДлительнаяОперация.ОповещениеОЗавершении.Модуль) = Тип("УправляемаяФорма") + Если ДлительнаяОперация.ОповещениеОЗавершении <> Неопределено И ТипЗнч(ДлительнаяОперация.ОповещениеОЗавершении.Модуль) = Тип("ФормаКлиентскогоПриложения") И Не ДлительнаяОперация.ОповещениеОЗавершении.Модуль.Открыта() Тогда ОперацияОтменена = Истина; КонецЕсли; diff --git a/SSL/src/CommonModules/ДлительныеОперацииКлиент/Module.bsl b/SSL/src/CommonModules/ДлительныеОперацииКлиент/Module.bsl index 69bca882f..6278fee6d 100644 --- a/SSL/src/CommonModules/ДлительныеОперацииКлиент/Module.bsl +++ b/SSL/src/CommonModules/ДлительныеОперацииКлиент/Module.bsl @@ -89,16 +89,18 @@ // Возвращает пустую структуру для параметра ПараметрыОжидания процедуры ДлительныеОперацииКлиент.ОжидатьЗавершение. // // Параметры: -// ФормаВладелец - УправляемаяФорма, Неопределено - форма, из которой вызывается длительная операция. +// ФормаВладелец - ФормаКлиентскогоПриложения, Неопределено - форма, из которой вызывается длительная операция. // // Возвращаемое значение: // Структура - параметры выполнения задания: -// * ФормаВладелец - УправляемаяФорма, Неопределено - форма, из которой вызывается длительная операция. +// * ФормаВладелец - ФормаКлиентскогоПриложения, Неопределено - форма, из которой вызывается длительная операция. // * ТекстСообщения - Строка - текст сообщения, выводимый на форме ожидания. // Если не задан, то выводится "Пожалуйста, подождите...". // * ВыводитьОкноОжидания - Булево - если Истина, то открыть окно ожидания с визуальной индикацией длительной операции. // Если используется собственный механизм индикации, то следует указать Ложь. // * ВыводитьПрогрессВыполнения - Булево - выводить прогресс выполнения в процентах на форме ожидания. +// Процедура-обработчик длительной операции может сообщить о ходе своего выполнения +// с помощью вызова процедуры ДлительныеОперации.СообщитьПрогресс. // * ОповещениеОПрогрессеВыполнения - ОписаниеОповещения - оповещение, которое периодически вызывается при // проверке готовности фонового задания. Параметры процедуры-обработчика оповещения: // ** Прогресс - Структура, Неопределено - структура со свойствами или Неопределено, если задание было отменено. Свойства: @@ -188,11 +190,11 @@ // Открывает форму-индикатор длительной операции. // // Параметры: -// ВладелецФормы - УправляемаяФорма - форма, из которой производится открытие. +// ВладелецФормы - ФормаКлиентскогоПриложения - форма, из которой производится открытие. // ИдентификаторЗадания - УникальныйИдентификатор - идентификатор фонового задания. // // Возвращаемое значение: -// УправляемаяФорма - ссылка на открытую форму. +// ФормаКлиентскогоПриложения - ссылка на открытую форму. // Функция ОткрытьФормуДлительнойОперации(Знач ВладелецФормы, Знач ИдентификаторЗадания) Экспорт @@ -206,11 +208,11 @@ // Закрывает форму-индикатор длительной операции. // // Параметры: -// ФормаДлительнойОперации - УправляемаяФорма - ссылка на форму-индикатор длительной операции. +// ФормаДлительнойОперации - ФормаКлиентскогоПриложения - ссылка на форму-индикатор длительной операции. // Процедура ЗакрытьФормуДлительнойОперации(ФормаДлительнойОперации) Экспорт - Если ТипЗнч(ФормаДлительнойОперации) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ФормаДлительнойОперации) = Тип("ФормаКлиентскогоПриложения") Тогда Если ФормаДлительнойОперации.Открыта() Тогда ФормаДлительнойОперации.Закрыть(); КонецЕсли; @@ -250,7 +252,7 @@ ТипыСвойств = Новый Структура; Если ПараметрыОжидания.ФормаВладелец <> Неопределено Тогда - ТипыСвойств.Вставить("ФормаВладелец", Тип("УправляемаяФорма")); + ТипыСвойств.Вставить("ФормаВладелец", Тип("ФормаКлиентскогоПриложения")); КонецЕсли; ТипыСвойств.Вставить("ТекстСообщения", Тип("Строка")); ТипыСвойств.Вставить("ВыводитьОкноОжидания", Тип("Булево")); diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработки/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработки/Module.bsl index 9bd051ecc..c9ddfc292 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработки/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработки/Module.bsl @@ -27,7 +27,7 @@ СтандартнаяОбработка = Истина; Результат = Неопределено; - ИнтеграцияСТехнологиейСервиса.ПриПодключенииВнешнейОбработки(Ссылка, СтандартнаяОбработка, Результат); + ИнтеграцияПодсистемБСП.ПриПодключенииВнешнейОбработки(Ссылка, СтандартнаяОбработка, Результат); Если Не СтандартнаяОбработка Тогда Возврат Результат; КонецЕсли; @@ -125,7 +125,7 @@ СтандартнаяОбработка = Истина; Результат = Неопределено; - ИнтеграцияСТехнологиейСервиса.ПриСозданииВнешнейОбработки(Ссылка, СтандартнаяОбработка, Результат); + ИнтеграцияПодсистемБСП.ПриСозданииВнешнейОбработки(Ссылка, СтандартнаяОбработка, Результат); Если Не СтандартнаяОбработка Тогда Возврат Результат; КонецЕсли; @@ -243,7 +243,7 @@ // // Настройки общей формы отчета подсистемы "Варианты отчетов". // // // // Параметры: -// // Форма - УправляемаяФорма, Неопределено - форма отчета или форма настроек отчета. +// // Форма - ФормаКлиентскогоПриложения, Неопределено - форма отчета или форма настроек отчета. // // Неопределено когда вызов без контекста. // // КлючВарианта - Строка, Неопределено - имя предопределенного // // или уникальный идентификатор пользовательского варианта отчета. @@ -357,7 +357,7 @@ // ИдентификаторКоманды - Строка - имя команды, как оно задано в функции СведенияОВнешнейОбработке() модуля объекта. // ПараметрыКоманды - Структура - параметры выполнения команды. // См. ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьКомандуВФоне(). -// Форма - УправляемаяФорма - форма, в которую необходимо вернуть результат. +// Форма - ФормаКлиентскогоПриложения - форма, в которую необходимо вернуть результат. // // Возвращаемое значение: // Структура - для служебного использования. @@ -408,59 +408,6 @@ Возврат РазделыМетаданные; КонецФункции -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать ОбъектВнешнейОбработки. -// -// Важно: проверка функциональной опции "ИспользоватьДополнительныеОтчетыИОбработки" -// должна выполняться вызывающим кодом. -// -// Параметры: -// Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки - Подключаемый отчет или обработка. -// -// Возвращаемое значение: -// * ВнешняяОбработкаОбъект - Объект подключенной обработки. -// * ВнешнийОтчетОбъект - Объект подключенного отчета. -// * Неопределено - Если передана некорректная ссылка. -// -Функция ПолучитьОбъектВнешнейОбработки(Ссылка) Экспорт - - Возврат ОбъектВнешнейОбработки(Ссылка); - -КонецФункции - -// Устарела. Следует использовать ПодключаемыеКоманды.ПриСозданииНаСервере. -// -// Параметры: -// Форма - УправляемаяФорма - Форма. -// ТипФормы - Строка - Тип формы. -// -Процедура ПриСозданииНаСервере(Форма, ТипФормы = Неопределено) Экспорт - Возврат; -КонецПроцедуры - -// Устарела. Следует использовать ПодключаемыеКоманды.ВыполнитьКоманду. -// -// Выполняет назначаемую команду контекстно из формы объекта назначения. -// Предназначена для вызова кодом этой подсистемы из формы элемента назначаемого объекта -// (например, справочника или документа). -// -// Важно: проверка функциональной опции "ИспользоватьДополнительныеОтчетыИОбработки" -// должна выполняться вызывающим кодом. -// -// Параметры: -// Форма - УправляемаяФорма - Форма, из которой вызвана команда. -// ИмяЭлемента - Строка - Имя команды формы, которая была нажата. -// РезультатВыполнения - Структура - для служебного использования. -// -Процедура ВыполнитьНазначаемуюКомандуНаСервере(Форма, ИмяЭлемента, РезультатВыполнения = Неопределено) Экспорт - - Возврат; - -КонецПроцедуры - -#КонецОбласти - #КонецОбласти #Область СлужебныйПрограммныйИнтерфейс @@ -751,7 +698,7 @@ Запрос.УстановитьПараметр("ТекущийПользователь", Пользователи.АвторизованныйПользователь()); Запрос.Текст = ТекстЗапроса; - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") И ОбщегоНазначения.РазделениеВключено() Тогда ИмяРегистра = "ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных"; Запрос.Текст = Запрос.Текст + "; @@ -794,7 +741,7 @@ // ** Идентификатор - Строка - Идентификатор команды. // ** Представление - Строка - Представление команды в форме. // ** Имя - Строка - Имя команды в форме. -// * Форма - УправляемаяФорма - Форма, из которой была вызвана команда. +// * Форма - ФормаКлиентскогоПриложения - Форма, из которой была вызвана команда. // * Источник - ДанныеФормыСтруктура, ТаблицаФормы - Объект или список формы с полем "Ссылка". // Процедура ОбработчикКомандыЗаполнения(Знач МассивСсылок, Знач ПараметрыВыполнения) Экспорт @@ -813,6 +760,15 @@ Возврат ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеОтчетыИОбработки"); КонецФункции +// Возвращает имя рабочего места команды. +Функция ПредставлениеРаздела(Раздел) Экспорт + Если Раздел = ДополнительныеОтчетыИОбработкиКлиентСервер.ИмяНачальнойСтраницы() + Или Раздел = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка() Тогда + Возврат НСтр("ru = 'Начальная страница'"); + КонецЕсли; + Возврат ПредставлениеОбъектаМетаданных(Раздел); +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Обработчики подписок на события. @@ -904,37 +860,6 @@ //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.0.7.1"; - Обработчик.Процедура = "ДополнительныеОтчетыИОбработки.ОбновитьПользовательскиеНастройкиДоступаКОбработкам"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.0.1.4"; - Обработчик.Процедура = "ДополнительныеОтчетыИОбработки.ЗаполнитьИменаОбъектов"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.3.2"; - Обработчик.Процедура = "ДополнительныеОтчетыИОбработки.ЗаменитьИменаОбъектовМетаданныхНаСсылки"; - - Если НЕ ОбщегоНазначения.РазделениеВключено() Тогда - Обработчик = Обработчики.Добавить(); - Обработчик.ВыполнятьВГруппеОбязательных = Истина; - Обработчик.ОбщиеДанные = Истина; - Обработчик.УправлениеОбработчиками = Ложь; - Обработчик.МонопольныйРежим = Истина; - Обработчик.Версия = "2.1.3.22"; - Обработчик.Процедура = "ДополнительныеОтчетыИОбработки.ВключитьФункциональнуюОпцию"; - КонецЕсли; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.2.25"; - Обработчик.Процедура = "ДополнительныеОтчетыИОбработки.ЗаполнитьРежимСовместимостиРазрешений"; - -КонецПроцедуры - // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПереименованийОбъектовМетаданных. Процедура ПриДобавленииПереименованийОбъектовМетаданных(Итог) Экспорт @@ -1745,295 +1670,6 @@ #Область СлужебныеПроцедурыИФункции -//////////////////////////////////////////////////////////////////////////////// -// Обновление информационной базы. - -// [1.0.7.1] Процедура обновления записей о доступности дополнительных обработок. -Процедура ОбновитьПользовательскиеНастройкиДоступаКОбработкам() Экспорт - - ПользователиСДопОбработками = ПользователиСДоступомКДополнительнымОбработкам(); - - ТекстЗапроса = - "ВЫБРАТЬ - | ДополнительныеОтчетыИОбработки.Ссылка КАК Обработка, - | КомандыДополнительныхОтчетовИОбработок.Идентификатор КАК Идентификатор - |ИЗ - | Справочник.ДополнительныеОтчетыИОбработки КАК ДополнительныеОтчетыИОбработки - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ДополнительныеОтчетыИОбработки.Команды КАК КомандыДополнительныхОтчетовИОбработок - | ПО (КомандыДополнительныхОтчетовИОбработок.Ссылка = ДополнительныеОтчетыИОбработки.Ссылка)"; - - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса; - ОбработкиСКомандами = Запрос.Выполнить().Выгрузить(); - - ТаблицаЗаписей = Новый ТаблицаЗначений; - ТаблицаЗаписей.Колонки.Добавить("Обработка", Новый ОписаниеТипов("СправочникСсылка.ДополнительныеОтчетыИОбработки")); - ТаблицаЗаписей.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); - ТаблицаЗаписей.Колонки.Добавить("Пользователь", Новый ОписаниеТипов("СправочникСсылка.Пользователи")); - ТаблицаЗаписей.Колонки.Добавить("Доступно", Новый ОписаниеТипов("Булево")); - - Для Каждого ОбработкаКоманда Из ОбработкиСКомандами Цикл - Для Каждого Пользователь Из ПользователиСДопОбработками Цикл - НоваяСтрока = ТаблицаЗаписей.Добавить(); - НоваяСтрока.Обработка = ОбработкаКоманда.Обработка; - НоваяСтрока.Идентификатор = ОбработкаКоманда.Идентификатор; - НоваяСтрока.Пользователь = Пользователь; - НоваяСтрока.Доступно = Истина; - КонецЦикла; - КонецЦикла; - - ТекстЗапроса = - "ВЫБРАТЬ - | ДополнительныеОтчетыИОбработки.Ссылка КАК Обработка, - | КомандыДополнительныхОтчетовИОбработок.Идентификатор КАК Идентификатор, - | Пользователи.Ссылка КАК Пользователь, - | ПользовательскиеНастройкиДоступаКОбработкам.Доступно КАК Доступно - |ИЗ - | Справочник.ДополнительныеОтчетыИОбработки КАК ДополнительныеОтчетыИОбработки - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ДополнительныеОтчетыИОбработки.Команды КАК КомандыДополнительныхОтчетовИОбработок - | ПО (КомандыДополнительныхОтчетовИОбработок.Ссылка = ДополнительныеОтчетыИОбработки.Ссылка) - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПользовательскиеНастройкиДоступаКОбработкам КАК ПользовательскиеНастройкиДоступаКОбработкам - | ПО (ПользовательскиеНастройкиДоступаКОбработкам.ДополнительныйОтчетИлиОбработка = ДополнительныеОтчетыИОбработки.Ссылка) - | И (ПользовательскиеНастройкиДоступаКОбработкам.ИдентификаторКоманды = КомандыДополнительныхОтчетовИОбработок.Идентификатор) - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи - | ПО (Пользователи.Ссылка = ПользовательскиеНастройкиДоступаКОбработкам.Пользователь)"; - - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса; - ИсключенияПерсональногоДоступа = Запрос.Выполнить().Выгрузить(); - - ПоискСтрок = Новый Структура("Обработка, Идентификатор, Пользователь"); - Для Каждого ИсключениеПерсональногоДоступа Из ИсключенияПерсональногоДоступа Цикл - ЗаполнитьЗначенияСвойств(ПоискСтрок, ИсключениеПерсональногоДоступа); - Найденные = ТаблицаЗаписей.НайтиСтроки(ПоискСтрок); - Для Каждого СтрокаТаблицы Из Найденные Цикл - СтрокаТаблицы.Доступно = НЕ ИсключениеПерсональногоДоступа.Доступно; // Инвертируем исключением доступа. - КонецЦикла; - КонецЦикла; - - Для Каждого Пользователь Из ПользователиСДопОбработками Цикл - НаборЗаписей = РегистрыСведений.ПользовательскиеНастройкиДоступаКОбработкам.СоздатьНаборЗаписей(); - НаборЗаписей.Отбор.Пользователь.Установить(Пользователь); - ЗаписиПоБыстромуДоступу = ТаблицаЗаписей.НайтиСтроки(Новый Структура("Пользователь,Доступно", Пользователь, Истина)); - Для Каждого ЗаписьБыстрогоДоступа Из ЗаписиПоБыстромуДоступу Цикл - НоваяЗапись = НаборЗаписей.Добавить(); - НоваяЗапись.ДополнительныйОтчетИлиОбработка = ЗаписьБыстрогоДоступа.Обработка; - НоваяЗапись.ИдентификаторКоманды = ЗаписьБыстрогоДоступа.Идентификатор; - НоваяЗапись.Пользователь = Пользователь; - НоваяЗапись.Доступно = Истина; - КонецЦикла; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборЗаписей); - КонецЦикла; - -КонецПроцедуры - -// [2.0.1.4] Заполнение реквизита "ИмяОбъекта" (имя, под которыми объект регистрируется в программе). -// Для объектов с вариантом Публикации "Используется" дополнительно проводится -// контроль уникальности Имени объекта. В случае нахождения отчетов или обработок -// с неуникальными Именами объектов для всех элементов, кроме первого, -// вариант Публикации изменяется с "Используется" на "Режим отладки". -// -Процедура ЗаполнитьИменаОбъектов() Экспорт - ТекстЗапроса = - "ВЫБРАТЬ - | ДопОтчеты.Ссылка, - | ДопОтчеты.ИмяОбъекта, - | ДопОтчеты.ХранилищеОбработки, - | ВЫБОР - | КОГДА ДопОтчеты.Вид В (&ВидыДопОтчетов) - | ТОГДА ИСТИНА - | ИНАЧЕ ЛОЖЬ - | КОНЕЦ КАК ЭтоОтчет, - | ВЫБОР - | КОГДА ДопОтчеты.Публикация = ЗНАЧЕНИЕ(Перечисление.ВариантыПубликацииДополнительныхОтчетовИОбработок.Используется) - | ТОГДА ИСТИНА - | ИНАЧЕ ЛОЖЬ - | КОНЕЦ КАК Публикуется, - | ВЫБОР - | КОГДА ДопОтчеты.ИмяОбъекта = """" - | ТОГДА ИСТИНА - | ИНАЧЕ ЛОЖЬ - | КОНЕЦ КАК ТребуетсяЗаполнитьИмяОбъекта - |ИЗ - | Справочник.ДополнительныеОтчетыИОбработки КАК ДопОтчеты - |ГДЕ - | ДопОтчеты.ЭтоГруппа = ЛОЖЬ - | И НЕ ДопОтчеты.ХранилищеОбработки ЕСТЬ NULL "; - - ВидыДопОтчетов = Новый Массив; - ВидыДопОтчетов.Добавить(Перечисления.ВидыДополнительныхОтчетовИОбработок.Отчет); - ВидыДопОтчетов.Добавить(Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет); - - Запрос = Новый Запрос; - Запрос.УстановитьПараметр("ВидыДопОтчетов", ВидыДопОтчетов); - Запрос.Текст = ТекстЗапроса; - - ВсеДопОтчеты = Запрос.Выполнить().Выгрузить(); - - ПоискДублей = Новый Структура("ИмяОбъекта, ЭтоОтчет, Публикуется"); - ПоискДублей.Публикуется = Истина; - - // Дополнительные отчеты и обработки, для которых необходимо заполнить имя объекта. - ДопОтчетыДляЗаполнения = ВсеДопОтчеты.НайтиСтроки(Новый Структура("ТребуетсяЗаполнитьИмяОбъекта", Истина)); - Для Каждого СтрокаТаблицы Из ДопОтчетыДляЗаполнения Цикл - - // Помещение двоичных данных отчета (обработки) во временное хранилище. - АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(СтрокаТаблицы.ХранилищеОбработки.Получить()); - - // Определение менеджера - Менеджер = ?(СтрокаТаблицы.ЭтоОтчет, ВнешниеОтчеты, ВнешниеОбработки); - - // Получение экземпляра объекта. - Объект = СтрокаТаблицы.Ссылка.ПолучитьОбъект(); - - // Установка имени объекта - Объект.ИмяОбъекта = СокрЛП(Менеджер.Подключить(АдресВоВременномХранилище, , Истина, - ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений())); - - // Если имя отчета (обработки) уже используется другим опубликованным отчетом (обработкой), - // то данный объект является дублем - необходимо сменить его вариант публикации на режим отладки (или отключить). - Если СтрокаТаблицы.Публикуется Тогда - ПоискДублей.ИмяОбъекта = Объект.ИмяОбъекта; - ПоискДублей.ЭтоОтчет = СтрокаТаблицы.ЭтоОтчет; - Если ВсеДопОтчеты.НайтиСтроки(ПоискДублей).Количество() > 0 Тогда - ОтключитьКонфликтующую(Объект); - КонецЕсли; - КонецЕсли; - - // Регистрация использованного имени объекта в таблице для контроля дублей. - СтрокаТаблицы.ИмяОбъекта = Объект.ИмяОбъекта; - - // Запись объекта - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); - - КонецЦикла; - -КонецПроцедуры - -// [2.1.3.2] Замена имен объектов назначения на ссылки справочника ИдентификаторыОбъектовМетаданных. -Процедура ЗаменитьИменаОбъектовМетаданныхНаСсылки() Экспорт - - ТекстЗапроса = - "ВЫБРАТЬ - | ТаблицаНазначение.Ссылка КАК СправочникСсылка, - | ТаблицаНазначение.НомерСтроки КАК НомерСтроки, - | СправочникИОМ.Ссылка КАК ОбъектНазначения - |ИЗ - | Справочник.ДополнительныеОтчетыИОбработки.Назначение КАК ТаблицаНазначение - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ИдентификаторыОбъектовМетаданных КАК СправочникИОМ - | ПО ТаблицаНазначение.УдалитьПолноеИмяОбъектаМетаданных = СправочникИОМ.ПолноеИмя - |ИТОГИ ПО - | СправочникСсылка"; - - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса; - - ВыборкаСсылок = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); - Пока ВыборкаСсылок.Следующий() Цикл - СправочникОбъект = ВыборкаСсылок.СправочникСсылка.ПолучитьОбъект(); - МассивСтрокДляУдаления = Новый Массив; - ВыборкаСтрок = ВыборкаСсылок.Выбрать(); - Пока ВыборкаСтрок.Следующий() Цикл - СтрокаТабличнойЧасти = СправочникОбъект.Назначение.Получить(ВыборкаСтрок.НомерСтроки - 1); - СтрокаТабличнойЧасти.ОбъектНазначения = ВыборкаСтрок.ОбъектНазначения; - Если ЗначениеЗаполнено(СтрокаТабличнойЧасти.ОбъектНазначения) Тогда - СтрокаТабличнойЧасти.УдалитьПолноеИмяОбъектаМетаданных = ""; - Иначе - МассивСтрокДляУдаления.Добавить(СтрокаТабличнойЧасти); - КонецЕсли; - КонецЦикла; - Для Каждого СтрокаТабличнойЧасти Из МассивСтрокДляУдаления Цикл - СправочникОбъект.Назначение.Удалить(СтрокаТабличнойЧасти); - КонецЦикла; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(СправочникОбъект); - КонецЦикла; - - РегистрыСведений.НазначениеДополнительныхОбработок.Обновить(Истина); - -КонецПроцедуры - -// [2.1.3.22] Включение функциональной опции ИспользоватьДополнительныеОтчетыИОбработки для локального режима. -Процедура ВключитьФункциональнуюОпцию() Экспорт - - Если ОбщегоНазначения.РазделениеВключено() Тогда - Возврат; - КонецЕсли; - - Константы.ИспользоватьДополнительныеОтчетыИОбработки.Установить(Истина); - -КонецПроцедуры - -// [2.2.2.25] Заполнение реквизита РежимСовместимостиРазрешений для справочника ДополнительныеОтчетыИОбработки. -Процедура ЗаполнитьРежимСовместимостиРазрешений() Экспорт - - НачатьТранзакцию(); - - Попытка - - Блокировка = Новый БлокировкаДанных(); - Блокировка.Добавить("Справочник.ДополнительныеОтчетыИОбработки"); - Блокировка.Заблокировать(); - - Выборка = Справочники.ДополнительныеОтчетыИОбработки.Выбрать(); - Пока Выборка.Следующий() Цикл - - Если Не Выборка.ЭтоГруппа И Не ЗначениеЗаполнено(Выборка.РежимСовместимостиРазрешений) Тогда - - ЗаблокироватьДанныеДляРедактирования(Выборка.Ссылка); - - Объект = Выборка.ПолучитьОбъект(); - - Попытка - - ОбъектОбработки = ОбъектВнешнейОбработки(Выборка.Ссылка); - РегистрационныеДанные = ОбъектОбработки.СведенияОВнешнейОбработке(); - - Если РегистрационныеДанные.Свойство("ВерсияБСП") Тогда - Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РегистрационныеДанные.ВерсияБСП, "2.2.2.0") > 0 Тогда - РежимСовместимости = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_2_2; - Иначе - РежимСовместимости = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_1_3; - КонецЕсли; - Иначе - РежимСовместимости = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_1_3; - КонецЕсли; - - Публикация = Объект.Публикация; - - Исключение - - // При невозможности подключения обработки - установим для нее режим совместимости - // разрешений с версией БСП 2.1.3 и временно заблокируем. - ТекстОшибки = """" + Объект.Наименование + """:" - + Символы.ПС + НСтр("ru = 'Не удалось определить режим совместимости разрешений по причине:'") - + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()) - + Символы.ПС - + Символы.ПС + НСтр("ru = 'Объект заблокирован в режиме совместимости с версией 2.1.3.'"); - ЗаписатьПредупреждение(Объект.Ссылка, ТекстОшибки); - РежимСовместимости = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_1_3; - Публикация = Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Отключена; - - КонецПопытки; - - Объект.РежимСовместимостиРазрешений = РежимСовместимости; - Объект.Публикация = Публикация; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); - - КонецЕсли; - - КонецЦикла; - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // Регламентные задания @@ -2147,15 +1783,6 @@ КонецФункции -// Возвращает имя рабочего места команды. -Функция ПредставлениеРаздела(Раздел) Экспорт - Если Раздел = ДополнительныеОтчетыИОбработкиКлиентСервер.ИмяНачальнойСтраницы() - Или Раздел = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка() Тогда - Возврат НСтр("ru = 'Начальная страница'"); - КонецЕсли; - Возврат ПредставлениеОбъектаМетаданных(Раздел); -КонецФункции - // Возвращает имя рабочего места команды. Функция ПредставлениеОбъектаМетаданных(Объект) Экспорт Если ТипЗнч(Объект) = Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных") Тогда @@ -2177,7 +1804,7 @@ Результат = Ложь; СтандартнаяОбработка = Истина; - ИнтеграцияСТехнологиейСервиса.ПриПроверкеПраваДобавления(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); + ИнтеграцияПодсистемБСП.ПриПроверкеПраваДобавления(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); Если СтандартнаяОбработка Тогда @@ -2208,7 +1835,7 @@ Результат = Ложь; СтандартнаяОбработка = Истина; - ИнтеграцияСТехнологиейСервиса.ПриПроверкеВозможностиВыгрузкиОбработкиВФайл(Обработка, Результат, СтандартнаяОбработка); + ИнтеграцияПодсистемБСП.ПриПроверкеВозможностиВыгрузкиОбработкиВФайл(Обработка, Результат, СтандартнаяОбработка); Если Не СтандартнаяОбработка Тогда Возврат Результат; КонецЕсли; @@ -2229,7 +1856,7 @@ Результат = Ложь; СтандартнаяОбработка = Истина; - ИнтеграцияСТехнологиейСервиса.ПриПроверкеВозможностиЗагрузкиОбработкиИзФайла(Обработка, Результат, СтандартнаяОбработка); + ИнтеграцияПодсистемБСП.ПриПроверкеВозможностиЗагрузкиОбработкиИзФайла(Обработка, Результат, СтандартнаяОбработка); Если Не СтандартнаяОбработка Тогда Возврат Результат; @@ -2257,7 +1884,7 @@ Функция НедоступныеВидыПубликации() Экспорт Результат = Новый Массив; - ИнтеграцияСТехнологиейСервиса.ПриЗаполненииНедоступныхВидовПубликации(Результат); + ИнтеграцияПодсистемБСП.ПриЗаполненииНедоступныхВидовПубликации(Результат); Возврат Результат; КонецФункции @@ -2265,7 +1892,7 @@ Функция ЭтоПоставляемаяОбработка(Ссылка) Если ОбщегоНазначения.РазделениеВключено() - И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") Тогда + И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") Тогда МодульДополнительныеОтчетыИОбработкиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВМоделиСервиса"); Возврат МодульДополнительныеОтчетыИОбработкиВМоделиСервиса.ЭтоПоставляемаяОбработка(Ссылка); @@ -2312,119 +1939,49 @@ // Локальные служебные процедуры и функции. // Для внутреннего использования. -Функция ПользователиСДоступомКДополнительнымОбработкам() +Процедура ВыполнитьКомандуДополнительногоОтчетаИлиОбработки(ВнешнийОбъект, Знач ИдентификаторКоманды, ПараметрыКоманды) - Результат = Новый Массив; - - ПроверяемыеРоли = "ЧтениеДополнительныхОтчетовИОбработок, ДобавлениеИзменениеДополнительныхОтчетовИОбработок"; - - Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Справочник.Пользователи"); - ВсеПользователи = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); - - Для Каждого Пользователь Из ВсеПользователи Цикл - Если Пользователи.РолиДоступны(ПроверяемыеРоли, Пользователь, Ложь) Тогда - Результат.Добавить(Пользователь); - КонецЕсли; - КонецЦикла; - - ТекстЗапроса = - "ВЫБРАТЬ РАЗЛИЧНЫЕ - | НастройкиДоступа.Пользователь - |ИЗ - | РегистрСведений.ПользовательскиеНастройкиДоступаКОбработкам КАК НастройкиДоступа - |ГДЕ - | НЕ НастройкиДоступа.Пользователь В (&УжеДобавленныеПользователи)"; - - Запрос = Новый Запрос(ТекстЗапроса); - Запрос.Параметры.Вставить("УжеДобавленныеПользователи", Результат); - ПользователиВРегистре = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Пользователь"); - - Для Каждого Пользователь Из ПользователиВРегистре Цикл - Результат.Добавить(Пользователь); - КонецЦикла; - - Возврат Результат; - -КонецФункции - -// Для внутреннего использования. -Процедура ВыполнитьКомандуДополнительногоОтчетаИлиОбработки(ВнешнийОбъект, Знач ИдентификаторКоманды, ПараметрыКоманды, Знач СценарийВБезопасномРежиме = Ложь) - - Если СценарийВБезопасномРежиме Тогда + Если ПараметрыКоманды = Неопределено Тогда - ВыполнитьСценарийВБезопасномРежиме(ВнешнийОбъект, ПараметрыКоманды); + ВнешнийОбъект.ВыполнитьКоманду(ИдентификаторКоманды); Иначе - Если ПараметрыКоманды = Неопределено Тогда - - ВнешнийОбъект.ВыполнитьКоманду(ИдентификаторКоманды); - - Иначе - - ВнешнийОбъект.ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыКоманды); - - КонецЕсли; + ВнешнийОбъект.ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыКоманды); КонецЕсли; КонецПроцедуры // Для внутреннего использования. -Процедура ВыполнитьНазначаемуюКомандуДополнительногоОтчетаИлиОбработки(ВнешнийОбъект, Знач ИдентификаторКоманды, ПараметрыКоманды, ОбъектыНазначения, Знач СценарийВБезопасномРежиме = Ложь) +Процедура ВыполнитьНазначаемуюКомандуДополнительногоОтчетаИлиОбработки(ВнешнийОбъект, Знач ИдентификаторКоманды, ПараметрыКоманды, ОбъектыНазначения) - Если СценарийВБезопасномРежиме Тогда - - ВыполнитьСценарийВБезопасномРежиме(ВнешнийОбъект, ПараметрыКоманды, ОбъектыНазначения); - + Если ПараметрыКоманды = Неопределено Тогда + ВнешнийОбъект.ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения); Иначе - - Если ПараметрыКоманды = Неопределено Тогда - ВнешнийОбъект.ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения); - Иначе - ВнешнийОбъект.ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыКоманды); - КонецЕсли; - + ВнешнийОбъект.ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыКоманды); КонецЕсли; КонецПроцедуры // Для внутреннего использования. -Процедура ВыполнитьКомандуСозданияСвязанныхОбъектов(ВнешнийОбъект, Знач ИдентификаторКоманды, ПараметрыКоманды, ОбъектыНазначения, ИзмененныеОбъекты, Знач СценарийВБезопасномРежиме = Ложь) +Процедура ВыполнитьКомандуСозданияСвязанныхОбъектов(ВнешнийОбъект, Знач ИдентификаторКоманды, ПараметрыКоманды, ОбъектыНазначения, ИзмененныеОбъекты) - Если СценарийВБезопасномРежиме Тогда - - ПараметрыКоманды.Вставить("ИзмененныеОбъекты", ИзмененныеОбъекты); - - ВыполнитьСценарийВБезопасномРежиме(ВнешнийОбъект, ПараметрыКоманды, ОбъектыНазначения); - + Если ПараметрыКоманды = Неопределено Тогда + ВнешнийОбъект.ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ИзмененныеОбъекты); Иначе - - Если ПараметрыКоманды = Неопределено Тогда - ВнешнийОбъект.ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ИзмененныеОбъекты); - Иначе - ВнешнийОбъект.ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ИзмененныеОбъекты, ПараметрыКоманды); - КонецЕсли; - + ВнешнийОбъект.ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ИзмененныеОбъекты, ПараметрыКоманды); КонецЕсли; КонецПроцедуры // Для внутреннего использования. -Процедура ВыполнитьКомандуФормированияПечатнойФормы(ВнешнийОбъект, Знач ИдентификаторКоманды, ПараметрыКоманды, ОбъектыНазначения, Знач СценарийВБезопасномРежиме = Ложь) +Процедура ВыполнитьКомандуФормированияПечатнойФормы(ВнешнийОбъект, Знач ИдентификаторКоманды, ПараметрыКоманды, ОбъектыНазначения) - Если СценарийВБезопасномРежиме Тогда - - ВыполнитьСценарийВБезопасномРежиме(ВнешнийОбъект, ПараметрыКоманды, ОбъектыНазначения); - + Если ПараметрыКоманды = Неопределено Тогда + ВнешнийОбъект.Печать(ИдентификаторКоманды, ОбъектыНазначения); Иначе - - Если ПараметрыКоманды = Неопределено Тогда - ВнешнийОбъект.Печать(ИдентификаторКоманды, ОбъектыНазначения); - Иначе - ВнешнийОбъект.Печать(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыКоманды); - КонецЕсли; - + ВнешнийОбъект.Печать(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыКоманды); КонецЕсли; КонецПроцедуры @@ -2450,8 +2007,6 @@ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Команда %1 не обнаружена.'"), ИдентификаторКоманды); КонецЕсли; - ЭтоСценарийВБезопасномРежиме = (ОписаниеКоманды.Использование = "СценарийВБезопасномРежиме"); - ИзмененныеОбъекты = Неопределено; Если ВидОбработки = Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительнаяОбработка @@ -2460,8 +2015,7 @@ ВыполнитьКомандуДополнительногоОтчетаИлиОбработки( ВнешнийОбъект, ИдентификаторКоманды, - ?(ПередаватьПараметры, ПараметрыКоманды, Неопределено), - ЭтоСценарийВБезопасномРежиме); + ?(ПередаватьПараметры, ПараметрыКоманды, Неопределено)); ИначеЕсли ВидОбработки = Перечисления.ВидыДополнительныхОтчетовИОбработок.СозданиеСвязанныхОбъектов Тогда @@ -2471,8 +2025,7 @@ ИдентификаторКоманды, ?(ПередаватьПараметры, ПараметрыКоманды, Неопределено), ПараметрыКоманды.ОбъектыНазначения, - ИзмененныеОбъекты, - ЭтоСценарийВБезопасномРежиме); + ИзмененныеОбъекты); ИначеЕсли ВидОбработки = Перечисления.ВидыДополнительныхОтчетовИОбработок.ЗаполнениеОбъекта ИЛИ ВидОбработки = Перечисления.ВидыДополнительныхОтчетовИОбработок.Отчет @@ -2488,8 +2041,7 @@ ВнешнийОбъект, ИдентификаторКоманды, ?(ПередаватьПараметры, ПараметрыКоманды, Неопределено), - ОбъектыНазначения, - ЭтоСценарийВБезопасномРежиме); + ОбъектыНазначения); Иначе @@ -2497,8 +2049,7 @@ ВнешнийОбъект, ИдентификаторКоманды, ?(ПередаватьПараметры, ПараметрыКоманды, Неопределено), - ОбъектыНазначения, - ЭтоСценарийВБезопасномРежиме); + ОбъектыНазначения); Если ВидОбработки = Перечисления.ВидыДополнительныхОтчетовИОбработок.ЗаполнениеОбъекта Тогда ИзмененныеОбъекты = ОбъектыНазначения; @@ -2517,23 +2068,6 @@ КонецФункции -// Для внутреннего использования. -Процедура ВыполнитьСценарийВБезопасномРежиме(ВнешнийОбъект, ПараметрыКоманды, ОбъектыНазначения = Неопределено) - - РасширениеБезопасногоРежима = ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный; - - ВнешнийОбъект = ОбъектВнешнейОбработки(ПараметрыКоманды.ДополнительнаяОбработкаСсылка); - ИдентификаторКоманды = ПараметрыКоманды.ИдентификаторКоманды; - - Сценарий = ВнешнийОбъект.СформироватьСценарий(ИдентификаторКоманды, ПараметрыКоманды); - КлючСессии = ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный.СформироватьКлючСессииРасширенияБезопасногоРежима( - ПараметрыКоманды.ДополнительнаяОбработкаСсылка); - - РасширениеБезопасногоРежима.ВыполнитьСценарийБезопасногоРежима( - КлючСессии, Сценарий, ВнешнийОбъект, ПараметрыКоманды, Неопределено, ОбъектыНазначения); - -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // Процедуры используемые при обмене данными. @@ -3282,7 +2816,7 @@ РегистрационныеДанные = Новый Структура; СтандартнаяОбработка = Истина; - ИнтеграцияСТехнологиейСервиса.ПриПолученииРегистрационныхДанных(Объект, РегистрационныеДанные, СтандартнаяОбработка); + ИнтеграцияПодсистемБСП.ПриПолученииРегистрационныхДанных(Объект, РегистрационныеДанные, СтандартнаяОбработка); Если СтандартнаяОбработка Тогда ПриПолученииРегистрационныхДанных(Объект, РегистрационныеДанные, ПараметрыРегистрации, РезультатРегистрации); КонецЕсли; diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВАвтономномРежиме/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВАвтономномРежиме/Module.bsl new file mode 100644 index 000000000..e1506347d --- /dev/null +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВАвтономномРежиме/Module.bsl @@ -0,0 +1,307 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +#Область ОбработчикиСлужебныхСобытий + +#Область СтандартныеПодсистемы + +#Область БазоваяФункциональность + +// Процедура является обработчиком одноименного события, возникающего при обмене данными в распределенной информационной +// базе. +// +// Параметры: +// см. описание обработчика события ПриОтправкеДанныхГлавному() в синтаксис-помощнике. +// +Процедура ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель) Экспорт + + Если ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать Тогда + // + ИначеЕсли ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда + + Если ТипЗнч(ЭлементДанных) = Тип("СправочникОбъект.ДополнительныеОтчетыИОбработки") Тогда + + Если Не ЭтоОбработкаСервиса(ЭлементДанных.Ссылка) Тогда + ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать; + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +// Процедура является обработчиком одноименного события, возникающего при обмене данными в распределенной информационной +// базе. +// +// Параметры: +// см. описание обработчика события ПриОтправкеДанныхПодчиненному() в синтаксис-помощнике. +// +Процедура ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза, Получатель) Экспорт + + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + Если ОтправкаЭлемента = ОтправкаЭлементаДанных.Удалить + ИЛИ ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать Тогда + Возврат; + КонецЕсли; + + Если ТипЗнч(ЭлементДанных) = Тип("СправочникОбъект.ДополнительныеОтчетыИОбработки") Тогда + Если ДополнительныеОтчетыИОбработкиВМоделиСервиса.ЭтоПоставляемаяОбработка(ЭлементДанных.Ссылка) Тогда + ПараметрыЗапускаОбработки = ДополнительныеОтчетыИОбработкиВМоделиСервиса.ПараметрыПодключенияИспользуемойОбработки(ЭлементДанных.Ссылка); + ЗаполнитьЗначенияСвойств(ЭлементДанных, ПараметрыЗапускаОбработки); + КонецЕсли; + КонецЕсли; + + Если ТипЗнч(ЭлементДанных) = Тип("КонстантаМенеджерЗначения.ИспользоватьДополнительныеОтчетыИОбработки") Тогда + Если Не СозданиеНачальногоОбраза Тогда + ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +// Процедура является обработчиком одноименного события, возникающего при обмене данными в распределенной информационной +// базе. +// +// Параметры: +// см. описание обработчика события ПриПолученииДанныхОтГлавного() в синтаксис-помощнике. +// +Процедура ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель) Экспорт + + Если ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать Тогда + + // Стандартную обработку не переопределяем + + ИначеЕсли ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда + + Если ТипЗнч(ЭлементДанных) = Тип("СправочникОбъект.ДополнительныеОтчетыИОбработки") Тогда + + Если ЗначениеЗаполнено(ЭлементДанных.Ссылка) Тогда + СсылкаОбработки = ЭлементДанных.Ссылка; + Иначе + СсылкаОбработки = ЭлементДанных.ПолучитьСсылкуНового(); + КонецЕсли; + + ЗарегистрироватьОбработкуСервиса(СсылкаОбработки); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +// Процедура является обработчиком одноименного события, возникающего при обмене данными в распределенной информационной +// базе. +// +// Параметры: +// см. описание обработчика события ПриПолученииДанныхОтПодчиненного() в синтаксис-помощнике. +// +Процедура ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель) Экспорт + + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + Если ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать Тогда + + // Стандартную обработку не переопределяем + + Иначе + + Если ТипЗнч(ЭлементДанных) = Тип("СправочникОбъект.ДополнительныеОтчетыИОбработки") Тогда + + Если ДополнительныеОтчетыИОбработкиВМоделиСервиса.ЭтоПоставляемаяОбработка(ЭлементДанных.Ссылка) Тогда + + ПараметрыЗапускаОбработки = ДополнительныеОтчетыИОбработкиВМоделиСервиса.ПараметрыПодключенияИспользуемойОбработки(ЭлементДанных.Ссылка); + ЗаполнитьЗначенияСвойств(ЭлементДанных, ПараметрыЗапускаОбработки); + ЭлементДанных.ХранилищеОбработки = Неопределено; + + Иначе + + Если Не ПолучитьФункциональнуюОпцию("НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса") Тогда + ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать; + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ДополнительныеОтчетыИОбработки + +// Вызывается при определении наличия у текущего пользователя права на добавление дополнительного +// отчета или обработки в область данных. +// +// Параметры: +// ДополнительнаяОбработка - СправочникОбъект.ДополнительныеОтчетыИОбработки, элемент справочника, +// который записывается пользователем. +// Результат - Булево, в этот параметр в данной процедуре устанавливается флаг наличия права, +// СтандартнаяОбработка - Булево, в этот параметр в данной процедуре устанавливается флаг выполнения +// стандартной обработки проверки права. +// +Процедура ПриПроверкеПраваДобавления(Знач ДополнительнаяОбработка, Результат, СтандартнаяОбработка) Экспорт + + Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда + + Результат = Истина; + СтандартнаяОбработка = Ложь; + Возврат; + + КонецЕсли; + +КонецПроцедуры + +// Вызывается при проверке возможности загрузки дополнительного отчета или обработки из файла. +// +// Параметры: +// ДополнительнаяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки, +// Результат - Булево, в этот параметр в данной процедуре устанавливается флаг наличия возможности +// загрузки дополнительного отчета или обработки из файла, +// СтандартнаяОбработка - Булево, в этот параметр в данной процедуре устанавливается флаг выполнения +// стандартной обработки проверки возможности загрузки дополнительного отчета или обработки из файла. +// +Процедура ПриПроверкеВозможностиЗагрузкиОбработкиИзФайла(Знач ДополнительнаяОбработка, Результат, СтандартнаяОбработка) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда + + Результат = Не ЭтоОбработкаСервиса(ДополнительнаяОбработка); + СтандартнаяОбработка = Ложь; + + КонецЕсли; + +КонецПроцедуры + +// Вызывается при проверке возможности выгрузки дополнительного отчета или обработки в файл. +// +// Параметры: +// ДополнительнаяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки, +// Результат - Булево, в этот параметр в данной процедуре устанавливается флаг наличия возможности +// выгрузки дополнительного отчета или обработки в файл, +// СтандартнаяОбработка - Булево, в этот параметр в данной процедуре устанавливается флаг выполнения +// стандартной обработки проверки возможности выгрузки дополнительного отчета или обработки в файл. +// +Процедура ПриПроверкеВозможностиВыгрузкиОбработкиВФайл(Знач ДополнительнаяОбработка, Результат, СтандартнаяОбработка) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда + + Результат = Не ЭтоОбработкаСервиса(ДополнительнаяОбработка); + СтандартнаяОбработка = Ложь; + + КонецЕсли; + +КонецПроцедуры + +// Заполняет виды публикации дополнительных отчетов и обработок, недоступные для использования +// в текущей модели информационной базы. +// +// Параметры: +// НедоступныеВидыПубликации - Массив строк. +// +Процедура ПриЗаполненииНедоступныхВидовПубликации(Знач НедоступныеВидыПубликации) Экспорт + + Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда + НедоступныеВидыПубликации.Добавить("РежимОтладки"); + КонецЕсли; + +КонецПроцедуры + +// Процедура должна вызываться из события ПередЗаписью справочника +// ДополнительныеОтчетыИОбработки, выполняет проверку правомерности изменения реквизитов +// элементов данного справочника для дополнительных обработок, полученных из +// каталога дополнительных обработок менеджера сервиса. +// +// Параметры: +// Источник - СправочникОбъект.ДополнительныеОтчетыИОбработки, +// Отказ - булево, флаг отказа от выполнения записи элемента справочника. +// +Процедура ПередЗаписьюДополнительнойОбработки(Источник, Отказ) Экспорт + + Если Источник.ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда + + Если (Источник.ПометкаУдаления ИЛИ Источник.Публикация = Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Отключена) И ЭтоОбработкаСервиса(Источник.Ссылка) Тогда + + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Дополнительный отчет или обработка %1 был загружен из сервиса и не может быть отключен из автономного рабочего места. + |Для удаления дополнительного отчета или обработки необходимо выполнить операцию отключения в + |приложении сервиса и провести синхронизацию данных автономного рабочего места с сервисом.'"), + Источник.Наименование); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Регистрирует дополнительный отчет иди обработку в качестве обработки, полученной +// в автономное рабочее место из сервиса. +// +// Параметры: +// Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки. +// +Процедура ЗарегистрироватьОбработкуСервиса(Знач Ссылка) + + Набор = РегистрыСведений.ИспользованиеДополнительныхОтчетовИОбработокСервисаВАвтономномРабочемМесте.СоздатьНаборЗаписей(); + Набор.Отбор.ДополнительныйОтчетИлиОбработка.Установить(Ссылка); + Запись = Набор.Добавить(); + Запись.ДополнительныйОтчетИлиОбработка = Ссылка; + Запись.Поставляемый = Истина; + Набор.Записать(); + +КонецПроцедуры + +// Функция проверяет, была ли дополнительная обработка получена в автономное рабочее место из сервиса. +// +// Параметры: +// Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки. +// +// Возвращаемое значение: +// Булево. +// +Функция ЭтоОбработкаСервиса(Ссылка) + + Менеджер = РегистрыСведений.ИспользованиеДополнительныхОтчетовИОбработокСервисаВАвтономномРабочемМесте.СоздатьМенеджерЗаписи(); + Менеджер.ДополнительныйОтчетИлиОбработка = Ссылка; + Менеджер.Прочитать(); + + Если Менеджер.Выбран() Тогда + Возврат Менеджер.Поставляемый; + Иначе + Возврат Ложь; + КонецЕсли; + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиРегламентныеЗадания/ДополнительныеОтчетыИОбработкиРегламентныеЗадания.mdo b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВАвтономномРежиме/ДополнительныеОтчетыИОбработкиВАвтономномРежиме.mdo similarity index 72% rename from SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиРегламентныеЗадания/ДополнительныеОтчетыИОбработкиРегламентныеЗадания.mdo rename to SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВАвтономномРежиме/ДополнительныеОтчетыИОбработкиВАвтономномРежиме.mdo index f092c1079..76c333206 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиРегламентныеЗадания/ДополнительныеОтчетыИОбработкиРегламентныеЗадания.mdo +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВАвтономномРежиме/ДополнительныеОтчетыИОбработкиВАвтономномРежиме.mdo @@ -1,9 +1,9 @@ - - ДополнительныеОтчетыИОбработкиРегламентныеЗадания + + ДополнительныеОтчетыИОбработкиВАвтономномРежиме ru - Дополнительные отчеты и обработки регламентные задания + Дополнительные отчеты и обработки в автономном режиме true true diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс/Module.bsl deleted file mode 100644 index 140fcda66..000000000 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс/Module.bsl +++ /dev/null @@ -1,848 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает пространство имен текущей (используемой вызывающим кодом) версии интерфейса сообщений. -// -// Возвращаемое значение: -// Строка - пространство имен текущей. -// -Функция Пакет() Экспорт - - Возврат "http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/" + Версия(); - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает текущую (используемую вызывающим кодом) версию интерфейса сообщений. -// -// Возвращаемое значение: -// Строка - версия. -// -Функция Версия() Экспорт - - Возврат "1.0.0.1"; - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает название программного интерфейса сообщений. -// -// Возвращаемое значение: -// Строка - идентификатор программного интерфейса. -// -Функция ПрограммныйИнтерфейс() Экспорт - - Возврат "ApplicationExtensionsPermissions"; - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Выполняет регистрацию поддерживаемых версий интерфейса сообщений. -// -// Параметры: -// СтруктураПоддерживаемыхВерсий - Структура - в качестве ключа передается название программного интерфейса, -// а в качестве значения массив поддерживаемых версий. -// -Процедура ЗарегистрироватьИнтерфейс(Знач СтруктураПоддерживаемыхВерсий) Экспорт - - МассивВерсий = Новый Массив; - МассивВерсий.Добавить("1.0.0.1"); - СтруктураПоддерживаемыхВерсий.Вставить(ПрограммныйИнтерфейс(), МассивВерсий); - -КонецПроцедуры - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Выполняет регистрацию обработчиков сообщений в качестве обработчиков каналов обмена сообщениями. -// -// Параметры: -// МассивОбработчиков - Массив - массив обработчиков. -// -Процедура ОбработчикиКаналовСообщений(Знач МассивОбработчиков) Экспорт - -КонецПроцедуры - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает идентификатор вида действия, соответствующего вызову метода конфигурации. -// -// Возвращаемое значение: -// Строка - идентификатор вида действия. -// -Функция ВидДействияВызовМетодаКонфигурации() Экспорт - - Возврат "МетодКонфигурации"; // Не локализуется - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает идентификатор вида действия, соответствующего вызову метода обработки. -// -// Возвращаемое значение: -// Строка - идентификатор вида действия. -// -Функция ВидДействияВызовМетодаОбработки() Экспорт - - Возврат "МетодОбработки"; // Не локализуется - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает идентификатор вида параметра, соответствующему ключу запуска. -// -// Возвращаемое значение: -// Строка - вида параметра. -// -Функция ВидПараметраКлючСессии() Экспорт - - Возврат "КлючСессии"; // Не локализуется - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает идентификатор вида параметра, соответствующему фиксированному значению. -// -// Возвращаемое значение: -// Строка - идентификатор вида параметра. -// -Функция ВидПараметраЗначение() Экспорт - - Возврат "ФиксированноеЗначение"; // Не локализуется - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает идентификатор вида параметра, соответствующему сохраняемому значению. -// -// Возвращаемое значение: -// Строка - идентификатор вида действия. -// -Функция ВидПараметраСохраняемоеЗначение() Экспорт - - Возврат "СохраняемоеЗначение"; // Не локализуется - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает идентификатор вида параметра, соответствующему коллекции сохраняемых значений. -// -// Возвращаемое значение: -// Строка - идентификатор вида действия. -// -Функция ВидПараметраКоллекцияСохраняемыхЗначений() Экспорт - - Возврат "КоллекцияСохраняемыхЗначений"; // Не локализуется - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает идентификатор вида параметра, соответствующему параметру выполнения команды. -// -// Возвращаемое значение: -// Строка - идентификатор вида действия. -// -Функция ВидПараметраПараметрВыполненияКоманды() Экспорт - - Возврат "ПараметрВыполненияКоманды"; // Не локализуется - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает идентификатор вида параметра, соответствующему коллекции объектов назначения. -// -// Возвращаемое значение: -// Строка - идентификатор вида действия. -// -Функция ВидПараметраОбъектыНазначения() Экспорт - - Возврат "ОбъектыНазначения"; // Не локализуется - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Конструктор пустой таблицы значений, которая используется в качестве описания сценария, -// выполняемого в безопасном режиме. -// -// Возвращаемое значение: -// ТаблицаЗначений - таблица с колонками: -// * ВидДействия - Строка - идентификатор вида действия, -// * ИмяМетода - Строка - идентификатор имени метода, -// * Параметры - ТаблицаЗначений - таблица параметров, -// * СохранениеРезультата - Строка - сохранение результата. -// -Функция НовыйСценарий() Экспорт - - Результат = Новый ТаблицаЗначений(); - Результат.Колонки.Добавить("ВидДействия", Новый ОписаниеТипов("Строка")); - Результат.Колонки.Добавить("ИмяМетода", Новый ОписаниеТипов("Строка")); - Результат.Колонки.Добавить("Параметры", Новый ОписаниеТипов("ТаблицаЗначений")); - Результат.Колонки.Добавить("СохранениеРезультата", Новый ОписаниеТипов("Строка")); - - Возврат Результат; - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Добавляет в сценарий выполнения обработки в безопасном режиме этап сценария, содержащий -// выполнение метода конфигурации. -// -// Параметры: -// Сценарий - ТаблицаЗначений - см. НовыйСценарий, -// ИмяМетода - Строка - имя метода конфигурации, вызов которого предполагается на этапе выполнения -// этапа сценария, -// СохранениеРезультата - Строка - имя сохраняемого значения сценария, в котором будет сохранен -// результат выполнения метода, переданного в качестве значения параметра ИмяМетода. -// -// Возвращаемое значение: -// СтрокаТаблицыЗначений - см. НовыйСценарий. -// -Функция ДобавитьМетодКонфигурации(Сценарий, Знач ИмяМетода, Знач СохранениеРезультата = "") Экспорт - - Возврат ДобавитьЭтап(Сценарий, ВидДействияВызовМетодаКонфигурации(), ИмяМетода, СохранениеРезультата); - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Добавляет в сценарий выполнения обработки в безопасном режиме этап сценария, содержащий -// выполнение метода обработки. -// -// Параметры: -// Сценарий - ТаблицаЗначений - см. НовыйСценарий, -// ИмяМетода - Строка - имя метода конфигурации, вызов которого предполагается на этапе выполнения -// этапа сценария, -// СохранениеРезультата - Строка - имя сохраняемого значения сценария, в котором будет сохранен -// результат выполнения метода, переданного в качестве значения параметра ИмяМетода. -// -// Возвращаемое значение: -// СтрокаТаблицыЗначений - см. НовыйСценарий. -// -Функция ДобавитьМетодОбработки(Сценарий, Знач ИмяМетода, Знач СохранениеРезультата = "") Экспорт - - Возврат ДобавитьЭтап(Сценарий, ВидДействияВызовМетодаОбработки(), ИмяМетода, СохранениеРезультата); - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Конструктор пустой таблицы значений, которая используется в качестве описания -// параметров элементов сценария, выполняемого в безопасном режиме. -// -// Возвращаемое значение: -// ТаблицаЗначений - таблица с колонками: -// * Вид - Строка - вид параметра, -// * Значение - Произвольный - значение параметра. -// -Функция НоваяТаблицаПараметров() Экспорт - - Результат = Новый ТаблицаЗначений(); - Результат.Колонки.Добавить("Вид", Новый ОписаниеТипов("Строка")); - Результат.Колонки.Добавить("Значение"); - - Возврат Результат; - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Добавляет в таблицу параметров ключ запуска текущей обработки. -// -// Параметры: -// Этап - СтрокаТаблицыЗначений - см. ДобавитьМетодКонфигурации или см.ДобавитьМетодОбработки. -// -Процедура ДобавитьКлючСессии(Этап) Экспорт - - ДобавитьПараметр(Этап, ВидПараметраКлючСессии()); - -КонецПроцедуры - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Добавляет в таблицу параметров фиксированное значение. -// -// Параметры: -// Этап - СтрокаТаблицыЗначений - см. ДобавитьМетодКонфигурации или см. ДобавитьМетодОбработки, -// Значение - Произвольный - фиксированное значение. -// -Процедура ДобавитьЗначение(Этап, Знач Значение) Экспорт - - ДобавитьПараметр(Этап, ВидПараметраЗначение(), Значение); - -КонецПроцедуры - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Добавляет в таблицу параметров фиксированное значение. -// -// Параметры: -// Этап - СтрокаТаблицыЗначений - см. ДобавитьМетодКонфигурации или см. ДобавитьМетодОбработки, -// СохраняемоеЗначение - Строка - имя переменной сохраняемого значения внутри сценария. -// -Процедура ДобавитьСохраняемоеЗначение(Этап, Знач СохраняемоеЗначение) Экспорт - - ДобавитьПараметр(Этап, ВидПараметраСохраняемоеЗначение(), СохраняемоеЗначение); - -КонецПроцедуры - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Добавляет в таблицу параметров коллекцию сохраняемых значений. -// -// Параметры: -// Этап - СтрокаТаблицыЗначений - см. ДобавитьМетодКонфигурации или см. ДобавитьМетодОбработки. -// -Процедура ДобавитьКоллекциюСохраняемыхЗначений(Этап) Экспорт - - ДобавитьПараметр(Этап, ВидПараметраКоллекцияСохраняемыхЗначений()); - -КонецПроцедуры - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Добавляет в таблицу параметров параметр выполнения команды. -// -// Параметры: -// Этап - СтрокаТаблицыЗначений - см. ДобавитьМетодКонфигурации или см. ДобавитьМетодОбработки, -// ИмяПараметра - Строка - имя параметра выполнения команды. -// -Процедура ДобавитьПараметрВыполненияКоманды(Этап, Знач ИмяПараметра) Экспорт - - ДобавитьПараметр(Этап, ВидПараметраПараметрВыполненияКоманды(), ИмяПараметра); - -КонецПроцедуры - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Добавляет в таблицу параметров коллекцию объектов назначения. -// -// Параметры: -// Этап - СтрокаТаблицыЗначений- см. ДобавитьМетодКонфигурации или см. ДобавитьМетодОбработки. -// -Процедура ДобавитьОбъектыНазначения(Этап) Экспорт - - ДобавитьПараметр(Этап, ВидПараметраОбъектыНазначения()); - -КонецПроцедуры - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}CreateComObject -// -// Параметры: -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ТипXDTO - тип сообщения. -// -Функция ТипСозданиеCOMОбъекта(Знач ИспользуемыйПакет = Неопределено) Экспорт - - Возврат СоздатьТипСообщения(ИспользуемыйПакет, "CreateComObject"); - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает объект {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}CreateComObject -// -// Параметры: -// ProgId - Строка - ProgID класса COM, с которым он зарегистрирован в системе. -// Например, "Excel.Application". -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ОбъектXDTO - разрешение. -// -Функция РазрешениеСозданиеCOMОбъекта(Знач ProgId, Знач ИспользуемыйПакет = Неопределено) Экспорт - - Тип = ТипСозданиеCOMОбъекта(ИспользуемыйПакет); - Разрешение = ФабрикаXDTO.Создать(Тип); - Разрешение.ProgId = ProgId; - - Возврат Разрешение; - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}AttachAddin -// -// Параметры: -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ТипXDTO - тип сообщения. -// -Функция ТипПодключениеВнешнейКомпоненты(Знач ИспользуемыйПакет = Неопределено) Экспорт - - Возврат СоздатьТипСообщения(ИспользуемыйПакет, "AttachAddin"); - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает объект {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}AttachAddin -// -// Параметры: -// ИмяОбщегоМакета - Строка - имя общего макета, -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ОбъектXDTO - разрешение. -// -Функция РазрешениеПодключениеВнешнейКомпонентыИзОбщегоМакетаКонфигурации(Знач ИмяОбщегоМакета, Знач ИспользуемыйПакет = Неопределено) Экспорт - - Тип = ТипПодключениеВнешнейКомпоненты(ИспользуемыйПакет); - Разрешение = ФабрикаXDTO.Создать(Тип); - Разрешение.TemplateName = "ОбщийМакет." + ИмяОбщегоМакета; - - Возврат Разрешение; - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает объект {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}AttachAddin -// -// Параметры: -// ОбъектМетаданных - ОбъектМетаданных - объект метаданных, -// ИмяМакета - Строка - имя макета, -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ОбъектXDTO - разрешение. -// -Функция РазрешениеПодключениеВнешнейКомпонентыИзМакетаКонфигурации(Знач ОбъектМетаданных, Знач ИмяМакета, Знач ИспользуемыйПакет = Неопределено) Экспорт - - Тип = ТипПодключениеВнешнейКомпоненты(ИспользуемыйПакет); - Разрешение = ФабрикаXDTO.Создать(Тип); - Разрешение.TemplateName = ОбъектМетаданных.ПолноеИмя() + ".Макет" + ИмяМакета; - - Возврат Разрешение; - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}GetFileFromExternalSoftware -// -// Параметры: -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ТипXDTO - тип сообщения. -// -Функция ТипПолучениеФайлаИзВнешнегоОбъекта(Знач ИспользуемыйПакет = Неопределено) Экспорт - - Возврат СоздатьТипСообщения(ИспользуемыйПакет, "GetFileFromExternalSoftware"); - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает объект {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}GetFileFromExternalSoftware -// -// Параметры: -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ОбъектXDTO - разрешение. -// -Функция РазрешениеПолучениеФайлаИзВнешнегоОбъекта(Знач ИспользуемыйПакет = Неопределено) Экспорт - - Тип = ТипПолучениеФайлаИзВнешнегоОбъекта(ИспользуемыйПакет); - Разрешение = ФабрикаXDTO.Создать(Тип); - - Возврат Разрешение; - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}SendFileToExternalSoftware -// -// Параметры: -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ТипXDTO - тип сообщения. -// -Функция ТипПередачаФайлаВоВнешнийОбъект(Знач ИспользуемыйПакет = Неопределено) Экспорт - - Возврат СоздатьТипСообщения(ИспользуемыйПакет, "SendFileToExternalSoftware"); - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает объект {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}SendFileToExternalSoftware -// -// Параметры: -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ОбъектXDTO - разрешение. -// -Функция РазрешениеПередачаФайлаВоВнешнийОбъект(Знач ИспользуемыйПакет = Неопределено) Экспорт - - Тип = ТипПередачаФайлаВоВнешнийОбъект(ИспользуемыйПакет); - Разрешение = ФабрикаXDTO.Создать(Тип); - - Возврат Разрешение; - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}GetFileFromInternet -// -// Параметры: -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ТипXDTO- тип сообщения. -// -Функция ТипПолучениеДанныхИзИнтернет(Знач ИспользуемыйПакет = Неопределено) Экспорт - - Возврат СоздатьТипСообщения(ИспользуемыйПакет, "GetFileFromInternet"); - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает объект {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}GetFileFromInternet -// -// Параметры: -// Протокол - Строка - протокол, -// Сервер - Строка - сервер, -// Порт - Строка - порт, -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ОбъектXDTO - разрешение. -// -Функция РазрешениеПолучениеДанныхИзИнтернет(Знач Протокол, Знач Сервер, Знач Порт, Знач ИспользуемыйПакет = Неопределено) Экспорт - - Тип = ТипПолучениеДанныхИзИнтернет(ИспользуемыйПакет); - Разрешение = ФабрикаXDTO.Создать(Тип); - Разрешение.Protocol = ВРег(Протокол); - Разрешение.Host = Сервер; - Разрешение.Port = Порт; - - Возврат Разрешение; - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}SendFileToInternet -// -// Параметры: -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ТипXDTO - тип сообщения. -// -Функция ТипПередачаДанныхВИнтернет(Знач ИспользуемыйПакет = Неопределено) Экспорт - - Возврат СоздатьТипСообщения(ИспользуемыйПакет, "SendFileToInternet"); - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает объект {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}SendFileToInternet -// -// Параметры: -// Протокол - Строка- используемый протокол передачи данных, -// Сервер - Строка - сервер, -// Порт - Строка - порт, -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ОбъектXDTO - разрешение. -// -Функция РазрешениеПередачаДанныхВИнтернет(Знач Протокол, Знач Сервер, Знач Порт, Знач ИспользуемыйПакет = Неопределено) Экспорт - - Тип = ТипПередачаДанныхВИнтернет(ИспользуемыйПакет); - Разрешение = ФабрикаXDTO.Создать(Тип); - Разрешение.Protocol = ВРег(Протокол); - Разрешение.Host = Сервер; - Разрешение.Port = Порт; - - Возврат Разрешение; - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}SoapConnect -// -// Параметры: -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ТипXDTO - тип сообщения. -// -Функция ТипWSСоединение(Знач ИспользуемыйПакет = Неопределено) Экспорт - - Возврат СоздатьТипСообщения(ИспользуемыйПакет, "SoapConnect"); - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает объект {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}SoapConnect -// -// Параметры: -// АдресWSDL - Строка - адрес публикации WSDL, -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ОбъектXDTO - разрешение. -// -Функция РазрешениеWSСоединение(Знач АдресWSDL, Знач ИспользуемыйПакет = Неопределено) Экспорт - - Тип = ТипWSСоединение(ИспользуемыйПакет); - Разрешение = ФабрикаXDTO.Создать(Тип); - Разрешение.WsdlDestination = АдресWSDL; - - Возврат Разрешение; - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}DocumentPosting -// -// Параметры: -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ТипXDTO - тип сообщения. -// -Функция ТипПроведениеДокументов(Знач ИспользуемыйПакет = Неопределено) Экспорт - - Возврат СоздатьТипСообщения(ИспользуемыйПакет, "DocumentPosting"); - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает объект {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}DocumentPosting -// -// Параметры: -// ОбъектМетаданных - ОбъектМетаданных - объект метаданных, -// РежимЗаписи - РежимЗаписиДокумента - режим записи документа, -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ОбъектXDTO - разрешение. -// -Функция РазрешениеПроведениеДокументов(Знач ОбъектМетаданных, Знач РежимЗаписи, Знач ИспользуемыйПакет = Неопределено) Экспорт - - Тип = ТипПроведениеДокументов(ИспользуемыйПакет); - Разрешение = ФабрикаXDTO.Создать(Тип); - Разрешение.DocumentType = ОбъектМетаданных.ПолноеИмя(); - Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда - Разрешение.Action = "Posting"; - Иначе - Разрешение.Action = "UndoPosting"; - КонецЕсли; - - Возврат Разрешение; - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}InternalFileHandler -// -// Параметры: -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой -// получается тип сообщения. -// -// Возвращаемое значение: -// ТипXDTO - тип сообщения. -// -Функция ПараметрПередаваемыйФайл(Знач ИспользуемыйПакет = Неопределено) Экспорт - - Возврат СоздатьТипСообщения(ИспользуемыйПакет, "InternalFileHandler"); - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает значение, соответствующее любому значению ограничителя (*) при -// регистрации разрешений, запрашиваемых дополнительной обработкой. -// -// Возвращаемое значение: -// Неопределено - любое значение. -// -Функция ЛюбоеЗначение() Экспорт - - Возврат Неопределено; - -КонецФункции - -#КонецОбласти - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Устарела. -Функция СоздатьТипСообщения(Знач ИспользуемыйПакет, Знач Тип) - - Если ИспользуемыйПакет = Неопределено Тогда - ИспользуемыйПакет = Пакет(); - КонецЕсли; - - Возврат ФабрикаXDTO.Тип(ИспользуемыйПакет, Тип); - -КонецФункции - -// Устарела. -Функция ДобавитьЭтап(Сценарий, Знач ВидЭтапа, Знач ИмяМетода, Знач СохранениеРезультата = "") - - Этап = Сценарий.Добавить(); - Этап.ВидДействия = ВидЭтапа; - Этап.ИмяМетода = ИмяМетода; - Этап.Параметры = НоваяТаблицаПараметров(); - Если Не ПустаяСтрока(СохранениеРезультата) Тогда - Этап.СохранениеРезультата = СохранениеРезультата; - КонецЕсли; - - Возврат Этап; - -КонецФункции - -// Устарела. -Процедура ДобавитьПараметр(Этап, Знач ВидПараметра, Знач Значение = Неопределено) - - Параметр = Этап.Параметры.Добавить(); - Параметр.Вид = ВидПараметра; - Если Значение <> Неопределено Тогда - Параметр.Значение = Значение; - КонецЕсли; - -КонецПроцедуры - -// Устарела. -// Преобразовывает разрешения из формата 2.1.3 в формат 2.2.2. -// -Функция ПреобразоватьРазрешенияВерсии_2_1_3_ВРазрешенияВерсии_2_2_2(Знач ДополнительныйОтчетИлиОбработка, Знач Разрешения) Экспорт - - Результат = Новый Массив(); - - // Если у обработки есть команды, которые являются сценарием - добавляем права на работу с каталогом временных - // файлов. - - МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); - - ОтборСценариев = Новый Структура("ВариантЗапуска", Перечисления.СпособыВызоваДополнительныхОбработок.СценарийВБезопасномРежиме); - ЕстьСценарии = ДополнительныйОтчетИлиОбработка.Команды.НайтиСтроки(ОтборСценариев).Количество() > 0; - Если ЕстьСценарии Тогда - Результат.Добавить(МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина)); - КонецЕсли; - - // Преобразуем разрешения в нотации "расширения" безопасного режима. - Для Каждого Разрешение Из Разрешения Цикл - - Если Разрешение.Тип() = ТипПолучениеДанныхИзИнтернет(Пакет()) Тогда - - Результат.Добавить( - МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса( - Разрешение.Protocol, - Разрешение.Host, - Разрешение.Port)); - - ИначеЕсли Разрешение.Тип() = ТипПередачаДанныхВИнтернет(Пакет()) Тогда - - Результат.Добавить( - МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса( - Разрешение.Protocol, - Разрешение.Host, - Разрешение.Port)); - - ИначеЕсли Разрешение.Тип() = ТипWSСоединение(Пакет()) Тогда - - СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(Разрешение.WsdlDestination); - - Результат.Добавить( - МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса( - СтруктураURI.Схема, - СтруктураURI.ИмяСервера, - СтруктураURI.Порт)); - - ИначеЕсли Разрешение.Тип() = ТипСозданиеCOMОбъекта(Пакет()) Тогда - - Результат.Добавить( - МодульРаботаВБезопасномРежиме.РазрешениеНаСозданиеCOMКласса( - Разрешение.ProgId, - ИдентификаторCOMКлассаВРежимеОбратнойСовместимости(Разрешение.ProgId))); - - ИначеЕсли Разрешение.Тип() = ТипПодключениеВнешнейКомпоненты(Пакет()) Тогда - - Результат.Добавить( - МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеВнешнейКомпоненты( - Разрешение.TemplateName)); - - ИначеЕсли Разрешение.Тип() = ТипПолучениеФайлаИзВнешнегоОбъекта(Пакет()) Тогда - - Результат.Добавить( - МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина)); - - ИначеЕсли Разрешение.Тип() = ТипПередачаФайлаВоВнешнийОбъект(Пакет()) Тогда - - Результат.Добавить( - МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина)); - - ИначеЕсли Разрешение.Тип() = ТипПроведениеДокументов(Пакет()) Тогда - - Результат.Добавить(МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима()); - - КонецЕсли; - - КонецЦикла; - - Возврат Результат; - -КонецФункции - -// Устарела. -Функция ИдентификаторCOMКлассаВРежимеОбратнойСовместимости(Знач ProgId) - - ПоддерживаемыеИдентификаторы = ИдентификаторыCOMКлассовВРежимеОбратнойСовместимости(); - CLSID = ПоддерживаемыеИдентификаторы.Получить(ProgId); - - Если CLSID = Неопределено Тогда - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Разрешение на использование COM-класса ""%1"" не может быть предоставлено дополнительной обработке, - |работающей в режиме обратной совместимости с механизмом разрешений, реализованным в версии БСП 2.1.3. - |Для использования COM-класса требуется переработать дополнительную обработку для работы без режима обратной совместимости.'"), - ProgId); - - Иначе - - Возврат CLSID; - - КонецЕсли; - -КонецФункции - -// Устарела. -Функция ИдентификаторыCOMКлассовВРежимеОбратнойСовместимости() - - Результат = Новый Соответствие(); - - // V83.ComConnector - Результат.Вставить(ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя(), ОбщегоНазначения.ИдентификаторCOMСоединителя(ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя())); - // Word.Application - Результат.Вставить("Word.Application", "000209FF-0000-0000-C000-000000000046"); - // Excel.Application - Результат.Вставить("Excel.Application", "00024500-0000-0000-C000-000000000046"); - - Возврат Результат; - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеПовтИсп/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеПовтИсп/Module.bsl deleted file mode 100644 index e4ed5c785..000000000 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеПовтИсп/Module.bsl +++ /dev/null @@ -1,261 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает массив методов, которые могут быть выполнены расширением безопасного -// режима. -// -// Возвращаемое значение: -// Массив - массив строк, в которых хранятся разрешенные методы. -// -Функция ПолучитьРазрешенныеМетоды() Экспорт - - Результат = Новый Массив(); - - Возврат Новый ФиксированныйМассив(Результат); - -КонецФункции - -// Устарела. Будет удалена в следующей редакции библиотеки. -// Возвращает словарь синонимов видов разрешений дополнительных отчетов и обработок -// и их параметров (для отображения в пользовательском интерфейсе). -// -// Возвращаемое значение: -// ФиксированноеСоответствие - ключи: -// * Ключ - ТипXDTO - соответствующий виду разрешения, -// * Значение - Структура - ключи: -// * Представление - Строка - краткое представление вида разрешения, -// * Описание - Строка - подробное описание вида разрешения, -// * Параметры - ТаблицаЗначений - колонки: -// * Имя - Строка - имя свойства, определенного для ТипаXDTO, -// * Описание - Строка - описание последствий параметра разрешения для указанного значения параметра, -// * ОписаниеЛюбогоЗначения - Строка - описание последствий параметра разрешения для неуказанного значения параметра. -// -Функция Словарь() Экспорт - - Результат = Новый Соответствие(); - - // {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}GetFileFromInternet - - Представление = НСтр("ru = 'Получение данных из сети Интернет'"); - Описание = НСтр("ru = 'Дополнительному отчету или обработке будет разрешено получать данные из сети Интернет'"); - - Параметры = ТаблицаПараметров(); - ДобавитьПараметр(Параметры, "Host", НСтр("ru = 'с сервера %1'"), НСтр("ru = 'с любого сервера'")); - ДобавитьПараметр(Параметры, "Protocol", НСтр("ru = 'по протоколу %1'"), НСтр("ru = 'по любому протоколу'")); - ДобавитьПараметр(Параметры, "Port", НСтр("ru = 'через порт %1'"), НСтр("ru = 'через любой порт'")); - - Значение = Новый Структура; - Значение.Вставить("Представление", Представление); - Значение.Вставить("Описание", Описание); - Значение.Вставить("Параметры", Параметры); - - Результат.Вставить( - ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ТипПолучениеДанныхИзИнтернет(), - Значение); - - // Конец {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}GetFileFromInternet - - // {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}SendFileToInternet - - Представление = НСтр("ru = 'Передача данных в сеть Интернет'"); - Описание = НСтр("ru = 'Дополнительному отчету или обработке будет разрешено отправлять данные в сеть Интернет'"); - Последствия = НСтр("ru = 'Внимание! Отправка данных потенциально может использоваться дополнительным - |отчетом или обработкой для совершения действий, не предполагаемых администратором - |информационной базы. - | - |Используйте данный дополнительный отчет или обработку только в том случае, если доверяете - |ее разработчику и контролируйте ограничения (сервер, протокол и порт), накладываемые на - |выданные разрешения.'"); - - Параметры = ТаблицаПараметров(); - ДобавитьПараметр(Параметры, "Host", НСтр("ru = 'на сервер %1'"), НСтр("ru = 'на любой сервера'")); - ДобавитьПараметр(Параметры, "Protocol", НСтр("ru = 'по протоколу %1'"), НСтр("ru = 'по любому протоколу'")); - ДобавитьПараметр(Параметры, "Port", НСтр("ru = 'через порт %1'"), НСтр("ru = 'через любой порт'")); - - Значение = Новый Структура; - Значение.Вставить("Представление", Представление); - Значение.Вставить("Описание", Описание); - Значение.Вставить("Последствия", Последствия); - Значение.Вставить("Параметры", Параметры); - - Результат.Вставить( - ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ТипПередачаДанныхВИнтернет(), - Значение); - - // Конец {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}SendFileToInternet - - // {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}SoapConnect - - Представление = НСтр("ru = 'Обращение к веб-сервисам в сети Интернет'"); - Описание = НСтр("ru = 'Дополнительному отчету или обработке будет разрешено обращаться к веб-сервисам, расположенным в сети Интернет (при этом возможно как получение дополнительным отчетом или обработкой информации из сети Интернет, так и передача.'"); - Последствия = НСтр("ru = 'Внимание! Обращение к веб-сервисам потенциально может использоваться дополнительным - |отчетом или обработкой для совершения действий, не предполагаемых администратором - |информационной базы. - | - |Используйте данный дополнительный отчет или обработку только в том случае, если доверяете - |ее разработчику и контролируйте ограничения (адрес подключения), накладываемые на - |выданные разрешения.'"); - - Параметры = ТаблицаПараметров(); - ДобавитьПараметр(Параметры, "WsdlDestination", НСтр("ru = 'по адресу %1'"), НСтр("ru = 'по любому адресу'")); - - Значение = Новый Структура; - Значение.Вставить("Представление", Представление); - Значение.Вставить("Описание", Описание); - Значение.Вставить("Последствия", Последствия); - Значение.Вставить("Параметры", Параметры); - - Результат.Вставить( - ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ТипWSСоединение(), - Значение); - - // Конец {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}SoapConnect - - // {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}CreateComObject - - Представление = НСтр("ru = 'Создание COM-объекта'"); - Описание = НСтр("ru = 'Дополнительному отчету или обработке будет разрешено использовать механизмы внешнего программного обеспечения с помощью COM-соединения'"); - Последствия = НСтр("ru = 'Внимание! Использование средств стороннего программного обеспечения может использоваться - |дополнительным отчетом или обработкой для совершения действий, не предполагаемых администратором - |информационной базы, а также для несанкционированного обхода ограничений, накладываемых на дополнительную обработку - |в безопасном режиме. - | - |Используйте данный дополнительный отчет или обработку только в том случае, если доверяете - |ее разработчику и контролируйте ограничения (программный идентификатор), накладываемые на - |выданные разрешения.'"); - - Параметры = ТаблицаПараметров(); - ДобавитьПараметр(Параметры, "ProgId", НСтр("ru = 'с программным идентификатором %1'"), НСтр("ru = 'с любым программным идентификатором'")); - - Значение = Новый Структура; - Значение.Вставить("Представление", Представление); - Значение.Вставить("Описание", Описание); - Значение.Вставить("Последствия", Последствия); - Значение.Вставить("Параметры", Параметры); - - Результат.Вставить( - ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ТипСозданиеCOMОбъекта(), - Значение); - - // Конец {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}CreateComObject - - // {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}AttachAddin - - Представление = НСтр("ru = 'Создание объекта внешней компоненту'"); - Описание = НСтр("ru = 'Дополнительному отчету или обработке будет разрешено использовать механизмы внешнего программного обеспечения с помощью создания объекта внешней компоненты, поставляемой в макете конфигурации'"); - Последствия = НСтр("ru = 'Внимание! Использование средств стороннего программного обеспечения может использоваться - |дополнительным отчетом или обработкой для совершения действий, не предполагаемых администратором - |информационной базы, а также для несанкционированного обхода ограничений, накладываемых на дополнительную обработку - |в безопасном режиме. - | - |Используйте данный дополнительный отчет или обработку только в том случае, если доверяете - |ее разработчику и контролируйте ограничения (имя макета, из которого выполняется подключение внешней - |компоненты), накладываемые на выданные разрешения.'"); - - Параметры = ТаблицаПараметров(); - ДобавитьПараметр(Параметры, "TemplateName", НСтр("ru = 'из макета %1'"), НСтр("ru = 'из любого макета'")); - - Значение = Новый Структура; - Значение.Вставить("Представление", Представление); - Значение.Вставить("Описание", Описание); - Значение.Вставить("Последствия", Последствия); - Значение.Вставить("Параметры", Параметры); - - Результат.Вставить( - ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ТипПодключениеВнешнейКомпоненты(), - Значение); - - // Конец {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}AttachAddin - - // {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}GetFileFromExternalSoftware - - Представление = НСтр("ru = 'Получение файлов из внешнего объекта'"); - Описание = НСтр("ru = 'Дополнительному отчету или обработке будет разрешено получать файлы из внешнего программного обеспечения (например, с помощью COM-соединения или внешней компоненты)'"); - - Значение = Новый Структура; - Значение.Вставить("Представление", Представление); - Значение.Вставить("Описание", Описание); - - Результат.Вставить( - ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ТипПолучениеФайлаИзВнешнегоОбъекта(), - Значение); - - // Конец {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}GetFileFromExternalSoftware - - // {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}SendFileToExternalSoftware - - Представление = НСтр("ru = 'Передача файлов во внешний объект'"); - Описание = НСтр("ru = 'Дополнительному отчету или обработке будет разрешено передавать файлы во внешнее программное обеспечение (например, с помощью COM-соединения или внешней компоненты)'"); - - Значение = Новый Структура; - Значение.Вставить("Представление", Представление); - Значение.Вставить("Описание", Описание); - - Результат.Вставить( - ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ТипПередачаФайлаВоВнешнийОбъект(), - Значение); - - // Конец {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}SendFileToExternalSoftware - - // {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}SendFileToInternet - - Представление = НСтр("ru = 'Проведение документов'"); - Описание = НСтр("ru = 'Дополнительному отчету или обработке будет разрешено изменять состояние проведенности документов'"); - - Параметры = ТаблицаПараметров(); - ДобавитьПараметр(Параметры, "DocumentType", НСтр("ru = 'документы с типом %1'"), НСтр("ru = 'любые документы'")); - ДобавитьПараметр(Параметры, "Action", НСтр("ru = 'разрешенное действие: %1'"), НСтр("ru = 'любое изменение состояния проведения'")); - - Значение = Новый Структура; - Значение.Вставить("Представление", Представление); - Значение.Вставить("Описание", Описание); - Значение.Вставить("Параметры", Параметры); - Значение.Вставить("ОтображатьПользователю", Неопределено); - - Результат.Вставить( - ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ТипПроведениеДокументов(), - Значение); - - // Конец {http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/a.b.c.d}SendFileToInternet - - Возврат Результат; - -КонецФункции - -#КонецОбласти - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Процедура ДобавитьПараметр(Знач ТаблицаПараметров, Знач Имя, Знач Описание, Знач ОписаниеЛюбогоЗначения) - - Параметр = ТаблицаПараметров.Добавить(); - Параметр.Имя = Имя; - Параметр.Описание = Описание; - Параметр.ОписаниеЛюбогоЗначения = ОписаниеЛюбогоЗначения; - -КонецПроцедуры - -Функция ТаблицаПараметров() - - Результат = Новый ТаблицаЗначений(); - Результат.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка")); - Результат.Колонки.Добавить("Описание", Новый ОписаниеТипов("Строка")); - Результат.Колонки.Добавить("ОписаниеЛюбогоЗначения", Новый ОписаниеТипов("Строка")); - - Возврат Результат; - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный/Module.bsl index 79dd175d6..378bbaa59 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный/Module.bsl @@ -83,7 +83,33 @@ КонецФункции -Функция ЗапросыРазрешенийДополнительныхОбработок(Знач ЗначениеФО = Неопределено) Экспорт +//////////////////////////////////////////////////////////////////////////////// +// Обработчики событий подсистем конфигурации. + +// См. ИнтеграцияПодсистемБСП.ПриРегистрацииМенеджеровВнешнихМодулей. +Процедура ПриРегистрацииМенеджеровВнешнихМодулей(Менеджеры) Экспорт + + Менеджеры.Добавить(ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный); + +КонецПроцедуры + +// См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. +Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт + + Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + Возврат; + КонецЕсли; + + НовыеЗапросы = ЗапросыРазрешенийДополнительныхОбработок(); + ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ЗапросыРазрешений, НовыеЗапросы); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ЗапросыРазрешенийДополнительныхОбработок(Знач ЗначениеФО = Неопределено) Если ЗначениеФО = Неопределено Тогда ЗначениеФО = ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеОтчетыИОбработки"); @@ -113,7 +139,7 @@ КонецФункции -Функция ЗапросыРазрешенийДополнительнойОбработки(Знач Объект, Знач РазрешенияВДанных, Знач ЗначениеФО = Неопределено, Знач ПометкаУдаления = Неопределено) Экспорт +Функция ЗапросыРазрешенийДополнительнойОбработки(Знач Объект, Знач РазрешенияВДанных, Знач ЗначениеФО = Неопределено, Знач ПометкаУдаления = Неопределено) ЗапрашиваемыеРазрешения = Новый Массив(); @@ -148,29 +174,13 @@ Если БылиРазрешения Или ЕстьРазрешения Тогда - Если Объект.РежимСовместимостиРазрешений = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_2_2 Тогда - - ЗапрашиваемыеРазрешения = Новый Массив(); - Для Каждого РазрешениеВДанных Из РазрешенияВДанных Цикл - Разрешение = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(МодульРаботаВБезопасномРежимеСлужебный.Пакет(), РазрешениеВДанных.ВидРазрешения)); - СвойстваВДанных = РазрешениеВДанных.Параметры.Получить(); - ЗаполнитьЗначенияСвойств(Разрешение, СвойстваВДанных); - ЗапрашиваемыеРазрешения.Добавить(Разрешение); - КонецЦикла; - - Иначе - - СтарыеРазрешения = Новый Массив(); - Для Каждого РазрешениеВДанных Из РазрешенияВДанных Цикл - Разрешение = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/1.0.0.1", РазрешениеВДанных.ВидРазрешения)); - СвойстваВДанных = РазрешениеВДанных.Параметры.Получить(); - ЗаполнитьЗначенияСвойств(Разрешение, СвойстваВДанных); - СтарыеРазрешения.Добавить(Разрешение); - КонецЦикла; - - ЗапрашиваемыеРазрешения = ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ПреобразоватьРазрешенияВерсии_2_1_3_ВРазрешенияВерсии_2_2_2(Объект, СтарыеРазрешения); - - КонецЕсли; + ЗапрашиваемыеРазрешения = Новый Массив(); + Для Каждого РазрешениеВДанных Из РазрешенияВДанных Цикл + Разрешение = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(МодульРаботаВБезопасномРежимеСлужебный.Пакет(), РазрешениеВДанных.ВидРазрешения)); + СвойстваВДанных = РазрешениеВДанных.Параметры.Получить(); + ЗаполнитьЗначенияСвойств(Разрешение, СвойстваВДанных); + ЗапрашиваемыеРазрешения.Добавить(Разрешение); + КонецЦикла; КонецЕсли; @@ -180,256 +190,4 @@ КонецФункции -// Только для внутреннего использования. -Функция СформироватьКлючСессииРасширенияБезопасногоРежима(Знач Обработка) Экспорт - - Возврат Обработка.УникальныйИдентификатор(); - -КонецФункции - -// Только для внутреннего использования. -Процедура ВыполнитьСценарийБезопасногоРежима(Знач КлючСессии, Знач Сценарий, Знач ИсполняемыйОбъект, ПараметрыВыполнения, СохраняемыеПараметры = Неопределено, ОбъектыНазначения = Неопределено) Экспорт - - Исключения = ДополнительныеОтчетыИОбработкиВБезопасномРежимеПовтИсп.ПолучитьРазрешенныеМетоды(); - - Если СохраняемыеПараметры = Неопределено Тогда - СохраняемыеПараметры = Новый Структура(); - КонецЕсли; - - Для Каждого ШагСценария Из Сценарий Цикл - - ВыполнятьБезопасно = Истина; - ИсполняемыйФрагмент = ""; - - Если ШагСценария.ВидДействия = ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ВидДействияВызовМетодаОбработки() Тогда - - ИсполняемыйФрагмент = "ИсполняемыйОбъект." + ШагСценария.ИмяМетода; - - ИначеЕсли ШагСценария.ВидДействия = ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ВидДействияВызовМетодаКонфигурации() Тогда - - ИсполняемыйФрагмент = ШагСценария.ИмяМетода; - - Если Исключения.Найти(ШагСценария.ИмяМетода) <> Неопределено Тогда - ВыполнятьБезопасно = Ложь; - КонецЕсли; - - Иначе - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Неизвестный вид действия для этапа сценария: %1'"), ШагСценария.ВидДействия); - - КонецЕсли; - - НесохраняемыеПараметры = Новый Массив(); - - ПодстрокаПараметров = ""; - - ПараметрыМетода = ШагСценария.Параметры; - Для Каждого ПараметрМетода Из ПараметрыМетода Цикл - - Если Не ПустаяСтрока(ПодстрокаПараметров) Тогда - ПодстрокаПараметров = ПодстрокаПараметров + ", "; - КонецЕсли; - - Если ПараметрМетода.Вид = ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ВидПараметраЗначение() Тогда - - НесохраняемыеПараметры.Добавить(ПараметрМетода.Значение); - ПодстрокаПараметров = ПодстрокаПараметров - + "НесохраняемыеПараметры.Получить(" - + НесохраняемыеПараметры.ВГраница() - + ")"; - - ИначеЕсли ПараметрМетода.Вид = ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ВидПараметраКлючСессии() Тогда - - ПодстрокаПараметров = ПодстрокаПараметров + "КлючСессии"; - - ИначеЕсли ПараметрМетода.Вид = ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ВидПараметраКоллекцияСохраняемыхЗначений() Тогда - - ПодстрокаПараметров = ПодстрокаПараметров + "СохраняемыеПараметры"; - - ИначеЕсли ПараметрМетода.Вид = ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ВидПараметраСохраняемоеЗначение() Тогда - - ПодстрокаПараметров = ПодстрокаПараметров + "СохраняемыеПараметры." + ПараметрМетода.Значение; - - ИначеЕсли ПараметрМетода.Вид = ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ВидПараметраОбъектыНазначения() Тогда - - ПодстрокаПараметров = ПодстрокаПараметров + "ОбъектыНазначения"; - - ИначеЕсли ПараметрМетода.Вид = ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.ВидПараметраПараметрВыполненияКоманды() Тогда - - ПодстрокаПараметров = ПодстрокаПараметров + "ПараметрыВыполнения." + ПараметрМетода.Значение; - - Иначе - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Неизвестный параметр для этапа сценария: %1'"), ПараметрМетода.Вид); - - КонецЕсли; - - КонецЦикла; - - ИсполняемыйФрагмент = ИсполняемыйФрагмент + "(" + ПодстрокаПараметров + ")"; - - Если ВыполнятьБезопасно <> (БезопасныйРежим() <> Ложь) Тогда - УстановитьБезопасныйРежим(ВыполнятьБезопасно); - КонецЕсли; - - Если Не ПустаяСтрока(ШагСценария.СохранениеРезультата) Тогда - Результат = ОбщегоНазначения.ВычислитьВБезопасномРежиме(ИсполняемыйФрагмент); - СохраняемыеПараметры.Вставить(ШагСценария.СохранениеРезультата, Результат); - Иначе - ОбщегоНазначения.ВыполнитьВБезопасномРежиме(ИсполняемыйФрагмент); - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - -// Только для внутреннего использования. -Функция СформироватьПредставлениеРазрешений(Знач Разрешения) Экспорт - - ОписанияРазрешений = ДополнительныеОтчетыИОбработкиВБезопасномРежимеПовтИсп.Словарь(); - - Результат = ""; - - Для Каждого Разрешение Из Разрешения Цикл - - ВидРазрешения = Разрешение.ВидРазрешения; - - ОписаниеРазрешения = ОписанияРазрешений.Получить( - ФабрикаXDTO.Тип( - ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.Пакет(), - ВидРазрешения)); - - ПредставлениеРазрешения = ОписаниеРазрешения.Представление; - - ПредставлениеПараметров = ""; - Параметры = Разрешение.Параметры.Получить(); - - Если Параметры <> Неопределено Тогда - - Для Каждого Параметр Из Параметры Цикл - - Если Не ПустаяСтрока(ПредставлениеПараметров) Тогда - ПредставлениеПараметров = ПредставлениеПараметров + ", "; - КонецЕсли; - - ПредставлениеПараметров = ПредставлениеПараметров + Строка(Параметр.Значение); - - КонецЦикла; - - КонецЕсли; - - Если Не ПустаяСтрока(ПредставлениеПараметров) Тогда - ПредставлениеРазрешения = ПредставлениеРазрешения + " (" + ПредставлениеПараметров + ")"; - КонецЕсли; - - Результат = Результат + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "
                • %1 %3", - ПредставлениеРазрешения, - "internal:" + ВидРазрешения, - НСтр("ru = 'Подробнее...'")); - - КонецЦикла; - - Результат = Результат + "
                • "; - - Возврат Результат; - -КонецФункции - -// Только для внутреннего использования. -Функция СформироватьПодробноеОписаниеРазрешения(Знач ВидРазрешения, Знач ПараметрыРазрешения) Экспорт - - ОписанияРазрешений = ДополнительныеОтчетыИОбработкиВБезопасномРежимеПовтИсп.Словарь(); - - Результат = ""; - - ОписаниеРазрешения = ОписанияРазрешений.Получить( - ФабрикаXDTO.Тип( - ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.Пакет(), - ВидРазрешения)); - - ПредставлениеРазрешения = ОписаниеРазрешения.Представление; - РасшифровкаРазрешения = ОписаниеРазрешения.Описание; - - ОписанияПараметров = Неопределено; - ЕстьПараметры = ОписаниеРазрешения.Свойство("Параметры", ОписанияПараметров); - - Результат = Результат + "

                  << Назад к списку разрешений

                  "; - - Результат = Результат + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "

                  %1

                  ", - ПредставлениеРазрешения); - - Результат = Результат + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "

                  %1%2

                  ", РасшифровкаРазрешения, ?( - ЕстьПараметры, - " " + НСтр("ru = 'со следующими ограничениями'") + ":", - ".")); - - Если ЕстьПараметры Тогда - - Результат = Результат + "
                    "; - - Для Каждого Параметр Из ОписанияПараметров Цикл - - ИмяПараметра = Параметр.Имя; - ЗначениеПараметра = ПараметрыРазрешения[ИмяПараметра]; - - Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда - - ОписаниеПараметра = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Параметр.Описание, ЗначениеПараметра); - - Иначе - - ОписаниеПараметра = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1", Параметр.ОписаниеЛюбогоЗначения); - - КонецЕсли; - - Результат = Результат + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("
                  • %1", ОписаниеПараметра); - - КонецЦикла; - - Результат = Результат + "
                  "; - - КонецЕсли; - - ОписаниеПоследствий = ""; - Если ОписаниеРазрешения.Свойство("Последствия", ОписаниеПоследствий) Тогда - - Результат = Результат + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "

                  %1

                  ", - ОписаниеПоследствий); - - КонецЕсли; - - Результат = Результат + "

                  << Назад к списку разрешений

                  "; - - Результат = Результат + ""; - - Возврат Результат; - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. - -// См. ИнтеграцияПодсистемБСП.ПриРегистрацииМенеджеровВнешнихМодулей. -Процедура ПриРегистрацииМенеджеровВнешнихМодулей(Менеджеры) Экспорт - - Менеджеры.Добавить(ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный); - -КонецПроцедуры - -// См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. -Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт - - Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - Возврат; - КонецЕсли; - - НовыеЗапросы = ЗапросыРазрешенийДополнительныхОбработок(); - ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ЗапросыРазрешений, НовыеЗапросы); - -КонецПроцедуры - -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/Module.bsl new file mode 100644 index 000000000..0b3fd4a80 --- /dev/null +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/Module.bsl @@ -0,0 +1,1878 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +#Область ОбработчикиСлужебныхСобытий + +#Область СтандартныеПодсистемы + +#Область БазоваяФункциональность + +// Заполняет массив списком имен объектов метаданных, данные которых могут содержать ссылки на различные объекты метаданных, +// но при этом эти ссылки не должны учитываться в бизнес-логике приложения. +// +// Параметры: +// Массив - массив строк, например, "РегистрСведений.ВерсииОбъектов". +// +Процедура ПриДобавленииИсключенийПоискаСсылок(Массив) Экспорт + + Массив.Добавить( + Метаданные.РегистрыСведений.ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных.ПолноеИмя()); + +КонецПроцедуры + +#КонецОбласти + +#Область ДополнительныеОтчетыИОбработки + +// Вызывается при определении наличия у текущего пользователя права на добавление дополнительного +// отчета или обработки в область данных. +// +// Параметры: +// ДополнительнаяОбработка - СправочникОбъект.ДополнительныеОтчетыИОбработки, элемент справочника, +// который записывается пользователем. +// Результат - Булево, в этот параметр в данной процедуре устанавливается флаг наличия права, +// СтандартнаяОбработка - Булево, в этот параметр в данной процедуре устанавливается флаг выполнения +// стандартной обработки проверки права. +// +Процедура ПриПроверкеПраваДобавления(Знач ДополнительнаяОбработка, Результат, СтандартнаяОбработка) Экспорт + + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + Если ПолучитьФункциональнуюОпцию("НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса") Тогда + Возврат; + КонецЕсли; + + СтандартнаяОбработка = Ложь; + Если ДополнительнаяОбработка = Неопределено Тогда + Результат = Ложь; + Возврат; + КонецЕсли; + + Если ДополнительнаяОбработка.ЭтоНовый() Тогда + СсылкаОбработки = ДополнительнаяОбработка.ПолучитьСсылкуНового(); + Иначе + СсылкаОбработки = ДополнительнаяОбработка.Ссылка; + КонецЕсли; + Результат = ЭтоПоставляемаяОбработка(СсылкаОбработки); + +КонецПроцедуры + +// Вызывается при проверке возможности загрузки дополнительного отчета или обработки из файла. +// +// Параметры: +// ДополнительнаяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки, +// Результат - Булево, в этот параметр в данной процедуре устанавливается флаг наличия возможности +// загрузки дополнительного отчета или обработки из файла, +// СтандартнаяОбработка - Булево, в этот параметр в данной процедуре устанавливается флаг выполнения +// стандартной обработки проверки возможности загрузки дополнительного отчета или обработки из файла. +// +Процедура ПриПроверкеВозможностиЗагрузкиОбработкиИзФайла(Знач ДополнительнаяОбработка, Результат, СтандартнаяОбработка) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Если ОбщегоНазначения.РазделениеВключено() Тогда + + Результат = (ПолучитьФункциональнуюОпцию("НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса")) + И (Не ЭтоПоставляемаяОбработка(ДополнительнаяОбработка)); + СтандартнаяОбработка = Ложь; + + КонецЕсли; + +КонецПроцедуры + +// Вызывается при проверке возможности выгрузки дополнительного отчета или обработки в файл. +// +// Параметры: +// ДополнительнаяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки, +// Результат - Булево, в этот параметр в данной процедуре устанавливается флаг наличия возможности +// выгрузки дополнительного отчета или обработки в файл, +// СтандартнаяОбработка - Булево, в этот параметр в данной процедуре устанавливается флаг выполнения +// стандартной обработки проверки возможности выгрузки дополнительного отчета или обработки в файл. +// +Процедура ПриПроверкеВозможностиВыгрузкиОбработкиВФайл(Знач ДополнительнаяОбработка, Результат, СтандартнаяОбработка) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Если ОбщегоНазначения.РазделениеВключено() Тогда + + Результат = Не ЭтоПоставляемаяОбработка(ДополнительнаяОбработка); + СтандартнаяОбработка = Ложь; + + КонецЕсли; + +КонецПроцедуры + +// Заполняет виды публикации дополнительных отчетов и обработок, недоступные для использования +// в текущей модели информационной базы. +// +// Параметры: +// НедоступныеВидыПубликации - Массив строк. +// +Процедура ПриЗаполненииНедоступныхВидовПубликации(Знач НедоступныеВидыПубликации) Экспорт + + Если ОбщегоНазначения.РазделениеВключено() Тогда + НедоступныеВидыПубликации.Добавить("РежимОтладки"); + КонецЕсли; + +КонецПроцедуры + +// Процедура должна вызываться из события ПередЗаписью справочника +// ДополнительныеОтчетыИОбработки, выполняет проверку правомерности изменения реквизитов +// элементов данного справочника для дополнительных обработок, полученных из +// каталога дополнительных обработок менеджера сервиса. +// +// Параметры: +// Источник - СправочникОбъект.ДополнительныеОтчетыИОбработки, +// Отказ - булево, флаг отказа от выполнения записи элемента справочника. +// +Процедура ПередЗаписьюДополнительнойОбработки(Источник, Отказ) Экспорт + + Если Источник.ЭтоНовый() Тогда + Возврат; + КонецЕсли; + + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + Если МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей() Тогда + Возврат; + КонецЕсли; + + Если ЭтоПоставляемаяОбработка(Источник.Ссылка) Тогда + + КонтролируемыеРеквизиты = ДополнительныеОтчетыИОбработкиВМоделиСервисаПовтИсп.КонтролируемыеРеквизиты(); + СтарыеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Источник.Ссылка, КонтролируемыеРеквизиты); + + Для Каждого КонтролируемыйРеквизит Из КонтролируемыеРеквизиты Цикл + + ИсходныйРеквизит = Неопределено; + РезультирующийРеквизит = Неопределено; + + Если ТипЗнч(Источник[КонтролируемыйРеквизит]) = Тип("ХранилищеЗначения") Тогда + ИсходныйРеквизит = Источник[КонтролируемыйРеквизит].Получить(); + Иначе + ИсходныйРеквизит = Источник[КонтролируемыйРеквизит]; + КонецЕсли; + + Если ТипЗнч(СтарыеЗначения[КонтролируемыйРеквизит]) = Тип("ХранилищеЗначения") Тогда + РезультирующийРеквизит = СтарыеЗначения[КонтролируемыйРеквизит].Получить(); + Иначе + РезультирующийРеквизит = СтарыеЗначения[КонтролируемыйРеквизит]; + КонецЕсли; + + Если ИсходныйРеквизит <> РезультирующийРеквизит Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимая попытка изменения значения реквизита %1 для дополнительной обработки %2, + |полученной из каталога дополнительных обработок менеджера сервиса.'"), + КонтролируемыйРеквизит, Источник.Наименование); + + КонецЕсли; + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + +// Процедура должна вызываться из события ПередУдалением справочника +// ДополнительныеОтчетыИОбработки. +// +// Параметры: +// Источник - СправочникОбъект.ДополнительныеОтчетыИОбработки, +// Отказ - булево, флаг отказа от выполнения удаления элемента справочника из информационной базы. +// +Процедура ПередУдалениемДополнительнойОбработки(Источник, Отказ) Экспорт + + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + НачатьТранзакцию(); + + Попытка + + // Определим поставляемую обработку + ПоставляемаяОбработка = ПоставляемаяОбработка(Источник.Ссылка); + + Если ЗначениеЗаполнено(ПоставляемаяОбработка) Тогда + + // Очистим сопоставление используемой обработки с поставляемой + НаборЗаписей = РегистрыСведений.ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных.СоздатьНаборЗаписей(); + НаборЗаписей.Отбор.ПоставляемаяОбработка.Установить(ПоставляемаяОбработка); + НаборЗаписей.Записать(); + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + // Отправим в МС сообщение об удалении обработки из области данных + Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс.СообщениеДополнительныйОтчетИлиОбработкаУдалена()); + + Сообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + Сообщение.Body.Extension = ПоставляемаяОбработка.УникальныйИдентификатор(); + Сообщение.Body.Installation = Источник.Ссылка.УникальныйИдентификатор(); + + МодульРаботаВМоделиСервисаБТСПовтИсп = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервисаБТСПовтИсп"); + + МодульСообщенияВМоделиСервиса.ОтправитьСообщение( + Сообщение, + МодульРаботаВМоделиСервисаБТСПовтИсп.КонечнаяТочкаМенеджераСервиса()); + + КонецЕсли; + + ЗафиксироватьТранзакцию(); + + Исключение + + ОтменитьТранзакцию(); + ВызватьИсключение; + + КонецПопытки; + +КонецПроцедуры + +// Вызывается при получении регистрационных данных для нового дополнительного отчета +// или обработки. +// +Процедура ПриПолученииРегистрационныхДанных(Объект, РегистрационныеДанные, СтандартнаяОбработка) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Если Не Объект.ЭтоНовый() И ОбщегоНазначения.РазделениеВключено() Тогда + + ПоставляемаяОбработка = ПоставляемаяОбработка(Объект.Ссылка); + Если ЗначениеЗаполнено(ПоставляемаяОбработка) Тогда + + РегистрационныеДанные = ПолучитьРегистрационныеДанные(ПоставляемаяОбработка); + СтандартнаяОбработка = Ложь; + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +// Вызывается при подключении внешней обработки. +// +// Параметры: +// Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки, +// СтандартнаяОбработка - Булево, флаг необходимости выполнения стандартной обработки подключения +// внешней обработки, +// Результат - Строка - имя подключенного внешнего отчета или обработки (в том случае, если в обработчике +// для параметра СтандартнаяОбработка было установлено значение Ложь). +// +Процедура ПриПодключенииВнешнейОбработки(Знач Ссылка, СтандартнаяОбработка, Результат) Экспорт + + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + Если ТипЗнч(Ссылка) <> Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки") Или Ссылка = Справочники.ДополнительныеОтчетыИОбработки.ПустаяСсылка() Тогда + ВызватьИсключение НСтр("ru = 'Запрошено подключение несуществующей дополнительной обработки.'"); + КонецЕсли; + + ПроверитьВозможностьВыполнения(Ссылка); + + Если ПолучитьФункциональнуюОпцию("НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса") Тогда + Возврат; + КонецЕсли; + + СтандартнаяОбработка = Ложь; + ИспользуютсяПрофилиБезопасности = Ложь; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда + МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); + ИспользуютсяПрофилиБезопасности = МодульРаботаВБезопасномРежиме.ИспользуютсяПрофилиБезопасности(); + КонецЕсли; + + Если ИспользуютсяПрофилиБезопасности Тогда + + ПараметрыПодключения = ПараметрыПодключенияИспользуемойОбработки(Ссылка); + МодульРаботаВБезопасномРежимеВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежимеВМоделиСервиса"); + БезопасныйРежим = МодульРаботаВБезопасномРежимеВМоделиСервиса.РежимИсполненияВнешнегоМодуля(Ссылка); + Если БезопасныйРежим = Неопределено Тогда + БезопасныйРежим = Истина; + КонецЕсли; + + Иначе + + ПараметрыПодключения = ПараметрыПодключенияИспользуемойОбработки(Ссылка); + БезопасныйРежим = ПараметрыПодключения.БезопасныйРежим; + + Если БезопасныйРежим Тогда + + ЗапросРазрешений = Новый Запрос( + "ВЫБРАТЬ ПЕРВЫЕ 1 + | ДополнительныеОтчетыИОбработкиРазрешения.НомерСтроки, + | ДополнительныеОтчетыИОбработкиРазрешения.ВидРазрешения + |ИЗ + | Справочник.ДополнительныеОтчетыИОбработки.Разрешения КАК ДополнительныеОтчетыИОбработкиРазрешения + |ГДЕ + | ДополнительныеОтчетыИОбработкиРазрешения.Ссылка = &Ссылка"); + + ЗапросРазрешений.УстановитьПараметр("Ссылка", Ссылка); + ЕстьРазрешения = Не ЗапросРазрешений.Выполнить().Пустой(); + РежимСовместимости = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "РежимСовместимостиРазрешений"); + Если РежимСовместимости = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_2_2 И ЕстьРазрешения Тогда + БезопасныйРежим = Ложь; + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + Если Константы.ИспользоватьПрофилиБезопасностиДляДОиО.Получить() И НЕ БезопасныйРежим Тогда + БезопасныйРежим = Строка(ПараметрыПодключения.ВерсияGUID); + КонецЕсли; + + // АПК:552-выкл Подключение в области данных дополнительных отчетов и обработок, одобренных администратором сервиса. + // АПК:556-выкл + // АПК:553-выкл + АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ПараметрыПодключения.ХранилищеОбработки.Получить()); + Менеджер = ?(ЭтоОтчет(Ссылка), ВнешниеОтчеты, ВнешниеОбработки); + Результат = Менеджер.Подключить(АдресВоВременномХранилище, ПараметрыПодключения.ИмяОбъекта, БезопасныйРежим, + ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений()); + // АПК:553-вкл + // АПК:556-вкл + // АПК:552-вкл + +КонецПроцедуры + +// Вызывается при создании объекта внешней обработки. +// +// Параметры: +// Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки - дополнительный отчет или обработка. +// СтандартнаяОбработка - Булево - флаг необходимости выполнения стандартной обработки подключения +// внешней обработки. +// Результат - ВнешняяОбработкаОбъект, ВнешнийОтчетОбъект - объект подключенного внешнего отчета или +// обработки (в том случае, если в обработчике для параметра СтандартнаяОбработка было установлено значение Ложь). +// +Процедура ПриСозданииВнешнейОбработки(Знач Ссылка, СтандартнаяОбработка, Результат) Экспорт + + СтандартнаяОбработка = Истина; + ИмяОбработки = Неопределено; + + ПриПодключенииВнешнейОбработки(Ссылка, СтандартнаяОбработка, ИмяОбработки); + + Если СтандартнаяОбработка Тогда + Возврат; + КонецЕсли; + + Если ИмяОбработки = Неопределено Тогда + ВызватьИсключение НСтр("ru = 'Запрошено создание объекта несуществующей дополнительной обработки.'"); + КонецЕсли; + + ПроверитьВозможностьВыполнения(Ссылка); + + // АПК:552-выкл Создание в области данных дополнительных отчетов и обработок, одобренных администратором сервиса. + // АПК:553-выкл + Если ЭтоОтчет(Ссылка) Тогда + Результат = ВнешниеОтчеты.Создать(ИмяОбработки); + Иначе + Результат = ВнешниеОбработки.Создать(ИмяОбработки); + КонецЕсли; + // АПК:553-вкл + // АПК:552-вкл + +КонецПроцедуры + +// Вызывается перед записью изменений регламентного задания дополнительных отчетов и обработок в модели сервиса. +// +// Параметры: +// Объект - СправочникОбъект.ДополнительныеОтчетыИОбработки - Объект дополнительного отчета или обработки. +// Команда - СправочникТабличнаяЧастьСтрока.ДополнительныеОтчетыИОбработки.Команды - Описание команды. +// Задание - РегламентноеЗадание, СтрокаТаблицыЗначений - Описание регламентного задания. +// См. РегламентныеЗаданияСервер.Задание. +// Изменения - Структура - Значения реквизитов задания, которые необходимо изменить. +// См. описание 2-го параметра процедуры РегламентныеЗаданияСервер.ИзменитьЗадание. +// Если установить Неопределено, то регламентное задание не будет изменено. +// +Процедура ПередОбновлениемЗадания(Объект, Команда, Задание, Изменения) Экспорт + + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + Если Не Константы.РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса.Получить() Тогда + ВызватьИсключение НСтр("ru = 'Периодическое выполнение команд дополнительных обработок в качестве заданий запрещено администратором сервиса.'"); + КонецЕсли; + + МинимальныйИнтервал = Константы.МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса.Получить(); + ИсходнаяДата = ТекущаяДатаСеанса(); + ПроверяемаяДата = ИсходнаяДата + МинимальныйИнтервал - 1; + + Если Задание.Расписание.ТребуетсяВыполнение(ПроверяемаяДата, ИсходнаяДата) Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Расписание, задаваемое для выполнения команд дополнительного отчета или обработки в качестве заданий, должно быть не чаще, чем 1 раз в %1 секунд.'"), + МинимальныйИнтервал); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбновлениеИнформационнойБазы + +// Добавляет процедуры-обработчики обновления, необходимые данной подсистеме. +// +// Параметры: +// Обработчики - ТаблицаЗначений - см. описание функции НоваяТаблицаОбработчиковОбновления +// общего модуля ОбновлениеИнформационнойБазы. +// +Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт + + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + Обработчик = Обработчики.Добавить(); + Обработчик.Версия = "*"; + Обработчик.Процедура = "ДополнительныеОтчетыИОбработкиВМоделиСервиса.ЗаблокироватьДополнительныеОтчетыИОбработкиДляОбновления"; + Обработчик.ОбщиеДанные = Истина; + Обработчик.МонопольныйРежим = Ложь; + + Обработчик = Обработчики.Добавить(); + Обработчик.Версия = "*"; + Обработчик.Процедура = "ДополнительныеОтчетыИОбработкиВМоделиСервиса.ЗапроситьОбновлениеДополнительныхОтчетовИОбработок"; + Обработчик.ОбщиеДанные = Истина; + Обработчик.МонопольныйРежим = Ложь; + +КонецПроцедуры + +#КонецОбласти + +#Область РаботаВМоделиСервиса + +// Проверяет, является ли переданная дополнительная обработка экземпляром +// поставляемой дополнительной обработки. +// +// Параметры: +// ИспользуемаяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки - дополнительная обработка. +// +// Возвращаемое значение: +// Булево +// +Функция ЭтоПоставляемаяОбработка(ИспользуемаяОбработка) Экспорт + + ПоставляемаяОбработка = ПоставляемаяОбработка(ИспользуемаяОбработка); + Возврат ЗначениеЗаполнено(ПоставляемаяОбработка); + +КонецФункции + +// Выполняет установку поставляемой дополнительной обработки в текущую область данных после получения поставляемых данных +// и извещает менеджер сервиса в случае неудачи. +// +// См. описание параметров УстановитьПоставляемуюОбработкуВОбластьДанных. +// +Процедура УстановитьПоставляемуюОбработкуПриПолучении(Знач ОписаниеИнсталляции, Знач БыстрыйДоступ, Знач Задания, Знач Разделы, + Знач СправочникиИДокументы, Знач НастройкиРасположенияКоманд, Знач ВариантыДополнительногоОтчета, Знач Ответственный) Экспорт + + Попытка + УстановитьПоставляемуюОбработкуВОбластьДанных(ОписаниеИнсталляции, БыстрыйДоступ, + Задания, Разделы, СправочникиИДокументы, НастройкиРасположенияКоманд, ВариантыДополнительногоОтчета, Ответственный); + Исключение + + ТекстИсключения = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ПоставляемаяОбработка = Справочники.ПоставляемыеДополнительныеОтчетыИОбработки.ПолучитьСсылку(ОписаниеИнсталляции.Идентификатор); + ОбработатьОшибкуУстановкиДополнительнойОбработкиВОбластьДанных( + ПоставляемаяОбработка, ОписаниеИнсталляции.Инсталляция, ТекстИсключения); + + КонецПопытки; + +КонецПроцедуры + +// Выполняет установку поставляемой дополнительной обработки в текущую область данных. +// +// Параметры: +// ОписаниеИнсталляции - Структура - сведения об установке поставляемой дополнительной обработки: +// * Идентификатор - УникальныйИдентификатор, уникальный идентификатор ссылки +// элемента справочника ПоставляемыеДополнительныеОтчетыИОбработки, +// * Представление - Строка - представление инсталляции поставляемой дополнительной +// обработки (будет использоваться в качестве наименования элемента справочника +// ДополнительныеОтчетыИОбработки), +// * Инсталляция - УникальныйИдентификатор - уникальный идентификатор инсталляции +// поставляемой дополнительной обработки (будет использоваться в качестве +// уникального идентификатора ссылки справочника ДополнительныеОтчетыИОбработки), +// БыстрыйДоступ - ТаблицаЗначений - настройки включения команд дополнительной +// обработки в быстрый доступ пользователей приложения, колонки: +// * ИдентификаторКоманды - Строка - идентификатор команды. +// * Пользователь - СправочникСсылка.Пользователь - пользователь приложения. +// Задания - ТаблицаЗначений - настройки выполнения команд дополнительной обработки +// в качестве регламентных заданий, колонки: +// * Идентификатор - Строка - идентификатор команды. +// * РегламентноеЗаданиеРасписание - СписокЗначений - содержит один элемент: +// ** Значение - РасписаниеРегламентногоЗадания - расписание. +// * РегламентноеЗаданиеИспользование - Булево - признак включения выполнения команды +// в качестве регламентного задания. +// Разделы - ТаблицаЗначений - настройки включения команд для инсталляции +// поставляемой дополнительной обработки в разделы командного интерфейса, колонки: +// * Раздел - СправочникСсылка.ИдентификаторыОбъектовМетаданных. +// СправочникиИДокументы - ТаблицаЗначений - настройки включения команд для инсталляции +// поставляемой дополнительной обработки в интерфейс форм список и элементов, колонки: +// * ОбъектНазначения - СправочникСсылка.ИдентификаторыОбъектовМетаданных +// ВариантыДополнительногоОтчета - Массив - ключи вариантов отчетов дополнительного отчета (Строка). +// Ответственный - СправочникСсылка.Пользователи. +// +Процедура УстановитьПоставляемуюОбработкуВОбластьДанных(Знач ОписаниеИнсталляции, Знач БыстрыйДоступ, Знач Задания, Знач Разделы, + Знач СправочникиИДокументы, Знач НастройкиРасположенияКоманд, Знач ВариантыДополнительногоОтчета, Знач Ответственный) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + Возврат; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + НачатьТранзакцию(); + + Попытка + + ЗаписьЖурналаРегистрации( + НСтр("ru = 'Поставляемые дополнительные отчеты и обработки.Инициирована установка поставляемой обработки в область данных'", + ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Информация, + , + Строка(ОписаниеИнсталляции.Идентификатор), + Строка(ОписаниеИнсталляции.Инсталляция)); + + ПоставляемаяОбработка = Справочники.ПоставляемыеДополнительныеОтчетыИОбработки.ПолучитьСсылку(ОписаниеИнсталляции.Идентификатор); + + Набор = РегистрыСведений.ОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных.СоздатьНаборЗаписей(); + Набор.Отбор.ПоставляемаяОбработка.Установить(ПоставляемаяОбработка); + Набор.Записать(); + + Если ОбщегоНазначения.СсылкаСуществует(ПоставляемаяОбработка) Тогда + + АктуальныеКоманды = ПоставляемаяОбработка.Команды.Выгрузить(); + АктуальныеКоманды.Колонки.Добавить("РегламентноеЗаданиеРасписание", Новый ОписаниеТипов("СписокЗначений")); + АктуальныеКоманды.Колонки.Добавить("РегламентноеЗаданиеИспользование", Новый ОписаниеТипов("Булево")); + АктуальныеКоманды.Колонки.Добавить("РегламентноеЗаданиеGUID", Новый ОписаниеТипов("УникальныйИдентификатор")); + + Для Каждого АктуальнаяКоманда Из АктуальныеКоманды Цикл + + НастройкаЗадания = Задания.Найти(АктуальнаяКоманда.Идентификатор, "Идентификатор"); + Если НастройкаЗадания <> Неопределено Тогда + ЗаполнитьЗначенияСвойств(АктуальнаяКоманда, НастройкаЗадания, "РегламентноеЗаданиеРасписание,РегламентноеЗаданиеИспользование"); + КонецЕсли; + + КонецЦикла; + + // Создается элемент справочника ДополнительныеОтчетыИОбработки, выступающий в роли используемой обработки. + ИспользуемаяОбработкаСсылка = ИспользуемаяОбработка(ПоставляемаяОбработка); + Если ЗначениеЗаполнено(ИспользуемаяОбработкаСсылка) Тогда + ИспользуемаяОбработка = ИспользуемаяОбработкаСсылка.ПолучитьОбъект(); + Иначе + ИспользуемаяОбработка = Справочники.ДополнительныеОтчетыИОбработки.СоздатьЭлемент(); + КонецЕсли; + + ЗаполнитьНастройкиИспользуемойОбработки( + ИспользуемаяОбработка, ПоставляемаяОбработка); + + Если ЗначениеЗаполнено(Разделы) И Разделы.Количество() > 0 Тогда + ИспользуемаяОбработка.Разделы.Загрузить(Разделы); + КонецЕсли; + + Если ЗначениеЗаполнено(СправочникиИДокументы) И СправочникиИДокументы.Количество() > 0 Тогда + + ИспользуемаяОбработка.Назначение.Загрузить(СправочникиИДокументы); + ИспользуемаяОбработка.ИспользоватьДляФормыСписка = НастройкиРасположенияКоманд.ИспользоватьДляФормыСписка; + ИспользуемаяОбработка.ИспользоватьДляФормыОбъекта = НастройкиРасположенияКоманд.ИспользоватьДляФормыОбъекта; + + КонецЕсли; + + ИспользуемаяОбработка.Наименование = ОписаниеИнсталляции.Представление; + ИспользуемаяОбработка.Ответственный = Ответственный; + + ИспользуемаяОбработка.ДополнительныеСвойства.Вставить("БыстрыйДоступ", БыстрыйДоступ); + ИспользуемаяОбработка.ДополнительныеСвойства.Вставить("АктуальныеКоманды", АктуальныеКоманды); + + Если ИспользуемаяОбработка.ЭтоНовый() Тогда + ИспользуемаяОбработка.УстановитьСсылкуНового( + Справочники.ДополнительныеОтчетыИОбработки.ПолучитьСсылку( + ОписаниеИнсталляции.Инсталляция)); + КонецЕсли; + + // Устанавливается связь между поставляемой и используемой обработкой + НаборЗаписей = РегистрыСведений.ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных.СоздатьНаборЗаписей(); + НаборЗаписей.Отбор.ПоставляемаяОбработка.Установить(ПоставляемаяОбработка); + Запись = НаборЗаписей.Добавить(); + Запись.ПоставляемаяОбработка = ПоставляемаяОбработка; + Если ИспользуемаяОбработка.ЭтоНовый() Тогда + Запись.ИспользуемаяОбработка = ИспользуемаяОбработка.ПолучитьСсылкуНового(); + Иначе + Запись.ИспользуемаяОбработка = ИспользуемаяОбработка.Ссылка; + КонецЕсли; + НаборЗаписей.Записать(); + + ИспользуемаяОбработка.Записать(); + + // Размещение вариантов дополнительного отчета в разделах, которые выбрал пользователь + // при установке (или разработчик при создании манифеста, если пользователь не + // изменял настройки по-умолчанию. + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда + МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); + + Для Каждого ВариантДополнительногоОтчета Из ВариантыДополнительногоОтчета Цикл + + ВариантСсылка = МодульВариантыОтчетов.ВариантОтчета(ИспользуемаяОбработка.Ссылка, ВариантДополнительногоОтчета.Ключ); + Если ВариантСсылка <> Неопределено Тогда + + Вариант = ВариантСсылка.ПолучитьОбъект(); + Вариант.Размещение.Очистить(); + + Для Каждого ЭлементРазмещения Из ВариантДополнительногоОтчета.Размещение Цикл + + РазмещениеВарианта = Вариант.Размещение.Добавить(); + РазмещениеВарианта.Использование = Истина; + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СтандартныеПодсистемыСервер.ВерсияБиблиотеки(), "2.2.3.1") >= 0 Тогда + РазмещениеВарианта.Подсистема = ЭлементРазмещения.Раздел; + Иначе + РазмещениеВарианта.РазделИлиГруппа = ЭлементРазмещения.Раздел; + КонецЕсли; + РазмещениеВарианта.Важный = ЭлементРазмещения.Важный; + РазмещениеВарианта.СмТакже = ЭлементРазмещения.СмТакже; + + КонецЦикла; + + Вариант.Записать(); + + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + // Отправляется сообщение в МС об успешной установке обработки в области данных + Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс.СообщениеДополнительныйОтчетИлиОбработкаУстановлена()); + + Сообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + Сообщение.Body.Extension = ПоставляемаяОбработка.УникальныйИдентификатор(); + Сообщение.Body.Installation = ОписаниеИнсталляции.Инсталляция; + + МодульРаботаВМоделиСервисаБТСПовтИсп = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервисаБТСПовтИсп"); + + МодульСообщенияВМоделиСервиса.ОтправитьСообщение( + Сообщение, + МодульРаботаВМоделиСервисаБТСПовтИсп.КонечнаяТочкаМенеджераСервиса(), + Истина); + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые дополнительные отчеты и обработки.Установка в область данных'", + ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Информация, + , + ПоставляемаяОбработка, + Строка(ОписаниеИнсталляции.Инсталляция)); + + Иначе + + // Поставляемая обработка еще не синхронизировалась через поставляемые данные. + // Она будет записана в очередь инсталляции и обработана после окончания синхронизации + // поставляемых данных. + + Контекст = Новый Структура; + Контекст.Вставить("БыстрыйДоступ", БыстрыйДоступ); + Контекст.Вставить("Задания", Задания); + Контекст.Вставить("Разделы", Разделы); + Контекст.Вставить("СправочникиИДокументы", СправочникиИДокументы); + Контекст.Вставить("НастройкиРасположенияКоманд", НастройкиРасположенияКоманд); + Контекст.Вставить("ВариантыДополнительногоОтчета", ВариантыДополнительногоОтчета); + Контекст.Вставить("Ответственный", Ответственный); + Контекст.Вставить("Представление", ОписаниеИнсталляции.Представление); + Контекст.Вставить("Инсталляция", ОписаниеИнсталляции.Инсталляция); + + Менеджер = РегистрыСведений.ОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных.СоздатьМенеджерЗаписи(); + Менеджер.ПоставляемаяОбработка = ПоставляемаяОбработка; + Менеджер.ПараметрыИнсталляции = Новый ХранилищеЗначения(Контекст); + Менеджер.Записать(); + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые дополнительные отчеты и обработки.Установка в область данных отложена'", + ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Информация, + , + Строка(ОписаниеИнсталляции.Идентификатор), + Строка(ОписаниеИнсталляции.Инсталляция)); + + КонецЕсли; + + ЗафиксироватьТранзакцию(); + + Исключение + + ОтменитьТранзакцию(); + ВызватьИсключение; + + КонецПопытки; + + МодульОбменСообщениями = ОбщегоНазначения.ОбщийМодуль("ОбменСообщениями"); + МодульОбменСообщениями.ДоставитьСообщения(); + +КонецПроцедуры + +// Выполняет удаление поставляемой дополнительной обработки из текущей области данных. +// +// Параметры: +// ПоставляемаяОбработка - СправочникСсылка.ПоставляемыеДополнительныеОтчетыИОбработки, +// ИдентификаторИспользуемойОбработки - УникальныйИдентификатор, GUID существующего в области +// данных элемента справочника ДополнительныеОтчетыИОбработки. +// +Процедура УдалитьПоставляемуюОбработкуИзОбластиДанных(Знач ПоставляемаяОбработка, Знач ИдентификаторИспользуемойОбработки) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + Возврат; + КонецЕсли; + + НачатьТранзакцию(); + + Попытка + + УстановитьПривилегированныйРежим(Истина); + + Попытка + + ИспользуемаяОбработка = Справочники.ДополнительныеОтчетыИОбработки.ПолучитьСсылку( + ИдентификаторИспользуемойОбработки); + + // Очистим связь между поставляемой и используемой обработкой + НаборЗаписей = РегистрыСведений.ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных.СоздатьНаборЗаписей(); + НаборЗаписей.Отбор.ПоставляемаяОбработка.Установить(ПоставляемаяОбработка); + + // Удалим используемую обработку + ОбъектОбработки = ИспользуемаяОбработка.ПолучитьОбъект(); + Если ОбъектОбработки <> Неопределено Тогда + ОбъектОбработки.ОбменДанными.Загрузка = Истина; + ОбъектОбработки.Удалить(); + КонецЕсли; + + НаборЗаписей.Записать(); + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые дополнительные отчеты и обработки.Удаление из области данных'", + ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Информация, + , + ПоставляемаяОбработка, + Строка(ИдентификаторИспользуемойОбработки)); + + Исключение + + ТекстИсключения = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые дополнительные отчеты и обработки.Ошибка удаления из область данных'", + ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, + , + ПоставляемаяОбработка, + Строка(ИдентификаторИспользуемойОбработки) + Символы.ПС + Символы.ВК + ТекстИсключения); + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + // Отправляется сообщение в МС об ошибке установки обработки в области данных + Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс.СообщениеОшибкаУдаленияДополнительногоОтчетаИлиОбработки()); + + Сообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + Сообщение.Body.Extension = ПоставляемаяОбработка.УникальныйИдентификатор(); + Сообщение.Body.Installation = ИдентификаторИспользуемойОбработки; + Сообщение.Body.ErrorDescription = ТекстИсключения; + + МодульРаботаВМоделиСервисаБТСПовтИсп = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервисаБТСПовтИсп"); + + МодульСообщенияВМоделиСервиса.ОтправитьСообщение( + Сообщение, + МодульРаботаВМоделиСервисаБТСПовтИсп.КонечнаяТочкаМенеджераСервиса()); + + КонецПопытки; + + ЗафиксироватьТранзакцию(); + + Исключение + + ОтменитьТранзакцию(); + ВызватьИсключение; + + КонецПопытки; + +КонецПроцедуры + +// Выполняет удаление поставляемой дополнительной обработки из всех областей данных +// текущей информационной базы. +// +// Параметры: +// ПоставляемаяОбработка - СправочникСсылка.ПоставляемыеДополнительныеОтчетыИОбработки. +// +Процедура ОтозватьПоставляемуюДополнительнуюОбработку(Знач ПоставляемаяОбработка) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда + Возврат; + КонецЕсли; + + НачатьТранзакцию(); + + Попытка + + Инсталляции = ПереченьИнсталляций(ПоставляемаяОбработка); + Для Каждого Инсталляция Из Инсталляции Цикл + + ПараметрыМетода = Новый Массив; + ПараметрыМетода.Добавить(ПоставляемаяОбработка); + ПараметрыМетода.Добавить(Инсталляция.ИспользуемаяОбработка.УникальныйИдентификатор()); + + ПараметрыЗадания = Новый Структура; + ПараметрыЗадания.Вставить("ИмяМетода" , "ДополнительныеОтчетыИОбработкиВМоделиСервиса.УдалитьПоставляемуюОбработкуИзОбластиДанных"); + ПараметрыЗадания.Вставить("Параметры" , ПараметрыМетода); + ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 3); + ПараметрыЗадания.Вставить("ОбластьДанных", Инсталляция.ОбластьДанных); + + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); + + КонецЦикла; + + ОбъектОбработки = ПоставляемаяОбработка.ПолучитьОбъект(); + ОбъектОбработки.ОбменДанными.Загрузка = Истина; + ОбъектОбработки.Удалить(); + + ЗафиксироватьТранзакцию(); + + Исключение + + ОтменитьТранзакцию(); + ВызватьИсключение; + + КонецПопытки; + +КонецПроцедуры + +// Выполняет обработку ошибки при установки дополнительной обработки в область данных. +// +// Параметры: +// ПоставляемаяОбработка - СправочникСсылка.ПоставляемыеДополнительныеОтчетыИОбработки, +// ИдентификаторИнсталляции - УникальныйИдентификатор, +// ТекстИсключения - Строка, текст исключения. +// +Процедура ОбработатьОшибкуУстановкиДополнительнойОбработкиВОбластьДанных(Знач ПоставляемаяОбработка, Знач ИдентификаторИнсталляции, Знач ТекстИсключения) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + Возврат; + КонецЕсли; + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые дополнительные отчеты и обработки.Ошибка установки в область данных'", + ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, + , + ПоставляемаяОбработка, + Строка(ИдентификаторИнсталляции) + Символы.ПС + Символы.ВК + ТекстИсключения); + + НачатьТранзакцию(); + Попытка + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + // Отправляется сообщение в МС об ошибке установки обработки в области данных + Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс.СообщениеОшибкаУстановкиДополнительногоОтчетаИлиОбработки()); + + Сообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + Сообщение.Body.Extension = ПоставляемаяОбработка.УникальныйИдентификатор(); + Сообщение.Body.Installation = ИдентификаторИнсталляции; + Сообщение.Body.ErrorDescription = ТекстИсключения; + + МодульРаботаВМоделиСервисаБТСПовтИсп = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервисаБТСПовтИсп"); + + МодульСообщенияВМоделиСервиса.ОтправитьСообщение( + Сообщение, + МодульРаботаВМоделиСервисаБТСПовтИсп.КонечнаяТочкаМенеджераСервиса(), + Истина); + + ЗафиксироватьТранзакцию(); + + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + + МодульОбменСообщениями = ОбщегоНазначения.ОбщийМодуль("ОбменСообщениями"); + МодульОбменСообщениями.ДоставитьСообщения(); + +КонецПроцедуры + +// Возвращает параметры подключения поставляемой дополнительной обработки. +// +// Параметры: +// ИспользуемаяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки. +// +// Возвращаемое значение - Структура: +// * ХранилищеОбработки - ХранилищеЗначения, содержащее ДвоичныеДанные дополнительного отчета +// или обработки, +// * БезопасныйРежим - Булево, флаг подключения обработки в безопасном режиме. +// +Функция ПараметрыПодключенияИспользуемойОбработки(Знач ИспользуемаяОбработка) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + ПоставляемаяОбработка = ПоставляемаяОбработка(ИспользуемаяОбработка); + Если ЗначениеЗаполнено(ПоставляемаяОбработка) Тогда + + Свойства = "ИмяОбъекта, БезопасныйРежим, ХранилищеОбработки, ВерсияGUID"; + Результат = Новый Структура(Свойства); + ЗаполнитьЗначенияСвойств(Результат, ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ПоставляемаяОбработка, Свойства)); + Возврат Результат; + + КонецЕсли; + +КонецФункции + +// Формирует список параметров ИБ. +// +// Параметры: +// ТаблицаПараметров - ТаблицаЗначений - таблица описания параметров. +// Описание состав колонок - см. РаботаВМоделиСервиса.ПолучитьТаблицуПараметровИБ(). +// +Процедура ПриЗаполненииТаблицыПараметровИБ(Знач ТаблицаПараметров) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульРаботаВМоделиСервиса.ДобавитьКонстантуВТаблицуПараметровИБ(ТаблицаПараметров, "ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса"); + МодульРаботаВМоделиСервиса.ДобавитьКонстантуВТаблицуПараметровИБ(ТаблицаПараметров, "ИспользоватьПрофилиБезопасностиДляДОиО"); + МодульРаботаВМоделиСервиса.ДобавитьКонстантуВТаблицуПараметровИБ(ТаблицаПараметров, "МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса"); + МодульРаботаВМоделиСервиса.ДобавитьКонстантуВТаблицуПараметровИБ(ТаблицаПараметров, "НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса"); + МодульРаботаВМоделиСервиса.ДобавитьКонстантуВТаблицуПараметровИБ(ТаблицаПараметров, "РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса"); + + // Константы были переименованы. Менеджер сервиса отправляет параметры со старыми именами констант. + // Для поддержки совместимости добавляются параметры со старыми именами констант. + СтрокаПараметра = МодульРаботаВМоделиСервиса.ДобавитьКонстантуВТаблицуПараметровИБ(ТаблицаПараметров, "РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса"); + СтрокаПараметра.Имя = "РазрешитьВыполнениеДополнительныхОтчетовИОбработокРегламентнымиЗаданиямиВМоделиСервиса"; + СтрокаПараметра = МодульРаботаВМоделиСервиса.ДобавитьКонстантуВТаблицуПараметровИБ(ТаблицаПараметров, "МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса"); + СтрокаПараметра.Имя = "МинимальныйИнтервалРегламентныхЗаданийДополнительныхОтчетовИОбработокВМоделиСервиса"; + + КонецЕсли; + +КонецПроцедуры + +// Вызывается перед попыткой записи значений параметров ИБ в одноименные +// константы. +// +// Параметры: +// ЗначенияПараметров - Структура - значения параметров которые требуется установить. +// В случае если значение параметра устанавливается в данной процедуре из структуры +// необходимо удалить соответствующую пару КлючИЗначение. +// +Процедура ПриУстановкеЗначенийПараметровИБ(Знач ЗначенияПараметров) Экспорт + + // Константы были переименованы. Менеджер сервиса отправляет параметры со старыми именами констант. + // Для поддержки совместимости удаляются параметры со старыми именами констант и добавляются с новыми. + РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса = Неопределено; + МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса = Неопределено; + + Если ЗначенияПараметров.Свойство("РазрешитьВыполнениеДополнительныхОтчетовИОбработокРегламентнымиЗаданиямиВМоделиСервиса", + РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса) Тогда + + ЗначенияПараметров.Вставить("РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса", РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса); + ЗначенияПараметров.Удалить("РазрешитьВыполнениеДополнительныхОтчетовИОбработокРегламентнымиЗаданиямиВМоделиСервиса"); + + КонецЕсли; + + Если ЗначенияПараметров.Свойство("МинимальныйИнтервалРегламентныхЗаданийДополнительныхОтчетовИОбработокВМоделиСервиса", + МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса) Тогда + + ЗначенияПараметров.Вставить("МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса", МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса); + ЗначенияПараметров.Удалить("МинимальныйИнтервалРегламентныхЗаданийДополнительныхОтчетовИОбработокВМоделиСервиса"); + + КонецЕсли; + +КонецПроцедуры + +// Обработчик события ПриОпределенииПсевдонимовОбработчиков. +// +// Заполняет соответствие имен методов их псевдонимам для вызова из очереди заданий +// +// Параметры: +// СоответствиеИменПсевдонимам - Соответствие +// Ключ - Псевдоним метода, например ОчиститьОбластьДанных +// Значение - Имя метода для вызова, например РаботаВМоделиСервиса.ОчиститьОбластьДанных +// В качестве значения можно указать Неопределено, в этом случае считается что имя +// совпадает с псевдонимом. +// +Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт + + СоответствиеИменПсевдонимам.Вставить("ДополнительныеОтчетыИОбработкиВМоделиСервиса.АктуализацияНастроекИспользуемойОбработки"); + // Совместимость с версиями БСП 2.2.1.25 и ниже + СоответствиеИменПсевдонимам.Вставить("ДополнительныеОтчетыИОбработкиВМоделиСервиса.УстановитьПоставляемуюОбработкуВОбластьДанных", + "ДополнительныеОтчетыИОбработкиВМоделиСервиса.УстановитьПоставляемуюОбработкуПриПолучении"); + СоответствиеИменПсевдонимам.Вставить("ДополнительныеОтчетыИОбработкиВМоделиСервиса.УстановитьПоставляемуюОбработкуПриПолучении"); + СоответствиеИменПсевдонимам.Вставить("ДополнительныеОтчетыИОбработкиВМоделиСервиса.УдалитьПоставляемуюОбработкуИзОбластиДанных"); + СоответствиеИменПсевдонимам.Вставить(Метаданные.РегламентныеЗадания.ЗапускДополнительныхОбработок.ИмяМетода); + +КонецПроцедуры + +// Зарегистрировать обработчики поставляемых данных +// +// При получении уведомления о доступности новых общих данных, вызывается процедуры +// ДоступныНовыеДанные модулей, зарегистрированных через ПолучитьОбработчикиПоставляемыхДанных. +// В процедуру передается Дескриптор - ОбъектXDTO Descriptor. +// +// В случае, если ДоступныНовыеДанные устанавливает аргумент Загружать в значение Истина, +// данные загружаются, дескриптор и путь к файлу с данными передаются в процедуру +// ОбработатьНовыеДанные. Файл будет автоматически удален после завершения процедуры. +// Если в менеджере сервиса не был указан файл - значение аргумента равно Неопределено. +// +// Параметры: +// Обработчики, ТаблицаЗначений - таблица для добавления обработчиков. +// Колонки: +// ВидДанных, строка - код вида данных, обрабатываемый обработчиком +// КодОбработчика, строка(20) - будет использоваться при восстановлении обработки данных после сбоя +// Обработчик, ОбщийМодуль - модуль, содержащий следующие процедуры: +// ДоступныНовыеДанные(Дескриптор, Загружать) Экспорт +// ОбработатьНовыеДанные(Дескриптор, ПутьКФайлу) Экспорт +// ОбработкаДанныхОтменена(Дескриптор) Экспорт +// +Процедура ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики) Экспорт + + Обработчик = Обработчики.Добавить(); + Обработчик.ВидДанных = ИдентификаторВидаПоставляемыхДанных(); + Обработчик.КодОбработчика = ИдентификаторВидаПоставляемыхДанных(); + Обработчик.Обработчик = ДополнительныеОтчетыИОбработкиВМоделиСервиса; + +КонецПроцедуры + +// Заполняет переданный массив общими модулями, которые являются обработчиками интерфейсов +// принимаемых сообщений. +// +// Параметры: +// МассивОбработчиков - массив +// +Процедура РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков) Экспорт + + МассивОбработчиков.Добавить(СообщенияУправленияДополнительнымиОтчетамиИОбработкамиИнтерфейс); + +КонецПроцедуры + +// Заполняет переданный массив общими модулями, которые являются обработчиками интерфейсов +// отправляемых сообщений. +// +// Параметры: +// МассивОбработчиков - массив +// +Процедура РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков) Экспорт + + МассивОбработчиков.Добавить(СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс); + +КонецПроцедуры + +// Вызывается при определении версии интерфейса сообщений, поддерживаемой как ИБ-корреспондентом, +// так и текущей ИБ. В данной процедуре предполагается реализовывать механизмы поддержки обратной совместимости +// со старыми версиями ИБ-корреспондентов. +// +// Параметры: +// ИнтерфейсСообщения - строка, название программного интерфейса сообщения, для которого определяется версия +// ПараметрыПодключения - структура, параметры подключения к ИБ-корреспонденту +// ПредставлениеПолучателя - строка, представление ИБ-корреспондента +// Результат - строка, определяемая версия. Значение данного параметра может быть изменено в данной процедуре. +// +Процедура ПриОпределенииВерсииИнтерфейсаКорреспондента(Знач ИнтерфейсСообщения, Знач ПараметрыПодключения, Знач ПредставлениеПолучателя, Результат) Экспорт + + // Совместимость с версиями МС, в которых интерфейс ApplicationExtensionsControl являлся + // составной частью интерфейса RemoteAdministrationControl. + + Если ОбщегоНазначения.РазделениеВключено() + И Результат = Неопределено + И ИнтерфейсСообщения = "ApplicationExtensionsControl" Тогда + + ПроверяемыйИнтерфейс = "RemoteAdministrationControl"; + МодульИнтерфейсыСообщенийВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ИнтерфейсыСообщенийВМоделиСервиса"); + ВерсияИнтерфейсаКонтроляУдаленногоАдминистрирования = МодульИнтерфейсыСообщенийВМоделиСервиса.ВерсияИнтерфейсаКорреспондента( + ПроверяемыйИнтерфейс, ПараметрыПодключения, ПредставлениеПолучателя); + + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИнтерфейсаКонтроляУдаленногоАдминистрирования, "1.0.2.4") >= 0 Тогда + Результат = "1.0.0.1"; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область ТехнологияСервиса + +#Область ВыгрузкаЗагрузкаОбластейДанных + +// Заполняет массив типов, исключаемых из выгрузки и загрузки данных. +// +// Параметры: +// Типы - Массив(Типы). +// +Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт + + Типы.Добавить(Метаданные.РегистрыСведений.ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных); + Типы.Добавить(Метаданные.РегистрыСведений.ОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#КонецОбласти + +#Область ОбработчикиРегламентныхЗаданий + +// Процедура вызывается в качестве регламентного задания после получения новой версии дополнительной +// обработки из каталога дополнительных отчетов и обработок менеджера сервиса. +// +// Параметры: +// Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки. +// +Процедура АктуализацияНастроекИспользуемойОбработки(Знач Ссылка) Экспорт + + ПоставляемаяОбработка = ПоставляемаяОбработка(Ссылка); + Если Не ЗначениеЗаполнено(ПоставляемаяОбработка) Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Дополнительная обработка с идентификатором %1 не является поставляемой.'"), + Строка(Ссылка.УникальныйИдентификатор())); + КонецЕсли; + + ИспользуемаяОбработка = Ссылка.ПолучитьОбъект(); + ЗаполнитьНастройкиИспользуемойОбработки(ИспользуемаяОбработка, + ПоставляемаяОбработка.ПолучитьОбъект()); + ИспользуемаяОбработка.Записать(); + +КонецПроцедуры + +#КонецОбласти + +#Область ПоставляемыеДанные + +// Вызывается при получении уведомления о новых данных. +// В теле следует проверить, необходимы ли эти данные приложению, +// и если да - установить флажок Загружать. +// +// Параметры: +// Дескриптор - ОбъектXDTO Descriptor. +// Загружать - булево, возвращаемое. +// +Процедура ДоступныНовыеДанные(Знач Дескриптор, Загружать) Экспорт + + Если Дескриптор.DataType = ИдентификаторВидаПоставляемыхДанных() Тогда + + ОписаниеПоставляемойОбработки = РазобратьДескрипторПоставляемыхДанных(Дескриптор); + + Чтение = Новый ЧтениеXML(); + Чтение.УстановитьСтроку(ОписаниеПоставляемойОбработки.Совместимость); + Чтение.ПерейтиКСодержимому(); + ТаблицаСовместимостиXDTO = ФабрикаXDTO.ПрочитатьXML(Чтение, ФабрикаXDTO.Тип(Чтение.URIПространстваИмен, Чтение.Имя)); + ТаблицаСовместимости = ПрочитатьТаблицуСовместимости(ТаблицаСовместимостиXDTO); + + Если ПроверитьСовместимостьПоставляемойОбработки(ТаблицаСовместимости) Тогда // Если обработка совместима с ИБ + + Загружать = Истина; + + Иначе + + Загружать = Ложь; + + ЗаписьЖурналаРегистрации( + НСтр("ru = 'Поставляемые дополнительные отчеты и обработки.Загрузка поставляемой обработки отменена'", + ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Информация, + , + , + НСтр("ru = 'Поставляемая обработка несовместима с данной конфигурацией'") + Символы.ПС + Символы.ВК + ОписаниеПоставляемойОбработки.Совместимость); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +// Вызывается после вызова ДоступныНовыеДанные, позволяет разобрать данные. +// +// Параметры: +// Дескриптор - ОбъектXDTO Дескриптор. +// ПутьКФайлу - Строка или Неопределено. Полное имя извлеченного файла. Файл будет автоматически удален +// после завершения процедуры. Если в менеджере сервиса не был +// указан файл - значение аргумента равно Неопределено. +// +Процедура ОбработатьНовыеДанные(Знач Дескриптор, Знач ПутьКФайлу) Экспорт + + Если Дескриптор.DataType = ИдентификаторВидаПоставляемыхДанных() Тогда + ОбработатьПоставляемыеДополнительныеОтчетыИОбработки(Дескриптор, ПутьКФайлу); + КонецЕсли; + +КонецПроцедуры + +// Вызывается при отмене обработки данных в случае сбоя +// +Процедура ОбработкаДанныхОтменена(Знач Дескриптор) Экспорт + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиОбновления + +// Блокирует дополнительные отчеты и обработки в областях данных для +// получения новых версий из менеджера сервиса. +// +Процедура ЗаблокироватьДополнительныеОтчетыИОбработкиДляОбновления() Экспорт + + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + ТекстЗапроса = + "ВЫБРАТЬ + | ПоставляемыеДополнительныеОтчетыИОбработки.Ссылка КАК Ссылка + |ИЗ + | Справочник.ПоставляемыеДополнительныеОтчетыИОбработки КАК ПоставляемыеДополнительныеОтчетыИОбработки + |ГДЕ + | НЕ ПоставляемыеДополнительныеОтчетыИОбработки.Ссылка В + | (ВЫБРАТЬ РАЗЛИЧНЫЕ + | ПоставляемыеДополнительныеОтчетыИОбработкиСовместимость.Ссылка + | ИЗ + | Справочник.ПоставляемыеДополнительныеОтчетыИОбработки.Совместимость КАК ПоставляемыеДополнительныеОтчетыИОбработкиСовместимость + | ГДЕ + | ПоставляемыеДополнительныеОтчетыИОбработкиСовместимость.Версия = &Версия) + | И ПоставляемыеДополнительныеОтчетыИОбработки.КонтролироватьСовместимостьСВерсиямиКонфигурации = ИСТИНА"; + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("Версия", Метаданные.Версия); + БлокируемыеОбработки = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); + + Для Каждого БлокируемаяОбработка Из БлокируемыеОбработки Цикл + + ПоставляемаяОбработка = БлокируемаяОбработка.ПолучитьОбъект(); + ПоставляемаяОбработка.Публикация = Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Отключена; + ПоставляемаяОбработка.ПричинаОтключения = Перечисления.ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса.ОбновлениеВерсииКонфигурации; + ПоставляемаяОбработка.Записать(); + + КонецЦикла; + +КонецПроцедуры + +// Запрашивает обновления поставляемых дополнительных отчетов и обработок из +// менеджера сервиса. +// +Процедура ЗапроситьОбновлениеДополнительныхОтчетовИОбработок() Экспорт + + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + НачатьТранзакцию(); + Попытка + МодульПоставляемыеДанные = ОбщегоНазначения.ОбщийМодуль("ПоставляемыеДанные"); + МодульПоставляемыеДанные.ЗапроситьВсеДанные(); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Запрос обновлений дополнительных отчетов и обработок'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, + , + , + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Возвращает поставляемую обработку, соответствующую используемой обработке. +// +// Параметры: +// ИспользуемаяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки - дополнительная обработка. +// +// Возвращаемое значение: +// СправочникСсылка.ПоставляемыеДополнительныеОтчетыИОбработки +// +Функция ПоставляемаяОбработка(ИспользуемаяОбработка) + + Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + ВызватьИсключение НСтр("ru = 'Использование функции ДополнительныеОтчетыИОбработкиВМоделиСервиса.ПоставляемаяОбработка + |доступно только сеансов с установленным разделением данных.'"); + КонецЕсли; + + ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1 + | Инсталляции.ПоставляемаяОбработка КАК ПоставляемаяОбработка + |ИЗ + | РегистрСведений.ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных КАК Инсталляции + |ГДЕ + | Инсталляции.ИспользуемаяОбработка = &ИспользуемаяОбработка"; + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("ИспользуемаяОбработка", ИспользуемаяОбработка); + УстановитьПривилегированныйРежим(Истина); + Результат = Запрос.Выполнить(); + Если Результат.Пустой() Тогда + Возврат Неопределено; + КонецЕсли; + + Выборка = Результат.Выбрать(); + Выборка.Следующий(); + Возврат Выборка.ПоставляемаяОбработка; + +КонецФункции + +// Возвращает используемую обработку, соответствующую поставляемой обработке для текущего значения разделителя ОбластьДанных. +// +// Параметры: +// ПоставляемаяОбработка - СправочникСсылка.ПоставляемыеДополнительныеОтчетыИОбработки - поставляемая обработка. +// +// Возвращаемое значение: +// СправочникСсылка.ДополнительныеОтчетыИОбработки +// +Функция ИспользуемаяОбработка(ПоставляемаяОбработка) + + Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + ВызватьИсключение НСтр("ru = 'Использование функции ДополнительныеОтчетыИОбработкиВМоделиСервиса.ИспользуемаяОбработка + |доступно только сеансов с установленным разделением данных.'"); + КонецЕсли; + + ТекстЗапроса = "ВЫБРАТЬ + | Инсталляции.ИспользуемаяОбработка КАК ИспользуемаяОбработка + |ИЗ + | РегистрСведений.ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных КАК Инсталляции + |ГДЕ + | Инсталляции.ПоставляемаяОбработка = &ПоставляемаяОбработка"; + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("ПоставляемаяОбработка", ПоставляемаяОбработка); + УстановитьПривилегированныйРежим(Истина); + Результат = Запрос.Выполнить(); + Если Результат.Пустой() Тогда + Возврат Неопределено; + КонецЕсли; + Выборка = Результат.Выбрать(); + Выборка.Следующий(); + Возврат Выборка.ИспользуемаяОбработка; + +КонецФункции + +// Возвращает перечень инсталляций поставляемой дополнительной обработки в области данных. +// +// Параметры: +// ПоставляемаяОбработка - СправочникСсылка.ПоставляемыеДополнительныеОтчетыИОбработки - поставляемая обработка. +// +// Возвращаемое значение: +// ТаблицаЗначений - перечень инсталляций: +// * ОбластьДанных - Число (7,0) - номер области данных. +// * ИспользуемаяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки - дополнительная обработка. +// +Функция ПереченьИнсталляций(Знач ПоставляемаяОбработка) + + ТекстЗапроса = + "ВЫБРАТЬ + | Инсталляции.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанных, + | Инсталляции.ИспользуемаяОбработка КАК ИспользуемаяОбработка + |ИЗ + | РегистрСведений.ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных КАК Инсталляции + |ГДЕ + | Инсталляции.ПоставляемаяОбработка = &ПоставляемаяОбработка"; + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("ПоставляемаяОбработка", ПоставляемаяОбработка); + Возврат Запрос.Выполнить().Выгрузить(); + +КонецФункции + +// Возвращает очередь инсталляций поставляемой дополнительной обработки в области данных. +// +// Параметры: +// ПоставляемаяОбработка - СправочникСсылка.ПоставляемыеДополнительныеОтчетыИОбработки - поставляемая обработка. +// +// Возвращаемое значение: +// ТаблицаЗначений - перечень инсталляций: +// * ОбластьДанных - Число (7,0) - номер области данных. +// * ПараметрыУстановки - ХранилищеЗначения - очередь инсталляций. +// +Функция ОчередьИнсталляций(Знач ПоставляемаяОбработка) + + ТекстЗапроса = + "ВЫБРАТЬ + | Очередь.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанных, + | Очередь.ПараметрыИнсталляции КАК ПараметрыИнсталляции + |ИЗ + | РегистрСведений.ОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных КАК Очередь + |ГДЕ + | Очередь.ПоставляемаяОбработка = &ПоставляемаяОбработка"; + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("ПоставляемаяОбработка", ПоставляемаяОбработка); + Возврат Запрос.Выполнить().Выгрузить(); + +КонецФункции + +#Область ПоставляемыеДанные + +// Возвращает идентификатор вида поставляемых данных для дополнительных отчетов +// и обработок. +// +// Возвращаемое значение: Строка. +Функция ИдентификаторВидаПоставляемыхДанных() + + Возврат "ДОиО"; // Не локализуется + +КонецФункции + +Функция ОписаниеПоставляемойОбработки() + + Возврат Новый Структура("Идентификатор, Версия, Манифест, Совместимость"); + +КонецФункции + +Функция РазобратьДескрипторПоставляемыхДанных(Дескриптор) + + ОписаниеПоставляемойОбработки = ОписаниеПоставляемойОбработки(); + + Для Каждого ХарактеристикаПоставляемыхДанных Из Дескриптор.Properties.Property Цикл + + ОписаниеПоставляемойОбработки[ХарактеристикаПоставляемыхДанных.Code] = ХарактеристикаПоставляемыхДанных.Value; + + КонецЦикла; + + Возврат ОписаниеПоставляемойОбработки; + +КонецФункции + +// Контроль совместимости с текущей версией конфигурации информационной базы +Функция ПроверитьСовместимостьПоставляемойОбработки(Знач ТаблицаСовместимости) + + Для Каждого ДекларацияСовместимости Из ТаблицаСовместимости Цикл + + Если ПустаяСтрока(ДекларацияСовместимости.VersionNumber) Тогда + + Если ДекларацияСовместимости.ConfigarationName = Метаданные.Имя Тогда + Возврат Истина; + КонецЕсли; + + Иначе + + Если ДекларацияСовместимости.ConfigarationName = Метаданные.Имя И ДекларацияСовместимости.VersionNumber = Метаданные.Версия Тогда + Возврат Истина; + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + Возврат Ложь; + +КонецФункции + +Процедура ОбработатьПоставляемыеДополнительныеОтчетыИОбработки(Дескриптор, ПутьКФайлу) + + УстановитьПривилегированныйРежим(Истина); + + // Прочитаем характеристики экземпляра поставляемых данных + ОписаниеПоставляемойОбработки = РазобратьДескрипторПоставляемыхДанных(Дескриптор); + + Чтение = Новый ЧтениеXML(); + Чтение.УстановитьСтроку(ОписаниеПоставляемойОбработки.Манифест); + Чтение.ПерейтиКСодержимому(); + МанифестДополнительнойОбработки = ФабрикаXDTO.ПрочитатьXML(Чтение, ФабрикаXDTO.Тип(Чтение.URIПространстваИмен, Чтение.Имя)); + + Чтение = Новый ЧтениеXML(); + Чтение.УстановитьСтроку(ОписаниеПоставляемойОбработки.Совместимость); + Чтение.ПерейтиКСодержимому(); + ТаблицаСовместимостиXDTO = ФабрикаXDTO.ПрочитатьXML(Чтение, ФабрикаXDTO.Тип(Чтение.URIПространстваИмен, Чтение.Имя)); + ТаблицаСовместимости = ПрочитатьТаблицуСовместимости(ТаблицаСовместимостиXDTO); + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые дополнительные отчеты и обработки.Загрузка поставляемой обработки'", + ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Информация, + , + , + НСтр("ru = 'Инициирована загрузка поставляемой обработки'") + Символы.ПС + Символы.ВК + ОписаниеПоставляемойОбработки.Манифест); + + // Получим СправочникОбъект.ПоставляемыеДополнительныеОтчетыИОбработки + СсылкаПоставляемойОбработки = Справочники.ПоставляемыеДополнительныеОтчетыИОбработки.ПолучитьСсылку( + Новый УникальныйИдентификатор(ОписаниеПоставляемойОбработки.Идентификатор)); + Если ОбщегоНазначения.СсылкаСуществует(СсылкаПоставляемойОбработки) Тогда + ПоставляемаяОбработка = СсылкаПоставляемойОбработки.ПолучитьОбъект(); + Иначе + ПоставляемаяОбработка = Справочники.ПоставляемыеДополнительныеОтчетыИОбработки.СоздатьЭлемент(); + ПоставляемаяОбработка.УстановитьСсылкуНового(СсылкаПоставляемойОбработки); + КонецЕсли; + + Если ЗначениеЗаполнено(ПоставляемаяОбработка.ПричинаОтключения) Тогда + Если ПоставляемаяОбработка.ПричинаОтключения = Перечисления.ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса.ОбновлениеВерсииКонфигурации Тогда + ПоставляемаяОбработка.Публикация = Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Используется; + ПоставляемаяОбработка.ПричинаОтключения = Перечисления.ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса.ПустаяСсылка(); + КонецЕсли; + Иначе + ПоставляемаяОбработка.Публикация = Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Используется; + КонецЕсли; + + Если ПоставляемаяОбработка.ВерсияGUID <> Новый УникальныйИдентификатор(ОписаниеПоставляемойОбработки.Версия) Тогда + + // Заполним СправочникОбъект.ПоставляемыеДополнительныеОтчетыИОбработки + ВариантыОтчетовПоставляемойОбработки = Неопределено; + ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифест.ПрочитатьМанифест( + МанифестДополнительнойОбработки, ПоставляемаяОбработка, ПоставляемаяОбработка, + ВариантыОтчетовПоставляемойОбработки); + + // В качестве значения реквизита ХранилищеОбработки записывает файл поставляемых данных. + ДвоичныеДанныеОбработки = Новый ДвоичныеДанные(ПутьКФайлу); + ПоставляемаяОбработка.ХранилищеОбработки = Новый ХранилищеЗначения( + ДвоичныеДанныеОбработки, Новый СжатиеДанных(9)); + + // Таблица совместимости с версиями конфигураций + ПоставляемаяОбработка.КонтролироватьСовместимостьСВерсиямиКонфигурации = Истина; + ПоставляемаяОбработка.Совместимость.Очистить(); + Для Каждого ИнформацияОСовместимости Из ТаблицаСовместимости Цикл + + Если ИнформацияОСовместимости.ConfigarationName = Метаданные.Имя Тогда + + Если ПустаяСтрока(ИнформацияОСовместимости.VersionNumber) Тогда + + ПоставляемаяОбработка.КонтролироватьСовместимостьСВерсиямиКонфигурации = Ложь; + Прервать; + + Иначе + + СтрокаТЧ = ПоставляемаяОбработка.Совместимость.Добавить(); + СтрокаТЧ.Версия = ИнформацияОСовместимости.VersionNumber; + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + // Запишем СправочникОбъект.ПоставляемыеДополнительныеОтчетыИОбработки + ПоставляемаяОбработка.ВерсияGUID = Новый УникальныйИдентификатор(ОписаниеПоставляемойОбработки.Версия); + ПоставляемаяОбработка.Записать(); + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые дополнительные отчеты и обработки.Загрузка поставляемой обработки завершена'", + ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Информация, + , + ПоставляемаяОбработка.Ссылка, + НСтр("ru = 'Завершена загрузка поставляемой обработки'") + Символы.ПС + Символы.ВК + ОписаниеПоставляемойОбработки.Манифест); + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда + Возврат; + КонецЕсли; + + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + // Планирование актуализации настроек используемых обработок + ИспользуемыеОбработки = ПереченьИнсталляций(ПоставляемаяОбработка.Ссылка); + Для Каждого ИнсталляцияОбработки Из ИспользуемыеОбработки Цикл + + ПараметрыМетода = Новый Массив; + ПараметрыМетода.Добавить(ИнсталляцияОбработки.ИспользуемаяОбработка); + + ПараметрыЗадания = Новый Структура; + ПараметрыЗадания.Вставить("ИмяМетода" , "ДополнительныеОтчетыИОбработкиВМоделиСервиса.АктуализацияНастроекИспользуемойОбработки"); + ПараметрыЗадания.Вставить("Параметры" , ПараметрыМетода); + ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 3); + ПараметрыЗадания.Вставить("ОбластьДанных", ИнсталляцияОбработки.ОбластьДанных); + + МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые дополнительные отчеты и обработки.Запланирована актуализация настроек поставляемой обработки'", + ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Информация, + , + ПоставляемаяОбработка.Ссылка, + НСтр("ru = 'Область данных:'") + ИнсталляцияОбработки.ОбластьДанных); + + КонецЦикла; + + // Планирование инсталляции поставляемой обработки в области, которые ее ожидают + ОчередьИнсталляций = ОчередьИнсталляций(ПоставляемаяОбработка.Ссылка); + Для Каждого ЭлементОчереди Из ОчередьИнсталляций Цикл + + Контекст = ЭлементОчереди.ПараметрыИнсталляции.Получить(); + + ОписаниеИнсталляции = Новый Структура( + "Идентификатор,Представление,Инсталляция", + ПоставляемаяОбработка.Ссылка.УникальныйИдентификатор(), + Контекст.Представление, + Контекст.Инсталляция); + + ПараметрыМетода = Новый Массив; + ПараметрыМетода.Добавить(ОписаниеИнсталляции); + ПараметрыМетода.Добавить(Контекст.БыстрыйДоступ); + ПараметрыМетода.Добавить(Контекст.Задания); + ПараметрыМетода.Добавить(Контекст.Разделы); + ПараметрыМетода.Добавить(Контекст.СправочникиИДокументы); + ПараметрыМетода.Добавить(Контекст.НастройкиРасположенияКоманд); + ПараметрыМетода.Добавить(Контекст.ВариантыДополнительногоОтчета); + ПараметрыМетода.Добавить(Контекст.Ответственный); + + ПараметрыЗадания = Новый Структура; + ПараметрыЗадания.Вставить("ИмяМетода", "ДополнительныеОтчетыИОбработкиВМоделиСервиса.УстановитьПоставляемуюОбработкуПриПолучении"); + ПараметрыЗадания.Вставить("Параметры", ПараметрыМетода); + ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 1); + ПараметрыЗадания.Вставить("ОбластьДанных", ЭлементОчереди.ОбластьДанных); + МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); + + ЗаписьЖурналаРегистрации( + НСтр("ru = 'Поставляемые дополнительные отчеты и обработки.Запланирована отложенная установка поставляемой обработки в область данных'", + ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Информация, + , + ПоставляемаяОбработка.Ссылка, + НСтр("ru = 'Область данных:'") + ЭлементОчереди.ОбластьДанных); + + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ДополнительныеОтчетыИОбработки + +// Возвращает Истина, если переданная ссылка на элемент справочника ДополнительныеОтчетыИОбработки +// является отчетом, а не обработкой. +// +Функция ЭтоОтчет(Знач Ссылка) + + Вид = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Вид"); + Возврат (Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.Отчет) Или (Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет); + +КонецФункции + +// Процедура выполняет перезаполнение элемента справочника ДополнительныеОтчетыИОбработки +// по элементу справочника ПоставляемыеДополнительныеОтчетыИОбработки. +// +Процедура ЗаполнитьНастройкиИспользуемойОбработки(ИспользуемаяОбработка, ПоставляемаяОбработка) + + ЗаполнитьЗначенияСвойств(ИспользуемаяОбработка, ПоставляемаяОбработка, , "ХранилищеОбработки, Владелец, Родитель, ИспользоватьДляФормыСписка, ИспользоватьДляФормыОбъекта"); + + КомандыИспользуемойОбработки = ИспользуемаяОбработка.Команды.Выгрузить(); + КомандыПоставляемойОбработки = ПоставляемаяОбработка.Команды.Выгрузить(); + + // Синхронизируем команды используемой обработки по командам поставляемой обработки + Для Каждого КомандаПоставляемойОбработки Из КомандыПоставляемойОбработки Цикл + + КомандаИспользуемойОбработки = КомандыИспользуемойОбработки.Найти( + КомандаПоставляемойОбработки.Идентификатор, "Идентификатор"); + + Если КомандаИспользуемойОбработки = Неопределено Тогда + КомандаИспользуемойОбработки = КомандыИспользуемойОбработки.Добавить(); + КонецЕсли; + + ЗаполнитьЗначенияСвойств(КомандаИспользуемойОбработки, КомандаПоставляемойОбработки, + "Идентификатор,ВариантЗапуска,Представление,ПоказыватьОповещение,Модификатор,Скрыть"); + + КонецЦикла; + + // Удаляем команды используемой обработки, которые были удалены из новой версии + // поставляемой обработки. + УдаляемыеКоманды = Новый Массив(); + Для Каждого КомандаИспользуемойОбработки Из КомандыИспользуемойОбработки Цикл + + КомандаПоставляемойОбработки = КомандыПоставляемойОбработки.Найти( + КомандаИспользуемойОбработки.Идентификатор, "Идентификатор"); + + Если КомандаПоставляемойОбработки = Неопределено Тогда + УдаляемыеКоманды.Добавить(КомандаИспользуемойОбработки); + КонецЕсли; + + КонецЦикла; + + Для Каждого УдаляемаяКоманда Из УдаляемыеКоманды Цикл + КомандыИспользуемойОбработки.Удалить(УдаляемаяКоманда); + КонецЦикла; + + ИспользуемаяОбработка.Команды.Загрузить(КомандыИспользуемойОбработки); + + ИспользуемаяОбработка.Разрешения.Загрузить(ПоставляемаяОбработка.Разрешения.Выгрузить()); + +КонецПроцедуры + +// Выполняет получение регистрационных данных для регистрируемой обработке по поставляемой обработке. +// +// Параметры: +// ПоставляемаяОбработка - СправочникСсылка.ПоставляемыеДополнительныеОтчетыИОбработки. +// +// Возвращаемое значение: +// Структура - см. СведенияОВнешнейОбработке() внешних обработок. +// +Функция ПолучитьРегистрационныеДанные(Знач ПоставляемаяОбработка) + + Результат = Новый Структура("Вид, Наименование, Версия, БезопасныйРежим, Информация, ВерсияБСП, ХранилищеВариантов"); + + УстановитьПривилегированныйРежим(Истина); + Обработка = ПоставляемаяОбработка.ПолучитьОбъект(); + ЗаполнитьЗначенияСвойств(Результат, Обработка); + + // Назначение + Назначение = Новый Массив(); + Для Каждого ЭлементНазначения Из Обработка.Назначение Цикл + Назначение.Вставить(ЭлементНазначения.ОбъектНазначения); + КонецЦикла; + Результат.Вставить("Назначение", Назначение); + + // Команды + Результат.Вставить("Команды", Обработка.Команды.Выгрузить( + , "Представление, Идентификатор, Модификатор, ПоказыватьОповещение, Использование")); + + Возврат Результат; + +КонецФункции + +// Читает таблицу совместимости поставляемой дополнительной обработки с конфигурациями +// и их версиями. +// +// Параметры: +// ТаблицаСовместимости - ОбъектXDTO {http://www.1c.ru/1cFresh/ApplicationExtensions/Compatibility/1.0.0.1}CompatibilityList. +// +// Возвращаемое значение: +// Таблица значений, колонки: +// ConfigarationName - строка, имя конфигурации, +// VersionNumber - строка, версия конфигурации. +// +Функция ПрочитатьТаблицуСовместимости(Знач ТаблицаСовместимости) Экспорт + + Результат = Новый ТаблицаЗначений(); + Результат.Колонки.Добавить("ConfigarationName", Новый ОписаниеТипов("Строка")); + Результат.Колонки.Добавить("VersionNumber", Новый ОписаниеТипов("Строка")); + + Для Каждого CompatibilityObject Из ТаблицаСовместимости.CompatibilityObjects Цикл + + Строка = Результат.Добавить(); + ЗаполнитьЗначенияСвойств(Строка, CompatibilityObject); + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +#КонецОбласти + +#Область СпецификаРаботыСДополнительнымиОтчетамиИОбработкамиВМоделиСервиса + +// Процедура предназначена для синхронизации значений констант, регулирующих +// использование дополнительных отчетов и обработок в модели сервиса. Процедура +// должна вызываться при любом изменении любой из констант, регулирующих +// использование дополнительных отчетов и обработок. +// +// Параметры: +// Константа - строка, имя измененной константы, как оно задано в метаданных, +// Значение - булево, новое значение измененной константы. +// +Процедура СинхронизацияЗначенийРегулирующихКонстант(Знач Константа, Знач Значение) Экспорт + + СостояниеИспользования = Ложь; + + РегулирующиеКонстанты = ДополнительныеОтчетыИОбработкиВМоделиСервисаПовтИсп.РегулирующиеКонстанты(); + + Для Каждого РегулирующаяКонстанта Из РегулирующиеКонстанты Цикл + + Если РегулирующаяКонстанта = Константа Тогда + ЗначениеКонстанты = Значение; + Иначе + ЗначениеКонстанты = Константы[РегулирующаяКонстанта].Получить(); + КонецЕсли; + + Если ЗначениеКонстанты Тогда + СостояниеИспользования = Истина; + КонецЕсли; + + КонецЦикла; + + Константы.ИспользоватьДополнительныеОтчетыИОбработки.Установить(СостояниеИспользования); + +КонецПроцедуры + +// Вызывается при проверке возможности выполнения дополнительного отчета или обработки. +// +Процедура ПроверитьВозможностьВыполнения(Ссылка) + + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + Если Не ЭтоПоставляемаяОбработка(Ссылка) Тогда + Если Не ПолучитьФункциональнуюОпцию("НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса") Тогда + ВызватьИсключение НСтр("ru = 'Этот дополнительный отчет или обработка не может быть использован в сервисе.'"); + КонецЕсли; + Возврат; + КонецЕсли; + + ПроверкаВозможностиВыполненияПоставляемойОбработки(Ссылка); + +КонецПроцедуры + +// Процедура вызывается для проверки возможности выполнения кода дополнительной обработки +// в информационной базе. +// +Процедура ПроверкаВозможностиВыполненияПоставляемойОбработки(Знач ИспользуемаяОбработка) + + ПараметрыПубликацииИспользуемойОбработки = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ИспользуемаяОбработка, "Публикация, Версия"); + Если ПараметрыПубликацииИспользуемойОбработки.Публикация = Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Отключена Тогда + ВызватьИсключение НСтр( + "ru = 'Использование дополнительной обработки запрещено. Обратитесь за помощью к пользователю, обладающего правами администратора в приложении.'"); + КонецЕсли; + + ОписанияПричинБлокировки = ДополнительныеОтчетыИОбработкиВМоделиСервисаПовтИсп.РасширенныеОписанияПричинБлокировки(); + + УстановитьПривилегированныйРежим(Истина); + ПоставляемаяОбработка = ПоставляемаяОбработка(ИспользуемаяОбработка); + Если Не ЗначениеЗаполнено(ПоставляемаяОбработка) Тогда + Возврат; + КонецЕсли; + + ПараметрыПубликацииПоставляемойОбработки = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ПоставляемаяОбработка, "Публикация, ПричинаОтключения, Версия"); + + // Проверка публикации поставляемой обработки + Если ПараметрыПубликацииПоставляемойОбработки.Публикация = Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Отключена Тогда + ВызватьИсключение ОписанияПричинБлокировки[ПараметрыПубликацииПоставляемойОбработки.ПричинаОтключения]; + КонецЕсли; + + // Проверка на выполнение обновления версии обработки + Если ПараметрыПубликацииИспользуемойОбработки.Версия <> ПараметрыПубликацииПоставляемойОбработки.Версия Тогда + ВызватьИсключение НСтр( + "ru = 'Использование дополнительной обработки временно недоступно. Повторите попытку через несколько минут. Приносим извинения на доставленные неудобства.'"); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиУсловныхВызовов + +Процедура ПриСериализацииВладельцаРазрешенийНаИспользованиеВнешнихРесурсов(Знач Владелец, СтандартнаяОбработка, Результат) Экспорт + + Если ТипЗнч(Владелец) = Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки") + И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + + СтандартнаяОбработка = Ложь; + + Результат = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.1c.ru/1cFresh/Application/Permissions/Management/1.0.0.1", "PermissionsOwnerExternalModule")); + Результат.Type = "ApplicationExtension"; + Результат.UUID = Владелец.УникальныйИдентификатор(); + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс/ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.mdo b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/ДополнительныеОтчетыИОбработкиВМоделиСервиса.mdo similarity index 68% rename from SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс/ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.mdo rename to SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/ДополнительныеОтчетыИОбработкиВМоделиСервиса.mdo index 09392e977..152b22867 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс/ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.mdo +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервиса/ДополнительныеОтчетыИОбработкиВМоделиСервиса.mdo @@ -1,9 +1,9 @@ - - ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс + + ДополнительныеОтчетыИОбработкиВМоделиСервиса ru - Дополнительные отчеты и обработки в безопасном режиме интерфейс + Дополнительные отчеты и обработки в модели сервиса true true diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифест/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифест/Module.bsl new file mode 100644 index 000000000..3f7956f36 --- /dev/null +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифест/Module.bsl @@ -0,0 +1,364 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +// Формирует манифест дополнительного отчета или обработки. +// Для вызова из внешней обработки ПодготовкаДополнительныхОтчетовИОбработокКПубликацииВМоделиСервиса.epf, +// входящей в комплект поставки Менеджера сервиса. +// +// Параметры: +// ОбъектОбработки - СправочникОбъект.ДополнительныеОтчетыИОбработки - дополнительная обработка. +// ОбъектВерсии - СправочникОбъект.ДополнительныеОтчетыИОбработки - дополнительная обработка. +// ВариантыОтчета - ТаблицаЗначений - колонки: +// * КлючВарианта - Строка - ключ варианта дополнительного отчета. +// * Представление - Строка - представление варианта дополнительного отчета. +// * Назначение - ТаблицаЗначений - колонки: +// ** РазделИлиГруппа - Строка - для сопоставления с элементом справочника ИдентификаторыОбъектовМетаданных. +// ** Важный - Булево - Истина, если выводится в группе важных. +// ** СмТакже - Булево - Истина, если выводится в группе "См. также". +// РасписанияКоманд - Структура - в ключах идентификаторы команд, а в значениях - расписание. +// РазрешенияОбработки - Массив - объекты ОбъектXDTO. +// +// Возвращаемое значение: +// ОбъектXDTO {http://www.1c.ru/1cFresh/ApplicationExtensions/Manifest/a.b.c.d}ExtensionManifest - +// манифест дополнительного отчета или обработки. +// +Функция СформироватьМанифест(Знач ОбъектОбработки, Знач ОбъектВерсии, Знач ВариантыОтчета = Неопределено, + Знач РасписанияКоманд = Неопределено, Знач РазрешенияОбработки = Неопределено) Экспорт + + Попытка + РежимСовместимостиРазрешений = ОбъектОбработки.РежимСовместимостиРазрешений; + Исключение + РежимСовместимостиРазрешений = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_1_3; + КонецПопытки; + + Если РежимСовместимостиРазрешений = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_1_3 Тогда + Пакет = ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.Пакет("1.0.0.1"); + Иначе + Пакет = ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.Пакет(); + КонецЕсли; + + Манифест = ФабрикаXDTO.Создать( + ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.ТипМанифест(Пакет)); + + Манифест.Name = ОбъектОбработки.Наименование; + Манифест.ObjectName = ОбъектВерсии.ИмяОбъекта; + Манифест.Version = ОбъектВерсии.Версия; + + Если РежимСовместимостиРазрешений = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_1_3 Тогда + Манифест.SafeMode = ОбъектВерсии.БезопасныйРежим; + КонецЕсли; + + Манифест.Description = ОбъектВерсии.Информация; + Манифест.FileName = ОбъектВерсии.ИмяФайла; + Манифест.UseReportVariantsStorage = ОбъектВерсии.ИспользуетХранилищеВариантов; + + ВидXDTO = Неопределено; + СловарьПреобразованияВидовОбработок = + ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.СловарьВидыДополнительныхОтчетовИОбработок(); + Для Каждого ФрагментСловаря Из СловарьПреобразованияВидовОбработок Цикл + Если ФрагментСловаря.Значение = ОбъектВерсии.Вид Тогда + ВидXDTO = ФрагментСловаря.Ключ; + КонецЕсли; + КонецЦикла; + Если Не ЗначениеЗаполнено(ВидXDTO) Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Вид дополнительных отчетов и обработок %1 не поддерживается в модели сервиса.'"), + ОбъектВерсии.Вид); + КонецЕсли; + Манифест.Category = ВидXDTO; + + Если ОбъектВерсии.Команды.Количество() > 0 Тогда + + Если ОбъектОбработки.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительнаяОбработка + Или ОбъектОбработки.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет Тогда + + // Обработка назначения разделам + ВыбранныеРазделы = ОбъектВерсии.Разделы.Выгрузить(); + + Если ОбъектОбработки.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительнаяОбработка Тогда + ВозможныеРазделы = ДополнительныеОтчетыИОбработки.РазделыДополнительныхОбработок(); + Иначе + ВозможныеРазделы = ДополнительныеОтчетыИОбработки.РазделыДополнительныхОтчетов(); + КонецЕсли; + + ИмяНачальнойСтраницы = ДополнительныеОтчетыИОбработкиКлиентСервер.ИмяНачальнойСтраницы(); + + НазначениеXDTO = ФабрикаXDTO.Создать( + ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.ТипНазначениеРазделам(Пакет)); + + Для Каждого Раздел Из ВозможныеРазделы Цикл + + Если Раздел = ИмяНачальнойСтраницы Тогда + ИмяРаздела = ИмяНачальнойСтраницы; + ИдентификаторОбъектаМетаданных = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(); + Иначе + ИмяРаздела = Раздел.ПолноеИмя(); + ИдентификаторОбъектаМетаданных = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Раздел); + КонецЕсли; + ПредставлениеОбъектаМетаданных = ДополнительныеОтчетыИОбработки.ПредставлениеРаздела(Раздел); + + ОбъектНазначенияXDTO = ФабрикаXDTO.Создать( + ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.ТипОбъектНазначения(Пакет)); + ОбъектНазначенияXDTO.ObjectName = ИмяРаздела; + ОбъектНазначенияXDTO.ObjectType = "SubSystem"; + ОбъектНазначенияXDTO.Representation = ПредставлениеОбъектаМетаданных; + ОбъектНазначенияXDTO.Enabled = ВыбранныеРазделы.Найти(ИдентификаторОбъектаМетаданных, "Раздел") <> Неопределено; + НазначениеXDTO.Objects.Добавить(ОбъектНазначенияXDTO); + + КонецЦикла; + + Иначе + + // Обработка назначения объектам метаданных + ВыбранныеОбъектыНазначения = ОбъектВерсии.Назначение.Выгрузить(); + + ВозможныеОбъектыНазначения = Новый Массив(); + ПодключенныеОбъектыМетаданных = ДополнительныеОтчетыИОбработки.ПодключенныеОбъектыМетаданных(ОбъектОбработки.Вид); + Для Каждого ПодключенныйОбъектМетаданных Из ПодключенныеОбъектыМетаданных Цикл + ВозможныеОбъектыНазначения.Добавить(ПодключенныйОбъектМетаданных.Метаданные); + КонецЦикла; + + НазначениеXDTO = ФабрикаXDTO.Создать( + ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.ТипНазначениеСправочникамИДокументам(Пакет)); + + Для Каждого ОбъектНазначения Из ВозможныеОбъектыНазначения Цикл + + ИдентификаторОбъектаМетаданных = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектНазначения); + + ОбъектНазначенияXDTO = ФабрикаXDTO.Создать( + ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.ТипОбъектНазначения(Пакет)); + ОбъектНазначенияXDTO.ObjectName = ОбъектНазначения.ПолноеИмя(); + Если ОбщегоНазначения.ЭтоСправочник(ОбъектНазначения) Тогда + ОбъектНазначенияXDTO.ObjectType = "Catalog"; + ИначеЕсли ОбщегоНазначения.ЭтоДокумент(ОбъектНазначения) Тогда + ОбъектНазначенияXDTO.ObjectType = "Document"; + ИначеЕсли ОбщегоНазначения.ЭтоБизнесПроцесс(ОбъектНазначения) Тогда + ОбъектНазначенияXDTO.ObjectType = "BusinessProcess"; + ИначеЕсли ОбщегоНазначения.ЭтоЗадача(ОбъектНазначения) Тогда + ОбъектНазначенияXDTO.ObjectType = "Task"; + КонецЕсли; + ОбъектНазначенияXDTO.Representation = ОбъектНазначения.Представление(); + ОбъектНазначенияXDTO.Enabled = ВыбранныеОбъектыНазначения.Найти(ИдентификаторОбъектаМетаданных, "ОбъектНазначения") <> Неопределено; + + НазначениеXDTO.Objects.Добавить(ОбъектНазначенияXDTO); + + КонецЦикла; + + НазначениеXDTO.UseInListsForms = ОбъектВерсии.ИспользоватьДляФормыСписка; + НазначениеXDTO.UseInObjectsForms = ОбъектВерсии.ИспользоватьДляФормыОбъекта; + + КонецЕсли; + + Манифест.Assignment = НазначениеXDTO; + + Для Каждого ОписаниеКоманды Из ОбъектВерсии.Команды Цикл + + КомандаXDTO = ФабрикаXDTO.Создать( + ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.ТипКоманда(Пакет)); + КомандаXDTO.Id = ОписаниеКоманды.Идентификатор; + КомандаXDTO.Representation = ОписаниеКоманды.Представление; + + ТипЗапускаXDTO = Неопределено; + СловарьПреобразованияСпособовВызова = + ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.СловарьСпособыВызоваДополнительныхОтчетовИОбработок(); + Для Каждого ФрагментСловаря Из СловарьПреобразованияСпособовВызова Цикл + Если ФрагментСловаря.Значение = ОписаниеКоманды.ВариантЗапуска Тогда + ТипЗапускаXDTO = ФрагментСловаря.Ключ; + КонецЕсли; + КонецЦикла; + Если Не ЗначениеЗаполнено(ТипЗапускаXDTO) Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Способ запуска дополнительных отчетов и обработок %1 не поддерживается в модели сервиса.'"), + ОписаниеКоманды.ВариантЗапуска); + КонецЕсли; + КомандаXDTO.StartupType = ТипЗапускаXDTO; + КомандаXDTO.ShowNotification = ОписаниеКоманды.ПоказыватьОповещение; + КомандаXDTO.Modifier = ОписаниеКоманды.Модификатор; + + Если ЗначениеЗаполнено(РасписанияКоманд) Тогда + РасписаниеКоманды = Неопределено; + Если РасписанияКоманд.Свойство(ОписаниеКоманды.Идентификатор, РасписаниеКоманды) Тогда + КомандаXDTO.DefaultSettings = ФабрикаXDTO.Создать( + ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.ТипНастройкиКоманды(Пакет)); + КомандаXDTO.DefaultSettings.Schedule = СериализаторXDTO.ЗаписатьXDTO(РасписаниеКоманды); + КонецЕсли; + КонецЕсли; + Манифест.Commands.Добавить(КомандаXDTO); + + КонецЦикла; + + КонецЕсли; + + Если ЗначениеЗаполнено(ВариантыОтчета) Тогда + + Для Каждого ВариантОтчета Из ВариантыОтчета Цикл + + ВариантXDTO = ФабрикаXDTO.Создать( + ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.ТипВариантОтчета(Пакет)); + ВариантXDTO.VariantKey = ВариантОтчета.КлючВарианта; + ВариантXDTO.Representation = ВариантОтчета.Представление; + + Если ВариантОтчета.Назначение <> Неопределено Тогда + + Для Каждого НазначениеВариантаОтчета Из ВариантОтчета.Назначение Цикл + + НазначениеXDTO = ФабрикаXDTO.Создать( + ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.ТипНазначениеВариантаОтчета(Пакет)); + + НазначениеXDTO.ObjectName = НазначениеВариантаОтчета.ПолноеИмя; + НазначениеXDTO.Representation = НазначениеВариантаОтчета.Представление; + НазначениеXDTO.Parent = НазначениеВариантаОтчета.ПолноеИмяРодителя; + НазначениеXDTO.Enabled = НазначениеВариантаОтчета.Использование; + + Если НазначениеВариантаОтчета.Важный Тогда + НазначениеXDTO.Importance = "High"; + ИначеЕсли НазначениеВариантаОтчета.СмТакже Тогда + НазначениеXDTO.Importance = "Low"; + Иначе + НазначениеXDTO.Importance = "Ordinary"; + КонецЕсли; + + ВариантXDTO.Assignments.Добавить(НазначениеXDTO); + + КонецЦикла; + + КонецЕсли; + + Манифест.ReportVariants.Добавить(ВариантXDTO); + + КонецЦикла; + + КонецЕсли; + + Если РазрешенияОбработки = Неопределено Тогда + + РазрешенияОбработки = ОбъектОбработки.Разрешения; + + КонецЕсли; + + Для Каждого Разрешение Из РазрешенияОбработки Цикл + + Если ТипЗнч(Разрешение) = Тип("ОбъектXDTO") Тогда + Манифест.Permissions.Добавить(Разрешение); + Иначе + + Если РежимСовместимостиРазрешений = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_1_3 Тогда + РазрешениеXDTO = ФабрикаXDTO.Создать( + ФабрикаXDTO.Тип( + "http://www.1c.ru/1cFresh/ApplicationExtensions/Permissions/1.0.0.1", + Разрешение.ВидРазрешения)); + Иначе + РазрешениеXDTO = ФабрикаXDTO.Создать( + ФабрикаXDTO.Тип( + "http://www.1c.ru/1cFresh/Application/Permissions/1.0.0.1", + Разрешение.ВидРазрешения)); + КонецЕсли; + + Параметры = Разрешение.Параметры.Получить(); + Если Параметры <> Неопределено Тогда + Для Каждого Параметр Из Параметры Цикл + РазрешениеXDTO[Параметр.Ключ] = Параметр.Значение; + КонецЦикла; + КонецЕсли; + Манифест.Permissions.Добавить(РазрешениеXDTO); + + КонецЕсли; + + КонецЦикла; + + Возврат Манифест; + +КонецФункции + +// Заполняет объекты ОбъектОбработки, ОбъектВерсии и ВариантыОтчета данными, считываемыми из манифеста +// дополнительного отчета или обработки. +// +// Параметры: +// Манифест - ОбъектXDTO {http://www.1c.ru/1cFresh/ApplicationExtensions/Manifest/a.b.c.d}ExtensionManifest - манифест +// дополнительного отчета или обработки. +// ОбъектОбработки - СправочникОбъект.ДополнительныеОтчетыИОбработки - объект, значения свойств которого будет установлены +// значениями свойств дополнительного отчета или обработки из манифеста. +// ОбъектВерсии - СправочникОбъект.ДополнительныеОтчетыИОбработки - объект, значения свойств которого будет установлены +// значениями свойств версии дополнительного отчета или обработки из манифеста. +// ВариантыОтчета - ТаблицаЗначений - сведения о вариантах отчета: +// * КлючВарианта - Строка - ключ варианта дополнительного отчета. +// * Представление - Строка - представление варианта дополнительного отчета. +// * Назначение - ТаблицаЗначений - колонки: +// ** РазделИлиГруппа - Строка - для сопоставления с элементом справочника ИдентификаторыОбъектовМетаданных, +// ** Важный - Булево - Истина, если выводится в группе важных. +// ** СмТакже - Булево - Истина, если выводится в группе "См. также". +// +Процедура ПрочитатьМанифест(Знач Манифест, ОбъектОбработки, ОбъектВерсии, ВариантыОтчета) Экспорт + + Если Манифест.Тип().URIПространстваИмен = ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.Пакет("1.0.0.1") Тогда + ОбъектОбработки.РежимСовместимостиРазрешений = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_1_3; + ИначеЕсли Манифест.Тип().URIПространстваИмен = ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.Пакет("1.0.0.2") Тогда + ОбъектОбработки.РежимСовместимостиРазрешений = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_2_2; + КонецЕсли; + + ОбъектОбработки.Наименование = Манифест.Name; + ОбъектВерсии.ИмяОбъекта = Манифест.ObjectName; + ОбъектВерсии.Версия = Манифест.Version; + Если ОбъектОбработки.РежимСовместимостиРазрешений = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_1_3 Тогда + ОбъектВерсии.БезопасныйРежим = Манифест.SafeMode; + Иначе + ОбъектВерсии.БезопасныйРежим = Истина; + КонецЕсли; + ОбъектВерсии.Информация = Манифест.Description; + ОбъектВерсии.ИмяФайла = Манифест.FileName; + ОбъектВерсии.ИспользуетХранилищеВариантов = Манифест.UseReportVariantsStorage; + + СловарьПреобразованияВидовОбработок = ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.СловарьВидыДополнительныхОтчетовИОбработок(); + ОбъектВерсии.Вид = СловарьПреобразованияВидовОбработок[Манифест.Category]; + + ОбъектВерсии.Команды.Очистить(); + Для Каждого Command Из Манифест.Commands Цикл + + СтрокаКоманды = ОбъектВерсии.Команды.Добавить(); + СтрокаКоманды.Идентификатор = Command.Id; + СтрокаКоманды.Представление = Command.Representation; + СтрокаКоманды.ПоказыватьОповещение = Command.ShowNotification; + СтрокаКоманды.Модификатор = Command.Modifier; + + СловарьПреобразованияСпособовВызова = + ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.СловарьСпособыВызоваДополнительныхОтчетовИОбработок(); + СтрокаКоманды.ВариантЗапуска = СловарьПреобразованияСпособовВызова[Command.StartupType]; + + КонецЦикла; + + ОбъектВерсии.Разрешения.Очистить(); + Для Каждого Permission Из Манифест.Permissions Цикл + + ТипXDTO = Permission.Тип(); + + Разрешение = ОбъектВерсии.Разрешения.Добавить(); + Разрешение.ВидРазрешения = ТипXDTO.Имя; + + Параметры = Новый Структура(); + + Для Каждого СвойствоXDTO Из ТипXDTO.Свойства Цикл + + Контейнер = Permission.ПолучитьXDTO(СвойствоXDTO.Имя); + + Если Контейнер <> Неопределено Тогда + Параметры.Вставить(СвойствоXDTO.Имя, Контейнер.Значение); + Иначе + Параметры.Вставить(СвойствоXDTO.Имя); + КонецЕсли; + + КонецЦикла; + + Разрешение.Параметры = Новый ХранилищеЗначения(Параметры); + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифест/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифест.mdo b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифест/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифест.mdo new file mode 100644 index 000000000..97fecabab --- /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..6147a9080 --- /dev/null +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс/Module.bsl @@ -0,0 +1,234 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныеПроцедурыИФункции + +// Возвращает пространство имен текущей (используемой вызывающим кодом) версии интерфейса сообщений. +// +// Параметры: +// Версия - Строка - если параметр задан, то в пространство имен включается указанная версия вместо текущей. +// +// Возвращаемое значение: +// Строка +// +Функция Пакет(Знач Версия = "") Экспорт + + Если ПустаяСтрока(Версия) Тогда + Версия = Версия(); + КонецЕсли; + + Возврат "http://www.1c.ru/1cFresh/ApplicationExtensions/Manifest/" + Версия; + +КонецФункции + +// Возвращает текущую (используемую вызывающим кодом) версию интерфейса сообщений +// +// Возвращаемое значение: +// Строка +// +Функция Версия() Экспорт + + Возврат "1.0.0.2"; + +КонецФункции + +// Возвращает название программного интерфейса сообщений +// +// Возвращаемое значение: +// Строка +// +Функция ПрограммныйИнтерфейс() Экспорт + + Возврат "ApplicationExtensionsCore"; + +КонецФункции + +// Выполняет регистрацию обработчиков сообщений в качестве обработчиков каналов обмена сообщениями. +// +// Параметры: +// МассивОбработчиков - Массив - общие модули или модули менеджеров. +// +Процедура ОбработчикиКаналовСообщений(Знач МассивОбработчиков) Экспорт + +КонецПроцедуры + +// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}ExtensionAssignmentObject +// +// Параметры: +// ИспользуемыйПакет - строка, пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипXDTO +// +Функция ТипОбъектНазначения(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ExtensionAssignmentObject"); + +КонецФункции + +// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}ExtensionSubsystemsAssignment +// +// Параметры: +// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO +// +Функция ТипНазначениеРазделам(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ExtensionSubsystemsAssignment"); + +КонецФункции + +// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}ExtensionCatalogsAndDocumentsAssignment +// +// Параметры: +// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO +// +Функция ТипНазначениеСправочникамИДокументам(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ExtensionCatalogsAndDocumentsAssignment"); + +КонецФункции + +// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}ExtensionCommand +// +// Параметры: +// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO +// +Функция ТипКоманда(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ExtensionCommand"); + +КонецФункции + +// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}ExtensionReportVariantAssignment +// +// Параметры: +// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO +// +Функция ТипНазначениеВариантаОтчета(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ExtensionReportVariantAssignment"); + +КонецФункции + +// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}ExtensionReportVariant +// +// Параметры: +// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO +// +Функция ТипВариантОтчета(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ExtensionReportVariant"); + +КонецФункции + +// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}ExtensionCommandSettings +// +// Параметры: +// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO +// +Функция ТипНастройкиКоманды(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ExtensionCommandSettings"); + +КонецФункции + +// Возвращает тип {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}ExtensionManifest +// +// Параметры: +// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO +// +Функция ТипМанифест(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ExtensionManifest"); + +КонецФункции + +// Возвращает словарь соответствий значений перечисления ВидыДополнительныхОтчетовИОбработок +// значениям XDTO-типа {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}ExtensionCategory +// +// Возвращаемое значение: +// Структура +// +Функция СловарьВидыДополнительныхОтчетовИОбработок() Экспорт + + Словарь = Новый Структура(); + Менеджер = Перечисления.ВидыДополнительныхОтчетовИОбработок; + + Словарь.Вставить("AdditionalProcessor", Менеджер.ДополнительнаяОбработка); + Словарь.Вставить("AdditionalReport", Менеджер.ДополнительныйОтчет); + Словарь.Вставить("ObjectFilling", Менеджер.ЗаполнениеОбъекта); + Словарь.Вставить("Report", Менеджер.Отчет); + Словарь.Вставить("PrintedForm", Менеджер.ПечатнаяФорма); + Словарь.Вставить("LinkedObjectCreation", Менеджер.СозданиеСвязанныхОбъектов); + Словарь.Вставить("TemplatesMessages", Менеджер.ШаблонСообщения); + + Возврат Словарь; + +КонецФункции + +// Возвращает словарь соответствий значений перечисления СпособыВызоваДополнительныхОбработок +// значениям XDTO-типа {http://www.1c.ru/1cFresh/ApplicationExtensions/Core/a.b.c.d}ExtensionStartupType +// +// Возвращаемое значение: +// Структура +// +Функция СловарьСпособыВызоваДополнительныхОтчетовИОбработок() Экспорт + + Словарь = Новый Структура(); + Менеджер = Перечисления.СпособыВызоваДополнительныхОбработок; + + Словарь.Вставить("ClientCall", Менеджер.ВызовКлиентскогоМетода); + Словарь.Вставить("ServerCall", Менеджер.ВызовСерверногоМетода); + Словарь.Вставить("FormOpen", Менеджер.ОткрытиеФормы); + Словарь.Вставить("FormFill", Менеджер.ЗаполнениеФормы); + Словарь.Вставить("SafeModeExtension", Менеджер.СценарийВБезопасномРежиме); + + Возврат Словарь; + +КонецФункции + +Функция СоздатьТипСообщения(Знач ИспользуемыйПакет, Знач Тип) + + Если ИспользуемыйПакет = Неопределено Тогда + ИспользуемыйПакет = Пакет(); + КонецЕсли; + + Возврат ФабрикаXDTO.Тип(ИспользуемыйПакет, Тип); + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.mdo b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс/ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.mdo new file mode 100644 index 000000000..e9405a1ca --- /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..f7ab45322 --- /dev/null +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаПовтИсп/Module.bsl @@ -0,0 +1,50 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныеПроцедурыИФункции + +Функция РегулирующиеКонстанты() Экспорт + + Результат = Новый Массив(); + Результат.Добавить("НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса"); + Результат.Добавить("ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса"); + + Возврат Новый ФиксированныйМассив(Результат); + +КонецФункции + +Функция КонтролируемыеРеквизиты() Экспорт + + Результат = Новый Массив(); + Результат.Добавить("БезопасныйРежим"); + Результат.Добавить("ХранилищеОбработки"); + Результат.Добавить("ИмяОбъекта"); + Результат.Добавить("Версия"); + Результат.Добавить("Вид"); + + Возврат Новый ФиксированныйМассив(Результат); + +КонецФункции + +Функция РасширенныеОписанияПричинБлокировки() Экспорт + + Причины = Перечисления.ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса; + + Результат = Новый Соответствие(); + Результат.Вставить(Причины.БлокировкаАдминистраторомСервиса, + НСтр("ru = 'Использование дополнительной обработки запрещено администратором сервиса.'")); + Результат.Вставить(Причины.БлокировкаВладельцем, + НСтр("ru = 'Использование дополнительной обработки запрещено владельцем обработки.'")); + Результат.Вставить(Причины.ОбновлениеВерсииКонфигурации, + НСтр("ru = 'Использование дополнительной обработки временно недоступно. Попробуйте повторить через несколько минут. Приносим извинения на доставленные неудобства.'")); + + Возврат Новый ФиксированноеСоответствие(Результат); + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеПовтИсп/ДополнительныеОтчетыИОбработкиВБезопасномРежимеПовтИсп.mdo b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаПовтИсп/ДополнительныеОтчетыИОбработкиВМоделиСервисаПовтИсп.mdo similarity index 71% rename from SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеПовтИсп/ДополнительныеОтчетыИОбработкиВБезопасномРежимеПовтИсп.mdo rename to SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаПовтИсп/ДополнительныеОтчетыИОбработкиВМоделиСервисаПовтИсп.mdo index 4b6e4b04a..2e879511b 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВБезопасномРежимеПовтИсп/ДополнительныеОтчетыИОбработкиВБезопасномРежимеПовтИсп.mdo +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВМоделиСервисаПовтИсп/ДополнительныеОтчетыИОбработкиВМоделиСервисаПовтИсп.mdo @@ -1,9 +1,9 @@ - - ДополнительныеОтчетыИОбработкиВБезопасномРежимеПовтИсп + + ДополнительныеОтчетыИОбработкиВМоделиСервисаПовтИсп ru - Дополнительные отчеты и обработки в безопасном режиме повт исп + Дополнительные отчеты и обработки в модели сервиса повт исп true true diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВызовСервера/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВызовСервера/Module.bsl index 6e77f1e6f..bc8e8fb3f 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиВызовСервера/Module.bsl @@ -41,26 +41,6 @@ КонецФункции -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать ДополнительныеОтчетыИОбработки.ОбъектВнешнейОбработки(). -// -// Параметры: -// Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки - Подключаемый отчет или обработка. -// -// Возвращаемое значение: -// ВнешняяОбработкаОбъект - Объект подключенной обработки. -// ВнешнийОтчетОбъект - Объект подключенного отчета. -// Неопределено - Если передана некорректная ссылка. -// -Функция ПолучитьОбъектВнешнейОбработки(Ссылка) Экспорт - - Возврат ДополнительныеОтчетыИОбработки.ОбъектВнешнейОбработки(Ссылка); - -КонецФункции - -#КонецОбласти - #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl index 258cb8b1e..dd55ccf44 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиент/Module.bsl @@ -32,7 +32,7 @@ Параметры.ИмяРаздела = ИмяРаздела; Параметры.РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца; - Если ТипЗнч(ПараметрыВыполненияКоманды.Источник) = Тип("УправляемаяФорма") Тогда // назначаемая обработка + Если ТипЗнч(ПараметрыВыполненияКоманды.Источник) = Тип("ФормаКлиентскогоПриложения") Тогда // назначаемая обработка Параметры.Вставить("ИмяФормы", ПараметрыВыполненияКоманды.Источник.ИмяФормы); КонецЕсли; @@ -85,7 +85,7 @@ // Используется для назначаемых дополнительных обработок. // * СозданныеОбъекты - Массив - ссылки объектов, созданных в процессе выполнения команды. // Используется для назначаемых дополнительных обработок вида "Создание связанных объектов". -// * ФормаВладелец - УправляемаяФорма - форма объекта или списка, из которой была вызвана команда. +// * ФормаВладелец - ФормаКлиентскогоПриложения - форма объекта или списка, из которой была вызвана команда. // Функция ПараметрыВыполненияКомандыВФоне(Ссылка) Экспорт @@ -153,7 +153,7 @@ ИмяПроцедуры, "Обработчик", Обработчик, - Новый ОписаниеТипов("ОписаниеОповещения, УправляемаяФорма")); + Новый ОписаниеТипов("ОписаниеОповещения, ФормаКлиентскогоПриложения")); ПараметрыКоманды.Вставить("ИдентификаторКоманды", ИдентификаторКоманды); ПолучатьРезультат = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыКоманды, "ПолучатьРезультат", Ложь); @@ -165,7 +165,7 @@ Если ТипЗнч(Обработчик) = Тип("ОписаниеОповещения") Тогда ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Обработчик.Модуль", Обработчик.Модуль, - Тип("УправляемаяФорма")); + Тип("ФормаКлиентскогоПриложения")); Форма = ?(Форма <> Неопределено, Форма, Обработчик.Модуль); Иначе Форма = Обработчик; @@ -205,38 +205,6 @@ КонецФункции -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Отображает результат выполнения команды. -// -// Параметры: -// Форма - УправляемаяФорма - Форма. -// РезультатВыполнения - Структура - Результат выполнения. -// -Процедура ПоказатьРезультатВыполненияКоманды(Форма, РезультатВыполнения) Экспорт - Возврат; -КонецПроцедуры - -// Устарела. Следует использовать ПодключаемыеКомандыКлиент.ВыполнитьКоманду. -// -// Выполняет назначаемую команду на клиенте, используя только неконтекстные серверные вызов. -// Возвращает Ложь если для выполнения команды требуется серверный вызов. -// -// Параметры: -// Форма - УправляемаяФорма - Форма, из которой вызвана команда. -// ИмяЭлемента - Строка - Имя команды формы, которая была нажата. -// -// Возвращаемое значение: -// Булево - Способ выполнения. -// Истина - Команда обработки выполняется неконтекстно. -// Ложь - Для выполнения требуется контекстный вызов сервера. -// -Функция ВыполнитьНазначаемуюКомандуНаКлиенте(Форма, ИмяЭлемента) Экспорт - Возврат Ложь; -КонецФункции - -#КонецОбласти - #КонецОбласти #Область СлужебныйПрограммныйИнтерфейс @@ -273,7 +241,7 @@ // Параметры: // ПараметрыКоманды - Структура - структура из строки таблицы команд, см. // ДополнительныеОтчетыИОбработки.ПриПолученииКомандПечати. -// Форма - УправляемаяФорма - форма, в которой выполняется команда печати. +// Форма - ФормаКлиентскогоПриложения - форма, в которой выполняется команда печати. // Процедура ВыполнитьНазначаемуюКомандуПечати(ВыполняемаяКоманда, Форма) Экспорт @@ -307,7 +275,7 @@ // ** Идентификатор - Строка - Идентификатор команды. // ** Представление - Строка - Представление команды в форме. // ** Имя - Строка - Имя команды в форме. -// * Форма - УправляемаяФорма - Форма, из которой была вызвана команда. +// * Форма - ФормаКлиентскогоПриложения - Форма, из которой была вызвана команда. // * Источник - ДанныеФормыСтруктура, ТаблицаФормы - Объект или список формы с полем "Ссылка". // Процедура ОткрытьСписокКоманд(Знач МассивСсылок, Знач ПараметрыВыполнения) Экспорт @@ -326,7 +294,7 @@ // ** Идентификатор - Строка - Идентификатор команды. // ** Представление - Строка - Представление команды в форме. // ** Имя - Строка - Имя команды в форме. -// * Форма - УправляемаяФорма - Форма, из которой была вызвана команда. +// * Форма - ФормаКлиентскогоПриложения - Форма, из которой была вызвана команда. // * Источник - ДанныеФормыСтруктура, ТаблицаФормы - Объект или список формы с полем "Ссылка". // Процедура ОбработчикКомандыЗаполнения(Знач МассивСсылок, Знач ПараметрыВыполнения) Экспорт diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиентСервер/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиентСервер/Module.bsl index 96dba7511..9977ed9b2 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиКлиентСервер/Module.bsl @@ -295,7 +295,7 @@ // // ОбъектыНазначения - Массив - ссылки объектов, для которых вызвана команда. // // - Неопределено - не передается для команд типа "ЗаполнениеФормы". // // ПараметрыВыполнения - Структура - контекст выполнения команды. -// // * ЭтаФорма - УправляемаяФорма - заполняемая форма. Передается для команд типа "ЗаполнениеФормы". +// // * ЭтаФорма - ФормаКлиентскогоПриложения - заполняемая форма. Передается для команд типа "ЗаполнениеФормы". // // * ДополнительнаяОбработкаСсылка - СправочникСсылка.ДополнительныеОтчетыИОбработки - ссылка обработки. // // Может использоваться для чтения параметров обработки. // // Пример см. в комментарии к функции ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(). @@ -313,50 +313,6 @@ КонецФункции -// Возвращает имя типа команд по сценарному выполнению в безопасном режиме. -// Для выполнения команд такого типа в модуле объекта следует определить экспортную процедуру по шаблону: -// // Формирование сценария выполнения команды с использованием программного интерфейса модуля -// // ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс. -// // Функции, добавляющие этапы сценария: -// // ДобавитьМетодКонфигурации() добавляет в сценарий вызов процедуры или функции конфигурации. -// // Функция возвращает этап сценария, который затем можно использовать в функции по заполнению параметров. -// // ДобавитьМетодОбработки() добавляет в сценарий вызов процедуры или функции объекта дополнительной обработки. -// // Функция возвращает этап сценария, который затем можно использовать в функции по заполнению параметров. -// // Процедуры, регистрирующие параметры, которые будут переданы в процедуру или функцию, обрабатывающую этап: -// // ДобавитьКлючСессии() добавляет в массив параметров текущий ключ сессии расширения безопасного режима. -// // ДобавитьЗначение() добавляет в массив параметров фиксированное значение произвольного типа. -// // ДобавитьСохраняемоеЗначение() добавляет в массив параметров сохраняемое значение. -// // ДобавитьКоллекциюСохраняемыхЗначений() добавляет в массив параметров коллекцию сохраняемых значений. -// // ДобавитьПараметрВыполненияКоманды() добавляет в массив параметров элемент структуры ПараметрыВыполненияКоманды. -// // ДобавитьОбъектыНазначения() добавляет в массив параметров массив объектов назначения -// // (актуально только для назначаемых дополнительных обработок). -// // Подробнее см. в документации к подсистеме, раздел "Расширение безопасного режима". -// // -// // Параметры: -// // ИдентификаторКоманды - Строка - имя команды, определенное в функции СведенияОВнешнейОбработке(). -// // ПараметрыВыполнения - Структура - контекст выполнения команды. -// // * ДополнительнаяОбработкаСсылка - СправочникСсылка.ДополнительныеОтчетыИОбработки - ссылка этого объекта. -// // Может использоваться для чтения параметров обработки. -// // Пример см. в комментарии к функции ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы(). -// // -// // Возвращаемое значение: -// // ТаблицаЗначений - подробнее см. ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.НовыйСценарий(). -// // -// Функция СформироватьСценарий(ИдентификаторКоманды, ПараметрыВыполнения) Экспорт -// Сценарий = ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс.НовыйСценарий(); -// // Формирование сценария. -// Возврат Сценарий; -// КонецФункции -// -// Возвращаемое значение: -// Строка - имя типа команд по сценарному выполнению в безопасном режиме. -// -Функция ТипКомандыСценарийВБезопасномРежиме() Экспорт - - Возврат "СценарийВБезопасномРежиме"; // Внутренний идентификатор. - -КонецФункции - // Возвращает имя типа команд по загрузке данных из файла. Данные команды доступны // только в глобальных обработках (Вид = "ДополнительнаяОбработка") // при наличии в конфигурации подсистемы "ЗагрузкаДанныхИзФайла". diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиРегламентныеЗадания/Module.bsl b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиРегламентныеЗаданияВМоделиСервиса/Module.bsl similarity index 90% rename from SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиРегламентныеЗадания/Module.bsl rename to SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиРегламентныеЗаданияВМоделиСервиса/Module.bsl index 2309d2d47..21507c36f 100644 --- a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиРегламентныеЗадания/Module.bsl +++ b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиРегламентныеЗаданияВМоделиСервиса/Module.bsl @@ -12,13 +12,10 @@ // Устарела. Следует использовать РегламентныеЗаданияСервер.ДобавитьЗадание(). // -// Параметры: -// Наименование - Строка - Наименование регламентного задания. -// // Возвращаемое значение: // Неопределено - Следует использовать РегламентныеЗаданияСервер.ДобавитьЗадание(). // -Функция СоздатьНовоеЗадание(Знач Наименование) Экспорт +Функция СоздатьНовоеЗадание() Экспорт Возврат Неопределено; @@ -43,11 +40,10 @@ // Параметры: // Задание - РегламентноеЗадание - Регламентное задание. // Использование - Булево - Флаг использования регламентного задания. -// Наименование - Строка - Наименование регламентного задания. // Параметры - Массив - Параметры регламентного задания. // Расписание - РасписаниеРегламентногоЗадания - Расписание регламентного задания. // -Процедура УстановитьПараметрыЗадания(Задание, Использование, Наименование, Параметры, Расписание) Экспорт +Процедура УстановитьПараметрыЗадания(Задание, Использование, Параметры, Расписание) Экспорт Возврат; diff --git a/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиРегламентныеЗаданияВМоделиСервиса/ДополнительныеОтчетыИОбработкиРегламентныеЗаданияВМоделиСервиса.mdo b/SSL/src/CommonModules/ДополнительныеОтчетыИОбработкиРегламентныеЗаданияВМоделиСервиса/ДополнительныеОтчетыИОбработкиРегламентныеЗаданияВМоделиСервиса.mdo new file mode 100644 index 000000000..4626d05e5 --- /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 3ae10fe98..17e05c365 100644 --- a/SSL/src/CommonModules/ЖурналРегистрации/Module.bsl +++ b/SSL/src/CommonModules/ЖурналРегистрации/Module.bsl @@ -55,7 +55,8 @@ // Уровень - УровеньЖурналаРегистрации - уровни важности событий журнала регистрации. // ОбъектМетаданных - ОбъектМетаданных - объект метаданных, к которому относится событие. // Данные - ЛюбаяСсылка, Число, Строка, Дата, Булево, Неопределено, Тип - Данные, с которыми связано событие. -// Рекомендуется указывать ссылки на объекты данных (элементы справочников, документы, к которым относится событие). +// Рекомендуется указывать ссылки на объекты данных (элементы справочников, документы, к которым +// относится событие). // Комментарий - Строка - комментарий для события журнала. // Процедура ДобавитьСообщениеДляЖурналаРегистрации(Знач ИмяСобытия, Знач Уровень, @@ -98,12 +99,9 @@ // Проверяем параметры на корректность. ДатаНачала = Неопределено; ДатаОкончания = Неопределено; - ДатыОтбораУказаны= ОтборЖурналаНаКлиенте.Свойство("ДатаНачала", ДатаНачала) И ОтборЖурналаНаКлиенте.Свойство("ДатаОкончания", ДатаОкончания) + ДатыОтбораУказаны = ОтборЖурналаНаКлиенте.Свойство("ДатаНачала", ДатаНачала) И ОтборЖурналаНаКлиенте.Свойство("ДатаОкончания", ДатаОкончания) И ЗначениеЗаполнено(ДатаНачала) И ЗначениеЗаполнено(ОтборЖурналаНаКлиенте.ДатаОкончания); - Если ДатыОтбораУказаны И ДатаНачала > ДатаОкончания Тогда - ВызватьИсключение НСтр("ru = 'Некорректно заданы условия отбора журнала регистрации. Дата начала больше даты окончания.'"); - КонецЕсли; СмещениеВремениСервера = СмещениеВремениСервера(); // Подготовка отбора @@ -134,7 +132,7 @@ Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() - И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда + И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ПсевдонимыПользователей = Новый Соответствие(); @@ -301,15 +299,21 @@ ДатаОкончанияИнтервала = Неопределено; Если Не ОтборЖурналаРегистрации.Свойство("ДатаНачала", ДатаНачалаИнтервала) Или ДатаНачалаИнтервала = Неопределено Тогда - ДатаНачалаИнтервала = '00010101000000'; + ДатаНачалаИнтервала = Дата('00010101000000'); КонецЕсли; Если Не ОтборЖурналаРегистрации.Свойство("ДатаОкончания", ДатаОкончанияИнтервала) Или ДатаОкончанияИнтервала = Неопределено Тогда - ДатаОкончанияИнтервала = '00010101000000'; + ДатаОкончанияИнтервала = Дата('00010101000000'); КонецЕсли; - Если Не (ДатаНачалаИнтервала = '00010101000000' И ДатаОкончанияИнтервала = '00010101000000') Тогда + Если ЗначениеЗаполнено(ДатаОкончанияИнтервала) И ДатаНачалаИнтервала > ДатаОкончанияИнтервала Тогда + ПромежуточноеПредставление = ПредставлениеПериода(ДатаОкончанияИнтервала, ДатаНачалаИнтервала); + ПредставлениеЧастями = СтрРазделить(ПромежуточноеПредставление, "-"); + Если ПредставлениеЧастями.Количество() = 2 Тогда + ПредставлениеОтбора = СокрЛП(ПредставлениеЧастями[1]) + " - " + СокрЛП(ПредставлениеЧастями[0]); + КонецЕсли; + ИначеЕсли ЗначениеЗаполнено(ДатаНачалаИнтервала) Или ЗначениеЗаполнено(ДатаОкончанияИнтервала) Тогда ПредставлениеОтбора = ПредставлениеПериода(ДатаНачалаИнтервала, ДатаОкончанияИнтервала); КонецЕсли; diff --git a/SSL/src/CommonModules/ЖурналРегистрацииКлиент/Module.bsl b/SSL/src/CommonModules/ЖурналРегистрацииКлиент/Module.bsl index f9cd6b9e6..98c6eb0a5 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 daec5db10..19b1c71e0 100644 --- a/SSL/src/CommonModules/ЗаполнениеОбъектовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ЗаполнениеОбъектовПереопределяемый/Module.bsl @@ -47,8 +47,8 @@ // Для регистрации условий следует использовать процедуру // ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(). // Условия объединяются по "И". -// * ИзменяетВыбранныеОбъекты - Булево - определяет доступность команды, когда у пользователя нет прав на изменение объекта. -// Если Истина, то в описанной выше ситуации кнопка будет недоступна. +// * ИзменяетВыбранныеОбъекты - Булево - определяет доступность команды, когда у пользователя нет прав на +// изменение объекта. Если Истина, то в описанной выше ситуации кнопка будет недоступна. // Необязательный. Значение по умолчанию - Истина. // // Настройки процесса выполнения: diff --git a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектов/Module.bsl b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектов/Module.bsl index e8b297726..606b42ada 100644 --- a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектов/Module.bsl +++ b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектов/Module.bsl @@ -13,7 +13,7 @@ // а также добавляет во "Все действия" команду для разрешения их редактирования. // // Параметры: -// Форма - УправляемаяФорма - форма объекта. +// Форма - ФормаКлиентскогоПриложения - форма объекта. // ГруппаДляКнопкиЗапрета - ГруппаФормы - переопределяет стандартное размещение // кнопки запрета в форме объекта. // ЗаголовокКнопкиЗапрета - Строка - заголовок кнопки. По умолчанию "Разрешить редактирование реквизитов". diff --git a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовКлиент/Module.bsl b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовКлиент/Module.bsl index 25992e8ee..44c9f1898 100644 --- a/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЗапретРедактированияРеквизитовОбъектовКлиент/Module.bsl @@ -11,7 +11,7 @@ // Разрешает редактирование заблокированных элементов формы, связанных с заданными реквизитами. // // Параметры: -// Форма - УправляемаяФорма - форма, в которой требуется разрешить +// Форма - ФормаКлиентскогоПриложения - форма, в которой требуется разрешить // редактирование элементов формы, заданных реквизитов. // // ОбработкаПродолжения - Неопределено - никаких действий после выполнения процедуры. @@ -63,7 +63,7 @@ // снята для всех реквизитов, тогда кнопка разрешения редактирования блокируется. // // Параметры: -// Форма - УправляемаяФорма - форма, в которой требуется разрешить +// Форма - ФормаКлиентскогоПриложения - форма, в которой требуется разрешить // редактирование элементов формы, заданных реквизитов. // // Реквизиты - Массив - значения: @@ -174,7 +174,7 @@ // использования функции УстановитьДоступностьЭлементовФормы. // // Параметры: -// Форма - УправляемаяФорма - форма, в которой требуется разрешить редактирование реквизитов объекта. +// Форма - ФормаКлиентскогоПриложения - форма, в которой требуется разрешить редактирование реквизитов объекта. // // Реквизиты - Массив - значения. // * Строка - имена реквизитов, которые нужно пометить как разрешенные для изменения. @@ -225,7 +225,7 @@ // у которых ПравоРедактирования = Ложь. // // Параметры: -// Форма - УправляемаяФорма - форма объекта с обязательным стандартным реквизитом "Объект". +// Форма - ФормаКлиентскогоПриложения - форма объекта с обязательным стандартным реквизитом "Объект". // ТолькоЗаблокированные - Булево - для вспомогательных целей можно задать Ложь, чтобы // получить список всех видимых реквизитов, которые могут разблокироваться. // ТолькоВидимые - Булево - чтобы получить и разблокировать все реквизиты объекта, нужно указать Ложь. diff --git a/SSL/src/CommonModules/ЗащитаПерсональныхДанных/Module.bsl b/SSL/src/CommonModules/ЗащитаПерсональныхДанных/Module.bsl index 9ec6e7396..fa99a0ae8 100644 --- a/SSL/src/CommonModules/ЗащитаПерсональныхДанных/Module.bsl +++ b/SSL/src/CommonModules/ЗащитаПерсональныхДанных/Module.bsl @@ -15,7 +15,7 @@ // - таблица формы, связанная с реквизитом "ОбластиПерсональныхДанных". // // Параметры: -// Форма - УправляемаяФорма - форма настройки системы. +// Форма - ФормаКлиентскогоПриложения - форма настройки системы. // Процедура ПриСозданииФормыНастройкиРегистрацииСобытий(Форма) Экспорт @@ -67,7 +67,7 @@ // имя которой так же - "ОбластиПерсональныхДанных". // // Параметры: -// Форма - УправляемаяФорма - форма настройки системы. +// Форма - ФормаКлиентскогоПриложения - форма настройки системы. // Процедура ПриЗаписиФормыНастройкиРегистрацииСобытий(Форма) Экспорт @@ -608,13 +608,13 @@ // У динамических списков должна быть определена основная таблица. // // Параметры: -// Форма - УправляемаяФорма - форма списка. +// Форма - ФормаКлиентскогоПриложения - форма списка. // СписокФормы - ТаблицаФормы - элемент формы динамического списка субъектов. // Процедура ПриСозданииНаСервереФормыСписка(Форма, СписокФормы) Экспорт ИмяПроцедуры = "ЗащитаПерсональныхДанных.ПриСозданииНаСервереФормыСписка"; - ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Форма", Форма, Тип("УправляемаяФорма")); + ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Форма", Форма, Тип("ФормаКлиентскогоПриложения")); ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "СписокФормы", СписокФормы, Тип("ТаблицаФормы")); Элементы = Форма.Элементы; @@ -717,26 +717,6 @@ КонецПроцедуры -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать ИспользованиеСобытияДоступ. -// Составляет дерево используемых областей персональных данных. -// -// Возвращаемое значение: -// ДеревоЗначений - дерево областей данных с колонками: -// * Имя - Строка - идентификатор области персональных данных. -// * Представление - Строка - пользовательское представление области данных. -// * Использование - Булево - признак того, что для области данных -// установлена регистрация события "Доступ. Доступ". -// -Функция ПолучитьИспользованиеСобытияДоступ() Экспорт - - Возврат ИспользованиеСобытияДоступ(); - -КонецФункции - -#КонецОбласти - #КонецОбласти #Область СлужебныйПрограммныйИнтерфейс diff --git a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхКлиент/Module.bsl b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхКлиент/Module.bsl index d40255bb4..e28a08bd4 100644 --- a/SSL/src/CommonModules/ЗащитаПерсональныхДанныхКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЗащитаПерсональныхДанныхКлиент/Module.bsl @@ -14,7 +14,7 @@ // Параметры: // ПараметрыПечати - Структура - параметры обработки команды печати: // * ОбъектыПечати - Массив - в первом элементе ожидается субъект персональных данных; -// * Форма - УправляемаяФорма - форма, из которой выполняется печать. +// * Форма - ФормаКлиентскогоПриложения - форма, из которой выполняется печать. // // Возвращаемое значение: // Неопределено - не требуется, т.к. функция является клиентским обработчиком печати. @@ -37,7 +37,7 @@ // и обновляет объект управляемой формы. // // Параметры: -// Форма - УправляемаяФорма - форма субъекта. +// Форма - ФормаКлиентскогоПриложения - форма субъекта. // ИмяСобытия - Строка - имя обрабатываемого события. // Процедура ОбработкаОповещенияФормы(Форма, ИмяСобытия) Экспорт @@ -66,7 +66,7 @@ // Обработчик команды формы списка субъектов персональных данных. // // Параметры: -// Форма - УправляемаяФорма - форма субъекта. +// Форма - ФормаКлиентскогоПриложения - форма субъекта. // Список - ДинамическийСписок - динамический список субъектов. // Процедура ПоказыватьСоСкрытымиПДн(Форма, Список) Экспорт @@ -91,7 +91,7 @@ // Запускает фоновое изменение настроек скрытия персональных данных. // // Параметры: -// Форма - УправляемаяФорма - настраиваемая форма. +// Форма - ФормаКлиентскогоПриложения - настраиваемая форма. // Процедура НастройкиСкрытияПерсональныхДанныхПриИзменении(Форма) Экспорт diff --git a/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl b/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl index 8c05fe31a..8a4f3610d 100644 --- a/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl +++ b/SSL/src/CommonModules/ИнтеграцияПодсистемБСП/Module.bsl @@ -6,16 +6,693 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// Интеграция подсистем библиотеки друг с другом. -// Здесь размещена обработка программных событий, возникающих в подсистемах-источниках, -// в тех случаях, когда подсистем-приемников более одной или их список заранее неизвестен. +#Область ПрограммныйИнтерфейс + +#Область ОбработчикиСобытийБТС +// Обработка программных событий, возникающих в подсистемах БТС. +// Только для вызовов из библиотеки БТС в БСП. + +// Определяет события, на которые подписана эта библиотека. // +// Параметры: +// Подписки - Структура - См. ИнтеграцияПодсистемБТС.СобытияБТС. +// +Процедура ПриОпределенииПодписокНаСобытияБТС(Подписки) Экспорт + + // БазоваяФункциональность + Подписки.ПриДобавленииОбработчиковОбновленияБТС = Истина; + + // ВыгрузкаЗагрузкаДанных + Подписки.ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке = Истина; + Подписки.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке = Истина; + Подписки.ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке = Истина; + Подписки.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки = Истина; + Подписки.ПриРегистрацииОбработчиковВыгрузкиДанных = Истина; + Подписки.ПриРегистрацииОбработчиковЗагрузкиДанных = Истина; + Подписки.ПослеЗагрузкиДанных = Истина; + Подписки.ПередВыгрузкойДанных = Истина; + Подписки.ПередЗагрузкойДанных = Истина; + Подписки.ПриЗагрузкеПользователяИнформационнойБазы = Истина; + Подписки.ПослеЗагрузкиПользователяИнформационнойБазы = Истина; + Подписки.ПослеЗагрузкиПользователейИнформационнойБазы = Истина; + + // РаботаВМоделиСервиса_БазоваяФункциональностьВМоделиСервиса + Подписки.ПриЗаполненииТаблицыПараметровИБ = Истина; + Подписки.ПриОпределенииПсевдонимаПользователя = Истина; + + // РаботаВМоделиСервиса_ОбменСообщениями + Подписки.ПриОпределенииОбработчиковКаналовСообщений = Истина; + Подписки.РегистрацияИнтерфейсовПринимаемыхСообщений = Истина; + Подписки.РегистрацияИнтерфейсовОтправляемыхСообщений = Истина; + + // РаботаВМоделиСервиса_ОчередьЗаданий + Подписки.ПриПолученииСпискаШаблонов = Истина; + Подписки.ПриОпределенииПсевдонимовОбработчиков = Истина; + Подписки.ПриОпределенииИспользованияРегламентныхЗаданий = Истина; + + // РаботаВМоделиСервиса_ПоставляемыеДанные + Подписки.ПриОпределенииОбработчиковПоставляемыхДанных = Истина; + +КонецПроцедуры + +#Область БазоваяФункциональность + +// См. ОбновлениеИнформационнойБазыБТС.ПриДобавленииОбработчиковОбновления. +Процедура ПриДобавленииОбработчиковОбновленияБТС(Обработчики) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") Тогда + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВМоделиСервиса"); + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса.ПриДобавленииОбработчиковОбновления(Обработчики); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ИнтерфейсOData") Тогда + Обработки["НастройкаСтандартногоИнтерфейсаOData"].ЗарегистрироватьОбработчикиОбновления(Обработчики); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ВыгрузкаЗагрузкаДанных + +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке. +Процедура ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке(Типы) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда + МодульПользователиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСлужебныйВМоделиСервиса"); + МодульПользователиСлужебныйВМоделиСервиса.ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке(Типы); + КонецЕсли; + +КонецПроцедуры + +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке. +Процедура ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы) Экспорт + + СтандартныеПодсистемыСервер.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Банки") Тогда + МодульРаботаСБанками = ОбщегоНазначения.ОбщийМодуль("РаботаСБанками"); + МодульРаботаСБанками.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда + МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); + МодульВариантыОтчетов.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда + МодульДатыЗапретаИзмененияСлужебный = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзмененияСлужебный"); + МодульДатыЗапретаИзмененияСлужебный.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КалендарныеГрафики") Тогда + МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("КалендарныеГрафики"); + МодульКалендарныеГрафики.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы); + КонецЕсли; + +КонецПроцедуры + +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке. +Процедура ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке(Типы) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда + МодульРаботаСФайламиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебный"); + МодульРаботаСФайламиСлужебный.ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке(Типы); + КонецЕсли; + +КонецПроцедуры + +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. +Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт + + СтандартныеПодсистемыСервер.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда + МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); + МодульВариантыОтчетов.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда + МодульВзаимодействия = ОбщегоНазначения.ОбщийМодуль("Взаимодействия"); + МодульВзаимодействия.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВнешниеКомпоненты") Тогда + МодульВнешниеКомпонентыСлужебный = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыСлужебный"); + МодульВнешниеКомпонентыСлужебный.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ВнешниеКомпонентыВМоделиСервиса") Тогда + МодульВнешниеКомпонентыВМоделиСервисаСлужебный = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыВМоделиСервисаСлужебный"); + МодульВнешниеКомпонентыВМоделиСервисаСлужебный.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") Тогда + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВМоделиСервиса"); + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗавершениеРаботыПользователей") Тогда + МодульСоединенияИБ = ОбщегоНазначения.ОбщийМодуль("СоединенияИБ"); + МодульСоединенияИБ.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда + МодульКонтрольВеденияУчетаСлужебный = ОбщегоНазначения.ОбщийМодуль("КонтрольВеденияУчетаСлужебный"); + МодульКонтрольВеденияУчетаСлужебный.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда + МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); + МодульАдресныйКлассификаторСлужебный.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РаботаСФайламиВМоделиСервиса") Тогда + МодульРаботаСФайламиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебныйВМоделиСервиса"); + МодульРаботаСФайламиСлужебныйВМоделиСервиса.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + +КонецПроцедуры + +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. +Процедура ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РаботаСФайламиВМоделиСервиса") Тогда + МодульРаботаСФайламиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебныйВМоделиСервиса"); + МодульРаботаСФайламиСлужебныйВМоделиСервиса.ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда + МодульПользователиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСлужебныйВМоделиСервиса"); + МодульПользователиСлужебныйВМоделиСервиса.ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный"); + МодульУправлениеДоступомСлужебный.ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков); + КонецЕсли; + +КонецПроцедуры + +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковЗагрузкиДанных. +Процедура ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РаботаСФайламиВМоделиСервиса") Тогда + МодульРаботаСФайламиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебныйВМоделиСервиса"); + МодульРаботаСФайламиСлужебныйВМоделиСервиса.ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда + МодульПользователиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСлужебныйВМоделиСервиса"); + МодульПользователиСлужебныйВМоделиСервиса.ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков); + КонецЕсли; + +КонецПроцедуры + +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПередВыгрузкойДанных +Процедура ПередВыгрузкойДанных(Контейнер) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ПередВыгрузкойДанных(Контейнер); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ИнтерфейсOData") Тогда + МодульИнтерфейсODataСлужебный = ОбщегоНазначения.ОбщийМодуль("ИнтерфейсODataСлужебный"); + МодульИнтерфейсODataСлужебный.ПередВыгрузкойДанных(Контейнер); + КонецЕсли; + +КонецПроцедуры + +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПередЗагрузкойДанных +Процедура ПередЗагрузкойДанных(Контейнер) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ПередЗагрузкойДанных(Контейнер); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ИнтерфейсOData") Тогда + МодульИнтерфейсODataСлужебный = ОбщегоНазначения.ОбщийМодуль("ИнтерфейсODataСлужебный"); + МодульИнтерфейсODataСлужебный.ПередЗагрузкойДанных(Контейнер); + КонецЕсли; + +КонецПроцедуры + +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПослеЗагрузкиДанных. +Процедура ПослеЗагрузкиДанных(Контейнер) Экспорт + + ПользователиСлужебный.ПослеЗагрузкиДанных(Контейнер); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда + МодульРегламентныеЗаданияСлужебный = ОбщегоНазначения.ОбщийМодуль("РегламентныеЗаданияСлужебный"); + МодульРегламентныеЗаданияСлужебный.ПослеЗагрузкиДанных(Контейнер); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда + МодульРаботаСКурсамиВалютСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСКурсамиВалютСлужебный"); + МодульРаботаСКурсамиВалютСлужебный.ПослеЗагрузкиДанных(Контейнер); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ПослеЗагрузкиДанных(Контейнер); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.УправлениеДоступомВМоделиСервиса") Тогда + МодульУправлениеДоступомСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебныйВМоделиСервиса"); + МодульУправлениеДоступомСлужебныйВМоделиСервиса.ПослеЗагрузкиДанных(Контейнер); + КонецЕсли; + + ОбновлениеИнформационнойБазыСлужебный.ПослеЗагрузкиДанных(Контейнер); + +КонецПроцедуры + +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗагрузкеПользователяИнформационнойБазы. +Процедура ПриЗагрузкеПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ, Отказ) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда + МодульПользователиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСлужебныйВМоделиСервиса"); + МодульПользователиСлужебныйВМоделиСервиса.ПриЗагрузкеПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ, Отказ); + КонецЕсли; + +КонецПроцедуры + +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПослеЗагрузкиПользователяИнформационнойБазы. +Процедура ПослеЗагрузкиПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда + МодульПользователиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСлужебныйВМоделиСервиса"); + МодульПользователиСлужебныйВМоделиСервиса.ПослеЗагрузкиПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ); + КонецЕсли; + +КонецПроцедуры + +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПослеЗагрузкиПользователейИнформационнойБазы. +Процедура ПослеЗагрузкиПользователейИнформационнойБазы(Контейнер) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда + МодульПользователиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСлужебныйВМоделиСервиса"); + МодульПользователиСлужебныйВМоделиСервиса.ПослеЗагрузкиПользователейИнформационнойБазы(Контейнер); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область РаботаВМоделиСервиса_БазоваяФункциональностьВМоделиСервиса + +// См. РаботаВМоделиСервисаПереопределяемый.ПриЗаполненииТаблицыПараметровИБ. +Процедура ПриЗаполненииТаблицыПараметровИБ(Знач ТаблицаПараметров) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда + МодульРегламентныеЗаданияСлужебный = ОбщегоНазначения.ОбщийМодуль("РегламентныеЗаданияСлужебный"); + МодульРегламентныеЗаданияСлужебный.ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗавершениеРаботыПользователей") Тогда + МодульСоединенияИБ = ОбщегоНазначения.ОбщийМодуль("СоединенияИБ"); + МодульСоединенияИБ.ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров); + КонецЕсли; + +КонецПроцедуры + +// См. РаботаВМоделиСервиса.ПсевдонимПользователяИнформационнойБазы. +Процедура ПриОпределенииПсевдонимаПользователя(ИдентификаторПользователя, Псевдоним) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда + МодульПользователиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСлужебныйВМоделиСервиса"); + МодульПользователиСлужебныйВМоделиСервиса.ПриОпределенииПсевдонимаПользователя(ИдентификаторПользователя, Псевдоним); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область РаботаВМоделиСервиса_ОбменСообщениями + +// См. ОбменСообщениямиПереопределяемый.ПолучитьОбработчикиКаналовСообщений. +Процедура ПриОпределенииОбработчиковКаналовСообщений(Обработчики) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.ПриОпределенииОбработчиковКаналовСообщений(Обработчики); + КонецЕсли; + +КонецПроцедуры + +// См. ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.ЗаполнитьОбработчикиОтправляемыхСообщений. +Процедура РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков); + КонецЕсли; + +КонецПроцедуры + +// См. ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.ЗаполнитьОбработчикиПринимаемыхСообщений. +Процедура РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область РаботаВМоделиСервиса_ОчередьЗаданий + +// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. +Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.БизнесПроцессыИЗадачи") Тогда + МодульБизнесПроцессыИЗадачиСервер = ОбщегоНазначения.ОбщийМодуль("БизнесПроцессыИЗадачиСервер"); + МодульБизнесПроцессыИЗадачиСервер.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда + МодульВзаимодействия = ОбщегоНазначения.ОбщийМодуль("Взаимодействия"); + МодульВзаимодействия.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); + МодульУправлениеЭлектроннойПочтой = ОбщегоНазначения.ОбщийМодуль("УправлениеЭлектроннойПочтой"); + МодульУправлениеЭлектроннойПочтой.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗащитаПерсональныхДанных") Тогда + МодульЗащитаПерсональныхДанных = ОбщегоНазначения.ОбщийМодуль("ЗащитаПерсональныхДанных"); + МодульЗащитаПерсональныхДанных.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); + КонецЕсли; + + ОбновлениеИнформационнойБазыСлужебный.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); + + ПользователиСлужебный.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); + + СтандартныеПодсистемыСервер.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УдалениеПомеченныхОбъектов") Тогда + МодульУдалениеПомеченныхОбъектовСлужебный = ОбщегоНазначения.ОбщийМодуль("УдалениеПомеченныхОбъектовСлужебный"); + МодульУдалениеПомеченныхОбъектовСлужебный.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + МодульУправлениеДоступомСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебныйВМоделиСервиса"); + МодульУправлениеДоступомСлужебныйВМоделиСервиса.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеИтогамиИАгрегатами") Тогда + МодульУправлениеИтогамиИАгрегатамиСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеИтогамиИАгрегатамиСлужебный"); + МодульУправлениеИтогамиИАгрегатамиСлужебный.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РаботаСФайламиВМоделиСервиса") Тогда + МодульРаботаСФайламиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебныйВМоделиСервиса"); + МодульРаботаСФайламиСлужебныйВМоделиСервиса.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда + МодульКонтрольВеденияУчетаСлужебный = ОбщегоНазначения.ОбщийМодуль("КонтрольВеденияУчетаСлужебный"); + МодульКонтрольВеденияУчетаСлужебный.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); + КонецЕсли; + +КонецПроцедуры + +// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков. +Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.БизнесПроцессыИЗадачи") Тогда + МодульБизнесПроцессыИЗадачиСервер = ОбщегоНазначения.ОбщийМодуль("БизнесПроцессыИЗадачиСервер"); + МодульБизнесПроцессыИЗадачиСервер.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВерсионированиеОбъектов") Тогда + МодульВерсионированиеОбъектов = ОбщегоНазначения.ОбщийМодуль("ВерсионированиеОбъектов"); + МодульВерсионированиеОбъектов.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда + МодульОбменДаннымиСервер = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиСервер"); + МодульОбменДаннымиСервер.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда + МодульРаботаСКурсамиВалютСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСКурсамиВалютСлужебный"); + МодульРаботаСКурсамиВалютСлужебный.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КалендарныеГрафики") Тогда + МодульКалендарныеГрафикиСлужебный = ОбщегоНазначения.ОбщийМодуль("КалендарныеГрафикиСлужебный"); + МодульКалендарныеГрафикиСлужебный.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РаботаСФайламиВМоделиСервиса") Тогда + МодульРаботаСФайламиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебныйВМоделиСервиса"); + МодульРаботаСФайламиСлужебныйВМоделиСервиса.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); + КонецЕсли; + +КонецПроцедуры + +// См. ОчередьЗаданийПереопределяемый.ПриОпределенииИспользованияРегламентныхЗаданий. +Процедура ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РаботаСФайламиВМоделиСервиса") Тогда + МодульРаботаСФайламиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебныйВМоделиСервиса"); + МодульРаботаСФайламиСлужебныйВМоделиСервиса.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда + МодульРегламентныеЗаданияСлужебный = ОбщегоНазначения.ОбщийМодуль("РегламентныеЗаданияСлужебный"); + МодульРегламентныеЗаданияСлужебный.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область РаботаВМоделиСервиса_ПоставляемыеДанные + +// См. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных. +Процедура ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда + МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); + МодульАдресныйКлассификаторСлужебный.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда + МодульРаботаСКурсамиВалютСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСКурсамиВалютСлужебный"); + МодульРаботаСКурсамиВалютСлужебный.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") Тогда + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВМоделиСервиса"); + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область ОбработчикиСобытийБИП +// Обработка программных событий, возникающих в подсистемах ИПП. +// Только для вызовов из библиотеки ИПП в БСП. + +// Определяет события, на которые подписана эта библиотека. +// +// Параметры: +// Подписки - Структура - Ключами свойств структуры являются имена событий, на которые +// подписана эта библиотека. +// +Процедура ПриОпределенииПодписокНаСобытияБИП(Подписки) Экспорт + + // БазоваяФункциональность + Подписки.ПриИзмененииДанныхАутентификацииИнтернетПоддержки = Истина; + + // РаботаСКлассификаторами + Подписки.ПриДобавленииКлассификаторов = Истина; + Подписки.ПриЗагрузкеКлассификатора = Истина; + Подписки.ПриОбработкеОбластиДанных = Истина; + +КонецПроцедуры + +#Область БазоваяФункциональность + +// См. ИнтернетПоддержкаПользователейПереопределяемый.ПриИзмененииДанныхАутентификацииИнтернетПоддержки. +Процедура ПриИзмененииДанныхАутентификацииИнтернетПоддержки(ДанныеПользователя) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда + МодульРаботаСКурсамиВалют = ОбщегоНазначения.ОбщийМодуль("РаботаСКурсамиВалют"); + МодульРаботаСКурсамиВалют.ПриИзмененииДанныхАутентификацииИнтернетПоддержки(ДанныеПользователя); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область РаботаСКлассификаторами + +// См. РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов. +// +Процедура ПриДобавленииКлассификаторов(Классификаторы) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Банки") Тогда + МодульЗагрузкаКлассификатораБанков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗагрузкаКлассификатораБанков"); + МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами"); + МодульЗагрузкаКлассификатораБанков.ПриДобавленииКлассификаторов(Классификаторы, МодульРаботаСКлассификаторами.ОписаниеКлассификатора()); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда + МодульЗагрузкаКурсовВалют = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗагрузкаКурсовВалют"); + МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами"); + МодульЗагрузкаКурсовВалют.ПриДобавленииКлассификаторов(Классификаторы, МодульРаботаСКлассификаторами.ОписаниеКлассификатора()); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КалендарныеГрафики") Тогда + МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("КалендарныеГрафики"); + МодульКалендарныеГрафики.ПриДобавленииКлассификаторов(Классификаторы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") + И Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") <> Неопределено Тогда + МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами"); + МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами"); + МодульРаботаСАдресами.ПриДобавленииКлассификаторов(Классификаторы, МодульРаботаСКлассификаторами.ОписаниеКлассификатора()); + КонецЕсли; + +КонецПроцедуры + +// См. РаботаСКлассификаторамиПереопределяемый.ПриЗагрузкеКлассификатора. +// +Процедура ПриЗагрузкеКлассификатора(Идентификатор, Версия, Адрес, Обработан, ДополнительныеПараметры) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Банки") Тогда + МодульЗагрузкаКлассификатораБанков = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗагрузкаКлассификатораБанков"); + МодульЗагрузкаКлассификатораБанков.ПриЗагрузкеКлассификатора(Идентификатор, Версия, Адрес, Обработан, ДополнительныеПараметры); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда + МодульЗагрузкаКурсовВалют = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗагрузкаКурсовВалют"); + МодульЗагрузкаКурсовВалют.ПриЗагрузкеКлассификатора(Идентификатор, Версия, Адрес, Обработан, ДополнительныеПараметры); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КалендарныеГрафики") Тогда + МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("КалендарныеГрафики"); + МодульКалендарныеГрафики.ПриЗагрузкеКлассификатора(Идентификатор, Версия, Адрес, Обработан, ДополнительныеПараметры); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") + И Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") <> Неопределено Тогда + МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами"); + МодульРаботаСАдресами.ПриЗагрузкеКлассификатора(Идентификатор, Версия, Адрес, Обработан, ДополнительныеПараметры); + КонецЕсли; + +КонецПроцедуры + +// См. РаботаСКлассификаторамиВМоделиСервисаПереопределяемый.ПриОбработкеОбластиДанных. +Процедура ПриОбработкеОбластиДанных(Идентификатор, Версия, ДополнительныеПараметры) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КалендарныеГрафики") Тогда + Возврат; + КонецЕсли; + + МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("КалендарныеГрафики"); + Если Идентификатор <> МодульКалендарныеГрафики.ИдентификаторКлассификатора() Тогда + Возврат; + КонецЕсли; + + Если Не ДополнительныеПараметры.Свойство(Идентификатор) Тогда + Возврат; + КонецЕсли; + + ПараметрыОбновления = ДополнительныеПараметры[Идентификатор]; + + МодульКалендарныеГрафики.ЗаполнитьДанныеЗависимыеОтПроизводственныхКалендарей(ПараметрыОбновления.ТаблицаИзменений); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#КонецОбласти #Область СлужебныйПрограммныйИнтерфейс #Область БазоваяФункциональность +// См. ПодсистемыКонфигурацииПереопределяемый.ПриДобавленииПодсистем. +Процедура ПриДобавленииПодсистем(МодулиПодсистем) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриДобавленииПодсистем Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриДобавленииПодсистем(МодулиПодсистем); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриДобавленииПодсистем Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриДобавленииПодсистем(МодулиПодсистем); + КонецЕсли; + +КонецПроцедуры + +// См. СтандартныеПодсистемыСервер.УстановкаПараметровСеанса. +Процедура ПриУстановкеПараметровСеанса(Параметры) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда + МодульПользователиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСлужебныйВМоделиСервиса"); + МодульПользователиСлужебныйВМоделиСервиса.ПриУстановкеПараметровСеанса(Параметры); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриУстановкеПараметровСеанса Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриУстановкеПараметровСеанса(Параметры); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриУстановкеПараметровСеанса Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриУстановкеПараметровСеанса(Параметры); + КонецЕсли; + +КонецПроцедуры + // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса. Процедура ПриДобавленииОбработчиковУстановкиПараметровСеанса(Обработчики) Экспорт @@ -52,6 +729,16 @@ МодульУправлениеДоступомСлужебный.ПриДобавленииОбработчиковУстановкиПараметровСеанса(Обработчики); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриДобавленииОбработчиковУстановкиПараметровСеанса Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриДобавленииОбработчиковУстановкиПараметровСеанса(Обработчики); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриДобавленииОбработчиковУстановкиПараметровСеанса Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриДобавленииОбработчиковУстановкиПараметровСеанса(Обработчики); + КонецЕсли; + КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. @@ -98,10 +785,20 @@ КонецЕсли; ПользователиСлужебный.ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок); - ИнтеграцияСТехнологиейСервиса.ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок); + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриДобавленииИсключенийПоискаСсылок Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок); + КонецЕсли; + ОбновлениеИнформационнойБазыСлужебный.ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок); СтандартныеПодсистемыСервер.ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок); + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриДобавленииИсключенийПоискаСсылок Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок); + КонецЕсли; + КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПереименованийОбъектовМетаданных. @@ -174,6 +871,16 @@ МодульЭлектроннаяПодписьСлужебный.ПриДобавленииПереименованийОбъектовМетаданных(Итог); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриДобавленииПереименованийОбъектовМетаданных Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриДобавленииПереименованийОбъектовМетаданных(Итог); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриДобавленииПереименованийОбъектовМетаданных Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриДобавленииПереименованийОбъектовМетаданных(Итог); + КонецЕсли; + КонецПроцедуры // См. РегистрСведений.ПараметрыРаботыВерсийРасширений.ЗаполнитьВсеПараметрыРаботыРасширений. @@ -194,6 +901,16 @@ МодульВариантыОтчетов.ПриЗаполненииВсехПараметровРаботыРасширений(); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииВсехПараметровРаботыРасширений Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗаполненииВсехПараметровРаботыРасширений(); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗаполненииВсехПараметровРаботыРасширений Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗаполненииВсехПараметровРаботыРасширений(); + КонецЕсли; + КонецПроцедуры // См. РегистрСведений.ПараметрыРаботыВерсийРасширений.ОчиститьВсеПараметрыРаботыРасширений. @@ -204,6 +921,16 @@ МодульВариантыОтчетов.ПриОчисткеВсехПараметровРаботыРасширений(); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОчисткеВсехПараметровРаботыРасширений Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОчисткеВсехПараметровРаботыРасширений(); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОчисткеВсехПараметровРаботыРасширений Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОчисткеВсехПараметровРаботыРасширений(); + КонецЕсли; + КонецПроцедуры // См. СтандартныеПодсистемыСервер.ПриОтправкеДанныхГлавному. @@ -224,6 +951,11 @@ МодульВнешниеКомпонентыВМоделиСервисаСлужебный.ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель); КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель); + КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда МодульДатыЗапретаИзмененияСлужебный = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзмененияСлужебный"); МодульДатыЗапретаИзмененияСлужебный.ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель); @@ -242,7 +974,15 @@ МодульУправлениеДоступомСлужебный.ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель); КонецЕсли; - ИнтеграцияСТехнологиейСервиса.ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель); + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОтправкеДанныхГлавному Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОтправкеДанныхГлавному Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель); + КонецЕсли; КонецПроцедуры @@ -282,7 +1022,15 @@ МодульУправлениеДоступомСлужебный.ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза, Получатель); КонецЕсли; - ИнтеграцияСТехнологиейСервиса.ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза, Получатель); + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОтправкеДанныхПодчиненному Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза, Получатель); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОтправкеДанныхПодчиненному Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза, Получатель); + КонецЕсли; КонецПроцедуры @@ -336,7 +1084,15 @@ МодульУправлениеДоступомСлужебный.ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); КонецЕсли; - ИнтеграцияСТехнологиейСервиса.ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПолученииДанныхОтГлавного Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПолученииДанныхОтГлавного Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); + КонецЕсли; КонецПроцедуры @@ -358,6 +1114,11 @@ МодульВнешниеКомпонентыВМоделиСервисаСлужебный.ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); + КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда МодульДатыЗапретаИзмененияСлужебный = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзмененияСлужебный"); МодульДатыЗапретаИзмененияСлужебный.ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); @@ -390,7 +1151,15 @@ МодульУправлениеДоступомСлужебный.ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); КонецЕсли; - ИнтеграцияСТехнологиейСервиса.ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПолученииДанныхОтПодчиненного Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПолученииДанныхОтПодчиненного Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); + КонецЕсли; КонецПроцедуры @@ -404,6 +1173,16 @@ МодульУправлениеДоступомСлужебный.ПослеПолученияДанных(Отправитель, Отказ, ПолучениеИзГлавногоУзла); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПослеПолученияДанных Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПослеПолученияДанных(Отправитель, Отказ, ПолучениеИзГлавногоУзла); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПослеПолученияДанных Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПослеПолученияДанных(Отправитель, Отказ, ПолучениеИзГлавногоУзла); + КонецЕсли; + КонецПроцедуры // См. РаботаВМоделиСервисаПереопределяемый.ПриВключенииРазделенияПоОбластямДанных. @@ -419,34 +1198,24 @@ МодульОбменДаннымиСервер.ПриВключенииРазделенияПоОбластямДанных(); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда - МодульОчередьЗаданийСлужебный = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебный"); - МодульОчередьЗаданийСлужебный.ПриВключенииРазделенияПоОбластямДанных(); + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриВключенииРазделенияПоОбластямДанных Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриВключенииРазделенияПоОбластямДанных(); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульОчередьЗаданийСлужебныйРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебныйРазделениеДанных"); - МодульОчередьЗаданийСлужебныйРазделениеДанных.ПриВключенииРазделенияПоОбластямДанных(); - - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.ПриВключенииРазделенияПоОбластямДанных(); + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриВключенииРазделенияПоОбластямДанных Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриВключенииРазделенияПоОбластямДанных(); КонецЕсли; - ИнтеграцияСТехнологиейСервиса.ПриВключенииРазделенияПоОбластямДанных(); - КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов. Процедура ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(Знач СтруктураПоддерживаемыхВерсий) Экспорт - ИнтеграцияСТехнологиейСервиса.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(СтруктураПоддерживаемыхВерсий); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменСообщениями") Тогда - МодульИнтерфейсыСообщенийВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ИнтерфейсыСообщенийВМоделиСервиса"); - МодульИнтерфейсыСообщенийВМоделиСервиса.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(СтруктураПоддерживаемыхВерсий); - - МодульОбменСообщениямиВнутренний = ОбщегоНазначения.ОбщийМодуль("ОбменСообщениямиВнутренний"); - МодульОбменСообщениямиВнутренний.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(СтруктураПоддерживаемыхВерсий); + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(СтруктураПоддерживаемыхВерсий); КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда @@ -454,9 +1223,14 @@ МодульОбменДаннымиСервер.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(СтруктураПоддерживаемыхВерсий); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РезервноеКопированиеОбластейДанных") Тогда - МодульРезервноеКопированиеОбластейДанных = ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеОбластейДанных"); - МодульРезервноеКопированиеОбластейДанных.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(СтруктураПоддерживаемыхВерсий); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(СтруктураПоддерживаемыхВерсий); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(СтруктураПоддерживаемыхВерсий); КонецЕсли; КонецПроцедуры @@ -464,7 +1238,10 @@ // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиентаПриЗапуске. Процедура ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры) Экспорт - ИнтеграцияСТехнологиейСервиса.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры); + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриДобавленииПараметровРаботыКлиентаПриЗапуске Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры); + КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); @@ -486,6 +1263,11 @@ МодульОбменДаннымиСервер.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры); КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры); + КонецЕсли; + ОбновлениеИнформационнойБазыСлужебный.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры); Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда @@ -498,11 +1280,6 @@ МодульОценкаПроизводительностиСлужебный.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры); - КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Банки") Тогда МодульРаботаСБанками = ОбщегоНазначения.ОбщийМодуль("РаботаСБанками"); МодульРаботаСБанками.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры); @@ -533,12 +1310,20 @@ МодульЦентрМониторингаСлужебный.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриДобавленииПараметровРаботыКлиентаПриЗапуске Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры); + КонецЕсли; + КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиента. Процедура ПриДобавленииПараметровРаботыКлиента(Параметры) Экспорт - ИнтеграцияСТехнологиейСервиса.ПриДобавленииПараметровРаботыКлиента(Параметры); + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриДобавленииПараметровРаботыКлиента Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриДобавленииПараметровРаботыКлиента(Параметры); + КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); @@ -560,6 +1345,11 @@ МодульОбменДаннымиСервер.ПриДобавленииПараметровРаботыКлиента(Параметры); КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.ПриДобавленииПараметровРаботыКлиента(Параметры); + КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации"); МодульОбновлениеКонфигурации.ПриДобавленииПараметровРаботыКлиента(Параметры); @@ -577,11 +1367,6 @@ ПользователиСлужебный.ПриДобавленииПараметровРаботыКлиента(Параметры); - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.ПриДобавленииПараметровРаботыКлиента(Параметры); - КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайламиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебный"); МодульРаботаСФайламиСлужебный.ПриДобавленииПараметровРаботыКлиента(Параметры); @@ -592,11 +1377,6 @@ МодульРезервноеКопированиеИБСервер.ПриДобавленииПараметровРаботыКлиента(Параметры); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РезервноеКопированиеОбластейДанных") Тогда - МодульРезервноеКопированиеОбластейДанных = ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеОбластейДанных"); - МодульРезервноеКопированиеОбластейДанных.ПриДобавленииПараметровРаботыКлиента(Параметры); - КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗавершениеРаботыПользователей") Тогда МодульСоединенияИБ = ОбщегоНазначения.ОбщийМодуль("СоединенияИБ"); МодульСоединенияИБ.ПриДобавленииПараметровРаботыКлиента(Параметры); @@ -614,12 +1394,62 @@ МодульЭлектроннаяПодписьСлужебный.ПриДобавленииПараметровРаботыКлиента(Параметры); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриДобавленииПараметровРаботыКлиента Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриДобавленииПараметровРаботыКлиента(Параметры); + КонецЕсли; + +КонецПроцедуры + +// См. СтандартныеПодсистемыСервер.ПередЗапускомПрограммы +Процедура ПередЗапускомПрограммы() Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПередЗапускомПрограммы Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПередЗапускомПрограммы(); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПередЗапускомПрограммы Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПередЗапускомПрограммы(); + КонецЕсли; + КонецПроцедуры #КонецОбласти #Область ВариантыОтчетов +// См. ВариантыОтчетовПереопределяемый.ПриОпределенииНастроек. +Процедура ПриОпределенииНастроекВариантовОтчетов(Настройки) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииНастроекВариантовОтчетов Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииНастроекВариантовОтчетов(Настройки); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииНастроекВариантовОтчетов Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииНастроекВариантовОтчетов(Настройки); + КонецЕсли; + +КонецПроцедуры + +// См. ВариантыОтчетовПереопределяемый.ОпределитьРазделыСВариантамиОтчетов. +Процедура ПриОпределенииРазделовСВариантамиОтчетов(СписокРазделов) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииРазделовСВариантамиОтчетов Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииРазделовСВариантамиОтчетов(СписокРазделов); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииРазделовСВариантамиОтчетов Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииРазделовСВариантамиОтчетов(СписокРазделов); + КонецЕсли; + +КонецПроцедуры + // См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов. Процедура ПриНастройкеВариантовОтчетов(Настройки) Экспорт @@ -687,6 +1517,31 @@ МодульРезультатыПроверкиУчета.ПриНастройкеВариантовОтчетов(Настройки); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриНастройкеВариантовОтчетов Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриНастройкеВариантовОтчетов(Настройки); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриНастройкеВариантовОтчетов Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриНастройкеВариантовОтчетов(Настройки); + КонецЕсли; + +КонецПроцедуры + +// См. ВариантыОтчетовПереопределяемый.ЗарегистрироватьИзмененияКлючейВариантовОтчетов. +Процедура ПриИзмененииКлючейВариантовОтчетов(Изменения) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриИзмененииКлючейВариантовОтчетов Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриИзмененииКлючейВариантовОтчетов(Изменения); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриИзмененииКлючейВариантовОтчетов Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриИзмененииКлючейВариантовОтчетов(Изменения); + КонецЕсли; + КонецПроцедуры // См. ВариантыОтчетовПереопределяемый.ОпределитьОбъектыСКомандамиОтчетов. @@ -697,8 +1552,19 @@ МодульАнкетирование.ПриОпределенииОбъектовСКомандамиОтчетов(Объекты); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииОбъектовСКомандамиОтчетов Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииОбъектовСКомандамиОтчетов(Объекты); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииОбъектовСКомандамиОтчетов Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииОбъектовСКомандамиОтчетов(Объекты); + КонецЕсли; + КонецПроцедуры +// См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов. Процедура ПередДобавлениемКомандОтчетов(КомандыОтчетов, НастройкиФормы, СтандартнаяОбработка) Экспорт Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОтчетОДвиженияхДокумента") Тогда @@ -711,6 +1577,76 @@ МодульРезультатыПроверкиУчета.ПередДобавлениемКомандОтчетов(КомандыОтчетов, НастройкиФормы, СтандартнаяОбработка); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПередДобавлениемКомандОтчетов Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПередДобавлениемКомандОтчетов(КомандыОтчетов, НастройкиФормы, СтандартнаяОбработка); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПередДобавлениемКомандОтчетов Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПередДобавлениемКомандОтчетов(КомандыОтчетов, НастройкиФормы, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +// См. ОтчетыПереопределяемый.ДополнитьСвязиОбъектовМетаданных. +Процедура ПриДополненииСвязиОбъектовМетаданных(Результат) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриДополненииСвязиОбъектовМетаданных Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриДополненииСвязиОбъектовМетаданных(Результат); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриДополненииСвязиОбъектовМетаданных Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриДополненииСвязиОбъектовМетаданных(Результат); + КонецЕсли; + +КонецПроцедуры + +// См. ОтчетыПереопределяемый.ПриОпределенииПараметровВыбора. +Процедура ПриОпределенииПараметровВыбораВариантыОтчетов(Форма, СвойстваНастройки) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииПараметровВыбораВариантыОтчетов Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииПараметровВыбораВариантыОтчетов(Форма, СвойстваНастройки); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииПараметровВыбораВариантыОтчетов Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииПараметровВыбораВариантыОтчетов(Форма, СвойстваНастройки); + КонецЕсли; + +КонецПроцедуры + +// См. ОтчетыПереопределяемый.ПриСозданииНаСервере. +Процедура ПриСозданииНаСервереВариантыОтчетов(Форма, Отказ, СтандартнаяОбработка) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриСозданииНаСервереВариантыОтчетов Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриСозданииНаСервереВариантыОтчетов(Форма, Отказ, СтандартнаяОбработка); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриСозданииНаСервереВариантыОтчетов Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриСозданииНаСервереВариантыОтчетов(Форма, Отказ, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +// См. ОтчетыПереопределяемый.ПередЗагрузкойВариантаНаСервере. +Процедура ПередЗагрузкойВариантаНаСервере(Форма, НовыеНастройкиКД) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПередЗагрузкойВариантаНаСервере Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПередЗагрузкойВариантаНаСервере(Форма, НовыеНастройкиКД); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПередЗагрузкойВариантаНаСервере Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПередЗагрузкойВариантаНаСервере(Форма, НовыеНастройкиКД); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -803,9 +1739,9 @@ МодульУправлениеСвойствамиСлужебный.ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменСообщениями") Тогда - МодульОбменСообщениямиВнутренний = ОбщегоНазначения.ОбщийМодуль("ОбменСообщениямиВнутренний"); - МодульОбменСообщениямиВнутренний.ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты); + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииОбъектовСРедактируемымиРеквизитами Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты); КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда @@ -818,6 +1754,11 @@ МодульЭлектроннаяПодписьСлужебный.ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииОбъектовСРедактируемымиРеквизитами Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -832,6 +1773,16 @@ МодульЗащитаПерсональныхДанных.ПриЗаполненииРазделовДатЗапретаИзменения(Разделы); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииРазделовДатЗапретаИзменения Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗаполненииРазделовДатЗапретаИзменения(Разделы); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗаполненииРазделовДатЗапретаИзменения Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗаполненииРазделовДатЗапретаИзменения(Разделы); + КонецЕсли; + КонецПроцедуры // См. ДатыЗапретаИзмененияПереопределяемый.ПриЗаполненииИсточниковДанныхДляПроверкиЗапретаИзменения. @@ -842,6 +1793,343 @@ МодульЗащитаПерсональныхДанных.ПриЗаполненииИсточниковДанныхДляПроверкиЗапретаИзменения(ИсточникиДанных); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииИсточниковДанныхДляПроверкиЗапретаИзменения Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗаполненииИсточниковДанныхДляПроверкиЗапретаИзменения(ИсточникиДанных); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗаполненииИсточниковДанныхДляПроверкиЗапретаИзменения Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗаполненииИсточниковДанныхДляПроверкиЗапретаИзменения(ИсточникиДанных); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ДополнительныеОтчетыИОбработки + +// Вызывается при определении наличия у текущего пользователя права на добавление дополнительного +// отчета или обработки в область данных. +// +// Параметры: +// ДополнительнаяОбработка - СправочникОбъект.ДополнительныеОтчетыИОбработки, элемент справочника, +// который записывается пользователем. +// Результат - Булево, в этот параметр в данной процедуре устанавливается флаг наличия права, +// СтандартнаяОбработка - Булево, в этот параметр в данной процедуре устанавливается флаг выполнения +// стандартной обработки проверки права. +// +Процедура ПриПроверкеПраваДобавления(Знач ДополнительнаяОбработка, Результат, СтандартнаяОбработка) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") Тогда + + МодульДополнительныеОтчетыИОбработкиВАвтономномРежиме = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВАвтономномРежиме"); + МодульДополнительныеОтчетыИОбработкиВАвтономномРежиме.ПриПроверкеПраваДобавления(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); + + Если СтандартнаяОбработка Тогда + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВМоделиСервиса"); + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса.ПриПроверкеПраваДобавления(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); + КонецЕсли; + + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПроверкеПраваДобавления Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриПроверкеПраваДобавления(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПроверкеПраваДобавления Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриПроверкеПраваДобавления(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +// Вызывается при проверке возможности загрузки дополнительного отчета или обработки из файла. +// +// Параметры: +// ДополнительнаяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки, +// Результат - Булево, в этот параметр в данной процедуре устанавливается флаг наличия возможности +// загрузки дополнительного отчета или обработки из файла, +// СтандартнаяОбработка - Булево, в этот параметр в данной процедуре устанавливается флаг выполнения +// стандартной обработки проверки возможности загрузки дополнительного отчета или обработки из файла. +// +Процедура ПриПроверкеВозможностиЗагрузкиОбработкиИзФайла(Знач ДополнительнаяОбработка, Результат, СтандартнаяОбработка) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") Тогда + + МодульДополнительныеОтчетыИОбработкиВАвтономномРежиме = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВАвтономномРежиме"); + МодульДополнительныеОтчетыИОбработкиВАвтономномРежиме.ПриПроверкеВозможностиЗагрузкиОбработкиИзФайла(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); + + Если СтандартнаяОбработка Тогда + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВМоделиСервиса"); + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса.ПриПроверкеВозможностиЗагрузкиОбработкиИзФайла(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); + КонецЕсли; + + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПроверкеВозможностиЗагрузкиОбработкиИзФайла Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриПроверкеВозможностиЗагрузкиОбработкиИзФайла(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПроверкеВозможностиЗагрузкиОбработкиИзФайла Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриПроверкеВозможностиЗагрузкиОбработкиИзФайла(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +// Вызывается при проверке возможности выгрузки дополнительного отчета или обработки в файл. +// +// Параметры: +// ДополнительнаяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки, +// Результат - Булево, в этот параметр в данной процедуре устанавливается флаг наличия возможности +// выгрузки дополнительного отчета или обработки в файл, +// СтандартнаяОбработка - Булево, в этот параметр в данной процедуре устанавливается флаг выполнения +// стандартной обработки проверки возможности выгрузки дополнительного отчета или обработки в файл. +// +Процедура ПриПроверкеВозможностиВыгрузкиОбработкиВФайл(Знач ДополнительнаяОбработка, Результат, СтандартнаяОбработка) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") Тогда + + МодульДополнительныеОтчетыИОбработкиВАвтономномРежиме = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВАвтономномРежиме"); + МодульДополнительныеОтчетыИОбработкиВАвтономномРежиме.ПриПроверкеВозможностиВыгрузкиОбработкиВФайл(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); + + Если СтандартнаяОбработка Тогда + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВМоделиСервиса"); + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса.ПриПроверкеВозможностиВыгрузкиОбработкиВФайл(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); + КонецЕсли; + + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПроверкеВозможностиВыгрузкиОбработкиВФайл Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриПроверкеВозможностиВыгрузкиОбработкиВФайл(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПроверкеВозможностиВыгрузкиОбработкиВФайл Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриПроверкеВозможностиВыгрузкиОбработкиВФайл(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +// Заполняет виды публикации дополнительных отчетов и обработок, недоступные для использования +// в текущей модели информационной базы. +// +// Параметры: +// НедоступныеВидыПубликации - Массив строк. +// +Процедура ПриЗаполненииНедоступныхВидовПубликации(Знач НедоступныеВидыПубликации) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") Тогда + + МодульДополнительныеОтчетыИОбработкиВАвтономномРежиме = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВАвтономномРежиме"); + МодульДополнительныеОтчетыИОбработкиВАвтономномРежиме.ПриЗаполненииНедоступныхВидовПубликации(НедоступныеВидыПубликации); + + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВМоделиСервиса"); + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса.ПриЗаполненииНедоступныхВидовПубликации(НедоступныеВидыПубликации); + + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииНедоступныхВидовПубликации Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗаполненииНедоступныхВидовПубликации(НедоступныеВидыПубликации); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗаполненииНедоступныхВидовПубликации Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗаполненииНедоступныхВидовПубликации(НедоступныеВидыПубликации); + КонецЕсли; + +КонецПроцедуры + +// Вызывается из события ПередЗаписью справочника +// ДополнительныеОтчетыИОбработки, выполняет проверку правомерности изменения реквизитов +// элементов данного справочника для дополнительных обработок, полученных из +// каталога дополнительных обработок менеджера сервиса. +// +// Параметры: +// Источник - СправочникОбъект.ДополнительныеОтчетыИОбработки, +// Отказ - булево, флаг отказа от выполнения записи элемента справочника. +// +Процедура ПередЗаписьюДополнительнойОбработки(Источник, Отказ) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") Тогда + + МодульДополнительныеОтчетыИОбработкиВАвтономномРежиме = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВАвтономномРежиме"); + МодульДополнительныеОтчетыИОбработкиВАвтономномРежиме.ПередЗаписьюДополнительнойОбработки(Источник, Отказ); + + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВМоделиСервиса"); + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса.ПередЗаписьюДополнительнойОбработки(Источник, Отказ); + + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПередЗаписьюДополнительнойОбработки Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПередЗаписьюДополнительнойОбработки(Источник, Отказ); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПередЗаписьюДополнительнойОбработки Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПередЗаписьюДополнительнойОбработки(Источник, Отказ); + КонецЕсли; + +КонецПроцедуры + +// Вызывается из события ПередУдалением справочника ДополнительныеОтчетыИОбработки. +// +// Параметры: +// Источник - СправочникОбъект.ДополнительныеОтчетыИОбработки, +// Отказ - булево, флаг отказа от выполнения удаления элемента справочника из информационной базы. +// +Процедура ПередУдалениемДополнительнойОбработки(Источник, Отказ) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") Тогда + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВМоделиСервиса"); + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса.ПередУдалениемДополнительнойОбработки(Источник, Отказ); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПередУдалениемДополнительнойОбработки Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПередУдалениемДополнительнойОбработки(Источник, Отказ); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПередУдалениемДополнительнойОбработки Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПередУдалениемДополнительнойОбработки(Источник, Отказ); + КонецЕсли; + +КонецПроцедуры + +// Вызывается при получении регистрационных данных для нового дополнительного отчета +// или обработки. +// +Процедура ПриПолученииРегистрационныхДанных(Объект, РегистрационныеДанные, СтандартнаяОбработка) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") Тогда + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВМоделиСервиса"); + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса.ПриПолученииРегистрационныхДанных(Объект, РегистрационныеДанные, СтандартнаяОбработка); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПолученииРегистрационныхДанных Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриПолученииРегистрационныхДанных(Объект, РегистрационныеДанные, СтандартнаяОбработка); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПолученииРегистрационныхДанных Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриПолученииРегистрационныхДанных(Объект, РегистрационныеДанные, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +// Вызывается при подключении внешней обработки. +// +// Параметры: +// Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки, +// СтандартнаяОбработка - Булево, флаг необходимости выполнения стандартной обработки подключения +// внешней обработки, +// Результат - Строка - имя подключенного внешнего отчета или обработки (в том случае, если в обработчике +// для параметра СтандартнаяОбработка было установлено значение Ложь). +// +Процедура ПриПодключенииВнешнейОбработки(Знач Ссылка, СтандартнаяОбработка, Результат) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") Тогда + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВМоделиСервиса"); + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса.ПриПодключенииВнешнейОбработки(Ссылка, СтандартнаяОбработка, Результат); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПодключенииВнешнейОбработки Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриПодключенииВнешнейОбработки(Ссылка, СтандартнаяОбработка, Результат); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПодключенииВнешнейОбработки Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриПодключенииВнешнейОбработки(Ссылка, СтандартнаяОбработка, Результат); + КонецЕсли; + +КонецПроцедуры + +// Вызывается при создании объекта внешней обработки. +// +// Параметры: +// Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки, +// СтандартнаяОбработка - Булево, флаг необходимости выполнения стандартной обработки подключения +// внешней обработки, +// Результат - ВнешняяОбработкаОбъект, ВнешнийОтчетОбъект - объект подключенного внешнего отчета или +// обработки (в том случае, если в обработчике для параметра СтандартнаяОбработка было установлено значение Ложь). +// +Процедура ПриСозданииВнешнейОбработки(Знач Ссылка, СтандартнаяОбработка, Результат) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") Тогда + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВМоделиСервиса"); + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса.ПриСозданииВнешнейОбработки(Ссылка, СтандартнаяОбработка, Результат); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриСозданииВнешнейОбработки Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриСозданииВнешнейОбработки(Ссылка, СтандартнаяОбработка, Результат); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриСозданииВнешнейОбработки Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриСозданииВнешнейОбработки(Ссылка, СтандартнаяОбработка, Результат); + КонецЕсли; + +КонецПроцедуры + +// Вызывается перед записью изменений регламентного задания дополнительных отчетов и обработок в модели сервиса. +// +// Параметры: +// Объект - СправочникОбъект.ДополнительныеОтчетыИОбработки - объект дополнительного отчета или обработки. +// Команда - СправочникТабличнаяЧастьСтрока.ДополнительныеОтчетыИОбработки.Команды - описание команды. +// Задание - РегламентноеЗадание, СтрокаТаблицыЗначений - описание регламентного задания. +// См. описание возвращаемого значения функции РегламентныеЗаданияСервер.Задание(). +// Изменения - Структура - значения реквизитов задания, которые необходимо изменить. +// См. описание 2го параметра процедуры РегламентныеЗаданияСервер.ИзменитьЗадание(). +// Если установить Неопределено, то регламентное задание не будет изменено. +// +Процедура ПередОбновлениемЗадания(Объект, Команда, Задание, Изменения) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") Тогда + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВМоделиСервиса"); + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса.ПередОбновлениемЗадания(Объект, Команда, Задание, Изменения); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПередОбновлениемЗадания Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПередОбновлениемЗадания(Объект, Команда, Задание, Изменения); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПередОбновлениемЗадания Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПередОбновлениемЗадания(Объект, Команда, Задание, Изменения); + КонецЕсли; + +КонецПроцедуры + +// Устанавливает режим работы для доп. отчета или обработки. +// +// Параметры: +// ПоставляемаяОбработка - СправочникСсылка.ПоставляемыеДополнительныеОтчетыИОбработки - доп отчет +// или обработка для которой необходимо установить режим работы. +// РежимПодключения - ОпределяемыйТип.БезопасныйРежим - Режим работы доп. отчета или обработки. +// +Процедура ПриУстановкеРежимаПодключенияДополнительногоОтчетаИлиОбработкиВОбластиДанных(ПоставляемаяОбработка, РежимПодключения) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриУстановкеРежимаПодключенияДополнительногоОтчетаИлиОбработкиВОбластиДанных Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриУстановкеРежимаПодключенияДополнительногоОтчетаИлиОбработкиВОбластиДанных(ПоставляемаяОбработка, РежимПодключения); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриУстановкеРежимаПодключенияДополнительногоОтчетаИлиОбработкиВОбластиДанных Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриУстановкеРежимаПодключенияДополнительногоОтчетаИлиОбработкиВОбластиДанных(ПоставляемаяОбработка, РежимПодключения); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -864,7 +2152,6 @@ МодульРаботаСКурсамиВалют.ПриОпределенииСправочниковДляЗагрузкиДанных(ЗагружаемыеСправочники); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.БизнесПроцессыИЗадачи") Тогда МодульБизнесПроцессыИЗадачиСервер = ОбщегоНазначения.ОбщийМодуль("БизнесПроцессыИЗадачиСервер"); МодульБизнесПроцессыИЗадачиСервер.ПриОпределенииСправочниковДляЗагрузкиДанных(ЗагружаемыеСправочники); @@ -875,14 +2162,9 @@ МодульРаботаСБанками.ПриОпределенииСправочниковДляЗагрузкиДанных(ЗагружаемыеСправочники); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда - МодульОчередьЗаданийСлужебный = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебный"); - МодульОчередьЗаданийСлужебный.ПриОпределенииСправочниковДляЗагрузкиДанных(ЗагружаемыеСправочники); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.ПриОпределенииСправочниковДляЗагрузкиДанных(ЗагружаемыеСправочники); + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииСправочниковДляЗагрузкиДанных Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииСправочниковДляЗагрузкиДанных(ЗагружаемыеСправочники); КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда @@ -905,6 +2187,11 @@ МодульРаботаСФайламиСлужебный.ПриОпределенииСправочниковДляЗагрузкиДанных(ЗагружаемыеСправочники); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииСправочниковДляЗагрузкиДанных Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииСправочниковДляЗагрузкиДанных(ЗагружаемыеСправочники); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -929,6 +2216,16 @@ МодульУправлениеСвойствамиСлужебный.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами(Объекты); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииОбъектовСЗаблокированнымиРеквизитами Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами(Объекты); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииОбъектовСЗаблокированнымиРеквизитами Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами(Объекты); + КонецЕсли; + КонецПроцедуры // См. УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати. @@ -939,10 +2236,103 @@ МодульЗащитаПерсональныхДанных.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииОбъектовСКомандамиПечати Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииОбъектовСКомандамиПечати Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов); + КонецЕсли; + КонецПроцедуры #КонецОбласти +#Область ИнтерфейсOData + +// Формирует массив метаданных, исключаемых из загрузки/выгрузки. +// +// Возвращаемое значение: +// ФиксированныйМассив - массив метаданных. +// +Функция ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузкиOData() Экспорт + + Типы = Новый Массив(); + + СтандартныеПодсистемыСервер.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда + МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); + МодульВариантыОтчетов.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда + МодульВзаимодействия = ОбщегоНазначения.ОбщийМодуль("Взаимодействия"); + МодульВзаимодействия.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВнешниеКомпоненты") Тогда + МодульВнешниеКомпонентыСлужебный = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыСлужебный"); + МодульВнешниеКомпонентыСлужебный.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ВнешниеКомпонентыВМоделиСервиса") Тогда + МодульВнешниеКомпонентыВМоделиСервисаСлужебный = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыВМоделиСервисаСлужебный"); + МодульВнешниеКомпонентыВМоделиСервисаСлужебный.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ДополнительныеОтчетыИОбработкиВМоделиСервиса") Тогда + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВМоделиСервиса"); + МодульДополнительныеОтчетыИОбработкиВМоделиСервиса.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗавершениеРаботыПользователей") Тогда + МодульСоединенияИБ = ОбщегоНазначения.ОбщийМодуль("СоединенияИБ"); + МодульСоединенияИБ.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда + МодульКонтрольВеденияУчетаСлужебный = ОбщегоНазначения.ОбщийМодуль("КонтрольВеденияУчетаСлужебный"); + МодульКонтрольВеденияУчетаСлужебный.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда + МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); + МодульАдресныйКлассификаторСлужебный.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); + МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РаботаСФайламиВМоделиСервиса") Тогда + МодульРаботаСФайламиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебныйВМоделиСервиса"); + МодульРаботаСФайламиСлужебныйВМоделиСервиса.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузкиOData Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузкиOData(Типы); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП(). ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузкиOData Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузкиOData(); + КонецЕсли; + + Возврат Новый ФиксированныйМассив(Типы); + +КонецФункции + +#КонецОбласти #Область КонтрольВеденияУчета @@ -954,6 +2344,16 @@ МодульРаботаСФайламиСлужебный.ПриОпределенииПроверок(ГруппыПроверок, Проверки); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииПроверок Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииПроверок(ГруппыПроверок, Проверки); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииПроверок Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииПроверок(ГруппыПроверок, Проверки); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -973,6 +2373,16 @@ МодульЗаметкиПользователяСлужебный.ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания(Источник, РеквизитыСДатами); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания(Источник, РеквизитыСДатами); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания(Источник, РеквизитыСДатами); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -999,6 +2409,16 @@ МодульУправлениеДоступомСлужебный.ПриНастройкеПодчиненногоУзлаРИБ(); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриНастройкеПодчиненногоУзлаРИБ Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриНастройкеПодчиненногоУзлаРИБ(); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриНастройкеПодчиненногоУзлаРИБ Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриНастройкеПодчиненногоУзлаРИБ(); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -1018,11 +2438,6 @@ МодульАнкетирование.ПриДобавленииОбработчиковОбновления(Обработчики); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Банки") Тогда - МодульРаботаСКурсамиВалют = ОбщегоНазначения.ОбщийМодуль("РаботаСБанками"); - МодульРаботаСКурсамиВалют.ПриДобавленииОбработчиковОбновления(Обработчики); - КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.БизнесПроцессыИЗадачи") Тогда МодульБизнесПроцессыИЗадачиСервер = ОбщегоНазначения.ОбщийМодуль("БизнесПроцессыИЗадачиСервер"); МодульБизнесПроцессыИЗадачиСервер.ПриДобавленииОбработчиковОбновления(Обработчики); @@ -1038,11 +2453,6 @@ МодульВариантыОтчетов.ПриДобавленииОбработчиковОбновления(Обработчики); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВерсионированиеОбъектов") Тогда - МодульВерсионированиеОбъектов = ОбщегоНазначения.ОбщийМодуль("ВерсионированиеОбъектов"); - МодульВерсионированиеОбъектов.ПриДобавленииОбработчиковОбновления(Обработчики); - КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда МодульВзаимодействия = ОбщегоНазначения.ОбщийМодуль("Взаимодействия"); МодульВзаимодействия.ПриДобавленииОбработчиковОбновления(Обработчики); @@ -1063,16 +2473,6 @@ МодульДатыЗапретаИзмененияСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда - МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки"); - МодульДополнительныеОтчетыИОбработки.ПриДобавленииОбработчиковОбновления(Обработчики); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗавершениеРаботыПользователей") Тогда - МодульСоединенияИБ = ОбщегоНазначения.ОбщийМодуль("СоединенияИБ"); - МодульСоединенияИБ.ПриДобавленииОбработчиковОбновления(Обработчики); - КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗащитаПерсональныхДанных") Тогда МодульЗащитаПерсональныхДанных = ОбщегоНазначения.ОбщийМодуль("ЗащитаПерсональныхДанных"); МодульЗащитаПерсональныхДанных.ПриДобавленииОбработчиковОбновления(Обработчики); @@ -1105,6 +2505,11 @@ ОбновлениеИнформационнойБазыСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики); + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриДобавленииОбработчиковОбновления Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриДобавленииОбработчиковОбновления(Обработчики); + КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда МодульОценкаПроизводительностиСлужебный = ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительностиСлужебный"); МодульОценкаПроизводительностиСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики); @@ -1125,54 +2530,11 @@ МодульПолнотекстовыйПоискСервер.ПриДобавленииОбработчиковОбновления(Обработчики); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда - МодульПолучениеФайловИзИнтернетаСлужебный = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернетаСлужебный"); - МодульПолучениеФайловИзИнтернетаСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики); - КонецЕсли; - ПользователиСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики); - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.ПриДобавленииОбработчиковОбновления(Обработчики); - - МодульОчередьЗаданийСлужебныйРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебныйРазделениеДанных"); - МодульОчередьЗаданийСлужебныйРазделениеДанных.ПриДобавленииОбработчиковОбновления(Обработчики); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ВалютыВМоделиСервиса") Тогда - МодульКурсыВалютСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("КурсыВалютСлужебныйВМоделиСервиса"); - МодульКурсыВалютСлужебныйВМоделиСервиса.ПриДобавленииОбработчиковОбновления(Обработчики); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменСообщениями") Тогда - МодульОбменСообщениямиВнутренний = ОбщегоНазначения.ОбщийМодуль("ОбменСообщениямиВнутренний"); - МодульОбменСообщениямиВнутренний.ПриДобавленииОбработчиковОбновления(Обработчики); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда - МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); - МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ПриДобавленииОбработчиковОбновления(Обработчики); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда - МодульОчередьЗаданийСлужебный = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебный"); - МодульОчередьЗаданийСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РезервноеКопированиеОбластейДанных") Тогда - МодульРезервноеКопированиеОбластейДанных = ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеОбластейДанных"); - МодульРезервноеКопированиеОбластейДанных.ПриДобавленииОбработчиковОбновления(Обработчики); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.УправлениеДоступомВМоделиСервиса") Тогда - МодульУправлениеДоступомСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебныйВМоделиСервиса"); - МодульУправлениеДоступомСлужебныйВМоделиСервиса.ПриДобавленииОбработчиковОбновления(Обработчики); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ФайловыеФункцииВМоделиСервиса") Тогда - МодульФайловыеФункцииСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ФайловыеФункцииСлужебныйВМоделиСервиса"); - МодульФайловыеФункцииСлужебныйВМоделиСервиса.ПриДобавленииОбработчиковОбновления(Обработчики); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.ПриДобавленииОбработчиковОбновления(Обработчики); КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда @@ -1195,11 +2557,6 @@ МодульРегламентныеЗаданияСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РезервноеКопированиеИБ") Тогда - МодульРезервноеКопированиеИБСервер = ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеИБСервер"); - МодульРезервноеКопированиеИБСервер.ПриДобавленииОбработчиковОбновления(Обработчики); - КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда МодульУправлениеСвойствамиСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеСвойствамиСлужебный"); МодульУправлениеСвойствамиСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики); @@ -1237,6 +2594,11 @@ МодульЭлектроннаяПодписьСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриДобавленииОбработчиковОбновления Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриДобавленииОбработчиковОбновления(Обработчики); + КонецЕсли; + КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПослеОбновленияИнформационнойБазы. @@ -1267,6 +2629,48 @@ ВыполненныеОбработчики, ВыводитьОписаниеОбновлений, МонопольныйРежим); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПослеОбновленияИнформационнойБазы Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПослеОбновленияИнформационнойБазы(ПредыдущаяВерсия, ТекущаяВерсия, + ВыполненныеОбработчики, ВыводитьОписаниеОбновлений, МонопольныйРежим); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПослеОбновленияИнформационнойБазы Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПослеОбновленияИнформационнойБазы(ПредыдущаяВерсия, ТекущаяВерсия, ВыполненныеОбработчики, ВыводитьОписаниеОбновлений, МонопольныйРежим); + КонецЕсли; + +КонецПроцедуры + +// Позволяет переопределить приоритет обновления, по умолчанию получаемый из константы СведенияОбОбновленииИБ. +// Например, БТС может переопределить приоритет обновления для каждой области данных в режиме сервиса. +// +// Параметры: +// Приоритет - Строка - новое значение приоритета обновления (возвращаемое). Возвращать можно следующие значения: +// * "РаботаПользователей" - приоритет на обработку пользователей (в один поток); +// * "ОбработкаДанных" - приоритет на обработку данных (в несколько потоков); +// * Любое другое - использовать приоритет из константы СведенияОбОбновленииИБ (не переопределять). +// +Процедура ПриПолученииПриоритетаОбновления(Приоритет) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПолученииПриоритетаОбновления Тогда + + ТребуемаяВерсияБТС = "1.0.17.3"; + МодульТехнологияСервиса = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервиса"); + ТекущаяВерсияБТС = МодульТехнологияСервиса.ВерсияБиблиотеки(); + + Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ТекущаяВерсияБТС, ТребуемаяВерсияБТС) >= 0 Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриПолученииПриоритетаОбновления(Приоритет); + КонецЕсли; + + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПолученииПриоритетаОбновления Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриПолученииПриоритетаОбновления(Приоритет); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -1280,6 +2684,16 @@ МодульЗащитаПерсональныхДанных.ПриПодготовкеСпискаМакетовВФорматеОфисныхДокументовФормируемыхНаСервере(СписокМакетов); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПодготовкеСпискаМакетовВФорматеОфисныхДокументовФормируемыхНаСервере Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриПодготовкеСпискаМакетовВФорматеОфисныхДокументовФормируемыхНаСервере(СписокМакетов); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПодготовкеСпискаМакетовВФорматеОфисныхДокументовФормируемыхНаСервере Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриПодготовкеСпискаМакетовВФорматеОфисныхДокументовФормируемыхНаСервере(СписокМакетов); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -1314,6 +2728,16 @@ МодульНастройкаПорядкаЭлементов.ПриОпределенииВидовПодключаемыхКоманд(ВидыПодключаемыхКоманд); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииВидовПодключаемыхКоманд Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииВидовПодключаемыхКоманд(ВидыПодключаемыхКоманд); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииВидовПодключаемыхКоманд Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииВидовПодключаемыхКоманд(ВидыПодключаемыхКоманд); + КонецЕсли; + КонецПроцедуры // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииСоставаНастроекПодключаемыхОбъектов. @@ -1334,6 +2758,16 @@ МодульВариантыОтчетов.ПриОпределенииСоставаНастроекПодключаемыхОбъектов(НастройкиПрограммногоИнтерфейса); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииСоставаНастроекПодключаемыхОбъектов Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииСоставаНастроекПодключаемыхОбъектов(НастройкиПрограммногоИнтерфейса); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииСоставаНастроекПодключаемыхОбъектов Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииСоставаНастроекПодключаемыхОбъектов(НастройкиПрограммногоИнтерфейса); + КонецЕсли; + КонецПроцедуры // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту. @@ -1364,6 +2798,16 @@ МодульНастройкаПорядкаЭлементов.ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииКомандПодключенныхКОбъекту Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииКомандПодключенныхКОбъекту Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -1378,6 +2822,16 @@ МодульУправлениеДоступомСлужебный.ПриОпределенииНастроек(Настройки); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииНастроек Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииНастроек(Настройки); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииНастроек Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииНастроек(Настройки); + КонецЕсли; + КонецПроцедуры // См. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей. @@ -1445,6 +2899,16 @@ МодульТекущиеДелаСлужебный.ПриОпределенииНазначенияРолей(НазначениеРолей); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииНазначенияРолей Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииНазначенияРолей(НазначениеРолей); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииНазначенияРолей Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииНазначенияРолей(НазначениеРолей); + КонецЕсли; + КонецПроцедуры // См. ПользователиПереопределяемый.ПриОпределенииДействийВФорме. @@ -1455,6 +2919,16 @@ МодульУправлениеДоступомСлужебный.ПриОпределенииДействийВФорме(Ссылка, ДействияВФорме); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииДействийВФорме Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииДействийВФорме(Ссылка, ДействияВФорме); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииДействийВФорме Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииДействийВФорме(Ссылка, ДействияВФорме); + КонецЕсли; + КонецПроцедуры // Переопределяет текст комментария при авторизации пользователя ИБ, @@ -1472,6 +2946,16 @@ МодульУправлениеДоступомСлужебный.ПослеЗаписиАдминистратораПриАвторизации(Комментарий); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПослеЗаписиАдминистратораПриАвторизации Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПослеЗаписиАдминистратораПриАвторизации(Комментарий); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПослеЗаписиАдминистратораПриАвторизации Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПослеЗаписиАдминистратораПриАвторизации(Комментарий); + КонецЕсли; + КонецПроцедуры // Доопределяет действия, необходимые после установки пользователя @@ -1490,6 +2974,16 @@ МодульУправлениеДоступомСлужебный.ПослеУстановкиПользователяИБ(Ссылка, ПарольПользователяСервиса); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПослеУстановкиПользователяИБ Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПослеУстановкиПользователяИБ(Ссылка, ПарольПользователяСервиса); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПослеУстановкиПользователяИБ Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПослеУстановкиПользователяИБ(Ссылка, ПарольПользователяСервиса); + КонецЕсли; + КонецПроцедуры // Позволяет переопределить текст вопроса перед записью первого администратора. @@ -1507,6 +3001,16 @@ МодульУправлениеДоступомСлужебный.ПриОпределенииТекстаВопросаПередЗаписьюПервогоАдминистратора(ТекстВопроса); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииТекстаВопросаПередЗаписьюПервогоАдминистратора Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииТекстаВопросаПередЗаписьюПервогоАдминистратора(ТекстВопроса); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииТекстаВопросаПередЗаписьюПервогоАдминистратора Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииТекстаВопросаПередЗаписьюПервогоАдминистратора(ТекстВопроса); + КонецЕсли; + КонецПроцедуры // Доопределяет действия при создании администратора в подсистеме Пользователи. @@ -1522,6 +3026,16 @@ МодульУправлениеДоступомСлужебный.ПриСозданииАдминистратора(Администратор, Уточнение); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриСозданииАдминистратора Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриСозданииАдминистратора(Администратор, Уточнение); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриСозданииАдминистратора Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриСозданииАдминистратора(Администратор, Уточнение); + КонецЕсли; + КонецПроцедуры // Доопределяет действия, необходимые после добавления или изменения пользователя, @@ -1542,6 +3056,16 @@ МодульУправлениеДоступомСлужебный.ПослеДобавленияИзмененияПользователяИлиГруппы(Ссылка, ЭтоНовый); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПослеДобавленияИзмененияПользователяИлиГруппы Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПослеДобавленияИзмененияПользователяИлиГруппы(Ссылка, ЭтоНовый); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПослеДобавленияИзмененияПользователяИлиГруппы Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПослеДобавленияИзмененияПользователяИлиГруппы(Ссылка, ЭтоНовый); + КонецЕсли; + КонецПроцедуры // Доопределяет действия, необходимые после завершения обновления @@ -1570,6 +3094,16 @@ МодульДатыЗапретаИзмененияСлужебный.ПослеОбновленияСоставовГруппПользователей(УчастникиИзменений, ИзмененныеГруппы); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПослеОбновленияСоставовГруппПользователей Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПослеОбновленияСоставовГруппПользователей(УчастникиИзменений, ИзмененныеГруппы); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПослеОбновленияСоставовГруппПользователей Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПослеОбновленияСоставовГруппПользователей(УчастникиИзменений, ИзмененныеГруппы); + КонецЕсли; + КонецПроцедуры // Доопределяет действия, необходимые после изменении объекта авторизации внешнего пользователя. @@ -1590,6 +3124,17 @@ ВнешнийПользователь, СтарыйОбъектАвторизации, НовыйОбъектАвторизации); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПослеИзмененияОбъектаАвторизацииВнешнегоПользователя Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПослеИзмененияОбъектаАвторизацииВнешнегоПользователя( + ВнешнийПользователь, СтарыйОбъектАвторизации, НовыйОбъектАвторизации); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПослеИзмененияОбъектаАвторизацииВнешнегоПользователя Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПослеИзмененияОбъектаАвторизацииВнешнегоПользователя(ВнешнийПользователь, СтарыйОбъектАвторизации, НовыйОбъектАвторизации); + КонецЕсли; + КонецПроцедуры // Получает варианты переданного отчета и их представления. @@ -1612,6 +3157,17 @@ СведенияОВариантахОтчетов, СтандартнаяОбработка); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПолученииПользовательскихВариантовОтчетов Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриПолученииПользовательскихВариантовОтчетов(ПолноеИмяОтчета, ПользовательИнформационнойБазы, + СведенияОВариантахОтчетов, СтандартнаяОбработка); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПолученииПользовательскихВариантовОтчетов Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриПолученииПользовательскихВариантовОтчетов(ПолноеИмяОтчета, ПользовательИнформационнойБазы, СведенияОВариантахОтчетов, СтандартнаяОбработка); + КонецЕсли; + КонецПроцедуры // Удаляет переданный вариант отчета из хранилища вариантов отчетов. @@ -1633,6 +3189,17 @@ ПользовательИнформационнойБазы, СтандартнаяОбработка); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриУдаленииПользовательскихВариантовОтчета Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриУдаленииПользовательскихВариантовОтчета(СведенияОВариантеОтчета, + ПользовательИнформационнойБазы, СтандартнаяОбработка); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриУдаленииПользовательскихВариантовОтчета Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриУдаленииПользовательскихВариантовОтчета(СведенияОВариантеОтчета, ПользовательИнформационнойБазы, СтандартнаяОбработка); + КонецЕсли; + КонецПроцедуры // См. ПользователиПереопределяемый.ПриПолученииПрочихНастроек. @@ -1644,6 +3211,16 @@ МодульДополнительныеОтчетыИОбработки.ПриПолученииПрочихНастроек(СведенияОПользователе, Настройки); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПолученииПрочихНастроек Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриПолученииПрочихНастроек(СведенияОПользователе, Настройки); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПолученииПрочихНастроек Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриПолученииПрочихНастроек(СведенияОПользователе, Настройки); + КонецЕсли; + КонецПроцедуры // См. ПользователиПереопределяемый.ПриСохраненииПрочихНастроек. @@ -1654,6 +3231,16 @@ МодульДополнительныеОтчетыИОбработки.ПриСохраненииПрочихНастроек(СведенияОПользователе, Настройки); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриСохраненииПрочихНастроек Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриСохраненииПрочихНастроек(СведенияОПользователе, Настройки); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриСохраненииПрочихНастроек Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриСохраненииПрочихНастроек(СведенияОПользователе, Настройки); + КонецЕсли; + КонецПроцедуры // См. ПользователиПереопределяемый.ПриУдаленииПрочихНастроек. @@ -1664,6 +3251,16 @@ МодульДополнительныеОтчетыИОбработки.ПриУдаленииПрочихНастроек(СведенияОПользователе, Настройки); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриУдаленииПрочихНастроек Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриУдаленииПрочихНастроек(СведенияОПользователе, Настройки); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриУдаленииПрочихНастроек Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриУдаленииПрочихНастроек(СведенияОПользователе, Настройки); + КонецЕсли; + КонецПроцедуры // Формирует запрос на изменение адреса электронной почты пользователя сервиса. @@ -1681,6 +3278,16 @@ МодульПользователиСлужебныйВМоделиСервиса.СоздатьЗапросНаСменуПочты(НоваяПочта, Пользователь, ПарольПользователяСервиса); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().СоздатьЗапросНаСменуПочты Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.СоздатьЗапросНаСменуПочты(НоваяПочта, Пользователь, ПарольПользователяСервиса); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриСозданииЗапросаНаСменуПочты Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриСозданииЗапросаНаСменуПочты(НоваяПочта, Пользователь, ПарольПользователяСервиса); + КонецЕсли; + КонецПроцедуры // Доопределяет действия, необходимые после изменения пользователя, группы пользователей, @@ -1693,12 +3300,252 @@ МодульУправлениеДоступомСлужебный.ПослеИзмененияПользователяИлиГруппыВФорме(); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПослеИзмененияПользователяИлиГруппыВФорме Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПослеИзмененияПользователяИлиГруппыВФорме(); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПослеИзмененияПользователяИлиГруппыВФорме Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПослеИзмененияПользователяИлиГруппыВФорме(); + КонецЕсли; + +КонецПроцедуры + +// См. ПользователиСлужебныйВМоделиСервиса.ПриОтсутствииТекущегоПользователяВСправочнике. +Процедура ПриОтсутствииТекущегоПользователяВСправочнике(СоздатьПользователя) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда + МодульПользователиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСлужебныйВМоделиСервиса"); + МодульПользователиСлужебныйВМоделиСервиса.ПриОтсутствииТекущегоПользователяВСправочнике(СоздатьПользователя); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОтсутствииТекущегоПользователяВСправочнике Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОтсутствииТекущегоПользователяВСправочнике(СоздатьПользователя); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОтсутствииТекущегоПользователяВСправочнике Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОтсутствииТекущегоПользователяВСправочнике(СоздатьПользователя); + КонецЕсли; + +КонецПроцедуры + +// Вызывается при автоматическом создании элемента справочника Пользователи в момент +// интерактивного входа пользователя или при первом обращении из кода. +// +// Параметры: +// НовыйПользователь - СправочникОбъект.Пользователи - новый пользователь перед записью. +// +Процедура ПриАвтоматическомСозданииТекущегоПользователяВСправочнике(НовыйПользователь) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда + МодульПользователиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСлужебныйВМоделиСервиса"); + МодульПользователиСлужебныйВМоделиСервиса.ПриАвтоматическомСозданииТекущегоПользователяВСправочнике(НовыйПользователь); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриАвтоматическомСозданииТекущегоПользователяВСправочнике Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриАвтоматическомСозданииТекущегоПользователяВСправочнике(НовыйПользователь); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриАвтоматическомСозданииТекущегоПользователяВСправочнике Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриАвтоматическомСозданииТекущегоПользователяВСправочнике(НовыйПользователь); + КонецЕсли; + +КонецПроцедуры + +// Вызывается при авторизации нового пользователя информационной базы. +// +// Параметры: +// ПользовательИБ - ПользовательИнформационнойБазы, текущий пользователь информационной базы, +// СтандартнаяОбработка - Булево, значение может быть установлено внутри обработчика, в этом случае +// стандартная обработка авторизации нового пользователя ИБ выполняться не будет. +// +Процедура ПриАвторизацииНовогоПользователяИБ(ПользовательИБ, СтандартнаяОбработка) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда + МодульПользователиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСлужебныйВМоделиСервиса"); + МодульПользователиСлужебныйВМоделиСервиса.ПриАвторизацииНовогоПользователяИБ(ПользовательИБ, СтандартнаяОбработка); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриАвторизацииНовогоПользователяИБ Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриАвторизацииНовогоПользователяИБ(ПользовательИБ, СтандартнаяОбработка); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриАвторизацииНовогоПользователяИБ Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриАвторизацииНовогоПользователяИБ(ПользовательИБ, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +// Вызывается при начале обработки пользователя информационной базы. +// +// Параметры: +// ПараметрыОбработки - Структура, см. комментарий к процедуре НачатьОбработкуПользователяИБ(). +// ОписаниеПользователяИБ - Структура, см. комментарий к процедуре НачатьОбработкуПользователяИБ(). +// +Процедура ПриНачалеОбработкиПользователяИБ(ПараметрыОбработки, ОписаниеПользователяИБ) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда + МодульПользователиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСлужебныйВМоделиСервиса"); + МодульПользователиСлужебныйВМоделиСервиса.ПриНачалеОбработкиПользователяИБ(ПараметрыОбработки, ОписаниеПользователяИБ); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриНачалеОбработкиПользователяИБ Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриНачалеОбработкиПользователяИБ(ПараметрыОбработки, ОписаниеПользователяИБ); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриНачалеОбработкиПользователяИБ Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриНачалеОбработкиПользователяИБ(ПараметрыОбработки, ОписаниеПользователяИБ); + КонецЕсли; + +КонецПроцедуры + +// См. ПользователиСлужебныйВМоделиСервиса.ПриЗавершенииОбработкиПользователяИБ +Процедура ПриЗавершенииОбработкиПользователяИБ(Пользователь) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗавершенииОбработкиПользователяИБ Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗавершенииОбработкиПользователяИБ(Пользователь); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗавершенииОбработкиПользователяИБ Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗавершенииОбработкиПользователяИБ(Пользователь); + КонецЕсли; + +КонецПроцедуры + +// Вызывается перед записью пользователя информационной базы. +// +// Параметры: +// ПользовательИБ - ПользовательИнформационнойБазы - пользователь, который будет записан. +// +Процедура ПередЗаписьюПользователяИБ(ПользовательИБ) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда + МодульПользователиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСлужебныйВМоделиСервиса"); + МодульПользователиСлужебныйВМоделиСервиса.ПередЗаписьюПользователяИБ(ПользовательИБ); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПередЗаписьюПользователяИБ Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПередЗаписьюПользователяИБ(ПользовательИБ); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПередЗаписьюПользователяИБ Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПередЗаписьюПользователяИБ(ПользовательИБ); + КонецЕсли; + +КонецПроцедуры + +// Вызывается перед удалением пользователя информационной базы. +// +// Параметры: +// ПользовательИБ - ПользовательИнформационнойБазы - пользователь, который будет удален. +// +Процедура ПередУдалениемПользователяИБ(ПользовательИБ) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПередУдалениемПользователяИБ Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПередУдалениемПользователяИБ(ПользовательИБ); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПередУдалениемПользователяИБ Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПередУдалениемПользователяИБ(ПользовательИБ); + КонецЕсли; + КонецПроцедуры #КонецОбласти #Область ПрофилиБезопасности +// См. РаботаВБезопасномРежимеПереопределяемый.ПриПроверкеВозможностиНастройкиПрофилейБезопасности. +Процедура ПриПроверкеВозможностиНастройкиПрофилейБезопасности(Отказ) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПроверкеВозможностиНастройкиПрофилейБезопасности Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриПроверкеВозможностиНастройкиПрофилейБезопасности(Отказ); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПроверкеВозможностиНастройкиПрофилейБезопасности Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриПроверкеВозможностиНастройкиПрофилейБезопасности(Отказ); + КонецЕсли; + +КонецПроцедуры + +// См. РаботаВБезопасномРежимеПереопределяемый.ПриЗапросеРазрешенийНаИспользованиеВнешнихРесурсов. +Процедура ПриЗапросеРазрешенийНаИспользованиеВнешнихРесурсов(Знач ПрограммныйМодуль, Знач Владелец, Знач РежимЗамещения, Знач ДобавляемыеРазрешения, Знач УдаляемыеРазрешения, СтандартнаяОбработка, Результат) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗапросеРазрешенийНаИспользованиеВнешнихРесурсов Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗапросеРазрешенийНаИспользованиеВнешнихРесурсов(ПрограммныйМодуль, + Владелец, РежимЗамещения, ДобавляемыеРазрешения, УдаляемыеРазрешения, СтандартнаяОбработка, Результат); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗапросеРазрешенийНаИспользованиеВнешнихРесурсов Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗапросеРазрешенийНаИспользованиеВнешнихРесурсов(ПрограммныйМодуль, Владелец, РежимЗамещения, ДобавляемыеРазрешения, УдаляемыеРазрешения, СтандартнаяОбработка, Результат); + КонецЕсли; + +КонецПроцедуры + +// См. РаботаВБезопасномРежимеПереопределяемый.ПриЗапросеСозданияПрофиляБезопасности. +Процедура ПриЗапросеСозданияПрофиляБезопасности(Знач ПрограммныйМодуль, СтандартнаяОбработка, Результат) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗапросеСозданияПрофиляБезопасности Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗапросеСозданияПрофиляБезопасности(ПрограммныйМодуль, СтандартнаяОбработка, Результат); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗапросеСозданияПрофиляБезопасности Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗапросеСозданияПрофиляБезопасности(ПрограммныйМодуль, СтандартнаяОбработка, Результат); + КонецЕсли; + +КонецПроцедуры + +// См. РаботаВБезопасномРежимеПереопределяемый.ПриЗапросеУдаленияПрофиляБезопасности. +Процедура ПриЗапросеУдаленияПрофиляБезопасности(Знач ПрограммныйМодуль, СтандартнаяОбработка, Результат) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗапросеУдаленияПрофиляБезопасности Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗапросеУдаленияПрофиляБезопасности(ПрограммныйМодуль, СтандартнаяОбработка, Результат); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗапросеУдаленияПрофиляБезопасности Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗапросеУдаленияПрофиляБезопасности(ПрограммныйМодуль, СтандартнаяОбработка, Результат); + КонецЕсли; + +КонецПроцедуры + +// См. РаботаВБезопасномРежимеПереопределяемый.ПриПодключенииВнешнегоМодуля. +Процедура ПриПодключенииВнешнегоМодуля(Знач ВнешнийМодуль, БезопасныйРежим) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПодключенииВнешнегоМодуля Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриПодключенииВнешнегоМодуля(ВнешнийМодуль, БезопасныйРежим); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПодключенииВнешнегоМодуля Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриПодключенииВнешнегоМодуля(ВнешнийМодуль, БезопасныйРежим); + КонецЕсли; + +КонецПроцедуры + // См. РаботаВБезопасномРежимеПереопределяемый.ПриВключенииИспользованияПрофилейБезопасности. Процедура ПриВключенииИспользованияПрофилейБезопасности() Экспорт @@ -1712,6 +3559,16 @@ МодульРезервноеКопированиеИБСервер.ПриВключенииИспользованияПрофилейБезопасности(); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриВключенииИспользованияПрофилейБезопасности Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриВключенииИспользованияПрофилейБезопасности(); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриВключенииИспользованияПрофилейБезопасности Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриВключенииИспользованияПрофилейБезопасности(); + КонецЕсли; + КонецПроцедуры // См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. @@ -1742,11 +3599,6 @@ МодульОценкаПроизводительностиСлужебный.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Банки") Тогда - МодульРаботаСБанками = ОбщегоНазначения.ОбщийМодуль("РаботаСБанками"); - МодульРаботаСБанками.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений); - КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда МодульРаботаСКурсамиВалют = ОбщегоНазначения.ОбщийМодуль("РаботаСКурсамиВалют"); МодульРаботаСКурсамиВалют.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений); @@ -1767,11 +3619,6 @@ МодульРассылкаОтчетов.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.СклонениеПредставленийОбъектов") Тогда - МодульСклонениеПредставленийОбъектов = ОбщегоНазначения.ОбщийМодуль("СклонениеПредставленийОбъектов"); - МодульСклонениеПредставленийОбъектов.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений); - КонецЕсли; - СтандартныеПодсистемыСервер.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений); Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда @@ -1779,6 +3626,16 @@ МодульУправлениеПечатью.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений); + КонецЕсли; + КонецПроцедуры // Вызывается при регистрации менеджеров внешних модулей. @@ -1798,263 +3655,16 @@ МодульОбменДаннымиСервер.ПриРегистрацииМенеджеровВнешнихМодулей(Менеджеры); КонецЕсли; -КонецПроцедуры - -#КонецОбласти - -#Область РаботаВМоделиСервиса_БазоваяФункциональностьВМоделиСервиса - -// См. РаботаВМоделиСервисаПереопределяемый.ПриЗаполненииТаблицыПараметровИБ. -Процедура ПриЗаполненииТаблицыПараметровИБ(Знач ТаблицаПараметров) Экспорт - - ИнтеграцияСТехнологиейСервиса.ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда - МодульРегламентныеЗаданияСлужебный = ОбщегоНазначения.ОбщийМодуль("РегламентныеЗаданияСлужебный"); - МодульРегламентныеЗаданияСлужебный.ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров); + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриРегистрацииМенеджеровВнешнихМодулей Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриРегистрацииМенеджеровВнешнихМодулей(Менеджеры); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РезервноеКопированиеОбластейДанных") Тогда - МодульРезервноеКопированиеОбластейДанных = ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеОбластейДанных"); - МодульРезервноеКопированиеОбластейДанных.ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров); + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриРегистрацииМенеджеровВнешнихМодулей Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриРегистрацииМенеджеровВнешнихМодулей(Менеджеры); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗавершениеРаботыПользователей") Тогда - МодульСоединенияИБ = ОбщегоНазначения.ОбщийМодуль("СоединенияИБ"); - МодульСоединенияИБ.ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область РаботаВМоделиСервиса_ОбменСообщениями - -// См. ОбменСообщениямиПереопределяемый.ПолучитьОбработчикиКаналовСообщений. -Процедура ПриОпределенииОбработчиковКаналовСообщений(Обработчики) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменСообщениями") Тогда - МодульИнтерфейсыСообщенийВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ИнтерфейсыСообщенийВМоделиСервиса"); - МодульИнтерфейсыСообщенийВМоделиСервиса.ПриОпределенииОбработчиковКаналовСообщений(Обработчики); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПоставляемыеДанные") Тогда - МодульПоставляемыеДанные = ОбщегоНазначения.ОбщийМодуль("ПоставляемыеДанные"); - МодульПоставляемыеДанные.ПриОпределенииОбработчиковКаналовСообщений(Обработчики); - КонецЕсли; - - ИнтеграцияСТехнологиейСервиса.ПриОпределенииОбработчиковКаналовСообщений(Обработчики); - -КонецПроцедуры - -// См. ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.ЗаполнитьОбработчикиПринимаемыхСообщений. -Процедура РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков) Экспорт - - ИнтеграцияСТехнологиейСервиса.РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РезервноеКопированиеОбластейДанных") Тогда - МодульРезервноеКопированиеОбластейДанных = ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеОбластейДанных"); - МодульРезервноеКопированиеОбластейДанных.РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков); - КонецЕсли; - -КонецПроцедуры - -// См. ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.ЗаполнитьОбработчикиОтправляемыхСообщений. -Процедура РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков) Экспорт - - ИнтеграцияСТехнологиейСервиса.РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РезервноеКопированиеОбластейДанных") Тогда - МодульРезервноеКопированиеОбластейДанных = ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеОбластейДанных"); - МодульРезервноеКопированиеОбластейДанных.РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область РаботаВМоделиСервиса_ОчередьЗаданий - -// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. -Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт - - ИнтеграцияСТехнологиейСервиса.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.БизнесПроцессыИЗадачи") Тогда - МодульБизнесПроцессыИЗадачиСервер = ОбщегоНазначения.ОбщийМодуль("БизнесПроцессыИЗадачиСервер"); - МодульБизнесПроцессыИЗадачиСервер.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда - МодульВзаимодействия = ОбщегоНазначения.ОбщийМодуль("Взаимодействия"); - МодульВзаимодействия.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); - МодульУправлениеЭлектроннойПочтой = ОбщегоНазначения.ОбщийМодуль("УправлениеЭлектроннойПочтой"); - МодульУправлениеЭлектроннойПочтой.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗащитаПерсональныхДанных") Тогда - МодульЗащитаПерсональныхДанных = ОбщегоНазначения.ОбщийМодуль("ЗащитаПерсональныхДанных"); - МодульЗащитаПерсональныхДанных.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); - КонецЕсли; - - ОбновлениеИнформационнойБазыСлужебный.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); - - ПользователиСлужебный.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); - - СтандартныеПодсистемыСервер.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УдалениеПомеченныхОбъектов") Тогда - МодульУдалениеПомеченныхОбъектовСлужебный = ОбщегоНазначения.ОбщийМодуль("УдалениеПомеченныхОбъектовСлужебный"); - МодульУдалениеПомеченныхОбъектовСлужебный.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда - МодульУправлениеДоступомСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебныйВМоделиСервиса"); - МодульУправлениеДоступомСлужебныйВМоделиСервиса.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеИтогамиИАгрегатами") Тогда - МодульУправлениеИтогамиИАгрегатамиСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеИтогамиИАгрегатамиСлужебный"); - МодульУправлениеИтогамиИАгрегатамиСлужебный.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ФайловыеФункцииВМоделиСервиса") Тогда - МодульФайловыеФункцииСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ФайловыеФункцииСлужебныйВМоделиСервиса"); - МодульФайловыеФункцииСлужебныйВМоделиСервиса.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда - МодульКонтрольВеденияУчетаСлужебный = ОбщегоНазначения.ОбщийМодуль("КонтрольВеденияУчетаСлужебный"); - МодульКонтрольВеденияУчетаСлужебный.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); - КонецЕсли; - -КонецПроцедуры - -// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков. -Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт - - ИнтеграцияСТехнологиейСервиса.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.БизнесПроцессыИЗадачи") Тогда - МодульБизнесПроцессыИЗадачиСервер = ОбщегоНазначения.ОбщийМодуль("БизнесПроцессыИЗадачиСервер"); - МодульБизнесПроцессыИЗадачиСервер.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВерсионированиеОбъектов") Тогда - МодульВерсионированиеОбъектов = ОбщегоНазначения.ОбщийМодуль("ВерсионированиеОбъектов"); - МодульВерсионированиеОбъектов.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда - МодульОбменДаннымиСервер = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиСервер"); - МодульОбменДаннымиСервер.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ВалютыВМоделиСервиса") Тогда - МодульКурсыВалютСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("КурсыВалютСлужебныйВМоделиСервиса"); - МодульКурсыВалютСлужебныйВМоделиСервиса.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.КалендарныеГрафикиВМоделиСервиса") Тогда - МодульКалендарныеГрафикиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("КалендарныеГрафикиСлужебныйВМоделиСервиса"); - МодульКалендарныеГрафикиСлужебныйВМоделиСервиса.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда - МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); - МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПоставляемыеДанные") Тогда - МодульОбновлениеПоставляемыеДанные = ОбщегоНазначения.ОбщийМодуль("ПоставляемыеДанные"); - МодульОбновлениеПоставляемыеДанные.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РезервноеКопированиеОбластейДанных") Тогда - МодульРезервноеКопированиеОбластейДанных = ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеОбластейДанных"); - МодульРезервноеКопированиеОбластейДанных.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ФайловыеФункцииВМоделиСервиса") Тогда - МодульФайловыеФункцииСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ФайловыеФункцииСлужебныйВМоделиСервиса"); - МодульФайловыеФункцииСлужебныйВМоделиСервиса.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); - КонецЕсли; - -КонецПроцедуры - -// См. ОчередьЗаданийПереопределяемый.ПриОпределенииОбработчиковОшибок. -Процедура ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок) Экспорт - - ИнтеграцияСТехнологиейСервиса.ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РезервноеКопированиеОбластейДанных") Тогда - МодульРезервноеКопированиеОбластейДанных = ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеОбластейДанных"); - МодульРезервноеКопированиеОбластейДанных.ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок); - КонецЕсли; - -КонецПроцедуры - -// См. ОчередьЗаданийПереопределяемый.ПриОпределенииИспользованияРегламентныхЗаданий. -Процедура ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования) Экспорт - - ИнтеграцияСТехнологиейСервиса.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда - МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); - МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ФайловыеФункцииВМоделиСервиса") Тогда - МодульФайловыеФункцииСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ФайловыеФункцииСлужебныйВМоделиСервиса"); - МодульФайловыеФункцииСлужебныйВМоделиСервиса.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда - МодульРегламентныеЗаданияСлужебный = ОбщегоНазначения.ОбщийМодуль("РегламентныеЗаданияСлужебный"); - МодульРегламентныеЗаданияСлужебный.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область РаботаВМоделиСервиса_ПоставляемыеДанные - -// См. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных. -Процедура ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.АдресныйКлассификаторВМоделиСервиса") Тогда - МодульАдресныйКлассификаторВМоделиСервисаСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторВМоделиСервисаСлужебный"); - МодульАдресныйКлассификаторВМоделиСервисаСлужебный.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БанкиВМоделиСервиса") Тогда - МодульБанкиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("БанкиСлужебныйВМоделиСервиса"); - МодульБанкиСлужебныйВМоделиСервиса.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ВалютыВМоделиСервиса") Тогда - МодульКурсыВалютСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("КурсыВалютСлужебныйВМоделиСервиса"); - МодульКурсыВалютСлужебныйВМоделиСервиса.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики); - КонецЕсли; - - ИнтеграцияСТехнологиейСервиса.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики); - КонецПроцедуры #КонецОбласти @@ -2069,6 +3679,16 @@ МодульВзаимодействия.ПриОпределенииОбъектовИсключенияСинхронизацииФайлов(Объекты); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииОбъектовИсключенияСинхронизацииФайлов Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииОбъектовИсключенияСинхронизацииФайлов(Объекты); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииОбъектовИсключенияСинхронизацииФайлов Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииОбъектовИсключенияСинхронизацииФайлов(Объекты); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -2078,11 +3698,6 @@ // См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий. Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Банки") Тогда - МодульРаботаСБанками = ОбщегоНазначения.ОбщийМодуль("РаботаСБанками"); - МодульРаботаСБанками.ПриОпределенииНастроекРегламентныхЗаданий(Настройки); - КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.БизнесПроцессыИЗадачи") Тогда МодульБизнесПроцессыИЗадачиСервер = ОбщегоНазначения.ОбщийМодуль("БизнесПроцессыИЗадачиСервер"); МодульБизнесПроцессыИЗадачиСервер.ПриОпределенииНастроекРегламентныхЗаданий(Настройки); @@ -2113,6 +3728,11 @@ МодульОбменДаннымиСервер.ПриОпределенииНастроекРегламентныхЗаданий(Настройки); КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса.ПриОпределенииНастроекРегламентныхЗаданий(Настройки); + КонецЕсли; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда МодульОценкаПроизводительностиСлужебный = ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительностиСлужебный"); МодульОценкаПроизводительностиСлужебный.ПриОпределенииНастроекРегламентныхЗаданий(Настройки); @@ -2148,7 +3768,15 @@ МодульУдалениеПомеченныхОбъектовСлужебный.ПриОпределенииНастроекРегламентныхЗаданий(Настройки); КонецЕсли; - ИнтеграцияСТехнологиейСервиса.ПриОпределенииНастроекРегламентныхЗаданий(Настройки); + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииНастроекРегламентныхЗаданий Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииНастроекРегламентныхЗаданий(Настройки); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииНастроекРегламентныхЗаданий Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииНастроекРегламентныхЗаданий(Настройки); + КонецЕсли; КонецПроцедуры @@ -2158,6 +3786,7 @@ // См. УправлениеСвойствамиПереопределяемый.ПриСозданииПредопределенныхНаборовСвойств. Процедура ПриПолученииПредопределенныхНаборовСвойств(ДеревоНаборов) Экспорт + ПользователиСлужебный.ПриПолученииПредопределенныхНаборовСвойств(ДеревоНаборов); Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда @@ -2169,6 +3798,17 @@ МодульРаботаСФайламиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебный"); МодульРаботаСФайламиСлужебный.ПриПолученииПредопределенныхНаборовСвойств(ДеревоНаборов); КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПолученииПредопределенныхНаборовСвойств Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриПолученииПредопределенныхНаборовСвойств(ДеревоНаборов); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПолученииПредопределенныхНаборовСвойств Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриПолученииПредопределенныхНаборовСвойств(ДеревоНаборов); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -2176,6 +3816,21 @@ #Область ТекущиеДела // См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. +Процедура ПриОпределенииОбработчиковТекущихДел(ОбработчикиЗаполненияДел) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииОбработчиковТекущихДел Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииОбработчиковТекущихДел(ОбработчикиЗаполненияДел); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииОбработчиковТекущихДел Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииОбработчиковТекущихДел(ОбработчикиЗаполненияДел); + КонецЕсли; + +КонецПроцедуры + +// См. ТекущиеДелаСлужебный.СформироватьСписокТекущихДелПользователя. Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда @@ -2283,7 +3938,106 @@ МодульЦентрМониторингаСлужебный = ОбщегоНазначения.ОбщийМодуль("ЦентрМониторингаСлужебный"); МодульЦентрМониторингаСлужебный.ПриЗаполненииСпискаТекущихДел(ТекущиеДела); КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииСпискаТекущихДел Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗаполненииСпискаТекущихДел(ТекущиеДела); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗаполненииСпискаТекущихДел Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗаполненииСпискаТекущихДел(ТекущиеДела); + КонецЕсли; + +КонецПроцедуры +// См. ТекущиеДелаПереопределяемый.ПриОпределенииПорядкаРазделовКомандногоИнтерфейса. +Процедура ПриОпределенииПорядкаРазделовКомандногоИнтерфейса(ПорядокРазделовКомандногоИнтерфейса) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииПорядкаРазделовКомандногоИнтерфейса Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииПорядкаРазделовКомандногоИнтерфейса(ПорядокРазделовКомандногоИнтерфейса); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииПорядкаРазделовКомандногоИнтерфейса Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииПорядкаРазделовКомандногоИнтерфейса(ПорядокРазделовКомандногоИнтерфейса); + КонецЕсли; + +КонецПроцедуры + +// См. ТекущиеДелаПереопределяемый.ПриОтключенииТекущихДел. +Процедура ПриОтключенииТекущихДел(ОтключаемыеДела) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОтключенииТекущихДел Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОтключенииТекущихДел(ОтключаемыеДела); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОтключенииТекущихДел Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОтключенииТекущихДел(ОтключаемыеДела); + КонецЕсли; + +КонецПроцедуры + +// См. ТекущиеДелаПереопределяемый.ПриОпределенииНастроек. +Процедура ПриОпределенииНастроекТекущихДел(Настройки) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииНастроекТекущихДел Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииНастроекТекущихДел(Настройки); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииНастроекТекущихДел Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииНастроекТекущихДел(Настройки); + КонецЕсли; + +КонецПроцедуры + +// См. ТекущиеДелаПереопределяемый.УстановитьОбщиеПараметрыЗапросов. +Процедура ПриУстановкеОбщихПараметровЗапросов(Запрос, ОбщиеПараметрыЗапросов) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриУстановкеОбщихПараметровЗапросов Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриУстановкеОбщихПараметровЗапросов(Запрос, ОбщиеПараметрыЗапросов); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриУстановкеОбщихПараметровЗапросов Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриУстановкеОбщихПараметровЗапросов(Запрос, ОбщиеПараметрыЗапросов); + КонецЕсли; + +КонецПроцедуры + +// См. ТекущиеДелаПереопределяемый.ПриСозданииНаСервере. +Процедура ПриСозданииНаСервереТекущиеДела(Форма, Список) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриСозданииНаСервереТекущиеДела Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриСозданииНаСервереТекущиеДела(Форма, Список); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриСозданииНаСервереТекущиеДела Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриСозданииНаСервереТекущиеДела(Форма, Список); + КонецЕсли; + +КонецПроцедуры + +// См. ТекущиеДелаПереопределяемый.ПередЗагрузкойДанныхИзНастроекНаСервере. +Процедура ПередЗагрузкойДанныхИзНастроекНаСервереТекущиеДела(Форма, Настройки) Экспорт + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПередЗагрузкойДанныхИзНастроекНаСервереТекущиеДела Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПередЗагрузкойДанныхИзНастроекНаСервереТекущиеДела(Форма, Настройки); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПередЗагрузкойДанныхИзНастроекНаСервереТекущиеДела Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПередЗагрузкойДанныхИзНастроекНаСервереТекущиеДела(Форма, Настройки); + КонецЕсли; КонецПроцедуры @@ -2317,6 +4071,16 @@ МодульУправлениеСвойствамиСлужебный.ПриЗаполненииВидовДоступа(ВидыДоступа); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииВидовДоступа Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗаполненииВидовДоступа(ВидыДоступа); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗаполненииВидовДоступа Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗаполненииВидовДоступа(ВидыДоступа); + КонецЕсли; + КонецПроцедуры // См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа. @@ -2392,6 +4156,16 @@ МодульШаблоныСообщенийСлужебный.ПриЗаполненииСписковСОграничениемДоступа(Списки); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииСписковСОграничениемДоступа Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗаполненииСписковСОграничениемДоступа(Списки); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗаполненииСписковСОграничениемДоступа Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗаполненииСписковСОграничениемДоступа(Списки); + КонецЕсли; + КонецПроцедуры // См. УправлениеДоступомПереопределяемый.ПриЗаполненииПоставляемыхПрофилейГруппДоступа. @@ -2402,6 +4176,16 @@ МодульОбменДаннымиСервер.ПриЗаполненииПоставляемыхПрофилейГруппДоступа(ОписанияПрофилей, ПараметрыОбновления); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииПоставляемыхПрофилейГруппДоступа Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗаполненииПоставляемыхПрофилейГруппДоступа(ОписанияПрофилей, ПараметрыОбновления); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗаполненииПоставляемыхПрофилейГруппДоступа Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗаполненииПоставляемыхПрофилейГруппДоступа(ОписанияПрофилей, ПараметрыОбновления); + КонецЕсли; + КонецПроцедуры // См. УправлениеДоступомПереопределяемый.ПриЗаполненииЗависимостейПравДоступа. @@ -2411,7 +4195,17 @@ МодульБизнесПроцессыИЗадачиСервер = ОбщегоНазначения.ОбщийМодуль("БизнесПроцессыИЗадачиСервер"); МодульБизнесПроцессыИЗадачиСервер.ПриЗаполненииЗависимостейПравДоступа(ЗависимостиПрав); КонецЕсли; - + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииЗависимостейПравДоступа Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗаполненииЗависимостейПравДоступа(ЗависимостиПрав); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗаполненииЗависимостейПравДоступа Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗаполненииЗависимостейПравДоступа(ЗависимостиПрав); + КонецЕсли; + КонецПроцедуры // См. УправлениеДоступомПереопределяемый.ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов. @@ -2422,6 +4216,16 @@ МодульРаботаСФайламиСлужебный.ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов(ВозможныеПрава); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов(ВозможныеПрава); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов(ВозможныеПрава); + КонецЕсли; + КонецПроцедуры // См. УправлениеДоступомПереопределяемый.ПриЗаполненииИспользованияВидаДоступа. @@ -2437,6 +4241,16 @@ МодульУправлениеСвойствамиСлужебный.ПриЗаполненииИспользованияВидаДоступа(ВидДоступа, Использование); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииИспользованияВидаДоступа Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗаполненииИспользованияВидаДоступа(ВидДоступа, Использование); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗаполненииИспользованияВидаДоступа Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗаполненииИспользованияВидаДоступа(ВидДоступа, Использование); + КонецЕсли; + КонецПроцедуры // См. УправлениеДоступомПереопределяемый.ПриЗаполненииВидовОграниченийПравОбъектовМетаданных. @@ -2478,7 +4292,16 @@ МодульШаблоныСообщенийСлужебный = ОбщегоНазначения.ОбщийМодуль("ШаблоныСообщенийСлужебный"); МодульШаблоныСообщенийСлужебный.ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание); КонецЕсли; - + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииВидовОграниченийПравОбъектовМетаданных Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриЗаполненииВидовОграниченийПравОбъектовМетаданных Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание); + КонецЕсли; КонецПроцедуры @@ -2526,6 +4349,43 @@ СодержаниеПараметра, ЗначениеПараметра, НетГруппИсполнителей); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииГруппИсполнителей Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОпределенииГруппИсполнителей(МенеджерВременныхТаблиц, + СодержаниеПараметра, ЗначениеПараметра, НетГруппИсполнителей); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииГруппИсполнителей Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОпределенииГруппИсполнителей(МенеджерВременныхТаблиц, СодержаниеПараметра, ЗначениеПараметра, НетГруппИсполнителей); + КонецЕсли; + +КонецПроцедуры + +// Вызывается при обновлении ролей пользователя информационной базы. +// +// Параметры: +// ИдентификаторПользователяИБ - УникальныйИдентификатор, +// Отказ - Булево. При установке значения параметра в значение Ложь внутри обработчика события +// обновление ролей для этого пользователя информационной базы будет пропущено. +// +Процедура ПриОбновленииРолейПользователяИБ(ИдентификаторПользователяИБ, Отказ) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.УправлениеДоступомВМоделиСервиса") Тогда + МодульУправлениеДоступомСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебныйВМоделиСервиса"); + МодульУправлениеДоступомСлужебныйВМоделиСервиса.ПриОбновленииРолейПользователяИБ(ИдентификаторПользователяИБ, Отказ); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОбновленииРолейПользователяИБ Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриОбновленииРолейПользователяИБ(ИдентификаторПользователяИБ, Отказ); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОбновленииРолейПользователяИБ Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриОбновленииРолейПользователяИБ(ИдентификаторПользователяИБ, Отказ); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -2553,8 +4413,188 @@ МодульРаботаСФайламиСлужебный.ПриСбореПоказателейСтатистикиКонфигурации(); КонецЕсли; + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриСбореПоказателейСтатистикиКонфигурации Тогда + МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); + МодульИнтеграцияПодсистемБТС.ПриСбореПоказателейСтатистикиКонфигурации(); + КонецЕсли; + + Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриСбореПоказателейСтатистикиКонфигурации Тогда + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ПриСбореПоказателейСтатистикиКонфигурации(); + КонецЕсли; + КонецПроцедуры #КонецОбласти #КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Определяет события, на которые могут подписаться другие библиотеки. +// +// Возвращаемое значение: +// События - Структура - Ключами свойств структуры являются имена событий, на которые +// могут быть подписаны библиотеки. +// +Функция СобытияБСП() Экспорт + + События = Новый Структура; + + // БазоваяФункциональность + События.Вставить("ПриДобавленииПодсистем", Ложь); + События.Вставить("ПриУстановкеПараметровСеанса", Ложь); + События.Вставить("ПриДобавленииОбработчиковУстановкиПараметровСеанса", Ложь); + События.Вставить("ПриДобавленииИсключенийПоискаСсылок", Ложь); + События.Вставить("ПриДобавленииПереименованийОбъектовМетаданных", Ложь); + События.Вставить("ПриЗаполненииВсехПараметровРаботыРасширений", Ложь); + События.Вставить("ПриОчисткеВсехПараметровРаботыРасширений", Ложь); + События.Вставить("ПриОтправкеДанныхГлавному", Ложь); + События.Вставить("ПриОтправкеДанныхПодчиненному", Ложь); + События.Вставить("ПриПолученииДанныхОтГлавного", Ложь); + События.Вставить("ПриПолученииДанныхОтПодчиненного", Ложь); + События.Вставить("ПослеПолученияДанных", Ложь); + События.Вставить("ПриВключенииРазделенияПоОбластямДанных", Ложь); + События.Вставить("ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов", Ложь); + События.Вставить("ПриДобавленииПараметровРаботыКлиентаПриЗапуске", Ложь); + События.Вставить("ПриДобавленииПараметровРаботыКлиента", Ложь); + События.Вставить("ПередЗапускомПрограммы", Ложь); + + // ВариантыОтчетов + События.Вставить("ПриОпределенииНастроекВариантовОтчетов", Ложь); + События.Вставить("ПриОпределенииРазделовСВариантамиОтчетов", Ложь); + События.Вставить("ПриНастройкеВариантовОтчетов", Ложь); + События.Вставить("ПриИзмененииКлючейВариантовОтчетов", Ложь); + События.Вставить("ПриОпределенииОбъектовСКомандамиОтчетов", Ложь); + События.Вставить("ПередДобавлениемКомандОтчетов", Ложь); + События.Вставить("ПриДополненииСвязиОбъектовМетаданных", Ложь); + События.Вставить("ПриОпределенииПараметровВыбораВариантыОтчетов", Ложь); + События.Вставить("ПриСозданииНаСервереВариантыОтчетов", Ложь); + События.Вставить("ПередЗагрузкойВариантаНаСервере", Ложь); + + // ГрупповоеИзменениеОбъектов + События.Вставить("ПриОпределенииОбъектовСРедактируемымиРеквизитами", Ложь); + + // ДатыЗапретаИзменений + События.Вставить("ПриЗаполненииРазделовДатЗапретаИзменения", Ложь); + События.Вставить("ПриЗаполненииИсточниковДанныхДляПроверкиЗапретаИзменения", Ложь); + + // ДополнительныеОтчетыИОбработки + События.Вставить("ПриПроверкеПраваДобавления", Ложь); + События.Вставить("ПриПроверкеВозможностиЗагрузкиОбработкиИзФайла", Ложь); + События.Вставить("ПриПроверкеВозможностиВыгрузкиОбработкиВФайл", Ложь); + События.Вставить("ПриЗаполненииНедоступныхВидовПубликации", Ложь); + События.Вставить("ПередЗаписьюДополнительнойОбработки", Ложь); + События.Вставить("ПередУдалениемДополнительнойОбработки", Ложь); + События.Вставить("ПриПолученииРегистрационныхДанных", Ложь); + События.Вставить("ПриПодключенииВнешнейОбработки", Ложь); + События.Вставить("ПриСозданииВнешнейОбработки", Ложь); + События.Вставить("ПередОбновлениемЗадания", Ложь); + События.Вставить("ПриУстановкеРежимаПодключенияДополнительногоОтчетаИлиОбработкиВОбластиДанных", Ложь); + + // ЗагрузкаДанныхИзФайла + События.Вставить("ПриОпределенииСправочниковДляЗагрузкиДанных", Ложь); + + // ЗапретРедактированияРеквизитовОбъектов + События.Вставить("ПриОпределенииОбъектовСЗаблокированнымиРеквизитами", Ложь); + События.Вставить("ПриОпределенииОбъектовСКомандамиПечати", Ложь); + + // ИнтерфейсOData + События.Вставить("ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузкиOData", Ложь); + + // КонтрольВеденияУчета + События.Вставить("ПриОпределенииПроверок", Ложь); + + // НапоминанияПользователя + События.Вставить("ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания", Ложь); + + // ОбменДанными + События.Вставить("ПриНастройкеПодчиненногоУзлаРИБ", Ложь); + + //ОбновлениеВерсииИБ + События.Вставить("ПриДобавленииОбработчиковОбновления", Ложь); + События.Вставить("ПослеОбновленияИнформационнойБазы", Ложь); + События.Вставить("ПриПолученииПриоритетаОбновления", Ложь); + + // Печать + События.Вставить("ПриПодготовкеСпискаМакетовВФорматеОфисныхДокументовФормируемыхНаСервере", Ложь); + + // ПодключаемыеКоманды + События.Вставить("ПриОпределенииВидовПодключаемыхКоманд", Ложь); + События.Вставить("ПриОпределенииСоставаНастроекПодключаемыхОбъектов", Ложь); + События.Вставить("ПриОпределенииКомандПодключенныхКОбъекту", Ложь); + + // Пользователи + События.Вставить("ПриОпределенииНастроек", Ложь); + События.Вставить("ПриОпределенииНазначенияРолей", Ложь); + События.Вставить("ПриОпределенииДействийВФорме", Ложь); + События.Вставить("ПослеЗаписиАдминистратораПриАвторизации", Ложь); + События.Вставить("ПослеУстановкиПользователяИБ", Ложь); + События.Вставить("ПриОпределенииТекстаВопросаПередЗаписьюПервогоАдминистратора", Ложь); + События.Вставить("ПриСозданииАдминистратора", Ложь); + События.Вставить("ПослеДобавленияИзмененияПользователяИлиГруппы", Ложь); + События.Вставить("ПослеОбновленияСоставовГруппПользователей", Ложь); + События.Вставить("ПослеИзмененияОбъектаАвторизацииВнешнегоПользователя", Ложь); + События.Вставить("ПриПолученииПользовательскихВариантовОтчетов", Ложь); + События.Вставить("ПриУдаленииПользовательскихВариантовОтчета", Ложь); + События.Вставить("ПриПолученииПрочихНастроек", Ложь); + События.Вставить("ПриСохраненииПрочихНастроек", Ложь); + События.Вставить("ПриУдаленииПрочихНастроек", Ложь); + События.Вставить("ПриСозданииЗапросаНаСменуПочты", Ложь); + События.Вставить("ПослеИзмененияПользователяИлиГруппыВФорме", Ложь); + События.Вставить("ПриОтсутствииТекущегоПользователяВСправочнике", Ложь); + События.Вставить("ПриАвтоматическомСозданииТекущегоПользователяВСправочнике", Ложь); + События.Вставить("ПриАвторизацииНовогоПользователяИБ", Ложь); + События.Вставить("ПриНачалеОбработкиПользователяИБ", Ложь); + События.Вставить("ПриЗавершенииОбработкиПользователяИБ", Ложь); + События.Вставить("ПередЗаписьюПользователяИБ", Ложь); + События.Вставить("ПередУдалениемПользователяИБ", Ложь); + + //ПрофилиБезопасности + События.Вставить("ПриПроверкеВозможностиНастройкиПрофилейБезопасности", Ложь); + События.Вставить("ПриЗапросеРазрешенийНаИспользованиеВнешнихРесурсов", Ложь); + События.Вставить("ПриЗапросеСозданияПрофиляБезопасности", Ложь); + События.Вставить("ПриЗапросеУдаленияПрофиляБезопасности", Ложь); + События.Вставить("ПриПодключенииВнешнегоМодуля", Ложь); + События.Вставить("ПриВключенииИспользованияПрофилейБезопасности", Ложь); + События.Вставить("ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам", Ложь); + События.Вставить("ПриРегистрацииМенеджеровВнешнихМодулей", Ложь); + + // РаботаСФайлами + События.Вставить("ПриОпределенииОбъектовИсключенияСинхронизацииФайлов", Ложь); + + // РегламентныеЗадания + События.Вставить("ПриОпределенииНастроекРегламентныхЗаданий", Ложь); + + // Свойства + События.Вставить("ПриПолученииПредопределенныхНаборовСвойств", Ложь); + + // ТекущиеДела + События.Вставить("ПриОпределенииОбработчиковТекущихДел", Ложь); + События.Вставить("ПриЗаполненииСпискаТекущихДел", Ложь); + События.Вставить("ПриОпределенииПорядкаРазделовКомандногоИнтерфейса", Ложь); + События.Вставить("ПриОтключенииТекущихДел", Ложь); + События.Вставить("ПриОпределенииНастроекТекущихДел", Ложь); + События.Вставить("ПриУстановкеОбщихПараметровЗапросов", Ложь); + События.Вставить("ПриСозданииНаСервереТекущиеДела", Ложь); + События.Вставить("ПередЗагрузкойДанныхИзНастроекНаСервереТекущиеДела", Ложь); + + // УправлениеДоступом + События.Вставить("ПриЗаполненииВидовДоступа", Ложь); + События.Вставить("ПриЗаполненииСписковСОграничениемДоступа", Ложь); + События.Вставить("ПриЗаполненииПоставляемыхПрофилейГруппДоступа", Ложь); + События.Вставить("ПриЗаполненииЗависимостейПравДоступа", Ложь); + События.Вставить("ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов", Ложь); + События.Вставить("ПриЗаполненииИспользованияВидаДоступа", Ложь); + События.Вставить("ПриЗаполненииВидовОграниченийПравОбъектовМетаданных", Ложь); + События.Вставить("ПриОпределенииГруппИсполнителей", Ложь); + События.Вставить("ПриОбновленииРолейПользователяИБ", Ложь); + + // ЦентрМониторинга + События.Вставить("ПриСбореПоказателейСтатистикиКонфигурации", Ложь); + + Возврат События; + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиент/Module.bsl b/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиент/Module.bsl index a661637b6..7b9d0fd17 100644 --- a/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиент/Module.bsl +++ b/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиент/Module.bsl @@ -6,11 +6,57 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -// Интеграция подсистем библиотеки друг с другом. -// Здесь размещена обработка программных событий, возникающих в подсистемах-источниках, -// в тех случаях, когда подсистем-приемников более одной или их список заранее неизвестен. +#Область ПрограммныйИнтерфейс + +#Область ОбработчикиСобытийБТС +// Обработка программных событий, возникающих в подсистемах БТС. +// Только для вызовов из библиотеки БТС в БСП. + +// Определяет события, на которые подписана эта библиотека. // +// Параметры: +// Подписки - Структура - См. ИнтеграцияПодсистемБТС.СобытияБТС. +// +Процедура ПриОпределенииПодписокНаСобытияБТС(Подписки) Экспорт + + // ИнформационныйЦентр + Подписки.ИнтеграцияВызовОнлайнПоддержкиКлиентОбработкаОповещения = Истина; + +КонецПроцедуры + +#Область ИнформационныйЦентр + +// См. ВызовОнлайнПоддержкиКлиент.ОбработкаОповещения. +Процедура ИнтеграцияВызовОнлайнПоддержкиКлиентОбработкаОповещения(ИмяСобытия, Элемент) Экспорт + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ВызовОнлайнПоддержки") Тогда + МодульВызовОнлайнПоддержкиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ВызовОнлайнПоддержкиКлиент"); + МодульВызовОнлайнПоддержкиКлиент.ОбработкаОповещения(ИмяСобытия, Элемент); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область ОбработчикиСобытийБИП +// Обработка программных событий, возникающих в подсистемах ИПП. +// Только для вызовов из библиотеки ИПП в БСП. + +// Определяет события, на которые подписана эта библиотека. +// +// Параметры: +// Подписки - Структура - Ключами свойств структуры являются имена событий, на которые +// подписана эта библиотека. +// +Процедура ПриОпределенииПодписокНаСобытияБИП(Подписки) Экспорт + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти #Область СлужебныйПрограммныйИнтерфейс @@ -37,12 +83,6 @@ // Проверка необходимости восстановления связи с главным узлом. Параметры.Модули.Добавить(Новый Структура("Модуль, Номер", СтандартныеПодсистемыКлиент, 3)); - // Проверка блокировки области данных для обслуживания. - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервисаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаВМоделиСервисаКлиент"); - Параметры.Модули.Добавить(МодульРаботаВМоделиСервисаКлиент); - КонецЕсли; - // Подтверждение легальности перед началом обновления ИБ. Если ОбщегоНазначенияКлиент.ПодсистемаСуществует( "СтандартныеПодсистемы.ПроверкаЛегальностиПолученияОбновления") Тогда @@ -67,7 +107,7 @@ // Настройка автономного рабочего места при первом запуске. Если ОбщегоНазначенияКлиент.ПодсистемаСуществует( - "ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + "СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда МодульАвтономнаяРаботаСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АвтономнаяРаботаСлужебныйКлиент"); Параметры.Модули.Добавить(МодульАвтономнаяРаботаСлужебныйКлиент); @@ -91,6 +131,16 @@ // Смена пароля при входе, если требуется. Параметры.Модули.Добавить(Новый Структура("Модуль, Номер", ПользователиСлужебныйКлиент, 3)); + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПередНачаломРаботыСистемы Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПередНачаломРаботыСистемы(Параметры); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПередНачаломРаботыСистемы Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПередНачаломРаботыСистемы(Параметры); + КонецЕсли; + КонецПроцедуры // См. ОбщегоНазначенияКлиентПереопределяемый.ПриНачалеРаботыСистемы. @@ -102,6 +152,11 @@ Параметры.Модули.Добавить(МодульОбменДаннымиКлиент); КонецЕсли; + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервисаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбменДаннымиВМоделиСервисаКлиент"); + Параметры.Модули.Добавить(МодульОбменДаннымиВМоделиСервисаКлиент); + КонецЕсли; + // Открытие описания изменений системы. Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеВерсииИБ") Тогда МодульОбновлениеИнформационнойБазыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбновлениеИнформационнойБазыКлиент"); @@ -122,14 +177,22 @@ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РезервноеКопированиеИБ") Тогда МодульРезервноеКопированиеИБКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РезервноеКопированиеИБКлиент"); Параметры.Модули.Добавить(МодульРезервноеКопированиеИБКлиент); - КонецЕсли; - - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда - МодульЦентрМониторингаКлиентСлужебный = ОбщегоНазначенияКлиент.ОбщийМодуль("ЦентрМониторингаКлиентСлужебный"); - Параметры.Модули.Добавить(МодульЦентрМониторингаКлиентСлужебный); - КонецЕсли; + КонецЕсли; - ИнтеграцияСТехнологиейСервисаКлиент.ПриНачалеРаботыСистемы(Параметры); + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда + МодульЦентрМониторингаКлиентСлужебный = ОбщегоНазначенияКлиент.ОбщийМодуль("ЦентрМониторингаКлиентСлужебный"); + Параметры.Модули.Добавить(МодульЦентрМониторингаКлиентСлужебный); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПриНачалеРаботыСистемы Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПриНачалеРаботыСистемы(Параметры); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПриНачалеРаботыСистемы Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПриНачалеРаботыСистемы(Параметры); + КонецЕсли; КонецПроцедуры @@ -176,6 +239,16 @@ МодульНастройкаРазрешенийНаИспользованиеВнешнихРесурсовКлиент.ПослеНачалаРаботыСистемы(); КонецЕсли; + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПослеНачалаРаботыСистемы Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПослеНачалаРаботыСистемы(); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПослеНачалаРаботыСистемы Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПослеНачалаРаботыСистемы(); + КонецЕсли; + КонецПроцедуры // См. ОбщегоНазначенияКлиентПереопределяемый.ПриОбработкеПараметровЗапуска. @@ -186,6 +259,16 @@ МодульСоединенияИБКлиент.ПриОбработкеПараметровЗапуска(ПараметрыЗапуска, Отказ); КонецЕсли; + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПриОбработкеПараметровЗапуска Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПриОбработкеПараметровЗапуска(ПараметрыЗапуска, Отказ); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПриОбработкеПараметровЗапуска Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПриОбработкеПараметровЗапуска(ПараметрыЗапуска, Отказ); + КонецЕсли; + КонецПроцедуры // См. ОбщегоНазначенияКлиентПереопределяемый.ПередЗавершениемРаботыСистемы. @@ -201,6 +284,11 @@ МодульОбновлениеКонфигурацииКлиент.ПередЗавершениемРаботыСистемы(Отказ, Предупреждения); КонецЕсли; + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МодульОбменДаннымиВМоделиСервисаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбменДаннымиВМоделиСервисаКлиент"); + МодульОбменДаннымиВМоделиСервисаКлиент.ПередЗавершениемРаботыСистемы(Отказ, Предупреждения); + КонецЕсли; + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда МодульРаботаСФайламиСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиСлужебныйКлиент"); МодульРаботаСФайламиСлужебныйКлиент.ПередЗавершениемРаботыСистемы(Отказ, Предупреждения); @@ -211,15 +299,99 @@ МодульРезервноеКопированиеИБКлиент.ПередЗавершениемРаботыСистемы(Отказ, Предупреждения); КонецЕсли; - ИнтеграцияСТехнологиейСервисаКлиент.ПередЗавершениемРаботыСистемы(Отказ, Предупреждения); + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПередЗавершениемРаботыСистемы Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПередЗавершениемРаботыСистемы(Отказ, Предупреждения); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПередЗавершениемРаботыСистемы Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПередЗавершениемРаботыСистемы(Отказ, Предупреждения); + КонецЕсли; КонецПроцедуры #КонецОбласти -#Область ФункциональностьОтчетов +#Область ВариантыОтчетов -Процедура ОбработкаВыбораТабличногоДокумента(ФормаОтчета, Элемент, Область, СтандартнаяОбработка) Экспорт +// См. ОтчетыКлиентПереопределяемый.ПослеФормирования. +Процедура ПослеФормирования(ФормаОтчета, ОтчетСформирован) Экспорт + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПослеФормирования Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПослеФормирования(ФормаОтчета, ОтчетСформирован); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПослеФормирования Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПослеФормирования(ФормаОтчета, ОтчетСформирован); + КонецЕсли; + +КонецПроцедуры + +// См. ОтчетыКлиентПереопределяемый.ОбработкаРасшифровки. +Процедура ПриОбработкеРасшифровки(ФормаОтчета, Элемент, Расшифровка, СтандартнаяОбработка) Экспорт + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПриОбработкеРасшифровки Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПриОбработкеРасшифровки(ФормаОтчета, Элемент, Расшифровка, СтандартнаяОбработка); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПриОбработкеРасшифровки Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПриОбработкеРасшифровки(ФормаОтчета, Элемент, Расшифровка, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +// См. ОтчетыКлиентПереопределяемый.ОбработкаДополнительнойРасшифровки. +Процедура ПриОбработкеДополнительнойРасшифровки(ФормаОтчета, Элемент, Расшифровка, СтандартнаяОбработка) Экспорт + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПриОбработкеДополнительнойРасшифровки Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПриОбработкеДополнительнойРасшифровки(ФормаОтчета, Элемент, Расшифровка, СтандартнаяОбработка); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПриОбработкеДополнительнойРасшифровки Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПриОбработкеДополнительнойРасшифровки(ФормаОтчета, Элемент, Расшифровка, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +// См. ОтчетыКлиентПереопределяемый.ОбработчикКоманды. +Процедура ПриОбработкеКоманды(ФормаОтчета, Команда, Результат) Экспорт + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПриОбработкеКоманды Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПриОбработкеКоманды(ФормаОтчета, Команда, Результат); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПриОбработкеКоманды Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПриОбработкеКоманды(ФормаОтчета, Команда, Результат); + КонецЕсли; + +КонецПроцедуры + +// См. ОтчетыКлиентПереопределяемый.ОбработчикКоманды. +Процедура ПриОбработкеВыбора(ФормаОтчета, ВыбранноеЗначение, ИсточникВыбора, Результат) Экспорт + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПриОбработкеВыбора Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПриОбработкеВыбора(ФормаОтчета, ВыбранноеЗначение, ИсточникВыбора, Результат); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПриОбработкеВыбора Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПриОбработкеВыбора(ФормаОтчета, ВыбранноеЗначение, ИсточникВыбора, Результат); + КонецЕсли; + +КонецПроцедуры + +// См. ОтчетыКлиентПереопределяемый.ОбработкаВыбораТабличногоДокумента. +Процедура ПриОбработкеВыбораТабличногоДокумента(ФормаОтчета, Элемент, Область, СтандартнаяОбработка) Экспорт Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОтчетОДвиженияхДокумента") Тогда МодульОтчетОДвиженияхДокументаСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОтчетОДвиженияхДокументаСлужебныйКлиент"); @@ -231,6 +403,103 @@ МодульКонтрольВеденияУчетаСлужебныйКлиент.ОбработкаВыбораТабличногоДокумента(ФормаОтчета, Элемент, Область, СтандартнаяОбработка); КонецЕсли; + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПриОбработкеВыбораТабличногоДокумента Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПриОбработкеВыбораТабличногоДокумента(ФормаОтчета, Элемент, Область, СтандартнаяОбработка); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПриОбработкеВыбораТабличногоДокумента Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПриОбработкеВыбораТабличногоДокумента(ФормаОтчета, Элемент, Область, СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + +// См. ОтчетыКлиентПереопределяемый.ОбработкаОповещения. +Процедура ПриОбработкеОповещения(ФормаОтчета, ИмяСобытия, Параметр, Источник, ОповещениеОбработано) Экспорт + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПриОбработкеОповещения Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПриОбработкеОповещения(ФормаОтчета, ИмяСобытия, Параметр, Источник, ОповещениеОбработано); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПриОбработкеОповещения Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПриОбработкеОповещения(ФормаОтчета, ИмяСобытия, Параметр, Источник, ОповещениеОбработано); + КонецЕсли; + +КонецПроцедуры + +// См. ОтчетыКлиентПереопределяемый.ПриНажатииКнопкиВыбораПериода. +Процедура ПриНажатииКнопкиВыбораПериода(ФормаОтчета, Период, СтандартнаяОбработка, ОбработчикРезультата) Экспорт + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПриНажатииКнопкиВыбораПериода Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПриНажатииКнопкиВыбораПериода(ФормаОтчета, Период, СтандартнаяОбработка, ОбработчикРезультата); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПриНажатииКнопкиВыбораПериода Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПриНажатииКнопкиВыбораПериода(ФормаОтчета, Период, СтандартнаяОбработка, ОбработчикРезультата); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ЗавершениеРаботыПользователей + +// Вызывается при завершении сеанса средствами подсистемы ЗавершениеРаботыПользователей. +// +// Параметры: +// ФормаВладелец - ФормаКлиентскогоПриложения, из которой выполняется завершение сеанса, +// НомераСеансов - Число (8,0,+) - номер сеанса, который будет завершен, +// СтандартнаяОбработка - Булево, флаг выполнения стандартной обработки завершения сеанса +// (подключение к агенту сервера через COM-соединение или сервер администрирования с +// запросом параметров подключения к кластеру у текущего пользователя). Может быть +// установлен в значение Ложь внутри обработчика события, в этом случае стандартная +// обработка завершения сеанса выполняться не будет, +// ОповещениеПослеЗавершенияСеанса - ОписаниеОповещения - описание оповещения, которое должно +// быть вызвано после завершения сеанса (для автоматического обновления списка активных +// пользователей). При установке значения параметра СтандартнаяОбработка равным Ложь, +// после успешного завершения сеанса, для переданного описания оповещения должна быть +// выполнена обработка с помощью метода ВыполнитьОбработкуОповещения (в качестве значения +// параметра Результат следует передавать КодВозвратаДиалога.ОК при успешном завершении +// сеанса). Параметр может быть опущен - в этом случае выполнять обработку оповещения не +// следует. +// +Процедура ПриЗавершенииСеансов(ФормаВладелец, Знач НомераСеансов, СтандартнаяОбработка, Знач ОповещениеПослеЗавершенияСеанса = Неопределено) Экспорт + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПриЗавершенииСеансов Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПриЗавершенииСеансов(ФормаВладелец, НомераСеансов, СтандартнаяОбработка, ОповещениеПослеЗавершенияСеанса); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПриЗавершенииСеансов Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПриЗавершенииСеансов(ФормаВладелец, НомераСеансов, СтандартнаяОбработка, ОповещениеПослеЗавершенияСеанса); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ПрофилиБезопасности + +// См. РаботаВБезопасномРежимеКлиентПереопределяемый.ПриПодтвержденииЗапросовНаИспользованиеВнешнихРесурсов. +Процедура ПриПодтвержденииЗапросовНаИспользованиеВнешнихРесурсов(Идентификаторы, ФормаВладелец, ОповещениеОЗакрытии, СтандартнаяОбработка) Экспорт + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПриПодтвержденииЗапросовНаИспользованиеВнешнихРесурсов Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПриПодтвержденииЗапросовНаИспользованиеВнешнихРесурсов(Идентификаторы, + ФормаВладелец, ОповещениеОЗакрытии, СтандартнаяОбработка); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПриПодтвержденииЗапросовНаИспользованиеВнешнихРесурсов Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПриПодтвержденииЗапросовНаИспользованиеВнешнихРесурсов(Идентификаторы, ФормаВладелец, ОповещениеОЗакрытии, СтандартнаяОбработка); + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -244,14 +513,19 @@ // Процедура ПриПроверкеВозможностиРезервногоКопированияВПользовательскомРежиме(Результат) Экспорт - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ТехнологияСервиса.РезервноеКопированиеИБ") Тогда + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РезервноеКопированиеИБ") Тогда МодульРезервноеКопированиеИБКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РезервноеКопированиеИБКлиент"); МодульРезервноеКопированиеИБКлиент.ПриПроверкеВозможностиРезервногоКопированияВПользовательскомРежиме(Результат); КонецЕсли; - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ТехнологияСервиса.РезервноеКопированиеОбластейДанных") Тогда - МодульРезервноеКопированиеОбластейДанныхКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РезервноеКопированиеОбластейДанныхКлиент"); - МодульРезервноеКопированиеОбластейДанныхКлиент.ПриПроверкеВозможностиРезервногоКопированияВПользовательскомРежиме(Результат); + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПриПроверкеВозможностиРезервногоКопированияВПользовательскомРежиме Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПриПроверкеВозможностиРезервногоКопированияВПользовательскомРежиме(Результат); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПриПроверкеВозможностиРезервногоКопированияВПользовательскомРежиме Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПриПроверкеВозможностиРезервногоКопированияВПользовательскомРежиме(Результат); КонецЕсли; КонецПроцедуры @@ -259,14 +533,19 @@ // Вызывается при предложении создать резервную копию. Процедура ПриПредложенииПользователюСоздатьРезервнуюКопию() Экспорт - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ТехнологияСервиса.РезервноеКопированиеИБ") Тогда + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РезервноеКопированиеИБ") Тогда МодульРезервноеКопированиеИБКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РезервноеКопированиеИБКлиент"); МодульРезервноеКопированиеИБКлиент.ПриПредложенииПользователюСоздатьРезервнуюКопию(); КонецЕсли; - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ТехнологияСервиса.РезервноеКопированиеОбластейДанных") Тогда - МодульРезервноеКопированиеОбластейДанныхКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РезервноеКопированиеОбластейДанныхКлиент"); - МодульРезервноеКопированиеОбластейДанныхКлиент.ПриПредложенииПользователюСоздатьРезервнуюКопию(); + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПриПредложенииПользователюСоздатьРезервнуюКопию Тогда + МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент"); + МодульИнтеграцияПодсистемБТСКлиент.ПриПредложенииПользователюСоздатьРезервнуюКопию(); + КонецЕсли; + + Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПриПредложенииПользователюСоздатьРезервнуюКопию Тогда + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ПриПредложенииПользователюСоздатьРезервнуюКопию(); КонецЕсли; КонецПроцедуры @@ -274,3 +553,48 @@ #КонецОбласти #КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Определяет события, на которые могут подписаться другие библиотеки. +// +// Возвращаемое значение: +// События - Структура - Ключами свойств структуры являются имена событий, на которые +// могут быть подписаны библиотеки. +// +Функция СобытияБСП() Экспорт + + События = Новый Структура; + + // БазоваяФункциональность + События.Вставить("ПередНачаломРаботыСистемы", Ложь); + События.Вставить("ПриНачалеРаботыСистемы", Ложь); + События.Вставить("ПослеНачалаРаботыСистемы", Ложь); + События.Вставить("ПриОбработкеПараметровЗапуска", Ложь); + События.Вставить("ПередЗавершениемРаботыСистемы", Ложь); + + // ВариантыОтчетов + События.Вставить("ПослеФормирования", Ложь); + События.Вставить("ПриОбработкеРасшифровки", Ложь); + События.Вставить("ПриОбработкеДополнительнойРасшифровки", Ложь); + События.Вставить("ПриОбработкеКоманды", Ложь); + События.Вставить("ПриОбработкеВыбора", Ложь); + События.Вставить("ПриОбработкеВыбораТабличногоДокумента", Ложь); + События.Вставить("ПриОбработкеОповещения", Ложь); + События.Вставить("ПриНажатииКнопкиВыбораПериода", Ложь); + + // ЗавершениеРаботыПользователей + События.Вставить("ПриЗавершенииСеансов", Ложь); + + // ПрофилиБезопасности + События.Вставить("ПриПодтвержденииЗапросовНаИспользованиеВнешнихРесурсов", Ложь); + + // РезервноеКопированиеИБ + События.Вставить("ПриПроверкеВозможностиРезервногоКопированияВПользовательскомРежиме", Ложь); + События.Вставить("ПриПредложенииПользователюСоздатьРезервнуюКопию", Ложь); + + Возврат События; + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиентПовтИсп/Module.bsl b/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиентПовтИсп/Module.bsl new file mode 100644 index 000000000..c32e63f44 --- /dev/null +++ b/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиентПовтИсп/Module.bsl @@ -0,0 +1,36 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 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..069dd90e5 --- /dev/null +++ b/SSL/src/CommonModules/ИнтеграцияПодсистемБСПКлиентПовтИсп/ИнтеграцияПодсистемБСПКлиентПовтИсп.mdo @@ -0,0 +1,11 @@ + + + ИнтеграцияПодсистемБСПКлиентПовтИсп + + ru + Интеграция подсистем БСП клиент повт исп + + true + true + DuringSession + diff --git a/SSL/src/CommonModules/ИнтеграцияПодсистемБСППовтИсп/Module.bsl b/SSL/src/CommonModules/ИнтеграцияПодсистемБСППовтИсп/Module.bsl new file mode 100644 index 000000000..4eccb5d95 --- /dev/null +++ b/SSL/src/CommonModules/ИнтеграцияПодсистемБСППовтИсп/Module.bsl @@ -0,0 +1,36 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 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 similarity index 62% rename from SSL/src/CommonModules/ОбщегоНазначенияПовтИсп/ОбщегоНазначенияПовтИсп.mdo rename to SSL/src/CommonModules/ИнтеграцияПодсистемБСППовтИсп/ИнтеграцияПодсистемБСППовтИсп.mdo index 9c2fc6c62..37d920adc 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияПовтИсп/ОбщегоНазначенияПовтИсп.mdo +++ b/SSL/src/CommonModules/ИнтеграцияПодсистемБСППовтИсп/ИнтеграцияПодсистемБСППовтИсп.mdo @@ -1,9 +1,9 @@ - - ОбщегоНазначенияПовтИсп + + ИнтеграцияПодсистемБСППовтИсп ru - Общего назначения повт исп + Интеграция стандартных подсистем true true diff --git a/SSL/src/CommonModules/ИнтеграцияСТехнологиейСервиса/Module.bsl b/SSL/src/CommonModules/ИнтеграцияСТехнологиейСервиса/Module.bsl deleted file mode 100644 index e3dc84cb1..000000000 --- a/SSL/src/CommonModules/ИнтеграцияСТехнологиейСервиса/Module.bsl +++ /dev/null @@ -1,843 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////////// -// Интеграция с Библиотекой технологий сервиса (БТС) -// Здесь размещена обработка программных событий, возникающих в подсистемах БСП, -// и в обратную сторону. -// - - -// Обработка программных событий, возникающих в подсистемах БТС. -// Только для вызовов из библиотеки БТС в БСП. - -#Область ПрограммныйИнтерфейс - -#Область ДляВызоваИзДругихПодсистем - -// ТехнологияСервиса.БазоваяФункциональность - -#Область ВыгрузкаЗагрузкаДанных - -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке. -Процедура ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы) Экспорт - - СтандартныеПодсистемыСервер.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Банки") Тогда - МодульРаботаСБанками = ОбщегоНазначения.ОбщийМодуль("РаботаСБанками"); - МодульРаботаСБанками.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда - МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); - МодульВариантыОтчетов.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда - МодульДатыЗапретаИзмененияСлужебный = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзмененияСлужебный"); - МодульДатыЗапретаИзмененияСлужебный.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КалендарныеГрафики") Тогда - МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("КалендарныеГрафики"); - МодульКалендарныеГрафики.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы); - КонецЕсли; - -КонецПроцедуры - -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке. -Процедура ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке(Типы) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда - МодульРаботаСФайламиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебный"); - МодульРаботаСФайламиСлужебный.ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда - МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный"); - МодульУправлениеДоступомСлужебный.ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке(Типы); - КонецЕсли; - -КонецПроцедуры - -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. -Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт - - СтандартныеПодсистемыСервер.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда - МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); - МодульВариантыОтчетов.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда - МодульВзаимодействия = ОбщегоНазначения.ОбщийМодуль("Взаимодействия"); - МодульВзаимодействия.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВнешниеКомпоненты") Тогда - МодульВнешниеКомпонентыСлужебный = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыСлужебный"); - МодульВнешниеКомпонентыСлужебный.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ВнешниеКомпонентыВМоделиСервиса") Тогда - МодульВнешниеКомпонентыВМоделиСервисаСлужебный = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыВМоделиСервисаСлужебный"); - МодульВнешниеКомпонентыВМоделиСервисаСлужебный.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗавершениеРаботыПользователей") Тогда - МодульСоединенияИБ = ОбщегоНазначения.ОбщийМодуль("СоединенияИБ"); - МодульСоединенияИБ.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда - МодульКонтрольВеденияУчетаСлужебный = ОбщегоНазначения.ОбщийМодуль("КонтрольВеденияУчетаСлужебный"); - МодульКонтрольВеденияУчетаСлужебный.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.АдресныйКлассификаторВМоделиСервиса") Тогда - МодульАдресныйКлассификаторВМоделиСервисаСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторВМоделиСервисаСлужебный"); - МодульАдресныйКлассификаторВМоделиСервисаСлужебный.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменСообщениями") Тогда - МодульОбменСообщениямиВнутренний = ОбщегоНазначения.ОбщийМодуль("ОбменСообщениямиВнутренний"); - МодульОбменСообщениямиВнутренний.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда - МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); - МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда - МодульОчередьЗаданийСлужебныйРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебныйРазделениеДанных"); - МодульОчередьЗаданийСлужебныйРазделениеДанных.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РезервноеКопированиеОбластейДанных") Тогда - МодульРезервноеКопированиеОбластейДанных = ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеОбластейДанных"); - МодульРезервноеКопированиеОбластейДанных.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ФайловыеФункцииВМоделиСервиса") Тогда - МодульФайловыеФункцииСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ФайловыеФункцииСлужебныйВМоделиСервиса"); - МодульФайловыеФункцииСлужебныйВМоделиСервиса.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда - МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный"); - МодульУправлениеДоступомСлужебный.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); - КонецЕсли; - -КонецПроцедуры - -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПослеЗагрузкиДанных. -Процедура ПослеЗагрузкиДанных(Контейнер) Экспорт - - ПользователиСлужебный.ПослеЗагрузкиДанных(Контейнер); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда - МодульРегламентныеЗаданияСлужебный = ОбщегоНазначения.ОбщийМодуль("РегламентныеЗаданияСлужебный"); - МодульРегламентныеЗаданияСлужебный.ПослеЗагрузкиДанных(Контейнер); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.ПослеЗагрузкиДанных(Контейнер); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("РаботаВМоделиСервиса.ВалютыВМоделиСервиса") Тогда - МодульКурсыВалютСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("КурсыВалютСлужебныйВМоделиСервиса"); - МодульКурсыВалютСлужебныйВМоделиСервиса.ПослеЗагрузкиДанных(Контейнер); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульОчередьЗаданийСлужебныйРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебныйРазделениеДанных"); - МодульОчередьЗаданийСлужебныйРазделениеДанных.ПослеЗагрузкиДанных(Контейнер); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда - МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); - МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ПослеЗагрузкиДанных(Контейнер); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.УправлениеДоступомВМоделиСервиса") Тогда - МодульУправлениеДоступомСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебныйВМоделиСервиса"); - МодульУправлениеДоступомСлужебныйВМоделиСервиса.ПослеЗагрузкиДанных(Контейнер); - КонецЕсли; - - ОбновлениеИнформационнойБазыСлужебный.ПослеЗагрузкиДанных(Контейнер); - -КонецПроцедуры - -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. -Процедура ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда - МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный"); - МодульУправлениеДоступомСлужебный.ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -// Конец ТехнологияСервиса.БазоваяФункциональность - -#КонецОбласти - -#КонецОбласти - -// Обработка программных событий, возникающих в подсистемах БСП. -// Только для вызовов из библиотеки БСП в БТС. - -#Область СлужебныйПрограммныйИнтерфейс - -#Область БазоваяФункциональность - -// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок. -Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок); - КонецЕсли; - -КонецПроцедуры - -// См. ПриОтправкеДанныхГлавному в синтакс-помощнике. -Процедура ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель); - КонецЕсли; - -КонецПроцедуры - -// См. ПриОтправкеДанныхПодчиненному в синтакс-помощнике. -Процедура ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза, Получатель) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза, Получатель); - КонецЕсли; - -КонецПроцедуры - -// См. ПриПолученииДанныхОтГлавного в синтакс-помощнике. -Процедура ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); - КонецЕсли; - -КонецПроцедуры - -// См. ПриПолученииДанныхОтПодчиненного в синтакс-помощнике. -Процедура ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); - КонецЕсли; - -КонецПроцедуры - -// См. РаботаВМоделиСервисаПереопределяемый.ПриВключенииРазделенияПоОбластямДанных. -Процедура ПриВключенииРазделенияПоОбластямДанных() Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриВключенииРазделенияПоОбластямДанных(); - КонецЕсли; - -КонецПроцедуры - -// См. ОбщегоНазначенияПереопределяемый.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов. -Процедура ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(Знач СтруктураПоддерживаемыхВерсий) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(СтруктураПоддерживаемыхВерсий); - КонецЕсли; - -КонецПроцедуры - -// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиентаПриЗапуске. -Процедура ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры); - КонецЕсли; - -КонецПроцедуры - -// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиента. -Процедура ПриДобавленииПараметровРаботыКлиента(Параметры) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриДобавленииПараметровРаботыКлиента(Параметры); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область ДополнительныеОтчетыИОбработки - -// Вызывается при определении наличия у текущего пользователя права на добавление дополнительного -// отчета или обработки в область данных. -// -// Параметры: -// ДополнительнаяОбработка - СправочникОбъект.ДополнительныеОтчетыИОбработки, элемент справочника, -// который записывается пользователем. -// Результат - Булево, в этот параметр в данной процедуре устанавливается флаг наличия права, -// СтандартнаяОбработка - Булево, в этот параметр в данной процедуре устанавливается флаг выполнения -// стандартной обработки проверки права. -// -Процедура ПриПроверкеПраваДобавления(Знач ДополнительнаяОбработка, Результат, СтандартнаяОбработка) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриПроверкеПраваДобавления(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); - КонецЕсли; - -КонецПроцедуры - -// Вызывается при проверке возможности загрузки дополнительного отчета или обработки из файла. -// -// Параметры: -// ДополнительнаяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки, -// Результат - Булево, в этот параметр в данной процедуре устанавливается флаг наличия возможности -// загрузки дополнительного отчета или обработки из файла, -// СтандартнаяОбработка - Булево, в этот параметр в данной процедуре устанавливается флаг выполнения -// стандартной обработки проверки возможности загрузки дополнительного отчета или обработки из файла. -// -Процедура ПриПроверкеВозможностиЗагрузкиОбработкиИзФайла(Знач ДополнительнаяОбработка, Результат, СтандартнаяОбработка) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриПроверкеВозможностиЗагрузкиОбработкиИзФайла(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); - КонецЕсли; - -КонецПроцедуры - -// Вызывается при проверке возможности выгрузки дополнительного отчета или обработки в файл. -// -// Параметры: -// ДополнительнаяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки, -// Результат - Булево, в этот параметр в данной процедуре устанавливается флаг наличия возможности -// выгрузки дополнительного отчета или обработки в файл, -// СтандартнаяОбработка - Булево, в этот параметр в данной процедуре устанавливается флаг выполнения -// стандартной обработки проверки возможности выгрузки дополнительного отчета или обработки в файл. -// -Процедура ПриПроверкеВозможностиВыгрузкиОбработкиВФайл(Знач ДополнительнаяОбработка, Результат, СтандартнаяОбработка) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриПроверкеВозможностиВыгрузкиОбработкиВФайл(ДополнительнаяОбработка, Результат, СтандартнаяОбработка); - КонецЕсли; - -КонецПроцедуры - -// Заполняет виды публикации дополнительных отчетов и обработок, недоступные для использования -// в текущей модели информационной базы. -// -// Параметры: -// НедоступныеВидыПубликации - Массив строк. -// -Процедура ПриЗаполненииНедоступныхВидовПубликации(Знач НедоступныеВидыПубликации) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриЗаполненииНедоступныхВидовПубликации(НедоступныеВидыПубликации); - КонецЕсли; - -КонецПроцедуры - -// Процедура должна вызываться из события ПередЗаписью справочника -// ДополнительныеОтчетыИОбработки, выполняет проверку правомерности изменения реквизитов -// элементов данного справочника для дополнительных обработок, полученных из -// каталога дополнительных обработок менеджера сервиса. -// -// Параметры: -// Источник - СправочникОбъект.ДополнительныеОтчетыИОбработки, -// Отказ - булево, флаг отказа от выполнения записи элемента справочника. -// -Процедура ПередЗаписьюДополнительнойОбработки(Источник, Отказ) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПередЗаписьюДополнительнойОбработки(Источник, Отказ); - КонецЕсли; - -КонецПроцедуры - -// Процедура должна вызываться из события ПередУдалением справочника -// ДополнительныеОтчетыИОбработки. -// -// Параметры: -// Источник - СправочникОбъект.ДополнительныеОтчетыИОбработки, -// Отказ - булево, флаг отказа от выполнения удаления элемента справочника из информационной базы. -// -Процедура ПередУдалениемДополнительнойОбработки(Источник, Отказ) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПередУдалениемДополнительнойОбработки(Источник, Отказ); - КонецЕсли; - -КонецПроцедуры - -// Вызывается при получении регистрационных данных для нового дополнительного отчета -// или обработки. -// -Процедура ПриПолученииРегистрационныхДанных(Объект, РегистрационныеДанные, СтандартнаяОбработка) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриПолученииРегистрационныхДанных(Объект, РегистрационныеДанные, СтандартнаяОбработка); - КонецЕсли; - -КонецПроцедуры - -// Вызывается при подключении внешней обработки. -// -// Параметры: -// Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки, -// СтандартнаяОбработка - Булево, флаг необходимости выполнения стандартной обработки подключения -// внешней обработки, -// Результат - Строка - имя подключенного внешнего отчета или обработки (в том случае, если в обработчике -// для параметра СтандартнаяОбработка было установлено значение Ложь). -// -Процедура ПриПодключенииВнешнейОбработки(Знач Ссылка, СтандартнаяОбработка, Результат) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриПодключенииВнешнейОбработки(Ссылка, СтандартнаяОбработка, Результат); - КонецЕсли; - -КонецПроцедуры - -// Вызывается при создании объекта внешней обработки. -// -// Параметры: -// Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки, -// СтандартнаяОбработка - Булево, флаг необходимости выполнения стандартной обработки подключения -// внешней обработки, -// Результат - ВнешняяОбработкаОбъект, ВнешнийОтчетОбъект - объект подключенного внешнего отчета или -// обработки (в том случае, если в обработчике для параметра СтандартнаяОбработка было установлено значение Ложь). -// -Процедура ПриСозданииВнешнейОбработки(Знач Ссылка, СтандартнаяОбработка, Результат) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриСозданииВнешнейОбработки(Ссылка, СтандартнаяОбработка, Результат); - КонецЕсли; - -КонецПроцедуры - -// Вызывается перед записью изменений регламентного задания дополнительных отчетов и обработок в модели сервиса. -// -// Параметры: -// Объект - СправочникОбъект.ДополнительныеОтчетыИОбработки - Объект дополнительного отчета или обработки. -// Команда - СправочникТабличнаяЧастьСтрока.ДополнительныеОтчетыИОбработки.Команды - Описание команды. -// Задание - РегламентноеЗадание, СтрокаТаблицыЗначений - Описание регламентного задания. -// См. описание возвращаемого значения функции РегламентныеЗаданияСервер.Задание(). -// Изменения - Структура - Значения реквизитов задания, которые необходимо изменить. -// См. описание 2го параметра процедуры РегламентныеЗаданияСервер.ИзменитьЗадание(). -// Если установить Неопределено, то регламентное задание не будет изменено. -// -Процедура ПередОбновлениемЗадания(Объект, Команда, Задание, Изменения) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПередОбновлениемЗадания(Объект, Команда, Задание, Изменения); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область ОбновлениеВерсииИБ - -// Позволяет переопределить приоритет обновления, по умолчанию получаемый из константы СведенияОбОбновленииИБ. -// Например, БТС может переопределить приоритет обновления для каждой области данных в режиме сервиса. -// -// Параметры: -// Приоритет - Строка - новое значение приоритета обновления (возвращаемое). Возвращать можно следующие значения: -// * "РаботаПользователей" - приоритет на обработку пользователей (в один поток); -// * "ОбработкаДанных" - приоритет на обработку данных (в несколько потоков); -// * Любое другое - использовать приоритет из константы СведенияОбОбновленииИБ (не переопределять). -// -Процедура ПриПолученииПриоритетаОбновления(Приоритет) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - ТребуемаяВерсияБТС = "1.0.17.3"; - МодульТехнологияСервиса = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервиса"); - ТекущаяВерсияБТС = МодульТехнологияСервиса.ВерсияБиблиотеки(); - - Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ТекущаяВерсияБТС, ТребуемаяВерсияБТС) >= 0 Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриПолученииПриоритетаОбновленияВОбластяхДанных(Приоритет); - КонецЕсли; - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область Пользователи - -// Вызывается, если не удалось найти пользователя в справочнике, который -// соответствует текущему пользователю ИБ. При этом можно включить автоматическое -// создание элемента справочника Пользователи для текущего пользователя. -// -// Параметры: -// СоздатьПользователя - Булево - (возвращаемое значение) - если указать Истина, -// то автоматически будет создан пользователь в справочнике. -// Переопределить свойства создаваемого пользователя можно перед его записью -// в процедуре ПриАвтоматическомСозданииТекущегоПользователяВСправочнике. -// -Процедура ПриОтсутствииТекущегоПользователяВСправочнике(СоздатьПользователя) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриОтсутствииТекущегоПользователяВСправочнике(СоздатьПользователя); - КонецЕсли; - -КонецПроцедуры - -// Вызывается при автоматическом создании элемента справочника Пользователи в момент -// интерактивного входа пользователя или при первом обращении из кода. -// -// Параметры: -// НовыйПользователь - СправочникОбъект.Пользователи - новый пользователь перед записью. -// -Процедура ПриАвтоматическомСозданииТекущегоПользователяВСправочнике(НовыйПользователь) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриАвтоматическомСозданииТекущегоПользователяВСправочнике(НовыйПользователь); - КонецЕсли; - -КонецПроцедуры - -// Вызывается при авторизации нового пользователя информационной базы. -// -// Параметры: -// ПользовательИБ - ПользовательИнформационнойБазы, текущий пользователь информационной базы, -// СтандартнаяОбработка - Булево, значение может быть установлено внутри обработчика, в этом случае -// стандартная обработка авторизации нового пользователя ИБ выполняться не будет. -// -Процедура ПриАвторизацииНовогоПользователяИБ(ПользовательИБ, СтандартнаяОбработка) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриАвторизацииНовогоПользователяИБ(ПользовательИБ, СтандартнаяОбработка); - КонецЕсли; - -КонецПроцедуры - -// Вызывается при начале обработки пользователя информационной базы. -// -// Параметры: -// ПараметрыОбработки - Структура, см. комментарий к процедуре НачатьОбработкуПользователяИБ(). -// ОписаниеПользователяИБ - Структура, см. комментарий к процедуре НачатьОбработкуПользователяИБ(). -// -Процедура ПриНачалеОбработкиПользователяИБ(ПараметрыОбработки, ОписаниеПользователяИБ) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриНачалеОбработкиПользователяИБ(ПараметрыОбработки, ОписаниеПользователяИБ); - КонецЕсли; - -КонецПроцедуры - -// Вызывается перед записью пользователя информационной базы. -// -// Параметры: -// ПользовательИБ - ПользовательИнформационнойБазы - пользователь, который будет записан. -// -Процедура ПередЗаписьюПользователяИБ(ПользовательИБ) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПередЗаписьюПользователяИБ(ПользовательИБ); - КонецЕсли; - -КонецПроцедуры - -// Вызывается перед удалением пользователя информационной базы. -// -// Параметры: -// ПользовательИБ - ПользовательИнформационнойБазы - пользователь, который будет удален. -// -Процедура ПередУдалениемПользователяИБ(ПользовательИБ) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПередУдалениемПользователяИБ(ПользовательИБ); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область ПрофилиБезопасности - -// Вызывается при проверке возможности настройки профилей безопасности. -// -// Параметры: -// Отказ - Булево. Если для информационной базы недоступно использование профилей безопасности - -// значение данного параметра нужно установить равным Истина. -// -Процедура ПриПроверкеВозможностиНастройкиПрофилейБезопасности(Отказ) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриПроверкеВозможностиНастройкиПрофилейБезопасности(Отказ); - КонецЕсли; - -КонецПроцедуры - -// См. РаботаВБезопасномРежимеПереопределяемый.ПриЗапросеРазрешенийНаИспользованиеВнешнихРесурсов. -Процедура ПриЗапросеРазрешенийНаИспользованиеВнешнихРесурсов(Знач ПрограммныйМодуль, Знач Владелец, Знач РежимЗамещения, Знач ДобавляемыеРазрешения, Знач УдаляемыеРазрешения, СтандартнаяОбработка, Результат) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриЗапросеРазрешенийНаИспользованиеВнешнихРесурсов(ПрограммныйМодуль, Владелец, РежимЗамещения, ДобавляемыеРазрешения, УдаляемыеРазрешения, СтандартнаяОбработка, Результат); - КонецЕсли; - -КонецПроцедуры - -// См. РаботаВБезопасномРежимеПереопределяемый.ПриЗапросеСозданияПрофиляБезопасности. -Процедура ПриЗапросеСозданияПрофиляБезопасности(Знач ПрограммныйМодуль, СтандартнаяОбработка, Результат) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриЗапросеСозданияПрофиляБезопасности(ПрограммныйМодуль, СтандартнаяОбработка, Результат); - КонецЕсли; - -КонецПроцедуры - -// См. РаботаВБезопасномРежимеПереопределяемый.ПриЗапросеУдаленияПрофиляБезопасности. -Процедура ПриЗапросеУдаленияПрофиляБезопасности(Знач ПрограммныйМодуль, СтандартнаяОбработка, Результат) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриЗапросеУдаленияПрофиляБезопасности(ПрограммныйМодуль, СтандартнаяОбработка, Результат); - КонецЕсли; - -КонецПроцедуры - -// См. РаботаВБезопасномРежимеПереопределяемый.ПриПодключенииВнешнегоМодуля. -Процедура ПриПодключенииВнешнегоМодуля(Знач ВнешнийМодуль, БезопасныйРежим) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриПодключенииВнешнегоМодуля(ВнешнийМодуль, БезопасныйРежим); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область РаботаВМоделиСервиса_БазоваяФункциональностьВМоделиСервиса - -// См. РаботаВМоделиСервисаПереопределяемый.ПриЗаполненииТаблицыПараметровИБ. -Процедура ПриЗаполненииТаблицыПараметровИБ(Знач ТаблицаПараметров) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров); - КонецЕсли; - -КонецПроцедуры - -// Вызывается при определении псевдонима пользователя для отображения в интерфейсе. -// -// Параметры: -// ИдентификаторПользователя - УникальныйИдентификатор, -// Псевдоним - Строка, псевдоним пользователя. -// -Процедура ПриОпределенииПсевдонимаПользователя(ИдентификаторПользователя, Псевдоним) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриОпределенииПсевдонимаПользователя(ИдентификаторПользователя, Псевдоним); - КонецЕсли; - -КонецПроцедуры - -// Вызывается при определении списка метаданных, которые являются не разделенными -// и которые можно записывать из разделенного сеанса. Процедура должна в массив Исключения добавить ссылки -// на исключаемые при проверке объекты метаданных. Эти метаданные могут отсутствовать в подписках, которые -// проверяют запрет на запись неразделенных данных из разделенного сеанса. -Процедура ПриОпределенииИсключенийНеразделенныхДанных(Исключения) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриОпределенииИсключенийНеразделенныхДанных(Исключения); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область РаботаВМоделиСервиса_ОбменСообщениями - -// См. ОбменСообщениямиПереопределяемый.ПолучитьОбработчикиКаналовСообщений. -Процедура ПриОпределенииОбработчиковКаналовСообщений(Обработчики) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриОпределенииОбработчиковКаналовСообщений(Обработчики); - КонецЕсли; - -КонецПроцедуры - -// См. ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.ЗаполнитьОбработчикиПринимаемыхСообщений. -Процедура РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков); - КонецЕсли; - -КонецПроцедуры - -// См. ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.ЗаполнитьОбработчикиОтправляемыхСообщений. -Процедура РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков); - КонецЕсли; - -КонецПроцедуры - -// См. ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.ПриОпределенииВерсииИнтерфейсаКорреспондента. -Процедура ПриОпределенииВерсииИнтерфейсаКорреспондента(Знач ИнтерфейсСообщения, Знач ПараметрыПодключения, Знач ПредставлениеПолучателя, Результат) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриОпределенииВерсииИнтерфейсаКорреспондента(ИнтерфейсСообщения, ПараметрыПодключения, ПредставлениеПолучателя, Результат); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область РаботаВМоделиСервиса_ОчередьЗаданий - -// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. -Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриПолученииСпискаШаблонов(ШаблоныЗаданий); - КонецЕсли; - -КонецПроцедуры - -// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков. -Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); - КонецЕсли; - -КонецПроцедуры - -// См. ОчередьЗаданийПереопределяемый.ПриОпределенииОбработчиковОшибок. -Процедура ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок); - КонецЕсли; - -КонецПроцедуры - -// См. ОчередьЗаданийПереопределяемый.ПриОпределенииИспользованияРегламентныхЗаданий. -Процедура ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область РаботаВМоделиСервиса_ПоставляемыеДанные - -// См. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных. -Процедура ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область РегламентныеЗадания - -// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий. -Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервиса = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервиса"); - Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(МодульТехнологияСервиса.ВерсияБиблиотеки(), "1.0.13.1") >= 0 Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриОпределенииНастроекРегламентныхЗаданий(Настройки); - КонецЕсли; - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область УправлениеДоступом - -// Вызывается при обновлении ролей пользователя информационной базы. -// -// Параметры: -// ИдентификаторПользователяИБ - УникальныйИдентификатор, -// Отказ - Булево. При установке значения параметра в значение Ложь внутри обработчика события -// обновление ролей для этого пользователя информационной базы будет пропущено. -// -Процедура ПриОбновленииРолейПользователяИБ(ИдентификаторПользователяИБ, Отказ) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП"); - МодульТехнологияСервисаИнтеграцияСБСП.ПриОбновленииРолейПользователяИБ(ИдентификаторПользователяИБ, Отказ); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#КонецОбласти diff --git a/SSL/src/CommonModules/ИнтеграцияСТехнологиейСервисаКлиент/Module.bsl b/SSL/src/CommonModules/ИнтеграцияСТехнологиейСервисаКлиент/Module.bsl deleted file mode 100644 index 0d9250d29..000000000 --- a/SSL/src/CommonModules/ИнтеграцияСТехнологиейСервисаКлиент/Module.bsl +++ /dev/null @@ -1,93 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////////// -// Интеграция с Библиотекой технологий сервиса (БТС) -// Здесь размещена обработка программных событий, возникающих в подсистемах БСП, -// и в обратную сторону. -// - - -// Обработка программных событий, возникающих в подсистемах БСП. -// Только для вызовов из библиотеки БСП в БТС. - -#Область СлужебныйПрограммныйИнтерфейс - -#Область БазоваяФункциональность - -// См. ОбщегоНазначенияКлиентПереопределяемый.ПриНачалеРаботыСистемы. -Процедура ПриНачалеРаботыСистемы(Параметры) Экспорт - - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСПКлиент"); - МодульТехнологияСервисаИнтеграцияСБСПКлиент.ПриНачалеРаботыСистемы(Параметры); - КонецЕсли; - -КонецПроцедуры - -// См. ОбщегоНазначенияКлиентПереопределяемый.ПередЗавершениемРаботыСистемы. -Процедура ПередЗавершениемРаботыСистемы(Отказ, Предупреждения) Экспорт - - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСПКлиент"); - МодульТехнологияСервисаИнтеграцияСБСПКлиент.ПередЗавершениемРаботыСистемы(Отказ, Предупреждения); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область ЗавершениеРаботыПользователей - -// Вызывается при завершении сеанса средствами подсистемы ЗавершениеРаботыПользователей. -// -// Параметры: -// ФормаВладелец - УправляемаяФорма, из которой выполняется завершение сеанса, -// НомераСеансов - Число (8,0,+) - номер сеанса, который будет завершен, -// СтандартнаяОбработка - Булево, флаг выполнения стандартной обработки завершения сеанса -// (подключение к агенту сервера через COM-соединение или сервер администрирования с -// запросом параметров подключения к кластеру у текущего пользователя). Может быть -// установлен в значение Ложь внутри обработчика события, в этом случае стандартная -// обработка завершения сеанса выполняться не будет, -// ОповещениеПослеЗавершенияСеанса - ОписаниеОповещения - описание оповещения, которое должно -// быть вызвано после завершения сеанса (для автоматического обновления списка активных -// пользователей). При установке значения параметра СтандартнаяОбработка равным Ложь, -// после успешного завершения сеанса, для переданного описания оповещения должна быть -// выполнена обработка с помощью метода ВыполнитьОбработкуОповещения (в качестве значения -// параметра Результат следует передавать КодВозвратаДиалога.ОК при успешном завершении -// сеанса). Параметр может быть опущен - в этом случае выполнять обработку оповещения не -// следует. -// -Процедура ПриЗавершенииСеансов(ФормаВладелец, Знач НомераСеансов, СтандартнаяОбработка, Знач ОповещениеПослеЗавершенияСеанса = Неопределено) Экспорт - - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСПКлиент"); - МодульТехнологияСервисаИнтеграцияСБСПКлиент.ПриЗавершенииСеансов(ФормаВладелец, НомераСеансов, СтандартнаяОбработка, ОповещениеПослеЗавершенияСеанса); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область ПрофилиБезопасности - -// См. РаботаВБезопасномРежимеКлиентПереопределяемый.ПриПодтвержденииЗапросовНаИспользованиеВнешнихРесурсов. -Процедура ПриПодтвержденииЗапросовНаИспользованиеВнешнихРесурсов(Знач ИдентификаторыЗапросов, ФормаВладелец, - ОповещениеОЗакрытии, СтандартнаяОбработка) Экспорт - - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда - МодульТехнологияСервисаИнтеграцияСБСПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСПКлиент"); - МодульТехнологияСервисаИнтеграцияСБСПКлиент.ПриПодтвержденииЗапросовНаИспользованиеВнешнихРесурсов(ИдентификаторыЗапросов, - ФормаВладелец, ОповещениеОЗакрытии, СтандартнаяОбработка); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#КонецОбласти diff --git a/SSL/src/CommonModules/ИнтеграцияСТехнологиейСервисаКлиент/ИнтеграцияСТехнологиейСервисаКлиент.mdo b/SSL/src/CommonModules/ИнтеграцияСТехнологиейСервисаКлиент/ИнтеграцияСТехнологиейСервисаКлиент.mdo deleted file mode 100644 index f5c008884..000000000 --- a/SSL/src/CommonModules/ИнтеграцияСТехнологиейСервисаКлиент/ИнтеграцияСТехнологиейСервисаКлиент.mdo +++ /dev/null @@ -1,10 +0,0 @@ - - - ИнтеграцияСТехнологиейСервисаКлиент - - ru - Интеграция с технологией сервиса клиент - - true - true - diff --git a/SSL/src/CommonModules/ИнтерфейсODataСлужебный/Module.bsl b/SSL/src/CommonModules/ИнтерфейсODataСлужебный/Module.bsl new file mode 100644 index 000000000..aecd40b68 --- /dev/null +++ b/SSL/src/CommonModules/ИнтерфейсODataСлужебный/Module.bsl @@ -0,0 +1,315 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +// Возвращает объект метаданных по типу ссылки +// +// Параметры: +// ТипСсылки - Тип, +// +// Возвращаемое значение: ОбъектМетаданных. +// +Функция ОбъектМетаданныхПоТипуСсылки(Знач ТипСсылки) Экспорт + + БизнесПроцесс = СсылкиТочекМаршрутаБизнесПроцессов().Получить(ТипСсылки); + Если БизнесПроцесс = Неопределено Тогда + Ссылка = Новый(ТипСсылки); + МетаданныеСсылки = Ссылка.Метаданные(); + Иначе + МетаданныеСсылки = Метаданные.БизнесПроцессы[БизнесПроцесс]; + КонецЕсли; + + Возврат МетаданныеСсылки; + +КонецФункции + +// Возвращает: ссылочный ли это тип или нет. +// +// Параметры: +// ПроверяемыйТип - Тип - проверяемый тип. +// +// Возвращаемое значение: +// Истина - если тип примитивный. +// +Функция ЭтоСсылочныйТип(Знач ПроверяемыйТип) Экспорт + + Возврат ОписаниеСсылочныхТипов().СодержитТип(ПроверяемыйТип); + +КонецФункции + +// Проверяет, что тип содержит набор ссылочных типов. +// +// Параметры: +// ОписаниеТипов - ОписаниеТипов. +// +// Возвращаемое значение: Булево. +// +Функция ЭтоНаборТиповСсылок(Знач ОписаниеТипов) Экспорт + + Если ОписаниеТипов.Типы().Количество() < 2 Тогда + Возврат Ложь; + КонецЕсли; + + СериализацияОписанияТипов = СериализаторXDTO.ЗаписатьXDTO(ОписаниеТипов); + + Если СериализацияОписанияТипов.TypeSet.Количество() > 0 Тогда + + СодержитНаборыСсылок = Ложь; + + Для Каждого НаборТипов Из СериализацияОписанияТипов.TypeSet Цикл + + Если НаборТипов.URIПространстваИмен = "http://v8.1c.ru/8.1/data/enterprise/current-config" Тогда + + Если НаборТипов.ЛокальноеИмя = "AnyRef" + ИЛИ НаборТипов.ЛокальноеИмя = "CatalogRef" + ИЛИ НаборТипов.ЛокальноеИмя = "DocumentRef" + ИЛИ НаборТипов.ЛокальноеИмя = "BusinessProcessRef" + ИЛИ НаборТипов.ЛокальноеИмя = "TaskRef" + ИЛИ НаборТипов.ЛокальноеИмя = "ChartOfAccountsRef" + ИЛИ НаборТипов.ЛокальноеИмя = "ExchangePlanRef" + ИЛИ НаборТипов.ЛокальноеИмя = "ChartOfCharacteristicTypesRef" + ИЛИ НаборТипов.ЛокальноеИмя = "ChartOfCalculationTypesRef" Тогда + + СодержитНаборыСсылок = Истина; + Прервать; + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + Возврат СодержитНаборыСсылок; + + Иначе + Возврат Ложь; + КонецЕсли; + +КонецФункции + +// Проверяет, является ли переданный объект метаданных последовательности. +// +// Параметры: +// ОбъектМетаданных - проверяемый объект метаданных. +// +// Возвращаемое значение: Булево. +// +Функция ЭтоНаборЗаписейПоследовательности(Знач ОбъектМетаданных) Экспорт + + Возврат ЭтоОбъектМетаданныхКласса(ОбъектМетаданных, ИнтерфейсODataСлужебныйПовтИсп.КлассыМетаданныхВМоделиКонфигурации().Последовательности); + +КонецФункции + +// Проверяет, является ли переданный объект метаданных перерасчетом. +// +// Параметры: +// ОбъектМетаданных - проверяемый объект метаданных. +// +// Возвращаемое значение: Булево. +// +Функция ЭтоНаборЗаписейПерерасчета(Знач ОбъектМетаданных) Экспорт + + Возврат ЭтоОбъектМетаданныхКласса(ОбъектМетаданных, ИнтерфейсODataСлужебныйПовтИсп.КлассыМетаданныхВМоделиКонфигурации().Перерасчеты); + +КонецФункции + +// Проверяет, является ли переданный объект метаданных набором записей. +// +// Параметры: +// ОбъектМетаданных - проверяемый объект метаданных. +// +// Возвращаемое значение: Булево. +// +Функция ЭтоНаборЗаписей(Знач ОбъектМетаданных) Экспорт + + КлассыМетаданных = ИнтерфейсODataСлужебныйПовтИсп.КлассыМетаданныхВМоделиКонфигурации(); + Возврат ЭтоОбъектМетаданныхКласса(ОбъектМетаданных, КлассыМетаданных.РегистрыСведений) + Или ЭтоОбъектМетаданныхКласса(ОбъектМетаданных, КлассыМетаданных.РегистрыНакопления) + Или ЭтоОбъектМетаданныхКласса(ОбъектМетаданных, КлассыМетаданных.РегистрыБухгалтерии) + Или ЭтоОбъектМетаданныхКласса(ОбъектМетаданных, КлассыМетаданных.РегистрыРасчета) + Или ЭтоНаборЗаписейПоследовательности(ОбъектМетаданных) + Или ЭтоНаборЗаписейПерерасчета(ОбъектМетаданных); + +КонецФункции + +#Область ОбработчикиСобытий + +Процедура ПередВыгрузкойДанных(Контейнер) Экспорт + + Состав = ОбщегоНазначения.ВычислитьВБезопасномРежиме("ПолучитьСоставСтандартногоИнтерфейсаOData()"); + СериализуемыйСостав = Новый Массив(); + + Для Каждого ЭлементСостава Из Состав Цикл + СериализуемыйСостав.Добавить(ЭлементСостава.ПолноеИмя()); + КонецЦикла; + + ИмяФайла = Контейнер.СоздатьПроизвольныйФайл("xml", ТипДанныхДляСоставаСтандартногоИнтерфейсаOData()); + + ПотокЗаписи = Новый ЗаписьXML(); + ПотокЗаписи.ОткрытьФайл(ИмяФайла); + + Сериализатор = СериализаторXDTO; + ПотокЗаписи.ЗаписатьНачалоЭлемента("Data"); + + ПрефиксыПространствИмен = ПрефиксыПространствИмен(); + Для Каждого ПрефиксПространстваИмен Из ПрефиксыПространствИмен Цикл + ПотокЗаписи.ЗаписатьСоответствиеПространстваИмен(ПрефиксПространстваИмен.Значение, ПрефиксПространстваИмен.Ключ); + КонецЦикла; + + Сериализатор.ЗаписатьXML(ПотокЗаписи, СериализуемыйСостав, НазначениеТипаXML.Явное); + + ПотокЗаписи.ЗаписатьКонецЭлемента(); + ПотокЗаписи.Закрыть(); + +КонецПроцедуры + +Процедура ПередЗагрузкойДанных(Контейнер) Экспорт + + ИмяФайла = Контейнер.ПолучитьПроизвольныйФайл(ТипДанныхДляСоставаСтандартногоИнтерфейсаOData()); + + ПотокЧтения = Новый ЧтениеXML(); + ПотокЧтения.ОткрытьФайл(ИмяФайла); + ПотокЧтения.ПерейтиКСодержимому(); + + Если ПотокЧтения.ТипУзла <> ТипУзлаXML.НачалоЭлемента + Или ПотокЧтения.Имя <> "Data" Тогда + + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка чтения XML. Неверный формат файла. Ожидается начало элемента %1.'"), "Data"); + + КонецЕсли; + + Если Не ПотокЧтения.Прочитать() Тогда + ВызватьИсключение НСтр("ru = 'Ошибка чтения XML. Обнаружено завершение файла.'"); + КонецЕсли; + + Состав = СериализаторXDTO.ПрочитатьXML(ПотокЧтения); + ПотокЧтения.Закрыть(); + + Если Состав.Количество() > 0 Тогда + ОбщегоНазначения.ВыполнитьВБезопасномРежиме("УстановитьСоставСтандартногоИнтерфейсаOData(Параметры)", Состав); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Возвращает описание типов, содержащее все ссылочные типы объектов метаданных, существующих +// в конфигурации. +// +// Возвращаемое значение: ОписаниеТипов. +// +Функция ОписаниеСсылочныхТипов() + + ОписаниеТипаЛюбаяСсылкаXDTO = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://v8.1c.ru/8.1/data/core", "TypeDescription")); + ОписаниеТипаЛюбаяСсылкаXDTO.TypeSet.Добавить(СериализаторXDTO.ЗаписатьXDTO(Новый РасширенноеИмяXML( + "http://v8.1c.ru/8.1/data/enterprise/current-config", "AnyRef"))); + ОписаниеТипаЛюбаяСсылка = СериализаторXDTO.ПрочитатьXDTO(ОписаниеТипаЛюбаяСсылкаXDTO); + + Возврат ОписаниеТипаЛюбаяСсылка; + +КонецФункции + +// Возвращает ссылки точек маршрута бизнес-процессов. +// +// Возвращаемое значение: ФиксированноеСоответствие: +// * Ключ - Тип - тип ТочкаМаршрутаБизнесПроцессаСсылка, +// * Значение - Строка - имя бизнес-процесса. +// +Функция СсылкиТочекМаршрутаБизнесПроцессов() + + СсылкиТочекМаршрутаБизнесПроцессов = Новый Соответствие(); + Для Каждого БизнесПроцесс Из Метаданные.БизнесПроцессы Цикл + СсылкиТочекМаршрутаБизнесПроцессов.Вставить(Тип("ТочкаМаршрутаБизнесПроцессаСсылка." + БизнесПроцесс.Имя), БизнесПроцесс.Имя); + КонецЦикла; + + Возврат Новый ФиксированноеСоответствие(СсылкиТочекМаршрутаБизнесПроцессов); + +КонецФункции + +Функция СвойстваОбъектаМоделиКонфигурации(Знач Модель, Знач ОбъектМетаданных) Экспорт + + Если ТипЗнч(ОбъектМетаданных) = Тип("ОбъектМетаданных") Тогда + Имя = ОбъектМетаданных.Имя; + ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); + Иначе + ПолноеИмя = ОбъектМетаданных; + Имя = СтрРазделить(ПолноеИмя, ".").Получить(1); + КонецЕсли; + + Для Каждого КлассМодели Из Модель Цикл + + ОписаниеОбъекта = КлассМодели.Значение.Получить(Имя); + + Если ОписаниеОбъекта <> Неопределено Тогда + + Если ПолноеИмя = ОписаниеОбъекта.ПолноеИмя Тогда + + Возврат ОписаниеОбъекта; + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + +КонецФункции + +Функция ЭтоОбъектМетаданныхКласса(Знач ОбъектМетаданных, Знач Класс) Экспорт + + Если ТипЗнч(ОбъектМетаданных) = Тип("ОбъектМетаданных") Тогда + Имя = ОбъектМетаданных.Имя; + ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); + Иначе + ПолноеИмя = ОбъектМетаданных; + Имя = СтрРазделить(ПолноеИмя, ".").Получить(1); + КонецЕсли; + + ГруппаМодели = ИнтерфейсODataСлужебныйПовтИсп.ОписаниеМоделиДанныхКонфигурации().Получить(Класс); + + ОписаниеОбъекта = ГруппаМодели.Получить(Имя); + + Если ОписаниеОбъекта <> Неопределено Тогда + + Возврат ПолноеИмя = ОписаниеОбъекта.ПолноеИмя; + + Иначе + + Возврат Ложь; + + КонецЕсли; + +КонецФункции + +Функция ТипДанныхДляСоставаСтандартногоИнтерфейсаOData() + + Возврат "StandardODataInterfaceContent"; // Не локализуется + +КонецФункции + +Функция ПрефиксыПространствИмен() + + Результат = Новый Соответствие(); + + Результат.Вставить("http://www.w3.org/2001/XMLSchema", "xs"); + Результат.Вставить("http://www.w3.org/2001/XMLSchema-instance", "xsi"); + Результат.Вставить("http://v8.1c.ru/8.1/data/core", "v8"); + Результат.Вставить("http://v8.1c.ru/8.1/data/enterprise", "ns"); + Результат.Вставить("http://v8.1c.ru/8.1/data/enterprise/current-config", "cc"); + Результат.Вставить("http://www.1c.ru/1cFresh/Data/Dump/1.0.2.1", "dmp"); + + Возврат Новый ФиксированноеСоответствие(Результат); + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ПоставляемыеДанные/ПоставляемыеДанные.mdo b/SSL/src/CommonModules/ИнтерфейсODataСлужебный/ИнтерфейсODataСлужебный.mdo similarity index 63% rename from SSL/src/CommonModules/ПоставляемыеДанные/ПоставляемыеДанные.mdo rename to SSL/src/CommonModules/ИнтерфейсODataСлужебный/ИнтерфейсODataСлужебный.mdo index 82a1ba7d7..a0023a8c2 100644 --- a/SSL/src/CommonModules/ПоставляемыеДанные/ПоставляемыеДанные.mdo +++ b/SSL/src/CommonModules/ИнтерфейсODataСлужебный/ИнтерфейсODataСлужебный.mdo @@ -1,9 +1,9 @@ - - ПоставляемыеДанные + + ИнтерфейсODataСлужебный ru - Поставляемые данные + Интерфейс OData служебный true true diff --git a/SSL/src/CommonModules/ИнтерфейсODataСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/ИнтерфейсODataСлужебныйПовтИсп/Module.bsl new file mode 100644 index 000000000..51d443e11 --- /dev/null +++ b/SSL/src/CommonModules/ИнтерфейсODataСлужебныйПовтИсп/Module.bsl @@ -0,0 +1,531 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныеПроцедурыИФункции + +Функция ОписаниеМоделиДанныхКонфигурации() Экспорт + + Модель = Новый Соответствие(); + + ЗаполнитьМодельПоПодсистемам(Модель); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "ПараметрыСеанса"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "ОбщиеРеквизиты"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "ПланыОбмена"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "РегламентныеЗадания"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "Константы"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "Справочники"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "Документы"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "Последовательности"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "ЖурналыДокументов"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "Перечисления"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "ПланыВидовХарактеристик"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "ПланыСчетов"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "ПланыВидовРасчета"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "РегистрыСведений"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "РегистрыНакопления"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "РегистрыБухгалтерии"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "РегистрыРасчета"); + ЗаполнитьМодельПоПерерасчетам(Модель); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "БизнесПроцессы"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "Задачи"); + ЗаполнитьМодельПоКоллекцииМетаданных(Модель, "ВнешниеИсточникиДанных"); + ЗаполнитьМодельПоФункциональнымОпциям(Модель); + ЗаполнитьМодельПоРазделителям(Модель); + + Возврат ФиксироватьМодель(Модель); + +КонецФункции + +Функция КлассыМетаданныхВМоделиКонфигурации() Экспорт + + ТекущиеКлассыМетаданных = Новый Структура(); + ТекущиеКлассыМетаданных.Вставить("Подсистемы", 1); + ТекущиеКлассыМетаданных.Вставить("ПараметрыСеанса", 2); + ТекущиеКлассыМетаданных.Вставить("ОбщиеРеквизиты", 3); + ТекущиеКлассыМетаданных.Вставить("Константы", 4); + ТекущиеКлассыМетаданных.Вставить("Справочники", 5); + ТекущиеКлассыМетаданных.Вставить("Документы", 6); + ТекущиеКлассыМетаданных.Вставить("Перечисления", 7); + ТекущиеКлассыМетаданных.Вставить("ПланыВидовХарактеристик", 8); + ТекущиеКлассыМетаданных.Вставить("ПланыСчетов", 9); + ТекущиеКлассыМетаданных.Вставить("ПланыВидовРасчета", 10); + ТекущиеКлассыМетаданных.Вставить("БизнесПроцессы", 11); + ТекущиеКлассыМетаданных.Вставить("Задачи", 12); + ТекущиеКлассыМетаданных.Вставить("ПланыОбмена", 13); + ТекущиеКлассыМетаданных.Вставить("ЖурналыДокументов", 14); + ТекущиеКлассыМетаданных.Вставить("Последовательности", 15); + ТекущиеКлассыМетаданных.Вставить("РегистрыСведений", 16); + ТекущиеКлассыМетаданных.Вставить("РегистрыНакопления", 17); + ТекущиеКлассыМетаданных.Вставить("РегистрыБухгалтерии", 18); + ТекущиеКлассыМетаданных.Вставить("РегистрыРасчета", 19); + ТекущиеКлассыМетаданных.Вставить("Перерасчеты", 20); + ТекущиеКлассыМетаданных.Вставить("РегламентныеЗадания", 21); + ТекущиеКлассыМетаданных.Вставить("ВнешниеИсточникиДанных", 22); + + Возврат Новый ФиксированнаяСтруктура(ТекущиеКлассыМетаданных); + +КонецФункции + +Функция КлассыМетаданных() + + Возврат КлассыМетаданныхВМоделиКонфигурации(); + +КонецФункции + +Функция ГруппаМоделиДанных(Знач Модель, Знач Класс) + + Группа = Модель.Получить(Класс); + + Если Группа = Неопределено Тогда + Группа = Новый Соответствие(); + Модель.Вставить(Класс, Группа); + КонецЕсли; + + Возврат Группа; + +КонецФункции + +Процедура ЗаполнитьМодельПоПодсистемам(Знач Модель) + + ГруппаПодсистем = ГруппаМоделиДанных(Модель, КлассыМетаданных().Подсистемы); + + Для Каждого Подсистема Из Метаданные.Подсистемы Цикл + ЗаполнитьМодельПоПодсистеме(ГруппаПодсистем, Подсистема); + КонецЦикла; + +КонецПроцедуры + +Процедура ЗаполнитьМодельПоПодсистеме(Знач ГруппаМодели, Знач Подсистема) + + ЗаполнитьМодельПоОбъектуМетаданных(ГруппаМодели, Подсистема, КлассыМетаданных().Подсистемы); + + Для Каждого ВложеннаяПодсистема Из Подсистема.Подсистемы Цикл + ЗаполнитьМодельПоПодсистеме(ГруппаМодели, ВложеннаяПодсистема); + КонецЦикла; + +КонецПроцедуры + +Процедура ЗаполнитьМодельПоПерерасчетам(Знач Модель) + + ГруппаМодели = ГруппаМоделиДанных(Модель, КлассыМетаданных().Перерасчеты); + + Для Каждого РегистрРасчета Из Метаданные.РегистрыРасчета Цикл + + Для Каждого Перерасчет Из РегистрРасчета.Перерасчеты Цикл + + ЗаполнитьМодельПоОбъектуМетаданных(ГруппаМодели, Перерасчет, КлассыМетаданных().Перерасчеты); + + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + +Процедура ЗаполнитьМодельПоКоллекцииМетаданных(Знач Модель, Знач ИмяКоллекции) + + Класс = КлассыМетаданных()[ИмяКоллекции]; + ГруппаМодели = ГруппаМоделиДанных(Модель, Класс); + + КоллекцияМетаданных = Метаданные[ИмяКоллекции]; + Для Каждого ОбъектМетаданных Из КоллекцияМетаданных Цикл + ЗаполнитьМодельПоОбъектуМетаданных(ГруппаМодели, ОбъектМетаданных, Класс); + КонецЦикла; + +КонецПроцедуры + +Процедура ЗаполнитьМодельПоОбъектуМетаданных(Знач ГруппаМодели, Знач ОбъектМетаданных, Знач Класс) + + ОписаниеОбъекта = Новый Структура(); + ОписаниеОбъекта.Вставить("ПолноеИмя", ОбъектМетаданных.ПолноеИмя()); + ОписаниеОбъекта.Вставить("Представление", ОбъектМетаданных.Представление()); + ОписаниеОбъекта.Вставить("Зависимости", Новый Соответствие()); + ОписаниеОбъекта.Вставить("ФункциональныеОпции", Новый Массив()); + ОписаниеОбъекта.Вставить("РазделениеДанных", Новый Структура()); + + ГруппаМодели.Вставить(ОбъектМетаданных.Имя, ОписаниеОбъекта); + + ЗаполнитьМодельПоЗависимостямОбъектаМетаданных(ОписаниеОбъекта.Зависимости, ОбъектМетаданных, Класс); + +КонецПроцедуры + +Процедура ЗаполнитьМодельПоЗависимостямОбъектаМетаданных(Знач ЗависимостиОбъекта, Знач ОбъектМетаданных, Знач Класс) + + Если Класс = КлассыМетаданных().Константы Тогда + + ЗаполнитьМодельПоТипамЗависимостейОбъектаМетаданных(ЗависимостиОбъекта, ОбъектМетаданных.Тип); + + ИначеЕсли (Класс = КлассыМетаданных().Справочники + ИЛИ Класс = КлассыМетаданных().Документы + ИЛИ Класс = КлассыМетаданных().ПланыВидовХарактеристик + ИЛИ Класс = КлассыМетаданных().ПланыСчетов + ИЛИ Класс = КлассыМетаданных().ПланыВидовРасчета + ИЛИ Класс = КлассыМетаданных().БизнесПроцессы + ИЛИ Класс = КлассыМетаданных().Задачи + ИЛИ Класс = КлассыМетаданных().ПланыОбмена) Тогда + + // Стандартные реквизиты + Для Каждого СтандартныйРеквизит Из ОбъектМетаданных.СтандартныеРеквизиты Цикл + ЗаполнитьМодельПоТипамЗависимостейОбъектаМетаданных(ЗависимостиОбъекта, СтандартныйРеквизит.Тип); + КонецЦикла; + + // Стандартные табличные части + Если (Класс = КлассыМетаданных().ПланыСчетов ИЛИ Класс = КлассыМетаданных().ПланыВидовРасчета) Тогда + + Для Каждого СтандартнаяТабличнаяЧасть Из ОбъектМетаданных.СтандартныеТабличныеЧасти Цикл + Для Каждого СтандартныйРеквизит Из СтандартнаяТабличнаяЧасть.СтандартныеРеквизиты Цикл + ЗаполнитьМодельПоТипамЗависимостейОбъектаМетаданных(ЗависимостиОбъекта, СтандартныйРеквизит.Тип); + КонецЦикла; + КонецЦикла; + + КонецЕсли; + + // Реквизиты + Для Каждого Реквизит Из ОбъектМетаданных.Реквизиты Цикл + ЗаполнитьМодельПоТипамЗависимостейОбъектаМетаданных(ЗависимостиОбъекта, Реквизит.Тип); + КонецЦикла; + + // Табличные части + Для Каждого ТабличнаяЧасть Из ОбъектМетаданных.ТабличныеЧасти Цикл + // Стандартные реквизиты + Для Каждого СтандартныйРеквизит Из ТабличнаяЧасть.СтандартныеРеквизиты Цикл + ЗаполнитьМодельПоТипамЗависимостейОбъектаМетаданных(ЗависимостиОбъекта, СтандартныйРеквизит.Тип); + КонецЦикла; + // Реквизиты + Для Каждого Реквизит Из ТабличнаяЧасть.Реквизиты Цикл + ЗаполнитьМодельПоТипамЗависимостейОбъектаМетаданных(ЗависимостиОбъекта, Реквизит.Тип); + КонецЦикла; + КонецЦикла; + + Если Класс = КлассыМетаданных().Задачи Тогда + + // Реквизиты адресации + Для Каждого РеквизитАдресации Из ОбъектМетаданных.РеквизитыАдресации Цикл + ЗаполнитьМодельПоТипамЗависимостейОбъектаМетаданных(ЗависимостиОбъекта, РеквизитАдресации.Тип); + КонецЦикла; + + КонецЕсли; + + Если Класс = КлассыМетаданных().Документы Тогда + + // Движения + Для Каждого Регистр Из ОбъектМетаданных.Движения Цикл + ЗависимостиОбъекта.Вставить(Регистр.ПолноеИмя(), Истина); + КонецЦикла; + + КонецЕсли; + + Если Класс = КлассыМетаданных().ПланыВидовХарактеристик Тогда + + // Типы характеристик + ЗаполнитьМодельПоТипамЗависимостейОбъектаМетаданных(ЗависимостиОбъекта, ОбъектМетаданных.Тип); + + // Дополнительные значения характеристик + Если ОбъектМетаданных.ДополнительныеЗначенияХарактеристик <> Неопределено Тогда + ЗависимостиОбъекта.Вставить(ОбъектМетаданных.ДополнительныеЗначенияХарактеристик.ПолноеИмя(), Истина); + КонецЕсли; + + КонецЕсли; + + Если Класс = КлассыМетаданных().ПланыСчетов Тогда + + // Признаки учета + Для Каждого ПризнакУчета Из ОбъектМетаданных.ПризнакиУчета Цикл + ЗаполнитьМодельПоТипамЗависимостейОбъектаМетаданных(ЗависимостиОбъекта, ПризнакУчета.Тип); + КонецЦикла; + + // Виды субконто + Если ОбъектМетаданных.ВидыСубконто <> Неопределено Тогда + ЗависимостиОбъекта.Вставить(ОбъектМетаданных.ВидыСубконто.ПолноеИмя(), Истина); + КонецЕсли; + + // Признаки учета субконто + Для Каждого ПризнакУчетаСубконто Из ОбъектМетаданных.ПризнакиУчетаСубконто Цикл + ЗаполнитьМодельПоТипамЗависимостейОбъектаМетаданных(ЗависимостиОбъекта, ПризнакУчетаСубконто.Тип); + КонецЦикла; + + КонецЕсли; + + Если Класс = КлассыМетаданных().ПланыВидовРасчета Тогда + + // Базовые виды расчета + Для Каждого БазовыйВидРасчета Из ОбъектМетаданных.БазовыеВидыРасчета Цикл + ЗависимостиОбъекта.Вставить(БазовыйВидРасчета.ПолноеИмя(), Истина); + КонецЦикла; + + КонецЕсли; + + ИначеЕсли Класс = КлассыМетаданных().Последовательности Тогда + + // Измерения + Для Каждого Измерение Из ОбъектМетаданных.Измерения Цикл + ЗаполнитьМодельПоТипамЗависимостейОбъектаМетаданных(ЗависимостиОбъекта, Измерение.Тип); + КонецЦикла; + + // Входящие документы + Для Каждого ВходящийДокумент Из ОбъектМетаданных.Документы Цикл + ЗависимостиОбъекта.Вставить(ВходящийДокумент.ПолноеИмя(), Истина); + КонецЦикла; + + // Движения + Для Каждого Регистр Из ОбъектМетаданных.Движения Цикл + ЗависимостиОбъекта.Вставить(Регистр.ПолноеИмя(), Истина); + КонецЦикла; + + ИначеЕсли (Класс = КлассыМетаданных().РегистрыСведений + ИЛИ Класс = КлассыМетаданных().РегистрыНакопления + ИЛИ Класс = КлассыМетаданных().РегистрыБухгалтерии + ИЛИ Класс = КлассыМетаданных().РегистрыРасчета) Тогда + + // Стандартные реквизиты + Для Каждого СтандартныйРеквизит Из ОбъектМетаданных.СтандартныеРеквизиты Цикл + ЗаполнитьМодельПоТипамЗависимостейОбъектаМетаданных(ЗависимостиОбъекта, СтандартныйРеквизит.Тип); + КонецЦикла; + + // Измерения + Для Каждого Измерение Из ОбъектМетаданных.Измерения Цикл + ЗаполнитьМодельПоТипамЗависимостейОбъектаМетаданных(ЗависимостиОбъекта, Измерение.Тип); + КонецЦикла; + + // Ресурсы + Для Каждого Ресурс Из ОбъектМетаданных.Ресурсы Цикл + ЗаполнитьМодельПоТипамЗависимостейОбъектаМетаданных(ЗависимостиОбъекта, Ресурс.Тип); + КонецЦикла; + + // Реквизиты + Для Каждого Реквизит Из ОбъектМетаданных.Реквизиты Цикл + ЗаполнитьМодельПоТипамЗависимостейОбъектаМетаданных(ЗависимостиОбъекта, Реквизит.Тип); + КонецЦикла; + + Если Класс = КлассыМетаданных().РегистрыБухгалтерии Тогда + + // План счетов + Если ОбъектМетаданных.ПланСчетов <> Неопределено Тогда + ЗависимостиОбъекта.Вставить(ОбъектМетаданных.ПланСчетов.ПолноеИмя(), Истина); + КонецЕсли; + + КонецЕсли; + + Если Класс = КлассыМетаданных().РегистрыРасчета Тогда + + // План видов расчета + Если ОбъектМетаданных.ПланВидовРасчета <> Неопределено Тогда + ЗависимостиОбъекта.Вставить(ОбъектМетаданных.ПланВидовРасчета.ПолноеИмя(), Истина); + КонецЕсли; + + // График + Если ОбъектМетаданных.График <> Неопределено Тогда + ЗависимостиОбъекта.Вставить(ОбъектМетаданных.График.ПолноеИмя(), Истина); + КонецЕсли; + + КонецЕсли; + + ИначеЕсли Класс = КлассыМетаданных().ЖурналыДокументов Тогда + + Для Каждого Документ Из ОбъектМетаданных.РегистрируемыеДокументы Цикл + ЗависимостиОбъекта.Вставить(Документ.ПолноеИмя(), Истина); + КонецЦикла; + + КонецЕсли; + +КонецПроцедуры + +Процедура ЗаполнитьМодельПоТипамЗависимостейОбъектаМетаданных(Знач Результат, Знач ОписаниеТипов) + + Если ИнтерфейсODataСлужебный.ЭтоНаборТиповСсылок(ОписаниеТипов) Тогда + Возврат; + КонецЕсли; + + Для Каждого Тип Из ОписаниеТипов.Типы() Цикл + + Если ИнтерфейсODataСлужебный.ЭтоСсылочныйТип(Тип) Тогда + + Зависимость = ИнтерфейсODataСлужебный.ОбъектМетаданныхПоТипуСсылки(Тип); + + Если Результат.Получить(Зависимость.ПолноеИмя()) = Неопределено Тогда + + Результат.Вставить(Зависимость.ПолноеИмя(), Истина); + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Процедура ЗаполнитьМодельПоФункциональнымОпциям(Знач Модель) + + Для Каждого ФункциональнаяОпция Из Метаданные.ФункциональныеОпции Цикл + + Для Каждого ЭлементСостава Из ФункциональнаяОпция.Состав Цикл + + Если ЭлементСостава.Объект = Неопределено Тогда + Продолжить; + КонецЕсли; + + ОписаниеОбъекта = ИнтерфейсODataСлужебный.СвойстваОбъектаМоделиКонфигурации(Модель, ЭлементСостава.Объект); + + Если ОписаниеОбъекта <> Неопределено Тогда + ОписаниеОбъекта.ФункциональныеОпции.Добавить(ФункциональнаяОпция.Имя); + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + +Процедура ЗаполнитьМодельПоРазделителям(Знач Модель) + + // Заполняем по составу общего реквизита + + Для Каждого ОбщийРеквизит Из Метаданные.ОбщиеРеквизиты Цикл + + Если ОбщийРеквизит.РазделениеДанных = Метаданные.СвойстваОбъектов.РазделениеДанныхОбщегоРеквизита.Разделять Тогда + + ИспользоватьОбщийРеквизит = Метаданные.СвойстваОбъектов.ИспользованиеОбщегоРеквизита.Использовать; + АвтоИспользоватьОбщийРеквизит = Метаданные.СвойстваОбъектов.ИспользованиеОбщегоРеквизита.Авто; + АвтоИспользованиеОбщегоРеквизита = + (ОбщийРеквизит.АвтоИспользование = Метаданные.СвойстваОбъектов.АвтоИспользованиеОбщегоРеквизита.Использовать); + + Для Каждого ЭлементСостава Из ОбщийРеквизит.Состав Цикл + + Если (АвтоИспользованиеОбщегоРеквизита И ЭлементСостава.Использование = АвтоИспользоватьОбщийРеквизит) + ИЛИ ЭлементСостава.Использование = ИспользоватьОбщийРеквизит Тогда + + ОписаниеОбъекта = ИнтерфейсODataСлужебный.СвойстваОбъектаМоделиКонфигурации(Модель, ЭлементСостава.Метаданные); + + Если ЭлементСостава.УсловноеРазделение <> Неопределено Тогда + ЭлементУсловногоРазделения = ЭлементСостава.УсловноеРазделение.ПолноеИмя(); + Иначе + ЭлементУсловногоРазделения = ""; + КонецЕсли; + + ОписаниеОбъекта.РазделениеДанных.Вставить(ОбщийРеквизит.Имя, ЭлементУсловногоРазделения); + + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + КонецЦикла; + + // Дополнительно считаем разделенными последовательности, в состав которых входят разделенные документы. + + Для Каждого Последовательность Из Метаданные.Последовательности Цикл + + Если Последовательность.Документы.Количество() > 0 Тогда + + ОписаниеПоследовательности = ИнтерфейсODataСлужебный.СвойстваОбъектаМоделиКонфигурации(Модель, Последовательность); + + Для Каждого Документ Из Последовательность.Документы Цикл + + ОписаниеДокумента = ИнтерфейсODataСлужебный.СвойстваОбъектаМоделиКонфигурации(Модель, Документ); + + Для Каждого КлючИЗначение Из ОписаниеДокумента.РазделениеДанных Цикл + + ОписаниеПоследовательности.РазделениеДанных.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение); + + КонецЦикла; + + Прервать; + + КонецЦикла; + + КонецЕсли; + + КонецЦикла; + + // Дополнительно считаем разделенными журналы документов, в состав которых входят разделенные документы. + + Для Каждого ЖурналДокументов Из Метаданные.ЖурналыДокументов Цикл + + Если ЖурналДокументов.РегистрируемыеДокументы.Количество() > 0 Тогда + + ОписаниеЖурнала = ИнтерфейсODataСлужебный.СвойстваОбъектаМоделиКонфигурации(Модель, ЖурналДокументов); + + Для Каждого Документ Из ЖурналДокументов.РегистрируемыеДокументы Цикл + + ОписаниеДокумента = ИнтерфейсODataСлужебный.СвойстваОбъектаМоделиКонфигурации(Модель, Документ); + + Для Каждого КлючИЗначение Из ОписаниеДокумента.РазделениеДанных Цикл + + ОписаниеЖурнала.РазделениеДанных.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение); + + КонецЦикла; + + Прервать; + + КонецЦикла; + + КонецЕсли; + + КонецЦикла; + + // Дополнительно считаем разделенными перерасчеты, которые подсинены разделенным регистрам расчета. + + Для Каждого РегистрРасчета Из Метаданные.РегистрыРасчета Цикл + + Если РегистрРасчета.Перерасчеты.Количество() > 0 Тогда + + ОписаниеРегистраРасчета = ИнтерфейсODataСлужебный.СвойстваОбъектаМоделиКонфигурации(Модель, РегистрРасчета); + + Для Каждого Перерасчет Из РегистрРасчета.Перерасчеты Цикл + + ОписаниеПерерасчета = ИнтерфейсODataСлужебный.СвойстваОбъектаМоделиКонфигурации(Модель, Перерасчет); + + Для Каждого КлючИЗначение Из ОписаниеРегистраРасчета.РазделениеДанных Цикл + + ОписаниеПерерасчета.РазделениеДанных.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение); + + КонецЦикла; + + КонецЦикла; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Функция ФиксироватьМодель(Знач Модель) + + Если ТипЗнч(Модель) = Тип("Массив") Тогда + + Результат = Новый Массив(); + Для Каждого Элемент Из Модель Цикл + Результат.Добавить(ФиксироватьМодель(Элемент)); + КонецЦикла; + Возврат Новый ФиксированныйМассив(Результат); + + ИначеЕсли ТипЗнч(Модель) = Тип("Структура") Тогда + + Результат = Новый Структура(); + Для Каждого КлючИЗначение Из Модель Цикл + Результат.Вставить(КлючИЗначение.Ключ, ФиксироватьМодель(КлючИЗначение.Значение)); + КонецЦикла; + Возврат Новый ФиксированнаяСтруктура(Результат); + + ИначеЕсли ТипЗнч(Модель) = Тип("Соответствие") Тогда + + Результат = Новый Соответствие(); + Для Каждого КлючИЗначение Из Модель Цикл + Результат.Вставить(КлючИЗначение.Ключ, ФиксироватьМодель(КлючИЗначение.Значение)); + КонецЦикла; + Возврат Новый ФиксированноеСоответствие(Результат); + + Иначе + + Возврат Модель; + + КонецЕсли; + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/ОбменСообщениямиПовтИсп/ОбменСообщениямиПовтИсп.mdo b/SSL/src/CommonModules/ИнтерфейсODataСлужебныйПовтИсп/ИнтерфейсODataСлужебныйПовтИсп.mdo similarity index 62% rename from SSL/src/CommonModules/ОбменСообщениямиПовтИсп/ОбменСообщениямиПовтИсп.mdo rename to SSL/src/CommonModules/ИнтерфейсODataСлужебныйПовтИсп/ИнтерфейсODataСлужебныйПовтИсп.mdo index b14aecba9..e258ad224 100644 --- a/SSL/src/CommonModules/ОбменСообщениямиПовтИсп/ОбменСообщениямиПовтИсп.mdo +++ b/SSL/src/CommonModules/ИнтерфейсODataСлужебныйПовтИсп/ИнтерфейсODataСлужебныйПовтИсп.mdo @@ -1,9 +1,9 @@ - - ОбменСообщениямиПовтИсп + + ИнтерфейсODataСлужебныйПовтИсп ru - Обмен сообщениями повт исп + Интерфейс OData служебный (повт. исп.) true true diff --git a/SSL/src/CommonModules/ИнтерфейсыСообщенийВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ИнтерфейсыСообщенийВМоделиСервиса/Module.bsl deleted file mode 100644 index af071e352..000000000 --- a/SSL/src/CommonModules/ИнтерфейсыСообщенийВМоделиСервиса/Module.bsl +++ /dev/null @@ -1,373 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Возвращает поддерживаемые версии интерфейса сообщений, поддерживаемые текущей -// информационной базой. -// -// Параметры: -// ИмяИнтерфейса - Строка - Имя программного интерфейса сообщений. -// -// Возвращаемое значение: -// Массив (элементы - строка), номера поддерживаемых версий в формате РР.{П|ПП}.ЗЗ.СС. -// -Функция ВерсииИнтерфейсаТекущейИБ(Знач ИмяИнтерфейса) Экспорт - - Результат = Неопределено; - - ИнтерфейсыОтправителя = Новый Структура; - ЗарегистрироватьВерсииОтправляемыхСообщений(ИнтерфейсыОтправителя); - ИнтерфейсыОтправителя.Свойство(ИмяИнтерфейса, Результат); - - Если Результат = Неопределено Или Результат.Количество() = 0 Тогда - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Текущая информационная база не поддерживает интерфейс %1.'"), ИмяИнтерфейса); - Иначе - Возврат Результат; - КонецЕсли; - -КонецФункции - -// Возвращает версии интерфейса сообщений, поддерживаемые ИБ-корреспондентом. -// -// Параметры: -// ИнтерфейсСообщения - Строка - Имя программного интерфейса сообщений. -// ПараметрыПодключения - Структура - Параметры подключения к ИБ-корреспонденту. -// ПредставлениеПолучателя - Строка - Представление ИБ-корреспондента. -// ИнтерфейсТекущейИБ - Строка - Имя программного интерфейса текущей ИБ (используется -// для обеспечения обратной совместимости с предыдущими версиями БСП). -// -// Возвращаемое значение: -// Строка, максимальная версия интерфейса, поддерживаемая как ИБ-корреспондентом, так и текущей ИБ. -// -Функция ВерсияИнтерфейсаКорреспондента(Знач ИнтерфейсСообщения, Знач ПараметрыПодключения, Знач ПредставлениеПолучателя, Знач ИнтерфейсТекущейИБ = "") Экспорт - - ВерсииКорреспондента = ОбщегоНазначения.ПолучитьВерсииИнтерфейса(ПараметрыПодключения, ИнтерфейсСообщения); - Если ИнтерфейсТекущейИБ = "" Тогда - ВерсияКорреспондента = ВыборВерсииКорреспондента(ИнтерфейсСообщения, ВерсииКорреспондента); - Иначе - ВерсияКорреспондента = ВыборВерсииКорреспондента(ИнтерфейсТекущейИБ, ВерсииКорреспондента); - КонецЕсли; - - ИнтеграцияСТехнологиейСервиса.ПриОпределенииВерсииИнтерфейсаКорреспондента( - ИнтерфейсСообщения, - ПараметрыПодключения, - ПредставлениеПолучателя, - ВерсияКорреспондента); - - ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.ПриОпределенииВерсииИнтерфейсаКорреспондента( - ИнтерфейсСообщения, - ПараметрыПодключения, - ПредставлениеПолучателя, - ВерсияКорреспондента); - - Возврат ВерсияКорреспондента; - -КонецФункции - -// Возвращает имена каналов сообщений из заданного пакета. -// -// Параметры: -// URIПакета - Строка - URI пакета XDTO, типы сообщений из которого -// требуется получить. -// БазовыйТип - ТипXDTO - базовый тип. -// -// Возвращаемое значение: -// ФиксированныйМассив(Строка) - имена каналов найденные в пакете. -// -Функция ПолучитьКаналыПакета(Знач URIПакета, Знач БазовыйТип) Экспорт - - Результат = Новый Массив; - - ТипыСообщенийПакета = - ПолучитьТипыСообщенийПакета(URIПакета, БазовыйТип); - - Для каждого ТипСообщения Из ТипыСообщенийПакета Цикл - Результат.Добавить(СообщенияВМоделиСервиса.ИмяКаналаПоТипуСообщения(ТипСообщения)); - КонецЦикла; - - Возврат Новый ФиксированныйМассив(Результат); - -КонецФункции - -// Возвращает типы объектов XDTO содержащихся в заданном -// пакете, являющиеся типа сообщений удаленного администрирования. -// -// Параметры: -// URIПакета - Строка - URI пакета XDTO, типы сообщений из которого -// требуется получить, -// БазовыйТип - ТипXDTO - базовый тип. -// -// Возвращаемое значение: -// Массив(ТипОбъектаXDTO) - типы сообщений найденные в пакете. -// -Функция ПолучитьТипыСообщенийПакета(Знач URIПакета, Знач БазовыйТип) Экспорт - - Результат = Новый Массив; - - МоделиПакетов = ФабрикаXDTO.ЭкспортМоделиXDTO(URIПакета); - - Для Каждого МодельПакета Из МоделиПакетов.package Цикл - Для Каждого МодельОбъектногоТипа Из МодельПакета.objectType Цикл - ТипОбъекта = ФабрикаXDTO.Тип(URIПакета, МодельОбъектногоТипа.name); - Если НЕ ТипОбъекта.Абстрактный - И БазовыйТип.ЭтоПотомок(ТипОбъекта) Тогда - - Результат.Добавить(ТипОбъекта); - КонецЕсли; - КонецЦикла; - КонецЦикла; - - Возврат Результат; - -КонецФункции - -// Возвращает фиксированный массив, заполненный общими модулями, являющимися -// обработчиками интерфейсов отправляемых сообщений. -// -// Возвращаемое значение: -// ФиксированныйМассив - Элементами массива являются общие модули. -// -Функция ПолучитьОбработчикиИнтерфейсовОтправляемыхСообщений() Экспорт - - МассивОбработчиков = Новый Массив(); - - ИнтеграцияПодсистемБСП.РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков); - ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.ЗаполнитьОбработчикиОтправляемыхСообщений( - МассивОбработчиков); - - Возврат Новый ФиксированныйМассив(МассивОбработчиков); - -КонецФункции - -// Возвращает фиксированный массив, заполненный общими модулями, являющимися -// обработчиками интерфейсов принимаемых сообщений. -// -// Возвращаемое значение: -// ФиксированныйМассив - Элементами массива являются общие модули. -// -Функция ПолучитьОбработчикиИнтерфейсовПринимаемыхСообщений() Экспорт - - МассивОбработчиков = Новый Массив(); - - ИнтеграцияПодсистемБСП.РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков); - ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.ЗаполнитьОбработчикиПринимаемыхСообщений( - МассивОбработчиков); - - Возврат Новый ФиксированныйМассив(МассивОбработчиков); - -КонецФункции - -// Возвращает соответствие названий программных интерфейсов сообщений и их обработчиков. -// -// Возвращаемое значение: -// ФиксированноеСоответствие - в котором Ключ - строка, название программного интерфейса, Значение - ОбщийМодуль. -// -Функция ПолучитьИнтерфейсыОтправляемыхСообщений() Экспорт - - Результат = Новый Соответствие(); - МассивОбработчиков = ПолучитьОбработчикиИнтерфейсовОтправляемыхСообщений(); - Для Каждого Обработчик Из МассивОбработчиков Цикл - Результат.Вставить(Обработчик.Пакет(), Обработчик.ПрограммныйИнтерфейс()); - КонецЦикла; - - Возврат Новый ФиксированноеСоответствие(Результат); - -КонецФункции - -// Возвращает соответствие названий программных интерфейсов и их текущих версий (сообщения которых создаются -// в вызывающем коде). -// -// Возвращаемое значение: -// ФиксированноеСоответствие - в котором Ключ - строка, название программного интерфейса, Значение - строка, номер версии. -// -Функция ПолучитьВерсииОтправляемыхСообщений() Экспорт - - Результат = Новый Соответствие(); - МассивОбработчиков = ПолучитьОбработчикиИнтерфейсовОтправляемыхСообщений(); - Для Каждого Обработчик Из МассивОбработчиков Цикл - Результат.Вставить(Обработчик.ПрограммныйИнтерфейс(), Обработчик.Версия()); - КонецЦикла; - - Возврат Новый ФиксированноеСоответствие(Результат); - -КонецФункции - -// Возвращает массив обработчиков трансляции для сообщений модели сервиса. -// -// Возвращаемое значение: -// Массив - Содержит общие модули с обработчиками трансляции сообщений. -// -Функция ПолучитьОбработчикиТрансляцииСообщений() Экспорт - - Результат = Новый Массив(); - - ОбработчикиИнтерфейсов = ПолучитьОбработчикиИнтерфейсовОтправляемыхСообщений(); - - Для Каждого ОбработчикИнтерфейса Из ОбработчикиИнтерфейсов Цикл - - ОбработчикиТрансляции = Новый Массив(); - ОбработчикИнтерфейса.ОбработчикиТрансляцииСообщений(ОбработчикиТрансляции); - ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Результат, ОбработчикиТрансляции); - - КонецЦикла; - - Возврат Новый ФиксированныйМассив(Результат); - -КонецФункции - -#КонецОбласти - -#Область СлужебныйПрограммныйИнтерфейс - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. - -// См. ОбменСообщениямиПереопределяемый.ПолучитьОбработчикиКаналовСообщений. -Процедура ПриОпределенииОбработчиковКаналовСообщений(Обработчики) Экспорт - - ОбработчикиИнтерфейсов = ПолучитьОбработчикиИнтерфейсовПринимаемыхСообщений(); - - Для Каждого ОбработчикИнтерфейса Из ОбработчикиИнтерфейсов Цикл - - ОбработчикиКаналовИнтерфейса = Новый Массив(); - ОбработчикИнтерфейса.ОбработчикиКаналовСообщений(ОбработчикиКаналовИнтерфейса); - - Для Каждого ОбработчикКаналаИнтерфейса Из ОбработчикиКаналовИнтерфейса Цикл - - Пакет = ОбработчикКаналаИнтерфейса.Пакет(); - БазовыйТип = ОбработчикКаналаИнтерфейса.БазовыйТип(); - - ИменаКаналов = ПолучитьКаналыПакета(Пакет, БазовыйТип); - - Для Каждого ИмяКанала Из ИменаКаналов Цикл - Обработчик = Обработчики.Добавить(); - Обработчик.Канал = ИмяКанала; - Обработчик.Обработчик = СообщенияВМоделиСервисаОбработчикСообщений; - КонецЦикла; - - КонецЦикла; - - КонецЦикла; - -КонецПроцедуры - -// См. ОбщегоНазначенияПереопределяемый.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов. -Процедура ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(Знач СтруктураПоддерживаемыхВерсий) Экспорт - - ЗарегистрироватьВерсииПринимаемыхСообщений(СтруктураПоддерживаемыхВерсий); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Заполняет переданную структуру поддерживаемых версий поддерживаемыми версиями принимаемых -// сообщений. -// -// Параметры: -// СтруктураПоддерживаемыхВерсий - Структура: -// Ключ - названия подсистемы, -// Значение - массивы названий поддерживаемых версий. -// -Процедура ЗарегистрироватьВерсииПринимаемыхСообщений(СтруктураПоддерживаемыхВерсий) - - ОбработчикиИнтерфейсов = ПолучитьОбработчикиИнтерфейсовПринимаемыхСообщений(); - - Для Каждого ОбработчикИнтерфейса Из ОбработчикиИнтерфейсов Цикл - - ОбработчикиКаналов = Новый Массив(); - ОбработчикИнтерфейса.ОбработчикиКаналовСообщений(ОбработчикиКаналов); - - ПоддерживаемыеВерсии = Новый Массив(); - - Для Каждого ОбработчикВерсии Из ОбработчикиКаналов Цикл - - ПоддерживаемыеВерсии.Добавить(ОбработчикВерсии.Версия()); - - КонецЦикла; - - СтруктураПоддерживаемыхВерсий.Вставить( - ОбработчикИнтерфейса.ПрограммныйИнтерфейс(), - ПоддерживаемыеВерсии); - - КонецЦикла; - -КонецПроцедуры - -// Заполняет переданную структуру поддерживаемых версий поддерживаемыми версиями отправляемых -// сообщений. -// -// Параметры: -// СтруктураПоддерживаемыхВерсий - Структура: -// Ключ - названия подсистемы, -// Значение - массивы названий поддерживаемых версий. -// -Процедура ЗарегистрироватьВерсииОтправляемыхСообщений(СтруктураПоддерживаемыхВерсий) - - ОбработчикиИнтерфейсов = ПолучитьОбработчикиИнтерфейсовОтправляемыхСообщений(); - - Для Каждого ОбработчикИнтерфейса Из ОбработчикиИнтерфейсов Цикл - - ОбработчикиТрансляции = Новый Массив(); - ОбработчикИнтерфейса.ОбработчикиТрансляцииСообщений(ОбработчикиТрансляции); - - ПоддерживаемыеВерсии = Новый Массив(); - - Для Каждого ОбработчикВерсии Из ОбработчикиТрансляции Цикл - - ПоддерживаемыеВерсии.Добавить(ОбработчикВерсии.РезультирующаяВерсия()); - - КонецЦикла; - - ПоддерживаемыеВерсии.Добавить(ОбработчикИнтерфейса.Версия()); - - СтруктураПоддерживаемыхВерсий.Вставить( - ОбработчикИнтерфейса.ПрограммныйИнтерфейс(), - ПоддерживаемыеВерсии); - - КонецЦикла; - -КонецПроцедуры - -// Выполняет выбор версии интерфейса, поддерживаемой как текущей информационной -// базой, так и информационной базой - корреспондентом. -// -// Параметры: -// Интерфейс - Строка, имя интерфейса сообщений, -// ВерсииКорреспондента - Массив(Строка), версии интерфейса-сообщений, -// поддерживаемые информационной базой - корреспондентом. -// -Функция ВыборВерсииКорреспондента(Знач Интерфейс, Знач ВерсииКорреспондента) - - ВерсииОтправителя = ВерсииИнтерфейсаТекущейИБ(Интерфейс); - - ВыбраннаяВерсия = Неопределено; - - Для Каждого ВерсияКорреспондента Из ВерсииКорреспондента Цикл - - Если ВерсииОтправителя.Найти(ВерсияКорреспондента) <> Неопределено Тогда - - Если ВыбраннаяВерсия = Неопределено Тогда - ВыбраннаяВерсия = ВерсияКорреспондента; - Иначе - ВыбраннаяВерсия = ?(ОбщегоНазначенияКлиентСервер.СравнитьВерсии( - ВерсияКорреспондента, ВыбраннаяВерсия) > 0, ВерсияКорреспондента, - ВыбраннаяВерсия); - КонецЕсли; - - КонецЕсли; - - КонецЦикла; - - Возврат ВыбраннаяВерсия; - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый/Module.bsl b/SSL/src/CommonModules/ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый/Module.bsl deleted file mode 100644 index 83802a653..000000000 --- a/SSL/src/CommonModules/ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый/Module.bsl +++ /dev/null @@ -1,45 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Заполняет переданный массив общими модулями, которые являются обработчиками интерфейсов -// принимаемых сообщений. -// -// Параметры: -// МассивОбработчиков - Массив - Элементами массива являются общие модули. -// -Процедура ЗаполнитьОбработчикиПринимаемыхСообщений(МассивОбработчиков) Экспорт - -КонецПроцедуры - -// Заполняет переданный массив общими модулями, которые являются обработчиками интерфейсов -// отправляемых сообщений. -// -// Параметры: -// МассивОбработчиков - Массив - Элементами массива являются общие модули. -// -Процедура ЗаполнитьОбработчикиОтправляемыхСообщений(МассивОбработчиков) Экспорт - -КонецПроцедуры - -// Процедура вызывается при определении версии интерфейса сообщений, поддерживаемой как ИБ-корреспондентом, -// так и текущей ИБ. В данной процедуре предполагается реализовывать механизмы поддержки обратной совместимости -// со старыми версиями ИБ-корреспондентов. -// -// Параметры: -// ИнтерфейсСообщения - Строка - Название программного интерфейса сообщения, для которого определяется версия. -// ПараметрыПодключения - Структура - Параметры подключения к ИБ-корреспонденту. -// ПредставлениеПолучателя - Строка - Представление ИБ-корреспондента. -// Результат - Строка - Определяемая версия. Значение данного параметра может быть изменено в данной процедуре. -// -Процедура ПриОпределенииВерсииИнтерфейсаКорреспондента(Знач ИнтерфейсСообщения, Знач ПараметрыПодключения, Знач ПредставлениеПолучателя, Результат) Экспорт - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый/ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.mdo b/SSL/src/CommonModules/ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый/ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.mdo deleted file mode 100644 index ec2407bbe..000000000 --- a/SSL/src/CommonModules/ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый/ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый - - ru - Интерфейсы сообщений в модели сервиса переопределяемый - - true - true - true - diff --git a/SSL/src/CommonModules/ИнформацияПриЗапускеКлиент/Module.bsl b/SSL/src/CommonModules/ИнформацияПриЗапускеКлиент/Module.bsl index 1945bbeda..25ef46ecc 100644 --- a/SSL/src/CommonModules/ИнформацияПриЗапускеКлиент/Module.bsl +++ b/SSL/src/CommonModules/ИнформацияПриЗапускеКлиент/Module.bsl @@ -16,7 +16,12 @@ МодульОценкаПроизводительностиКлиент.ЗамерВремени("ВремяОткрытияИнформацииПриЗапуске"); КонецЕсли; - ОткрытьФорму("Обработка.ИнформацияПриЗапуске.Форма"); + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.Реклама") Тогда + МодульРаботаСРекламойКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСРекламойКлиент"); + МодульРаботаСРекламойКлиент.Показать(); + Иначе + ОткрытьФорму("Обработка.ИнформацияПриЗапуске.Форма"); + КонецЕсли; КонецПроцедуры diff --git a/SSL/src/CommonModules/КалендарныеГрафики/Module.bsl b/SSL/src/CommonModules/КалендарныеГрафики/Module.bsl index ed9806fb6..096f6365f 100644 --- a/SSL/src/CommonModules/КалендарныеГрафики/Module.bsl +++ b/SSL/src/CommonModules/КалендарныеГрафики/Module.bsl @@ -494,7 +494,7 @@ // Заполняет реквизит в форме, в том случае, если используется единственный производственный календарь. // // Параметры: -// Форма - УправляемаяФорма - форма, в которой требуется заполнить реквизит. +// Форма - ФормаКлиентскогоПриложения - форма, в которой требуется заполнить реквизит. // ПутьРеквизита - Строка - путь к данным, например: "Объект.ПроизводственныйКалендарь". // КПП - Строка - индивидуальный номер налогоплательщика (код причины постановки на учет) для определения региона. // @@ -575,103 +575,6 @@ #КонецОбласти -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать ОсновнойПроизводственныйКалендарь. -// Возвращает основной производственный календарь. -// -// Возвращаемое значение: -// СправочникСсылка.ПроизводственныеКалендари, Неопределено - основной производственный календарь. -// -Функция ПроизводственныйКалендарьРоссийскойФедерации() Экспорт - - Возврат ОсновнойПроизводственныйКалендарь(); - -КонецФункции - -// Устарела. Следует использовать ДатыПоКалендарю. -// Возвращает даты, которые отличаются от указанной даты ДатаОт на количество дней, -// входящих в указанный график ГрафикРаботы. -// -// Параметры: -// ГрафикРаботы - СправочникСсылка.Календари, СправочникСсылка.ПроизводственныеКалендари - график или -// производственный календарь, который необходимо использовать для расчета дат. -// ДатаОт - Дата - дата, от которой нужно рассчитать количество дней. -// МассивДней - Массив - количество дней (Число), на которые нужно увеличить дату начала. -// РассчитыватьСледующуюДатуОтПредыдущей - Булево - нужно ли рассчитывать следующую дату от предыдущей или -// все даты рассчитываются от переданной даты. -// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика. -// -// Возвращаемое значение: -// Неопределено, Массив - массив дат, увеличенных на количество дней, входящих в график, -// Если график ГрафикРаботы не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено. -// -Функция ПолучитьМассивДатПоКалендарю(Знач ГрафикРаботы, Знач ДатаОт, Знач МассивДней, Знач РассчитыватьСледующуюДатуОтПредыдущей = Ложь, ВызыватьИсключение = Истина) Экспорт - Возврат ДатыПоКалендарю(ГрафикРаботы, ДатаОт, МассивДней, РассчитыватьСледующуюДатуОтПредыдущей, ВызыватьИсключение); -КонецФункции - -// Устарела. Следует использовать ДатаПоКалендарю. -// Возвращает дату, которая отличается указанной даты ДатаОт на количество дней, -// входящих в указанный график или производственный календарь ГрафикРаботы. -// -// Параметры: -// ГрафикРаботы - СправочникСсылка.Календари, СправочникСсылка.ПроизводственныеКалендари - график или -// производственный календарь, который необходимо использовать для расчета даты. -// ДатаОт - Дата - дата, от которой нужно рассчитать количество дней. -// КоличествоДней - Число - количество дней, на которые нужно увеличить дату начала. -// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика. -// -// Возвращаемое значение: -// Дата, Неопределено - дата, увеличенная на количество дней, входящих в график. -// Если выбранный график не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено. -// -Функция ПолучитьДатуПоКалендарю(Знач ГрафикРаботы, Знач ДатаОт, Знач КоличествоДней, ВызыватьИсключение = Истина) Экспорт - Возврат ДатаПоКалендарю(ГрафикРаботы, ДатаОт, КоличествоДней, ВызыватьИсключение); -КонецФункции - -// Устарела. Следует использовать РазностьДатПоКалендарю -// Определяет количество дней, входящих в график, для указанного периода. -// -// Параметры: -// ГрафикРаботы - СправочникСсылка.Календари, СправочникСсылка.ПроизводственныеКалендари - график или -// производственный календарь, который необходимо использовать для расчета дней. -// ДатаНачала - Дата - дата начала периода. -// ДатаОкончания - Дата - дата окончания периода. -// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика. -// -// Возвращаемое значение: -// Число - количество дней между датами начала и окончания. -// Если график ГрафикРаботы не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено. -// -Функция ПолучитьРазностьДатПоКалендарю(Знач ГрафикРаботы, Знач ДатаНачала, Знач ДатаОкончания, ВызыватьИсключение = Истина) Экспорт - Возврат РазностьДатПоКалендарю(ГрафикРаботы, ДатаНачала, ДатаОкончания, ВызыватьИсключение); -КонецФункции - -// Устарела. Следует использовать ДатыБлижайшихРабочихДней -// Определяет для каждой даты дату ближайшего к ней рабочего дня. -// -// Параметры: -// График - СправочникСсылка.Календари, СправочникСсылка.ПроизводственныеКалендари - график или -// производственный календарь, который необходимо использовать для расчета. -// НачальныеДаты - Массив - массив дат (Дата). -// ПолучатьПредшествующие - Булево - способ получения ближайшей даты: -// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты, -// если Ложь - получаются даты не ранее начальной даты. -// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика. -// ИгнорироватьНезаполненностьГрафика - Булево - если Истина, то в любом случае будет возвращено соответствие. -// Начальные даты, для которых не будет значений из-за незаполненности графика, включены не будут. -// -// Возвращаемое значение: -// Соответствие, Неопределено - соответствие, где ключ - дата из переданного массива, -// значение - ближайшая к ней рабочая дата (если передана рабочая дата, то она же и возвращается). -// Если выбранный график не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено. -// -Функция ПолучитьДатыРабочихДней(График, НачальныеДаты, ПолучатьПредшествующие = Ложь, ВызыватьИсключение = Истина, ИгнорироватьНезаполненностьГрафика = Ложь) Экспорт - Возврат ДатыБлижайшихРабочихДней(График, НачальныеДаты, ПолучатьПредшествующие, ВызыватьИсключение, ИгнорироватьНезаполненностьГрафика); -КонецФункции - -#КонецОбласти - #КонецОбласти #Область СлужебныйПрограммныйИнтерфейс @@ -903,12 +806,6 @@ Обработчик.Процедура = "КалендарныеГрафики.ОбновитьПроизводственныеКалендари"; Обработчик.ОбщиеДанные = Истина; - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.1.2"; - Обработчик.Процедура = "КалендарныеГрафики.УдалитьОшибочныеДанныеПроизводственногоКалендаря"; - Обработчик.РежимВыполнения = "Монопольно"; - Обработчик.ОбщиеДанные = Истина; - Обработчик = Обработчики.Добавить(); Обработчик.Версия = "3.0.1.66"; Обработчик.Процедура = "КалендарныеГрафики.ОбновитьДанныеЗависимыхПроизводственныхКалендарей"; @@ -1336,78 +1233,4 @@ КонецПроцедуры -// Удаляет ошибочно добавленные записи регистра сведений с упоминанием дат, не относящихся к данным годов. -// -Процедура УдалитьОшибочныеДанныеПроизводственногоКалендаря() Экспорт - - Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда - Возврат; - КонецЕсли; - - Запрос = Новый Запрос; - Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; - - Запрос.Текст = - "ВЫБРАТЬ РАЗЛИЧНЫЕ - | ДанныеПроизводственногоКалендаря.ПроизводственныйКалендарь, - | ДанныеПроизводственногоКалендаря.Год - |ПОМЕСТИТЬ ВТОшибочныеДанные - |ИЗ - | РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря - |ГДЕ - | ДанныеПроизводственногоКалендаря.Год <> ГОД(ДанныеПроизводственногоКалендаря.Дата) - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | ДанныеКалендаря.ПроизводственныйКалендарь, - | ДанныеКалендаря.Дата, - | ДанныеКалендаря.Год, - | ДанныеКалендаря.ВидДня, - | ДанныеКалендаря.ДатаПереноса - |ИЗ - | РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеКалендаря - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТОшибочныеДанные КАК ОшибочныеДанные - | ПО (ОшибочныеДанные.ПроизводственныйКалендарь = ДанныеКалендаря.ПроизводственныйКалендарь) - | И (ОшибочныеДанные.Год = ДанныеКалендаря.Год) - | И (ГОД(ДанныеКалендаря.Дата) = ДанныеКалендаря.Год) - | - |УПОРЯДОЧИТЬ ПО - | ДанныеКалендаря.ПроизводственныйКалендарь, - | ДанныеКалендаря.Год"; - - РезультатЗапроса = Запрос.Выполнить(); - Если РезультатЗапроса.Пустой() Тогда - Возврат; - КонецЕсли; - - Выборка = РезультатЗапроса.Выбрать(); - Пока Выборка.СледующийПоЗначениюПоля("ПроизводственныйКалендарь") Цикл - Пока Выборка.СледующийПоЗначениюПоля("Год") Цикл - НаборЗаписей = РегистрыСведений.ДанныеПроизводственногоКалендаря.СоздатьНаборЗаписей(); - Пока Выборка.Следующий() Цикл - ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(), Выборка); - КонецЦикла; - НаборЗаписей.Отбор.ПроизводственныйКалендарь.Установить(Выборка.ПроизводственныйКалендарь); - НаборЗаписей.Отбор.Год.Установить(Выборка.Год); - НаборЗаписей.ОбменДанными.Загрузка = Истина; - НаборЗаписей.Записать(); - КонецЦикла; - КонецЦикла; - - // Обновляем связанные графики работы. - Запрос.Текст = - "ВЫБРАТЬ - | ПроизводственныеКалендари.Код КАК КодПроизводственногоКалендаря, - | ОшибочныеДанные.Год - |ИЗ - | ВТОшибочныеДанные КАК ОшибочныеДанные - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПроизводственныеКалендари КАК ПроизводственныеКалендари - | ПО ОшибочныеДанные.ПроизводственныйКалендарь = ПроизводственныеКалендари.Ссылка"; - - ТаблицаДанных = Запрос.Выполнить().Выгрузить(); - РаспространитьИзмененияДанныхПроизводственныхКалендарей(ТаблицаДанных); - -КонецПроцедуры - #КонецОбласти diff --git a/SSL/src/CommonModules/КалендарныеГрафикиВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/КалендарныеГрафикиВМоделиСервиса/Module.bsl deleted file mode 100644 index 36de74167..000000000 --- a/SSL/src/CommonModules/КалендарныеГрафикиВМоделиСервиса/Module.bsl +++ /dev/null @@ -1,36 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -#Область ДляВызоваИзДругихПодсистем - -// ИнтернетПоддержкаПользователей.РаботаВМоделиСервиса.РаботаСКлассификаторами - -// См. РаботаСКлассификаторамиВМоделиСервисаПереопределяемый.ПриОбработкеОбластиДанных. -Процедура ПриОбработкеОбластиДанных(Идентификатор, Версия, ДополнительныеПараметры) Экспорт - - Если Идентификатор <> КалендарныеГрафики.ИдентификаторКлассификатора() Тогда - Возврат; - КонецЕсли; - - Если Не ДополнительныеПараметры.Свойство(Идентификатор) Тогда - Возврат; - КонецЕсли; - - ПараметрыОбновления = ДополнительныеПараметры[Идентификатор]; - - КалендарныеГрафики.ЗаполнитьДанныеЗависимыеОтПроизводственныхКалендарей(ПараметрыОбновления.ТаблицаИзменений); - -КонецПроцедуры - -// Конец ИнтернетПоддержкаПользователей.РаботаВМоделиСервиса.РаботаСКлассификаторами - -#КонецОбласти - -#КонецОбласти diff --git a/SSL/src/CommonModules/КалендарныеГрафикиСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/КалендарныеГрафикиСлужебный/Module.bsl similarity index 58% rename from SSL/src/CommonModules/КалендарныеГрафикиСлужебныйВМоделиСервиса/Module.bsl rename to SSL/src/CommonModules/КалендарныеГрафикиСлужебный/Module.bsl index bc5c160e4..7a050f945 100644 --- a/SSL/src/CommonModules/КалендарныеГрафикиСлужебныйВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/КалендарныеГрафикиСлужебный/Module.bsl @@ -12,18 +12,24 @@ // Процедура ЗапланироватьОбновлениеДанныхЗависимыхОтПроизводственныхКалендарей(Знач УсловияОбновления) Экспорт - ПараметрыМетода = Новый Массив; - ПараметрыМетода.Добавить(УсловияОбновления); - ПараметрыМетода.Добавить(Новый УникальныйИдентификатор); + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда + + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + + ПараметрыМетода = Новый Массив; + ПараметрыМетода.Добавить(УсловияОбновления); + ПараметрыМетода.Добавить(Новый УникальныйИдентификатор); - ПараметрыЗадания = Новый Структура; - ПараметрыЗадания.Вставить("ИмяМетода", "КалендарныеГрафикиСлужебныйВМоделиСервиса.ОбновитьДанныеЗависимыеОтПроизводственныхКалендарей"); - ПараметрыЗадания.Вставить("Параметры", ПараметрыМетода); - ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 3); - ПараметрыЗадания.Вставить("ОбластьДанных", -1); - - УстановитьПривилегированныйРежим(Истина); - ОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); + ПараметрыЗадания = Новый Структура; + ПараметрыЗадания.Вставить("ИмяМетода", "КалендарныеГрафикиСлужебныйВМоделиСервиса.ОбновитьДанныеЗависимыеОтПроизводственныхКалендарей"); + ПараметрыЗадания.Вставить("Параметры", ПараметрыМетода); + ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 3); + ПараметрыЗадания.Вставить("ОбластьДанных", -1); + + УстановитьПривилегированныйРежим(Истина); + МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); + + КонецЕсли; КонецПроцедуры @@ -49,14 +55,20 @@ // Процедура ОбновитьДанныеЗависимыеОтПроизводственныхКалендарей(Знач УсловияОбновления, Знач ИдентификаторФайла) Экспорт - // Получение областей данных для обработки. - ОбластиДляОбновления = ПоставляемыеДанные.ОбластиТребующиеОбработки( - ИдентификаторФайла, "ДанныеПроизводственныхКалендарей"); + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ПоставляемыеДанные") Тогда + + МодульПоставляемыеДанные = ОбщегоНазначения.ОбщийМодуль("ПоставляемыеДанные"); + + // Получение областей данных для обработки. + ОбластиДляОбновления = МодульПоставляемыеДанные.ОбластиТребующиеОбработки( + ИдентификаторФайла, "ДанныеПроизводственныхКалендарей"); + + // Обновление графиков работы по областям данных. + РаспространитьДанныеПроизводственныхКалендарейПоЗависимымДанным(УсловияОбновления, ОбластиДляОбновления, + ИдентификаторФайла, "ДанныеПроизводственныхКалендарей"); + + КонецЕсли; - // Обновление графиков работы по областям данных. - РаспространитьДанныеПроизводственныхКалендарейПоЗависимымДанным(УсловияОбновления, ОбластиДляОбновления, - ИдентификаторФайла, "ДанныеПроизводственныхКалендарей"); - КонецПроцедуры // Заполняет данные, зависимые от производственных календарей, по данным производственного календаря по всем ОД. @@ -70,16 +82,23 @@ Процедура РаспространитьДанныеПроизводственныхКалендарейПоЗависимымДанным(Знач УсловияОбновления, Знач ОбластиДляОбновления, Знач ИдентификаторФайла, Знач КодОбработчика) + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") + Или Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ПоставляемыеДанные") Тогда + Возврат; + КонецЕсли; + + МодульПоставляемыеДанные = ОбщегоНазначения.ОбщийМодуль("ПоставляемыеДанные"); + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); УсловияОбновления.Свернуть("КодПроизводственногоКалендаря, Год"); Для каждого ОбластьДанных Из ОбластиДляОбновления Цикл УстановитьПривилегированныйРежим(Истина); - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных); + МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных); УстановитьПривилегированныйРежим(Ложь); НачатьТранзакцию(); Попытка КалендарныеГрафики.ЗаполнитьДанныеЗависимыеОтПроизводственныхКалендарей(УсловияОбновления); - ПоставляемыеДанные.ОбластьОбработана(ИдентификаторФайла, КодОбработчика, ОбластьДанных); + МодульПоставляемыеДанные.ОбластьОбработана(ИдентификаторФайла, КодОбработчика, ОбластьДанных); ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); diff --git a/SSL/src/CommonModules/КалендарныеГрафикиСлужебныйВМоделиСервиса/КалендарныеГрафикиСлужебныйВМоделиСервиса.mdo b/SSL/src/CommonModules/КалендарныеГрафикиСлужебный/КалендарныеГрафикиСлужебный.mdo similarity index 75% rename from SSL/src/CommonModules/КалендарныеГрафикиСлужебныйВМоделиСервиса/КалендарныеГрафикиСлужебныйВМоделиСервиса.mdo rename to SSL/src/CommonModules/КалендарныеГрафикиСлужебный/КалендарныеГрафикиСлужебный.mdo index 7e773ecd1..d39f3fb30 100644 --- a/SSL/src/CommonModules/КалендарныеГрафикиСлужебныйВМоделиСервиса/КалендарныеГрафикиСлужебныйВМоделиСервиса.mdo +++ b/SSL/src/CommonModules/КалендарныеГрафикиСлужебный/КалендарныеГрафикиСлужебный.mdo @@ -1,9 +1,9 @@ - КалендарныеГрафикиСлужебныйВМоделиСервиса + КалендарныеГрафикиСлужебный ru - Календарные графики служебный в модели сервиса + Календарные графики служебный true true diff --git a/SSL/src/CommonModules/КонтрольВеденияУчета/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчета/Module.bsl index d15743b97..046956ad2 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчета/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчета/Module.bsl @@ -421,7 +421,7 @@ // У динамических списков должна быть определена основная таблица. // // Параметры: -// Форма - УправляемаяФорма - форма списка. +// Форма - ФормаКлиентскогоПриложения - форма списка. // ИменаСписков - Строка - Имена динамических списков через запятую. // ДополнительныеСвойства - Структура, Неопределено - дополнительные свойства. // * ИмяПоляИндикатораПроблем - Строка - имя поля динамического списка, которое @@ -431,7 +431,7 @@ Процедура ПриСозданииНаСервереФормыСписка(Форма, ИменаСписков, ДополнительныеСвойства = Неопределено) Экспорт ИмяПроцедуры = "КонтрольВеденияУчета.ПриСозданииНаСервереФормыСписка"; - ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Форма", Форма, Тип("УправляемаяФорма")); + ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Форма", Форма, Тип("ФормаКлиентскогоПриложения")); ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "ИменаСписков", ИменаСписков, Тип("Строка")); ИмяПоляИндикатораПроблем = Неопределено; Если ДополнительныеСвойства <> Неопределено Тогда @@ -604,7 +604,7 @@ // Вызывается из события ПриЧтенииНаСервере формы объекта. // // Параметры: -// Форма - УправляемаяФорма - Форма объекта. +// Форма - ФормаКлиентскогоПриложения - Форма объекта. // ТекущийОбъект - ДокументОбъект.ИмяДокумента, СправочникОбъект.ИмяСправочника, // ПланОбменаОбъект.ИмяПланаОбмена, ПланВидовХарактеристикОбъект.ИмяПланаВидаХарактеристик, // ПланСчетовОбъект.ИмяПланаСчетов, ПланВидовРасчетаОбъект.ИмяПланаВидовРасчета, @@ -613,7 +613,7 @@ Процедура ПриЧтенииНаСервере(Форма, ТекущийОбъект) Экспорт ИмяПроцедуры = "КонтрольВеденияУчета.ПриЧтенииНаСервере"; - ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Форма", Форма, Тип("УправляемаяФорма")); + ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Форма", Форма, Тип("ФормаКлиентскогоПриложения")); ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "ТекущийОбъект", ТекущийОбъект, КонтрольВеденияУчетаСлужебныйПовтИсп.ОписаниеТипаВсеОбъекты()); diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаКлиент/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаКлиент/Module.bsl index d11de1de1..efe4cfb66 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаКлиент/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаКлиент/Module.bsl @@ -30,7 +30,7 @@ // Открывает форму отчета при нажатии на гиперссылку, сигнализирующую о наличии проблем. // // Параметры: -// Форма - УправляемаяФорма - Управляемая форма проблемного объекта. +// Форма - ФормаКлиентскогоПриложения - Управляемая форма проблемного объекта. // ПроблемныйОбъект - СсылкаНаОбъект - Ссылка на проблемный объект. // СтандартнаяОбработка - Булево - В данный параметр передается признак выполнения // стандартной (системной) обработки события. @@ -56,7 +56,7 @@ // сигнализирующей о наличии проблем с выделенным объектом. // // Параметры: -// Форма - УправляемаяФорма - Управляемая форма проблемного объекта. +// Форма - ФормаКлиентскогоПриложения - Управляемая форма проблемного объекта. // ИмяСписка - Строка - Имя целевого динамического списка как реквизита формы. // Поле - ПолеФормы - Колонка в которой располагается картинка, // сигнализирующая о наличии проблем. @@ -71,7 +71,7 @@ Процедура ОткрытьОтчетПоПроблемамИзСписка(Форма, ИмяСписка, Поле, СтандартнаяОбработка, ДополнительныеПараметры = Неопределено) Экспорт ИмяПроцедуры = "КонтрольВеденияУчетаКлиент.ОткрытьОтчетПоПроблемамИзСписка"; - ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Форма", Форма, Тип("УправляемаяФорма")); + ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Форма", Форма, Тип("ФормаКлиентскогоПриложения")); ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "ИмяСписка", ИмяСписка, Тип("Строка")); ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Поле", Поле, Тип("ПолеФормы")); ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "СтандартнаяОбработка", СтандартнаяОбработка, Тип("Булево")); diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl index b04adf48b..92407a0f3 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебный/Module.bsl @@ -111,7 +111,7 @@ УстановитьПривилегированныйРежим(Истина); - ХэшированиеСистемныхПроверок = ХэшПроверок(); + КонтрольнаяСуммаПроверок = КонтрольнаяСуммаПроверок(); НачатьТранзакцию(); Попытка @@ -119,7 +119,7 @@ СтандартныеПодсистемыСервер.ОбновитьПараметрРаботыПрограммы( "СтандартныеПодсистемы.КонтрольВеденияУчета.СистемныеПроверки", - ХэшированиеСистемныхПроверок, ЕстьТекущиеИзменения); + КонтрольнаяСуммаПроверок, ЕстьТекущиеИзменения); СтандартныеПодсистемыСервер.ДобавитьИзмененияПараметраРаботыПрограммы( "СтандартныеПодсистемы.КонтрольВеденияУчета.СистемныеПроверки", @@ -1065,22 +1065,12 @@ КонецПроцедуры -// Формирует хэш таблицы проверок, для сравнения с предыдущим хешем, -// хранящимся в информационной базе (РегистрСведений.ПараметрыРаботыПрограммы). -// Хэш формируется следующим образом: Формируются таблицы проверок (будущие элементы справочника -// ПравилаПроверкиУчета) и групп проверок (будущие группы указанного справочника) на текущий -// момент (момент обновления информационной базы). Далее формируется массив структур, на основании -// которого рассчитывается фиксированное соответствие, от которого, в свою очередь, рассчитывается хэш-сумма. -// -// Возвращаемое значение: -// ФиксированноеСоответствие - хэш-сумма. -// -Функция ХэшПроверок() +Функция КонтрольнаяСуммаПроверок() ДанныеПроверок = Новый Соответствие; ПроверкиВеденияУчета = КонтрольВеденияУчетаСлужебныйПовтИсп.ПроверкиВеденияУчета(); - МассивХэша = Новый Массив; + СоставПроверок = Новый Массив; Для Каждого ЭлементПроверокУчета Из ПроверкиВеденияУчета Цикл @@ -1089,22 +1079,19 @@ Для Каждого СтрокаЭлементаПроверок Из ЗначениеЭлементаПроверок Цикл - СтруктураСтроки = Новый Структура; - + СвойстваПроверки = Новый Структура; Для Каждого КолонкаЭлементаПроверок Из КолонкиЭлементаПроверок Цикл - СтруктураСтроки.Вставить(КолонкаЭлементаПроверок.Имя, СтрокаЭлементаПроверок[КолонкаЭлементаПроверок.Имя]); + СвойстваПроверки.Вставить(КолонкаЭлементаПроверок.Имя, СтрокаЭлементаПроверок[КолонкаЭлементаПроверок.Имя]); КонецЦикла; - - Если СтруктураСтроки.Количество() > 0 Тогда - МассивХэша.Добавить(СтруктураСтроки); + Если СвойстваПроверки.Количество() > 0 Тогда + СоставПроверок.Добавить(СвойстваПроверки); КонецЕсли; КонецЦикла; КонецЦикла; - ДанныеПроверок.Вставить(ОбщегоНазначения.КонтрольнаяСуммаСтрокой(Новый ФиксированныйМассив(МассивХэша))); - + ДанныеПроверок.Вставить(ОбщегоНазначения.КонтрольнаяСуммаСтрокой(Новый ФиксированныйМассив(СоставПроверок))); Возврат Новый ФиксированноеСоответствие(ДанныеПроверок); КонецФункции @@ -1285,10 +1272,10 @@ #Область ПользовательскаяИндикацияОшибок -// Размещает группу индикатора ошибок на управляемой форме. +// Размещает группу индикатора ошибок в форме. // // Параметры: -// УправляемаяФорма - УправляемаяФорма - Форма объекта на которой нужно разместить группу индикатора. +// ФормаКлиентскогоПриложения - ФормаКлиентскогоПриложения - Форма объекта на которой нужно разместить группу индикатора. // КлючУникальностиИмен - Строка - Строковый ключ уникальности добавляемых элементов на форму. Нужен для // минимизации рисков пересечения с уже существующими элементами. // ИмяРодителяГруппы - Строка, Неопределено - Строковое имя группы формы в контексте которой @@ -1301,12 +1288,12 @@ // элементов группы родителя. В противном случае группа будет // расположена сразу за основной командной панелью формы объекта. // -Функция РазместитьГруппуИндикатораОшибки(УправляемаяФорма, КлючУникальностиИмен, ИмяРодителяГруппы = Неопределено, ВыводитьСнизу = Ложь) Экспорт +Функция РазместитьГруппуИндикатораОшибки(Форма, КлючУникальностиИмен, ИмяРодителяГруппы = Неопределено, ВыводитьСнизу = Ложь) Экспорт - ВсеЭлементыФормы = УправляемаяФорма.Элементы; + ВсеЭлементыФормы = Форма.Элементы; Если ИмяРодителяГруппы = Неопределено Тогда - КонтекстРазмещения = УправляемаяФорма; + КонтекстРазмещения = Форма; Иначе РодительГруппы = ВсеЭлементыФормы.Найти(ИмяРодителяГруппы); Если РодительГруппы = Неопределено Тогда @@ -1340,7 +1327,7 @@ // идентифицирующими наличие ошибок и позволяющими перейти к отчету по этим ошибкам. // // Параметры -// УправляемаяФорма - УправляемаяФорма - Форма объекта на которой расположена группа индикатора. +// ФормаКлиентскогоПриложения - ФормаКлиентскогоПриложения - Форма объекта на которой расположена группа индикатора. // ГруппаИндикатораОшибки - ГруппаФормы - Группа управляемой формы на которой будут располагаться // элементы-декорации, которые будут идентифицировать наличие ошибок с возможностью // перехода к отчету. @@ -1351,10 +1338,10 @@ // ОбщаяСтрокаИндикатор - ФорматированнаяСтрока - Общая строка-индикатор наличия ошибок. Состоит из // поясняющего текста и гиперссылки открывающей отчет по проблемам объекта.. // -Процедура ЗаполнитьГруппуИндикатораОшибки(УправляемаяФорма, ГруппаИндикатораОшибки, КлючУникальностиИмен, +Процедура ЗаполнитьГруппуИндикатораОшибки(Форма, ГруппаИндикатораОшибки, КлючУникальностиИмен, ОбщаяСтрокаИндикатор, КартинкаИндикатораПроблем = Неопределено) Экспорт - ЭлементыУправляемойФормы = УправляемаяФорма.Элементы; + ЭлементыУправляемойФормы = Форма.Элементы; КартинкаИндикаторОшибки = ЭлементыУправляемойФормы.Добавить("ДекорацияКартинка_" + КлючУникальностиИмен, Тип("ДекорацияФормы"), ГруппаИндикатораОшибки); КартинкаИндикаторОшибки.Вид = ВидДекорацииФормы.Картинка; @@ -1373,7 +1360,7 @@ // гиперссылки открывающей отчет по проблемам объекта. // // Параметры -// УправляемаяФорма - УправляемаяФорма - Форма объекта на которой расположена группа индикатора. +// ФормаКлиентскогоПриложения - ФормаКлиентскогоПриложения - Форма объекта на которой расположена группа индикатора. // СсылкаНаОбъект - ЛюбаяСсылка - Ссылка на объект по которому найдены ошибки. // КоличествоПроблемПоОбъекту - Число - Найденное количество проблем по объекту. // ПояснениеИндикатораПроблем - Строка, Неопределено - Строка идентифицирующая наличие проблем у текущего объекта. @@ -1381,7 +1368,7 @@ // ГиперссылкаИндикатораПроблем - Строка, Неопределено - Строка представляющая гиперссылку, при нажатии // на которую будет открыт и сформирован отчет по проблемам текущего объекта. // -Функция СформироватьОбщуюСтрокуИндикатор(УправляемаяФорма, СсылкаНаОбъект, КоличествоПроблемПоОбъекту, +Функция СформироватьОбщуюСтрокуИндикатор(Форма, СсылкаНаОбъект, КоличествоПроблемПоОбъекту, ПояснениеИндикатораПроблем = Неопределено, ГиперссылкаИндикатораПроблем = Неопределено) Экспорт ТекстоваяСсылка = "Основной"; @@ -2629,7 +2616,7 @@ Функция ВидыСубконто(ОбъектМетаданных) ВидыСубконтоОМ = ОбъектМетаданных.ПланСчетов.ВидыСубконто; - Если Не СодержитСсылочныйТип(ВидыСубконтоОМ) Тогда + Если ВидыСубконтоОМ = Неопределено Или Не СодержитСсылочныйТип(ВидыСубконтоОМ) Тогда Возврат Новый Массив; КонецЕсли; @@ -3467,11 +3454,12 @@ Процедура НайтиДублиПредопределенныхЭлементов(ВидМетаданных, ПараметрыПроверки) - Пакеты = ""; - ШаблонПакетов = + ШаблонВременнойТаблицы = "ВЫБРАТЬ | ""&Таблица"" КАК ПолноеИмя, - | &ПрочиеПоля + | Таблица.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных + |ПОМЕСТИТЬ + |#ВременнаяТаблица |ИЗ | &Таблица КАК Таблица |ГДЕ Таблица.Предопределенный @@ -3482,70 +3470,61 @@ |ИМЕЮЩИЕ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Таблица.Ссылка) > 1"; - Выборки = ""; ШаблонВыборки = "ВЫБРАТЬ - | &ПоляВременнойТаблицы, + | &ПроблемныйОбъект КАК ПроблемныйОбъект, + | ВременнаяТаблица.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных, | ПредставлениеСсылки(Таблица.Ссылка) КАК СсылкаНаДублирующийсяЭлемент |ИЗ | &Таблица КАК Таблица - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ""&ВременнаяТаблица"") КАК ВременнаяТаблица - | ПО &УсловияСоединения"; + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ #ВременнаяТаблица КАК ВременнаяТаблица + | ПО Таблица.ИмяПредопределенныхДанных = ВременнаяТаблица.ИмяПредопределенныхДанных"; + ИтогиВыборки = " + |ИТОГИ ПО ПроблемныйОбъект, ИмяПредопределенныхДанных"; + + ТекстВременнойТаблицы = ""; + ТекстВыборки = ""; ПараметрыЗапроса = Новый Структура; + Запрос = Новый Запрос; Для Каждого ОбъектМетаданных Из ВидМетаданных Цикл Если ОбъектМетаданных.ОбновлениеПредопределенныхДанных = Метаданные.СвойстваОбъектов.ОбновлениеПредопределенныхДанных.НеОбновлятьАвтоматически Тогда Продолжить; КонецЕсли; - ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); - ИмяВременнойТаблицы = "ВТ_" + СтрЗаменить(ПолноеИмя, ".", ""); + ИмяТаблицы = ОбъектМетаданных.ПолноеИмя(); + ИмяВременнойТаблицы = "ВТ_" + СтрЗаменить(ИмяТаблицы, ".", ""); - ЭлементШаблонаПакетов = СтрЗаменить(ШаблонПакетов, "&ПрочиеПоля", - "Таблица.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных ПОМЕСТИТЬ " + ИмяВременнойТаблицы); - ЭлементШаблонаПакетов = СтрЗаменить(ЭлементШаблонаПакетов, "&Таблица", ПолноеИмя); + ТекстЗапроса = СтрЗаменить(ШаблонВременнойТаблицы, "#ВременнаяТаблица", ИмяВременнойТаблицы); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Таблица", ИмяТаблицы); + ТекстВременнойТаблицы = ТекстВременнойТаблицы + ?(ЗначениеЗаполнено(ТекстВременнойТаблицы), ";", "") + ТекстЗапроса; - Пакеты = Пакеты + ?(ЗначениеЗаполнено(Пакеты), ";", "") + ЭлементШаблонаПакетов; - - СуффиксПараметра = СтрЗаменить(ПолноеИмя, ".", "_"); - ЭлементШаблонаВыборки = СтрЗаменить(ШаблонВыборки, "&ПоляВременнойТаблицы", - "&ПроблемныйОбъект" + СуффиксПараметра + " КАК ПроблемныйОбъект, ВременнаяТаблица.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных"); - - ПараметрыЗапроса.Вставить("ПроблемныйОбъект" + СуффиксПараметра, ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмя)); - - ЭлементШаблонаВыборки = СтрЗаменить(ЭлементШаблонаВыборки, "&Таблица", ПолноеИмя); - ЭлементШаблонаВыборки = СтрЗаменить(ЭлементШаблонаВыборки, "(ВЫБРАТЬ ""&ВременнаяТаблица"")", ИмяВременнойТаблицы); - ЭлементШаблонаВыборки = СтрЗаменить(ЭлементШаблонаВыборки, "&УсловияСоединения", - "Таблица.ИмяПредопределенныхДанных = ВременнаяТаблица.ИмяПредопределенныхДанных"); - - Выборки = Выборки + ?(ЗначениеЗаполнено(Выборки), " ОБЪЕДИНИТЬ ВСЕ ", "") + ЭлементШаблонаВыборки; + СуффиксПараметра = СтрЗаменить(ИмяТаблицы, ".", "_"); + ИмяПараметра = "&ПроблемныйОбъект" + СуффиксПараметра; + ТекстЗапроса = СтрЗаменить(ШаблонВыборки, "&ПроблемныйОбъект", ИмяПараметра); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Таблица", ИмяТаблицы); + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ВременнаяТаблица", ИмяВременнойТаблицы); + ТекстВыборки = ТекстВыборки + ?(ЗначениеЗаполнено(ТекстВыборки), " ОБЪЕДИНИТЬ ВСЕ ", "") + ТекстЗапроса; + Запрос.УстановитьПараметр("ПроблемныйОбъект" + СуффиксПараметра, ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ИмяТаблицы)); КонецЦикла; - Если Не ЗначениеЗаполнено(Пакеты) Тогда + Если Не ЗначениеЗаполнено(ТекстВременнойТаблицы) Тогда Возврат; КонецЕсли; - Запрос = Новый Запрос(Пакеты + ";" + Выборки + " ИТОГИ ПО ПроблемныйОбъект, ИмяПредопределенныхДанных"); - Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; - - Для Каждого ПараметрЗапроса Из ПараметрыЗапроса Цикл - Запрос.УстановитьПараметр(ПараметрЗапроса.Ключ, ПараметрЗапроса.Значение); - КонецЦикла; - - ОбщийРезультат = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); - - Пока ОбщийРезультат.Следующий() Цикл + Запрос.Текст = ТекстВременнойТаблицы + ";" + ТекстВыборки + ИтогиВыборки; + Результат = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); + Пока Результат.Следующий() Цикл - УточнениеПроблемы = ""; - РезультатПоИмениПредопределенного = ОбщийРезультат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); + УточнениеПроблемы = ""; + РезультатПоИмениПредопределенного = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока РезультатПоИмениПредопределенного.Следующий() Цикл ИмяПредопределенныхДанных = РезультатПоИмениПредопределенного.ИмяПредопределенныхДанных; - Если СтрНачинаетсяС(ВРег(ИмяПредопределенныхДанных), "УДАЛИТЬ") Тогда Продолжить; КонецЕсли; @@ -3566,14 +3545,12 @@ Продолжить; КонецЕсли; - Проблема = ОписаниеПроблемы(ОбщийРезультат.ПроблемныйОбъект, ПараметрыПроверки); + Проблема = ОписаниеПроблемы(Результат.ПроблемныйОбъект, ПараметрыПроверки); Проблема.УточнениеПроблемы = УточнениеПроблемы; ЗаписатьПроблему(Проблема, ПараметрыПроверки); КонецЦикла; - Запрос.МенеджерВременныхТаблиц.Закрыть(); - КонецПроцедуры #КонецОбласти @@ -3654,7 +3631,7 @@ Функция ЭтоНеразделенныйОбъектМетаданных(ПолноеИмя) - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); Возврат Не МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ПолноеИмя); diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйКлиент/Module.bsl index cdb904e90..c5a518df4 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйКлиент/Module.bsl @@ -12,7 +12,7 @@ // См. "Расширение поля формы для поля табличного документа.Выбор" в синтакс-помощнике. // // Параметры: -// ФормаОтчета - УправляемаяФорма - Форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения - Форма отчета. // Элемент - ПолеФормы - Табличный документ. // Область - ОбластьЯчеекТабличногоДокумента - Выбранное значение. // СтандартнаяОбработка - Булево - Признак выполнения стандартной обработки события. @@ -43,7 +43,7 @@ // информационной базы. // // Параметры: -// Форма - УправляемаяФорма - Управляемая форма проблемного объекта. +// Форма - ФормаКлиентскогоПриложения - Управляемая форма проблемного объекта. // СтандартнаяОбработка - Булево - В данный параметр передается признак выполнения // стандартной (системной) обработки события. // @@ -74,7 +74,7 @@ // Открывает форму для интерактивных действий пользователя для решения проблемы. // // Параметры: -// Форма - УправляемаяФорма - форма отчета РезультатыПроверкиУчета. +// Форма - ФормаКлиентскогоПриложения - форма отчета РезультатыПроверкиУчета. // Расшифровка - Структура - дополнительные сведения для исправления проблемы: // * Назначение - Строка - Строковый идентификатор назначения расшифровки. // * ИдентификаторПроверки - Строка - Строковый индикатор проверки. @@ -106,7 +106,7 @@ // Открывает форму списка (в случае регистра - с проблемным набором записей). // // Параметры: -// Форма - УправляемаяФорма - Форма отчета. +// Форма - ФормаКлиентскогоПриложения - Форма отчета. // Расшифровка - Структура - Структура, содержащая данные по исправлению проблемы // расшифровки ячейки отчета по результатам проверок учета. // * Назначение - Строка - Строковый идентификатор назначения расшифровки. diff --git a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйПовтИсп/Module.bsl index d9f4876b7..9dff8cc24 100644 --- a/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/КонтрольВеденияУчетаСлужебныйПовтИсп/Module.bsl @@ -159,7 +159,7 @@ Проверка.Причины = НСтр("ru='Некорректная синхронизация данных с другими программами или импорт данных.'"); Проверка.Рекомендация = НСтр("ru='Запустить поиск и удаление дублей (в разделе Администрирование).'"); Если Не ОбщегоНазначения.РазделениеВключено() Тогда - Проверка.Рекомендация = Проверка.Рекомендация + Символы.ПС + Проверка.Рекомендация = Проверка.Рекомендация + Символы.ПС + НСтр("ru='Если работа ведется в распределенной информационной базе (РИБ), то исправление следует запускать только в главном узле. |Затем выполнить синхронизацию с подчиненными узлами.'"); КонецЕсли; diff --git a/SSL/src/CommonModules/ЛокализацияСервер/Module.bsl b/SSL/src/CommonModules/ЛокализацияСервер/Module.bsl index 3a9180cc5..d33d11b7a 100644 --- a/SSL/src/CommonModules/ЛокализацияСервер/Module.bsl +++ b/SSL/src/CommonModules/ЛокализацияСервер/Module.bsl @@ -51,7 +51,7 @@ // в зависимости от языка, используемого при работе пользователя. // // Параметры: -// Форма - УправляемаяФорма - Форма объекта. +// Форма - ФормаКлиентскогоПриложения - Форма объекта. // ТекущийОбъект - Произвольный - Объект, который был получен в обработчике формы ПриЧтенииНаСервере. // Процедура ПриЧтенииНаСервере(Форма, ТекущийОбъект) Экспорт diff --git a/SSL/src/CommonModules/НапоминанияПользователяКлиентСерверПереопределяемый/Module.bsl b/SSL/src/CommonModules/НапоминанияПользователяКлиентСерверПереопределяемый/Module.bsl deleted file mode 100644 index 413bd1145..000000000 --- a/SSL/src/CommonModules/НапоминанияПользователяКлиентСерверПереопределяемый/Module.bsl +++ /dev/null @@ -1,52 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать НапоминанияПользователяПереопределяемый.ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания(). -// -// Переопределяет массив реквизитов объекта, относительно которых разрешается устанавливать время напоминания. -// Например, можно скрыть те реквизиты с датами, которые являются служебными или не имеют смысла для -// установки напоминаний: дата документа или задачи и прочие. -// -// Параметры: -// Источник - ЛюбаяСсылка - ссылка на объект, для которого формируется массив реквизитов с датами; -// МассивРеквизитов - Массив - имена реквизитов (из метаданных), содержащих даты. -// -Процедура ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания(Источник, МассивРеквизитов) Экспорт - -КонецПроцедуры - -// Устарела. Следует использовать НапоминанияПользователяПереопределяемый.ПриОпределенииНастроек(). -// -// Переопределяет варианты расписаний для выбора пользователем. -// -// Параметры: -// Расписания - Соответствие - коллекция расписаний: -// * Ключ - Строка - представление расписания; -// * Значение - РасписаниеРегламентногоЗадания - вариант расписания. -Процедура ПриПолученииСтандартныхРасписанийДляНапоминания(Расписания) Экспорт - -КонецПроцедуры - -// Устарела. Следует использовать НапоминанияПользователяПереопределяемый.ПриОпределенииНастроек(). -// -// Переопределяет массив текстовых представлений стандартных интервалов времени. -// -// Параметры: -// СтандартныеИнтервалы - Массив - содержит строковые представления интервалов времени. -// -Процедура ПриПолученииСтандартныхИнтерваловОповещения(СтандартныеИнтервалы) Экспорт - -КонецПроцедуры - -#КонецОбласти - -#КонецОбласти diff --git a/SSL/src/CommonModules/НапоминанияПользователяКлиентСерверПереопределяемый/НапоминанияПользователяКлиентСерверПереопределяемый.mdo b/SSL/src/CommonModules/НапоминанияПользователяКлиентСерверПереопределяемый/НапоминанияПользователяКлиентСерверПереопределяемый.mdo deleted file mode 100644 index 7f1445fd9..000000000 --- a/SSL/src/CommonModules/НапоминанияПользователяКлиентСерверПереопределяемый/НапоминанияПользователяКлиентСерверПереопределяемый.mdo +++ /dev/null @@ -1,12 +0,0 @@ - - - НапоминанияПользователяКлиентСерверПереопределяемый - - ru - Напоминания пользователя клиент сервер переопределяемый - - true - true - true - true - diff --git a/SSL/src/CommonModules/НапоминанияПользователяСлужебный/Module.bsl b/SSL/src/CommonModules/НапоминанияПользователяСлужебный/Module.bsl index 39616f37d..9445aea55 100644 --- a/SSL/src/CommonModules/НапоминанияПользователяСлужебный/Module.bsl +++ b/SSL/src/CommonModules/НапоминанияПользователяСлужебный/Module.bsl @@ -55,10 +55,6 @@ Настройки.Вставить("СтандартныеИнтервалы", СтандартныеИнтервалыОповещения()); НапоминанияПользователяПереопределяемый.ПриОпределенииНастроек(Настройки); - // Поддержка обратной совместимости. - НапоминанияПользователяКлиентСерверПереопределяемый.ПриПолученииСтандартныхРасписанийДляНапоминания(Настройки.Расписания); - НапоминанияПользователяКлиентСерверПереопределяемый.ПриПолученииСтандартныхИнтерваловОповещения(Настройки.СтандартныеИнтервалы); - Возврат Настройки; КонецФункции diff --git a/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовКлиент/Module.bsl b/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовКлиент/Module.bsl index 29568604b..5e0c57694 100644 --- a/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовКлиент/Module.bsl +++ b/SSL/src/CommonModules/НастройкаРазрешенийНаИспользованиеВнешнихРесурсовКлиент/Module.bsl @@ -42,7 +42,7 @@ // Параметры: // Идентификаторы - Массив - идентификаторы (УникальныйИдентификатор) запросов на использование внешних ресурсов, // для применения которых вызывается мастер. -// ФормаВладелец - УправляемаяФорма, Неопределено - форма, по отношению которой открывался мастер. +// ФормаВладелец - ФормаКлиентскогоПриложения, Неопределено - форма, по отношению которой открывался мастер. // ОповещениеОЗакрытии - ОписаниеОповещения или Неопределено - описание оповещения, обработка которого должна быть // выполнена после завершения работы мастера, // РежимВключения - Булево - флаг того, что мастер вызывается при выполнении включения использования для информационной @@ -375,7 +375,7 @@ // включения использования профилей безопасности для информационной базы. // // Параметры: -// ФормаВладелец - УправляемаяФорма - форма, которая должна блокироваться до окончания применения разрешений, +// ФормаВладелец - ФормаКлиентскогоПриложения - форма, которая должна блокироваться до окончания применения разрешений, // ОповещениеОЗакрытии - ОписаниеОповещения - будет вызвано при успешном предоставлении разрешений. // Процедура НачатьВключениеИспользованияПрофилейБезопасности(ФормаВладелец, ОповещениеОЗакрытии = Неопределено) Экспорт @@ -389,7 +389,7 @@ // отключения использования профилей безопасности для информационной базы. // // Параметры: -// ФормаВладелец - УправляемаяФорма - форма, которая должна блокироваться до окончания применения разрешений, +// ФормаВладелец - ФормаКлиентскогоПриложения - форма, которая должна блокироваться до окончания применения разрешений, // ОповещениеОЗакрытии - ОписаниеОповещения - будет вызвано при успешном предоставлении разрешений. // Процедура НачатьОтключениеИспользованияПрофилейБезопасности(ФормаВладелец, ОповещениеОЗакрытии = Неопределено) Экспорт @@ -404,7 +404,7 @@ // состоянию информационной базы. // // Параметры: -// ФормаВладелец - УправляемаяФорма - форма, которая должна блокироваться до окончания применения разрешений, +// ФормаВладелец - ФормаКлиентскогоПриложения - форма, которая должна блокироваться до окончания применения разрешений, // ОповещениеОЗакрытии - ОписаниеОповещения - будет вызвано при успешном предоставлении разрешений. // Процедура НачатьВосстановлениеПрофилейБезопасности(ФормаВладелец, ОповещениеОЗакрытии = Неопределено) Экспорт @@ -512,7 +512,7 @@ // открывался мастер настройки разрешений на использование внешних ресурсов. // // Параметры: -// ФормаВладелец - УправляемаяФорма, Неопределено - форма, после закрытия которой требуется выполнить +// ФормаВладелец - ФормаКлиентскогоПриложения, Неопределено - форма, после закрытия которой требуется выполнить // проверку завершения операций, в рамках которых ранее применялись запросы разрешений на использование // внешних ресурсов. // ИдентификаторыЗапросов - Массив - идентификаторы (УникальныйИдентификатор) запросов разрешений на @@ -520,7 +520,7 @@ // Процедура ЗапланироватьПроверкуПримененияРазрешенийПослеЗакрытияФормыВладельца(ВладелецФормы, ИдентификаторыЗапросов) - Если ТипЗнч(ВладелецФормы) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ВладелецФормы) = Тип("ФормаКлиентскогоПриложения") Тогда ИсходноеОписаниеОповещения = ВладелецФормы.ОписаниеОповещенияОЗакрытии; Если ИсходноеОписаниеОповещения <> Неопределено Тогда diff --git a/SSL/src/CommonModules/НастройкиПрограммыПереопределяемый/Module.bsl b/SSL/src/CommonModules/НастройкиПрограммыПереопределяемый/Module.bsl index 1e594dbe9..73df7b2a1 100644 --- a/SSL/src/CommonModules/НастройкиПрограммыПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/НастройкиПрограммыПереопределяемый/Module.bsl @@ -12,7 +12,7 @@ // ПанельАдминистрированияБСП без снятия формы с поддержки. // // Параметры: -// Форма - УправляемаяФорма - для внесения изменений. +// Форма - ФормаКлиентскогоПриложения - для внесения изменений. // Процедура ОбслуживаниеПриСозданииНаСервере(Форма) Экспорт @@ -24,7 +24,7 @@ // ПанельАдминистрированияБСП без снятия формы с поддержки. // // Параметры: -// Форма - УправляемаяФорма - для внесения изменений. +// Форма - ФормаКлиентскогоПриложения - для внесения изменений. // Процедура ОбщиеНастройкиПриСозданииНаСервере(Форма) Экспорт @@ -34,7 +34,7 @@ // ПанельАдминистрированияБСП без снятия формы с поддержки. // // Параметры: -// Форма - УправляемаяФорма - для внесения изменений. +// Форма - ФормаКлиентскогоПриложения - для внесения изменений. // Процедура НастройкиПользователейИПравПриСозданииНаСервере(Форма) Экспорт @@ -44,7 +44,7 @@ // ПанельАдминистрированияБСП без снятия формы с поддержки. // // Параметры: -// Форма - УправляемаяФорма - для внесения изменений. +// Форма - ФормаКлиентскогоПриложения - для внесения изменений. // Процедура ИнтернетПоддержкаИСервисыПриСозданииНаСервере(Форма) Экспорт @@ -54,7 +54,7 @@ // ПанельАдминистрированияБСП без снятия формы с поддержки. // // Параметры: -// Форма - УправляемаяФорма - для внесения изменений. +// Форма - ФормаКлиентскогоПриложения - для внесения изменений. // Процедура ОрганайзерПриСозданииНаСервере(Форма) Экспорт @@ -64,7 +64,7 @@ // ПанельАдминистрированияБСП без снятия формы с поддержки. // // Параметры: -// Форма - УправляемаяФорма - для внесения изменений. +// Форма - ФормаКлиентскогоПриложения - для внесения изменений. // Процедура СинхронизацияДанныхПриСозданииНаСервере(Форма) Экспорт @@ -74,7 +74,7 @@ // ПанельАдминистрированияБСП без снятия формы с поддержки. // // Параметры: -// Форма - УправляемаяФорма - для внесения изменений. +// Форма - ФормаКлиентскогоПриложения - для внесения изменений. // Процедура НастройкиРаботыСФайламиПриСозданииНаСервере(Форма) Экспорт @@ -84,7 +84,7 @@ // ПанельАдминистрированияБСП без снятия формы с поддержки. // // Параметры: -// Форма - УправляемаяФорма - для внесения изменений. +// Форма - ФормаКлиентскогоПриложения - для внесения изменений. // Процедура ПечатныеФормыОтчетыИОбработкиПриСозданииНаСервере(Форма) Экспорт diff --git a/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl index 39ef24317..6f744644c 100644 --- a/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиXDTOСервер/Module.bsl @@ -2854,6 +2854,28 @@ КонецФункции +Функция МаксимальнаяОбщаяВерсияФормата(ИмяПланаОбмена, ВерсииФорматаКорреспондента) Экспорт + + МаксимальнаяОбщаяВерсия = "0.0"; + + ВерсииФормата = ВерсииФорматаОбменаМассив(ПланыОбмена[ИмяПланаОбмена].ЭтотУзел()); + + Для Каждого ВерсияКорреспондента Из ВерсииФорматаКорреспондента Цикл + ВерсияКорреспондента = СокрЛП(ВерсияКорреспондента); + + Если ВерсииФормата.Найти(ВерсияКорреспондента) = Неопределено Тогда + Продолжить; + КонецЕсли; + + Если СравнитьВерсии(ВерсияКорреспондента, МаксимальнаяОбщаяВерсия) >= 0 Тогда + МаксимальнаяОбщаяВерсия = ВерсияКорреспондента; + КонецЕсли; + КонецЦикла; + + Возврат МаксимальнаяОбщаяВерсия; + +КонецФункции + #КонецОбласти #Область Прочее @@ -6437,28 +6459,6 @@ #Область ПроцедурыИФункцииВерсионированияФорматаОбмена -Функция МаксимальнаяОбщаяВерсияФормата(ИмяПланаОбмена, ВерсииФорматаКорреспондента) Экспорт - - МаксимальнаяОбщаяВерсия = "0.0"; - - ВерсииФормата = ВерсииФорматаОбменаМассив(ПланыОбмена[ИмяПланаОбмена].ЭтотУзел()); - - Для Каждого ВерсияКорреспондента Из ВерсииФорматаКорреспондента Цикл - ВерсияКорреспондента = СокрЛП(ВерсияКорреспондента); - - Если ВерсииФормата.Найти(ВерсияКорреспондента) = Неопределено Тогда - Продолжить; - КонецЕсли; - - Если СравнитьВерсии(ВерсияКорреспондента, МаксимальнаяОбщаяВерсия) >= 0 Тогда - МаксимальнаяОбщаяВерсия = ВерсияКорреспондента; - КонецЕсли; - КонецЦикла; - - Возврат МаксимальнаяОбщаяВерсия; - -КонецФункции - Функция ВерсииФорматаОбмена(Знач УзелИнформационнойБазы) ВерсииФорматаОбмена = Новый Соответствие; diff --git a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/Module.bsl new file mode 100644 index 000000000..082a3ca7e --- /dev/null +++ b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/Module.bsl @@ -0,0 +1,2364 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +#Область ОбработчикиСобытийПодсистемБСП + +// Обработчик "После определения получателей". +// Вызывается при регистрации объектов в плане обмена. +// Устанавливает константу-признак изменения данных +// и отсылает менеджеру сервиса сообщение об изменении с номером текущей области. +// +// Параметры: +// Данные - СправочникОбъект, ДокументОбъект - Объект для получения значений реквизитов и других свойств. +// Получатели - Массив - Массив элементов типа ПланОбменаСсылка.<Имя> - Узлы плана обмена. +// ИмяПланаОбмена - Строка - имя плана обмена, как оно задано в конфигураторе. +// +Процедура ПослеОпределенияПолучателей(Данные, Получатели, ИмяПланаОбмена) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + + Если ОбщегоНазначения.РазделениеВключено() Тогда + + Если Данные.ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + Если Получатели.Количество() > 0 + И ОбменДаннымиВМоделиСервисаПовтИсп.ЭтоПланОбменаСинхронизацииДанных(ИмяПланаОбмена) + И Не ПолучитьФункциональнуюОпцию("ЗарегистрированыИзмененияДанных") Тогда + + Если МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей() Тогда + + УстановитьПризнакИзмененияДанных(); + Иначе + + Попытка + ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.УстановитьПризнакИзмененияДанных",, "1"); + Исключение + ЗаписьЖурналаРегистрации(НСтр("ru = 'Обмен данными'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + КонецЕсли; + + КонецЕсли; + + Иначе + + // Выгружаем в сервис изменения только для прикладных данных (разделенных + // разделителем ОбластьДанныхОсновныеДанные). + Если АвтономнаяРаботаСлужебный.ЭтоАвтономноеРабочееМесто() + И Не МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(Данные.Метаданные(), + МодульРаботаВМоделиСервиса.РазделительОсновныхДанных()) Тогда + + ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(Получатели, АвтономнаяРаботаСлужебный.ПриложениеВСервисе()); + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +// Заполняет соответствие имен методов их псевдонимам для вызова из очереди заданий. +// +// Параметры: +// СоответствиеИменПсевдонимам - Соответствие - имена методов и соответствующие им псевдонимы. +// Ключ - Псевдоним метода, например ОчиститьОбластьДанных +// Значение - Имя метода для вызова, например РаботаВМоделиСервиса.ОчиститьОбластьДанных +// В качестве значения можно указать Неопределено, в этом случае считается что имя +// совпадает с псевдонимом. +// +Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт + + СоответствиеИменПсевдонимам.Вставить("ОбменДаннымиВМоделиСервиса.УстановитьПризнакИзмененияДанных"); + СоответствиеИменПсевдонимам.Вставить("ОбменДаннымиВМоделиСервиса.ВыполнитьОбменДанными"); + СоответствиеИменПсевдонимам.Вставить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазе"); + СоответствиеИменПсевдонимам.Вставить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазе"); + +КонецПроцедуры + +// Формирует список параметров ИБ. +// +// Параметры: +// ТаблицаПараметров - ТаблицаЗначений - таблица описания параметров. Описание и состав колонок +// см. РаботаВМоделиСервиса.ПолучитьТаблицуПараметровИБ(). +// +Процедура ПриЗаполненииТаблицыПараметровИБ(Знач ТаблицаПараметров) Экспорт + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульРаботаВМоделиСервиса.ДобавитьКонстантуВТаблицуПараметровИБ(ТаблицаПараметров, "АдресДляВосстановленияПароляУчетнойЗаписи"); + КонецЕсли; + +КонецПроцедуры + +// Заполняет структуру массивами поддерживаемых версий всех подлежащих версионированию подсистем, +// используя в качестве ключей названия подсистем. +// Обеспечивает функциональность Web-сервиса InterfaceVersion. +// При внедрении надо поменять тело процедуры так, чтобы она возвращала актуальные наборы версий (см. пример.ниже). +// +// Параметры: +// СтруктураПоддерживаемыхВерсий - Структура - имена подсистем и соответствующие им наборы поддерживаемых версий. +// В качестве ключа структуры выступает название подсистемы, +// а в качестве значения - массив названий поддерживаемых версий. +// +// Пример: +// // СервисПередачиФайлов +// МассивВерсий = Новый Массив; +// МассивВерсий.Добавить("1.0.1.1"); +// МассивВерсий.Добавить("1.0.2.1"); +// СтруктураПоддерживаемыхВерсий.Вставить("СервисПередачиФайлов", МассивВерсий); +// // Конец СервисПередачиФайлов +// +Процедура ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(Знач СтруктураПоддерживаемыхВерсий) Экспорт + + МассивВерсий = Новый Массив; + МассивВерсий.Добавить("2.0.1.6"); + МассивВерсий.Добавить("2.1.1.7"); + МассивВерсий.Добавить("2.1.2.1"); + МассивВерсий.Добавить("2.1.5.17"); + МассивВерсий.Добавить("2.1.6.1"); + МассивВерсий.Добавить("2.4.5.1"); + СтруктураПоддерживаемыхВерсий.Вставить("ОбменДаннымиВМоделиСервиса", МассивВерсий); + +КонецПроцедуры + +// Получает список обработчиков сообщений, которые обрабатывают подсистемы библиотеки. +// +// Параметры: +// Обработчики - ТаблицаЗначений - состав полей см. в ОбменСообщениями.НоваяТаблицаОбработчиковСообщений. +// +Процедура ПриОпределенииОбработчиковКаналовСообщений(Обработчики) Экспорт + + СообщенияОбменаДаннымиОбработчикСообщения.ПолучитьОбработчикиКаналовСообщений(Обработчики); + +КонецПроцедуры + +// Добавляет параметры работы клиентской логики при запуске системы для подсистемы обмена данными в модели сервиса. +// +// Параметры: +// Параметры - Структура - имена и значения параметров работы клиента при запуске, которые необходимо задать. +// Подробнее см. ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиентаПриЗапуске. +// +Процедура ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Параметры.Вставить("ЭтоАвтономноеРабочееМесто", + АвтономнаяРаботаСлужебный.ЭтоАвтономноеРабочееМесто()); + Параметры.Вставить("СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботы", + АвтономнаяРаботаСлужебный.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботы()); + Параметры.Вставить("СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботы", + АвтономнаяРаботаСлужебный.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботы()); + Параметры.Вставить("ПараметрыАвтономнойРаботы", ПараметрыАвтономнойРаботыПриЗавершенииРаботы()); + +КонецПроцедуры + +// Заполняет структуру параметров, необходимых для работы клиентского кода +// конфигурации. +// +// Параметры: +// Параметры - Структура - структура параметров. +// +Процедура ПриДобавленииПараметровРаботыКлиента(Параметры) Экспорт + + ДобавитьПараметрыРаботыКлиента(Параметры); + +КонецПроцедуры + +// Заполняет массив типов, исключаемых из выгрузки и загрузки данных. +// +// Параметры: +// Типы - Массив - объекты метаданных, исключаемые из выгрузки и загрузки. +// +Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт + + Типы.Добавить(Метаданные.Константы.ДанныеДляОтложенногоОбновления); + Типы.Добавить(Метаданные.Константы.ДатаОбновленияПовторноИспользуемыхЗначенийМРО); + Типы.Добавить(Метаданные.Константы.ЗарегистрированыИзмененияДанных); + Типы.Добавить(Метаданные.Константы.НастройкиПодчиненногоУзлаРИБ); + Типы.Добавить(Метаданные.Константы.ПрефиксПоследнегоАвтономногоРабочегоМеста); + + Типы.Добавить(Метаданные.РегистрыСведений.ДанныеОбъектовДляРегистрацииВОбменах); + Типы.Добавить(Метаданные.РегистрыСведений.ИзмененияОбщихДанныхУзлов); + Типы.Добавить(Метаданные.РегистрыСведений.НастройкиТранспортаОбменаОбластиДанных); + Типы.Добавить(Метаданные.РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз); + Типы.Добавить(Метаданные.РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов); + Типы.Добавить(Метаданные.РегистрыСведений.РезультатыОбменаДанными); + Типы.Добавить(Метаданные.РегистрыСведений.СессииОбменаСообщениямиСистемы); + Типы.Добавить(Метаданные.РегистрыСведений.СообщенияОбменаДаннымиОбластейДанных); + Типы.Добавить(Метаданные.РегистрыСведений.СоответствияОбъектовИнформационныхБаз); + Типы.Добавить(Метаданные.РегистрыСведений.СостоянияОбменовДаннымиОбластейДанных); + +КонецПроцедуры + +// Выполняет удаление файлов сообщений обмена, которые не были удалены из-за сбоев в работе системы. +// Удалению подлежат файлы с датой размещения более суток от текущей универсальной даты. +// Анализируется РС.СообщенияОбменаДаннымиОбластейДанных. +// +Процедура ПриУдаленииНеактуальныхСообщенийОбмена() Экспорт + + ТекстЗапроса = + "ВЫБРАТЬ + | СообщенияОбменаДанными.ИдентификаторСообщения КАК ИдентификаторСообщения, + | СообщенияОбменаДанными.ИмяФайлаСообщения КАК ИмяФайла, + | СообщенияОбменаДанными.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанныхВспомогательныеДанные, + | СообщенияОбменаДанными.ДатаЗакладкиСообщения КАК ДатаЗакладкиСообщения + |ИЗ + | РегистрСведений.СообщенияОбменаДаннымиОбластейДанных КАК СообщенияОбменаДанными + |ГДЕ + | СообщенияОбменаДанными.ДатаЗакладкиСообщения < &ДатаАктуальности + | + |УПОРЯДОЧИТЬ ПО + | ОбластьДанныхВспомогательныеДанные"; + + УниверсальнаяДата = ТекущаяУниверсальнаяДата(); + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ДатаАктуальности", УниверсальнаяДата - 60 * 60 * 24); + Запрос.Текст = ТекстЗапроса; + + Выборка = Запрос.Выполнить().Выбрать(); + + ПараметрыСеанса.ОбластьДанныхИспользование = Истина; + ОбластьДанныхВспомогательныеДанные = Неопределено; + + Пока Выборка.Следующий() Цикл + + Если ОбластьДанныхВспомогательныеДанные <> Выборка.ОбластьДанныхВспомогательныеДанные Тогда + + ОбластьДанныхВспомогательныеДанные = Выборка.ОбластьДанныхВспомогательныеДанные; + ПараметрыСеанса.ОбластьДанныхЗначение = ОбластьДанныхВспомогательныеДанные; + + КонецЕсли; + + УзелОбщиеНастройки = Неопределено; + + ЗапросОбщиеНастройки = Новый Запрос( + "ВЫБРАТЬ + | ОбщиеНастройкиУзловИнформационныхБаз.УзелИнформационнойБазы КАК УзелИнформационнойБазы + |ИЗ + | РегистрСведений.ОбщиеНастройкиУзловИнформационныхБаз КАК ОбщиеНастройкиУзловИнформационныхБаз + |ГДЕ + | ОбщиеНастройкиУзловИнформационныхБаз.СообщениеДляСопоставленияДанных = &СообщениеДляСопоставленияДанных"); + ЗапросОбщиеНастройки.УстановитьПараметр("СообщениеДляСопоставленияДанных", Выборка.ИдентификаторСообщения); + + ВыборкаОбщиеНастройки = ЗапросОбщиеНастройки.Выполнить().Выбрать(); + Если ВыборкаОбщиеНастройки.Следующий() Тогда + Если Не (Выборка.ДатаЗакладкиСообщения < УниверсальнаяДата - 60 * 60 * 24 * 7) Тогда + Продолжить; + КонецЕсли; + + УзелОбщиеНастройки = ВыборкаОбщиеНастройки.УзелИнформационнойБазы; + КонецЕсли; + + ПолноеИмяФайлаСообщения = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(ОбменДаннымиСервер.КаталогВременногоХранилищаФайлов(), Выборка.ИмяФайла); + + ФайлСообщения = Новый Файл(ПолноеИмяФайлаСообщения); + + Если ФайлСообщения.Существует() Тогда + + Попытка + УдалитьФайлы(ФайлСообщения.ПолноеИмя); + Исключение + ЗаписьЖурналаРегистрации(НСтр("ru = 'Обмен данными'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + Продолжить; + КонецПопытки; + КонецЕсли; + + // Удаляем информацию о файле сообщения обмена из хранилища + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("ИдентификаторСообщения", Строка(Выборка.ИдентификаторСообщения)); + РегистрыСведений.СообщенияОбменаДаннымиОбластейДанных.УдалитьЗапись(СтруктураЗаписи); + + Если Не УзелОбщиеНастройки = Неопределено Тогда + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("УзелИнформационнойБазы", УзелОбщиеНастройки); + СтруктураЗаписи.Вставить("СообщениеДляСопоставленияДанных", ""); + + ОбменДаннымиСлужебный.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "ОбщиеНастройкиУзловИнформационныхБаз"); + КонецЕсли; + + КонецЦикла; + + ПараметрыСеанса.ОбластьДанныхИспользование = Ложь; + +КонецПроцедуры + +// Получение имени файла по его идентификатору из хранилища. +// Если файла с указанным идентификатором нет, то вызывается исключение. +// Если файл найден, то возвращается его имя, при этом удаляется информация об этом файле из хранилища. +// +// Параметры: +// ИдентификаторФайла - УникальныйИдентификатор - идентификатор получаемого файла. +// ИмяФайла - Строка - имя файла, из хранилища. +// +Процедура ПриПолученииФайлаИзХранилища(Знач ИдентификаторФайла, ИмяФайла) Экспорт + + ТекстЗапроса = + "ВЫБРАТЬ + | СообщенияОбменаДанными.ИмяФайлаСообщения КАК ИмяФайла + |ИЗ + | РегистрСведений.СообщенияОбменаДаннымиОбластейДанных КАК СообщенияОбменаДанными + |ГДЕ + | СообщенияОбменаДанными.ИдентификаторСообщения = &ИдентификаторСообщения"; + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ИдентификаторСообщения", Строка(ИдентификаторФайла)); + Запрос.Текст = ТекстЗапроса; + + РезультатЗапроса = Запрос.Выполнить(); + + Если РезультатЗапроса.Пустой() Тогда + Описание = НСтр("ru = 'Файл с идентификатором %1 не обнаружен.'"); + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Описание, Строка(ИдентификаторФайла)); + КонецЕсли; + + Выборка = РезультатЗапроса.Выбрать(); + Выборка.Следующий(); + ИмяФайла = Выборка.ИмяФайла; + + // Удаляем информацию о файле сообщения обмена из хранилища + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("ИдентификаторСообщения", Строка(ИдентификаторФайла)); + РегистрыСведений.СообщенияОбменаДаннымиОбластейДанных.УдалитьЗапись(СтруктураЗаписи); + +КонецПроцедуры + +// Помещение файла в хранилище +// +// Параметры: +// СтруктураЗаписи - Структура - имена и значения измерений регистра сведений "СообщенияОбменаДаннымиОбластейДанных". +// +Процедура ПриПомещенииФайлаВХранилище(Знач СтруктураЗаписи) Экспорт + + РегистрыСведений.СообщенияОбменаДаннымиОбластейДанных.ДобавитьЗапись(СтруктураЗаписи); + +КонецПроцедуры + +// Удаление файла из хранилища +// +// Параметры: +// СтруктураЗаписи - Структура - имена и значения измерений регистра сведений "СообщенияОбменаДаннымиОбластейДанных". +// +Процедура ПриУдаленииФайлаИзХранилища(Знач СтруктураЗаписи) Экспорт + + ОбменДаннымиСлужебный.УдалитьНаборЗаписейВРегистреСведений(СтруктураЗаписи, "СообщенияОбменаДаннымиОбластейДанных"); + +КонецПроцедуры + +// Зарегистрировать обработчики поставляемых данных +// +// При получении уведомления о доступности новых общих данных, вызывается процедуры +// ДоступныНовыеДанные модулей, зарегистрированных через ПолучитьОбработчикиПоставляемыхДанных. +// В процедуру передается Дескриптор - ОбъектXDTO Descriptor. +// +// В случае, если ДоступныНовыеДанные устанавливает аргумент Загружать в значение Истина, +// данные загружаются, дескриптор и путь к файлу с данными передаются в процедуру +// ОбработатьНовыеДанные. Файл будет автоматически удален после завершения процедуры. +// Если в менеджере сервиса не был указан файл - значение аргумента равно Неопределено. +// +// Параметры: +// Обработчики - ТаблицаЗначений - таблица для добавления обработчиков. Колонки: +// * ВидДанных - Строка - код вида данных, обрабатываемый обработчиком. +// * КодОбработчика - Строка(20) - будет использоваться при восстановлении обработки данных после сбоя. +// * Обработчик - ОбщийМодуль - модуль, содержащий следующие процедуры: +// ДоступныНовыеДанные(Дескриптор, Загружать) Экспорт +// ОбработатьНовыеДанные(Дескриптор, ПутьКФайлу) Экспорт +// ОбработкаДанныхОтменена(Дескриптор) Экспорт +// +Процедура ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики) Экспорт + + ЗарегистрироватьОбработчикиПоставляемыхДанных(Обработчики); + +КонецПроцедуры + +// Обработчик снятия константы ИспользоватьСинхронизациюДанных. +// +// Параметры: +// Отказ - Булево - флаг отказа отключения синхронизации данных. +// Если установить в значение Истина, то синхронизация отключена не будет. +// +Процедура ПриОтключенииСинхронизацииДанных(Отказ) Экспорт + + Константы.ИспользоватьАвтономнуюРаботуВМоделиСервиса.Установить(Ложь); + Константы.ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой.Установить(Ложь); + Константы.ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете.Установить(Ложь); + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий. +Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт + + Настройка = Настройки.Добавить(); + Настройка.РегламентноеЗадание = Метаданные.РегламентныеЗадания.СинхронизацияДанныхСПриложениемВИнтернете; + Настройка.РаботаетСВнешнимиРесурсами = Истина; + +КонецПроцедуры + +// Устанавливает константу-признак изменения данных +// и отсылает менеджеру сервиса сообщение об изменении с номером текущей области. +// +Процедура УстановитьПризнакИзмененияДанных() Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервисаБТСПовтИсп = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервисаБТСПовтИсп"); + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульОбменСообщениями = ОбщегоНазначения.ОбщийМодуль("ОбменСообщениями"); + + УстановитьПривилегированныйРежим(Истина); + + ОбластьДанных = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + + НачатьТранзакцию(); + Попытка + МодульОбменСообщениями.ОтправитьСообщение("ОбменДанными\УправляющееПриложение\ПризнакИзмененияДанных", + Новый Структура("КодУзла", ОбменДаннымиСервер.КодУзлаПланаОбменаСтрокой(ОбластьДанных)), + МодульРаботаВМоделиСервисаБТСПовтИсп.КонечнаяТочкаМенеджераСервиса()); + + Константы.ЗарегистрированыИзмененияДанных.Установить(Истина); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +// Заполняет переданный массив общими модулями, которые являются обработчиками интерфейсов +// принимаемых сообщений. +// +// Параметры: +// МассивОбработчиков - массив +// +Процедура РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков) Экспорт + + МассивОбработчиков.Добавить(СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс); + МассивОбработчиков.Добавить(СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс); + МассивОбработчиков.Добавить(СообщенияОбменаДаннымиКонтрольИнтерфейс); + МассивОбработчиков.Добавить(СообщенияОбменаДаннымиУправлениеИнтерфейс); + + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + МодульСообщенияРаспределенноеВыполнениеКомандИнтерфейс = ОбщегоНазначения.ОбщийМодуль( + "СообщенияРаспределенноеВыполнениеКомандИнтерфейс"); + МассивОбработчиков.Добавить(МодульСообщенияРаспределенноеВыполнениеКомандИнтерфейс); + КонецЕсли; + +КонецПроцедуры + +// Заполняет переданный массив общими модулями, которые являются обработчиками интерфейсов +// отправляемых сообщений. +// +// Параметры: +// МассивОбработчиков - массив +// +Процедура РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков) Экспорт + + МассивОбработчиков.Добавить(СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс); + МассивОбработчиков.Добавить(СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс); + МассивОбработчиков.Добавить(СообщенияОбменаДаннымиКонтрольИнтерфейс); + МассивОбработчиков.Добавить(СообщенияОбменаДаннымиУправлениеИнтерфейс); + + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + МодульСообщенияРаспределенноеВыполнениеКомандИнтерфейс = ОбщегоНазначения.ОбщийМодуль( + "СообщенияРаспределенноеВыполнениеКомандИнтерфейс"); + МассивОбработчиков.Добавить(МодульСообщенияРаспределенноеВыполнениеКомандИнтерфейс); + КонецЕсли; + +КонецПроцедуры + +// Обработчики обновления ИБ + +// Добавляет процедуры-обработчики обновления, необходимые данной подсистеме. +// +// Параметры: +// Обработчики - ТаблицаЗначений - см. описание функции НоваяТаблицаОбработчиковОбновления +// общего модуля ОбновлениеИнформационнойБазы. +// +Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт + + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + Обработчик = Обработчики.Добавить(); + Обработчик.ОбщиеДанные = Истина; + Обработчик.УправлениеОбработчиками = Истина; + Обработчик.Версия = "*"; + Обработчик.РежимВыполнения = "Оперативно"; + Обработчик.Процедура = "ОбменДаннымиВМоделиСервиса.ЗаполнитьОбработчикиРазделенныхДанных"; + + Обработчик = Обработчики.Добавить(); + Обработчик.Версия = "*"; + Обработчик.РежимВыполнения = "Оперативно"; + Обработчик.Процедура = "ОбменДаннымиВМоделиСервиса.УстановитьКодыПредопределенныхУзлов"; + + Обработчик = Обработчики.Добавить(); + Обработчик.Версия = "*"; + Обработчик.ОбщиеДанные = Истина; + Обработчик.МонопольныйРежим = Ложь; + Обработчик.Процедура = "ОбменДаннымиВМоделиСервиса.ЗаблокироватьКонечныеТочки"; + +КонецПроцедуры + +// Заполняет обработчик разделенных данных, зависимый от изменения неразделенных данных. +// +// Параметры: +// Обработчики - ТаблицаЗначений, Неопределено - см. описание +// функции НоваяТаблицаОбработчиковОбновления общего модуля +// ОбновлениеИнформационнойБазы.. +// В случае прямого вызова (не через механизм обновления +// версии ИБ) передается Неопределено. +// +Процедура ЗаполнитьОбработчикиРазделенныхДанных(Параметры = Неопределено) Экспорт + + Если Параметры <> Неопределено Тогда + Обработчики = Параметры.РазделенныеОбработчики; + Обработчик = Обработчики.Добавить(); + Обработчик.Версия = "*"; + Обработчик.РежимВыполнения = "Оперативно"; + Обработчик.Процедура = "ОбменДаннымиВМоделиСервиса.УстановитьКодыПредопределенныхУзлов"; + КонецЕсли; + +КонецПроцедуры + +// Для каждого из используемых в модели сервиса планов обмена +// определяет и устанавливает код и наименование предопределенного узла. +// Код генерируется на основании значения разделителя. +// Наименование - либо по заголовку приложения, либо, если он пустой, +// по представлению текущей области данных из регистра РегистрСведений.ОбластиДанных. +// +Процедура УстановитьКодыПредопределенныхУзлов() Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + + Для Каждого ПланОбмена Из Метаданные.ПланыОбмена Цикл + + Если ОбменДаннымиВМоделиСервисаПовтИсп.ЭтоПланОбменаСинхронизацииДанных(ПланОбмена.Имя) Тогда + + ЭтотУзел = ПланыОбмена[ПланОбмена.Имя].ЭтотУзел(); + + Если ПустаяСтрока(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЭтотУзел, "Код")) Тогда + + ЭтотУзелОбъект = ЭтотУзел.ПолучитьОбъект(); + ЭтотУзелОбъект.Код = КодУзлаПланаОбменаВСервисе(МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); + ЭтотУзелОбъект.Наименование = СокрЛП(СформироватьНаименованиеПредопределенногоУзла()); + ЭтотУзелОбъект.ОбменДанными.Загрузка = Истина; + ЭтотУзелОбъект.Записать(); + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +// Блокирует все конечные точки кроме конечной точки менеджера сервиса. +// +Процедура ЗаблокироватьКонечныеТочки() Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервисаБТСПовтИсп = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервисаБТСПовтИсп"); + + НачатьТранзакцию(); + Попытка + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("ПланОбмена.ОбменСообщениями"); + Блокировка.Заблокировать(); + + Запрос = Новый Запрос( + "ВЫБРАТЬ + | ОбменСообщениями.Ссылка КАК Ссылка + |ИЗ + | ПланОбмена.ОбменСообщениями КАК ОбменСообщениями + |ГДЕ + | НЕ ОбменСообщениями.ЭтотУзел + | И ОбменСообщениями.Ссылка <> &КонечнаяТочкаМенеджераСервиса + | И НЕ ОбменСообщениями.Заблокирована"); + Запрос.УстановитьПараметр("КонечнаяТочкаМенеджераСервиса", МодульРаботаВМоделиСервисаБТСПовтИсп.КонечнаяТочкаМенеджераСервиса()); + + Выборка = Запрос.Выполнить().Выбрать(); + + Пока Выборка.Следующий() Цикл + + КонечнаяТочка = Выборка.Ссылка.ПолучитьОбъект(); + КонечнаяТочка.Заблокирована = Истина; + КонечнаяТочка.Записать(); + + КонецЦикла; + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +// Для внутреннего использования +// +Процедура ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, Знач СозданиеНачальногоОбраза, Получатель) Экспорт + + Если Получатель = Неопределено Тогда + + // + + ИначеЕсли ОтправкаЭлемента = ОтправкаЭлементаДанных.Удалить + ИЛИ ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать Тогда + + // Стандартную обработку не переопределяем + + ИначеЕсли СозданиеНачальногоОбраза + И ОбщегоНазначения.РазделениеВключено() + И АвтономнаяРаботаСлужебный.ЭтоУзелАвтономногоРабочегоМеста(Получатель.Ссылка) Тогда + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + + Если МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ЭлементДанных.Метаданные()) Тогда + + ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать; + + Если МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ЭлементДанных.Метаданные(), + МодульРаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда + + МетаданныеЭлемента = ЭлементДанных.Метаданные(); + + Если ОбщегоНазначения.ЭтоРегистр(МетаданныеЭлемента) + Или ОбщегоНазначения.ЭтоПоследовательность(МетаданныеЭлемента) + Или ОбщегоНазначения.ИмяБазовогоТипаПоОбъектуМетаданных(МетаданныеЭлемента) = "Перерасчеты" Тогда + + Для Каждого Запись Из ЭлементДанных Цикл + Запись[МодульРаботаВМоделиСервиса.РазделительВспомогательныхДанных()] = 0; + КонецЦикла; + + Иначе + ЭлементДанных[МодульРаботаВМоделиСервиса.РазделительВспомогательныхДанных()] = 0; + КонецЕсли; + + КонецЕсли; + + ЗаписатьXML(Получатель.ДополнительныеСвойства.ВыгруженныеДанные, ЭлементДанных); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +// + +// Для внутреннего использования +// +Процедура ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель) Экспорт + + Если ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать Тогда + // + ИначеЕсли АвтономнаяРаботаСлужебный.ЭтоАвтономноеРабочееМесто() Тогда + + Если ТипЗнч(ЭлементДанных) = Тип("УдалениеОбъекта") Тогда + + ОбъектМетаданных = ЭлементДанных.Ссылка.Метаданные(); + + Иначе + + ОбъектМетаданных = ЭлементДанных.Метаданные(); + + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + + Если Не МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ОбъектМетаданных, + МодульРаботаВМоделиСервиса.РазделительОсновныхДанных()) Тогда + + ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать; + + КонецЕсли; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +// Для внутреннего использования +// +Процедура ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель) Экспорт + + Если ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать Тогда + // + ИначеЕсли ОбщегоНазначения.РазделениеВключено() Тогда + + Если ТипЗнч(ЭлементДанных) = Тип("УдалениеОбъекта") Тогда + + ОбъектМетаданных = ЭлементДанных.Ссылка.Метаданные(); + + Иначе + + ОбъектМетаданных = ЭлементДанных.Метаданные(); + + КонецЕсли; + + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + + Если Не МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ОбъектМетаданных, + МодульРаботаВМоделиСервиса.РазделительОсновныхДанных()) Тогда + + ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать; + + КонецЕсли; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +//////////////////////////////////////////////////////////////////////////////// +// Экспортные служебные процедуры и функции + +// Выполняет выгрузку данных в обмене между областями данных. +// +// Параметры: +// Отказ - Булево - флаг отказа; поднимается в случае возникновения ошибки при выгрузке данных +// Корреспондент - ПланОбменаСсылка - узел плана обмена, для которого выполняется выгрузка данных. +// +Процедура ВыполнитьВыгрузкуДанных(Отказ, Знач Корреспондент) Экспорт + + ПараметрыОбмена = ОбменДаннымиСервер.ПараметрыОбмена(); + ПараметрыОбмена.ВыполнятьЗагрузку = Ложь; + ПараметрыОбмена.ВыполнятьВыгрузку = Истина; + + ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(Корреспондент, + ПараметрыОбмена, Отказ); + +КонецПроцедуры + +// Выполняет загрузку данных в обмене между областями данных. +// +// Параметры: +// Отказ - Булево - флаг отказа; поднимается в случае возникновения ошибки при загрузке данных +// Корреспондент - ПланОбменаСсылка - узел плана обмена, для которого выполняется загрузка данных. +// +Процедура ВыполнитьЗагрузкуДанных(Отказ, Знач Корреспондент, СообщениеДляСопоставленияДанных = Ложь) Экспорт + + ПараметрыОбмена = ОбменДаннымиСервер.ПараметрыОбмена(); + ПараметрыОбмена.ВыполнятьЗагрузку = Истина; + ПараметрыОбмена.ВыполнятьВыгрузку = Ложь; + + ДополнительныеПараметры = Новый Структура; + Если СообщениеДляСопоставленияДанных Тогда + ДополнительныеПараметры.Вставить("СообщениеДляСопоставленияДанных"); + КонецЕсли; + + ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(Корреспондент, + ПараметрыОбмена, Отказ, ДополнительныеПараметры); + +КонецПроцедуры + +// Инициирует обмен данными между двумя ИБ. +// +// Параметры: +// СценарийОбменаДанными - ТаблицаЗначений. +// +Процедура ВыполнитьОбменДанными(СценарийОбменаДанными) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + // Сбрасываем признак кумулятивного изменения данных для обмена + Константы.ЗарегистрированыИзмененияДанных.Установить(Ложь); + + Если СценарийОбменаДанными.Количество() > 0 Тогда + + // Запускаем выполнение сценария + ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазе(0, СценарийОбменаДанными); + + КонецЕсли; + +КонецПроцедуры + +// Выполнить действие сценария обмена, заданное строкой таблицы значений, для первой из двух обменивающихся ИБ. +// +// Параметры: +// ИндексСтрокиСценария - Число - Индекс строки в таблице СценарийОбменаДанными. +// СценарийОбменаДанными - ТаблицаЗначений. +// +Процедура ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазе(ИндексСтрокиСценария, СценарийОбменаДанными) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Если ИндексСтрокиСценария > СценарийОбменаДанными.Количество() - 1 Тогда + Возврат; // Завершение выполнения сценария + КонецЕсли; + + СтрокаСценария = СценарийОбменаДанными[ИндексСтрокиСценария]; + + Если СтрокаСценария.НомерИнформационнойБазы = 1 Тогда + + УзелИнформационнойБазы = НайтиУзелИнформационнойБазы(СтрокаСценария.ИмяПланаОбмена, СтрокаСценария.КодУзлаИнформационнойБазы); + + Если Не ОбменДаннымиСервер.НастройкаСинхронизацииЗавершена(УзелИнформационнойБазы) + Или ОбменДаннымиСервер.ПолученоСообщениеСДаннымиДляСопоставления(УзелИнформационнойБазы) Тогда + // Отмечаем выполнение обмена в управляющем приложении. + WSПроксиСервиса = ОбменДаннымиВМоделиСервисаПовтИсп.ПолучитьWSПроксиСервисаОбмена(); + WSПроксиСервиса.CommitExchange(СериализаторXDTO.ЗаписатьXDTO(СценарийОбменаДанными)); + Возврат; + КонецЕсли; + + Если СтрокаСценария.ВыполняемоеДействие = "ЗагрузкаДанных" Тогда + + ВыполнитьЗагрузкуДанных(Ложь, УзелИнформационнойБазы); + + ИначеЕсли СтрокаСценария.ВыполняемоеДействие = "ВыгрузкаДанных" Тогда + + ВыполнитьВыгрузкуДанных(Ложь, УзелИнформационнойБазы); + + Иначе + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Неизвестное действие ""%1"" при обмене данными между областями данных.'"), + СтрокаСценария.ВыполняемоеДействие); + КонецЕсли; + + // Переходим к следующему шагу сценария. + ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазе(ИндексСтрокиСценария + 1, СценарийОбменаДанными); + + ИначеЕсли СтрокаСценария.НомерИнформационнойБазы = 2 Тогда + + УзелИнформационнойБазы = НайтиУзелИнформационнойБазы(СтрокаСценария.ИмяПланаОбмена, СтрокаСценария.КодЭтогоУзла); + + Если Не ОбменДаннымиСервер.НастройкаСинхронизацииЗавершена(УзелИнформационнойБазы) + Или ОбменДаннымиСервер.ПолученоСообщениеСДаннымиДляСопоставления(УзелИнформационнойБазы) Тогда + // Отмечаем выполнение обмена в управляющем приложении. + WSПроксиСервиса = ОбменДаннымиВМоделиСервисаПовтИсп.ПолучитьWSПроксиСервисаОбмена(); + WSПроксиСервиса.CommitExchange(СериализаторXDTO.ЗаписатьXDTO(СценарийОбменаДанными)); + Возврат; + КонецЕсли; + + ВерсииКорреспондента = ВерсииКорреспондента(УзелИнформационнойБазы); + + Если ВерсииКорреспондента.Найти("2.4.5.1") <> Неопределено Тогда + + WSПрокси = ОбменДаннымиВМоделиСервисаПовтИсп.ПолучитьWSПроксиКорреспондента_2_4_5_1(УзелИнформационнойБазы); + ПараметрСценарийОбменаДанными = СериализаторXDTO.ЗаписатьXDTO(СценарийОбменаДанными); + + ИначеЕсли ВерсииКорреспондента.Найти("2.1.6.1") <> Неопределено Тогда + + WSПрокси = ОбменДаннымиВМоделиСервисаПовтИсп.ПолучитьWSПроксиКорреспондента_2_1_6_1(УзелИнформационнойБазы); + ПараметрСценарийОбменаДанными = СериализаторXDTO.ЗаписатьXDTO(СценарийОбменаДанными); + + ИначеЕсли ВерсииКорреспондента.Найти("2.0.1.6") <> Неопределено Тогда + + WSПрокси = ОбменДаннымиВМоделиСервисаПовтИсп.ПолучитьWSПроксиКорреспондента_2_0_1_6(УзелИнформационнойБазы); + ПараметрСценарийОбменаДанными = СериализаторXDTO.ЗаписатьXDTO(СценарийОбменаДанными); + + Иначе + + WSПрокси = ОбменДаннымиВМоделиСервисаПовтИсп.ПолучитьWSПроксиКорреспондента(УзелИнформационнойБазы); + ПараметрСценарийОбменаДанными = ЗначениеВСтрокуВнутр(СценарийОбменаДанными); + + КонецЕсли; + + Если WSПрокси = Неопределено Тогда + // Переходим к следующему шагу сценария. + ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазе(ИндексСтрокиСценария + 1, СценарийОбменаДанными); + Возврат; + КонецЕсли; + + WSПрокси.StartExchangeExecutionInSecondDataBase(ИндексСтрокиСценария, ПараметрСценарийОбменаДанными); + + КонецЕсли; + +КонецПроцедуры + +// Выполнить действие сценария обмена, заданное строкой таблицы значений, для второй из двух обменивающихся ИБ. +// +// Параметры: +// ИндексСтрокиСценария - Число - Индекс строки в таблице СценарийОбменаДанными. +// СценарийОбменаДанными - ТаблицаЗначений. +// +Процедура ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазе(ИндексСтрокиСценария, СценарийОбменаДанными) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + СтрокаСценария = СценарийОбменаДанными[ИндексСтрокиСценария]; + + УзелИнформационнойБазы = НайтиУзелИнформационнойБазы(СтрокаСценария.ИмяПланаОбмена, СтрокаСценария.КодУзлаИнформационнойБазы); + + Если СтрокаСценария.ПорядковыйНомерВыполнения = 1 Тогда + // Сбрасываем признак кумулятивного изменения данных для обмена. + Константы.ЗарегистрированыИзмененияДанных.Установить(Ложь); + КонецЕсли; + + Если Не ОбменДаннымиСервер.НастройкаСинхронизацииЗавершена(УзелИнформационнойБазы) + Или ОбменДаннымиСервер.ПолученоСообщениеСДаннымиДляСопоставления(УзелИнформационнойБазы) Тогда + // Отмечаем выполнение обмена в управляющем приложении + WSПроксиСервиса = ОбменДаннымиВМоделиСервисаПовтИсп.ПолучитьWSПроксиСервисаОбмена(); + WSПроксиСервиса.CommitExchange(СериализаторXDTO.ЗаписатьXDTO(СценарийОбменаДанными)); + Возврат; + КонецЕсли; + + Если СтрокаСценария.ВыполняемоеДействие = "ЗагрузкаДанных" Тогда + + ВыполнитьЗагрузкуДанных(Ложь, УзелИнформационнойБазы); + + ИначеЕсли СтрокаСценария.ВыполняемоеДействие = "ВыгрузкаДанных" Тогда + + ВыполнитьВыгрузкуДанных(Ложь, УзелИнформационнойБазы); + + Иначе + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Неизвестное действие ""%1"" при обмене данными между областями данных.'"), + СтрокаСценария.ВыполняемоеДействие); + КонецЕсли; + + // Завершение выполнения сценария + Если ИндексСтрокиСценария = СценарийОбменаДанными.Количество() - 1 Тогда + + // Отмечаем выполнение обмена в управляющем приложении + WSПроксиСервиса = ОбменДаннымиВМоделиСервисаПовтИсп.ПолучитьWSПроксиСервисаОбмена(); + WSПроксиСервиса.CommitExchange(СериализаторXDTO.ЗаписатьXDTO(СценарийОбменаДанными)); + Возврат; + КонецЕсли; + + ВерсииКорреспондента = ВерсииКорреспондента(УзелИнформационнойБазы); + + Если ВерсииКорреспондента.Найти("2.0.1.6") <> Неопределено Тогда + + WSПрокси = ОбменДаннымиВМоделиСервисаПовтИсп.ПолучитьWSПроксиКорреспондента_2_0_1_6(УзелИнформационнойБазы); + + Если WSПрокси <> Неопределено Тогда + + WSПрокси.StartExchangeExecutionInFirstDataBase(ИндексСтрокиСценария + 1, СериализаторXDTO.ЗаписатьXDTO(СценарийОбменаДанными)); + + КонецЕсли; + + Иначе + + WSПрокси = ОбменДаннымиВМоделиСервисаПовтИсп.ПолучитьWSПроксиКорреспондента(УзелИнформационнойБазы); + + Если WSПрокси <> Неопределено Тогда + + WSПрокси.StartExchangeExecutionInFirstDataBase(ИндексСтрокиСценария + 1, ЗначениеВСтрокуВнутр(СценарийОбменаДанными)); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +// Выполняет удаление узла обмена в этой базе. +// +Процедура УдалитьНастройкуСинхронизации(ИмяПланаОбмена, КодУзлаКорреспондента) Экспорт + + Корреспондент = НайтиУзелИнформационнойБазы(ИмяПланаОбмена, КодУзлаКорреспондента); + + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обработка сообщения удаления настройки синхронизации ""%1"" с приложением ""%2"".'"), + ИмяПланаОбмена, КодУзлаКорреспондента); + + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Информация, , , ТекстСообщения); + + НастройкиТранспорта = РегистрыСведений.НастройкиТранспортаОбменаОбластиДанных.НастройкиТранспорта(Корреспондент); + + Если НастройкиТранспорта <> Неопределено Тогда + + Если НастройкиТранспорта.ВидТранспортаСообщенийОбменаПоУмолчанию = Перечисления.ВидыТранспортаСообщенийОбмена.FILE Тогда + + Если Не ПустаяСтрока(НастройкиТранспорта.FILEОбщийКаталогОбменаИнформацией) + И Не ПустаяСтрока(НастройкиТранспорта.ОтносительныйКаталогОбменаИнформацией) Тогда + + АбсолютныйКаталогОбменаИнформацией = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( + НастройкиТранспорта.FILEОбщийКаталогОбменаИнформацией, + НастройкиТранспорта.ОтносительныйКаталогОбменаИнформацией); + + АбсолютныйКаталог = Новый Файл(АбсолютныйКаталогОбменаИнформацией); + + Попытка + УдалитьФайлы(АбсолютныйКаталог.ПолноеИмя); + Исключение + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + + КонецЕсли; + + ИначеЕсли НастройкиТранспорта.ВидТранспортаСообщенийОбменаПоУмолчанию = Перечисления.ВидыТранспортаСообщенийОбмена.FTP Тогда + + Попытка + + НастройкиFTP = ОбменДаннымиСервер.FTPНастройкиСоединения(); + НастройкиFTP.Сервер = НастройкиТранспорта.FTPСервер; + НастройкиFTP.Порт = НастройкиТранспорта.FTPСоединениеПорт; + НастройкиFTP.ИмяПользователя = НастройкиТранспорта.FTPСоединениеПользователь; + НастройкиFTP.ПарольПользователя = НастройкиТранспорта.FTPСоединениеПароль; + НастройкиFTP.ПассивноеСоединение = НастройкиТранспорта.FTPСоединениеПассивноеСоединение; + НастройкиFTP.ЗащищенноеСоединение = ОбменДаннымиСервер.ЗащищенноеСоединение(НастройкиТранспорта.FTPСоединениеПуть); + + FTPСоединение = ОбменДаннымиСервер.FTPСоединение(НастройкиFTP); + + Если ОбменДаннымиСервер.FTPКаталогСуществует(НастройкиТранспорта.FTPПуть, НастройкиТранспорта.ОтносительныйКаталогОбменаИнформацией, FTPСоединение) Тогда + FTPСоединение.Удалить(НастройкиТранспорта.FTPПуть); + КонецЕсли; + + Исключение + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + + КонецЕсли; + + КонецЕсли; + + // Удаляем узел корреспондента + Корреспондент.ПолучитьОбъект().Удалить(); + +КонецПроцедуры + +// Генерирует код узла плана обмена для заданной области данных. +// +// Параметры: +// НомерОбласти - Число - Значение разделителя. +// +// Возвращаемое значение: +// Строка - Код узла плана обмена для заданной области. +// +Функция КодУзлаПланаОбменаВСервисе(Знач НомерОбласти) Экспорт + + Если ТипЗнч(НомерОбласти) <> Тип("Число") Тогда + ВызватьИсключение НСтр("ru = 'Неправильный тип параметра номер [1].'"); + КонецЕсли; + + Результат = "S0[НомерОбласти]"; + + Возврат СтрЗаменить(Результат, "[НомерОбласти]", Формат(НомерОбласти, "ЧЦ=7; ЧВН=; ЧГ=0")); + +КонецФункции + +// Формирует имя приложения в сервисе +// +Функция СформироватьНаименованиеПредопределенногоУзла() Экспорт + + ИмяПриложенияПоУмолчанию = НСтр("ru = 'Приложение в Интернете'"); + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат ИмяПриложенияПоУмолчанию; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + + ИмяПриложения = МодульРаботаВМоделиСервиса.ПолучитьИмяПриложения(); + + Возврат ?(ПустаяСтрока(ИмяПриложения), ИмяПриложенияПоУмолчанию, ИмяПриложения); +КонецФункции + +Функция ИмяКаталогаСообщенийОбмена(Знач Код1, Знач Код2) + + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Exchange %1-%2", Код1, Код2); + +КонецФункции + +// Регистрирует обработчики поставляемых данных +// +Процедура ЗарегистрироватьОбработчикиПоставляемыхДанных(Знач Обработчики) + + Обработчик = Обработчики.Добавить(); + Обработчик.ВидДанных = ИдентификаторВидаПоставляемыхДанных(); + Обработчик.КодОбработчика = ИдентификаторВидаПоставляемыхДанных(); + Обработчик.Обработчик = ОбменДаннымиВМоделиСервиса; + +КонецПроцедуры + +// Вызывается при получении уведомления о новых данных. +// В теле следует проверить, необходимы ли эти данные приложению, +// и если да - установить флажок Загружать. +// +// Параметры: +// Дескриптор - ОбъектXDTO Descriptor. +// Загружать - булево, возвращаемое. +// +Процедура ДоступныНовыеДанные(Знач Дескриптор, Загружать) Экспорт + + Если Дескриптор.DataType = ИдентификаторВидаПоставляемыхДанных() Тогда + + ОписаниеПоставляемыхПравил = РазобратьДескрипторПоставляемыхДанных(Дескриптор); + + Если ОписаниеПоставляемыхПравил.ИмяКонфигурации = Метаданные.Имя + И ОписаниеПоставляемыхПравил.ВерсияКонфигурации = Метаданные.Версия + И Метаданные.ПланыОбмена.Найти(ОписаниеПоставляемыхПравил.ИмяПланаОбмена) <> Неопределено + И ОбменДаннымиПовтИсп.ПланОбменаИспользуетсяВМоделиСервиса(ОписаниеПоставляемыхПравил.ИмяПланаОбмена) + И ОбменДаннымиСервер.ЭтоРазделенныйПланОбменаБСП(ОписаниеПоставляемыхПравил.ИмяПланаОбмена) Тогда // Правила совместимы с ИБ + + Загружать = Истина; + + Иначе + + Загружать = Ложь; + + ТекстСообщения = НСтр("ru = 'Поставляемые правила обмена не подходят для текущей конфигурации и предназначены для плана обмена %1 конфигурации %2 версии %3'"); + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, + ОписаниеПоставляемыхПравил.ИмяПланаОбмена, ОписаниеПоставляемыхПравил.ИмяКонфигурации, ОписаниеПоставляемыхПравил.ВерсияКонфигурации); + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые правила обмена данными.Загрузка поставляемых правил отменена'", + ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Информация,,, ТекстСообщения); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +// Вызывается после вызова ДоступныНовыеДанные, позволяет разобрать данные. +// +// Параметры: +// Дескриптор - ОбъектXDTO Дескриптор. +// ПутьКФайлу - Строка или Неопределено. Полное имя извлеченного файла. Файл будет автоматически удален +// после завершения процедуры. Если в менеджере сервиса не был +// указан файл - значение аргумента равно Неопределено. +// +Процедура ОбработатьНовыеДанные(Знач Дескриптор, Знач ПутьКФайлу) Экспорт + + Если Дескриптор.DataType = ИдентификаторВидаПоставляемыхДанных() Тогда + ОбработатьПоставляемыеПравилаОбмена(Дескриптор, ПутьКФайлу); + КонецЕсли; + +КонецПроцедуры + +// Вызывается при отмене обработки данных в случае сбоя +// +Процедура ОбработкаДанныхОтменена(Знач Дескриптор) Экспорт + +КонецПроцедуры + +// Возвращает идентификатор вида поставляемых данных для правил обмена данными +// +// Возвращаемое значение: Строка. +// +Функция ИдентификаторВидаПоставляемыхДанных() + + Возврат "ER"; // Не локализуется + +КонецФункции + +Функция ОписаниеПоставляемыхПравил() + + Возврат Новый Структура("ИмяКонфигурации, ВерсияКонфигурации, ИмяПланаОбмена, Использовать"); + +КонецФункции + +Функция РазобратьДескрипторПоставляемыхДанных(Дескриптор) + + ОписаниеПоставляемыхПравил = ОписаниеПоставляемыхПравил(); + + Для Каждого ХарактеристикаПоставляемыхДанных Из Дескриптор.Properties.Property Цикл + + ОписаниеПоставляемыхПравил[ХарактеристикаПоставляемыхДанных.Code] = ХарактеристикаПоставляемыхДанных.Value; + + КонецЦикла; + + Возврат ОписаниеПоставляемыхПравил; + +КонецФункции + +Процедура ОбработатьПоставляемыеПравилаОбмена(Дескриптор, ПутьКФайлу) + + УстановитьПривилегированныйРежим(Истина); + + // Прочитаем характеристики экземпляра поставляемых данных + ОписаниеПоставляемыхПравил = РазобратьДескрипторПоставляемыхДанных(Дескриптор); + + Если ОписаниеПоставляемыхПравил.Использовать Тогда + ОбменДаннымиСервер.ЗагрузитьПоставляемыеПравила(ОписаниеПоставляемыхПравил.ИмяПланаОбмена, ПутьКФайлу); + Иначе + ОбменДаннымиСервер.УдалитьПоставляемыеПравила(ОписаниеПоставляемыхПравил.ИмяПланаОбмена); + КонецЕсли; + + ОбменДаннымиВызовСервера.СброситьКэшМеханизмаРегистрацииОбъектов(); + ОбновитьПовторноИспользуемыеЗначения(); + +КонецПроцедуры + +Функция МенеджерПланаОбменаКонечныхТочек() Экспорт + + МетаданныеОбменСообщениями = Метаданные.НайтиПоТипу(Метаданные.ОпределяемыеТипы.КонечнаяТочкаОбменаСообщениями.Тип.Типы()[0]).ПолноеИмя(); + Если МетаданныеОбменСообщениями = Неопределено Тогда + ВызватьИсключение НСтр("ru = 'Не определен план обмена конечных точек.'"); + КонецЕсли; + + Возврат ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(МетаданныеОбменСообщениями); + +КонецФункции + +// Отправляет сообщение +// +// Параметры: +// Сообщение - ОбъектXDTO - сообщение. +// +Функция ОтправитьСообщение(Знач Сообщение) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + ВызватьИсключение НСтр("ru = 'Отсутствует менеджер сервиса.'"); + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + МодульРаботаВМоделиСервисаБТСПовтИсп = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервисаБТСПовтИсп"); + + Сообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + Сообщение.Body.SessionId = РегистрыСведений.СессииОбменаСообщениямиСистемы.НоваяСессия(); + + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(Сообщение, + МодульРаботаВМоделиСервисаБТСПовтИсп.КонечнаяТочкаМенеджераСервиса(), + Истина); + + Возврат Сообщение.Body.SessionId; +КонецФункции + +// + +// Для внутреннего использования +// +Процедура СоздатьНастройкуОбмена(НастройкиПодключения, + ЭтоКорреспондент = Ложь, + РежимСовместимостиСБСП_2_0_0 = Ложь, + ПсевдонимЭтогоУзла = "") Экспорт + + НачатьТранзакцию(); + Попытка + + КодЭтогоУзла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПланыОбмена[НастройкиПодключения.ИмяПланаОбмена].ЭтотУзел(), "Код"); + + // Проверяем, что для текущего узла задан код + Если ПустаяСтрока(КодЭтогоУзла) Тогда + + // Код узла задается в обработчике обновления ИБ + СтрокаСообщения = НСтр("ru = 'Для предопределенного узла плана обмена ""%1"" не задан код.'"); + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, НастройкиПодключения.ИмяПланаОбмена); + ВызватьИсключение СтрокаСообщения; + КонецЕсли; + + // Проверяем префикс этой ИБ + Если ПустаяСтрока(ПолучитьФункциональнуюОпцию("ПрефиксИнформационнойБазы")) Тогда + + Если ПустаяСтрока(НастройкиПодключения.Префикс) Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Для продолжения настройки синхронизации данных необходимо + |задать префикс информационной базы в приложении ""%1"".'"), + Метаданные.Синоним); + КонецЕсли; + + ОбменДаннымиСервер.УстановитьПрефиксИнформационнойБазы(НастройкиПодключения.Префикс); + + КонецЕсли; + + // Создаем/обновляем узел корреспондента + Корреспондент = ПланыОбмена[НастройкиПодключения.ИмяПланаОбмена].НайтиПоКоду(НастройкиПодключения.КодКорреспондента); + + ПроверитьКод = Ложь; + + Если Корреспондент.Пустая() Тогда + КорреспондентОбъект = ПланыОбмена[НастройкиПодключения.ИмяПланаОбмена].СоздатьУзел(); + КорреспондентОбъект.Код = НастройкиПодключения.КодКорреспондента; + ПроверитьКод = Истина; + Иначе + КорреспондентОбъект = Корреспондент.ПолучитьОбъект(); + КонецЕсли; + + КорреспондентОбъект.Наименование = НастройкиПодключения.НаименованиеКорреспондента; + + ОбменДаннымиСобытия.УстановитьЗначенияОтборовНаУзле(КорреспондентОбъект, НастройкиПодключения.Настройки); + + КорреспондентОбъект.НомерОтправленного = 0; + КорреспондентОбъект.НомерПринятого = 0; + + КорреспондентОбъект.РегистрироватьИзменения = Истина; + + КорреспондентОбъект.ОбменДанными.Загрузка = Истина; + КорреспондентОбъект.Записать(); + + Если Не ПустаяСтрока(ПсевдонимЭтогоУзла) Тогда + ВиртуальныеКоды = РегистрыСведений["ПсевдонимыПредопределенныхУзлов"].СоздатьНаборЗаписей(); + ВиртуальныйКод = ВиртуальныеКоды.Добавить(); + ВиртуальныйКод.Корреспондент = КорреспондентОбъект.Ссылка; + ВиртуальныйКод.КодУзла = ПсевдонимЭтогоУзла; + + ВиртуальныеКоды.Записать(); + КонецЕсли; + + Если ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(НастройкиПодключения.ИмяПланаОбмена) Тогда + + ТаблицаОбъектыБазы = ОбменДаннымиXDTOСервер.ПоддерживаемыеОбъектыФормата(НастройкиПодключения.ИмяПланаОбмена, + "ОтправкаПолучение", КорреспондентОбъект.Ссылка); + ТаблицаОбъектыКорреспондента = ТаблицаОбъектыБазы.СкопироватьКолонки(); + + Для Каждого СтрокаОбъектыБазы Из ТаблицаОбъектыБазы Цикл + СтрокаОбъектыКорреспондента = ТаблицаОбъектыКорреспондента.Добавить(); + ЗаполнитьЗначенияСвойств(СтрокаОбъектыКорреспондента, СтрокаОбъектыБазы, "Версия, Объект"); + СтрокаОбъектыКорреспондента.Отправка = СтрокаОбъектыБазы.Получение; + СтрокаОбъектыКорреспондента.Получение = СтрокаОбъектыБазы.Отправка; + КонецЦикла; + + МенеджерНастройкиXDTO = ОбщегоНазначения.ОбщийМодуль("РегистрыСведений.НастройкиОбменаДаннымиXDTO"); + МенеджерНастройкиXDTO.ОбновитьНастройки( + КорреспондентОбъект.Ссылка, "ПоддерживаемыеОбъекты", ТаблицаОбъектыБазы); + МенеджерНастройкиXDTO.ОбновитьНастройкиКорреспондента( + КорреспондентОбъект.Ссылка, "ПоддерживаемыеОбъекты", ТаблицаОбъектыКорреспондента); + + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("УзелИнформационнойБазы", КорреспондентОбъект.Ссылка); + СтруктураЗаписи.Вставить("ИмяПланаОбменаКорреспондента", НастройкиПодключения.ИмяПланаОбмена); + + ОбменДаннымиСлужебный.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиОбменаДаннымиXDTO"); + КонецЕсли; + + // Общие данные узлов. + РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.ОбновитьПрефиксы( + КорреспондентОбъект.Ссылка, + НастройкиПодключения.Префикс); + + Если Не ОбменДаннымиСервер.НастройкаСинхронизацииЗавершена(КорреспондентОбъект.Ссылка) Тогда + ОбменДаннымиСервер.ЗавершитьНастройкуСинхронизацииДанных(КорреспондентОбъект.Ссылка); + КонецЕсли; + + Корреспондент = КорреспондентОбъект.Ссылка; + + ФактическийКодКорреспондента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Корреспондент, "Код"); + + Если ПроверитьКод И НастройкиПодключения.КодКорреспондента <> ФактическийКодКорреспондента Тогда + + СтрокаСообщения = НСтр("ru = 'Ошибка назначения кода узла корреспондента. + |Назначенное значение ""%1"" + |Фактическое значение ""%2"".'"); + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, + НастройкиПодключения.КодКорреспондента, ФактическийКодКорреспондента); + ВызватьИсключение СтрокаСообщения; + КонецЕсли; + + // Работа с настройками транспорта. + Параметры = Новый Структура; + Параметры.Вставить("Корреспондент", Корреспондент); + Параметры.Вставить("КодЭтогоУзла", КодЭтогоУзла); + Параметры.Вставить("КодКорреспондента", НастройкиПодключения.КодКорреспондента); + Параметры.Вставить("КонечнаяТочкаКорреспондента", НастройкиПодключения.КонечнаяТочкаКорреспондента); + Параметры.Вставить("ЭтоКорреспондент", ЭтоКорреспондент); + Параметры.Вставить("РежимСовместимостиСБСП_2_0_0", РежимСовместимостиСБСП_2_0_0); + Параметры.Вставить("ПсевдонимЭтогоУзла", ПсевдонимЭтогоУзла); + + ОбновитьНастройкиТранспортаОбластиДанных(Параметры); + + НастройкиПодключения.Корреспондент = Корреспондент; + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +Процедура СоздатьНастройкуОбмена_3_0_1_1(НастройкиПодключения, + ЭтоКорреспондент = Ложь, + РежимСовместимостиСБСП_2_0_0 = Ложь, + ПсевдонимЭтогоУзла = "") Экспорт + + КодЭтогоУзла = НастройкиПодключения.ИдентификаторИнформационнойБазыИсточника; + + // Проверяем, что для текущего узла задан код. + Если ПустаяСтрока(КодЭтогоУзла) Тогда + // Код узла задается в обработчике обновления ИБ. + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Для предопределенного узла плана обмена ""%1"" не задан код.'"), + НастройкиПодключения.ИмяПланаОбмена); + КонецЕсли; + + УстановитьПрефикс = Ложь; + Если ПустаяСтрока(ОбменДаннымиСервер.ПрефиксИнформационнойБазы()) Тогда + Если ПустаяСтрока(НастройкиПодключения.Префикс) Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Для продолжения настройки синхронизации данных необходимо + |задать префикс информационной базы в приложении ""%1"".'"), + Метаданные.Синоним); + КонецЕсли; + + УстановитьПрефикс = Истина; + Иначе + НастройкиПодключения.Префикс = ОбменДаннымиСервер.ПрефиксИнформационнойБазы(); + КонецЕсли; + + НачатьТранзакцию(); + Попытка + Если УстановитьПрефикс Тогда + ОбменДаннымиСервер.УстановитьПрефиксИнформационнойБазы(НастройкиПодключения.Префикс); + КонецЕсли; + + // Создаем/обновляем узел корреспондента. + Корреспондент = ПланыОбмена[НастройкиПодключения.ИмяПланаОбмена].НайтиПоКоду( + НастройкиПодключения.ИдентификаторИнформационнойБазыПриемника); + + ПроверитьКод = Ложь; + Если Корреспондент.Пустая() Тогда + КорреспондентОбъект = ПланыОбмена[НастройкиПодключения.ИмяПланаОбмена].СоздатьУзел(); + КорреспондентОбъект.Код = НастройкиПодключения.ИдентификаторИнформационнойБазыПриемника; + + Если ОбщегоНазначения.ЕстьРеквизитОбъекта("ВариантНастройки", КорреспондентОбъект.Метаданные()) + И НастройкиПодключения.Свойство("ИдентификаторНастройки") Тогда + КорреспондентОбъект.ВариантНастройки = НастройкиПодключения.ИдентификаторНастройки; + КонецЕсли; + + ПроверитьКод = Истина; + Иначе + КорреспондентОбъект = Корреспондент.ПолучитьОбъект(); + КонецЕсли; + + КорреспондентОбъект.Наименование = НастройкиПодключения.НаименованиеКорреспондента; + + Если ПроверитьКод Тогда + КорреспондентОбъект.Заполнить(Неопределено); + КонецЕсли; + + КорреспондентОбъект.НомерОтправленного = 0; + КорреспондентОбъект.НомерПринятого = 0; + + КорреспондентОбъект.РегистрироватьИзменения = Истина; + + // Версия формата обмена. + Если ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(НастройкиПодключения.ИмяПланаОбмена) + И НастройкиПодключения.Свойство("НастройкиXDTOКорреспондента") Тогда + + КорреспондентОбъект.ВерсияФорматаОбмена = ОбменДаннымиXDTOСервер.МаксимальнаяОбщаяВерсияФормата( + НастройкиПодключения.ИмяПланаОбмена, НастройкиПодключения.НастройкиXDTOКорреспондента.ПоддерживаемыеВерсии); + + КонецЕсли; + + КорреспондентОбъект.ОбменДанными.Загрузка = Истина; + КорреспондентОбъект.Записать(); + + Корреспондент = КорреспондентОбъект.Ссылка; + + // Настройки XDTO корреспондента. + Если ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(НастройкиПодключения.ИмяПланаОбмена) Тогда + + Если НастройкиПодключения.Свойство("НастройкиXDTOКорреспондента") Тогда + РегистрыСведений.НастройкиОбменаДаннымиXDTO.ОбновитьНастройкиКорреспондента(Корреспондент, + "ПоддерживаемыеОбъекты", + НастройкиПодключения.НастройкиXDTOКорреспондента.ПоддерживаемыеОбъекты.Получить()); + КонецЕсли; + + РегистрыСведений.НастройкиОбменаДаннымиXDTO.ОбновитьНастройкиКорреспондента(Корреспондент, + "ОбластьДанныхКорреспондента", + НастройкиПодключения.ОбластьДанныхКорреспондента); + + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("УзелИнформационнойБазы", Корреспондент); + СтруктураЗаписи.Вставить("ИмяПланаОбменаКорреспондента", НастройкиПодключения.ИмяПланаОбмена); + + ОбменДаннымиСлужебный.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиОбменаДаннымиXDTO"); + + КонецЕсли; + + // Общие данные узлов. + РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.ОбновитьПрефиксы( + Корреспондент, + НастройкиПодключения.Префикс, + НастройкиПодключения.ПрефиксКорреспондента); + + Если Не ПустаяСтрока(ПсевдонимЭтогоУзла) Тогда + ВиртуальныеКоды = РегистрыСведений["ПсевдонимыПредопределенныхУзлов"].СоздатьНаборЗаписей(); + ВиртуальныйКод = ВиртуальныеКоды.Добавить(); + ВиртуальныйКод.Корреспондент = Корреспондент; + ВиртуальныйКод.КодУзла = ПсевдонимЭтогоУзла; + + ВиртуальныеКоды.Записать(); + КонецЕсли; + + ФактическийКодКорреспондента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Корреспондент, "Код"); + + Если ПроверитьКод + И НастройкиПодключения.ИдентификаторИнформационнойБазыПриемника <> ФактическийКодКорреспондента Тогда + СтрокаСообщения = НСтр("ru = 'Ошибка назначения кода узла корреспондента. + |Назначенное значение ""%1"" + |Фактическое значение ""%2"".'"); + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, + НастройкиПодключения.ИдентификаторИнформационнойБазыПриемника, + ФактическийКодКорреспондента); + ВызватьИсключение СтрокаСообщения; + КонецЕсли; + + // Работа с настройками транспорта. + Параметры = Новый Структура; + Параметры.Вставить("Корреспондент", Корреспондент); + Параметры.Вставить("КодЭтогоУзла", КодЭтогоУзла); + Параметры.Вставить("КодКорреспондента", НастройкиПодключения.ИдентификаторИнформационнойБазыПриемника); + Параметры.Вставить("КонечнаяТочкаКорреспондента", НастройкиПодключения.КонечнаяТочкаКорреспондента); + Параметры.Вставить("ЭтоКорреспондент", ЭтоКорреспондент); + Параметры.Вставить("РежимСовместимостиСБСП_2_0_0", РежимСовместимостиСБСП_2_0_0); + Параметры.Вставить("ПсевдонимЭтогоУзла", ПсевдонимЭтогоУзла); + + ОбновитьНастройкиТранспортаОбластиДанных(Параметры); + + НастройкиПодключения.Корреспондент = Корреспондент; + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +Процедура ОбновитьНастройкиТранспортаОбластиДанных(Параметры) + + Корреспондент = Параметры.Корреспондент; + КодЭтогоУзла = Параметры.КодЭтогоУзла; + КодКорреспондента = Параметры.КодКорреспондента; + КонечнаяТочкаКорреспондента = Параметры.КонечнаяТочкаКорреспондента; + ЭтоКорреспондент = Параметры.ЭтоКорреспондент; + РежимСовместимостиСБСП_2_0_0 = Параметры.РежимСовместимостиСБСП_2_0_0; + ПсевдонимЭтогоУзла = Параметры.ПсевдонимЭтогоУзла; + + Если ЭтоКорреспондент Тогда + Если Не ПустаяСтрока(ПсевдонимЭтогоУзла) Тогда + ОтносительныйКаталогОбменаИнформацией = ИмяКаталогаСообщенийОбмена(КодКорреспондента, ПсевдонимЭтогоУзла); + Иначе + ОтносительныйКаталогОбменаИнформацией = ИмяКаталогаСообщенийОбмена(КодКорреспондента, КодЭтогоУзла); + КонецЕсли; + Иначе + Если Не ПустаяСтрока(ПсевдонимЭтогоУзла) Тогда + ОтносительныйКаталогОбменаИнформацией = ИмяКаталогаСообщенийОбмена(ПсевдонимЭтогоУзла, КодКорреспондента); + Иначе + ОтносительныйКаталогОбменаИнформацией = ИмяКаталогаСообщенийОбмена(КодЭтогоУзла, КодКорреспондента); + КонецЕсли; + КонецЕсли; + + НастройкиТранспорта = РегистрыСведений.НастройкиТранспортаОбменаОбластейДанных.НастройкиТранспорта(КонечнаяТочкаКорреспондента); + + Если НастройкиТранспорта.ВидТранспортаСообщенийОбменаПоУмолчанию = Перечисления.ВидыТранспортаСообщенийОбмена.FILE Тогда + + // Обмен через сетевой каталог + + FILEОбщийКаталогОбменаИнформацией = СокрЛП(НастройкиТранспорта.FILEКаталогОбменаИнформацией); + + Если ПустаяСтрока(FILEОбщийКаталогОбменаИнформацией) Тогда + + СтрокаСообщения = НСтр("ru = 'Не задан каталог обмена информацией для конечной точки ""%1"".'"); + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, Строка(КонечнаяТочкаКорреспондента)); + ВызватьИсключение СтрокаСообщения; + КонецЕсли; + + ОбщийКаталог = Новый Файл(FILEОбщийКаталогОбменаИнформацией); + + Если Не ОбщийКаталог.Существует() Тогда + + СтрокаСообщения = НСтр("ru = 'Каталог обмена информацией ""%1"" не существует.'"); + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, FILEОбщийКаталогОбменаИнформацией); + ВызватьИсключение СтрокаСообщения; + КонецЕсли; + + Если Не РежимСовместимостиСБСП_2_0_0 Тогда + + FILEАбсолютныйКаталогОбменаИнформацией = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( + FILEОбщийКаталогОбменаИнформацией, + ОтносительныйКаталогОбменаИнформацией); + + // Создаем каталог обмена сообщениями + АбсолютныйКаталог = Новый Файл(FILEАбсолютныйКаталогОбменаИнформацией); + Если Не АбсолютныйКаталог.Существует() Тогда + СоздатьКаталог(АбсолютныйКаталог.ПолноеИмя); + КонецЕсли; + + // Сохраняем настройки транспорта сообщений обмена для текущей области данных + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("Корреспондент", Корреспондент); + СтруктураЗаписи.Вставить("КонечнаяТочкаКорреспондента", КонечнаяТочкаКорреспондента); + СтруктураЗаписи.Вставить("КаталогОбменаИнформацией", ОтносительныйКаталогОбменаИнформацией); + + РегистрыСведений.НастройкиТранспортаОбменаОбластиДанных.ОбновитьЗапись(СтруктураЗаписи); + КонецЕсли; + + ИначеЕсли НастройкиТранспорта.ВидТранспортаСообщенийОбменаПоУмолчанию = Перечисления.ВидыТранспортаСообщенийОбмена.FTP Тогда + + // Обмен через FTP-сервер + + НастройкиFTP = ОбменДаннымиСервер.FTPНастройкиСоединения(); + НастройкиFTP.Сервер = НастройкиТранспорта.FTPСервер; + НастройкиFTP.Порт = НастройкиТранспорта.FTPСоединениеПорт; + НастройкиFTP.ИмяПользователя = НастройкиТранспорта.FTPСоединениеПользователь; + НастройкиFTP.ПарольПользователя = НастройкиТранспорта.FTPСоединениеПароль; + НастройкиFTP.ПассивноеСоединение = НастройкиТранспорта.FTPСоединениеПассивноеСоединение; + НастройкиFTP.ЗащищенноеСоединение = ОбменДаннымиСервер.ЗащищенноеСоединение(НастройкиТранспорта.FTPСоединениеПуть); + + FTPСоединение = ОбменДаннымиСервер.FTPСоединение(НастройкиFTP); + + АбсолютныйКаталогОбменаИнформацией = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( + НастройкиТранспорта.FTPПуть, + ОтносительныйКаталогОбменаИнформацией); + Если Не ОбменДаннымиСервер.FTPКаталогСуществует(АбсолютныйКаталогОбменаИнформацией, ОтносительныйКаталогОбменаИнформацией, FTPСоединение) Тогда + FTPСоединение.СоздатьКаталог(АбсолютныйКаталогОбменаИнформацией); + КонецЕсли; + + // Сохраняем настройки транспорта сообщений обмена для текущей области данных + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("Корреспондент", Корреспондент); + СтруктураЗаписи.Вставить("КонечнаяТочкаКорреспондента", КонечнаяТочкаКорреспондента); + СтруктураЗаписи.Вставить("КаталогОбменаИнформацией", ОтносительныйКаталогОбменаИнформацией); + + РегистрыСведений.НастройкиТранспортаОбменаОбластиДанных.ОбновитьЗапись(СтруктураЗаписи); + + Иначе + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Вид транспорта сообщений обмена ""%1"" для конечной точки %2 не поддерживается.'"), + Строка(НастройкиТранспорта.ВидТранспортаСообщенийОбменаПоУмолчанию), + Строка(КонечнаяТочкаКорреспондента)); + КонецЕсли; + +КонецПроцедуры + +// Обновляет настройки и устанавливает значения по умолчанию на узле +// +Процедура ОбновитьНастройкуОбмена( + Знач Корреспондент, + Знач ЗначенияПоУмолчаниюНаУзле) Экспорт + + КорреспондентОбъект = Корреспондент.ПолучитьОбъект(); + + // установка значений по умолчанию + ОбменДаннымиСобытия.УстановитьЗначенияПоУмолчаниюНаУзле(КорреспондентОбъект, ЗначенияПоУмолчаниюНаУзле); + + КорреспондентОбъект.ДополнительныеСвойства.Вставить("ПолучениеСообщенияОбмена"); + КорреспондентОбъект.Записать(); + +КонецПроцедуры + +// Сохраняет данные сессии и отмечает успешное выполнение сессии +// +Процедура СохранитьДанныеСессии(Знач Сообщение, Знач Представление = "") Экспорт + + Если Не ПустаяСтрока(Представление) Тогда + Представление = " "+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '{%1}'"), Представление); + КонецЕсли; + + СтрокаСообщения = НСтр("ru = 'Сессия обмена сообщениями системы ""%1"" успешно завершена.%2'", + ОбщегоНазначения.КодОсновногоЯзыка()); + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, + Строка(Сообщение.Body.SessionId), Представление); + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСессииОбменаСообщениямиСистемы(), + УровеньЖурналаРегистрации.Информация,,, СтрокаСообщения); + РегистрыСведений.СессииОбменаСообщениямиСистемы.СохранитьДанныеСессии(Сообщение.Body.SessionId, Сообщение.Body.Data); + +КонецПроцедуры + +// Отмечает успешное выполнение сессии +// +Процедура ЗафиксироватьУспешноеВыполнениеСессии(Знач Сообщение, Знач Представление = "") Экспорт + + Если Не ПустаяСтрока(Представление) Тогда + Представление = " " + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '{%1}'"), Представление); + КонецЕсли; + + СтрокаСообщения = НСтр("ru = 'Сессия обмена сообщениями системы ""%1"" успешно завершена.%2'", + ОбщегоНазначения.КодОсновногоЯзыка()); + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, + Строка(Сообщение.Body.SessionId), Представление); + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСессииОбменаСообщениямиСистемы(), + УровеньЖурналаРегистрации.Информация,,, СтрокаСообщения); + РегистрыСведений.СессииОбменаСообщениямиСистемы.ЗафиксироватьУспешноеВыполнениеСессии(Сообщение.Body.SessionId); + +КонецПроцедуры + +// Отмечает неуспешное выполнение сессии +// +Процедура ЗафиксироватьНеуспешноеВыполнениеСессии(Знач Сообщение, Знач Представление = "") Экспорт + + Если Не ПустаяСтрока(Представление) Тогда + Представление = " " + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '{%1}'"), Представление); + КонецЕсли; + + СтрокаСообщения = НСтр("ru = 'Ошибка выполнения сессии обмена сообщениями системы ""%1"".%2 + |Описание ошибки из корреспондента: %3'", ОбщегоНазначения.КодОсновногоЯзыка()); + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, + Строка(Сообщение.Body.SessionId), Представление, Сообщение.Body.ErrorDescription); + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииСессииОбменаСообщениямиСистемы(), + УровеньЖурналаРегистрации.Ошибка,,, СтрокаСообщения); + РегистрыСведений.СессииОбменаСообщениямиСистемы.ЗафиксироватьНеуспешноеВыполнениеСессии(Сообщение.Body.SessionId); + +КонецПроцедуры + +// Выполняет вход в область и действие сценария обмена, заданное строкой таблицы значений, для первой из двух +// обменивающихся ИБ. +// +// Параметры: +// ИндексСтрокиСценария - Число - Индекс строки в таблице СценарийОбменаДанными. +// СценарийОбменаДанными - ТаблицаЗначений. +// +Процедура ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазеИзНеразделенногоСеанса( + ИндексСтрокиСценария, + СценарийОбменаДанными, + ОбластьДанных) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + + УстановитьПривилегированныйРежим(Истина); + МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных); + УстановитьПривилегированныйРежим(Ложь); + + ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазе(ИндексСтрокиСценария, СценарийОбменаДанными); + + УстановитьПривилегированныйРежим(Истина); + МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); + УстановитьПривилегированныйРежим(Ложь); + +КонецПроцедуры + +// Выполняет вход в область и действие сценария обмена, заданное строкой таблицы значений, для второй из двух +// обменивающихся ИБ. +// +// Параметры: +// ИндексСтрокиСценария - Число - Индекс строки в таблице СценарийОбменаДанными. +// СценарийОбменаДанными - ТаблицаЗначений. +// +Процедура ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазеИзНеразделенногоСеанса( + ИндексСтрокиСценария, + СценарийОбменаДанными, + ОбластьДанных) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + + УстановитьПривилегированныйРежим(Истина); + МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных); + УстановитьПривилегированныйРежим(Ложь); + + ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазе(ИндексСтрокиСценария, СценарийОбменаДанными); + + УстановитьПривилегированныйРежим(Истина); + МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); + УстановитьПривилегированныйРежим(Ложь); + +КонецПроцедуры + +// Возвращает минимально необходимую версию платформы +// +Функция ТребуемаяВерсияПлатформы() Экспорт + + ВерсияПлатформы = ""; + ОбменДаннымиВМоделиСервисаПереопределяемый.ПриОпределенииТребуемойВерсииПриложения(ВерсияПлатформы); + Если ЗначениеЗаполнено(ВерсияПлатформы) Тогда + Возврат ВерсияПлатформы; + КонецЕсли; + + СистемнаяИнформация = Новый СистемнаяИнформация; + ВерсияПлатформы = СтрРазделить(СистемнаяИнформация.ВерсияПриложения, "."); + + // Удаляем из номера версии дополнительный номер релиза (последний номер) + ВерсияПлатформы.Удалить(3); + Возврат СтрСоединить(ВерсияПлатформы, "."); + +КонецФункции + +// Событие для журнала регистрации настройки синхронизации данных +// +Функция СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных() Экспорт + + Возврат НСтр("ru = 'Обмен данными в модели сервиса.Настройка синхронизации данных'", + ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +// Событие для журнала регистрации монитора синхронизации данных +// +Функция СобытиеЖурналаРегистрацииМониторСинхронизацииДанных() Экспорт + + Возврат НСтр("ru = 'Обмен данными в модели сервиса.Монитор синхронизации данных'", + ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +// Событие для журнала регистрации синхронизации данных +// +Функция СобытиеЖурналаРегистрацииСинхронизацииДанных() Экспорт + + Возврат НСтр("ru = 'Обмен данными в модели сервиса.Синхронизация данных'", + ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +Функция СобытиеЖурналаРегистрацииСессииОбменаСообщениямиСистемы() + + Возврат НСтр("ru = 'Обмен данными в модели сервиса.Сессии обмена сообщениями системы'", + ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +//////////////////////////////////////////////////////////////////////////////// +// Процедуры и функции монитора обмена данными + +// Для внутреннего использования +// +Функция ТаблицаМонитораОбменаДанными(Знач ПланыОбменаМетода, Знач ДополнительныеСвойстваПланаОбмена = "", Знач ТолькоНеуспешные = Ложь) Экспорт + + ТекстЗапроса = "ВЫБРАТЬ + | СостоянияОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы, + | СостоянияОбменовДанными.ДатаОкончания КАК ДатаОкончания, + | ВЫБОР + | КОГДА СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.Выполнено) + | ИЛИ СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.ВыполненоСПредупреждениями) + | ТОГДА 0 + | ИНАЧЕ 1 + | КОНЕЦ КАК РезультатВыполненияОбмена + |ПОМЕСТИТЬ СостоянияОбменовДаннымиЗагрузка + |ИЗ + | РегистрСведений.СостоянияОбменовДаннымиОбластейДанных КАК СостоянияОбменовДанными + |ГДЕ + | СостоянияОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ЗагрузкаДанных) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | СостоянияОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы, + | СостоянияОбменовДанными.ДатаОкончания КАК ДатаОкончания, + | ВЫБОР + | КОГДА СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.Выполнено) + | ИЛИ СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.ВыполненоСПредупреждениями) + | ТОГДА 0 + | ИНАЧЕ 1 + | КОНЕЦ КАК РезультатВыполненияОбмена + |ПОМЕСТИТЬ СостоянияОбменовДаннымиВыгрузка + |ИЗ + | РегистрСведений.СостоянияОбменовДаннымиОбластейДанных КАК СостоянияОбменовДанными + |ГДЕ + | СостоянияОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ВыгрузкаДанных) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | СостоянияУспешныхОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы, + | СостоянияУспешныхОбменовДанными.ДатаОкончания КАК ДатаОкончания + |ПОМЕСТИТЬ СостоянияУспешныхОбменовДаннымиЗагрузка + |ИЗ + | РегистрСведений.СостоянияУспешныхОбменовДаннымиОбластейДанных КАК СостоянияУспешныхОбменовДанными + |ГДЕ + | СостоянияУспешныхОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ЗагрузкаДанных) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | СостоянияУспешныхОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы, + | СостоянияУспешныхОбменовДанными.ДатаОкончания КАК ДатаОкончания + |ПОМЕСТИТЬ СостоянияУспешныхОбменовДаннымиВыгрузка + |ИЗ + | РегистрСведений.СостоянияУспешныхОбменовДаннымиОбластейДанных КАК СостоянияУспешныхОбменовДанными + |ГДЕ + | СостоянияУспешныхОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ВыгрузкаДанных) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ПланыОбмена.ИмяПланаОбмена КАК ИмяПланаОбмена, + | ПланыОбмена.УзелИнформационнойБазы КАК УзелИнформационнойБазы, + | ПланыОбмена.ОбластьДанныхОсновныеДанные КАК ОбластьДанных, + | + | [ДополнительныеСвойстваПланаОбмена] + | + | ЕСТЬNULL(СостоянияОбменовДаннымиВыгрузка.РезультатВыполненияОбмена, 0) КАК РезультатПоследнейВыгрузкиДанных, + | ЕСТЬNULL(СостоянияОбменовДаннымиЗагрузка.РезультатВыполненияОбмена, 0) КАК РезультатПоследнейЗагрузкиДанных, + | СостоянияОбменовДаннымиЗагрузка.ДатаОкончания КАК ДатаПоследнейЗагрузки, + | СостоянияОбменовДаннымиВыгрузка.ДатаОкончания КАК ДатаПоследнейВыгрузки, + | СостоянияУспешныхОбменовДаннымиЗагрузка.ДатаОкончания КАК ДатаПоследнейУспешнойЗагрузки, + | СостоянияУспешныхОбменовДаннымиВыгрузка.ДатаОкончания КАК ДатаПоследнейУспешнойВыгрузки + |ИЗ + | ПланыОбменаКонфигурации КАК ПланыОбмена + | ЛЕВОЕ СОЕДИНЕНИЕ СостоянияОбменовДаннымиЗагрузка КАК СостоянияОбменовДаннымиЗагрузка + | ПО ПланыОбмена.УзелИнформационнойБазы = СостоянияОбменовДаннымиЗагрузка.УзелИнформационнойБазы + | ЛЕВОЕ СОЕДИНЕНИЕ СостоянияОбменовДаннымиВыгрузка КАК СостоянияОбменовДаннымиВыгрузка + | ПО ПланыОбмена.УзелИнформационнойБазы = СостоянияОбменовДаннымиВыгрузка.УзелИнформационнойБазы + | ЛЕВОЕ СОЕДИНЕНИЕ СостоянияУспешныхОбменовДаннымиЗагрузка КАК СостоянияУспешныхОбменовДаннымиЗагрузка + | ПО ПланыОбмена.УзелИнформационнойБазы = СостоянияУспешныхОбменовДаннымиЗагрузка.УзелИнформационнойБазы + | ЛЕВОЕ СОЕДИНЕНИЕ СостоянияУспешныхОбменовДаннымиВыгрузка КАК СостоянияУспешныхОбменовДаннымиВыгрузка + | ПО ПланыОбмена.УзелИнформационнойБазы = СостоянияУспешныхОбменовДаннымиВыгрузка.УзелИнформационнойБазы + | + |[Отбор] + | + |УПОРЯДОЧИТЬ ПО + | ПланыОбмена.ИмяПланаОбмена, + | ПланыОбмена.Наименование"; + + УстановитьПривилегированныйРежим(Истина); + + МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; + + ПодготовитьДанныеУзловПлановОбменаДляМонитора(МенеджерВременныхТаблиц, ПланыОбменаМетода, ДополнительныеСвойстваПланаОбмена); + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ДополнительныеСвойстваПланаОбмена]", + ПолучитьДополнительныеСвойстваПланаОбменаСтрокой(ДополнительныеСвойстваПланаОбмена)); + + Если ТолькоНеуспешные Тогда + Отбор = " + |ГДЕ + | ЕСТЬNULL(СостоянияОбменовДаннымиВыгрузка.РезультатВыполненияОбмена, 0) <> 0 + | ИЛИ ЕСТЬNULL(СостоянияОбменовДаннымиЗагрузка.РезультатВыполненияОбмена, 0) <> 0"; + Иначе + Отбор = ""; + КонецЕсли; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[Отбор]", Отбор); + + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапроса; + Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; + + НастройкиСинхронизации = Запрос.Выполнить().Выгрузить(); + НастройкиСинхронизации.Колонки.Добавить("ПредставлениеДатыПоследнейЗагрузки"); + НастройкиСинхронизации.Колонки.Добавить("ПредставлениеДатыПоследнейВыгрузки"); + НастройкиСинхронизации.Колонки.Добавить("ПредставлениеДатыПоследнейУспешнойЗагрузки"); + НастройкиСинхронизации.Колонки.Добавить("ПредставлениеДатыПоследнейУспешнойВыгрузки"); + + Для Каждого НастройкаСинхронизации Из НастройкиСинхронизации Цикл + + НастройкаСинхронизации.ПредставлениеДатыПоследнейЗагрузки = ОбменДаннымиСервер.ОтносительнаяДатаСинхронизации(НастройкаСинхронизации.ДатаПоследнейЗагрузки); + НастройкаСинхронизации.ПредставлениеДатыПоследнейВыгрузки = ОбменДаннымиСервер.ОтносительнаяДатаСинхронизации(НастройкаСинхронизации.ДатаПоследнейВыгрузки); + НастройкаСинхронизации.ПредставлениеДатыПоследнейУспешнойЗагрузки = ОбменДаннымиСервер.ОтносительнаяДатаСинхронизации(НастройкаСинхронизации.ДатаПоследнейУспешнойЗагрузки); + НастройкаСинхронизации.ПредставлениеДатыПоследнейУспешнойВыгрузки = ОбменДаннымиСервер.ОтносительнаяДатаСинхронизации(НастройкаСинхронизации.ДатаПоследнейУспешнойВыгрузки); + + КонецЦикла; + + Возврат НастройкиСинхронизации; +КонецФункции + +// Для внутреннего использования +// +Функция ПолучитьДополнительныеСвойстваПланаОбменаСтрокой(Знач СвойстваСтрокой) + + Результат = ""; + + Шаблон = "ПланыОбмена.[СвойствоСтрокой] КАК [СвойствоСтрокой]"; + + СвойстваМассив = СтрРазделить(СвойстваСтрокой, ",", Ложь); + + Для Каждого СвойствоСтрокой Из СвойстваМассив Цикл + + СвойствоСтрокойВЗапросе = СтрЗаменить(Шаблон, "[СвойствоСтрокой]", СвойствоСтрокой); + + Результат = Результат + СвойствоСтрокойВЗапросе + ", "; + + КонецЦикла; + + Возврат Результат; +КонецФункции + +// Для внутреннего использования +// +Процедура ПодготовитьДанныеУзловПлановОбменаДляМонитора(Знач МенеджерВременныхТаблиц, Знач ПланыОбменаМетода, Знач ДополнительныеСвойстваПланаОбмена) + + ДополнительныеСвойстваПланаОбменаСтрокой = ?(ПустаяСтрока(ДополнительныеСвойстваПланаОбмена), "", ДополнительныеСвойстваПланаОбмена + ", "); + + Запрос = Новый Запрос; + + ШаблонЗапроса = " + | + |ОБЪЕДИНИТЬ ВСЕ + | + |//////////////////////////////////////////////////////// {[ИмяПланаОбмена]} + |ВЫБРАТЬ + | + | [ДополнительныеСвойстваПланаОбмена] + | + | Ссылка КАК УзелИнформационнойБазы, + | ОбластьДанныхОсновныеДанные КАК ОбластьДанныхОсновныеДанные, + | Наименование КАК Наименование, + | ""[ИмяПланаОбменаСиноним]"" КАК ИмяПланаОбмена + |ИЗ + | ПланОбмена.[ИмяПланаОбмена] + |ГДЕ + | РегистрироватьИзменения + | И НЕ ПометкаУдаления + |"; + + ТекстЗапроса = ""; + + Если ПланыОбменаМетода.Количество() > 0 Тогда + + Для Каждого ИмяПланаОбмена Из ПланыОбменаМетода Цикл + + ТекстЗапросаДляПланаОбмена = СтрЗаменить(ШаблонЗапроса, "[ИмяПланаОбмена]", ИмяПланаОбмена); + ТекстЗапросаДляПланаОбмена = СтрЗаменить(ТекстЗапросаДляПланаОбмена, "[ИмяПланаОбменаСиноним]", Метаданные.ПланыОбмена[ИмяПланаОбмена].Синоним); + ТекстЗапросаДляПланаОбмена = СтрЗаменить(ТекстЗапросаДляПланаОбмена, "[ДополнительныеСвойстваПланаОбмена]", ДополнительныеСвойстваПланаОбменаСтрокой); + + // удаляем литерал объединения для первой таблицы + Если ПустаяСтрока(ТекстЗапроса) Тогда + + ТекстЗапросаДляПланаОбмена = СтрЗаменить(ТекстЗапросаДляПланаОбмена, "ОБЪЕДИНИТЬ ВСЕ", ""); + + КонецЕсли; + + ТекстЗапроса = ТекстЗапроса + ТекстЗапросаДляПланаОбмена; + + КонецЦикла; + + Иначе + + ДополнительныеСвойстваБезИсточникаДанныхСтрокой = ""; + + Если Не ПустаяСтрока(ДополнительныеСвойстваПланаОбмена) Тогда + + ДополнительныеСвойства = СтрРазделить(ДополнительныеСвойстваПланаОбмена, ","); + + ДополнительныеСвойстваБезИсточникаДанных = Новый Массив; + + Для Каждого Свойство Из ДополнительныеСвойства Цикл + + ДополнительныеСвойстваБезИсточникаДанных.Добавить(СтрЗаменить("Неопределено КАК [Свойство]", "[Свойство]", Свойство)); + + КонецЦикла; + + ДополнительныеСвойстваБезИсточникаДанныхСтрокой = СтрСоединить(ДополнительныеСвойстваБезИсточникаДанных) + ", "; + + КонецЕсли; + + ТекстЗапроса = " + |ВЫБРАТЬ + | + | [ДополнительныеСвойстваБезИсточникаДанныхСтрокой] + | + | Неопределено КАК УзелИнформационнойБазы, + | 0 КАК ОбластьДанныхОсновныеДанные, + | Неопределено КАК Наименование, + | Неопределено КАК ИмяПланаОбмена + |"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ДополнительныеСвойстваБезИсточникаДанныхСтрокой]", ДополнительныеСвойстваБезИсточникаДанныхСтрокой); + + КонецЕсли; + + ТекстЗапросаРезультат = " + |//////////////////////////////////////////////////////// {ПланыОбменаКонфигурации} + |ВЫБРАТЬ + | + | [ДополнительныеСвойстваПланаОбмена] + | + | УзелИнформационнойБазы, + | ОбластьДанныхОсновныеДанные, + | Наименование, + | ИмяПланаОбмена + |ПОМЕСТИТЬ ПланыОбменаКонфигурации + |ИЗ + | ( + | [ТекстЗапроса] + | ) КАК ВложенныйЗапрос + |; + |"; + + ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "[ТекстЗапроса]", ТекстЗапроса); + ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "[ДополнительныеСвойстваПланаОбмена]", ДополнительныеСвойстваПланаОбменаСтрокой); + + Запрос.Текст = ТекстЗапросаРезультат; + Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; + Запрос.Выполнить(); + +КонецПроцедуры + +//////////////////////////////////////////////////////////////////////////////// +// Локальные служебные процедуры и функции + +Функция НайтиУзелИнформационнойБазы(Знач ИмяПланаОбмена, Знач КодУзла) + + ОбластьДанных = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(КодУзла); + + КодУзлаСПрефиксом = КодУзлаПланаОбменаВСервисе(ОбластьДанных); + + // Поиск узла по формату кода узла "S00000123". + Результат = ОбменДаннымиСервер.УзелПланаОбменаПоКоду(ИмяПланаОбмена, КодУзлаСПрефиксом); + + Если Результат = Неопределено Тогда + + // Поиск узла по формату кода узла "0000123" (старый формат) + Результат = ОбменДаннымиСервер.УзелПланаОбменаПоКоду(ИмяПланаОбмена, КодУзла); + + КонецЕсли; + + Если Результат = Неопределено + И ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(ИмяПланаОбмена) Тогда + + Запрос = Новый Запрос( + "ВЫБРАТЬ + | Т.Ссылка КАК УзелОбмена + |ИЗ + | #ТаблицаПланаОбмена КАК Т + |ГДЕ + | НЕ Т.ЭтотУзел"); + + Запрос.Текст = СтрЗаменить(Запрос.Текст, + "#ТаблицаПланаОбмена", "ПланОбмена." + ИмяПланаОбмена); + + Выборка = Запрос.Выполнить().Выбрать(); + Пока Выборка.Следующий() Цикл + + ОбластьДанныхКорреспондента = РегистрыСведений.НастройкиОбменаДаннымиXDTO.ЗначениеНастройкиКорреспондента(Выборка.УзелОбмена, + "ОбластьДанныхКорреспондента"); + + Если ОбластьДанныхКорреспондента = ОбластьДанных Тогда + Результат = Выборка.УзелОбмена; + Прервать; + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + Если Результат = Неопределено Тогда + + Сообщение = НСтр("ru = 'Не найден узел плана обмена. Имя плана обмена %1; код узла %2 или %3'"); + Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, ИмяПланаОбмена, КодУзла, КодУзлаСПрефиксом); + + ВызватьИсключение Сообщение; + + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ВерсииКорреспондента(Знач УзелИнформационнойБазы) + + СтруктураНастроек = РегистрыСведений.НастройкиТранспортаОбменаОбластиДанных.НастройкиТранспортаWS(УзелИнформационнойБазы); + + ПараметрыПодключения = Новый Структура; + ПараметрыПодключения.Вставить("URL", СтруктураНастроек.WSURLВебСервиса); + ПараметрыПодключения.Вставить("UserName", СтруктураНастроек.WSИмяПользователя); + ПараметрыПодключения.Вставить("Password", СтруктураНастроек.WSПароль); + + Возврат ОбщегоНазначения.ПолучитьВерсииИнтерфейса(ПараметрыПодключения, "ОбменДаннымиВМоделиСервиса"); +КонецФункции + +// Возвращает параметры подсистемы ОбменДаннымиВМоделиСервиса, которые необходимы при завершении работы +// пользователей. +// +// Возвращаемое значение: +// Структура - параметры. +// +Функция ПараметрыАвтономнойРаботыПриЗавершенииРаботы() + + ПараметрыПриЗавершении = Новый Структура; + + Если АвтономнаяРаботаСлужебный.ЭтоАвтономноеРабочееМесто() Тогда + + ПараметрыФормыВыполненияОбменаДанными = АвтономнаяРаботаСлужебный.ПараметрыФормыВыполненияОбменаДанными(); + СинхронизацияССервисомДавноНеВыполнялась = АвтономнаяРаботаСлужебный.СинхронизацияССервисомДавноНеВыполнялась(); + + Иначе + + ПараметрыФормыВыполненияОбменаДанными = Новый Структура; + СинхронизацияССервисомДавноНеВыполнялась = Ложь; + + КонецЕсли; + + ПараметрыПриЗавершении.Вставить("ПараметрыФормыВыполненияОбменаДанными", ПараметрыФормыВыполненияОбменаДанными); + ПараметрыПриЗавершении.Вставить("СинхронизацияССервисомДавноНеВыполнялась", СинхронизацияССервисомДавноНеВыполнялась); + + Возврат ПараметрыПриЗавершении; +КонецФункции + +Процедура ПередЗаписьюОбщихДанных(Объект, Отказ) + + ТолькоПросмотр = Ложь; + АвтономнаяРаботаСлужебный.ОпределитьВозможностьИзмененияДанных(Объект.Метаданные(), ТолькоПросмотр); + + Если ТолькоПросмотр Тогда + СтрокаОшибки = НСтр("ru = 'Изменение неразделенных данных (%1), загружаемых из приложения, в Автономном рабочем месте запрещено. + |Обратитесь к администратору.'"); + СтрокаОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаОшибки, Строка(Объект)); + ВызватьИсключение СтрокаОшибки; + КонецЕсли; + +КонецПроцедуры + +// Добавляет параметры работы клиентской логики для подсистемы обмена данными в модели сервиса. +// +Процедура ДобавитьПараметрыРаботыКлиента(Параметры) + +КонецПроцедуры + +//////////////////////////////////////////////////////////////////////////////// +// Подписки на события для Автономного рабочего места + +// Проверяет возможность записи неразделенных данных в Автономном рабочем месте. +// Подробное описание см. в АвтономнаяРаботаСлужебный.ОпределитьВозможностьИзмененияДанных. +// +Процедура АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанных(Источник, Отказ) Экспорт + + Если Источник.ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + ПередЗаписьюОбщихДанных(Источник, Отказ); + +КонецПроцедуры + +// Проверяет возможность записи неразделенных данных в Автономном рабочем месте. +// Подробное описание см. в АвтономнаяРаботаСлужебный.ОпределитьВозможностьИзмененияДанных. +// +Процедура АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхДокумент(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт + + Если Источник.ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + ПередЗаписьюОбщихДанных(Источник, Отказ); + +КонецПроцедуры + +// Проверяет возможность записи неразделенных данных в Автономном рабочем месте. +// Подробное описание см. в АвтономнаяРаботаСлужебный.ОпределитьВозможностьИзмененияДанных. +// +Процедура АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхКонстанта(Источник, Отказ) Экспорт + + Если Источник.ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + ПередЗаписьюОбщихДанных(Источник, Отказ); + +КонецПроцедуры + +// Проверяет возможность записи неразделенных данных в Автономном рабочем месте. +// Подробное описание см. в АвтономнаяРаботаСлужебный.ОпределитьВозможностьИзмененияДанных. +// +Процедура АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписей(Источник, Отказ, Замещение) Экспорт + + Если Источник.ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + ПередЗаписьюОбщихДанных(Источник, Отказ); + +КонецПроцедуры + +// Проверяет возможность записи неразделенных данных в Автономном рабочем месте. +// Подробное описание см. в АвтономнаяРаботаСлужебный.ОпределитьВозможностьИзмененияДанных. +// +Процедура АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписейРасчета(Источник, Отказ, Замещение, ТолькоЗапись, ЗаписьФактическогоПериодаДействия, ЗаписьПерерасчетов) Экспорт + + Если Источник.ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + ПередЗаписьюОбщихДанных(Источник, Отказ); + +КонецПроцедуры + +//////////////////////////////////////////////////////////////////////////////// +// Получение ссылок на общие страницы информации сервиса + +// Возвращает адрес ссылки по идентификатору +// Для внутреннего использования. +// +Функция АдресСсылкиИзИнформационногоЦентра(Знач Идентификатор) + Результат = ""; + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат Результат; + КонецЕсли; + + МодульИнформационныйЦентрСервер = ОбщегоНазначения.ОбщийМодуль("ИнформационныйЦентрСервер"); + + УстановитьПривилегированныйРежим(Истина); + Попытка + ДанныеСсылки = МодульИнформационныйЦентрСервер.КонтекстнаяСсылкаПоИдентификатору(Идентификатор); + Исключение + // Если метода нет + ДанныеСсылки = Неопределено; + КонецПопытки; + + Если ДанныеСсылки <> Неопределено Тогда + Результат = ДанныеСсылки.Адрес; + КонецЕсли; + + Возврат Результат; +КонецФункции + +// Возвращает адрес ссылки на статью по настройке тонкого клиента +// Для внутреннего использования. +// +Функция АдресИнструкцииПоНастройкеТонкогоКлиента() Экспорт + + Возврат АдресСсылкиИзИнформационногоЦентра("ИнструкцияПоНастройкеТонкогоКлиента"); + +КонецФункции + +Процедура ПриСозданииАвтономногоРабочегоМеста() Экспорт + + Если ПользователиСлужебныйВМоделиСервиса.ПользовательЗарегистрированКакНеразделенный( + ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор) Тогда + + ВызватьИсключение НСтр("ru = 'Создать автономное рабочее место можно только от имени разделенного пользователя. + |Текущий пользователь является неразделенным.'"); + + КонецЕсли; + +КонецПроцедуры + +// Возвращает данные первой записи результата запроса в виде структуры. +// +// Параметры: +// РезультатЗапроса - РезультатЗапроса - Результат запроса, содержащий данные для обработки. +// +// Возвращаемое значение: +// Структура - структура с результатом. +// +Функция РезультатЗапросаВСтруктуру(Знач РезультатЗапроса) Экспорт + + Результат = Новый Структура; + Для Каждого Колонка Из РезультатЗапроса.Колонки Цикл + Результат.Вставить(Колонка.Имя); + КонецЦикла; + + Если РезультатЗапроса.Пустой() Тогда + Возврат Результат; + КонецЕсли; + + Выборка = РезультатЗапроса.Выбрать(); + Выборка.Следующий(); + + ЗаполнитьЗначенияСвойств(Результат, Выборка); + + Возврат Результат; +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОбменСообщениямиВнутренний/ОбменСообщениямиВнутренний.mdo b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/ОбменДаннымиВМоделиСервиса.mdo similarity index 60% rename from SSL/src/CommonModules/ОбменСообщениямиВнутренний/ОбменСообщениямиВнутренний.mdo rename to SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/ОбменДаннымиВМоделиСервиса.mdo index c5c1c7eca..d3f98cd7d 100644 --- a/SSL/src/CommonModules/ОбменСообщениямиВнутренний/ОбменСообщениямиВнутренний.mdo +++ b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервиса/ОбменДаннымиВМоделиСервиса.mdo @@ -1,9 +1,9 @@ - - ОбменСообщениямиВнутренний + + ОбменДаннымиВМоделиСервиса ru - Обмен сообщениями внутренний + Обмен данными в модели сервиса true true diff --git a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаКлиент/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаКлиент/Module.bsl new file mode 100644 index 000000000..256e276b7 --- /dev/null +++ b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаКлиент/Module.bsl @@ -0,0 +1,85 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +// Обработчик запуска клиентского сеанса приложения. +// Если запущен сеанс для автономного рабочего места, то выводит пользователю оповещение +// о необходимости выполнить синхронизацию данных с приложением в Интернете +// (если установлен соответствующий признак). +// +Процедура ПриНачалеРаботыСистемы(Параметры) Экспорт + + ПараметрыРаботыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске(); + + Если ПараметрыРаботыКлиента.РазделениеВключено Тогда + Возврат; + КонецЕсли; + + Если ПараметрыРаботыКлиента.ЭтоАвтономноеРабочееМесто Тогда + ИмяПараметра = "СтандартныеПодсистемы.ПредлагатьСинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииСеанса"; + Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда + ПараметрыПриложения.Вставить(ИмяПараметра, Неопределено); + КонецЕсли; + + ПараметрыПриложения["СтандартныеПодсистемы.ПредлагатьСинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииСеанса"] = + ПараметрыРаботыКлиента.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботы; + + Если ПараметрыРаботыКлиента.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботы Тогда + + ПоказатьОповещениеПользователя(НСтр("ru = 'Автономная работа'"), "e1cib/app/Обработка.ВыполнениеОбменаДанными", + НСтр("ru = 'Рекомендуется синхронизировать данные с приложением в Интернете.'"), БиблиотекаКартинок.Информация32); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +//////////////////////////////////////////////////////////////////////////////// +// Обработчики служебных событий подсистем БСП + +// Доопределяет список предупреждений пользователю перед завершением работы системы. +// +// Параметры: +// Отказ - Булево - Признак отказа от выхода из программы. Если в теле процедуры-обработчика установить +// данному параметру значение Истина, то работа с программой не будет завершена. +// Предупреждения - Массив - в массив можно добавить элементы типа Структура, +// свойства которой см. в СтандартныеПодсистемыКлиент.ПередЗавершениемРаботыСистемы. +// +Процедура ПередЗавершениемРаботыСистемы(Отказ, Предупреждения) Экспорт + + ПараметрыАвтономнойРаботы = СтандартныеПодсистемыКлиент.ПараметрКлиента("ПараметрыАвтономнойРаботы"); + + Если ПараметрыПриложения["СтандартныеПодсистемы.ПредлагатьСинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииСеанса"] = Истина + И ПараметрыАвтономнойРаботы.СинхронизацияССервисомДавноНеВыполнялась Тогда + + ПараметрыПредупреждения = СтандартныеПодсистемыКлиент.ПредупреждениеПриЗавершенииРаботы(); + ПараметрыПредупреждения.РасширеннаяПодсказка = НСтр("ru = 'В некоторых случаях синхронизация данных может занять длительное время: + | - медленный канал связи; + | - большой объем данных; + | - доступно обновление приложения в Интернете.'"); + + ПараметрыПредупреждения.ТекстПредупреждения = НСтр("ru = 'Не выполнена синхронизация данных с приложением в Интернете.'"); + ПараметрыПредупреждения.ТекстФлажка = НСтр("ru = 'Синхронизировать данные с приложением в Интернете'"); + ПараметрыПредупреждения.Приоритет = 80; + + ДействиеПриУстановленномФлажке = ПараметрыПредупреждения.ДействиеПриУстановленномФлажке; + ДействиеПриУстановленномФлажке.Форма = "Обработка.ВыполнениеОбменаДанными.Форма.Форма"; + + ПараметрыФормы = ПараметрыАвтономнойРаботы.ПараметрыФормыВыполненияОбменаДанными; + ПараметрыФормы = ОбщегоНазначенияКлиент.СкопироватьРекурсивно(ПараметрыФормы, Ложь); + ПараметрыФормы.Вставить("ЗавершениеРаботыСистемы", Истина); + ДействиеПриУстановленномФлажке.ПараметрыФормы = ПараметрыФормы; + + Предупреждения.Добавить(ПараметрыПредупреждения); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/CommonModules/ОбменСообщениямиКлиент/ОбменСообщениямиКлиент.mdo b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаКлиент/ОбменДаннымиВМоделиСервисаКлиент.mdo similarity index 56% rename from SSL/src/CommonModules/ОбменСообщениямиКлиент/ОбменСообщениямиКлиент.mdo rename to SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаКлиент/ОбменДаннымиВМоделиСервисаКлиент.mdo index f255b2dc5..334d9afe3 100644 --- a/SSL/src/CommonModules/ОбменСообщениямиКлиент/ОбменСообщениямиКлиент.mdo +++ b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаКлиент/ОбменДаннымиВМоделиСервисаКлиент.mdo @@ -1,9 +1,9 @@ - - ОбменСообщениямиКлиент + + ОбменДаннымиВМоделиСервисаКлиент ru - Обмен сообщениями клиент + Обмен данными в модели сервиса клиент true true diff --git a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПереопределяемый/Module.bsl new file mode 100644 index 000000000..8e7a57986 --- /dev/null +++ b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПереопределяемый/Module.bsl @@ -0,0 +1,37 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Определяет версию приложения 1С:Предприятия, которая требуется для работы автономного рабочего +// места. Приложение этой версии должно быть установлено на локальном компьютере пользователя. +// Если возвращаемое значение функции не задано, то в качестве требуемой версии приложения +// будет использоваться значение по умолчанию: первые три цифры версии текущего приложения, +// расположенного в Интернете, например, "8.3.3". +// Используется в помощнике создания автономного рабочего места. +// +// Параметры: +// Версия - Строка - Версия требуемого приложения 1С:Предприятия в формате +// "<основная версия>.<младшая версия>.<релиз>.<дополнительный номер релиза>". +// Например, "8.3.3.715". +// +Процедура ПриОпределенииТребуемойВерсииПриложения(Версия) Экспорт + +КонецПроцедуры + +// Вызывается в момент начала создания пользователем автономного рабочего места. +// В обработчиках события могут быть реализованы дополнительные проверки возможности +// создания автономного рабочего места (при невозможности - сгенерировано исключение). +// +Процедура ПриСозданииАвтономногоРабочегоМеста() Экспорт + + + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПереопределяемый/ОбменДаннымиВМоделиСервисаПереопределяемый.mdo b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПереопределяемый/ОбменДаннымиВМоделиСервисаПереопределяемый.mdo new file mode 100644 index 000000000..49a8e6c9f --- /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..5ad7b18f5 --- /dev/null +++ b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПовтИсп/Module.bsl @@ -0,0 +1,148 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныеПроцедурыИФункции + +// Возвращает ссылку на объект WSПрокси сервиса обмена версии 1.0.6.5. +// +// Возвращаемое значение: +// WSПрокси. +// +Функция ПолучитьWSПроксиСервисаОбмена() Экспорт + + Результат = Неопределено; + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + МодульРаботаВМоделиСервисаБТСПовтИсп = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервисаБТСПовтИсп"); + МодульНастройкиТранспортаОбменаСообщениями = ОбщегоНазначения.ОбщийМодуль("РегистрыСведений.НастройкиТранспортаОбменаСообщениями"); + + НастройкиТранспорта = МодульНастройкиТранспортаОбменаСообщениями.НастройкиТранспортаWS( + МодульРаботаВМоделиСервисаБТСПовтИсп.КонечнаяТочкаМенеджераСервиса()); + + СтруктураНастроек = Новый Структура; + СтруктураНастроек.Вставить("WSURLВебСервиса", НастройкиТранспорта.WSURLВебСервиса); + СтруктураНастроек.Вставить("WSИмяПользователя", НастройкиТранспорта.WSИмяПользователя); + СтруктураНастроек.Вставить("WSПароль", НастройкиТранспорта.WSПароль); + СтруктураНастроек.Вставить("WSИмяСервиса", "ManageApplicationExchange_1_0_6_5"); + СтруктураНастроек.Вставить("WSURLПространстваИменСервиса", "http://www.1c.ru/SaaS/1.0/WS/ManageApplicationExchange_1_0_6_5"); + СтруктураНастроек.Вставить("WSТаймаут", 20); + + Результат = ОбменДаннымиСервер.ПолучитьWSПроксиПоПараметрамПодключения(СтруктураНастроек); + КонецЕсли; + + Если Результат = Неопределено Тогда + ВызватьИсключение НСтр("ru = 'Ошибка получения web-сервиса обмена данными управляющего приложения.'"); + КонецЕсли; + + Возврат Результат; +КонецФункции + +// Возвращает ссылку на объект WSПрокси корреспондента, идентифицируемого узлом плана обмена. +// +// Параметры: +// УзелИнформационнойБазы - ПланОбменаСсылка. +// СтрокаСообщенияОбОшибке - Строка - Текст сообщения об ошибке. +// +// Возвращаемое значение: +// WSПрокси. +// +Функция ПолучитьWSПроксиКорреспондента(УзелИнформационнойБазы, СтрокаСообщенияОбОшибке = "") Экспорт + + СтруктураНастроек = РегистрыСведений.НастройкиТранспортаОбменаОбластиДанных.НастройкиТранспортаWS(УзелИнформационнойБазы); + СтруктураНастроек.Вставить("WSИмяСервиса", "RemoteAdministrationOfExchange"); + СтруктураНастроек.Вставить("WSURLПространстваИменСервиса", "http://www.1c.ru/SaaS/1.0/WS/RemoteAdministrationOfExchange"); + СтруктураНастроек.Вставить("WSТаймаут", 20); + + Возврат ОбменДаннымиСервер.ПолучитьWSПроксиПоПараметрамПодключения(СтруктураНастроек, СтрокаСообщенияОбОшибке); + +КонецФункции + +// Возвращает ссылку на объект WSПрокси версии 2.0.1.6 корреспондента, идентифицируемого узлом плана обмена. +// +// Параметры: +// УзелИнформационнойБазы - ПланОбменаСсылка. +// СтрокаСообщенияОбОшибке - Строка - Текст сообщения об ошибке. +// +// Возвращаемое значение: +// WSПрокси. +// +Функция ПолучитьWSПроксиКорреспондента_2_0_1_6(УзелИнформационнойБазы, СтрокаСообщенияОбОшибке = "") Экспорт + + СтруктураНастроек = РегистрыСведений.НастройкиТранспортаОбменаОбластиДанных.НастройкиТранспортаWS(УзелИнформационнойБазы); + СтруктураНастроек.Вставить("WSИмяСервиса", "RemoteAdministrationOfExchange_2_0_1_6"); + СтруктураНастроек.Вставить("WSURLПространстваИменСервиса", "http://www.1c.ru/SaaS/1.0/WS/RemoteAdministrationOfExchange_2_0_1_6"); + СтруктураНастроек.Вставить("WSТаймаут", 20); + + Возврат ОбменДаннымиСервер.ПолучитьWSПроксиПоПараметрамПодключения(СтруктураНастроек, СтрокаСообщенияОбОшибке); +КонецФункции + +// Возвращает ссылку на объект WSПрокси версии 2.1.6.1 корреспондента, идентифицируемого узлом плана обмена. +// +Функция ПолучитьWSПроксиКорреспондента_2_1_6_1(УзелИнформационнойБазы, СтрокаСообщенияОбОшибке = "") Экспорт + + СтруктураНастроек = РегистрыСведений.НастройкиТранспортаОбменаОбластиДанных.НастройкиТранспортаWS(УзелИнформационнойБазы); + СтруктураНастроек.Вставить("WSИмяСервиса", "RemoteAdministrationOfExchange_2_1_6_1"); + СтруктураНастроек.Вставить("WSURLПространстваИменСервиса", "http://www.1c.ru/SaaS/1.0/WS/RemoteAdministrationOfExchange_2_1_6_1"); + СтруктураНастроек.Вставить("WSТаймаут", 20); + + Возврат ОбменДаннымиСервер.ПолучитьWSПроксиПоПараметрамПодключения(СтруктураНастроек, СтрокаСообщенияОбОшибке); +КонецФункции + +// Возвращает ссылку на объект WSПрокси версии 2.4.5.1 корреспондента, идентифицируемого узлом плана обмена. +// +Функция ПолучитьWSПроксиКорреспондента_2_4_5_1(УзелИнформационнойБазы, СтрокаСообщенияОбОшибке = "") Экспорт + + СтруктураНастроек = РегистрыСведений.НастройкиТранспортаОбменаОбластиДанных.НастройкиТранспортаWS(УзелИнформационнойБазы); + СтруктураНастроек.Вставить("WSИмяСервиса", "RemoteAdministrationOfExchange_2_4_5_1"); + СтруктураНастроек.Вставить("WSURLПространстваИменСервиса", "http://www.1c.ru/SaaS/1.0/WS/RemoteAdministrationOfExchange_2_4_5_1"); + СтруктураНастроек.Вставить("WSТаймаут", 20); + + Возврат ОбменДаннымиСервер.ПолучитьWSПроксиПоПараметрамПодключения(СтруктураНастроек, СтрокаСообщенияОбОшибке); +КонецФункции + +// Возвращает Истину, если синхронизация данных в модели сервиса поддерживается +// +Функция СинхронизацияДанныхПоддерживается() Экспорт + + Возврат ПланыОбменаСинхронизацииДанных().Количество() > 0; + +КонецФункции + +// План обмена для организации синхронизации данных в модели сервиса должен: +// - быть подключенным к подсистеме обмена данными БСП, +// - быть разделенным, +// - быть планом обмена Не РИБ, +// - использоваться для обмена в модели сервиса (ПланОбменаИспользуетсяВМоделиСервиса = Истина). +// +Функция ПланыОбменаСинхронизацииДанных() Экспорт + + Результат = Новый Массив; + + Для Каждого ПланОбмена Из Метаданные.ПланыОбмена Цикл + + Если Не ПланОбмена.РаспределеннаяИнформационнаяБаза + И ОбменДаннымиПовтИсп.ПланОбменаИспользуетсяВМоделиСервиса(ПланОбмена.Имя) + И ОбменДаннымиСервер.ЭтоРазделенныйПланОбменаБСП(ПланОбмена.Имя) Тогда + + Результат.Добавить(ПланОбмена.Имя); + + КонецЕсли; + + КонецЦикла; + + Возврат Результат; +КонецФункции + +// Возвращает Истину, если этот план обмена используется для синхронизации данных в модели сервиса. +// +Функция ЭтоПланОбменаСинхронизацииДанных(Знач ИмяПланаОбмена) Экспорт + + Возврат ПланыОбменаСинхронизацииДанных().Найти(ИмяПланаОбмена) <> Неопределено; + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/ОчередьЗаданийСлужебныйПовтИсп/ОчередьЗаданийСлужебныйПовтИсп.mdo b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПовтИсп/ОбменДаннымиВМоделиСервисаПовтИсп.mdo similarity index 60% rename from SSL/src/CommonModules/ОчередьЗаданийСлужебныйПовтИсп/ОчередьЗаданийСлужебныйПовтИсп.mdo rename to SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПовтИсп/ОбменДаннымиВМоделиСервисаПовтИсп.mdo index dff4488f5..f97b067dd 100644 --- a/SSL/src/CommonModules/ОчередьЗаданийСлужебныйПовтИсп/ОчередьЗаданийСлужебныйПовтИсп.mdo +++ b/SSL/src/CommonModules/ОбменДаннымиВМоделиСервисаПовтИсп/ОбменДаннымиВМоделиСервисаПовтИсп.mdo @@ -1,9 +1,9 @@ - - ОчередьЗаданийСлужебныйПовтИсп + + ОбменДаннымиВМоделиСервисаПовтИсп ru - Очередь заданий служебный повт исп + Обмен данными в модели сервиса повт исп true true diff --git a/SSL/src/CommonModules/ОбменДаннымиВызовСервера/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиВызовСервера/Module.bsl index 42318f035..2198d11b7 100644 --- a/SSL/src/CommonModules/ОбменДаннымиВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиВызовСервера/Module.bsl @@ -54,6 +54,14 @@ Возврат Результат; КонецФункции +// Выполняет удаление настройки синхронизации данных. +// +Процедура УдалитьНастройкуСинхронизации(Знач УзелИнформационнойБазы) Экспорт + + ОбменДаннымиСервер.УдалитьНастройкуСинхронизации(УзелИнформационнойБазы); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -226,14 +234,6 @@ КонецФункции -// Выполняет удаление настройки синхронизации данных. -// -Процедура УдалитьНастройкуСинхронизации(Знач УзелИнформационнойБазы) Экспорт - - ОбменДаннымиСервер.УдалитьНастройкуСинхронизации(УзелИнформационнойБазы); - -КонецПроцедуры - Функция ВариантОбменаДанными(Знач Корреспондент) Экспорт УстановитьПривилегированныйРежим(Истина); diff --git a/SSL/src/CommonModules/ОбменДаннымиКлиент/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиКлиент/Module.bsl index 71df52f3d..17390b0c5 100644 --- a/SSL/src/CommonModules/ОбменДаннымиКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиКлиент/Module.bsl @@ -16,7 +16,7 @@ // Процедура-обработчик закрытия формы настройки узлов плана обмена. // // Параметры: -// Форма - УправляемаяФорма - форма, из которой вызвана процедура. +// Форма - ФормаКлиентскогоПриложения - форма, из которой вызвана процедура. // Процедура ФормаНастройкиУзловКомандаЗакрытьФорму(Форма) Экспорт @@ -33,7 +33,7 @@ // Процедура-обработчик закрытия формы настройки узла плана обмена. // // Параметры: -// Форма - УправляемаяФорма - форма, из которой вызвана процедура. +// Форма - ФормаКлиентскогоПриложения - форма, из которой вызвана процедура. // Процедура ФормаНастройкиУзлаКомандаЗакрытьФорму(Форма) Экспорт @@ -44,7 +44,7 @@ // Процедура-обработчик закрытия формы настройки значений по умолчанию узла плана обмена. // // Параметры: -// Форма - УправляемаяФорма - форма, из которой вызвана процедура. +// Форма - ФормаКлиентскогоПриложения - форма, из которой вызвана процедура. // Процедура ФормаНастройкиЗначенийПоУмолчаниюКомандаЗакрытьФорму(Форма) Экспорт @@ -56,7 +56,7 @@ // // Параметры: // Отказ - Булево - признак отказа от закрытия формы. -// Форма - УправляемаяФорма - форма, из которой вызвана процедура. +// Форма - ФормаКлиентскогоПриложения - форма, из которой вызвана процедура. // ЗавершениеРаботы - Булево - признак того, что форма закрывается в процессе завершения работы приложения. // // Пример: @@ -70,7 +70,7 @@ ИмяПроцедуры = "ОбменДаннымиКлиент.ФормаНастройкиПередЗакрытием"; ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Отказ", Отказ, Тип("Булево")); - ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Форма", Форма, Тип("УправляемаяФорма")); + ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Форма", Форма, Тип("ФормаКлиентскогоПриложения")); ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "ЗавершениеРаботы", ЗавершениеРаботы, Тип("Булево")); Если Не Форма.Модифицированность Тогда @@ -115,7 +115,7 @@ // Параметры: // ИмяРеквизита - Строка - Имя реквизита формы. // ИмяТаблицы - Строка - Полное имя объекта метаданных. -// Владелец - УправляемаяФорма - Форма выбора элементов базы-корреспондента. +// Владелец - ФормаКлиентскогоПриложения - Форма выбора элементов базы-корреспондента. // СтандартнаяОбработка - Булево - Признак выполнения стандартной (системной) обработки события. // ПараметрыВнешнегоСоединения - Структура - параметры внешнего соединения. // ПараметрыВыбора - Структура - Структура параметров выбора. @@ -135,7 +135,7 @@ НачальноеЗначениеВыбора = ТекущиеДанные[ИмяРеквизитаИдентификатора]; КонецЕсли; - ИначеЕсли ТипВладельца=Тип("УправляемаяФорма") Тогда + ИначеЕсли ТипВладельца=Тип("ФормаКлиентскогоПриложения") Тогда НачальноеЗначениеВыбора = Владелец[ИмяРеквизитаИдентификатора]; КонецЕсли; @@ -165,7 +165,7 @@ // Параметры: // ИмяРеквизита - Строка - Имя реквизита формы. // ИмяТаблицы - Строка - Полное имя объекта метаданных. -// Владелец - УправляемаяФорма - Форма выбора элементов базы-корреспондента. +// Владелец - ФормаКлиентскогоПриложения - Форма выбора элементов базы-корреспондента. // ПараметрыВнешнегоСоединения - Структура - параметры внешнего соединения. // ПараметрыВыбора - Структура - Структура параметров выбора. // @@ -203,7 +203,7 @@ // внешнее соединение. // // Параметры: -// Элемент - УправляемаяФорма, ТаблицаФормы - Элемент для обработки выбора. +// Элемент - ФормаКлиентскогоПриложения, ТаблицаФормы - Элемент для обработки выбора. // ВыбранноеЗначение - Произвольный - см. описание параметра ВыбранноеЗначение события ОбработкаВыбора. // ДанныеФормыКоллекция - ДанныеФормыКоллекция - Для режима подбора из списка. // @@ -237,7 +237,7 @@ ТекущиеДанные[ИмяРеквизитаПредставления] = ВыбранноеЗначение.Представление; КонецЕсли; - ИначеЕсли ТипЭлемента=Тип("УправляемаяФорма") Тогда + ИначеЕсли ТипЭлемента=Тип("ФормаКлиентскогоПриложения") Тогда Элемент[ИмяРеквизитаИдентификатора] = ВыбранноеЗначение.Идентификатор; Элемент[ИмяРеквизитаПредставления] = ВыбранноеЗначение.Представление; @@ -314,6 +314,40 @@ КонецФункции +// Обновляет конфигурацию базы данных. +// +Процедура УстановитьОбновлениеКонфигурации(ЗавершениеРаботыСистемы = Ложь) Экспорт + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда + МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбновлениеКонфигурацииКлиент"); + МодульОбновлениеКонфигурацииКлиент.УстановитьОбновлениеКонфигурации(ЗавершениеРаботыСистемы); + Иначе + ОткрытьФорму("ОбщаяФорма.ДополнительноеОписание", Новый Структура("Заголовок,ИмяМакета", + НСтр("ru = 'Установка обновления'"), "ИнструкцияКакВыполнитьУстановкуОбновленияВручную")); + КонецЕсли; + +КонецПроцедуры + +// Открывает форму монитора зарегистрированных к отправке данных. +// +Процедура ОткрытьСоставОтправляемыхДанных(Знач УзелИнформационнойБазы) Экспорт + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("УзелОбмена", УзелИнформационнойБазы); + ПараметрыФормы.Вставить("ЗапрещеноВыбиратьУзелОбмена", Истина); + + // Служебные данные, которые нельзя править при доступе к обработке через команду. + ПараметрыФормы.Вставить("ИменаСкрываемыхМетаданных", Новый СписокЗначений); + ПараметрыФормы.ИменаСкрываемыхМетаданных.Добавить("РегистрСведений.СоответствияОбъектовИнформационныхБаз"); + + НеВыгружатьПоПравилам = ОбменДаннымиВызовСервера.ИменаМетаданныхНеВыгружаемыхОбъектовУзла(УзелИнформационнойБазы); + Для Каждого ИмяМетаданных Из НеВыгружатьПоПравилам Цикл + ПараметрыФормы.ИменаСкрываемыхМетаданных.Добавить(ИмяМетаданных); + КонецЦикла; + + ОткрытьФорму("Обработка.РегистрацияИзмененийДляОбменаДанными.Форма", ПараметрыФормы,, УзелИнформационнойБазы); +КонецПроцедуры + //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. @@ -378,12 +412,65 @@ КонецПроцедуры -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -//////////////////////////////////////////////////////////////////////////////// -// Экспортные служебные функции-свойства. +// Открывает форму записи регистра сведений по заданному отбору. +Процедура ОткрытьФормуЗаписиРегистраСведенийПоОтбору( + Отбор, + ЗначенияЗаполнения, + Знач ИмяРегистра, + ФормаВладелец, + Знач ИмяФормы = "", + ПараметрыФормы = Неопределено, + ОповещениеОЗакрытии = Неопределено) Экспорт + + Перем КлючЗаписи; + + НаборЗаписейПустой = ОбменДаннымиВызовСервера.НаборЗаписейРегистраПустой(Отбор, ИмяРегистра); + + Если Не НаборЗаписейПустой Тогда + // Создаем через тип, так как находимся на клиенте. + + ТипЗначения = Тип("РегистрСведенийКлючЗаписи." + ИмяРегистра); + Параметры = Новый Массив(1); + Параметры[0] = Отбор; + + КлючЗаписи = Новый(ТипЗначения, Параметры); + КонецЕсли; + + ПараметрыЗаписи = Новый Структура; + ПараметрыЗаписи.Вставить("Ключ", КлючЗаписи); + ПараметрыЗаписи.Вставить("ЗначенияЗаполнения", ЗначенияЗаполнения); + + Если ПараметрыФормы <> Неопределено Тогда + + Для Каждого Элемент Из ПараметрыФормы Цикл + + ПараметрыЗаписи.Вставить(Элемент.Ключ, Элемент.Значение); + + КонецЦикла; + + КонецЕсли; + + Если ПустаяСтрока(ИмяФормы) Тогда + + ПолноеИмяФормы = "РегистрСведений.[ИмяРегистра].ФормаЗаписи"; + ПолноеИмяФормы = СтрЗаменить(ПолноеИмяФормы, "[ИмяРегистра]", ИмяРегистра); + + Иначе + + ПолноеИмяФормы = "РегистрСведений.[ИмяРегистра].Форма.[ИмяФормы]"; + ПолноеИмяФормы = СтрЗаменить(ПолноеИмяФормы, "[ИмяРегистра]", ИмяРегистра); + ПолноеИмяФормы = СтрЗаменить(ПолноеИмяФормы, "[ИмяФормы]", ИмяФормы); + + КонецЕсли; + + // открываем форму записи РС + Если ОповещениеОЗакрытии <> Неопределено Тогда + ОткрытьФорму(ПолноеИмяФормы, ПараметрыЗаписи, ФормаВладелец, , , , ОповещениеОЗакрытии); + Иначе + ОткрытьФорму(ПолноеИмяФормы, ПараметрыЗаписи, ФормаВладелец); + КонецЕсли; + +КонецПроцедуры Процедура ИнициализироватьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжидания) Экспорт @@ -402,6 +489,58 @@ КонецПроцедуры +// Открывает форму выполнения обмена данными для заданного узла плана обмена. +// +// Параметры: +// УзелИнформационнойБазы - ПланОбменаСсылка - узел плана обмена, для которого необходимо открыть форму; +// Владелец - форма-владелец для открываемой формы; +// +Процедура ВыполнитьОбменДаннымиОбработкаКоманды(УзелИнформационнойБазы, Владелец, + АдресДляВосстановленияПароляУчетнойЗаписи = "", Знач АвтоматическаяСинхронизация = Неопределено, ДополнительныеПараметры = Неопределено) Экспорт + + Если АвтоматическаяСинхронизация = Неопределено Тогда + АвтоматическаяСинхронизация = (ОбменДаннымиВызовСервера.ВариантОбменаДанными(УзелИнформационнойБазы) = "Синхронизация"); + КонецЕсли; + + ИмяФормыПомощника = ""; + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("УзелИнформационнойБазы", УзелИнформационнойБазы); + + Если АвтоматическаяСинхронизация Тогда + ИмяФормыПомощника = "Обработка.ВыполнениеОбменаДанными.Форма"; + ПараметрыФормы.Вставить("АдресДляВосстановленияПароляУчетнойЗаписи", АдресДляВосстановленияПароляУчетнойЗаписи); + Иначе + ИмяФормыПомощника = "Обработка.ПомощникИнтерактивногоОбменаДанными.Форма"; + ПараметрыФормы.Вставить("РасширенныйРежимДополненияВыгрузки", Истина); + КонецЕсли; + + ОповещениеОЗакрытии = Неопределено; + + Если Не ДополнительныеПараметры = Неопределено Тогда + + Если ДополнительныеПараметры.Свойство("ПараметрыПомощника") Тогда + Для Каждого ТекущийПараметр Из ДополнительныеПараметры.ПараметрыПомощника Цикл + ПараметрыФормы.Вставить(ТекущийПараметр.Ключ, ТекущийПараметр.Значение); + КонецЦикла; + КонецЕсли; + + ДополнительныеПараметры.Свойство("ОповещениеОЗакрытии", ОповещениеОЗакрытии); + + КонецЕсли; + + ОткрытьФорму(ИмяФормыПомощника, + ПараметрыФормы, Владелец, УзелИнформационнойБазы.УникальныйИдентификатор(), , , ОповещениеОЗакрытии, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +//////////////////////////////////////////////////////////////////////////////// +// Экспортные служебные функции-свойства. + // Возвращает максимально допустимое количество полей, // которые отображаются в помощнике сопоставления объектов ИБ. // @@ -938,66 +1077,6 @@ КонецПроцедуры -// Открывает форму записи регистра сведений по заданному отбору. -Процедура ОткрытьФормуЗаписиРегистраСведенийПоОтбору( - Отбор, - ЗначенияЗаполнения, - Знач ИмяРегистра, - ФормаВладелец, - Знач ИмяФормы = "", - ПараметрыФормы = Неопределено, - ОповещениеОЗакрытии = Неопределено) Экспорт - - Перем КлючЗаписи; - - НаборЗаписейПустой = ОбменДаннымиВызовСервера.НаборЗаписейРегистраПустой(Отбор, ИмяРегистра); - - Если Не НаборЗаписейПустой Тогда - // Создаем через тип, так как находимся на клиенте. - - ТипЗначения = Тип("РегистрСведенийКлючЗаписи." + ИмяРегистра); - Параметры = Новый Массив(1); - Параметры[0] = Отбор; - - КлючЗаписи = Новый(ТипЗначения, Параметры); - КонецЕсли; - - ПараметрыЗаписи = Новый Структура; - ПараметрыЗаписи.Вставить("Ключ", КлючЗаписи); - ПараметрыЗаписи.Вставить("ЗначенияЗаполнения", ЗначенияЗаполнения); - - Если ПараметрыФормы <> Неопределено Тогда - - Для Каждого Элемент Из ПараметрыФормы Цикл - - ПараметрыЗаписи.Вставить(Элемент.Ключ, Элемент.Значение); - - КонецЦикла; - - КонецЕсли; - - Если ПустаяСтрока(ИмяФормы) Тогда - - ПолноеИмяФормы = "РегистрСведений.[ИмяРегистра].ФормаЗаписи"; - ПолноеИмяФормы = СтрЗаменить(ПолноеИмяФормы, "[ИмяРегистра]", ИмяРегистра); - - Иначе - - ПолноеИмяФормы = "РегистрСведений.[ИмяРегистра].Форма.[ИмяФормы]"; - ПолноеИмяФормы = СтрЗаменить(ПолноеИмяФормы, "[ИмяРегистра]", ИмяРегистра); - ПолноеИмяФормы = СтрЗаменить(ПолноеИмяФормы, "[ИмяФормы]", ИмяФормы); - - КонецЕсли; - - // открываем форму записи РС - Если ОповещениеОЗакрытии <> Неопределено Тогда - ОткрытьФорму(ПолноеИмяФормы, ПараметрыЗаписи, ФормаВладелец, , , , ОповещениеОЗакрытии); - Иначе - ОткрытьФорму(ПолноеИмяФормы, ПараметрыЗаписи, ФормаВладелец); - КонецЕсли; - -КонецПроцедуры - // Открывает форму загрузки правил конвертации и регистрации единым файлом. // Процедура ЗагрузитьПравилаСинхронизацииДанных(Знач ИмяПланаОбмена) Экспорт @@ -1022,51 +1101,6 @@ КонецПроцедуры -// Открывает форму выполнения обмена данными для заданного узла плана обмена. -// -// Параметры: -// УзелИнформационнойБазы - ПланОбменаСсылка - узел плана обмена, для которого необходимо открыть форму; -// Владелец - форма-владелец для открываемой формы; -// -Процедура ВыполнитьОбменДаннымиОбработкаКоманды(УзелИнформационнойБазы, Владелец, - АдресДляВосстановленияПароляУчетнойЗаписи = "", Знач АвтоматическаяСинхронизация = Неопределено, ДополнительныеПараметры = Неопределено) Экспорт - - Если АвтоматическаяСинхронизация = Неопределено Тогда - АвтоматическаяСинхронизация = (ОбменДаннымиВызовСервера.ВариантОбменаДанными(УзелИнформационнойБазы) = "Синхронизация"); - КонецЕсли; - - ИмяФормыПомощника = ""; - - ПараметрыФормы = Новый Структура; - ПараметрыФормы.Вставить("УзелИнформационнойБазы", УзелИнформационнойБазы); - - Если АвтоматическаяСинхронизация Тогда - ИмяФормыПомощника = "Обработка.ВыполнениеОбменаДанными.Форма"; - ПараметрыФормы.Вставить("АдресДляВосстановленияПароляУчетнойЗаписи", АдресДляВосстановленияПароляУчетнойЗаписи); - Иначе - ИмяФормыПомощника = "Обработка.ПомощникИнтерактивногоОбменаДанными.Форма"; - ПараметрыФормы.Вставить("РасширенныйРежимДополненияВыгрузки", Истина); - КонецЕсли; - - ОповещениеОЗакрытии = Неопределено; - - Если Не ДополнительныеПараметры = Неопределено Тогда - - Если ДополнительныеПараметры.Свойство("ПараметрыПомощника") Тогда - Для Каждого ТекущийПараметр Из ДополнительныеПараметры.ПараметрыПомощника Цикл - ПараметрыФормы.Вставить(ТекущийПараметр.Ключ, ТекущийПараметр.Значение); - КонецЦикла; - КонецЕсли; - - ДополнительныеПараметры.Свойство("ОповещениеОЗакрытии", ОповещениеОЗакрытии); - - КонецЕсли; - - ОткрытьФорму(ИмяФормыПомощника, - ПараметрыФормы, Владелец, УзелИнформационнойБазы.УникальныйИдентификатор(), , , ОповещениеОЗакрытии, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); - -КонецПроцедуры - // Открывает форму интерактивного выполнения обмена данными для заданного узла плана обмена. // // Параметры: @@ -1176,26 +1210,6 @@ КонецПроцедуры -// Открывает форму монитора зарегистрированных к отправке данных. -// -Процедура ОткрытьСоставОтправляемыхДанных(Знач УзелИнформационнойБазы) Экспорт - - ПараметрыФормы = Новый Структура; - ПараметрыФормы.Вставить("УзелОбмена", УзелИнформационнойБазы); - ПараметрыФормы.Вставить("ЗапрещеноВыбиратьУзелОбмена", Истина); - - // Служебные данные, которые нельзя править при доступе к обработке через команду. - ПараметрыФормы.Вставить("ИменаСкрываемыхМетаданных", Новый СписокЗначений); - ПараметрыФормы.ИменаСкрываемыхМетаданных.Добавить("РегистрСведений.СоответствияОбъектовИнформационныхБаз"); - - НеВыгружатьПоПравилам = ОбменДаннымиВызовСервера.ИменаМетаданныхНеВыгружаемыхОбъектовУзла(УзелИнформационнойБазы); - Для Каждого ИмяМетаданных Из НеВыгружатьПоПравилам Цикл - ПараметрыФормы.ИменаСкрываемыхМетаданных.Добавить(ИмяМетаданных); - КонецЦикла; - - ОткрытьФорму("Обработка.РегистрацияИзмененийДляОбменаДанными.Форма", ПараметрыФормы,, УзелИнформационнойБазы); -КонецПроцедуры - // Регистрирует обработчик для открытия новой формы сразу после закрытия текущей. // Процедура ОткрытьФормуПослеЗакрытияТекущей(ТекущаяФорма, Знач ИмяФормы, Знач Параметры = Неопределено, Знач ПараметрыОткрытия = Неопределено) Экспорт @@ -1225,20 +1239,6 @@ КонецПроцедуры -// Обновляет конфигурацию базы данных. -// -Процедура УстановитьОбновлениеКонфигурации(ЗавершениеРаботыСистемы = Ложь) Экспорт - - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда - МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбновлениеКонфигурацииКлиент"); - МодульОбновлениеКонфигурацииКлиент.УстановитьОбновлениеКонфигурации(ЗавершениеРаботыСистемы); - Иначе - ОткрытьФорму("ОбщаяФорма.ДополнительноеОписание", Новый Структура("Заголовок,ИмяМакета", - НСтр("ru = 'Установка обновления'"), "ИнструкцияКакВыполнитьУстановкуОбновленияВручную")); - КонецЕсли; - -КонецПроцедуры - // Открывает инструкцию по восстановлению/изменению пароля синхронизации данных // с автономным рабочим местом. // @@ -1414,7 +1414,7 @@ // // Параметры: // ВыбранноеЗначение - Произвольный - результат выбора. -// ИсточникВыбора - УправляемаяФорма - форма, которая произвела выбор. +// ИсточникВыбора - ФормаКлиентскогоПриложения - форма, которая произвела выбор. // ДополнениеВыгрузки - Структура, ДанныеФормыКоллекция - корректируемые настройки дополнения выбора. // // Возвращаемое значение: diff --git a/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl index 60d3daae9..391bf48b4 100644 --- a/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиПереопределяемый/Module.bsl @@ -163,8 +163,8 @@ // Отказ от стандартной обработки не отменяет действие. // Значение по умолчанию - Истина. // -// Отбор - Массив или ОбъектМетаданных - определяет отбор по объектам метаданных, для которых следует выполнить -// регистрацию изменений. +// Отбор - Массив, ОбъектМетаданных - определяет отбор по объектам метаданных, для которых следует выполнить +// регистрацию изменений. // Процедура РегистрацияИзмененийНачальнойВыгрузкиДанных(Знач Получатель, СтандартнаяОбработка, Отбор) Экспорт diff --git a/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl index 7aa611f0e..8c69e4794 100644 --- a/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиПовтИсп/Module.bsl @@ -414,6 +414,89 @@ КонецФункции +// Получает имя плана обмена как объекта метаданного для заданного узла. +// +// Параметры: +// УзелПланаОбмена - ПланОбменаСсылка - узел плана обмена. +// +// Возвращаемое значение: +// Имя - Строка - имя плана обмена как объекта метаданного. +// +Функция ПолучитьИмяПланаОбмена(УзелПланаОбмена) Экспорт + + Возврат УзелПланаОбмена.Метаданные().Имя; + +КонецФункции + +// Получает массив имен разделенных планов обмена конфигурации, которые используют функционал БСП. +// Если конфигурация не содержит разделителей, то все планы обмена считаются разделенными (прикладными). +// +// Параметры: +// Нет. +// +// Возвращаемое значение: +// Массив - массив элементов имен разделенных планов обмена. +// +Функция РазделенныеПланыОбменаБСП() Экспорт + + Результат = Новый Массив; + + Для Каждого ИмяПланаОбмена Из ПланыОбменаБСП() Цикл + + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + ЭтоРазделеннаяКонфигурация = МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация(); + Иначе + ЭтоРазделеннаяКонфигурация = Ложь; + КонецЕсли; + + Если ЭтоРазделеннаяКонфигурация Тогда + + Если МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных("ПланОбмена." + ИмяПланаОбмена, + МодульРаботаВМоделиСервиса.РазделительОсновныхДанных()) Тогда + + Результат.Добавить(ИмяПланаОбмена); + + КонецЕсли; + + Иначе + + Результат.Добавить(ИмяПланаОбмена); + + КонецЕсли; + + КонецЦикла; + + Возврат Результат; +КонецФункции + +// Определяет используется ли версионирование. +// +// Параметры: +// Отправитель - ПланОбменаСсылка - Если параметр передается, то определяет необходимо +// ли использовать создание версий объектов для переданного узла. +// +Функция ИспользуетсяВерсионирование(Отправитель = Неопределено, ПроверятьПраваДоступа = Ложь) Экспорт + + Используется = Ложь; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВерсионированиеОбъектов") Тогда + + Используется = ?(Отправитель <> Неопределено, ЭтоУзелОбменаДаннымиБСП(Отправитель), Истина); + + Если Используется И ПроверятьПраваДоступа Тогда + + МодульВерсионированиеОбъектов = ОбщегоНазначения.ОбщийМодуль("ВерсионированиеОбъектов"); + Используется = МодульВерсионированиеОбъектов.ЕстьПравоЧтенияИнформацииОВерсияхОбъектов(); + + КонецЕсли; + + КонецЕсли; + + Возврат Используется; + +КонецФункции + // Возвращает таблицу состава узла (только ссылочные типы). // // Параметры: @@ -848,7 +931,7 @@ // Функция ЭтоУзелОбменаСообщениями(УзелИнформационнойБазы) Экспорт - Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменСообщениями") Тогда + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОбменСообщениями") Тогда Возврат Ложь; КонецЕсли; @@ -856,20 +939,6 @@ КонецФункции -// Получает имя плана обмена как объекта метаданного для заданного узла. -// -// Параметры: -// УзелПланаОбмена - ПланОбменаСсылка - узел плана обмена. -// -// Возвращаемое значение: -// Имя - Строка - имя плана обмена как объекта метаданного. -// -Функция ПолучитьИмяПланаОбмена(УзелПланаОбмена) Экспорт - - Возврат УзелПланаОбмена.Метаданные().Имя; - -КонецФункции - // Получает список макетов типовых правил обмена из конфигурации для заданного плана обмена; // список заполняется именами и синонимами макетов правил. // @@ -928,48 +997,6 @@ КонецФункции -// Получает массив имен разделенных планов обмена конфигурации, которые используют функционал БСП. -// Если конфигурация не содержит разделителей, то все планы обмена считаются разделенными (прикладными). -// -// Параметры: -// Нет. -// -// Возвращаемое значение: -// Массив - массив элементов имен разделенных планов обмена. -// -Функция РазделенныеПланыОбменаБСП() Экспорт - - Результат = Новый Массив; - - Для Каждого ИмяПланаОбмена Из ПланыОбменаБСП() Цикл - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ЭтоРазделеннаяКонфигурация = МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация(); - Иначе - ЭтоРазделеннаяКонфигурация = Ложь; - КонецЕсли; - - Если ЭтоРазделеннаяКонфигурация Тогда - - Если МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных("ПланОбмена." + ИмяПланаОбмена, - МодульРаботаВМоделиСервиса.РазделительОсновныхДанных()) Тогда - - Результат.Добавить(ИмяПланаОбмена); - - КонецЕсли; - - Иначе - - Результат.Добавить(ИмяПланаОбмена); - - КонецЕсли; - - КонецЦикла; - - Возврат Результат; -КонецФункции - // Для внутреннего использования. // Функция ОбщиеДанныеУзлов(Знач УзелИнформационнойБазы) Экспорт @@ -1442,33 +1469,6 @@ Возврат Результат; КонецФункции -// Определяет используется ли версионирование. -// -// Параметры: -// Отправитель - ПланОбменаСсылка - Если параметр передается, то определяет необходимо -// ли использовать создание версий объектов для переданного узла. -// -Функция ИспользуетсяВерсионирование(Отправитель = Неопределено, ПроверятьПраваДоступа = Ложь) Экспорт - - Используется = Ложь; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВерсионированиеОбъектов") Тогда - - Используется = ?(Отправитель <> Неопределено, ЭтоУзелОбменаДаннымиБСП(Отправитель), Истина); - - Если Используется И ПроверятьПраваДоступа Тогда - - МодульВерсионированиеОбъектов = ОбщегоНазначения.ОбщийМодуль("ВерсионированиеОбъектов"); - Используется = МодульВерсионированиеОбъектов.ЕстьПравоЧтенияИнформацииОВерсияхОбъектов(); - - КонецЕсли; - - КонецЕсли; - - Возврат Используется; - -КонецФункции - // Функция возвращает имя каталога временных файлов. // // Возвращаемое значение: diff --git a/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl index 3e999cf05..b7c577a9d 100644 --- a/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиСервер/Module.bsl @@ -62,15 +62,11 @@ // Процедура-обработчик события "ПриСозданииНаСервере" для формы узла плана обмена. // // Параметры: -// Форма - УправляемаяФорма - форма, из которой вызвана процедура. +// Форма - ФормаКлиентскогоПриложения - форма, из которой вызвана процедура. // Отказ - Булево - признак отказа от создания формы. Если установить в Истина, то форма создана не будет. // Процедура ФормаУзлаПриСозданииНаСервере(Форма, Отказ) Экспорт - Если Форма.Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ПредставлениеПланаОбмена = ЗначениеНастройкиПланаОбмена( Форма.Объект.Ссылка.Метаданные().Имя, "ЗаголовокУзлаПланаОбмена", @@ -105,15 +101,11 @@ // Процедура-обработчик события "ПриСозданииНаСервере" для формы настройки узла. // // Параметры: -// Форма - УправляемаяФорма - форма, из которой вызвана процедура. +// Форма - ФормаКлиентскогоПриложения - форма, из которой вызвана процедура. // ИмяПланаОбмена - Строка - имя плана обмена, для которого создана форма. // Процедура ФормаНастройкиУзлаПриСозданииНаСервере(Форма, ИмяПланаОбмена) Экспорт - Если Форма.Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ИдентификаторНастройки = ""; Если Форма.Параметры.Свойство("ИдентификаторНастройки") Тогда @@ -934,7 +926,7 @@ СтруктураЗаписи.Вставить("УзелИнформационнойБазы", Корреспондент); СтруктураЗаписи.Вставить("ИмяПланаОбменаКорреспондента", Контекст.ИмяПланаОбмена); - ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиОбменаДаннымиXDTO"); + ОбменДаннымиСлужебный.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиОбменаДаннымиXDTO"); ИначеЕсли Контекст.Режим = "РедактированиеПараметровПодключения" Тогда ДанныеКорреспондента = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Корреспондент, "Код, Наименование, ВерсияФорматаОбмена"); @@ -991,15 +983,14 @@ ПараметрыПодключения.ИспользоватьРегламентноеЗадание, Истина); Если ОбщегоНазначения.РазделениеВключено() Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); КлючЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'ОбменДаннымиСВнешнейСистемой (%1)'"), ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Корреспондент, "Код")); - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ПараметрыЗадания = Новый Структура; ПараметрыЗадания.Вставить("ОбластьДанных", МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); ПараметрыЗадания.Вставить("Использование", ИспользоватьРегламентноеЗадание); @@ -1359,7 +1350,7 @@ #Область ДляВызоваИзДругихПодсистем -// ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса +// СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса // Возвращает ссылку на узел плана обмена, найденный по его коду. // Если узел не найден, возвращается Неопределено. @@ -1423,7 +1414,7 @@ // Процедура УдалитьЗаписиСостоянияОбменовДанными(СтруктураЗаписи) Экспорт - УдалитьНаборЗаписейВРегистреСведений(СтруктураЗаписи, "СостоянияОбменовДанными"); + ОбменДаннымиСлужебный.УдалитьНаборЗаписейВРегистреСведений(СтруктураЗаписи, "СостоянияОбменовДанными"); КонецПроцедуры @@ -1434,7 +1425,7 @@ // Процедура УдалитьЗаписиСостоянияУспешныхОбменовДанными(СтруктураЗаписи) Экспорт - УдалитьНаборЗаписейВРегистреСведений(СтруктураЗаписи, "СостоянияУспешныхОбменовДанными"); + ОбменДаннымиСлужебный.УдалитьНаборЗаписейВРегистреСведений(СтруктураЗаписи, "СостоянияУспешныхОбменовДанными"); КонецПроцедуры @@ -1504,7 +1495,7 @@ КонецФункции -// Конец ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса +// Конец СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса #КонецОбласти @@ -2148,6 +2139,618 @@ КонецФункции +// Выполняет проверку подключения обработки транспорта по заданным настройкам. +// +Процедура ПроверитьПодключениеОбработкиТранспортаСообщенийОбмена(Отказ, + СтруктураНастроек, ВидТранспорта, СообщениеОбОшибке = "", НовыеПароли = Неопределено) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + // Создаем экземпляр объекта обработки. + ОбработкаОбъект = Обработки[ИмяОбработкиТранспортаСообщенийОбмена(ВидТранспорта)].Создать(); + + // Инициализация свойств обработки переданными параметрами настроек. + ЗаполнитьЗначенияСвойств(ОбработкаОбъект, СтруктураНастроек); + + // Привилегированный режим установлен выше. + Если СтруктураНастроек.Свойство("Корреспондент") Тогда + Если НовыеПароли = Неопределено Тогда + Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(СтруктураНастроек.Корреспондент, + "COMПарольПользователя, FTPСоединениеПароль, WSПароль, ПарольАрхиваСообщенияОбмена", Истина); + Иначе + Пароли = Новый Структура( + "COMПарольПользователя, FTPСоединениеПароль, WSПароль, ПарольАрхиваСообщенияОбмена"); + ЗаполнитьЗначенияСвойств(Пароли, НовыеПароли); + КонецЕсли; + ЗаполнитьЗначенияСвойств(ОбработкаОбъект, Пароли); + КонецЕсли; + + // Инициализация транспорта обмена. + ОбработкаОбъект.Инициализация(); + + // Выполняем проверку подключения. + Если Не ОбработкаОбъект.ПодключениеУстановлено() Тогда + + Отказ = Истина; + + СообщениеОбОшибке = ОбработкаОбъект.СтрокаСообщенияОбОшибке + + Символы.ПС + НСтр("ru = 'Техническую информацию об ошибке см. в журнале регистрации.'"); + + ЗаписьЖурналаРегистрации(НСтр("ru = 'Транспорт сообщений обмена'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОбъект.СтрокаСообщенияОбОшибкеЖР); + + КонецЕсли; + +КонецПроцедуры + +Процедура ПроверитьВозможностьАдминистрированияОбменов() Экспорт + + Если Не ЕстьПраваНаАдминистрированиеОбменов() Тогда + + ВызватьИсключение НСтр("ru = 'Недостаточно прав для администрирования синхронизации данных.'"); + + КонецЕсли; + +КонецПроцедуры + +// Получает узел распределенной информационной базы, являющийся главным для текущей информационной базы при условии, +// что распределенная информационная база создана на базе плана обмена, обслуживаемым подсистемой обмена данными БСП. +// +// Возвращаемое значение: +// ПланОбменаСсылка.<Имя плана обмена>; Неопределено - Если текущая информационная база не является +// узлом распределенной информационной базы +// или главный узел для нее не определен (она сама является корневым узлом) +// или распределенная информационная база создана на базе плана обмена, который не обслуживается подсистемой обмена +// данными БСП, то метод возвращает Неопределено. +// +Функция ГлавныйУзел() Экспорт + + Результат = ПланыОбмена.ГлавныйУзел(); + + Если Результат <> Неопределено Тогда + + Если Не ОбменДаннымиПовтИсп.ЭтоУзелОбменаДаннымиБСП(Результат) Тогда + + Результат = Неопределено; + + КонецЕсли; + + КонецЕсли; + + Возврат Результат; +КонецФункции + +Процедура ПриПродолженииНастройкиПодчиненногоУзлаРИБ() Экспорт + + ИнтеграцияПодсистемБСП.ПриНастройкеПодчиненногоУзлаРИБ(); + ОбменДаннымиПереопределяемый.ПриНастройкеПодчиненногоУзлаРИБ(); + +КонецПроцедуры + +// Возвращает признак наличия у пользователя прав на выполнение синхронизации данных. +// Выполнять синхронизацию данных может, либо полноправный пользователь, +// либо пользователь с правами поставляемого профиля "Синхронизация данных с другими программами". +// +// Параметры: +// Пользователь (необязательный) - ПользовательИнформационнойБазы, Неопределено. +// Пользователь, для которого необходимо вычислить признак разрешения использования синхронизации данных. +// Если параметр не задан, то функция вычисляется для текущего пользователя информационной базы. +// +Функция СинхронизацияДанныхРазрешена(Знач Пользователь = Неопределено) Экспорт + + Если Пользователь = Неопределено Тогда + Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь(); + КонецЕсли; + + Если Пользователь.Роли.Содержит(Метаданные.Роли.ПолныеПрава) Тогда + Возврат Истина; + КонецЕсли; + + РолиПрофиля = СтрРазделить(РолиПрофиляДоступаСинхронизацияДанныхСДругимиПрограммами(), ","); + Для Каждого Роль Из РолиПрофиля Цикл + + Если Не Пользователь.Роли.Содержит(Метаданные.Роли.Найти(СокрЛП(Роль))) Тогда + Возврат Ложь; + КонецЕсли; + + КонецЦикла; + + Возврат Истина; +КонецФункции + +Процедура ЗаполнитьТаблицуЗначений(Приемник, Знач Источник) Экспорт + Приемник.Очистить(); + + Если ТипЗнч(Источник)=Тип("ТаблицаЗначений") Тогда + КолонкиИсточника = Источник.Колонки; + Иначе + Времянка = Источник.Выгрузить(Новый Массив); + КолонкиИсточника = Времянка.Колонки; + КонецЕсли; + + Если ТипЗнч(Приемник)=Тип("ТаблицаЗначений") Тогда + КолонкиПриемника = Приемник.Колонки; + КолонкиПриемника.Очистить(); + Для Каждого Колонка Из КолонкиИсточника Цикл + ЗаполнитьЗначенияСвойств(КолонкиПриемника.Добавить(), Колонка); + КонецЦикла; + КонецЕсли; + + Для Каждого Строка Из Источник Цикл + ЗаполнитьЗначенияСвойств(Приемник.Добавить(), Строка); + КонецЦикла; +КонецПроцедуры + +Функция ПолученоСообщениеСДаннымиДляСопоставления(УзелОбмена) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + Запрос = Новый Запрос( + "ВЫБРАТЬ + | СообщенияДляСопоставленияДанных.ПолученоСообщениеДляСопоставленияДанных КАК ПолученоСообщениеДляСопоставленияДанных + |ИЗ + | #ТаблицаПланаОбмена КАК ТаблицаПланаОбмена + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ СообщенияДляСопоставленияДанных КАК СообщенияДляСопоставленияДанных + | ПО (СообщенияДляСопоставленияДанных.УзелИнформационнойБазы = ТаблицаПланаОбмена.Ссылка) + |ГДЕ + | ТаблицаПланаОбмена.Ссылка = &УзелОбмена"); + Запрос.УстановитьПараметр("УзелОбмена", УзелОбмена); + Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; + + Запрос.Текст = СтрЗаменить(Запрос.Текст, "#ТаблицаПланаОбмена", "ПланОбмена." + ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелОбмена)); + + ПолучитьСообщенияДляСопоставленияДанных(Запрос.МенеджерВременныхТаблиц); + + Выборка = Запрос.Выполнить().Выбрать(); + + Если Выборка.Следующий() Тогда + Возврат Выборка.ПолученоСообщениеДляСопоставленияДанных; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + +Функция КодУзлаПланаОбменаСтрокой(Значение) Экспорт + + Если ТипЗнч(Значение) = Тип("Строка") Тогда + + Возврат СокрЛП(Значение); + + ИначеЕсли ТипЗнч(Значение) = Тип("Число") Тогда + + Возврат Формат(Значение, "ЧЦ=7; ЧВН=; ЧГ=0"); + + КонецЕсли; + + Возврат Значение; +КонецФункции + +// Получает параметр защищенного соединения. +// +Функция ЗащищенноеСоединение(Путь) Экспорт + + Возврат ?(НРег(Лев(Путь, 4)) = "ftps", ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение(), Неопределено); + +КонецФункции + +Процедура ЗарегистрироватьДанныеДляНачальнойВыгрузки(УзелИнформационнойБазы, Данные = Неопределено, УдалитьРегистрациюСоответствий = Истина) Экспорт + + УстановитьПривилегированныйРежим(Истина); + + // Обновляем повторно используемые значения Механизма регистрации объектов. + ОбменДаннымиСлужебный.ПроверитьКэшМеханизмаРегистрацииОбъектов(); + + СтандартнаяОбработка = Истина; + + ОбменДаннымиПереопределяемый.РегистрацияИзмененийНачальнойВыгрузкиДанных(УзелИнформационнойБазы, СтандартнаяОбработка, Данные); + + Если СтандартнаяОбработка Тогда + + Если ТипЗнч(Данные) = Тип("Массив") Тогда + + Для Каждого ОбъектМетаданных Из Данные Цикл + + ПланыОбмена.ЗарегистрироватьИзменения(УзелИнформационнойБазы, ОбъектМетаданных); + + КонецЦикла; + + Иначе + + ПланыОбмена.ЗарегистрироватьИзменения(УзелИнформационнойБазы, Данные); + + КонецЕсли; + + КонецЕсли; + + Если ОбменДаннымиПовтИсп.ПланОбменаСодержитОбъект(ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелИнформационнойБазы), + Метаданные.РегистрыСведений.СоответствияОбъектовИнформационныхБаз.ПолноеИмя()) + И УдалитьРегистрациюСоответствий Тогда + + ПланыОбмена.УдалитьРегистрациюИзменений(УзелИнформационнойБазы, Метаданные.РегистрыСведений.СоответствияОбъектовИнформационныхБаз); + + КонецЕсли; + + // Устанавливаем признак начальной выгрузки данных для узла. + РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.УстановитьПризнакНачальнойВыгрузкиДанных(УзелИнформационнойБазы); + +КонецПроцедуры + +Процедура ЗарегистрироватьТолькоСправочникиДляНачальнойВыгрузки(Знач УзелИнформационнойБазы) Экспорт + + ЗарегистрироватьДанныеДляНачальнойВыгрузки(УзелИнформационнойБазы, СправочникиПланаОбмена(УзелИнформационнойБазы)); + +КонецПроцедуры + +Процедура ЗарегистрироватьТолькоСправочникиДляНачальнойВыгрузкиВФоне(ПараметрыПроцедуры, АдресХранилища) Экспорт + + ЗарегистрироватьТолькоСправочникиДляНачальнойВыгрузки(ПараметрыПроцедуры["УзелИнформационнойБазы"]); + +КонецПроцедуры + +Процедура ЗарегистрироватьВсеДанныеКромеСправочниковДляНачальнойВыгрузки(Знач УзелИнформационнойБазы) Экспорт + + ЗарегистрироватьДанныеДляНачальнойВыгрузки(УзелИнформационнойБазы, ВсеДанныеПланаОбменаКромеСправочников(УзелИнформационнойБазы)); + +КонецПроцедуры + +Процедура ЗарегистрироватьВсеДанныеКромеСправочниковДляНачальнойВыгрузкиВФоне(ПараметрыПроцедуры, АдресХранилища) Экспорт + + ЗарегистрироватьВсеДанныеКромеСправочниковДляНачальнойВыгрузки(ПараметрыПроцедуры["УзелИнформационнойБазы"]); + +КонецПроцедуры + +Функция ДанныеДляТабличныхЧастейУзловЭтойИнформационнойБазы(Знач ИмяПланаОбмена, ВерсияКорреспондента = "", ИдентификаторНастройки = "") Экспорт + + Результат = Новый Структура; + + ОбщиеТаблицыУзлов = ОбменДаннымиПовтИсп.ТабличныеЧастиПланаОбмена(ИмяПланаОбмена, ВерсияКорреспондента, ИдентификаторНастройки)["ВсеТаблицыЭтойБазы"]; + + Для Каждого ИмяТабличнойЧасти Из ОбщиеТаблицыУзлов Цикл + + ИмяТаблицы = ИмяТаблицыИзПервогоРеквизитаТабличнойЧастиПланаОбмена(ИмяПланаОбмена, ИмяТабличнойЧасти); + + Если Не ЗначениеЗаполнено(ИмяТаблицы) Тогда + Продолжить; + КонецЕсли; + + ДанныеТабличнойЧасти = Новый ТаблицаЗначений; + ДанныеТабличнойЧасти.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); + ДанныеТабличнойЧасти.Колонки.Добавить("УникальныйИдентификаторСсылки", Новый ОписаниеТипов("Строка")); + + ТекстЗапроса = + "ВЫБРАТЬ ПЕРВЫЕ 1000 + | Таблица.Ссылка КАК Ссылка, + | Таблица.Представление КАК Представление + |ИЗ + | [ИмяТаблицы] КАК Таблица + | + |ГДЕ + | НЕ Таблица.ПометкаУдаления + | + |УПОРЯДОЧИТЬ ПО + | Таблица.Представление"; + + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяТаблицы]", ИмяТаблицы); + + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапроса; + + Выборка = Запрос.Выполнить().Выбрать(); + + Пока Выборка.Следующий() Цикл + + СтрокаТаблицы = ДанныеТабличнойЧасти.Добавить(); + СтрокаТаблицы.Представление = Выборка.Представление; + СтрокаТаблицы.УникальныйИдентификаторСсылки = Строка(Выборка.Ссылка.УникальныйИдентификатор()); + + КонецЦикла; + + Результат.Вставить(ИмяТабличнойЧасти, ДанныеТабличнойЧасти); + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +Функция ПолучитьЗначенияНастройкиОтборов(СтруктураНастроекВнешнегоСоединения) Экспорт + + Результат = Новый Структура; + + // объектные типы + Для Каждого НастройкаОтбора Из СтруктураНастроекВнешнегоСоединения Цикл + + Если ТипЗнч(НастройкаОтбора.Значение) = Тип("Структура") Тогда + + РезультатВложенный = Новый Структура; + + Для Каждого Элемент Из НастройкаОтбора.Значение Цикл + + Если СтрНайти(Элемент.Ключ, "_Ключ") > 0 Тогда + + Ключ = СтрЗаменить(Элемент.Ключ, "_Ключ", ""); + + Массив = Новый Массив; + + Для Каждого ЭлементМассива Из Элемент.Значение Цикл + + Если Не ПустаяСтрока(ЭлементМассива) Тогда + + Значение = ЗначениеИзСтрокиВнутр(ЭлементМассива); + + Массив.Добавить(Значение); + + КонецЕсли; + + КонецЦикла; + + РезультатВложенный.Вставить(Ключ, Массив); + + КонецЕсли; + + КонецЦикла; + + Результат.Вставить(НастройкаОтбора.Ключ, РезультатВложенный); + + Иначе + + Если СтрНайти(НастройкаОтбора.Ключ, "_Ключ") > 0 Тогда + + Ключ = СтрЗаменить(НастройкаОтбора.Ключ, "_Ключ", ""); + + Попытка + Если ПустаяСтрока(НастройкаОтбора.Значение) Тогда + Значение = Неопределено; + Иначе + Значение = ЗначениеИзСтрокиВнутр(НастройкаОтбора.Значение); + КонецЕсли; + Исключение + Значение = Неопределено; + КонецПопытки; + + Результат.Вставить(Ключ, Значение); + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + // примитивные типы + Для Каждого НастройкаОтбора Из СтруктураНастроекВнешнегоСоединения Цикл + + Если ТипЗнч(НастройкаОтбора.Значение) = Тип("Структура") Тогда + + РезультатВложенный = Результат[НастройкаОтбора.Ключ]; + + Если РезультатВложенный = Неопределено Тогда + + РезультатВложенный = Новый Структура; + + КонецЕсли; + + Для Каждого Элемент Из НастройкаОтбора.Значение Цикл + + Если СтрНайти(Элемент.Ключ, "_Ключ") <> 0 Тогда + + Продолжить; + + ИначеЕсли НастройкаОтбора.Значение.Свойство(Элемент.Ключ + "_Ключ") Тогда + + Продолжить; + + КонецЕсли; + + Массив = Новый Массив; + + Для Каждого ЭлементМассива Из Элемент.Значение Цикл + + Массив.Добавить(ЭлементМассива); + + КонецЦикла; + + РезультатВложенный.Вставить(Элемент.Ключ, Массив); + + КонецЦикла; + + Иначе + + Если СтрНайти(НастройкаОтбора.Ключ, "_Ключ") <> 0 Тогда + + Продолжить; + + ИначеЕсли СтруктураНастроекВнешнегоСоединения.Свойство(НастройкаОтбора.Ключ + "_Ключ") Тогда + + Продолжить; + + КонецЕсли; + + // Экранирование перечисления + Если ТипЗнч(НастройкаОтбора.Значение) = Тип("Строка") + И ( СтрНайти(НастройкаОтбора.Значение, "Перечисление.") <> 0 + ИЛИ СтрНайти(НастройкаОтбора.Значение, "Enumeration.") <> 0) Тогда + + Результат.Вставить(НастройкаОтбора.Ключ, ПредопределенноеЗначение(НастройкаОтбора.Значение)); + + Иначе + + Результат.Вставить(НастройкаОтбора.Ключ, НастройкаОтбора.Значение); + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + Возврат Результат; +КонецФункции + +Функция ПараметрыИнформационнойБазы(Знач ИмяПланаОбмена, Знач КодУзла, СообщениеОбОшибке) Экспорт + + Результат = Новый Структура; + + Результат.Вставить("ПланОбменаСуществует", Ложь); + Результат.Вставить("ПрефиксИнформационнойБазы", ""); + Результат.Вставить("ПрефиксИнформационнойБазыПоУмолчанию", ""); + Результат.Вставить("НаименованиеИнформационнойБазы", ""); + Результат.Вставить("НаименованиеИнформационнойБазыПоУмолчанию", ""); + Результат.Вставить("НастройкиПараметровУчетаЗаданы", Ложь); + Результат.Вставить("КодЭтогоУзла", ""); + // Начиная с версии БСП 2.1.5.1. + Результат.Вставить("ВерсияКонфигурации", Метаданные.Версия); + // Начиная с версии БСП 2.4.2(?). + Результат.Вставить("УзелСуществует", Ложь); + // Начиная с версии БСП 3.0.1.1. + Результат.Вставить("ВерсияФорматаНастроекОбменаДанными", МодульПомощникСозданияОбменаДанными().ВерсияФорматаНастроекОбменаДанными()); + Результат.Вставить("ИспользоватьПрефиксыДляНастройкиОбмена", Истина); + Результат.Вставить("ФорматОбмена", ""); + Результат.Вставить("ИмяПланаОбмена", ИмяПланаОбмена); + Результат.Вставить("ВерсииФорматаОбмена", Новый Массив); + Результат.Вставить("ПоддерживаемыеОбъектыФормата", Неопределено); + + Результат.Вставить("НастройкаСинхронизацииДанныхЗавершена", Ложь); + Результат.Вставить("ПолученоСообщениеДляСопоставленияДанных", Ложь); + Результат.Вставить("ПоддерживаетсяСопоставлениеДанных", Истина); + + УстановитьПривилегированныйРежим(Истина); + + Результат.ПланОбменаСуществует = (Метаданные.ПланыОбмена.Найти(ИмяПланаОбмена) <> Неопределено); + + Если Не Результат.ПланОбменаСуществует Тогда + // В качестве имени плана обмена м.б. передан формат обмена. + Для Каждого ПланОбмена Из ОбменДаннымиПовтИсп.ПланыОбменаБСП() Цикл + Если Не ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(ПланОбмена) Тогда + Продолжить; + КонецЕсли; + + ФорматОбмена = ЗначениеНастройкиПланаОбмена(ПланОбмена, "ФорматОбмена"); + Если ИмяПланаОбмена = ФорматОбмена Тогда + Результат.ПланОбменаСуществует = Истина; + Результат.ИмяПланаОбмена = ПланОбмена; + Прервать; + КонецЕсли; + КонецЦикла; + КонецЕсли; + + Если Не Результат.ПланОбменаСуществует Тогда + Возврат Результат; + КонецЕсли; + + ЭтотУзел = ПланыОбмена[Результат.ИмяПланаОбмена].ЭтотУзел(); + + СвойстваЭтогоУзла = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЭтотУзел, "Код, Наименование"); + + ПрефиксИнформационнойБазы = Неопределено; + ОбменДаннымиПереопределяемый.ПриОпределенииПрефиксаИнформационнойБазыПоУмолчанию(ПрефиксИнформационнойБазы); + + УзелКорреспондента = Неопределено; + Если ЗначениеЗаполнено(КодУзла) Тогда + УзелКорреспондента = УзелПланаОбменаПоКоду(Результат.ИмяПланаОбмена, КодУзла); + КонецЕсли; + + Результат.ПрефиксИнформационнойБазы = ПолучитьФункциональнуюОпцию("ПрефиксИнформационнойБазы"); + Результат.ПрефиксИнформационнойБазыПоУмолчанию = ПрефиксИнформационнойБазы; + Результат.НаименованиеИнформационнойБазы = СвойстваЭтогоУзла.Наименование; + Результат.УзелСуществует = ЗначениеЗаполнено(УзелКорреспондента); + Результат.НастройкиПараметровУчетаЗаданы = Результат.УзелСуществует + И НастройкиПараметровУчетаВСистемеУстановлены(Результат.ИмяПланаОбмена, КодУзла, СообщениеОбОшибке); + Результат.КодЭтогоУзла = СвойстваЭтогоУзла.Код; + Результат.ВерсияКонфигурации = Метаданные.Версия; + + Результат.НаименованиеИнформационнойБазыПоУмолчанию = ?(ОбщегоНазначения.РазделениеВключено(), + Метаданные.Синоним, ОбменДаннымиПовтИсп.ИмяЭтойИнформационнойБазы()); + + Если ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(Результат.ИмяПланаОбмена) Тогда + Результат.ИспользоватьПрефиксыДляНастройкиОбмена = + Не ОбменДаннымиXDTOСервер.ПоддерживаетсяВерсияСИдентификаторомОбменаДанными(ЭтотУзел); + + СвойстваПланаОбмена = ЗначениеНастройкиПланаОбмена(Результат.ИмяПланаОбмена, "ВерсииФорматаОбмена, ФорматОбмена"); + + Результат.ФорматОбмена = СвойстваПланаОбмена.ФорматОбмена; + Результат.ВерсииФорматаОбмена = ОбщегоНазначения.ВыгрузитьКолонку(СвойстваПланаОбмена.ВерсииФорматаОбмена, "Ключ", Истина); + + Результат.Вставить("ПоддерживаемыеОбъектыФормата", + ОбменДаннымиXDTOСервер.ПоддерживаемыеОбъектыФормата(Результат.ИмяПланаОбмена, "ОтправкаПолучение", УзелКорреспондента)); + КонецЕсли; + + Если Результат.УзелСуществует Тогда + Результат.НастройкаСинхронизацииДанныхЗавершена = НастройкаСинхронизацииЗавершена(УзелКорреспондента); + Результат.ПолученоСообщениеДляСопоставленияДанных = ПолученоСообщениеСДаннымиДляСопоставления(УзелКорреспондента); + Результат.ПоддерживаетсяСопоставлениеДанных = ЗначениеНастройкиПланаОбмена(Результат.ИмяПланаОбмена, + "ПоддерживаетсяСопоставлениеДанных", СохраненныйВариантНастройкиУзлаПланаОбмена(УзелКорреспондента)); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Возвращает Истина при необходимости обновления конфигурации информационной базы подчиненного узла РИБ. +// В главном узле всегда - Ложь. +// +// Копия функции ОбщегоНазначения.ТребуетсяОбновлениеКонфигурацииПодчиненногоУзлаРИБ. +// +Функция ТребуетсяУстановкаОбновления() Экспорт + + Возврат ЭтоПодчиненныйУзелРИБ() И КонфигурацияИзменена(); + +КонецФункции + + +#КонецОбласти + +#Область ОберткиДляРаботыСПрограммнымИнтерфейсомМенеджераПланаОбмена + +Функция НастройкаОтборовНаУзле(Знач ИмяПланаОбмена, Знач ВерсияКорреспондента, ИдентификаторНастройки = "") Экспорт + Если ПустаяСтрока(ВерсияКорреспондента) Тогда + ВерсияКорреспондента = "0.0.0.0"; + КонецЕсли; + ОписаниеВариантаНастройки = ОбменДаннымиПовтИсп.ОписаниеВариантаНастройки(ИмяПланаОбмена, + ИдентификаторНастройки, ВерсияКорреспондента); + + Результат = Неопределено; + Если ЗначениеЗаполнено(ОписаниеВариантаНастройки.Отборы) Тогда + Результат = ОписаниеВариантаНастройки.Отборы; + КонецЕсли; + + Если Результат = Неопределено Тогда + Результат = Новый Структура; + КонецЕсли; + + Возврат Результат; +КонецФункции + +Функция ОписаниеОграниченийПередачиДанных(Знач ИмяПланаОбмена, Знач Настройка, Знач ВерсияКорреспондента, + ИдентификаторНастройки = "") Экспорт + Если НЕ ЕстьАлгоритмМенеджераПланаОбмена("ОписаниеОграниченийПередачиДанных", ИмяПланаОбмена) Тогда + Возврат ""; + ИначеЕсли ПустаяСтрока(ВерсияКорреспондента) Тогда + ВерсияКорреспондента = "0.0.0.0"; + КонецЕсли; + + Возврат ПланыОбмена[ИмяПланаОбмена].ОписаниеОграниченийПередачиДанных(Настройка, ВерсияКорреспондента, ИдентификаторНастройки); + +КонецФункции + +// Возвращает признак, предусмотрен ли указанная процедура / функция в модуле менеджера плана обмена. +// Вычисляется по настройкам плана обмена, свойство Алгоритмы (см. комментарий НастройкиПланаОбменаПоУмолчанию). +// Параметры: +// ИмяАлгоритма - Строка - Имя процедуры / функции. +// ИмяПланаОбмена - Строка - Имя плана обмена. +// Возвращаемое значение: +// Булево. +// +Функция ЕстьАлгоритмМенеджераПланаОбмена(ИмяАлгоритма, ИмяПланаОбмена) Экспорт + + НастройкиПланаОбмена = ОбменДаннымиПовтИсп.НастройкиПланаОбмена(ИмяПланаОбмена); + + АлгоритмНайден = Неопределено; + НастройкиПланаОбмена.Алгоритмы.Свойство(ИмяАлгоритма, АлгоритмНайден); + + Возврат (АлгоритмНайден = Истина); + +КонецФункции + #КонецОбласти #Область ПрогрессБар @@ -2598,18 +3201,6 @@ #Область Прочее -// Возвращает строку недопустимых символов в имени пользователя, -// используемого для аутентификации при создании WSПрокси. -// -// Возвращаемое значение: -// Строка - строка недопустимых символов в имени пользователя. -// -Функция НедопустимыеСимволыВИмениПользователяWSПрокси() Экспорт - - Возврат ":"; - -КонецФункции - Функция ИдентификаторЭтогоУзлаДляОбмена(УзелОбмена) Экспорт ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелОбмена); @@ -3209,55 +3800,6 @@ КонецФункции -// Предназначена для перевода паролей в безопасное хранилище. -// Используется в обработчике обновления ИБ. -Процедура ПеренестиПаролиВБезопасноеХранилище() Экспорт - - Запрос = Новый Запрос( - "ВЫБРАТЬ - | НастройкиТранспорта.УзелИнформационнойБазы, - | НастройкиТранспорта.УдалитьCOMПарольПользователя, - | НастройкиТранспорта.УдалитьFTPСоединениеПароль, - | НастройкиТранспорта.УдалитьWSПароль, - | НастройкиТранспорта.УдалитьПарольАрхиваСообщенияОбмена - |ИЗ - | РегистрСведений.УдалитьНастройкиТранспортаОбмена КАК НастройкиТранспорта"); - - РезультатЗапроса = Запрос.Выполнить().Выбрать(); - Пока РезультатЗапроса.Следующий() Цикл - Если Не ПустаяСтрока(РезультатЗапроса.УдалитьCOMПарольПользователя) - Или Не ПустаяСтрока(РезультатЗапроса.УдалитьFTPСоединениеПароль) - Или Не ПустаяСтрока(РезультатЗапроса.УдалитьWSПароль) - Или Не ПустаяСтрока(РезультатЗапроса.УдалитьПарольАрхиваСообщенияОбмена) Тогда - НачатьТранзакцию(); - Попытка - УстановитьПривилегированныйРежим(Истина); - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(РезультатЗапроса.УзелИнформационнойБазы, РезультатЗапроса.УдалитьCOMПарольПользователя, "COMПарольПользователя"); - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(РезультатЗапроса.УзелИнформационнойБазы, РезультатЗапроса.УдалитьFTPСоединениеПароль, "FTPСоединениеПароль"); - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(РезультатЗапроса.УзелИнформационнойБазы, РезультатЗапроса.УдалитьWSПароль, "WSПароль"); - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(РезультатЗапроса.УзелИнформационнойБазы, РезультатЗапроса.УдалитьПарольАрхиваСообщенияОбмена, "ПарольАрхиваСообщенияОбмен"); - УстановитьПривилегированныйРежим(Ложь); - - СтруктураЗаписи = Новый Структура("УзелИнформационнойБазы", РезультатЗапроса.УзелИнформационнойБазы); - СтруктураЗаписи.Вставить("УдалитьCOMПарольПользователя", ""); - СтруктураЗаписи.Вставить("УдалитьFTPСоединениеПароль", ""); - СтруктураЗаписи.Вставить("УдалитьWSПароль", ""); - СтруктураЗаписи.Вставить("УдалитьПарольАрхиваСообщенияОбмена", ""); - - ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "УдалитьНастройкиТранспортаОбмена"); - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - - СтрокаСообщенияОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОбменДанными(), УровеньЖурналаРегистрации.Ошибка,,, СтрокаСообщенияОбОшибке); - КонецПопытки; - КонецЕсли; - КонецЦикла; - -КонецПроцедуры - #КонецОбласти #Область ОбработчикиСобытийПодсистемКонфигурации @@ -3269,47 +3811,6 @@ Обработчик.Версия = "*"; Обработчик.Процедура = "ОбменДаннымиСервер.УстановитьКодыПредопределенныхУзлов"; Обработчик.РежимВыполнения = "Оперативно"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.1.1.2"; - Обработчик.Процедура = "ОбменДаннымиСервер.УстановитьНеобходимостьВыполненияКорректировкиИнформацииСопоставленияДляВсехУзловИнформационнойБазы"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.1.1.2"; - Обработчик.Процедура = "ОбменДаннымиСервер.УстановитьРежимВыгрузкиОбъектовДляВсехУзловИнформационнойБазы"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.1.1.2"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.Процедура = "ОбменДаннымиСервер.ОбновитьРегламентныеЗаданияСценариевОбменовДанными"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.1.2.0"; - Обработчик.Процедура = "ОбменДаннымиСервер.ОбновитьКонстантуНастройкаПодчиненногоУзлаРИБЗавершена"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.0.1.10"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.Процедура = "ОбменДаннымиСервер.ПроверитьУстановкуФункциональныхОпцийПриОбновленииИБ"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.1.5"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.Процедура = "ОбменДаннымиСервер.УстановитьПризнакСохраненияПароляДляОбменаЧерезИнтернет"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.2.12"; - Обработчик.Процедура = "ОбменДаннымиСервер.СброситьНастройкиМонитораОбмена"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.2.21"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.Процедура = "ОбменДаннымиСервер.ПроверитьУстановкуФункциональныхОпцийПриОбновленииИБ_2_1_2_21"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.2.4"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.Процедура = "ОбменДаннымиСервер.УстановитьКоличествоЭлементовВТранзакцииЗагрузкиДанных_2_2_2_4"; Обработчик = Обработчики.Добавить(); Обработчик.Версия = "2.4.1.1"; @@ -3362,7 +3863,7 @@ Обработчик.БлокируемыеОбъекты = "РегистрСведений.НастройкиОбменаДаннымиXDTO"; Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "3.0.2.207"; + Обработчик.Версия = "3.1.1.22"; Обработчик.Комментарий = НСтр("ru = 'Перенос результатов выполнения обменов данными в новый регистр.'"); Обработчик.Идентификатор = Новый УникальныйИдентификатор("012c28d7-bbe8-494f-87f7-620ffe5c99e2"); @@ -3580,10 +4081,10 @@ Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() - И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда - МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); КодИзМоделиСервиса = СокрЛП(МодульОбменДаннымиВМоделиСервиса.КодУзлаПланаОбменаВСервисе(МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса())); @@ -3659,6 +4160,100 @@ КонецПроцедуры +#КонецОбласти + +#Область ФункцииСвойства + +Функция СобытиеЖурналаРегистрацииУстановкаПодключенияКWebСервису() Экспорт + + Возврат НСтр("ru = 'Обмен данными.Установка подключения к web-сервису'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +Функция СобытиеЖурналаРегистрацииЗагрузкаПравилДляОбменаДанными() Экспорт + + Возврат НСтр("ru = 'Обмен данными.Загрузка правил'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +Функция СобытиеЖурналаРегистрацииСозданиеОбменаДанными() Экспорт + + Возврат НСтр("ru = 'Обмен данными.Создание обмена данными'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +Функция СобытиеЖурналаРегистрацииУдалениеОбменаДанными() Экспорт + + Возврат НСтр("ru = 'Обмен данными.Удаление обмена данными'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +Функция СобытиеЖурналаРегистрацииРегистрацияДанныхДляНачальнойВыгрузки() Экспорт + + Возврат НСтр("ru = 'Обмен данными.Регистрация данных для начальной выгрузки'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +Функция СобытиеЖурналаРегистрацииВыгрузкаДанныхДляСопоставления() Экспорт + + Возврат НСтр("ru = 'Обмен данными.Выгрузка данных для сопоставления'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +Функция СобытиеЖурналаРегистрацииУдалениеВременногоФайла() Экспорт + + Возврат НСтр("ru = 'Обмен данными.Удаление временного файла'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +Функция СобытиеЖурналаРегистрацииОбменДанными() Экспорт + + Возврат НСтр("ru = 'Обмен данными'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +Функция СобытиеЖурналаРегистрацииВыгрузкаДанныхВСервисПередачиФайлов() Экспорт + + Возврат НСтр("ru = 'Обмен данными.Сервис передачи файлов.Выгрузка данных'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +Функция СобытиеЖурналаРегистрацииЗагрузкаДанныхИзСервисаПередачиФайлов() Экспорт + + Возврат НСтр("ru = 'Обмен данными.Сервис передачи файлов.Загрузка данных'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +#КонецОбласти + +#Область ИнициализацияСтруктурыНастроекОбмена + +Функция ПсевдонимПредопределенногоУзла(УзелКорреспондента) Экспорт + + Если Не ЭтоПланОбменаXDTO(УзелКорреспондента) Тогда + Возврат ""; + КонецЕсли; + + Запрос = Новый Запрос( + "ВЫБРАТЬ + | ПсевдонимыПредопределенныхУзлов.КодУзла КАК КодУзла + |ИЗ + | РегистрСведений.ПсевдонимыПредопределенныхУзлов КАК ПсевдонимыПредопределенныхУзлов + |ГДЕ + | ПсевдонимыПредопределенныхУзлов.Корреспондент = &УзелИнформационнойБазы"); + Запрос.УстановитьПараметр("УзелИнформационнойБазы", УзелКорреспондента); + + ПсевдонимПредопределенногоУзла = ""; + + Выборка = Запрос.Выполнить().Выбрать(); + Если Выборка.Следующий() Тогда + ПсевдонимПредопределенногоУзла = СокрЛП(Выборка.КодУзла); + КонецЕсли; + + Возврат ПсевдонимПредопределенногоУзла; + +КонецФункции + #КонецОбласти #КонецОбласти @@ -3667,7 +4262,7 @@ Функция МодульПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете() Экспорт - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда Возврат ОбщегоНазначения.ОбщийМодуль("Обработки.ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете"); КонецЕсли; @@ -3677,7 +4272,7 @@ Функция МодульПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса() Экспорт - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда Возврат ОбщегоНазначения.ОбщийМодуль("Обработки.ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса"); КонецЕсли; @@ -3697,36 +4292,6 @@ КонецФункции -Функция ПолученоСообщениеСДаннымиДляСопоставления(УзелОбмена) Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Запрос = Новый Запрос( - "ВЫБРАТЬ - | СообщенияДляСопоставленияДанных.ПолученоСообщениеДляСопоставленияДанных КАК ПолученоСообщениеДляСопоставленияДанных - |ИЗ - | #ТаблицаПланаОбмена КАК ТаблицаПланаОбмена - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ СообщенияДляСопоставленияДанных КАК СообщенияДляСопоставленияДанных - | ПО (СообщенияДляСопоставленияДанных.УзелИнформационнойБазы = ТаблицаПланаОбмена.Ссылка) - |ГДЕ - | ТаблицаПланаОбмена.Ссылка = &УзелОбмена"); - Запрос.УстановитьПараметр("УзелОбмена", УзелОбмена); - Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; - - Запрос.Текст = СтрЗаменить(Запрос.Текст, "#ТаблицаПланаОбмена", "ПланОбмена." + ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелОбмена)); - - ПолучитьСообщенияДляСопоставленияДанных(Запрос.МенеджерВременныхТаблиц); - - Выборка = Запрос.Выполнить().Выбрать(); - - Если Выборка.Следующий() Тогда - Возврат Выборка.ПолученоСообщениеДляСопоставленияДанных; - КонецЕсли; - - Возврат Ложь; - -КонецФункции - Функция ПредопределенныеУзлыПлановОбменаБСП() Результат = Новый Массив; @@ -3748,13 +4313,6 @@ КонецПроцедуры -Процедура ПриПродолженииНастройкиПодчиненногоУзлаРИБ() Экспорт - - ИнтеграцияПодсистемБСП.ПриНастройкеПодчиненногоУзлаРИБ(); - ОбменДаннымиПереопределяемый.ПриНастройкеПодчиненногоУзлаРИБ(); - -КонецПроцедуры - Процедура ПроверитьНедопустимыеСимволыВИмениПользователяWSПрокси(Знач ИмяПользователя) НедопустимыеСимволы = НедопустимыеСимволыВИмениПользователяWSПрокси(); @@ -3866,208 +4424,6 @@ #Область ОбновлениеИнформационнойБазы -// Устанавливает признак того, что для всех узлов планов обмена необходимо выполнить процедуру -// корректировки информации сопоставления при следующем обмене данными. -// -Процедура УстановитьНеобходимостьВыполненияКорректировкиИнформацииСопоставленияДляВсехУзловИнформационнойБазы() Экспорт - - РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.УстановитьНеобходимостьВыполненияКорректировкиИнформацииСопоставленияДляВсехУзловИнформационнойБазы(); - -КонецПроцедуры - -// Устанавливает для всех узлов универсального обмена данными значения реквизитов-флагов режимов выгрузки значение -// "Выгружать по условию". -// -Процедура УстановитьРежимВыгрузкиОбъектовДляВсехУзловИнформационнойБазы() Экспорт - - Для Каждого ИмяПланаОбмена Из ОбменДаннымиПовтИсп.ПланыОбменаБСП() Цикл - - Если ОбменДаннымиПовтИсп.ЭтоПланОбменаРаспределеннойИнформационнойБазы(ИмяПланаОбмена) Тогда - Продолжить; - КонецЕсли; - - Для Каждого Узел Из УзлыПланаОбмена(ИмяПланаОбмена) Цикл - - ИменаРеквизитов = ОбщегоНазначения.ИменаРеквизитовПоТипу(Узел, Тип("ПеречислениеСсылка.РежимыВыгрузкиОбъектовОбмена")); - - Если ПустаяСтрока(ИменаРеквизитов) Тогда - Продолжить; - КонецЕсли; - - ИменаРеквизитов = СтрЗаменить(ИменаРеквизитов, " ", ""); - - Реквизиты = СтрРазделить(ИменаРеквизитов, ","); - - ОбъектМодифицирован = Ложь; - - УзелОбъект = Узел.ПолучитьОбъект(); - - Для Каждого ИмяРеквизита Из Реквизиты Цикл - - Если Не ЗначениеЗаполнено(УзелОбъект[ИмяРеквизита]) Тогда - - УзелОбъект[ИмяРеквизита] = Перечисления.РежимыВыгрузкиОбъектовОбмена.ВыгружатьПоУсловию; - - ОбъектМодифицирован = Истина; - - КонецЕсли; - - КонецЦикла; - - Если ОбъектМодифицирован Тогда - - УзелОбъект.ДополнительныеСвойства.Вставить("ПолучениеСообщенияОбмена"); - УзелОбъект.Записать(); - - КонецЕсли; - - КонецЦикла; - - КонецЦикла; - -КонецПроцедуры - -// Обновляет данные регламентных заданий для всех сценариев обменов данных, кроме помеченных на удаление. -// -Процедура ОбновитьРегламентныеЗаданияСценариевОбменовДанными() Экспорт - - ТекстЗапроса = " - |ВЫБРАТЬ - | СценарииОбменовДанными.Ссылка - |ИЗ - | Справочник.СценарииОбменовДанными КАК СценарииОбменовДанными - |ГДЕ - | НЕ СценарииОбменовДанными.ПометкаУдаления - |"; - - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса; - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - - Отказ = Ложь; - - Объект = Выборка.Ссылка.ПолучитьОбъект(); - - Справочники.СценарииОбменовДанными.ОбновитьДанныеРегламентногоЗадания(Отказ, Неопределено, Объект); - - Если Отказ Тогда - ВызватьИсключение НСтр("ru = 'Ошибка при обновлении регламентного задания для сценария обмена данными.'"); - КонецЕсли; - - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); - - КонецЦикла; - -КонецПроцедуры - -// Устанавливает значение константы НастройкаПодчиненногоУзлаРИБЗавершена в Истина для подчиненного узла РИБ, -// т.к. в базе уже настроен обмен в РИБ по факту. -// -Процедура ОбновитьКонстантуНастройкаПодчиненногоУзлаРИБЗавершена() Экспорт - - Если ЭтоПодчиненныйУзелРИБ() - И РегистрыСведений.НастройкиТранспортаОбменаДанными.НастройкиТранспортаДляУзлаЗаданы(ГлавныйУзел()) Тогда - - Константы.НастройкаПодчиненногоУзлаРИБЗавершена.Установить(Истина); - - ОбновитьПовторноИспользуемыеЗначения(); - - КонецЕсли; - -КонецПроцедуры - -// Переустанавливает значение константы ИспользоватьСинхронизациюДанных при необходимости. -// -Процедура ПроверитьУстановкуФункциональныхОпцийПриОбновленииИБ() Экспорт - - Если Константы.ИспользоватьСинхронизациюДанных.Получить() Тогда - - Константы.ИспользоватьСинхронизациюДанных.Установить(Истина); - - КонецЕсли; - -КонецПроцедуры - -// Переустанавливает значение константы ИспользоватьСинхронизациюДанных при необходимости. -// Т.к. константа стала неразделенной и ее значение сбросилось. -// -Процедура ПроверитьУстановкуФункциональныхОпцийПриОбновленииИБ_2_1_2_21() Экспорт - - Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных") Тогда - - Если ОбщегоНазначения.РазделениеВключено() Тогда - - Константы.ИспользоватьСинхронизациюДанных.Установить(Истина); - - Иначе - - Если ПолучитьИспользуемыеПланыОбмена().Количество() > 0 Тогда - - Константы.ИспользоватьСинхронизациюДанных.Установить(Истина); - - КонецЕсли; - - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - -// Устанавливает количество элементов в транзакции загрузки данных равным единице. -// -Процедура УстановитьКоличествоЭлементовВТранзакцииЗагрузкиДанных_2_2_2_4() Экспорт - - УстановитьКоличествоЭлементовВТранзакцииЗагрузкиДанных(1); - -КонецПроцедуры - -// Устанавливает значение реквизита WSЗапомнитьПароль в РС.УдалитьНастройкиТранспортаОбмена в значение Истина. -// -Процедура УстановитьПризнакСохраненияПароляДляОбменаЧерезИнтернет() Экспорт - - ТекстЗапроса = - "ВЫБРАТЬ - | НастройкиТранспорта.УзелИнформационнойБазы КАК УзелИнформационнойБазы - |ИЗ - | РегистрСведений.УдалитьНастройкиТранспортаОбмена КАК НастройкиТранспорта - |ГДЕ - | НастройкиТранспорта.ВидТранспортаСообщенийОбменаПоУмолчанию = ЗНАЧЕНИЕ(Перечисление.ВидыТранспортаСообщенийОбмена.WS)"; - - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса; - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - - СтруктураЗаписи = Новый Структура; - СтруктураЗаписи.Вставить("УзелИнформационнойБазы", Выборка.УзелИнформационнойБазы); - СтруктураЗаписи.Вставить("WSЗапомнитьПароль", Истина); - - ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "УдалитьНастройкиТранспортаОбмена"); - - КонецЦикла; - -КонецПроцедуры - -// Очищает сохраненные настройки общей формы СинхронизацияДанных. -// -Процедура СброситьНастройкиМонитораОбмена() Экспорт - - МассивНастроекФормы = Новый Массив; - МассивНастроекФормы.Добавить("/НастройкиФормы"); - МассивНастроекФормы.Добавить("/НастройкиОкна"); - МассивНастроекФормы.Добавить("/НастройкиОкнаВебКлиента"); - МассивНастроекФормы.Добавить("/ТекущиеДанные"); - - Для Каждого ЭлементФормы Из МассивНастроекФормы Цикл - ХранилищеСистемныхНастроек.Удалить("ОбщаяФорма.СинхронизацияДанных" + ЭлементФормы, Неопределено, Неопределено); - КонецЦикла; - -КонецПроцедуры - // Удаляет роль НастройкаСинхронизацииДанных из всех профилей, в которые она входит. Процедура УдалитьРольНастройкаСинхронизацииДанных() Экспорт @@ -4839,7 +5195,7 @@ СтруктураЗаписи.Вставить("УзелИнформационнойБазы", Выборка.УзелИнформационнойБазы); СтруктураЗаписи.Вставить("СообщениеДляСопоставленияДанных", ""); - ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "ОбщиеНастройкиУзловИнформационныхБаз"); + ОбменДаннымиСлужебный.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "ОбщиеНастройкиУзловИнформационныхБаз"); КонецЕсли; КонецЦикла; @@ -4847,7 +5203,7 @@ КонецЕсли; // Удаляем неактуальные сообщения обмена, отмеченные в РС.СообщенияОбменаДаннымиОбластейДанных. - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); МодульОбменДаннымиВМоделиСервиса.ПриУдаленииНеактуальныхСообщенийОбмена(); КонецЕсли; @@ -7128,66 +7484,6 @@ КонецФункции -Функция СобытиеЖурналаРегистрацииУстановкаПодключенияКWebСервису() Экспорт - - Возврат НСтр("ru = 'Обмен данными.Установка подключения к web-сервису'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -Функция СобытиеЖурналаРегистрацииЗагрузкаПравилДляОбменаДанными() Экспорт - - Возврат НСтр("ru = 'Обмен данными.Загрузка правил'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -Функция СобытиеЖурналаРегистрацииСозданиеОбменаДанными() Экспорт - - Возврат НСтр("ru = 'Обмен данными.Создание обмена данными'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -Функция СобытиеЖурналаРегистрацииУдалениеОбменаДанными() Экспорт - - Возврат НСтр("ru = 'Обмен данными.Удаление обмена данными'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -Функция СобытиеЖурналаРегистрацииРегистрацияДанныхДляНачальнойВыгрузки() Экспорт - - Возврат НСтр("ru = 'Обмен данными.Регистрация данных для начальной выгрузки'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -Функция СобытиеЖурналаРегистрацииВыгрузкаДанныхДляСопоставления() Экспорт - - Возврат НСтр("ru = 'Обмен данными.Выгрузка данных для сопоставления'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -Функция СобытиеЖурналаРегистрацииУдалениеВременногоФайла() Экспорт - - Возврат НСтр("ru = 'Обмен данными.Удаление временного файла'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -Функция СобытиеЖурналаРегистрацииОбменДанными() Экспорт - - Возврат НСтр("ru = 'Обмен данными'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -Функция СобытиеЖурналаРегистрацииВыгрузкаДанныхВСервисПередачиФайлов() Экспорт - - Возврат НСтр("ru = 'Обмен данными.Сервис передачи файлов.Выгрузка данных'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -Функция СобытиеЖурналаРегистрацииЗагрузкаДанныхИзСервисаПередачиФайлов() Экспорт - - Возврат НСтр("ru = 'Обмен данными.Сервис передачи файлов.Загрузка данных'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - #КонецОбласти #Область ТранспортСообщенийОбмена @@ -7997,37 +8293,6 @@ #Область ОберткиДляРаботыСПрограммнымИнтерфейсомМенеджераПланаОбмена -Функция НастройкаОтборовНаУзле(Знач ИмяПланаОбмена, Знач ВерсияКорреспондента, ИдентификаторНастройки = "") Экспорт - Если ПустаяСтрока(ВерсияКорреспондента) Тогда - ВерсияКорреспондента = "0.0.0.0"; - КонецЕсли; - ОписаниеВариантаНастройки = ОбменДаннымиПовтИсп.ОписаниеВариантаНастройки(ИмяПланаОбмена, - ИдентификаторНастройки, ВерсияКорреспондента); - - Результат = Неопределено; - Если ЗначениеЗаполнено(ОписаниеВариантаНастройки.Отборы) Тогда - Результат = ОписаниеВариантаНастройки.Отборы; - КонецЕсли; - - Если Результат = Неопределено Тогда - Результат = Новый Структура; - КонецЕсли; - - Возврат Результат; -КонецФункции - -Функция ОписаниеОграниченийПередачиДанных(Знач ИмяПланаОбмена, Знач Настройка, Знач ВерсияКорреспондента, - ИдентификаторНастройки = "") Экспорт - Если НЕ ЕстьАлгоритмМенеджераПланаОбмена("ОписаниеОграниченийПередачиДанных", ИмяПланаОбмена) Тогда - Возврат ""; - ИначеЕсли ПустаяСтрока(ВерсияКорреспондента) Тогда - ВерсияКорреспондента = "0.0.0.0"; - КонецЕсли; - - Возврат ПланыОбмена[ИмяПланаОбмена].ОписаниеОграниченийПередачиДанных(Настройка, ВерсияКорреспондента, ИдентификаторНастройки); - -КонецФункции - Функция ОбщиеДанныеУзлов(Знач ИмяПланаОбмена, Знач ВерсияКорреспондента, Знач ИдентификаторНастройки) Экспорт Если ПустаяСтрока(ВерсияКорреспондента) Тогда @@ -8124,24 +8389,6 @@ ВерсияКорреспондента,ИмяКорреспондента); КонецФункции -// Возвращает признак, предусмотрен ли указанная процедура / функция в модуле менеджера плана обмена. -// Вычисляется по настройкам плана обмена, свойство Алгоритмы (см. комментарий НастройкиПланаОбменаПоУмолчанию). -// Параметры: -// ИмяАлгоритма - Строка - Имя процедуры / функции. -// ИмяПланаОбмена - Строка - Имя плана обмена. -// Возвращаемое значение: -// Булево. -// -Функция ЕстьАлгоритмМенеджераПланаОбмена(ИмяАлгоритма, ИмяПланаОбмена) Экспорт - - НастройкиПланаОбмена = ОбменДаннымиПовтИсп.НастройкиПланаОбмена(ИмяПланаОбмена); - - АлгоритмНайден = Неопределено; - НастройкиПланаОбмена.Алгоритмы.Свойство(ИмяАлгоритма, АлгоритмНайден); - - Возврат (АлгоритмНайден = Истина); - -КонецФункции #КонецОбласти #Область РаботаСПаролямиСинхронизацииДанных @@ -8224,7 +8471,7 @@ ПолноеИмя = Объект.Метаданные().ПолноеИмя(); - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ЭтоРазделенныйОбъектМетаданных = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ПолноеИмя); Иначе @@ -9593,32 +9840,6 @@ КонецФункции -Функция ПсевдонимПредопределенногоУзла(УзелКорреспондента) Экспорт - - Если Не ЭтоПланОбменаXDTO(УзелКорреспондента) Тогда - Возврат ""; - КонецЕсли; - - Запрос = Новый Запрос( - "ВЫБРАТЬ - | ПсевдонимыПредопределенныхУзлов.КодУзла КАК КодУзла - |ИЗ - | РегистрСведений.ПсевдонимыПредопределенныхУзлов КАК ПсевдонимыПредопределенныхУзлов - |ГДЕ - | ПсевдонимыПредопределенныхУзлов.Корреспондент = &УзелИнформационнойБазы"); - Запрос.УстановитьПараметр("УзелИнформационнойБазы", УзелКорреспондента); - - ПсевдонимПредопределенногоУзла = ""; - - Выборка = Запрос.Выполнить().Выбрать(); - Если Выборка.Следующий() Тогда - ПсевдонимПредопределенногоУзла = СокрЛП(Выборка.КодУзла); - КонецЕсли; - - Возврат ПсевдонимПредопределенногоУзла; - -КонецФункции - Процедура ПроверитьКодыУзлов(РезультатАнализаДанныхКЗагрузке, УзелИнформационнойБазы) Экспорт Если НЕ ЭтоПланОбменаXDTO(УзелИнформационнойБазы) Тогда Возврат; @@ -9646,7 +9867,7 @@ ИмяПланаОбмена = УзелИнформационнойБазы.Метаданные().Имя; КодПредопределенногоУзла = КодПредопределенногоУзлаПланаОбмена(ИмяПланаОбмена); Если СокрЛП(КодПредопределенногоУзла) = РезультатАнализаДанныхКЗагрузке.To Тогда - УдалитьНаборЗаписейВРегистреСведений(Новый Структура("Корреспондент", УзелИнформационнойБазы), + ОбменДаннымиСлужебный.УдалитьНаборЗаписейВРегистреСведений(Новый Структура("Корреспондент", УзелИнформационнойБазы), "ПсевдонимыПредопределенныхУзлов"); КонецЕсли; КонецЕсли; @@ -10010,7 +10231,7 @@ Для Каждого ИмяПланаОбмена Из ПланыОбменаМассив Цикл - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ЭтоРазделенныйОбъектМетаданных = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных("ПланОбмена." + ИмяПланаОбмена); Иначе @@ -10029,7 +10250,7 @@ Для Каждого ИмяПланаОбмена Из ПланыОбменаМассив Цикл - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ЭтоРазделенныйОбъектМетаданных = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных("ПланОбмена." + ИмяПланаОбмена); Иначе @@ -10097,7 +10318,7 @@ Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл - НаборЗаписей = СоздатьНаборЗаписейРегистраСведений(Новый Структура("ИмяПланаОбмена", Выборка.ИмяПланаОбмена), + НаборЗаписей = ОбменДаннымиСлужебный.СоздатьНаборЗаписейРегистраСведений(Новый Структура("ИмяПланаОбмена", Выборка.ИмяПланаОбмена), "ПравилаДляОбменаДанными"); НаборЗаписей.Записать(); @@ -10606,16 +10827,6 @@ КонецФункции -Процедура ПроверитьВозможностьАдминистрированияОбменов() Экспорт - - Если Не ЕстьПраваНаАдминистрированиеОбменов() Тогда - - ВызватьИсключение НСтр("ru = 'Недостаточно прав для администрирования синхронизации данных.'"); - - КонецЕсли; - -КонецПроцедуры - Процедура ПроверитьВозможностьВнешнегоСоединения() Если ОбщегоНазначения.ЭтоLinuxСервер() Тогда @@ -10627,37 +10838,6 @@ КонецПроцедуры -// Возвращает признак наличия у пользователя прав на выполнение синхронизации данных. -// Выполнять синхронизацию данных может, либо полноправный пользователь, -// либо пользователь с правами поставляемого профиля "Синхронизация данных с другими программами". -// -// Параметры: -// Пользователь (необязательный) - ПользовательИнформационнойБазы, Неопределено. -// Пользователь, для которого необходимо вычислить признак разрешения использования синхронизации данных. -// Если параметр не задан, то функция вычисляется для текущего пользователя информационной базы. -// -Функция СинхронизацияДанныхРазрешена(Знач Пользователь = Неопределено) Экспорт - - Если Пользователь = Неопределено Тогда - Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь(); - КонецЕсли; - - Если Пользователь.Роли.Содержит(Метаданные.Роли.ПолныеПрава) Тогда - Возврат Истина; - КонецЕсли; - - РолиПрофиля = СтрРазделить(РолиПрофиляДоступаСинхронизацияДанныхСДругимиПрограммами(), ","); - Для Каждого Роль Из РолиПрофиля Цикл - - Если Не Пользователь.Роли.Содержит(Метаданные.Роли.Найти(СокрЛП(Роль))) Тогда - Возврат Ложь; - КонецЕсли; - - КонецЦикла; - - Возврат Истина; -КонецФункции - // Заполняет список значений доступными видами транспорта для узла плана обмена. // Процедура ЗаполнитьСписокВыбораДоступнымиВидамиТранспорта(УзелИнформационнойБазы, ЭлементФормы, Отбор = Неопределено) Экспорт @@ -11114,21 +11294,6 @@ Возврат Результат; КонецФункции -Функция КодУзлаПланаОбменаСтрокой(Значение) Экспорт - - Если ТипЗнч(Значение) = Тип("Строка") Тогда - - Возврат СокрЛП(Значение); - - ИначеЕсли ТипЗнч(Значение) = Тип("Число") Тогда - - Возврат Формат(Значение, "ЧЦ=7; ЧВН=; ЧГ=0"); - - КонецЕсли; - - Возврат Значение; -КонецФункции - Функция НаименованиеПредопределенногоУзлаПланаОбмена(ИмяПланаОбмена) Экспорт УстановитьПривилегированныйРежим(Истина); @@ -11144,7 +11309,7 @@ Знач ИмяСобытияЖурналаРегистрации, КоличествоОтправленныхОбъектов) - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменСообщениями") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОбменСообщениями") Тогда МодульОбменСообщениямиВнутренний = ОбщегоНазначения.ОбщийМодуль("ОбменСообщениямиВнутренний"); МодульОбменСообщениямиВнутренний.ПриВыгрузкеДанных( СтандартнаяОбработка, @@ -11185,7 +11350,7 @@ КоличествоПолученныхОбъектов) - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменСообщениями") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОбменСообщениями") Тогда МодульОбменСообщениямиВнутренний = ОбщегоНазначения.ОбщийМодуль("ОбменСообщениямиВнутренний"); МодульОбменСообщениямиВнутренний.ПриЗагрузкеДанных( СтандартнаяОбработка, @@ -11291,192 +11456,6 @@ КонецПроцедуры -Функция ПолучитьЗначенияНастройкиОтборов(СтруктураНастроекВнешнегоСоединения) Экспорт - - Результат = Новый Структура; - - // объектные типы - Для Каждого НастройкаОтбора Из СтруктураНастроекВнешнегоСоединения Цикл - - Если ТипЗнч(НастройкаОтбора.Значение) = Тип("Структура") Тогда - - РезультатВложенный = Новый Структура; - - Для Каждого Элемент Из НастройкаОтбора.Значение Цикл - - Если СтрНайти(Элемент.Ключ, "_Ключ") > 0 Тогда - - Ключ = СтрЗаменить(Элемент.Ключ, "_Ключ", ""); - - Массив = Новый Массив; - - Для Каждого ЭлементМассива Из Элемент.Значение Цикл - - Если Не ПустаяСтрока(ЭлементМассива) Тогда - - Значение = ЗначениеИзСтрокиВнутр(ЭлементМассива); - - Массив.Добавить(Значение); - - КонецЕсли; - - КонецЦикла; - - РезультатВложенный.Вставить(Ключ, Массив); - - КонецЕсли; - - КонецЦикла; - - Результат.Вставить(НастройкаОтбора.Ключ, РезультатВложенный); - - Иначе - - Если СтрНайти(НастройкаОтбора.Ключ, "_Ключ") > 0 Тогда - - Ключ = СтрЗаменить(НастройкаОтбора.Ключ, "_Ключ", ""); - - Попытка - Если ПустаяСтрока(НастройкаОтбора.Значение) Тогда - Значение = Неопределено; - Иначе - Значение = ЗначениеИзСтрокиВнутр(НастройкаОтбора.Значение); - КонецЕсли; - Исключение - Значение = Неопределено; - КонецПопытки; - - Результат.Вставить(Ключ, Значение); - - КонецЕсли; - - КонецЕсли; - - КонецЦикла; - - // примитивные типы - Для Каждого НастройкаОтбора Из СтруктураНастроекВнешнегоСоединения Цикл - - Если ТипЗнч(НастройкаОтбора.Значение) = Тип("Структура") Тогда - - РезультатВложенный = Результат[НастройкаОтбора.Ключ]; - - Если РезультатВложенный = Неопределено Тогда - - РезультатВложенный = Новый Структура; - - КонецЕсли; - - Для Каждого Элемент Из НастройкаОтбора.Значение Цикл - - Если СтрНайти(Элемент.Ключ, "_Ключ") <> 0 Тогда - - Продолжить; - - ИначеЕсли НастройкаОтбора.Значение.Свойство(Элемент.Ключ + "_Ключ") Тогда - - Продолжить; - - КонецЕсли; - - Массив = Новый Массив; - - Для Каждого ЭлементМассива Из Элемент.Значение Цикл - - Массив.Добавить(ЭлементМассива); - - КонецЦикла; - - РезультатВложенный.Вставить(Элемент.Ключ, Массив); - - КонецЦикла; - - Иначе - - Если СтрНайти(НастройкаОтбора.Ключ, "_Ключ") <> 0 Тогда - - Продолжить; - - ИначеЕсли СтруктураНастроекВнешнегоСоединения.Свойство(НастройкаОтбора.Ключ + "_Ключ") Тогда - - Продолжить; - - КонецЕсли; - - // Экранирование перечисления - Если ТипЗнч(НастройкаОтбора.Значение) = Тип("Строка") - И ( СтрНайти(НастройкаОтбора.Значение, "Перечисление.") <> 0 - ИЛИ СтрНайти(НастройкаОтбора.Значение, "Enumeration.") <> 0) Тогда - - Результат.Вставить(НастройкаОтбора.Ключ, ПредопределенноеЗначение(НастройкаОтбора.Значение)); - - Иначе - - Результат.Вставить(НастройкаОтбора.Ключ, НастройкаОтбора.Значение); - - КонецЕсли; - - КонецЕсли; - - КонецЦикла; - - Возврат Результат; -КонецФункции - -Функция ДанныеДляТабличныхЧастейУзловЭтойИнформационнойБазы(Знач ИмяПланаОбмена, ВерсияКорреспондента = "", ИдентификаторНастройки = "") Экспорт - - Результат = Новый Структура; - - ОбщиеТаблицыУзлов = ОбменДаннымиПовтИсп.ТабличныеЧастиПланаОбмена(ИмяПланаОбмена, ВерсияКорреспондента, ИдентификаторНастройки)["ВсеТаблицыЭтойБазы"]; - - Для Каждого ИмяТабличнойЧасти Из ОбщиеТаблицыУзлов Цикл - - ИмяТаблицы = ИмяТаблицыИзПервогоРеквизитаТабличнойЧастиПланаОбмена(ИмяПланаОбмена, ИмяТабличнойЧасти); - - Если Не ЗначениеЗаполнено(ИмяТаблицы) Тогда - Продолжить; - КонецЕсли; - - ДанныеТабличнойЧасти = Новый ТаблицаЗначений; - ДанныеТабличнойЧасти.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); - ДанныеТабличнойЧасти.Колонки.Добавить("УникальныйИдентификаторСсылки", Новый ОписаниеТипов("Строка")); - - ТекстЗапроса = - "ВЫБРАТЬ ПЕРВЫЕ 1000 - | Таблица.Ссылка КАК Ссылка, - | Таблица.Представление КАК Представление - |ИЗ - | [ИмяТаблицы] КАК Таблица - | - |ГДЕ - | НЕ Таблица.ПометкаУдаления - | - |УПОРЯДОЧИТЬ ПО - | Таблица.Представление"; - - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяТаблицы]", ИмяТаблицы); - - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса; - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - - СтрокаТаблицы = ДанныеТабличнойЧасти.Добавить(); - СтрокаТаблицы.Представление = Выборка.Представление; - СтрокаТаблицы.УникальныйИдентификаторСсылки = Строка(Выборка.Ссылка.УникальныйИдентификатор()); - - КонецЦикла; - - Результат.Вставить(ИмяТабличнойЧасти, ДанныеТабличнойЧасти); - - КонецЦикла; - - Возврат Результат; - -КонецФункции - Функция ИмяТаблицыИзПервогоРеквизитаТабличнойЧастиПланаОбмена(Знач ИмяПланаОбмена, Знач ИмяТабличнойЧасти) ТабличнаяЧасть = Метаданные.ПланыОбмена[ИмяПланаОбмена].ТабличныеЧасти[ИмяТабличнойЧасти]; @@ -11723,105 +11702,6 @@ Возврат Результат; КонецФункции -Функция ПараметрыИнформационнойБазы(Знач ИмяПланаОбмена, Знач КодУзла, СообщениеОбОшибке) Экспорт - - Результат = Новый Структура; - - Результат.Вставить("ПланОбменаСуществует", Ложь); - Результат.Вставить("ПрефиксИнформационнойБазы", ""); - Результат.Вставить("ПрефиксИнформационнойБазыПоУмолчанию", ""); - Результат.Вставить("НаименованиеИнформационнойБазы", ""); - Результат.Вставить("НаименованиеИнформационнойБазыПоУмолчанию", ""); - Результат.Вставить("НастройкиПараметровУчетаЗаданы", Ложь); - Результат.Вставить("КодЭтогоУзла", ""); - // Начиная с версии БСП 2.1.5.1. - Результат.Вставить("ВерсияКонфигурации", Метаданные.Версия); - // Начиная с версии БСП 2.4.2(?). - Результат.Вставить("УзелСуществует", Ложь); - // Начиная с версии БСП 3.0.1.1. - Результат.Вставить("ВерсияФорматаНастроекОбменаДанными", МодульПомощникСозданияОбменаДанными().ВерсияФорматаНастроекОбменаДанными()); - Результат.Вставить("ИспользоватьПрефиксыДляНастройкиОбмена", Истина); - Результат.Вставить("ФорматОбмена", ""); - Результат.Вставить("ИмяПланаОбмена", ИмяПланаОбмена); - Результат.Вставить("ВерсииФорматаОбмена", Новый Массив); - Результат.Вставить("ПоддерживаемыеОбъектыФормата", Неопределено); - - Результат.Вставить("НастройкаСинхронизацииДанныхЗавершена", Ложь); - Результат.Вставить("ПолученоСообщениеДляСопоставленияДанных", Ложь); - Результат.Вставить("ПоддерживаетсяСопоставлениеДанных", Истина); - - УстановитьПривилегированныйРежим(Истина); - - Результат.ПланОбменаСуществует = (Метаданные.ПланыОбмена.Найти(ИмяПланаОбмена) <> Неопределено); - - Если Не Результат.ПланОбменаСуществует Тогда - // В качестве имени плана обмена м.б. передан формат обмена. - Для Каждого ПланОбмена Из ОбменДаннымиПовтИсп.ПланыОбменаБСП() Цикл - Если Не ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(ПланОбмена) Тогда - Продолжить; - КонецЕсли; - - ФорматОбмена = ЗначениеНастройкиПланаОбмена(ПланОбмена, "ФорматОбмена"); - Если ИмяПланаОбмена = ФорматОбмена Тогда - Результат.ПланОбменаСуществует = Истина; - Результат.ИмяПланаОбмена = ПланОбмена; - Прервать; - КонецЕсли; - КонецЦикла; - КонецЕсли; - - Если Не Результат.ПланОбменаСуществует Тогда - Возврат Результат; - КонецЕсли; - - ЭтотУзел = ПланыОбмена[Результат.ИмяПланаОбмена].ЭтотУзел(); - - СвойстваЭтогоУзла = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЭтотУзел, "Код, Наименование"); - - ПрефиксИнформационнойБазы = Неопределено; - ОбменДаннымиПереопределяемый.ПриОпределенииПрефиксаИнформационнойБазыПоУмолчанию(ПрефиксИнформационнойБазы); - - УзелКорреспондента = Неопределено; - Если ЗначениеЗаполнено(КодУзла) Тогда - УзелКорреспондента = УзелПланаОбменаПоКоду(Результат.ИмяПланаОбмена, КодУзла); - КонецЕсли; - - Результат.ПрефиксИнформационнойБазы = ПолучитьФункциональнуюОпцию("ПрефиксИнформационнойБазы"); - Результат.ПрефиксИнформационнойБазыПоУмолчанию = ПрефиксИнформационнойБазы; - Результат.НаименованиеИнформационнойБазы = СвойстваЭтогоУзла.Наименование; - Результат.УзелСуществует = ЗначениеЗаполнено(УзелКорреспондента); - Результат.НастройкиПараметровУчетаЗаданы = Результат.УзелСуществует - И НастройкиПараметровУчетаВСистемеУстановлены(Результат.ИмяПланаОбмена, КодУзла, СообщениеОбОшибке); - Результат.КодЭтогоУзла = СвойстваЭтогоУзла.Код; - Результат.ВерсияКонфигурации = Метаданные.Версия; - - Результат.НаименованиеИнформационнойБазыПоУмолчанию = ?(ОбщегоНазначения.РазделениеВключено(), - Метаданные.Синоним, ОбменДаннымиПовтИсп.ИмяЭтойИнформационнойБазы()); - - Если ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(Результат.ИмяПланаОбмена) Тогда - Результат.ИспользоватьПрефиксыДляНастройкиОбмена = - Не ОбменДаннымиXDTOСервер.ПоддерживаетсяВерсияСИдентификаторомОбменаДанными(ЭтотУзел); - - СвойстваПланаОбмена = ЗначениеНастройкиПланаОбмена(Результат.ИмяПланаОбмена, "ВерсииФорматаОбмена, ФорматОбмена"); - - Результат.ФорматОбмена = СвойстваПланаОбмена.ФорматОбмена; - Результат.ВерсииФорматаОбмена = ОбщегоНазначения.ВыгрузитьКолонку(СвойстваПланаОбмена.ВерсииФорматаОбмена, "Ключ", Истина); - - Результат.Вставить("ПоддерживаемыеОбъектыФормата", - ОбменДаннымиXDTOСервер.ПоддерживаемыеОбъектыФормата(Результат.ИмяПланаОбмена, "ОтправкаПолучение", УзелКорреспондента)); - КонецЕсли; - - Если Результат.УзелСуществует Тогда - Результат.НастройкаСинхронизацииДанныхЗавершена = НастройкаСинхронизацииЗавершена(УзелКорреспондента); - Результат.ПолученоСообщениеДляСопоставленияДанных = ПолученоСообщениеСДаннымиДляСопоставления(УзелКорреспондента); - Результат.ПоддерживаетсяСопоставлениеДанных = ЗначениеНастройкиПланаОбмена(Результат.ИмяПланаОбмена, - "ПоддерживаетсяСопоставлениеДанных", СохраненныйВариантНастройкиУзлаПланаОбмена(УзелКорреспондента)); - КонецЕсли; - - Возврат Результат; - -КонецФункции - Функция ИнформацияСтатистики(ИнформацияСтатистики, Знач ВключатьУдалениеОбъектов = Ложь) Экспорт ОтборМассив = ИнформацияСтатистики.ВыгрузитьКолонку("ИмяТаблицыПриемника"); @@ -12045,50 +11925,6 @@ КонецПроцедуры -// Выполняет проверку подключения обработки транспорта по заданным настройкам. -// -Процедура ПроверитьПодключениеОбработкиТранспортаСообщенийОбмена(Отказ, - СтруктураНастроек, ВидТранспорта, СообщениеОбОшибке = "", НовыеПароли = Неопределено) Экспорт - - УстановитьПривилегированныйРежим(Истина); - - // Создаем экземпляр объекта обработки. - ОбработкаОбъект = Обработки[ИмяОбработкиТранспортаСообщенийОбмена(ВидТранспорта)].Создать(); - - // Инициализация свойств обработки переданными параметрами настроек. - ЗаполнитьЗначенияСвойств(ОбработкаОбъект, СтруктураНастроек); - - // Привилегированный режим установлен выше. - Если СтруктураНастроек.Свойство("Корреспондент") Тогда - Если НовыеПароли = Неопределено Тогда - Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(СтруктураНастроек.Корреспондент, - "COMПарольПользователя, FTPСоединениеПароль, WSПароль, ПарольАрхиваСообщенияОбмена", Истина); - Иначе - Пароли = Новый Структура( - "COMПарольПользователя, FTPСоединениеПароль, WSПароль, ПарольАрхиваСообщенияОбмена"); - ЗаполнитьЗначенияСвойств(Пароли, НовыеПароли); - КонецЕсли; - ЗаполнитьЗначенияСвойств(ОбработкаОбъект, Пароли); - КонецЕсли; - - // Инициализация транспорта обмена. - ОбработкаОбъект.Инициализация(); - - // Выполняем проверку подключения. - Если Не ОбработкаОбъект.ПодключениеУстановлено() Тогда - - Отказ = Истина; - - СообщениеОбОшибке = ОбработкаОбъект.СтрокаСообщенияОбОшибке - + Символы.ПС + НСтр("ru = 'Техническую информацию об ошибке см. в журнале регистрации.'"); - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Транспорт сообщений обмена'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОбъект.СтрокаСообщенияОбОшибкеЖР); - - КонецЕсли; - -КонецПроцедуры - // Основная функция для использования внешнего соединения при обмене. // // Параметры: @@ -12238,33 +12074,15 @@ СтруктураНастроек.ИмяПланаОбмена, ПсевдонимУзла); - Если СостояниеНастройки.НастройкаСуществует Тогда + Если Не СостояниеНастройки.НастройкаСуществует Тогда + Если ВКорреспондентеУстаревшийВариантНастроекОбмена( + Прокси, ПараметрыПрокси, СостояниеНастройки, СтруктураНастроек, ПсевдонимУзла, Отказ, СтрокаСообщенияОбОшибке) + Или Отказ Тогда + Возврат; + КонецЕсли; + Иначе СтруктураНастроек.ТекущийУзелПланаОбменаКод = ПсевдонимУзла; Возврат; - Иначе - // Проверка возможности выполнения перехода. - Для Каждого ВариантНастройки Из УстаревшиеВариантыНастроекОбмена(СтруктураНастроек.УзелИнформационнойБазы) Цикл - СостояниеНастройки = СостояниеНастройкиСинхронизацииВКорреспонденте( - Прокси, - ПараметрыПрокси, - ВариантНастройки.ИмяПланаОбмена, - ПсевдонимУзла); - Если СостояниеНастройки.НастройкаСуществует Тогда - Если СтруктураНастроек.ДействиеПриОбмене = Перечисления.ДействияПриОбмене.ВыгрузкаДанных Тогда - СтруктураНастроек.ИмяПланаОбмена = ВариантНастройки.ИмяПланаОбмена; - СтруктураНастроек.ТекущийУзелПланаОбменаКод = ПсевдонимУзла; - Иначе - // В этой ИБ выполнен переход на новый план обмена, в корреспонденте еще не выполнен. - // Получение данных необходимо отменить. - СтрокаСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'В программе ""%1"" выполняется обновление настроек синхронизации. - |Загрузка данных отменена. Необходимо запустить синхронизацию данных повторно.'"), - ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СтруктураНастроек.УзелИнформационнойБазы, "Наименование")); - Отказ = Истина; - КонецЕсли; - Возврат; - КонецЕсли; - КонецЦикла; КонецЕсли; КонецЕсли; @@ -12274,21 +12092,14 @@ СтруктураНастроек.ИмяПланаОбмена, СтруктураНастроек.ТекущийУзелПланаОбменаКод); - Если Не СостояниеНастройки.НастройкаСуществует - И СтруктураНастроек.ДействиеПриОбмене = Перечисления.ДействияПриОбмене.ВыгрузкаДанных Тогда - // Проверка возможности выполнения перехода. - Для Каждого ВариантНастройки Из УстаревшиеВариантыНастроекОбмена(СтруктураНастроек.УзелИнформационнойБазы) Цикл - СостояниеНастройки = СостояниеНастройкиСинхронизацииВКорреспонденте( - Прокси, - ПараметрыПрокси, - ВариантНастройки.ИмяПланаОбмена, - СтруктураНастроек.ТекущийУзелПланаОбменаКод); - Если СостояниеНастройки.НастройкаСуществует Тогда - СтруктураНастроек.ИмяПланаОбмена = ВариантНастройки.ИмяПланаОбмена; - Возврат; - КонецЕсли; - КонецЦикла; + Если Не СостояниеНастройки.НастройкаСуществует Тогда + Если ВКорреспондентеУстаревшийВариантНастроекОбмена( + Прокси, ПараметрыПрокси, СтруктураНастроек, СостояниеНастройки, СтруктураНастроек.ТекущийУзелПланаОбменаКод, Отказ, СтрокаСообщенияОбОшибке) + Или Отказ Тогда + Возврат; + КонецЕсли; КонецЕсли; + Иначе СостояниеНастройки = СостояниеНастройкиСинхронизацииВКорреспонденте( Прокси, @@ -12307,6 +12118,38 @@ КонецПроцедуры +Функция ВКорреспондентеУстаревшийВариантНастроекОбмена(Прокси, ПараметрыПрокси, СостояниеНастройки, СтруктураНастроек, КодУзла, Отказ, СтрокаСообщенияОбОшибке = "") + + // Проверка возможности выполнения перехода. + Для Каждого ВариантНастройки Из УстаревшиеВариантыНастроекОбмена(СтруктураНастроек.УзелИнформационнойБазы) Цикл + СостояниеНастройки = СостояниеНастройкиСинхронизацииВКорреспонденте( + Прокси, + ПараметрыПрокси, + ВариантНастройки.ИмяПланаОбмена, + КодУзла); + Если СостояниеНастройки.НастройкаСуществует Тогда + Если СтруктураНастроек.ДействиеПриОбмене = Перечисления.ДействияПриОбмене.ВыгрузкаДанных Тогда + СтруктураНастроек.ИмяПланаОбмена = ВариантНастройки.ИмяПланаОбмена; + Если КодУзла <> СтруктураНастроек.ТекущийУзелПланаОбменаКод Тогда + СтруктураНастроек.ТекущийУзелПланаОбменаКод = КодУзла; + КонецЕсли; + Иначе + // В этой ИБ выполнен переход на новый план обмена, в корреспонденте еще не выполнен. + // Получение данных необходимо отменить. + СтрокаСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'В программе ""%1"" выполняется обновление настроек синхронизации. + |Загрузка данных отменена. Необходимо запустить синхронизацию данных повторно.'"), + ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СтруктураНастроек.УзелИнформационнойБазы, "Наименование")); + Отказ = Истина; + КонецЕсли; + Возврат Истина; + КонецЕсли; + КонецЦикла; + + Возврат Ложь; + +КонецФункции + Функция УстаревшиеВариантыНастроекОбмена(УзелОбмена) Результат = Новый Массив; @@ -12528,83 +12371,6 @@ КонецФункции -// Добавляет одну запись в регистр сведений по переданным значениям структуры. -// -// Параметры: -// СтруктураЗаписи - Структура - структура, по значениям которой необходимо создать набор записей и заполнить этот -// набор. -// ИмяРегистра - Строка - имя регистра сведений, в который необходимо добавить запись. -// -Процедура ДобавитьЗаписьВРегистрСведений(СтруктураЗаписи, Знач ИмяРегистра, Загрузка = Ложь) Экспорт - - НаборЗаписей = СоздатьНаборЗаписейРегистраСведений(СтруктураЗаписи, ИмяРегистра); - - // Добавляем только одну запись в новый набор записей. - НоваяЗапись = НаборЗаписей.Добавить(); - - // Заполняем значения свойств записи из переданной структуры. - ЗаполнитьЗначенияСвойств(НоваяЗапись, СтруктураЗаписи); - - НаборЗаписей.ОбменДанными.Загрузка = Загрузка; - - // записываем набор записей - НаборЗаписей.Записать(); - -КонецПроцедуры - -// Обновляет запись в регистр сведений по переданным значениям структуры. -// -// Параметры: -// СтруктураЗаписи - Структура - структура, по значениям которой необходимо создать менеджер записи и обновить запись. -// ИмяРегистра - Строка - имя регистра сведений, в котором необходимо обновить запись. -// -Процедура ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, Знач ИмяРегистра) Экспорт - - МетаданныеРегистра = Метаданные.РегистрыСведений[ИмяРегистра]; - - // Создаем менеджер записи регистра. - МенеджерЗаписи = РегистрыСведений[ИмяРегистра].СоздатьМенеджерЗаписи(); - - // Устанавливаем отбор по измерениям регистра. - Для Каждого Измерение Из МетаданныеРегистра.Измерения Цикл - - // Если задано значение в структуре, то отбор устанавливаем. - Если СтруктураЗаписи.Свойство(Измерение.Имя) Тогда - - МенеджерЗаписи[Измерение.Имя] = СтруктураЗаписи[Измерение.Имя]; - - КонецЕсли; - - КонецЦикла; - - // Считываем запись из базы данных. - МенеджерЗаписи.Прочитать(); - - // Заполняем значения свойств записи из переданной структуры. - ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтруктураЗаписи); - - // записываем менеджер записи - МенеджерЗаписи.Записать(); - -КонецПроцедуры - -// Удаляет набор записей в регистре по переданным значениям структуры. -// -// Параметры: -// СтруктураЗаписи - Структура - структура, по значениям которой необходимо удалить набор записей. -// ИмяРегистра - Строка - имя регистра сведений, в котором необходимо удалить набор записей. -// -Процедура УдалитьНаборЗаписейВРегистреСведений(СтруктураЗаписи, ИмяРегистра, Загрузка = Ложь) Экспорт - - НаборЗаписей = СоздатьНаборЗаписейРегистраСведений(СтруктураЗаписи, ИмяРегистра); - - НаборЗаписей.ОбменДанными.Загрузка = Загрузка; - - // записываем набор записей - НаборЗаписей.Записать(); - -КонецПроцедуры - // Выполняет загрузку правил для обмена данными (ПРО или ПКО) в ИБ. // Процедура ЗагрузитьПравилаДляОбменаДанными(Отказ, @@ -12624,7 +12390,7 @@ СтруктураЗаписи.Вставить("ИспользоватьФильтрВыборочнойРегистрацииОбъектов", Истина); // Получаем набор записей регистра. - НаборЗаписей = СоздатьНаборЗаписейРегистраСведений(СтруктураЗаписи, "ПравилаДляОбменаДанными"); + НаборЗаписей = ОбменДаннымиСлужебный.СоздатьНаборЗаписейРегистраСведений(СтруктураЗаписи, "ПравилаДляОбменаДанными"); // Добавляем только одну запись в новый набор записей. НоваяЗапись = НаборЗаписей.Добавить(); @@ -12717,35 +12483,6 @@ КонецПроцедуры -// Создает набор записей регистра сведений по переданным значениям структуры. Добавляет одну запись в набор. -// -// Параметры: -// СтруктураЗаписи - Структура - структура по значениям которой необходимо создать набор записей и заполнить этот -// набор. -// ИмяРегистра - Строка - имя регистра сведений. -// -Функция СоздатьНаборЗаписейРегистраСведений(СтруктураЗаписи, ИмяРегистра) - - МетаданныеРегистра = Метаданные.РегистрыСведений[ИмяРегистра]; - - // Создаем набор записей регистра. - НаборЗаписей = РегистрыСведений[ИмяРегистра].СоздатьНаборЗаписей(); - - // Устанавливаем отбор по измерениям регистра. - Для Каждого Измерение Из МетаданныеРегистра.Измерения Цикл - - // Если задано значение в структуре, то отбор устанавливаем. - Если СтруктураЗаписи.Свойство(Измерение.Имя) Тогда - - НаборЗаписей.Отбор[Измерение.Имя].Установить(СтруктураЗаписи[Измерение.Имя]); - - КонецЕсли; - - КонецЦикла; - - Возврат НаборЗаписей; -КонецФункции - // Получает индекс картинки для вывода в таблице статистики сопоставления объектов. // Функция ИндексКартинкиТаблицыИнформацииСтатистики(Знач КоличествоОбъектовНесопоставленных, Знач ДанныеУспешноЗагружены) Экспорт @@ -12796,72 +12533,6 @@ КонецФункции -Процедура ЗарегистрироватьТолькоСправочникиДляНачальнойВыгрузки(Знач УзелИнформационнойБазы) Экспорт - - ЗарегистрироватьДанныеДляНачальнойВыгрузки(УзелИнформационнойБазы, СправочникиПланаОбмена(УзелИнформационнойБазы)); - -КонецПроцедуры - -Процедура ЗарегистрироватьТолькоСправочникиДляНачальнойВыгрузкиВФоне(ПараметрыПроцедуры, АдресХранилища) Экспорт - - ЗарегистрироватьТолькоСправочникиДляНачальнойВыгрузки(ПараметрыПроцедуры["УзелИнформационнойБазы"]); - -КонецПроцедуры - -Процедура ЗарегистрироватьВсеДанныеКромеСправочниковДляНачальнойВыгрузки(Знач УзелИнформационнойБазы) Экспорт - - ЗарегистрироватьДанныеДляНачальнойВыгрузки(УзелИнформационнойБазы, ВсеДанныеПланаОбменаКромеСправочников(УзелИнформационнойБазы)); - -КонецПроцедуры - -Процедура ЗарегистрироватьВсеДанныеКромеСправочниковДляНачальнойВыгрузкиВФоне(ПараметрыПроцедуры, АдресХранилища) Экспорт - - ЗарегистрироватьВсеДанныеКромеСправочниковДляНачальнойВыгрузки(ПараметрыПроцедуры["УзелИнформационнойБазы"]); - -КонецПроцедуры - -Процедура ЗарегистрироватьДанныеДляНачальнойВыгрузки(УзелИнформационнойБазы, Данные = Неопределено, УдалитьРегистрациюСоответствий = Истина) Экспорт - - УстановитьПривилегированныйРежим(Истина); - - // Обновляем повторно используемые значения Механизма регистрации объектов. - ОбменДаннымиСлужебный.ПроверитьКэшМеханизмаРегистрацииОбъектов(); - - СтандартнаяОбработка = Истина; - - ОбменДаннымиПереопределяемый.РегистрацияИзмененийНачальнойВыгрузкиДанных(УзелИнформационнойБазы, СтандартнаяОбработка, Данные); - - Если СтандартнаяОбработка Тогда - - Если ТипЗнч(Данные) = Тип("Массив") Тогда - - Для Каждого ОбъектМетаданных Из Данные Цикл - - ПланыОбмена.ЗарегистрироватьИзменения(УзелИнформационнойБазы, ОбъектМетаданных); - - КонецЦикла; - - Иначе - - ПланыОбмена.ЗарегистрироватьИзменения(УзелИнформационнойБазы, Данные); - - КонецЕсли; - - КонецЕсли; - - Если ОбменДаннымиПовтИсп.ПланОбменаСодержитОбъект(ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелИнформационнойБазы), - Метаданные.РегистрыСведений.СоответствияОбъектовИнформационныхБаз.ПолноеИмя()) - И УдалитьРегистрациюСоответствий Тогда - - ПланыОбмена.УдалитьРегистрациюИзменений(УзелИнформационнойБазы, Метаданные.РегистрыСведений.СоответствияОбъектовИнформационныхБаз); - - КонецЕсли; - - // Устанавливаем признак начальной выгрузки данных для узла. - РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.УстановитьПризнакНачальнойВыгрузкиДанных(УзелИнформационнойБазы); - -КонецПроцедуры - // Выполняет загрузку сообщения обмена, которое содержало // изменения конфигурации, до обновления информационной базы. // @@ -13022,33 +12693,6 @@ КонецФункции -// Получает узел распределенной информационной базы, являющийся главным для текущей информационной базы при условии, -// что распределенная информационная база создана на базе плана обмена, обслуживаемым подсистемой обмена данными БСП. -// -// Возвращаемое значение: -// ПланОбменаСсылка.<Имя плана обмена>; Неопределено - Если текущая информационная база не является -// узлом распределенной информационной базы -// или главный узел для нее не определен (она сама является корневым узлом) -// или распределенная информационная база создана на базе плана обмена, который не обслуживается подсистемой обмена -// данными БСП, то метод возвращает Неопределено. -// -Функция ГлавныйУзел() Экспорт - - Результат = ПланыОбмена.ГлавныйУзел(); - - Если Результат <> Неопределено Тогда - - Если Не ОбменДаннымиПовтИсп.ЭтоУзелОбменаДаннымиБСП(Результат) Тогда - - Результат = Неопределено; - - КонецЕсли; - - КонецЕсли; - - Возврат Результат; -КонецФункции - // Возвращает массив номеров версий, поддерживаемых интерфейсом корреспондента для подсистемы ОбменДанными. // // Параметры: @@ -13187,29 +12831,6 @@ КонецФункции -Процедура ЗаполнитьТаблицуЗначений(Приемник, Знач Источник) Экспорт - Приемник.Очистить(); - - Если ТипЗнч(Источник)=Тип("ТаблицаЗначений") Тогда - КолонкиИсточника = Источник.Колонки; - Иначе - Времянка = Источник.Выгрузить(Новый Массив); - КолонкиИсточника = Времянка.Колонки; - КонецЕсли; - - Если ТипЗнч(Приемник)=Тип("ТаблицаЗначений") Тогда - КолонкиПриемника = Приемник.Колонки; - КолонкиПриемника.Очистить(); - Для Каждого Колонка Из КолонкиИсточника Цикл - ЗаполнитьЗначенияСвойств(КолонкиПриемника.Добавить(), Колонка); - КонецЦикла; - КонецЕсли; - - Для Каждого Строка Из Источник Цикл - ЗаполнитьЗначенияСвойств(Приемник.Добавить(), Строка); - КонецЦикла; -КонецПроцедуры - Функция ТаблицаВМассивСтруктур(Знач ТаблицаЗначений) Результат = Новый Массив; @@ -13337,17 +12958,6 @@ КонецФункции -// Возвращает Истина при необходимости обновления конфигурации информационной базы подчиненного узла РИБ. -// В главном узле всегда - Ложь. -// -// Копия функции ОбщегоНазначения.ТребуетсяОбновлениеКонфигурацииПодчиненногоУзлаРИБ. -// -Функция ТребуетсяУстановкаОбновления() Экспорт - - Возврат ЭтоПодчиненныйУзелРИБ() И КонфигурацияИзменена(); - -КонецФункции - // Возвращает расширенное представление объекта. // Функция ПредставлениеОбъекта(ПараметрОбъект) Экспорт @@ -13502,14 +13112,6 @@ КонецФункции -// Получает параметр защищенного соединения. -// -Функция ЗащищенноеСоединение(Путь) Экспорт - - Возврат ?(НРег(Лев(Путь, 4)) = "ftps", ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение(), Неопределено); - -КонецФункции - // См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел. Процедура ПриЗаполненииСпискаТекущихДелПредупрежденияСинхронизации(ТекущиеДела) @@ -14497,7 +14099,7 @@ // Заполняет реквизит формы по данным структуры настроек. // // Параметры: -// Форма - УправляемаяФорма - форма для установки реквизита. +// Форма - ФормаКлиентскогоПриложения - форма для установки реквизита. // НастройкиДополненияВыгрузки - Структура - исходные настройки. // ИмяРеквизитаДополнения - Строка - имя реквизита формы для создания или заполнения. // @@ -14816,4 +14418,10 @@ КонецФункции +Функция НедопустимыеСимволыВИмениПользователяWSПрокси() + + Возврат ":"; + +КонецФункции + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОбменДаннымиСлужебный/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиСлужебный/Module.bsl index e8ac1d889..3a6edeba8 100644 --- a/SSL/src/CommonModules/ОбменДаннымиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиСлужебный/Module.bsl @@ -908,6 +908,116 @@ #КонецОбласти +#Область РаботаСРегистрамиСведений + +// Добавляет одну запись в регистр сведений по переданным значениям структуры. +// +// Параметры: +// СтруктураЗаписи - Структура - структура, по значениям которой необходимо создать набор записей и заполнить этот +// набор. +// ИмяРегистра - Строка - имя регистра сведений, в который необходимо добавить запись. +// +Процедура ДобавитьЗаписьВРегистрСведений(СтруктураЗаписи, Знач ИмяРегистра, Загрузка = Ложь) Экспорт + + НаборЗаписей = СоздатьНаборЗаписейРегистраСведений(СтруктураЗаписи, ИмяРегистра); + + // Добавляем только одну запись в новый набор записей. + НоваяЗапись = НаборЗаписей.Добавить(); + + // Заполняем значения свойств записи из переданной структуры. + ЗаполнитьЗначенияСвойств(НоваяЗапись, СтруктураЗаписи); + + НаборЗаписей.ОбменДанными.Загрузка = Загрузка; + + // записываем набор записей + НаборЗаписей.Записать(); + +КонецПроцедуры + +// Обновляет запись в регистр сведений по переданным значениям структуры. +// +// Параметры: +// СтруктураЗаписи - Структура - структура, по значениям которой необходимо создать менеджер записи и обновить запись. +// ИмяРегистра - Строка - имя регистра сведений, в котором необходимо обновить запись. +// +Процедура ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, Знач ИмяРегистра) Экспорт + + МетаданныеРегистра = Метаданные.РегистрыСведений[ИмяРегистра]; + + // Создаем менеджер записи регистра. + МенеджерЗаписи = РегистрыСведений[ИмяРегистра].СоздатьМенеджерЗаписи(); + + // Устанавливаем отбор по измерениям регистра. + Для Каждого Измерение Из МетаданныеРегистра.Измерения Цикл + + // Если задано значение в структуре, то отбор устанавливаем. + Если СтруктураЗаписи.Свойство(Измерение.Имя) Тогда + + МенеджерЗаписи[Измерение.Имя] = СтруктураЗаписи[Измерение.Имя]; + + КонецЕсли; + + КонецЦикла; + + // Считываем запись из базы данных. + МенеджерЗаписи.Прочитать(); + + // Заполняем значения свойств записи из переданной структуры. + ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтруктураЗаписи); + + // записываем менеджер записи + МенеджерЗаписи.Записать(); + +КонецПроцедуры + +// Удаляет набор записей в регистре по переданным значениям структуры. +// +// Параметры: +// СтруктураЗаписи - Структура - структура, по значениям которой необходимо удалить набор записей. +// ИмяРегистра - Строка - имя регистра сведений, в котором необходимо удалить набор записей. +// +Процедура УдалитьНаборЗаписейВРегистреСведений(СтруктураЗаписи, ИмяРегистра, Загрузка = Ложь) Экспорт + + НаборЗаписей = СоздатьНаборЗаписейРегистраСведений(СтруктураЗаписи, ИмяРегистра); + + НаборЗаписей.ОбменДанными.Загрузка = Загрузка; + + // записываем набор записей + НаборЗаписей.Записать(); + +КонецПроцедуры + +// Создает набор записей регистра сведений по переданным значениям структуры. Добавляет одну запись в набор. +// +// Параметры: +// СтруктураЗаписи - Структура - структура по значениям которой необходимо создать набор записей и заполнить этот +// набор. +// ИмяРегистра - Строка - имя регистра сведений. +// +Функция СоздатьНаборЗаписейРегистраСведений(СтруктураЗаписи, ИмяРегистра) Экспорт + + МетаданныеРегистра = Метаданные.РегистрыСведений[ИмяРегистра]; + + // Создаем набор записей регистра. + НаборЗаписей = РегистрыСведений[ИмяРегистра].СоздатьНаборЗаписей(); + + // Устанавливаем отбор по измерениям регистра. + Для Каждого Измерение Из МетаданныеРегистра.Измерения Цикл + + // Если задано значение в структуре, то отбор устанавливаем. + Если СтруктураЗаписи.Свойство(Измерение.Имя) Тогда + + НаборЗаписей.Отбор[Измерение.Имя].Установить(СтруктураЗаписи[Измерение.Имя]); + + КонецЕсли; + + КонецЦикла; + + Возврат НаборЗаписей; +КонецФункции + +#КонецОбласти + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl b/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl index 82c69e290..9f8e8ac12 100644 --- a/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl +++ b/SSL/src/CommonModules/ОбменДаннымиСобытия/Module.bsl @@ -497,6 +497,18 @@ КонецПроцедуры +Процедура УстановитьЗначенияОтборовНаУзле(УзелПланаОбмена, Настройки) Экспорт + + УстановитьЗначенияНаУзле(УзелПланаОбмена, Настройки); + +КонецПроцедуры + +Процедура УстановитьЗначенияПоУмолчаниюНаУзле(УзелПланаОбмена, Настройки) Экспорт + + УстановитьЗначенияНаУзле(УзелПланаОбмена, Настройки); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -633,7 +645,7 @@ КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей(); Иначе @@ -658,7 +670,7 @@ Возврат; КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда МодульАвтономнаяРабота = ОбщегоНазначения.ОбщийМодуль("АвтономнаяРабота"); МодульАвтономнаяРабота.ОтключитьАвтоматическуюСинхронизациюДанныхСПриложениемВИнтернете(Источник); КонецЕсли; @@ -844,15 +856,15 @@ Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); КлючЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'ОбменДаннымиСВнешнейСистемой (%1)'"), Источник.Код); - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - Отбор = Новый Структура; Отбор.Вставить("ОбластьДанных", МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); Отбор.Вставить("ИмяМетода", "ОбменДаннымиСервер.ВыполнитьОбменДаннымиСВнешнейСистемой"); @@ -974,7 +986,7 @@ Возврат; КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ЭтоРазделенныеДанные = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных( ОбъектМетаданных.ПолноеИмя(), МодульРаботаВМоделиСервиса.РазделительОсновныхДанных()); @@ -984,7 +996,7 @@ Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ЭтоСовместноРазделенныеДанные = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных( ОбъектМетаданных.ПолноеИмя(), МодульРаботаВМоделиСервиса.РазделительВспомогательныхДанных()); @@ -1061,7 +1073,7 @@ ВыполнитьПравилаРегистрацииОбъектовДляПланаОбмена(МассивУзловРезультат, Объект, ИмяПланаОбмена, ДополнительныеПараметры); - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); МодульОбменДаннымиВМоделиСервиса.ПослеОпределенияПолучателей(Объект, МассивУзловРезультат, ИмяПланаОбмена); КонецЕсли; @@ -2092,7 +2104,7 @@ Функция РазделенныйПланОбмена(Знач ИмяПланаОбмена) - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ЭтоРазделенныеДанные = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных( "ПланОбмена." + ИмяПланаОбмена, МодульРаботаВМоделиСервиса.РазделительОсновныхДанных()); @@ -3109,20 +3121,6 @@ Возврат Результат; КонецФункции -// - -Процедура УстановитьЗначенияОтборовНаУзле(УзелПланаОбмена, Настройки) Экспорт - - УстановитьЗначенияНаУзле(УзелПланаОбмена, Настройки); - -КонецПроцедуры - -Процедура УстановитьЗначенияПоУмолчаниюНаУзле(УзелПланаОбмена, Настройки) Экспорт - - УстановитьЗначенияНаУзле(УзелПланаОбмена, Настройки); - -КонецПроцедуры - Процедура УстановитьЗначенияНаУзле(УзелПланаОбмена, Настройки) // УзелПланаОбмена - ПланОбменаОбъект - недоступный тип параметра diff --git a/SSL/src/CommonModules/ОбменСообщениями/Module.bsl b/SSL/src/CommonModules/ОбменСообщениями/Module.bsl deleted file mode 100644 index fb0e30884..000000000 --- a/SSL/src/CommonModules/ОбменСообщениями/Module.bsl +++ /dev/null @@ -1,516 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Выполняет отправку сообщения в адресный канал сообщений. -// Соответствует типу отправки "Конечная точка/Конечная точка". -// -// Параметры: -// КаналСообщений - Строка - Идентификатор адресного канала сообщений. -// ТелоСообщения - Произвольный - Тело сообщения системы, которое необходимо отправить. -// Получатель - Неопределено - получатель сообщения не указан. Сообщение будет отправлено конечным точкам, -// которые определяются настройками текущей информационной системы: -// в обработчике ОбменСообщениямиПереопределяемый.ПолучателиСообщения (программно) -// и в регистре сведений НастройкиОтправителя (настройка системы). -// - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, который соответствует конечной точке, -// для которой предназначено сообщение. Сообщение будет отправлено -// только этой конечной точке. -// - Массив - массив получателей сообщения; элементы массива должны иметь тип ПланОбменаСсылка.ОбменСообщениями. -// Сообщение будет отправлено всем конечным точкам, указанным в массиве. -// -Процедура ОтправитьСообщение(КаналСообщений, ТелоСообщения = Неопределено, Получатель = Неопределено) Экспорт - - ОтправитьСообщениеВКаналСообщений(КаналСообщений, ТелоСообщения, Получатель); - -КонецПроцедуры - -// Выполняет отправку сообщения в адресный канал сообщений. -// Соответствует типу отправки "Конечная точка/Конечная точка". -// -// Параметры: -// КаналСообщений - Строка - Идентификатор адресного канала сообщений. -// ТелоСообщения - Произвольный - Тело сообщения системы, которое необходимо отправить. -// Получатель - Неопределено - получатель сообщения не указан. Сообщение будет отправлено конечным точкам, -// которые определяются настройками текущей информационной системы: -// в обработчике ОбменСообщениямиПереопределяемый.ПолучателиСообщения (программно) -// и в регистре сведений НастройкиОтправителя (настройка системы). -// - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, который соответствует конечной точке, -// для которой предназначено сообщение. Сообщение будет отправлено -// только этой конечной точке. -// - Массив - массив получателей сообщения; элементы массива должны иметь тип ПланОбменаСсылка.ОбменСообщениями. -// Сообщение будет отправлено всем конечным точкам, указанным в массиве. -// -Процедура ОтправитьСообщениеСейчас(КаналСообщений, ТелоСообщения = Неопределено, Получатель = Неопределено) Экспорт - - ОтправитьСообщениеВКаналСообщений(КаналСообщений, ТелоСообщения, Получатель, Истина); - -КонецПроцедуры - -// Выполняет отправку сообщения в широковещательный канал сообщений. -// Соответствует типу отправки "Публикация/Подписка". -// Сообщение будет доставлено конечным точкам, которые подписаны на широковещательный канал. -// Настройка подписок на широковещательный канал выполняется через регистр сведений ПодпискиПолучателей. -// -// Параметры: -// КаналСообщений - Строка - Идентификатор широковещательного канала сообщений. -// ТелоСообщения - Произвольный - Тело сообщения системы, которое необходимо отправить. -// -Процедура ОтправитьСообщениеПодписчикам(КаналСообщений, ТелоСообщения = Неопределено) Экспорт - - ОтправитьСообщениеПодписчикамВКаналСообщений(КаналСообщений, ТелоСообщения); - -КонецПроцедуры - -// Выполняет отправку быстрого сообщения в широковещательный канал сообщений. -// Соответствует типу отправки "Публикация/Подписка". -// Сообщение будет доставлено конечным точкам, которые подписаны на широковещательный канал. -// Настройка подписок на широковещательный канал выполняется через регистр сведений ПодпискиПолучателей. -// -// Параметры: -// КаналСообщений - Строка - Идентификатор широковещательного канала сообщений. -// ТелоСообщения - Произвольный - Тело сообщения системы, которое необходимо отправить. -// -Процедура ОтправитьСообщениеПодписчикамСейчас(КаналСообщений, ТелоСообщения = Неопределено) Экспорт - - ОтправитьСообщениеПодписчикамВКаналСообщений(КаналСообщений, ТелоСообщения, Истина); - -КонецПроцедуры - -// Выполняет немедленную отправку быстрых сообщений из общей очереди сообщений. -// Отправка сообщений выполняется в цикле до тех пор, пока из очереди сообщений не будут отправлены все быстрые -// сообщения. -// На время отправки сообщений блокируется немедленная отправка сообщений из других сеансов. -// -Процедура ДоставитьСообщения() Экспорт - - Если ТранзакцияАктивна() Тогда - ВызватьИсключение НСтр("ru = 'Доставка быстрых сообщений системы не может выполняться в активной транзакции.'"); - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - - Если Не НачатьОтправкуБыстрыхСообщений() Тогда - Возврат; - КонецЕсли; - - ТекстЗапроса = ""; - СправочникиСообщений = ОбменСообщениямиПовтИсп.ПолучитьСправочникиСообщений(); - Для Каждого СправочникСообщений Из СправочникиСообщений Цикл - - ЭтоПервыйФрагмент = ПустаяСтрока(ТекстЗапроса); - - Если Не ЭтоПервыйФрагмент Тогда - - ТекстЗапроса = ТекстЗапроса + " - | - |ОБЪЕДИНИТЬ ВСЕ - |" - - КонецЕсли; - - ТекстЗапроса = ТекстЗапроса - + "ВЫБРАТЬ - | ТаблицаИзменений.Узел КАК КонечнаяТочка, - | ТаблицаИзменений.Ссылка КАК Сообщение - |[ПОМЕСТИТЬ] - |ИЗ - | [СправочникСообщений].Изменения КАК ТаблицаИзменений - |ГДЕ - | ТаблицаИзменений.Ссылка.ЭтоБыстроеСообщение - | И ТаблицаИзменений.НомерСообщения ЕСТЬ NULL - | И НЕ ТаблицаИзменений.Узел В (&НедоступныеКонечныеТочки)"; - - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[СправочникСообщений]", СправочникСообщений.ПустаяСсылка().Метаданные().ПолноеИмя()); - Если ЭтоПервыйФрагмент Тогда - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ПОМЕСТИТЬ]", "ПОМЕСТИТЬ ВТ_Изменения"); - Иначе - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ПОМЕСТИТЬ]", ""); - КонецЕсли; - КонецЦикла; - - ТекстЗапроса = ТекстЗапроса + " - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | ВТ_Изменения.КонечнаяТочка КАК КонечнаяТочка, - | ВТ_Изменения.Сообщение - |ИЗ - | ВТ_Изменения КАК ВТ_Изменения - | - |УПОРЯДОЧИТЬ ПО - | ВТ_Изменения.Сообщение.Код - |ИТОГИ ПО - | КонечнаяТочка"; - - Запрос = Новый Запрос; - Запрос.Текст = ТекстЗапроса; - - НедоступныеКонечныеТочки = Новый Массив; - - Попытка - - Пока Истина Цикл - - Запрос.УстановитьПараметр("НедоступныеКонечныеТочки", НедоступныеКонечныеТочки); - - РезультатЗапроса = РаботаВМоделиСервиса.ВыполнитьЗапросВнеТранзакции(Запрос); - - Если РезультатЗапроса.Пустой() Тогда - Прервать; - КонецЕсли; - - Группы = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); - - Для Каждого Группа Из Группы.Строки Цикл - - Сообщения = Группа.Строки.ВыгрузитьКолонку("Сообщение"); - - Попытка - - ДоставитьСообщенияПолучателю(Группа.КонечнаяТочка, Сообщения); - - УдалитьРегистрациюИзменений(Группа.КонечнаяТочка, Сообщения); - - Исключение - - НедоступныеКонечныеТочки.Добавить(Группа.КонечнаяТочка); - - ЗаписьЖурналаРегистрации(ОбменСообщениямиВнутренний.СобытиеЖурналаРегистрацииЭтойПодсистемы(), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - - КонецЦикла; - - КонецЦикла; - - Исключение - ОтменитьОтправкуБыстрыхСообщений(); - ВызватьИсключение; - КонецПопытки; - - ЗавершитьОтправкуБыстрыхСообщений(); - -КонецПроцедуры - -// Выполняет подключение конечной точки. -// Перед подключением конечной точки выполняется проверка установки соединения -// отправителя к получателю и получателя к отправителю. -// Также проверяется то, что настройки подключения получателя указывают на текущего отправителя. -// -// Параметры: -// Отказ - Булево - Флаг выполнения операции; поднимается в случае ошибок при подключении конечной точки. -// НастройкиПодключенияОтправителя - Структура - Параметры подключения отправителя. Для инициализации используется -// функция ОбменДаннымиСервер.СтруктураПараметровWS. Содержит свойства: -// * WSURLВебСервиса - Строка - Веб-адрес подключаемой конечной точки. -// * WSИмяПользователя - Пользователь для аутентификации в подключаемой конечной точке -// при работе через web-сервис подсистемы обмена сообщениями. -// * WSПароль - Пароль пользователя в подключаемой конечной точке. -// НастройкиПодключенияПолучателя - Структура - Параметры подключения получателя. Для инициализации используется -// функция ОбменДаннымиСервер.СтруктураПараметровWS. Содержит свойства: -// * WSURLВебСервиса - Строка - Веб-адрес этой информационной базы со стороны подключаемой конечной точки. -// * WSИмяПользователя - Пользователь для аутентификации в этой информационной базе -// при работе через web-сервис подсистемы обмена сообщениями. -// * WSПароль - Пароль пользователя в этой информационной базе. -// КонечнаяТочка - ПланОбменаСсылка.ОбменСообщениями, Неопределено - Если подключение конечной точки завершилось -// успешно, то в этот параметр возвращается ссылка на узел плана обмена, -// который соответствует подключенной конечной точке. -// Если подключить конечную точку не удалось, то возвращается Неопределено. -// НаименованиеКонечнойТочкиПолучателя - Строка - Наименование подключаемой конечной точки. Если значение не задано, -// то в качестве наименования используется синоним -// конфигурации подключаемой конечной точки. -// НаименованиеКонечнойТочкиОтправителя - Строка - Наименование конечной точки, которая соответствует -// этой информационной базе. Если значение не задано, то в качестве -// наименования используется синоним конфигурации этой информационной базы. -// -Процедура ПодключитьКонечнуюТочку(Отказ, - НастройкиПодключенияОтправителя, - НастройкиПодключенияПолучателя, - КонечнаяТочка = Неопределено, - НаименованиеКонечнойТочкиПолучателя = "", - НаименованиеКонечнойТочкиОтправителя = "") Экспорт - - ОбменСообщениямиВнутренний.ВыполнитьПодключениеКонечнойТочкиНаСторонеОтправителя(Отказ, - НастройкиПодключенияОтправителя, - НастройкиПодключенияПолучателя, - КонечнаяТочка, - НаименованиеКонечнойТочкиПолучателя, - НаименованиеКонечнойТочкиОтправителя); - -КонецПроцедуры - -// Выполняет обновление настроек подключения для конечной точки. -// Обновляются настройки подключения этой информационной базы к указанной конечной точке -// и настройки подключения конечной точки к этой информационной базе. -// Перед применением настроек выполняется проверка подключения на правильность задания настроек. -// Также проверяется то, что настройки подключения получателя указывают на текущего отправителя. -// -// Параметры: -// Отказ - Булево - Флаг выполнения операции; поднимается в случае ошибок. -// КонечнаяТочка - ПланОбменаСсылка.ОбменСообщениями - Ссылка на узел плана обмена, который соответствует конечной -// точке. -// НастройкиПодключенияОтправителя - Структура - Параметры подключения отправителя. Для инициализации используется -// функция ОбменДаннымиСервер.СтруктураПараметровWS. Содержит свойства: -// * WSURLВебСервиса - Строка - Веб-адрес подключаемой конечной точки. -// * WSИмяПользователя - Пользователь для аутентификации в подключаемой конечной точке -// при работе через web-сервис подсистемы обмена сообщениями. -// * WSПароль - Пароль пользователя в подключаемой конечной точке. -// НастройкиПодключенияПолучателя - Структура - Параметры подключения получателя. Для инициализации используется -// функция ОбменДаннымиСервер.СтруктураПараметровWS. Содержит свойства: -// * WSURLВебСервиса - Строка - Веб-адрес этой информационной базы со стороны подключаемой конечной точки. -// * WSИмяПользователя - Пользователь для аутентификации в этой информационной базе -// при работе через web-сервис подсистемы обмена сообщениями. -// * WSПароль - Пароль пользователя в этой информационной базе. -// -Процедура ОбновитьНастройкиПодключенияКонечнойТочки(Отказ, - КонечнаяТочка, - НастройкиПодключенияОтправителя, - НастройкиПодключенияПолучателя) Экспорт - - ОбменСообщениямиВнутренний.ВыполнитьОбновлениеНастроекПодключенияКонечнойТочки(Отказ, КонечнаяТочка, НастройкиПодключенияОтправителя, НастройкиПодключенияПолучателя); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Процедура ОтправитьСообщениеВКаналСообщений(КаналСообщений, ТелоСообщения, Получатель, ЭтоБыстроеСообщение = Ложь) - - Если ТипЗнч(Получатель) = Тип("ПланОбменаСсылка.ОбменСообщениями") Тогда - - ОтправитьСообщениеПолучателю(КаналСообщений, ТелоСообщения, Получатель, ЭтоБыстроеСообщение); - - ИначеЕсли ТипЗнч(Получатель) = Тип("Массив") Тогда - - Для Каждого Элемент Из Получатель Цикл - - Если ТипЗнч(Элемент) <> Тип("ПланОбменаСсылка.ОбменСообщениями") Тогда - - ВызватьИсключение НСтр("ru = 'Указан неправильный получатель для метода ОбменСообщениями.ОтправитьСообщение().'"); - - КонецЕсли; - - ОтправитьСообщениеПолучателю(КаналСообщений, ТелоСообщения, Элемент, ЭтоБыстроеСообщение); - - КонецЦикла; - - ИначеЕсли Получатель = Неопределено Тогда - - ОтправитьСообщениеПолучателям(КаналСообщений, ТелоСообщения, ЭтоБыстроеСообщение); - - Иначе - - ВызватьИсключение НСтр("ru = 'Указан неправильный получатель для метода ОбменСообщениями.ОтправитьСообщение().'"); - - КонецЕсли; - -КонецПроцедуры - -Процедура ОтправитьСообщениеПодписчикамВКаналСообщений(КаналСообщений, ТелоСообщения, ЭтоБыстроеСообщение = Ложь) - - УстановитьПривилегированныйРежим(Истина); - - Получатели = РегистрыСведений.ПодпискиПолучателей.ПодписчикиКаналаСообщений(КаналСообщений); - - // Отправка сообщения получателю (конечной точке). - Для Каждого Получатель Из Получатели Цикл - - ОтправитьСообщениеПолучателю(КаналСообщений, ТелоСообщения, Получатель, ЭтоБыстроеСообщение); - - КонецЦикла; - -КонецПроцедуры - -Процедура ОтправитьСообщениеПолучателям(КаналСообщений, ТелоСообщения, ЭтоБыстроеСообщение) - Перем ДинамическиПодключенныеПолучатели; - - УстановитьПривилегированныйРежим(Истина); - - // Получатели сообщения из регистра. - Получатели = РегистрыСведений.НастройкиОтправителя.ПодписчикиКаналаСообщений(КаналСообщений); - - // Получатели сообщения из кода. - ОбменСообщениямиПереопределяемый.ПолучателиСообщения(КаналСообщений, ДинамическиПодключенныеПолучатели); - - // Получаем массив уникальных получателей из двух массивов. - // Для этого используем временную таблицу значений. - ТаблицаПолучателей = Новый ТаблицаЗначений; - ТаблицаПолучателей.Колонки.Добавить("Получатель"); - Для Каждого Получатель Из Получатели Цикл - ТаблицаПолучателей.Добавить().Получатель = Получатель; - КонецЦикла; - - Если ТипЗнч(ДинамическиПодключенныеПолучатели) = Тип("Массив") Тогда - - Для Каждого Получатель Из ДинамическиПодключенныеПолучатели Цикл - ТаблицаПолучателей.Добавить().Получатель = Получатель; - КонецЦикла; - - КонецЕсли; - - ТаблицаПолучателей.Свернуть("Получатель"); - - Получатели = ТаблицаПолучателей.ВыгрузитьКолонку("Получатель"); - - // Отправка сообщения получателю (конечной точке). - Для Каждого Получатель Из Получатели Цикл - - ОтправитьСообщениеПолучателю(КаналСообщений, ТелоСообщения, Получатель, ЭтоБыстроеСообщение); - - КонецЦикла; - -КонецПроцедуры - -Процедура ОтправитьСообщениеПолучателю(КаналСообщений, ТелоСообщения, Получатель, ЭтоБыстроеСообщение) - - УстановитьПривилегированныйРежим(Истина); - - Если Не ТранзакцияАктивна() Тогда - - ВызватьИсключение НСтр("ru = 'Отправка сообщений может выполняться только в транзакции.'"); - - КонецЕсли; - - Если Не ЗначениеЗаполнено(КаналСообщений) Тогда - - ВызватьИсключение НСтр("ru = 'Не задано значение параметра ""КаналСообщений"" для метода ОбменСообщениями.ОтправитьСообщение.'"); - - ИначеЕсли СтрДлина(КаналСообщений) > 150 Тогда - - ВызватьИсключение НСтр("ru = 'Длина имени канала сообщений не должна превышать 150 символов.'"); - - ИначеЕсли Не ЗначениеЗаполнено(Получатель) Тогда - - ВызватьИсключение НСтр("ru = 'Не задано значение параметра ""Получатель"" для метода ОбменСообщениями.ОтправитьСообщение.'"); - - ИначеЕсли ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Получатель, "Заблокирована") Тогда - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Попытка отправки сообщения заблокированной конечной точке ""%1"".'"), - Строка(Получатель)); - КонецЕсли; - - СправочникДляСообщения = Справочники.СообщенияСистемы; - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - МодульСообщенияВМоделиСервисаРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервисаРазделениеДанных"); - ПереопределенныйСправочник = МодульСообщенияВМоделиСервисаРазделениеДанных.ПриВыбореСправочникаДляСообщения(ТелоСообщения); - Если ПереопределенныйСправочник <> Неопределено Тогда - СправочникДляСообщения = ПереопределенныйСправочник; - КонецЕсли; - КонецЕсли; - - НовоеСообщение = СправочникДляСообщения.СоздатьЭлемент(); - НовоеСообщение.Наименование = КаналСообщений; - НовоеСообщение.Код = 0; - НовоеСообщение.КоличествоПопытокОбработкиСообщения = 0; - НовоеСообщение.Заблокировано = Ложь; - НовоеСообщение.ТелоСообщения = Новый ХранилищеЗначения(ТелоСообщения); - НовоеСообщение.Отправитель = ОбменСообщениямиВнутренний.ЭтотУзел(); - НовоеСообщение.ЭтоБыстроеСообщение = ЭтоБыстроеСообщение; - - Если Получатель = ОбменСообщениямиВнутренний.ЭтотУзел() Тогда - - НовоеСообщение.Получатель = ОбменСообщениямиВнутренний.ЭтотУзел(); - - Иначе - - НовоеСообщение.ОбменДанными.Получатели.Добавить(Получатель); - НовоеСообщение.ОбменДанными.Получатели.АвтоЗаполнение = Ложь; - - НовоеСообщение.Получатель = Получатель; - - КонецЕсли; - - СтандартнаяОбработкаЗаписи = Истина; - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - МодульСообщенияВМоделиСервисаРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервисаРазделениеДанных"); - МодульСообщенияВМоделиСервисаРазделениеДанных.ПередЗаписьюСообщения(НовоеСообщение, СтандартнаяОбработкаЗаписи); - КонецЕсли; - - Если СтандартнаяОбработкаЗаписи Тогда - НовоеСообщение.Записать(); - КонецЕсли; - -КонецПроцедуры - -Функция НачатьОтправкуБыстрыхСообщений() - - НачатьОтправку = Истина; - - НачатьТранзакцию(); - Попытка - Блокировка = Новый БлокировкаДанных; - Блокировка.Добавить("Константа.БлокировкаОтправкиБыстрыхСообщений"); - Блокировка.Заблокировать(); - - БлокировкаОтправкиБыстрыхСообщений = Константы.БлокировкаОтправкиБыстрыхСообщений.Получить(); - - // Метод ТекущаяДатаСеанса() использовать нельзя. - // Текущая дата сервера в данном случае используется в качестве ключа уникальности. - Если БлокировкаОтправкиБыстрыхСообщений >= ТекущаяДата() Тогда - НачатьОтправку = Ложь; - Иначе - Константы.БлокировкаОтправкиБыстрыхСообщений.Установить(ТекущаяДата() + 60 * 5); - КонецЕсли; - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - - Возврат НачатьОтправку; -КонецФункции - -Процедура ЗавершитьОтправкуБыстрыхСообщений() - - НачатьТранзакцию(); - Попытка - Блокировка = Новый БлокировкаДанных; - Блокировка.Добавить("Константа.БлокировкаОтправкиБыстрыхСообщений"); - Блокировка.Заблокировать(); - - Константы.БлокировкаОтправкиБыстрыхСообщений.Установить(Дата('00010101')); - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -Процедура ОтменитьОтправкуБыстрыхСообщений() - - ЗавершитьОтправкуБыстрыхСообщений(); - -КонецПроцедуры - -Процедура УдалитьРегистрациюИзменений(КонечнаяТочка, Знач Сообщения) - - Для Каждого Сообщение Из Сообщения Цикл - - ПланыОбмена.УдалитьРегистрациюИзменений(КонечнаяТочка, Сообщение); - - КонецЦикла; - -КонецПроцедуры - -Процедура ДоставитьСообщенияПолучателю(КонечнаяТочка, Знач Сообщения) - - Поток = ""; - - ОбменСообщениямиВнутренний.СериализоватьДанныеВПоток(Сообщения, Поток); - - ОбменСообщениямиПовтИсп.WSПроксиКонечнойТочки(КонечнаяТочка, 10).DeliverMessages(ОбменСообщениямиВнутренний.КодЭтогоУзла(), Новый ХранилищеЗначения(Поток, Новый СжатиеДанных(9))); - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/ОбменСообщениямиВнутренний/Module.bsl b/SSL/src/CommonModules/ОбменСообщениямиВнутренний/Module.bsl deleted file mode 100644 index d97e3ac22..000000000 --- a/SSL/src/CommonModules/ОбменСообщениямиВнутренний/Module.bsl +++ /dev/null @@ -1,1439 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -// Только для внутреннего использования. -Функция ЭтотУзел() Экспорт - - Возврат ПланыОбмена.ОбменСообщениями.ЭтотУзел(); - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистемы Обмена данными. - -// См. ОбменДаннымиПереопределяемый.ПриВыгрузкеДанных. -Процедура ПриВыгрузкеДанных(СтандартнаяОбработка, - Получатель, - ИмяФайлаСообщения, - ДанныеСообщения, - КоличествоЭлементовВТранзакции, - ИмяСобытияЖурналаРегистрации, - КоличествоОтправленныхОбъектов) Экспорт - - Если ТипЗнч(Получатель) <> Тип("ПланОбменаСсылка.ОбменСообщениями") Тогда - Возврат; - КонецЕсли; - - СправочникиСообщений = ОбменСообщениямиПовтИсп.ПолучитьСправочникиСообщений(); - - СтандартнаяОбработка = Ложь; - - ТаблицаВыборкиДанных = Новый ТаблицаЗначений; - ТаблицаВыборкиДанных.Колонки.Добавить("Данные"); - ТаблицаВыборкиДанных.Колонки.Добавить("Порядок", Новый ОписаниеТипов("Число")); - - ЗаписьВФайл = Не ПустаяСтрока(ИмяФайлаСообщения); - - ЗаписьXML = Новый ЗаписьXML; - - Если ЗаписьВФайл Тогда - ЗаписьXML.ОткрытьФайл(ИмяФайлаСообщения); - Иначе - ЗаписьXML.УстановитьСтроку(); - КонецЕсли; - - ЗаписьXML.ЗаписатьОбъявлениеXML(); - - // Создаем новое сообщение - ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения(); - - ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Получатель); - - // Считаем количество записанных объектов. - КоличествоОтправленныхОбъектов = 0; - - // Получаем выборку измененных данных. - ВыборкаИзменений = ОбменДаннымиСервер.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения); - - Попытка - - Пока ВыборкаИзменений.Следующий() Цикл - - СтрокаТаблицы = ТаблицаВыборкиДанных.Добавить(); - СтрокаТаблицы.Данные = ВыборкаИзменений.Получить(); - - СтрокаТаблицы.Порядок = 0; - Для Каждого СправочникСообщений Из СправочникиСообщений Цикл - Если ТипЗнч(СтрокаТаблицы.Данные) = ТипЗнч(СправочникСообщений.ПустаяСсылка()) Тогда - СтрокаТаблицы.Порядок = СтрокаТаблицы.Данные.Код; - Прервать; - КонецЕсли; - КонецЦикла; - - КонецЦикла; - - ТаблицаВыборкиДанных.Сортировать("Порядок Возр"); - - Для Каждого СтрокаТаблицы Из ТаблицаВыборкиДанных Цикл - - ВыполняетсяОтправкаСообщения = Ложь; - - Для Каждого СправочникСообщений Из СправочникиСообщений Цикл - - Если ТипЗнч(СтрокаТаблицы.Данные) = ТипЗнч(СправочникСообщений.СоздатьЭлемент()) Тогда - ВыполняетсяОтправкаСообщения = Истина; - Прервать; - КонецЕсли; - - КонецЦикла; - - Если ВыполняетсяОтправкаСообщения Тогда - - СтрокаТаблицы.Данные.Код = 0; - - // {Обработчик события: ПриОтправкеСообщения} Начало. - ТелоСообщения = СтрокаТаблицы.Данные.ТелоСообщения.Получить(); - - ПриОтправкеСообщения(СтрокаТаблицы.Данные.Наименование, ТелоСообщения, СтрокаТаблицы.Данные); - - СтрокаТаблицы.Данные.ТелоСообщения = Новый ХранилищеЗначения(ТелоСообщения); - // {Обработчик события: ПриОтправкеСообщения} Окончание. - - КонецЕсли; - - Если ТипЗнч(СтрокаТаблицы.Данные) = Тип("УдалениеОбъекта") Тогда - - Если ТипЗнч(СтрокаТаблицы.Данные.Ссылка) <> Тип("СправочникСсылка.СообщенияСистемы") Тогда - - СтрокаТаблицы.Данные = Новый УдалениеОбъекта(Справочники.СообщенияСистемы.ПолучитьСсылку( - СтрокаТаблицы.Данные.Ссылка.УникальныйИдентификатор())); - - КонецЕсли; - - КонецЕсли; - - // Записываем данные в сообщение. - ЗаписатьXML(ЗаписьXML, СтрокаТаблицы.Данные); - - КоличествоОтправленныхОбъектов = КоличествоОтправленныхОбъектов + 1; - - КонецЦикла; - - // Завершаем запись сообщения - ЗаписьСообщения.ЗакончитьЗапись(); - ДанныеСообщения = ЗаписьXML.Закрыть(); - - Исключение - - ЗаписьСообщения.ПрерватьЗапись(); - ЗаписьXML.Закрыть(); - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - -// См. ОбменДаннымиПереопределяемый.ПриЗагрузкеДанных. -Процедура ПриЗагрузкеДанных(СтандартнаяОбработка, - Отправитель, - ИмяФайлаСообщения, - ДанныеСообщения, - КоличествоЭлементовВТранзакции, - ИмяСобытияЖурналаРегистрации, - КоличествоПолученныхОбъектов) Экспорт - - Если ТипЗнч(Отправитель) <> Тип("ПланОбменаСсылка.ОбменСообщениями") Тогда - Возврат; - КонецЕсли; - - МодульРаботаВМоделиСервиса = Неопределено; - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - КонецЕсли; - - СправочникиСообщений = ОбменСообщениямиПовтИсп.ПолучитьСправочникиСообщений(); - - СтандартнаяОбработка = Ложь; - - ЧтениеXML = Новый ЧтениеXML; - - Если Не ПустаяСтрока(ДанныеСообщения) Тогда - ЧтениеXML.УстановитьСтроку(ДанныеСообщения); - Иначе - ЧтениеXML.ОткрытьФайл(ИмяФайлаСообщения); - КонецЕсли; - - ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения(); - ЧтениеСообщения.НачатьЧтение(ЧтениеXML, ДопустимыйНомерСообщения.Больший); - - ПараметрыРезервнойКопии = ОбменДаннымиСервер.ПараметрыРезервнойКопии(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого); - - УдалитьРегистрациюИзменений = Не ПараметрыРезервнойКопии.ВосстановленаРезервнаяКопия; - - Если УдалитьРегистрациюИзменений Тогда - - // Удаляем регистрацию изменений для узла отправителя сообщения. - ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого); - - КонецЕсли; - - // Считаем сколько объектов прочитали. - КоличествоПолученныхОбъектов = 0; - - Попытка - - СообщениеОбменаМожетБытьПринятоЧастично = КорреспондентПоддерживаетЧастичноеПолучениеСообщенийОбмена(Отправитель); - СообщениеОбменаПринятоЧастично = Ложь; - - // Читаем данные из сообщения - Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл - - // Читаем очередное значение - Данные = ПрочитатьXML(ЧтениеXML); - - КоличествоПолученныхОбъектов = КоличествоПолученныхОбъектов + 1; - - ВыполняетсяПолучениеСообщения = Ложь; - Для Каждого СправочникСообщений Из СправочникиСообщений Цикл - Если ТипЗнч(Данные) = ТипЗнч(СправочникСообщений.СоздатьЭлемент()) Тогда - ВыполняетсяПолучениеСообщения = Истина; - Прервать; - КонецЕсли; - КонецЦикла; - - Если ВыполняетсяПолучениеСообщения Тогда - - Если Не Данные.ЭтоНовый() Тогда - Продолжить; // Загружаем только новые сообщения. - КонецЕсли; - - // {Обработчик: ПриПолученииСообщения} Начало - ТелоСообщения = Данные.ТелоСообщения.Получить(); - - ПриПолученииСообщения(Данные.Наименование, ТелоСообщения, Данные); - - Данные.ТелоСообщения = Новый ХранилищеЗначения(ТелоСообщения); - // {Обработчик: ПриПолученииСообщения} Окончание - - Если Не Данные.ЭтоНовый() Тогда - Продолжить; // Загружаем только новые сообщения. - КонецЕсли; - - Данные.УстановитьНовыйКод(); - Данные.Отправитель = ЧтениеСообщения.Отправитель; - Данные.Получатель = ЭтотУзел(); - Данные.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения"); - - ИначеЕсли ТипЗнч(Данные) = Тип("РегистрСведенийНаборЗаписей.ПодпискиПолучателей") Тогда - - Данные.Отбор["Получатель"].Значение = ЧтениеСообщения.Отправитель; - - Для Каждого СтрокаНабораЗаписей Из Данные Цикл - - СтрокаНабораЗаписей.Получатель = ЧтениеСообщения.Отправитель; - - КонецЦикла; - - ИначеЕсли ТипЗнч(Данные) = Тип("УдалениеОбъекта") Тогда - - Если ТипЗнч(Данные.Ссылка) = Тип("СправочникСсылка.СообщенияСистемы") Тогда - - Для Каждого СправочникСообщений Из СправочникиСообщений Цикл - - ПодменаСсылки = СправочникСообщений.ПолучитьСсылку(Данные.Ссылка.УникальныйИдентификатор()); - Если ОбщегоНазначения.СсылкаСуществует(ПодменаСсылки) Тогда - - Данные = Новый УдалениеОбъекта(ПодменаСсылки); - Прервать; - - КонецЕсли; - - КонецЦикла; - - КонецЕсли; - - КонецЕсли; - - ОбластьДанных = -1; - Если ТипЗнч(Данные) = Тип("УдалениеОбъекта") Тогда - - Ссылка = Данные.Ссылка; - Если Не ОбщегоНазначения.СсылкаСуществует(Ссылка) Тогда - Продолжить; - КонецЕсли; - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() И РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(Ссылка.Метаданные(), РаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда - ОбластьДанных = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Данные.Ссылка, РаботаВМоделиСервиса.РазделительВспомогательныхДанных()); - КонецЕсли; - - Иначе - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() И РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(Данные.Метаданные(), РаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда - ОбластьДанных = Данные[РаботаВМоделиСервиса.РазделительВспомогательныхДанных()]; - КонецЕсли; - - КонецЕсли; - - ТребуетсяВосстановлениеРазделения = Ложь; - Если ОбластьДанных <> -1 И НЕ ВыполняетсяПолучениеСообщения Тогда - - Если МодульРаботаВМоделиСервиса.ОбластьДанныхЗаблокирована(ОбластьДанных) Тогда - // Сообщение для заблокированной области не может быть принято. - Если СообщениеОбменаМожетБытьПринятоЧастично Тогда - СообщениеОбменаПринятоЧастично = Истина; - Продолжить; - Иначе - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось выполнить обмен сообщениями по причине: область данных %1 заблокирована.'"), - ОбластьДанных); - КонецЕсли; - КонецЕсли; - - ТребуетсяВосстановлениеРазделения = Истина; - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных); - - КонецЕсли; - - // В случае коллизии изменений приоритет отдаем текущей информационной базе (за исключением входящих УдалениеОбъекта - // от - // сообщений, получателем которых выступает ИБ-корреспондент). - Если ТипЗнч(Данные) <> Тип("УдалениеОбъекта") И ПланыОбмена.ИзменениеЗарегистрировано(ЧтениеСообщения.Отправитель, Данные) Тогда - Если ТребуетсяВосстановлениеРазделения Тогда - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - КонецЕсли; - Продолжить; - КонецЕсли; - - Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель; - Данные.ОбменДанными.Загрузка = Истина; - Данные.Записать(); - - Если ТребуетсяВосстановлениеРазделения Тогда - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - КонецЕсли; - - КонецЦикла; - - Если СообщениеОбменаПринятоЧастично Тогда - // Если в сообщении обмена данными присутствовали сообщения, которые не могли - // быть приняты - требуется, чтобы отправитель продолжал их отправлять при - // формировании следующих сообщений обмена. - ЧтениеСообщения.ПрерватьЧтение(); - Иначе - ЧтениеСообщения.ЗакончитьЧтение(); - КонецЕсли; - - ОбменДаннымиСервер.ПриВосстановленииРезервнойКопии(ПараметрыРезервнойКопии); - - ЧтениеXML.Закрыть(); - - Исключение - ЧтениеСообщения.ПрерватьЧтение(); - ЧтениеXML.Закрыть(); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "*"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.МонопольныйРежим = Ложь; - Обработчик.Процедура = "ОбменСообщениямиВнутренний.УстановитьКодЭтойКонечнойТочки"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "3.0.1.78"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.РежимВыполнения = "Оперативно"; - Обработчик.Процедура = "ОбменСообщениямиВнутренний.ПеренестиНастройкиТранспортаОбменаСообщениями"; - -КонецПроцедуры - -// См. ГрупповоеИзменениеОбъектовПереопределяемый.ПриОпределенииОбъектовСРедактируемымиРеквизитами. -Процедура ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты) Экспорт - Объекты.Вставить(Метаданные.Справочники.СообщенияСистемы.ПолноеИмя(), "РеквизитыНеРедактируемыеВГрупповойОбработке"); -КонецПроцедуры - -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. -Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт - - МассивСправочников = ОбменСообщениямиПовтИсп.ПолучитьСправочникиСообщений(); - Для Каждого СправочникСообщений Из МассивСправочников Цикл - Типы.Добавить(СправочникСообщений.ПустаяСсылка().Метаданные()); - КонецЦикла; - -КонецПроцедуры - -// См. ОбщегоНазначенияПереопределяемый.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов. -Процедура ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(Знач СтруктураПоддерживаемыхВерсий) Экспорт - - МассивВерсий = Новый Массив; - МассивВерсий.Добавить("2.0.1.6"); - МассивВерсий.Добавить("2.1.1.7"); - МассивВерсий.Добавить("2.1.1.8"); - СтруктураПоддерживаемыхВерсий.Вставить("ОбменСообщениями", МассивВерсий); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -//////////////////////////////////////////////////////////////////////////////// -// Обновление информационной базы. - -// Устанавливает код этой конечной точки, если не установлен. -// -Процедура УстановитьКодЭтойКонечнойТочки() Экспорт - - Если ПустаяСтрока(КодЭтогоУзла()) Тогда - - ЭтаКонечнаяТочка = ЭтотУзел().ПолучитьОбъект(); - ЭтаКонечнаяТочка.Код = Строка(Новый УникальныйИдентификатор()); - ЭтаКонечнаяТочка.Записать(); - - КонецЕсли; - -КонецПроцедуры - -// Переносит настройки транспорта обмена сообщениями в новый регистр. -// -Процедура ПеренестиНастройкиТранспортаОбменаСообщениями() Экспорт - - Если ОбщегоНазначения.РазделениеВключено() - И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - Возврат; - КонецЕсли; - - Запрос = Новый Запрос( - "ВЫБРАТЬ - | НастройкиТранспорта.УзелИнформационнойБазы КАК КонечнаяТочка, - | НастройкиТранспорта.WSURLВебСервиса КАК АдресВебСервиса, - | НастройкиТранспорта.WSИмяПользователя КАК ИмяПользователя, - | НастройкиТранспорта.WSЗапомнитьПароль КАК ЗапомнитьПароль - |ИЗ - | РегистрСведений.УдалитьНастройкиТранспортаОбмена КАК НастройкиТранспорта - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланОбмена.ОбменСообщениями КАК ОбменСообщениями - | ПО (ОбменСообщениями.Ссылка = НастройкиТранспорта.УзелИнформационнойБазы) - |ГДЕ - | (ВЫРАЗИТЬ(НастройкиТранспорта.WSURLВебСервиса КАК СТРОКА(100))) <> """""); - - ТаблицаНастройки = Запрос.Выполнить().Выгрузить(); - - НачатьТранзакцию(); - Попытка - Для Каждого СтрокаНастройки Из ТаблицаНастройки Цикл - НаборЗаписейНовый = РегистрыСведений.НастройкиТранспортаОбменаСообщениями.СоздатьНаборЗаписей(); - НаборЗаписейНовый.Отбор.КонечнаяТочка.Установить(СтрокаНастройки.КонечнаяТочка); - - ЗаписьНастройки = НаборЗаписейНовый.Добавить(); - ЗаполнитьЗначенияСвойств(ЗаписьНастройки, СтрокаНастройки); - - НаборЗаписейНовый.Записать(Истина); - - МенеджерЗаписиСтарый = РегистрыСведений.УдалитьНастройкиТранспортаОбмена.СоздатьМенеджерЗаписи(); - МенеджерЗаписиСтарый.УзелИнформационнойБазы = СтрокаНастройки.КонечнаяТочка; - МенеджерЗаписиСтарый.Прочитать(); - - МенеджерЗаписиСтарый.WSURLВебСервиса = ""; - МенеджерЗаписиСтарый.WSЗапомнитьПароль = Ложь; - МенеджерЗаписиСтарый.WSИмяПользователя = ""; - - МенеджерЗаписиСтарый.Записать(Истина); - КонецЦикла; - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Экспортные служебные процедуры и функции. - -// Обработчик регламентного задания для отправки и получения сообщений системы. -// -Процедура ОтправитьИПолучитьСообщенияПоРегламентномуЗаданию() Экспорт - - ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ОтправкаИПолучениеСообщенийСистемы); - - ОтправитьИПолучитьСообщения(Ложь); - -КонецПроцедуры - -// Выполняет отправку и получение сообщений системы. -// -// Параметры: -// Отказ - Булево. Флаг отказа. Поднимается в случае возникновения ошибок в процессе выполнения операции. -// -Процедура ОтправитьИПолучитьСообщения(Отказ) Экспорт - - УстановитьПривилегированныйРежим(Истина); - - ВыполнитьОтправкуИПолучениеСообщенийЧерезWebСервис(Отказ); - - ОбработатьОчередьСообщенийСистемы(); - -КонецПроцедуры - -// Только для внутреннего использования. -Процедура ОбработатьОчередьСообщенийСистемы(Отбор = Неопределено) Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Если РаботаВМоделиСервиса.РазделениеВключено() И РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда - - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииЭтойПодсистемы(), - УровеньЖурналаРегистрации.Информация,,, - НСтр("ru = 'Обработка очереди сообщений системы запущена из сеанса с установленными - |значениями разделителей. Обработка будет производиться только для сообщений, - |сохраненных в разделенном справочнике, в элементах со значениями разделителей, - |совпадающих со значениями разделителей сеанса.'")); - - ОбрабатыватьСообщенияВНеразделенныхДанных = Ложь; - - Иначе - - ОбрабатыватьСообщенияВНеразделенныхДанных = Истина; - - КонецЕсли; - - МодульРаботаВМоделиСервиса = Неопределено; - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - КонецЕсли; - - ОбработчикиСообщений = ОбработчикиСообщений(); - - ТекстЗапроса = ""; - СправочникиСообщений = ОбменСообщениямиПовтИсп.ПолучитьСправочникиСообщений(); - Для Каждого СправочникСообщений Из СправочникиСообщений Цикл - - ПолноеИмяСправочника = СправочникСообщений.ПустаяСсылка().Метаданные().ПолноеИмя(); - ЭтоНеразделенныйСправочник = Не РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() - ИЛИ Не РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ПолноеИмяСправочника, РаботаВМоделиСервиса.РазделительВспомогательныхДанных()); - - Если ЭтоНеразделенныйСправочник И Не ОбрабатыватьСообщенияВНеразделенныхДанных Тогда - Продолжить; - КонецЕсли; - - Если Не ПустаяСтрока(ТекстЗапроса) Тогда - - ТекстЗапроса = ТекстЗапроса + " - | - |ОБЪЕДИНИТЬ ВСЕ - |" - - КонецЕсли; - - Подзапрос = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "ВЫБРАТЬ - | ТаблицаСообщений.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанных, - | ТаблицаСообщений.Ссылка КАК Ссылка, - | ТаблицаСообщений.Код КАК Код, - | ТаблицаСообщений.Отправитель.Заблокирована КАК КонечнаяТочкаЗаблокирована - |ИЗ - | %1 КАК ТаблицаСообщений - |ГДЕ - | ТаблицаСообщений.Получатель = &Получатель - | И (НЕ ТаблицаСообщений.Заблокировано) - | [Отбор]" - , ПолноеИмяСправочника); - - Если ЭтоНеразделенныйСправочник Тогда - Подзапрос = СтрЗаменить(Подзапрос, "ТаблицаСообщений.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанных", "-1 КАК ОбластьДанных"); - КонецЕсли; - - ТекстЗапроса = ТекстЗапроса + Подзапрос; - - КонецЦикла; - - СтрокаОтбора = ?(Отбор = Неопределено, "", "И ТаблицаСообщений.Ссылка В(&Отбор)"); - - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[Отбор]", СтрокаОтбора); - - ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 100 - | ВложенныйЗапрос.ОбластьДанных, - | ВложенныйЗапрос.Ссылка, - | ВложенныйЗапрос.Код, - | ВложенныйЗапрос.КонечнаяТочкаЗаблокирована - |ИЗ - | (" + ТекстЗапроса + ") КАК ВложенныйЗапрос - | - |УПОРЯДОЧИТЬ ПО - | Код"; - - Запрос = Новый Запрос; - Запрос.УстановитьПараметр("Получатель", ЭтотУзел()); - Запрос.УстановитьПараметр("Отбор", Отбор); - Запрос.Текст = ТекстЗапроса; - - РезультатЗапроса = РаботаВМоделиСервиса.ВыполнитьЗапросВнеТранзакции(Запрос); - - Выборка = РезультатЗапроса.Выбрать(); - - Пока Выборка.Следующий() Цикл - - Попытка - ЗаблокироватьДанныеДляРедактирования(Выборка.Ссылка); - Исключение - Продолжить; // переходим дальше - КонецПопытки; - - // Проверка блокировки области. - Если МодульРаботаВМоделиСервиса <> Неопределено - И Выборка.ОбластьДанных <> -1 - И МодульРаботаВМоделиСервиса.ОбластьДанныхЗаблокирована(Выборка.ОбластьДанных) Тогда - - // Область заблокирована, перейти к следующей записи. - РазблокироватьДанныеДляРедактирования(Выборка.Ссылка); - Продолжить; - КонецЕсли; - - Попытка - - НачатьТранзакцию(); - Попытка - ОбъектСообщения = Выборка.Ссылка.ПолучитьОбъект(); - СчетчикПопыток = ОбъектСообщения.КоличествоПопытокОбработкиСообщения + 1; - Если СчетчикПопыток > 3 Тогда - Если НЕ ЗначениеЗаполнено(ОбъектСообщения.ПодробноеПредставлениеОшибки) Тогда - ОбъектСообщения.ПодробноеПредставлениеОшибки = НСтр("ru = 'Исчерпано количество попыток обработки сообщения.'"); - КонецЕсли; - ОбъектСообщения.Заблокировано = Истина; - Иначе - ОбъектСообщения.КоличествоПопытокОбработкиСообщения = СчетчикПопыток; - КонецЕсли; - РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(ОбъектСообщения); - ОбъектСообщения.Прочитать(); - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - - Если ОбъектСообщения.Заблокировано Тогда - РазблокироватьДанныеДляРедактирования(Выборка.Ссылка); - - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииЭтойПодсистемы(), - УровеньЖурналаРегистрации.Ошибка,,, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Исчерпано количество попыток обработки сообщения %1'"), - ОбъектСообщения.Наименование)); - - Продолжить; - КонецЕсли; - - ЗаголовокСообщения = Новый Структура("КаналСообщений, Отправитель", ОбъектСообщения.Наименование, ОбъектСообщения.Отправитель); - - НайденныеСтроки = ОбработчикиСообщений.НайтиСтроки(Новый Структура("Канал", ЗаголовокСообщения.КаналСообщений)); - - СообщениеОбработано = Истина; - - // Обрабатываем сообщение - Попытка - - Если Выборка.КонечнаяТочкаЗаблокирована Тогда - ОбъектСообщения.Заблокировано = Истина; - ВызватьИсключение НСтр("ru = 'Попытка обработки сообщения, полученного от заблокированной конечной точки.'"); - КонецЕсли; - - Если НайденныеСтроки.Количество() = 0 Тогда - ОбъектСообщения.Заблокировано = Истина; - ВызватьИсключение НСтр("ru = 'Не назначен обработчик для сообщения.'"); - КонецЕсли; - - Для Каждого СтрокаТаблицы Из НайденныеСтроки Цикл - - СтрокаТаблицы.Обработчик.ОбработатьСообщение(ЗаголовокСообщения.КаналСообщений, ОбъектСообщения.ТелоСообщения.Получить(), ЗаголовокСообщения.Отправитель); - - Если ТранзакцияАктивна() Тогда - Пока ТранзакцияАктивна() Цикл - ОтменитьТранзакцию(); - КонецЦикла; - ОбъектСообщения.Заблокировано = Истина; - ВызватьИсключение НСтр("ru = 'В обработчике сообщения не была зафиксирована транзакция.'"); - КонецЕсли; - - КонецЦикла; - Исключение - - Пока ТранзакцияАктивна() Цикл - ОтменитьТранзакцию(); - КонецЦикла; - - СообщениеОбработано = Ложь; - - ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииЭтойПодсистемы(), - УровеньЖурналаРегистрации.Ошибка,,, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Ошибка обработки сообщения %1: %2'"), - ЗаголовокСообщения.КаналСообщений, ПодробноеПредставлениеОшибки)); - КонецПопытки; - - Если СообщениеОбработано Тогда - - // Удаляем сообщение - Если ЗначениеЗаполнено(ОбъектСообщения.Отправитель) - И ОбъектСообщения.Отправитель <> ЭтотУзел() Тогда - - ОбъектСообщения.ОбменДанными.Получатели.Добавить(ОбъектСообщения.Отправитель); - ОбъектСообщения.ОбменДанными.Получатели.АвтоЗаполнение = Ложь; - - КонецЕсли; - - // Наличие ссылок на справочник не должно препятствовать или замедлять удаление элементов справочника. - ОбъектСообщения.ОбменДанными.Загрузка = Истина; - РаботаВМоделиСервиса.УдалитьВспомогательныеДанные(ОбъектСообщения); - - Иначе - - ОбъектСообщения.ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки; - РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(ОбъектСообщения); - - КонецЕсли; - - Если ОбрабатыватьСообщенияВНеразделенныхДанных И РаботаВМоделиСервиса.РазделениеВключено() И РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда - - ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'После обработки сообщения канала %1 не было выключено разделение сеанса.'"), - ЗаголовокСообщения.КаналСообщений); - - ЗаписьЖурналаРегистрации( - СобытиеЖурналаРегистрацииЭтойПодсистемы(), - УровеньЖурналаРегистрации.Ошибка, - , - , - ТекстСообщенияОбОшибке); - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - - КонецЕсли; - - Исключение - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииЭтойПодсистемы(), - УровеньЖурналаРегистрации.Ошибка,,, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - - РазблокироватьДанныеДляРедактирования(Выборка.Ссылка); - - КонецЦикла; - -КонецПроцедуры - -// Только для внутреннего использования. -Процедура ОбработатьОчередьСообщенийСистемыВФоне(ПараметрыПроцедуры, АдресХранилища) Экспорт - - ОбработатьОчередьСообщенийСистемы(ПараметрыПроцедуры["ЗагруженныеСообщения"]); - -КонецПроцедуры - -// Только для внутреннего использования. -Процедура УстановитьВедущуюКонечнуюТочкуНаСторонеОтправителя(Отказ, НастройкиПодключенияОтправителя, КонечнаяТочка) Экспорт - - УстановитьПривилегированныйРежим(Истина); - - СтрокаСообщенияОбОшибке = ""; - - WSПрокси = ПолучитьWSПрокси(НастройкиПодключенияОтправителя, СтрокаСообщенияОбОшибке); - - Если WSПрокси = Неопределено Тогда - Отказ = Истина; - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииУстановкаВедущейКонечнойТочки(), УровеньЖурналаРегистрации.Ошибка,,, СтрокаСообщенияОбОшибке); - Возврат; - КонецЕсли; - - НачатьТранзакцию(); - Попытка - - КонечнаяТочкаОбъект = КонечнаяТочка.ПолучитьОбъект(); - КонечнаяТочкаОбъект.Ведущая = Ложь; - КонечнаяТочкаОбъект.Записать(); - - // Обновляем настройки подключения. - СтруктураЗаписи = Новый Структура; - СтруктураЗаписи.Вставить("КонечнаяТочка", КонечнаяТочка); - - СтруктураЗаписи.Вставить("АдресВебСервиса", НастройкиПодключенияОтправителя.WSURLВебСервиса); - СтруктураЗаписи.Вставить("ИмяПользователя", НастройкиПодключенияОтправителя.WSИмяПользователя); - СтруктураЗаписи.Вставить("Пароль", НастройкиПодключенияОтправителя.WSПароль); - СтруктураЗаписи.Вставить("ЗапомнитьПароль", Истина); - - // добавляем запись в РС - РегистрыСведений.НастройкиТранспортаОбменаСообщениями.ДобавитьЗапись(СтруктураЗаписи); - - // Устанавливаем ведущую конечную точку на стороне получателя. - WSПрокси.SetLeadingEndPoint(КонечнаяТочкаОбъект.Код, КодЭтогоУзла()); - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - Отказ = Истина; - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииУстановкаВедущейКонечнойТочки(), УровеньЖурналаРегистрации.Ошибка,,, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Возврат; - КонецПопытки; - -КонецПроцедуры - -// Только для внутреннего использования. -Процедура УстановитьВедущуюКонечнуюТочкуНаСторонеПолучателя(КодЭтойКонечнойТочки, КодВедущейКонечнойТочки) Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Если ПланыОбмена.ОбменСообщениями.НайтиПоКоду(КодЭтойКонечнойТочки) <> ЭтотУзел() Тогда - СтрокаСообщенияОбОшибке = НСтр("ru = 'Заданы неверные параметры подключения к конечной точке. Параметры подключения указывают на другую конечную точку.'"); - СтрокаСообщенияОбОшибкеДляЖурналаРегистрации = НСтр("ru = 'Заданы неверные параметры подключения к конечной точке. - |Параметры подключения указывают на другую конечную точку.'", ОбщегоНазначения.КодОсновногоЯзыка()); - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииУстановкаВедущейКонечнойТочки(), - УровеньЖурналаРегистрации.Ошибка,,, СтрокаСообщенияОбОшибкеДляЖурналаРегистрации); - ВызватьИсключение СтрокаСообщенияОбОшибке; - КонецЕсли; - - НачатьТранзакцию(); - Попытка - - УзелКонечнойТочки = ПланыОбмена.ОбменСообщениями.НайтиПоКоду(КодВедущейКонечнойТочки); - - Если УзелКонечнойТочки.Пустая() Тогда - - ВызватьИсключение НСтр("ru = 'Конечная точка в базе-корреспонденте не обнаружена.'"); - - КонецЕсли; - УзелКонечнойТочкиОбъект = УзелКонечнойТочки.ПолучитьОбъект(); - УзелКонечнойТочкиОбъект.Ведущая = Истина; - УзелКонечнойТочкиОбъект.Записать(); - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииУстановкаВедущейКонечнойТочки(), УровеньЖурналаРегистрации.Ошибка,,, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -// Только для внутреннего использования. -Процедура ВыполнитьПодключениеКонечнойТочкиНаСторонеПолучателя(Отказ, Код, Наименование, НастройкиПодключенияПолучателя) Экспорт - - ОбменДаннымиСервер.ПроверитьИспользованиеОбменаДанными(); - - УстановитьПривилегированныйРежим(Истина); - - НачатьТранзакцию(); - Попытка - - // Создаем/обновляем узел плана обмена, который соответствует подключаемой конечной точке. - УзелКонечнойТочки = ПланыОбмена.ОбменСообщениями.НайтиПоКоду(Код); - Если УзелКонечнойТочки.Пустая() Тогда - УзелКонечнойТочкиОбъект = ПланыОбмена.ОбменСообщениями.СоздатьУзел(); - УзелКонечнойТочкиОбъект.Код = Код; - Иначе - УзелКонечнойТочкиОбъект = УзелКонечнойТочки.ПолучитьОбъект(); - УзелКонечнойТочкиОбъект.НомерПринятого = 0; - КонецЕсли; - УзелКонечнойТочкиОбъект.Наименование = Наименование; - УзелКонечнойТочкиОбъект.Ведущая = Истина; - УзелКонечнойТочкиОбъект.Записать(); - - // Обновляем настройки подключения. - СтруктураЗаписи = Новый Структура; - СтруктураЗаписи.Вставить("КонечнаяТочка", УзелКонечнойТочкиОбъект.Ссылка); - - СтруктураЗаписи.Вставить("АдресВебСервиса", НастройкиПодключенияПолучателя.WSURLВебСервиса); - СтруктураЗаписи.Вставить("ИмяПользователя", НастройкиПодключенияПолучателя.WSИмяПользователя); - СтруктураЗаписи.Вставить("Пароль", НастройкиПодключенияПолучателя.WSПароль); - СтруктураЗаписи.Вставить("ЗапомнитьПароль", Истина); - - // добавляем запись в РС - РегистрыСведений.НастройкиТранспортаОбменаСообщениями.ДобавитьЗапись(СтруктураЗаписи); - - // Устанавливаем признак использования регламентного задания. - РегламентныеЗаданияСервер.УстановитьИспользованиеРегламентногоЗадания( - Метаданные.РегламентныеЗадания.ОтправкаИПолучениеСообщенийСистемы, Истина); - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - Отказ = Истина; - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКонечнойТочки(), УровеньЖурналаРегистрации.Ошибка,,, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -// Только для внутреннего использования. -Процедура ВыполнитьОбновлениеНастроекПодключенияКонечнойТочки(Отказ, КонечнаяТочка, НастройкиПодключенияОтправителя, НастройкиПодключенияПолучателя) Экспорт - - УстановитьПривилегированныйРежим(Истина); - - СтрокаСообщенияОбОшибке = ""; - - ВерсииКорреспондента = ВерсииКорреспондента(НастройкиПодключенияОтправителя); - ВерсияКорреспондента_2_0_1_6 = (ВерсииКорреспондента.Найти("2.0.1.6") <> Неопределено); - - Если ВерсияКорреспондента_2_0_1_6 Тогда - WSПрокси = ПолучитьWSПрокси_2_0_1_6(НастройкиПодключенияОтправителя, СтрокаСообщенияОбОшибке); - Иначе - WSПрокси = ПолучитьWSПрокси(НастройкиПодключенияОтправителя, СтрокаСообщенияОбОшибке); - КонецЕсли; - - Если WSПрокси = Неопределено Тогда - Отказ = Истина; - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКонечнойТочки(), УровеньЖурналаРегистрации.Ошибка,,, СтрокаСообщенияОбОшибке); - Возврат; - КонецЕсли; - - Попытка - Если ВерсияКорреспондента_2_0_1_6 Тогда - WSПрокси.TestConnectionRecipient(СериализаторXDTO.ЗаписатьXDTO(НастройкиПодключенияПолучателя), КодЭтогоУзла()); - Иначе - WSПрокси.TestConnectionRecipient(ЗначениеВСтрокуВнутр(НастройкиПодключенияПолучателя), КодЭтогоУзла()); - КонецЕсли; - Исключение - Отказ = Истина; - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКонечнойТочки(), УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Возврат; - КонецПопытки; - - НачатьТранзакцию(); - Попытка - - // Обновляем настройки подключения. - СтруктураЗаписи = Новый Структура; - СтруктураЗаписи.Вставить("КонечнаяТочка", КонечнаяТочка); - - СтруктураЗаписи.Вставить("АдресВебСервиса", НастройкиПодключенияОтправителя.WSURLВебСервиса); - СтруктураЗаписи.Вставить("ИмяПользователя", НастройкиПодключенияОтправителя.WSИмяПользователя); - СтруктураЗаписи.Вставить("Пароль", НастройкиПодключенияОтправителя.WSПароль); - СтруктураЗаписи.Вставить("ЗапомнитьПароль", Истина); - - // добавляем запись в РС - РегистрыСведений.НастройкиТранспортаОбменаСообщениями.ОбновитьЗапись(СтруктураЗаписи); - - Если Не КонечнаяТочка = ПланыОбмена.ОбменСообщениями.ЭтотУзел() Тогда - Если ВерсияКорреспондента_2_0_1_6 Тогда - WSПрокси.UpdateConnectionSettings(КодЭтогоУзла(), СериализаторXDTO.ЗаписатьXDTO(НастройкиПодключенияПолучателя)); - Иначе - WSПрокси.UpdateConnectionSettings(КодЭтогоУзла(), ЗначениеВСтрокуВнутр(НастройкиПодключенияПолучателя)); - КонецЕсли; - КонецЕсли; - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - Отказ = Истина; - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКонечнойТочки(), УровеньЖурналаРегистрации.Ошибка,,, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Возврат; - КонецПопытки; - -КонецПроцедуры - -// Только для внутреннего использования. -Функция КодЭтогоУзла() Экспорт - - Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЭтотУзел(), "Код"); - -КонецФункции - -// Только для внутреннего использования. -Функция НаименованиеЭтогоУзла() Экспорт - - Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЭтотУзел(), "Наименование"); - -КонецФункции - -// Только для внутреннего использования. -Функция ВсеПолучатели() Экспорт - - ТекстЗапроса = - "ВЫБРАТЬ - | ОбменСообщениями.Ссылка КАК Получатель - |ИЗ - | ПланОбмена.ОбменСообщениями КАК ОбменСообщениями - |ГДЕ - | ОбменСообщениями.Ссылка <> &ЭтотУзел"; - - Запрос = Новый Запрос; - Запрос.УстановитьПараметр("ЭтотУзел", ЭтотУзел()); - Запрос.Текст = ТекстЗапроса; - - Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Получатель"); -КонецФункции - -// Только для внутреннего использования. -Процедура СериализоватьДанныеВПоток(ВыборкаДанных, Поток) Экспорт - - ЗаписьXML = Новый ЗаписьXML; - ЗаписьXML.УстановитьСтроку(); - ЗаписьXML.ЗаписатьОбъявлениеXML(); - ЗаписьXML.ЗаписатьНачалоЭлемента("Root"); - - Для Каждого Ссылка Из ВыборкаДанных Цикл - - Данные = Ссылка.ПолучитьОбъект(); - Данные.Код = 0; - - // {Обработчик события: ПриОтправкеСообщения} Начало. - ТелоСообщения = Данные.ТелоСообщения.Получить(); - - ПриОтправкеСообщения(Данные.Наименование, ТелоСообщения, Данные); - - Данные.ТелоСообщения = Новый ХранилищеЗначения(ТелоСообщения); - // {Обработчик события: ПриОтправкеСообщения} Окончание. - - ЗаписатьXML(ЗаписьXML, Данные); - - КонецЦикла; - ЗаписьXML.ЗаписатьКонецЭлемента(); - - Поток = ЗаписьXML.Закрыть(); - -КонецПроцедуры - -// Только для внутреннего использования. -Процедура СериализоватьДанныеИзПотока(Отправитель, Поток, ЗагруженныеОбъекты, ДанныеПрочитаныЧастично) Экспорт - - МодульРаботаВМоделиСервиса = Неопределено; - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - КонецЕсли; - - ДанныеМогутБытьПрочитаныЧастично = КорреспондентПоддерживаетЧастичноеПолучениеСообщенийОбмена(Отправитель); - - ЗагруженныеОбъекты = Новый Массив; - - ЧтениеXML = Новый ЧтениеXML; - Попытка - ЧтениеXML.УстановитьСтроку(Поток); - ЧтениеXML.Прочитать(); // узел "Root" - ЧтениеXML.Прочитать(); // узел объекта - Исключение - ЧтениеXML.Закрыть(); - ВызватьИсключение; - КонецПопытки; - - НачатьТранзакцию(); - Попытка - Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл - - Данные = ПрочитатьXML(ЧтениеXML); - - Если ТипЗнч(Данные) = Тип("УдалениеОбъекта") Тогда - - ВызватьИсключение НСтр("ru = 'Передача объекта УдалениеОбъекта через механизм быстрых сообщений не поддерживается.'"); - - Иначе - - Если Не Данные.ЭтоНовый() Тогда - Продолжить; // Загружаем только новые сообщения. - КонецЕсли; - - // {Обработчик: ПриПолученииСообщения} Начало - ТелоСообщения = Данные.ТелоСообщения.Получить(); - - ПриПолученииСообщения(Данные.Наименование, ТелоСообщения, Данные); - - Данные.ТелоСообщения = Новый ХранилищеЗначения(ТелоСообщения); - // {Обработчик: ПриПолученииСообщения} Окончание - - Если Не Данные.ЭтоНовый() Тогда - Продолжить; // Загружаем только новые сообщения. - КонецЕсли; - - Данные.Отправитель = Отправитель; - Данные.Получатель = ЭтотУзел(); - Данные.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения"); - - КонецЕсли; - - ТребуетсяВосстановлениеРазделения = Ложь; - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() И РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(Данные.Метаданные(), РаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда - - ОбластьДанных = Данные[РаботаВМоделиСервиса.РазделительВспомогательныхДанных()]; - - Если МодульРаботаВМоделиСервиса.ОбластьДанныхЗаблокирована(ОбластьДанных) Тогда - // Сообщение для заблокированной области не может быть принято. - Если ДанныеМогутБытьПрочитаныЧастично Тогда - ДанныеПрочитаныЧастично = Истина; - Продолжить; - Иначе - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось выполнить обмен сообщениями по причине: область данных %1 заблокирована.'"), - ОбластьДанных); - КонецЕсли; - КонецЕсли; - - ТребуетсяВосстановлениеРазделения = Истина; - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных); - - КонецЕсли; - - // В случае коллизии изменений приоритет отдаем текущей информационной базе. - Если ПланыОбмена.ИзменениеЗарегистрировано(Отправитель, Данные) Тогда - Если ТребуетсяВосстановлениеРазделения Тогда - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - КонецЕсли; - Продолжить; - КонецЕсли; - - Данные.ОбменДанными.Отправитель = Отправитель; - Данные.ОбменДанными.Загрузка = Истина; - - Данные.УстановитьНовыйКод(); - Данные.Записать(); - - Если ТребуетсяВосстановлениеРазделения Тогда - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - КонецЕсли; - - ЗагруженныеОбъекты.Добавить(Данные.Ссылка); - - КонецЦикла; - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ЧтениеXML.Закрыть(); - ВызватьИсключение; - КонецПопытки; - - ЧтениеXML.Закрыть(); - -КонецПроцедуры - -// Только для внутреннего использования. -Функция ПолучитьWSПрокси(СтруктураНастроек, СтрокаСообщенияОбОшибке = "", Таймаут = 60) Экспорт - - СтруктураНастроек.Вставить("WSURLПространстваИменСервиса", "http://www.1c.ru/SSL/MessageExchange"); - СтруктураНастроек.Вставить("WSИмяСервиса", "MessageExchange"); - СтруктураНастроек.Вставить("WSТаймаут", Таймаут); - - Возврат ОбменДаннымиСервер.ПолучитьWSПроксиПоПараметрамПодключения(СтруктураНастроек, СтрокаСообщенияОбОшибке); -КонецФункции - -// Только для внутреннего использования. -Функция ПолучитьWSПрокси_2_0_1_6(СтруктураНастроек, СтрокаСообщенияОбОшибке = "", Таймаут = 60) - - СтруктураНастроек.Вставить("WSURLПространстваИменСервиса", "http://www.1c.ru/SSL/MessageExchange_2_0_1_6"); - СтруктураНастроек.Вставить("WSИмяСервиса", "MessageExchange_2_0_1_6"); - СтруктураНастроек.Вставить("WSТаймаут", Таймаут); - - Возврат ОбменДаннымиСервер.ПолучитьWSПроксиПоПараметрамПодключения(СтруктураНастроек, СтрокаСообщенияОбОшибке); -КонецФункции - -// Проверяет поддержку информационной базой корреспондента частичного получения сообщений -// обмена данными при обмене сообщениями (если не поддерживает - частичное получение сообщений -// обмена на стороне этой информационной базы не должно использоваться). -// -// Параметры: -// Отправитель - ПланОбменаСсылка.ОбменСообщениями. -// -// Возвращаемое значение: Булево. -// -Функция КорреспондентПоддерживаетЧастичноеПолучениеСообщенийОбмена(Знач Корреспондент) - - ВерсииКорреспондента = ВерсииКорреспондента(Корреспондент); - Возврат (ВерсииКорреспондента.Найти("2.1.1.8") <> Неопределено); - -КонецФункции - -// Возвращает массив номеров версий, поддерживаемых интерфейсом корреспондента для подсистемы ОбменСообщениями. -// -// Параметры: -// Корреспондент - Структура, ПланОбменаСсылка. Узел плана обмена, который соответствует информационной -// базе-корреспонденту. -// -// Возвращаемое значение: -// Массив номеров версий, поддерживаемых интерфейсом корреспондента. -// -Функция ВерсииКорреспондента(Знач Корреспондент) - - Если ТипЗнч(Корреспондент) = Тип("Структура") Тогда - СтруктураНастроек = Корреспондент; - Иначе - СтруктураНастроек = РегистрыСведений.НастройкиТранспортаОбменаСообщениями.НастройкиТранспортаWS(Корреспондент); - КонецЕсли; - - ПараметрыПодключения = Новый Структура; - ПараметрыПодключения.Вставить("URL", СтруктураНастроек.WSURLВебСервиса); - ПараметрыПодключения.Вставить("UserName", СтруктураНастроек.WSИмяПользователя); - ПараметрыПодключения.Вставить("Password", СтруктураНастроек.WSПароль); - - Возврат ОбщегоНазначения.ПолучитьВерсииИнтерфейса(ПараметрыПодключения, "ОбменСообщениями"); - -КонецФункции - -// Только для внутреннего использования. -Функция СобытиеЖурналаРегистрацииПодключениеКонечнойТочки() Экспорт - - Возврат НСтр("ru = 'Обмен сообщениями.Подключение конечной точки'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -// Только для внутреннего использования. -Функция СобытиеЖурналаРегистрацииУстановкаВедущейКонечнойТочки() Экспорт - - Возврат НСтр("ru = 'Обмен сообщениями.Установка ведущей конечной точки'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -// Только для внутреннего использования. -Функция СобытиеЖурналаРегистрацииЭтойПодсистемы() Экспорт - - Возврат НСтр("ru = 'Обмен сообщениями'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -// Только для внутреннего использования. -Функция НаименованиеЭтогоУзлаПоУмолчанию() Экспорт - - Возврат ?(РаботаВМоделиСервиса.РазделениеВключено(), Метаданные.Синоним, ОбменДаннымиПовтИсп.ИмяЭтойИнформационнойБазы()); - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Локальные служебные процедуры и функции. - -// Только для внутреннего использования. -Процедура ВыполнитьОтправкуИПолучениеСообщенийЧерезWebСервис(Отказ) - - ТекстЗапроса = - "ВЫБРАТЬ РАЗЛИЧНЫЕ - | ОбменСообщениями.Ссылка КАК Ссылка - |ИЗ - | ПланОбмена.ОбменСообщениями КАК ОбменСообщениями - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиТранспортаОбменаСообщениями КАК НастройкиТранспорта - | ПО ОбменСообщениями.Ссылка = НастройкиТранспорта.КонечнаяТочка - |ГДЕ - | ОбменСообщениями.Ссылка <> &ЭтотУзел - | И НЕ ОбменСообщениями.Ведущая - | И НЕ ОбменСообщениями.ПометкаУдаления - | И НЕ ОбменСообщениями.Заблокирована"; - - Запрос = Новый Запрос; - Запрос.УстановитьПараметр("ЭтотУзел", ЭтотУзел()); - Запрос.Текст = ТекстЗапроса; - - РезультатЗапроса = Запрос.Выполнить(); - - Если РезультатЗапроса.Пустой() Тогда - Возврат; - КонецЕсли; - - МассивУзлов = РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Ссылка"); - - // Загрузка данных от всех конечных точек. - Для Каждого Получатель Из МассивУзлов Цикл - - Отказ1 = Ложь; - - ПараметрыОбмена = ОбменДаннымиСервер.ПараметрыОбмена(); - ПараметрыОбмена.ВидТранспортаСообщенийОбмена = Перечисления.ВидыТранспортаСообщенийОбмена.WS; - ПараметрыОбмена.ВыполнятьЗагрузку = Истина; - ПараметрыОбмена.ВыполнятьВыгрузку = Ложь; - - ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(Получатель, ПараметрыОбмена, Отказ1); - - Отказ = Отказ ИЛИ Отказ1; - - КонецЦикла; - - // Выгрузка данных для всех конечных точек. - Для Каждого Получатель Из МассивУзлов Цикл - - Отказ1 = Ложь; - - ПараметрыОбмена = ОбменДаннымиСервер.ПараметрыОбмена(); - ПараметрыОбмена.ВидТранспортаСообщенийОбмена = Перечисления.ВидыТранспортаСообщенийОбмена.WS; - ПараметрыОбмена.ВыполнятьЗагрузку = Ложь; - ПараметрыОбмена.ВыполнятьВыгрузку = Истина; - - ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(Получатель, ПараметрыОбмена, Отказ1); - - Отказ = Отказ ИЛИ Отказ1; - - КонецЦикла; - -КонецПроцедуры - -// Только для внутреннего использования. -Процедура ВыполнитьПодключениеКонечнойТочкиНаСторонеОтправителя(Отказ, - НастройкиПодключенияОтправителя, - НастройкиПодключенияПолучателя, - КонечнаяТочка, - НаименованиеКонечнойТочкиПолучателя, - НаименованиеКонечнойТочкиОтправителя) Экспорт - - ОбменДаннымиСервер.ПроверитьИспользованиеОбменаДанными(); - - СтрокаСообщенияОбОшибке = ""; - - УстановитьПривилегированныйРежим(Истина); - - ВерсииКорреспондента = ВерсииКорреспондента(НастройкиПодключенияОтправителя); - ВерсияКорреспондента_2_0_1_6 = (ВерсииКорреспондента.Найти("2.0.1.6") <> Неопределено); - - Если ВерсияКорреспондента_2_0_1_6 Тогда - WSПрокси = ПолучитьWSПрокси_2_0_1_6(НастройкиПодключенияОтправителя, СтрокаСообщенияОбОшибке); - Иначе - WSПрокси = ПолучитьWSПрокси(НастройкиПодключенияОтправителя, СтрокаСообщенияОбОшибке); - КонецЕсли; - - Если WSПрокси = Неопределено Тогда - Отказ = Истина; - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКонечнойТочки(), УровеньЖурналаРегистрации.Ошибка,,, СтрокаСообщенияОбОшибке); - Возврат; - КонецЕсли; - - Попытка - - Если ВерсияКорреспондента_2_0_1_6 Тогда - WSПрокси.TestConnectionRecipient(СериализаторXDTO.ЗаписатьXDTO(НастройкиПодключенияПолучателя), КодЭтогоУзла()); - Иначе - WSПрокси.TestConnectionRecipient(ЗначениеВСтрокуВнутр(НастройкиПодключенияПолучателя), КодЭтогоУзла()); - КонецЕсли; - - Исключение - Отказ = Истина; - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКонечнойТочки(), УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Возврат; - КонецПопытки; - - Если ВерсияКорреспондента_2_0_1_6 Тогда - ПараметрыКонечнойТочки = СериализаторXDTO.ПрочитатьXDTO(WSПрокси.GetIBParameters(НаименованиеКонечнойТочкиПолучателя)); - Иначе - ПараметрыКонечнойТочки = ЗначениеИзСтрокиВнутр(WSПрокси.GetIBParameters(НаименованиеКонечнойТочкиПолучателя)); - КонецЕсли; - - УзелКонечнойТочки = ПланыОбмена.ОбменСообщениями.НайтиПоКоду(ПараметрыКонечнойТочки.Код); - - Если Не УзелКонечнойТочки.Пустая() Тогда - Отказ = Истина; - СтрокаСообщенияОбОшибке = НСтр("ru = 'Конечная точка уже подключена к информационной базе; наименование точки: %1'", ОбщегоНазначения.КодОсновногоЯзыка()); - СтрокаСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщенияОбОшибке, ОбщегоНазначения.ЗначениеРеквизитаОбъекта(УзелКонечнойТочки, "Наименование")); - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКонечнойТочки(), УровеньЖурналаРегистрации.Ошибка,,, СтрокаСообщенияОбОшибке); - Возврат; - КонецЕсли; - - НачатьТранзакцию(); - Попытка - - // Устанавливаем наименование этой точки при необходимости. - Если ПустаяСтрока(НаименованиеЭтогоУзла()) Тогда - - ЭтотУзелОбъект = ЭтотУзел().ПолучитьОбъект(); - ЭтотУзелОбъект.Наименование = ?(ПустаяСтрока(НаименованиеКонечнойТочкиОтправителя), НаименованиеЭтогоУзлаПоУмолчанию(), НаименованиеКонечнойТочкиОтправителя); - ЭтотУзелОбъект.Записать(); - - КонецЕсли; - - // Создаем узел плана обмена, который соответствует подключаемой конечной точке. - УзелКонечнойТочкиОбъект = ПланыОбмена.ОбменСообщениями.СоздатьУзел(); - УзелКонечнойТочкиОбъект.Код = ПараметрыКонечнойТочки.Код; - УзелКонечнойТочкиОбъект.Наименование = ПараметрыКонечнойТочки.Наименование; - УзелКонечнойТочкиОбъект.Записать(); - - // Обновляем настройки подключения. - СтруктураЗаписи = Новый Структура; - СтруктураЗаписи.Вставить("КонечнаяТочка", УзелКонечнойТочкиОбъект.Ссылка); - - СтруктураЗаписи.Вставить("АдресВебСервиса", НастройкиПодключенияОтправителя.WSURLВебСервиса); - СтруктураЗаписи.Вставить("ИмяПользователя", НастройкиПодключенияОтправителя.WSИмяПользователя); - СтруктураЗаписи.Вставить("Пароль", НастройкиПодключенияОтправителя.WSПароль); - СтруктураЗаписи.Вставить("ЗапомнитьПароль", Истина); - - // добавляем запись в РС - РегистрыСведений.НастройкиТранспортаОбменаСообщениями.ДобавитьЗапись(СтруктураЗаписи); - - ПараметрыЭтойТочки = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЭтотУзел(), "Код, Наименование"); - - // Выполняем подключение конечной точки на стороне получателя. - Если ВерсияКорреспондента_2_0_1_6 Тогда - WSПрокси.ConnectEndPoint(ПараметрыЭтойТочки.Код, ПараметрыЭтойТочки.Наименование, СериализаторXDTO.ЗаписатьXDTO(НастройкиПодключенияПолучателя)); - Иначе - WSПрокси.ConnectEndPoint(ПараметрыЭтойТочки.Код, ПараметрыЭтойТочки.Наименование, ЗначениеВСтрокуВнутр(НастройкиПодключенияПолучателя)); - КонецЕсли; - - // Устанавливаем признак использования регламентного задания. - РегламентныеЗаданияСервер.УстановитьИспользованиеРегламентногоЗадания( - Метаданные.РегламентныеЗадания.ОтправкаИПолучениеСообщенийСистемы, Истина); - - КонечнаяТочка = УзелКонечнойТочкиОбъект.Ссылка; - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - Отказ = Истина; - КонечнаяТочка = Неопределено; - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКонечнойТочки(), УровеньЖурналаРегистрации.Ошибка,,, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Возврат; - КонецПопытки; - -КонецПроцедуры - -// Только для внутреннего использования. -Функция ОбработчикиСообщений() - - Результат = НоваяТаблицаОбработчиковСообщений(); - - ИнтеграцияПодсистемБСП.ПриОпределенииОбработчиковКаналовСообщений(Результат); - - ОбменСообщениямиПереопределяемый.ПолучитьОбработчикиКаналовСообщений(Результат); - - Возврат Результат; - -КонецФункции - -// Только для внутреннего использования. -Функция НоваяТаблицаОбработчиковСообщений() - - Обработчики = Новый ТаблицаЗначений; - Обработчики.Колонки.Добавить("Канал"); - Обработчики.Колонки.Добавить("Обработчик"); - - Возврат Обработчики; -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий отправки и получения сообщений. - -Процедура ПриОтправкеСообщения(Знач КаналСообщений, ТелоСообщения, ОбъектСообщения) - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменСообщениями") Тогда - МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); - МодульСообщенияВМоделиСервиса.ПриОтправкеСообщения(КаналСообщений, ТелоСообщения, ОбъектСообщения); - КонецЕсли; - - ОбменСообщениямиПереопределяемый.ПриОтправкеСообщения(КаналСообщений, ТелоСообщения); - -КонецПроцедуры - -Процедура ПриПолученииСообщения(Знач КаналСообщений, ТелоСообщения, ОбъектСообщения) - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменСообщениями") Тогда - МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); - МодульСообщенияВМоделиСервиса.ПриПолученииСообщения(КаналСообщений, ТелоСообщения, ОбъектСообщения); - КонецЕсли; - - ОбменСообщениямиПереопределяемый.ПриПолученииСообщения(КаналСообщений, ТелоСообщения); - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/ОбменСообщениямиВызовСервера/Module.bsl b/SSL/src/CommonModules/ОбменСообщениямиВызовСервера/Module.bsl deleted file mode 100644 index 85c5882e8..000000000 --- a/SSL/src/CommonModules/ОбменСообщениямиВызовСервера/Module.bsl +++ /dev/null @@ -1,24 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныеПроцедурыИФункции - -// Выполняет отправку и получение сообщений системы. -// -// Параметры: -// Отказ - Булево. Флаг отказа. Поднимается в случае возникновения ошибок в процессе выполнения операции. -// -Процедура ОтправитьИПолучитьСообщения(Отказ) Экспорт - - ОбменДаннымиСервер.ПроверитьВозможностьВыполненияОбменов(); - - ОбменСообщениямиВнутренний.ОтправитьИПолучитьСообщения(Отказ); - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/ОбменСообщениямиВызовСервера/ОбменСообщениямиВызовСервера.mdo b/SSL/src/CommonModules/ОбменСообщениямиВызовСервера/ОбменСообщениямиВызовСервера.mdo deleted file mode 100644 index f9f7b0843..000000000 --- a/SSL/src/CommonModules/ОбменСообщениямиВызовСервера/ОбменСообщениямиВызовСервера.mdo +++ /dev/null @@ -1,10 +0,0 @@ - - - ОбменСообщениямиВызовСервера - - ru - Обмен сообщениями вызов сервера - - true - true - diff --git a/SSL/src/CommonModules/ОбменСообщениямиКлиент/Module.bsl b/SSL/src/CommonModules/ОбменСообщениямиКлиент/Module.bsl deleted file mode 100644 index 4864a20e7..000000000 --- a/SSL/src/CommonModules/ОбменСообщениямиКлиент/Module.bsl +++ /dev/null @@ -1,82 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -// Выполняет отправку и получение сообщений системы. -// -Процедура ОтправитьИПолучитьСообщения() Экспорт - - Отказ = Ложь; - - ОбменСообщениямиВызовСервера.ОтправитьИПолучитьСообщения(Отказ); - - Если Отказ Тогда - - ПоказатьОповещениеПользователя(НСтр("ru = 'Возникли ошибки при отправке и получении сообщений.'"),, - НСтр("ru = 'Используйте журнал регистрации для диагностики ошибок.'"), БиблиотекаКартинок.Ошибка32); - - Иначе - - ПоказатьОповещениеПользователя(НСтр("ru = 'Отправка и получение сообщений успешно завершены.'"),,, БиблиотекаКартинок.Информация32); - - КонецЕсли; - - Оповестить(ИмяСобытияВыполненаОтправкаИПолучениеСообщений()); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Только для внутреннего использования. -// -// Возвращаемое значение: -// Строка. -// -Функция ИмяСобытияДобавленаКонечнаяТочка() Экспорт - - Возврат "ОбменСообщениями.ДобавленаКонечнаяТочка"; - -КонецФункции - -// Только для внутреннего использования. -// -// Возвращаемое значение: -// Строка. -// -Функция ИмяСобытияВыполненаОтправкаИПолучениеСообщений() Экспорт - - Возврат "ОбменСообщениями.ВыполненаОтправкаИПолучение"; - -КонецФункции - -// Только для внутреннего использования. -// -// Возвращаемое значение: -// Строка. -// -Функция ИмяСобытияЗакрытаФормаКонечнойТочки() Экспорт - - Возврат "ОбменСообщениями.ЗакрытаФормаКонечнойТочки"; - -КонецФункции - -// Только для внутреннего использования. -// -// Возвращаемое значение: -// Строка. -// -Функция ИмяСобытияУстановленаВедущаяКонечнаяТочка() Экспорт - - Возврат "ОбменСообщениями.УстановленаВедущаяКонечнаяТочка"; - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/ОбменСообщениямиПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбменСообщениямиПереопределяемый/Module.bsl deleted file mode 100644 index efa289122..000000000 --- a/SSL/src/CommonModules/ОбменСообщениямиПереопределяемый/Module.bsl +++ /dev/null @@ -1,68 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Получает список обработчиков сообщений, которые обрабатывает -// данная информационная система. -// -// Параметры: -// Обработчики - - ТаблицаЗначений - с колонками: -// * Канал - Строка - Канал сообщения. -// * Обработчик - ОбщийМодуль - Обработчик сообщения. -// -Процедура ПолучитьОбработчикиКаналовСообщений(Обработчики) Экспорт - - - -КонецПроцедуры - -// Обработчик получения динамического списка конечных точек сообщений. -// -// Параметры: -// КаналСообщений - Строка - Идентификатор канала сообщений, для которого необходимо определить конечные точки. -// Получатели - Массив - Массив конечных точек, в которые следует адресовать сообщение, -// должен быть заполнен элементами типа ПланОбменаСсылка.ОбменСообщениями. -// Этот параметр необходимо определить в теле обработчика. -// -Процедура ПолучателиСообщения(Знач КаналСообщений, Получатели) Экспорт - - - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий отправки и получения сообщений. - -// Обработчик события при отправке сообщения. -// Обработчик данного события вызывается перед помещением сообщения в XML-поток. -// Обработчик вызывается для каждого отправляемого сообщения. -// -// Параметры: -// КаналСообщений - Строка - Идентификатор канала сообщений, в который отправляется сообщение. -// ТелоСообщения - Произвольный - Тело отправляемого сообщения. В обработчике события тело сообщения -// может быть изменено, например, дополнено информацией. -// -Процедура ПриОтправкеСообщения(КаналСообщений, ТелоСообщения) Экспорт - -КонецПроцедуры - -// Обработчик события при получении сообщения. -// Обработчик данного события вызывается при получении сообщения из XML-потока. -// Обработчик вызывается для каждого получаемого сообщения. -// -// Параметры: -// КаналСообщений - Строка - Идентификатор канала сообщений, из которого получено сообщение. -// ТелоСообщения - Произвольный - Тело полученного сообщения. В обработчике события тело сообщения -// может быть изменено, например, дополнено информацией. -// -Процедура ПриПолученииСообщения(КаналСообщений, ТелоСообщения) Экспорт - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/ОбменСообщениямиПереопределяемый/ОбменСообщениямиПереопределяемый.mdo b/SSL/src/CommonModules/ОбменСообщениямиПереопределяемый/ОбменСообщениямиПереопределяемый.mdo deleted file mode 100644 index 28a434adf..000000000 --- a/SSL/src/CommonModules/ОбменСообщениямиПереопределяемый/ОбменСообщениямиПереопределяемый.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - ОбменСообщениямиПереопределяемый - - ru - Обмен сообщениями переопределяемый - - true - true - true - diff --git a/SSL/src/CommonModules/ОбменСообщениямиПовтИсп/Module.bsl b/SSL/src/CommonModules/ОбменСообщениямиПовтИсп/Module.bsl deleted file mode 100644 index c4d6d0fb1..000000000 --- a/SSL/src/CommonModules/ОбменСообщениямиПовтИсп/Module.bsl +++ /dev/null @@ -1,49 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныеПроцедурыИФункции - -// Возвращает ссылку на объект WSПрокси для заданного узла обмена. -// -// Параметры: -// КонечнаяТочка - ПланОбменаСсылка. -// -Функция WSПроксиКонечнойТочки(КонечнаяТочка, Таймаут) Экспорт - - СтруктураНастроек = РегистрыСведений.НастройкиТранспортаОбменаСообщениями.НастройкиТранспортаWS(КонечнаяТочка); - - СтрокаСообщенияОбОшибке = ""; - - Результат = ОбменСообщениямиВнутренний.ПолучитьWSПрокси(СтруктураНастроек, СтрокаСообщенияОбОшибке, Таймаут); - - Если Результат = Неопределено Тогда - ВызватьИсключение СтрокаСообщенияОбОшибке; - КонецЕсли; - - Возврат Результат; -КонецФункции - -// Возвращает массив менеджеров справочников, которые могут использоваться для хранения -// сообщений. -// -Функция ПолучитьСправочникиСообщений() Экспорт - - МассивСправочников = Новый Массив(); - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - МодульСообщенияВМоделиСервисаРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервисаРазделениеДанных"); - МодульСообщенияВМоделиСервисаРазделениеДанных.ПриЗаполненииСправочниковСообщений(МассивСправочников); - КонецЕсли; - - МассивСправочников.Добавить(Справочники.СообщенияСистемы); - - Возврат Новый ФиксированныйМассив(МассивСправочников); - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазы/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазы/Module.bsl index 5d5d62c79..603397679 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазы/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазы/Module.bsl @@ -159,7 +159,7 @@ // Параметры: // Данные - ЛюбаяСсылка, НаборЗаписей, Объект, ДанныеФормыСтруктура, Строка - ссылка на объект, сам объект, // набор записей или полное имя объекта метаданных, обработку которого необходимо проверить. -// Форма - УправляемаяФорма - если объект не обработан, то у переданной формы +// Форма - ФормаКлиентскогоПриложения - если объект не обработан, то у переданной формы // будет установлено свойство ТолькоПросмотр. Если форма не была // передана, то будет вызвано исключение. // @@ -1418,7 +1418,8 @@ // Структура - результат формирования временной таблицы: // * ЕстьЗаписиВоВременнойТаблице - Булево - в создаваемой таблице есть хотя бы одна запись. Записей может не быть по // двум причинам: -// все обработано или все, что нужно обработать, еще заблокировано обработчиками с меньшей очередью. +// все обработано или все, что нужно обработать, еще заблокировано +// обработчиками с меньшей очередью. // * ЕстьДанныеДляОбработки - Булево - в очереди есть ссылки для обработки, т.е. еще не все обработано. // * ИмяВременнойТаблицы - Строка - имя созданной временной таблицы. // @@ -1684,7 +1685,8 @@ // Структура - результат формирования временной таблицы: // * ЕстьЗаписиВоВременнойТаблице - Булево - в создаваемой таблице есть хотя бы одна запись. Записей может не быть по // двум причинам: -// все обработано или все, что нужно обработать, еще заблокировано обработчиками с меньшей очередью. +// все обработано или все, что нужно обработать, еще заблокировано +// обработчиками с меньшей очередью. // * ЕстьДанныеДляОбработки - Булево - в очереди есть данные для обработки, т.е. еще не все обработано. // * ИмяВременнойТаблицы - Строка - имя созданной временной таблицы. // @@ -3086,6 +3088,28 @@ КонецФункции +#Область ДляВызоваИзДругихПодсистем + +// ИнтернетПоддержкаПользователей.ПолучениеОбновленийПрограммы + +// Возвращает статус отложенных обработчиков обновления. +// +// Возвращаемое значение: +// Строка - пустая строка, если все обработчики успешно выполнились. +// "СтатусНеВыполнено" - есть невыполненные обработчики. +// "СтатусОшибка" - все обработчики завершились, но есть хотя бы один с ошибкой. +// "СтатусПриостановлен" - все обработчики завершились, но есть хотя бы один остановленный. +// +Функция СтатусОтложенногоОбновления() Экспорт + + Возврат ОбновлениеИнформационнойБазыСлужебный.СтатусНевыполненныхОбработчиков(); + +КонецФункции + +// Конец ИнтернетПоддержкаПользователей.ПолучениеОбновленийПрограммы + +#КонецОбласти + #Область УстаревшиеПроцедурыИФункции // Устарела: больше не требуется, т.к. данные действия выполняются автоматически механизмом обновления. diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl index 5ea2800eb..6fb3a7d9e 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыБСП/Module.bsl @@ -41,7 +41,7 @@ Процедура ПриДобавленииПодсистемы(Описание) Экспорт Описание.Имя = "СтандартныеПодсистемы"; - Описание.Версия = "3.0.2.274"; + Описание.Версия = "3.1.1.91"; Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыКлиент/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыКлиент/Module.bsl index a869a9b29..378acc14b 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыКлиент/Module.bsl @@ -6,14 +6,27 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -#Область СлужебныйПрограммныйИнтерфейс +#Область ПрограммныйИнтерфейс -// Открывает форму отложенных обработчиков. +#Область ДляВызоваИзДругихПодсистем + +// ИнтернетПоддержкаПользователей.ПолучениеОбновленийПрограммы + +// Открывает форму со списком отложенных обработчиков +// обновления на текущую версию. // Процедура ПоказатьОтложенныеОбработчики() Экспорт ОткрытьФорму("Обработка.РезультатыОбновленияПрограммы.Форма.ОтложенныеОбработчики"); КонецПроцедуры +// Конец ИнтернетПоддержкаПользователей.ПолучениеОбновленийПрограммы + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыПереопределяемый/Module.bsl index c76b1d6af..e27427d4e 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыПереопределяемый/Module.bsl @@ -139,31 +139,6 @@ Процедура ПриФормированииОчередейОтложенныхОбработчиков(ОбработчикИОчередь) Экспорт -КонецПроцедуры - -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Вызывается для получения списка обработчиков обновления, вызов которых нужно пропустить. -// Отключать можно только обработчики обновления с номером версии "*". -// -// Параметры: -// ОтключаемыеОбработчики - ТаблицаЗначений - с колонками: -// * ИдентификаторБиблиотеки - Строка - имя конфигурации или идентификатор библиотеки. -// * Версия - - Строка - номер версии конфигурации, в которой нужно отключить -// выполнение обработчика. -// * Процедура - - Строка - имя процедуры обработчика обновления, -// которого необходимо отключить. -// -// Пример: -// НовоеИсключение = ОтключаемыеОбработчики.Добавить(); -// НовоеИсключение.ИдентификаторБиблиотеки = "СтандартныеПодсистемы"; -// НовоеИсключение.Версия = "*"; -// НовоеИсключение.Процедура = "ВариантыОтчетов.Обновить"; -// -Процедура ПриОтключенииОбработчиковОбновления(ОтключаемыеОбработчики) Экспорт - КонецПроцедуры #КонецОбласти - -#КонецОбласти diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебный/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебный/Module.bsl index 4490a89ea..cf6cba559 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебный/Module.bsl @@ -356,31 +356,6 @@ Результат = СокрЛП(ТаблицаЗначений[0].Версия); КонецЕсли; - Если ПустаяСтрока(Результат) Тогда - - // Поддержка обновления с БСП 2.1.2. - ТекстЗапроса = - "ВЫБРАТЬ - | УдалитьВерсииПодсистем.Версия - |ИЗ - | РегистрСведений.УдалитьВерсииПодсистем КАК УдалитьВерсииПодсистем - |ГДЕ - | УдалитьВерсииПодсистем.ИмяПодсистемы = &ИмяПодсистемы - | И УдалитьВерсииПодсистем.ОбластьДанных = &ОбластьДанных"; - Запрос = Новый Запрос(ТекстЗапроса); - Запрос.УстановитьПараметр("ИмяПодсистемы", ИдентификаторБиблиотеки); - Если ОбщегоНазначения.РазделениеВключено() Тогда - Запрос.УстановитьПараметр("ОбластьДанных", -1); - Иначе - Запрос.УстановитьПараметр("ОбластьДанных", 0); - КонецЕсли; - ТаблицаЗначений = Запрос.Выполнить().Выгрузить(); - Если ТаблицаЗначений.Количество() > 0 Тогда - Результат = СокрЛП(ТаблицаЗначений[0].Версия); - КонецЕсли; - - КонецЕсли; - КонецЕсли; Возврат ?(ПустаяСтрока(Результат), "0.0.0.0", Результат); @@ -1373,20 +1348,6 @@ Обработчик.Процедура = "ОбновлениеИнформационнойБазыСлужебный.ЗаписатьПодтверждениеЛегальностиПолученияОбновлений"; КонецЕсли; - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.3.4"; - Обработчик.Процедура = "ОбновлениеИнформационнойБазыСлужебный.УстановитьВерсиюОписанийИзменений"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.3.19"; - Обработчик.Процедура = "ОбновлениеИнформационнойБазыСлужебный.ПеренестиВерсииПодсистемВНеразделенныеДанные"; - Обработчик.ОбщиеДанные = Истина; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.2.7"; - Обработчик.Процедура = "ОбновлениеИнформационнойБазыСлужебный.ЗаполнитьРеквизитЭтоОсновнаяКонфигурация"; - Обработчик.ОбщиеДанные = Истина; - Если Не ОбщегоНазначения.РазделениеВключено() Тогда Обработчик = Обработчики.Добавить(); Обработчик.Версия = "3.0.2.160"; @@ -1444,13 +1405,6 @@ МодульВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.ПрогрессОтложенногоОбновления); КонецПроцедуры -// См. СтандартныеПодсистемыСервер.ПроверитьСоставПланаОбмена. -Процедура ПриПолученииОбъектовНачальногоОбразаПланаОбмена(Объекты) Экспорт - - Объекты.Добавить(Метаданные.РегистрыСведений.ВерсииПодсистем); - -КонецПроцедуры - // Перезапускает отложенные обработчики, выполняющиеся только в главном узле // при получении первого сообщения обмена. // @@ -3247,7 +3201,7 @@ Возврат СведенияОбОбновлении.УправлениеОтложеннымОбновлением.Свойство("ФорсироватьОбновление"); Иначе Приоритет = Неопределено; - ИнтеграцияСТехнологиейСервиса.ПриПолученииПриоритетаОбновления(Приоритет); + ИнтеграцияПодсистемБСП.ПриПолученииПриоритетаОбновления(Приоритет); Если Приоритет = "РаботаПользователей" Тогда Возврат Ложь; @@ -3556,13 +3510,9 @@ Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Поток.ИдентификаторЗадания); Если Задание <> Неопределено Тогда - Попытка - Задание.ОжидатьЗавершения(Длительность); - Возврат Истина; - Исключение - // Специальная обработка не требуется, возможно исключение вызвано истечением времени ожидания. - Возврат Ложь; - КонецПопытки; + Задание = Задание.ОжидатьЗавершенияВыполнения(Длительность); + ЗаданиеЗавершено = (Задание.Состояние <> СостояниеФоновогоЗадания.Активно); + Возврат ЗаданиеЗавершено; КонецЕсли; КонецЕсли; @@ -4549,121 +4499,6 @@ //////////////////////////////////////////////////////////////////////////////// // ОБРАБОТЧИКИ ОБНОВЛЕНИЯ ИНФОРМАЦИОННОЙ БАЗЫ -// Переносит данные из регистра сведений УдалитьВерсииПодсистем в регистр сведений ВерсииПодсистем. -// -Процедура ПеренестиВерсииПодсистемВНеразделенныеДанные() Экспорт - - НачатьТранзакцию(); - - Попытка - - Если ОбщегоНазначения.РазделениеВключено() Тогда - ОбластьДляОбщихДанных = -1; - Иначе - ОбластьДляОбщихДанных = 0; - КонецЕсли; - - ТекстЗапроса = - "ВЫБРАТЬ - | УдалитьВерсииПодсистем.ИмяПодсистемы, - | УдалитьВерсииПодсистем.Версия, - | УдалитьВерсииПодсистем.ПланОбновления - |ИЗ - | РегистрСведений.УдалитьВерсииПодсистем КАК УдалитьВерсииПодсистем - |ГДЕ - | УдалитьВерсииПодсистем.ОбластьДанных = &ОбластьДанных"; - - Запрос = Новый Запрос(ТекстЗапроса); - Запрос.УстановитьПараметр("ОбластьДанных", ОбластьДляОбщихДанных); - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - - Менеджер = РегистрыСведений.ВерсииПодсистем.СоздатьМенеджерЗаписи(); - Менеджер.ИмяПодсистемы = Выборка.ИмяПодсистемы; - Менеджер.Версия = Выборка.Версия; - Менеджер.ПланОбновления = Выборка.ПланОбновления; - Менеджер.Записать(); - - КонецЦикла; - - Набор = РегистрыСведений.УдалитьВерсииПодсистем.СоздатьНаборЗаписей(); - Набор.Отбор.ОбластьДанных.Установить(ОбластьДляОбщихДанных); - Набор.Записать(); - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - -// Заполняет значение реквизита ЭтоОсновнаяКонфигурация в записях регистра сведений ВерсииПодсистем. -// -Процедура ЗаполнитьРеквизитЭтоОсновнаяКонфигурация() Экспорт - - УстановитьВерсиюИБ(Метаданные.Имя, ВерсияИБ(Метаданные.Имя), Истина); - -КонецПроцедуры - -// Устанавливает последнюю отображенную версию описания изменений всем пользователям -// области данных в текущую версию (по данным регистра ВерсииПодсистем). -// -Процедура УстановитьВерсиюОписанийИзменений() Экспорт - - ТекущаяВерсия = ВерсияИБ(Метаданные.Имя); - - УстановитьПривилегированныйРежим(Истина); - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | Пользователи.ИдентификаторПользователяИБ КАК Идентификатор - |ИЗ - | Справочник.Пользователи КАК Пользователи - |ГДЕ - | Пользователи.Служебный = ЛОЖЬ - | И Пользователи.ИдентификаторПользователяИБ <> &ПустойИдентификатор"; - Запрос.УстановитьПараметр("ПустойИдентификатор", ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор()); - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - - ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Выборка.Идентификатор); - Если ПользовательИБ = Неопределено Тогда - Продолжить; - КонецЕсли; - - ПоследняяВерсия = ПоследняяВерсияОтображенияИзмененийСистемы(ПользовательИБ.Имя); - Если ПоследняяВерсия <> Неопределено Тогда - Возврат; - КонецЕсли; - - ПоследняяВерсия = ТекущаяВерсия; - - ВыполненныеОбработчики = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("ОбновлениеИБ", - "ВыполненныеОбработчики", , , ПользовательИБ.Имя); - - Если ВыполненныеОбработчики <> Неопределено Тогда - - Если ВыполненныеОбработчики.Строки.Количество() > 0 Тогда - Версия = ВыполненныеОбработчики.Строки[ВыполненныеОбработчики.Строки.Количество() - 1].Версия; - Если Версия <> "*" Тогда - ПоследняяВерсия = Версия; - КонецЕсли; - КонецЕсли; - - КонецЕсли; - - ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("ОбновлениеИБ", - "ПоследняяВерсияОтображенияИзмененийСистемы", ПоследняяВерсия, , ПользовательИБ.Имя); - КонецЦикла; - -КонецПроцедуры - // Устанавливает ключ регламентного задания ОтложенноеОбновлениеИБ. // Процедура УстановитьКлючРегламентногоЗадания() Экспорт @@ -4703,20 +4538,11 @@ "ВЫБРАТЬ | 1 КАК ЕстьВерсииПодсистем |ИЗ - | РегистрСведений.ВерсииПодсистем КАК ВерсииПодсистем - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | 1 - |ИЗ - | РегистрСведений.УдалитьВерсииПодсистем КАК УдалитьВерсииПодсистем"; + | РегистрСведений.ВерсииПодсистем КАК ВерсииПодсистем"; РезультатВыполненияПакета = Запрос.ВыполнитьПакет(); - Если РезультатВыполненияПакета[0].Пустой() И РезультатВыполненияПакета[1].Пустой() Тогда + Если РезультатВыполненияПакета[0].Пустой() Тогда Возврат "НачальноеЗаполнение"; - ИначеЕсли РезультатВыполненияПакета[0].Пустой() И Не РезультатВыполненияПакета[1].Пустой() Тогда - Возврат "ОбновлениеВерсии"; // Поддержка обновления с БСП 2.1.2. КонецЕсли; Запрос = Новый Запрос; @@ -4930,8 +4756,6 @@ ОтключаемыеОбработчики.Колонки.Добавить("Процедура"); ОтключаемыеОбработчики.Колонки.Добавить("Версия"); - ОбновлениеИнформационнойБазыПереопределяемый.ПриОтключенииОбработчиковОбновления(ОтключаемыеОбработчики); - // Поиск строки дерева, содержащей обработчики обновления с версией "*". ОбработчикиБиблиотеки = ВыполняемыеОбработчики.Строки.Найти("*", "Версия", Ложь); @@ -5785,6 +5609,11 @@ КонецЕсли; НайденныйОбработчик = Библиотека.Обработчики.Найти(Обработчик.ИмяОбработчика, "Процедура"); + Если НайденныйОбработчик <> Неопределено И НайденныйОбработчик.Версия = "*" Тогда + // Обработчик добавляется заново при каждом обновлении, сохранять не требуется. + Возврат Ложь; + КонецЕсли; + Если НайденныйОбработчик <> Неопределено И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(НайденныйОбработчик.Версия, Обработчик.НомерВерсии) > 0 И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(НайденныйОбработчик.Версия, Библиотека.ПредыдущаяВерсия) > 0 Тогда diff --git a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса/Module.bsl index c951d0fac..fd97337b8 100644 --- a/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса/Module.bsl @@ -21,8 +21,8 @@ Процедура СформироватьПланОбновленияОбластиДанных(ИдентификаторБиблиотеки, ВсеОбработчики, ОбязательныеРазделенныеОбработчики, ИсходнаяВерсияИБ, ВерсияМетаданныхИБ) Экспорт - Если РаботаВМоделиСервиса.РазделениеВключено() - И Не РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда + Если ОбщегоНазначения.РазделениеВключено() + И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда ОбработчикиОбновления = ВсеОбработчики.СкопироватьКолонки(); Для Каждого СтрокаОбработчика Из ВсеОбработчики Цикл @@ -231,9 +231,9 @@ Функция ЗаблокироватьВерсииОбластиДанных() Экспорт КлючЗаписи = Неопределено; - Если РаботаВМоделиСервиса.РазделениеВключено() Тогда + Если ОбщегоНазначения.РазделениеВключено() Тогда - Если РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда + Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда УстановитьПривилегированныйРежим(Истина); КонецЕсли; @@ -269,8 +269,7 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. +#Область ОбработчикиСобытийПодсистемКонфигурации // Устанавливает в очереди заданий флаг использования того задания, которое // соответствует регламентному заданию для выполнения отложенного обновления. @@ -280,22 +279,28 @@ // Процедура ПриВключенииОтложенногоОбновления(Знач Использование) Экспорт - Шаблон = ОчередьЗаданий.ШаблонПоИмени("ОтложенноеОбновлениеИБ"); + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда - ОтборЗадания = Новый Структура; - ОтборЗадания.Вставить("Шаблон", Шаблон); - Задания = ОчередьЗаданий.ПолучитьЗадания(ОтборЗадания); - - ПараметрыЗадания = Новый Структура("Использование", Использование); - ОчередьЗаданий.ИзменитьЗадание(Задания[0].Идентификатор, ПараметрыЗадания); + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + + Шаблон = МодульОчередьЗаданий.ШаблонПоИмени("ОтложенноеОбновлениеИБ"); + + ОтборЗадания = Новый Структура; + ОтборЗадания.Вставить("Шаблон", Шаблон); + Задания = МодульОчередьЗаданий.ПолучитьЗадания(ОтборЗадания); + + ПараметрыЗадания = Новый Структура("Использование", Использование); + МодульОчередьЗаданий.ИзменитьЗадание(Задания[0].Идентификатор, ПараметрыЗадания); + + КонецЕсли; КонецПроцедуры // См. ОбновлениеИнформационнойБазыБСП.ПередОбновлениемИнформационнойБазы. Процедура ПередОбновлениемИнформационнойБазы() Экспорт - Если РаботаВМоделиСервиса.РазделениеВключено() - И РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда + Если ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда ВерсияОбщихДанных = ОбновлениеИнформационнойБазыСлужебный.ВерсияИБ(Метаданные.Имя, Истина); Если ОбновлениеИнформационнойБазыСлужебный.НеобходимоВыполнитьОбновление(Метаданные.Версия, ВерсияОбщихДанных) Тогда @@ -311,9 +316,12 @@ // Только для внутреннего использования. Процедура ПриОпределенииВерсииИБ(Знач ИдентификаторБиблиотеки, Знач ПолучитьВерсиюОбщихДанных, СтандартнаяОбработка, ВерсияИБ) Экспорт - Если РаботаВМоделиСервиса.ИспользованиеРазделителяСеанса() И Не ПолучитьВерсиюОбщихДанных Тогда + Если ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() + И Не ПолучитьВерсиюОбщихДанных Тогда СтандартнаяОбработка = Ложь; + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ТекстЗапроса = "ВЫБРАТЬ @@ -325,7 +333,7 @@ | И ВерсииПодсистемОбластейДанных.ОбластьДанныхВспомогательныеДанные = &ОбластьДанныхВспомогательныеДанные"; Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("ИмяПодсистемы", ИдентификаторБиблиотеки); - Запрос.УстановитьПараметр("ОбластьДанныхВспомогательныеДанные", РаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); + Запрос.УстановитьПараметр("ОбластьДанныхВспомогательныеДанные", МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); ТаблицаЗначений = Запрос.Выполнить().Выгрузить(); ВерсияИБ = ""; Если ТаблицаЗначений.Количество() > 0 Тогда @@ -339,9 +347,11 @@ // Только для внутреннего использования. Процедура ПриОпределенииПервогоВходаВОбластьДанных(СтандартнаяОбработка, Результат) Экспорт - Если РаботаВМоделиСервиса.ИспользованиеРазделителяСеанса() Тогда + Если ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда СтандартнаяОбработка = Ложь; + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1 @@ -351,7 +361,7 @@ |ГДЕ | ВерсииПодсистемОбластейДанных.ОбластьДанныхВспомогательныеДанные = &ОбластьДанныхВспомогательныеДанные"; Запрос = Новый Запрос(ТекстЗапроса); - Запрос.УстановитьПараметр("ОбластьДанныхВспомогательныеДанные", РаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); + Запрос.УстановитьПараметр("ОбластьДанныхВспомогательныеДанные", МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); Результат = Запрос.Выполнить().Пустой(); КонецЕсли; @@ -361,11 +371,13 @@ // Только для внутреннего использования. Процедура ПриУстановкеВерсииИБ(Знач ИдентификаторБиблиотеки, Знач НомерВерсии, СтандартнаяОбработка) Экспорт - Если РаботаВМоделиСервиса.ИспользованиеРазделителяСеанса() Тогда + Если ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда СтандартнаяОбработка = Ложь; + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ОбластьДанных = РаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОбластьДанных = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); МенеджерЗаписи = РегистрыСведений.ВерсииПодсистемОбластейДанных.СоздатьМенеджерЗаписи(); МенеджерЗаписи.ОбластьДанныхВспомогательныеДанные = ОбластьДанных; @@ -380,8 +392,12 @@ // Только для внутреннего использования. Процедура ПриПроверкеРегистрацииОтложенныхОбработчиковОбновления(РегистрацияВыполнена, СтандартнаяОбработка) Экспорт - Если РаботаВМоделиСервиса.ИспользованиеРазделителяСеанса() Тогда + Если ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + СтандартнаяОбработка = Ложь; + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ @@ -392,7 +408,7 @@ | НЕ ВерсииПодсистемОбластейДанных.ВыполненаРегистрацияОтложенныхОбработчиков | И ВерсииПодсистемОбластейДанных.ОбластьДанныхВспомогательныеДанные = &ОбластьДанныхВспомогательныеДанные"; - Запрос.УстановитьПараметр("ОбластьДанныхВспомогательныеДанные", РаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); + Запрос.УстановитьПараметр("ОбластьДанныхВспомогательныеДанные", МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); Результат = Запрос.Выполнить().Выгрузить(); РегистрацияВыполнена = (Результат.Количество() = 0); КонецЕсли; @@ -402,7 +418,9 @@ // Только для внутреннего использования. Процедура ПриОтметкеРегистрацииОтложенныхОбработчиковОбновления(ИмяПодсистемы, Значение, СтандартнаяОбработка) Экспорт - Если РаботаВМоделиСервиса.ИспользованиеРазделителяСеанса() Тогда + Если ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + СтандартнаяОбработка = Ложь; НаборЗаписей = РегистрыСведений.ВерсииПодсистемОбластейДанных.СоздатьНаборЗаписей(); @@ -419,6 +437,7 @@ ЗаписьРегистра.ВыполненаРегистрацияОтложенныхОбработчиков = Значение; КонецЦикла; НаборЗаписей.Записать(); + КонецЕсли; КонецПроцедуры @@ -426,9 +445,11 @@ // Только для внутреннего использования. Процедура ПриОтправкеВерсийПодсистем(ЭлементДанных, ОтправкаЭлемента, Знач СозданиеНачальногоОбраза, СтандартнаяОбработка) Экспорт - Если Не РаботаВМоделиСервиса.ИспользованиеРазделителяСеанса() Тогда + Если Не ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда Возврат; КонецЕсли; + СтандартнаяОбработка = Ложь; Если ОтправкаЭлемента = ОтправкаЭлементаДанных.Удалить @@ -440,46 +461,33 @@ Если СозданиеНачальногоОбраза Тогда - Если РаботаВМоделиСервиса.РазделениеВключено() Тогда + Для Каждого СтрокаНабора Из ЭлементДанных Цикл - Если РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда + ТекстЗапроса = + "ВЫБРАТЬ + | ВерсииПодсистемОбластейДанных.Версия КАК Версия + |ИЗ + | РегистрСведений.ВерсииПодсистемОбластейДанных КАК ВерсииПодсистемОбластейДанных + |ГДЕ + | ВерсииПодсистемОбластейДанных.ИмяПодсистемы = &ИмяПодсистемы"; + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ИмяПодсистемы", СтрокаНабора.ИмяПодсистемы); + Запрос.Текст = ТекстЗапроса; + + Выборка = Запрос.Выполнить().Выбрать(); + + Если Выборка.Следующий() Тогда - Для Каждого СтрокаНабора Из ЭлементДанных Цикл - - ТекстЗапроса = - "ВЫБРАТЬ - | ВерсииПодсистемОбластейДанных.Версия КАК Версия - |ИЗ - | РегистрСведений.ВерсииПодсистемОбластейДанных КАК ВерсииПодсистемОбластейДанных - |ГДЕ - | ВерсииПодсистемОбластейДанных.ИмяПодсистемы = &ИмяПодсистемы"; - - Запрос = Новый Запрос; - Запрос.УстановитьПараметр("ИмяПодсистемы", СтрокаНабора.ИмяПодсистемы); - Запрос.Текст = ТекстЗапроса; - - Выборка = Запрос.Выполнить().Выбрать(); - - Если Выборка.Следующий() Тогда - - СтрокаНабора.Версия = Выборка.Версия; - - Иначе - - СтрокаНабора.Версия = ""; - - КонецЕсли; - - КонецЦикла; + СтрокаНабора.Версия = Выборка.Версия; + + Иначе + + СтрокаНабора.Версия = ""; КонецЕсли; - Иначе - - // При создании начального образа с отключенным разделением - // выгрузку регистра выполняем без дополнительной обработки. - - КонецЕсли; + КонецЦикла; Иначе @@ -519,7 +527,7 @@ Процедура ПослеОбновленияИнформационнойБазы(Знач ПредыдущаяВерсия, Знач ТекущаяВерсия, Знач ВыполненныеОбработчики, ВыводитьОписаниеОбновлений, МонопольныйРежим) Экспорт - Если РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда + Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда ПараметрыБлокировки = СоединенияИБ.ПолучитьБлокировкуСеансовОбластиДанных(); Если НЕ ПараметрыБлокировки.Установлена Тогда @@ -563,34 +571,6 @@ КонецПроцедуры -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.3.19"; - Обработчик.Процедура = "ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ПеренестиВерсииПодсистемВоВспомогательныеДанные"; - Обработчик.ОбщиеДанные = Истина; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.1.48"; - Обработчик.МонопольныйРежим = Ложь; - Обработчик.ОбщиеДанные = Истина; - Обработчик.НачальноеЗаполнение = Истина; - Обработчик.Процедура = "ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ПеренестиПаролиВБезопасноеХранилище"; - -КонецПроцедуры - -// См. СтандартныеПодсистемыСервер.ПроверитьСоставПланаОбмена. -Процедура ПриПолученииОбъектовИсключенийПланаОбмена(Объекты, Знач РаспределеннаяИнформационнаяБаза) Экспорт - - Если РаспределеннаяИнформационнаяБаза Тогда - - Объекты.Добавить(Метаданные.РегистрыСведений.ВерсииПодсистемОбластейДанных); - - КонецЕсли; - -КонецПроцедуры - // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПослеЗагрузкиДанных. Процедура ПослеЗагрузкиДанных(Контейнер) Экспорт @@ -603,49 +583,59 @@ КонецПроцедуры -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -//////////////////////////////////////////////////////////////////////////////// -// ОБРАБОТЧИКИ ОБНОВЛЕНИЯ ИНФОРМАЦИОННОЙ БАЗЫ - -// Переносит данные из регистра сведений УдалитьВерсииПодсистем в регистр -// сведений ВерсииПодсистемОбластейДанных. -Процедура ПеренестиВерсииПодсистемВоВспомогательныеДанные() Экспорт +// Вызывается перед выгрузкой данных. +// +// Параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе выгрузи данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. +Процедура ПередВыгрузкойДанных(Контейнер) Экспорт - Если Не РаботаВМоделиСервиса.РазделениеВключено() Тогда + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ВыгрузкаЗагрузкаДанных") Тогда Возврат; КонецЕсли; + ИмяФайла = Контейнер.СоздатьПроизвольныйФайл("xml", ТипДанныхДляВыгрузкиЗагрузкиВерсийПодсистем()); + ВерсииПодсистем = Новый Структура(); + + ОписанияПодсистем = СтандартныеПодсистемыПовтИсп.ОписанияПодсистем().ПоИменам; + Для Каждого ОписаниеПодсистемы Из ОписанияПодсистем Цикл + ВерсииПодсистем.Вставить(ОписаниеПодсистемы.Ключ, ОбновлениеИнформационнойБазы.ВерсияИБ(ОписаниеПодсистемы.Ключ)); + КонецЦикла; + + МодульВыгрузкаЗагрузкаДанных = ОбщегоНазначения.ОбщийМодуль("ВыгрузкаЗагрузкаДанных"); + МодульВыгрузкаЗагрузкаДанных.ЗаписатьОбъектВФайл(ВерсииПодсистем, ИмяФайла); + + Контейнер.УстановитьКоличествоОбъектов(ИмяФайла, ВерсииПодсистем.Количество()); + +КонецПроцедуры + +// Вызывается перед загрузкой данных. +// +// Параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. +// +Процедура ПередЗагрузкойДанных(Контейнер) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ВыгрузкаЗагрузкаДанных") Тогда + Возврат; + КонецЕсли; + + ИмяФайла = Контейнер.ПолучитьПроизвольныйФайл(ТипДанныхДляВыгрузкиЗагрузкиВерсийПодсистем()); + + МодульВыгрузкаЗагрузкаДанных = ОбщегоНазначения.ОбщийМодуль("ВыгрузкаЗагрузкаДанных"); + ВерсииПодсистем = МодульВыгрузкаЗагрузкаДанных.ПрочитатьОбъектИзФайла(ИмяФайла); + НачатьТранзакцию(); Попытка - Блокировка = Новый БлокировкаДанных(); - Блокировка.Добавить("РегистрСведений.ВерсииПодсистемОбластейДанных"); - Блокировка.Заблокировать(); - - ТекстЗапроса = - "ВЫБРАТЬ - | ЕСТЬNULL(ВерсииПодсистемОбластейДанных.ОбластьДанныхВспомогательныеДанные, УдалитьВерсииПодсистем.ОбластьДанных) КАК ОбластьДанныхВспомогательныеДанные, - | ЕСТЬNULL(ВерсииПодсистемОбластейДанных.ИмяПодсистемы, УдалитьВерсииПодсистем.ИмяПодсистемы) КАК ИмяПодсистемы, - | ЕСТЬNULL(ВерсииПодсистемОбластейДанных.Версия, УдалитьВерсииПодсистем.Версия) КАК Версия - |ИЗ - | РегистрСведений.УдалитьВерсииПодсистем КАК УдалитьВерсииПодсистем - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВерсииПодсистемОбластейДанных КАК ВерсииПодсистемОбластейДанных - | ПО УдалитьВерсииПодсистем.ОбластьДанных = ВерсииПодсистемОбластейДанных.ОбластьДанныхВспомогательныеДанные - | И УдалитьВерсииПодсистем.ИмяПодсистемы = ВерсииПодсистемОбластейДанных.ИмяПодсистемы - |ГДЕ - | УдалитьВерсииПодсистем.ОбластьДанных <> -1"; - Запрос = Новый Запрос(ТекстЗапроса); - - ВерсииПодсистемОбластейДанных = РегистрыСведений.ВерсииПодсистемОбластейДанных.СоздатьНаборЗаписей(); - ВерсииПодсистемОбластейДанных.Загрузить(Запрос.Выполнить().Выгрузить()); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ВерсииПодсистемОбластейДанных); - - НаборУдалитьВерсииПодсистем = РегистрыСведений.УдалитьВерсииПодсистем.СоздатьНаборЗаписей(); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборУдалитьВерсииПодсистем); + Для Каждого ВерсияПодсистемы Из ВерсииПодсистем Цикл + ОбновлениеИнформационнойБазыСлужебный.УстановитьВерсиюИБ(ВерсияПодсистемы.Ключ, ВерсияПодсистемы.Значение, (ВерсияПодсистемы.Ключ = Метаданные.Имя)); + ПриОтметкеРегистрацииОтложенныхОбработчиковОбновления(ВерсияПодсистемы.Ключ, Истина, Истина); + КонецЦикла; ЗафиксироватьТранзакцию(); @@ -658,29 +648,23 @@ КонецПроцедуры -// Перенести пароли в безопасное хранилище. -// -Процедура ПеренестиПаролиВБезопасноеХранилище() Экспорт - - Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.УдаленноеАдминистрированиеВМоделиСервиса") Тогда - Возврат; - КонецЕсли; - - // Для служебного пользователя Менеджера сервиса. - ИмяСлужебногоПользователяМенеджераСервиса = Константы.УдалитьИмяСлужебногоПользователяМенеджераСервиса.Получить(); - ПарольСлужебногоПользователяМенеджераСервиса = Константы.УдалитьПарольСлужебногоПользователяМенеджераСервиса.Получить(); - Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Константа.ВнутреннийАдресМенеджераСервиса"); - УстановитьПривилегированныйРежим(Истина); - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, ИмяСлужебногоПользователяМенеджераСервиса, "ИмяСлужебногоПользователяМенеджераСервиса"); - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, ПарольСлужебногоПользователяМенеджераСервиса, "ПарольСлужебногоПользователяМенеджераСервиса"); - УстановитьПривилегированныйРежим(Ложь); - Константы.УдалитьИмяСлужебногоПользователяМенеджераСервиса.Установить(""); - Константы.УдалитьПарольСлужебногоПользователяМенеджераСервиса.Установить(""); - -КонецПроцедуры +#КонецОбласти -//////////////////////////////////////////////////////////////////////////////// -// Обновление областей данных. +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область ОбработчикиОбновленияИнформационнойБазы + +Функция ТипДанныхДляВыгрузкиЗагрузкиВерсийПодсистем() + + Возврат "1cfresh\ApplicationData\SubstemVersions"; + +КонецФункции + +#КонецОбласти + +#Область ОбновлениеОбластейДанных // Возвращает ключ записи для регистра сведений ВерсииПодсистемОбластейДанных. // @@ -690,17 +674,23 @@ Функция КлючЗаписиВерсийПодсистем() ЗначенияКлюча = Новый Структура; - Если РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда - ЗначенияКлюча.Вставить("ОбластьДанныхВспомогательныеДанные", РаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); + Если ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + + ЗначенияКлюча.Вставить("ОбластьДанныхВспомогательныеДанные", МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); ЗначенияКлюча.Вставить("ИмяПодсистемы", ""); - КлючЗаписи = РаботаВМоделиСервиса.СоздатьКлючЗаписиРегистраСведенийВспомогательныхДанных( + КлючЗаписи = МодульРаботаВМоделиСервиса.СоздатьКлючЗаписиРегистраСведенийВспомогательныхДанных( РегистрыСведений.ВерсииПодсистемОбластейДанных, ЗначенияКлюча); + КонецЕсли; Возврат КлючЗаписи; КонецФункции + // Выбирает все области данных с неактуальными версиями // и при необходимости формирует фоновые задания по обновлению // версии в них. @@ -712,14 +702,17 @@ // Процедура ЗапланироватьОбновлениеОбластейДанных(Знач БлокироватьОбласти = Истина, Знач СообщениеБлокировки = "") - УстановитьПривилегированныйРежим(Истина); - - Если НЕ РаботаВМоделиСервиса.РазделениеВключено() Тогда + Если НЕ ОбщегоНазначения.РазделениеВключено() + Или Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда Возврат; КонецЕсли; + УстановитьПривилегированныйРежим(Истина); + + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); Если ПустаяСтрока(СообщениеБлокировки) Тогда - СообщениеБлокировки = Константы.СообщениеБлокировкиПриОбновленииКонфигурации.Получить(); + СообщениеБлокировки = Константы["СообщениеБлокировкиПриОбновленииКонфигурации"].Получить(); Если ПустаяСтрока(СообщениеБлокировки) Тогда СообщениеБлокировки = НСтр("ru = 'Система заблокирована для выполнения обновления.'"); КонецЕсли; @@ -762,7 +755,7 @@ | ОбластьДанных"; Запрос.УстановитьПараметр("ИмяПодсистемы", Метаданные.Имя); Запрос.УстановитьПараметр("Версия", ВерсияМетаданных); - Результат = РаботаВМоделиСервиса.ВыполнитьЗапросВнеТранзакции(Запрос); + Результат = ВыполнитьЗапросВнеТранзакции(Запрос); Если Результат.Пустой() Тогда // Предварительное чтение, возможно с проявлениями грязного чтения. Возврат; КонецЕсли; @@ -770,15 +763,6 @@ Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 - | ОбластиДанных.Статус КАК Статус - |ИЗ - | РегистрСведений.ОбластиДанных КАК ОбластиДанных - |ГДЕ - | ОбластиДанных.ОбластьДанныхВспомогательныеДанные = &ОбластьДанных - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ ПЕРВЫЕ 1 | ВерсииПодсистемОбластейДанных.Версия КАК Версия |ИЗ | РегистрСведений.ВерсииПодсистемОбластейДанных КАК ВерсииПодсистемОбластейДанных @@ -792,7 +776,7 @@ ЗначенияКлюча = Новый Структура; ЗначенияКлюча.Вставить("ОбластьДанныхВспомогательныеДанные", Выборка.ОбластьДанных); ЗначенияКлюча.Вставить("ИмяПодсистемы", ""); - КлючЗаписи = РаботаВМоделиСервиса.СоздатьКлючЗаписиРегистраСведенийВспомогательныхДанных( + КлючЗаписи = МодульРаботаВМоделиСервиса.СоздатьКлючЗаписиРегистраСведенийВспомогательныхДанных( РегистрыСведений.ВерсииПодсистемОбластейДанных, ЗначенияКлюча); ОшибкаУстановкиБлокировки = Ложь; @@ -821,19 +805,16 @@ Блокировка.Заблокировать(); - Результаты = Запрос.ВыполнитьПакет(); + СтатусОбласти = МодульРаботаВМоделиСервиса.СтатусОбластиДанных(Выборка.ОбластьДанных); - СтрокаОбласти = Неопределено; - Если НЕ Результаты[0].Пустой() Тогда - СтрокаОбласти = Результаты[0].Выгрузить()[0]; - КонецЕсли; + Результаты = Запрос.Выполнить().Выгрузить(); СтрокаВерсии = Неопределено; - Если НЕ Результаты[1].Пустой() Тогда - СтрокаВерсии = Результаты[1].Выгрузить()[0]; + Если Результаты.Количество() > 0 Тогда + СтрокаВерсии = Результаты[0]; КонецЕсли; - Если СтрокаОбласти = Неопределено - ИЛИ СтрокаОбласти.Статус <> Перечисления.СтатусыОбластейДанных.Используется + Если СтатусОбласти = Неопределено + ИЛИ СтатусОбласти <> Перечисления["СтатусыОбластейДанных"].Используется ИЛИ (СтрокаВерсии <> Неопределено И СтрокаВерсии.Версия = ВерсияМетаданных) Тогда // Записи не соответствуют исходному критерию. @@ -845,7 +826,7 @@ ОтборЗадания.Вставить("ИмяМетода", "ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ВыполнитьОбновлениеТекущейОбластиДанных"); ОтборЗадания.Вставить("Ключ", "1"); ОтборЗадания.Вставить("ОбластьДанных", Выборка.ОбластьДанных); - Задания = ОчередьЗаданий.ПолучитьЗадания(ОтборЗадания); + Задания = МодульОчередьЗаданий.ПолучитьЗадания(ОтборЗадания); Если Задания.Количество() > 0 Тогда // Уже есть задание обновления области. ЗафиксироватьТранзакцию(); @@ -860,7 +841,7 @@ ПараметрыЗадания.Вставить("ЭксклюзивноеВыполнение", Истина); ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 3); - ОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); + МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); Если БлокироватьОбласти Тогда СоединенияИБ.УстановитьБлокировкуСеансовОбластиДанных(ПараметрыБлокировки, Ложь, Выборка.ОбластьДанных); @@ -901,7 +882,7 @@ // Процедура ОбновлениеОбластейДанных() Экспорт - Если НЕ РаботаВМоделиСервиса.РазделениеВключено() Тогда + Если НЕ ОбщегоНазначения.РазделениеВключено() Тогда Возврат; КонецЕсли; @@ -917,7 +898,9 @@ УстановитьПривилегированныйРежим(Истина); - Если РаботаВМоделиСервиса.РазделениеВключено() И РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда + Если ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + ВызватьИсключение НСтр("ru = 'Вызов функции ОбновлениеИнформационнойБазыСлужебныйПовтИсп.МинимальнаяВерсияОбластейДанных() |недоступен из сеансов с установленным значением разделителей модели сервиса.'"); КонецЕсли; @@ -990,3 +973,32 @@ КонецПроцедуры #КонецОбласти + +Функция ВыполнитьЗапросВнеТранзакции(Знач Запрос) + + Если ТранзакцияАктивна() Тогда + ВызватьИсключение(НСтр("ru = 'Транзакция активна. Выполнение запроса вне транзакции невозможно.'")); + КонецЕсли; + + КоличествоПопыток = 0; + + Результат = Неопределено; + Пока Истина Цикл + Попытка + Результат = Запрос.Выполнить(); // Чтение вне транзакции, возможно появление ошибки. + // Could not continue scan with NOLOCK due to data movement + // в этом случае нужно повторить попытку чтения. + Прервать; + Исключение + КоличествоПопыток = КоличествоПопыток + 1; + Если КоличествоПопыток = 5 Тогда + ВызватьИсключение; + КонецЕсли; + КонецПопытки; + КонецЦикла; + + Возврат Результат; + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/ОбновлениеКонфигурации/Module.bsl b/SSL/src/CommonModules/ОбновлениеКонфигурации/Module.bsl index 1cfbf3211..2abf840af 100644 --- a/SSL/src/CommonModules/ОбновлениеКонфигурации/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеКонфигурации/Module.bsl @@ -310,8 +310,9 @@ ДвоичныеДанныеИсправления = Новый ДвоичныеДанные(ПолноеИмяИсправления); Расширение = РасширенияКонфигурации.Создать(); + Справочники.ВерсииРасширений.ОтключитьПредупрежденияБезопасности(Расширение); + Справочники.ВерсииРасширений.ОтключитьИспользованиеОсновныхРолейДляВсехПользователей(Расширение); Расширение.БезопасныйРежим = Ложь; - Расширение.ЗащитаОтОпасныхДействий = ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений(); Расширение.ИспользуетсяВРаспределеннойИнформационнойБазе = Истина; Расширение.Записать(ДвоичныеДанныеИсправления); @@ -688,14 +689,12 @@ КонецПроцедуры -// Выполняет очистку всех настроек обновления конфигурации. Процедура СброситьСтатусОбновленияКонфигурации() Экспорт Константы.СтатусОбновленияКонфигурации.Установить(Новый ХранилищеЗначения(Неопределено)); КонецПроцедуры -// Проверка доступа к подсистеме ОбновлениеКонфигурации. Функция ЕстьПраваНаУстановкуОбновления() Экспорт Возврат Пользователи.ЭтоПолноправныйПользователь(, Истина); КонецФункции @@ -726,16 +725,10 @@ КонецПроцедуры -// Возвращает имя события для записи журнала регистрации. Функция СобытиеЖурналаРегистрации() Возврат НСтр("ru = 'Обновление конфигурации'", ОбщегоНазначения.КодОсновногоЯзыка()); КонецФункции -// Заполняет структуру настроек обновления конфигурации и возвращает их. -// -// Возвращаемое значение: -// Структура - структура настроек обновления. -// Функция НастройкиПоУмолчанию() Результат = Новый Структура; @@ -761,12 +754,150 @@ КонецФункции -// Получает расширение по переданному идентификатору. -// -Функция РасширениеПоИдентификатору(Идентификатор) Экспорт +Функция УстановитьИсправления(Знач ПомещенныеФайлы) Экспорт + + Результат = Новый Структура; + Результат.Вставить("ЕстьОшибки", Ложь); + Результат.Вставить("УстановленоИсправлений", 0); + + Для Каждого ФайлИсправления Из ПомещенныеФайлы Цикл + + Попытка + Если СтрЗаканчиваетсяНа(ФайлИсправления.Имя, ".zip") Тогда + Данные = ИзвлечьИсправлениеИзАрхива(ФайлИсправления); + Иначе + Данные = ПолучитьИзВременногоХранилища(ФайлИсправления.Хранение); + КонецЕсли; + + Расширение = РасширенияКонфигурации.Создать(); + Справочники.ВерсииРасширений.ОтключитьПредупрежденияБезопасности(Расширение); + Справочники.ВерсииРасширений.ОтключитьИспользованиеОсновныхРолейДляВсехПользователей(Расширение); + Расширение.БезопасныйРежим = Ложь; + Расширение.ИспользуетсяВРаспределеннойИнформационнойБазе = Истина; + Расширение.Записать(Данные); + + УстановленноеРасширение = РасширениеПоИдентификатору(Расширение.УникальныйИдентификатор); + Если Не ЭтоИсправление(УстановленноеРасширение) Тогда + Расширение.Удалить(); + ВызватьИсключение НСтр("ru = 'Расширение не является патчем.'"); + КонецЕсли; + УстановленоИсправлений = УстановленоИсправлений + 1; + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ЕстьОшибки = Истина; + + ОписаниеИсправления = Новый ОписаниеКонфигурации(Данные); + ИмяФайлаИсправления = ОписаниеИсправления.Имя; + + ТекстОшибки = НСтр("ru = 'При установке исправления %1 возникла ошибка: + |%2'"); + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, ИмяФайлаИсправления, + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + ЗаписьЖурналаРегистрации(НСтр("ru = 'Исправления.Установка'", ОбщегоНазначения.КодОсновногоЯзыка()), + УровеньЖурналаРегистрации.Ошибка,,, ТекстОшибки); + КонецПопытки; + КонецЦикла; + + РегистрыСведений.ПараметрыРаботыВерсийРасширений.ОбновитьПараметрыРаботыРасширений(); + Возврат Результат; + +КонецФункции + +Функция ИзвлечьИсправлениеИзАрхива(Знач ПомещенныйФайл) + + ИмяАрхива = ПолучитьИмяВременногоФайла("zip"); + Попытка + ДвоичныеДанные = ПолучитьИзВременногоХранилища(ПомещенныйФайл.Хранение); + ДвоичныеДанные.Записать(ИмяАрхива); + + ИсправлениеНайдено = Ложь; + ЧтениеZip = Новый ЧтениеZipФайла(ИмяАрхива); + Для Каждого ЭлементАрхива Из ЧтениеZip.Элементы Цикл + Если ЭлементАрхива.Расширение = "cfe" Тогда + ИсправлениеНайдено = Истина; + Прервать; + КонецЕсли; + КонецЦикла; + + Если Не ИсправлениеНайдено Тогда + ВызватьИсключение НСтр("ru = 'Файл не является исправлением.'"); + КонецЕсли; + + ВременныйКаталог = ФайловаяСистема.СоздатьВременныйКаталог("Патчи"); + ЧтениеZip.Извлечь(ЭлементАрхива, ВременныйКаталог); + ЧтениеZip.Закрыть(); + + ПолноеИмяИсправления = ВременныйКаталог + ЭлементАрхива.Имя; + Данные = Новый ДвоичныеДанные(ПолноеИмяИсправления); + + ФайловаяСистема.УдалитьВременныйФайл(ИмяАрхива); + ФайловаяСистема.УдалитьВременныйКаталог(ВременныйКаталог); + Исключение + ФайловаяСистема.УдалитьВременныйФайл(ИмяАрхива); + ФайловаяСистема.УдалитьВременныйКаталог(ВременныйКаталог); + КонецПопытки; + + Возврат Данные; + +КонецФункции + +Функция РасширениеПоИдентификатору(Идентификатор) Отбор = Новый Структура; Отбор.Вставить("УникальныйИдентификатор", Идентификатор); Возврат РасширенияКонфигурации.Получить(Отбор)[0]; КонецФункции +Функция СведенияОбОбновлении(Знач ИмяФайлаПоставкиОбновления) Экспорт + + Результат = Новый Структура; + Результат.Вставить("ТекстОшибки", ""); + Результат.Вставить("Подходит", Ложь); + ИсходныеКонфигурации = Новый ДеревоЗначений; + ИсходныеКонфигурации.Колонки.Добавить("Версия", Новый ОписаниеТипов("Строка")); + Результат.Вставить("ИсходныеКонфигурации", ИсходныеКонфигурации); + + Попытка + ДанныеФайла = Новый ДвоичныеДанные(ИмяФайлаПоставкиОбновления); + Исключение + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,,, + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + Результат.ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + Возврат Результат; + КонецПопытки; + + Попытка + Описание = Новый ОписаниеОбновленияКонфигурации(ДанныеФайла); + Исключение + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,,, + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + Результат.ТекстОшибки = НСтр("ru = 'Сведения не доступны'"); + КраткоеПредставлениеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); + Если Не ПустаяСтрока(КраткоеПредставлениеОшибки) Тогда + Результат.ТекстОшибки = Результат.ТекстОшибки + " (" + КраткоеПредставлениеОшибки + ")"; + КонецЕсли; + Возврат Результат; + КонецПопытки; + + Для каждого ИсходнаяКонфигурация Из Описание.ИсходныеКонфигурации Цикл + + Если Не Результат.Подходит + И (ИсходнаяКонфигурация.Имя = Метаданные.Имя И ИсходнаяКонфигурация.Поставщик = Метаданные.Поставщик + И ИсходнаяКонфигурация.Версия = Метаданные.Версия) Тогда + Результат.Подходит = Истина; + КонецЕсли; + + ИмяКонфигурации = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 (%2)", + ИсходнаяКонфигурация.Имя, ИсходнаяКонфигурация.Поставщик); + ЭлементКонфигурация = ИсходныеКонфигурации.Строки.Найти(ИмяКонфигурации, "Версия", Ложь); + Если ЭлементКонфигурация = Неопределено Тогда + ЭлементКонфигурация = ИсходныеКонфигурации.Строки.Добавить(); + ЭлементКонфигурация.Версия = ИмяКонфигурации; + КонецЕсли; + ВерсияКонфигурации = ЭлементКонфигурация.Строки.Добавить(); + ВерсияКонфигурации.Версия = ИсходнаяКонфигурация.Версия; + КонецЦикла; + Возврат Результат; + +КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl b/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl index 53e104ac6..7535b4021 100644 --- a/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбновлениеКонфигурацииКлиент/Module.bsl @@ -11,13 +11,13 @@ // Открывает форму установки обновлений с указанными параметрами. // // Параметры: -// ПараметрыУстановкиОбновлений - Структура - Дополнительные параметры установки обновлений: +// ПараметрыУстановкиОбновлений - Структура - дополнительные параметры установки обновлений: // * ЗавершениеРаботыСистемы - Булево - Истина, если после установки обновления работа программы завершается. -// По умолчанию, Ложь. +// По умолчанию Ложь. // * ПолученоОбновлениеКонфигурации - Булево - Истина, если устанавливаемое обновление получено из приложения -// в Интернете. По умолчанию, Ложь - обычный режим установки обновления. +// в Интернете. По умолчанию Ложь - обычный режим установки обновления. // * ВыполнитьОбновление - Булево - Истина, если необходимо пропустить выбор файла обновления и сразу перейти -// к установке обновления. По умолчанию, Ложь - предлагать выбор. +// к установке обновления. По умолчанию Ложь - предлагать выбор. // Процедура ПоказатьПоискИУстановкуОбновлений(ПараметрыУстановкиОбновлений = Неопределено) Экспорт @@ -30,13 +30,13 @@ // Отображает форму настроек создания резервной копии. // // Параметры: -// ПараметрыРезервногоКопирования - Структура - Параметры формы резервного копирования. -// * СоздаватьРезервнуюКопию - Число - 0, Не создавать резервную копию ИБ. -// 1, Создавать временную резервную копию ИБ. -// 2, Создавать резервную копию ИБ -// * ИмяКаталогаРезервнойКопииИБ - Строка - Каталог сохранения резервной копии. -// * ВосстанавливатьИнформационнуюБазу - Булево - Выполнять откат при нештатной ситуации. -// ОписаниеОповещения - ОписаниеОповещения - Описание оповещения о закрытии формы. +// ПараметрыРезервногоКопирования - Структура - параметры формы резервного копирования. +// * СоздаватьРезервнуюКопию - Число - 0, Не создавать резервную копию ИБ; +// 1, Создавать временную резервную копию ИБ; +// 2, Создавать резервную копию ИБ. +// * ИмяКаталогаРезервнойКопииИБ - Строка - каталог сохранения резервной копии. +// * ВосстанавливатьИнформационнуюБазу - Булево - выполнять откат при нештатной ситуации. +// ОписаниеОповещения - ОписаниеОповещения - описание оповещения о закрытии формы. // Процедура ПоказатьРезервноеКопирование(ПараметрыРезервногоКопирования, ОписаниеОповещения) Экспорт @@ -82,7 +82,7 @@ // скрипт обновления или планирует обновление на указанное время. // // Параметры: -// Форма - УправляемаяФорма - Форма, из которой устанавливается обновление и которая должна быть закрыта в конце. +// Форма - ФормаКлиентскогоПриложения - Форма, из которой устанавливается обновление и которая должна быть закрыта в конце. // Параметры - Структура - Параметры установки обновления: // * РежимОбновления - Число - Вариант установки обновления. Принимаемые значения: // 0 - сейчас, 1 - при завершении работы, 2 - планирование обновления. diff --git a/SSL/src/CommonModules/ОбсужденияСлужебныйВызовСервера/Module.bsl b/SSL/src/CommonModules/ОбсужденияСлужебныйВызовСервера/Module.bsl index 898aa489a..29da7c984 100644 --- a/SSL/src/CommonModules/ОбсужденияСлужебныйВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ОбсужденияСлужебныйВызовСервера/Module.bsl @@ -17,7 +17,7 @@ // Вызов на сервере гарантирует получение корректного состояния в случае, // когда данные регистрации информационной базы были изменены методом // СистемаВзаимодействия.УстановитьДанныеРегистрацииИнформационнойБазы. - Возврат СистемаВзаимодействия.ИнформационнаяБазаЗарегистрирована(); + Возврат СистемаВзаимодействия.ИспользованиеДоступно(); КонецФункции diff --git a/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl index 9261d5911..349e5f0b5 100644 --- a/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначения/Module.bsl @@ -1252,22 +1252,22 @@ КонецФункции -// Возвращает Истина, если клиентское приложение запущено под управлением ОС X. +// Возвращает Истина, если клиентское приложение запущено под управлением macОС. // // Возвращаемое значение: // Булево - если нет клиентского приложения, возвращается Ложь. // -Функция ЭтоOSXКлиент() Экспорт +Функция ЭтоMacOSКлиент() Экспорт УстановитьПривилегированныйРежим(Истина); - ЭтоOSXКлиент = СтандартныеПодсистемыСервер.ПараметрыКлиентаНаСервере().Получить("ЭтоOSXКлиент"); + ЭтоMacOSКлиент = СтандартныеПодсистемыСервер.ПараметрыКлиентаНаСервере().Получить("ЭтоMacOSКлиент"); - Если ЭтоOSXКлиент = Неопределено Тогда + Если ЭтоMacOSКлиент = Неопределено Тогда Возврат Ложь; // Нет клиентского приложения. КонецЕсли; - Возврат ЭтоOSXКлиент; + Возврат ЭтоMacOSКлиент; КонецФункции @@ -1448,7 +1448,7 @@ // Функция РазделениеВключено() Экспорт - Если ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); Возврат МодульРаботаВМоделиСервиса.РазделениеВключено(); Иначе @@ -1471,7 +1471,7 @@ // Функция ДоступноИспользованиеРазделенныхДанных() Экспорт - Если ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); Возврат МодульРаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных(); Иначе @@ -1491,7 +1491,7 @@ // Например, "http://1c.ru/database". // // Пример: -// АдресПубликацииИнформационнойБазыВЛокальнойСети() + "/" + e1cib/app/Обработка.ВыгрузкаДанныхПроекта"; +// ОбщегоНазначения.АдресПубликацииИнформационнойБазыВЛокальнойСети() + "/" + e1cib/app/Обработка.ВыгрузкаДанныхПроекта"; // возвращает прямую ссылку для открытия обработки ВыгрузкаДанныхПроекта. // Функция АдресПубликацииИнформационнойБазыВИнтернете() Экспорт @@ -1630,8 +1630,8 @@ ОбщиеПараметры.Вставить("ЗапрашиватьПодтверждениеПриЗавершенииПрограммы", Истина); ОбщиеПараметры.Вставить("ОтключитьИдентификаторыОбъектовМетаданных", Ложь); ОбщиеПараметры.Вставить("РекомендуемыйОбъемОперативнойПамяти", 2); - ОбщиеПараметры.Вставить("МинимальнаяВерсияПлатформы", "8.3.12.1412"); - ОбщиеПараметры.Вставить("РекомендуемаяВерсияПлатформы", "8.3.12.1412"); + ОбщиеПараметры.Вставить("МинимальнаяВерсияПлатформы", "8.3.14.1694"); + ОбщиеПараметры.Вставить("РекомендуемаяВерсияПлатформы", "8.3.14.1694"); // Устарело, следует использовать свойства МинимальнаяВерсияПлатформы и РекомендуемаяВерсияПлатформы: ОбщиеПараметры.Вставить("МинимальноНеобходимаяВерсияПлатформы", ""); ОбщиеПараметры.Вставить("РаботаВПрограммеЗапрещена", Ложь); // Блокировать запуск, если версия ниже минимальной. @@ -2526,9 +2526,9 @@ Процедура УстановитьСвойстваДинамическогоСписка(Список, СтруктураПараметров) Экспорт Форма = Список.Родитель; - ТипУправляемаяФорма = Тип("УправляемаяФорма"); + ТипФормаКлиентскогоПриложения = Тип("ФормаКлиентскогоПриложения"); - Пока ТипЗнч(Форма) <> ТипУправляемаяФорма Цикл + Пока ТипЗнч(Форма) <> ТипФормаКлиентскогоПриложения Цикл Форма = Форма.Родитель; КонецЦикла; @@ -3347,51 +3347,57 @@ // Возвращает ссылку, соответствующую объекту метаданных, для использования в базе данных. // См. также ОбщегоНазначения.ИдентификаторыОбъектаМетаданных. // -// Поддерживаются следующие объекты метаданных. -// - Подсистемы (требуется программировать переименование). -// - Роли (требуется программировать переименование). -// - ПланыОбмена. -// - Константы. -// - Справочники. -// - Документы. -// - ЖурналыДокументов. -// - Отчеты. -// - Обработки. -// - ПланыВидовХарактеристик. -// - ПланыСчетов. -// - ПланыВидовРасчета. -// - РегистрыСведений. -// - РегистрыНакопления. -// - РегистрыБухгалтерии. -// - РегистрыРасчета. -// - БизнесПроцессы. +// Ссылки возвращаются для следующих объектов метаданных: +// - Подсистемы (см. также ОбщегоНазначенияПереопределяемый.ПриДобавленииПереименованийОбъектовМетаданных); +// - Роли (см. также ОбщегоНазначенияПереопределяемый.ПриДобавленииПереименованийОбъектовМетаданных); +// - ПланыОбмена; +// - Константы; +// - Справочники; +// - Документы; +// - ЖурналыДокументов; +// - Отчеты; +// - Обработки; +// - ПланыВидовХарактеристик; +// - ПланыСчетов; +// - ПланыВидовРасчета; +// - РегистрыСведений; +// - РегистрыНакопления; +// - РегистрыБухгалтерии; +// - РегистрыРасчета; +// - БизнесПроцессы; // - Задачи. // // Параметры: // ОписаниеОбъектаМетаданных - ОбъектМетаданных - объект метаданных конфигурации; -// - Тип - тип, который можно успешно использовать в функции Метаданные.НайтиПоТипу(); -// - Строка - полное имя объекта метаданных, которое можно успешно использовать -// в функции Метаданные.НайтиПоПолномуИмени(). +// - Тип - тип, который можно использовать в функции Метаданные.НайтиПоТипу; +// - Строка - полное имя объекта метаданных, которое можно +// использовать в функции Метаданные.НайтиПоПолномуИмени. +// +// ВызыватьИсключение - Булево - если Ложь, тогда в случае, когда передан несуществующий объект метаданных +// возвращается Null вместо вызова исключения. +// // Возвращаемое значение: -// СправочникСсылка.ИдентификаторыОбъектовМетаданных, СправочникСсылка.ИдентификаторыОбъектовРасширений - ссылка. +// - СправочникСсылка.ИдентификаторыОбъектовМетаданных, СправочникСсылка.ИдентификаторыОбъектовРасширений - ссылка. +// - Null - если параметр ВызыватьИсключение = Ложь и запрашиваемый объект метаданных не существует. // // Пример: // Идентификатор = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ТипЗнч(Ссылка)); // Идентификатор = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданных); // Идентификатор = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Справочник.Организации"); // -Функция ИдентификаторОбъектаМетаданных(ОписаниеОбъектаМетаданных) Экспорт +Функция ИдентификаторОбъектаМетаданных(ОписаниеОбъектаМетаданных, ВызыватьИсключение = Истина) Экспорт - Возврат Справочники.ИдентификаторыОбъектовМетаданных.ИдентификаторОбъектаМетаданных(ОписаниеОбъектаМетаданных); + Возврат Справочники.ИдентификаторыОбъектовМетаданных.ИдентификаторОбъектаМетаданных( + ОписаниеОбъектаМетаданных, ВызыватьИсключение); КонецФункции // Возвращает ссылки, соответствующие объектам метаданных, для использования в базе данных. // См. также ОбщегоНазначения.ИдентификаторОбъектаМетаданных. // -// Поддерживаются следующие объекты метаданных. -// - Подсистемы (требуется программировать переименование). -// - Роли (требуется программировать переименование). +// Ссылки возвращаются для следующих объектов метаданных: +// - Подсистемы (см. также ОбщегоНазначенияПереопределяемый.ПриДобавленииПереименованийОбъектовМетаданных); +// - Роли (см. также ОбщегоНазначенияПереопределяемый.ПриДобавленииПереименованийОбъектовМетаданных); // - ПланыОбмена. // - Константы. // - Справочники. @@ -3412,24 +3418,29 @@ // Параметры: // ОписаниеОбъектовМетаданных - Массив - со значениями типа: // * ОбъектМетаданных - объект метаданных конфигурации; -// * Строка - полное имя объекта метаданных, которое можно успешно использовать -// в функции Метаданные.НайтиПоПолномуИмени(); -// * Тип - тип, который можно успешно использовать в функции Метаданные.НайтиПоТипу(). +// * Строка - полное имя объекта метаданных, которое можно использовать +// в функции Метаданные.НайтиПоПолномуИмени; +// * Тип - тип, который можно использовать в функции Метаданные.НайтиПоТипу. +// +// ВызыватьИсключение - Булево - если Ложь, тогда в случае, когда передан несуществующий объект метаданных, +// он будет пропущен в возвращаемом значении. // // Возвращаемое значение: // Соответствие - со свойствами: // * Ключ - Строка - полное имя указанного объекта метаданных. // * Значение - СправочникСсылка.ИдентификаторыОбъектовМетаданных, // СправочникСсылка.ИдентификаторыОбъектовРасширений - найденный идентификатор. +// // Пример: // ПолныеИмена = Новый Массив; // ПолныеИмена.Добавить(Метаданные.Справочники.Валюты.ПолноеИмя()); // ПолныеИмена.Добавить(Метаданные.РегистрыСведений.КурсыВалют.ПолноеИмя()); // Идентификаторы = ОбщегоНазначения.ИдентификаторыОбъектовМетаданных(ПолныеИмена); // -Функция ИдентификаторыОбъектовМетаданных(ОписаниеОбъектовМетаданных) Экспорт +Функция ИдентификаторыОбъектовМетаданных(ОписаниеОбъектовМетаданных, ВызыватьИсключение = Истина) Экспорт - Возврат Справочники.ИдентификаторыОбъектовМетаданных.ИдентификаторыОбъектовМетаданных(ОписаниеОбъектовМетаданных); + Возврат Справочники.ИдентификаторыОбъектовМетаданных.ИдентификаторыОбъектовМетаданных( + ОписаниеОбъектовМетаданных, ВызыватьИсключение); КонецФункции @@ -3459,8 +3470,8 @@ // Функция ОбъектМетаданныхПоИдентификатору(Идентификатор, ВызыватьИсключение = Истина) Экспорт - Возврат Справочники.ИдентификаторыОбъектовМетаданных.ОбъектМетаданныхПоИдентификатору(Идентификатор, - ВызыватьИсключение); + Возврат Справочники.ИдентификаторыОбъектовМетаданных.ОбъектМетаданныхПоИдентификатору( + Идентификатор, ВызыватьИсключение); КонецФункции @@ -3492,8 +3503,8 @@ // Функция ОбъектыМетаданныхПоИдентификаторам(Идентификаторы, ВызыватьИсключение = Истина) Экспорт - Возврат Справочники.ИдентификаторыОбъектовМетаданных.ОбъектыМетаданныхПоИдентификаторам(Идентификаторы, - ВызыватьИсключение); + Возврат Справочники.ИдентификаторыОбъектовМетаданных.ОбъектыМетаданныхПоИдентификаторам( + Идентификаторы, ВызыватьИсключение); КонецФункции @@ -4876,7 +4887,7 @@ УстановитьБезопасныйРежим(Истина); - Если ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); МассивРазделителей = МодульРаботаВМоделиСервиса.РазделителиКонфигурации(); Иначе @@ -4921,7 +4932,7 @@ УстановитьБезопасныйРежим(Истина); - Если ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); МассивРазделителей = МодульРаботаВМоделиСервиса.РазделителиКонфигурации(); Иначе @@ -5212,8 +5223,8 @@ // Пример: // // ПодключаемыйМодуль = ОбщегоНазначения.ПодключитьКомпонентуИзМакета( -// "CNameDecl", -// "ОбщийМакет.КомпонентаСклоненияФИО"); +// "QRCodeExtension", +// "ОбщийМакет.КомпонентаПечатиQRКода"); // // Если ПодключаемыйМодуль <> Неопределено Тогда // // ПодключаемыйМодуль содержит созданный экземпляр подключенной компоненты. @@ -5295,231 +5306,6 @@ #Область УстаревшиеПроцедурыИФункции -// Устарела. Следует использовать ОбщегоНазначенияКлиентСервер.ДополнитьМассив, -// установив параметра ТолькоУникальныеЗначения в значение Истина. -// -// Заполняет массив-приемник уникальными значениями из массива-источника. -// Если элемент в массиве-приемнике уже существует, то добавления нового элемента не происходит. -// -// Параметры: -// МассивПриемник - Массив - массив, который заполняется уникальными значениями. -// МассивИсточник - Массив - массив, из которого подбираются элементы в массив-приемник. -// -Процедура ЗаполнитьМассивУникальнымиЗначениями(МассивПриемник, МассивИсточник) Экспорт - - ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивПриемник, МассивИсточник, Истина); - -КонецПроцедуры - -// Устарела. Следует использовать функцию ТаблицаОписанияСвойствОбъекта -// Возвращает таблицу значений с описанием требуемых свойств всех реквизитов объекта метаданного. -// Получает значения свойств стандартных реквизитов и пользовательских реквизитов (созданных в режиме конфигуратора). -// -// Параметры: -// ОбъектМетаданных - ОбъектМетаданных - объект, для которого необходимо получить значение свойств реквизитов. -// Например: Метаданные.Документ.РеализацияТоваровИУслуг -// Свойства - Строка - свойства реквизитов, перечисленные через запятую, значение которых необходимо получить. -// Например: "Имя, Тип, Синоним, Подсказка". -// -// Возвращаемое значение: -// ТаблицаЗначений - описание требуемых свойств всех реквизитов объекта метаданных. -// -Функция ПолучитьТаблицуОписанияСвойствОбъекта(ОбъектМетаданных, Свойства) Экспорт - - Возврат ОписаниеСвойствОбъекта(ОбъектМетаданных, Свойства); - -КонецФункции - -// Устарела. Следует использовать функцию ИсключенияПоискаСсылок -// Возвращает исключения поиска ссылок при удалении объектов. -// -// Возвращаемое значение: -// Соответствие - Исключения поиска ссылок в разрезе объектов метаданных: -// * Ключ - ОбъектМетаданных - Объект метаданных, для которого применяются исключения. -// * Значение - Строка, Массив - описание исключенных реквизитов. -// Если "*", то исключены все реквизиты объекта метаданных. -// Если массив строк, то содержит относительные имена исключенных реквизитов. -// -Функция ПолучитьОбщийСписокИсключенийПоискаСсылок() Экспорт - - Возврат ИсключенияПоискаСсылок(); - -КонецФункции - -// Устарела. Следует использовать СоздатьWSПрокси. -// -// Функция возвращает объект WSПрокси созданный с переданными параметрами. -// -// Параметры: -// АдресWSDL - Строка - месторасположение wsdl. -// URIПространстваИмен - Строка - URI пространства имен web-сервиса. -// ИмяСервиса - Строка - имя сервиса. -// ИмяТочкиПодключения - Строка - если не задано, образуется как <ИмяСервиса>Soap. -// ИмяПользователя - Строка - имя пользователя для входа на сервер. -// Пароль - Строка - пароль пользователя. -// Таймаут - Число - таймаут на операции выполняемые через полученное прокси. -// ДелатьКонтрольныйВызов - Булево - (необязательный) выполнять проверку доступности сервиса (требуется -// поддержка этой команды веб-сервисом). -// -// Возвращаемое значение: -// WSПрокси - объект WSПрокси. -// -Функция WSПрокси(Знач АдресWSDL, - Знач URIПространстваИмен, - Знач ИмяСервиса, - Знач ИмяТочкиПодключения = "", - Знач ИмяПользователя, - Знач Пароль, - Знач Таймаут = 0, - Знач ДелатьКонтрольныйВызов = Ложь) Экспорт - - ПараметрыПодключения = ПараметрыПодключенияWSПрокси(); - ПараметрыПодключения.АдресWSDL = АдресWSDL; - ПараметрыПодключения.URIПространстваИмен = URIПространстваИмен; - ПараметрыПодключения.ИмяСервиса = ИмяСервиса; - ПараметрыПодключения.ИмяТочкиПодключения = ИмяТочкиПодключения; - ПараметрыПодключения.ИмяПользователя = ИмяПользователя; - ПараметрыПодключения.Пароль = Пароль; - ПараметрыПодключения.Таймаут = Таймаут; - - Возврат СоздатьWSПрокси(ПараметрыПодключения); - -КонецФункции - -// Устарела. Следует использовать СклонениеПредставленийОбъектов.Просклонять. -// -// Функция склоняет переданную фразу. -// Только для работы на ОС Windows. -// -// Параметры: -// ФИО - Строка - фамилия, имя и отчество в именительном падеже, -// которые необходимо просклонять. -// Падеж - Число - падеж, в который необходимо поставить ФИО: -// 1 - Именительный -// 2 - Родительный -// 3 - Дательный -// 4 - Винительный -// 5 - Творительный -// 6 - Предложный -// Результат - Строка - в этот параметр помещается результат склонения. -// Если ФИО не удалось просклонять, то возвращается значение ФИО. -// Пол - Число - пол физического лица, 1 - мужской, 2 - женский. -// -// Возвращаемое значение: -// Булево - Истина, если ФИО удалось просклонять. -// -Функция Просклонять(Знач ФИО, Падеж, Результат, Пол = Неопределено) Экспорт - - Если ПодсистемаСуществует("СтандартныеПодсистемы.СклонениеПредставленийОбъектов") Тогда - МодульСклонениеПредставленийОбъектов = ОбщийМодуль("СклонениеПредставленийОбъектов"); - - Результат = МодульСклонениеПредставленийОбъектов.ПросклонятьФИО(ФИО, Падеж, , Пол); - Если ЗначениеЗаполнено(Результат) Тогда - Возврат Истина; - Иначе - Результат = ФИО; - Возврат Ложь; - КонецЕсли; - - КонецЕсли; - - ВызватьИсключение НСтр("ru = 'Для вызова ОбщегоНазначения.Просклонять необходима подсистема «Склонение представлений объектов».'"); - -КонецФункции - -// Устарела. Следует использовать ОбщегоНазначенияКлиентСервер.КартинкаКомментария. -// -// Получает картинку для вывода на странице с комментарием в зависимости -// от наличия текста в комментарии. -// -// Параметры: -// Комментарий - Строка - текст комментария. -// -// Возвращаемое значение: -// Картинка - Картинка, которая должна отображаться на странице с комментарием. -// -Функция ПолучитьКартинкуКомментария(Комментарий) Экспорт - Возврат ОбщегоНазначенияКлиентСервер.КартинкаКомментария(Комментарий); -КонецФункции - -// Устарела. Следует использовать функцию ХранилищеОбщихНастроекСохранить. -Процедура ХранилищеОбщихНастроекСохранитьМассивИОбновитьПовторноИспользуемыеЗначения(МассивСтруктур) Экспорт - - ХранилищеОбщихНастроекСохранитьМассив(МассивСтруктур, Истина); - -КонецПроцедуры - -// Устарела. Следует использовать функцию ХранилищеОбщихНастроекСохранить. -Процедура ХранилищеОбщихНастроекСохранитьИОбновитьПовторноИспользуемыеЗначения(КлючОбъекта, КлючНастроек, Значение) Экспорт - - ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, Значение,,,Истина); - -КонецПроцедуры - -// Устарела. Следует использовать метод платформы УстановитьМонопольныйРежим(Истина). -Процедура ЗаблокироватьИБ(Знач ПроверитьОтсутствиеДругихСеансов = Истина) Экспорт - - Если Не РазделениеВключено() - Или Не ДоступноИспользованиеРазделенныхДанных() Тогда - - Если Не МонопольныйРежим() Тогда - УстановитьМонопольныйРежим(Истина); - КонецЕсли; - Иначе - Если ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.ЗаблокироватьТекущуюОбластьДанных(ПроверитьОтсутствиеДругихСеансов); - Иначе - ВызватьИсключение(НСтр("ru = 'Подсистема ""Работа в модели сервиса"" не доступна'")); - КонецЕсли; - КонецЕсли; - -КонецПроцедуры - -// Устарела. Следует использовать метод платформы УстановитьМонопольныйРежим(Ложь). -Процедура РазблокироватьИБ() Экспорт - - Если Не РазделениеВключено() - Или Не ДоступноИспользованиеРазделенныхДанных() Тогда - - Если МонопольныйРежим() Тогда - УстановитьМонопольныйРежим(Ложь); - КонецЕсли; - Иначе - Если ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.РазблокироватьТекущуюОбластьДанных(); - Иначе - ВызватьИсключение(НСтр("ru = 'Подсистема ""Работа в модели сервиса"" не доступна'")); - КонецЕсли; - КонецЕсли; - -КонецПроцедуры - -// Устарела. Следует использовать РаботаВМоделиСервиса.УстановитьРазделениеСеанса. -Процедура УстановитьРазделениеСеанса(Знач Использование, Знач ОбластьДанных = Неопределено) Экспорт - - Если ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Использование, ОбластьДанных); - КонецЕсли; - -КонецПроцедуры - -// Устарела. Следует использовать РаботаВМоделиСервиса.ЗначениеРазделителяСеанса. -Функция ЗначениеРазделителяСеанса() Экспорт - - Если Не РазделениеВключено() Тогда - Возврат 0; - КонецЕсли; - - Если ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); - Возврат МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); - КонецЕсли; - -КонецФункции - // Устарела. Следует использовать // ОбщегоНазначения.РазделениеВключено() // И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных(). @@ -5530,329 +5316,13 @@ Возврат Ложь; КонецЕсли; - Если ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); Возврат МодульРаботаВМоделиСервиса.ИспользованиеРазделителяСеанса(); КонецЕсли; КонецФункции -// Устарела. Константа служебного назначения (должна изменяться только из библиотеки технологий сервиса). -Процедура УстановитьПараметрыРазделенияИнформационнойБазы(Знач ВключитьРазделение = Ложь) Экспорт - - Если ВключитьРазделение Тогда - Константы.ИспользоватьРазделениеПоОбластямДанных.Установить(Истина); - Иначе - Константы.ИспользоватьРазделениеПоОбластямДанных.Установить(Ложь); - КонецЕсли; - -КонецПроцедуры - -// Устарела. Следует использовать РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные. -Процедура ЗаписатьВспомогательныеДанные(ОбъектВспомогательныхДанных) Экспорт - - Если ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(ОбъектВспомогательныхДанных); - Иначе - ОбъектВспомогательныхДанных.Записать(); - КонецЕсли; - -КонецПроцедуры - -// Устарела. Следует использовать РаботаВМоделиСервиса.УдалитьВспомогательныеДанные. -Процедура УдалитьВспомогательныеДанные(ОбъектВспомогательныхДанных) Экспорт - - Если ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.УдалитьВспомогательныеДанные(ОбъектВспомогательныхДанных); - Иначе - ОбъектВспомогательныхДанных.Удалить(); - КонецЕсли; - -КонецПроцедуры - -// Устарела: Необходимо использовать РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(). -// Возвращает признак того, что объект метаданных используется в общих реквизитах-разделителях. -// -// Параметры: -// ОбъектМетаданных - Строка, ОбъектМетаданных - Если объект метаданных задан строкой, происходит обращение к модулю -// повторного использования. -// Разделитель - Строка - имя общего реквизита-разделителя, на разделение которыми проверяется объект метаданных. -// -// Возвращаемое значение: -// Булево - Истина, если объект метаданных используется хотя бы в одном общем разделителе. -// -Функция ЭтоРазделенныйОбъектМетаданных(Знач ОбъектМетаданных, Знач Разделитель = Неопределено) Экспорт - - Если ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); - Возврат МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ОбъектМетаданных, Разделитель); - Иначе - Возврат Истина; - КонецЕсли; - -КонецФункции - -// Устарела. Создает копию объекта XDTO. -// -// Параметры: -// Фабрика - ФабрикаXDTO - фабрика, которой создан исходный объект. -// Объект - ОбъектXDTO - объект, копию которого требуется создать. -// -// Возвращаемое значение: -// ОбъектXDTO - копия исходного объекта XDTO. -// -Функция СкопироватьXDTO(Знач Фабрика, Знач Объект) Экспорт - - Запись = Новый ЗаписьXML; - Запись.УстановитьСтроку(); - Фабрика.ЗаписатьXML(Запись, Объект, , , , НазначениеТипаXML.Явное); - - XMLПредставление = Запись.Закрыть(); - - Чтение = Новый ЧтениеXML; - Чтение.УстановитьСтроку(XMLПредставление); - - Возврат Фабрика.ПрочитатьXML(Чтение, Объект.Тип()); - -КонецФункции - -// Устарела. Возвращает XML представление типа XDTO. -// -// Параметры: -// ТипXDTO - ТипОбъектаXDTO, ТипЗначенияXDTO - тип XDTO для которого требуется получить. -// XML представление. -// -// Возвращаемое значение: -// Строка - XML представление типа XDTO. -// -Функция ПредставлениеТипаXDTO(ТипXDTO) Экспорт - - Возврат СериализаторXDTO.XMLСтрока(Новый РасширенноеИмяXML(ТипXDTO.URIПространстваИмен, ТипXDTO.Имя)) - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Регистры сведений". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаРегистрыСведений() Экспорт - - Возврат "РегистрыСведений"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Регистры накопления". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаРегистрыНакопления() Экспорт - - Возврат "РегистрыНакопления"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Регистры бухгалтерии". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаРегистрыБухгалтерии() Экспорт - - Возврат "РегистрыБухгалтерии"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Регистры расчета". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаРегистрыРасчета() Экспорт - - Возврат "РегистрыРасчета"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Документы". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаДокументы() Экспорт - - Возврат "Документы"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Справочники". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаСправочники() Экспорт - - Возврат "Справочники"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Перечисления". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаПеречисления() Экспорт - - Возврат "Перечисления"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Отчеты". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаОтчеты() Экспорт - - Возврат "Отчеты"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Обработки". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаОбработки() Экспорт - - Возврат "Обработки"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "ПланыОбмена". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаПланыОбмена() Экспорт - - Возврат "ПланыОбмена"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Планы видов характеристик". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаПланыВидовХарактеристик() Экспорт - - Возврат "ПланыВидовХарактеристик"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Бизнес-процессы". -// -// Возвращаемое значение: -// Строка - "БизнесПроцессы". -// -Функция ИмяТипаБизнесПроцессы() Экспорт - - Возврат "БизнесПроцессы"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Задачи". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаЗадачи() Экспорт - - Возврат "Задачи"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Планы счетов". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаПланыСчетов() Экспорт - - Возврат "ПланыСчетов"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Планы видов расчета". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаПланыВидовРасчета() Экспорт - - Возврат "ПланыВидовРасчета"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Константы". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаКонстанты() Экспорт - - Возврат "Константы"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Журналы документов". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаЖурналыДокументов() Экспорт - - Возврат "ЖурналыДокументов"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Последовательности". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаПоследовательности() Экспорт - - Возврат "Последовательности"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "РегламентныеЗадания". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаРегламентныеЗадания() Экспорт - - Возврат "РегламентныеЗадания"; - -КонецФункции - -// Устарела. Возвращает значение для идентификации общего типа "Перерасчеты". -// -// Возвращаемое значение: -// Строка - имя типа. -// -Функция ИмяТипаПерерасчеты() Экспорт - - Возврат "Перерасчеты"; - -КонецФункции - // Устарела. Следует использовать ФайловаяСистема.СоздатьВременныйКаталог // Создает временный каталог. После окончания работы с временным каталогом его необходимо удалить // с помощью ОбщегоНазначения.УдалитьВременныйКаталог. @@ -5926,6 +5396,26 @@ КонецЕсли; КонецФункции +// Устарела. Следует использовать ОбщегоНазначения.ЭтоMacOSКлиент +// Возвращает Истина, если клиентское приложение запущено под управлением ОС X. +// +// Возвращаемое значение: +// Булево - если нет клиентского приложения, возвращается Ложь. +// +Функция ЭтоOSXКлиент() Экспорт + + УстановитьПривилегированныйРежим(Истина); + + ЭтоMacOSКлиент = СтандартныеПодсистемыСервер.ПараметрыКлиентаНаСервере().Получить("ЭтоMacOSКлиент"); + + Если ЭтоMacOSКлиент = Неопределено Тогда + Возврат Ложь; // Нет клиентского приложения. + КонецЕсли; + + Возврат ЭтоMacOSКлиент; + +КонецФункции + #КонецОбласти #КонецОбласти @@ -7613,7 +7103,7 @@ Кэш.Вставить("МодельСервиса", РазделениеВключено()); Если Кэш.МодельСервиса Тогда - Если ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); РазделительОсновныхДанных = МодульРаботаВМоделиСервиса.РазделительОсновныхДанных(); РазделительВспомогательныхДанных = МодульРаботаВМоделиСервиса.РазделительВспомогательныхДанных(); @@ -7628,7 +7118,7 @@ КонецЕсли; КонецЕсли; Если Кэш.МодельСервиса Тогда - Если ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); ЭтоРазделенныйОбъектМетаданных = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ОбъектМетаданных); Иначе diff --git a/SSL/src/CommonModules/ОбщегоНазначенияВызовСервера/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияВызовСервера/Module.bsl index e4eb8faa6..85fc454ae 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияВызовСервера/Module.bsl @@ -227,7 +227,7 @@ // - возвращаемая ссылка заменяется на указанное значение по умолчанию; // - из данных типа Массив ссылки удаляются; // - у данных типа Структура и Соответствие ключ не меняется, а значение устанавливается Неопределено; -// - анализ значений в данных типа Массив, Структура, Соответствие выполняется рекурсивно. +// - анализ значений в данных типа Массив, Структура, Соответствие выполняется рекурсивно // // См. ОбщегоНазначения.ХранилищеСистемныхНастроекЗагрузить // @@ -364,35 +364,6 @@ #КонецОбласти -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать РаботаВМоделиСервиса.УстановитьРазделениеСеанса. -Процедура УстановитьРазделениеСеанса(Знач Использование, Знач ОбластьДанных = Неопределено) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Использование, ОбластьДанных); - КонецЕсли; - -КонецПроцедуры - -// Устарела. Следует использовать функцию ХранилищеОбщихНастроекСохранить. -Процедура ХранилищеОбщихНастроекСохранитьМассивИОбновитьПовторноИспользуемыеЗначения(МассивСтруктур) Экспорт - - ОбщегоНазначения.ХранилищеОбщихНастроекСохранитьМассив(МассивСтруктур, Истина); - -КонецПроцедуры - -// Устарела. Следует использовать функцию ХранилищеОбщихНастроекСохранить. -Процедура ХранилищеОбщихНастроекСохранитьИОбновитьПовторноИспользуемыеЗначения(КлючОбъекта, - КлючНастроек, Настройки) Экспорт - - ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, Настройки,,, Истина); - -КонецПроцедуры - -#КонецОбласти - #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl index 8f948ff66..9bc88b593 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияКлиент/Module.bsl @@ -253,14 +253,14 @@ КонецФункции -// Возвращает Истина, если клиентское приложение запущено под управлением ОС X. +// Возвращает Истина, если клиентское приложение запущено под управлением macOS. // -// См. ОбщегоНазначения.ЭтоOSXКлиент +// См. ОбщегоНазначения.ЭтоMacOSКлиент // // Возвращаемое значение: // Булево - если нет клиентского приложения, возвращается Ложь. // -Функция ЭтоOSXКлиент() Экспорт +Функция ЭтоMacOSКлиент() Экспорт ТипПлатформыКлиента = ТипПлатформыКлиента(); Возврат ТипПлатформыКлиента = ТипПлатформы.MacOS_x86 @@ -602,7 +602,7 @@ // см. процедуру ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияФормы(). // // Параметры: -// Форма - УправляемаяФорма - форма, которая вызывает диалог предупреждения. +// Форма - ФормаКлиентскогоПриложения - форма, которая вызывает диалог предупреждения. // Отказ - Булево - возвращаемый параметр, признак отказа от выполняемого действия. // ЗавершениеРаботы - Булево - признак завершения работы программы. // ТекстПредупреждения - Строка - текст предупреждения, выводимый пользователю. @@ -766,7 +766,7 @@ // // Параметры: // МногострочныйТекст - Строка - произвольный текст, который необходимо отредактировать. -// ФормаВладелец - УправляемаяФорма - форма, в поле которой выполняется ввод комментария. +// ФормаВладелец - ФормаКлиентскогоПриложения - форма, в поле которой выполняется ввод комментария. // ИмяРеквизита - Строка - имя реквизита формы, в который будет помещен введенный пользователем комментарий. // По умолчанию - "Объект.Комментарий". // Заголовок - Строка - текст, который необходимо отобразить в заголовке формы. @@ -1113,7 +1113,7 @@ // Функция УстановитьВнешнееСоединениеСБазой(Параметры) Экспорт - ПодключениеНедоступно = ЭтоLinuxКлиент() Или ЭтоOSXКлиент(); + ПодключениеНедоступно = ЭтоLinuxКлиент() Или ЭтоMacOSКлиент(); КраткоеОписаниеОшибки = НСтр("ru = 'Прямое подключение к информационной базе доступно только на клиенте под управлением ОС Windows.'"); Возврат ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьВнешнееСоединениеСБазой(Параметры, ПодключениеНедоступно, КраткоеОписаниеОшибки); @@ -1152,9 +1152,9 @@ #Область УстаревшиеПроцедурыИФункции // Устарела. Следует использовать: -// ОткрытьНавигационнуюСсылку при передачи ссылки на сайт или навигационной ссылки. -// ОткрытьПроводник для открытия проводника при передачи пути к папке или файлу. -// ОткрытьФайлВПрограммеПросмотра для открытия файла по расширению при передачи пути к файлу. +// ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку при передачи ссылки на сайт или навигационной ссылки. +// ФайловаяСистемаКлиент.ОткрытьПроводник для открытия проводника при передачи пути к папке или файлу. +// ФайловаяСистемаКлиент.ОткрытьФайл для открытия файла по расширению при передачи пути к файлу. // // Выполняет переход по ссылке на объект информационной базы или внешний объект. // (например, ссылка на сайт или путь к папке). @@ -1360,6 +1360,20 @@ КонецПроцедуры +// Устарела. Следует использовать ОбщегоНазначенияКлиент.ЭтоMacOSКлиент +// Возвращает Истина, если клиентское приложение запущено под управлением ОС X. +// +// Возвращаемое значение: +// Булево - если нет клиентского приложения, возвращается Ложь. +// +Функция ЭтоOSXКлиент() Экспорт + + ТипПлатформыКлиента = ТипПлатформыКлиента(); + Возврат ТипПлатформыКлиента = ТипПлатформы.MacOS_x86 + Или ТипПлатформыКлиента = ТипПлатформы.MacOS_x86_64; + +КонецФункции + #КонецОбласти #КонецОбласти diff --git a/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl index 9cfccde48..3b2779e57 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияКлиентСервер/Module.bsl @@ -552,11 +552,8 @@ Процедура УдалитьЗначениеИзМассива(Массив, Значение) Экспорт Индекс = Массив.Найти(Значение); - Если Индекс <> Неопределено Тогда - Массив.Удалить(Индекс); - КонецЕсли; КонецПроцедуры @@ -567,7 +564,7 @@ // Массив - Массив - массив произвольных значений. // // Возвращаемое значение: -// Массив - коллекция уникальных элементов. +// Массив - массив уникальных элементов. // Функция СвернутьМассив(Знач Массив) Экспорт Результат = Новый Массив; @@ -575,15 +572,15 @@ Возврат Результат; КонецФункции -// Вычисляет разность массивов. Разностью массивов А и В является массив, содержащий -// все элементы массива А, не существующие в массиве В. +// Возвращает разность массивов. Разностью двух массивов является массив, содержащий +// все элементы первого массива, не существующие во втором массиве. // // Параметры: // Массив - Массив - массив элементов, из которого необходимо выполнить вычитание; // МассивВычитания - Массив - массив элементов, который будет вычитаться. // // Возвращаемое значение: -// Массив - дополнение массива В до А. +// Массив - разностью двух массивов. // // Пример: // //А = [1, 3, 5, 7]; @@ -591,20 +588,14 @@ // Результат = РазностьМассивов(А, В); // //Результат = [1, 5]; // -Функция РазностьМассивов(Массив, МассивВычитания) Экспорт +Функция РазностьМассивов(Знач Массив, Знач МассивВычитания) Экспорт Результат = Новый Массив; - Для Каждого Элемент Из Массив Цикл - Если МассивВычитания.Найти(Элемент) = Неопределено Тогда - Результат.Добавить(Элемент); - КонецЕсли; - КонецЦикла; - Возврат Результат; КонецФункции @@ -831,7 +822,7 @@ // Получает значение реквизита формы. // // Параметры: -// Форма - УправляемаяФорма - форма. +// Форма - ФормаКлиентскогоПриложения - форма. // ПутьРеквизита - Строка - путь к данным реквизита формы, например: "Объект.МесяцНачисления". // // Возвращаемое значение: @@ -854,7 +845,7 @@ // Устанавливает значение реквизиту формы. // Параметры: -// Форма - УправляемаяФорма - форма-владелец реквизита. +// Форма - ФормаКлиентскогоПриложения - форма-владелец реквизита. // ПутьРеквизита - Строка - путь к данным, например: "Объект.МесяцНачисления". // Значение - Произвольный - устанавливаемое значение. // ТолькоЕслиНеЗаполнен - Булево - позволяет не устанавливать значение реквизита, @@ -3050,7 +3041,7 @@ КонецФункции -// Устарела. Следует использовать ОбщегоНазначенияКлиент.ЭтоOSXКлиент или ОбщегоНазначения.ЭтоOSXКлиент +// Устарела. Следует использовать ОбщегоНазначенияКлиент.ЭтоMacOSКлиент или ОбщегоНазначения.ЭтоMacOSКлиент // Возвращает Истина, если клиентское приложение запущено под управлением ОС X. // // Возвращаемое значение: @@ -3061,19 +3052,19 @@ #Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда УстановитьПривилегированныйРежим(Истина); - ЭтоOSXКлиент = СтандартныеПодсистемыСервер.ПараметрыКлиентаНаСервере().Получить("ЭтоOSXКлиент"); + ЭтоMacOSКлиент = СтандартныеПодсистемыСервер.ПараметрыКлиентаНаСервере().Получить("ЭтоMacOSКлиент"); - Если ЭтоOSXКлиент = Неопределено Тогда + Если ЭтоMacOSКлиент = Неопределено Тогда Возврат Ложь; // Нет клиентского приложения. КонецЕсли; #Иначе СистемнаяИнформация = Новый СистемнаяИнформация; - ЭтоOSXКлиент = СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86 + ЭтоMacOSКлиент = СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86 ИЛИ СистемнаяИнформация.ТипПлатформы = ТипПлатформы.MacOS_x86_64; #КонецЕсли - Возврат ЭтоOSXКлиент; + Возврат ЭтоMacOSКлиент; КонецФункции @@ -3131,8 +3122,8 @@ КонецФункции -// Устарела. Следует использовать ОбщегоНазначенияКлиент.ЭтоOSXКлиент с инструкцией препроцессора ВебКлиент, -// или на сервере (ОбщегоНазначения.ЭтоOSXКлиент И ОбщегоНазначения.ЭтоВебКлиент). +// Устарела. Следует использовать ОбщегоНазначенияКлиент.ЭтоMacOSКлиент с инструкцией препроцессора ВебКлиент, +// или на сервере (ОбщегоНазначения.ЭтоMacOSКлиент И ОбщегоНазначения.ЭтоВебКлиент). // Возвращает Истина, если это веб-клиент в ОС X. // // Возвращаемое значение: @@ -3141,7 +3132,7 @@ Функция ЭтоВебКлиентПодMacOS() Экспорт #Если ВебКлиент Тогда - Возврат ОбщегоНазначенияКлиент.ЭтоOSXКлиент(); + Возврат ОбщегоНазначенияКлиент.ЭтоMacOSКлиент(); #ИначеЕсли Сервер Или ТолстыйКлиентОбычноеПриложение Тогда Возврат ЭтоOSXКлиент() И ЭтоВебКлиент(); #Иначе diff --git a/SSL/src/CommonModules/ОбщегоНазначенияПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияПереопределяемый/Module.bsl index 5780b0a49..023ea6794 100644 --- a/SSL/src/CommonModules/ОбщегоНазначенияПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОбщегоНазначенияПереопределяемый/Module.bsl @@ -79,8 +79,6 @@ - - КонецПроцедуры // Позволяет задать значения параметров, необходимых для работы клиентского кода @@ -101,8 +99,6 @@ - - КонецПроцедуры // Позволяет задать значения параметров, необходимых для работы клиентского кода @@ -119,8 +115,6 @@ - - КонецПроцедуры // Определяет объекты метаданных и отдельные реквизиты, которые исключаются из результатов поиска ссылок, @@ -167,6 +161,7 @@ // Вызывается при обновлении информационной базы для учета переименований подсистем и ролей в конфигурации. // В противном случае, возникнет рассинхронизация между метаданными конфигурации и // элементами справочника ИдентификаторыОбъектовМетаданных, что приведет к различным ошибкам при работе конфигурации. +// См. также ОбщегоНазначения.ИдентификаторОбъектаМетаданных, ОбщегоНазначения.ИдентификаторыОбъектовМетаданных. // // В этой процедуре последовательно для каждой версии конфигурации задаются переименования только подсистем и ролей, // а переименования остальных объектов метаданных задавать не следует, т.к. они обрабатываются автоматически. @@ -184,8 +179,6 @@ - - КонецПроцедуры // Позволяет виртуально отключать подсистемы для целей тестирования. @@ -315,44 +308,4 @@ КонецПроцедуры -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать ПриДобавленииПараметровРаботыКлиентаПриЗапуске. -// -// Позволяет задать значения параметров, необходимых для работы клиентского кода -// при запуске конфигурации (в обработчиках событий ПередНачаломРаботыСистемы и ПриНачалеРаботыСистемы) -// без дополнительных серверных вызовов. -// Для получения значений этих параметров из клиентского кода -// см. СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиентаПриЗапуске. -// -// Важно: недопустимо использовать команды сброса кэша повторно используемых модулей, -// иначе запуск может привести к непредсказуемым ошибкам и лишним серверным вызовам. -// -// Параметры: -// Параметры - Структура - имена и значения параметров работы клиента при запуске, которые необходимо задать. -// Для установки параметров работы клиента при запуске: -// Параметры.Вставить(<ИмяПараметра>, <код получения значения параметра>); -// -Процедура ПараметрыРаботыКлиентаПриЗапуске(Параметры) Экспорт - -КонецПроцедуры - -// Устарела. Следует использовать ПриДобавленииПараметровРаботыКлиента. -// -// Позволяет задать значения параметров, необходимых для работы клиентского кода -// конфигурации без дополнительных серверных вызовов. -// Для получения этих параметров из клиентского кода -// см. СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента. -// -// Параметры: -// Параметры - Структура - имена и значения параметров работы клиента, которые необходимо задать. -// Для установки параметров работы клиента: -// Параметры.Вставить(<ИмяПараметра>, <код получения значения параметра>); -// -Процедура ПараметрыРаботыКлиента(Параметры) Экспорт - -КонецПроцедуры - -#КонецОбласти - #КонецОбласти diff --git a/SSL/src/CommonModules/ОбщегоНазначенияПовтИсп/Module.bsl b/SSL/src/CommonModules/ОбщегоНазначенияПовтИсп/Module.bsl deleted file mode 100644 index 240d2d08a..000000000 --- a/SSL/src/CommonModules/ОбщегоНазначенияПовтИсп/Module.bsl +++ /dev/null @@ -1,319 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Необходимо использовать РаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация. -// Возвращает признак наличия в конфигурации общих реквизитов-разделителей. -// -// Возвращаемое значение: -// Булево - Истина, если это разделенная конфигурация. -// -Функция ЭтоРазделеннаяКонфигурация() Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ЕстьРазделители = МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация(); - Иначе - ЕстьРазделители = Ложь; - КонецЕсли; - - Возврат ЕстьРазделители; - -КонецФункции - -// Устарела. Необходимо использовать РаботаВМоделиСервиса.РазделителиКонфигурации. -// Возвращает массив существующих в конфигурации разделителей. -// -// Возвращаемое значение: -// ФиксированныйМассив - массив имен общих реквизитов, которые -// являются разделителями. -// -Функция РазделителиКонфигурации() Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - Разделители = МодульРаботаВМоделиСервиса.РазделителиКонфигурации(); - Иначе - Разделители = Новый Массив; - КонецЕсли; - - Возврат Разделители; - -КонецФункции - -// Устарела. Необходимо использовать РаботаВМоделиСервиса.СоставОбщегоРеквизита. -// Возвращает состав общего реквизита с заданным именем. -// -// Параметры: -// Имя - Строка - Имя общего реквизита. -// -// Возвращаемое значение: -// СоставОбщегоРеквизита - список объектов метаданных, в которые входит общий реквизит. -// -Функция СоставОбщегоРеквизита(Знач Имя) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - СоставОбщегоРеквизита = МодульРаботаВМоделиСервиса.СоставОбщегоРеквизита(Имя); - Иначе - СоставОбщегоРеквизита = Неопределено; - КонецЕсли; - - Возврат СоставОбщегоРеквизита; - -КонецФункции - -// Устарела. Необходимо использовать РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных. -// Возвращает признак того, что объект метаданных используется в общих реквизитах-разделителях. -// -// Параметры: -// ИмяОбъектаМетаданных - Строка - имя объекта, -// Разделитель - Строка - имя общего реквизита-разделителя, на разделение которыми проверяется объект метаданных. -// -// Возвращаемое значение: -// Булево - Истина, если это разделенный объект. -// -Функция ЭтоРазделенныйОбъектМетаданных(Знач ИмяОбъектаМетаданных, Знач Разделитель) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ЭтоРазделенныйОбъектМетаданных = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ИмяОбъектаМетаданных); - Иначе - ЭтоРазделенныйОбъектМетаданных = Ложь; - КонецЕсли; - - Возврат ЭтоРазделенныйОбъектМетаданных; - -КонецФункции - -// Устарела. Необходимо использовать РаботаВМоделиСервиса.РазделительОсновныхДанных. -// Возвращает имя общего реквизита, который является разделителем основных данных. -// -// Возвращаемое значение: -// Строка - имя общего реквизита. -// -Функция РазделительОсновныхДанных() Экспорт - - Результат = ""; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - Результат = МодульРаботаВМоделиСервиса.РазделительОсновныхДанных(); - КонецЕсли; - - Возврат Результат; - -КонецФункции - -// Устарела. Необходимо использовать РаботаВМоделиСервиса.РазделительВспомогательныхДанных. -// Возвращает имя общего реквизита, который является разделителем вспомогательных данных. -// -// Возвращаемое значение: -// Строка - имя общего реквизита. -// -Функция РазделительВспомогательныхДанных() Экспорт - - Результат = ""; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - Результат = МодульРаботаВМоделиСервиса.РазделительВспомогательныхДанных(); - КонецЕсли; - - Возврат Результат; - -КонецФункции - -// Устарела. Необходимо использовать ОбщегоНазначения.РазделениеВключено. -// Возвращает признак работы в режиме разделения данных по областям -// (технически это признак условного разделения). -// -// Возвращает Ложь, если конфигурация не может работать в режиме разделения данных -// (не содержит общих реквизитов, предназначенных для разделения данных). -// -// Возвращаемое значение: -// Булево - Истина, если разделение включено. -// - Ложь, если разделение выключено или не поддерживается. -// -Функция РазделениеВключено() Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - РазделениеВключено = МодульРаботаВМоделиСервиса.РазделениеВключено(); - Иначе - РазделениеВключено = Ложь; - КонецЕсли; - - Возврат РазделениеВключено; - -КонецФункции - -// Устарела. Необходимо использовать ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных. -// Возвращает признак возможности обращения к разделенным данным (которые входят в состав разделителей). -// Признак относится к сеансу, но может меняться во время работы сеанса, если разделение было включено -// в самом сеансе, поэтому проверку следует делать непосредственно перед обращением к разделенным данным. -// -// Возвращает Истина, если конфигурация не может работать в режиме разделения данных -// (не содержит общих реквизитов, предназначенных для разделения данных). -// -// Возвращаемое значение: -// Булево - Истина, если разделение не поддерживается, либо разделение выключено, -// либо разделение включено и разделители установлены. -// - Ложь, если разделение включено и разделители не установлены. -// -Функция ДоступноИспользованиеРазделенныхДанных() Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ДоступноИспользованиеРазделенныхДанных = МодульРаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных(); - Иначе - ДоступноИспользованиеРазделенныхДанных = Истина; - КонецЕсли; - - Возврат ДоступноИспользованиеРазделенныхДанных; - -КонецФункции - -// Устарела. Возвращает объект ПреобразованиеXSL созданный из общего макета с переданным -// именем. -// -// Параметры: -// ИмяОбщегоМакета - Строка - имя общего макета типа ДвоичныеДанные содержащего -// файл преобразования XSL. -// -// Возвращаемое значение: -// ПреобразованиеXSL - объект ПреобразованиеXSL. -// -Функция ПолучитьПреобразованиеXSLИзОбщегоМакета(Знач ИмяОбщегоМакета) Экспорт - - ДанныеМакета = ПолучитьОбщийМакет(ИмяОбщегоМакета); - ИмяФайлаПреобразования = ПолучитьИмяВременногоФайла("xsl"); - ДанныеМакета.Записать(ИмяФайлаПреобразования); - - Преобразование = Новый ПреобразованиеXSL; - Преобразование.ЗагрузитьТаблицуСтилейXSLИзФайла(ИмяФайлаПреобразования); - - Попытка - УдалитьФайлы(ИмяФайлаПреобразования); - Исключение - ЗаписьЖурналаРегистрации(НСтр("ru = 'Получение XSL'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - - Возврат Преобразование; - -КонецФункции - -// Устарела. Необходимо использовать РаботаВМоделиСервиса.СеансЗапущенБезРазделителей. -// Определяет, сеанс запущен с разделителями или без. -// -// Возвращаемое значение: -// Булево - Истина, если сеанс запущен без разделителей. -// -Функция СеансЗапущенБезРазделителей() Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей(); - Иначе - СеансЗапущенБезРазделителей = Истина; - КонецЕсли; - - Возврат СеансЗапущенБезРазделителей; - -КонецФункции - -// Устарела. Для получения нужных свойств следует использовать следующие функции: -// свойство ЭтоАдминистраторСистемы - Пользователи.ЭтоПолноправныйПользователь(, Истина); -// свойство ЭтоАдминистраторПрограммы - Пользователи.ЭтоПолноправныйПользователь(); -// свойство МодельСервиса - ОбщегоНазначение.РазделениеВключено(); -// свойство Автономный - ОбщегоНазначение.ЭтоАвтономноеРабочееМесто(); -// свойство Локальный - Не Автономный И Не МодельСервиса; -// свойство Файловый - ОбщегоНазначения.ИнформационнаяБазаФайловая(); -// свойство КлиентСерверный - Не ОбщегоНазначения.ИнформационнаяБазаФайловая(); -// свойство ЛокальныйФайловый - Локальный И Файловый (см. выше); -// свойство ЛокальныйКлиентСерверный - Локальный И КлиентСерверный (см. выше); -// свойство ЭтоWindowsКлиент - ОбщегоНазначенияКлиентСервер.ЭтоWindowsКлиент(); -// свойство ЭтоLinuxКлиент - ОбщегоНазначенияКлиентСервер.ЭтоLinuxКлиент(); -// свойство ЭтоOSXКлиент - ОбщегоНазначенияКлиентСервер.ЭтоOSXКлиент(); -// свойство ЭтоВебКлиент - ОбщегоНазначенияКлиентСервер.ЭтоВебКлиент(). -// -// Определяет текущий режим работы программы. -// Используется в панелях настроек программы для скрытия элементов, не предназначенных сразу для всех режимов работы. -// -// В панелях настроек программы включены 5 интерфейсов: -// - Для администратора сервиса в области данных абонента (АС). -// - Для администратора абонента (АА). -// - Для администратора локального решения в клиент-серверном режиме (ЛКС). -// - Для администратора локального решения в файловом режиме (ЛФ). -// - Для администратора автономного рабочего места (АРМ). -// -// Интерфейсы АС и АА разрезаются при помощи скрытия групп и элементов формы -// для всех ролей, кроме роли "АдминистраторСистемы". -// -// Администратор сервиса, выполнивший вход в область данных, -// должен видеть те же настройки что и администратор абонента -// вместе с настройками сервиса (неразделенными). -// -// Возвращаемое значение: -// Структура - Настройки, описывающие права текущего пользователя и текущий режим работы программы. -// По правам: -// * ЭтоАдминистраторСистемы - Булево - Истина, если есть право администрирования информационной базы. -// * ЭтоАдминистраторПрограммы - Булево - Истина, если есть доступ ко всем "прикладным" данным информационной -// базы. -// По режимам работы базы: -// * МодельСервиса - Булево - Истина, если в конфигурации есть разделители и они условно включены. -// * Локальный - Булево - Истина, если конфигурации работает в обычном режиме (не в модели сервиса и не в -// автономном рабочем месте). -// * Автономный - Булево - Истина, если конфигурации работает в режиме АРМ (автономное рабочее место). -// * Файловый - Булево - Истина, если конфигурации работает в файловом режиме. -// * КлиентСерверный - Булево - Истина, если конфигурации работает в клиент-серверном режиме. -// * ЛокальныйФайловый - Булево - Истина, если работа в обычном файловом режиме. -// * ЛокальныйКлиентСерверный - Булево - Истина, если работа в обычном клиент-серверном режиме. -// По функциональности клиентской части: -// * ЭтоLinuxКлиент - Булево - Истина, если клиентское приложение запущено под управлением ОС Linux. -// * ЭтоВебКлиент - Булево - Истина, если клиентское приложение является Веб-клиентом. -// -Функция РежимРаботыПрограммы() Экспорт - РежимРаботы = Новый Структура; - - // Права текущего пользователя. - РежимРаботы.Вставить("ЭтоАдминистраторПрограммы", Пользователи.ЭтоПолноправныйПользователь(, Ложь, Ложь)); // АА, АС, ЛКС, ЛФ - РежимРаботы.Вставить("ЭтоАдминистраторСистемы", Пользователи.ЭтоПолноправныйПользователь(, Истина, Ложь)); // АС, ЛКС, ЛФ - - // Режимы работы сервера. - РежимРаботы.Вставить("МодельСервиса", РазделениеВключено()); // АС, АА - РежимРаботы.Вставить("Локальный", ПолучитьФункциональнуюОпцию("РаботаВЛокальномРежиме")); // ЛКС, ЛФ - РежимРаботы.Вставить("Автономный", ПолучитьФункциональнуюОпцию("РаботаВАвтономномРежиме")); // АРМ - РежимРаботы.Вставить("Файловый", Ложь); // АС, АА, ЛФ - РежимРаботы.Вставить("КлиентСерверный", Ложь); // АС, АА, ЛКС - - Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда - РежимРаботы.Файловый = Истина; - Иначе - РежимРаботы.КлиентСерверный = Истина; - КонецЕсли; - - РежимРаботы.Вставить("ЛокальныйФайловый", - РежимРаботы.Локальный И РежимРаботы.Файловый); // ЛФ - РежимРаботы.Вставить("ЛокальныйКлиентСерверный", - РежимРаботы.Локальный И РежимРаботы.КлиентСерверный); // ЛКС - - // Режимы работы клиента. - РежимРаботы.Вставить("ЭтоWindowsКлиент", ОбщегоНазначенияКлиентСервер.ЭтоWindowsКлиент()); - РежимРаботы.Вставить("ЭтоLinuxКлиент" , ОбщегоНазначенияКлиентСервер.ЭтоLinuxКлиент()); - РежимРаботы.Вставить("ЭтоOSXКлиент" , ОбщегоНазначенияКлиентСервер.ЭтоOSXКлиент()); - РежимРаботы.Вставить("ЭтоВебКлиент" , ОбщегоНазначенияКлиентСервер.ЭтоВебКлиент()); - - Возврат РежимРаботы; -КонецФункции - -#КонецОбласти - -#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/ОтправкаSMS/Module.bsl b/SSL/src/CommonModules/ОтправкаSMS/Module.bsl index ea3810f44..d9d79a351 100644 --- a/SSL/src/CommonModules/ОтправкаSMS/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMS/Module.bsl @@ -159,21 +159,6 @@ #Область СлужебныйПрограммныйИнтерфейс -//////////////////////////////////////////////////////////////////////////////// -// Обновление ИБ. - -// Предназначена для перевода паролей в безопасное хранилище. -// Используется в обработчике обновления ИБ. -Процедура ПеренестиПаролиВБезопасноеХранилище() Экспорт - ЛогинДляОтправкиSMS = Константы.УдалитьЛогинДляОтправкиSMS.Получить(); - ПарольДляОтправкиSMS = Константы.УдалитьПарольДляОтправкиSMS.Получить(); - Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Константа.ПровайдерSMS"); - УстановитьПривилегированныйРежим(Истина); - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, ПарольДляОтправкиSMS); - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, ЛогинДляОтправкиSMS, "Логин"); - УстановитьПривилегированныйРежим(Ложь); -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. diff --git a/SSL/src/CommonModules/ОтправкаSMSКлиент/Module.bsl b/SSL/src/CommonModules/ОтправкаSMSКлиент/Module.bsl index eb613ba79..6bf449a50 100644 --- a/SSL/src/CommonModules/ОтправкаSMSКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОтправкаSMSКлиент/Module.bsl @@ -76,20 +76,25 @@ // Продолжение процедуры ОтправитьSMS. Процедура СоздатьНовоеSMSПроверкаНастроекВыполнена(ОтправкаSMSНастроена, ПараметрыОтправки) Экспорт - Если ОтправкаSMSНастроена Тогда + Если Не ОтправкаSMSНастроена Тогда + Возврат; + КонецЕсли; - ПараметрыРаботыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента(); - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") - И ПараметрыРаботыКлиента.ИспользоватьПрочиеВзаимодействия Тогда - - Предмет = ?(ПараметрыОтправки.ДополнительныеПараметры.Свойство("Предмет"), ПараметрыОтправки.ДополнительныеПараметры.Предмет, Неопределено); - - МодульВзаимодействияКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ВзаимодействияКлиент"); - МодульВзаимодействияКлиент.ОткрытьФормуОтправкиSMS(ПараметрыОтправки.НомераПолучателей, ПараметрыОтправки.Текст, Предмет, ПараметрыОтправки.ДополнительныеПараметры.ПеревестиВТранслит); - Иначе - ОткрытьФорму("ОбщаяФорма.ОтправкаSMS", ПараметрыОтправки); - КонецЕсли; + ПараметрыРаботыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента(); + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") + И ПараметрыРаботыКлиента.ИспользоватьПрочиеВзаимодействия Тогда + Предмет = ?(ПараметрыОтправки.ДополнительныеПараметры.Свойство("Предмет"), ПараметрыОтправки.ДополнительныеПараметры.Предмет, Неопределено); + + МодульВзаимодействияКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ВзаимодействияКлиент"); + ПараметрыФормы = МодульВзаимодействияКлиент.ПараметрыФормыОтправкиSMS(); + ПараметрыФормы.Адресаты = ПараметрыОтправки.НомераПолучателей; + ПараметрыФормы.Текст = ПараметрыОтправки.Текст; + ПараметрыФормы.Предмет = Предмет; + ПараметрыФормы.ОтправлятьВТранслите = ПараметрыОтправки.ДополнительныеПараметры.ПеревестиВТранслит; + МодульВзаимодействияКлиент.ОткрытьФормуОтправкиSMS(ПараметрыФормы); + Иначе + ОткрытьФорму("ОбщаяФорма.ОтправкаSMS", ПараметрыОтправки); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/CommonModules/ОтчетОДвиженияхДокументаСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ОтчетОДвиженияхДокументаСлужебныйКлиент/Module.bsl index 5a0556456..298220e42 100644 --- a/SSL/src/CommonModules/ОтчетОДвиженияхДокументаСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОтчетОДвиженияхДокументаСлужебныйКлиент/Module.bsl @@ -12,7 +12,7 @@ // См. "Расширение поля формы для поля табличного документа.Выбор" в синтакс-помощнике. // // Параметры: -// ФормаОтчета - УправляемаяФорма - Форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения - Форма отчета. // Элемент - ПолеФормы - Табличный документ. // Область - ОбластьЯчеекТабличногоДокумента - Выбранное значение. // СтандартнаяОбработка - Булево - Признак выполнения стандартной обработки события. @@ -37,7 +37,7 @@ // Открывает форму регистра с отбором по регистратору // // Параметры: -// ФормаОтчета - УправляемаяФорма - Форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения - Форма отчета. // Расшифровка - Структура - Структура со свойствами. // * ВидРегистра - Содержит вид регистра "Накопления", "Сведений", "Бухгалтерии" или "Расчета". // * ИмяРегистра - Содержит имя регистра как объекта метаданных. diff --git a/SSL/src/CommonModules/ОтчетыКлиент/Module.bsl b/SSL/src/CommonModules/ОтчетыКлиент/Module.bsl index fde33aac4..26db3cd7f 100644 --- a/SSL/src/CommonModules/ОтчетыКлиент/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыКлиент/Module.bsl @@ -12,7 +12,7 @@ // После завершения формирования вызывается ОбработчикЗавершения. // // Параметры: -// ФормаОтчета - УправляемаяФорма - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. // ОбработчикЗавершения - ОбработчикОповещения - обработчик, который будет вызван после формирования отчета. // В 1-й параметр процедуры, указанной в ОбработчикЗавершения, // передается параметр: ОтчетСформирован (Булево) - признак того, что отчет был успешно сформирован. @@ -213,7 +213,7 @@ // Вызывает диалог редактирования стандартного периода. // // Параметры: -// Форма - УправляемаяФорма - форма отчета или форма настроек отчета. +// Форма - ФормаКлиентскогоПриложения - форма отчета или форма настроек отчета. // ИмяКоманды - Строка - имя команды выбора периода, содержащее путь к значению периода. // Процедура ВыбратьПериод(Форма, ИмяКоманды) Экспорт diff --git a/SSL/src/CommonModules/ОтчетыКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОтчетыКлиентПереопределяемый/Module.bsl index 59de22783..a76fc3bfe 100644 --- a/SSL/src/CommonModules/ОтчетыКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыКлиентПереопределяемый/Module.bsl @@ -12,7 +12,7 @@ // Позволяет переопределить обработку результата формирования отчета. // // Параметры: -// ФормаОтчета - УправляемаяФорма - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. // ОтчетСформирован - Булево - Истина если отчет был успешно сформирован. // Процедура ПослеФормирования(ФормаОтчета, ОтчетСформирован) Экспорт @@ -23,7 +23,7 @@ // См. "Расширение поля формы для поля табличного документа.ОбработкаРасшифровки" в синтакс-помощнике. // // Параметры: -// ФормаОтчета - УправляемаяФорма - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. // Элемент - ПолеФормы - табличный документ. // Расшифровка - Произвольный - значение расшифровки точки, серии или значения диаграммы. // СтандартнаяОбработка - Булево - признак выполнения стандартной (системной) обработки события. @@ -36,7 +36,7 @@ // См. "Расширение поля формы для поля табличного документа.ОбработкаДополнительнойРасшифровки" в синтакс-помощнике. // // Параметры: -// ФормаОтчета - УправляемаяФорма - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. // Элемент - ПолеФормы - табличный документ. // Расшифровка - Произвольный - значение расшифровки точки, серии или значения диаграммы. // СтандартнаяОбработка - Булево - признак выполнения стандартной (системной) обработки события. @@ -49,7 +49,7 @@ // Пример добавления команды см. ОтчетыПереопределяемый.ПриСозданииНаСервере(). // // Параметры: -// ФормаОтчета - УправляемаяФорма - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. // Команда - КомандаФормы - команда, которая была вызвана. // Результат - Булево - Истина, если вызов команды обработан. // @@ -60,12 +60,12 @@ КонецПроцедуры // Обработчик результата выбора подчиненной формы. -// См. "УправляемаяФорма.ОбработкаВыбора" в синтакс-помощнике. +// См. "ФормаКлиентскогоПриложения.ОбработкаВыбора" в синтакс-помощнике. // // Параметры: -// ФормаОтчета - УправляемаяФорма - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. // ВыбранноеЗначение - Произвольный - результат выбора в подчиненной форме. -// ИсточникВыбора - УправляемаяФорма - форма, где осуществлен выбор. +// ИсточникВыбора - ФормаКлиентскогоПриложения - форма, где осуществлен выбор. // Результат - Булево - Истина, если результат выбора обработан. // Процедура ОбработкаВыбора(ФормаОтчета, ВыбранноеЗначение, ИсточникВыбора, Результат) Экспорт @@ -76,7 +76,7 @@ // См. "Расширение поля формы для поля табличного документа.Выбор" в синтакс-помощнике. // // Параметры: -// ФормаОтчета - УправляемаяФорма - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. // Элемент - ПолеФормы - табличный документ. // Область - ОбластьЯчеекТабличногоДокумента - выбранное значение. // СтандартнаяОбработка - Булево - признак выполнения стандартной обработки события. @@ -86,13 +86,13 @@ КонецПроцедуры // Обработчик широковещательного оповещения формы отчета. -// См. "УправляемаяФорма.ОбработкаОповещения" в синтакс-помощнике. +// См. "ФормаКлиентскогоПриложения.ОбработкаОповещения" в синтакс-помощнике. // // Параметры: -// ФормаОтчета - УправляемаяФорма - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. // ИмяСобытия - Строка - идентификатор события для принимающих форм. // Параметр - Произвольный - расширенная информация о событии. -// Источник - УправляемаяФорма, Произвольный - источник события. +// Источник - ФормаКлиентскогоПриложения, Произвольный - источник события. // ОповещениеОбработано - Булево - признак того, что событие обработано. // Процедура ОбработкаОповещения(ФормаОтчета, ИмяСобытия, Параметр, Источник, ОповещениеОбработано) Экспорт @@ -102,7 +102,7 @@ // Обработчик нажатия на кнопку выбора периода в отдельной форме. // // Параметры: -// ФормаОтчета - УправляемаяФорма - форма отчета. +// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. // Период - СтандартныйПериод - значение настройки компоновщика, соответствующей выбранному периоду. // СтандартнаяОбработка - Булево - если Истина, то будет использован стандартный диалог выбора периода. // Если установить в Ложь то стандартный диалог не откроется. diff --git a/SSL/src/CommonModules/ОтчетыКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОтчетыКлиентСервер/Module.bsl index 0649f8115..9d89c6e93 100644 --- a/SSL/src/CommonModules/ОтчетыКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыКлиентСервер/Module.bsl @@ -113,11 +113,11 @@ // // Вызывается в обработчике одноименного события формы отчета после выполнения кода формы. // // // // Параметры: -// // Форма - УправляемаяФорма - форма отчета. +// // Форма - ФормаКлиентскогоПриложения - форма отчета. // // Отказ - Булево - признак отказа от создания формы. -// // См. описание одноименного параметра "УправляемаяФорма.ПриСозданииНаСервере" в синтакс-помощнике. +// // См. описание одноименного параметра "ФормаКлиентскогоПриложения.ПриСозданииНаСервере" в синтакс-помощнике. // // СтандартнаяОбработка - Булево - признак выполнения стандартной (системной) обработки события. -// // См. описание одноименного параметра "УправляемаяФорма.ПриСозданииНаСервере" в синтакс-помощнике. +// // См. описание одноименного параметра "ФормаКлиентскогоПриложения.ПриСозданииНаСервере" в синтакс-помощнике. // // // // См. также: // // Процедура для вывода добавленных команд в форму: ОтчетыСервер.ВывестиКоманду(). @@ -197,7 +197,7 @@ // // Вызывается в обработчике одноименного события формы отчета после выполнения кода формы. // // // // Параметры: -// // Форма - УправляемаяФорма - Форма отчета. +// // Форма - ФормаКлиентскогоПриложения - Форма отчета. // // НовыеНастройкиКД - НастройкиКомпоновкиДанных - Настройки для загрузки в компоновщик настроек. // // // // См. ОтчетыПереопределяемый.ПередЗагрузкойВариантаНаСервере(). @@ -212,7 +212,7 @@ // // Вызывается в обработчике одноименного события формы отчета после выполнения кода формы. // // // // Параметры: -// // Форма - УправляемаяФорма - форма отчета. +// // Форма - ФормаКлиентскогоПриложения - форма отчета. // // НовыеНастройкиКД - НастройкиКомпоновкиДанных - настройки для загрузки в компоновщик настроек. // // // // См. синтакс-помощник "Расширение управляемой формы для отчета.ПриЗагрузкеВариантаНаСервере" в синтакс-помощнике. @@ -227,7 +227,7 @@ // // Вызывается в обработчике одноименного события формы отчета после выполнения кода формы. // // // // Параметры: -// // Форма - УправляемаяФорма - форма отчета. +// // Форма - ФормаКлиентскогоПриложения - форма отчета. // // НовыеПользовательскиеНастройкиКД - ПользовательскиеНастройкиКомпоновкиДанных - // // Пользовательские настройки для загрузки в компоновщик настроек. // // @@ -244,7 +244,7 @@ // // Вызывается до перезаполнения панели настроек формы отчета. // // // // Параметры: -// // Форма - УправляемаяФорма - форма отчета. +// // Форма - ФормаКлиентскогоПриложения - форма отчета. // // ПараметрыЗаполнения - Структура - параметры, которые будут загружены в отчет. // // // Процедура ПередЗаполнениемПанелиБыстрыхНастроек(Форма, ПараметрыЗаполнения) Экспорт @@ -257,7 +257,7 @@ // // Вызывается после перезаполнения панели настроек формы отчета. // // // // Параметры: -// // Форма - УправляемаяФорма - Форма отчета. +// // Форма - ФормаКлиентскогоПриложения - Форма отчета. // // ПараметрыЗаполнения - Структура - параметры, которые будут загружены в отчет. // // // Процедура ПослеЗаполненияПанелиБыстрыхНастроек(Форма, ПараметрыЗаполнения) Экспорт @@ -270,7 +270,7 @@ // // Вызывается в форме отчета перед выводом настройки. // // // // Параметры: -// // Форма - УправляемаяФорма, Неопределено - форма отчета. +// // Форма - ФормаКлиентскогоПриложения, Неопределено - форма отчета. // // СвойстваНастройки - Структура - описание настройки отчета, которая будет выведена в форме отчета. // // * ОписаниеТипов - ОписаниеТипов - тип настройки. // // * ЗначенияДляВыбора - СписокЗначений - объекты, которые будут предложены пользователю в списке @@ -422,8 +422,8 @@ // ПользовательскиеНастройки - ПользовательскиеНастройкиКомпоновкиДанных - Коллекция пользовательских настроек. // Функция ПолучитьОбъектПоПользовательскомуИдентификатору(Настройки, Идентификатор, Иерархия = Неопределено, ПользовательскиеНастройки = Неопределено) Экспорт - Если ПользовательскиеНастройки <> Неопределено - И ДоступенПоискНастройкиПоИдентификатору() Тогда + Если Иерархия = Неопределено + И ТипЗнч(ПользовательскиеНастройки) = Тип("ПользовательскиеНастройкиКомпоновкиДанных") Тогда НайденныеЭлементы = ПользовательскиеНастройки.ПолучитьОсновныеНастройкиПоИдентификаторуПользовательскойНастройки(Идентификатор); @@ -546,8 +546,8 @@ // Находит доступную настройку для отбора или параметра. // // Параметры: -// НастройкиКД - НастройкиКомпоновкиДанных - Коллекции настроек. -// ЭлементКД - ЭлементОтбораКомпоновкиДанных, ЗначениеПараметраНастроекКомпоновкиДанных, +// Настройки - НастройкиКомпоновкиДанных - Коллекции настроек. +// ЭлементНастройки - ЭлементОтбораКомпоновкиДанных, ЗначениеПараметраНастроекКомпоновкиДанных, // НастройкиВложенногоОбъектаКомпоновкиДанных - Значение элемента настройки. // // Возвращаемое значение: @@ -555,14 +555,27 @@ // ДоступныйОбъектНастройкиКомпоновкиДанных - Найденная доступная настройка. // Неопределено - Если доступная настройка не найдена. // -Функция НайтиДоступнуюНастройку(НастройкиКД, ЭлементКД) Экспорт - Тип = ТипЗнч(ЭлементКД); +Функция НайтиДоступнуюНастройку(Настройки, ЭлементНастройки) Экспорт + Тип = ТипЗнч(ЭлементНастройки); Если Тип = Тип("ЭлементОтбораКомпоновкиДанных") Тогда - Возврат НайтиДоступноеПолеКД(НастройкиКД, ЭлементКД.ЛевоеЗначение); + + ЭлементОтбора = ЭлементНастройки; + + Если ЗначениеЗаполнено(ЭлементНастройки.ИдентификаторПользовательскойНастройки) Тогда + ЭлементОтбора = ПолучитьОбъектПоПользовательскомуИдентификатору( + Настройки, ЭлементНастройки.ИдентификаторПользовательскойНастройки); + КонецЕсли; + + Возврат НайтиДоступноеПолеКД(Настройки, ЭлементОтбора.ЛевоеЗначение); + ИначеЕсли Тип = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда - Возврат НайтиДоступныйПараметрКД(НастройкиКД, ЭлементКД.Параметр); + + Возврат НайтиДоступныйПараметрКД(Настройки, ЭлементНастройки.Параметр); + ИначеЕсли Тип = Тип("НастройкиВложенногоОбъектаКомпоновкиДанных") Тогда - Возврат НастройкиКД.ДоступныеОбъекты.Элементы.Найти(ЭлементКД.ИдентификаторОбъекта); + + Возврат Настройки.ДоступныеОбъекты.Элементы.Найти(ЭлементНастройки.ИдентификаторОбъекта); + КонецЕсли; Возврат Неопределено; @@ -571,32 +584,66 @@ // Находит параметры и отборы по значению. // // Параметры: -// КоллекцияНастроекКД - КомпоновщикНастроекКомпоновкиДанных - Компоновщик настроек. -// Фильтр - Структура - Критерии поиска. +// Настройки - ПользовательскиеНастройкиКомпоновкиДанных, Массив - настройки, +// элементы которых необходимо отобрать по определенным критериям. +// Отбор - Структура - Критерии поиска. // * Использование - Булево - Использование настройки. // * Значение - * - Значение настройки. +// ЭлементыНастроек - Неопределено, КоллекцияЭлементовПользовательскихНастроекКомпоновкиДанных, +// КоллекцияЭлементовОтбораКомпоновкиДанных - элементы настроек, +// сравниваемые с критериями и помещаемые в результат, +// в случае соответствия критериям. // Результат - Массив, Неопределено - См. возвращаемое значение. // // Возвращаемое значение: // Массив - Найденные пользовательские настройки. // -Функция НайтиНастройки(КоллекцияНастроекКД, Фильтр, Результат = Неопределено) Экспорт +Функция ЭлементыНастроекОтобранные(Настройки, Отбор, ЭлементыНастроек = Неопределено, Результат = Неопределено) Экспорт + ЭтоПользовательскиеНастройки = (ТипЗнч(Настройки) = Тип("ПользовательскиеНастройкиКомпоновкиДанных")); + + Если ЭлементыНастроек = Неопределено Тогда + ЭлементыНастроек = ?(ЭтоПользовательскиеНастройки, Настройки.Элементы, Настройки); + КонецЕсли; + Если Результат = Неопределено Тогда Результат = Новый Массив; КонецЕсли; - Для Каждого НастройкаКД Из КоллекцияНастроекКД Цикл - Если ТипЗнч(НастройкаКД) = Тип("ЭлементОтбораКомпоновкиДанных") - И НастройкаКД.Использование = Фильтр.Использование - И НастройкаКД.ПравоеЗначение = Фильтр.Значение Тогда - Результат.Добавить(НастройкаКД); - ИначеЕсли ТипЗнч(НастройкаКД) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") - И НастройкаКД.Использование = Фильтр.Использование - И НастройкаКД.Значение = Фильтр.Значение Тогда - Результат.Добавить(НастройкаКД); - ИначеЕсли ТипЗнч(НастройкаКД) = Тип("ОтборКомпоновкиДанных") - Или ТипЗнч(НастройкаКД) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда - НайтиНастройки(НастройкаКД.Элементы, Фильтр, Результат); + Для Каждого Элемент Из ЭлементыНастроек Цикл + ЭлементАнализируемый = Неопределено; + + Если ЭтоПользовательскиеНастройки Тогда + ЭлементАнализируемый = Настройки.Элементы.Найти(Элемент.ИдентификаторПользовательскойНастройки); + КонецЕсли; + + Если ЭлементАнализируемый = Неопределено Тогда + ЭлементАнализируемый = Элемент; + КонецЕсли; + + Если ТипЗнч(ЭлементАнализируемый) = Тип("ЭлементОтбораКомпоновкиДанных") + И ЭлементАнализируемый.Использование = Отбор.Использование + И ЭлементАнализируемый.ПравоеЗначение = Отбор.Значение Тогда + + Результат.Добавить(ЭлементАнализируемый); + + ИначеЕсли ТипЗнч(ЭлементАнализируемый) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") + И ЭлементАнализируемый.Использование = Отбор.Использование + И ЭлементАнализируемый.Значение = Отбор.Значение Тогда + + Результат.Добавить(ЭлементАнализируемый); + + ИначеЕсли ТипЗнч(ЭлементАнализируемый) = Тип("ОтборКомпоновкиДанных") + Или ТипЗнч(ЭлементАнализируемый) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда + + Если ЗначениеЗаполнено(ЭлементАнализируемый.ИдентификаторПользовательскойНастройки) Тогда + + НайденныеЭлементы = Настройки.ПолучитьОсновныеНастройкиПоИдентификаторуПользовательскойНастройки( + ЭлементАнализируемый.ИдентификаторПользовательскойНастройки); + + Если НайденныеЭлементы.Количество() > 0 Тогда + ЭлементыНастроекОтобранные(Настройки, Отбор, НайденныеЭлементы[0].Элементы, Результат); + КонецЕсли; + КонецЕсли; КонецЕсли; КонецЦикла; @@ -958,8 +1005,8 @@ Если ТипЗнч(ЭлементАнализируемый) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда НайтиЗначенияПоляЭлементовОтбора(Поле, Элемент.Элементы, ПользовательскиеНастройки, Значение, РежимИзмененияВарианта); Иначе - Если ЭлементАнализируемый.Использование - И ЭлементАнализируемый.ЛевоеЗначение = Поле + Если Элемент.ЛевоеЗначение = Поле + И ЭлементАнализируемый.Использование И ЭлементАнализируемый.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно И ЗначениеЗаполнено(ЭлементАнализируемый.ПравоеЗначение) Тогда @@ -1917,14 +1964,4 @@ Возврат Новый ФиксированныйМассив(ПараметрыВыбора); КонецФункции -Функция ДоступенПоискНастройкиПоИдентификатору() - СистемнаяИнформация = Новый СистемнаяИнформация; - СтруктураВерсии = СтрРазделить(СистемнаяИнформация.ВерсияПриложения, "."); - - ОписаниеЧисла = Новый ОписаниеТипов("Число"); - ВерсияПриложения = ОписаниеЧисла.ПривестиЗначение(СтруктураВерсии[2]); - - Возврат (ВерсияПриложения > 12); -КонецФункции - #КонецОбласти diff --git a/SSL/src/CommonModules/ОтчетыПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОтчетыПереопределяемый/Module.bsl index 867eca605..4d3423df9 100644 --- a/SSL/src/CommonModules/ОтчетыПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыПереопределяемый/Module.bsl @@ -27,7 +27,7 @@ // для указания дополнительных параметров выбора. // // Параметры: -// Форма - УправляемаяФорма, Неопределено - форма отчета. +// Форма - ФормаКлиентскогоПриложения, Неопределено - форма отчета. // СвойстваНастройки - Структура - описание настройки отчета, которая будет выведена в форме отчета. // * ПолеКД - ПолеКомпоновкиДанных - выводимая настройка. // * ОписаниеТипов - ОписаниеТипов - тип выводимой настройки. @@ -37,7 +37,8 @@ // * ЗапросЗначенийВыбора - Запрос - указать запрос для выборки объектов, которыми необходимо дополнить // ЗначенияДляВыбора. Первой колонкой (с индексом 0) должен выбираться объект, // который следует добавить в ЗначенияДляВыбора.Значение. -// Для отключения автозаполнения в свойство ЗапросЗначенийВыбора.Текст следует записать пустую строку. +// Для отключения автозаполнения в свойство ЗапросЗначенийВыбора.Текст следует записать +// пустую строку. // * ОграничиватьВыборУказаннымиЗначениями - Булево - указать Истина, чтобы ограничить выбор пользователя // значениями, указанными в ЗначенияДляВыбора (его конечным состоянием). // * Тип - Строка - краткий идентификатор типа свойства настроек компоновщика настроек компоновки данных. @@ -66,10 +67,10 @@ КонецПроцедуры // Вызывается в обработчике одноименного события формы отчета после выполнения кода формы. -// См. "УправляемаяФорма.ПриСозданииНаСервере" в синтакс-помощнике и ОтчетыКлиентПереопределяемый.ОбработчикКоманды. +// См. "ФормаКлиентскогоПриложения.ПриСозданииНаСервере" в синтакс-помощнике и ОтчетыКлиентПереопределяемый.ОбработчикКоманды. // // Параметры: -// Форма - УправляемаяФорма - форма отчета. +// Форма - ФормаКлиентскогоПриложения - форма отчета. // Отказ - Булево - признак отказа от создания формы. // СтандартнаяОбработка - Булево - признак выполнения стандартной (системной) обработки события. // @@ -94,7 +95,7 @@ // См. "Расширение управляемой формы для отчета.ПередЗагрузкойВариантаНаСервере" в синтакс-помощнике. // // Параметры: -// Форма - УправляемаяФорма - форма отчета или настроек отчета. +// Форма - ФормаКлиентскогоПриложения - форма отчета или настроек отчета. // НовыеНастройкиКД - НастройкиКомпоновкиДанных - настройки для загрузки в компоновщик настроек. // Процедура ПередЗагрузкойВариантаНаСервере(Форма, НовыеНастройкиКД) Экспорт diff --git a/SSL/src/CommonModules/ОтчетыСервер/Module.bsl b/SSL/src/CommonModules/ОтчетыСервер/Module.bsl index 131de7b93..e05d7aed8 100644 --- a/SSL/src/CommonModules/ОтчетыСервер/Module.bsl +++ b/SSL/src/CommonModules/ОтчетыСервер/Module.bsl @@ -16,7 +16,7 @@ // // Параметры: // Отчет - ОтчетОбъект, ВнешнийОтчетОбъект - отчет, которому необходимо установить схему. -// Контекст - УправляемаяФорма - форма отчета или форма настройки отчета. +// Контекст - ФормаКлиентскогоПриложения - форма отчета или форма настройки отчета. // Передается "как есть" из одноименного параметра события // ПередЗагрузкойНастроекВКомпоновщик. // - Структура - параметры отчета: см. ВариантыОтчетов.ПодключитьОтчетИЗагрузитьНастройки. @@ -34,7 +34,7 @@ // КонецЕсли; // Процедура ПодключитьСхему(Отчет, Контекст, Схема, КлючСхемы) Экспорт - СобытиеФормы = (ТипЗнч(Контекст) = Тип("УправляемаяФорма")); + СобытиеФормы = (ТипЗнч(Контекст) = Тип("ФормаКлиентскогоПриложения")); Отчет.СхемаКомпоновкиДанных = Схема; Если СобытиеФормы Тогда @@ -103,7 +103,7 @@ // Для вызова из события ПриСозданииНаСервере формы отчета. // // Параметры: -// ФормаОтчета - УправляемаяФорма - форма отчета, в которую добавляется команда. +// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета, в которую добавляется команда. // КомандаИлиКоманды - КомандаФормы - команда, с которой будут связаны выводимые кнопки. // Если в свойстве Действие указана пустая строка, // то при выполнении команды будет вызвана процедура ОтчетыКлиентПереопределяемый.ОбработчикКоманды. @@ -435,6 +435,7 @@ КомпоновщикНастроек, ЭлементПользовательскойНастройки, ЭлементНастройки, ОписаниеНастройки); // Механизмы расширения. + ИнтеграцияПодсистемБСП.ПриОпределенииПараметровВыбораВариантыОтчетов(Неопределено, СвойстваНастройки); // Глобальные настройки вывода типов. ОтчетыПереопределяемый.ПриОпределенииПараметровВыбора(Неопределено, СвойстваНастройки); // Локальное переопределение для отчета. @@ -1036,6 +1037,7 @@ Результат.Колонки.Добавить("ПодчиненныйРеквизит", Новый ОписаниеТипов("Строка")); // Механизмы расширения. + ИнтеграцияПодсистемБСП.ПриДополненииСвязиОбъектовМетаданных(Результат); ОтчетыПереопределяемый.ДополнитьСвязиОбъектовМетаданных(Результат); // Глобальные связи... Если НастройкиОтчета.События.ДополнитьСвязиОбъектовМетаданных Тогда // ... можно переопределить локально для отчета. ОтчетОбъект(ОтчетОбъектИлиПолноеИмя).ДополнитьСвязиОбъектовМетаданных(Результат); @@ -1532,6 +1534,7 @@ КоличествоДо = НастройкаВарианта.ЗначенияДляВыбора.Количество(); // Механизмы расширения. + ИнтеграцияПодсистемБСП.ПриОпределенииПараметровВыбораВариантыОтчетов(Неопределено, НастройкаВарианта); // Глобальные настройки вывода типов. ОтчетыПереопределяемый.ПриОпределенииПараметровВыбора(Неопределено, НастройкаВарианта); // Локальное переопределение для отчета. @@ -2325,10 +2328,6 @@ НедоступныеЭлементыСтруктуры.Вставить(Тип("ТаблицаКомпоновкиДанных"), ТипФормыОтчета.Настройка); НедоступныеЭлементыСтруктуры.Вставить(Тип("ДиаграммаКомпоновкиДанных"), ТипФормыОтчета.Настройка); - СинхронизируемыеСвойства = Новый Соответствие; - СинхронизируемыеСвойства.Вставить(Тип("ЭлементОтбораКомпоновкиДанных"), "ЛевоеЗначение, Представление"); - СинхронизируемыеСвойства.Вставить(Тип("ЭлементУсловногоОформленияКомпоновкиДанных"), "Представление"); - #КонецОбласти #Область ЗаполнениеСтруктуры @@ -2352,11 +2351,6 @@ ЭлементНастройки, Неопределено, ""); КонецЕсли; - Свойства = СинхронизируемыеСвойства[ТипЭлемента]; - Если Свойства <> Неопределено Тогда - ЗаполнитьЗначенияСвойств(ЭлементПользовательскойНастройки, ЭлементНастройки, Свойства); - КонецЕсли; - Поле = Поля.Добавить(); Поле.ИдентификаторНастройки = ЭлементПользовательскойНастройки.ИдентификаторПользовательскойНастройки; Поле.ИндексНастройки = ПользовательскиеНастройки.Элементы.Индекс(ЭлементПользовательскойНастройки); @@ -3421,7 +3415,7 @@ КонецФункции Процедура УдалитьКомандыЭлементовНастроек(Форма, РеквизитыУдаляемые) - СуффиксыКоманд = СтрРазделить("ВыбратьПериод, Подбор, ВставитьИзБуфера", ", ", Ложь); + СуффиксыКоманд = СтрРазделить("ВыбратьПериод, Подбор, ВставитьИзБуфера", ", ", ЛОЖЬ); Для Каждого ИмяРеквизита Из РеквизитыУдаляемые Цикл Для Каждого Суффикс Из СуффиксыКоманд Цикл diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиКлиентСервер/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиКлиентСервер/Module.bsl index 823d5ab58..bce08eca7 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиКлиентСервер/Module.bsl @@ -19,25 +19,6 @@ КонецФункции -#Если Сервер Тогда -// Процедура записывает данные в журнал регистрации -// -// Параметры: -// ИмяСобытия - Строка -// Уровень - УровеньЖурналаРегистрации -// ТекстСообщения - Строка. -// -Процедура ЗаписатьВЖурналРегистрации(ИмяСобытия, Уровень, ТекстСообщения) Экспорт - - ЗаписьЖурналаРегистрации(ИмяСобытия, - Уровень, - , - НСтр("ru = 'Оценка производительности'"), - ТекстСообщения); - -КонецПроцедуры -#КонецЕсли - // Ключ параметра регламентного задания, соответствующий локальному каталогу экспорта. // Функция ЛокальныйКаталогЭкспортаКлючЗадания() Экспорт diff --git a/SSL/src/CommonModules/ОценкаПроизводительностиСлужебный/Module.bsl b/SSL/src/CommonModules/ОценкаПроизводительностиСлужебный/Module.bsl index 18ba58404..38be54715 100644 --- a/SSL/src/CommonModules/ОценкаПроизводительностиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ОценкаПроизводительностиСлужебный/Module.bsl @@ -38,22 +38,6 @@ Обработчик.НачальноеЗаполнение = Истина; Обработчик.Процедура = "ОценкаПроизводительностиСлужебный.ПервоначальноеЗаполнение"; - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.1.38"; - Обработчик.Процедура = "ОценкаПроизводительностиСлужебный.ЗаполнитьИмяХеш"; - - Обработчик = Обработчики.Добавить(); - Обработчик.МонопольныйРежим = Истина; - Обработчик.Версия = "2.3.1.74"; - Обработчик.Процедура = "ОценкаПроизводительностиСлужебный.ЗаполнитьИмяХеш"; - - - Обработчик = Обработчики.Добавить(); - Обработчик.МонопольныйРежим = Истина; - Обработчик.ОбщиеДанные = Истина; - Обработчик.Версия = "2.3.3.45"; - Обработчик.Процедура = "ОценкаПроизводительностиСлужебный.УстановитьЗначенияКонстант_2_3_3_45"; - КонецПроцедуры // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса. @@ -82,12 +66,9 @@ // См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт - РаботаВМоделиСервисаСуществует = ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса"); - Если РаботаВМоделиСервисаСуществует Тогда - МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); - Если МодульРаботаВМоделиСервиса.РазделениеВключено() И МодульРаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда - Возврат; - КонецЕсли; + Если ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + Возврат; КонецЕсли; КаталогиЭкспорта = КаталогиЭкспортаОценкиПроизводительности(); @@ -153,12 +134,8 @@ Процедура ПервоначальноеЗаполнение() Экспорт - РаботаВМоделиСервисаСуществует = ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса"); - Если РаботаВМоделиСервисаСуществует Тогда - МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); - Если МодульРаботаВМоделиСервиса.РазделениеВключено() Тогда - Возврат; - КонецЕсли; + Если ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; КонецЕсли; Константы.КоличествоЗамеровВПакетеЭкспорта.Установить(1000); @@ -354,19 +331,6 @@ КонецФункции -Процедура УстановитьЗначенияКонстант_2_3_3_45() Экспорт - - Константы.КоличествоЗамеровВПакетеЭкспорта.Установить(1000); - Константы.ПериодХраненияЗамеров.Установить(3650); - - РегЗадание = РегламентныеЗадания.НайтиПредопределенное(Метаданные.РегламентныеЗадания.ОчисткаЗамеровВремени); - Если РегЗадание <> Неопределено Тогда - РегЗадание.Использование = Константы.ВыполнятьЗамерыПроизводительности.Получить(); - РегЗадание.Записать(); - КонецЕсли - -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // Локальные служебные процедуры и функции. @@ -411,49 +375,6 @@ Возврат Разрешения; КонецФункции -Процедура ЗаполнитьИмяХеш() Экспорт - - НачатьТранзакцию(); - - Попытка - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить("Справочник.КлючевыеОперации"); - ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; - Блокировка.Заблокировать(); - - Запрос = Новый Запрос; - Запрос.Текст = " - |ВЫБРАТЬ - | Ссылка - |ИЗ - | Справочник.КлючевыеОперации - |ГДЕ - | ИмяХеш = """" - |"; - - Результат = Запрос.Выполнить(); - Выборка = Результат.Выбрать(); - Пока Выборка.Следующий() Цикл - СпрОбъект = Выборка.Ссылка.ПолучитьОбъект(); - - ХешMD5 = Новый ХешированиеДанных(ХешФункция.MD5); - ХешMD5.Добавить(СпрОбъект.Имя); - ИмяХешТемп = ХешMD5.ХешСумма; - СпрОбъект.ИмяХеш = СтрЗаменить(Строка(ИмяХешТемп), " ", ""); - СпрОбъект.ДополнительныеСвойства.Вставить(ОценкаПроизводительностиКлиентСервер.НеПроверятьПриоритет(), Истина); - - СпрОбъект.Записать(); - КонецЦикла; - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'", Метаданные.ОсновнойЯзык.КодЯзыка), УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - #Область ОбщегоНазначенияКопия // Возвращает Истина, если "функциональная" подсистема существует в конфигурации. diff --git a/SSL/src/CommonModules/ОчередьЗаданий/Module.bsl b/SSL/src/CommonModules/ОчередьЗаданий/Module.bsl deleted file mode 100644 index 1c333d3cb..000000000 --- a/SSL/src/CommonModules/ОчередьЗаданий/Module.bsl +++ /dev/null @@ -1,899 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -//////////////////////////////////////////////////////////////////////////////// -// Основные процедуры и функции. - -// Все методы доступные в API оперирует параметрами заданий. Возможность использования -// конкретного параметра зависит от метода и, в некоторых случаях, значений других -// параметров. Подробнее об этом написано в описании конкретных методов. -// -// Описание параметров: -// ОбластьДанных - Число - значение разделителя области данных задания. -// -1 для неразделенных заданий. При установленном разделении сеанса всегда -// используется значение сеанса. -// Идентификатор - СправочникСсылка.ОчередьЗаданий, -// СправочникСсылка.ОчередьЗаданийОбластейДанных - идентификатор задания. -// Использование - Булево - признак использования задания. -// ЗапланированныйМоментЗапуска - Дата (ДатаВремя) -дата запланированного запуска -// задания (в часовом поясе области данных). -// СостояниеЗадания - ПеречислениеСсылка.СостоянияЗаданий - состояние задания очереди. -// ЭксклюзивноеВыполнение - Булево - При установленном флаге задание будет выполнено -// даже при установленной блокировке начала сеансов в области данных. Так же если в -// области есть задания с таким флагом сначала будут выполнены они. -// Шаблон - СправочникСсылка.ШаблоныЗаданийОчереди - шаблон задания, используется только -// для разделенных заданий очереди. -// ИмяМетода - Строка - Имя метода (или псевдоним) обработчика задания. Не используется -// для заданий созданных по шаблону. -// Могут использоваться только методы для которых зарегистрированы псевдонимы через -// процедуру ПриОпределенииПсевдонимовОбработчиков общего модуля ОчередьЗаданийПереопределяемый. -// Параметры - Массив - Параметры для передачи в обработчик задания. -// Ключ - Строка - ключ задания. В пределах одной области данных не допускается -// дублирование заданий с одинаковым ключом и именем метода. -// ИнтервалПовтораПриАварийномЗавершении - Число - Время ожидания в секундах перед -// повторным запуском задания в случае его аварийного завершения. Отсчитывается от -// времени окончания неудачной попытки выполнения задания. Имеет смысл указывать только -// совместно с параметром КоличествоПовторовПриАварийномЗавершении. -// Расписание - РасписаниеРегламентногоЗадания - Расписание по которому следует -// выполнять задание. Если не указано - задание будет выполнено только один раз. -// КоличествоПовторовПриАварийномЗавершении - Число - Количество попыток повторного -// выполнения задания в случае его аварийного завершения. - -// Получает задания очереди по заданному отбору. -// Возможно получение неконсистентных данных. -// -// Параметры: -// Отбор - Структура - значения, по которым требуется отбирать задания (объединяются по И). Возможные ключи структуры: -// * ОбластьДанных - Число - область данных, -// * ИмяМетода - Строка - имя метода, -// * Идентификатор - УникальныйИдентификатор - идентификатор задания, -// * СостояниеЗадания - ПеречислениеСсылка.СостоянияЗаданий - состояние задания, -// * Ключ - Строка - ключ задания, -// * Шаблон - СправочникСсылка.ШаблоныЗаданийОчереди - шаблон задания, -// * Использование - Булево - использование задания. -// - Массив - содержит структуры со свойствами: -// * ВидСравнения - ВидСравнения - допустимыми значениями являются: -// ВидСравнения.Равно -// ВидСравнения.НеРавно -// ВидСравнения.ВСписке -// ВидСравнения.НеВСписке -// * Значение - Значение отбора, для видов сравнения ВСписке и НеВСписке - массив значений, для видов -// сравнения Равно / НеРавно - сами значения. -// -// Возвращаемое значение: -// ТаблицаЗначений - таблица найденных заданий. Колонки соответствуют параметрам заданий. -// -Функция ПолучитьЗадания(Знач Отбор) Экспорт - - ПроверитьПараметрыЗадания(Отбор, "Отбор"); - - // Формирование таблицы с условиями отбора. - ТаблицаУсловий = Новый ТаблицаЗначений; - ТаблицаУсловий.Колонки.Добавить("Поле", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная))); - ТаблицаУсловий.Колонки.Добавить("ВидСравнения", Новый ОписаниеТипов("ВидСравнения")); - ТаблицаУсловий.Колонки.Добавить("Параметр", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная))); - ТаблицаУсловий.Колонки.Добавить("Значение"); - - ОписанияПараметров = ОчередьЗаданийСлужебныйПовтИсп.ПараметрыЗаданийОчереди(); - - ПолучатьРазделенные = Истина; - ПолучатьНеразделенные = Истина; - - Для каждого КлючИЗначение Из Отбор Цикл - - ОписаниеПараметра = ОписанияПараметров.Найти(ВРег(КлючИЗначение.Ключ), "ИмяВРег"); - - Если ОписаниеПараметра.РазделениеДанных Тогда - КонтрольРазделения = Истина; - Иначе - КонтрольРазделения = Ложь; - КонецЕсли; - - Если ТипЗнч(КлючИЗначение.Значение) = Тип("Массив") Тогда - Для Индекс = 0 По КлючИЗначение.Значение.ВГраница() Цикл - ОписаниеОтбора = КлючИЗначение.Значение[Индекс]; - - Условие = ТаблицаУсловий.Добавить(); - Условие.Поле = ОписаниеПараметра.Поле; - Условие.ВидСравнения = ОписаниеОтбора.ВидСравнения; - Условие.Параметр = ОписаниеПараметра.Имя + ФорматИндекса(Индекс); - Условие.Значение = ОписаниеОтбора.Значение; - - Если КонтрольРазделения Тогда - ОпределениеФильтраПоРазделенностиСправочников( - ОписаниеОтбора.Значение, - ОписаниеПараметра, - ПолучатьРазделенные, - ПолучатьНеразделенные); - КонецЕсли; - - КонецЦикла; - Иначе - - Условие = ТаблицаУсловий.Добавить(); - Условие.Поле = ОписаниеПараметра.Поле; - Условие.ВидСравнения = ВидСравнения.Равно; - Условие.Параметр = ОписаниеПараметра.Имя; - Условие.Значение = КлючИЗначение.Значение; - - Если КонтрольРазделения Тогда - ОпределениеФильтраПоРазделенностиСправочников( - КлючИЗначение.Значение, - ОписаниеПараметра, - ПолучатьРазделенные, - ПолучатьНеразделенные); - КонецЕсли; - - КонецЕсли; - - КонецЦикла; - - // Подготовка запроса - Запрос = Новый Запрос; - - РазделительЗаданийОбластейДанных = РаботаВМоделиСервиса.РазделительВспомогательныхДанных(); - - СправочникиЗаданий = ОчередьЗаданийСлужебныйПовтИсп.ПолучитьСправочникиЗаданий(); - ТекстЗапроса = ""; - Для Каждого СправочникЗаданий Из СправочникиЗаданий Цикл - - Отказ = Ложь; - ИмяСправочника = Метаданные.НайтиПоТипу(ТипЗнч(СправочникЗаданий)).ПолноеИмя(); - - Если Не ПолучатьРазделенные Тогда - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() И РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ИмяСправочника, РазделительЗаданийОбластейДанных) Тогда - Продолжить; - КонецЕсли; - - КонецЕсли; - - Если Не ПолучатьНеразделенные Тогда - - Если Не РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() ИЛИ Не РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ИмяСправочника, РазделительЗаданийОбластейДанных) Тогда - Продолжить; - КонецЕсли; - - КонецЕсли; - - Если Не ПустаяСтрока(ТекстЗапроса) Тогда - - ТекстЗапроса = ТекстЗапроса + " - | - |ОБЪЕДИНИТЬ ВСЕ - |" - - КонецЕсли; - - ПоляВыборки = ОчередьЗаданийСлужебныйПовтИсп.ПоляВыборкиОчередиЗаданий(ИмяСправочника); - - СтрокаУсловий = ""; - Если ТаблицаУсловий.Количество() > 0 Тогда - - ВидыСравнения = ОчередьЗаданийСлужебныйПовтИсп.ВидыСравненияОтбораЗаданий(); - - Для Каждого Условие Из ТаблицаУсловий Цикл - - Если Условие.Поле = РазделительЗаданийОбластейДанных Тогда - Если Не РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() ИЛИ Не РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ИмяСправочника, РазделительЗаданийОбластейДанных) Тогда - Отказ = Истина; - Продолжить; - КонецЕсли; - КонецЕсли; - - Если НЕ ПустаяСтрока(СтрокаУсловий) Тогда - СтрокаУсловий = СтрокаУсловий + Символы.ПС + Символы.Таб + "И "; - КонецЕсли; - - СтрокаУсловий = СтрокаУсловий + "Очередь." + Условие.Поле + " " - + ВидыСравнения.Получить(Условие.ВидСравнения) + " (&" + Условие.Параметр + ")"; - - Запрос.УстановитьПараметр(Условие.Параметр, Условие.Значение); - КонецЦикла; - - КонецЕсли; - - Если Отказ Тогда - Продолжить; - КонецЕсли; - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() И РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ИмяСправочника, РаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда - - ТекстЗапроса = ТекстЗапроса + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "ВЫБРАТЬ - |" + ПоляВыборки + ", - | ЕСТЬNULL(ЧасовыеПояса.Значение, """") КАК ЧасовойПояс - |ИЗ - | %1 КАК Очередь ЛЕВОЕ СОЕДИНЕНИЕ Константа.ЧасовойПоясОбластиДанных КАК ЧасовыеПояса - | ПО Очередь.ОбластьДанныхВспомогательныеДанные = ЧасовыеПояса.ОбластьДанныхВспомогательныеДанные", - СправочникЗаданий.ПустаяСсылка().Метаданные().ПолноеИмя()); - - Иначе - - ТекстЗапроса = ТекстЗапроса + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "ВЫБРАТЬ - |" + ПоляВыборки + ", - | """" КАК ЧасовойПояс - |ИЗ - | %1 КАК Очередь", - СправочникЗаданий.ПустаяСсылка().Метаданные().ПолноеИмя()); - - КонецЕсли; - - Если Не ПустаяСтрока(СтрокаУсловий) Тогда - - ТекстЗапроса = ТекстЗапроса + " - |ГДЕ - | " + СтрокаУсловий; - - КонецЕсли; - - КонецЦикла; - - Если ПустаяСтрока(ТекстЗапроса) Тогда - ВызватьИсключение НСтр("ru = 'Некорректное значение отбора - не обнаружено на одного справочника, задания из которого подходили бы под условия в отборе.'"); - КонецЕсли; - - Запрос.Текст = ТекстЗапроса; - - // Получение данных - Если ТранзакцияАктивна() Тогда - Результат = Запрос.Выполнить().Выгрузить(); - Иначе - Результат = РаботаВМоделиСервиса.ВыполнитьЗапросВнеТранзакции(Запрос).Выгрузить(); - КонецЕсли; - - // Приведение результатов - Результат.Колонки.Расписание.Имя = "РасписаниеХранилище"; - Результат.Колонки.Параметры.Имя = "ПараметрыХранилище"; - Результат.Колонки.Добавить("Расписание", Новый ОписаниеТипов("РасписаниеРегламентногоЗадания, Неопределено")); - Результат.Колонки.Добавить("Параметры", Новый ОписаниеТипов("Массив")); - - Для каждого СтрокаЗадания Из Результат Цикл - СтрокаЗадания.Расписание = СтрокаЗадания.РасписаниеХранилище.Получить(); - СтрокаЗадания.Параметры = СтрокаЗадания.ПараметрыХранилище.Получить(); - - ЧасовойПоясОбласти = СтрокаЗадания.ЧасовойПояс; - Если Не ЗначениеЗаполнено(ЧасовойПоясОбласти) Тогда - ЧасовойПоясОбласти = Неопределено; - КонецЕсли; - - СтрокаЗадания.ЗапланированныйМоментЗапуска = - МестноеВремя(СтрокаЗадания.ЗапланированныйМоментЗапуска, ЧасовойПоясОбласти); - КонецЦикла; - - Результат.Колонки.Удалить("РасписаниеХранилище"); - Результат.Колонки.Удалить("ПараметрыХранилище"); - Результат.Колонки.Удалить("ЧасовойПояс"); - - Возврат Результат; - -КонецФункции - -// Добавляет новое задание в очередь. -// В случае вызова в транзакции на задание устанавливается объектная блокировка. -// -// Параметры: -// ПараметрыЗадания - Структура - Параметры добавляемого задания, возможные ключи: -// ОбластьДанных -// Использование -// ЗапланированныйМоментЗапуска -// ЭксклюзивноеВыполнение. -// ИмяМетода - обязательно для указания. -// Параметры -// Ключ -// ИнтервалПовтораПриАварийномЗавершении. -// Расписание -// КоличествоПовторовПриАварийномЗавершении. -// -// Возвращаемое значение: -// СправочникСсылка.ОчередьЗаданий, СправочникСсылка.ОчередьЗаданийОбластейДанных - Идентификатор добавленного задания. -// -Функция ДобавитьЗадание(ПараметрыЗадания) Экспорт - - ПроверитьПараметрыЗадания(ПараметрыЗадания, "Добавление"); - - // Проверка имени метода - Если НЕ ПараметрыЗадания.Свойство("ИмяМетода") Тогда - ВызватьИсключение(НСтр("ru = 'Не задан обязательный параметр задания ИмяМетода'")); - КонецЕсли; - - ПроверитьНаличиеРегистрацииОбработчикаЗадания(ПараметрыЗадания.ИмяМетода); - - // Проверка уникальности ключа. - Если ПараметрыЗадания.Свойство("Ключ") И ЗначениеЗаполнено(ПараметрыЗадания.Ключ) Тогда - Отбор = Новый Структура; - Отбор.Вставить("ИмяМетода", ПараметрыЗадания.ИмяМетода); - Отбор.Вставить("Ключ", ПараметрыЗадания.Ключ); - Отбор.Вставить("ОбластьДанных", ПараметрыЗадания.ОбластьДанных); - Отбор.Вставить("СостояниеЗадания", Новый Массив); - - // Не учитывать завершенные. - ОписаниеОтбора = Новый Структура; - ОписаниеОтбора.Вставить("ВидСравнения", ВидСравнения.НеРавно); - ОписаниеОтбора.Вставить("Значение", Перечисления.СостоянияЗаданий.Завершено); - - Отбор.СостояниеЗадания.Добавить(ОписаниеОтбора); - - Если ПолучитьЗадания(Отбор).Количество() > 0 Тогда - ВызватьИсключение ПолучитьТекстИсключенияДублированиеЗаданийСОдинаковымКлючом(); - КонецЕсли; - КонецЕсли; - - // Умолчания - Если НЕ ПараметрыЗадания.Свойство("Использование") Тогда - ПараметрыЗадания.Вставить("Использование", Истина); - КонецЕсли; - - ПланируемыйМоментЗапуска = Неопределено; - Если ПараметрыЗадания.Свойство("ЗапланированныйМоментЗапуска", ПланируемыйМоментЗапуска) Тогда - - СтандартнаяОбработка = Истина; - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - - МодульОчередьЗаданийСлужебныйРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебныйРазделениеДанных"); - МодульОчередьЗаданийСлужебныйРазделениеДанных.ПриОпределенииЗапланированногоМоментаЗапуска( - ПараметрыЗадания, - ПланируемыйМоментЗапуска, - СтандартнаяОбработка); - - КонецЕсли; - - Если СтандартнаяОбработка Тогда - ПланируемыйМоментЗапуска = УниверсальноеВремя(ПланируемыйМоментЗапуска); - КонецЕсли; - - ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ПланируемыйМоментЗапуска); - - УказанМоментЗапуска = Истина; - - Иначе - - ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ТекущаяУниверсальнаяДата()); - УказанМоментЗапуска = Ложь; - - КонецЕсли; - - // Типы сохраняемые в хранилище значения. - Если ПараметрыЗадания.Свойство("Параметры") Тогда - ПараметрыЗадания.Вставить("Параметры", Новый ХранилищеЗначения(ПараметрыЗадания.Параметры)); - Иначе - ПараметрыЗадания.Вставить("Параметры", Новый ХранилищеЗначения(Новый Массив)); - КонецЕсли; - - Если ПараметрыЗадания.Свойство("Расписание") - И ПараметрыЗадания.Расписание <> Неопределено Тогда - - ПараметрыЗадания.Вставить("Расписание", Новый ХранилищеЗначения(ПараметрыЗадания.Расписание)); - Иначе - ПараметрыЗадания.Вставить("Расписание", Неопределено); - КонецЕсли; - - // Формирование записи задания. - - СправочникДляЗадания = Справочники.ОчередьЗаданий; - СтандартнаяОбработка = Истина; - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - МодульОчередьЗаданийСлужебныйРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебныйРазделениеДанных"); - ПереопределенныйСправочник = МодульОчередьЗаданийСлужебныйРазделениеДанных.ПриВыбореСправочникаДляЗадания(ПараметрыЗадания); - Если ПереопределенныйСправочник <> Неопределено Тогда - СправочникДляЗадания = ПереопределенныйСправочник; - КонецЕсли; - КонецЕсли; - - Задание = СправочникДляЗадания.СоздатьЭлемент(); - Для каждого ОписаниеПараметра Из ОчередьЗаданийСлужебныйПовтИсп.ПараметрыЗаданийОчереди() Цикл - Если ПараметрыЗадания.Свойство(ОписаниеПараметра.Имя) Тогда - Если ОписаниеПараметра.РазделениеДанных Тогда - Если Не РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() ИЛИ Не РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(Задание.Метаданные(), РаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда - Продолжить; - КонецЕсли; - КонецЕсли; - Задание[ОписаниеПараметра.Поле] = ПараметрыЗадания[ОписаниеПараметра.Имя]; - КонецЕсли; - КонецЦикла; - - Если Задание.Использование - И (УказанМоментЗапуска ИЛИ ПараметрыЗадания.Расписание = Неопределено) Тогда - - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Запланировано; - Иначе - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.НеЗапланировано; - КонецЕсли; - - СсылкаЗадания = СправочникДляЗадания.ПолучитьСсылку(); - Задание.УстановитьСсылкуНового(СсылкаЗадания); - - Если ТранзакцияАктивна() Тогда - - ЗаблокироватьДанныеДляРедактирования(СсылкаЗадания); - // Блокировка будет автоматически снята при завершении транзакции. - КонецЕсли; - - РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(Задание); - - Возврат Задание.Ссылка; - -КонецФункции - -// Изменяет задание с указанным идентификатором. -// В случае вызова в транзакции на задание устанавливается объектная блокировка. -// -// Параметры: -// Идентификатор - СправочникСсылка.ОчередьЗаданий, СправочникСсылка.ОчередьЗаданийОбластейДанных - Идентификатор задания -// ПараметрыЗадания - Структура - Параметры, которые следует установить заданию, -// возможные ключи: -// Использование -// ЗапланированныйМоментЗапуска -// ЭксклюзивноеВыполнение -// ИмяМетода. -// Параметры -// Ключ -// ИнтервалПовтораПриАварийномЗавершении. -// Расписание -// КоличествоПовторовПриАварийномЗавершении. -// -// В случае если задание создано на основе шаблона, могут быть указаны -// только следующие ключи: -// Использование, -// ЗапланированныйМоментЗапуска, -// ЭксклюзивноеВыполнение, -// ИнтервалПовтораПриАварийномЗавершении, -// Расписание, -// КоличествоПовторовПриАварийномЗавершении. -// -Процедура ИзменитьЗадание(Идентификатор, ПараметрыЗадания) Экспорт - - ПроверитьПараметрыЗадания(ПараметрыЗадания, "Изменение"); - - Задание = ОписаниеЗаданияПоИдентификатору(Идентификатор); - - // Проверка попытки изменения задания другой области. - Если РаботаВМоделиСервиса.РазделениеВключено() - И РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() - И Задание.ОбластьДанных <> РаботаВМоделиСервиса.ЗначениеРазделителяСеанса() Тогда - - ВызватьИсключение(ПолучитьТекстИсключенияПолученияДанныхДругойОбласти()); - КонецЕсли; - - // Проверка попытки изменения параметров заданий с заданным шаблоном. - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() И РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных( - Идентификатор.Метаданные().ПолноеИмя(), - РаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда - Если ЗначениеЗаполнено(Задание.Шаблон) Тогда - ОписанияПараметров = ОчередьЗаданийСлужебныйПовтИсп.ПараметрыЗаданийОчереди(); - Для каждого КлючИЗначение Из ПараметрыЗадания Цикл - ОписаниеПараметра = ОписанияПараметров.Найти(ВРег(КлючИЗначение.Ключ), "ИмяВРег"); - Если Не ОписаниеПараметра.Шаблон Тогда - ШаблонСообщения = НСтр("ru = 'Задание очереди с идентификатором %1 создано на основе шаблона. - |Изменение параметра %2 заданий с установленным шаблоном запрещено.'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Идентификатор, ОписаниеПараметра.Имя); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - КонецЦикла; - КонецЕсли; - КонецЕсли; - - // Проверка уникальности ключа. - Если ПараметрыЗадания.Свойство("Ключ") И ЗначениеЗаполнено(ПараметрыЗадания.Ключ) Тогда - Отбор = Новый Структура; - Отбор.Вставить("ИмяМетода", ПараметрыЗадания.ИмяМетода); - Отбор.Вставить("Ключ", ПараметрыЗадания.Ключ); - Отбор.Вставить("ОбластьДанных", Задание.ОбластьДанных); - Отбор.Вставить("Идентификатор", Новый Массив); - - // Не учитывать само изменяемое. - ОписаниеОтбора = Новый Структура; - ОписаниеОтбора.Вставить("ВидСравнения", ВидСравнения.НеРавно); - ОписаниеОтбора.Вставить("Значение", Идентификатор); - - Отбор.Идентификатор.Добавить(ОписаниеОтбора); - - Если ПолучитьЗадания(Отбор).Количество() > 0 Тогда - ВызватьИсключение ПолучитьТекстИсключенияДублированиеЗаданийСОдинаковымКлючом(); - КонецЕсли; - КонецЕсли; - - ЗапланированныйМоментЗапуска = Неопределено; - Если ПараметрыЗадания.Свойство("ЗапланированныйМоментЗапуска", ЗапланированныйМоментЗапуска) - И ЗначениеЗаполнено(ПараметрыЗадания.ЗапланированныйМоментЗапуска) Тогда - - СтандартнаяОбработка = Истина; - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - - МодульОчередьЗаданийСлужебныйРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебныйРазделениеДанных"); - МодульОчередьЗаданийСлужебныйРазделениеДанных.ПриОпределенииЗапланированногоМоментаЗапуска( - ПараметрыЗадания, - ЗапланированныйМоментЗапуска, - СтандартнаяОбработка); - - КонецЕсли; - - Если СтандартнаяОбработка Тогда - ЗапланированныйМоментЗапуска = УниверсальноеВремя(ЗапланированныйМоментЗапуска); - КонецЕсли; - - ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ЗапланированныйМоментЗапуска); - - УказанМоментЗапуска = Истина; - Иначе - УказанМоментЗапуска = Ложь; - КонецЕсли; - - // Типы сохраняемые в хранилище значения. - Если ПараметрыЗадания.Свойство("Параметры") Тогда - ПараметрыЗадания.Вставить("Параметры", Новый ХранилищеЗначения(ПараметрыЗадания.Параметры)); - КонецЕсли; - - Если ПараметрыЗадания.Свойство("Расписание") - И ПараметрыЗадания.Расписание <> Неопределено Тогда - - ПараметрыЗадания.Вставить("Расписание", Новый ХранилищеЗначения(ПараметрыЗадания.Расписание)); - КонецЕсли; - - // Перепланирование задания с расписанием. - Если НЕ ПараметрыЗадания.Свойство("ЗапланированныйМоментЗапуска", ЗапланированныйМоментЗапуска) - И ПараметрыЗадания.Свойство("Расписание") Тогда - - ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ЗапланированныйМоментЗапуска); - КонецЕсли; - - // Блокировка записи задания - ЗаблокироватьДанныеДляРедактирования(Идентификатор); - - НачатьТранзакцию(); - Попытка - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить(Идентификатор.Метаданные().ПолноеИмя()); - ЭлементБлокировки.УстановитьЗначение("Ссылка", Идентификатор); - Блокировка.Заблокировать(); - - // Формирование записи задания. - - Если Не ОбщегоНазначения.СсылкаСуществует(Идентификатор) Тогда - ШаблонСообщения = НСтр("ru = 'Задание с идентификатором %1 к изменению не найдено. Область данных: %2'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Идентификатор, Задание.ОбластьДанных); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - - Задание = Идентификатор.ПолучитьОбъект(); - - Для каждого ОписаниеПараметра Из ОчередьЗаданийСлужебныйПовтИсп.ПараметрыЗаданийОчереди() Цикл - Если ПараметрыЗадания.Свойство(ОписаниеПараметра.Имя) Тогда - Задание[ОписаниеПараметра.Поле] = ПараметрыЗадания[ОписаниеПараметра.Имя]; - КонецЕсли; - КонецЦикла; - - Если Задание.Использование - И (УказанМоментЗапуска - ИЛИ НЕ ПараметрыЗадания.Свойство("Расписание") - ИЛИ ПараметрыЗадания.Расписание = Неопределено) Тогда - - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Запланировано; - Иначе - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.НеЗапланировано; - КонецЕсли; - - РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(Задание); - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - ВызватьИсключение; - - КонецПопытки; - - Если НЕ ТранзакцияАктивна() Тогда // Иначе блокировка будет снята при завершении транзакции. - РазблокироватьДанныеДляРедактирования(Идентификатор); - КонецЕсли; - -КонецПроцедуры - -// Удаляет задание из очереди заданий. -// Удаление заданий с установленным шаблоном запрещено. -// В случае вызова в транзакции на задание устанавливается объектная блокировка. -// -// Параметры: -// Идентификатор - СправочникСсылка.ОчередьЗаданий, СправочникСсылка.ОчередьЗаданийОбластейДанных, - Идентификатор задания. -// -Процедура УдалитьЗадание(Идентификатор) Экспорт - - Задание = Идентификатор.ПолучитьОбъект(); - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() И РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных( - Задание.Метаданные().ПолноеИмя(), - РаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда - Если ЗначениеЗаполнено(Задание.Шаблон) Тогда - ШаблонСообщения = НСтр("ru = 'Задание очереди с идентификатором %1 создано на основе шаблона. - |Удаление заданий с установленным шаблоном запрещено.'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Идентификатор); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - КонецЕсли; - - ЗаблокироватьДанныеДляРедактирования(Идентификатор); - - Задание.ОбменДанными.Загрузка = Истина; - РаботаВМоделиСервиса.УдалитьВспомогательныеДанные(Задание); - - Если НЕ ТранзакцияАктивна() Тогда // Иначе блокировка снимется при завершении транзакции. - РазблокироватьДанныеДляРедактирования(Идентификатор); - КонецЕсли; - -КонецПроцедуры - -// Возвращает шаблон задания очереди по имени предопределенного -// регламентного задания из которого он создан. -// -// Параметры: -// Имя - Строка - имя предопределенного -// регламентного задания. -// -// Возвращаемое значение: -// СправочникСсылка.ШаблоныЗаданийОчереди - шаблон задания. -// -Функция ШаблонПоИмени(Знач Имя) Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ШаблоныЗаданийОчереди.Ссылка КАК Ссылка - |ИЗ - | Справочник.ШаблоныЗаданийОчереди КАК ШаблоныЗаданийОчереди - |ГДЕ - | ШаблоныЗаданийОчереди.Имя = &Имя"; - Запрос.УстановитьПараметр("Имя", Имя); - - Результат = Запрос.Выполнить(); - Если Результат.Пустой() Тогда - ШаблонСообщения = НСтр("ru = 'Не найден шаблон задания с именем %1'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Имя); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - - Выборка = Результат.Выбрать(); - Выборка.Следующий(); - - Возврат Выборка.Ссылка; - -КонецФункции - -// Возвращает текст ошибки при попытке выполнить одновременно два задания с одним ключом. -// -// Возвращаемое значение: -// Строка - текст исключения. -// -Функция ПолучитьТекстИсключенияДублированиеЗаданийСОдинаковымКлючом() Экспорт - - Возврат НСтр("ru = 'Дублирование заданий с одинаковым значения поля ''Ключ'' не допустимо.'"); - -КонецФункции - -// Возвращает список шаблонов заданий очереди. -// -// Возвращаемое значение: -// Массив - имена предопределенных неразделенных регламентных заданий, которые используются -// в качестве шаблонов для заданий очереди. -// -Функция ШаблоныЗаданийОчереди() Экспорт - - Шаблоны = Новый Массив; - - ИнтеграцияПодсистемБСП.ПриПолученииСпискаШаблонов(Шаблоны); - ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов(Шаблоны); - - Возврат Шаблоны; - -КонецФункции - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Проверяет переданную структуру параметров на соответствие требованиям -// подсистемы: -// - состав ключей -// - типы параметров. -// -// Параметры: -// Параметры - Структура - параметры заданий. -// Режим - Строка - режим в котором следует проверять параметры. -// Допустимые значения: -// Отбор - проверка параметров для отбора. -// Добавление - проверка параметров для добавления. -// Изменение - проверка параметров для изменения. -// -Процедура ПроверитьПараметрыЗадания(Параметры, Режим) - - Если ТипЗнч(Параметры) <> Тип("Структура") Тогда - ШаблонСообщения = НСтр("ru = 'Передан недопустимый тип набора параметров задания - %1'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, ТипЗнч(Параметры)); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - - Отбор = Режим = "Отбор"; - - ОписанияПараметров = ОчередьЗаданийСлужебныйПовтИсп.ПараметрыЗаданийОчереди(); - - ВидыСравнения = ОчередьЗаданийСлужебныйПовтИсп.ВидыСравненияОтбораЗаданий(); - - КлючиОписанияОтбора = Новый Массив; - КлючиОписанияОтбора.Добавить("ВидСравнения"); - КлючиОписанияОтбора.Добавить("Значение"); - - Для каждого КлючИЗначение Из Параметры Цикл - ОписаниеПараметра = ОписанияПараметров.Найти(ВРег(КлючИЗначение.Ключ), "ИмяВРег"); - Если ОписаниеПараметра = Неопределено - ИЛИ НЕ ОписаниеПараметра[Режим] Тогда - - ШаблонСообщения = НСтр("ru = 'Передан недопустимый параметр задания - %1'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, КлючИЗначение.Ключ); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - - Если Отбор И ТипЗнч(КлючИЗначение.Значение) = Тип("Массив") Тогда - // Массив описаний отбора - Для каждого ОписаниеОтбора Из КлючИЗначение.Значение Цикл - Если ТипЗнч(ОписаниеОтбора) <> Тип("Структура") Тогда - ШаблонСообщения = НСтр("ru = 'Передан недопустимый тип %1 в коллекции описания отбора %2'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, ТипЗнч(ОписаниеОтбора), КлючИЗначение.Ключ); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - - // Проверка ключей - Для каждого ИмяКлюча Из КлючиОписанияОтбора Цикл - Если НЕ ОписаниеОтбора.Свойство(ИмяКлюча) Тогда - ШаблонСообщения = НСтр("ru = 'Передано недопустимое описание отбора в коллекции описания отбора %1. - |Отсутствует свойство %2.'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, КлючИЗначение.Ключ, ИмяКлюча); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - КонецЦикла; - - // Проверка вида сравнения - Если ВидыСравнения.Получить(ОписаниеОтбора.ВидСравнения) = Неопределено Тогда - ШаблонСообщения = НСтр("ru = 'Передан недопустимый вид сравнения в описании отбора в коллекции описания отбора %1'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, КлючИЗначение.Ключ); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - - // Проверка значения - Если ОписаниеОтбора.ВидСравнения = ВидСравнения.ВСписке - ИЛИ ОписаниеОтбора.ВидСравнения = ВидСравнения.НеВСписке Тогда - - Если ТипЗнч(ОписаниеОтбора.Значение) <> Тип("Массив") Тогда - ШаблонСообщения = НСтр("ru = 'Передан недопустимый тип %1 в описании отбора в коллекции описания отбора %2. - |Для вида сравнения %3 ожидается тип Массив.'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, ТипЗнч(ОписаниеОтбора.Значение), КлючИЗначение.Ключ, ОписаниеОтбора.ВидСравнения); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - - Для каждого ЗначениеОтбора Из ОписаниеОтбора.Значение Цикл - ПроверитьЗначениеНаСоответствиеОписаниюПараметра(ЗначениеОтбора, ОписаниеПараметра); - КонецЦикла; - Иначе - ПроверитьЗначениеНаСоответствиеОписаниюПараметра(ОписаниеОтбора.Значение, ОписаниеПараметра); - КонецЕсли; - КонецЦикла; - Иначе - ПроверитьЗначениеНаСоответствиеОписаниюПараметра(КлючИЗначение.Значение, ОписаниеПараметра); - КонецЕсли; - КонецЦикла; - - // Область данных - Если РаботаВМоделиСервиса.РазделениеВключено() - И РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда - - Если Параметры.Свойство("ОбластьДанных") Тогда - Если Параметры.ОбластьДанных <> РаботаВМоделиСервиса.ЗначениеРазделителяСеанса() Тогда - ВызватьИсключение(НСтр("ru = 'В данном сеансе недопустимо обращение к данным из другой области данных.'")); - КонецЕсли; - Иначе - ОписаниеПараметра = ОписанияПараметров.Найти(ВРег("ОбластьДанных"), "ИмяВРег"); - Если ОписаниеПараметра[Режим] Тогда - Параметры.Вставить("ОбластьДанных", РаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); - КонецЕсли; - КонецЕсли; - - КонецЕсли; - - // ЗапланированныйМоментЗапуска - Если Параметры.Свойство("ЗапланированныйМоментЗапуска") - И НЕ ЗначениеЗаполнено(Параметры.ЗапланированныйМоментЗапуска) Тогда - - ШаблонСообщения = НСтр("ru = 'Передано недопустимое значение %1 параметра задания %2'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, - Параметры.ЗапланированныйМоментЗапуска, - ОписанияПараметров.Найти(ВРег("ЗапланированныйМоментЗапуска"), "ИмяВРег").Имя); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - -КонецПроцедуры - -Процедура ПроверитьЗначениеНаСоответствиеОписаниюПараметра(Знач Значение, Знач ОписаниеПараметра) - - Если НЕ ОписаниеПараметра.Тип.СодержитТип(ТипЗнч(Значение)) Тогда - ШаблонСообщения = НСтр("ru = 'Передан недопустимый тип %1 параметра задания %2'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, ТипЗнч(Значение), ОписаниеПараметра.Имя); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - -КонецПроцедуры - -Функция ФорматИндекса(Знач Индекс) - - Возврат Формат(Индекс, "ЧН=0; ЧГ=") - -КонецФункции - -Процедура ПроверитьНаличиеРегистрацииОбработчикаЗадания(Знач ИмяМетода) - - Если ОчередьЗаданийСлужебныйПовтИсп.СоответствиеИменМетодовПсевдонимам().Получить(ВРег(ИмяМетода)) = Неопределено Тогда - ШаблонСообщения = НСтр("ru = 'Не зарегистрирован псевдоним метода %1 для использования в качестве обработчика задания очереди.'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, ИмяМетода); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - -КонецПроцедуры - -Функция ОписаниеЗаданияПоИдентификатору(Знач Идентификатор) - - Если Не ЗначениеЗаполнено(Идентификатор) ИЛИ Не ОбщегоНазначения.СсылкаСуществует(Идентификатор) Тогда - ШаблонСообщения = НСтр("ru = 'Передано недопустимое значение %1 параметра задания Идентификатор'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Идентификатор); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - - Задания = ПолучитьЗадания(Новый Структура("Идентификатор", Идентификатор)); - Если Задания.Количество() = 0 Тогда - ШаблонСообщения = НСтр("ru = 'Задание очереди с идентификатором %1 не найдено'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Идентификатор); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - - Возврат Задания[0]; - -КонецФункции - -// Возвращает текст ошибки при попытке получить перечень заданий другой области из сеанса с -// с установленными значениями разделителя. -// -// Возвращаемое значение: -// Строка - текст исключения. -// -Функция ПолучитьТекстИсключенияПолученияДанныхДругойОбласти() - - Возврат НСтр("ru = 'В данном сеансе недопустимо обращение к данным из другой области данных.'"); - -КонецФункции - -Процедура ОпределениеФильтраПоРазделенностиСправочников(Знач Значение, Знач ОписаниеПараметра, ПолучатьРазделенные, ПолучатьНеразделенные) - - ТипЗначения = ТипЗнч(Значение); - МассивТиповЗначения = Новый Массив(); - МассивТиповЗначения.Добавить(ТипЗначения); - ОписаниеТипов = Новый ОписаниеТипов(МассивТиповЗначения); - ЗначениеПоУмолчанию = ОписаниеТипов.ПривестиЗначение( - ОписаниеПараметра.ЗначениеДляНеразделенныхЗаданий); - Если Значение = ЗначениеПоУмолчанию Тогда - - ПолучатьРазделенные = Ложь; - - Иначе - - ПолучатьНеразделенные = Ложь; - - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/ОчередьЗаданий/ОчередьЗаданий.mdo b/SSL/src/CommonModules/ОчередьЗаданий/ОчередьЗаданий.mdo deleted file mode 100644 index 60b1f63f6..000000000 --- a/SSL/src/CommonModules/ОчередьЗаданий/ОчередьЗаданий.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - ОчередьЗаданий - - ru - Очередь заданий - - true - true - true - diff --git a/SSL/src/CommonModules/ОчередьЗаданийПереопределяемый/Module.bsl b/SSL/src/CommonModules/ОчередьЗаданийПереопределяемый/Module.bsl deleted file mode 100644 index 9af82d325..000000000 --- a/SSL/src/CommonModules/ОчередьЗаданийПереопределяемый/Module.bsl +++ /dev/null @@ -1,68 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Формирует список шаблонов заданий очереди. -// -// Параметры: -// ШаблоныЗаданий - Массив - В параметр следует добавить имена предопределенных -// неразделенных регламентных заданий, которые должны использоваться в качестве -// шаблонов для заданий очереди. -// -Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт - -КонецПроцедуры - -// Заполняет соответствие имен методов их псевдонимам для вызова из очереди заданий. -// -// Параметры: -// СоответствиеИменПсевдонимам - Соответствие - -// * Ключ - Псевдоним метода, например ОчиститьОбластьДанных. -// * Значение - Имя метода для вызова, например РаботаВМоделиСервиса.ОчиститьОбластьДанных. -// В качестве значения можно указать Неопределено, в этом случае считается что имя -// совпадает с псевдонимом. -// -Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт - -КонецПроцедуры - -// Заполняет соответствие методов обработчиков ошибок псевдонимам методов, при возникновении -// ошибок в которых они вызываются. -// -// Параметры: -// ОбработчикиОшибок - Соответствие - -// * Ключ - Псевдоним метода, например ОчиститьОбластьДанных. -// * Значение - Имя метода - обработчика ошибок, для вызова при возникновении ошибки. -// Обработчик ошибок вызывается в случае завершения выполнения исходного задания -// с ошибкой. Обработчик ошибок вызывается в той же области данных, что и исходное задание. -// Метод обработчика ошибок считается разрешенным к вызову механизмами очереди. -// Параметры обработчика ошибок: -// ПараметрыЗадания - Структура - параметры задания очереди. -// Параметры -// НомерПопытки -// КоличествоПовторовПриАварийномЗавершении -// ДатаНачалаПоследнегоЗапуска. -// -Процедура ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок) Экспорт - -КонецПроцедуры - -// Формирует таблицу регламентных заданий с признаком использования в модели сервиса. -// -// Параметры: -// ТаблицаИспользования - ТаблицаЗначений - таблица значений с колонками: -// * РегламентноеЗадание - Строка - имя предопределенного регламентного задания, -// * Использование - Булево - Истина, если регламентное задание должно -// выполняться в модели сервиса, Ложь - если не должно. -// -Процедура ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования) Экспорт - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/ОчередьЗаданийПереопределяемый/ОчередьЗаданийПереопределяемый.mdo b/SSL/src/CommonModules/ОчередьЗаданийПереопределяемый/ОчередьЗаданийПереопределяемый.mdo deleted file mode 100644 index 9f41fba4c..000000000 --- a/SSL/src/CommonModules/ОчередьЗаданийПереопределяемый/ОчередьЗаданийПереопределяемый.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - ОчередьЗаданийПереопределяемый - - ru - Очередь заданий переопределяемый - - true - true - true - diff --git a/SSL/src/CommonModules/ОчередьЗаданийСлужебный/Module.bsl b/SSL/src/CommonModules/ОчередьЗаданийСлужебный/Module.bsl deleted file mode 100644 index f450a9026..000000000 --- a/SSL/src/CommonModules/ОчередьЗаданийСлужебный/Module.bsl +++ /dev/null @@ -1,1982 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -// Рассчитывает следующий момент запуска задания. -// -// Параметры: -// Расписание - РасписаниеРегламентногоЗадания - расписание, -// для которого требуется рассчитать момент следующего запуска. -// ЧасовойПояс - Строка. -// ДатаНачалаПоследнегоЗапуска - Дата - Дата начала последнего запуска регламентного задания. -// Если дата задана, то используется для проверки таких условий как. -// ПериодПовтораДней, ПериодНедель, ПериодПовтораВТечениеДня. -// Если дата не задана, то считается, -// что задание не выполнялось ни разу и проверка этих условий не производится. -// -// Возвращаемое значение: -// Дата - Рассчитанный следующий момент запуска задания. -// -Функция ПолучитьЗапланированныйМоментЗапускаЗадания(Знач Расписание, Знач ЧасовойПояс, - Знач ДатаНачалаПоследнегоЗапуска = '00010101', Знач ДатаЗавершенияПоследнегоЗапуска = '00010101') Экспорт - - Если ПустаяСтрока(ЧасовойПояс) Тогда - ЧасовойПояс = Неопределено; - КонецЕсли; - - Если ЗначениеЗаполнено(ДатаНачалаПоследнегоЗапуска) Тогда - ДатаНачалаПоследнегоЗапуска = МестноеВремя(ДатаНачалаПоследнегоЗапуска, ЧасовойПояс); - КонецЕсли; - - Если ЗначениеЗаполнено(ДатаЗавершенияПоследнегоЗапуска) Тогда - ДатаЗавершенияПоследнегоЗапуска = МестноеВремя(ДатаЗавершенияПоследнегоЗапуска, ЧасовойПояс); - КонецЕсли; - - ДатаРасчета = МестноеВремя(ТекущаяУниверсальнаяДата(), ЧасовойПояс); - - НайденнаяДата = СледующаяДатаВыполненияРасписания(Расписание, ДатаРасчета, ДатаНачалаПоследнегоЗапуска, ДатаЗавершенияПоследнегоЗапуска); - - Если ЗначениеЗаполнено(НайденнаяДата) Тогда - Возврат УниверсальноеВремя(НайденнаяДата, ЧасовойПояс); - Иначе - Возврат НайденнаяДата; - КонецЕсли; - -КонецФункции - -// Возвращает менеджер справочника ОчередьЗаданий. -Функция СправочникОчередьЗаданий() Экспорт - - Возврат ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени("Справочник.ОчередьЗаданий"); - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. - -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "*"; - Обработчик.Процедура = "ОчередьЗаданийСлужебный.УстановитьИспользованиеРегламентныхЗаданий"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.Приоритет = 50; - Обработчик.МонопольныйРежим = Ложь; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.3.9"; - Обработчик.Процедура = "ОчередьЗаданийСлужебный.ПеренестиЗаданияВОчередиВНеразделенныеДанные"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.ВыполнятьВГруппеОбязательных = Истина; - Обработчик.Приоритет = 80; - Обработчик.МонопольныйРежим = Истина; - - Если РаботаВМоделиСервиса.РазделениеВключено() Тогда - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.4.6.105"; - Обработчик.Процедура = "ОчередьЗаданийСлужебный.ЗапланироватьНеАктивныеЗадания"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.РежимВыполнения = "Оперативно"; - КонецЕсли; - -КонецПроцедуры - -// См. ЗагрузкаДанныхИзФайлаПереопределяемый.ПриОпределенииСправочниковДляЗагрузкиДанных. -Процедура ПриОпределенииСправочниковДляЗагрузкиДанных(ЗагружаемыеСправочники) Экспорт - - // Загрузка в справочник ОчередьЗаданий запрещена. - СтрокаТаблицы = ЗагружаемыеСправочники.Найти(Метаданные.Справочники.ОчередьЗаданий.ПолноеИмя(), "ПолноеИмя"); - Если СтрокаТаблицы <> Неопределено Тогда - ЗагружаемыеСправочники.Удалить(СтрокаТаблицы); - КонецЕсли; - - // Загрузка в справочник ШаблоныЗаданийОчереди запрещена. - СтрокаТаблицы = ЗагружаемыеСправочники.Найти(Метаданные.Справочники.ШаблоныЗаданийОчереди.ПолноеИмя(), "ПолноеИмя"); - Если СтрокаТаблицы <> Неопределено Тогда - ЗагружаемыеСправочники.Удалить(СтрокаТаблицы); - КонецЕсли; - -КонецПроцедуры - -// См. РаботаВМоделиСервисаПереопределяемый.ПриВключенииРазделенияПоОбластямДанных. -Процедура ПриВключенииРазделенияПоОбластямДанных() Экспорт - - УстановитьИспользованиеРегламентныхЗаданий(); - - Если Константы.МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания.Получить() = 0 Тогда - Константы.МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания.Установить(600); - КонецЕсли; - - Если Константы.МаксимальноеКоличествоИсполняющихФоновыхЗаданий.Получить() = 0 Тогда - Константы.МаксимальноеКоличествоИсполняющихФоновыхЗаданий.Установить(1); - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -//////////////////////////////////////////////////////////////////////////////// -// Экспортные служебные процедуры и функции. - -// Производит планирование выполнения заданий из РС ОчередьЗаданий. -// -Процедура ПланированиеОбработкиЗаданий() Экспорт - - Если НЕ РаботаВМоделиСервиса.РазделениеВключено() Тогда - Возврат; - КонецЕсли; - - // Вызов ПриНачалеВыполненияРегламентногоЗадания не используется, - // т.к. необходимые действия выполняются в частном порядке. - - // Выбираем события в состояниях Выполняется, Завершено, НеЗапланировано, ОшибкаВыполнения. - Запрос = Новый Запрос; - - СправочникиЗаданий = ОчередьЗаданийСлужебныйПовтИсп.ПолучитьСправочникиЗаданий(); - ТекстЗапроса = ""; - Для Каждого СправочникЗаданий Из СправочникиЗаданий Цикл - - Если Не ПустаяСтрока(ТекстЗапроса) Тогда - - ТекстЗапроса = ТекстЗапроса + " - | - |ОБЪЕДИНИТЬ ВСЕ - |" - - КонецЕсли; - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() И РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(СправочникЗаданий.СоздатьЭлемент().Метаданные().ПолноеИмя(), РаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда - - ТекстЗапроса = ТекстЗапроса + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "ВЫБРАТЬ - | Очередь.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанных, - | Очередь.Ссылка КАК Идентификатор, - | ЕСТЬNULL(Очередь.Шаблон, НЕОПРЕДЕЛЕНО) КАК Шаблон, - | ЕСТЬNULL(ЧасовыеПояса.Значение, """") КАК ЧасовойПояс, - | ВЫБОР - | КОГДА Очередь.Шаблон = ЗНАЧЕНИЕ(Справочник.ШаблоныЗаданийОчереди.ПустаяСсылка) - | ТОГДА Очередь.Расписание - | ИНАЧЕ Очередь.Шаблон.Расписание - | КОНЕЦ КАК Расписание, - | ВЫБОР - | КОГДА Очередь.Шаблон = ЗНАЧЕНИЕ(Справочник.ШаблоныЗаданийОчереди.ПустаяСсылка) - | ТОГДА Очередь.КоличествоПовторовПриАварийномЗавершении - | ИНАЧЕ Очередь.Шаблон.КоличествоПовторовПриАварийномЗавершении - | КОНЕЦ КАК КоличествоПовторовПриАварийномЗавершении, - | ВЫБОР - | КОГДА Очередь.Шаблон = ЗНАЧЕНИЕ(Справочник.ШаблоныЗаданийОчереди.ПустаяСсылка) - | ТОГДА Очередь.ИнтервалПовтораПриАварийномЗавершении - | ИНАЧЕ Очередь.Шаблон.ИнтервалПовтораПриАварийномЗавершении - | КОНЕЦ КАК ИнтервалПовтораПриАварийномЗавершении - |ИЗ - | %1 КАК Очередь - | ЛЕВОЕ СОЕДИНЕНИЕ Константа.ЧасовойПоясОбластиДанных КАК ЧасовыеПояса - | ПО Очередь.ОбластьДанныхВспомогательныеДанные = ЧасовыеПояса.ОбластьДанныхВспомогательныеДанные - |ГДЕ - | Очередь.СостояниеЗадания В (ЗНАЧЕНИЕ(Перечисление.СостоянияЗаданий.Выполняется), ЗНАЧЕНИЕ(Перечисление.СостоянияЗаданий.Завершено), ЗНАЧЕНИЕ(Перечисление.СостоянияЗаданий.НеЗапланировано), ЗНАЧЕНИЕ(Перечисление.СостоянияЗаданий.ОшибкаВыполнения))" - , СправочникЗаданий.ПустаяСсылка().Метаданные().ПолноеИмя()); - - Иначе - - ТекстЗапроса = ТекстЗапроса + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "ВЫБРАТЬ - | -1 КАК ОбластьДанных, - | Очередь.Ссылка КАК Идентификатор, - | НЕОПРЕДЕЛЕНО КАК Шаблон, - | """" КАК ЧасовойПояс, - | Очередь.Расписание КАК Расписание, - | Очередь.КоличествоПовторовПриАварийномЗавершении КАК КоличествоПовторовПриАварийномЗавершении, - | Очередь.ИнтервалПовтораПриАварийномЗавершении КАК ИнтервалПовтораПриАварийномЗавершении - |ИЗ - | %1 КАК Очередь - |ГДЕ - | Очередь.СостояниеЗадания В (ЗНАЧЕНИЕ(Перечисление.СостоянияЗаданий.Выполняется), ЗНАЧЕНИЕ(Перечисление.СостоянияЗаданий.Завершено), ЗНАЧЕНИЕ(Перечисление.СостоянияЗаданий.НеЗапланировано), ЗНАЧЕНИЕ(Перечисление.СостоянияЗаданий.ОшибкаВыполнения))" - , СправочникЗаданий.ПустаяСсылка().Метаданные().ПолноеИмя()); - - КонецЕсли; - - КонецЦикла; - - Запрос.Текст = ТекстЗапроса; - Результат = РаботаВМоделиСервиса.ВыполнитьЗапросВнеТранзакции(Запрос); - Выборка = Результат.Выбрать(); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - Иначе - МодульРаботаВМоделиСервиса = Неопределено; - КонецЕсли; - - Пока Выборка.Следующий() Цикл - - Попытка - ЗаблокироватьДанныеДляРедактирования(Выборка.Идентификатор); - Исключение - // Запись заблокирована, перейти к следующей. - Продолжить; - КонецПопытки; - - // Проверка блокировки области. - Если МодульРаботаВМоделиСервиса <> Неопределено - И Выборка.ОбластьДанных <> -1 - И МодульРаботаВМоделиСервиса.ОбластьДанныхЗаблокирована(Выборка.ОбластьДанных) Тогда - - // Область заблокирована, перейти к следующей записи. - Продолжить; - КонецЕсли; - - // Перепланируем завершившиеся регламентные задания и аварийно завершившиеся фоновые, удаляем выполненные фоновые. - ЗапланироватьЗадание(Выборка); - - РазблокироватьДанныеДляРедактирования(Выборка.Идентификатор); - - КонецЦикла; - - // Вычисление количества требуемых исполняющих фоновых заданий. - КоличествоЗапускаемыхФоновыхЗаданий = КоличествоИсполняющихФоновыхЗаданийКЗапуску(); - - // Запуск исполняющих фоновых заданий. - ЗапуститьИсполняющееФоновоеЗадание(КоличествоЗапускаемыхФоновыхЗаданий); - -КонецПроцедуры - -// Процедура выполняет задания из РС ОчередьЗаданий. -// -// Параметры: -// КлючФоновогоЗадания - УникальныйИдентификатор - ключ необходим -// для поиска текущего фонового задания. -// -Процедура ОбработатьОчередьЗаданий(КлючФоновогоЗадания) Экспорт - - // Вызов ПриНачалеВыполненияРегламентногоЗадания не используется, - // т.к. необходимые действия выполняются в частном порядке. - - НайденноеФоновоеЗадание = ФоновыеЗадания.ПолучитьФоновыеЗадания(Новый Структура("Ключ", КлючФоновогоЗадания)); - Если НайденноеФоновоеЗадание.Количество() = 1 Тогда - ИсполняющееФоновоеЗадание = НайденноеФоновоеЗадание[0]; - Иначе - Возврат; - КонецЕсли; - - МожноВыполнять = Истина; - НачалоВыполнения = ТекущаяУниверсальнаяДата(); - - МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания = - Константы.МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания.Получить(); - МаксимальноеКоличествоИсполняющихФоновыхЗаданий = - Константы.МаксимальноеКоличествоИсполняющихФоновыхЗаданий.Получить(); - - Запрос = Новый Запрос; - - СправочникиЗаданий = ОчередьЗаданийСлужебныйПовтИсп.ПолучитьСправочникиЗаданий(); - ТекстЗапроса = ""; - ТекстЗапросаБлокировки = ""; - Для Каждого СправочникЗаданий Из СправочникиЗаданий Цикл - - ПерваяСтрока = ПустаяСтрока(ТекстЗапроса); - - Если Не ПерваяСтрока Тогда - - ТекстЗапроса = ТекстЗапроса + " - | - |ОБЪЕДИНИТЬ ВСЕ - |" - - КонецЕсли; - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() И РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(СправочникЗаданий.СоздатьЭлемент().Метаданные().ПолноеИмя(), РаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда - - Если ПустаяСтрока(ТекстЗапросаБлокировки) Тогда - - ТекстЗапросаБлокировки = - "ВЫБРАТЬ - | Блокировки.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанныхВспомогательныеДанные - |ПОМЕСТИТЬ Блокировки - |ИЗ - | РегистрСведений.БлокировкиСеансовОбластейДанных КАК Блокировки - |ГДЕ - | (Блокировки.НачалоБлокировки = ДАТАВРЕМЯ(1, 1, 1) - | ИЛИ Блокировки.НачалоБлокировки <= &ТекущаяУниверсальнаяДата) - | И (Блокировки.КонецБлокировки = ДАТАВРЕМЯ(1, 1, 1) - | ИЛИ Блокировки.КонецБлокировки >= &ТекущаяУниверсальнаяДата) - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |"; - - КонецЕсли; - - ТекстЗапроса = ТекстЗапроса + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "ВЫБРАТЬ - | Очередь.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанных, - | Очередь.Ссылка КАК Идентификатор, - | Очередь.Использование КАК Использование, - | Очередь.ЗапланированныйМоментЗапуска КАК ЗапланированныйМоментЗапуска, - | Очередь.ИсполняющееФоновоеЗадание КАК ИсполняющееФоновоеЗадание, - | Очередь.ЭксклюзивноеВыполнение КАК ЭксклюзивноеВыполнение, - | Очередь.НомерПопытки КАК НомерПопытки, - | Очередь.Шаблон КАК Шаблон, - | ЕСТЬNULL(Очередь.Шаблон.Ссылка, НЕОПРЕДЕЛЕНО) КАК СсылкаШаблона, - | ЕСТЬNULL(ЧасовыеПояса.Значение, """") КАК ЧасовойПояс, - | ВЫБОР - | КОГДА Очередь.Шаблон = ЗНАЧЕНИЕ(Справочник.ШаблоныЗаданийОчереди.ПустаяСсылка) - | ТОГДА Очередь.Расписание - | ИНАЧЕ Очередь.Шаблон.Расписание - | КОНЕЦ КАК Расписание, - | ВЫБОР - | КОГДА Очередь.Шаблон = ЗНАЧЕНИЕ(Справочник.ШаблоныЗаданийОчереди.ПустаяСсылка) - | ТОГДА Очередь.ИмяМетода - | ИНАЧЕ Очередь.Шаблон.ИмяМетода - | КОНЕЦ КАК ИмяМетода, - | Очередь.Параметры КАК Параметры, - | Очередь.ДатаНачалаПоследнегоЗапуска КАК ДатаНачалаПоследнегоЗапуска, - | Очередь.ДатаЗавершенияПоследнегоЗапуска КАК ДатаЗавершенияПоследнегоЗапуска - |ИЗ - | %1 КАК Очередь - | ЛЕВОЕ СОЕДИНЕНИЕ Константа.ЧасовойПоясОбластиДанных КАК ЧасовыеПояса - | ПО Очередь.ОбластьДанныхВспомогательныеДанные = ЧасовыеПояса.ОбластьДанныхВспомогательныеДанные - |ГДЕ - | Очередь.Использование - | И Очередь.ЗапланированныйМоментЗапуска <= &ТекущаяУниверсальнаяДата - | И Очередь.СостояниеЗадания = ЗНАЧЕНИЕ(Перечисление.СостоянияЗаданий.Запланировано) - | И Очередь.ЭксклюзивноеВыполнение - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | Очередь.ОбластьДанныхВспомогательныеДанные, - | Очередь.Ссылка, - | Очередь.Использование, - | Очередь.ЗапланированныйМоментЗапуска, - | Очередь.ИсполняющееФоновоеЗадание, - | Очередь.ЭксклюзивноеВыполнение, - | Очередь.НомерПопытки, - | Очередь.Шаблон, - | ЕСТЬNULL(Очередь.Шаблон.Ссылка, НЕОПРЕДЕЛЕНО), - | ЕСТЬNULL(ЧасовыеПояса.Значение, """"), - | ВЫБОР - | КОГДА Очередь.Шаблон = ЗНАЧЕНИЕ(Справочник.ШаблоныЗаданийОчереди.ПустаяСсылка) - | ТОГДА Очередь.Расписание - | ИНАЧЕ Очередь.Шаблон.Расписание - | КОНЕЦ, - | ВЫБОР - | КОГДА Очередь.Шаблон = ЗНАЧЕНИЕ(Справочник.ШаблоныЗаданийОчереди.ПустаяСсылка) - | ТОГДА Очередь.ИмяМетода - | ИНАЧЕ Очередь.Шаблон.ИмяМетода - | КОНЕЦ, - | Очередь.Параметры, - | Очередь.ДатаНачалаПоследнегоЗапуска, - | Очередь.ДатаЗавершенияПоследнегоЗапуска - |ИЗ - | %1 КАК Очередь - | ЛЕВОЕ СОЕДИНЕНИЕ Блокировки КАК Блокировки - | ПО Очередь.ОбластьДанныхВспомогательныеДанные = Блокировки.ОбластьДанныхВспомогательныеДанные - | ЛЕВОЕ СОЕДИНЕНИЕ Константа.ЧасовойПоясОбластиДанных КАК ЧасовыеПояса - | ПО Очередь.ОбластьДанныхВспомогательныеДанные = ЧасовыеПояса.ОбластьДанныхВспомогательныеДанные - |ГДЕ - | Очередь.Использование - | И Очередь.ЗапланированныйМоментЗапуска <= &ТекущаяУниверсальнаяДата - | И Очередь.СостояниеЗадания = ЗНАЧЕНИЕ(Перечисление.СостоянияЗаданий.Запланировано) - | И НЕ Очередь.ЭксклюзивноеВыполнение - | И Блокировки.ОбластьДанныхВспомогательныеДанные ЕСТЬ NULL " - , СправочникЗаданий.ПустаяСсылка().Метаданные().ПолноеИмя()); - - Иначе - - ТекстЗапроса = ТекстЗапроса + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "ВЫБРАТЬ - | -1 КАК ОбластьДанных, - | Очередь.Ссылка КАК Идентификатор, - | Очередь.Использование КАК Использование, - | Очередь.ЗапланированныйМоментЗапуска КАК ЗапланированныйМоментЗапуска, - | Очередь.ИсполняющееФоновоеЗадание КАК ИсполняющееФоновоеЗадание, - | Очередь.ЭксклюзивноеВыполнение КАК ЭксклюзивноеВыполнение, - | Очередь.НомерПопытки КАК НомерПопытки, - | НЕОПРЕДЕЛЕНО КАК Шаблон, - | НЕОПРЕДЕЛЕНО КАК СсылкаШаблона, - | """" КАК ЧасовойПояс, - | Очередь.Расписание КАК Расписание, - | Очередь.ИмяМетода КАК ИмяМетода, - | Очередь.Параметры КАК Параметры, - | Очередь.ДатаНачалаПоследнегоЗапуска КАК ДатаНачалаПоследнегоЗапуска, - | Очередь.ДатаЗавершенияПоследнегоЗапуска КАК ДатаЗавершенияПоследнегоЗапуска - |ИЗ %1 КАК Очередь - |ГДЕ - | Очередь.Использование - | И Очередь.ЗапланированныйМоментЗапуска <= &ТекущаяУниверсальнаяДата - | И Очередь.СостояниеЗадания = ЗНАЧЕНИЕ(Перечисление.СостоянияЗаданий.Запланировано)" - , СправочникЗаданий.ПустаяСсылка().Метаданные().ПолноеИмя()); - - КонецЕсли; - - КонецЦикла; - - ТекстЗапроса = ТекстЗапросаБлокировки + - "ВЫБРАТЬ ПЕРВЫЕ 111 - | ВложенныйЗапрос.ОбластьДанных КАК ОбластьДанных, - | ВложенныйЗапрос.Идентификатор КАК Идентификатор, - | ВложенныйЗапрос.Использование КАК Использование, - | ВложенныйЗапрос.ЗапланированныйМоментЗапуска КАК ЗапланированныйМоментЗапуска, - | ВложенныйЗапрос.ИсполняющееФоновоеЗадание КАК ИсполняющееФоновоеЗадание, - | ВложенныйЗапрос.ЭксклюзивноеВыполнение КАК ЭксклюзивноеВыполнение, - | ВложенныйЗапрос.НомерПопытки КАК НомерПопытки, - | ВложенныйЗапрос.Шаблон КАК Шаблон, - | ВложенныйЗапрос.СсылкаШаблона КАК СсылкаШаблона, - | ВложенныйЗапрос.ЧасовойПояс КАК ЧасовойПояс, - | ВложенныйЗапрос.Расписание КАК Расписание, - | ВложенныйЗапрос.ИмяМетода КАК ИмяМетода, - | ВложенныйЗапрос.Параметры КАК Параметры, - | ВложенныйЗапрос.ДатаНачалаПоследнегоЗапуска КАК ДатаНачалаПоследнегоЗапуска, - | ВложенныйЗапрос.ДатаЗавершенияПоследнегоЗапуска КАК ДатаЗавершенияПоследнегоЗапуска - |ИЗ - | (" + ТекстЗапроса + ") КАК ВложенныйЗапрос - | - |УПОРЯДОЧИТЬ ПО - | ЭксклюзивноеВыполнение УБЫВ, - | ЗапланированныйМоментЗапуска, - | ВложенныйЗапрос.ДатаЗавершенияПоследнегоЗапуска, - | Идентификатор"; - - Запрос.Текст = ТекстЗапроса; - РазмерВыборкиТекст = Формат(МаксимальноеКоличествоИсполняющихФоновыхЗаданий * 3, "ЧН=; ЧГ="); - Запрос.Текст = СтрЗаменить(Запрос.Текст, "111", РазмерВыборкиТекст); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - Иначе - МодульРаботаВМоделиСервиса = Неопределено; - КонецЕсли; - - Пока МожноВыполнять Цикл - Запрос.УстановитьПараметр("ТекущаяУниверсальнаяДата", ТекущаяУниверсальнаяДата()); - - Выборка = РаботаВМоделиСервиса.ВыполнитьЗапросВнеТранзакции(Запрос).Выбрать(); - - БлокировкаУстановлена = Ложь; - Пока Выборка.Следующий() Цикл - Попытка - - ЗаблокироватьДанныеДляРедактирования(Выборка.Идентификатор); - - // Проверка блокировки области. - Если МодульРаботаВМоделиСервиса <> Неопределено - И Выборка.ОбластьДанных <> -1 - И МодульРаботаВМоделиСервиса.ОбластьДанныхЗаблокирована(Выборка.ОбластьДанных) Тогда - - РазблокироватьДанныеДляРедактирования(Выборка.Идентификатор); - - // Область заблокирована, перейти к следующей записи. - Продолжить; - КонецЕсли; - - Если ЗначениеЗаполнено(Выборка.Шаблон) - И Выборка.СсылкаШаблона = Неопределено Тогда - - ШаблонСообщения = НСтр("ru = 'На найден шаблон задания очереди с идентификатором %1'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Выборка.Шаблон); - ЗаписьЖурналаРегистрации(НСтр("ru = 'Очередь заданий.Выполнение'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, - , - , - ТекстСообщения); - - РазблокироватьДанныеДляРедактирования(Выборка.Идентификатор); - Продолжить; - КонецЕсли; - - БлокировкаУстановлена = Истина; - Прервать; - Исключение - // Не удалось установить блокировку. - БлокировкаУстановлена = Ложь; - КонецПопытки; - КонецЦикла; - - Если Не БлокировкаУстановлена Тогда - Возврат; - КонецЕсли; - - Расписание = Выборка.Расписание.Получить(); - Если Расписание <> Неопределено Тогда - // Проверка попадания в допустимые интервалы очереди. - ЧасовойПояс = Выборка.ЧасовойПояс; - - Если ПустаяСтрока(ЧасовойПояс) Тогда - ЧасовойПояс = Неопределено; - КонецЕсли; - - ВремяОбласти = МестноеВремя(ТекущаяУниверсальнаяДата(), ЧасовойПояс); - Просрочено = НЕ Расписание.ТребуетсяВыполнение(ВремяОбласти); - Иначе - Просрочено = Ложь; - КонецЕсли; - - Если Просрочено Тогда - // Требуется перепланировать задание. - НачатьТранзакцию(); - Попытка - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить(Выборка.Идентификатор.Метаданные().ПолноеИмя()); - ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Идентификатор); - - Если Выборка.ОбластьДанных <> -1 Тогда - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, Выборка.ОбластьДанных); - КонецЕсли; - Блокировка.Заблокировать(); - - Задание = Выборка.Идентификатор.ПолучитьОбъект(); - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.НеЗапланировано; - РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(Задание); - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - ВызватьИсключение; - КонецПопытки; - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - Иначе - ВыполнитьЗаданиеОчереди(Выборка.Идентификатор, ИсполняющееФоновоеЗадание, Выборка.Шаблон, Выборка.ИмяМетода); - КонецЕсли; - - РазблокироватьДанныеДляРедактирования(Выборка.Идентификатор); - - // Проверка возможности дальнейшего выполнения. - ДлительностьВыполнения = ТекущаяУниверсальнаяДата() - НачалоВыполнения; - Если ДлительностьВыполнения > МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания Тогда - МожноВыполнять = Ложь; - КонецЕсли; - КонецЦикла; - -КонецПроцедуры - -// Служебная процедура, которая вызывается для выполнения обработчика ошибок задания в случае, -// когда процесс, исполняющий задание не смог завершить выполнение самостоятельно. -// -// Параметры: -// Задание - СправочникСсылка - ссылка на задание, обработчик ошибки которого необходимо выполнить. -// ИнформацияОбОшибкеВыполненияЗадания - ИнформацияОбОшибке - информация об ошибке, с которой завершилось задание. -// -Процедура ОбработатьОшибку(Знач Задание, Знач ИнформацияОбОшибкеВыполненияЗадания = Неопределено) Экспорт - - ПараметрыОбработчикаОшибок = ПолучитьПараметрыОбработчикаОшибок(Задание, ИнформацияОбОшибкеВыполненияЗадания); - - Если ПараметрыОбработчикаОшибок.ОбработчикСуществует Тогда - - Попытка - - ВыполнитьМетодКонфигурации(ПараметрыОбработчикаОшибок.ИмяМетода, ПараметрыОбработчикаОшибок.ПараметрыВызоваОбработчика); - - Исключение - - ШаблонКомментария = НСтр("ru = 'Ошибка при выполнении обработчика ошибок - |Псевдоним метода: %1 - |Метод обработчика ошибок: %2 - |По причине: - |%3'"); - ТекстКомментария = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонКомментария, - ПараметрыОбработчикаОшибок.ИмяМетодаЗадания, - ПараметрыОбработчикаОшибок.ИмяМетода, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - - ЗаписьЖурналаРегистрации( - НСтр("ru = 'Очередь регламентных заданий.Ошибка обработчика ошибок'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, - , - , - ТекстКомментария); - - КонецПопытки; - - КонецЕсли; - - Если ОбщегоНазначения.СсылкаСуществует(Задание) - И Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.ОбработкаОшибкиПриАварийномЗавершении Тогда - - ЗаданиеОбъект = Задание.ПолучитьОбъект(); - ЗаданиеОбъект.СостояниеЗадания = Перечисления.СостоянияЗаданий.ОшибкаВыполнения; - РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(ЗаданиеОбъект); - - КонецЕсли; - -КонецПроцедуры - -// Служебная процедура, которая снимает задания обработчика ошибок и свои собственные. Необходима для случая, когда -// задание исполнение "ОбработатьОшибку" не смогло завершиться. -// -// Параметры: -// ПараметрыВызова - Массив - Массив параметров, который был передан заданию, ошибку выполнения которого мы обрабатываем -// используется только для определения задания, ошибку выполнения которого мы обрабатываем. -// ИнформацияОбОшибке - ОписаниеОшибки - Не используется, необходимо только потому, что этот параметр должен -// присутствовать в обработчике ошибок. -// СчетчикРекурсии - Число - Используется для подсчета количества созданных заданий снятия заданий. -// -Процедура СнятьЗаданияОбработкиОшибок(Знач ПараметрыВызова, Знач ИнформацияОбОшибке = Неопределено, Знач СчетчикРекурсии = 1) Экспорт - - НачатьТранзакцию(); - Попытка - - ЗаданиеСсылка = ПараметрыВызова.Параметры[0]; - - Если Не ОбщегоНазначения.СсылкаСуществует(ЗаданиеСсылка) Тогда - - ОтменитьТранзакцию(); - Возврат; - - КонецЕсли; - - Задание = ЗаданиеСсылка.ПолучитьОбъект(); - - ЗаблокироватьДанныеДляРедактирования(ЗаданиеСсылка); - - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.ОшибкаВыполнения; - РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(Задание); - - ПараметрыОбработчикаОшибок = ПолучитьПараметрыОбработчикаОшибок(Задание); - Если ПараметрыОбработчикаОшибок.ИмяМетода = "ОчередьЗаданийСлужебный.СнятьЗаданияОбработкиОшибок" Тогда - - СнятьЗаданияОбработкиОшибок(ПараметрыОбработчикаОшибок.ПараметрыВызоваОбработчика[0], ИнформацияОбОшибке, СчетчикРекурсии + 1); - - Иначе - - ШаблонКомментария = НСтр("ru = 'Был выполнен обработчик снятие заданий. - |Псевдоним метода: %1 - |Уровень рекурсии: %2'"); - ТекстКомментария = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонКомментария, - ПараметрыОбработчикаОшибок.ИмяМетодаЗадания, - СчетчикРекурсии); - - ЗаписьЖурналаРегистрации( - НСтр("ru = 'Очередь регламентных заданий.Снятие заданий обработки ошибок'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Информация, - , - , - ТекстКомментария); - - КонецЕсли; - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - - КонецПопытки; - - РазблокироватьДанныеДляРедактирования(ЗаданиеСсылка); - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Локальные служебные процедуры и функции. - -// Возвращает следующую дата выполнения расписания. -// -// Параметры: -// Расписание - РасписаниеРегламентногоЗадания - расписание по которому -// будет рассчитываться дата. -// ДатаДляПроверки - Дата - минимальная дата на которую может -// быть запланировано выполнение. -// ДатаНачалаПоследнегоЗапуска - Дата - Дата начала последнего -// запуска задания. Если дата задана, то используется для проверки таких -// условий как ПериодПовтораДней, ПериодНедель, ПериодПовтораВТечениеДня. -// Если дата не задана, то считается, что задание не выполнялось ни разу -// и проверка этих условий не производится. -// ДатаЗавершенияПоследнегоЗапуска - Дата - Дата завершения -// последнего запуска задания. Если дата задана, то используется для -// проверки условия ПаузаПовтора. Если дата не задана, то считается, что -// задание ни разу не завершалось, и проверка этого условия не производится. -// МаксимальныйГоризонтПланирования - Число - Максимальное количество секунд -// относительно ДатаДляПроверки на которое может быть выполнено планирование. -// Увеличение значения может привести к замедлению расчета на сложных -// расписаниях. -// -// Возвращаемое значение: -// Дата - следующая дата выполнения расписания. -// -Функция СледующаяДатаВыполненияРасписания(Знач Расписание, Знач ДатаДляПроверки, - Знач ДатаНачалаПоследнегоЗапуска = Неопределено, Знач ДатаЗавершенияПоследнегоЗапуска = Неопределено, - Знач МаксимальныйГоризонтПланирования = Неопределено) - - Если МаксимальныйГоризонтПланирования = Неопределено Тогда - МаксимальныйГоризонтПланирования = 366 * 86400 * 10; - КонецЕсли; - - ИсходнаяДатаДляПроверки = ДатаДляПроверки; - ВремяНачалаПоследнегоЗапуска = '00010101' + (ДатаНачалаПоследнегоЗапуска - НачалоДня(ДатаНачалаПоследнегоЗапуска)); - - // Границы по датам - Если ЗначениеЗаполнено(Расписание.ДатаКонца) - И ДатаДляПроверки > Расписание.ДатаКонца Тогда - - // Интервал выполнения по дням закончился. - Возврат '00010101'; - КонецЕсли; - - Если ДатаДляПроверки < Расписание.ДатаНачала Тогда - ДатаДляПроверки = Расписание.ДатаНачала; - КонецЕсли; - - МожноМенятьДень = Истина; - - // Учет периодичности - Если ЗначениеЗаполнено(ДатаНачалаПоследнегоЗапуска) Тогда - - // Период недель - Если Расписание.ПериодНедель > 1 - И (НачалоНедели(ДатаДляПроверки) - НачалоНедели(ДатаНачалаПоследнегоЗапуска)) / (7 * 86400) < Расписание.ПериодНедель Тогда - - ДатаДляПроверки = НачалоНедели(ДатаНачалаПоследнегоЗапуска) + 7 * 86400 * Расписание.ПериодНедель; - КонецЕсли; - - // Период дней - Если Расписание.ПериодПовтораДней = 0 Тогда - Если НачалоДня(ДатаДляПроверки) <> НачалоДня(ДатаНачалаПоследнегоЗапуска) Тогда - // Повторения не установлено и задание уже выполнялось. - Возврат '00010101'; - КонецЕсли; - - МожноМенятьДень = Ложь; - КонецЕсли; - - Если Расписание.ПериодПовтораДней > 1 - И НачалоДня(ДатаДляПроверки) - НачалоДня(ДатаНачалаПоследнегоЗапуска) < (Расписание.ПериодПовтораДней - 1)* 86400 Тогда - - ДатаДляПроверки = НачалоДня(ДатаНачалаПоследнегоЗапуска) + Расписание.ПериодПовтораДней * 86400; - КонецЕсли; - - // Если задание повторяется раз в день (но не чаще) то сдвигаем на следующий день после последнего запуска. - Если Расписание.ПериодПовтораДней = 1 И Расписание.ПериодПовтораВТечениеДня = 0 Тогда - ДатаДляПроверки = Макс(ДатаДляПроверки, НачалоДня(ДатаНачалаПоследнегоЗапуска+86400)); - КонецЕсли; - - КонецЕсли; - - // Учет допустимых интервалов запуска. - ПоменятьМесяц = Ложь; - ПоменятьДень = Ложь; - Пока Истина Цикл - - Если ДатаДляПроверки - ИсходнаяДатаДляПроверки > МаксимальныйГоризонтПланирования Тогда - // Отложить планирование - Возврат '00010101'; - КонецЕсли; - - Если НЕ МожноМенятьДень - И (ПоменятьДень ИЛИ ПоменятьМесяц) Тогда - - // Повторения не установлено и задание уже выполнялось. - Возврат '00010101'; - КонецЕсли; - - // Месяцы - Пока ПоменятьМесяц - ИЛИ Расписание.Месяцы.Количество() > 0 - И Расписание.Месяцы.Найти(Месяц(ДатаДляПроверки)) = Неопределено Цикл - - ПоменятьМесяц = Ложь; - - // Переход на следующий месяц - ДатаДляПроверки = НачалоМесяца(ДобавитьМесяц(ДатаДляПроверки, 1)); - КонецЦикла; - - // День месяца - ДнейВМесяце = День(КонецМесяца(ДатаДляПроверки)); - Если Расписание.ДеньВМесяце <> 0 Тогда - - ТекущийДень = День(ДатаДляПроверки); - - Если Расписание.ДеньВМесяце > 0 - И (ДнейВМесяце < Расписание.ДеньВМесяце ИЛИ ТекущийДень > Расписание.ДеньВМесяце) - ИЛИ Расписание.ДеньВМесяце < 0 - И (ДнейВМесяце < -Расписание.ДеньВМесяце ИЛИ ТекущийДень > ДнейВМесяце - -Расписание.ДеньВМесяце) Тогда - - // В этом месяце нет такого числа или оно уже прошло. - ПоменятьМесяц = Истина; - Продолжить; - КонецЕсли; - - Если Расписание.ДеньВМесяце > 0 Тогда - ДатаДляПроверки = НачалоМесяца(ДатаДляПроверки) + (Расписание.ДеньВМесяце - 1) * 86400; - КонецЕсли; - - Если Расписание.ДеньВМесяце < 0 Тогда - ДатаДляПроверки = НачалоДня(КонецМесяца(ДатаДляПроверки)) - (-Расписание.ДеньВМесяце -1) * 86400; - КонецЕсли; - КонецЕсли; - - // День недели в месяце - Если Расписание.ДеньНеделиВМесяце <> 0 Тогда - Если Расписание.ДеньНеделиВМесяце > 0 Тогда - ДеньНачалаНедели = (Расписание.ДеньНеделиВМесяце - 1) * 7 + 1; - КонецЕсли; - Если Расписание.ДеньНеделиВМесяце < 0 Тогда - ДеньНачалаНедели = ДнейВМесяце - (-Расписание.ДеньНеделиВМесяце) * 7 + 1; - КонецЕсли; - - ДеньКонцаНедели = Мин(ДеньНачалаНедели + 6, ДнейВМесяце); - - Если День(ДатаДляПроверки) > ДеньКонцаНедели - ИЛИ ДеньНачалаНедели > ДнейВМесяце Тогда - // В этом месяце нужная неделя уже прошла (или ее не было). - ПоменятьМесяц = Истина; - Продолжить; - КонецЕсли; - - Если День(ДатаДляПроверки) < ДеньНачалаНедели Тогда - Если Расписание.ДеньВМесяце <> 0 Тогда - - // День зафиксирован и он не подходит. - ПоменятьМесяц = Истина; - Продолжить; - КонецЕсли; - ДатаДляПроверки = НачалоМесяца(ДатаДляПроверки) + (ДеньНачалаНедели - 1) * 86400; - КонецЕсли; - КонецЕсли; - - // День недели - Пока ПоменятьДень - ИЛИ Расписание.ДниНедели.Найти(ДеньНедели(ДатаДляПроверки)) = Неопределено - И Расписание.ДниНедели.Количество() > 0 Цикл - - ПоменятьДень = Ложь; - - Если Расписание.ДеньВМесяце <> 0 Тогда - // День зафиксирован и он не подходит. - ПоменятьМесяц = Истина; - Прервать; - КонецЕсли; - - Если День(ДатаДляПроверки) = ДнейВМесяце Тогда - // Месяц кончился - ПоменятьМесяц = Истина; - Прервать; - КонецЕсли; - - Если Расписание.ДеньНеделиВМесяце <> 0 - И День(ДатаДляПроверки) = ДеньКонцаНедели Тогда - - // Нужная неделя кончилась - ПоменятьМесяц = Истина; - Прервать; - КонецЕсли; - - ДатаДляПроверки = НачалоДня(ДатаДляПроверки) + 86400; - КонецЦикла; - Если ПоменятьМесяц Тогда - Продолжить; - КонецЕсли; - - // Учет времени - ВремяДляПроверки = '00010101' + (ДатаДляПроверки - НачалоДня(ДатаДляПроверки)); - - Если Расписание.ДетальныеРасписанияДня.Количество() = 0 Тогда - ДетальныеРасписания = Новый Массив; - ДетальныеРасписания.Добавить(Расписание); - - - Иначе - ДетальныеРасписания = Расписание.ДетальныеРасписанияДня; - - - КонецЕсли; - - // Если у нас есть промежутки, с переходом через полночь, то разбиваем их на два промежутка. - Индекс = 0; - Пока Индекс < ДетальныеРасписания.Количество() Цикл - - РасписаниеДня = ДетальныеРасписания[Индекс]; - - Если НЕ ЗначениеЗаполнено(РасписаниеДня.ВремяНачала) ИЛИ НЕ ЗначениеЗаполнено(РасписаниеДня.ВремяКонца) Тогда - Индекс = Индекс + 1; - Продолжить; - КонецЕсли; - - Если РасписаниеДня.ВремяНачала > РасписаниеДня.ВремяКонца Тогда - - РасписаниеДняПерваяПоловина = Новый РасписаниеРегламентногоЗадания(); - ЗаполнитьЗначенияСвойств(РасписаниеДняПерваяПоловина,РасписаниеДня); - РасписаниеДняПерваяПоловина.ВремяНачала = НачалоДня(РасписаниеДняПерваяПоловина.ВремяНачала); - ДетальныеРасписания.Добавить(РасписаниеДняПерваяПоловина); - - РасписаниеДняВтораяПоловина = Новый РасписаниеРегламентногоЗадания(); - ЗаполнитьЗначенияСвойств(РасписаниеДняВтораяПоловина,РасписаниеДня); - РасписаниеДняВтораяПоловина.ВремяКонца = КонецДня(РасписаниеДняВтораяПоловина.ВремяНачала); - ДетальныеРасписания.Добавить(РасписаниеДняВтораяПоловина); - - ДетальныеРасписания.Удалить(Индекс); - - Иначе - - Индекс = Индекс + 1; - - КонецЕсли; - - КонецЦикла; - - Для Индекс = 0 По ДетальныеРасписания.ВГраница() Цикл - РасписаниеДня = ДетальныеРасписания[Индекс]; - - // Границы по времени - Если ЗначениеЗаполнено(РасписаниеДня.ВремяНачала) - И ВремяДляПроверки < РасписаниеДня.ВремяНачала Тогда - - ВремяДляПроверки = РасписаниеДня.ВремяНачала; - КонецЕсли; - - Если ЗначениеЗаполнено(РасписаниеДня.ВремяКонца) - И ВремяДляПроверки > РасписаниеДня.ВремяКонца Тогда - - Если Индекс < ДетальныеРасписания.ВГраница() Тогда - // Есть еще расписания дня - Продолжить; - КонецЕсли; - - // В этом дне подходящее время уже прошло. - ПоменятьДень = Истина; - Прервать; - КонецЕсли; - - // Период повтора в течении дня. - Если ЗначениеЗаполнено(ДатаНачалаПоследнегоЗапуска) Тогда - - Если РасписаниеДня.ПериодПовтораВТечениеДня = 0 - И НачалоДня(ДатаДляПроверки) = НачалоДня(ДатаНачалаПоследнегоЗапуска) - И (НЕ ЗначениеЗаполнено(РасписаниеДня.ВремяНачала) - ИЛИ ЗначениеЗаполнено(РасписаниеДня.ВремяНачала) И ВремяНачалаПоследнегоЗапуска >= РасписаниеДня.ВремяНачала) - И (НЕ ЗначениеЗаполнено(РасписаниеДня.ВремяКонца) - ИЛИ ЗначениеЗаполнено(РасписаниеДня.ВремяКонца) И ВремяНачалаПоследнегоЗапуска <= РасписаниеДня.ВремяКонца) Тогда - - // В этом интервале (расписании дня) задание уже выполнялось и повторы не установлены. - Если Индекс < ДетальныеРасписания.ВГраница() Тогда - Продолжить; - КонецЕсли; - - ПоменятьДень = Истина; - Прервать; - КонецЕсли; - - Если НачалоДня(ДатаДляПроверки) = НачалоДня(ДатаНачалаПоследнегоЗапуска) - И ВремяДляПроверки - ВремяНачалаПоследнегоЗапуска < РасписаниеДня.ПериодПовтораВТечениеДня Тогда - - НовоеВремяДляПроверки = ВремяНачалаПоследнегоЗапуска + РасписаниеДня.ПериодПовтораВТечениеДня; - - Если ЗначениеЗаполнено(РасписаниеДня.ВремяКонца) И НовоеВремяДляПроверки > РасписаниеДня.ВремяКонца - ИЛИ НачалоДня(НовоеВремяДляПроверки) <> НачалоДня(ВремяДляПроверки) Тогда - - // Время ушло за интервал - Если Индекс < ДетальныеРасписания.ВГраница() Тогда - Продолжить; - КонецЕсли; - - ПоменятьДень = Истина; - Прервать; - КонецЕсли; - - ВремяДляПроверки = НовоеВремяДляПроверки; - - КонецЕсли; - - КонецЕсли; - - // Пауза - Если ЗначениеЗаполнено(ДатаЗавершенияПоследнегоЗапуска) - И ЗначениеЗаполнено(РасписаниеДня.ПаузаПовтора) Тогда - - ВремяЗавершенияПоследнегоЗапуска = '00010101' + (ДатаЗавершенияПоследнегоЗапуска - НачалоДня(ДатаЗавершенияПоследнегоЗапуска)); - - Если НачалоДня(ДатаДляПроверки) = НачалоДня(ДатаНачалаПоследнегоЗапуска) - И ВремяДляПроверки - ВремяЗавершенияПоследнегоЗапуска < РасписаниеДня.ПаузаПовтора Тогда - - НовоеВремяДляПроверки = ВремяЗавершенияПоследнегоЗапуска + РасписаниеДня.ПаузаПовтора; - - Если ЗначениеЗаполнено(РасписаниеДня.ВремяКонца) И НовоеВремяДляПроверки > РасписаниеДня.ВремяКонца - ИЛИ НачалоДня(НовоеВремяДляПроверки) <> НачалоДня(ВремяДляПроверки) Тогда - - // Время ушло за интервал - Если Индекс < ДетальныеРасписания.ВГраница() Тогда - Продолжить; - КонецЕсли; - - ПоменятьДень = Истина; - Прервать; - КонецЕсли; - - ВремяДляПроверки = НовоеВремяДляПроверки; - - КонецЕсли; - КонецЕсли; - - // Нашли подходящее время - Прервать; - - КонецЦикла; - - Если ПоменятьДень Тогда - Продолжить; - КонецЕсли; - - Если ЗначениеЗаполнено(Расписание.ВремяЗавершения) - И ВремяДляПроверки > Расписание.ВремяЗавершения Тогда - // В этом дне выполнять поздно. - ПоменятьДень = Истина; - Продолжить; - КонецЕсли; - - ДатаДляПроверки = НачалоДня(ДатаДляПроверки) + (ВремяДляПроверки - НачалоДня(ВремяДляПроверки)); - - Возврат ДатаДляПроверки; - - КонецЦикла; - -КонецФункции - -// Метод предназначен для вызова методов обработчиков задания и ошибок. -// -// Параметры: -// ИмяМетода - Строка - Имя вызываемого метода. -// Параметры - Массив - Значение параметров, передаваемых методу, в порядке -// их следования в вызываемом методе. -// -Процедура ВыполнитьМетодКонфигурации(ИмяМетода, Параметры = Неопределено) - - Если РаботаВМоделиСервиса.РазделениеВключено() И РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда - РазделительУстановлен = Истина; - ЗначениеРазделителя = РаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); - Иначе - РазделительУстановлен = Ложь; - КонецЕсли; - - Если ТранзакцияАктивна() Тогда - - ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Перед стартом выполнения обработчика %1 есть активные транзакции.'"), - ИмяМетода); - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Очередь регламентных заданий.Выполнение'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, - , - , - ТекстСообщенияОбОшибке); - - ВызватьИсключение ТекстСообщенияОбОшибке; - - КонецЕсли; - - Попытка - - ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, Параметры); - - Если ТранзакцияАктивна() Тогда - - Пока ТранзакцияАктивна() Цикл - ОтменитьТранзакцию(); - КонецЦикла; - - ШаблонСообщения = НСтр("ru = 'По завершении выполнения обработчика %1 не была закрыта транзакция'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, ИмяМетода); - ЗаписьЖурналаРегистрации(НСтр("ru = 'Очередь регламентных заданий.Выполнение'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, - , - , - ТекстСообщения); - - КонецЕсли; - - Если Не(РазделительУстановлен) И РаботаВМоделиСервиса.ИспользованиеРазделителяСеанса() Тогда - - ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'По завершении выполнения обработчика %1 не было выключено разделение сеанса.'"), - ИмяМетода); - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Очередь регламентных заданий.Выполнение'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, - , - , - ТекстСообщенияОбОшибке); - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - - ИначеЕсли РазделительУстановлен И ЗначениеРазделителя <> РаботаВМоделиСервиса.ЗначениеРазделителяСеанса() Тогда - - ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'По завершении выполнения обработчика %1 было изменено значение разделителя сеанса.'"), - ИмяМетода); - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Очередь регламентных заданий.Выполнение'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, - , - , - ТекстСообщенияОбОшибке); - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина,ЗначениеРазделителя); - - КонецЕсли; - - - Исключение - - Пока ТранзакцияАктивна() Цикл - ОтменитьТранзакцию(); - КонецЦикла; - - Если Не(РазделительУстановлен) И РаботаВМоделиСервиса.ИспользованиеРазделителяСеанса() Тогда - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - ИначеЕсли РазделительУстановлен И ЗначениеРазделителя <> РаботаВМоделиСервиса.ЗначениеРазделителяСеанса() Тогда - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина,ЗначениеРазделителя); - КонецЕсли; - - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - -// Формирует и возвращает информацию об ошибке по тексту ее описания. -Функция КонструкторИнформацииОбОшибке(ТекстОшибки) - - Попытка - - ВызватьИсключение ТекстОшибки; - - Исключение - Информация = ИнформацияОбОшибке(); - КонецПопытки; - - Возврат Информация; - -КонецФункции - -// Получает по ссылке на задание параметры для запуска обработчика ошибок. -// -// Параметры: -// Задание - СправочникСсылка.ОчередьЗаданий или СправочникСсылка.ОчередьЗаданийОбластейДанных - -// Ссылка на задание, по которой необходимо получить параметры обработчика ошибок. -// -// Возвращаемое значение: -// Структура - Параметры для запуска обработчика ошибок. -// ИмяМетода - Строка, имя метода обработчика ошибок, который должен быть запущен. -// ИмяМетодаЗадания - Строка, имя метода задания, который должен был выполниться, -// ПараметрыВызоваОбработчика - массив с параметрами, которые будут переданы процедуре обработки ошибок. -// ОбработчикСуществует - Булево, обработчик ошибок для данного задания существует. -// Задание - СправочникСсылка.ОчередьЗаданий или СправочникСсылка.ОчередьЗаданийОбластейДанных - -// Ссылка на задание, которое было передано как входящий параметр. -// -Функция ПолучитьПараметрыОбработчикаОшибок(Знач Задание,Знач ИнформацияОбОшибкеВыполненияЗадания = Неопределено) - - Результат = Новый Структура("ИмяМетода,ИмяМетодаЗадания,ПараметрыВызоваОбработчика,ОбработчикСуществует,Задание"); - Результат.Задание = Задание.Ссылка; - - Если РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(Задание.Метаданные().ПолноеИмя(), - РаботаВМоделиСервиса.РазделительВспомогательныхДанных()) - И ЗначениеЗаполнено(Задание.Шаблон) Тогда - - Результат.ИмяМетодаЗадания = Задание.Шаблон.ИмяМетода; - - Иначе - - Результат.ИмяМетодаЗадания = Задание.ИмяМетода; - - КонецЕсли; - - ИмяМетодаОбработчикаОшибки = - ОчередьЗаданийСлужебныйПовтИсп.СоответствиеОбработчиковОшибокПсевдонимам().Получить(ВРег(Результат.ИмяМетодаЗадания)); - Результат.ИмяМетода = ИмяМетодаОбработчикаОшибки; - Результат.ОбработчикСуществует = ЗначениеЗаполнено(Результат.ИмяМетода); - Если Результат.ОбработчикСуществует Тогда - ПараметрыЗадания = Новый Структура; - ПараметрыЗадания.Вставить("Параметры", Задание.Параметры.Получить()); - ПараметрыЗадания.Вставить("НомерПопытки", Задание.НомерПопытки); - ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", Задание.КоличествоПовторовПриАварийномЗавершении); - ПараметрыЗадания.Вставить("ДатаНачалаПоследнегоЗапуска", Задание.ДатаНачалаПоследнегоЗапуска); - - Если ИнформацияОбОшибкеВыполненияЗадания = Неопределено Тогда - - ИсполняющееФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Задание.ИсполняющееФоновоеЗадание); - - Если ИсполняющееФоновоеЗадание <> Неопределено И ИсполняющееФоновоеЗадание.ИнформацияОбОшибке <> Неопределено Тогда - - ИнформацияОбОшибкеВыполненияЗадания = ИсполняющееФоновоеЗадание.ИнформацияОбОшибке; - - КонецЕсли; - - КонецЕсли; - - Если ИнформацияОбОшибкеВыполненияЗадания = Неопределено Тогда - - ИнформацияОбОшибкеВыполненияЗадания = КонструкторИнформацииОбОшибке(НСтр("ru = 'Задание завершилось с неизвестной ошибкой, возможно вызванной падением рабочего процесса.'")); - - КонецЕсли; - - ПараметрыВызоваОбработчика = Новый Массив; - ПараметрыВызоваОбработчика.Добавить(ПараметрыЗадания); - ПараметрыВызоваОбработчика.Добавить(ИнформацияОбОшибкеВыполненияЗадания); - - Результат.ПараметрыВызоваОбработчика = ПараметрыВызоваОбработчика; - Иначе - Результат.ПараметрыВызоваОбработчика = Неопределено; - КонецЕсли; - - Возврат Результат; - -КонецФункции - -// Формирует и возвращает таблицу имен регламентных заданий с признаком использования. -// -// Возвращаемое значение: -// ТаблицаЗначений - таблица, которую необходимо заполнить -// регламентными заданиями и признаком использования. -// -Функция ИспользованиеРегламентныхЗаданий() - - ТаблицаИспользования = Новый ТаблицаЗначений; - ТаблицаИспользования.Колонки.Добавить("РегламентноеЗадание", Новый ОписаниеТипов("Строка")); - ТаблицаИспользования.Колонки.Добавить("Использование", Новый ОписаниеТипов("Булево")); - - // Обязательно для этой подсистемы. - НоваяСтрока = ТаблицаИспользования.Добавить(); - НоваяСтрока.РегламентноеЗадание = "ПланированиеОбработкиЗаданий"; - НоваяСтрока.Использование = Истина; - - ИнтеграцияПодсистемБСП.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования); - ОчередьЗаданийПереопределяемый.ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования); - - Возврат ТаблицаИспользования; - -КонецФункции - -Функция КоличествоИсполняющихФоновыхЗаданий() - - Отбор = Новый Структура("Наименование, Состояние", ПолучитьНаименованиеИсполняющегоФоновогоЗадания(), СостояниеФоновогоЗадания.Активно); - ИсполняющиеФоновыеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); - - КоличествоРаботающихФоновыхЗаданий = ИсполняющиеФоновыеЗадания.Количество(); - - Возврат КоличествоРаботающихФоновыхЗаданий; - -КонецФункции - -// Рассчитывает необходимое количество исполняющих фоновых заданий. -// -Функция КоличествоИсполняющихФоновыхЗаданийКЗапуску() - - КоличествоРаботающихФоновыхЗаданий = КоличествоИсполняющихФоновыхЗаданий(); - - КоличествоИсполняющихФоновыхЗаданийКЗапуску = - Константы.МаксимальноеКоличествоИсполняющихФоновыхЗаданий.Получить() - КоличествоРаботающихФоновыхЗаданий; - - Если КоличествоИсполняющихФоновыхЗаданийКЗапуску < 0 Тогда - КоличествоИсполняющихФоновыхЗаданийКЗапуску = 0; - КонецЕсли; - - Возврат КоличествоИсполняющихФоновыхЗаданийКЗапуску; - -КонецФункции - -// Запускает заданное количество фоновых заданий. -// -// Параметры: -// КоличествоЗапускаемыхФоновыхЗаданий - Число - количество фоновых заданий, -// которых необходимо запустить. -// -Процедура ЗапуститьИсполняющееФоновоеЗадание(КоличествоЗапускаемыхФоновыхЗаданий) - - Для Индекс = 1 По КоличествоЗапускаемыхФоновыхЗаданий Цикл - Ключ = Новый УникальныйИдентификатор; - Параметры = Новый Массив; - Параметры.Добавить(Ключ); - ФоновыеЗадания.Выполнить("ОчередьЗаданийСлужебный.ОбработатьОчередьЗаданий", Параметры, Ключ, ПолучитьНаименованиеИсполняющегоФоновогоЗадания()); - КонецЦикла; - -КонецПроцедуры - -Функция ПолучитьНаименованиеИсполняющегоФоновогоЗадания() - - Возврат "ИсполняющееФоновоеЗадание_5340185be5b240538bc73d9f18ef8df1"; - -КонецФункции - -Процедура ЗаписьКонтроляВыполнения(Знач ИмяСобытия, Знач ЗаписьЗадания, Знач Комментарий = "") - - Если НЕ ПустаяСтрока(Комментарий) Тогда - - Комментарий = Комментарий + Символы.ПС; - - КонецЕсли; - - Если ТипЗнч(ЗаписьЗадания) = Тип("СправочникСсылка.ОчередьЗаданий") Тогда - - ИмяМетода = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЗаписьЗадания, "ИмяМетода"); - - Иначе - - ОписаниеМетода = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗаписьЗадания, "ИмяМетода, Шаблон"); - - Если ЗначениеЗаполнено(ОписаниеМетода.Шаблон) Тогда - - ИмяМетода = НСтр("ru = 'Шаблон:'") + ОписаниеМетода.Шаблон; - - Иначе - - ИмяМетода = ОписаниеМетода.ИмяМетода; - - КонецЕсли; - - КонецЕсли; - - ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Информация, , - Строка(ЗаписьЗадания.УникальныйИдентификатор()), Комментарий + ИмяМетода + ";" - + ?(РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() И РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ЗаписьЗадания.Метаданные().ПолноеИмя(), - РаботаВМоделиСервиса.РазделительВспомогательныхДанных()), - Формат(ЗаписьЗадания.ОбластьДанныхВспомогательныеДанные, "ЧН=0; ЧГ="), "-1")); - -КонецПроцедуры - -// Выполняет обработчик задания созданного не на основе шаблона. -// -// Параметры: -// Псевдоним - Строка - псевдоним метода, который необходимо выполнить. -// Параметры - Массив - параметры передаются в ИмяМетода -// в порядке расположения элементов массива. -// -Процедура ВыполнитьОбработчикЗадания(Шаблон, Псевдоним, Параметры) - - ИмяМетода = ОчередьЗаданийСлужебныйПовтИсп.СоответствиеИменМетодовПсевдонимам().Получить(ВРег(Псевдоним)); - Если ИмяМетода = Неопределено Тогда - ШаблонСообщения = НСтр("ru = 'Метод %1 не разрешен к вызову через очередь заданий.'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Псевдоним); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - - ВыполнитьМетодКонфигурации(ИмяМетода,Параметры); - -КонецПроцедуры - -Процедура ЗапланироватьЗадание(Знач Выборка) - - Если ЗначениеЗаполнено(Выборка.ЧасовойПояс) Тогда - ЧасовойПояс = Выборка.ЧасовойПояс; - Иначе - ЧасовойПояс = Неопределено; - КонецЕсли; - - Если Выборка.ОбластьДанных <> -1 Тогда - - Попытка - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, Выборка.ОбластьДанных); - - Исключение - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - - ШаблонСообщения = - НСтр("ru = 'Задание очереди с именем метода %1 в области %2 не запланировано по причине: - |%3'"); - - Если ЗначениеЗаполнено(Выборка.Шаблон) Тогда - - ИмяМетода = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Выборка.Шаблон, "ИмяМетода"); - - Иначе - - ИмяМетода = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Выборка.Идентификатор, "ИмяМетода"); - - КонецЕсли; - - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, ИмяМетода, Выборка.ОбластьДанных, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ЗаписьЖурналаРегистрации( - НСтр("ru = 'Очередь заданий.Планирование'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка,,, - ТекстСообщения); - - Возврат; - - КонецПопытки; - - КонецЕсли; - - НачатьТранзакцию(); - - Попытка - - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить(Выборка.Идентификатор.Метаданные().ПолноеИмя()); - ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Идентификатор); - Блокировка.Заблокировать(); - - Если НЕ ОбщегоНазначения.СсылкаСуществует(Выборка.Идентификатор) Тогда - ОтменитьТранзакцию(); - Возврат; - КонецЕсли; - - Задание = Выборка.Идентификатор.ПолучитьОбъект(); - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() И РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(Задание.Метаданные().ПолноеИмя(), РаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда - - Если ЗначениеЗаполнено(Задание.Шаблон) - И Выборка.Шаблон = Неопределено Тогда - - ШаблонСообщения = НСтр("ru = 'На найден шаблон задания очереди %1'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Задание.Шаблон); - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Очередь заданий.Планирование'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, - , - , - ТекстСообщения); - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - ОтменитьТранзакцию(); - Возврат; - - КонецЕсли; - - КонецЕсли; - - Если Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.ОшибкаВыполнения - И Задание.НомерПопытки < Выборка.КоличествоПовторовПриАварийномЗавершении Тогда // Попытка повторного запуска - - Если ЗначениеЗаполнено(Задание.ДатаЗавершенияПоследнегоЗапуска) Тогда - ТочкаОтсчетаПерезапуска = Задание.ДатаЗавершенияПоследнегоЗапуска; - Иначе - ТочкаОтсчетаПерезапуска = Задание.ДатаНачалаПоследнегоЗапуска; - КонецЕсли; - - Задание.ЗапланированныйМоментЗапуска = ТочкаОтсчетаПерезапуска + Выборка.ИнтервалПовтораПриАварийномЗавершении; - Задание.НомерПопытки = Задание.НомерПопытки + 1; - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Запланировано; - Задание.ИсполняющееФоновоеЗадание = Неопределено; - РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(Задание); - - // Задание не было выполнено, запланируем обработчик ошибки. - ИначеЕсли Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Выполняется Тогда - - ЗаписьКонтроляВыполнения(НСтр("ru = 'Очередь регламентных заданий.Завершено с ошибками'", - ОбщегоНазначения.КодОсновногоЯзыка()), Выборка.Идентификатор, - НСтр("ru = 'Исполняющее задание было принудительно завершено'")); - - // Запланируем разовое задание для выполнения обработчика ошибок. - ПараметрыОбработчика = ПолучитьПараметрыОбработчикаОшибок(Задание); - Если ПараметрыОбработчика.ОбработчикСуществует Тогда - - НовоеЗадание = Справочники[Задание.Метаданные().Имя].СоздатьЭлемент(); - НовоеЗадание.ЗапланированныйМоментЗапуска = ТекущаяУниверсальнаяДата(); - НовоеЗадание.Использование = Истина; - НовоеЗадание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Запланировано; - ПараметрыВызова = Новый Массив; - ПараметрыВызова.Добавить(Задание.Ссылка); - НовоеЗадание.Параметры = Новый ХранилищеЗначения(ПараметрыВызова); - НовоеЗадание.ИмяМетода = "ОчередьЗаданийСлужебный.ОбработатьОшибку"; - Если РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(Задание.Метаданные(),"ОбластьДанныхВспомогательныеДанные") Тогда - НовоеЗадание.ОбластьДанныхВспомогательныеДанные = Задание.ОбластьДанныхВспомогательныеДанные; - КонецЕсли; - РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(НовоеЗадание); - - // Останавливаем выполнение задания пока не будет выполнен обработчик ошибок. - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.ОбработкаОшибкиПриАварийномЗавершении; - - Иначе - - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.ОшибкаВыполнения; - - КонецЕсли; - - РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(Задание); - - Иначе - Расписание = Выборка.Расписание.Получить(); - - Если Расписание = Неопределено Или (Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Завершено - И Расписание.ПериодПовтораДней = 0 И Расписание.ПериодПовтораВТечениеДня = 0) Тогда - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() И РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных( - Задание.Метаданные().ПолноеИмя(), - РаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда - Если Расписание = Неопределено И ЗначениеЗаполнено(Задание.Шаблон) Тогда // Задание по шаблону без расписания. - - ШаблонСообщения = НСтр("ru = 'Для шаблон заданий очереди %1 не найдено расписание'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Задание.Шаблон); - ЗаписьЖурналаРегистрации(НСтр("ru = 'Очередь заданий.Планирование'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, - , - , - ТекстСообщения); - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - ОтменитьТранзакцию(); - Возврат; - - КонецЕсли; - КонецЕсли; - - // Разовое задание - Задание.ОбменДанными.Загрузка = Истина; - Задание.Удалить(); - - Иначе - - Задание.ЗапланированныйМоментЗапуска = ПолучитьЗапланированныйМоментЗапускаЗадания( - Расписание, ЧасовойПояс, Задание.ДатаНачалаПоследнегоЗапуска, Задание.ДатаЗавершенияПоследнегоЗапуска); - Задание.НомерПопытки = 0; - Если ЗначениеЗаполнено(Задание.ЗапланированныйМоментЗапуска) Тогда - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Запланировано; - Иначе - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.НеАктивно; - КонецЕсли; - Задание.ИсполняющееФоновоеЗадание = Неопределено; - РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(Задание); - - КонецЕсли; - КонецЕсли; - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - - ШаблонСообщения = - НСтр("ru = 'Задание очереди с именем метода %1 не запланировано по причине: - |%2'"); - - Если ЗначениеЗаполнено(Выборка.Шаблон) Тогда - - ИмяМетода = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Выборка.Шаблон, "ИмяМетода"); - - Иначе - - ИмяМетода = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Выборка.Идентификатор, "ИмяМетода"); - - КонецЕсли; - - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, ИмяМетода, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - - ЗаписьЖурналаРегистрации( - НСтр("ru = 'Очередь заданий.Планирование'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка,,, - ТекстСообщения); - - Возврат; - - КонецПопытки; - -КонецПроцедуры - -Процедура ВыполнитьЗаданиеОчереди(Знач Ссылка, Знач ИсполняющееФоновоеЗадание, - Знач Шаблон, Знач ИмяМетода) - - ОбластьДанных = Неопределено; - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - МодульОчередьЗаданийСлужебныйРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебныйРазделениеДанных"); - ПереопределеннаяОбластьДанных = МодульОчередьЗаданийСлужебныйРазделениеДанных.ОпределитьОбластьДанныхДляЗадания(Ссылка); - Если ПереопределеннаяОбластьДанных <> Неопределено Тогда - ОбластьДанных = ПереопределеннаяОбластьДанных; - КонецЕсли; - КонецЕсли; - - Если ОбластьДанных = Неопределено Тогда - ОбластьДанных = -1; - КонецЕсли; - - НачатьТранзакцию(); - Попытка - - Если ОбластьДанных <> -1 Тогда - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных); - КонецЕсли; - - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить(Ссылка.Метаданные().ПолноеИмя()); - ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка); - Блокировка.Заблокировать(); - - Задание = Ссылка.ПолучитьОбъект(); - - Если Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Запланировано - И Задание.Использование - И Задание.ЗапланированныйМоментЗапуска <= ТекущаяУниверсальнаяДата() Тогда - - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Выполняется; - Задание.ИсполняющееФоновоеЗадание = ИсполняющееФоновоеЗадание.УникальныйИдентификатор; - Задание.ДатаНачалаПоследнегоЗапуска = ТекущаяУниверсальнаяДата(); - Задание.ДатаЗавершенияПоследнегоЗапуска = Неопределено; - РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(Задание); - - ЗафиксироватьТранзакцию(); - - Иначе - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - ЗафиксироватьТранзакцию(); - Возврат; - - КонецЕсли; - - Исключение - - ОтменитьТранзакцию(); - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - ВызватьИсключение; - - КонецПопытки; - - // Выполнение задания - ВыполненоУспешно = Ложь; - ИнформацияОбОшибкеВыполненияЗадания = Неопределено; - Попытка - ЗаписьКонтроляВыполнения(НСтр("ru = 'Очередь регламентных заданий.Старт'", - ОбщегоНазначения.КодОсновногоЯзыка()), Ссылка); - - Если ЗначениеЗаполнено(Шаблон) Тогда - ВыполнитьМетодКонфигурации(ИмяМетода); - Иначе - ВыполнитьОбработчикЗадания(Шаблон, ИмяМетода, Задание.Параметры.Получить()); - КонецЕсли; - - ВыполненоУспешно = Истина; - - ЗаписьКонтроляВыполнения(НСтр("ru = 'Очередь регламентных заданий.Завершено успешно'", - ОбщегоНазначения.КодОсновногоЯзыка()), Ссылка); - - Исключение - - Пока ТранзакцияАктивна() Цикл - - ОтменитьТранзакцию(); - - КонецЦикла; - - ШаблонКомментария = - НСтр("ru = 'Не удалось выполнить обработчик %1 по причине: - |%2'"); - - ИнформацияОбОшибкеВыполненияЗадания = ИнформацияОбОшибке(); - - ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонКомментария, ИмяМетода, ПодробноеПредставлениеОшибки(ИнформацияОбОшибкеВыполненияЗадания)); - - ЗаписьКонтроляВыполнения(НСтр("ru = 'Очередь регламентных заданий.Завершено с ошибками'", - ОбщегоНазначения.КодОсновногоЯзыка()), Ссылка, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибкеВыполненияЗадания)); - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Очередь регламентных заданий.Завершено с ошибками'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, - , - ИсполняющееФоновоеЗадание, - ТекстСообщенияОбОшибке); - - КонецПопытки; - - Если НЕ ВыполненоУспешно Тогда - - // Вызов обработчиков ошибок - ОбработатьОшибку(Ссылка, ИнформацияОбОшибкеВыполненияЗадания); - - КонецЕсли; - - НачатьТранзакцию(); - Попытка - - Если ОбщегоНазначения.СсылкаСуществует(Ссылка) Тогда // Иначе - задание могло быть удалено внутри обработчика. - - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить(Ссылка.Метаданные().ПолноеИмя()); - ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка); - Блокировка.Заблокировать(); - - Задание = Ссылка.ПолучитьОбъект(); - Задание.ДатаЗавершенияПоследнегоЗапуска = ТекущаяУниверсальнаяДата(); - - Если ВыполненоУспешно Тогда - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Завершено; - Иначе - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.ОшибкаВыполнения; - КонецЕсли; - РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(Задание); - - КонецЕсли; - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - ВызватьИсключение; - - КонецПопытки; - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Обновление информационной базы. - -// Отключает регламентные задания задания используемые только в локальном режиме -// и включает используемые только в модели сервиса. -// -Процедура УстановитьИспользованиеРегламентныхЗаданий() Экспорт - - ТаблицаИспользованияРегламентныхЗаданийВМоделиСервиса = ИспользованиеРегламентныхЗаданий(); - - Для Каждого Строка Из ТаблицаИспользованияРегламентныхЗаданийВМоделиСервиса Цикл - - Если РаботаВМоделиСервиса.РазделениеВключено() Тогда - - // Включаем регламентные задания, предназначенные для использования в модели сервиса. - // Отключаем регламентные задания, предназначенные для использования в локальном режиме. - ТребуемоеИспользование = Строка.Использование; - - Иначе - - Если Строка.Использование Тогда - // Отключаем регламентные задания, предназначенные для использования в модели сервиса. - ТребуемоеИспользование = Ложь; - Иначе - // Не изменяем настройки заданий, предназначенных для использования в локальном режиме. - Продолжить; - КонецЕсли; - - КонецЕсли; - - Отбор = Новый Структура("Метаданные", Метаданные.РегламентныеЗадания[Строка.РегламентноеЗадание]); - НайденныеРегламентныеЗадания = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Отбор); - - Для Каждого РегламентноеЗадание Из НайденныеРегламентныеЗадания Цикл - - Если РегламентноеЗадание.Использование <> ТребуемоеИспользование Тогда - РегламентноеЗадание.Использование = ТребуемоеИспользование; - РегламентноеЗадание.Записать(); - КонецЕсли; - - КонецЦикла; - - КонецЦикла; - -КонецПроцедуры - -// Переносит задания из РС ОчередьЗаданий в справочник ОчередьЗаданий. -Процедура ПеренестиЗаданияВОчередиВНеразделенныеДанные() Экспорт - - НачатьТранзакцию(); - - Попытка - - Блокировка = Новый БлокировкаДанных(); - Блокировка.Добавить("Справочник.ОчередьЗаданий"); - Блокировка.Заблокировать(); - - ТекстЗапроса = - "ВЫБРАТЬ - | УдалитьОчередьЗаданий.Использование, - | УдалитьОчередьЗаданий.ЗапланированныйМоментЗапуска, - | УдалитьОчередьЗаданий.СостояниеЗадания, - | УдалитьОчередьЗаданий.ИсполняющееФоновоеЗадание, - | УдалитьОчередьЗаданий.ЭксклюзивноеВыполнение, - | УдалитьОчередьЗаданий.Шаблон, - | УдалитьОчередьЗаданий.НомерПопытки, - | УдалитьОчередьЗаданий.УдалитьРегламентноеЗадание, - | УдалитьОчередьЗаданий.ИмяМетода, - | УдалитьОчередьЗаданий.Параметры, - | УдалитьОчередьЗаданий.ДатаНачалаПоследнегоЗапуска, - | УдалитьОчередьЗаданий.Ключ, - | УдалитьОчередьЗаданий.ИнтервалПовтораПриАварийномЗавершении, - | УдалитьОчередьЗаданий.Расписание, - | УдалитьОчередьЗаданий.КоличествоПовторовПриАварийномЗавершении, - | УдалитьОчередьЗаданий.Идентификатор - |ИЗ - | РегистрСведений.УдалитьОчередьЗаданий КАК УдалитьОчередьЗаданий - |ГДЕ - | УдалитьОчередьЗаданий.ОбластьДанных = -1"; - Запрос = Новый Запрос(ТекстЗапроса); - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - - СсылкаЗадания = Справочники.ОчередьЗаданий.ПолучитьСсылку( - Новый УникальныйИдентификатор(Выборка.Идентификатор)); - - Если ОбщегоНазначения.СсылкаСуществует(СсылкаЗадания) Тогда - НовоеЗадание = СсылкаЗадания.ПолучитьОбъект(); - Иначе - НовоеЗадание = Справочники.ОчередьЗаданий.СоздатьЭлемент(); - КонецЕсли; - - ЗаполнитьЗначенияСвойств(НовоеЗадание, Выборка); - РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(НовоеЗадание); - - КонецЦикла; - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - -Процедура ЗапланироватьНеАктивныеЗадания() Экспорт - - Запрос = Новый Запрос; - - СправочникиЗаданий = ОчередьЗаданийСлужебныйПовтИсп.ПолучитьСправочникиЗаданий(); - ТекстЗапроса = ""; - Для Каждого СправочникЗаданий Из СправочникиЗаданий Цикл - - Если Не ПустаяСтрока(ТекстЗапроса) Тогда - - ТекстЗапроса = ТекстЗапроса + " - | - |ОБЪЕДИНИТЬ ВСЕ - |" - - КонецЕсли; - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() И РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(СправочникЗаданий.СоздатьЭлемент().Метаданные().ПолноеИмя(), РаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда - - ТекстЗапроса = ТекстЗапроса + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "ВЫБРАТЬ - | Очередь.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанных, - | Очередь.Ссылка КАК Идентификатор, - | ЕСТЬNULL(Очередь.Шаблон, НЕОПРЕДЕЛЕНО) КАК Шаблон, - | ЕСТЬNULL(ЧасовыеПояса.Значение, """") КАК ЧасовойПояс, - | ВЫБОР - | КОГДА Очередь.Шаблон = ЗНАЧЕНИЕ(Справочник.ШаблоныЗаданийОчереди.ПустаяСсылка) - | ТОГДА Очередь.Расписание - | ИНАЧЕ Очередь.Шаблон.Расписание - | КОНЕЦ КАК Расписание, - | ВЫБОР - | КОГДА Очередь.Шаблон = ЗНАЧЕНИЕ(Справочник.ШаблоныЗаданийОчереди.ПустаяСсылка) - | ТОГДА Очередь.КоличествоПовторовПриАварийномЗавершении - | ИНАЧЕ Очередь.Шаблон.КоличествоПовторовПриАварийномЗавершении - | КОНЕЦ КАК КоличествоПовторовПриАварийномЗавершении, - | ВЫБОР - | КОГДА Очередь.Шаблон = ЗНАЧЕНИЕ(Справочник.ШаблоныЗаданийОчереди.ПустаяСсылка) - | ТОГДА Очередь.ИнтервалПовтораПриАварийномЗавершении - | ИНАЧЕ Очередь.Шаблон.ИнтервалПовтораПриАварийномЗавершении - | КОНЕЦ КАК ИнтервалПовтораПриАварийномЗавершении - |ИЗ - | %1 КАК Очередь - | ЛЕВОЕ СОЕДИНЕНИЕ Константа.ЧасовойПоясОбластиДанных КАК ЧасовыеПояса - | ПО Очередь.ОбластьДанныхВспомогательныеДанные = ЧасовыеПояса.ОбластьДанныхВспомогательныеДанные - |ГДЕ - | Очередь.СостояниеЗадания = ЗНАЧЕНИЕ(Перечисление.СостоянияЗаданий.НеАктивно) - | И Очередь.Использование" - , СправочникЗаданий.ПустаяСсылка().Метаданные().ПолноеИмя()); - - Иначе - - ТекстЗапроса = ТекстЗапроса + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - "ВЫБРАТЬ - | -1 КАК ОбластьДанных, - | Очередь.Ссылка КАК Идентификатор, - | НЕОПРЕДЕЛЕНО КАК Шаблон, - | """" КАК ЧасовойПояс, - | Очередь.Расписание КАК Расписание, - | Очередь.КоличествоПовторовПриАварийномЗавершении КАК КоличествоПовторовПриАварийномЗавершении, - | Очередь.ИнтервалПовтораПриАварийномЗавершении КАК ИнтервалПовтораПриАварийномЗавершении - |ИЗ - | %1 КАК Очередь - |ГДЕ - | Очередь.СостояниеЗадания = ЗНАЧЕНИЕ(Перечисление.СостоянияЗаданий.НеАктивно) - | И Очередь.Использование" - , СправочникЗаданий.ПустаяСсылка().Метаданные().ПолноеИмя()); - - КонецЕсли; - - КонецЦикла; - - Запрос.Текст = ТекстЗапроса; - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - - Если ЗначениеЗаполнено(Выборка.ЧасовойПояс) Тогда - ЧасовойПояс = Выборка.ЧасовойПояс; - Иначе - ЧасовойПояс = Неопределено; - КонецЕсли; - - Если ЗначениеЗаполнено(Выборка.Шаблон) Тогда - ИмяМетода = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Выборка.Шаблон, "ИмяМетода"); - Иначе - ИмяМетода = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Выборка.Идентификатор, "ИмяМетода"); - КонецЕсли; - - НачатьТранзакцию(); - Попытка - - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить(Выборка.Идентификатор.Метаданные().ПолноеИмя()); - ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Идентификатор); - Блокировка.Заблокировать(); - - Задание = Выборка.Идентификатор.ПолучитьОбъект(); - - Расписание = Выборка.Расписание.Получить(); - - // Если это задания периодические (не одноразовые) - Если (Расписание <> Неопределено И (Расписание.ПериодПовтораДней <> 0 Или Расписание.ПериодПовтораВТечениеДня <> 0)) Тогда - - Задание.ЗапланированныйМоментЗапуска = ПолучитьЗапланированныйМоментЗапускаЗадания( - Расписание, ЧасовойПояс, Задание.ДатаНачалаПоследнегоЗапуска, Задание.ДатаЗавершенияПоследнегоЗапуска); - Задание.НомерПопытки = 0; - Если ЗначениеЗаполнено(Задание.ЗапланированныйМоментЗапуска) Тогда - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Запланировано; - Иначе - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.НеАктивно; - КонецЕсли; - Задание.ИсполняющееФоновоеЗадание = Неопределено; - Задание.ОбменДанными.Загрузка = Истина; - Задание.Записать(); - - КонецЕсли; - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - - ТекстСообщения = НСтр("ru = 'Задание не удалось обновить - |ОбластьДанных: %1 - |Имя метода: %2'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, Строка(Выборка.ОбластьДанных), ИмяМетода); - - ЗаписьЖурналаРегистрации( - НСтр("ru = 'Обновление очереди заданий'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка,,, - ТекстСообщения); - - - КонецПопытки; - - КонецЦикла; - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/ОчередьЗаданийСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/ОчередьЗаданийСлужебныйПовтИсп/Module.bsl deleted file mode 100644 index e5471ef01..000000000 --- a/SSL/src/CommonModules/ОчередьЗаданийСлужебныйПовтИсп/Module.bsl +++ /dev/null @@ -1,289 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныеПроцедурыИФункции - -// Возвращает соответствие имен методов их псевдонимам (в верхнем регистре) -// для вызова из очереди заданий. -// -// Возвращаемое значение: -// ФиксированноеСоответствие -// Ключ - Псевдоним метода -// Значение - Имя метода для вызова. -// -Функция СоответствиеИменМетодовПсевдонимам() Экспорт - - Результат = Новый Соответствие; - - МетодыКонфигурации = Новый Соответствие; - - ИнтеграцияПодсистемБСП.ПриОпределенииПсевдонимовОбработчиков(МетодыКонфигурации); - - // Определяем методы служебных процедур для обработки ошибок заданий. - МетодыКонфигурации.Вставить("ОчередьЗаданийСлужебный.ОбработатьОшибку"); - МетодыКонфигурации.Вставить("ОчередьЗаданийСлужебный.СнятьЗаданияОбработкиОшибок"); - - ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков(МетодыКонфигурации); - - Для каждого КлючИЗначение Из МетодыКонфигурации Цикл - Результат.Вставить(ВРег(КлючИЗначение.Ключ), - ?(ПустаяСтрока(КлючИЗначение.Значение), КлючИЗначение.Ключ, КлючИЗначение.Значение)); - КонецЦикла; - - Возврат Новый ФиксированноеСоответствие(Результат); - -КонецФункции - -// Возвращает соответствие обработчиков ошибок псевдонимам методов, для которых они вызываются -// (в верхнем регистре). -// -// Возвращаемое значение: -// ФиксированноеСоответствие -// Ключ - Псевдоним метода -// Значение - Полное имя метода обработчика. -// -Функция СоответствиеОбработчиковОшибокПсевдонимам() Экспорт - - ОбработчикиОшибок = Новый Соответствие; - - // Заполнение встроенных обработчиков ошибок. - ОбработчикиОшибок.Вставить("ОчередьЗаданийСлужебный.ОбработатьОшибку","ОчередьЗаданийСлужебный.СнятьЗаданияОбработкиОшибок"); - ОбработчикиОшибок.Вставить("ОчередьЗаданийСлужебный.СнятьЗаданияОбработкиОшибок","ОчередьЗаданийСлужебный.СнятьЗаданияОбработкиОшибок"); - - ИнтеграцияПодсистемБСП.ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок); - ОчередьЗаданийПереопределяемый.ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок); - - Результат = Новый Соответствие; - Для каждого КлючИЗначение Из ОбработчикиОшибок Цикл - Результат.Вставить(ВРег(КлючИЗначение.Ключ), КлючИЗначение.Значение); - КонецЦикла; - - Возврат Новый ФиксированноеСоответствие(Результат); - -КонецФункции - -// Возвращает описание параметров заданий очереди. -// -// Возвращаемое значение: -// ТаблицаЗначений - описание параметров, колонки. -// Имя - Строка - имя параметра. -// ИмяВРег - Строка - имя параметра в верхнем регистре. -// Поле - Строка - поле хранения параметра в таблице очереди. -// Тип - ОписаниеТипов - допустимые типы значений параметров. -// Отбор - Булево - параметр допустимо использовать для отбора. -// Добавление - Булево - параметр допустимо указывать при добавлении -// задания в очередь. -// Изменение - Булево - параметр допустимо изменять. -// Шаблон - Булево - параметр допустимо изменять для заданий -// созданных по шаблону. -// РазделениеДанных - Булево - параметр используется только при работе -// разделенными заданиями. -// ЗначениеДляНеразделенныхЗаданий - Строка - значение, которое необходимо -// возвращать из API для разделенных параметров неразделенных заданий -// (в виде строки, пригодной для подстановки в тексты запросов). -// -Функция ПараметрыЗаданийОчереди() Экспорт - - Результат = Новый ТаблицаЗначений; - Результат.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная))); - Результат.Колонки.Добавить("ИмяВРег", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная))); - Результат.Колонки.Добавить("Поле", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная))); - Результат.Колонки.Добавить("Тип", Новый ОписаниеТипов("ОписаниеТипов")); - Результат.Колонки.Добавить("Отбор", Новый ОписаниеТипов("Булево")); - Результат.Колонки.Добавить("Добавление", Новый ОписаниеТипов("Булево")); - Результат.Колонки.Добавить("Изменение", Новый ОписаниеТипов("Булево")); - Результат.Колонки.Добавить("Шаблон", Новый ОписаниеТипов("Булево")); - Результат.Колонки.Добавить("РазделениеДанных", Новый ОписаниеТипов("Булево")); - Результат.Колонки.Добавить("ЗначениеДляНеразделенныхЗаданий", Новый ОписаниеТипов("Строка")); - - ОписаниеПараметра = Результат.Добавить(); - ОписаниеПараметра.Имя = "ОбластьДанных"; - ОписаниеПараметра.Поле = "ОбластьДанныхВспомогательныеДанные"; - ОписаниеПараметра.Тип = Новый ОписаниеТипов("Число"); - ОписаниеПараметра.Отбор = Истина; - ОписаниеПараметра.Добавление = Истина; - ОписаниеПараметра.РазделениеДанных = Истина; - ОписаниеПараметра.ЗначениеДляНеразделенныхЗаданий = "-1"; - - ОписаниеПараметра = Результат.Добавить(); - ОписаниеПараметра.Имя = "Идентификатор"; - ОписаниеПараметра.Поле = "Ссылка"; - МассивТипов = Новый Массив(); - СправочникиЗаданий = ОчередьЗаданийСлужебныйПовтИсп.ПолучитьСправочникиЗаданий(); - Для Каждого СправочникЗаданий Из СправочникиЗаданий Цикл - МассивТипов.Добавить(ТипЗнч(СправочникЗаданий.ПустаяСсылка())); - КонецЦикла; - ОписаниеПараметра.Тип = Новый ОписаниеТипов(МассивТипов); - ОписаниеПараметра.Отбор = Истина; - - ОписаниеПараметра = Результат.Добавить(); - ОписаниеПараметра.Имя = "Использование"; - ОписаниеПараметра.Поле = ОписаниеПараметра.Имя; - ОписаниеПараметра.Тип = Новый ОписаниеТипов("Булево"); - ОписаниеПараметра.Отбор = Истина; - ОписаниеПараметра.Добавление = Истина; - ОписаниеПараметра.Изменение = Истина; - ОписаниеПараметра.Шаблон = Истина; - - ОписаниеПараметра = Результат.Добавить(); - ОписаниеПараметра.Имя = "ЗапланированныйМоментЗапуска"; - ОписаниеПараметра.Поле = ОписаниеПараметра.Имя; - ОписаниеПараметра.Тип = Новый ОписаниеТипов("Дата"); - ОписаниеПараметра.Добавление = Истина; - ОписаниеПараметра.Изменение = Истина; - ОписаниеПараметра.Шаблон = Истина; - - ОписаниеПараметра = Результат.Добавить(); - ОписаниеПараметра.Имя = "СостояниеЗадания"; - ОписаниеПараметра.Поле = ОписаниеПараметра.Имя; - ОписаниеПараметра.Тип = Новый ОписаниеТипов("ПеречислениеСсылка.СостоянияЗаданий"); - ОписаниеПараметра.Отбор = Истина; - - ОписаниеПараметра = Результат.Добавить(); - ОписаниеПараметра.Имя = "ЭксклюзивноеВыполнение"; - ОписаниеПараметра.Поле = ОписаниеПараметра.Имя; - ОписаниеПараметра.Тип = Новый ОписаниеТипов("Булево"); - ОписаниеПараметра.Добавление = Истина; - ОписаниеПараметра.Изменение = Истина; - ОписаниеПараметра.Шаблон = Истина; - - ОписаниеПараметра = Результат.Добавить(); - ОписаниеПараметра.Имя = "Шаблон"; - ОписаниеПараметра.Поле = ОписаниеПараметра.Имя; - ОписаниеПараметра.Тип = Новый ОписаниеТипов("СправочникСсылка.ШаблоныЗаданийОчереди"); - ОписаниеПараметра.Отбор = Истина; - ОписаниеПараметра.РазделениеДанных = Истина; - ОписаниеПараметра.ЗначениеДляНеразделенныхЗаданий = "НЕОПРЕДЕЛЕНО"; - - ОписаниеПараметра = Результат.Добавить(); - ОписаниеПараметра.Имя = "ИмяМетода"; - ОписаниеПараметра.Поле = ОписаниеПараметра.Имя; - ОписаниеПараметра.Тип = Новый ОписаниеТипов("Строка"); - ОписаниеПараметра.Отбор = Истина; - ОписаниеПараметра.Добавление = Истина; - ОписаниеПараметра.Изменение = Истина; - - ОписаниеПараметра = Результат.Добавить(); - ОписаниеПараметра.Имя = "Параметры"; - ОписаниеПараметра.Поле = ОписаниеПараметра.Имя; - ОписаниеПараметра.Тип = Новый ОписаниеТипов("Массив"); - ОписаниеПараметра.Добавление = Истина; - ОписаниеПараметра.Изменение = Истина; - - ОписаниеПараметра = Результат.Добавить(); - ОписаниеПараметра.Имя = "Ключ"; - ОписаниеПараметра.Поле = ОписаниеПараметра.Имя; - ОписаниеПараметра.Тип = Новый ОписаниеТипов("Строка"); - ОписаниеПараметра.Отбор = Истина; - ОписаниеПараметра.Добавление = Истина; - ОписаниеПараметра.Изменение = Истина; - - ОписаниеПараметра = Результат.Добавить(); - ОписаниеПараметра.Имя = "ИнтервалПовтораПриАварийномЗавершении"; - ОписаниеПараметра.Поле = ОписаниеПараметра.Имя; - ОписаниеПараметра.Тип = Новый ОписаниеТипов("Число"); - ОписаниеПараметра.Добавление = Истина; - ОписаниеПараметра.Изменение = Истина; - ОписаниеПараметра.Шаблон = Истина; - - ОписаниеПараметра = Результат.Добавить(); - ОписаниеПараметра.Имя = "Расписание"; - ОписаниеПараметра.Поле = ОписаниеПараметра.Имя; - ОписаниеПараметра.Тип = Новый ОписаниеТипов("РасписаниеРегламентногоЗадания, Неопределено"); - ОписаниеПараметра.Добавление = Истина; - ОписаниеПараметра.Изменение = Истина; - ОписаниеПараметра.Шаблон = Истина; - - ОписаниеПараметра = Результат.Добавить(); - ОписаниеПараметра.Имя = "КоличествоПовторовПриАварийномЗавершении"; - ОписаниеПараметра.Поле = ОписаниеПараметра.Имя; - ОписаниеПараметра.Тип = Новый ОписаниеТипов("Число"); - ОписаниеПараметра.Добавление = Истина; - ОписаниеПараметра.Изменение = Истина; - ОписаниеПараметра.Шаблон = Истина; - - Для каждого ОписаниеПараметра Из Результат Цикл - ОписаниеПараметра.ИмяВРег = ВРег(ОписаниеПараметра.Имя); - КонецЦикла; - - Возврат Результат; - -КонецФункции - -// Возвращает допустимые виды сравнения для отбора заданий очереди. -Функция ВидыСравненияОтбораЗаданий() Экспорт - - Результат = Новый Соответствие; - Результат.Вставить(ВидСравнения.Равно, "="); - Результат.Вставить(ВидСравнения.НеРавно, "<>"); - Результат.Вставить(ВидСравнения.ВСписке, "В"); - Результат.Вставить(ВидСравнения.НеВСписке, "НЕ В"); - - Возврат Новый ФиксированноеСоответствие(Результат); - -КонецФункции - -// Возвращает часть текста запроса получения заданий для возврата -// через программный интерфейс. -// -// Параметры: -// СправочникЗаданий - СправочникМенеджер, менеджер справочника, -// для которого получаются задания очереди. Используется для фильтрации полей -// выборки, которые применимы не для всех справочников заданий. -// -Функция ПоляВыборкиОчередиЗаданий(Знач СправочникЗаданий = Неопределено) Экспорт - - ПоляВыборки = ""; - Для каждого ОписаниеПараметра Из ОчередьЗаданийСлужебныйПовтИсп.ПараметрыЗаданийОчереди() Цикл - - Если НЕ ПустаяСтрока(ПоляВыборки) Тогда - ПоляВыборки = ПоляВыборки + "," + Символы.ПС; - КонецЕсли; - - ОписаниеПоляВыборки = "Очередь." + ОписаниеПараметра.Поле + " КАК " + ОписаниеПараметра.Имя; - - Если СправочникЗаданий <> Неопределено Тогда - - Если ОписаниеПараметра.РазделениеДанных Тогда - - Если Не РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() ИЛИ Не РаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(СправочникЗаданий, РаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда - - ОписаниеПоляВыборки = ОписаниеПараметра.ЗначениеДляНеразделенныхЗаданий + " КАК " + ОписаниеПараметра.Имя; - - КонецЕсли; - - КонецЕсли; - - КонецЕсли; - - ПоляВыборки = ПоляВыборки + Символы.Таб + ОписаниеПоляВыборки; - - КонецЦикла; - - Возврат ПоляВыборки; - -КонецФункции - -// Возвращает массив менеджеров справочников, которые могут использоваться для хранения заданий -// очереди заданий. -// -Функция ПолучитьСправочникиЗаданий() Экспорт - - МассивСправочников = Новый Массив(); - МассивСправочников.Добавить(Справочники.ОчередьЗаданий); - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - МодульОчередьЗаданийСлужебныйРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебныйРазделениеДанных"); - МодульОчередьЗаданийСлужебныйРазделениеДанных.ПриЗаполненииСправочниковЗаданий(МассивСправочников); - КонецЕсли; - - Возврат Новый ФиксированныйМассив(МассивСправочников); - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/ОчередьЗаданийСлужебныйРазделениеДанных/Module.bsl b/SSL/src/CommonModules/ОчередьЗаданийСлужебныйРазделениеДанных/Module.bsl deleted file mode 100644 index 778864f55..000000000 --- a/SSL/src/CommonModules/ОчередьЗаданийСлужебныйРазделениеДанных/Module.bsl +++ /dev/null @@ -1,601 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -// Вызывается при заполнении массива справочников, которые могут использоваться для -// хранения заданий очереди заданий. -// -// Параметры: -// МассивСправочник - Массив, в этот параметр в данном методе должны быть добавлены -// менеджеры справочников, которые могут использоваться для хранения заданий очереди. -// -Процедура ПриЗаполненииСправочниковЗаданий(МассивСправочников) Экспорт - - МассивСправочников.Добавить(Справочники.ОчередьЗаданийОбластейДанных); - -КонецПроцедуры - -// Выбирает справочник для добавляемого задания очереди заданий. -// -// Параметры: -// ПараметрыЗадания - - Структура - Параметры добавляемого задания, возможные ключи: -// ОбластьДанных -// Использование -// ЗапланированныйМоментЗапуска -// ЭксклюзивноеВыполнение. -// ИмяМетода - обязательно для указания. -// Параметры -// Ключ -// ИнтервалПовтораПриАварийномЗавершении. -// Расписание -// КоличествоПовторовПриАварийномЗавершении, -// Справочник - СправочникМенеджер, в качестве значения данного параметра подписка на событие -// должна установить менеджер справочника, который необходимо использовать для задания. -// СтандартнаяОбработка - булево, в качестве значения данного параметра подписка на событие -// должна установить флаг выполнения стандартной обработки (при которой в качестве справочника -// будет выбран справочник ОчередьЗаданийОбластейДанных). -// -Функция ПриВыбореСправочникаДляЗадания(Знач ПараметрыЗадания) Экспорт - - Если ПараметрыЗадания.Свойство("ОбластьДанных") И ПараметрыЗадания.ОбластьДанных <> -1 Тогда - - Возврат Справочники.ОчередьЗаданийОбластейДанных; - - КонецЕсли; - -КонецФункции - -// Определяет значение разделителя ОбластьДанныхОсновныеДанные, которое необходимо установить -// перед выполнением задания. -// -// Параметры: -// Задание - СправочникСсылка, задание очереди заданий. -// -// Возвращаемое значение: Произвольный. -// -Функция ОпределитьОбластьДанныхДляЗадания(Знач Задание) Экспорт - - Если ТипЗнч(Задание) = Тип("СправочникСсылка.ОчередьЗаданийОбластейДанных") Тогда - Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Задание, "ОбластьДанныхВспомогательныеДанные"); - КонецЕсли; - -КонецФункции - -// Корректирует запланированный момент запуска задания с учетом часового пояса области данных. -// -// Параметры: -// ПараметрыЗадания - Структура - Параметры добавляемого задания, возможные ключи: -// ОбластьДанных -// Использование -// ЗапланированныйМоментЗапуска -// ЭксклюзивноеВыполнение. -// ИмяМетода - обязательно для указания. -// Параметры -// Ключ -// ИнтервалПовтораПриАварийномЗавершении. -// Расписание -// КоличествоПовторовПриАварийномЗавершении. -// Результат = Дата (дата и время), запланированный момент запуска для задания. -// СтандартнаяОбработка - Булево, признак необходимости приведения времени задания к часовому -// поясу сервера. -// -Процедура ПриОпределенииЗапланированногоМоментаЗапуска(Знач ПараметрыЗадания, Результат, СтандартнаяОбработка) Экспорт - - ОбластьДанных = Неопределено; - Если Не ПараметрыЗадания.Свойство("ОбластьДанных", ОбластьДанных) Тогда - Возврат; - КонецЕсли; - - Если ОбластьДанных <> - 1 Тогда - - // Перевод времени из часового пояса области. - ЧасовойПояс = РаботаВМоделиСервиса.ПолучитьЧасовойПоясОбластиДанных(ПараметрыЗадания.ОбластьДанных); - Результат = УниверсальноеВремя(ПараметрыЗадания.ЗапланированныйМоментЗапуска, ЧасовойПояс); - СтандартнаяОбработка = Ложь; - - КонецЕсли; - -КонецПроцедуры - -/// Обновляет задания очереди созданные на основе шаблонов. -Процедура ОбновитьЗаданияОчередиПоШаблонам(Параметры = Неопределено) Экспорт - - Если НЕ РаботаВМоделиСервиса.РазделениеВключено() Тогда - Возврат; - КонецЕсли; - - Если Параметры = Неопределено Тогда - Параметры = Новый Структура; - Параметры.Вставить("МонопольныйРежим", Истина); - КонецЕсли; - - ЗапускВМонопольномРежиме = Параметры.МонопольныйРежим; - - Блокировка = Новый БлокировкаДанных; - Блокировка.Добавить("Справочник.ОчередьЗаданийОбластейДанных"); - - НачатьТранзакцию(); - Попытка - Блокировка.Заблокировать(); - - ИзмененияШаблонов = ОбновитьШаблоныЗаданийОчереди(Параметры); - Если НЕ ЗапускВМонопольномРежиме - И Параметры.МонопольныйРежим Тогда - - ОтменитьТранзакцию(); - Возврат; - КонецЕсли; - - Если ИзмененияШаблонов.Удаленные.Количество() > 0 - ИЛИ ИзмененияШаблонов.ДобавленныеИзмененные.Количество() > 0 Тогда - - // Удаление заданий по удаленным шаблонам. - Запрос = Новый Запрос( - "ВЫБРАТЬ - | Очередь.Ссылка - |ИЗ - | Справочник.ОчередьЗаданийОбластейДанных КАК Очередь - |ГДЕ - | Очередь.Шаблон В(&УдаленныеШаблоны)"); - Запрос.УстановитьПараметр("УдаленныеШаблоны", ИзмененияШаблонов.Удаленные); - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - - Задание = Выборка.Ссылка.ПолучитьОбъект(); - Задание.ОбменДанными.Загрузка = Истина; - Задание.Удалить(); - - КонецЦикла; - - // Добавление заданий по добавленным шаблонам. - ДобавленныеИзмененные = ИзмененияШаблонов.ДобавленныеИзмененные; - - Запрос = Новый Запрос( - "ВЫБРАТЬ - | Области.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанных, - | Очередь.Ссылка КАК Идентификатор, - | Шаблоны.Ссылка КАК Шаблон, - | ЕСТЬNULL(Очередь.ДатаНачалаПоследнегоЗапуска, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаНачалаПоследнегоЗапуска, - | ЧасовыеПояса.Значение КАК ЧасовойПояс - |ИЗ - | РегистрСведений.ОбластиДанных КАК Области - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ШаблоныЗаданийОчереди КАК Шаблоны - | ПО (Шаблоны.Ссылка В (&ДобавленныеИзмененныеШаблоны)) - | И (Области.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыОбластейДанных.Используется)) - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ОчередьЗаданийОбластейДанных КАК Очередь - | ПО Области.ОбластьДанныхВспомогательныеДанные = Очередь.ОбластьДанныхВспомогательныеДанные - | И (Шаблоны.Ссылка = Очередь.Шаблон) - | ЛЕВОЕ СОЕДИНЕНИЕ Константа.ЧасовойПоясОбластиДанных КАК ЧасовыеПояса - | ПО Области.ОбластьДанныхВспомогательныеДанные = ЧасовыеПояса.ОбластьДанныхВспомогательныеДанные"); - Запрос.УстановитьПараметр("ДобавленныеИзмененныеШаблоны", ДобавленныеИзмененные.ВыгрузитьКолонку("Ссылка")); - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - - СтрокаШаблона = ДобавленныеИзмененные.Найти(Выборка.Шаблон, "Ссылка"); - Если СтрокаШаблона = Неопределено Тогда - ШаблонСообщения = НСтр("ru = 'При обновлении не найден шаблон задания %1'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Выборка.Ссылка); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - - Если ЗначениеЗаполнено(Выборка.Идентификатор) Тогда - Задание = Выборка.Идентификатор.ПолучитьОбъект(); - Иначе - - Задание = Справочники.ОчередьЗаданийОбластейДанных.СоздатьЭлемент(); - Задание.Шаблон = Выборка.Шаблон; - Задание.ОбластьДанныхВспомогательныеДанные = Выборка.ОбластьДанных; - - КонецЕсли; - - Задание.Использование = СтрокаШаблона.Использование; - Задание.Ключ = СтрокаШаблона.Ключ; - - Задание.ЗапланированныйМоментЗапуска = - ОчередьЗаданийСлужебный.ПолучитьЗапланированныйМоментЗапускаЗадания( - СтрокаШаблона.Расписание, - Выборка.ЧасовойПояс, - Выборка.ДатаНачалаПоследнегоЗапуска); - - Если ЗначениеЗаполнено(Задание.ЗапланированныйМоментЗапуска) Тогда - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Запланировано; - Иначе - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.НеЗапланировано; - КонецЕсли; - - Задание.Записать(); - - КонецЦикла; - - КонецЕсли; - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -// Обработчик обновления, переносит задания из РС ОчередьЗаданий в справочник ОчередьЗаданийОбластейДанных. -Процедура ПеренестиЗаданияВОчередиВоВспомогательныеДанные() Экспорт - - Если Не РаботаВМоделиСервиса.РазделениеВключено() Тогда - Возврат; - КонецЕсли; - - НачатьТранзакцию(); - - Попытка - - Блокировка = Новый БлокировкаДанных(); - Блокировка.Добавить("Справочник.ОчередьЗаданийОбластейДанных"); - Блокировка.Заблокировать(); - - ТекстЗапроса = - "ВЫБРАТЬ - | УдалитьОчередьЗаданий.ОбластьДанных, - | УдалитьОчередьЗаданий.Использование, - | УдалитьОчередьЗаданий.ЗапланированныйМоментЗапуска, - | УдалитьОчередьЗаданий.СостояниеЗадания, - | УдалитьОчередьЗаданий.ИсполняющееФоновоеЗадание, - | УдалитьОчередьЗаданий.ЭксклюзивноеВыполнение, - | УдалитьОчередьЗаданий.Шаблон, - | УдалитьОчередьЗаданий.НомерПопытки, - | УдалитьОчередьЗаданий.УдалитьРегламентноеЗадание, - | УдалитьОчередьЗаданий.ИмяМетода, - | УдалитьОчередьЗаданий.Параметры, - | УдалитьОчередьЗаданий.ДатаНачалаПоследнегоЗапуска, - | УдалитьОчередьЗаданий.Ключ, - | УдалитьОчередьЗаданий.ИнтервалПовтораПриАварийномЗавершении, - | УдалитьОчередьЗаданий.Расписание, - | УдалитьОчередьЗаданий.КоличествоПовторовПриАварийномЗавершении, - | УдалитьОчередьЗаданий.Идентификатор - |ИЗ - | РегистрСведений.УдалитьОчередьЗаданий КАК УдалитьОчередьЗаданий - |ГДЕ - | УдалитьОчередьЗаданий.ОбластьДанных <> -1 - | И УдалитьОчередьЗаданий.УдалитьРегламентноеЗадание = &ПустойИдентификатор"; - Запрос = Новый Запрос(ТекстЗапроса); - Запрос.УстановитьПараметр("ПустойИдентификатор", ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор()); - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - - СсылкаЗадания = Справочники.ОчередьЗаданийОбластейДанных.ПолучитьСсылку( - Новый УникальныйИдентификатор(Выборка.Идентификатор)); - - Если ОбщегоНазначения.СсылкаСуществует(СсылкаЗадания) Тогда - НовоеЗадание = СсылкаЗадания.ПолучитьОбъект(); - Иначе - НовоеЗадание = Справочники.ОчередьЗаданийОбластейДанных.СоздатьЭлемент(); - КонецЕсли; - - ЗаполнитьЗначенияСвойств(НовоеЗадание, Выборка); - НовоеЗадание.ОбластьДанныхВспомогательныеДанные = Выборка.ОбластьДанных; - НовоеЗадание.Записать(); - - КонецЦикла; - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - -// Создает в текущей области данных задания по шаблонам. -Процедура СоздатьЗаданияОчередиПоШаблонамВТекущейОбласти() Экспорт - - Если НЕ РаботаВМоделиСервиса.РазделениеВключено() Тогда - Возврат; - КонецЕсли; - - НачатьТранзакцию(); - Попытка - Блокировка = Новый БлокировкаДанных; - Блокировка.Добавить("Справочник.ОчередьЗаданийОбластейДанных"); - Блокировка.Заблокировать(); - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | Очередь.Ссылка КАК Идентификатор, - | Шаблоны.Ссылка КАК Шаблон, - | ЕСТЬNULL(Очередь.ДатаНачалаПоследнегоЗапуска, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаНачалаПоследнегоЗапуска, - | ЧасовыеПояса.Значение КАК ЧасовойПояс, - | Шаблоны.Расписание КАК Расписание, - | Шаблоны.Использование КАК Использование, - | Шаблоны.Ключ КАК Ключ - |ИЗ - | Справочник.ШаблоныЗаданийОчереди КАК Шаблоны - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ОчередьЗаданийОбластейДанных КАК Очередь - | ПО Шаблоны.Ссылка = Очередь.Шаблон - | ЛЕВОЕ СОЕДИНЕНИЕ Константа.ЧасовойПоясОбластиДанных КАК ЧасовыеПояса - | ПО (ИСТИНА)"; - Результат = Запрос.Выполнить(); - Выборка = Результат.Выбрать(); - Пока Выборка.Следующий() Цикл - - Если ЗначениеЗаполнено(Выборка.Идентификатор) Тогда - Задание = Выборка.Идентификатор.ПолучитьОбъект(); - Иначе - Задание = Справочники.ОчередьЗаданийОбластейДанных.СоздатьЭлемент(); - Задание.Шаблон = Выборка.Шаблон; - КонецЕсли; - - Задание.Использование = Выборка.Использование; - Задание.Ключ = Выборка.Ключ; - Задание.ЗапланированныйМоментЗапуска = - ОчередьЗаданийСлужебный.ПолучитьЗапланированныйМоментЗапускаЗадания(Выборка.Расписание.Получить(), - Выборка.ЧасовойПояс, - Выборка.ДатаНачалаПоследнегоЗапуска); - - Если ЗначениеЗаполнено(Задание.ЗапланированныйМоментЗапуска) Тогда - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.Запланировано; - Иначе - Задание.СостояниеЗадания = Перечисления.СостоянияЗаданий.НеЗапланировано; - КонецЕсли; - - Задание.Записать(); - - КонецЦикла; - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. - -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - - Если Не РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - Возврат; - КонецЕсли; - - Обработчик = Обработчики.Добавить(); - Обработчик.НачальноеЗаполнение = Истина; - Обработчик.Процедура = "ОчередьЗаданийСлужебныйРазделениеДанных.СоздатьЗаданияОчередиПоШаблонамВТекущейОбласти"; - Обработчик.МонопольныйРежим = Истина; - Обработчик.ВыполнятьВГруппеОбязательных = Истина; - Обработчик.Приоритет = 98; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "*"; - Обработчик.Процедура = "ОчередьЗаданийСлужебныйРазделениеДанных.ОбновитьЗаданияОчередиПоШаблонам"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.МонопольныйРежим = Истина; - Обработчик.Приоритет = 63; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.3.9"; - Обработчик.Процедура = "ОчередьЗаданийСлужебныйРазделениеДанных.ПеренестиЗаданияВОчередиВоВспомогательныеДанные"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.МонопольныйРежим = Истина; - Обработчик.ВыполнятьВГруппеОбязательных = Истина; - Обработчик.Приоритет = 80; - -КонецПроцедуры - -// См. РаботаВМоделиСервисаПереопределяемый.ПриВключенииРазделенияПоОбластямДанных. -Процедура ПриВключенииРазделенияПоОбластямДанных() Экспорт - - ОбновитьЗаданияОчередиПоШаблонам(); - -КонецПроцедуры - -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПослеЗагрузкиДанных. -Процедура ПослеЗагрузкиДанных(Контейнер) Экспорт - - СоздатьЗаданияОчередиПоШаблонамВТекущейОбласти(); - - // Устанавливать использование регламентных заданий только после создания заданий очереди. - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда - - МодульРегламентныеЗаданияСлужебный = ОбщегоНазначения.ОбщийМодуль("РегламентныеЗаданияСлужебный"); - МодульРегламентныеЗаданияСлужебный.УстановитьИспользованиеРегламентныхЗаданийПоФункциональнымОпциям(Истина); - - КонецЕсли; - -КонецПроцедуры - -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. -Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт - - Типы.Добавить(Метаданные.Справочники.ОчередьЗаданийОбластейДанных); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Заполняет справочник ШаблоныЗаданийОчереди списком регламентных заданий, использующихся -// в качестве шаблонов для заданий очереди, а также принудительно снимает признак Использование -// для этих заданий. -// -// Возвращаемое значение: -// Структура - добавленные и удаленные в процессе обновления шаблоны, ключи: -// ДобавленныеИзмененные - ТаблицаЗначений, колонки: -// Ссылка - СправочникСсылка.ШаблоныЗаданийОчереди - ссылка шаблона. -// Идентификатор ссылки равен идентификатору регламентного задания. -// Использование - Булево - флаг использования задания. -// Расписание - РасписаниеРегламентногоЗадания - расписание задания. -// -// Удаленные - Массив значений УникальныйИдентификатор - идентификаторы -// добавленных шаблонов. -// -Функция ОбновитьШаблоныЗаданийОчереди(Параметры) - - Если НЕ РаботаВМоделиСервиса.РазделениеВключено() Тогда - Возврат Новый Структура("Добавленные, Удаленные", Новый Массив, Новый Массив); - КонецЕсли; - - Блокировка = Новый БлокировкаДанных; - Блокировка.Добавить("Справочник.ШаблоныЗаданийОчереди"); - - НачатьТранзакцию(); - Попытка - Блокировка.Заблокировать(); - - ТаблицаШаблонов = Новый ТаблицаЗначений; - ТаблицаШаблонов.Колонки.Добавить("Ссылка", Новый ОписаниеТипов("СправочникСсылка.ШаблоныЗаданийОчереди")); - ТаблицаШаблонов.Колонки.Добавить("Использование", Новый ОписаниеТипов("Булево")); - ТаблицаШаблонов.Колонки.Добавить("ИмяМетода", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(255, ДопустимаяДлина.Переменная))); - ТаблицаШаблонов.Колонки.Добавить("Ключ", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(128, ДопустимаяДлина.Переменная))); - ТаблицаШаблонов.Колонки.Добавить("КоличествоПовторовПриАварийномЗавершении", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 0))); - ТаблицаШаблонов.Колонки.Добавить("ИнтервалПовтораПриАварийномЗавершении", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 0))); - ТаблицаШаблонов.Колонки.Добавить("Расписание", Новый ОписаниеТипов("РасписаниеРегламентногоЗадания")); - ТаблицаШаблонов.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150, ДопустимаяДлина.Переменная))); - ТаблицаШаблонов.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(255, ДопустимаяДлина.Переменная))); - - ИменаШаблонов = ОчередьЗаданий.ШаблоныЗаданийОчереди(); - - Задания = РегламентныеЗадания.ПолучитьРегламентныеЗадания(); - Для Каждого Задание Из Задания Цикл - Если ИменаШаблонов.Найти(Задание.Метаданные.Имя) <> Неопределено Тогда - НоваяСтрока = ТаблицаШаблонов.Добавить(); - НоваяСтрока.Ссылка = Справочники.ШаблоныЗаданийОчереди.ПолучитьСсылку(Задание.УникальныйИдентификатор); - НоваяСтрока.Использование = Задание.Метаданные.Использование; - НоваяСтрока.ИмяМетода = Задание.Метаданные.ИмяМетода; - НоваяСтрока.Ключ = Задание.Метаданные.Ключ; - НоваяСтрока.КоличествоПовторовПриАварийномЗавершении = - Задание.Метаданные.КоличествоПовторовПриАварийномЗавершении; - НоваяСтрока.ИнтервалПовтораПриАварийномЗавершении = - Задание.Метаданные.ИнтервалПовтораПриАварийномЗавершении; - НоваяСтрока.Расписание = Задание.Расписание; - НоваяСтрока.Представление = Задание.Метаданные.Представление(); - НоваяСтрока.Имя = Задание.Метаданные.Имя; - - Если НЕ Параметры.МонопольныйРежим - И Задание.Использование Тогда - - Параметры.МонопольныйРежим = Истина; - - ОтменитьТранзакцию(); - - Возврат Неопределено; - КонецЕсли; - - Задание.Использование = Ложь; - Задание.Записать(); - КонецЕсли; - КонецЦикла; - - УдаленныеШаблоны = Новый Массив; - ДобавленныеИзмененныеШаблоны = Новый ТаблицаЗначений; - ДобавленныеИзмененныеШаблоны.Колонки.Добавить("Ссылка", Новый ОписаниеТипов("СправочникСсылка.ШаблоныЗаданийОчереди")); - ДобавленныеИзмененныеШаблоны.Колонки.Добавить("Использование", Новый ОписаниеТипов("Булево")); - ДобавленныеИзмененныеШаблоны.Колонки.Добавить("Ключ", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(128, ДопустимаяДлина.Переменная))); - ДобавленныеИзмененныеШаблоны.Колонки.Добавить("Расписание", Новый ОписаниеТипов("РасписаниеРегламентногоЗадания")); - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ШаблоныЗаданийОчереди.Ссылка КАК Ссылка, - | ШаблоныЗаданийОчереди.Использование, - | ШаблоныЗаданийОчереди.Ключ, - | ШаблоныЗаданийОчереди.Расписание - |ИЗ - | Справочник.ШаблоныЗаданийОчереди КАК ШаблоныЗаданийОчереди"; - ИсходнаяТаблицаШаблонов = Запрос.Выполнить().Выгрузить(); - - // Обработка добавленных / измененных шаблонов. - Для каждого СтрокаТаблицы Из ТаблицаШаблонов Цикл - - ШаблонИзменен = Ложь; - - ИсходнаяСтрокаШаблона = ИсходнаяТаблицаШаблонов.Найти(СтрокаТаблицы.Ссылка, "Ссылка"); - Если ИсходнаяСтрокаШаблона = Неопределено - ИЛИ СтрокаТаблицы.Использование <> ИсходнаяСтрокаШаблона.Использование - ИЛИ СтрокаТаблицы.Ключ <> ИсходнаяСтрокаШаблона.Ключ - ИЛИ НЕ ОбщегоНазначенияКлиентСервер.РасписанияОдинаковые(СтрокаТаблицы.Расписание, - ИсходнаяСтрокаШаблона.Расписание.Получить()) Тогда - - СтрокаИзменения = ДобавленныеИзмененныеШаблоны.Добавить(); - СтрокаИзменения.Ссылка = СтрокаТаблицы.Ссылка; - СтрокаИзменения.Использование = СтрокаТаблицы.Использование; - СтрокаИзменения.Ключ = СтрокаТаблицы.Ключ; - СтрокаИзменения.Расписание = СтрокаТаблицы.Расписание; - - ШаблонИзменен = Истина; - - КонецЕсли; - - Если ИсходнаяСтрокаШаблона = Неопределено Тогда - Шаблон = Справочники.ШаблоныЗаданийОчереди.СоздатьЭлемент(); - Шаблон.УстановитьСсылкуНового(СтрокаТаблицы.Ссылка); - Иначе - Шаблон = СтрокаТаблицы.Ссылка.ПолучитьОбъект(); - ИсходнаяТаблицаШаблонов.Удалить(ИсходнаяСтрокаШаблона); - КонецЕсли; - - Если ШаблонИзменен - ИЛИ Шаблон.Наименование <> СтрокаТаблицы.Представление - ИЛИ Шаблон.ИмяМетода <> СтрокаТаблицы.ИмяМетода - ИЛИ Шаблон.КоличествоПовторовПриАварийномЗавершении <> СтрокаТаблицы.КоличествоПовторовПриАварийномЗавершении - ИЛИ Шаблон.ИнтервалПовтораПриАварийномЗавершении <> СтрокаТаблицы.ИнтервалПовтораПриАварийномЗавершении - ИЛИ Шаблон.Имя <> СтрокаТаблицы.Имя Тогда - - Если НЕ Параметры.МонопольныйРежим Тогда - Параметры.МонопольныйРежим = Истина; - ОтменитьТранзакцию(); - Возврат Неопределено; - КонецЕсли; - - Шаблон.Наименование = СтрокаТаблицы.Представление; - Шаблон.Использование = СтрокаТаблицы.Использование; - Шаблон.ИмяМетода = СтрокаТаблицы.ИмяМетода; - Шаблон.Ключ = СтрокаТаблицы.Ключ; - Шаблон.КоличествоПовторовПриАварийномЗавершении = СтрокаТаблицы.КоличествоПовторовПриАварийномЗавершении; - Шаблон.ИнтервалПовтораПриАварийномЗавершении = СтрокаТаблицы.ИнтервалПовтораПриАварийномЗавершении; - Шаблон.Расписание = Новый ХранилищеЗначения(СтрокаТаблицы.Расписание); - Шаблон.Имя = СтрокаТаблицы.Имя; - Шаблон.Записать(); - КонецЕсли; - - КонецЦикла; - - // Обработка удаленных шаблонов. - Для каждого ИсходнаяСтрокаШаблона Из ИсходнаяТаблицаШаблонов Цикл - Если НЕ Параметры.МонопольныйРежим Тогда - Параметры.МонопольныйРежим = Истина; - ОтменитьТранзакцию(); - Возврат Неопределено; - КонецЕсли; - - Шаблон = ИсходнаяСтрокаШаблона.Ссылка.ПолучитьОбъект(); - Шаблон.ОбменДанными.Загрузка = Истина; - Шаблон.Удалить(); - - УдаленныеШаблоны.Добавить(ИсходнаяСтрокаШаблона.Ссылка); - КонецЦикла; - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - - Возврат Новый Структура("ДобавленныеИзмененные, Удаленные", ДобавленныеИзмененныеШаблоны, УдаленныеШаблоны); - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/ОчередьЗаданийСлужебныйРазделениеДанных/ОчередьЗаданийСлужебныйРазделениеДанных.mdo b/SSL/src/CommonModules/ОчередьЗаданийСлужебныйРазделениеДанных/ОчередьЗаданийСлужебныйРазделениеДанных.mdo deleted file mode 100644 index 8206da8da..000000000 --- a/SSL/src/CommonModules/ОчередьЗаданийСлужебныйРазделениеДанных/ОчередьЗаданийСлужебныйРазделениеДанных.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - ОчередьЗаданийСлужебныйРазделениеДанных - - ru - Очередь заданий служебный разделение данных - - true - true - true - diff --git a/SSL/src/CommonModules/ПодключаемыеКоманды/Module.bsl b/SSL/src/CommonModules/ПодключаемыеКоманды/Module.bsl index 284092f65..cff5d00ab 100644 --- a/SSL/src/CommonModules/ПодключаемыеКоманды/Module.bsl +++ b/SSL/src/CommonModules/ПодключаемыеКоманды/Module.bsl @@ -11,7 +11,7 @@ // Выводит подключенные команды в форме. // // Параметры: -// Форма - УправляемаяФорма - форма, в которой необходимо разместить команды. +// Форма - ФормаКлиентскогоПриложения - форма, в которой необходимо разместить команды. // ПараметрыРазмещения - Структура - параметры размещения команд. // Используется, когда в форме несколько списков // (в этом случае размещается несколько вызовов этой процедуры с указанием 2го параметра), @@ -118,7 +118,7 @@ // Обработчик команды формы, требующей контекстного вызова сервера. // // Параметры: -// Форма - УправляемаяФорма - форма, из которой выполняется команда. +// Форма - ФормаКлиентскогоПриложения - форма, из которой выполняется команда. // ПараметрыВызова - Структура - параметры вызова. // Источник - ТаблицаФормы, ДанныеФормыСтруктура - объект или список формы с полем "Ссылка". // Результат - Структура - результат выполнения команды. @@ -130,7 +130,7 @@ Если ТипЗнч(ПараметрыВызова) <> Тип("Структура") Или ПараметрыВызова.Количество() <> 2 - Или ТипЗнч(Форма) <> Тип("УправляемаяФорма") Тогда + Или ТипЗнч(Форма) <> Тип("ФормаКлиентскогоПриложения") Тогда Возврат; КонецЕсли; @@ -668,7 +668,7 @@ // Размещает подключенные команды в форме. // // Параметры: -// Форма - УправляемаяФорма - форма, в которой необходимо разместить команды. +// Форма - ФормаКлиентскогоПриложения - форма, в которой необходимо разместить команды. // Процедура ВывестиКоманды(Форма, Команды, ПараметрыРазмещения) Элементы = Форма.Элементы; diff --git a/SSL/src/CommonModules/ПодключаемыеКомандыКлиент/Module.bsl b/SSL/src/CommonModules/ПодключаемыеКомандыКлиент/Module.bsl index 5525f7868..0734a62d1 100644 --- a/SSL/src/CommonModules/ПодключаемыеКомандыКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПодключаемыеКомандыКлиент/Module.bsl @@ -11,7 +11,7 @@ // Обработчик команды формы. // // Параметры: -// Форма - УправляемаяФорма - Форма, из которой выполняется команда. +// Форма - ФормаКлиентскогоПриложения - Форма, из которой выполняется команда. // Команда - КомандаФормы - Выполняемая команда. // Источник - ТаблицаФормы, ДанныеФормыСтруктура - Объект или список формы с полем "Ссылка". // @@ -36,7 +36,7 @@ // Запускает отложенный процесс обновления команд печати на форме. // // Параметры: -// Форма - УправляемаяФорма - форма, на которой необходимо обновить команды печати. +// Форма - ФормаКлиентскогоПриложения - форма, на которой необходимо обновить команды печати. // Процедура НачатьОбновлениеКоманд(Форма) Экспорт Форма.ОтключитьОбработчикОжидания("Подключаемый_ОбновитьКоманды"); @@ -211,7 +211,7 @@ КонецЦикла; // Если команда была вызвана из формы, то зачитываем в форму актуальную (проведенную) копию из базы. - Если ТипЗнч(Контекст.Форма) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(Контекст.Форма) = Тип("ФормаКлиентскогоПриложения") Тогда Если Контекст.ЭтоФормаОбъекта Тогда Контекст.Форма.Прочитать(); КонецЕсли; diff --git a/SSL/src/CommonModules/ПодключаемыеКомандыКлиентСервер/Module.bsl b/SSL/src/CommonModules/ПодключаемыеКомандыКлиентСервер/Module.bsl index dcd100b08..864010273 100644 --- a/SSL/src/CommonModules/ПодключаемыеКомандыКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ПодключаемыеКомандыКлиентСервер/Module.bsl @@ -11,7 +11,7 @@ // Обновляет список команд в зависимости от текущего контекста. // // Параметры: -// Форма - УправляемаяФорма - форма, для которой требуется обновление команд. +// Форма - ФормаКлиентскогоПриложения - форма, для которой требуется обновление команд. // Источник - ДанныеФормыСтруктура, ТаблицаФормы - контекст для проверки условий (Форма.Объект или Форма.Элементы.Список). // Процедура ОбновитьКоманды(Форма, Источник) Экспорт @@ -116,7 +116,7 @@ // ** Идентификатор - Строка - Идентификатор команды. // ** Представление - Строка - Представление команды в форме. // ** ДополнительныеПараметры - Структура - Дополнительные параметры команды. -// * Форма - УправляемаяФорма - Форма, из которой вызвана команда. +// * Форма - ФормаКлиентскогоПриложения - Форма, из которой вызвана команда. // * ЭтоФормаОбъекта - Булево - Истина, если команда вызвана из формы объекта. // * Источник - ТаблицаФормы, ДанныеФормыСтруктура - Объект или список формы с полем "Ссылка". // diff --git a/SSL/src/CommonModules/ПодсистемыКонфигурацииПереопределяемый/Module.bsl b/SSL/src/CommonModules/ПодсистемыКонфигурацииПереопределяемый/Module.bsl index d8a1c3220..afaa21080 100644 --- a/SSL/src/CommonModules/ПодсистемыКонфигурацииПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ПодсистемыКонфигурацииПереопределяемый/Module.bsl @@ -26,10 +26,6 @@ - - - - КонецПроцедуры #КонецОбласти diff --git a/SSL/src/CommonModules/ПоискИУдалениеДублей/Module.bsl b/SSL/src/CommonModules/ПоискИУдалениеДублей/Module.bsl index 0f99ad859..0b6c18def 100644 --- a/SSL/src/CommonModules/ПоискИУдалениеДублей/Module.bsl +++ b/SSL/src/CommonModules/ПоискИУдалениеДублей/Module.bsl @@ -11,13 +11,13 @@ // Поиск дублей для указанного значения. // // Параметры: -// ОбластьПоиска - Строка - Имя таблицы данных (полное имя метаданных) области поиска. -// Например "Справочник.Номенклатура". Поддерживается поиск в справочниках, +// ОбластьПоиска - Строка - имя таблицы данных (полное имя метаданных) области поиска. +// Например, "Справочник.Номенклатура". Поддерживается поиск в справочниках, // планах видов характеристик, видах расчетов, планах счетов. // // ЭталонныйОбъект - Произвольный - объект с данными элемента, для которого производится поиск дублей. // -// ДополнительныеПараметры - Произвольный - Параметр для передачи в обработчики событий менеджера. +// ДополнительныеПараметры - Произвольный - параметр для передачи в обработчики событий менеджера. // // Возвращаемое значение: // ТаблицаЗначений - содержит строки с описаниями дублей. diff --git a/SSL/src/CommonModules/ПоискИУдалениеДублейКлиент/Module.bsl b/SSL/src/CommonModules/ПоискИУдалениеДублейКлиент/Module.bsl index 2d4239a3d..795111156 100644 --- a/SSL/src/CommonModules/ПоискИУдалениеДублейКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПоискИУдалениеДублейКлиент/Module.bsl @@ -41,9 +41,9 @@ // В отчет не включаются вспомогательные данные, такие как наборы записей с ведущим измерением и т.п. // // Параметры: -// Элементы - ТаблицаФормы, ДанныеФормыКоллекция, Массив, СписокЗначений - Список элементов для анализа. +// Элементы - ТаблицаФормы, ДанныеФормыКоллекция, Массив, СписокЗначений - список элементов для анализа. // Также можно передать произвольную коллекцию элементов с реквизитом "Ссылка". -// ПараметрыОткрытия - Структура - Необязательный. Параметры открытия формы. Состоит из необязательных полей. +// ПараметрыОткрытия - Структура - необязательный. Параметры открытия формы. Состоит из необязательных полей. // Владелец, Уникальность, Окно, НавигационнаяСсылка, ОписаниеОповещенияОЗакрытии, РежимОткрытияОкна, // соответствующих параметрам функции ОткрытьФорму. // diff --git a/SSL/src/CommonModules/ПолнотекстовыйПоискКлиент/Module.bsl b/SSL/src/CommonModules/ПолнотекстовыйПоискКлиент/Module.bsl index 8d8900cc3..e1f2d9f91 100644 --- a/SSL/src/CommonModules/ПолнотекстовыйПоискКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПолнотекстовыйПоискКлиент/Module.bsl @@ -12,7 +12,7 @@ // // Параметры: // ИмяСобытия - Строка - имя события, которое было получено обработчиком события на форме. -// ИспользоватьПолнотекстовыйПоиск - Число - Реквизит, в которое будет помещено значение. +// ИспользоватьПолнотекстовыйПоиск - Число - реквизит, в который будет помещено значение. // // Пример: // Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПолнотекстовыйПоиск") Тогда @@ -57,7 +57,7 @@ КонецПроцедуры -// Открывает форму управления полнотекстовым поиском и извлечения текстов. +// Открывает форму управления полнотекстовым поиском и извлечением текстов. // Не забудьте команду, выполняющую вызов процедуры, // установить зависимой от функциональной опции ИспользоватьПолнотекстовыйПоиск. // diff --git a/SSL/src/CommonModules/ПолнотекстовыйПоискСервер/Module.bsl b/SSL/src/CommonModules/ПолнотекстовыйПоискСервер/Module.bsl index 3b77ce753..b04170465 100644 --- a/SSL/src/CommonModules/ПолнотекстовыйПоискСервер/Module.bsl +++ b/SSL/src/CommonModules/ПолнотекстовыйПоискСервер/Module.bsl @@ -38,7 +38,7 @@ // Состояние флажка для формы настроек полнотекстового поиска. // // Возвращаемое значение: -// Число - 0 - не включен, 1 - включен - 2 ошибка настройки, рассинхронизация настроек. +// Число - 0 - не включен, 1 - включен, - 2 ошибка настройки, рассинхронизация настроек. // // Пример: // Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолнотекстовыйПоиск") Тогда diff --git a/SSL/src/CommonModules/ПолнотекстовыйПоискСерверПереопределяемый/Module.bsl b/SSL/src/CommonModules/ПолнотекстовыйПоискСерверПереопределяемый/Module.bsl index ceaf32a28..3a470791a 100644 --- a/SSL/src/CommonModules/ПолнотекстовыйПоискСерверПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ПолнотекстовыйПоискСерверПереопределяемый/Module.bsl @@ -8,17 +8,17 @@ #Область ПрограммныйИнтерфейс -// Позволяет внести изменения в дерево с разделами полнотекстового поиска, отображаемого при выборе области поиска. +// Позволяет внести изменения в дерево с разделами полнотекстового поиска, отображаемое при выборе области поиска. // По умолчанию дерево разделов формируется на основании состава подсистем конфигурации. // Структура дерева описана в форме Обработка.ПолнотекстовыйПоискВДанных.Форма.ВыборОбластиПоиска. -// Все колонки, неуказанные в параметрах, будут автоматически рассчитаны. +// Все колонки, не указанные в параметрах, будут автоматически рассчитаны. // При необходимости построить дерево разделов самостоятельно требуется сохранить состав колонок. // // Параметры: // РазделыПоиска - ДеревоЗначений - области поиска. Содержит колонки: -// ** Раздел - Строка - Представление раздела: подсистемы или объекта метаданных. -// ** Картинка - Картинка - Картинка раздела, рекомендуется только для корневых разделов. -// ** ОбъектМД - СправочникСсылка.ИдентификаторыОбъектовМетаданных - Задается только для объектов метаданных, +// ** Раздел - Строка - представление раздела: подсистемы или объекта метаданных. +// ** Картинка - Картинка - картинка раздела, рекомендуется только для корневых разделов. +// ** ОбъектМД - СправочникСсылка.ИдентификаторыОбъектовМетаданных - задается только для объектов метаданных, // для разделов остается пустым. // Пример: // diff --git a/SSL/src/CommonModules/ПолучениеФайловИзИнтернета/Module.bsl b/SSL/src/CommonModules/ПолучениеФайловИзИнтернета/Module.bsl index 02ee0c8fb..09278e206 100644 --- a/SSL/src/CommonModules/ПолучениеФайловИзИнтернета/Module.bsl +++ b/SSL/src/CommonModules/ПолучениеФайловИзИнтернета/Module.bsl @@ -35,20 +35,20 @@ КонецФункции // Получает файл из Интернета по протоколу http(s), либо ftp и сохраняет его во временное хранилище. -// Примечание: После получения файла временное хранилище необходимо самостоятельно очистить +// Примечание: после получения файла временное хранилище необходимо самостоятельно очистить // при помощи метода УдалитьИзВременногоХранилища. Если этого не сделать, то файл будет находиться // в памяти сервера до конца сеанса. // // Параметры: // URL - Строка - url файла в формате [Протокол://]<Сервер>/<Путь к файлу на сервере>. // ПараметрыПолучения - Структура - см. ПолучениеФайловИзИнтернетаКлиентСервер.ПараметрыПолученияФайла. -// ЗаписыватьОшибку - Булево - Признак необходимости записи ошибки в журнал регистрации при получении файла. +// ЗаписыватьОшибку - Булево - признак необходимости записи ошибки в журнал регистрации при получении файла. // // Возвращаемое значение: // Структура - Структура со свойствами: // * Статус - Булево - результат получения файла. -// * Путь - Строка - адрес временного хранилища с двоичными данными файла, -// ключ используется только если статус Истина. +// * Путь - Строка - адрес временного хранилища с двоичными данными файла, +// ключ используется, только если статус Истина. // * СообщениеОбОшибке - Строка - сообщение об ошибке, если статус Ложь. // * Заголовки - Соответствие - см. в синтакс-помощнике описание параметра Заголовки объекта HTTPОтвет. // * КодСостояния - Число - Добавляется при возникновении ошибки. @@ -64,7 +64,7 @@ КонецФункции -// Возвращает настройку прокси сервера для доступа в Интернет со стороны +// Возвращает настройку прокси-сервера для доступа в Интернет со стороны // клиента для текущего пользователя. // // Возвращаемое значение: @@ -115,7 +115,7 @@ КонецФункции -// Возвращает параметры настройки прокси-сервера на стороне сервера 1С:Предприятие. +// Возвращает параметры настройки прокси-сервера на стороне сервера 1С:Предприятия. // // Возвращаемое значение: // Соответствие - свойства: @@ -149,7 +149,7 @@ // либо идентификатор протокола (http, ftp, ...). // // Возвращаемое значение: -// ИнтернетПрокси - Описывает параметры прокси-серверов для различных протоколов. +// ИнтернетПрокси - описывает параметры прокси-серверов для различных протоколов. // Если не удалось распознать схему сетевой протокол, // то будет создать прокси на основании протокола HTTP. // @@ -185,7 +185,7 @@ // URL - Строка - адрес URL ресурса, диагностику которого надо выполнить. // // Возвращаемое значение: -// Структура - Результат диагностики: +// Структура - результат диагностики: // * ОписаниеОшибки - Строка - краткое описание ошибки. // * ЖурналДиагностики - Строка - подробный журнал диагностики с техническими подробностями. // diff --git a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиент/Module.bsl b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиент/Module.bsl index 013af0bac..ac6f866d6 100644 --- a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиент/Module.bsl +++ b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиент/Module.bsl @@ -15,7 +15,7 @@ // Параметры: // URL - Строка - url файла в формате [Протокол://]<Сервер>/<Путь к файлу на сервере>. // ПараметрыПолучения - Структура - см. ПолучениеФайловИзИнтернетаКлиентСервер.ПараметрыПолученияФайла. -// ЗаписыватьОшибку - Булево - Признак необходимости записи ошибки в журнал регистрации при получении файла. +// ЗаписыватьОшибку - Булево - признак необходимости записи ошибки в журнал регистрации при получении файла. // // Возвращаемое значение: // Структура - Структура со свойствами: @@ -23,7 +23,7 @@ // * Путь - Строка - путь к файлу на клиенте, ключ используется только если статус Истина. // * СообщениеОбОшибке - Строка - сообщение об ошибке, если статус Ложь. // * Заголовки - Соответствие - см. в синтакс-помощнике описание параметра Заголовки объекта HTTPОтвет. -// * КодСостояния - Число - Добавляется при возникновении ошибки. +// * КодСостояния - Число - добавляется при возникновении ошибки. // См. в синтакс-помощнике описание параметра КодСостояния объекта HTTPОтвет. // Функция СкачатьФайлНаКлиенте(Знач URL, Знач ПараметрыПолучения = Неопределено, Знач ЗаписыватьОшибку = Истина) Экспорт @@ -56,7 +56,7 @@ // Открывает форму для ввода параметров прокси сервера. // // Параметры: -// ПараметрыФормы - Структура - Параметры открываемой формы. +// ПараметрыФормы - Структура - параметры открываемой формы. // Процедура ОткрытьФормуПараметровПроксиСервера(ПараметрыФормы = Неопределено) Экспорт diff --git a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиентСервер/Module.bsl b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиентСервер/Module.bsl index 2507810f9..0798b0a2f 100644 --- a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаКлиентСервер/Module.bsl @@ -12,12 +12,12 @@ // // Возвращаемое значение: // Структура - со свойствами: -// * ПутьДляСохранения - Строка - путь на сервере (включая имя файла), для сохранения скачанного файла. +// * ПутьДляСохранения - Строка - путь на сервере (включая имя файла) для сохранения скачанного файла. // Не заполняется при сохранении файла во временное хранилище. -// * Пользователь - Строка - пользователь от имени которого установлено соединение. -// * Пароль - Строка - пароль пользователя от которого установлено соединение. -// * Порт - Число - порт сервера с которым установлено соединение. -// * Таймаут - Число - таймаут на получение файла, в секундах. +// * Пользователь - Строка - пользователь, от имени которого установлено соединение. +// * Пароль - Строка - пароль, пользователя от которого установлено соединение. +// * Порт - Число - порт сервера, с которым установлено соединение. +// * Таймаут - Число - таймаут на получение файла в секундах. // * ЗащищенноеСоединение - Булево - признак использования защищенного соединения ftps или https. // - ЗащищенноеСоединение - см. в синтакс-помощнике описание свойства ЗащищенноеСоединение // объектов FTPСоединение и HTTPСоединение. diff --git a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаСлужебный/Module.bsl b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаСлужебный/Module.bsl index 5be9ae4bf..9ec065cf2 100644 --- a/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ПолучениеФайловИзИнтернетаСлужебный/Module.bsl @@ -11,15 +11,6 @@ //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.2.1.4"; - Обработчик.Процедура = "ПолучениеФайловИзИнтернетаСлужебный.ОбновитьХранимыеНастройкиПрокси"; - -КонецПроцедуры - // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиента. Процедура ПриДобавленииПараметровРаботыКлиента(Параметры) Экспорт @@ -60,63 +51,6 @@ #КонецОбласти -#Область ОбновлениеИнформационнойБазы - -// Инициализирует новые настройки прокси-сервера "ИспользоватьПрокси" -// и "ИспользоватьСистемныеНастройки". -// -Процедура ОбновитьХранимыеНастройкиПрокси() Экспорт - - МассивПользователейИБ = ПользователиИнформационнойБазы.ПолучитьПользователей(); - - Для Каждого ПользовательИБ Из МассивПользователейИБ Цикл - - НастройкаПроксиСервера = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( - "НастройкаПроксиСервера", "", , , ПользовательИБ.Имя); - - Если ТипЗнч(НастройкаПроксиСервера) = Тип("Соответствие") Тогда - - СохранитьНастройкиПользователя = Ложь; - Если НастройкаПроксиСервера.Получить("ИспользоватьПрокси") = Неопределено Тогда - НастройкаПроксиСервера.Вставить("ИспользоватьПрокси", Ложь); - СохранитьНастройкиПользователя = Истина; - КонецЕсли; - Если НастройкаПроксиСервера.Получить("ИспользоватьСистемныеНастройки") = Неопределено Тогда - НастройкаПроксиСервера.Вставить("ИспользоватьСистемныеНастройки", Ложь); - СохранитьНастройкиПользователя = Истина; - КонецЕсли; - Если СохранитьНастройкиПользователя Тогда - ОбщегоНазначения.ХранилищеОбщихНастроекСохранить( - "НастройкаПроксиСервера", "", НастройкаПроксиСервера, , ПользовательИБ.Имя); - КонецЕсли; - - КонецЕсли; - - КонецЦикла; - - НастройкаПроксиСервера = ПолучениеФайловИзИнтернета.НастройкиПроксиНаСервере(); - - Если ТипЗнч(НастройкаПроксиСервера) = Тип("Соответствие") Тогда - - СохранитьНастройкиСервера = Ложь; - Если НастройкаПроксиСервера.Получить("ИспользоватьПрокси") = Неопределено Тогда - НастройкаПроксиСервера.Вставить("ИспользоватьПрокси", Ложь); - СохранитьНастройкиСервера = Истина; - КонецЕсли; - Если НастройкаПроксиСервера.Получить("ИспользоватьСистемныеНастройки") = Неопределено Тогда - НастройкаПроксиСервера.Вставить("ИспользоватьСистемныеНастройки", Ложь); - СохранитьНастройкиСервера = Истина; - КонецЕсли; - Если СохранитьНастройкиСервера Тогда - СохранитьНастройкиПроксиНаСервере1СПредприятие(НастройкаПроксиСервера); - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - #Область СкачатьФайл #Если Не ВебКлиент Тогда diff --git a/SSL/src/CommonModules/Пользователи/Module.bsl b/SSL/src/CommonModules/Пользователи/Module.bsl index 242f46182..201cae8a5 100644 --- a/SSL/src/CommonModules/Пользователи/Module.bsl +++ b/SSL/src/CommonModules/Пользователи/Module.bsl @@ -859,7 +859,7 @@ Если ТипЗнч(ИмяИлиИдентификатор) = Тип("УникальныйИдентификатор") Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей(); Иначе @@ -1064,7 +1064,7 @@ Попытка - ИнтеграцияСТехнологиейСервиса.ПередУдалениемПользователяИБ(ПользовательИБ); + ИнтеграцияПодсистемБСП.ПередУдалениемПользователяИБ(ПользовательИБ); ПользовательИБ.Удалить(); Исключение @@ -1099,10 +1099,10 @@ // ПользовательИнформационнойБазы. // // Параметры: -// Приемник - Структура, ПользовательИнформационнойБазы, УправляемаяФорма - подмножество +// Приемник - Структура, ПользовательИнформационнойБазы, ФормаКлиентскогоПриложения - подмножество // свойств из НовоеОписаниеПользователяИБ(). // -// Источник - Структура, ПользовательИнформационнойБазы, УправляемаяФорма - как и приемник, +// Источник - Структура, ПользовательИнформационнойБазы, ФормаКлиентскогоПриложения - как и приемник, // но типы обратные, т.е. когда Приемник типа ПользовательИнформационнойБазы, // тогда в Источник не типа ПользовательИнформационнойБазы. // @@ -1121,11 +1121,11 @@ Или ТипЗнч(Приемник) = Тип("ПользовательИнформационнойБазы") И ТипЗнч(Источник) <> Тип("Структура") - И ТипЗнч(Источник) <> Тип("УправляемаяФорма") + И ТипЗнч(Источник) <> Тип("ФормаКлиентскогоПриложения") Или ТипЗнч(Источник) = Тип("ПользовательИнформационнойБазы") И ТипЗнч(Приемник) <> Тип("Структура") - И ТипЗнч(Приемник) <> Тип("УправляемаяФорма") Тогда + И ТипЗнч(Приемник) <> Тип("ФормаКлиентскогоПриложения") Тогда ВызватьИсключение НСтр("ru = 'Недопустимое значение параметра Приемник или Источник @@ -1164,7 +1164,7 @@ Если ТипЗнч(Источник) = Тип("ПользовательИнформационнойБазы") И ( ТипЗнч(Приемник) = Тип("Структура") - Или ТипЗнч(Приемник) = Тип("УправляемаяФорма") ) Тогда + Или ТипЗнч(Приемник) = Тип("ФормаКлиентскогоПриложения") ) Тогда Если Свойство = "Пароль" ИЛИ Свойство = "СтарыйПароль" Тогда @@ -1760,227 +1760,6 @@ КонецПроцедуры -#Область УстаревшиеПроцедурыИФункции - -// Устарела. По стандарту 488 "Стандартные роли" роль ПолныеПрава более не может -// содержать права администрирования системы (в том числе для базовых версий). -// Теперь роль администрирования системы - это всегда роль АдминистраторСистемы. -// -// Параметры: -// ДляПроверки - Булево - более не имеет значения. -// -// Возвращаемое значение: -// ОбъектМетаданных - Роль. -// -Функция РольАдминистратораСистемы(ДляПроверки = Ложь) Экспорт - - Возврат Метаданные.Роли.АдминистраторСистемы; - -КонецФункции - -// Устарела. Следует использовать Пользователи.СвойстваПользователяИБ. -// -// Считывает свойства пользователя информационной базы. -// Если пользователь с указанным идентификатором или именем не существует, -// в параметр ОписаниеОшибки будет записано сообщение. -// -// Параметры: -// Идентификатор - Строка, УникальныйИдентификатор - идентификатор или имя пользователя ИБ. -// Свойства - Структура - зачитанные свойства пользователя. См. Пользователи.НовоеОписаниеПользователяИБ. -// ОписаниеОшибки - Строка - описание ошибки, если пользователь не существует. -// ПользовательИБ - ПользовательИнформационнойБазы - служебный параметр. -// -// Возвращаемое значение: -// Булево - Истина, если свойства пользователя успешно прочитаны, иначе см. параметр ОписаниеОшибки. -// -Функция ПрочитатьПользователяИБ(Знач Идентификатор, Свойства = Неопределено, - ОписаниеОшибки = "", ПользовательИБ = Неопределено) Экспорт - - Свойства = СвойстваПользователяИБ(Идентификатор); - Результат = Свойства <> Неопределено; - Если Результат Тогда - ПользовательИБ = Свойства.ПользовательИБ; - Иначе - Свойства = НовоеОписаниеПользователяИБ(); - Свойства.Роли = Новый Массив; - ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Пользователь информационной базы ""%1"" не существует.'"), - Идентификатор); - КонецЕсли; - Возврат Результат; - -КонецФункции - -// Устарела. Следует использовать Пользователи.УстановитьСвойстваПользователяИБ. -// Перезаписывает свойства пользователя ИБ, найденного по строковому или -// уникальному идентификатору, либо создает нового пользователя ИБ -// (при попытке создания существующего пользователя будет ошибка). -// -// Параметры: -// Идентификатор - Строка, УникальныйИдентификатор - идентификатор пользователя. -// -// ОбновляемыеСвойства - Структура - см. Пользователи.НовоеОписаниеПользователяИБ. -// Если свойство в структуре не задано, то используется прочитанное или начальное значение. -// Следующие свойства структуры имеют особенности: -// * УникальныйИдентификатор - УникальныйИдентификатор - в него устанавливается уникальный идентификатор -// пользователя ИБ после его записи. -// * СтарыйПароль - Неопределено, Строка - если заданный пароль -// не совпадет с существующим, то возникнет ошибка (см. параметр ОписаниеОшибки). -// -// СоздатьНового - Ложь - никаких дополнительных действий. -// - Неопределено, Истина - создается новый пользователь ИБ, -// когда ПользовательИБ не найден по указанному идентификатору. -// При значении Истина, если Пользователь ИБ найден -// по указанному идентификатору - будет ошибка. -// -// ОписаниеОшибки - Строка - содержит описание ошибки, если чтение не удалось. -// -// Пользователь - СправочникСсылка.Пользователи, СправочникОбъект.Пользователи, -// СправочникСсылка.ВнешниеПользователи, СправочникОбъект.ВнешниеПользователи - это -// пользователь с которым сопоставлен ПользовательИБ. -// - Неопределено - ссылка или объект пользователя в справочнике, если существует. -// - ПользовательИнформационнойБазы - (Возвращаемое значение), если запись удалась. -// -// Возвращаемое значение: -// Булево - если Истина, тогда пользователь записан, иначе см. ОписаниеОшибки. -// -Функция ЗаписатьПользователяИБ(Знач Идентификатор, - Знач ОбновляемыеСвойства, - Знач СоздатьНового = Ложь, - ОписаниеОшибки = "", - Пользователь = Неопределено) Экспорт - - СтарыеСвойства = СвойстваПользователяИБ(Идентификатор); - ПредварительноеЧтение = СтарыеСвойства <> Неопределено; - Если СтарыеСвойства <> Неопределено Тогда - ПользовательИБ = СтарыеСвойства.ПользовательИБ; - Иначе - ПользовательИБ = Неопределено; - СтарыеСвойства = НовоеОписаниеПользователяИБ(); - СтарыеСвойства.Роли = Новый Массив; - КонецЕсли; - - Если НЕ ПредварительноеЧтение Тогда - - Если СоздатьНового = Неопределено ИЛИ СоздатьНового = Истина Тогда - ПользовательИБ = ПользователиИнформационнойБазы.СоздатьПользователя(); - Иначе - Возврат Ложь; - КонецЕсли; - ИначеЕсли СоздатьНового = Истина Тогда - ОписаниеОшибки = ОписаниеОшибкиПриЗаписиПользователяИБ( - НСтр("ru = 'Невозможно создать пользователя информационной базы - |%1, - |так как он уже существует.'"), - СтарыеСвойства.Имя, - СтарыеСвойства.УникальныйИдентификатор); - Возврат Ложь; - Иначе - Если ОбновляемыеСвойства.Свойство("СтарыйПароль") - И ТипЗнч(ОбновляемыеСвойства.СтарыйПароль) = Тип("Строка") Тогда - - СтарыйПарольСовпадает = ПользователиСлужебный.СтарыйПарольСовпадаетССохраненным( - ОбновляемыеСвойства.СтарыйПароль, СтарыеСвойства.УникальныйИдентификатор); - - Если НЕ СтарыйПарольСовпадает Тогда - ОписаниеОшибки = ОписаниеОшибкиПриЗаписиПользователяИБ( - НСтр("ru = 'При записи пользователя информационной базы - |%1, - |старый пароль указан не верно.'"), - СтарыеСвойства.Имя, - СтарыеСвойства.УникальныйИдентификатор); - Возврат Ложь; - КонецЕсли; - КонецЕсли; - КонецЕсли; - - ЭтоВнешнийПользователь = ТипЗнч(Пользователь) = Тип("СправочникСсылка.ВнешниеПользователи") - Или ТипЗнч(Пользователь) = Тип("СправочникОбъект.ВнешниеПользователи"); - - // Подготовка новых значений свойств. - НовыеСвойства = ОбщегоНазначения.СкопироватьРекурсивно(СтарыеСвойства); - Для Каждого КлючИЗначение Из НовыеСвойства Цикл - Если Не ОбновляемыеСвойства.Свойство(КлючИЗначение.Ключ) - Или ОбновляемыеСвойства[КлючИЗначение.Ключ] = Неопределено Тогда - Продолжить; - КонецЕсли; - Если КлючИЗначение.Ключ <> "Пароль" Тогда - НовыеСвойства[КлючИЗначение.Ключ] = ОбновляемыеСвойства[КлючИЗначение.Ключ]; - Продолжить; - КонецЕсли; - Если ОбновляемыеСвойства.Свойство("СохраняемоеЗначениеПароля") - И ОбновляемыеСвойства.СохраняемоеЗначениеПароля <> Неопределено Тогда - Продолжить; - КонецЕсли; - Настройки = ПользователиСлужебныйПовтИсп.Настройки(); - Если Настройки.ОбщиеНастройкиВхода Тогда - НастройкиВхода = ?(ЭтоВнешнийПользователь, Настройки.ВнешниеПользователи, Настройки.Пользователи); - ТекстОшибкиПароля = ПользователиСлужебный.ОшибкаДлиныИлиСложностиПароля( - ОбновляемыеСвойства.Пароль, - НастройкиВхода.МинимальнаяДлинаПароля, - НастройкиВхода.ПарольДолженОтвечатьТребованиямСложности); - Иначе - ТекстОшибкиПароля = ПользователиСлужебный.ОшибкаДлиныИлиСложностиПароля( - ОбновляемыеСвойства.Пароль, - ПолучитьМинимальнуюДлинуПаролейПользователей(), - ПолучитьПроверкуСложностиПаролейПользователей()); - КонецЕсли; - НовыеСвойства.СохраняемоеЗначениеПароля = - ПользователиСлужебный.СохраняемоеЗначениеСтрокиПароля(ОбновляемыеСвойства.Пароль, Истина); - КонецЦикла; - - СкопироватьСвойстваПользователяИБ(ПользовательИБ, НовыеСвойства); - - Если ЗначениеЗаполнено(ТекстОшибкиПароля) Тогда - ВызватьИсключение ОписаниеОшибкиПриЗаписиПользователяИБ( - НСтр("ru = 'Не удалось записать свойства пользователя информационной базы %1 по причине: - |%2.'"), - ПользовательИБ.Имя, - ?(ПредварительноеЧтение, СтарыеСвойства.УникальныйИдентификатор, Неопределено), - ТекстОшибкиПароля); - КонецЕсли; - - Если ОбщегоНазначения.РазделениеВключено() Тогда - ПользовательИБ.ПоказыватьВСпискеВыбора = Ложь; - КонецЕсли; - - // Попытка записи нового или измененного пользователяИБ. - Попытка - ПользователиСлужебный.ЗаписатьПользователяИнформационнойБазы(ПользовательИБ, ЭтоВнешнийПользователь); - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - ОписаниеОшибки = ОписаниеОшибкиПриЗаписиПользователяИБ( - НСтр("ru = 'При записи пользователя информационной базы - |%1 произошла ошибка: - | - |%2.'"), - ПользовательИБ.Имя, - ?(ПредварительноеЧтение, СтарыеСвойства.УникальныйИдентификатор, Неопределено), - ИнформацияОбОшибке); - Возврат Ложь; - КонецПопытки; - - Если ЗначениеЗаполнено(СтарыеСвойства.Имя) - И СтарыеСвойства.Имя <> НовыеСвойства.Имя Тогда - // Перемещение настроек. - ПользователиСлужебный.СкопироватьНастройкиПользователя( - СтарыеСвойства.Имя, НовыеСвойства.Имя, Истина); - КонецЕсли; - - Если СоздатьНового = Неопределено Или СоздатьНового = Истина Тогда - ПользователиСлужебный.УстановитьНачальныеНастройки(ПользовательИБ.Имя, ЭтоВнешнийПользователь); - КонецЕсли; - - ПользователиПереопределяемый.ПриЗаписиПользователяИнформационнойБазы(СтарыеСвойства, НовыеСвойства); - - ОбновляемыеСвойства.Вставить("УникальныйИдентификатор", ПользовательИБ.УникальныйИдентификатор); - Пользователь = ПользовательИБ; - Возврат Истина; - -КонецФункции - -#КонецОбласти - #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/SSL/src/CommonModules/ПользователиПереопределяемый/Module.bsl b/SSL/src/CommonModules/ПользователиПереопределяемый/Module.bsl index 3464eec26..9ac6df7e8 100644 --- a/SSL/src/CommonModules/ПользователиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ПользователиПереопределяемый/Module.bsl @@ -71,8 +71,6 @@ - - КонецПроцедуры // Переопределяет поведение формы пользователя и формы внешнего пользователя, diff --git a/SSL/src/CommonModules/ПользователиСлужебный/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебный/Module.bsl index 284293821..917c7d106 100644 --- a/SSL/src/CommonModules/ПользователиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебный/Module.bsl @@ -54,7 +54,7 @@ КонецЕсли; СтандартнаяОбработка = Истина; - ИнтеграцияСТехнологиейСервиса.ПриАвторизацииНовогоПользователяИБ(ТекущийПользовательИБ, СтандартнаяОбработка); + ИнтеграцияПодсистемБСП.ПриАвторизацииНовогоПользователяИБ(ТекущийПользовательИБ, СтандартнаяОбработка); Если Не СтандартнаяОбработка Тогда Возврат ""; @@ -246,6 +246,34 @@ КонецПроцедуры +// Создает пользователя <Не указан>. +// +// Возвращаемое значение: +// СправочникСсылка.Пользователи - ссылка на пользователя <Не указан>. +// +Функция СоздатьНеуказанногоПользователя() Экспорт + + СвойстваНеуказанногоПользователя = СвойстваНеуказанногоПользователя(); + + Если ОбщегоНазначения.СсылкаСуществует(СвойстваНеуказанногоПользователя.СтандартнаяСсылка) Тогда + + Возврат СвойстваНеуказанногоПользователя.СтандартнаяСсылка; + + Иначе + + НовыйПользователь = Справочники.Пользователи.СоздатьЭлемент(); + НовыйПользователь.Служебный = Истина; + НовыйПользователь.Наименование = СвойстваНеуказанногоПользователя.ПолноеИмя; + НовыйПользователь.УстановитьСсылкуНового(СвойстваНеуказанногоПользователя.СтандартнаяСсылка); + НовыйПользователь.ОбменДанными.Загрузка = Истина; + НовыйПользователь.Записать(); + + Возврат НовыйПользователь.Ссылка; + + КонецЕсли; + +КонецФункции + //////////////////////////////////////////////////////////////////////////////// // Для работы интерфейса ролей в управляемой форме. @@ -498,7 +526,7 @@ // Процедура ЗаписатьПользователяИнформационнойБазы(ПользовательИБ, ЭтоВнешнийПользователь = Ложь) Экспорт - ИнтеграцияСТехнологиейСервиса.ПередЗаписьюПользователяИБ(ПользовательИБ); + ИнтеграцияПодсистемБСП.ПередЗаписьюПользователяИБ(ПользовательИБ); ПроверитьПраваПользователя(ПользовательИБ, "ПередЗаписью", ЭтоВнешнийПользователь); ОбновлениеИнформационнойБазыСлужебный.УстановитьФлагОтображенияОписанийДляНовогоПользователя(ПользовательИБ.Имя); @@ -813,7 +841,7 @@ Если ПользовательИБ = Неопределено Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей(); Иначе @@ -957,54 +985,12 @@ // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.0.5.2"; - Обработчик.Процедура = "ПользователиСлужебный.ЗаполнитьИдентификаторыПользователей"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.0.5.15"; - Обработчик.Процедура = "РегистрыСведений.СоставыГруппПользователей.ОбновитьДанныеРегистра"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.0.6.5"; - Обработчик.Процедура = "РегистрыСведений.СоставыГруппПользователей.ОбновитьДанныеРегистра"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.1.1.2"; - Обработчик.Процедура = "Пользователи.ПриНаличииГруппПользователейУстановитьИспользование"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.2.8"; - Обработчик.Процедура = "ПользователиСлужебный.ПреобразоватьИменаРолейВИдентификаторы"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.2.8"; - Обработчик.Процедура = "РегистрыСведений.СоставыГруппПользователей.ОбновитьДанныеРегистра"; - Обработчик = Обработчики.Добавить(); Обработчик.Версия = "2.1.3.16"; Обработчик.НачальноеЗаполнение = Истина; Обработчик.Процедура = "ПользователиСлужебный.ОбновитьПредопределенныеВидыКонтактнойИнформацииПользователей"; Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.4.19"; - Обработчик.Процедура = "ПользователиСлужебный.ПеренестиГруппыВнешнихПользователейВКорень"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.2.3"; - Обработчик.Процедура = "ПользователиСлужебный.ЗаполнитьСвойстваАутентификацииПользователей"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.2.42"; - Обработчик.Процедура = "ПользователиСлужебный.ДобавитьПолноправнымПользователямРольАдминистраторСистемы"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.1.16"; - Обработчик.РежимВыполнения = "Оперативно"; - Обработчик.Процедура = "ПользователиСлужебный.ОчиститьРеквизитПоказыватьВСпискеВыбораУВсехПользователейИБ"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.1.37"; Обработчик.НачальноеЗаполнение = Истина; Обработчик.РежимВыполнения = "Оперативно"; Обработчик.Процедура = "ПользователиСлужебный.ЗаполнитьНазначениеГруппВнешнихПользователей"; @@ -2414,7 +2400,7 @@ КонецЕсли; ПараметрыОбработки.Вставить("Действие", ОписаниеПользователяИБ.Действие); - ИнтеграцияСТехнологиейСервиса.ПриНачалеОбработкиПользователяИБ(ПараметрыОбработки, ОписаниеПользователяИБ); + ИнтеграцияПодсистемБСП.ПриНачалеОбработкиПользователяИБ(ПараметрыОбработки, ОписаниеПользователяИБ); Если Не ПараметрыОбработки.Свойство("Действие") Тогда Возврат; @@ -2746,34 +2732,6 @@ КонецФункции -// Создает пользователя <Не указан>. -// -// Возвращаемое значение: -// СправочникСсылка.Пользователи - ссылка на пользователя <Не указан>. -// -Функция СоздатьНеуказанногоПользователя() Экспорт - - СвойстваНеуказанногоПользователя = СвойстваНеуказанногоПользователя(); - - Если ОбщегоНазначения.СсылкаСуществует(СвойстваНеуказанногоПользователя.СтандартнаяСсылка) Тогда - - Возврат СвойстваНеуказанногоПользователя.СтандартнаяСсылка; - - Иначе - - НовыйПользователь = Справочники.Пользователи.СоздатьЭлемент(); - НовыйПользователь.Служебный = Истина; - НовыйПользователь.Наименование = СвойстваНеуказанногоПользователя.ПолноеИмя; - НовыйПользователь.УстановитьСсылкуНового(СвойстваНеуказанногоПользователя.СтандартнаяСсылка); - НовыйПользователь.ОбменДанными.Загрузка = Истина; - НовыйПользователь.Записать(); - - Возврат НовыйПользователь.Ссылка; - - КонецЕсли; - -КонецФункции - // Проверяет корректность заполнения структуры описания пользователя ИБ. // В случае нахождения ошибок устанавливает параметр Отказ в Истина и // отправляет сообщения об ошибках. @@ -3335,6 +3293,7 @@ Запрос.УстановитьПараметр("СтарыеРолиВнешнихПользователей", СтарыеРолиВнешнихПользователей); Запрос.УстановитьПараметр("ИспользоватьВнешнихПользователей", ПолучитьФункциональнуюОпцию("ИспользоватьВнешнихПользователей")); + // АПК:96-выкл: допустимо, так как строки не должны повторятся и объем данных небольшой (от единиц до тысяч). Запрос.Текст = "ВЫБРАТЬ | СтарыеРолиВнешнихПользователей.ВнешнийПользователь, @@ -3415,6 +3374,7 @@ | ВсеРоли КАК ВсеРоли | ГДЕ | ВсеРоли.Имя = ВсеНовыеРолиВнешнихПользователей.Роль)"; + // АПК:96-вкл: допустимо, так как строки не должны повторятся и объем данных небольшой (от единиц до тысяч). // Регистрация ошибок имен ролей в профилях групп доступа. Выборка = Запрос.Выполнить().Выбрать(); @@ -3965,131 +3925,6 @@ //////////////////////////////////////////////////////////////////////////////// // Обновление информационной базы. -// Вызывается при обновлении конфигурации на версию 1.0.5.2. -// Выполняет попытку сопоставления / заполнения реквизита "ИдентификаторПользователяИБ" -// для каждого элемента справочника Пользователи. -// -Процедура ЗаполнитьИдентификаторыПользователей() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Пользователи.НайтиНеоднозначныхПользователейИБ(Неопределено); - - ПользователиИБ = ПользователиИнформационнойБазы.ПолучитьПользователей(); - - Запрос = Новый Запрос; - - Запрос.УстановитьПараметр("ПустойИдентификатор", - ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор()); - - Запрос.УстановитьПараметр("НеуказанныйПользователь", - СвойстваНеуказанногоПользователя().Ссылка); - - Запрос.Текст = - "ВЫБРАТЬ - | Пользователи.ИдентификаторПользователяИБ - |ИЗ - | Справочник.Пользователи КАК Пользователи - | - |ОБЪЕДИНИТЬ - | - |ВЫБРАТЬ - | ВнешниеПользователи.ИдентификаторПользователяИБ - |ИЗ - | Справочник.ВнешниеПользователи КАК ВнешниеПользователи - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | Пользователи.Ссылка КАК Ссылка, - | Пользователи.Наименование КАК Наименование - |ИЗ - | Справочник.Пользователи КАК Пользователи - |ГДЕ - | Пользователи.Ссылка <> &НеуказанныйПользователь - | И Пользователи.ИдентификаторПользователяИБ = &ПустойИдентификатор"; - - РезультатыЗапроса = Запрос.ВыполнитьПакет(); - - Если РезультатыЗапроса[1].Пустой() Тогда - Возврат; - КонецЕсли; - - ЗанятыеИдентификаторы = РезультатыЗапроса[0].Выгрузить(); - ЗанятыеИдентификаторы.Индексы.Добавить("ИдентификаторПользователяИБ"); - - ДлинаПолногоИмени = Метаданные.Справочники.Пользователи.ДлинаНаименования; - СвободныеПользователи = РезультатыЗапроса[1].Выгрузить(); - СвободныеПользователи.Индексы.Добавить("Наименование"); - - Для каждого Строка Из СвободныеПользователи Цикл - Строка.Наименование = ВРег(СокрЛП(Строка.Наименование)); - КонецЦикла; - - Для каждого ПользовательИБ Из ПользователиИБ Цикл - - Если ЗанятыеИдентификаторы.Найти( - ПользовательИБ.УникальныйИдентификатор, - "ИдентификаторПользователяИБ") <> Неопределено Тогда - - Продолжить; - КонецЕсли; - - ПолноеИмяПользователя = ВРег(СокрЛП(Лев(ПользовательИБ.ПолноеИмя, ДлинаПолногоИмени))); - - ОписаниеПользователя = СвободныеПользователи.Найти(ПолноеИмяПользователя, "Наименование"); - Если ОписаниеПользователя <> Неопределено Тогда - ОбъектПользователь = ОписаниеПользователя.Ссылка.ПолучитьОбъект(); - ОбъектПользователь.ИдентификаторПользователяИБ = ПользовательИБ.УникальныйИдентификатор; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ОбъектПользователь); - КонецЕсли; - КонецЦикла; - -КонецПроцедуры - -// Преобразует реквизит УдалитьРоль в реквизит Роль роли в табличной части Роли -// справочника Группы внешних пользователей. -// -Процедура ПреобразоватьИменаРолейВИдентификаторы() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | Роли.Ссылка КАК Ссылка - |ИЗ - | Справочник.ГруппыВнешнихПользователей.Роли КАК Роли - |ГДЕ - | НЕ(Роли.Роль <> ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) - | И Роли.УдалитьРоль = """")"; - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - Объект = Выборка.Ссылка.ПолучитьОбъект(); - Индекс = Объект.Роли.Количество()-1; - Пока Индекс >= 0 Цикл - Строка = Объект.Роли[Индекс]; - Если ЗначениеЗаполнено(Строка.Роль) Тогда - Строка.УдалитьРоль = ""; - ИначеЕсли ЗначениеЗаполнено(Строка.УдалитьРоль) Тогда - МетаданныеРоли = Метаданные.Роли.Найти(Строка.УдалитьРоль); - Если МетаданныеРоли <> Неопределено Тогда - Строка.УдалитьРоль = ""; - Строка.Роль = ОбщегоНазначения.ИдентификаторОбъектаМетаданных( - МетаданныеРоли); - Иначе - Объект.Роли.Удалить(Индекс); - КонецЕсли; - Иначе - Объект.Роли.Удалить(Индекс); - КонецЕсли; - Индекс = Индекс-1; - КонецЦикла; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); - КонецЦикла; - -КонецПроцедуры - // Вызывается при переходе на версию конфигурации 2.1.3.16. Процедура ОбновитьПредопределенныеВидыКонтактнойИнформацииПользователей() Экспорт @@ -4115,129 +3950,7 @@ КонецПроцедуры -// Вызывается при переходе на версию конфигурации 2.1.4.19. -Процедура ПеренестиГруппыВнешнихПользователейВКорень() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ГруппыВнешнихПользователей.Ссылка - |ИЗ - | Справочник.ГруппыВнешнихПользователей КАК ГруппыВнешнихПользователей - |ГДЕ - | ГруппыВнешнихПользователей.Родитель.ВсеОбъектыАвторизации = ИСТИНА"; - - Результат = Запрос.Выполнить().Выгрузить(); - - Для Каждого СтрокаГруппаПользователей Из Результат Цикл - ГруппаПользователей = СтрокаГруппаПользователей.Ссылка.ПолучитьОбъект(); - ГруппаПользователей.Родитель = Справочники.ГруппыВнешнихПользователей.ПустаяСсылка(); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ГруппаПользователей); - КонецЦикла; - -КонецПроцедуры - -// Вызывается при переходе на новую версию конфигурации 2.2.2.3. -Процедура ЗаполнитьСвойстваАутентификацииПользователей() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Запрос = Новый Запрос; - Запрос.УстановитьПараметр("ПустойИдентификаторПользователяИБ", - ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор()); - Запрос.Текст = - "ВЫБРАТЬ - | Пользователи.Ссылка КАК Ссылка, - | Пользователи.ИдентификаторПользователяИБ, - | Пользователи.СвойстваПользователяИБ - |ИЗ - | Справочник.Пользователи КАК Пользователи - |ГДЕ - | Пользователи.ИдентификаторПользователяИБ <> &ПустойИдентификаторПользователяИБ - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ВнешниеПользователи.Ссылка, - | ВнешниеПользователи.ИдентификаторПользователяИБ, - | ВнешниеПользователи.СвойстваПользователяИБ - |ИЗ - | Справочник.ВнешниеПользователи КАК ВнешниеПользователи - |ГДЕ - | ВнешниеПользователи.ИдентификаторПользователяИБ <> &ПустойИдентификаторПользователяИБ"; - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - - ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору( - Выборка.ИдентификаторПользователяИБ); - - Если ПользовательИБ = Неопределено - Или Не Пользователи.ВходВПрограммуРазрешен(ПользовательИБ) Тогда - - Продолжить; - КонецЕсли; - - ПользовательОбъект = Выборка.Ссылка.ПолучитьОбъект(); - ХранимыеСвойства = ХранимыеСвойстваПользователяИБ(ПользовательОбъект); - ХранимыеСвойства.ВходВПрограммуРазрешен = Истина; - ХранимыеСвойства.АутентификацияСтандартная = ПользовательИБ.АутентификацияСтандартная; - ХранимыеСвойства.АутентификацияOpenID = ПользовательИБ.АутентификацияOpenID; - ХранимыеСвойства.АутентификацияОС = ПользовательИБ.АутентификацияОС; - - Новые = Новый ХранилищеЗначения(ХранимыеСвойства); - Если Не ОбщегоНазначения.ДанныеСовпадают(ПользовательОбъект.СвойстваПользователяИБ, Новые) Тогда - ПользовательОбъект.СвойстваПользователяИБ = Новые; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ПользовательОбъект); - КонецЕсли; - КонецЦикла; - -КонецПроцедуры - -// Вызывается при переходе на новую версию конфигурации 2.2.2.42. -Процедура ДобавитьПолноправнымПользователямРольАдминистраторСистемы() Экспорт - - Если Не ПравоДоступа("Администрирование", Метаданные, Метаданные.Роли.ПолныеПрава) Тогда - Возврат; - КонецЕсли; - - Если Не СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации() Тогда - Возврат; - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - ВсеПользователиИБ = ПользователиИнформационнойБазы.ПолучитьПользователей(); - - Для каждого ПользовательИБ Из ВсеПользователиИБ Цикл - Если Не ПользовательИБ.Роли.Содержит(Метаданные.Роли.ПолныеПрава) Тогда - Продолжить; - КонецЕсли; - Если ПользовательИБ.Роли.Содержит(Метаданные.Роли.АдминистраторСистемы) Тогда - Продолжить; - КонецЕсли; - - ПользовательИБ.Роли.Добавить(Метаданные.Роли.АдминистраторСистемы); - ПользовательИБ.Записать(); - КонецЦикла; - -КонецПроцедуры - -// Вызывается при переходе на новую версию конфигурации 2.3.1.16. -Процедура ОчиститьРеквизитПоказыватьВСпискеВыбораУВсехПользователейИБ() Экспорт - - МенеджерЗначения = Константы.ИспользоватьВнешнихПользователей.СоздатьМенеджерЗначения(); - МенеджерЗначения.Прочитать(); - - Если МенеджерЗначения.Значение = Ложь Тогда - Возврат; - КонецЕсли; - - МенеджерЗначения.ОчиститьРеквизитПоказыватьВСпискеВыбораУВсехПользователейИБ(); - -КонецПроцедуры - -// Вызывается при переходе на новую версию конфигурации 2.3.1.37. +// Вызывается при начальном заполнении. Процедура ЗаполнитьНазначениеГруппВнешнихПользователей() Экспорт Запрос = Новый Запрос; @@ -4261,19 +3974,12 @@ ГруппаОбъект = Выборка.Ссылка.ПолучитьОбъект(); - Если ГруппаОбъект.Предопределенный Или ГруппаОбъект.УдалитьТипОбъектовАвторизации = Неопределено Тогда // любые пользователи - + Если ГруппаОбъект.Предопределенный Тогда ПустыеСсылки = ПользователиСлужебныйПовтИсп.ПустыеСсылкиТиповОбъектовАвторизации(); Для Каждого ПустаяСсылка Из ПустыеСсылки Цикл НоваяСтрока = ГруппаОбъект.Назначение.Добавить(); НоваяСтрока.ТипПользователей = ПустаяСсылка; КонецЦикла; - - Иначе - - НоваяСтрока = ГруппаОбъект.Назначение.Добавить(); - НоваяСтрока.ТипПользователей = ГруппаОбъект.УдалитьТипОбъектовАвторизации; - КонецЕсли; ОбновлениеИнформационнойБазы.ЗаписатьДанные(ГруппаОбъект); @@ -4683,7 +4389,7 @@ Возврат Результат; КонецЕсли; - ИнтеграцияСТехнологиейСервиса.ПриОтсутствииТекущегоПользователяВСправочнике( + ИнтеграцияПодсистемБСП.ПриОтсутствииТекущегоПользователяВСправочнике( Результат.СоздатьПользователя); Если Не Результат.СоздатьПользователя @@ -4743,7 +4449,7 @@ "ОписаниеПользователяИБ", ОписаниеПользователяИБ); КонецЕсли; - ИнтеграцияСТехнологиейСервиса.ПриАвтоматическомСозданииТекущегоПользователяВСправочнике( + ИнтеграцияПодсистемБСП.ПриАвтоматическомСозданииТекущегоПользователяВСправочнике( НовыйПользователь); НовыйПользователь.Записать(); @@ -5706,7 +5412,7 @@ Функция НеразделенныеДанные() - Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда Возврат Неопределено; КонецЕсли; @@ -5730,8 +5436,8 @@ УстановитьПривилегированныйРежим(Истина); - МодульРаботаВМоделиСервисаПовтИсп = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервисаПовтИсп"); - МодельДанных = МодульРаботаВМоделиСервисаПовтИсп.ПолучитьМодельДанныхОбласти(); + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодельДанных = МодульРаботаВМоделиСервиса.ПолучитьМодельДанныхОбласти(); РазделенныеОбъектыМетаданных = Новый Соответствие; Для Каждого ЭлементМоделиДанных Из МодельДанных Цикл diff --git a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервиса/Module.bsl index 3ee719075..fb4ce2e95 100644 --- a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервиса/Module.bsl @@ -15,8 +15,11 @@ // Функция ДоступноИзменениеПользователей() Экспорт - Возврат Константы.РежимИспользованияИнформационнойБазы.Получить() - <> Перечисления.РежимыИспользованияИнформационнойБазы.Демонстрационный; + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + Возврат МодульРаботаВМоделиСервиса.ДоступноИзменениеПользователей(); + КонецЕсли; + Возврат Ложь; КонецФункции @@ -36,38 +39,25 @@ Пользователь = Пользователи.ТекущийПользователь(); КонецЕсли; - Если ДоступноИзменениеПользователей() Тогда + Если Не ДоступноИзменениеПользователей() Тогда + Возврат ДействияСПользователемСервисаПриНедоступностиНастройкиПользователей(); + КонецЕсли; - Если ПользователиИнформационнойБазы.ТекущийПользователь().РазделениеДанных.Количество() = 0 Тогда - - Если Пользователи.ЭтоПолноправныйПользователь(, Истина) Тогда - - Возврат ДействияСНовымПользователемСервиса(); - - Иначе - - Возврат ДействияСПользователемСервисаПриНедоступностиНастройкиПользователей(); - - КонецЕсли; - - ИначеЕсли ЭтоСуществующийПользовательТекущейОбластиДанных(Пользователь) Тогда - - Возврат ДействияССуществующимПользователемСервиса(Пользователь); - + Если ПользователиИнформационнойБазы.ТекущийПользователь().РазделениеДанных.Количество() = 0 Тогда + Если Пользователи.ЭтоПолноправныйПользователь(, Истина) Тогда + Возврат ДействияСНовымПользователемСервиса(); Иначе - - Если ЕстьПравоДобавленияПользователей() Тогда - Возврат ДействияСНовымПользователемСервиса(); - Иначе - ВызватьИсключение НСтр("ru = 'Недостаточно прав доступа для добавления новых пользователей'"); - КонецЕсли; - + Возврат ДействияСПользователемСервисаПриНедоступностиНастройкиПользователей(); КонецЕсли; + ИначеЕсли ЭтоСуществующийПользовательТекущейОбластиДанных(Пользователь) Тогда + Возврат ДействияССуществующимПользователемСервиса(Пользователь); Иначе - - Возврат ДействияСПользователемСервисаПриНедоступностиНастройкиПользователей(); - + Если ЕстьПравоДобавленияПользователей() Тогда + Возврат ДействияСНовымПользователемСервиса(); + Иначе + ВызватьИсключение НСтр("ru = 'Недостаточно прав доступа для добавления новых пользователей'"); + КонецЕсли; КонецЕсли; КонецФункции @@ -84,8 +74,14 @@ // Процедура СоздатьЗапросНаСменуПочты(Знач НоваяПочта, Знач Пользователь, Знач ПарольПользователяСервиса) Экспорт + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + УстановитьПривилегированныйРежим(Истина); - Прокси = РаботаВМоделиСервиса.ПолучитьПроксиМенеджераСервиса(ПарольПользователяСервиса); + Прокси = МодульРаботаВМоделиСервиса.ПолучитьПроксиМенеджераСервиса(ПарольПользователяСервиса); УстановитьПривилегированныйРежим(Ложь); ИнформацияОбОшибке = Неопределено; @@ -93,7 +89,7 @@ ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Пользователь, "ИдентификаторПользователяСервиса"), НоваяПочта, ИнформацияОбОшибке); - ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "RequestEmailChange"); // Имя операции не локализуется. + ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "RequestEmailChange"); КонецПроцедуры @@ -108,14 +104,20 @@ // Процедура ЗаписатьПользователяСервиса(Знач Пользователь, Знач СоздатьПользователяСервиса, Знач ПарольПользователяСервиса) Экспорт + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + Возврат; + КонецЕсли; + Если ТипЗнч(Пользователь) = Тип("СправочникСсылка.Пользователи") Тогда ПользовательОбъект = Пользователь.ПолучитьОбъект(); Иначе ПользовательОбъект = Пользователь; КонецЕсли; + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + УстановитьПривилегированныйРежим(Истина); - Прокси = РаботаВМоделиСервиса.ПолучитьПроксиМенеджераСервиса(ПарольПользователяСервиса); + Прокси = МодульРаботаВМоделиСервиса.ПолучитьПроксиМенеджераСервиса(ПарольПользователяСервиса); УстановитьПривилегированныйРежим(Ложь); Если ЗначениеЗаполнено(ПользовательОбъект.ИдентификаторПользователяИБ) Тогда @@ -127,7 +129,7 @@ ПользовательСервиса = Прокси.ФабрикаXDTO.Создать( Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/SaaS/ApplicationUsers", "User")); - ПользовательСервиса.Zone = РаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ПользовательСервиса.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); ПользовательСервиса.UserServiceID = ПользовательОбъект.ИдентификаторПользователяСервиса; ПользовательСервиса.FullName = ПользовательОбъект.Наименование; ПользовательСервиса.Name = ПользовательИБ.Имя; @@ -141,8 +143,9 @@ ТипЗаписьКИ = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/SaaS/ApplicationUsers", "ContactsItem"); + СоответствиеВидовКИ = МодульРаботаВМоделиСервиса.СоответствиеВидовКИПользователяXDTO(); Для каждого СтрокаКИ Из ПользовательОбъект.КонтактнаяИнформация Цикл - ВидКИXDTO = РаботаВМоделиСервисаПовтИсп.СоответствиеВидовКИПользователяXDTO().Получить(СтрокаКИ.Вид); + ВидКИXDTO = СоответствиеВидовКИ.Получить(СтрокаКИ.Вид); Если ВидКИXDTO = Неопределено Тогда Продолжить; КонецЕсли; @@ -160,23 +163,216 @@ ИнформацияОбОшибке = Неопределено; Если СоздатьПользователяСервиса Тогда Прокси.CreateUser(ПользовательСервиса, ИнформацияОбОшибке); - ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "CreateUser"); // Имя операции не локализуется. + ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "CreateUser"); Иначе Прокси.UpdateUser(ПользовательСервиса, ИнформацияОбОшибке); - ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "UpdateUser"); // Имя операции не локализуется. + ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "UpdateUser"); КонецЕсли; КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. +#Область РаботаСНеразделеннымиПользователямиИнформационнойБазы + +// Вызывается при установке параметров сеанса. +// +// Параметры: +// ИменаПараметровСеанса - Массив, Неопределено. +// +Процедура ПриУстановкеПараметровСеанса(ИменаПараметровСеанса) Экспорт + + Если ИменаПараметровСеанса = Неопределено Тогда + Если ЭтоНеразделенныйПользовательИБ() Тогда + ЗарегистрироватьНеразделенногоПользователяВРегистре(); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +// Проверяет содержится ли пользователь ИБ с заданным идентификатором +// в списке неразделенных пользователей. +// +// Параметры: +// ИдентификаторПользователяИБ - УникальныйИдентификатор - идентификатор +// пользователя ИБ принадлежность которого к неразделенным пользователям +// требуется проверить. +// +Функция ПользовательЗарегистрированКакНеразделенный(Знач ИдентификаторПользователяИБ) Экспорт + + Если НЕ ЗначениеЗаполнено(ИдентификаторПользователяИБ) Тогда + Возврат Ложь; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | ИДНеразделенныхПользователей.ИдентификаторПользователяИБ + |ИЗ + | РегистрСведений.НеразделенныеПользователи КАК ИДНеразделенныхПользователей + |ГДЕ + | ИДНеразделенныхПользователей.ИдентификаторПользователяИБ = &ИдентификаторПользователяИБ"; + Запрос.УстановитьПараметр("ИдентификаторПользователяИБ", ИдентификаторПользователяИБ); + + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.НеразделенныеПользователи"); + ЭлементБлокировки.УстановитьЗначение("ИдентификаторПользователяИБ", ИдентификаторПользователяИБ); + ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый; + + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + Результат = Запрос.Выполнить(); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + + Возврат НЕ Результат.Пустой(); + +КонецФункции + +#КонецОбласти + +#Область ОбработчикиСобытийПодсистемКонфигурации + +// Вызывается, если не удалось найти пользователя в справочнике, который +// соответствует текущему пользователю ИБ. При этом можно включить автоматическое +// создание элемента справочника Пользователи для текущего пользователя. +// +// Параметры: +// СоздатьПользователя - Булево - (возвращаемое значение) - если указать Истина, +// то автоматически будет создан пользователь в справочнике. +// Переопределить свойства создаваемого пользователя можно перед его записью +// в процедуре ПриАвтоматическомСозданииТекущегоПользователяВСправочнике. +// +Процедура ПриОтсутствииТекущегоПользователяВСправочнике(СоздатьПользователя) Экспорт + + Если ЭтоНеразделенныйПользовательИБ() Тогда + // Для всех неразделенных пользователей требуется автоматически + // создавать пользователя в справочнике Пользователи текущей области данных. + СоздатьПользователя = Истина; + КонецЕсли; + +КонецПроцедуры + +// Вызывается при автоматическом создании элемента справочника Пользователи в момент +// интерактивного входа пользователя или при первом обращении из кода. +// +// Параметры: +// НовыйПользователь - СправочникОбъект.Пользователи - новый пользователь перед записью. +// +Процедура ПриАвтоматическомСозданииТекущегоПользователяВСправочнике(НовыйПользователь) Экспорт + + Если ЭтоНеразделенныйПользовательИБ() Тогда + НовыйПользователь.Служебный = Истина; + НовыйПользователь.Наименование = ПолноеИмяСлужебногоПользователя( + ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор); + КонецЕсли; + +КонецПроцедуры + +// Вызывается при авторизации нового пользователя информационной базы. +// +// Параметры: +// ПользовательИБ - ПользовательИнформационнойБазы, текущий пользователь информационной базы, +// СтандартнаяОбработка - Булево, значение может быть установлено внутри обработчика, в этом случае +// стандартная обработка авторизации нового пользователя ИБ выполняться не будет. +// +Процедура ПриАвторизацииНовогоПользователяИБ(Знач ТекущийПользовательИБ, СтандартнаяОбработка) Экспорт + + Если Не ОбщегоНазначения.РазделениеВключено() + Или Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + Возврат; + КонецЕсли; + + Если Не ЭтоНеразделенныйПользовательИБ() Тогда + Возврат; + КонецЕсли; + + СтандартнаяОбработка = Ложь; + + НачатьТранзакцию(); + Попытка + + Блокировка = Новый БлокировкаДанных(); + БлокировкаСправочника = Блокировка.Добавить("Справочник.Пользователи"); + Блокировка.Заблокировать(); + + Если Не ПользователиСлужебный.ПользовательПоИдентификаторуСуществует(ТекущийПользовательИБ.УникальныйИдентификатор) Тогда + + // Это неразделенный пользователь, требуется создать элемент в текущей области. + ПользовательОбъект = Справочники.Пользователи.СоздатьЭлемент(); + ПользовательОбъект.Наименование = ПолноеИмяСлужебногоПользователя(ТекущийПользовательИБ.УникальныйИдентификатор); + ПользовательОбъект.Служебный = Истина; + ПользовательОбъект.Записать(); + + ПользовательОбъект.ИдентификаторПользователяИБ = ТекущийПользовательИБ.УникальныйИдентификатор; + ПользовательОбъект.ОбменДанными.Загрузка = Истина; + ПользовательОбъект.Записать(); + + КонецЕсли; + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +// Вызывается при начале обработки пользователя информационной базы. +// +// Параметры: +// ПараметрыОбработки - Структура, см. комментарий к процедуре НачатьОбработкуПользователяИБ() +// ОписаниеПользователяИБ - Структура, см. комментарий к процедуре НачатьОбработкуПользователяИБ(). +// +Процедура ПриНачалеОбработкиПользователяИБ(ПараметрыОбработки, ОписаниеПользователяИБ) Экспорт + + Если ЗначениеЗаполнено(ПараметрыОбработки.СтарыйПользователь.ИдентификаторПользователяИБ) + И ОбщегоНазначения.РазделениеВключено() + И ПользовательЗарегистрированКакНеразделенный( + ПараметрыОбработки.СтарыйПользователь.ИдентификаторПользователяИБ) Тогда + + ВызватьИсключение ТекстИсключенияЗаписьНеразделенныхПользователейЗапрещена(); + + ИначеЕсли ОписаниеПользователяИБ.Свойство("УникальныйИдентификатор") + И ЗначениеЗаполнено(ОписаниеПользователяИБ.УникальныйИдентификатор) + И ОбщегоНазначения.РазделениеВключено() + И ПользовательЗарегистрированКакНеразделенный( + ОписаниеПользователяИБ.УникальныйИдентификатор) Тогда + + // Исключаем перезапись пользователя информационной базы при записи элементов + // справочника "Пользователя", соответствующих неразделенным пользователям. + ПараметрыОбработки.Удалить("Действие"); + + Если ОписаниеПользователяИБ.Количество() > 2 + ИЛИ ОписаниеПользователяИБ.Действие = "Удалить" Тогда + + ВызватьИсключение ТекстИсключенияЗаписьНеразделенныхПользователейЗапрещена(); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +// См. ИнтеграцияПодсистемБСП.ПередЗаписьюПользователяИБ. +Процедура ПередЗаписьюПользователяИБ(ПользовательИБ) Экспорт + + Если ОбщегоНазначения.РазделениеВключено() Тогда + Если ПользовательЗарегистрированКакНеразделенный(ПользовательИБ.УникальныйИдентификатор) Тогда + ВызватьИсключение ТекстИсключенияЗаписьНеразделенныхПользователейЗапрещена(); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры // Обработка пользователя ИБ в ходе записи элемента справочника Пользователи и ВнешниеПользователи. // Вызывается из процедуры НачатьОбработкуПользователяИБ для поддержки модели сервиса. Процедура ПередНачаломОбработкиПользователяИБ(ПользовательОбъект, ПараметрыОбработки) Экспорт - Если Не РаботаВМоделиСервиса.РазделениеВключено() Тогда + Если Не ОбщегоНазначения.РазделениеВключено() Тогда Возврат; КонецЕсли; @@ -185,8 +381,7 @@ АвтоРеквизиты = ПараметрыОбработки.АвтоРеквизиты; Если ТипЗнч(ПользовательОбъект) = Тип("СправочникОбъект.ВнешниеПользователи") - И РаботаВМоделиСервиса.РазделениеВключено() Тогда - + И ОбщегоНазначения.РазделениеВключено() Тогда ВызватьИсключение НСтр("ru = 'Внешние пользователи не поддерживаются в модели сервиса.'"); КонецЕсли; @@ -194,10 +389,10 @@ Если ДополнительныеСвойства.Свойство("ОбработкаСообщенияКаналаУдаленногоАдминистрирования") Тогда - Если НЕ РаботаВМоделиСервиса.СеансЗапущенБезРазделителей() Тогда + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + Если НЕ МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей() Тогда ВызватьИсключение - НСтр("ru = 'Обновление пользователя по сообщению - |канала удаленного администрирования + НСтр("ru = 'Изменение сведений о пользователях через удаленное администрирование |доступно только неразделенным пользователям.'"); КонецЕсли; @@ -212,13 +407,10 @@ И АвтоРеквизиты.ИдентификаторПользователяСервиса <> СтарыйПользователь.ИдентификаторПользователяСервиса Тогда Если ЗначениеЗаполнено(СтарыйПользователь.ИдентификаторПользователяСервиса) Тогда - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Ошибка при записи пользователя ""%1"". - |Нельзя изменять уже установленный идентификатор - |пользователя сервиса в элементе справочника.'"), + |Запрещено изменять уже установленный идентификатор пользователя сервиса в элементе справочника.'"), ПользовательОбъект.Наименование); - КонецЕсли; НайденныйПользователь = Неопределено; @@ -231,10 +423,8 @@ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Ошибка при записи пользователя ""%1"". - |Нельзя устанавливать идентификатор - |пользователя сервиса ""%2"" - |в этот элемент справочника, т.к. он - |уже используется в элементе ""%3"".'"), + |Запрещено устанавливать идентификатор пользователя сервиса ""%2"" + |в этот элемент справочника, т.к. он уже используется в другом элементе ""%3"".'"), ПользовательОбъект.Наименование, АвтоРеквизиты.ИдентификаторПользователяСервиса, НайденныйПользователь); @@ -246,7 +436,7 @@ // Вызывается из процедуры НачатьОбработкуПользователяИБ для поддержки модели сервиса. Процедура ПослеНачалаОбработкиПользователяИБ(ПользовательОбъект, ПараметрыОбработки) Экспорт - Если Не РаботаВМоделиСервиса.РазделениеВключено() Тогда + Если Не ОбщегоНазначения.РазделениеВключено() Тогда Возврат; КонецЕсли; @@ -255,7 +445,7 @@ ПараметрыОбработки.Вставить("СоздатьПользователяСервиса", Ложь); Если ПараметрыОбработки.НовыйПользовательИБСуществует - И РаботаВМоделиСервиса.РазделениеВключено() Тогда + И ОбщегоНазначения.РазделениеВключено() Тогда Если НЕ ЗначениеЗаполнено(АвтоРеквизиты.ИдентификаторПользователяСервиса) Тогда @@ -272,7 +462,7 @@ // Вызывается из процедуры ЗавершитьОбработкуПользователяИБ для поддержки модели сервиса. Процедура ПередЗавершениемОбработкиПользователяИБ(ПользовательОбъект, ПараметрыОбработки) Экспорт - Если Не РаботаВМоделиСервиса.РазделениеВключено() Тогда + Если Не ОбщегоНазначения.РазделениеВключено() Тогда Возврат; КонецЕсли; @@ -291,7 +481,7 @@ // Вызывается из процедуры ЗавершитьОбработкуПользователяИБ для поддержки модели сервиса. Процедура ПриЗавершенииОбработкиПользователяИБ(ПользовательОбъект, ПараметрыОбработки, ОбновлятьРоли) Экспорт - Если Не РаботаВМоделиСервиса.РазделениеВключено() Тогда + Если Не ОбщегоНазначения.РазделениеВключено() Тогда Возврат; КонецЕсли; @@ -301,8 +491,7 @@ ОписаниеПользователяИБ = ПользовательОбъект.ДополнительныеСвойства.ОписаниеПользователяИБ; - Если РаботаВМоделиСервиса.РазделениеВключено() - И ТипЗнч(ПользовательОбъект) = Тип("СправочникОбъект.Пользователи") + Если ТипЗнч(ПользовательОбъект) = Тип("СправочникОбъект.Пользователи") И ОписаниеПользователяИБ.Свойство("РезультатДействия") И НЕ ПользовательОбъект.Служебный Тогда @@ -316,15 +505,372 @@ ОбновитьПользователяСервиса(ПользовательОбъект, ПараметрыОбработки.СоздатьПользователяСервиса); Если Не ПараметрыОбработки.Свойство("ОбработкаСообщенияКаналаУдаленногоАдминистрирования") - И ПараметрыОбработки.СоздатьПользователяСервиса Тогда + И ПараметрыОбработки.СоздатьПользователяСервиса Тогда + + ИнтеграцияПодсистемБСП.ПриЗавершенииОбработкиПользователяИБ(ПользовательОбъект.Ссылка); - РаботаВМоделиСервисаПереопределяемый.УстановитьПраваПоУмолчанию(ПользовательОбъект.Ссылка); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры +//////////////////////////////////////////////////////////////////////////////// +// Обработчики событий подсистемы БСП "РаботаВМоделиСервиса" + +// Вызывается при определении псевдонима пользователя для отображения в интерфейсе. +// +// Параметры: +// ИдентификаторПользователя - УникальныйИдентификатор, +// Псевдоним - Строка, псевдоним пользователя. +// +Процедура ПриОпределенииПсевдонимаПользователя(ИдентификаторПользователя, Псевдоним) Экспорт + + Если ПользовательЗарегистрированКакНеразделенный(ИдентификаторПользователя) Тогда + Псевдоним = ПолноеИмяСлужебногоПользователя(ИдентификаторПользователя); + КонецЕсли; + +КонецПроцедуры + +//////////////////////////////////////////////////////////////////////////////// +// Обработчики событий подсистемы БТС "ВыгрузкаЗагрузкаДанных" - выгрузка +// и загрузка пользователей информационной базы. + +// Заполняет массив типов, для которых при выгрузке необходимо использовать аннотацию +// ссылок в файлах выгрузки. +// +// Параметры: +// Типы - Массив(ОбъектМетаданных). +// +Процедура ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке(Типы) Экспорт + + Обработки.ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных.ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке( + Типы); + +КонецПроцедуры + +// Вызывается при регистрации произвольных обработчиков выгрузки данных. +// +// Параметры: ТаблицаОбработчиков - ТаблицаЗначений, в данной процедуре требуется +// дополнить эту таблицу значений информацией о регистрируемых произвольных +// обработчиках выгрузки данных. Колонки: +// ОбъектМетаданных - ОбъектМетаданных, при выгрузке данных которого должен +// вызываться регистрируемый обработчик, +// Обработчик - ОбщийМодуль, общий модуль, в котором реализован произвольный +// обработчик выгрузки данных. Набор экспортных процедур, которые должны +// быть реализованы в обработчике, зависит от установки значений следующих +// колонок таблицы значений, +// Версия - Строка - номер версии интерфейса обработчиков выгрузки / загрузки данных, +// поддерживаемого обработчиком, +// ПередВыгрузкойТипа - Булево, флаг необходимости вызова обработчика перед +// выгрузкой всех объектов информационной базы, относящихся к данному объекту +// метаданных. Если присвоено значение Истина - в общем модуле обработчика должна +// быть реализована экспортируемая процедура ПередВыгрузкойТипа(), +// поддерживающая следующие параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе выгрузи данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера, +// Сериализатор - Сериализатор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, +// ОбъектМетаданных - ОбъектМетаданных, после выгрузки данных которого +// был вызван обработчик. +// +Процедура ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков) Экспорт + + Обработки.ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных.ПриРегистрацииОбработчиковВыгрузкиДанных( + ТаблицаОбработчиков); + +КонецПроцедуры + +// Вызывается при регистрации произвольных обработчиков загрузки данных. +// +// Параметры: ТаблицаОбработчиков - ТаблицаЗначений, в данной процедуре требуется +// дополнить эту таблицу значений информацией о регистрируемых произвольных +// обработчиках загрузки данных. Колонки: +// ОбъектМетаданных - ОбъектМетаданных, при загрузке данных которого должен +// вызываться регистрируемый обработчик, +// Обработчик - ОбщийМодуль, общий модуль, в котором реализован произвольный +// обработчик загрузки данных. Набор экспортных процедур, которые должны +// быть реализованы в обработчике, зависит от установки значений следующих +// колонок таблицы значений, +// Версия - Строка - номер версии интерфейса обработчиков выгрузки / загрузки данных, +// поддерживаемого обработчиком, +// ПередСопоставлениемСсылок - Булево, флаг необходимости вызова обработчика перед +// сопоставлением ссылок (в исходной ИБ и в текущей), относящихся к данному объекту +// метаданных. Если присвоено значение Истина - в общем модуле обработчика должна +// быть реализована экспортируемая процедура ПередСопоставлениемСсылок(), +// поддерживающая следующие параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. +// ОбъектМетаданных - ОбъектМетаданных, перед сопоставлением ссылок которого +// был вызван обработчик, +// СтандартнаяОбработка - Булево. Если процедуре ПередСопоставлениемСсылок() +// установить значение данного параметра равным Ложь, вместо стандартного +// сопоставления ссылок (поиск объектов в текущей ИБ с теми же значениями +// естественного ключа, которые были выгружены из ИБ-источника) будет +// вызвана функция СопоставитьСсылки() общего модуля, в процедуре +// ПередСопоставлениемСсылок() которого значение параметра СтандартнаяОбработка +// было установлено равным Ложь. +// Параметры функции СопоставитьСсылки(): +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера, +// ТаблицаИсходныхСсылок - ТаблицаЗначений, содержащая информацию о ссылках, +// выгруженных из исходной ИБ. Колонки: +// ИсходнаяСсылка - ЛюбаяСсылка, ссылка объекта исходной ИБ, которую требуется +// сопоставить 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-пакеты, +// помимо изначально поставляемых в составе подсистемы ВыгрузкаЗагрузкаДанных. +// ПослеЗагрузкиТипа - Булево, флаг необходимости вызова обработчика после +// загрузки всех объектов данных, относящихся к данному объекту +// метаданных. Если присвоено значение Истина - в общем модуле обработчика должна +// быть реализована экспортируемая процедура ПослеЗагрузкиТипа(), +// поддерживающая следующие параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. +// ОбъектМетаданных - ОбъектМетаданных, после загрузки всех объектов которого +// был вызван обработчик. +// +Процедура ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков) Экспорт + + Обработки.ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных.ПриРегистрацииОбработчиковЗагрузкиДанных( + ТаблицаОбработчиков); + +КонецПроцедуры + +// Вызывается перед загрузкой пользователя информационной базы. +// +// Параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера, +// Сериализация - ОбъектXDTO {http://www.1c.ru/1cFresh/Data/Dump/1.0.2.1}InfoBaseUser, +// сериализация пользователя информационной базы, +// ПользовательИБ - ПользовательИнформационнойБазы, десериализованный из выгрузки, +// Отказ - Булево, при установке значения данного параметры внутри этой процедуры в +// значение Ложь загрузка пользователя информационной базы будет пропущена. +// +Процедура ПриЗагрузкеПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ, Отказ) Экспорт + + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + + ПользовательИБ.ПоказыватьВСпискеВыбора = Истина; + // Добавление роли АдминистраторСистемы пользователю с ролью ПолныеПрава. + Если ПользовательИБ.Роли.Содержит(Метаданные.Роли.ПолныеПрава) Тогда + ПользовательИБ.Роли.Добавить(Метаданные.Роли.АдминистраторСистемы); + КонецЕсли; + + ОбновлениеИнформационнойБазыСлужебный.УстановитьФлагОтображенияОписанийДляНовогоПользователя(ПользовательИБ.Имя); + + КонецЕсли; + +КонецПроцедуры + +// Вызывается после загрузки пользователя информационной базы. +// +// Параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера, +// Сериализация - ОбъектXDTO {http://www.1c.ru/1cFresh/Data/Dump/1.0.2.1}InfoBaseUser, +// сериализация пользователя информационной базы, +// ПользовательИБ - ПользовательИнформационнойБазы, десериализованный из выгрузки. +// +Процедура ПослеЗагрузкиПользователяИнформационнойБазы(Контейнер, Сериализация, ПользовательИБ) Экспорт + + Если НЕ Контейнер.ДополнительныеСвойства.Свойство("СоответствиеПользователей") Тогда + Контейнер.ДополнительныеСвойства.Вставить("СоответствиеПользователей", Новый Соответствие()); + КонецЕсли; + + Контейнер.ДополнительныеСвойства.СоответствиеПользователей.Вставить(Сериализация.UUID, ПользовательИБ.УникальныйИдентификатор); + +КонецПроцедуры + +// Вызывается после загрузки всех пользователей информационной базы. +// +// Параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. +// +Процедура ПослеЗагрузкиПользователейИнформационнойБазы(Контейнер) Экспорт + + Если Контейнер.ДополнительныеСвойства.Свойство("СоответствиеПользователей") Тогда + ОбновитьИдентификаторыПользователейИБ(Контейнер.ДополнительныеСвойства.СоответствиеПользователей); + Иначе + ОбновитьИдентификаторыПользователейИБ(Новый Соответствие); + КонецЕсли; + + Контейнер.ДополнительныеСвойства.Вставить("СоответствиеПользователей", Неопределено); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиПодписокНаСобытия + +Процедура ОбработкаПолученияФормыПользователя(Источник, ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) Экспорт + + Если НЕ ОбщегоНазначения.РазделениеВключено() Тогда + Возврат; + КонецЕсли; + + Если ВидФормы = "ФормаОбъекта" + И Параметры.Свойство("Ключ") И НЕ Параметры.Ключ.Пустая() Тогда + + УстановитьПривилегированныйРежим(Истина); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ ПЕРВЫЕ 1 + | 1 + |ИЗ + | РегистрСведений.НеразделенныеПользователи КАК НеразделенныеПользователи + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи + | ПО НеразделенныеПользователи.ИдентификаторПользователяИБ = Пользователи.ИдентификаторПользователяИБ + | И (Пользователи.Ссылка = &Ссылка)"; + Запрос.УстановитьПараметр("Ссылка", Параметры.Ключ); + Если НЕ Запрос.Выполнить().Пустой() Тогда + СтандартнаяОбработка = Ложь; + ВыбраннаяФорма = Метаданные.ОбщиеФормы.ИнформацияНеразделенногоПользователя; + Возврат; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -343,10 +889,15 @@ ДействияСПользователемСервиса.ИзменениеДоступа = Ложь; ДействияСПользователемСервиса.ИзменениеАдминистративногоДоступа = Ложь; - ДействияСКИ = ДействияСПользователемСервиса.КонтактнаяИнформация; - Для каждого КлючИЗначение Из РаботаВМоделиСервисаПовтИсп.СоответствиеВидовКИПользователяXDTO() Цикл - ДействияСКИ[КлючИЗначение.Ключ].Изменение = Ложь; - КонецЦикла; + ДействияСКонтактнойИнформацией = ДействияСПользователемСервиса.КонтактнаяИнформация; + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + Для каждого КлючИЗначение Из МодульРаботаВМоделиСервиса.СоответствиеВидовКИПользователяXDTO() Цикл + ДействияСКонтактнойИнформацией[КлючИЗначение.Ключ].Изменение = Ложь; + КонецЦикла; + + КонецЕсли; Возврат ДействияСПользователемСервиса; @@ -362,8 +913,14 @@ // Функция ДействияССуществующимПользователемСервиса(Знач Пользователь) + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + ВызватьИсключение НСтр("ru = 'Работа в модели сервиса не предусмотрена.'"); + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + УстановитьПривилегированныйРежим(Истина); - Прокси = РаботаВМоделиСервиса.ПолучитьПроксиМенеджераСервиса(); + Прокси = МодульРаботаВМоделиСервиса.ПолучитьПроксиМенеджераСервиса(); УстановитьПривилегированныйРежим(Ложь); ОбъектыДоступа = ПодготовитьОбъектыДоступаПользователя(Прокси.ФабрикаXDTO, Пользователь); @@ -371,7 +928,7 @@ ИнформацияОбОшибке = Неопределено; ПраваДоступаОбъектовXDTO = Прокси.GetObjectsAccessRights(ОбъектыДоступа, ИдентификаторСервисаТекущегоПользователя(), ИнформацияОбОшибке); - ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "GetObjectsAccessRights"); // Имя операции не локализуется. + ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "GetObjectsAccessRights"); Возврат ПраваДоступаОбъектовXDTOВДействияСПользователемСервиса(Прокси.ФабрикаXDTO, ПраваДоступаОбъектовXDTO); @@ -391,10 +948,15 @@ ДействияСПользователемСервиса.ИзменениеДоступа = Истина; ДействияСПользователемСервиса.ИзменениеАдминистративногоДоступа = Истина; - ДействияСКИ = ДействияСПользователемСервиса.КонтактнаяИнформация; - Для каждого КлючИЗначение Из РаботаВМоделиСервисаПовтИсп.СоответствиеВидовКИПользователяXDTO() Цикл - ДействияСКИ[КлючИЗначение.Ключ].Изменение = Истина; - КонецЦикла; + ДействияСКИ = ДействияСПользователемСервиса.КонтактнаяИнформация; + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + Для каждого КлючИЗначение Из МодульРаботаВМоделиСервиса.СоответствиеВидовКИПользователяXDTO() Цикл + ДействияСКИ[КлючИЗначение.Ключ].Изменение = Истина; + КонецЦикла; + + КонецЕсли; Возврат ДействияСПользователемСервиса; @@ -407,18 +969,24 @@ // Функция ЕстьПравоДобавленияПользователей() + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + ВызватьИсключение НСтр("ru = 'Работа в модели сервиса не предусмотрена.'"); + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + УстановитьПривилегированныйРежим(Истина); - Прокси = РаботаВМоделиСервиса.ПолучитьПроксиМенеджераСервиса(); + Прокси = МодульРаботаВМоделиСервиса.ПолучитьПроксиМенеджераСервиса(); УстановитьПривилегированныйРежим(Ложь); ОбластьДанных = Прокси.ФабрикаXDTO.Создать( Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/SaaS/ApplicationAccess", "Zone")); - ОбластьДанных.Zone = РаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОбластьДанных.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); ИнформацияОбОшибке = Неопределено; ПраваДоступаXDTO = Прокси.GetAccessRights(ОбластьДанных, ИдентификаторСервисаТекущегоПользователя(), ИнформацияОбОшибке); - ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "GetAccessRights"); // Имя операции не локализуется. + ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "GetAccessRights"); Для каждого ЭлементСпискаПрав Из ПраваДоступаXDTO.Item Цикл Если ЭлементСпискаПрав.AccessRight = "CreateUser" Тогда @@ -433,13 +1001,14 @@ // Только для внутреннего использования. Процедура ОбновитьОписаниеWebСервисаМенеджераСервиса() - Если НЕ РаботаВМоделиСервиса.РазделениеВключено() Тогда + Если НЕ ОбщегоНазначения.РазделениеВключено() Тогда Возврат; КонецЕсли; УстановитьПривилегированныйРежим(Истина); // Кэш должен быть заполнен до записи пользователя ИБ. - РаботаВМоделиСервиса.ПолучитьПроксиМенеджераСервиса(); + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульРаботаВМоделиСервиса.ПолучитьПроксиМенеджераСервиса(); УстановитьПривилегированныйРежим(Ложь); КонецПроцедуры @@ -464,24 +1033,25 @@ // Только для внутреннего использования. Функция ПолучитьПользователейСервиса(ПарольПользователяСервиса) Экспорт + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + ВызватьИсключение НСтр("ru = 'Работа в модели сервиса не предусмотрена.'"); + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + УстановитьПривилегированныйРежим(Истина); - Прокси = РаботаВМоделиСервиса.ПолучитьПроксиМенеджераСервиса(ПарольПользователяСервиса); + Прокси = МодульРаботаВМоделиСервиса.ПолучитьПроксиМенеджераСервиса(ПарольПользователяСервиса); УстановитьПривилегированныйРежим(Ложь); ИнформацияОбОшибке = Неопределено; - Попытка - - СписокПользователей = Прокси.GetUsersList(РаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), ); - + СписокПользователей = Прокси.GetUsersList(МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), ); Исключение - ПарольПользователяСервиса = Неопределено; ВызватьИсключение; - КонецПопытки; - ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "GetUsersList"); // Имя операции не локализуется. + ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "GetUsersList"); Результат = Новый ТаблицаЗначений; Результат.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("УникальныйИдентификатор")); @@ -504,38 +1074,49 @@ // Только для внутреннего использования. Процедура ПредоставитьДоступПользователюСервиса(Знач ИдентификаторПользователяСервиса, Знач ПарольПользователяСервиса) Экспорт + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + ВызватьИсключение НСтр("ru = 'Работа в модели сервиса не предусмотрена.'"); + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + УстановитьПривилегированныйРежим(Истина); - Прокси = РаботаВМоделиСервиса.ПолучитьПроксиМенеджераСервиса(ПарольПользователяСервиса); + Прокси = МодульРаботаВМоделиСервиса.ПолучитьПроксиМенеджераСервиса(ПарольПользователяСервиса); УстановитьПривилегированныйРежим(Ложь); ИнформацияОбОшибке = Неопределено; Прокси.GrantUserAccess( - РаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), + МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), ИдентификаторПользователяСервиса, ИнформацияОбОшибке); - ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "GrantUserAccess"); // Имя операции не локализуется. + ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "GrantUserAccess"); КонецПроцедуры // Для процедуры ПриЗавершенииОбработкиПользователяИБ. Процедура АннулироватьДоступПользователяСервиса(ПользовательОбъект) - Если НЕ ЗначениеЗаполнено(ПользовательОбъект.ИдентификаторПользователяСервиса) Тогда + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") + Или Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОбменСообщениями") + Или НЕ ЗначениеЗаполнено(ПользовательОбъект.ИдентификаторПользователяСервиса) Тогда Возврат; КонецЕсли; + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + НачатьТранзакцию(); Попытка ВызываемыйМодуль = ОбщегоНазначения.ОбщийМодуль("СообщенияУправленияПриложениямиИнтерфейс"); - Сообщение = СообщенияВМоделиСервиса.НовоеСообщение( + Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( ВызываемыйМодуль.СообщениеАннулироватьДоступПользователя()); - Сообщение.Body.Zone = РаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + Сообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); Сообщение.Body.UserServiceID = ПользовательОбъект.ИдентификаторПользователяСервиса; - СообщенияВМоделиСервиса.ОтправитьСообщение( + МодульСообщенияВМоделиСервиса.ОтправитьСообщение( Сообщение, - РаботаВМоделиСервиса.КонечнаяТочкаМенеджераСервиса()); + МодульРаботаВМоделиСервиса.КонечнаяТочкаМенеджераСервиса()); ЗафиксироватьТранзакцию(); Исключение @@ -557,36 +1138,19 @@ УстановитьПривилегированныйРежим(Истина); - Если ЗначениеЗаполнено(Пользователь) Тогда - - Если ЗначениеЗаполнено(Пользователь.ИдентификаторПользователяИБ) Тогда - - Если ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Пользователь.ИдентификаторПользователяИБ) <> Неопределено Тогда - - Возврат Истина; - - Иначе - - Возврат Ложь; - - КонецЕсли; - - Иначе - - Возврат Ложь; - - КонецЕсли; - - Иначе - + Если Не ЗначениеЗаполнено(Пользователь) Тогда Возврат Ложь; - КонецЕсли; + + Если Не ЗначениеЗаполнено(Пользователь.ИдентификаторПользователяИБ) Тогда + Возврат Ложь; + КонецЕсли; + + Возврат ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Пользователь.ИдентификаторПользователяИБ) <> Неопределено; КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ +#Область ВспомогательныеПроцедурыИФункции Функция ИдентификаторСервисаТекущегоПользователя() @@ -603,22 +1167,33 @@ ДействияСПользователемСервиса.Вставить("ИзменениеДоступа", Ложь); ДействияСПользователемСервиса.Вставить("ИзменениеАдминистративногоДоступа", Ложь); - ДействияСКИ = Новый Соответствие; - Для каждого КлючИЗначение Из РаботаВМоделиСервисаПовтИсп.СоответствиеВидовКИПользователяXDTO() Цикл - ДействияСКИ.Вставить(КлючИЗначение.Ключ, Новый Структура("Изменение", Ложь)); - КонецЦикла; - // Ключ - ВидКИ, Значение - Структура с правами. - ДействияСПользователемСервиса.Вставить("КонтактнаяИнформация", ДействияСКИ); + ДействияСКонтактнойИнформацией = Новый Соответствие; + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + Для каждого КлючИЗначение Из МодульРаботаВМоделиСервиса.СоответствиеВидовКИПользователяXDTO() Цикл + ДействияСКонтактнойИнформацией.Вставить(КлючИЗначение.Ключ, Новый Структура("Изменение", Ложь)); + КонецЦикла; + + КонецЕсли; + // Ключ - вид контактной информации, Значение - структура с правами. + ДействияСПользователемСервиса.Вставить("КонтактнаяИнформация", ДействияСКонтактнойИнформацией); Возврат ДействияСПользователемСервиса; КонецФункции Функция ПодготовитьОбъектыДоступаПользователя(Фабрика, Пользователь) + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + ВызватьИсключение НСтр("ru = 'Работа в модели сервиса не предусмотрена.'"); + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + ИнформацияПользователя = Фабрика.Создать( Фабрика.Тип("http://www.1c.ru/SaaS/ApplicationAccess", "User")); - ИнформацияПользователя.Zone = РаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ИнформацияПользователя.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); ИнформацияПользователя.UserServiceID = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Пользователь, "ИдентификаторПользователяСервиса"); СписокОбъектов = Фабрика.Создать( @@ -628,7 +1203,7 @@ ТипКИПользователя = Фабрика.Тип("http://www.1c.ru/SaaS/ApplicationAccess", "UserContact"); - Для каждого КлючИЗначение Из РаботаВМоделиСервисаПовтИсп.СоответствиеВидовКИПользователяXDTO() Цикл + Для каждого КлючИЗначение Из МодульРаботаВМоделиСервиса.СоответствиеВидовКИПользователяXDTO() Цикл ВидКИ = Фабрика.Создать(ТипКИПользователя); ВидКИ.UserServiceID = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Пользователь, "ИдентификаторПользователяСервиса"); ВидКИ.ContactType = КлючИЗначение.Значение; @@ -641,42 +1216,47 @@ Функция ПраваДоступаОбъектовXDTOВДействияСПользователемСервиса(Фабрика, ПраваДоступаОбъектовXDTO) + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + ВызватьИсключение НСтр("ru = 'Работа в модели сервиса не предусмотрена.'"); + КонецЕсли; + ТипИнформацияПользователя = Фабрика.Тип("http://www.1c.ru/SaaS/ApplicationAccess", "User"); - ТипКИПользователя = Фабрика.Тип("http://www.1c.ru/SaaS/ApplicationAccess", "UserContact"); + ТипКонтактнойИнформации = Фабрика.Тип("http://www.1c.ru/SaaS/ApplicationAccess", "UserContact"); ДействияСПользователемСервиса = НовыеДействияСПользователемСервиса(); - ДействияСКИ = ДействияСПользователемСервиса.КонтактнаяИнформация; + ДействияСКонтактнойИнформацией = ДействияСПользователемСервиса.КонтактнаяИнформация; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + СоответствиеПрав = МодульРаботаВМоделиСервиса.СоответствиеПравXDTOДействиямСПользователемСервиса(); + СоответствиеВидовКИ = МодульРаботаВМоделиСервиса.СоответствиеВидовКИXDTOВидамКИПользователя(); Для каждого ПраваДоступаОбъектаXDTO Из ПраваДоступаОбъектовXDTO.Item Цикл Если ПраваДоступаОбъектаXDTO.Object.Тип() = ТипИнформацияПользователя Тогда Для каждого ЭлементСпискаПрав Из ПраваДоступаОбъектаXDTO.AccessRights.Item Цикл - ДействиеСПользователем = РаботаВМоделиСервисаПовтИсп. - СоответствиеПравXDTOДействиямСПользователемСервиса().Получить(ЭлементСпискаПрав.AccessRight); + ДействиеСПользователем = СоответствиеПрав.Получить(ЭлементСпискаПрав.AccessRight); ДействияСПользователемСервиса[ДействиеСПользователем] = Истина; КонецЦикла; - ИначеЕсли ПраваДоступаОбъектаXDTO.Object.Тип() = ТипКИПользователя Тогда - ВидКИ = РаботаВМоделиСервисаПовтИсп.СоответствиеВидовКИXDTOВидамКИПользователя().Получить( - ПраваДоступаОбъектаXDTO.Object.ContactType); - Если ВидКИ = Неопределено Тогда - ШаблонСообщения = НСтр("ru = 'Получен неизвестный вид контактной информации: %1'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, ПраваДоступаОбъектаXDTO.Object.ContactType); - ВызватьИсключение(ТекстСообщения); + ИначеЕсли ПраваДоступаОбъектаXDTO.Object.Тип() = ТипКонтактнойИнформации Тогда + ВидКонтактнойИнформации = СоответствиеВидовКИ.Получить(ПраваДоступаОбъектаXDTO.Object.ContactType); + Если ВидКонтактнойИнформации = Неопределено Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неизвестный вид контактной информации: %1'"), ПраваДоступаОбъектаXDTO.Object.ContactType); КонецЕсли; - ДействияСВидомКИ = ДействияСКИ[ВидКИ]; - + ДействияСВидомКонтактнойИнформации = ДействияСКонтактнойИнформацией[ВидКонтактнойИнформации]; Для каждого ЭлементСпискаПрав Из ПраваДоступаОбъектаXDTO.AccessRights.Item Цикл Если ЭлементСпискаПрав.AccessRight = "Change" Тогда - ДействияСВидомКИ.Изменение = Истина; + ДействияСВидомКонтактнойИнформации.Изменение = Истина; КонецЕсли; КонецЦикла; Иначе - ШаблонСообщения = НСтр("ru = 'Получен неизвестный тип объектов доступа: %1'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, РаботаВМоделиСервиса.ПредставлениеТипаXDTO(ПраваДоступаОбъектаXDTO.Object.Тип())); - ВызватьИсключение(ТекстСообщения); + ТипXDTO = ПраваДоступаОбъектаXDTO.Object.Тип(); + ПредставлениеТипа = СериализаторXDTO.XMLСтрока(Новый РасширенноеИмяXML(ТипXDTO.URIПространстваИмен, ТипXDTO.Имя)); + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неизвестный тип объектов доступа: %1'"), ПредставлениеТипа); КонецЕсли; КонецЦикла; @@ -702,11 +1282,163 @@ // Процедура ОбработатьИнформациюОбОшибкеWebСервиса(Знач ИнформацияОбОшибке, Знач ИмяОперации) - РаботаВМоделиСервиса.ОбработатьИнформациюОбОшибкеWebСервиса( - ИнформацияОбОшибке, - Метаданные.Подсистемы.СтандартныеПодсистемы.Подсистемы.РаботаВМоделиСервиса.Подсистемы.ПользователиВМоделиСервиса.Имя, - "ManageApplication", // Не локализуется - ИмяОперации); + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульРаботаВМоделиСервиса.ОбработатьИнформациюОбОшибкеWebСервиса( + ИнформацияОбОшибке, + Метаданные.Подсистемы.СтандартныеПодсистемы.Подсистемы.РаботаВМоделиСервиса.Подсистемы.ПользователиВМоделиСервиса.Имя, + "ManageApplication", // Не локализуется + ИмяОперации); + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область РаботаСНеразделеннымиПользователямиИБ + +// Возвращает полное имя служебного пользователя для отображения в интерфейсах. +// +// Параметры: +// Идентификатор - уникальный идентификатор пользователя ИБ или СправочникСсылка.Пользователи. +// +// Возвращаемое значение: +// Строка +// +Функция ПолноеИмяСлужебногоПользователя(Знач Идентификатор = Неопределено) Экспорт + + Результат = НСтр("ru = '<Служебный пользователь %1>'"); + + Если ЗначениеЗаполнено(Идентификатор) Тогда + + Если ТипЗнч(Идентификатор) = Тип("СправочникСсылка.Пользователи") Тогда + Идентификатор = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Идентификатор, "ИдентификаторПользователяИБ"); + КонецЕсли; + + ПорядковыйНомер = Формат(РегистрыСведений.НеразделенныеПользователи.ПорядковыйНомерПользователяИБ(Идентификатор), "ЧДЦ=0; ЧГ=0"); + Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Результат, ПорядковыйНомер); + + КонецЕсли; + + Возврат Результат; + +КонецФункции + +// Проверяет, является ли текущий пользователь ИБ неразделенным. +// +// Возвращаемое значение: Булево. +// +Функция ЭтоНеразделенныйПользовательИБ() + + Если ПустаяСтрока(ПользователиИнформационнойБазы.ТекущийПользователь().Имя) Тогда + Возврат Ложь; + КонецЕсли; + + Если Не ОбщегоНазначения.РазделениеВключено() Тогда + Возврат Ложь; + КонецЕсли; + + Если ПользователиИнформационнойБазы.ТекущийПользователь().РазделениеДанных.Количество() > 0 Тогда + Возврат Ложь; + КонецЕсли; + + Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + ИдентификаторПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор; + Если Не ПользовательЗарегистрированКакНеразделенный(ИдентификаторПользователя) Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Пользователь с идентификатором %1 не зарегистрирован в качестве неразделенного.'"), + Строка(ИдентификаторПользователя)); + КонецЕсли; + КонецЕсли; + + Возврат Истина; + +КонецФункции + +// При работе в модели сервиса, заносит текущего пользователя в список неразделенных, +// если у него не установлено использование разделителей. +// +Процедура ЗарегистрироватьНеразделенногоПользователяВРегистре() + + ИдентификаторПользователяИБ = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор; + + МенеджерЗаписи = РегистрыСведений.НеразделенныеПользователи.СоздатьМенеджерЗаписи(); + МенеджерЗаписи.ИдентификаторПользователяИБ = ИдентификаторПользователяИБ; + МенеджерЗаписи.Прочитать(); + Если НЕ МенеджерЗаписи.Выбран() Тогда + НачатьТранзакцию(); + Попытка + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.НеразделенныеПользователи"); + Блокировка.Заблокировать(); + + МенеджерЗаписи.ИдентификаторПользователяИБ = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор; + МенеджерЗаписи.ПорядковыйНомер = РегистрыСведений.НеразделенныеПользователи.МаксимальныйПорядковыйНомер() + 1; + МенеджерЗаписи.ИмяПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().Имя; + МенеджерЗаписи.Записать(); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + ИначеЕсли МенеджерЗаписи.ИмяПользователя <> ПользователиИнформационнойБазы.ТекущийПользователь().Имя Тогда + НачатьТранзакцию(); + Попытка + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.НеразделенныеПользователи"); + ЭлементБлокировки.УстановитьЗначение("ИдентификаторПользователяИБ", ИдентификаторПользователяИБ); + Блокировка.Заблокировать(); + + МенеджерЗаписи.ИмяПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().Имя; + МенеджерЗаписи.Записать(); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + КонецЕсли; + +КонецПроцедуры + +Функция ТекстИсключенияЗаписьНеразделенныхПользователейЗапрещена() + + Возврат НСтр("ru = 'Запись неразделенных пользователей при включенном использовании разделителей запрещена.'"); + +КонецФункции + +#КонецОбласти + +// Обновляет идентификаторы пользователей ИБ в справочнике пользователей, очищает поле ИдентификаторПользователяСервиса. +// +// Параметры: +// ТаблицаПользователей - Соответствие - Ключ: исходный идентификатор пользователя ИБ, +// Значение - текущий идентификатор пользователя ИБ. +// +Процедура ОбновитьИдентификаторыПользователейИБ(Знач СоответствиеИдентификаторов) + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | Пользователи.Ссылка КАК Ссылка, + | Пользователи.ИдентификаторПользователяИБ КАК ИдентификаторПользователяИБ + |ИЗ + | Справочник.Пользователи КАК Пользователи + |ГДЕ + | Пользователи.ИдентификаторПользователяИБ <> &ПустойИдентификатор"; + Запрос.УстановитьПараметр("ПустойИдентификатор", Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000")); + Результат = Запрос.Выполнить(); + Выборка = Результат.Выбрать(); + Пока Выборка.Следующий() Цикл + ПользовательОбъект = Выборка.Ссылка.ПолучитьОбъект(); + ПользовательОбъект.ОбменДанными.Загрузка = Истина; + ПользовательОбъект.ИдентификаторПользователяСервиса = Неопределено; + ПользовательОбъект.ИдентификаторПользователяИБ + = СоответствиеИдентификаторов[Выборка.ИдентификаторПользователяИБ]; + ПользовательОбъект.Записать(); + КонецЦикла; КонецПроцедуры diff --git a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаВызовСервера/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаВызовСервера/Module.bsl new file mode 100644 index 000000000..8c6d05da0 --- /dev/null +++ b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаВызовСервера/Module.bsl @@ -0,0 +1,26 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 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..842161597 --- /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 index 1f70e93a3..4973c1c4c 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 new file mode 100644 index 000000000..fd7c233e6 --- /dev/null +++ b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаКлиентСервер/Module.bsl @@ -0,0 +1,26 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 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 similarity index 55% rename from SSL/src/CommonModules/ПрисоединенныеФайлыКлиентСервер/ПрисоединенныеФайлыКлиентСервер.mdo rename to SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаКлиентСервер/ПользователиСлужебныйВМоделиСервисаКлиентСервер.mdo index f95c3c142..a5609a5d9 100644 --- a/SSL/src/CommonModules/ПрисоединенныеФайлыКлиентСервер/ПрисоединенныеФайлыКлиентСервер.mdo +++ b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаКлиентСервер/ПользователиСлужебныйВМоделиСервисаКлиентСервер.mdo @@ -1,9 +1,9 @@ - - ПрисоединенныеФайлыКлиентСервер + + ПользователиСлужебныйВМоделиСервисаКлиентСервер ru - Присоединенные файлы клиент сервер + Пользователи служебный в модели сервиса (клиент сервер) true true diff --git a/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаПовтИсп/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаПовтИсп/Module.bsl new file mode 100644 index 000000000..8a6fce58c --- /dev/null +++ b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаПовтИсп/Module.bsl @@ -0,0 +1,80 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 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/CommonModules/РаботаВМоделиСервисаПовтИсп/РаботаВМоделиСервисаПовтИсп.mdo b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаПовтИсп/ПользователиСлужебныйВМоделиСервисаПовтИсп.mdo similarity index 56% rename from SSL/src/CommonModules/РаботаВМоделиСервисаПовтИсп/РаботаВМоделиСервисаПовтИсп.mdo rename to SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаПовтИсп/ПользователиСлужебныйВМоделиСервисаПовтИсп.mdo index 7f4eb4efc..27ec87dd1 100644 --- a/SSL/src/CommonModules/РаботаВМоделиСервисаПовтИсп/РаботаВМоделиСервисаПовтИсп.mdo +++ b/SSL/src/CommonModules/ПользователиСлужебныйВМоделиСервисаПовтИсп/ПользователиСлужебныйВМоделиСервисаПовтИсп.mdo @@ -1,9 +1,9 @@ - - РаботаВМоделиСервисаПовтИсп + + ПользователиСлужебныйВМоделиСервисаПовтИсп ru - Работа в модели сервиса повт исп + Пользователи служебный в модели сервиса (повт. исп.) true true diff --git a/SSL/src/CommonModules/ПользователиСлужебныйПовтИсп/Module.bsl b/SSL/src/CommonModules/ПользователиСлужебныйПовтИсп/Module.bsl index 43d3d4d15..43f60750a 100644 --- a/SSL/src/CommonModules/ПользователиСлужебныйПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/ПользователиСлужебныйПовтИсп/Module.bsl @@ -159,7 +159,7 @@ // См. Пользователи.ЭтоСеансВнешнегоПользователя. Функция ЭтоСеансВнешнегоПользователя() Экспорт - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей(); Иначе diff --git a/SSL/src/CommonModules/ПоставляемыеДанные/Module.bsl b/SSL/src/CommonModules/ПоставляемыеДанные/Module.bsl deleted file mode 100644 index 0aad8e1f9..000000000 --- a/SSL/src/CommonModules/ПоставляемыеДанные/Module.bsl +++ /dev/null @@ -1,763 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Инициировать уведомление о всех имеющихся в МС поставляемых данных (за исключением тех, -// у которых стоит пометка "Запрет уведомления". -// -Процедура ЗапроситьВсеДанные() Экспорт - - ОбменСообщениями.ОтправитьСообщение("ПоставляемыеДанные\ЗапросВсехДанных", Неопределено, - РаботаВМоделиСервиса.КонечнаяТочкаМенеджераСервиса()); - -КонецПроцедуры - -// Получить дескрипторы данных по заданным условиям. -// -// Параметры: -// ВидДанных - Строка - имя вида поставляемых данных. -// Фильтр - Массив - элементы должны содержать поля Код (строка) и Значение (строка). -// -// Возвращаемое значение: -// ОбъектXDTO - типа ArrayOfDescriptor. -// -Функция ДескрипторыПоставляемыхДанныхИзМенеджера(Знач ВидДанных, Знач Фильтр = Неопределено) Экспорт - Перем Прокси, Условия, ТипФильтра; - Прокси = НовыйПроксиНаМенеджереСервиса(); - - Если Фильтр <> Неопределено Тогда - - ТипФильтра = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/SaaS/SuppliedData", - "ArrayOfProperty"); - ТипУсловия = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/SaaS/SuppliedData", - "Property"); - Условия = Прокси.ФабрикаXDTO.Создать(ТипФильтра); - Для каждого СтрокаФильтра Из Фильтр Цикл - Условие = Условия.Property.Добавить(Прокси.ФабрикаXDTO.Создать(ТипУсловия)); - Условие.Code = СтрокаФильтра.Код; - Условие.Value = СтрокаФильтра.Значение; - КонецЦикла; - КонецЕсли; - - // Конвертируем в стандартный тип. - Результат = Прокси.GetData(ВидДанных, Условия); - Запись = Новый ЗаписьXML; - Запись.УстановитьСтроку(); - Прокси.ФабрикаXDTO.ЗаписатьXML(Запись, Результат, , , , НазначениеТипаXML.Явное); - СериализованныйРезультат = Запись.Закрыть(); - - Чтение = Новый ЧтениеXML; - Чтение.УстановитьСтроку(СериализованныйРезультат); - Результат = ФабрикаXDTO.ПрочитатьXML(Чтение); - Чтение.Закрыть(); - Возврат Результат; - -КонецФункции - -// Инициирует обработку данных. -// -// Может использоваться в связке с ДескрипторыПоставляемыхДанныхИзМенеджера для -// ручной инициации процесса обработки данных. После вызова метода система поведет -// себя так, как будто она только что получила уведомление о доступности новых данных, -// с указанным дескриптором - будет вызван ДоступныНовыеДанные, а затем, при необходимости, -// ОбработатьНовыеДанные для соответствующих обработчиков. -// -// Параметры: -// Дескриптор - ОбъектXDTO - Descriptor. -// -Процедура ЗагрузитьИОбработатьДанные(Знач Дескриптор) Экспорт - - СообщенияПоставляемыхДанныхОбработчикСообщения.ОбработатьНовыйДескриптор(Дескриптор); - -КонецПроцедуры - -// Помещает данные в справочник ПоставляемыеДанные. -// -// Данные сохраняются либо в том на диске, либо в поле таблицы ПоставляемыеДанные в -// зависимости от константы ХранитьФайлыВТомахНаДиске и наличия свободных томов. Данные -// могут быть позднее извлечены при помощи поиска по реквизитам, либо путем указания -// уникального идентификатора, который передавался в поле Дескриптор.FileGUID. Если в базе -// уже есть данные с тем же видом данных и набором ключевых характеристик - новые данные -// замещают старые. При это используется обновление существующего элемента справочника, а -// не удаление и создание нового. -// -// Параметры: -// Дескриптор - ОбъектXDTO - Descriptor или структура с полями. -// "ВидДанных, ДатаДобавления, ИдентификаторФайла, Характеристики", -// где Характеристики - массив структур с полями "Код, Значение, Ключевая". -// ПутьКФайлу - Строка - полное имя извлеченного файла. -// -Процедура СохранитьПоставляемыеДанныеВКэш(Знач Дескриптор, Знач ПутьКФайлу) Экспорт - - // Приводим дескриптор к каноническому виду. - Если ТипЗнч(Дескриптор) = Тип("Структура") Тогда - НаАнглийском = Новый Структура; - НаАнглийском.Вставить("DataType", Дескриптор.ВидДанных); - НаАнглийском.Вставить("CreationDate", Дескриптор.ДатаДобавления); - НаАнглийском.Вставить("FileGUID", Дескриптор.ИдентификаторФайла); - НаАнглийском.Вставить("Properties", Новый Структура("Property", Новый Массив)); - - Если ТипЗнч(Дескриптор.Характеристики) = Тип("Массив") Тогда - Для каждого Характеристика Из Дескриптор.Характеристики Цикл - НаАнглийском.Properties.Property.Добавить(Новый Структура("Code, Value, IsKey", - Характеристика.Код, Характеристика.Значение, Характеристика.Ключевая)); - КонецЦикла; - КонецЕсли; - Дескриптор = НаАнглийском; - КонецЕсли; - - Фильтр = Новый Массив; - Для каждого Характеристика Из Дескриптор.Properties.Property Цикл - Если Характеристика.IsKey Тогда - Фильтр.Добавить(Новый Структура("Код, Значение", Характеристика.Code, Характеристика.Value)); - КонецЕсли; - КонецЦикла; - - ИсходнаяОбластьДанных = Неопределено; - Если РаботаВМоделиСервиса.РазделениеВключено() И РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда - ИсходнаяОбластьДанных = РаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - КонецЕсли; - - НачатьТранзакцию(); - Попытка - - Запрос = ЗапросДанныхПоИменам(Дескриптор.DataType, Фильтр); - Результат = Запрос.Выполнить(); - - Блокировка = Новый БлокировкаДанных; - ЭлементБлокировки = Блокировка.Добавить("Справочник.ПоставляемыеДанные"); - ЭлементБлокировки.ИсточникДанных = Результат; - ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Ссылка", "ПоставляемыеДанные"); - Блокировка.Заблокировать(); - - Выборка = Результат.Выбрать(); - - Данные = Неопределено; - ПутьКСтаромуФайлу = Неопределено; - - Пока Выборка.Следующий() Цикл - Если Данные = Неопределено Тогда - Данные = Выборка.ПоставляемыеДанные.ПолучитьОбъект(); - Если Данные.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда - ПутьКСтаромуФайлу = РаботаСФайламиСлужебный.ПолныйПутьТома(Данные.Том) + Данные.ПутьКФайлу; - КонецЕсли; - Иначе - УдалитьПоставляемыеДанныеИзКэша(Выборка.ПоставляемыеДанные); - КонецЕсли; - КонецЦикла; - - Если Данные = Неопределено Тогда - Данные = Справочники.ПоставляемыеДанные.СоздатьЭлемент(); - КонецЕсли; - - Данные.ВидДанных = Дескриптор.DataType; - Данные.ДатаДобавления = Дескриптор.CreationDate; - Данные.ИдентификаторФайла = Дескриптор.FileGUID; - Данные.ХарактеристикиДанных.Очистить(); - Для каждого Property Из Дескриптор.Properties.Property Цикл - Характеристика = Данные.ХарактеристикиДанных.Добавить(); - Характеристика.Характеристика = Property.Code; - Характеристика.Значение = Property.Value; - КонецЦикла; - Данные.ТипХраненияФайла = РаботаСФайламиСлужебный.ТипХраненияФайлов(); - - Если Данные.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда - Данные.ХранимыйФайл = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ПутьКФайлу)); - Данные.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка(); - Данные.ПутьКФайлу = ""; - Иначе - // Добавление в один из томов (где есть свободное место). - СведенияОФайле = РаботаСФайламиСлужебный.ДобавитьФайлВТом(ПутьКФайлу, Данные.ДатаДобавления, Строка(Данные.ИдентификаторФайла), ""); - Данные.ХранимыйФайл = Неопределено; - Данные.Том = СведенияОФайле.Том; - Данные.ПутьКФайлу = СведенияОФайле.ПутьКФайлу; - КонецЕсли; - - Данные.Записать(); - Если ПутьКСтаромуФайлу <> Неопределено Тогда - - ФайлВременный = Новый Файл(ПутьКСтаромуФайлу); - Если ФайлВременный.Существует() Тогда - - Попытка - ФайлВременный.УстановитьТолькоЧтение(Ложь); - УдалитьФайлы(ПутьКСтаромуФайлу); - Исключение - ЗаписьЖурналаРегистрации( - НСтр("ru = 'Поставляемые данные.Удаление файлов в томе'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, - , - , - ИнформацияОбОшибке()); - КонецПопытки; - - КонецЕсли; - - КонецЕсли; - - Если ИсходнаяОбластьДанных <> Неопределено Тогда - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ИсходнаяОбластьДанных); - - КонецЕсли; - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - - Если ИсходнаяОбластьДанных <> Неопределено Тогда - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ИсходнаяОбластьДанных); - - КонецЕсли; - - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - -// Удаляет файл из кэша. -// -// Параметры: -// СсылкаИлиИдентификатор - СправочникСсылка.ПоставляемыеДанные - ссылка на поставляемые данные, -// - УникальныйИдентификатор - уникальный идентификатор. -// -Процедура УдалитьПоставляемыеДанныеИзКэша(Знач СсылкаИлиИдентификатор) Экспорт - Перем Данные, ПолныйПуть; - - УстановитьПривилегированныйРежим(Истина); - - Если ТипЗнч(СсылкаИлиИдентификатор) = Тип("УникальныйИдентификатор") Тогда - СсылкаИлиИдентификатор = Справочники.ПоставляемыеДанные.НайтиПоРеквизиту("ИдентификаторФайла", СсылкаИлиИдентификатор); - Если СсылкаИлиИдентификатор.Пустая() Тогда - Возврат; - КонецЕсли; - КонецЕсли; - - Данные = СсылкаИлиИдентификатор.ПолучитьОбъект(); - Если Данные = Неопределено Тогда - Возврат; - КонецЕсли; - - Если Данные.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда - ПолныйПуть = РаботаСФайламиСлужебный.ПолныйПутьТома(Данные.Том) + Данные.ПутьКФайлу; - УдалитьФайлы(ПолныйПуть); - КонецЕсли; - - Удаление = Новый УдалениеОбъекта(СсылкаИлиИдентификатор); - Удаление.ОбменДанными.Загрузка = Истина; - Удаление.Записать(); - -КонецПроцедуры - -// Получает дескриптор данных из кэша. -// -// Параметры: -// СсылкаИлиИдентификатор - СправочникСсылка.ПоставляемыеДанные - ссылка на поставляемые данные, -// - УникальныйИдентификатор - уникальный идентификатор, -// ВВидеXDTO - Булево - в каком виде возвращать значения. -// -// Возвращаемое значение: -// ОбъектXDTO - типа ArrayOfDescriptor. -// -Функция ДескрипторПоставляемыхДанныхИзКэша(Знач СсылкаИлиИдентификатор, Знач ВВидеXDTO = Ложь) Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Запрос = Новый Запрос; - - Если ТипЗнч(СсылкаИлиИдентификатор) = Тип("УникальныйИдентификатор") Тогда - Суффикс = "СправочникПоставляемыеДанные.ИдентификаторФайла = &ИдентификаторФайла"; - Запрос.УстановитьПараметр("ИдентификаторФайла", СсылкаИлиИдентификатор); - Иначе - Суффикс = "СправочникПоставляемыеДанные.Ссылка = &Ссылка"; - Запрос.УстановитьПараметр("Ссылка", СсылкаИлиИдентификатор); - КонецЕсли; - - Запрос.Текст = "ВЫБРАТЬ - | СправочникПоставляемыеДанные.ИдентификаторФайла, - | СправочникПоставляемыеДанные.ДатаДобавления, - | СправочникПоставляемыеДанные.ВидДанных, - | СправочникПоставляемыеДанные.ХарактеристикиДанных.( - | Значение, - | Характеристика) - |ИЗ - | Справочник.ПоставляемыеДанные КАК СправочникПоставляемыеДанные - | ГДЕ " + Суффикс; - - РезультатЗапроса = Запрос.Выполнить(); - Выборка = РезультатЗапроса.Выбрать(); - Если Выборка.Следующий() Тогда - Возврат ?(ВВидеXDTO, ПолучитьXDTOДескриптор(Выборка), ПолучитьДескриптор(Выборка)); - Иначе - Возврат Неопределено; - КонецЕсли; - -КонецФункции - -// Возвращает двоичные данные присоединенного файла. -// -// Параметры: -// СсылкаИлиИдентификатор - СправочникСсылка.ПоставляемыеДанные - ссылка на поставляемые данные, -// - УникальныйИдентификатор - уникальный идентификатор. -// -// Возвращаемое значение: -// ДвоичныеДанные - двоичные данные поставляемых данных. -// -Функция ПоставляемыеДанныеИзКэша(Знач СсылкаИлиИдентификатор) Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Если ТипЗнч(СсылкаИлиИдентификатор) = Тип("УникальныйИдентификатор") Тогда - СсылкаИлиИдентификатор = Справочники.ПоставляемыеДанные.НайтиПоРеквизиту("ИдентификаторФайла", СсылкаИлиИдентификатор); - Если СсылкаИлиИдентификатор.Пустая() Тогда - Возврат Неопределено; - КонецЕсли; - КонецЕсли; - - ФайлОбъект = СсылкаИлиИдентификатор.ПолучитьОбъект(); - Если ФайлОбъект = Неопределено Тогда - Возврат Неопределено; - КонецЕсли; - - Если ФайлОбъект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда - Возврат ФайлОбъект.ХранимыйФайл.Получить(); - Иначе - ПолныйПуть = РаботаСФайламиСлужебный.ПолныйПутьТома(ФайлОбъект.Том) + ФайлОбъект.ПутьКФайлу; - - Попытка - Возврат Новый ДвоичныеДанные(ПолныйПуть) - Исключение - // Запись в журнал регистрации. - СообщениеОбОшибке = ТекстОшибкиПриПолученииФайла(ИнформацияОбОшибке(), СсылкаИлиИдентификатор); - ЗаписьЖурналаРегистрации( - НСтр("ru = 'Поставляемые данные.Получение файла из тома'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, - Метаданные.Справочники.ПоставляемыеДанные, - СсылкаИлиИдентификатор, - СообщениеОбОшибке); - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Ошибка открытия файла: файл не найден на сервере. - |Обратитесь к администратору. - | - |Файл: ""%1.%2"".'"), - ФайлОбъект.Наименование, - ФайлОбъект.Расширение); - КонецПопытки; - КонецЕсли; - -КонецФункции - -// Проверяет наличие данных с указанными ключевыми характеристиками в кэше. -// -// Параметры: -// Дескриптор - ОбъектXDTO - Descriptor. -// -// Возвращаемое значение: -// Булево - наличие дескриптора в кэше. -// -Функция ЕстьВКеше(Знач Дескриптор) Экспорт - - Фильтр = Новый Массив; - Для каждого Характеристика Из Дескриптор.Properties.Property Цикл - Если Характеристика.IsKey Тогда - Фильтр.Добавить(Новый Структура("Код, Значение", Характеристика.Code, Характеристика.Value)); - КонецЕсли; - КонецЦикла; - - Запрос = ЗапросДанныхПоИменам(Дескриптор.DataType, Фильтр); - Возврат Не Запрос.Выполнить().Пустой(); - -КонецФункции - -// Возвращает массив ссылок на данные, удовлетворяющие заданным условиям. -// -// Параметры: -// ВидДанных - Строка - имя вида поставляемых данных. -// Фильтр - Массив - элементы должны содержать поля Код (строка) и Значение (строка). -// -// Возвращаемое значение: -// Массив - массив ссылок на данные. -// -Функция СсылкиПоставляемыхДанныхИзКэша(Знач ВидДанных, Знач Фильтр = Неопределено) Экспорт - - Запрос = ЗапросДанныхПоИменам(ВидДанных, Фильтр); - Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ПоставляемыеДанные"); - -КонецФункции - -// Получить данные по заданным условиям. -// -// Параметры: -// ВидДанных - Строка - имя вида поставляемых данных. -// Фильтр - Массив - элементы должны содержать поля Код (строка) и Значение (строка). -// ВВидеXDTO - Булево - в каком виде возвращать значения. -// -// Возвращаемое значение: -// ОбъектXDTO - типа ArrayOfDescriptor или -// Массив структур с полями "ВидДанных, ДатаДобавления, ИдентификаторФайла, Характеристики", -// где Характеристики - массив структур с полями "Код, Значение, Ключевая". -// Для получения самого файла необходимо вызвать ПолучитьПоставляемыеДанныеИзКэша. -// -// -Функция ДескрипторыПоставляемыхДанныхИзКэша(Знач ВидДанных, Знач Фильтр = Неопределено, Знач ВВидеXDTO = Ложь) Экспорт - Перем Запрос, РезультатЗапроса, Выборка, Дескрипторы, Результат; - - Запрос = ЗапросДанныхПоИменам(ВидДанных, Фильтр); - - Запрос.Текст = "ВЫБРАТЬ - | СправочникПоставляемыеДанные.ИдентификаторФайла, - | СправочникПоставляемыеДанные.ДатаДобавления, - | СправочникПоставляемыеДанные.ВидДанных, - | СправочникПоставляемыеДанные.ХарактеристикиДанных.( - | Значение, - | Характеристика) - |ИЗ - | Справочник.ПоставляемыеДанные КАК СправочникПоставляемыеДанные - | ГДЕ СправочникПоставляемыеДанные.Ссылка В (" + Запрос.Текст + ")"; - - РезультатЗапроса = Запрос.Выполнить(); - Выборка = РезультатЗапроса.Выбрать(); - - Если ВВидеXDTO Тогда - Результат = СоздатьОбъект(ФабрикаXDTO.Тип("http://www.1c.ru/SaaS/SuppliedData", - "ArrayOfDescriptor")); - Дескрипторы = Результат.Descriptor; - Иначе - Результат = Новый Массив(); - Дескрипторы = Результат; - КонецЕсли; - - Пока Выборка.Следующий() Цикл - Сообщение = ?(ВВидеXDTO, ПолучитьXDTOДескриптор(Выборка), ПолучитьДескриптор(Выборка)); - Дескрипторы.Добавить(Сообщение); - КонецЦикла; - - Возврат Результат; - -КонецФункции - -// Возвращает пользовательское представление дескриптора поставляемых данных. -// Может быть использовано при выводе сообщений в журнал регистрации. -// -// Параметры: -// Дескриптор - ОбъектXDTO - типа Descriptor или структура с полями. -// "ВидДанных, ДатаДобавления, ИдентификаторФайла, Характеристики", -// где Характеристики - массив структур с полями "Код, Значение". -// -// Возвращаемое значение: -// Строка - пользовательское представление дескриптора. -// -Функция ПолучитьОписаниеДанных(Знач Дескриптор) Экспорт - Перем Описание, Характеристика; - - Если Дескриптор = Неопределено Тогда - Возврат ""; - КонецЕсли; - - Если ТипЗнч(Дескриптор) = Тип("ОбъектXDTO") Тогда - Описание = Дескриптор.DataType; - Для каждого Характеристика Из Дескриптор.Properties.Property Цикл - Описание = Описание - + ", " + Характеристика.Code + ": " + Характеристика.Value; - КонецЦикла; - - Если Дескриптор.RecommendedUpdateDate = Неопределено Тогда - - Дескриптор.RecommendedUpdateDate = ТекущаяУниверсальнаяДата(); - - КонецЕсли; - - Описание = Описание + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = ', добавлен: %1 (%2), рекомендовано загрузить: %3 (%2)'"), - МестноеВремя(Дескриптор.CreationDate, ЧасовойПоясСеанса()), - ПредставлениеЧасовогоПояса(ЧасовойПоясСеанса()), - МестноеВремя(Дескриптор.RecommendedUpdateDate)); - Иначе - Описание = Дескриптор.ВидДанных; - Для каждого Характеристика Из Дескриптор.Характеристики Цикл - Описание = Описание - + ", " + Характеристика.Код + ": " + Характеристика.Значение; - КонецЦикла; - - Описание = Описание + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = ', добавлен: %1 (%2)'"), - МестноеВремя(Дескриптор.ДатаДобавления, ЧасовойПоясСеанса()), - ПредставлениеЧасовогоПояса(ЧасовойПоясСеанса())); - КонецЕсли; - - Возврат Описание; - -КонецФункции - -/////////////////////////////////////////////////////////////////////////////////// -// Обновление информации в областях данных. - -// Возвращает список областей данных, в которые еще не были скопированы поставляемые данные. -// -// В случае первого вызова функции возвращается полный набор доступных областей. -// При последующем вызове, при восстановлении после сбоя, будут возвращены только -// необработанные области. После копирования данных в область следует вызвать ОбластьОбработана. -// -// Параметры: -// ИдентификаторФайла - УникальныйИдентификатор - идентификатор файла поставляемых данных, -// КодОбработчика - Строка - код обработчика, -// ВключаяНеразделенную - Булево - если Истина, ко всем имеющимся областям добавится область с кодом -1. -// -// Возвращаемое значение: -// Массив - области требующие обработки. -// -Функция ОбластиТребующиеОбработки(Знач ИдентификаторФайла, Знач КодОбработчика, Знач ВключаяНеразделенную = Ложь) Экспорт - - НаборЗаписей = РегистрыСведений.ОбластиТребующиеОбработкиПоставляемыхДанных.СоздатьНаборЗаписей(); - НаборЗаписей.Отбор.ИдентификаторФайла.Установить(ИдентификаторФайла); - НаборЗаписей.Отбор.КодОбработчика.Установить(КодОбработчика); - НаборЗаписей.Прочитать(); - Если НаборЗаписей.Количество() = 0 Тогда - Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ - | &ИдентификаторФайла КАК ИдентификаторФайла, - | &КодОбработчика КАК КодОбработчика, - | ОбластиДанных.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанных - |ИЗ - | РегистрСведений.ОбластиДанных КАК ОбластиДанных - |ГДЕ - | ОбластиДанных.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыОбластейДанных.Используется)"; - Запрос.УстановитьПараметр("ИдентификаторФайла", ИдентификаторФайла); - Запрос.УстановитьПараметр("КодОбработчика", КодОбработчика); - НаборЗаписей.Загрузить(Запрос.Выполнить().Выгрузить()); - - Если ВключаяНеразделенную Тогда - ОбщиеКурсы = НаборЗаписей.Добавить(); - ОбщиеКурсы.ИдентификаторФайла = ИдентификаторФайла; - ОбщиеКурсы.КодОбработчика = КодОбработчика; - ОбщиеКурсы.ОбластьДанных = -1; - КонецЕсли; - - НаборЗаписей.Записать(); - КонецЕсли; - Возврат НаборЗаписей.ВыгрузитьКолонку("ОбластьДанных"); -КонецФункции - -// Удаляет область из списка необработанных. Выключает разделение сеанса (если оно было включено), -// поскольку при включенном разделении запись в неразделенный регистр запрещена. -// -// Параметры: -// ИдентификаторФайла - УникальныйИдентификатор - файла поставляемых данных, -// КодОбработчика - Строка - код обработчика, -// ОбластьДанных - Число - идентификатор обработанной области. -// -Процедура ОбластьОбработана(Знач ИдентификаторФайла, Знач КодОбработчика, Знач ОбластьДанных) Экспорт - - Если РаботаВМоделиСервиса.РазделениеВключено() И РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - КонецЕсли; - - НаборЗаписей = РегистрыСведений.ОбластиТребующиеОбработкиПоставляемыхДанных.СоздатьНаборЗаписей(); - НаборЗаписей.Отбор.ИдентификаторФайла.Установить(ИдентификаторФайла); - Если ОбластьДанных <> Неопределено Тогда - НаборЗаписей.Отбор.ОбластьДанных.Установить(ОбластьДанных); - КонецЕсли; - НаборЗаписей.Отбор.КодОбработчика.Установить(КодОбработчика); - НаборЗаписей.Записать(); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныйПрограммныйИнтерфейс - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. - -// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков. -Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт - - СоответствиеИменПсевдонимам.Вставить("СообщенияПоставляемыхДанныхОбработчикСообщения.ЗагрузитьДанные"); - -КонецПроцедуры - -// См. ОбменСообщениямиПереопределяемый.ПолучитьОбработчикиКаналовСообщений. -Процедура ПриОпределенииОбработчиковКаналовСообщений(Обработчики) Экспорт - - СообщенияПоставляемыхДанныхОбработчикСообщения.ПолучитьОбработчикиКаналовСообщений(Обработчики); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Функция НовыйПроксиНаМенеджереСервиса() - - URL = РаботаВМоделиСервиса.ВнутреннийАдресМенеджераСервиса(); - ИмяПользователя = РаботаВМоделиСервиса.ИмяСлужебногоПользователяМенеджераСервиса(); - ПарольПользователя = РаботаВМоделиСервиса.ПарольСлужебногоПользователяМенеджераСервиса(); - - АдресСервиса = URL + "/ws/SuppliedData?wsdl"; - - ПараметрыПодключения = ОбщегоНазначения.ПараметрыПодключенияWSПрокси(); - ПараметрыПодключения.АдресWSDL = АдресСервиса; - ПараметрыПодключения.URIПространстваИмен = "http://www.1c.ru/SaaS/1.0/WS"; - ПараметрыПодключения.ИмяСервиса = "SuppliedData"; - ПараметрыПодключения.ИмяПользователя = ИмяПользователя; - ПараметрыПодключения.Пароль = ПарольПользователя; - - Возврат ОбщегоНазначения.СоздатьWSПрокси(ПараметрыПодключения); - -КонецФункции - -// Получить запрос, возвращающий ссылки на данные с указанными характеристиками. -// -// Параметры: -// ВидДанных - строка. -// Характеристики - коллекция, содержащая структуры Код(строка). -// И Значение(строка). -// -// Возвращаемое значение: -// Запрос -Функция ЗапросДанныхПоИменам(Знач ВидДанных, Знач Характеристики) - Если Характеристики = Неопределено Или Характеристики.Количество() = 0 Тогда - Возврат ЗапросПоИмениВидаДанных(ВидДанных); - Иначе - Возврат ЗапросПоИменамХарактеристик(ВидДанных, Характеристики); - КонецЕсли; -КонецФункции - -Функция ЗапросПоИмениВидаДанных(Знач ВидДанных) - Запрос = Новый Запрос(); - Запрос.Текст = "ВЫБРАТЬ - | ПоставляемыеДанные.Ссылка КАК ПоставляемыеДанные - |ИЗ - | Справочник.ПоставляемыеДанные КАК ПоставляемыеДанные - |ГДЕ - | ПоставляемыеДанные.ВидДанных = &ВидДанных"; - Запрос.УстановитьПараметр("ВидДанных", ВидДанных); - Возврат Запрос; - -КонецФункции - -Функция ЗапросПоИменамХарактеристик(Знач ВидДанных, Знач Характеристики) -// ВЫБРАТЬ Ссылка -// ИЗ Характеристики -// ГДЕ (ИмяХарактеристики = '' И ЗначениеХарактеристики = '') ИЛИ ..(N) -// СГРУППИРОВАТЬ ПО ДанныеИд -// ИМЕЮЩИЕ Количество(*) = N. - Запрос = Новый Запрос(); - Запрос.Текст = - "ВЫБРАТЬ - | ПоставляемыеДанныеХарактеристикиДанных.Ссылка КАК ПоставляемыеДанные - |ИЗ - | Справочник.ПоставляемыеДанные.ХарактеристикиДанных КАК ПоставляемыеДанныеХарактеристикиДанных - |ГДЕ - | ПоставляемыеДанныеХарактеристикиДанных.Ссылка.ВидДанных = &ВидДанных И ("; - Счетчик = 0; - Для Каждого Характеристика Из Характеристики Цикл - Если Счетчик > 0 Тогда - Запрос.Текст = Запрос.Текст + " ИЛИ "; - КонецЕсли; - - Запрос.Текст = Запрос.Текст + "( - | ВЫРАЗИТЬ(ПоставляемыеДанныеХарактеристикиДанных.Значение КАК Строка(150)) = &Значение" + Счетчик + " - | И ПоставляемыеДанныеХарактеристикиДанных.Характеристика = &Код" + Счетчик + ")"; - Запрос.УстановитьПараметр("Значение" + Счетчик, Характеристика.Значение); - Запрос.УстановитьПараметр("Код" + Счетчик, Характеристика.Код); - Счетчик = Счетчик + 1; - КонецЦикла; - Запрос.Текст = Запрос.Текст + ") - |СГРУППИРОВАТЬ ПО - | ПоставляемыеДанныеХарактеристикиДанных.Ссылка - |ИМЕЮЩИЕ - |Количество(*) = &Количество"; - Запрос.УстановитьПараметр("Количество", Счетчик); - Запрос.УстановитьПараметр("ВидДанных", ВидДанных); - Возврат Запрос; - -КонецФункции - -// Преобразование результатов выборки в XDTO объект. -// -// Параметры: -// Выборка - ВыборкаИзРезультатаЗапроса. Выборка запроса, содержащего информацию об -// обновлении данных. -// -Функция ПолучитьXDTOДескриптор(Выборка) - Дескриптор = СоздатьОбъект(ФабрикаXDTO.Тип("http://www.1c.ru/SaaS/SuppliedData", - "Descriptor")); - Дескриптор.DataType = Выборка.ВидДанных; - Дескриптор.CreationDate = Выборка.ДатаДобавления; - Дескриптор.FileGUID = Выборка.ИдентификаторФайла; - Дескриптор.Properties = СоздатьОбъект(ФабрикаXDTO.Тип("http://www.1c.ru/SaaS/SuppliedData", - "ArrayOfProperty")); - ВыборкаХарактеристик = Выборка.ХарактеристикиДанных.Выбрать(); - Пока ВыборкаХарактеристик.Следующий() Цикл - Характеристика = СоздатьОбъект(ФабрикаXDTO.Тип("http://www.1c.ru/SaaS/SuppliedData", - "Property")); - Характеристика.Code = ВыборкаХарактеристик.Характеристика; - Характеристика.Value = ВыборкаХарактеристик.Значение; - Характеристика.IsKey = Истина; - Дескриптор.Properties.Property.Добавить(Характеристика); - КонецЦикла; - Возврат Дескриптор; - -КонецФункции - -Функция ПолучитьДескриптор(Знач Выборка) - Перем Дескриптор, ВыборкаХарактеристик, Характеристика; - - Дескриптор = Новый Структура("ВидДанных, ДатаДобавления, ИдентификаторФайла, Характеристики"); - Дескриптор.ВидДанных = Выборка.ВидДанных; - Дескриптор.ДатаДобавления = Выборка.ДатаДобавления; - Дескриптор.ИдентификаторФайла = Выборка.ИдентификаторФайла; - Дескриптор.Характеристики = Новый Массив(); - - ВыборкаХарактеристик = Выборка.ХарактеристикиДанных.Выбрать(); - Пока ВыборкаХарактеристик.Следующий() Цикл - Характеристика = Новый Структура("Код, Значение, Ключевая"); - Характеристика.Код = ВыборкаХарактеристик.Характеристика; - Характеристика.Значение = ВыборкаХарактеристик.Значение; - Характеристика.Ключевая = Истина; - Дескриптор.Характеристики.Добавить(Характеристика); - КонецЦикла; - - Возврат Дескриптор; - -КонецФункции - -Функция СоздатьОбъект(Знач ТипСообщения) - - Возврат ФабрикаXDTO.Создать(ТипСообщения); - -КонецФункции - -Функция ТекстОшибкиПриПолученииФайла(Знач ИнформацияОбОшибке, Знач Файл) - - СообщениеОбОшибке = КраткоеПредставлениеОшибки(ИнформацияОбОшибке); - - Если Файл <> Неопределено Тогда - СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = '%1 - | - |Ссылка на файл: ""%2"".'"), - СообщениеОбОшибке, - ПолучитьНавигационнуюСсылку(Файл)); - КонецЕсли; - - Возврат СообщениеОбОшибке; - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/ПоставляемыеДанныеПереопределяемый/Module.bsl b/SSL/src/CommonModules/ПоставляемыеДанныеПереопределяемый/Module.bsl deleted file mode 100644 index e49ccd712..000000000 --- a/SSL/src/CommonModules/ПоставляемыеДанныеПереопределяемый/Module.bsl +++ /dev/null @@ -1,42 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -//////////////////////////////////////////////////////////////////////////////// -// Процедуры и функции для подсистемы ПоставляемыеДанные -// общий модуль ПоставляемыеДанныеПереопределяемый. -// - -// Зарегистрировать обработчики поставляемых данных. -// -// При получении уведомления о доступности новых общих данных, вызывается процедуры. -// ДоступныНовыеДанные модулей, зарегистрированных через ПолучитьОбработчикиПоставляемыхДанных. -// В процедуру передается Дескриптор - ОбъектXDTO Descriptor. -// -// В случае, если ДоступныНовыеДанные устанавливает аргумент Загружать в значение Истина, -// данные загружаются, дескриптор и путь к файлу с данными передаются в процедуру. -// ОбработатьНовыеДанные. Файл будет автоматически удален после завершения процедуры. -// Если в менеджере сервиса не был указан файл - значение аргумента равно Неопределено. -// -// Параметры: -// Обработчики - ТаблицаЗначений - таблица для добавления обработчиков с колонками: -// * ВидДанных - Строка - код вида данных, обрабатываемый обработчиком. -// * КодОбработчика - Строка - будет использоваться при восстановлении обработки данных после сбоя. -// * Обработчик - ОбщийМодуль - модуль, содержащий следующие процедуры: -// ДоступныНовыеДанные(Дескриптор, Загружать) Экспорт -// ОбработатьНовыеДанные(Дескриптор, ПутьКФайлу) Экспорт -// ОбработкаДанныхОтменена(Дескриптор) Экспорт -// -Процедура ПолучитьОбработчикиПоставляемыхДанных(Обработчики) Экспорт - - - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/ПоставляемыеДанныеПереопределяемый/ПоставляемыеДанныеПереопределяемый.mdo b/SSL/src/CommonModules/ПоставляемыеДанныеПереопределяемый/ПоставляемыеДанныеПереопределяемый.mdo deleted file mode 100644 index 78c0ad671..000000000 --- a/SSL/src/CommonModules/ПоставляемыеДанныеПереопределяемый/ПоставляемыеДанныеПереопределяемый.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - ПоставляемыеДанныеПереопределяемый - - ru - Поставляемые данные переопределяемый - - true - true - true - diff --git a/SSL/src/CommonModules/ПрефиксацияОбъектовКлиентСервер/Module.bsl b/SSL/src/CommonModules/ПрефиксацияОбъектовКлиентСервер/Module.bsl index b6e80860e..9370ccd17 100644 --- a/SSL/src/CommonModules/ПрефиксацияОбъектовКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ПрефиксацияОбъектовКлиентСервер/Module.bsl @@ -259,49 +259,6 @@ Возврат НомерОбъекта; КонецФункции -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать ПользовательскийПрефикс. -// Получает пользовательский префикс номера/кода объекта. -// Переменная НомерОбъекта должна соответствовать шаблону: ООГГ-ХХХ...ХХ или ГГ-ХХХ...ХХ, где. -// ОО - префикс организации; -// ГГ - префикс информационной базы; -// "-" - разделитель; -// АА - пользовательский префикс; -// ХХ..ХХ - номер/код объекта. -// -// Параметры: -// НомерОбъекта - Строка - номер или код объекта из которого требуется получить пользовательский префикс. -// -// Возвращаемое значение: -// Строка - Пользовательский префикс. -// -Функция ПолучитьПользовательскийПрефикс(Знач НомерОбъекта) Экспорт - Возврат ПользовательскийПрефикс(НомерОбъекта); -КонецФункции - -// Устарела. Следует использовать НомерНаПечать. -// Получает номер документа для вывода на печать; из номера удаляются префиксы и лидирующие нули. -// Функция: -// отбрасывает префикс организации, -// отбрасывает префикс информационной базы (опционально), -// отбрасывает пользовательские префиксы (опционально), -// удаляет лидирующие нули в номере объекта. -// -// Параметры: -// НомерОбъекта - Строка - номер или код объекта, который преобразуется для вывода на печать. -// УдалитьПрефиксИнформационнойБазы - Булево - признак удаления префикса информационной базы. -// УдалитьПользовательскийПрефикс - Булево - признак удаления пользовательского префикса. -// -// Возвращаемое значение: -// Строка - Номер на печать. -// -Функция ПолучитьНомерНаПечать(Знач НомерОбъекта, УдалитьПрефиксИнформационнойБазы = Ложь, УдалитьПользовательскийПрефикс = Ложь) Экспорт - Возврат НомерНаПечать(НомерОбъекта, УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс); -КонецФункции - -#КонецОбласти - #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/SSL/src/CommonModules/ПрефиксацияОбъектовСлужебный/Module.bsl b/SSL/src/CommonModules/ПрефиксацияОбъектовСлужебный/Module.bsl index 896da1f42..39ea9b45c 100644 --- a/SSL/src/CommonModules/ПрефиксацияОбъектовСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ПрефиксацияОбъектовСлужебный/Module.bsl @@ -200,9 +200,8 @@ Результат = НовоеОписаниеМетаданныхИспользующихПрефиксы(); - ЕстьПодсистемаРаботаВМоделиСервиса = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса"); МодульРаботаВМоделиСервиса = Неопределено; - + ЕстьПодсистемаРаботаВМоделиСервиса = ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность"); Если ЕстьПодсистемаРаботаВМоделиСервиса Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); КонецЕсли; diff --git a/SSL/src/CommonModules/ПрефиксацияОбъектовСобытия/Module.bsl b/SSL/src/CommonModules/ПрефиксацияОбъектовСобытия/Module.bsl index 568d49918..3f554cee4 100644 --- a/SSL/src/CommonModules/ПрефиксацияОбъектовСобытия/Module.bsl +++ b/SSL/src/CommonModules/ПрефиксацияОбъектовСобытия/Module.bsl @@ -68,6 +68,10 @@ // Процедура ПроверитьКодСправочникаПоОрганизации(Источник, Отказ) Экспорт + Если Источник.ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + ПроверитьКодОбъектаПоОрганизации(Источник); КонецПроцедуры @@ -85,6 +89,10 @@ // Процедура ПроверитьНомерБизнесПроцессаПоДате(Источник, Отказ) Экспорт + Если Источник.ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + ПроверитьНомерОбъектаПоДате(Источник); КонецПроцедуры @@ -134,6 +142,10 @@ // Процедура ПроверитьНомерДокументаПоДатеИОрганизации(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт + Если Источник.ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + ПроверитьНомерОбъектаПоДатеИОрганизации(Источник); КонецПроцедуры @@ -231,9 +243,7 @@ Процедура ПроверитьНомерОбъектаПоДате(Объект) - Если Объект.ОбменДанными.Загрузка Тогда - Возврат; - ИначеЕсли Объект.ЭтоНовый() Тогда + Если Объект.ЭтоНовый() Тогда Возврат; КонецЕсли; @@ -262,9 +272,7 @@ Процедура ПроверитьНомерОбъектаПоДатеИОрганизации(Объект) - Если Объект.ОбменДанными.Загрузка Тогда - Возврат; - ИначеЕсли Объект.ЭтоНовый() Тогда + Если Объект.ЭтоНовый() Тогда Возврат; КонецЕсли; @@ -279,9 +287,7 @@ Процедура ПроверитьКодОбъектаПоОрганизации(Объект) - Если Объект.ОбменДанными.Загрузка Тогда - Возврат; - ИначеЕсли Объект.ЭтоНовый() Тогда + Если Объект.ЭтоНовый() Тогда Возврат; ИначеЕсли Не РеквизитОрганизацияДоступен(Объект) Тогда Возврат; diff --git a/SSL/src/CommonModules/ПрисоединенныеФайлы/Module.bsl b/SSL/src/CommonModules/ПрисоединенныеФайлы/Module.bsl deleted file mode 100644 index 79946ba8e..000000000 --- a/SSL/src/CommonModules/ПрисоединенныеФайлы/Module.bsl +++ /dev/null @@ -1,423 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Присоединенные файлы". -// -//////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -#Область УстаревшиеПроцедурыИФункции - -// Устарела. -// Следует использовать РаботаСФайлами.ДвоичныеДанныеФайла. -// Возвращает двоичные данные присоединенного файла. -// -// Параметры: -// ПрисоединенныйФайл - СправочникСсылка - ссылка на справочник с именем "*ПрисоединенныеФайлы". -// -// Возвращаемое значение: -// ДвоичныеДанные - двоичные данные присоединенного файла. -// -Функция ПолучитьДвоичныеДанныеФайла(Знач ПрисоединенныйФайл) Экспорт - - Возврат РаботаСФайлами.ДвоичныеДанныеФайла(ПрисоединенныйФайл); - -КонецФункции - -// Устарела. -// Следует использовать РаботаСФайлами.ДанныеФайла. -// Возвращает структуру данных файла. Используется в различных командах работы с файлами, -// и как значение параметра ДанныеФайла других процедур и функций. -// -// Параметры: -// ПрисоединенныйФайл - СправочникСсылка - ссылка на справочник с именем "*ПрисоединенныеФайлы". -// -// ИдентификаторФормы - УникальныйИдентификатор - идентификатор формы, который -// используется при получении двоичных данных файла. -// -// ПолучатьСсылкуНаДвоичныеДанные - Булево - если передать Ложь, то ссылка на двоичные данные -// не будет получена, что существенно ускорит выполнение для больших двоичных данных. -// -// ДляРедактирования - Булево - если указать Истина, то свободный файл будет захвачен для редактирования. -// -// Возвращаемое значение: -// Структура - со свойствами: -// * СсылкаНаДвоичныеДанныеФайла - Строка - адрес во временном хранилище. -// * ОтносительныйПуть - Строка - относительный путь файла. -// * ДатаМодификацииУниверсальная - Дата - дата изменения фала. -// * ИмяФайла - Строка - имя файла без точки. -// * Наименование - Строка - наименование файла в справочнике хранения файлов. -// * Расширение - Строка - расширение файла без точки. -// * Размер - Число - размер файла. -// * Редактирует - СправочникСсылка.Пользователи, СправочникСсылка.ВнешниеПользователи, -// СправочникСсылка.УчетныеЗаписиСинхронизацииФайлов, Неопределено. -// * ПодписанЭП - Булево - Истина, если файл подписан. -// * Зашифрован - Булево - Истина, если файл зашифрован. -// * ФайлРедактируется - Булево - Истина, если файл занят для редактирования. -// * ФайлРедактируетТекущийПользователь - Булево - Истина, если файл занят для редактирования текущим пользователем. -// -Функция ПолучитьДанныеФайла(Знач ПрисоединенныйФайл, - Знач ИдентификаторФормы = Неопределено, - Знач ПолучатьСсылкуНаДвоичныеДанные = Истина, - Знач ДляРедактирования = Ложь) Экспорт - - Возврат РаботаСФайлами.ДанныеФайла(ПрисоединенныйФайл, - ИдентификаторФормы, - ПолучатьСсылкуНаДвоичныеДанные, - ДляРедактирования); - -КонецФункции - -// Устарела. -// Следует использовать РаботаСФайлами.ЗаполнитьПрисоединенныеФайлыКОбъекту. -// Заполняет массив ссылками на файлы объекта. -// -// Параметры: -// Объект - Ссылка - ссылка на объект, который может содержать присоединенные файлы. -// МассивФайлов - Массив - массив в который будут добавлены ссылки на файлы объекта: -// * СправочникСсылка - (возвращаемое значение) ссылка на присоединенный файл. -// -Процедура ПолучитьПрикрепленныеФайлыКОбъекту(Знач Объект, Знач МассивФайлов) Экспорт - - РаботаСФайлами.ЗаполнитьПрисоединенныеФайлыКОбъекту(Объект, МассивФайлов); - -КонецПроцедуры - -// Устарела. -// Следует использовать РаботаСФайлами.ДобавитьФайл. -// Создает объект в справочнике для хранения файла и заполняет его реквизиты переданными свойствами. -// -// Параметры: -// ПараметрыФайла - Структура - Параметры с данными файла. -// * Автор - Ссылка - пользователь, создавший файл. -// * ВладелецФайлов - Ссылка - объект, к которому добавляется файл. -// * ИмяБезРасширения - Строка - имя файла без расширения. -// * РасширениеБезТочки - Строка - расширение файла (без точки вначале). -// * ВремяИзмененияУниверсальное - Дата - дата и время изменения файла (UTC+0:00), -// если не указана, тогда используется ТекущаяУниверсальнаяДата. -// АдресФайлаВоВременномХранилище - Строка - адрес, указывающий на двоичные данные во временном хранилище. -// АдресВременногоХранилищаТекста - Строка - адрес, указывающий на извлеченный текст из файла во временном хранилище. -// Описание - Строка - текстовое описание файла. -// -// НоваяСсылкаНаФайл - Неопределено - создать новую ссылку на файл в стандартном справочнике -// или в нестандартном, но единственном справочнике. Когда у владельца файла несколько -// справочников, требуется обязательно передать ссылку, иначе будет вызвано -// исключение. -// - Ссылка - ссылка на элемент справочника хранения файлов, -// которую следует использовать для добавляемого файла. -// Должна соответствовать одному из типов справочников хранения файлов владельца -// файлов. -// Возвращаемое значение: -// СправочникСсылка - ссылка на созданный присоединенный файл. -// -Функция ДобавитьПрисоединенныйФайл(ПараметрыФайла, - Знач АдресФайлаВоВременномХранилище, - Знач АдресВременногоХранилищаТекста = "", - Знач Описание = "", - Знач НоваяСсылкаНаФайл = Неопределено) Экспорт - - Возврат РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, - АдресФайлаВоВременномХранилище, - АдресВременногоХранилищаТекста, - Описание, - НоваяСсылкаНаФайл); - -КонецФункции - -// Устарела. Следует использовать функцию ДобавитьПрисоединенныйФайл. -// -// Создает объект в справочнике для хранения файла и заполняет его реквизиты переданными свойствами. -// -// Параметры: -// ВладелецФайлов - Ссылка - объект, к которому добавляется файл. -// ИмяБезРасширения - Строка - имя файла без расширения. -// РасширениеБезТочки - Строка - расширение файла (без точки вначале). -// ВремяИзменения - Дата - (не используется) дата и время изменения файла (местное время). -// ВремяИзмененияУниверсальное - Дата - дата и время изменения файла (UTC+0:00), -// если не указана, тогда используется ТекущаяУниверсальнаяДата. -// АдресФайлаВоВременномХранилище - Строка - адрес, указывающий на двоичные данные во временном хранилище. -// АдресВременногоХранилищаТекста - Строка - адрес, указывающий на извлеченный текст из файла во временном хранилище. -// Описание - Строка - текстовое описание файла. -// -// НоваяСсылкаНаФайл - Неопределено - создать новую ссылку на файл в стандартном справочнике -// или в нестандартном, но единственном справочнике. Когда у владельца файла несколько -// справочников, требуется обязательно передать ссылку, иначе будет вызвано -// исключение. -// - Ссылка - ссылка на элемент справочника хранения файлов, -// которую следует использовать для добавляемого файла. -// Должна соответствовать одному из типов справочников хранения файлов владельца -// файлов. -// -// Возвращаемое значение: -// СправочникСсылка - ссылка на созданный присоединенный файл. -// -Функция ДобавитьФайл(Знач ВладелецФайлов, - Знач ИмяБезРасширения, - Знач РасширениеБезТочки = Неопределено, - Знач ВремяИзменения = Неопределено, - Знач ВремяИзмененияУниверсальное = Неопределено, - Знач АдресФайлаВоВременномХранилище, - Знач АдресВременногоХранилищаТекста = "", - Знач Описание = "", - Знач НоваяСсылкаНаФайл = Неопределено) Экспорт - - ПараметрыФайла = Новый Структура; - ПараметрыФайла.Вставить("Автор", Неопределено); - ПараметрыФайла.Вставить("ВладелецФайлов", ВладелецФайлов); - ПараметрыФайла.Вставить("ИмяБезРасширения", ИмяБезРасширения); - ПараметрыФайла.Вставить("РасширениеБезТочки", РасширениеБезТочки); - ПараметрыФайла.Вставить("ВремяИзмененияУниверсальное", ВремяИзмененияУниверсальное); - - Возврат РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, - АдресФайлаВоВременномХранилище, - АдресВременногоХранилищаТекста, - Описание, - НоваяСсылкаНаФайл); - -КонецФункции - -// Устарела. -// Следует использовать РаботаСФайлами.НоваяСсылкаНаФайл. -// Возвращает новую ссылку на файл для указанного владельца, -// которую можно использовать, а затем передать в функцию ДобавитьФайл. -// -// Параметры: -// ВладелецФайлов - Ссылка - ссылка на объект, к которому добавляется файл. -// -// ИмяСправочника - Неопределено - вычислить справочник по владельцу (допустимо, -// когда справочник только один, иначе будет вызвано исключение). -// -// - Строка - имя справочника *ПрисоединенныеФайлы, отличное -// от стандартного <ИмяВладельца>ПрисоединенныеФайлы. -// -// Возвращаемое значение: -// СправочникСсылка - ссылка на новый еще несозданный присоединенный файл. -// -Функция НоваяСсылкаНаФайл(ВладелецФайлов, ИмяСправочника = Неопределено) Экспорт - - Возврат РаботаСФайлами.НоваяСсылкаНаФайл(ВладелецФайлов, ИмяСправочника); - -КонецФункции - -// Устарела. -// Следует использовать РаботаСФайлами.ОбновитьФайл. -// Обновляет свойства файла - двоичные данные, текст, дату изменения, -// а также другие необязательные свойства. -// -// Параметры: -// ПрисоединенныйФайл - СправочникСсылка - ссылка на справочник с именем "*ПрисоединенныеФайлы". -// ИнформацияОФайле - Структура - со свойствами: -// <обязательные> -// * АдресФайлаВоВременномХранилище - Строка - адрес новых двоичных данных файла. -// * АдресВременногоХранилищаТекста - Строка - адрес новых двоичных данных текста, -// извлеченного из файла. -// <необязательные> -// * ИмяБезРасширения - Строка - если свойство не указано или не заполнено, -// тогда не будет изменено. -// * ДатаМодификацииУниверсальная - Дата - дата последнего изменения файла, если -// свойство не указано или не заполнено, тогда будет -// установлена текущая дата сеанса. -// * Расширение - Строка - новое расширение файла. -// * Редактирует - Ссылка - новый пользователь, редактирующий файл. -// -Процедура ОбновитьПрисоединенныйФайл(Знач ПрисоединенныйФайл, Знач ИнформацияОФайле) Экспорт - - РаботаСФайлами.ОбновитьФайл(ПрисоединенныйФайл, ИнформацияОФайле); - -КонецПроцедуры - -// Устарела. -// Следует использовать РаботаСФайлами.ИмяФормыОбъектаПрисоединенныхФайловПоВладельцу. -// Возвращает имя формы объекта присоединенных файлов по владельцу. -// -// Параметры: -// ВладелецФайлов - Ссылка - ссылка на объект, по которому определяется имя формы. -// -// Возвращаемое значение: -// Строка - имя формы объекта присоединенных файлов по владельцу. -// -Функция ПолучитьИмяФормыОбъектаПрисоединенныхФайловПоВладельцу(Знач ВладелецФайлов) Экспорт - - Возврат РаботаСФайлами.ИмяФормыОбъектаФайловПоВладельцу(ВладелецФайлов); - -КонецФункции - -// Устарела. -// Следует использовать РаботаСФайлами.КОбъектуМожноПрисоединятьФайлы. -// Определяет наличие хранилища присоединенных файлов у объекта -// право Добавление в хранилище (справочник присоединенных файлов). -// -// Параметры: -// ВладелецФайлов - Ссылка - ссылка на объект для которого выполняется проверка. -// ИмяСправочника - Строка - если требуется проверка добавления в указанное хранилище. -// -// Возвращаемое значение: -// Булево - если Истина, тогда к объекту может присоединять файлы. -// -Функция КОбъектуМожноПрисоединятьФайлы(ВладелецФайлов, ИмяСправочника = "") Экспорт - - Возврат РаботаСФайлами.КОбъектуМожноПрисоединятьФайлы(ВладелецФайлов, ИмяСправочника); - -КонецФункции - -// Устарела. Следует использовать РаботаСФайлами.ИзменитьСправочникХраненияФайлов. -// Конвертирует файлы из подсистемы Работа с файлами в подсистему Присоединенные файлы. -// Требует наличия подсистемы Работа с файлами. -// -// Для использования в процедурах обновления ИБ, если выполняется переход от использования -// одной подсистемы к другой в каком-либо объекте-владельце файлов. -// Выполняется последовательно для каждого элемента объекта-владельца файлов -// (элемента справочника, ПВХ, документа и т.п.). -// -// Параметры: -// ВладелецФайлов - Ссылка - ссылка на объект для которого выполняется конвертация. -// ИмяСправочника - Строка - если требуется конвертация в указанное хранилище. -// -Процедура СконвертироватьФайлыВПрисоединенные(Знач ВладелецФайлов, ИмяСправочника = Неопределено) Экспорт - - РаботаСФайлами.ИзменитьСправочникХраненияФайлов(ВладелецФайлов, ИмяСправочника); - -КонецПроцедуры - -// Устарела. Следует использовать РаботаСФайлами.СсылкиНаОбъектыСФайлами. -// Возвращает ссылки на объекты с файлами из подсистемы Работа с файлами. -// Требует наличия подсистемы Работа с файлами. -// -// Используется совместно с функцией СконвертироватьФайлыВПрисоединенные. -// -// Параметры: -// ТаблицаВладельцевФайлов - Строка - полное имя объекта метаданных, -// который может владеть присоединенными файлами. -// -// Возвращаемое значение: -// Массив - со значениями: -// * Ссылка - ссылка на объект у которого есть хотя бы один присоединенный файл. -// -Функция СсылкиНаОбъектыСФайлами(Знач ТаблицаВладельцевФайлов) Экспорт - - Возврат РаботаСФайлами.СсылкиНаОбъектыСФайлами(ТаблицаВладельцевФайлов); - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Процедуры, подключаемые к событиям управляемых форм. - -// Устарела. Следует использовать РаботаСФайлами.ПриЗаписиНаСервере. -// Обработчик события ПриЗаписиНаСервере управляемой формы владельца присоединенного файла. -// -// Параметры: -// Отказ - Булево - стандартный параметр события ПриЗаписиНаСервере управляемой формы. -// ТекущийОбъект - Объект - стандартный параметр события ПриЗаписиНаСервере управляемой формы. -// ПараметрыЗаписи - Структура - стандартный параметр события ПриЗаписиНаСервере управляемой формы. -// Параметры - ДанныеФормыСтруктура - свойство Параметры управляемой формы. -// -Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи, Параметры) Экспорт - - РаботаСФайлами.ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи, Параметры); - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Процедуры, вызываемые из модуля менеджера справочников с присоединенными файлами. - - -// Устарела. Следует использовать РаботаСФайлами.РеквизитыРедактируемыеВГрупповойОбработке. -// Возвращает реквизиты объекта, которые разрешается редактировать -// с помощью обработки группового изменения реквизитов. -// -// Возвращаемое значение: -// Массив - список имен реквизитов объекта. -Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт - - Возврат РаботаСФайлами.РеквизитыРедактируемыеВГрупповойОбработке(); - -КонецФункции - - -// Устарела. Следует использовать РаботаСФайлами.ДобавитьПодписьКФайлу. -//////////////////////////////////////////////////////////////////////////////// -// Операции с электронной подписью. -// Устарела. Следует использовать РаботаСФайлами.ДобавитьПодписьКФайлу. -// Добавляет подпись к файлу. -// Параметры: -// ПрисоединенныйФайл - Ссылка - ссылка на присоединенный файл. -// -// СвойстваПодписи - Структура - содержит данные, которые возвращает процедура Подписать -// общего модуля ЭлектроннаяПодписьКлиент в качестве результата. -// - Массив - массив описанных выше структур. -// -// ИдентификаторФормы - УникальныйИдентификатор - если указан, то используется при блокировке объекта. -// -Процедура ДобавитьПодписьКФайлу(ПрисоединенныйФайл, СвойстваПодписи, ИдентификаторФормы = Неопределено) Экспорт - - РаботаСФайлами.ДобавитьПодписьКФайлу(ПрисоединенныйФайл, СвойстваПодписи, ИдентификаторФормы); - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики подписок на события. - - -// Устарела. -// Следует использовать РаботаСФайлами.ОпределитьФормуПрисоединенногоФайла. -// Обработчик подписки на событие ОбработкаПолученияФормы для переопределения формы присоединенного файла. -// -// Параметры: -// Источник - СправочникМенеджер - менеджер справочника с именем "*ПрисоединенныеФайлы". -// ВидФормы - Строка - имя стандартной формы. -// Параметры - Структура - параметры формы. -// ВыбраннаяФорма - Строка - имя или объект метаданных открываемой формы. -// ДополнительнаяИнформация - Структура - дополнительная информация открытия формы. -// СтандартнаяОбработка - Булево - признак выполнения стандартной (системной) обработки события. -// -Процедура ПереопределитьПолучаемуюФормуПрисоединенногоФайла(Источник, ВидФормы, Параметры, - ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) Экспорт - - РаботаСФайлами.ОпределитьФормуПрисоединенногоФайла(Источник, ВидФормы, Параметры, - ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) - -КонецПроцедуры - -// Устарела. -// Следует использовать РаботаСФайлами.УстановитьПометкуУдаленияФайловПередЗаписью. -// Обработчик подписки на событие ПередЗаписью владельца присоединенного файла. -// Помечает на удаление связанные файлы. -// -// Параметры: -// Источник - Объект - владелец присоединенного файла, кроме ДокументОбъект. -// Отказ - Булево - признак отказа от записи. -// -Процедура УстановитьПометкуУдаленияПрисоединенныхФайлов(Источник, Отказ) Экспорт - - РаботаСФайлами.УстановитьПометкуУдаленияПрисоединенныхФайлов(Источник, Отказ); - -КонецПроцедуры - -// Устарела. -// Следует использовать РаботаСФайлами.УстановитьПометкуУдаленияФайловДокументовПередЗаписью. -// Обработчик подписки на событие ПередЗаписью владельца присоединенного файла. -// Помечает на удаление связанные файлы. -// -// Параметры: -// Источник - ДокументОбъект - владелец присоединенного файла. -// Отказ - Булево - параметр, передаваемый в подписку на событие ПередЗаписью. -// РежимЗаписи - Булево - параметр, передаваемый в подписку на событие ПередЗаписью. -// РежимПроведения - Булево - параметр, передаваемый в подписку на событие ПередЗаписью. -// -Процедура УстановитьПометкуУдаленияПрисоединенныхФайловДокументов(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт - - РаботаСФайлами.УстановитьПометкуУдаленияПрисоединенныхФайловДокументов(Источник, Отказ, РежимЗаписи, РежимПроведения); - -КонецПроцедуры - -#КонецОбласти - -#КонецОбласти - diff --git a/SSL/src/CommonModules/ПрисоединенныеФайлы/ПрисоединенныеФайлы.mdo b/SSL/src/CommonModules/ПрисоединенныеФайлы/ПрисоединенныеФайлы.mdo deleted file mode 100644 index 481703a4c..000000000 --- a/SSL/src/CommonModules/ПрисоединенныеФайлы/ПрисоединенныеФайлы.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - ПрисоединенныеФайлы - - ru - Присоединенные файлы - - true - true - true - diff --git a/SSL/src/CommonModules/ПрисоединенныеФайлыКлиент/Module.bsl b/SSL/src/CommonModules/ПрисоединенныеФайлыКлиент/Module.bsl deleted file mode 100644 index 7e570f3c8..000000000 --- a/SSL/src/CommonModules/ПрисоединенныеФайлыКлиент/Module.bsl +++ /dev/null @@ -1,308 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Присоединенные файлы". -// -//////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -#Область УстаревшиеПроцедурыИФункции - -// Устарела. -// Следует использовать РаботаСФайламиКлиент.ОткрытьФайл. -// Открывает файл для просмотра или редактирования. -// Если файл открывается для просмотра, тогда получает файл в рабочий каталог пользователя, -// при этом ищет файл в рабочем каталоге и предлагает открыть существующий или получить файл с сервера. -// Если файл открывается для редактирования, тогда открывает файл в рабочем каталоге (если есть) или -// получает его с сервера. -// -// Параметры: -// ДанныеФайла - Структура - данные файла. -// ДляРедактирования - Булево - Истина, если файл открывается для редактирования, иначе Ложь. -// -Процедура ОткрытьФайл(Знач ДанныеФайла, Знач ДляРедактирования = Ложь) Экспорт - - РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ДляРедактирования); - -КонецПроцедуры - -// Устарела. -// Следует использовать РаботаСФайламиКлиент.ДобавитьФайлы. -// Обработчик команды добавления файлов. -// Предлагает пользователю выбирать файлы в диалоге выбора файлов и -// пытается поместить выбранные файлы в хранилище файлов, когда: -// - размер файла не превышает максимально допустимый, -// - файл имеет допустимое расширение, -// - имеется свободное место в томе (при хранении файлов в томах), -// - прочие условия. -// -// Параметры: -// ВладелецФайла - Ссылка - владелец файла. -// ИдентификаторФормы - УникальныйИдентификатор - идентификатор управляемой формы. -// Фильтр - Строка - необязательный параметр, -// позволяет задать фильтр выбираемого файла, -// например, картинки для номенклатуры. -// -Процедура ДобавитьФайлы(Знач ВладелецФайла, Знач ИдентификаторФормы, Знач Фильтр = "") Экспорт - - РаботаСФайламиКлиент.ДобавитьФайлы(ВладелецФайла, ИдентификаторФормы, Фильтр); - -КонецПроцедуры - -// Устарела. -// Следует использовать РаботаСФайламиКлиент.ПодписатьФайл. -// Подписывает присоединенный файл. -// -// Параметры: -// ПрисоединенныйФайл - СправочникСсылка - ссылка на справочник с именем "*ПрисоединенныеФайлы". -// ИдентификаторФормы - УникальныйИдентификатор - идентификатор управляемой формы. -// ДополнительныеПараметры - Неопределено - стандартное поведение (см. ниже). -// - Структура - со свойствами: -// * ДанныеФайла - Структура - данные файла, если свойства нет, будет вставлено. -// * ОбработкаРезультата - ОписаниеОповещения - при вызове передается значение типа Булево, -// если Истина - файл успешно подписан, иначе не подписан, -// если свойства нет, оповещение не будет вызвано. -// -Процедура ПодписатьФайл(ПрисоединенныйФайл, ИдентификаторФормы, ДополнительныеПараметры = Неопределено) Экспорт - - РаботаСФайламиКлиент.ПодписатьФайл(ПрисоединенныйФайл, ИдентификаторФормы, ДополнительныеПараметры); - -КонецПроцедуры - -// Устарела. -// Следует использовать РаботаСФайламиКлиент.СохранитьВместеСЭП. -// Сохраняет файл вместе вместе с ЭП. -// Используется в обработчике команды сохранения файла. -// -// Параметры: -// ПрисоединенныйФайл - СправочникСсылка - ссылка на справочник с именем "*ПрисоединенныеФайлы". -// ДанныеФайла - Структура - (необязательный) - данные файла. -// ИдентификаторФормы - УникальныйИдентификатор - идентификатор управляемой формы. -// -Процедура СохранитьВместеСЭП(Знач ПрисоединенныйФайл, Знач ДанныеФайла, Знач ИдентификаторФормы) Экспорт - - РаботаСФайламиКлиент.СохранитьВместеСЭП(ПрисоединенныйФайл, ИдентификаторФормы); - -КонецПроцедуры - -// Устарела. -// Следует использовать РаботаСФайламиКлиент.СохранитьФайлКак. -// Сохраняет файл в каталог на диске. -// Так же используется, как вспомогательная функция при сохранении файла с ЭП. -// -// Параметры: -// ДанныеФайла - Структура - данные файла. -// -// Возвращаемое значение: -// Строка - имя сохраненного файла. -// -Процедура СохранитьФайлКак(Знач ДанныеФайла) Экспорт - - РаботаСФайламиКлиент.СохранитьФайлКак(ДанныеФайла); - -КонецПроцедуры - -// Устарела. -// Следует использовать РаботаСФайламиКлиент.ПерейтиКФормеФайла. -// Открывает общую форму присоединенного файла из формы элемента -// справочника присоединенных файлов. Форма элемента закрывается. -// -// Параметры: -// Форма - УправляемаяФорма - форма справочника присоединенных файлов. -// -Процедура ПерейтиКФормеПрисоединенногоФайла(Знач Форма) Экспорт - - ПрисоединенныйФайл = Форма.Ключ; - - Форма.Закрыть(); - - Для Каждого ОкноКП Из ПолучитьОкна() Цикл - - Содержимое = ОкноКП.ПолучитьСодержимое(); - - Если Содержимое = Неопределено Тогда - Продолжить; - КонецЕсли; - - Если Содержимое.ИмяФормы = "Обработка.РаботаСФайлами.Форма.ПрисоединенныйФайл" Тогда - Если Содержимое.Параметры.Свойство("ПрисоединенныйФайл") - И Содержимое.Параметры.ПрисоединенныйФайл = ПрисоединенныйФайл Тогда - ОкноКП.Активизировать(); - Возврат; - КонецЕсли; - КонецЕсли; - - КонецЦикла; - - РаботаСФайламиКлиент.ОткрытьФормуФайла(ПрисоединенныйФайл); - -КонецПроцедуры - -// Устарела. -// Следует использовать РаботаСФайламиКлиент.ОткрытьФормуВыбораФайлов. -// Открывает форму выбора файлов. -// Используется в обработчике выбора для переопределения стандартного поведения. -// -// Параметры: -// ВладелецФайлов - Ссылка - ссылка на объект с файлами. -// ЭлементФормы - ТаблицаФормы, ПолеФормы - элемент формы, которому будет отправлено -// оповещение о выборе. -// СтандартнаяОбработка - Булево - (возвращаемое значение), всегда устанавливается в Ложь. -// -Процедура ОткрытьФормуВыбораФайлов(Знач ВладелецФайлов, Знач ЭлементФормы, СтандартнаяОбработка = Ложь) Экспорт - - СтандартнаяОбработка = Ложь; - - ПараметрыФормы = Новый Структура; - ПараметрыФормы.Вставить("РежимВыбора", Истина); - ПараметрыФормы.Вставить("ВладелецФайла", ВладелецФайлов); - - ОткрытьФорму("Обработка.РаботаСФайлами.Форма.ПрисоединенныеФайлы", ПараметрыФормы, ЭлементФормы); - -КонецПроцедуры - -// Устарела. -// Следует использовать РаботаСФайламиКлиент.ОткрытьФормуФайла. -// Открывает форму присоединенного файла. -// Может использоваться как обработчик открытия присоединенного файла. -// -// Параметры: -// ПрисоединенныйФайл - СправочникСсылка - ссылка на справочник с именем "*ПрисоединенныеФайлы". -// СтандартнаяОбработка - Булево - (возвращаемое значение), всегда устанавливается в Ложь. -// -Процедура ОткрытьФормуПрисоединенногоФайла(Знач ПрисоединенныйФайл, СтандартнаяОбработка = Ложь) Экспорт - - РаботаСФайламиКлиент.ОткрытьФормуФайла(ПрисоединенныйФайл, СтандартнаяОбработка); - -КонецПроцедуры - -// Устарела. -// Следует использовать РаботаСФайламиКлиент.ДанныеФайла. -// Возвращает структуру данных файла. Используется в различных командах работы с файлами, -// и как значение параметра ДанныеФайла других процедур и функций. -// -// Параметры: -// ПрисоединенныйФайл - СправочникСсылка - ссылка на справочник с именем "*ПрисоединенныеФайлы". -// -// ИдентификаторФормы - УникальныйИдентификатор - идентификатор формы, который -// используется при получении двоичных данных файла. -// -// ПолучатьСсылкуНаДвоичныеДанные - Булево - если передать Ложь, то ссылка на двоичные данные -// не будет получена, что существенно ускорит выполнение для больших двоичных данных. -// -// ДляРедактирования - Булево - если указать Истина, то свободный файл будет захвачен для редактирования. -// -// Возвращаемое значение: -// Структура - со свойствами: -// * СсылкаНаДвоичныеДанныеФайла - Строка - адрес во временном хранилище. -// * ОтносительныйПуть - Строка - относительный путь файла. -// * ДатаМодификацииУниверсальная - Дата - дата изменения фала. -// * ИмяФайла - Строка - имя файла без точки. -// * Наименование - Строка - наименование файла в справочнике хранения файлов. -// * Расширение - Строка - расширение файла без точки. -// * Размер - Число - размер файла. -// * Редактирует - СправочникСсылка.Пользователи, СправочникСсылка.ВнешниеПользователи, -// Неопределено - ссылка на пользователя, занявшего файл. -// * ПодписанЭП - Булево - Истина, если файл подписан. -// * Зашифрован - Булево - Истина, если файл зашифрован. -// * ФайлРедактируется - Булево - Истина, если файл занят для редактирования. -// * ФайлРедактируетТекущийПользователь - Булево - Истина, если файл занят для редактирования текущим пользователем. -// -Функция ПолучитьДанныеФайла(Знач ПрисоединенныйФайл, - Знач ИдентификаторФормы = Неопределено, - Знач ПолучатьСсылкуНаДвоичныеДанные = Истина, - Знач ДляРедактирования = Ложь) Экспорт - - Возврат РаботаСФайламиКлиент.ДанныеФайла(ПрисоединенныйФайл, ИдентификаторФормы, ПолучатьСсылкуНаДвоичныеДанные,ДляРедактирования); - -КонецФункции - -// Устарела. -// Следует использовать РаботаСФайламиКлиент.ПолучитьФайл. -// Получает файл из хранилища файлов в рабочий каталог пользователя. -// Аналог интерактивного действия Просмотреть или Редактировать без открытия полученного файла. -// Свойство ТолькоПросмотр полученного файла будет установлено в зависимости от того захвачен -// файл для редактирования или нет. Если не захвачен - устанавливается только просмотр. -// Если в рабочем каталоге уже существует файл, тогда он будет удален и заменен файлом, -// полученным из хранилища файлов. -// -// Параметры: -// Оповещение - ОписаниеОповещения - оповещение, которое выполняется после получения файла в -// рабочий каталог пользователя. В качестве результата возвращается Структура со свойствами: -// * ПолноеИмяФайла - Строка - полное имя файла (с путем). -// * ОписаниеОшибки - Строка - текст ошибки, если получить файл не удалось. -// -// ПрисоединенныйФайл - СправочникСсылка - ссылка на справочник с именем "*ПрисоединенныеФайлы". -// ИдентификаторФормы - УникальныйИдентификатор - идентификатор управляемой формы. -// -// ДополнительныеПараметры - Неопределено - использовать значения по умолчанию. -// - Структура - с необязательными свойствами: -// * ДляРедактирования - Булево - начальное значение Ложь. Если Истина, -// тогда файл будет захвачен для редактирования. -// * ДанныеФайла - Структура - свойства файла, которые можно передать для ускорения -// если они ранее были получены на клиент с сервера. -// -Процедура ПолучитьПрисоединенныйФайл(Оповещение, ПрисоединенныйФайл, ИдентификаторФормы, ДополнительныеПараметры = Неопределено) Экспорт - - РаботаСФайламиКлиент.ПолучитьПрисоединенныйФайл( - Оповещение, - ПрисоединенныйФайл, - ИдентификаторФормы, - ДополнительныеПараметры); - -КонецПроцедуры - -// Устарела. -// Следует использовать РаботаСФайламиКлиент.ПоместитьФайл. -// Помещает файл из рабочего каталога пользователя в хранилище файлов. -// Аналог интерактивного действия Закончить редактирование. -// -// Параметры: -// Оповещение - ОписаниеОповещения - оповещение, которое выполняется после помещения файла в -// хранилище файлов. В качестве результата возвращается Структура со свойствами: -// * ОписаниеОшибки - Строка - текст ошибки, если поместить файл не удалось. -// -// ПрисоединенныйФайл - СправочникСсылка - ссылка на справочник с именем "*ПрисоединенныеФайлы". -// ИдентификаторФормы - УникальныйИдентификатор - идентификатор управляемой формы. -// -// ДополнительныеПараметры - Неопределено - использовать значения по умолчанию. -// - Структура - с необязательными свойствами: -// * ПолноеИмяФайла - Строка - если заполнено, то указанный файл будет помещен в рабочий каталог -// пользователя, а затем в хранилище файлов. -// * ДанныеФайла - Структура - свойства файла, которые можно передать для ускорения -// если они ранее были получены на клиент с сервера. -// -Процедура ПоместитьПрисоединенныйФайл(Оповещение, ПрисоединенныйФайл, ИдентификаторФормы, ДополнительныеПараметры = Неопределено) Экспорт - - РаботаСФайламиКлиент.ПоместитьПрисоединенныйФайл( - Оповещение, - ПрисоединенныйФайл, - ИдентификаторФормы, - ДополнительныеПараметры); - -КонецПроцедуры - -// Устарела. -// Следует использовать РаботаСФайламиКлиент.НапечататьФайлы. -// Выполняет печать файлов. -// -// Параметры: -// ДанныеФайлов - Массив - массив структур с данными файлов. -// ИдентификаторФормы - УникальныйИдентификатор - идентификатор управляемой формы. -// -Процедура НапечататьФайлы(ДанныеФайлов, ИдентификаторФормы) Экспорт - - РаботаСФайламиКлиент.НапечататьФайлы(ДанныеФайлов, ИдентификаторФормы); - -КонецПроцедуры - -#КонецОбласти - -#КонецОбласти diff --git a/SSL/src/CommonModules/ПрисоединенныеФайлыКлиентСервер/Module.bsl b/SSL/src/CommonModules/ПрисоединенныеФайлыКлиентСервер/Module.bsl deleted file mode 100644 index 05d366a92..000000000 --- a/SSL/src/CommonModules/ПрисоединенныеФайлыКлиентСервер/Module.bsl +++ /dev/null @@ -1,52 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////////// -// Подсистема "Присоединенные файлы". -// -//////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -#Область УстаревшиеПроцедурыИФункции - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики подписок на события. - -// Устарела. -// Следует использовать РаботаСФайлами.ОпределитьФормуПрисоединенногоФайла. -// Обработчик подписки на событие ОбработкаПолученияФормы для переопределения формы файла. -// -// Параметры: -// Источник - СправочникМенеджер - менеджер справочника с именем "*ПрисоединенныеФайлы". -// ВидФормы - Строка - имя стандартной формы. -// Параметры - Структура - параметры формы. -// ВыбраннаяФорма - Строка - имя или объект метаданных открываемой формы. -// ДополнительнаяИнформация - Структура - дополнительная информация открытия формы. -// СтандартнаяОбработка - Булево - признак выполнения стандартной (системной) обработки события. -// -Процедура ПереопределитьПолучаемуюФормуПрисоединенногоФайла(Источник, - ВидФормы, - Параметры, - ВыбраннаяФорма, - ДополнительнаяИнформация, - СтандартнаяОбработка) Экспорт - - РаботаСФайламиСлужебныйВызовСервера.ОпределитьФормуПрисоединенногоФайла( - Источник, - ВидФормы, - Параметры, - ВыбраннаяФорма, - ДополнительнаяИнформация, - СтандартнаяОбработка); - -КонецПроцедуры - -#КонецОбласти - -#КонецОбласти diff --git a/SSL/src/CommonModules/РаботаВБезопасномРежиме/Module.bsl b/SSL/src/CommonModules/РаботаВБезопасномРежиме/Module.bsl index 2273a3ff3..4c1fd5922 100644 --- a/SSL/src/CommonModules/РаботаВБезопасномРежиме/Module.bsl +++ b/SSL/src/CommonModules/РаботаВБезопасномРежиме/Module.bsl @@ -429,61 +429,6 @@ КонецФункции -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать ОбщегоНазначения.ВыполнитьМетодКонфигурации. -// -// Параметры: -// ИмяМетода - Строка - имя экспортной процедуры в формате -// <имя объекта>.<имя процедуры>, где <имя объекта> - это -// общий модуль или модуль менеджера объекта. -// Параметры - Массив - параметры передаются в процедуру <ИмяЭкспортнойПроцедуры> -// в порядке расположения элементов массива. -// -Процедура ВыполнитьМетодКонфигурации(Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт - ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, Параметры); -КонецПроцедуры - -// Устарела. Следует использовать ОбщегоНазначения.ВыполнитьМетодОбъекта. -// -// Параметры: -// Объект - Произвольный - объект встроенного языка 1С:Предприятия, содержащий методы (например, ОбработкаОбъект), -// ИмяМетода - Строка - имя экспортной процедуры модуля объекта обработки. -// Параметры - Массив - параметры передаются в процедуру <ИмяПроцедуры> в порядке расположения элементов массива. -// -Процедура ВыполнитьМетодОбъекта(Знач Объект, Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт - ОбщегоНазначения.ВыполнитьМетодОбъекта(Объект, ИмяМетода, Параметры); -КонецПроцедуры - -// Устарела. Следует использовать ОбщегоНазначения.ВыполнитьВБезопасномРежиме. -// -// Параметры: -// Алгоритм - Строка - содержащая произвольный алгоритм на встроенном языке 1С:Предприятия. -// Параметры - Произвольный - в качестве значения данного параметра может быть передано значение, -// которое требуется для выполнения алгоритма (при этом в тексте алгоритма обращение к данному -// значению должно осуществляться как к имени переменной Параметры). -// -Процедура ВыполнитьВБезопасномРежиме(Знач Алгоритм, Знач Параметры = Неопределено) Экспорт - ОбщегоНазначения.ВыполнитьВБезопасномРежиме(Алгоритм, Параметры); -КонецПроцедуры - -// Устарела. Следует использовать ОбщегоНазначения.ВычислитьВБезопасномРежиме. -// -// Параметры: -// Выражение - Строка - выражение, которое требуется вычислить. Например, "МойМодуль.МояФункция(Параметры)". -// Параметры - Произвольный - в качестве значения данного параметра может быть передано значение, -// которое требуется для вычисления выражения (при этом в тексте выражения обращение к данному -// значению должно осуществляться как к имени переменной Параметры). -// -// Возвращаемое значение: -// Произвольный - результат вычисления выражения. -// -Функция ВычислитьВБезопасномРежиме(Знач Выражение, Знач Параметры = Неопределено) Экспорт - Возврат ОбщегоНазначения.ВычислитьВБезопасномРежиме(Выражение, Параметры); -КонецФункции - -#КонецОбласти - #КонецОбласти #Область СлужебныйПрограммныйИнтерфейс diff --git a/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиент/Module.bsl b/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиент/Module.bsl index ededdd139..f5898a06f 100644 --- a/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиент/Module.bsl @@ -12,13 +12,13 @@ // // Параметры: // Идентификаторы - Массив - идентификаторы запросов, которые требуется применить, -// ФормаВладелец - УправляемаяФорма - форма, которая должна блокироваться до окончания применения разрешений, +// ФормаВладелец - ФормаКлиентскогоПриложения - форма, которая должна блокироваться до окончания применения разрешений, // ОповещениеОЗакрытии - ОписаниеОповещения - которое будет вызвано при успешном предоставлении разрешений. // Процедура ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(Знач Идентификаторы, ФормаВладелец, ОповещениеОЗакрытии) Экспорт СтандартнаяОбработка = Истина; - ИнтеграцияСТехнологиейСервисаКлиент.ПриПодтвержденииЗапросовНаИспользованиеВнешнихРесурсов(Идентификаторы, ФормаВладелец, ОповещениеОЗакрытии, СтандартнаяОбработка); + ИнтеграцияПодсистемБСПКлиент.ПриПодтвержденииЗапросовНаИспользованиеВнешнихРесурсов(Идентификаторы, ФормаВладелец, ОповещениеОЗакрытии, СтандартнаяОбработка); Если Не СтандартнаяОбработка Тогда Возврат; КонецЕсли; @@ -50,7 +50,7 @@ // Позволяет администратору открыть внешнюю обработку или отчет с выбором безопасного режима. // // Параметры: -// Владелец - УправляемаяФорма - форма-владелец формы внешней обработки или отчета. +// Владелец - ФормаКлиентскогоПриложения - форма-владелец формы внешней обработки или отчета. // Процедура ОткрытьВнешнююОбработкуИлиОтчет(Владелец) Экспорт diff --git a/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиентПереопределяемый/Module.bsl index bd3966bc6..73f524676 100644 --- a/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РаботаВБезопасномРежимеКлиентПереопределяемый/Module.bsl @@ -12,7 +12,7 @@ // // Параметры: // ИдентификаторыЗапросов - Массив - идентификаторы запросов, которые требуется применить, -// ФормаВладелец - УправляемаяФорма - форма, которая должна блокироваться до окончания применения разрешений, +// ФормаВладелец - ФормаКлиентскогоПриложения - форма, которая должна блокироваться до окончания применения разрешений, // ОповещениеОЗакрытии - ОписаниеОповещения - которое будет вызвано при успешном предоставлении разрешений. // СтандартнаяОбработка - Булево - флаг выполнения стандартной обработки применения разрешений на использование // внешних ресурсов (подключение к агенту сервера через COM-соединение или сервер администрирования с diff --git a/SSL/src/CommonModules/РаботаВБезопасномРежимеПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаВБезопасномРежимеПереопределяемый/Module.bsl index c72704f65..060c46bde 100644 --- a/SSL/src/CommonModules/РаботаВБезопасномРежимеПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РаботаВБезопасномРежимеПереопределяемый/Module.bsl @@ -51,7 +51,6 @@ Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт - КонецПроцедуры // Вызывается при создании запроса разрешений на использование внешних ресурсов. diff --git a/SSL/src/CommonModules/РаботаВБезопасномРежимеСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаВБезопасномРежимеСлужебный/Module.bsl index 4ba263c5c..74c2944ce 100644 --- a/SSL/src/CommonModules/РаботаВБезопасномРежимеСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаВБезопасномРежимеСлужебный/Module.bsl @@ -19,7 +19,7 @@ Отказ = Ложь; - ИнтеграцияСТехнологиейСервиса.ПриПроверкеВозможностиНастройкиПрофилейБезопасности(Отказ); + ИнтеграцияПодсистемБСП.ПриПроверкеВозможностиНастройкиПрофилейБезопасности(Отказ); Если Не Отказ Тогда РаботаВБезопасномРежимеПереопределяемый.ПриПроверкеВозможностиНастройкиПрофилейБезопасности(Отказ); КонецЕсли; @@ -260,7 +260,7 @@ Результат = Неопределено; Операция = Перечисления.ОперацииАдминистрированияПрофилейБезопасности.Создание; - ИнтеграцияСТехнологиейСервиса.ПриЗапросеСозданияПрофиляБезопасности( + ИнтеграцияПодсистемБСП.ПриЗапросеСозданияПрофиляБезопасности( ПрограммныйМодуль, СтандартнаяОбработка, Результат); Если СтандартнаяОбработка Тогда @@ -378,13 +378,9 @@ Архиватор.Извлечь(Архиватор.Элементы.Найти(ОписаниеКомпоненты.path), КаталогРаспаковки); - Хэширование = Новый ХешированиеДанных(ХешФункция.SHA1); - Хэширование.ДобавитьФайл(ФайлКомпоненты); - - ХэшСумма = Хэширование.ХешСумма; - ХэшСуммаПреобразованнаяКСтрокеBase64 = Base64Строка(ХэшСумма); - - Результат.Вставить(ОписаниеКомпоненты.path, ХэшСуммаПреобразованнаяКСтрокеBase64); + Хеширование = Новый ХешированиеДанных(ХешФункция.SHA1); + Хеширование.ДобавитьФайл(ФайлКомпоненты); + Результат.Вставить(ОписаниеКомпоненты.path, Base64Строка(Хеширование.ХешСумма)); КонецЕсли; @@ -463,7 +459,7 @@ СтандартнаяОбработка = Истина; Результат = Неопределено; - ИнтеграцияСТехнологиейСервиса.ПриЗапросеРазрешенийНаИспользованиеВнешнихРесурсов( + ИнтеграцияПодсистемБСП.ПриЗапросеРазрешенийНаИспользованиеВнешнихРесурсов( ПрограммныйМодуль, Владелец, РежимЗамещения, ДобавляемыеРазрешения, УдаляемыеРазрешения, СтандартнаяОбработка, Результат); Если СтандартнаяОбработка Тогда @@ -499,7 +495,7 @@ Результат = Неопределено; Операция = Перечисления.ОперацииАдминистрированияПрофилейБезопасности.Удаление; - ИнтеграцияСТехнологиейСервиса.ПриЗапросеУдаленияПрофиляБезопасности( + ИнтеграцияПодсистемБСП.ПриЗапросеУдаленияПрофиляБезопасности( ПрограммныйМодуль, СтандартнаяОбработка, Результат); Если СтандартнаяОбработка Тогда diff --git a/SSL/src/CommonModules/РаботаВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/РаботаВМоделиСервиса/Module.bsl deleted file mode 100644 index fc0be40e6..000000000 --- a/SSL/src/CommonModules/РаботаВМоделиСервиса/Module.bsl +++ /dev/null @@ -1,4680 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Возвращает имя общего реквизита, который является разделителем основных данных. -// -// Возвращаемое значение: -// Строка - имя общего реквизита, который является разделителем основных данных. -// -Функция РазделительОсновныхДанных() Экспорт - - Возврат Метаданные.ОбщиеРеквизиты.ОбластьДанныхОсновныеДанные.Имя; - -КонецФункции - -// Возвращает имя общего реквизита, который является разделителем вспомогательных данных. -// -// Возвращаемое значение: -// Строка - имя общего реквизита, который является разделителем вспомогательных данных. -// -Функция РазделительВспомогательныхДанных() Экспорт - - Возврат Метаданные.ОбщиеРеквизиты.ОбластьДанныхВспомогательныеДанные.Имя; - -КонецФункции - -// Возвращает признак работы в режиме разделения данных по областям -// (технически это признак условного разделения). -// -// Возвращает Ложь, если конфигурация не может работать в режиме разделения данных -// (не содержит общих реквизитов, предназначенных для разделения данных). -// -// Возвращаемое значение: -// Булево - Истина, если разделение включено. -// - Ложь, если разделение выключено или не поддерживается. -// -Функция РазделениеВключено() Экспорт - - Возврат РаботаВМоделиСервисаПовтИсп.РазделениеВключено(); - -КонецФункции - -// Возвращает признак возможности обращения к разделенным данным (которые входят в состав разделителей). -// Признак относится к сеансу, но может меняться во время работы сеанса, если разделение было включено -// в самом сеансе, поэтому проверку следует делать непосредственно перед обращением к разделенным данным. -// -// Возвращает Истина, если конфигурация не может работать в режиме разделения данных -// (не содержит общих реквизитов, предназначенных для разделения данных). -// -// Возвращаемое значение: -// Булево - Истина, если разделение не поддерживается, либо разделение выключено, -// либо разделение включено и разделители установлены. -// - Ложь, если разделение включено и разделители не установлены. -// -Функция ДоступноИспользованиеРазделенныхДанных() Экспорт - - Если Не РазделениеВключено() Тогда - Возврат Истина; - КонецЕсли; - - Возврат ИспользованиеРазделителяСеанса(); - -КонецФункции - -// Очищает все параметры сеанса, кроме связанных с общим -// реквизитом ОбластьДанных. -// -Процедура ОчиститьВсеПараметрыСеансаКромеРазделителей() Экспорт - - ОбщегоНазначения.ОчиститьПараметрыСеанса(, "ОбластьДанныхЗначение,ОбластьДанныхИспользование"); - -КонецПроцедуры - -// Проверяет блокировку области данных. -// -// Параметры: -// ОбластьДанных - Число - значение разделителя области данных, -// блокировку которой требуется проверить. -// -// Возвращаемое значение: -// Булево - если Истина, область данных заблокирована, иначе нет. -// -Функция ОбластьДанныхЗаблокирована(Знач ОбластьДанных) Экспорт - - Ключ = СоздатьКлючЗаписиРегистраСведенийВспомогательныхДанных( - РегистрыСведений.ОбластиДанных, - Новый Структура(РазделительВспомогательныхДанных(), ОбластьДанных)); - - Попытка - - ЗаблокироватьДанныеДляРедактирования(Ключ); - - Исключение - - Возврат Истина; - - КонецПопытки; - - РазблокироватьДанныеДляРедактирования(Ключ); - - Если НЕ ДоступноИспользованиеРазделенныхДанных() Тогда - - Попытка - - УстановитьРазделениеСеанса(Истина, ОбластьДанных); - - Исключение - - УстановитьРазделениеСеанса(Ложь); - Возврат Истина; - - КонецПопытки; - - УстановитьРазделениеСеанса(Ложь); - - КонецЕсли; - - Возврат Ложь; - -КонецФункции - -// Подготавливает область данных к использованию. Запускает процедура обновления ИБ, -// при необходимости заполняет демонстрационными данными, устанавливает новый статус в регистре ОбластиДанных. -// -// Параметры: -// ОбластьДанных - Число - значение разделителя области данных, которую необходимо подготовить к использованию. -// ИДФайлаВыгрузки - УникальныйИдентификатор - идентификатор файла. -// Вариант - Строка - вариант начальных данных. -// -Процедура ПодготовитьОбластьДанныхКИспользованию(Знач ОбластьДанных, Знач ИДФайлаВыгрузки, - Знач Вариант = Неопределено) Экспорт - - Если НЕ Пользователи.ЭтоПолноправныйПользователь(, Истина) Тогда - ВызватьИсключение(НСтр("ru = 'Недостаточно прав для выполнения операции'")); - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - - КлючОбласти = СоздатьКлючЗаписиРегистраСведенийВспомогательныхДанных( - РегистрыСведений.ОбластиДанных, - Новый Структура(РазделительВспомогательныхДанных(), ОбластьДанных)); - ЗаблокироватьДанныеДляРедактирования(КлючОбласти); - - Попытка - МенеджерЗаписи = ПолучитьМенеджерЗаписиОбластиДанных(ОбластьДанных, Перечисления.СтатусыОбластейДанных.Новая); - - Если ТекущийРежимЗапуска() <> Неопределено Тогда - - ПользователиСлужебный.АвторизоватьТекущегоПользователя(); - - КонецЕсли; - - СообщениеОбОшибке = ""; - Если Не ЗначениеЗаполнено(Вариант) Тогда - - РезультатПодготовки = ПодготовитьОбластьДанныхКИспользованиюИзВыгрузки(ОбластьДанных, ИДФайлаВыгрузки, - СообщениеОбОшибке); - - Иначе - - РезультатПодготовки = ПодготовитьОбластьДанныхКИспользованиюИзЭталонной(ОбластьДанных, ИДФайлаВыгрузки, - Вариант, СообщениеОбОшибке); - - КонецЕсли; - - СменитьСтатусОбластиИУведомитьМенеджер(МенеджерЗаписи, РезультатПодготовки, СообщениеОбОшибке); - - Исключение - РазблокироватьДанныеДляРедактирования(КлючОбласти); - ВызватьИсключение; - КонецПопытки; - - РазблокироватьДанныеДляРедактирования(КлючОбласти); - -КонецПроцедуры - -// Копирует данные области данных в другую область данных. -// -// Параметры: -// ОбластьИсточник - Число - значение разделителя области данных источника данных. -// ОбластьПриемник - Число - значение разделителя области данных приемника данных. -// -Процедура СкопироватьДанныеОбласти(Знач ОбластьИсточник, Знач ОбластьПриемник) Экспорт - - Если НЕ Пользователи.ЭтоПолноправныйПользователь(, Истина) Тогда - ВызватьИсключение(НСтр("ru = 'Недостаточно прав для выполнения операции'")); - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - - УстановитьРазделениеСеанса(Истина, ОбластьИсточник); - - ИмяФайлаВыгрузки = Неопределено; - - Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ВыгрузкаЗагрузкаОбластейДанных") Тогда - - ВызватьИсключениеОтсутствуетПодсистемаБТС("ТехнологияСервиса.РаботаВМоделиСервиса.ВыгрузкаЗагрузкаОбластейДанных"); - - КонецЕсли; - - МодульВыгрузкаЗагрузкаОбластейДанных = ОбщегоНазначения.ОбщийМодуль("ВыгрузкаЗагрузкаОбластейДанных"); - - Попытка - ИмяФайлаВыгрузки = МодульВыгрузкаЗагрузкаОбластейДанных.ВыгрузитьТекущуюОбластьДанныхВАрхив(); - Исключение - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииКопированиеОбластиДанных(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Если ИмяФайлаВыгрузки <> Неопределено Тогда - Попытка - УдалитьФайлы(ИмяФайлаВыгрузки); - Исключение - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииКопированиеОбластиДанных(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - КонецЕсли; - ВызватьИсключение; - КонецПопытки; - - УстановитьРазделениеСеанса(Неопределено, ОбластьПриемник); - - Попытка - МодульВыгрузкаЗагрузкаОбластейДанных.ЗагрузитьТекущуюОбластьДанныхИзАрхива(ИмяФайлаВыгрузки); - Исключение - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииКопированиеОбластиДанных(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Попытка - УдалитьФайлы(ИмяФайлаВыгрузки); - Исключение - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииКопированиеОбластиДанных(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - ВызватьИсключение; - КонецПопытки; - - Попытка - УдалитьФайлы(ИмяФайлаВыгрузки); - Исключение - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииКопированиеОбластиДанных(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - -КонецПроцедуры - -// Удаляет все данные области данных, кроме предопределенных, устанавливает для области данных -// статус Удалена, отправляет в менеджер сервиса сообщение с информацией об изменении статуса -// области. После этого область данных будет непригодна к использованию. -// -// Если нужно удалить все данные области без изменения ее статуса и с сохранением возможности -// дальнейшего использования области, необходимо использовать процедуру ОчиститьДанныеОбласти(). -// -// Параметры: -// ОбластьДанных - Число - значение разделителя области данных которую требуется очистить. -// При вызове процедуры разделение данных уже должно быть переключено в эту область. -// УдалитьПользователей - Булево - флаг необходимости удаления пользователей информационной -// базы для данной области данных. -// -Процедура ОчиститьОбластьДанных(Знач ОбластьДанных, Знач УдалитьПользователей = Истина) Экспорт - - Если НЕ Пользователи.ЭтоПолноправныйПользователь(, Истина) Тогда - ВызватьИсключение(НСтр("ru = 'Недостаточно прав для выполнения операции'")); - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - - КлючОбласти = СоздатьКлючЗаписиРегистраСведенийВспомогательныхДанных( - РегистрыСведений.ОбластиДанных, - Новый Структура(РазделительВспомогательныхДанных(), ОбластьДанных)); - ЗаблокироватьДанныеДляРедактирования(КлючОбласти); - - Попытка - - МенеджерЗаписи = ПолучитьМенеджерЗаписиОбластиДанных(ОбластьДанных, Перечисления.СтатусыОбластейДанных.КУдалению); - - РаботаВМоделиСервисаПереопределяемый.ПриУдаленииОбластиДанных(ОбластьДанных); - - ОчиститьДанныеОбласти(УдалитьПользователей); // Вызываем очистку - - // Восстановление предопределенных элементов. - МодельДанных = РаботаВМоделиСервисаПовтИсп.ПолучитьМодельДанныхОбласти(); - - Для каждого ЭлементМодели Из МодельДанных Цикл - - ПолноеИмяОбъектаМетаданных = ЭлементМодели.Ключ; - - Если ЭтоПолноеИмяСправочника(ПолноеИмяОбъектаМетаданных) - ИЛИ ЭтоПолноеИмяПланаСчетов(ПолноеИмяОбъектаМетаданных) - ИЛИ ЭтоПолноеИмяПланаВидовХарактеристик(ПолноеИмяОбъектаМетаданных) - ИЛИ ЭтоПолноеИмяПланаВидовРасчета(ПолноеИмяОбъектаМетаданных) Тогда - - ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмяОбъектаМетаданных); - - Если ОбъектМетаданных.ПолучитьИменаПредопределенных().Количество() > 0 Тогда - - Менеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмяОбъектаМетаданных); - Менеджер.УстановитьИнициализациюПредопределенныхДанных(Ложь); - - КонецЕсли; - - КонецЕсли; - - КонецЦикла; - - СменитьСтатусОбластиИУведомитьМенеджер(МенеджерЗаписи, "ОбластьУдалена", ""); - - Исключение - РазблокироватьДанныеДляРедактирования(КлючОбласти); - ВызватьИсключение; - КонецПопытки; - - РазблокироватьДанныеДляРедактирования(КлючОбласти); - -КонецПроцедуры - -// Удаляет все разделенные данные из текущей области данных (в т.ч. при выключенном -// разделении по областям данных), кроме переопределенных. -// -// Параметры: -// УдалитьПользователей - Булево - флаг необходимости удаления пользователей информационной базы. -// -Процедура ОчиститьДанныеОбласти(Знач УдалитьПользователей) Экспорт - - МодельДанных = РаботаВМоделиСервисаПовтИсп.ПолучитьМодельДанныхОбласти(); - - ИсключенияОчистки = Новый Массив(); - ИсключенияОчистки.Добавить(Метаданные.РегистрыСведений.ОбластиДанных.ПолноеИмя()); - - Для каждого ЭлементМодели Из МодельДанных Цикл - - ПолноеИмяОбъектаМетаданных = ЭлементМодели.Ключ; - ОписаниеОбъектаМетаданных = ЭлементМодели.Значение; - - Если ИсключенияОчистки.Найти(ПолноеИмяОбъектаМетаданных) <> Неопределено Тогда - Продолжить; - КонецЕсли; - - Если ЭтоПолноеИмяКонстанты(ПолноеИмяОбъектаМетаданных) Тогда - - ОбъектМетаданныхОбласти = Метаданные.Константы.Найти(ОписаниеОбъектаМетаданных.Имя); - МенеджерЗначения = Константы[ОписаниеОбъектаМетаданных.Имя].СоздатьМенеджерЗначения(); - МенеджерЗначения.ОбменДанными.Загрузка = Истина; - МенеджерЗначения.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов"); - МенеджерЗначения.Значение = ОбъектМетаданныхОбласти.Тип.ПривестиЗначение(); - МенеджерЗначения.Записать(); - - ИначеЕсли ЭтоПолноеИмяОбъектаСсылочногоТипа(ПолноеИмяОбъектаМетаданных) Тогда - - ЭтоПланОбмена = ЭтоПолноеИмяПланаОбмена(ПолноеИмяОбъектаМетаданных); - - Запрос = Новый Запрос( - "ВЫБРАТЬ - | Т.Ссылка КАК Ссылка - |ИЗ - | " + ПолноеИмяОбъектаМетаданных + " КАК Т"); - - Если ЭтоПланОбмена Тогда - - Запрос.Текст = Запрос.Текст + " - |ГДЕ - | Т.Ссылка <> &ЭтотУзел"; - - Запрос.УстановитьПараметр("ЭтотУзел", ПланыОбмена[ОписаниеОбъектаМетаданных.Имя].ЭтотУзел()); - - КонецЕсли; - - РезультатЗапроса = Запрос.Выполнить(); - Выборка = РезультатЗапроса.Выбрать(); - - Пока Выборка.Следующий() Цикл - - УдаляемыйОбъект = Выборка.Ссылка.ПолучитьОбъект(); - УдаляемыйОбъект.ОбменДанными.Загрузка = Истина; - УдаляемыйОбъект.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов"); - УдаляемыйОбъект.Удалить(); - - КонецЦикла; - - - ИначеЕсли ЭтоПолноеИмяРегистра(ПолноеИмяОбъектаМетаданных) - ИЛИ ЭтоПолноеИмяПерерасчета(ПолноеИмяОбъектаМетаданных) - Или ЭтоПолноеИмяПоследовательности(ПолноеИмяОбъектаМетаданных) Тогда - - ЭтоРегистрНакопления = ЭтоПолноеИмяРегистраНакопления(ПолноеИмяОбъектаМетаданных); - ЭтоРегистрБухгалтерии = ЭтоПолноеИмяРегистраБухгалтерии(ПолноеИмяОбъектаМетаданных); - ЭтоРегистрСведений = ЭтоПолноеИмяРегистраСведений(ПолноеИмяОбъектаМетаданных); - - Менеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмяОбъектаМетаданных); - - ЭтоНезависимыйРегистрСведений = Ложь; - - Если ЭтоРегистрНакопления Тогда - - РегистрМетаданные = Метаданные.РегистрыНакопления.Найти(ОписаниеОбъектаМетаданных.Имя); - - Если РегистрМетаданные.ВидРегистра = Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки Тогда - - Если Менеджер.ПолучитьМинимальныйПериодРассчитанныхИтогов() <> '00010101' - ИЛИ Менеджер.ПолучитьМаксимальныйПериодРассчитанныхИтогов() <> КонецМесяца('00010101') Тогда - - Менеджер.УстановитьМинимальныйИМаксимальныйПериодыРассчитанныхИтогов('00010101', '00010101'); - - КонецЕсли; - - Если Менеджер.ПолучитьИспользованиеТекущихИтогов() Тогда - - Менеджер.УстановитьИспользованиеТекущихИтогов(Ложь); - - КонецЕсли; - - Если Менеджер.ПолучитьИспользованиеИтогов() Тогда - - Менеджер.УстановитьИспользованиеИтогов(Ложь); - - КонецЕсли; - - КонецЕсли; - - ИначеЕсли ЭтоРегистрБухгалтерии Тогда - - Если Менеджер.ПолучитьМинимальныйПериодРассчитанныхИтогов() <> '00010101' - ИЛИ Менеджер.ПолучитьМаксимальныйПериодРассчитанныхИтогов() <> '00010101' Тогда - - Менеджер.УстановитьМинимальныйИМаксимальныйПериодыРассчитанныхИтогов('00010101', '00010101'); - - КонецЕсли; - - Если Менеджер.ПолучитьИспользованиеТекущихИтогов() Тогда - - Менеджер.УстановитьИспользованиеТекущихИтогов(Ложь); - - КонецЕсли; - - Если Менеджер.ПолучитьИспользованиеИтогов() Тогда - - Менеджер.УстановитьИспользованиеИтогов(Ложь); - - КонецЕсли; - - ИначеЕсли ЭтоРегистрСведений Тогда - - РегистрМетаданные = Метаданные.РегистрыСведений.Найти(ОписаниеОбъектаМетаданных.Имя); - - Если РегистрМетаданные.РазрешитьИтогиСрезПервых - ИЛИ РегистрМетаданные.РазрешитьИтогиСрезПоследних Тогда - - Если Менеджер.ПолучитьИспользованиеИтогов() Тогда - - Менеджер.УстановитьИспользованиеИтогов(Ложь); - - КонецЕсли; - - КонецЕсли; - - ЭтоНезависимыйРегистрСведений = (РегистрМетаданные.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.Независимый); - - КонецЕсли; - - Если ЭтоНезависимыйРегистрСведений Тогда - - НаборЗаписей = Менеджер.СоздатьНаборЗаписей(); - НаборЗаписей.ОбменДанными.Загрузка = Истина; - НаборЗаписей.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов"); - НаборЗаписей.Записать(); - - Иначе - - ПараметрыВыборки = ПараметрыВыборки(ПолноеИмяОбъектаМетаданных); - ИмяПоляРегистратор = ПараметрыВыборки.ИмяПоляРегистратор; - - Запрос = Новый Запрос( - "ВЫБРАТЬ РАЗЛИЧНЫЕ - | Т.Регистратор КАК Регистратор - |ИЗ - | " + ПараметрыВыборки.Таблица + " КАК Т"); - - Если ИмяПоляРегистратор <> "Регистратор" Тогда - - Запрос.Текст = СтрЗаменить(Запрос.Текст, "Регистратор", ИмяПоляРегистратор); - - КонецЕсли; - - РезультатЗапроса = Запрос.Выполнить(); - Выборка = РезультатЗапроса.Выбрать(); - - Пока Выборка.Следующий() Цикл - - НаборЗаписей = Менеджер.СоздатьНаборЗаписей(); - НаборЗаписей.Отбор[ИмяПоляРегистратор].Установить(Выборка[ИмяПоляРегистратор]); - НаборЗаписей.ОбменДанными.Загрузка = Истина; - НаборЗаписей.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов"); - НаборЗаписей.Записать(); - - КонецЦикла; - - КонецЕсли; - - КонецЕсли; - - КонецЦикла; - - // Пользователи - Если УдалитьПользователей Тогда - - ПервыйАдминистратор = Неопределено; - - Для каждого ПользовательИБ Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл - - Если ПервыйАдминистратор = Неопределено И Пользователи.ЭтоПолноправныйПользователь(ПользовательИБ, Истина, Ложь) Тогда - - // Отложим удаление администратора, чтобы на момент его удаления все остальные - // пользователи информационной базы уже были удалены. - ПервыйАдминистратор = ПользовательИБ; - - Иначе - - ПользовательИБ.Удалить(); - - КонецЕсли; - - КонецЦикла; - - Если ПервыйАдминистратор <> Неопределено Тогда - - ПервыйАдминистратор.Удалить(); - - КонецЕсли; - - КонецЕсли; - - - // Очистка истории. - ИсторияРаботыПользователя.Очистить(); - - // Настройки - Хранилища = Новый Массив; - Хранилища.Добавить(ХранилищеВариантовОтчетов); - Хранилища.Добавить(ХранилищеНастроекДанныхФорм); - Хранилища.Добавить(ХранилищеОбщихНастроек); - Хранилища.Добавить(ХранилищеПользовательскихНастроекОтчетов); - Хранилища.Добавить(ХранилищеСистемныхНастроек); - Хранилища.Добавить(ХранилищеПользовательскихНастроекДинамическихСписков); - - Для каждого Хранилище Из Хранилища Цикл - - Если ТипЗнч(Хранилище) <> Тип("СтандартноеХранилищеНастроекМенеджер") Тогда - - // Настройки будут удалены при очистке данных. - Продолжить; - - КонецЕсли; - - Хранилище.Удалить(Неопределено, Неопределено, Неопределено); - - КонецЦикла; - -КонецПроцедуры - -// Процедура одноименного регламентного задания. -// Находит все области данных со статусами, требующими обработки -// прикладным приложением, и при необходимости планирует запуск ФЗ -// по их обслуживанию. -// -Процедура ОбслуживаниеОбластейДанных() Экспорт - - Если НЕ РазделениеВключено() Тогда - Возврат; - КонецЕсли; - - ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ОбслуживаниеОбластейДанных); - - МаксимальноеКоличествоПовторов = 3; - - УстановитьПривилегированныйРежим(Истина); - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ОбластиДанных.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанных, - | ОбластиДанных.Статус КАК Статус, - | ОбластиДанных.ИдентификаторВыгрузки КАК ИдентификаторВыгрузки, - | ОбластиДанных.Вариант КАК Вариант - |ИЗ - | РегистрСведений.ОбластиДанных КАК ОбластиДанных - |ГДЕ - | ОбластиДанных.Статус В (ЗНАЧЕНИЕ(Перечисление.СтатусыОбластейДанных.Новая), ЗНАЧЕНИЕ(Перечисление.СтатусыОбластейДанных.КУдалению)) - | И ОбластиДанных.ОшибкаОбработки = ЛОЖЬ - | - |УПОРЯДОЧИТЬ ПО - | ОбластьДанных"; - Результат = Запрос.Выполнить(); - Выборка = Результат.Выбрать(); - - Пока Выборка.Следующий() Цикл - - Ключ = СоздатьКлючЗаписиРегистраСведенийВспомогательныхДанных( - РегистрыСведений.ОбластиДанных, - Новый Структура(РазделительВспомогательныхДанных(), Выборка.ОбластьДанных)); - - Попытка - ЗаблокироватьДанныеДляРедактирования(Ключ); - Исключение - Продолжить; - КонецПопытки; - - Менеджер = РегистрыСведений.ОбластиДанных.СоздатьМенеджерЗаписи(); - Менеджер.ОбластьДанныхВспомогательныеДанные = Выборка.ОбластьДанных; - Менеджер.Прочитать(); - - Если Менеджер.Статус = Перечисления.СтатусыОбластейДанных.Новая Тогда - ИмяМетода = "РаботаВМоделиСервиса.ПодготовитьОбластьДанныхКИспользованию"; - ИначеЕсли Менеджер.Статус = Перечисления.СтатусыОбластейДанных.КУдалению Тогда - ИмяМетода = "РаботаВМоделиСервиса.ОчиститьОбластьДанных"; - Иначе - РазблокироватьДанныеДляРедактирования(Ключ); - Продолжить; - КонецЕсли; - - Если Менеджер.Повтор < МаксимальноеКоличествоПовторов Тогда - - ОтборЗадания = Новый Структура; - ОтборЗадания.Вставить("ИмяМетода", ИмяМетода); - ОтборЗадания.Вставить("Ключ" , "1"); - ОтборЗадания.Вставить("ОбластьДанных", Выборка.ОбластьДанных); - Задания = ОчередьЗаданий.ПолучитьЗадания(ОтборЗадания); - Если Задания.Количество() > 0 Тогда - РазблокироватьДанныеДляРедактирования(Ключ); - Продолжить; - КонецЕсли; - - Менеджер.Повтор = Менеджер.Повтор + 1; - - КопияМенеджера = РегистрыСведений.ОбластиДанных.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(КопияМенеджера, Менеджер); - Менеджер = КопияМенеджера; - - Менеджер.Записать(); - - ПараметрыМетода = Новый Массив; - ПараметрыМетода.Добавить(Выборка.ОбластьДанных); - - Если Выборка.Статус = Перечисления.СтатусыОбластейДанных.Новая Тогда - - ПараметрыМетода.Добавить(Выборка.ИдентификаторВыгрузки); - Если ЗначениеЗаполнено(Выборка.Вариант) Тогда - ПараметрыМетода.Добавить(Выборка.Вариант); - КонецЕсли; - КонецЕсли; - - ПараметрыЗадания = Новый Структура; - ПараметрыЗадания.Вставить("ИмяМетода" , ИмяМетода); - ПараметрыЗадания.Вставить("Параметры" , ПараметрыМетода); - ПараметрыЗадания.Вставить("Ключ" , "1"); - ПараметрыЗадания.Вставить("ОбластьДанных", Выборка.ОбластьДанных); - ПараметрыЗадания.Вставить("ЭксклюзивноеВыполнение", Истина); - - ОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); - - РазблокироватьДанныеДляРедактирования(Ключ); - Иначе - - СменитьСтатусОбластиИУведомитьМенеджер(Менеджер, ?(Менеджер.Статус = Перечисления.СтатусыОбластейДанных.Новая, - "ФатальнаяОшибка", "ОшибкаУдаления"), НСтр("ru = 'Исчерпано количество попыток обработки области'")); - - РазблокироватьДанныеДляРедактирования(Ключ); - - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - -// Возвращает прокси web-сервиса для синхронизации административных действий в сервисе. -// -// Параметры: -// ПарольПользователя - Строка - пароль для подключения. -// -// Возвращаемое значение: -// WSПрокси - прокси менеджера сервиса. -// -Функция ПолучитьПроксиМенеджераСервиса(Знач ПарольПользователя = Неопределено) Экспорт - - АдресМенеджераСервиса = ВнутреннийАдресМенеджераСервиса(); - Если Не ЗначениеЗаполнено(АдресМенеджераСервиса) Тогда - ВызватьИсключение(НСтр("ru = 'Не установлены параметры связи с менеджером сервиса.'")); - КонецЕсли; - - АдресСервиса = АдресМенеджераСервиса + "/ws/ManageApplication_1_0_3_1?wsdl"; - - Если ПарольПользователя = Неопределено Тогда - ИмяПользователя = ИмяСлужебногоПользователяМенеджераСервиса(); - ПарольПользователя = ПарольСлужебногоПользователяМенеджераСервиса(); - Иначе - ИмяПользователя = ИмяПользователя(); - КонецЕсли; - - ПараметрыПодключения = ОбщегоНазначения.ПараметрыПодключенияWSПрокси(); - ПараметрыПодключения.АдресWSDL = АдресСервиса; - ПараметрыПодключения.URIПространстваИмен = "http://www.1c.ru/SaaS/ManageApplication/1.0.3.1"; - ПараметрыПодключения.ИмяСервиса = "ManageApplication_1_0_3_1"; - ПараметрыПодключения.ИмяПользователя = ИмяПользователя; - ПараметрыПодключения.Пароль = ПарольПользователя; - ПараметрыПодключения.Таймаут = 20; - Прокси = ОбщегоНазначения.СоздатьWSПрокси(ПараметрыПодключения); - - Возврат Прокси; - -КонецФункции - -// Устанавливает разделение сеанса. -// -// Параметры: -// Использование - Булево - использование разделителя ОбластьДанных в сеансе. -// ОбластьДанных - Число - значение разделителя ОбластьДанных. -// -Процедура УстановитьРазделениеСеанса(Знач Использование = Неопределено, Знач ОбластьДанных = Неопределено) Экспорт - - Если НЕ СеансЗапущенБезРазделителей() Тогда - ВызватьИсключение(НСтр("ru = 'Изменить разделение сеанса возможно только из сеанса запущенного без указания разделителей'")); - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - - Если Использование <> Неопределено Тогда - ПараметрыСеанса.ОбластьДанныхИспользование = Использование; - КонецЕсли; - - Если ОбластьДанных <> Неопределено Тогда - ПараметрыСеанса.ОбластьДанныхЗначение = ОбластьДанных; - КонецЕсли; - - ПриИзмененииОбластиДанных(); - -КонецПроцедуры - -// Возвращает значение разделителя текущей области данных. -// В случае если значение не установлено, выдается ошибка. -// -// Возвращаемое значение: -// Число - значение разделителя текущей области данных. -// -Функция ЗначениеРазделителяСеанса() Экспорт - - Если НЕ РазделениеВключено() Тогда - Возврат 0; - Иначе - Если Не ИспользованиеРазделителяСеанса() Тогда - ВызватьИсключение(НСтр("ru = 'Не установлено значение разделителя'")); - КонецЕсли; - - // Получим значение разделителя текущей области данных. - Возврат ПараметрыСеанса.ОбластьДанныхЗначение; - КонецЕсли; - -КонецФункции - -// Возвращает флаг использования разделителя ОбластьДанных для текущего сеанса. -// -// Возвращаемое значение: -// Булево - если Истина, разделение используется, иначе нет. -// -Функция ИспользованиеРазделителяСеанса() Экспорт - - Возврат ПараметрыСеанса.ОбластьДанныхИспользование; - -КонецФункции - -// Добавляет описание параметра по имени константы в таблицу параметров. -// Возвращает добавленный параметр. -// -// Параметры: -// ТаблицаПараметров - ТаблицаЗначений - таблица описания параметров ИБ. -// ИмяКонстанты - Строка - имя константы, которую необходимо добавить в параметры ИБ. -// -// Возвращаемое значение: -// СтрокаТаблицыЗначений - описание добавленного параметра. -// -Функция ДобавитьКонстантуВТаблицуПараметровИБ(Знач ТаблицаПараметров, Знач ИмяКонстанты) Экспорт - - МетаданныеКонстанты = Метаданные.Константы[ИмяКонстанты]; - - СтрокаПараметра = ТаблицаПараметров.Добавить(); - СтрокаПараметра.Имя = МетаданныеКонстанты.Имя; - СтрокаПараметра.Описание = МетаданныеКонстанты.Представление(); - СтрокаПараметра.Тип = МетаданныеКонстанты.Тип; - - Возврат СтрокаПараметра; - -КонецФункции - -// Возвращает таблицу описания параметров ИБ. -// -// Возвращаемое значение: -// ТаблицаЗначений - параметры ИБ. Содержит колонки: -// * Имя - Строка - имя параметра. -// * Описание - Строка - описание параметра для отображения в пользовательском интерфейсе. -// * ЗапретЧтения - Булево - признак невозможности считывания параметра ИБ. Может быть установлен, например, для -// паролей. -// * ЗапретЗаписи - Булево - признак невозможности изменения параметра ИБ. -// * Тип - ОписаниеТипов - тип значения параметра. Допускается использовать только примитивные типы и -// перечисления, присутствующие в управляющем приложении. -// -Функция ПолучитьТаблицуПараметровИБ() Экспорт - - ТаблицаПараметров = ПолучитьПустуюТаблицуПараметровИБ(); - - ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров); - - РаботаВМоделиСервисаПереопределяемый.ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров); - - Возврат ТаблицаПараметров; - -КонецФункции - -// Получает имя приложения - так, как его задал абонент. -// -// Возвращаемое значение: -// Строка - имя приложения. -// -Функция ПолучитьИмяПриложения() Экспорт - - УстановитьПривилегированныйРежим(Истина); - Возврат Константы.ПредставлениеОбластиДанных.Получить(); - -КонецФункции - -// Возвращает размер блоков в Мб для передачи больших файлов частями. -// -// Возвращаемое значение: -// Число - размер блока передачи файлов в мегабайтах. -// -Функция ПолучитьРазмерБлокаПередачиФайла() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - РазмерБлокаПередачиФайла = Константы.РазмерБлокаПередачиФайла.Получить(); // Мб - Если Не ЗначениеЗаполнено(РазмерБлокаПередачиФайла) Тогда - РазмерБлокаПередачиФайла = 20; - КонецЕсли; - Возврат РазмерБлокаПередачиФайла; - -КонецФункции - -// Сериализует объект структурного типа. -// -// Параметры: -// ЗначениеСтруктурногоТипа - Массив, Структура, Соответствие - сериализуемый объект. -// -// Возвращаемое значение: -// Строка - сериализованное значение объекта структурного типа. -// -Функция ЗаписатьСтруктурныйОбъектXDTOВСтроку(Знач ЗначениеСтруктурногоТипа) Экспорт - - ОбъектXDTO = СтруктурныйОбъектВОбъектXDTO(ЗначениеСтруктурногоТипа); - - Возврат ЗаписатьЗначениеВСтроку(ОбъектXDTO); - -КонецФункции - -// Кодирует строковое значение по алгоритму base64. -// -// Параметры: -// Строка - Строка - исходная строка, которую необходимо закодировать. -// -// Возвращаемое значение: -// Строка - закодированная строка. -// -Функция СтрокаВBase64(Знач Строка) Экспорт - - Хранилище = Новый ХранилищеЗначения(Строка, Новый СжатиеДанных(9)); - - Возврат XMLСтрока(Хранилище); - -КонецФункции - -// Декодирует base64-представление строки в исходное значение. -// -// Параметры: -// СтрокаBase64 - Строка - исходная строка, которую необходимо декодировать. -// -// Возвращаемое значение: -// Строка - декодированная строка. -// -Функция Base64ВСтроку(Знач СтрокаBase64) Экспорт - - Хранилище = XMLЗначение(Тип("ХранилищеЗначения"), СтрокаBase64); - - Возврат Хранилище.Получить(); - -КонецФункции - -// Возвращает часовой пояс области данных. -// Предназначена для вызова из сеансов с неустановленным использованием -// разделителей. В сеансах с установленным использованием разделителей -// следует использовать ПолучитьЧасовойПоясИнформационнойБазы(). -// -// Параметры: -// ОбластьДанных - Число - значение разделителя области данных, часовой -// пояс которой требуется получить. -// -// Возвращаемое значение: -// Строка, Неопределено - часовой пояс области данных, Неопределено, -// если часовой пояс не задан. -// -Функция ПолучитьЧасовойПоясОбластиДанных(Знач ОбластьДанных) Экспорт - - Менеджер = Константы.ЧасовойПоясОбластиДанных.СоздатьМенеджерЗначения(); - Менеджер.ОбластьДанныхВспомогательныеДанные = ОбластьДанных; - Менеджер.Прочитать(); - ЧасовойПояс = Менеджер.Значение; - - Если Не ЗначениеЗаполнено(ЧасовойПояс) Тогда - ЧасовойПояс = Неопределено; - КонецЕсли; - - Возврат ЧасовойПояс; - -КонецФункции - -// Возвращает внутренний адрес менеджера сервиса. -// -// Возвращаемое значение: -// Строка - внутренний адрес менеджера сервиса. -// -Функция ВнутреннийАдресМенеджераСервиса() Экспорт - - МодульРаботаВМоделиСервисаБТС = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервисаБТС"); - Возврат МодульРаботаВМоделиСервисаБТС.ВнутреннийАдресМенеджераСервиса(); - -КонецФункции - -// Возвращает имя служебного пользователя менеджера сервиса. -// -// Возвращаемое значение: -// Строка - имя служебного пользователя менеджера сервиса. -// -Функция ИмяСлужебногоПользователяМенеджераСервиса() Экспорт - - ВызываемыйМодульБТС = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервисаБТС"); - Возврат ВызываемыйМодульБТС.ИмяСлужебногоПользователяМенеджераСервиса(); - -КонецФункции - -// Возвращает пароль служебного пользователя менеджера сервиса. -// -// Возвращаемое значение: -// Строка - пароль служебного пользователя менеджера сервиса. -// -Функция ПарольСлужебногоПользователяМенеджераСервиса() Экспорт - - ВызываемыйМодульБТС = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервисаБТС"); - Возврат ВызываемыйМодульБТС.ПарольСлужебногоПользователяМенеджераСервиса(); - -КонецФункции - -// Обрабатывает информацию об ошибке, полученную из web-сервиса. -// В случае если передана не пустая информация об ошибке, записывает -// подробное представление ошибки в журнал регистрации и вызывает -// исключение с текстом краткого представления об ошибке. -// -// Параметры: -// ИнформацияОбОшибке - ИнформацияОбОшибке - информация об ошибке, -// ИмяПодсистемы - Строка - имя подсистемы, -// ИмяВебСервиса - Строка - имя web-сервиса, -// ИмяОперации - Строка - имя операции. -// -Процедура ОбработатьИнформациюОбОшибкеWebСервиса(Знач ИнформацияОбОшибке, Знач ИмяПодсистемы = "", Знач ИмяВебСервиса = "", Знач ИмяОперации = "") Экспорт - - Если ИнформацияОбОшибке = Неопределено Тогда - Возврат; - КонецЕсли; - - Если ПустаяСтрока(ИмяПодсистемы) Тогда - ИмяПодсистемы = Метаданные.Подсистемы.СтандартныеПодсистемы.Подсистемы.РаботаВМоделиСервиса.Имя; - КонецЕсли; - - ИмяСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = '%1.Ошибка вызова операции web-сервиса'", ОбщегоНазначения.КодОсновногоЯзыка()), - ИмяПодсистемы); - - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Ошибка при вызове операции %1 веб-сервиса %2: %3'", ОбщегоНазначения.КодОсновногоЯзыка()), - ИмяОперации, - ИмяВебСервиса, - ИнформацияОбОшибке.DetailErrorDescription); - - ЗаписьЖурналаРегистрации( - ИмяСобытия, - УровеньЖурналаРегистрации.Ошибка, - , - , - ТекстОшибки); - - ВызватьИсключение ИнформацияОбОшибке.BriefErrorDescription; - -КонецПроцедуры - -// Возвращает псевдоним пользователя, который должен использоваться в интерфейсе. -// -// Параметры: -// ИдентификаторПользователя - УникальныйИдентификатор - идентификатор пользователя. -// -// Возвращаемое значение: -// Строка - псевдоним пользователя информационной базы для отображения в интерфейсе. -// -Функция ПсевдонимПользователяИнформационнойБазы(Знач ИдентификаторПользователя) Экспорт - - Псевдоним = ""; - - ИнтеграцияСТехнологиейСервиса.ПриОпределенииПсевдонимаПользователя(ИдентификаторПользователя, Псевдоним); - Возврат Псевдоним; - -КонецФункции - -// Получает в транзакции менеджер записи для регистра ОбластиДанных. -// -// Параметры: -// ОбластьДанных - Число - номер области данных. -// Статус - Перечисления.СтатусыОбластейДанных - ожидаемый статус области. -// -// Возвращаемое значение: -// РегистрыСведений.ОбластиДанных.МенеджерЗаписи - менеджер записи области данных. -// -Функция ПолучитьМенеджерЗаписиОбластиДанных(Знач ОбластьДанных, Знач Статус) Экспорт - - НачатьТранзакцию(); - Попытка - Блокировка = Новый БлокировкаДанных; - Элемент = Блокировка.Добавить("РегистрСведений.ОбластиДанных"); - Элемент.УстановитьЗначение("ОбластьДанныхВспомогательныеДанные", ОбластьДанных); - Элемент.Режим = РежимБлокировкиДанных.Разделяемый; - Блокировка.Заблокировать(); - - МенеджерЗаписи = РегистрыСведений.ОбластиДанных.СоздатьМенеджерЗаписи(); - МенеджерЗаписи.ОбластьДанныхВспомогательныеДанные = ОбластьДанных; - МенеджерЗаписи.Прочитать(); - - Если НЕ МенеджерЗаписи.Выбран() Тогда - ШаблонСообщения = НСтр("ru = 'Область данных %1 не найдена'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, ОбластьДанных); - ВызватьИсключение(ТекстСообщения); - ИначеЕсли МенеджерЗаписи.Статус <> Статус Тогда - ШаблонСообщения = НСтр("ru = 'Статус области данных %1 не равен ""%2""'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, ОбластьДанных, Статус); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодготовкаОбластиДанных(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ВызватьИсключение; - КонецПопытки; - - Возврат МенеджерЗаписи; - -КонецФункции - -// Загружает данные в "типовую" область. -// -// Параметры: -// ОбластьДанных - Число - номер заполняемой области. -// ИДФайлаВыгрузки - УникальныйИдентификатор - ид файла начальных данных. -// Вариант - Строка - вариант начальных данных. -// СообщениеОбОшибке - Строка - возвращаемая, описание ошибки. -// -// Возвращаемое значение: -// Строка - один из вариантов "Успех", "ФатальнаяОшибка". -// -Функция ПодготовитьОбластьДанныхКИспользованиюИзЭталонной(Знач ОбластьДанных, Знач ИДФайлаВыгрузки, - Знач Вариант, СообщениеОбОшибке) Экспорт - - Если Константы.КопироватьОбластиДанныхИзЭталонной.Получить() Тогда - - Результат = ЗагрузитьОбластьИзПоставляемыхДанных(ОбластьДанных, ИДФайлаВыгрузки, Вариант, СообщениеОбОшибке); - Если Результат <> "Успех" Тогда - Возврат Результат; - КонецЕсли; - - Иначе - - Результат = "Успех"; - - КонецЕсли; - - ОбновлениеИнформационнойБазы.ВыполнитьОбновлениеИнформационнойБазы(); - - Возврат Результат; - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Работа с файлами - -// Возвращает полное имя файла, полученного из файлового хранилища МС по его идентификатору. -// -// Параметры: -// ИДФайла - УникальныйИдентификатор - идентификатор файла в файловом хранилище МС. -// -// Возвращаемое значение: -// Строка - полное имя извлеченного файла. -// -Функция ПолучитьФайлИзХранилищаМенеджераСервиса(Знач ИДФайла) Экспорт - - ОписаниеФайла = Неопределено; - - АдресМенеджераСервиса = ВнутреннийАдресМенеджераСервиса(); - - Если НЕ ЗначениеЗаполнено(АдресМенеджераСервиса) Тогда - - ВызватьИсключение(НСтр("ru = 'Не установлены параметры связи с менеджером сервиса.'")); - - КонецЕсли; - - ПараметрыДоступаКХранилищу = Новый Структура; - ПараметрыДоступаКХранилищу.Вставить("URL", АдресМенеджераСервиса); - ПараметрыДоступаКХранилищу.Вставить("UserName", ИмяСлужебногоПользователяМенеджераСервиса()); - ПараметрыДоступаКХранилищу.Вставить("Password", ПарольСлужебногоПользователяМенеджераСервиса()); - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ПередачаДанных") Тогда - - ПоддерживаемыеВерсии = ОбщегоНазначения.ПолучитьВерсииИнтерфейса(ПараметрыДоступаКХранилищу, "DataTransfer"); - - Если ПоддерживаемыеВерсии.Количество() > 0 Тогда - - // В одной из версий БТС общий модуль ПередачаДанных был переименован в ПередачаДанныхСервер для разрешения конфликта имен. - // Для совместимости реализована поддержка обоих имен модулей. - Попытка - - МодульПередачаДанных = ОбщегоНазначения.ОбщийМодуль("ПередачаДанныхСервер"); - - Исключение - - МодульПередачаДанных = ОбщегоНазначения.ОбщийМодуль("ПередачаДанных"); - - КонецПопытки; - - ОписаниеФайла = МодульПередачаДанных.ПолучитьИзЛогическогоХранилища(ПараметрыДоступаКХранилищу, "files", ИДФайла); - - КонецЕсли; - - КонецЕсли; - - Если ОписаниеФайла = Неопределено Тогда - - ОписаниеФайла = ПолучитьФайлИзХранилища(ИДФайла, ПараметрыДоступаКХранилищу, Истина, Истина); - - КонецЕсли; - - Если ОписаниеФайла = Неопределено Тогда - - Возврат Неопределено; - - КонецЕсли; - - СвойстваФайла = Новый Файл(ОписаниеФайла.ПолноеИмя); - - Если Не СвойстваФайла.Существует() Тогда - - Возврат Неопределено; - - КонецЕсли; - - // Менеджер сервиса устанавливает исходному файлу атрибут "Только чтение". - // Унаследованный атрибут снимается, чтобы файл можно было удалить. - СвойстваФайла.УстановитьТолькоЧтение(Ложь); - - Возврат СвойстваФайла.ПолноеИмя; - -КонецФункции - -// Добавляет файл в хранилище менеджера сервиса. -// -// Параметры: -// АдресДанныеФайл - Строка - адрес файла во временном хранилище, -// - ДвоичныеДанные - двоичные данные файла, -// - Файл - файл. -// ИмяФайла - Строка - хранимое имя файла. -// -// Возвращаемое значение: -// УникальныйИдентификатор - Идентификатор файла в хранилище. -// -Функция ПоместитьФайлВХранилищеМенеджераСервиса(Знач АдресДанныеФайл, Знач ИмяФайла = "") Экспорт - - ИдентификаторФайлаВХранилище = Неопределено; - - ПараметрыДоступаКХранилищу = Новый Структура; - ПараметрыДоступаКХранилищу.Вставить("URL", ВнутреннийАдресМенеджераСервиса()); - ПараметрыДоступаКХранилищу.Вставить("UserName", ИмяСлужебногоПользователяМенеджераСервиса()); - ПараметрыДоступаКХранилищу.Вставить("Password", ПарольСлужебногоПользователяМенеджераСервиса()); - - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ПередачаДанных") Тогда - - ПоддерживаемыеВерсии = ОбщегоНазначения.ПолучитьВерсииИнтерфейса(ПараметрыДоступаКХранилищу, "DataTransfer"); - - Если ПоддерживаемыеВерсии.Количество() > 0 Тогда - - // В одной из версий БТС общий модуль ПередачаДанных был переименован в ПередачаДанныхСервер для разрешения конфликта имен. - // Для совместимости реализована поддержка обоих имен модулей. - Попытка - - МодульПередачаДанных = ОбщегоНазначения.ОбщийМодуль("ПередачаДанныхСервер"); - - Исключение - - МодульПередачаДанных = ОбщегоНазначения.ОбщийМодуль("ПередачаДанных"); - - КонецПопытки; - - ИдентификаторФайлаВХранилище = МодульПередачаДанных.ОтправитьВЛогическоеХранилище(ПараметрыДоступаКХранилищу, "files", АдресДанныеФайл, ИмяФайла); - - КонецЕсли; - - КонецЕсли; - - Если ЗначениеЗаполнено(ИдентификаторФайлаВХранилище) Тогда - - Возврат ИдентификаторФайлаВХранилище; - - Иначе - - Возврат ПоместитьФайлВХранилище(АдресДанныеФайл, ПараметрыДоступаКХранилищу, ИмяФайла); - - КонецЕсли; - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Функции определения типов объектов метаданных по полному имени объекта -// метаданных. - -// Ссылочные типы данных - -// Определяет принадлежность объекта метаданных к общему типу "Документ" по полному имени -// объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если документ. -// -Функция ЭтоПолноеИмяДокумента(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "Документ", "Document"); - -КонецФункции - -// Определяет принадлежность объекта метаданных к общему типу "Справочник" по полному имени -// объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если справочник. -// -Функция ЭтоПолноеИмяСправочника(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "Справочник", "Catalog"); - -КонецФункции - -// Определяет принадлежность объекта метаданных к общему типу "Перечисление" по полному имени -// объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если перечисление. -// -Функция ЭтоПолноеИмяПеречисления(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "Перечисление", "Enum"); - -КонецФункции - -// Определяет принадлежность объекта метаданных к общему типу "План обмена" по полному имени -// объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если план обмена. -// -Функция ЭтоПолноеИмяПланаОбмена(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "ПланОбмена", "ExchangePlan"); - -КонецФункции - -// Определяет принадлежность объекта метаданных к общему типу "План видов характеристик" по -// полному имени объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина если план видов характеристик. -// -Функция ЭтоПолноеИмяПланаВидовХарактеристик(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "ПланВидовХарактеристик", "ChartOfCharacteristicTypes"); - -КонецФункции - -// Определяет принадлежность объекта метаданных к общему типу "Бизнес-процесс" по полному имени -// объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если бизнес-процесс. -// -Функция ЭтоПолноеИмяБизнесПроцесса(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "БизнесПроцесс", "BusinessProcess"); - -КонецФункции - -// Определяет принадлежность объекта метаданных к общему типу "Задача" по полному имени объекта -// метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если задача. -// -Функция ЭтоПолноеИмяЗадачи(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "Задача", "Task"); - -КонецФункции - -// Определяет принадлежность объекта метаданных к общему типу "План счетов" по полному имени объекта -// метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если план счетов. -// -Функция ЭтоПолноеИмяПланаСчетов(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "ПланСчетов", "ChartOfAccounts"); - -КонецФункции - -// Определяет принадлежность объекта метаданных к общему типу "План видов расчета" по полному имени -// объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если план видов расчета. -// -Функция ЭтоПолноеИмяПланаВидовРасчета(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "ПланВидовРасчета", "ChartOfCalculationTypes"); - -КонецФункции - -// Регистры - -// Определяет принадлежность объекта метаданных к общему типу "Регистр сведений" по полному имени -// объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина если регистр сведений. -// -Функция ЭтоПолноеИмяРегистраСведений(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "РегистрСведений", "InformationRegister"); - -КонецФункции - -// Определяет принадлежность объекта метаданных к общему типу "Регистр накопления" по полному имени -// объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если регистр накопления. -// -Функция ЭтоПолноеИмяРегистраНакопления(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "РегистрНакопления", "AccumulationRegister"); - -КонецФункции - -// Определяет принадлежность объекта метаданных к общему типу "Регистр бухгалтерии" по полному имени -// объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если регистр бухгалтерии. -// -Функция ЭтоПолноеИмяРегистраБухгалтерии(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "РегистрБухгалтерии", "AccountingRegister"); - -КонецФункции - -// Определяет принадлежность объекта метаданных к общему типу "Регистр расчета" по полному имени -// объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если регистр расчета. -// -Функция ЭтоПолноеИмяРегистраРасчета(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "РегистрРасчета", "CalculationRegister") - И Не ЭтоПолноеИмяПерерасчета(ПолноеИмя); - -КонецФункции - -// Перерасчеты - -// Определяет принадлежность объекта метаданных к типу "Перерасчет" по полному имени -// объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина если перерасчет. -// -Функция ЭтоПолноеИмяПерерасчета(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "Перерасчет", "Recalculation", 2); - -КонецФункции - -// Константы - -// Определяет принадлежность объекта метаданных к общему типу "Константа" по полному имени -// объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если константа. -// -Функция ЭтоПолноеИмяКонстанты(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "Константа", "Constant"); - -КонецФункции - -// Журналы документов - -// Определяет принадлежность объекта метаданных к общему типу "Журнал документов" по полному имени -// объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если журнал документов. -// -Функция ЭтоПолноеИмяЖурналаДокументов(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "ЖурналДокументов", "DocumentJournal"); - -КонецФункции - -// Последовательности - -// Определяет принадлежность объекта метаданных к общему типу "Последовательности" по полному имени -// объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если последовательность. -// -Функция ЭтоПолноеИмяПоследовательности(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "Последовательность", "Sequence"); - -КонецФункции - -// РегламентныеЗадания - -// Определяет принадлежность объекта метаданных к общему типу "Регламентные задания" по полному имени -// объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если регламентное задание. -// -Функция ЭтоПолноеИмяРегламентногоЗадания(Знач ПолноеИмя) Экспорт - - Возврат ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(ПолноеИмя, "РегламентноеЗадание", "ScheduledJob"); - -КонецФункции - -// Общие - -// Определяет принадлежность объекта метаданных к типу регистр по полному имени объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если регистр. -// -Функция ЭтоПолноеИмяРегистра(Знач ПолноеИмя) Экспорт - - Возврат ЭтоПолноеИмяРегистраСведений(ПолноеИмя) - ИЛИ ЭтоПолноеИмяРегистраНакопления(ПолноеИмя) - ИЛИ ЭтоПолноеИмяРегистраБухгалтерии(ПолноеИмя) - ИЛИ ЭтоПолноеИмяРегистраРасчета(ПолноеИмя); - -КонецФункции - -// Определяет принадлежность объекта метаданных к ссылочному типу по полному имени объекта метаданных. -// -// Параметры: -// ПолноеИмя - Строка - полное имя объекта метаданных, для которого необходимо определить -// принадлежность к заданному типу. -// -// Возвращаемое значение: -// Булево - Истина, если ссылочный тип. -// -Функция ЭтоПолноеИмяОбъектаСсылочногоТипа(Знач ПолноеИмя) Экспорт - - Возврат ЭтоПолноеИмяСправочника(ПолноеИмя) - ИЛИ ЭтоПолноеИмяДокумента(ПолноеИмя) - ИЛИ ЭтоПолноеИмяБизнесПроцесса(ПолноеИмя) - ИЛИ ЭтоПолноеИмяЗадачи(ПолноеИмя) - ИЛИ ЭтоПолноеИмяПланаСчетов(ПолноеИмя) - ИЛИ ЭтоПолноеИмяПланаОбмена(ПолноеИмя) - ИЛИ ЭтоПолноеИмяПланаВидовХарактеристик(ПолноеИмя) - ИЛИ ЭтоПолноеИмяПланаВидовРасчета(ПолноеИмя); - -КонецФункции - -// Параметры выборки по полному имени объекта метаданных. -// -// Параметры: -// ПолноеИмяОбъектаМетаданных - Строка - полное имя объекта метаданных. -// -// Возвращаемое значение: -// Структура - параметры выборки. -// -Функция ПараметрыВыборки(Знач ПолноеИмяОбъектаМетаданных) Экспорт - - Результат = Новый Структура("Таблица,ИмяПоляРегистратор"); - - Если ЭтоПолноеИмяРегистра(ПолноеИмяОбъектаМетаданных) - ИЛИ ЭтоПолноеИмяПоследовательности(ПолноеИмяОбъектаМетаданных) Тогда - - Результат.Таблица = ПолноеИмяОбъектаМетаданных; - Результат.ИмяПоляРегистратор = "Регистратор"; - - ИначеЕсли ЭтоПолноеИмяПерерасчета(ПолноеИмяОбъектаМетаданных) Тогда - - Подстроки = СтрРазделить(ПолноеИмяОбъектаМетаданных, "."); - Результат.Таблица = Подстроки[0] + "." + Подстроки[1] + "." + Подстроки[3]; - Результат.ИмяПоляРегистратор = "ОбъектПерерасчета"; - - Иначе - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Функция ПараметрыВыборки() не должна использоваться для объекта %1.'"), - ПолноеИмяОбъектаМетаданных); - - КонецЕсли; - - Возврат Результат; - -КонецФункции - -// Имя события журнала регистрации для записи ошибок копирования области данных. -// -// Возвращаемое значение: -// Строка - имя события ошибки. -// -Функция СобытиеЖурналаРегистрацииКопированиеОбластиДанных() Экспорт - - Возврат НСтр("ru = 'Работа в модели сервиса.Копирование области данных'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -// Имя события журнала регистрации для записи ошибок блокировки области данных. -// -// Возвращаемое значение: -// Строка - имя события ошибки. -// -Функция СобытиеЖурналаРегистрацииБлокировкаОбластиДанных() Экспорт - - Возврат НСтр("ru = 'Работа в модели сервиса.Блокировка области данных'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -// Имя события журнала регистрации для записи ошибок подготовки области данных. -// -// Возвращаемое значение: -// Строка - имя события ошибки. -// -Функция СобытиеЖурналаРегистрацииПодготовкаОбластиДанных() Экспорт - - Возврат НСтр("ru = 'Работа в модели сервиса.Подготовка области данных'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -// Имя события журнала регистрации для записи ошибок получения файла из хранилища. -// -// Возвращаемое значение: -// Строка - имя события ошибки. -// -Функция СобытиеЖурналаРегистрацииПолучениеФайлаИзХранилища() Экспорт - - Возврат НСтр("ru = 'Работа в модели сервиса.Получение файла из хранилища'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -// Имя события журнала регистрации для записи ошибок добавления файла при обмене через файловую систему. -// -// Возвращаемое значение: -// Строка - имя события ошибки. -// -Функция СобытиеЖурналаРегистрацииДобавлениеФайлаОбменЧерезФС() Экспорт - - Возврат НСтр("ru = 'Работа в модели сервиса.Добавление файла.Обмен через ФС'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -// Имя события журнала регистрации для записи ошибок добавления файла при обмене не через файловую систему. -// -// Возвращаемое значение: -// Строка - имя события ошибки. -// -Функция СобытиеЖурналаРегистрацииДобавлениеФайлаОбменНеЧерезФС() Экспорт - - Возврат НСтр("ru = 'Работа в модели сервиса.Добавление файла.Обмен не через ФС'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -// Имя события журнала регистрации для записи ошибок удаления временного файла. -// -// Возвращаемое значение: -// Строка - имя события ошибки. -// -Функция СобытиеЖурналаРегистрацииУдалениеВременногоФайла() Экспорт - - Возврат НСтр("ru = 'Работа в модели сервиса.Удаление временного файла'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -// Прочее - -// См. РаботаВМоделиСервисаПереопределяемый.ПриЗаполненииТаблицыПараметровИБ. -Процедура ПриЗаполненииТаблицыПараметровИБ(Знач ТаблицаПараметров) Экспорт - - Если ЭтоРазделеннаяКонфигурация() Тогда - ДобавитьКонстантуВТаблицуПараметровИБ(ТаблицаПараметров, "ИспользоватьРазделениеПоОбластямДанных"); - - ДобавитьКонстантуВТаблицуПараметровИБ(ТаблицаПараметров, "РежимИспользованияИнформационнойБазы"); - - ДобавитьКонстантуВТаблицуПараметровИБ(ТаблицаПараметров, "КопироватьОбластиДанныхИзЭталонной"); - КонецЕсли; - - ДобавитьКонстантуВТаблицуПараметровИБ(ТаблицаПараметров, "ВнутреннийАдресМенеджераСервиса"); - - СтрокаПараметра = ТаблицаПараметров.Добавить(); - СтрокаПараметра.Имя = "ВнутреннийАдресМенеджераСервиса"; - СтрокаПараметра.Описание = НСтр("ru = 'Внутренний адрес Менеджера сервиса'"); - СтрокаПараметра.Тип = Новый ОписаниеТипов("Строка"); - - // Для совместимости с предыдущими версиями необходим параметр "URLСервиса" - СтрокаПараметра = ТаблицаПараметров.Добавить(); - СтрокаПараметра.Имя = "URLСервиса"; - СтрокаПараметра.Описание = НСтр("ru = 'Внутренний адрес Менеджера сервиса'"); - СтрокаПараметра.Тип = Новый ОписаниеТипов("Строка"); - - СтрокаПараметра = ТаблицаПараметров.Добавить(); - СтрокаПараметра.Имя = "ИмяСлужебногоПользователяМенеджераСервиса"; - СтрокаПараметра.Описание = "ИмяСлужебногоПользователяМенеджераСервиса"; - СтрокаПараметра.Тип = Новый ОписаниеТипов("Строка"); - - СтрокаПараметра = ТаблицаПараметров.Добавить(); - СтрокаПараметра.Имя = "ПарольСлужебногоПользователяМенеджераСервиса"; - СтрокаПараметра.Описание = "ПарольСлужебногоПользователяМенеджераСервиса"; - СтрокаПараметра.Тип = Новый ОписаниеТипов("Строка"); - СтрокаПараметра.ЗапретЧтения = Истина; - - СтрокаПараметра = ТаблицаПараметров.Добавить(); - СтрокаПараметра.Имя = "ИмяСлужебногоПользователяСервиса"; - СтрокаПараметра.Описание = "ИмяСлужебногоПользователяСервиса"; - СтрокаПараметра.Тип = Новый ОписаниеТипов("Строка"); - - СтрокаПараметра = ТаблицаПараметров.Добавить(); - СтрокаПараметра.Имя = "ПарольСлужебногоПользователяСервиса"; - СтрокаПараметра.Описание = "ПарольСлужебногоПользователяСервиса"; - СтрокаПараметра.Тип = Новый ОписаниеТипов("Строка"); - СтрокаПараметра.ЗапретЧтения = Истина; - // Конец Для совместимости с предыдущими версиями. - - СтрокаПараметра = ТаблицаПараметров.Добавить(); - СтрокаПараметра.Имя = "ВерсияКонфигурации"; - СтрокаПараметра.Описание = НСтр("ru = 'Версия конфигурации'"); - СтрокаПараметра.ЗапретЗаписи = Истина; - СтрокаПараметра.Тип = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная)); - - ИнтеграцияПодсистемБСП.ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров); - -КонецПроцедуры - -// Получает описание файла по его идентификатору в регистре Файлы. -// Если хранение на диске и ПутьВместоДанных = Истина, -// в выходной структуре Данные = Неопределено, ПолноеИмя = Полное имя файла, -// иначе Данные - двоичные данные файла, ПолноеИмя - Неопределено. -// Значение ключа Имя всегда содержит имя в хранилище. -// -// Параметры: -// ИдентификаторФайла - УникальныйИдентификатор - уникальный идентификатор файла, -// ПараметрыПодключения - Структура - поля: -// * URL - Строка - URL сервиса, обязательно должно присутствовать и быть заполненным, -// * UserName - Строка - имя пользователя сервиса, -// * Password - Строка - пароль пользователя сервиса, -// ПутьВместоДанных - Булево - что возвращать, -// ПроверятьСуществование - Булево - проверять ли существование файла в случае ошибки его получения. -// -// Возвращаемое значение: -// Структура - описание файла: -// * Имя - Строка - имя файла в хранилище. -// * Данные - ДвоичныеДанные - данные файла. -// * ПолноеИмя - Строка - полное имя файла (файл будет удален автоматически по истечении срока хранения временных файлов). -// -Функция ПолучитьФайлИзХранилища(Знач ИдентификаторФайла, Знач ПараметрыПодключения, - Знач ПутьВместоДанных = Ложь, Знач ПроверятьСуществование = Ложь) Экспорт - - НачалоВыполнения = ТекущаяУниверсальнаяДата(); - - ОписаниеПрокси = ОписаниеПроксиСервисаПередачиФайлов(ПараметрыПодключения); - - ОбменЧерезФС = МожноПередаватьЧерезФСССервера(ОписаниеПрокси.Прокси, ОписаниеПрокси.ЕстьПоддержка2йВерсии); - - Если ОбменЧерезФС Тогда - - Попытка - Попытка - ИмяФайла = ОписаниеПрокси.Прокси.WriteFileToFS(ИдентификаторФайла); - Исключение - ОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если ПроверятьСуществование И Не ОписаниеПрокси.Прокси.FileExists(ИдентификаторФайла) Тогда - Возврат Неопределено; - КонецЕсли; - ВызватьИсключение ОписаниеОшибки; - КонецПопытки; - - СвойстваФайла = Новый Файл(ПолучитьОбщийКаталогВременныхФайлов() + ИмяФайла); - Если СвойстваФайла.Существует() Тогда - ОписаниеФайла = СоздатьОписаниеФайла(); - ОписаниеФайла.Имя = СвойстваФайла.Имя; - - РазмерПолученногоФайла = СвойстваФайла.Размер(); - - Если ПутьВместоДанных Тогда - ОписаниеФайла.Данные = Неопределено; - ОписаниеФайла.ПолноеИмя = СвойстваФайла.ПолноеИмя; - Иначе - ОписаниеФайла.Данные = Новый ДвоичныеДанные(СвойстваФайла.ПолноеИмя); - ОписаниеФайла.ПолноеИмя = Неопределено; - Попытка - УдалитьФайлы(СвойстваФайла.ПолноеИмя); - Исключение - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПолучениеФайлаИзХранилища(), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - КонецЕсли; - - ЗаписатьВЖурналСобытиеФайловогоХранилища( - НСтр("ru = 'Извлечение'", ОбщегоНазначения.КодОсновногоЯзыка()), - ИдентификаторФайла, - РазмерПолученногоФайла, - ТекущаяУниверсальнаяДата() - НачалоВыполнения, - ОбменЧерезФС); - - Возврат ОписаниеФайла; - Иначе - ОбменЧерезФС = Ложь; - КонецЕсли; - Исключение - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПолучениеФайлаИзХранилища(), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ОбменЧерезФС = Ложь; - КонецПопытки; - - КонецЕсли; // ОбменЧерезФС - - КоличествоЧастей = Неопределено; - РазмерБлокаПередачиФайла = ПолучитьРазмерБлокаПередачиФайла(); - Попытка - Если ОписаниеПрокси.ЕстьПоддержка2йВерсии Тогда - ИдентификаторПередачи = ОписаниеПрокси.Прокси.PrepareGetFile(ИдентификаторФайла, РазмерБлокаПередачиФайла * 1024, КоличествоЧастей); - Иначе - ИдентификаторПередачи = Неопределено; - ОписаниеПрокси.Прокси.PrepareGetFile(ИдентификаторФайла, РазмерБлокаПередачиФайла * 1024, ИдентификаторПередачи, КоличествоЧастей); - КонецЕсли; - Исключение - ОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Если ПроверятьСуществование И Не ОписаниеПрокси.Прокси.FileExists(ИдентификаторФайла) Тогда - Возврат Неопределено; - КонецЕсли; - ВызватьИсключение ОписаниеОшибки; - КонецПопытки; - - ИменаФайлов = Новый Массив; - - КаталогСборки = СоздатьКаталогСборки(); - - Если ОписаниеПрокси.ЕстьПоддержка2йВерсии Тогда - Для НомерЧасти = 1 По КоличествоЧастей Цикл - ДанныеЧасти = ОписаниеПрокси.Прокси.GetFilePart(ИдентификаторПередачи, НомерЧасти, КоличествоЧастей); - ИмяФайлаЧасти = КаталогСборки + "part" + Формат(НомерЧасти, "ЧЦ=4; ЧВН=; ЧГ="); - ДанныеЧасти.Записать(ИмяФайлаЧасти); - ИменаФайлов.Добавить(ИмяФайлаЧасти); - КонецЦикла; - Иначе // 1-я версия. - Для НомерЧасти = 1 По КоличествоЧастей Цикл - ДанныеЧасти = Неопределено; - ОписаниеПрокси.Прокси.GetFilePart(ИдентификаторПередачи, НомерЧасти, ДанныеЧасти); - ИмяФайлаЧасти = КаталогСборки + "part" + Формат(НомерЧасти, "ЧЦ=4; ЧВН=; ЧГ="); - ДанныеЧасти.Записать(ИмяФайлаЧасти); - ИменаФайлов.Добавить(ИмяФайлаЧасти); - КонецЦикла; - КонецЕсли; - ДанныеЧасти = Неопределено; - - ОписаниеПрокси.Прокси.ReleaseFile(ИдентификаторПередачи); - - ИмяАрхива = ПолучитьИмяВременногоФайла("zip"); - - Попытка - - ОбъединитьФайлы(ИменаФайлов, ИмяАрхива); - ФайлОбъединен = Истина; - - Исключение - - ФайлОбъединен = Ложь; - ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции объединения файлов'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - - КонецПопытки; - - Если ФайлОбъединен Тогда - - Попытка - - ЧтениеZipФайла = Новый ЧтениеZipФайла(ИмяАрхива); - ПрочитанZipФайл = Истина; - - Исключение - - ПрочитанZipФайл = Ложь; - ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции чтения zip файла'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - - КонецПопытки; - - Если ПрочитанZipФайл Тогда - - ВПолученномАрхивеБолееОдногоФайла = ЧтениеZipФайла.Элементы.Количество() > 1; - - Если НЕ ВПолученномАрхивеБолееОдногоФайла Тогда - - ИмяФайла = КаталогСборки + ЧтениеZipФайла.Элементы[0].Имя; - ЧтениеZipФайла.Извлечь(ЧтениеZipФайла.Элементы[0], КаталогСборки); - ЧтениеZipФайла.Закрыть(); - - ФайлРезультата = Новый Файл(ПолучитьИмяВременногоФайла()); - ПереместитьФайл(ИмяФайла, ФайлРезультата.ПолноеИмя); - РазмерПолученногоФайла = ФайлРезультата.Размер(); - - ОписаниеФайла = СоздатьОписаниеФайла(); - ОписаниеФайла.Имя = ФайлРезультата.Имя; - - Если ПутьВместоДанных Тогда - - ОписаниеФайла.Данные = Неопределено; - ОписаниеФайла.ПолноеИмя = ФайлРезультата.ПолноеИмя; - - Иначе - - ОписаниеФайла.Данные = Новый ДвоичныеДанные(ФайлРезультата.ПолноеИмя); - ОписаниеФайла.ПолноеИмя = Неопределено; - - Попытка - - УдалитьФайлы(ФайлРезультата.ПолноеИмя); - - Исключение - - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПолучениеФайлаИзХранилища(), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - - КонецПопытки; - - КонецЕсли; - - КонецЕсли; - - КонецЕсли; - - КонецЕсли; - - ФайлВременный = Новый Файл(ИмяАрхива); - - Если ФайлВременный.Существует() Тогда - - Попытка - - ФайлВременный.УстановитьТолькоЧтение(Ложь); - УдалитьФайлы(ИмяАрхива); - - Исключение - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции удаления временного файла'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - - КонецПопытки; - - КонецЕсли; - - Попытка - - УдалитьФайлы(КаталогСборки); - - Исключение - - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПолучениеФайлаИзХранилища(), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - - КонецПопытки; - - Если НЕ ПрочитанZipФайл Тогда - - ВызватьИсключение(НСтр("ru = 'При чтении zip файла произошла ошибка.'")); - - КонецЕсли; - - Если ВПолученномАрхивеБолееОдногоФайла Тогда - - ВызватьИсключение(НСтр("ru = 'В полученном архиве содержится более одного файла.'")); - - КонецЕсли; - - ЗаписатьВЖурналСобытиеФайловогоХранилища( - НСтр("ru = 'Извлечение'", ОбщегоНазначения.КодОсновногоЯзыка()), - ИдентификаторФайла, - РазмерПолученногоФайла, - ТекущаяУниверсальнаяДата() - НачалоВыполнения, - ОбменЧерезФС); - - Возврат ОписаниеФайла; - -КонецФункции - -// Записывает тестовый файл на диск, возвращая его имя и размер. -// Файл должна удалять вызывающая сторона. -// -// Возвращаемое значение: -// Строка - имя пробного файла без пути. -// -Функция ЗаписатьПробныйФайл() Экспорт - - НовыйИД = Новый УникальныйИдентификатор; - СвойстваФайла = Новый Файл(ПолучитьОбщийКаталогВременныхФайлов() + НовыйИД + ".tmp"); - - Текст = Новый ЗаписьТекста(СвойстваФайла.ПолноеИмя, КодировкаТекста.ANSI); - Текст.Записать(НовыйИД); - Текст.Закрыть(); - - Возврат СвойстваФайла.Имя; - -КонецФункции - -// Дополнительные действия, выполняемые при изменении разделения сеанса. -// -Процедура ПриИзмененииОбластиДанных() Экспорт - - ОчиститьВсеПараметрыСеансаКромеРазделителей(); - - Если ДоступноИспользованиеРазделенныхДанных() - И ТекущийРежимЗапуска() <> Неопределено Тогда - - МенеджерЗаписи = РегистрыСведений.ОбластиДанных.СоздатьМенеджерЗаписи(); - МенеджерЗаписи.Прочитать(); - - Если МенеджерЗаписи.Выбран() Тогда - - Если НЕ (МенеджерЗаписи.ОшибкаОбработки - ИЛИ МенеджерЗаписи.Статус = Перечисления.СтатусыОбластейДанных.КУдалению - ИЛИ МенеджерЗаписи.Статус = Перечисления.СтатусыОбластейДанных.Удалена) Тогда - - ПользователиСлужебный.АвторизоватьТекущегоПользователя(); - - КонецЕсли; - - Иначе - - ПользователиСлужебный.АвторизоватьТекущегоПользователя(); - - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - -// Регистрирует обработчики поставляемых данных за день и за все время. -// -// Параметры: -// Обработчики - ТаблицаЗначений - таблица обработчиков. -// -Процедура ЗарегистрироватьОбработчикиПоставляемыхДанных(Знач Обработчики) Экспорт - - Обработчик = Обработчики.Добавить(); - Обработчик.ВидДанных = "ЭталонОбластиДанных"; - Обработчик.КодОбработчика = "ЭталонОбластиДанных"; - Обработчик.Обработчик = РаботаВМоделиСервиса; - -КонецПроцедуры - -// Вызывается при получении уведомления о новых данных. -// В теле следует проверить, необходимы ли эти данные приложению, -// и если да - установить флажок Загружать. -// -// Параметры: -// Дескриптор - ОбъектXDTO - Descriptor. -// Загружать - Булево - возвращаемое значение. -// -Процедура ДоступныНовыеДанные(Знач Дескриптор, Загружать) Экспорт - - Если Дескриптор.DataType = "ЭталонОбластиДанных" Тогда - УсловиеИмениКонфигурации = Ложь; - УсловиеВерсииКонфигурации = Ложь; - Для каждого Характеристика Из Дескриптор.Properties.Property Цикл - Если Не УсловиеИмениКонфигурации Тогда - УсловиеИмениКонфигурации = Характеристика.Code = "ИмяКонфигурации" И Характеристика.Value = Метаданные.Имя; - КонецЕсли; - Если Не УсловиеВерсииКонфигурации Тогда - УсловиеВерсииКонфигурации = Характеристика.Code = "ВерсияКонфигурации" - И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Характеристика.Value, Метаданные.Версия) >= 0; - КонецЕсли; - КонецЦикла; - Загружать = УсловиеИмениКонфигурации И УсловиеВерсииКонфигурации; - КонецЕсли; - -КонецПроцедуры - -// Вызывается после вызова ДоступныНовыеДанные, позволяет разобрать данные. -// -// Параметры: -// Дескриптор - ОбъектXDTO - Дескриптор, -// ПутьКФайлу - Строка - полное имя извлеченного файла. Файл будет автоматически удален после завершения процедуры, -// - Неопределено - если в менеджере сервиса не был указан файл. -// -Процедура ОбработатьНовыеДанные(Знач Дескриптор, Знач ПутьКФайлу) Экспорт - - Если Дескриптор.DataType = "ЭталонОбластиДанных" Тогда - ОбработатьПоставляемыйЭталонКонфигурации(Дескриптор, ПутьКФайлу); - КонецЕсли; - -КонецПроцедуры - -// Вызывается при отмене обработки данных в случае сбоя. -// -// Параметры: -// Дескриптор - ОбъектXDTO - Дескриптор. -// -Процедура ОбработкаДанныхОтменена(Знач Дескриптор) Экспорт - -КонецПроцедуры - -// Для общего модуля РаботаВМоделиСервисаПовтИсп. - -// Определяет, запущен сеанс с разделителями или без. -// -// Возвращаемое значение: -// Булево - Истина, если сеанс запущен без разделителей. -// -Функция СеансЗапущенБезРазделителей() Экспорт - - Возврат ПользователиИнформационнойБазы.ТекущийПользователь().РазделениеДанных.Количество() = 0; - -КонецФункции - -// Возвращает признак наличия в конфигурации общих реквизитов-разделителей. -// -// Возвращаемое значение: -// Булево - Истина, если это разделенная конфигурация. -// -Функция ЭтоРазделеннаяКонфигурация() Экспорт - - Возврат РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация(); - -КонецФункции - -// Возвращает признак того, что объект метаданных используется в общих реквизитах-разделителях. -// -// Параметры: -// ОбъектМетаданных - Строка - имя объекта метаданных. -// Разделитель - Строка - имя общего реквизита-разделителя, на разделение которыми проверяется объект метаданных. -// -// Возвращаемое значение: -// Булево - Истина, если это разделенный объект. -// -Функция ЭтоРазделенныйОбъектМетаданных(Знач ОбъектМетаданных, Знач Разделитель = Неопределено) Экспорт - - Если ТипЗнч(ОбъектМетаданных) = Тип("Строка") Тогда - ПолноеИмяОбъектаМетаданных = ОбъектМетаданных; - Иначе - ПолноеИмяОбъектаМетаданных = ОбъектМетаданных.ПолноеИмя(); - КонецЕсли; - - Возврат РаботаВМоделиСервисаПовтИсп.ЭтоРазделенныйОбъектМетаданных(ПолноеИмяОбъектаМетаданных, Разделитель); - -КонецФункции - -// Возвращает массив сериализуемых структурных типов, поддерживаемых в настоящее время. -// -// Возвращаемое значение: -// ФиксированныйМассив - элементы типа Тип. -// -Функция СериализуемыеСтруктурныеТипы() Экспорт - - Возврат РаботаВМоделиСервисаПовтИсп.СериализуемыеСтруктурныеТипы(); - -КонецФункции - -// Возвращает конечную точку для отправки сообщений в менеджер сервиса. -// -// Возвращаемое значение: -// ПланОбменСсылка.ОбменСообщениями - узел соответствующий менеджеру сервиса. -// -Функция КонечнаяТочкаМенеджераСервиса() Экспорт - - ВызываемыйМодуль = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервисаБТС"); - Возврат ВызываемыйМодуль.КонечнаяТочкаМенеджераСервиса(); - -КонецФункции - -// Возвращает соответствие видов контактной информации пользователя видам. -// КИ используемой в XDTO модели сервиса. -// -// Возвращаемое значение: -// Соответствие - соответствие видов КИ. -// -Функция СоответствиеВидовКИПользователяXDTO() Экспорт - - Возврат РаботаВМоделиСервисаПовтИсп.СоответствиеВидовКИПользователяXDTO(); - -КонецФункции - -// Возвращает соответствие видов контактной информации XDTO видам. -// КИ пользователя. -// -// Возвращаемое значение: -// Соответствие - соответствие видов КИ. -// -Функция СоответствиеВидовКИXDTOВидамКИПользователя() Экспорт - - Возврат РаботаВМоделиСервисаПовтИсп.СоответствиеВидовКИXDTOВидамКИПользователя(); - -КонецФункции - -// Возвращает соответствие прав XDTO используемым в модели сервиса возможным -// действиям с пользователем сервиса. -// -// Возвращаемое значение: -// Соответствие - соответствие прав действиям. -// -Функция СоответствиеПравXDTOДействиямСПользователемСервиса() Экспорт - - Возврат РаботаВМоделиСервисаПовтИсп.СоответствиеПравXDTOДействиямСПользователемСервиса(); - -КонецФункции - -// Возвращает описание модели данных, относящихся к области данных. -// -// Возвращаемое значение: -// ФиксированноеСоответствие - модель данных области -// * Ключ - ОбъектМетаданных - объект метаданных, -// * Значение - Строка - имя общего реквизита-разделителя. -// -Функция ПолучитьМодельДанныхОбласти() Экспорт - - Возврат РаботаВМоделиСервисаПовтИсп.ПолучитьМодельДанныхОбласти(); - -КонецФункции - -// Возвращает массив существующих в конфигурации разделителей. -// -// Возвращаемое значение: -// ФиксированныйМассив - массив имен общих реквизитов, которые -// являются разделителями. -// -Функция РазделителиКонфигурации() Экспорт - - Возврат РаботаВМоделиСервисаПовтИсп.РазделителиКонфигурации(); - -КонецФункции - -// Возвращает состав общего реквизита с заданным именем. -// -// Параметры: -// Имя - Строка - имя общего реквизита. -// -// Возвращаемое значение: -// СоставОбщегоРеквизита - список объектов метаданных, в которые входит общий реквизит. -// -Функция СоставОбщегоРеквизита(Знач Имя) Экспорт - - Возврат РаботаВМоделиСервисаПовтИсп.СоставОбщегоРеквизита(Имя); - -КонецФункции - -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать метод платформы УстановитьМонопольныйРежим(Истина). -// -// Параметры: -// ПроверитьОтсутствиеДругихСеансов - Булево - проверять отсутствие других сеансов или нет. -// РазделяемаяБлокировка - Булево - это разделяемая блокировка. -// -Процедура ЗаблокироватьТекущуюОбластьДанных(Знач ПроверитьОтсутствиеДругихСеансов = Ложь, Знач РазделяемаяБлокировка = Ложь) Экспорт - - Если НЕ ДоступноИспользованиеРазделенныхДанных() Тогда - ВызватьИсключение(НСтр("ru = 'Блокировка области может быть установлена только при включенном использовании разделителей'")); - КонецЕсли; - - Ключ = СоздатьКлючЗаписиРегистраСведенийВспомогательныхДанных( - РегистрыСведений.ОбластиДанных, - Новый Структура(РазделительВспомогательныхДанных(), ЗначениеРазделителяСеанса())); - - КоличествоПопыток = 5; - ТекущаяПопытка = 0; - Пока Истина Цикл - Попытка - ЗаблокироватьДанныеДляРедактирования(Ключ); - Прервать; - Исключение - ТекущаяПопытка = ТекущаяПопытка + 1; - - Если ТекущаяПопытка = КоличествоПопыток Тогда - ШаблонКомментария = НСтр("ru = 'Не удалось установить блокировку области данных по причине: - |%1'"); - ТекстКомментария = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонКомментария, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииБлокировкаОбластиДанных(), - УровеньЖурналаРегистрации.Ошибка, - , - , - ТекстКомментария); - - ШаблонТекста = НСтр("ru = 'Не удалось установить блокировку области данных по причине: - |%1'"); - Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекста, КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); - - ВызватьИсключение(Текст); - КонецЕсли; - КонецПопытки; - КонецЦикла; - - Если ПроверитьОтсутствиеДругихСеансов Тогда - - КонфликтующиеСеансы = Новый Массив(); - - Для каждого Сеанс Из ПолучитьСеансыИнформационнойБазы() Цикл - Если Сеанс.НомерСеанса = НомерСеансаИнформационнойБазы() Тогда - Продолжить; - КонецЕсли; - - КлиентскиеПриложения = Новый Массив; - КлиентскиеПриложения.Добавить(ВРег("1CV8")); - КлиентскиеПриложения.Добавить(ВРег("1CV8C")); - КлиентскиеПриложения.Добавить(ВРег("WebClient")); - КлиентскиеПриложения.Добавить(ВРег("COMConnection")); - КлиентскиеПриложения.Добавить(ВРег("WSConnection")); - КлиентскиеПриложения.Добавить(ВРег("BackgroundJob")); - Если КлиентскиеПриложения.Найти(ВРег(Сеанс.ИмяПриложения)) = Неопределено Тогда - Продолжить; - КонецЕсли; - - КонфликтующиеСеансы.Добавить(Сеанс); - - КонецЦикла; - - Если КонфликтующиеСеансы.Количество() > 0 Тогда - - РазблокироватьДанныеДляРедактирования(Ключ); - - ТекстСеансы = ""; - Для Каждого КонфликтующийСеанс Из КонфликтующиеСеансы Цикл - - Если Не ПустаяСтрока(ТекстСеансы) Тогда - ТекстСеансы = ТекстСеансы + ", "; - КонецЕсли; - - ТекстСеансы = ТекстСеансы + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = '%1 (сеанс - %2)'", ОбщегоНазначения.КодОсновногоЯзыка()), - КонфликтующийСеанс.Пользователь.Имя, - Формат(КонфликтующийСеанс.НомерСеанса, "ЧГ=0")); - - КонецЦикла; - - ТекстИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Операция не может быть выполнена, т.к. в приложении работают другие пользователи: %1'", - ОбщегоНазначения.КодОсновногоЯзыка()), - ТекстСеансы); - - ВызватьИсключение ТекстИсключения; - - КонецЕсли; - - КонецЕсли; - - Если НЕ РазделяемаяБлокировка Тогда - УстановитьМонопольныйРежим(Истина); - Возврат; - КонецЕсли; - - МодельДанных = РаботаВМоделиСервисаПовтИсп.ПолучитьМодельДанныхОбласти(); - - Блокировка = Новый БлокировкаДанных; - - Для Каждого ЭлементМодели Из МодельДанных Цикл - - ПолноеИмяОбъектаМетаданных = ЭлементМодели.Ключ; - ОписаниеОбъектаМетаданных = ЭлементМодели.Значение; - - ПространствоБлокировки = ПолноеИмяОбъектаМетаданных; - - Если ЭтоПолноеИмяРегистра(ПолноеИмяОбъектаМетаданных) Тогда - - БлокироватьНаборы = Истина; - Если ЭтоПолноеИмяРегистраСведений(ПолноеИмяОбъектаМетаданных) Тогда - ОбъектМетаданныхОбласти = Метаданные.РегистрыСведений.Найти(ОписаниеОбъектаМетаданных.Имя); - Если ОбъектМетаданныхОбласти.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.Независимый Тогда - БлокироватьНаборы = Ложь; - КонецЕсли; - КонецЕсли; - - Если БлокироватьНаборы Тогда - ПространствоБлокировки = ПространствоБлокировки + ".НаборЗаписей"; - КонецЕсли; - - ИначеЕсли ЭтоПолноеИмяПоследовательности(ПолноеИмяОбъектаМетаданных) Тогда - - ПространствоБлокировки = ПространствоБлокировки + ".Записи"; - - ИначеЕсли ЭтоПолноеИмяЖурналаДокументов(ПолноеИмяОбъектаМетаданных) - ИЛИ ЭтоПолноеИмяПеречисления(ПолноеИмяОбъектаМетаданных) - ИЛИ ЭтоПолноеИмяПоследовательности(ПолноеИмяОбъектаМетаданных) - ИЛИ ЭтоПолноеИмяРегламентногоЗадания(ПолноеИмяОбъектаМетаданных) Тогда - - Продолжить; - - КонецЕсли; - - ЭлементБлокировки = Блокировка.Добавить(ПространствоБлокировки); - - Если РазделяемаяБлокировка Тогда - - ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый; - - КонецЕсли; - - КонецЦикла; - - Блокировка.Заблокировать(); - -КонецПроцедуры - -// Устарела. Следует использовать метод платформы УстановитьМонопольныйРежим(Ложь). -Процедура РазблокироватьТекущуюОбластьДанных() Экспорт - - Ключ = СоздатьКлючЗаписиРегистраСведенийВспомогательныхДанных( - РегистрыСведений.ОбластиДанных, - Новый Структура(РазделительВспомогательныхДанных(), ЗначениеРазделителяСеанса())); - - РазблокироватьДанныеДляРедактирования(Ключ); - - УстановитьМонопольныйРежим(Ложь); - -КонецПроцедуры - -#КонецОбласти - -#КонецОбласти - -#Область СлужебныйПрограммныйИнтерфейс - -// Возвращает список полных имен всех объектов метаданных, использующихся в общем реквизите-разделителе, -// имя которого передано в качестве значения параметра Разделитель, и значения свойств объекта метаданных, -// которые могут потребоваться для дальнейшей его обработки в универсальных алгоритмах. -// Для последовательностей и журналов документов определяет разделенность по входящим документам: любому из. -// -// Параметры: -// Разделитель - Строка, имя общего реквизита. -// -// Возвращаемое значение: -// ФиксированноеСоответствие, -// Ключ - Строка, полное имя объекта метаданных, -// Значение - ФиксированнаяСтруктура, -// Имя - Строка, имя объекта метаданных, -// Разделитель - Строка, имя разделителя, которым разделен объект метаданных, -// УсловноеРазделение - Строка, полное имя объекта метаданных, выступающего в качестве условия использования -// разделения объекта метаданных данным разделителем. -// -Функция РазделенныеОбъектыМетаданных(Знач Разделитель) Экспорт - - Возврат РаботаВМоделиСервисаПовтИсп.РазделенныеОбъектыМетаданных(Разделитель); - -КонецФункции - -// Параметры: -// ЗаданиеМетаданные - ОбъектМетаданных - метаданные предопределенного регламентного задания. -// Использование - Булево - Истина, если задание нужно включить, иначе Ложь. -// -Процедура УстановитьИспользованиеПредопределенногоРегламентногоЗадания(ЗаданиеМетаданные, Использование) Экспорт - - Шаблон = ОчередьЗаданий.ШаблонПоИмени(ЗаданиеМетаданные.Имя); - - ОтборЗадания = Новый Структура; - ОтборЗадания.Вставить("Шаблон", Шаблон); - Задания = ОчередьЗаданий.ПолучитьЗадания(ОтборЗадания); - - Если Задания.Количество() = 0 Тогда - МонопольныйРежим = МонопольныйРежим(); - Если Не МонопольныйРежим Тогда - Попытка - УстановитьМонопольныйРежим(Истина); - МонопольныйРежимУстановлен = Истина; - Исключение - МонопольныйРежимУстановлен = Ложь; - КонецПопытки; - КонецЕсли; - Если МонопольныйРежим() Тогда - Попытка - ОчередьЗаданийСлужебныйРазделениеДанных.СоздатьЗаданияОчередиПоШаблонамВТекущейОбласти(); - ОбновлениеВыполнено = Истина; - Исключение - ОбновлениеВыполнено = Ложь; - КонецПопытки; - Если ОбновлениеВыполнено Тогда - Задания = ОчередьЗаданий.ПолучитьЗадания(ОтборЗадания); - КонецЕсли; - КонецЕсли; - Если МонопольныйРежимУстановлен Тогда - УстановитьМонопольныйРежим(Ложь); - КонецЕсли; - КонецЕсли; - Если Задания.Количество() = 0 Тогда - ШаблонСообщения = НСтр("ru = 'Не найдено задание в очереди для предопределенного задания с именем %1'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, ЗаданиеМетаданные.Имя); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - - ПараметрыЗадания = Новый Структура("Использование", Использование); - ОчередьЗаданий.ИзменитьЗадание(Задания[0].Идентификатор, ПараметрыЗадания); - -КонецПроцедуры - -// Проверяет возможность использования конфигурации в модели сервиса. -// При невозможности использования - генерируется исключение с указанием причины, -// из-за которой использование конфигурации в модели сервиса невозможно. -// -Процедура ПроверитьВозможностьИспользованияКонфигурацииВМоделиСервиса() Экспорт - - ОписанияПодсистем = СтандартныеПодсистемыПовтИсп.ОписанияПодсистем().ПоИменам; - ОписаниеБТС = ОписанияПодсистем.Получить("БиблиотекаТехнологииСервиса"); - - Если ОписаниеБТС = Неопределено Тогда - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'В конфигурацию не внедрена библиотека ""1С:Библиотека технологии сервиса"". - |Без внедрения этой библиотеки конфигурация не может использоваться в модели сервиса. - | - |Для использования этой конфигурации в модели сервиса требуется внедрить библиотеку - |""1С:Библиотека технологии сервиса"" версии не младше %1.'", Метаданные.ОсновнойЯзык.КодЯзыка), - ТребуемаяВерсияБТС()); - - Иначе - - ВерсияБТС = ОписаниеБТС.Версия; - - Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБТС, ТребуемаяВерсияБТС()) < 0 Тогда - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Для использования конфигурации в модели сервиса с текущей версией БСП требуется - |обновить используемую версию библиотеки ""1С:Библиотека технологии сервиса"". - | - |Используемая версия: %1, требуется версия не младше %2.'", Метаданные.ОсновнойЯзык.КодЯзыка), - ВерсияБТС, ТребуемаяВерсияБТС()); - - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - -// Вызывает исключение при отсутствии требуемой подсистемы из библиотеки технологии сервиса. -// -// Параметры: -// ИмяПодсистемы - Строка. -// -Процедура ВызватьИсключениеОтсутствуетПодсистемаБТС(Знач ИмяПодсистемы) Экспорт - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Невозможно выполнить операцию по причине - в конфигурации не внедрена подсистема ""%1"". - |Данная подсистема поставляется в состав библиотеки технологии сервиса, которая должна отдельно внедряться в состав конфигурации. - |Проверьте наличие и корректность внедрения подсистемы ""%1"".'"), - ИмяПодсистемы); - -КонецПроцедуры - -// Пытается выполнить запрос в несколько попыток. -// Используется для чтения вне транзакции часто изменяемых данных. -// При вызове в транзакции выдает ошибку. -// -// Параметры: -// Запрос - Запрос - запрос который требуется выполнить. -// -// Возвращаемое значение: -// РезультатЗапроса - результат выполнения запроса. -// -Функция ВыполнитьЗапросВнеТранзакции(Знач Запрос) Экспорт - - Если ТранзакцияАктивна() Тогда - ВызватьИсключение(НСтр("ru = 'Транзакция активна. Выполнение запроса вне транзакции невозможно.'")); - КонецЕсли; - - КоличествоПопыток = 0; - - Результат = Неопределено; - Пока Истина Цикл - Попытка - Результат = Запрос.Выполнить(); // Чтение вне транзакции, возможно появление ошибки. - // Could not continue scan with NOLOCK due to data movement - // в этом случае нужно повторить попытку чтения. - Прервать; - Исключение - КоличествоПопыток = КоличествоПопыток + 1; - Если КоличествоПопыток = 5 Тогда - ВызватьИсключение; - КонецЕсли; - КонецПопытки; - КонецЦикла; - - Возврат Результат; - -КонецФункции - -// Возвращает XML представление типа XDTO. -// -// Параметры: -// ТипXDTO - ТипОбъектаXDTO, ТипЗначенияXDTO - тип XDTO для которого требуется получить. -// XML представление. -// -// Возвращаемое значение: -// Строка - XML представление типа XDTO. -// -Функция ПредставлениеТипаXDTO(ТипXDTO) Экспорт - - Возврат СериализаторXDTO.XMLСтрока(Новый РасширенноеИмяXML(ТипXDTO.URIПространстваИмен, ТипXDTO.Имя)) - -КонецФункции - - -//////////////////////////////////////////////////////////////////////////////// -// Контроль неразделенных данных. - -// Обработчик подписки на событие КонтрольНеразделенныхОбъектовПриЗаписи. -// -Процедура КонтрольНеразделенныхОбъектовПриЗаписи(Источник, Отказ) Экспорт - - // ОбменДанными.Загрузка не требуется. - // Запись неразделенных данных из разделенного сеанса запрещена. - КонтрольНеразделенныхДанныхПриЗаписи(Источник); - -КонецПроцедуры - -// Обработчик подписки на событие КонтрольНеразделенныхНаборовЗаписейПриЗаписи. -// -Процедура КонтрольНеразделенныхНаборовЗаписейПриЗаписи(Источник, Отказ, Замещение) Экспорт - - // ОбменДанными.Загрузка не требуется. - // Запись неразделенных данных из разделенного сеанса запрещена. - КонтрольНеразделенныхДанныхПриЗаписи(Источник); - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Обработка вспомогательных данных области. - -// Выполняет запись значения ссылочного типа, разделенных разделителем РазделительВспомогательныхДанных -// с переключением разделения сеанса на время записи. -// -// Параметры: -// ОбъектВспомогательныхДанных - значение ссылочного типа или УдалениеОбъекта. -// -Процедура ЗаписатьВспомогательныеДанные(ОбъектВспомогательныхДанных) Экспорт - - ОбработатьВспомогательныеДанные( - ОбъектВспомогательныхДанных, - Истина, - Ложь); - -КонецПроцедуры - -// Выполняет удаление значения ссылочного типа, разделенных разделителем РазделительВспомогательныхДанных -// с переключением разделения сеанса на время записи. -// -// Параметры: -// ОбъектВспомогательныхДанных - значение ссылочного типа. -// -Процедура УдалитьВспомогательныеДанные(ОбъектВспомогательныхДанных) Экспорт - - ОбработатьВспомогательныеДанные( - ОбъектВспомогательныхДанных, - Ложь, - Истина); - -КонецПроцедуры - -// Создает ключ записи для регистра сведений, включенного в состав разделителя ОбластьДанныхВспомогательныеДанные. -// -// Параметры: -// Менеджер - РегистрСведенийМенеджер, менеджер регистра сведений, для которого требуется -// получить ключ записи, -// ЗначенияКлюча - Структура, содержащая значения для заполнения свойств ключа записи. -// Имена элементов структуры должны соответствовать именам ключевых полей. -// -// Возвращаемое значение: РегистрСведенийКлючЗаписи. -// -Функция СоздатьКлючЗаписиРегистраСведенийВспомогательныхДанных(Знач Менеджер, Знач ЗначенияКлюча) Экспорт - - Ключ = Менеджер.СоздатьКлючЗаписи(ЗначенияКлюча); - - ОбластьДанных = Неопределено; - Разделитель = РазделительВспомогательныхДанных(); - - Если ЗначенияКлюча.Свойство(Разделитель, ОбластьДанных) Тогда - - Если Ключ[Разделитель] <> ОбластьДанных Тогда - - Объект = СериализаторXDTO.ЗаписатьXDTO(Ключ); - Объект[Разделитель] = ОбластьДанных; - Ключ = СериализаторXDTO.ПрочитатьXDTO(Объект); - - КонецЕсли; - - КонецЕсли; - - Возврат Ключ; - -КонецФункции - -// Для внутреннего использования. -// -Функция ОбластьДанныхОсновныеДанныеСостав() Экспорт - Возврат Метаданные.ОбщиеРеквизиты.ОбластьДанныхОсновныеДанные.Состав; -КонецФункции - -// Для внутреннего использования. -// -Функция ПолучитьОбластиДанныхРезультатЗапроса() Экспорт - Запрос = Новый Запрос(); - Запрос.Текст = - "ВЫБРАТЬ - | ОбластиДанных.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанных - |ИЗ - | РегистрСведений.ОбластиДанных КАК ОбластиДанных - |ГДЕ - | ОбластиДанных.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыОбластейДанных.Используется) - |УПОРЯДОЧИТЬ ПО - | ОбластьДанных"; - - Результат = Запрос.Выполнить(); - - Возврат Результат; -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. - -// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков. -Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт - - СоответствиеИменПсевдонимам.Вставить("РаботаВМоделиСервиса.ПодготовитьОбластьДанныхКИспользованию"); - - СоответствиеИменПсевдонимам.Вставить("РаботаВМоделиСервиса.ОчиститьОбластьДанных"); - -КонецПроцедуры - -// См. ОчередьЗаданийПереопределяемый.ПриОпределенииИспользованияРегламентныхЗаданий. -Процедура ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования) Экспорт - - НоваяСтрока = ТаблицаИспользования.Добавить(); - НоваяСтрока.РегламентноеЗадание = "ОбслуживаниеОбластейДанных"; - НоваяСтрока.Использование = Истина; - -КонецПроцедуры - -// См. ЗагрузкаДанныхИзФайлаПереопределяемый.ПриОпределенииСправочниковДляЗагрузкиДанных. -Процедура ПриОпределенииСправочниковДляЗагрузкиДанных(ЗагружаемыеСправочники) Экспорт - - // Загрузка в классификатор валюты запрещена. - СтрокаТаблицы = ЗагружаемыеСправочники.Найти(Метаданные.Справочники.ОчередьЗаданийОбластейДанных.ПолноеИмя(), "ПолноеИмя"); - Если СтрокаТаблицы <> Неопределено Тогда - ЗагружаемыеСправочники.Удалить(СтрокаТаблицы); - КонецЕсли; - -КонецПроцедуры - -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. -Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт - - Типы.Добавить(Метаданные.Константы.КлючОбластиДанных); - Типы.Добавить(Метаданные.РегистрыСведений.ОбластиДанных); - -КонецПроцедуры - -// См. РаботаВМоделиСервисаПереопределяемый.ПриВключенииРазделенияПоОбластямДанных. -Процедура ПриВключенииРазделенияПоОбластямДанных() Экспорт - - ПроверитьВозможностьИспользованияКонфигурацииВМоделиСервиса(); - - РаботаВМоделиСервисаПереопределяемый.ПриВключенииРазделенияПоОбластямДанных(); - -КонецПроцедуры - -// См. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных. -Процедура ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики) Экспорт - - ЗарегистрироватьОбработчикиПоставляемыхДанных(Обработчики); - -КонецПроцедуры - -// Проверка безопасного режима разделения данных. -// Только для вызова из модуля сеанса. -// -Процедура ПриПроверкеВключенияБезопасногоРежимаРазделенияДанных() Экспорт - - Если БезопасныйРежим() = Ложь - И РазделениеВключено() - И ДоступноИспользованиеРазделенныхДанных() - И НЕ СеансЗапущенБезРазделителей() Тогда - - Если НЕ БезопасныйРежимРазделенияДанных(РазделительВспомогательныхДанных()) Тогда - - УстановитьБезопасныйРежимРазделенияДанных(РазделительВспомогательныхДанных(), Истина); - - КонецЕсли; - - Если НЕ БезопасныйРежимРазделенияДанных(РазделительОсновныхДанных()) Тогда - - УстановитьБезопасныйРежимРазделенияДанных(РазделительОсновныхДанных(), Истина); - - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - -// Проверка заблокированности области данных при запуске. -// Только для вызова из СтандартныеПодсистемыСервер.ДобавитьПараметрыРаботыКлиентаПриЗапуске(). -// -Процедура ПриПроверкеБлокировкиОбластиДанныхПриЗапуске(ОписаниеОшибки) Экспорт - - Если РазделениеВключено() - И ДоступноИспользованиеРазделенныхДанных() - И ОбластьДанныхЗаблокирована(ЗначениеРазделителяСеанса()) Тогда - - ОписаниеОшибки = - НСтр("ru = 'Запуск приложения временно недоступен. - |Выполняются регламентные операции по обслуживанию приложения. - | - |Попробуйте запустить приложение через несколько минут.'"); - - КонецЕсли; - -КонецПроцедуры - -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.3.31"; - Обработчик.Процедура = "РаботаВМоделиСервиса.ПеренестиОбластиДанных"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.ВыполнятьВГруппеОбязательных = Истина; - Обработчик.Приоритет = 99; - Обработчик.МонопольныйРежим = Истина; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.3.9"; - Обработчик.Процедура = "РаботаВМоделиСервиса.ОтключитьРазделениеПользователейПоРазделителюВнутреннихДанных"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.МонопольныйРежим = Истина; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "*"; - Обработчик.Процедура = "РаботаВМоделиСервиса.КонтрольРазделителейПриОбновлении"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.ВыполнятьВГруппеОбязательных = Истина; - Обработчик.Приоритет = 99; - Обработчик.МонопольныйРежим = Ложь; - - Если РазделениеВключено() Тогда - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "*"; - Обработчик.Процедура = "РаботаВМоделиСервиса.ПроверитьВозможностьИспользованияКонфигурацииВМоделиСервиса"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.ВыполнятьВГруппеОбязательных = Истина; - Обработчик.Приоритет = 99; - Обработчик.МонопольныйРежим = Ложь; - - КонецЕсли; - - Если РазделениеВключено() Тогда - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.4.9"; - Обработчик.Процедура = "РаботаВМоделиСервиса.ПеренестиРейтингАктивностиОбластейДанных"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.ВыполнятьВГруппеОбязательных = Истина; - Обработчик.МонопольныйРежим = Истина; - - КонецЕсли; - -КонецПроцедуры - -// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиентаПриЗапуске. -Процедура ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры) Экспорт - - ПриДобавленииПараметровРаботыКлиента(Параметры); - -КонецПроцедуры - -// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиента. -Процедура ПриДобавленииПараметровРаботыКлиента(Параметры) Экспорт - - Если НЕ РазделениеВключено() - ИЛИ НЕ ДоступноИспользованиеРазделенныхДанных() Тогда - Возврат; - КонецЕсли; - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ПредставлениеОбластиДанных.Значение КАК Представление - |ИЗ - | Константа.ПредставлениеОбластиДанных КАК ПредставлениеОбластиДанных - |ГДЕ - | ПредставлениеОбластиДанных.ОбластьДанныхВспомогательныеДанные = &ОбластьДанныхВспомогательныеДанные"; - УстановитьПривилегированныйРежим(Истина); - Запрос.УстановитьПараметр("ОбластьДанныхВспомогательныеДанные", ЗначениеРазделителяСеанса()); - // Считаем данные условно неизменяемыми. - Результат = Запрос.Выполнить(); - УстановитьПривилегированныйРежим(Ложь); - Если НЕ Результат.Пустой() Тогда - Выборка = Результат.Выбрать(); - Выборка.Следующий(); - Если СеансЗапущенБезРазделителей() Тогда - Параметры.Вставить("ПредставлениеОбластиДанных", - Формат(ЗначениеРазделителяСеанса(), "ЧН=0; ЧГ=") + " - " + Выборка.Представление); - ИначеЕсли НЕ ПустаяСтрока(Выборка.Представление) Тогда - Параметры.Вставить("ПредставлениеОбластиДанных", Выборка.Представление); - КонецЕсли; - КонецЕсли; - -КонецПроцедуры - -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПослеЗагрузкиДанных. -Процедура ПослеЗагрузкиДанных(Контейнер) Экспорт - - ПользователиСлужебный.ПослеЗагрузкиДанных(Контейнер); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеИтогамиИАгрегатами") Тогда - - МодульУправлениеИтогамиИАгрегатамиСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеИтогамиИАгрегатамиСлужебный"); - МодульУправлениеИтогамиИАгрегатамиСлужебный.РассчитатьИтоги(); - - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Возвращает полный путь к каталогу временных файлов. -// -// Возвращаемое значение: -// Строка - Полный путь к каталогу временных файлов. -// -Функция ПолучитьОбщийКаталогВременныхФайлов() - - УстановитьПривилегированныйРежим(Истина); - - СистемнаяИнфо = Новый СистемнаяИнформация; - ТипПлатформыСервера = СистемнаяИнфо.ТипПлатформы; - - Если ТипПлатформыСервера = ТипПлатформы.Linux_x86 - ИЛИ ТипПлатформыСервера = ТипПлатформы.Linux_x86_64 Тогда - - ОбщийВременныйКаталог = Константы.КаталогОбменаФайламиВМоделиСервисаLinux.Получить(); - РазделительПути = "/"; - Иначе - ОбщийВременныйКаталог = Константы.КаталогОбменаФайламиВМоделиСервиса.Получить(); - РазделительПути = "\"; - КонецЕсли; - - Если ПустаяСтрока(ОбщийВременныйКаталог) Тогда - ОбщийВременныйКаталог = СокрЛП(КаталогВременныхФайлов()); - Иначе - ОбщийВременныйКаталог = СокрЛП(ОбщийВременныйКаталог); - КонецЕсли; - - Если Не СтрЗаканчиваетсяНа(ОбщийВременныйКаталог, РазделительПути) Тогда - ОбщийВременныйКаталог = ОбщийВременныйКаталог + РазделительПути; - КонецЕсли; - - Возврат ОбщийВременныйКаталог; - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Подготовка областей данных - -// Обновляет статус области в регистре ОбластиДанных, отправляет сообщение в менеджер сервиса. -// -// Параметры: -// МенеджерЗаписи - РегистрыСведений.ОбластиДанных.МенеджерЗаписи -// РезультатПодготовки - строка, одна из "Успех", "ТребуетсяКонвертация", "ФатальнаяОшибка", -// "ОшибкаУдаления", "ОбластьУдалена" -// СообщениеОбОшибке - строка. -// -Процедура СменитьСтатусОбластиИУведомитьМенеджер(Знач МенеджерЗаписи, Знач РезультатПодготовки, Знач СообщениеОбОшибке) - - КопияМенеджера = РегистрыСведений.ОбластиДанных.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(КопияМенеджера, МенеджерЗаписи); - МенеджерЗаписи = КопияМенеджера; - - ВключатьСообщениеОбОшибке = Ложь; - - ВызываемыйМодуль = ОбщегоНазначения.ОбщийМодуль("СообщенияКонтрольУдаленногоАдминистрированияИнтерфейс"); - Если РезультатПодготовки = "Успех" Тогда - МенеджерЗаписи.Статус = Перечисления.СтатусыОбластейДанных.Используется; - ТипСообщения = ВызываемыйМодуль.СообщениеОбластьДанныхПодготовлена(); - ИначеЕсли РезультатПодготовки = "ТребуетсяКонвертация" Тогда - МенеджерЗаписи.Статус = Перечисления.СтатусыОбластейДанных.ИмпортИзФайла; - ТипСообщения = ВызываемыйМодуль.СообщениеОшибкаПодготовкиОбластиДанныхТребуетсяКонвертация(); - ИначеЕсли РезультатПодготовки = "ОбластьУдалена" Тогда - МенеджерЗаписи.Статус = Перечисления.СтатусыОбластейДанных.Удалена; - ТипСообщения = ВызываемыйМодуль.СообщениеОбластьДанныхУдалена(); - ИначеЕсли РезультатПодготовки = "ФатальнаяОшибка" Тогда - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодготовкаОбластиДанных(), - УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); - МенеджерЗаписи.ОшибкаОбработки = Истина; - ТипСообщения = ВызываемыйМодуль.СообщениеОшибкаПодготовкиОбластиДанных(); - ВключатьСообщениеОбОшибке = Истина; - ИначеЕсли РезультатПодготовки = "ОшибкаУдаления" Тогда - МенеджерЗаписи.ОшибкаОбработки = Истина; - ТипСообщения = ВызываемыйМодуль.СообщениеОшибкаУдаленияОбластиДанных(); - ВключатьСообщениеОбОшибке = Истина; - Иначе - ВызватьИсключение НСтр("ru = 'Неожиданный код возврата'"); - КонецЕсли; - - // Отправить сообщение о готовности области в менеджер сервиса. - Сообщение = СообщенияВМоделиСервиса.НовоеСообщение(ТипСообщения); - Сообщение.Body.Zone = МенеджерЗаписи.ОбластьДанныхВспомогательныеДанные; - Если ВключатьСообщениеОбОшибке Тогда - Сообщение.Body.ErrorDescription = СообщениеОбОшибке; - КонецЕсли; - - НачатьТранзакцию(); - Попытка - СообщенияВМоделиСервиса.ОтправитьСообщение( - Сообщение, - КонечнаяТочкаМенеджераСервиса()); - - МенеджерЗаписи.Записать(); - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -// Загружает данные в область из пользовательской выгрузки. -// -// Параметры: -// ОбластьДанных - номер заполняемой области. -// ИДФайлаВыгрузки - ид файла начальных данных. -// СообщениеОбОшибке - строка, возвращаемая, описание ошибки. -// -// Возвращаемое значение: -// Строка - один из вариантов "ТребуетсяКонвертация", "Успех", "ФатальнаяОшибка". -// -Функция ПодготовитьОбластьДанныхКИспользованиюИзВыгрузки(Знач ОбластьДанных, Знач ИДФайлаВыгрузки, СообщениеОбОшибке) - - ИмяФайлаВыгрузки = ПолучитьФайлИзХранилищаМенеджераСервиса(ИДФайлаВыгрузки); - - Если ИмяФайлаВыгрузки = Неопределено Тогда - - СообщениеОбОшибке = НСтр("ru = 'Нет файла начальных данных для области'"); - - Возврат "ФатальнаяОшибка"; - КонецЕсли; - - Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ВыгрузкаЗагрузкаОбластейДанных") Тогда - - ВызватьИсключениеОтсутствуетПодсистемаБТС("ТехнологияСервиса.РаботаВМоделиСервиса.ВыгрузкаЗагрузкаОбластейДанных"); - - КонецЕсли; - - МодульВыгрузкаЗагрузкаОбластейДанных = ОбщегоНазначения.ОбщийМодуль("ВыгрузкаЗагрузкаОбластейДанных"); - - Если Не МодульВыгрузкаЗагрузкаОбластейДанных.ВыгрузкаВАрхивеСовместимаСТекущейКонфигурацией(ИмяФайлаВыгрузки) Тогда - Результат = "ТребуетсяКонвертация"; - Иначе - - МодульВыгрузкаЗагрузкаОбластейДанных.ЗагрузитьТекущуюОбластьДанныхИзАрхива(ИмяФайлаВыгрузки); - Результат = "Успех"; - - КонецЕсли; - - Попытка - УдалитьФайлы(ИмяФайлаВыгрузки); - Исключение - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодготовкаОбластиДанных(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - Возврат Результат; - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Функции определения типов объектов метаданных по полному имени объекта -// метаданных. - -Функция ПроверкаТипаОбъектаМетаданныхПоПолномуИмени(Знач ПолноеИмя, Знач РусскаяЛокализация, Знач АнглийскаяЛокализация, Знач ПозицияПодстроки = 0) - - Подстроки = СтрРазделить(ПолноеИмя, "."); - Если Подстроки.Количество() > ПозицияПодстроки Тогда - ИмяТипа = Подстроки.Получить(ПозицияПодстроки); - Возврат ИмяТипа = РусскаяЛокализация ИЛИ ИмяТипа = АнглийскаяЛокализация; - Иначе - Возврат Ложь; - КонецЕсли; - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Работа с параметрами ИБ - -// Возвращает пустую таблицу параметров ИБ. -// -Функция ПолучитьПустуюТаблицуПараметровИБ() - - Результат = Новый ТаблицаЗначений; - Результат.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная))); - Результат.Колонки.Добавить("Описание", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная))); - Результат.Колонки.Добавить("ЗапретЧтения", Новый ОписаниеТипов("Булево")); - Результат.Колонки.Добавить("ЗапретЗаписи", Новый ОписаниеТипов("Булево")); - Результат.Колонки.Добавить("Тип", Новый ОписаниеТипов("ОписаниеТипов")); - Возврат Результат; - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Работа с файлами - -// Добавляет файл в хранилище менеджера сервиса. -// -// Параметры: -// АдресДанныеФайл - Строка/ДвоичныеДанные/Файл - Адрес временного хранилища/Данные файла/Файл. -// ПараметрыПодключения - Структура: -// - URL - Строка - URL сервиса. Обязательно должно присутствовать и быть заполненным. -// - UserName - Строка - Имя пользователя сервиса. -// - Password - Строка - Пароль пользователя сервиса. -// ИмяФайла - Строка - Хранимое имя файла. -// -// Возвращаемое значение: -// УникальныйИдентификатор - Идентификатор файла в хранилище. -// -Функция ПоместитьФайлВХранилище(Знач АдресДанныеФайл, Знач ПараметрыПодключения, Знач ИмяФайла = "") - - УдалятьВременныйФайл = Ложь; - НачалоВыполнения = ТекущаяУниверсальнаяДата(); - - ОписаниеПрокси = ОписаниеПроксиСервисаПередачиФайлов(ПараметрыПодключения); - - Описание = ПолучитьИмяФайлаСДанными(АдресДанныеФайл, ИмяФайла); - - Если ПустаяСтрока(Описание.Имя) Тогда - - Описание.Имя = ПолучитьИмяВременногоФайла(); - УдалятьВременныйФайл = Истина; - - КонецЕсли; - - СвойстваФайла = Новый Файл(Описание.Имя); - - ОбменЧерезФС = МожноПередаватьЧерезФСНаСервер(ОписаниеПрокси.Прокси, ОписаниеПрокси.ЕстьПоддержка2йВерсии); - - Если ОбменЧерезФС Тогда - - // Сохранить данные в файл. - ОбщийКаталог = ПолучитьОбщийКаталогВременныхФайлов(); - ЦелевойФайл = Новый Файл(ОбщийКаталог + СвойстваФайла.Имя); - Если ЦелевойФайл.Существует() Тогда - // Это один и тот же файл. Его можно, не передавая, сразу читать на сервере. - Если СвойстваФайла.ПолноеИмя = ЦелевойФайл.ПолноеИмя Тогда - Результат = ОписаниеПрокси.Прокси.ReadFileFromFS(ЦелевойФайл.Имя, СвойстваФайла.Имя); - РазмерИсходногоФайла = ЦелевойФайл.Размер(); - ЗаписатьВЖурналСобытиеФайловогоХранилища( - НСтр("ru = 'Помещение'", ОбщегоНазначения.КодОсновногоЯзыка()), - Результат, - РазмерИсходногоФайла, - ТекущаяУниверсальнаяДата() - НачалоВыполнения, - ОбменЧерезФС); - Возврат Результат; - // Нельзя удалять, поскольку он является и источником. - КонецЕсли; - // Источник и приемник - разные файлы. Чтобы не затереть чужой файл, делаем приемнику уникальное имя. - НовыйИД = Новый УникальныйИдентификатор; - ЦелевойФайл = Новый Файл(ОбщийКаталог + НовыйИД + СвойстваФайла.Расширение); - КонецЕсли; - - Попытка - Если Описание.Данные = Неопределено Тогда - КопироватьФайл(СвойстваФайла.ПолноеИмя, ЦелевойФайл.ПолноеИмя); - Иначе - Описание.Данные.Записать(ЦелевойФайл.ПолноеИмя); - КонецЕсли; - Результат = ОписаниеПрокси.Прокси.ReadFileFromFS(ЦелевойФайл.Имя, СвойстваФайла.Имя); - РазмерИсходногоФайла = ЦелевойФайл.Размер(); - ЗаписатьВЖурналСобытиеФайловогоХранилища( - НСтр("ru = 'Помещение'", ОбщегоНазначения.КодОсновногоЯзыка()), - Результат, - РазмерИсходногоФайла, - ТекущаяУниверсальнаяДата() - НачалоВыполнения, - ОбменЧерезФС); - Исключение - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииДобавлениеФайлаОбменЧерезФС(), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ОбменЧерезФС = Ложь; - КонецПопытки; - - УдалитьВременныеФайлы(ЦелевойФайл.ПолноеИмя); - Если УдалятьВременныйФайл Тогда - УдалитьВременныеФайлы(Описание.Имя) - КонецЕсли; - - КонецЕсли; // ОбменЧерезФС - - Если НЕ ОбменЧерезФС Тогда - - Если Описание.Данные = Неопределено Тогда - - Если СвойстваФайла.Существует() Тогда - - КаталогСборки = Неопределено; - ПолноеИмяФайла = СвойстваФайла.ПолноеИмя; - - Иначе - - ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Добавление файла в хранилище. Не найден файл %1.'"), - СвойстваФайла.ПолноеИмя)); - - КонецЕсли; - - Иначе - - Попытка - - КаталогСборки = СоздатьКаталогСборки(); - ПолноеИмяФайла = КаталогСборки + СвойстваФайла.Имя; - Описание.Данные.Записать(ПолноеИмяФайла); - - Исключение - - УдалитьВременныеФайлы(КаталогСборки); - ВызватьИсключение; - - КонецПопытки; - - КонецЕсли; - - // Архивировать файл. - Попытка - - ИмяФайлаАрхива = ПолучитьИмяВременногоФайла("zip"); - Архиватор = Новый ЗаписьZipФайла(ИмяФайлаАрхива,,,, УровеньСжатияZIP.Минимальный); - Архиватор.Добавить(ПолноеИмяФайла); - Архиватор.Записать(); - - Исключение - - Если УдалятьВременныйФайл Тогда - - УдалитьВременныеФайлы(Описание.Имя); - - КонецЕсли; - - УдалитьВременныеФайлы(ИмяФайлаАрхива); - - Если ЗначениеЗаполнено(КаталогСборки) Тогда - - УдалитьВременныеФайлы(КаталогСборки); - - КонецЕсли; - - ВызватьИсключение; - - КонецПопытки; - - Если УдалятьВременныйФайл Тогда - - УдалитьВременныеФайлы(Описание.Имя); - - КонецЕсли; - - Если ЗначениеЗаполнено(КаталогСборки) Тогда - - УдалитьВременныеФайлы(КаталогСборки); - - КонецЕсли; - - РазмерБлокаПередачиФайла = ПолучитьРазмерБлокаПередачиФайла() * 1024 * 1024; - ИдентификаторПередачи = Новый УникальныйИдентификатор; - - ФайлАрхива = Новый Файл(ИмяФайлаАрхива); - РазмерФайлАрхива = ФайлАрхива.Размер(); - - КоличествоЧастей = Окр((РазмерФайлАрхива / РазмерБлокаПередачиФайла) + 0.5, 0, РежимОкругления.Окр15как10); - - ПотокЧтения = Неопределено; - - Попытка - - ПотокЧтения = ФайловыеПотоки.ОткрытьДляЧтения(ИмяФайлаАрхива, РазмерБлокаПередачиФайла); - ПотокЧтения.Перейти(0, ПозицияВПотоке.Начало); - - НомерЧасти = 0; - - Пока ПотокЧтения.ТекущаяПозиция() < РазмерФайлАрхива - 1 Цикл - - НомерЧасти = НомерЧасти + 1; - Буфер = Новый БуферДвоичныхДанных(Мин(РазмерБлокаПередачиФайла, РазмерФайлАрхива - ПотокЧтения.ТекущаяПозиция())); - ПотокЧтения.Прочитать(Буфер, 0, Буфер.Размер); - - КоличествоПопыток = 10; - - Для НомерПопытки = 1 По КоличествоПопыток Цикл - - Попытка - - Если ОписаниеПрокси.ЕстьПоддержка2йВерсии Тогда - - ОписаниеПрокси.Прокси.PutFilePart(ИдентификаторПередачи, НомерЧасти, ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных(Буфер), КоличествоЧастей); - - Иначе // 1-я версия. - - ОписаниеПрокси.Прокси.PutFilePart(ИдентификаторПередачи, НомерЧасти, ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных(Буфер)); - - КонецЕсли; - - Прервать; - - Исключение - - Если НомерПопытки = КоличествоПопыток Тогда - - ВызватьИсключение; - - КонецЕсли; - - КонецПопытки; - - КонецЦикла; - - КонецЦикла; - - Исключение - - Если ПотокЧтения <> Неопределено Тогда - - ПотокЧтения.Закрыть(); - - КонецЕсли; - - ОписаниеИсключения = ОписаниеОшибки(); - - УдалитьВременныеФайлы(ИмяФайлаАрхива); - - Попытка - - ОписаниеПрокси.Прокси.ReleaseFile(ИдентификаторПередачи); - - Исключение - - ОписаниеИсключения = ОписаниеИсключения + Символы.ПС + ОписаниеОшибки(); - - КонецПопытки; - - ВызватьИсключение ОписаниеИсключения; - - КонецПопытки; - - ПотокЧтения.Закрыть(); - УдалитьВременныеФайлы(ИмяФайлаАрхива); - - Если ОписаниеПрокси.ЕстьПоддержка2йВерсии Тогда - - Результат = ОписаниеПрокси.Прокси.SaveFileFromParts(ИдентификаторПередачи, КоличествоЧастей); - - Иначе // 1-я версия. - - Результат = Неопределено; - ОписаниеПрокси.Прокси.SaveFileFromParts(ИдентификаторПередачи, КоличествоЧастей, Результат); - - КонецЕсли; - - ЗаписатьВЖурналСобытиеФайловогоХранилища( - НСтр("ru = 'Помещение'", ОбщегоНазначения.КодОсновногоЯзыка()), - Результат, - РазмерИсходногоФайла, - ТекущаяУниверсальнаяДата() - НачалоВыполнения, - ОбменЧерезФС); - - КонецЕсли; // Не ОбменЧерезФС - - Возврат Результат; - -КонецФункции - -// Возвращает структуру с именем и данными файла по адресу во временном хранилище/информации в объекте Файл/двоичным -// данным. -// -// Параметры: -// АдресДанныеФайл - Строка/ДвоичныеДанные/Файл - Адрес хранилища данных файла/Данные файла/Файл. -// ИмяФайла - Строка. -// -// Возвращаемое значение: -// Структура: -// Данные - ДвоичныеДанные - Данные файла. -// Имя - Строка - Имя файла. -// -Функция ПолучитьИмяФайлаСДанными(Знач АдресДанныеФайл, Знач ИмяФайла = "") - - Если ТипЗнч(АдресДанныеФайл) = Тип("Строка") Тогда // Адрес данных файла во временном хранилище. - Если ПустаяСтрока(АдресДанныеФайл) Тогда - ВызватьИсключение(НСтр("ru = 'Неверный адрес хранилища.'")); - КонецЕсли; - ДанныеФайла = ПолучитьИзВременногоХранилища(АдресДанныеФайл); - ИначеЕсли ТипЗнч(АдресДанныеФайл) = Тип("Файл") Тогда // Объект типа Файл. - Если Не АдресДанныеФайл.Существует() Тогда - ВызватьИсключение(НСтр("ru = 'Файл не найден.'")); - КонецЕсли; - ДанныеФайла = Неопределено; - ИмяФайла = АдресДанныеФайл.ПолноеИмя; - ИначеЕсли ТипЗнч(АдресДанныеФайл) = Тип("ДвоичныеДанные") Тогда // Данные файла. - ДанныеФайла = АдресДанныеФайл; - Иначе - ВызватьИсключение(НСтр("ru = 'Неверный тип данных'")); - КонецЕсли; - - Возврат Новый Структура("Данные, Имя", ДанныеФайла, ИмяФайла); - -КонецФункции - -// Проверяет, возможна ли передача файла через файловую систему с сервера на клиент. -// -// Параметры: -// Прокси - WSПрокси - Прокси сервиса FilesTransfer*. -// ЕстьПоддержка2йВерсии - Булево. -// -// Возвращаемое значение: -// Булево. -// -Функция МожноПередаватьЧерезФСССервера(Знач Прокси, Знач ЕстьПоддержка2йВерсии) - - Если Не ЕстьПоддержка2йВерсии Тогда - Возврат Ложь; - КонецЕсли; - - ИмяФайла = Прокси.WriteTestFile(); - Если ИмяФайла = "" Тогда - Возврат Ложь; - КонецЕсли; - - Результат = ПрочитатьПробныйФайл(ИмяФайла); - - Прокси.DeleteTestFile(ИмяФайла); - - Возврат Результат; - -КонецФункции - -// Проверяет, возможна ли передача файла через файловую систему с клиента на сервер. -// -// Параметры: -// Прокси - WSПрокси - Прокси сервиса FilesTransfer*. -// ЕстьПоддержка2йВерсии - Булево. -// -// Возвращаемое значение: -// Булево. -// -Функция МожноПередаватьЧерезФСНаСервер(Знач Прокси, Знач ЕстьПоддержка2йВерсии) - - Если Не ЕстьПоддержка2йВерсии Тогда - Возврат Ложь; - КонецЕсли; - - ИмяФайла = ЗаписатьПробныйФайл(); - Если ИмяФайла = "" Тогда - Возврат Ложь; - КонецЕсли; - - Результат = Прокси.ReadTestFile(ИмяФайла); - - ПолноеИмяФайла = ПолучитьОбщийКаталогВременныхФайлов() + ИмяФайла; - УдалитьВременныеФайлы(ПолноеИмяФайла); - - Возврат Результат; - -КонецФункции - -// Создать каталог с уникальным именем для размещения частей разделяемого файла. -// -// Возвращаемое значение: -// Строка - Имя каталога. -// -Функция СоздатьКаталогСборки() - - КаталогСборки = ПолучитьИмяВременногоФайла(); - СоздатьКаталог(КаталогСборки); - Возврат КаталогСборки + ПолучитьРазделительПути(); - -КонецФункции - -// Читает тестовый файл с диска, сравнивая содержимое и имя: они должны совпадать. -// Файл должна удалять вызывающая сторона. -// -// Параметры: -// ИмяФайла - Строка - Без пути. -// -// Возвращаемое значение: -// Булево - Истина, если файл успешно прочтен и содержимое совпадает с его именем. -// -Функция ПрочитатьПробныйФайл(Знач ИмяФайла) - - СвойстваФайла = Новый Файл(ПолучитьОбщийКаталогВременныхФайлов() + ИмяФайла); - Если СвойстваФайла.Существует() Тогда - Текст = Новый ЧтениеТекста(СвойстваФайла.ПолноеИмя, КодировкаТекста.ANSI); - ТестовыйИД = Текст.Прочитать(); - Текст.Закрыть(); - Возврат ТестовыйИД = СвойстваФайла.ИмяБезРасширения; - Иначе - Возврат Ложь; - КонецЕсли; - -КонецФункции - -// Создает незаполненную структуру нужного формата. -// -// Возвращаемое значение: -// Структура: -// Имя - Строка - Имя файла в хранилище. -// Данные - ДвоичныеДанные - Данные файла. -// ПолноеИмя - Строка - Имя файла с путем. -// -Функция СоздатьОписаниеФайла() - - ОписаниеФайла = Новый Структура; - ОписаниеФайла.Вставить("Имя"); - ОписаниеФайла.Вставить("Данные"); - ОписаниеФайла.Вставить("ПолноеИмя"); - ОписаниеФайла.Вставить("ОбязательныеПараметры", "Имя"); // Обязательные к заполнению параметры. - Возврат ОписаниеФайла; - -КонецФункции - -// Получает объект WSПрокси Web-сервиса, заданного своим базовым именем. -// -// Параметры: -// ПараметрыПодключения - Структура: -// - URL - Строка - URL сервиса. Обязательно должно присутствовать и быть заполненным. -// - UserName - Строка - Имя пользователя сервиса. -// - Password - Строка - Пароль пользователя сервиса. -// Возвращаемое значение: -// Структура -// Прокси - WSПрокси -// ЕстьПоддержка2йВерсии - Булево. -// -Функция ОписаниеПроксиСервисаПередачиФайлов(Знач ПараметрыПодключения) - - БазовоеИмяСервиса = "FilesTransfer"; - - МассивПоддерживаемыхВерсий = ОбщегоНазначения.ПолучитьВерсииИнтерфейса(ПараметрыПодключения, "СервисПередачиФайлов"); - Если МассивПоддерживаемыхВерсий.Найти("1.0.2.1") = Неопределено Тогда - ЕстьПоддержка2йВерсии = Ложь; - ВерсияИнтерфейса = "1.0.1.1" - Иначе - ЕстьПоддержка2йВерсии = Истина; - ВерсияИнтерфейса = "1.0.2.1"; - КонецЕсли; - - Если ПараметрыПодключения.Свойство("UserName") - И ЗначениеЗаполнено(ПараметрыПодключения.UserName) Тогда - - ИмяПользователя = ПараметрыПодключения.UserName; - ПарольПользователя = ПараметрыПодключения.Password; - Иначе - ИмяПользователя = Неопределено; - ПарольПользователя = Неопределено; - КонецЕсли; - - Если ВерсияИнтерфейса = Неопределено Или ВерсияИнтерфейса = "1.0.1.1" Тогда // 1-я версия. - ИмяСервиса = БазовоеИмяСервиса; - Иначе // Версии 2 и выше. - ИмяСервиса = БазовоеИмяСервиса + "_" + СтрЗаменить(ВерсияИнтерфейса, ".", "_"); - КонецЕсли; - - АдресСервиса = ПараметрыПодключения.URL + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("/ws/%1?wsdl", ИмяСервиса); - - ПараметрыПодключения = ОбщегоНазначения.ПараметрыПодключенияWSПрокси(); - ПараметрыПодключения.АдресWSDL = АдресСервиса; - ПараметрыПодключения.URIПространстваИмен = "http://www.1c.ru/SaaS/1.0/WS"; - ПараметрыПодключения.ИмяСервиса = ИмяСервиса; - ПараметрыПодключения.ИмяПользователя = ИмяПользователя; - ПараметрыПодключения.Пароль = ПарольПользователя; - ПараметрыПодключения.Таймаут = 600; - Прокси = ОбщегоНазначения.СоздатьWSПрокси(ПараметрыПодключения); - - Возврат Новый Структура("Прокси, ЕстьПоддержка2йВерсии", Прокси, ЕстьПоддержка2йВерсии); - -КонецФункции - -Процедура ЗаписатьВЖурналСобытиеФайловогоХранилища(Знач Событие, - Знач ИдФайла, Знач Размер, Знач Длительность, Знач ПередачаЧерезФайловуюСистему) - - ДанныеСобытия = Новый Структура; - ДанныеСобытия.Вставить("ИдФайла", ИдФайла); - ДанныеСобытия.Вставить("Размер", Размер); - ДанныеСобытия.Вставить("Длительность", Длительность); - - Если ПередачаЧерезФайловуюСистему Тогда - ДанныеСобытия.Вставить("Транспорт", "file"); - Иначе - ДанныеСобытия.Вставить("Транспорт", "ws"); - КонецЕсли; - - ЗаписьЖурналаРегистрации( - НСтр("ru = 'Хранилище файлов'", ОбщегоНазначения.КодОсновногоЯзыка()) + "." + Событие, - УровеньЖурналаРегистрации.Информация, - , - , - ОбщегоНазначения.ЗначениеВСтрокуXML(ДанныеСобытия)); - -КонецПроцедуры - -///////////////////////////////////////////////////////////////////////////////// -// Временные файлы - -// Удалить файл(ы) на диске. -// Если в качестве имени файла задана маска с путем, разделить его на путь и маску. -// -Процедура УдалитьВременныеФайлы(Знач ИмяФайла) - - Попытка - Если СтрЗаканчиваетсяНа(ИмяФайла, "*") Тогда // Маска. - Индекс = СтрНайти(ИмяФайла, ПолучитьРазделительПути(), НаправлениеПоиска.СКонца); - Если Индекс > 0 Тогда - ПутьКФайлу = Лев(ИмяФайла, Индекс - 1); - МаскаФайла = Сред(ИмяФайла, Индекс + 1); - Если НайтиФайлы(ПутьКФайлу, МаскаФайла, Ложь).Количество() > 0 Тогда - УдалитьФайлы(ПутьКФайлу, МаскаФайла); - КонецЕсли; - КонецЕсли; - Иначе - СвойстваФайла = Новый Файл(ИмяФайла); - Если СвойстваФайла.Существует() Тогда - СвойстваФайла.УстановитьТолькоЧтение(Ложь); // Снять атрибут. - УдалитьФайлы(СвойстваФайла.ПолноеИмя); - КонецЕсли; - КонецЕсли; - Исключение - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииУдалениеВременногоФайла(), - УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Возврат; - КонецПопытки; - -КонецПроцедуры - -///////////////////////////////////////////////////////////////////////////////// -// Сериализация - -Функция ЗаписатьЗначениеВСтроку(Знач Значение) - - Запись = Новый ЗаписьXML; - Запись.УстановитьСтроку(); - - Если ТипЗнч(Значение) = Тип("ОбъектXDTO") Тогда - ФабрикаXDTO.ЗаписатьXML(Запись, Значение, , , , НазначениеТипаXML.Явное); - Иначе - СериализаторXDTO.ЗаписатьXML(Запись, Значение, НазначениеТипаXML.Явное); - КонецЕсли; - - Возврат Запись.Закрыть(); - -КонецФункции - -// Отражает, является ли данный тип сериализуемым. -// -// Параметры: -// СтруктурныйТип - Тип. -// -// Возвращаемое значение: -// Булево. -// -Функция СериализуемыйСтруктурныйТип(СтруктурныйТип); - - МассивСериализуемыхТипов = РаботаВМоделиСервисаПовтИсп.СериализуемыеСтруктурныеТипы(); - - Для Каждого СериализуемыйТип Из МассивСериализуемыхТипов Цикл - Если СтруктурныйТип = СериализуемыйТип Тогда - Возврат Истина; - КонецЕсли; - КонецЦикла; - - Возврат Ложь; - -КонецФункции - -// Получает XDTO-представление объекта структурного типа. -// -// Параметры: -// ЗначениеСтруктурногоТипа - Массив, Структура, Соответствие или их фиксированные аналоги. -// -// Возвращаемое значение: -// Структурный объект XDTO - XDTO-представление объекта структурного типа. -// -Функция СтруктурныйОбъектВОбъектXDTO(Знач ЗначениеСтруктурногоТипа) - - СтруктурныйТип = ТипЗнч(ЗначениеСтруктурногоТипа); - - Если Не СериализуемыйСтруктурныйТип(СтруктурныйТип) Тогда - СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Тип %1 не является структурным или его сериализация в настоящее время не поддерживается.'"), - СтруктурныйТип); - ВызватьИсключение(СообщениеОбОшибке); - КонецЕсли; - - XMLТипЗначения = СериализаторXDTO.XMLТипЗнч(ЗначениеСтруктурногоТипа); - ТипСтруктура = ФабрикаXDTO.Тип(XMLТипЗначения); - СтруктураXDTO = ФабрикаXDTO.Создать(ТипСтруктура); - - // Перебор допустимых структурных типов. - - Если СтруктурныйТип = Тип("Структура") Или СтруктурныйТип = Тип("ФиксированнаяСтруктура") Тогда - - ТипСвойство = ТипСтруктура.Свойства.Получить("Property").Тип; - - Для Каждого КлючИЗначение Из ЗначениеСтруктурногоТипа Цикл - Свойство = ФабрикаXDTO.Создать(ТипСвойство); - Свойство.name = КлючИЗначение.Ключ; - Свойство.Value = ЗначениеТипаВЗначениеXDTO(КлючИЗначение.Значение); - СтруктураXDTO.Property.Добавить(Свойство); - КонецЦикла; - - ИначеЕсли СтруктурныйТип = Тип("Массив") Или СтруктурныйТип = Тип("ФиксированныйМассив") Тогда - - Для Каждого ЗначениеЭлемента Из ЗначениеСтруктурногоТипа Цикл - СтруктураXDTO.Value.Добавить(ЗначениеТипаВЗначениеXDTO(ЗначениеЭлемента)); - КонецЦикла; - - ИначеЕсли СтруктурныйТип = Тип("Соответствие") Или СтруктурныйТип = Тип("ФиксированноеСоответствие") Тогда - - Для Каждого КлючИЗначение Из ЗначениеСтруктурногоТипа Цикл - СтруктураXDTO.pair.Добавить(СтруктурныйОбъектВОбъектXDTO(КлючИЗначение)); - КонецЦикла; - - ИначеЕсли СтруктурныйТип = Тип("КлючИЗначение") Тогда - - СтруктураXDTO.key = ЗначениеТипаВЗначениеXDTO(ЗначениеСтруктурногоТипа.Ключ); - СтруктураXDTO.value = ЗначениеТипаВЗначениеXDTO(ЗначениеСтруктурногоТипа.Значение); - - ИначеЕсли СтруктурныйТип = Тип("ТаблицаЗначений") Тогда - - XDTOТипКолонкаТЗ = ТипСтруктура.Свойства.Получить("column").Тип; - - Для Каждого Колонка Из ЗначениеСтруктурногоТипа.Колонки Цикл - - КолонкаXDTO = ФабрикаXDTO.Создать(XDTOТипКолонкаТЗ); - - КолонкаXDTO.Name = ЗначениеТипаВЗначениеXDTO(Колонка.Имя); - КолонкаXDTO.ValueType = СериализаторXDTO.ЗаписатьXDTO(Колонка.ТипЗначения); - КолонкаXDTO.Title = ЗначениеТипаВЗначениеXDTO(Колонка.Заголовок); - КолонкаXDTO.Width = ЗначениеТипаВЗначениеXDTO(Колонка.Ширина); - - СтруктураXDTO.column.Добавить(КолонкаXDTO); - - КонецЦикла; - - XDTOТипИндексТЗ = ТипСтруктура.Свойства.Получить("index").Тип; - - Для Каждого Индекс Из ЗначениеСтруктурногоТипа.Индексы Цикл - - ИндексXDTO = ФабрикаXDTO.Создать(XDTOТипИндексТЗ); - - Для Каждого ПолеИндекса Из Индекс Цикл - ИндексXDTO.column.Добавить(ЗначениеТипаВЗначениеXDTO(ПолеИндекса)); - КонецЦикла; - - СтруктураXDTO.index.Добавить(ИндексXDTO); - - КонецЦикла; - - XDTOТипСтрокаТЗ = ТипСтруктура.Свойства.Получить("row").Тип; - - Для Каждого СтрокаТЗ Из ЗначениеСтруктурногоТипа Цикл - - СтрокаXDTO = ФабрикаXDTO.Создать(XDTOТипСтрокаТЗ); - - Для Каждого ЗначениеКолонки Из СтрокаТЗ Цикл - СтрокаXDTO.value.Добавить(ЗначениеТипаВЗначениеXDTO(ЗначениеКолонки)); - КонецЦикла; - - СтруктураXDTO.row.Добавить(СтрокаXDTO); - - КонецЦикла; - - КонецЕсли; - - Возврат СтруктураXDTO; - -КонецФункции - -// Получает объект структурного типа из XDTO-объекта. -// -// Параметры: -// ОбъектXDTO - Объект XDTO. -// -// Возвращаемое значение: -// Структурный тип ( Массив, Структура, Соответствие или их фиксированные аналоги). -// -Функция ОбъектXDTOВСтруктурныйОбъект(ОбъектXDTO) - - ТипДанныхXML = Новый ТипДанныхXML(ОбъектXDTO.Тип().Имя, ОбъектXDTO.Тип().UriПространстваИмен); - Если ВозможностьЧтенияТипаДанныхXML(ТипДанныхXML) Тогда - СтруктурныйТип = СериализаторXDTO.ИзXMLТипа(ТипДанныхXML); - Иначе - Возврат ОбъектXDTO; - КонецЕсли; - - Если СтруктурныйТип = Тип("Строка") Тогда - Возврат ""; - КонецЕсли; - - Если Не СериализуемыйСтруктурныйТип(СтруктурныйТип) Тогда - СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Тип %1 не является структурным или его сериализация в настоящее время не поддерживается.'"), - СтруктурныйТип); - ВызватьИсключение(СообщениеОбОшибке); - КонецЕсли; - - Если СтруктурныйТип = Тип("Структура") Или СтруктурныйТип = Тип("ФиксированнаяСтруктура") Тогда - - СтруктурныйОбъект = Новый Структура; - - Для Каждого Свойство Из ОбъектXDTO.Property Цикл - СтруктурныйОбъект.Вставить(Свойство.name, ЗначениеXDTOВЗначениеТипа(Свойство.Value)); - КонецЦикла; - - Если СтруктурныйТип = Тип("Структура") Тогда - Возврат СтруктурныйОбъект; - Иначе - Возврат Новый ФиксированнаяСтруктура(СтруктурныйОбъект); - КонецЕсли; - - ИначеЕсли СтруктурныйТип = Тип("Массив") Или СтруктурныйТип = Тип("ФиксированныйМассив") Тогда - - СтруктурныйОбъект = Новый Массив; - - Для Каждого ЭлементМассива Из ОбъектXDTO.Value Цикл - СтруктурныйОбъект.Добавить(ЗначениеXDTOВЗначениеТипа(ЭлементМассива)); - КонецЦикла; - - Если СтруктурныйТип = Тип("Массив") Тогда - Возврат СтруктурныйОбъект; - Иначе - Возврат Новый ФиксированныйМассив(СтруктурныйОбъект); - КонецЕсли; - - ИначеЕсли СтруктурныйТип = Тип("Соответствие") Или СтруктурныйТип = Тип("ФиксированноеСоответствие") Тогда - - СтруктурныйОбъект = Новый Соответствие; - - Для Каждого КлючИЗначениеXDTO Из ОбъектXDTO.pair Цикл - КлючИЗначение = ОбъектXDTOВСтруктурныйОбъект(КлючИЗначениеXDTO); - СтруктурныйОбъект.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение); - КонецЦикла; - - Если СтруктурныйТип = Тип("Соответствие") Тогда - Возврат СтруктурныйОбъект; - Иначе - Возврат Новый ФиксированноеСоответствие(СтруктурныйОбъект); - КонецЕсли; - - ИначеЕсли СтруктурныйТип = Тип("КлючИЗначение") Тогда - - СтруктурныйОбъект = Новый Структура("Ключ, Значение"); - СтруктурныйОбъект.Ключ = ЗначениеXDTOВЗначениеТипа(ОбъектXDTO.key); - СтруктурныйОбъект.Значение = ЗначениеXDTOВЗначениеТипа(ОбъектXDTO.value); - - Возврат СтруктурныйОбъект; - - ИначеЕсли СтруктурныйТип = Тип("ТаблицаЗначений") Тогда - - СтруктурныйОбъект = Новый ТаблицаЗначений; - - Для Каждого Колонка Из ОбъектXDTO.column Цикл - - СтруктурныйОбъект.Колонки.Добавить( - ЗначениеXDTOВЗначениеТипа(Колонка.Name), - СериализаторXDTO.ПрочитатьXDTO(Колонка.ValueType), - ЗначениеXDTOВЗначениеТипа(Колонка.Title), - ЗначениеXDTOВЗначениеТипа(Колонка.Width)); - - КонецЦикла; - Для Каждого Индекс Из ОбъектXDTO.index Цикл - - ИндексСтрокой = ""; - Для Каждого ПолеИндекса Из Индекс.column Цикл - ИндексСтрокой = ИндексСтрокой + ПолеИндекса + ", "; - КонецЦикла; - ИндексСтрокой = СокрЛП(ИндексСтрокой); - Если СтрДлина(ИндексСтрокой) > 0 Тогда - ИндексСтрокой = Лев(ИндексСтрокой, СтрДлина(ИндексСтрокой) - 1); - КонецЕсли; - - СтруктурныйОбъект.Индексы.Добавить(ИндексСтрокой); - КонецЦикла; - Для Каждого СтрокаXDTO Из ОбъектXDTO.row Цикл - - СтрокаТЗ = СтруктурныйОбъект.Добавить(); - - ЧислоКолонок = СтруктурныйОбъект.Колонки.Количество(); - Для Индекс = 0 По ЧислоКолонок - 1 Цикл - СтрокаТЗ[СтруктурныйОбъект.Колонки[Индекс].Имя] = ЗначениеXDTOВЗначениеТипа(СтрокаXDTO.value[Индекс]); - КонецЦикла; - - КонецЦикла; - - Возврат СтруктурныйОбъект; - - КонецЕсли; - -КонецФункции - -Функция ВозможностьЧтенияТипаДанныхXML(Знач ТипДанныхXML) - - Запись = Новый ЗаписьXML; - Запись.УстановитьСтроку(); - Запись.ЗаписатьНачалоЭлемента("Dummy"); - Запись.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance"); - Запись.ЗаписатьСоответствиеПространстваИмен("ns1", ТипДанныхXML.URIПространстваИмен); - Запись.ЗаписатьАтрибут("xsi:type", "ns1:" + ТипДанныхXML.ИмяТипа); - Запись.ЗаписатьКонецЭлемента(); - - Строка = Запись.Закрыть(); - - Чтение = Новый ЧтениеXML; - Чтение.УстановитьСтроку(Строка); - Чтение.ПерейтиКСодержимому(); - - Возврат СериализаторXDTO.ВозможностьЧтенияXML(Чтение); - -КонецФункции - -// Получает значение простейшего типа в контексте XDTO. -// -// Параметры: -// ЗначениеТипа - Значение произвольного типа. -// -// Возвращаемое значение: -// Произвольный тип. -// -Функция ЗначениеТипаВЗначениеXDTO(Знач ЗначениеТипа) - - Если ЗначениеТипа = Неопределено - Или ТипЗнч(ЗначениеТипа) = Тип("ОбъектXDTO") - Или ТипЗнч(ЗначениеТипа) = Тип("ЗначениеXDTO") Тогда - - Возврат ЗначениеТипа; - - Иначе - - Если ТипЗнч(ЗначениеТипа) = Тип("Строка") Тогда - ТипXDTO = ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "string") - Иначе - ТипXML = СериализаторXDTO.XMLТипЗнч(ЗначениеТипа); - ТипXDTO = ФабрикаXDTO.Тип(ТипXML); - КонецЕсли; - - Если ТипЗнч(ТипXDTO) = Тип("ТипОбъектаXDTO") Тогда // Значение структурного типа. - Возврат СтруктурныйОбъектВОбъектXDTO(ЗначениеТипа); - Иначе - Возврат ФабрикаXDTO.Создать(ТипXDTO, ЗначениеТипа); // Например, UUID. - КонецЕсли; - - КонецЕсли; - -КонецФункции - -// Получает платформенный аналог значения XDTO-типа. -// -// Параметры: -// ЗначениеXDTO - Значение произвольного XDTO-типа. -// -// Возвращаемое значение: -// Произвольный тип. -// -Функция ЗначениеXDTOВЗначениеТипа(ЗначениеXDTO) - - Если ТипЗнч(ЗначениеXDTO) = Тип("ЗначениеXDTO") Тогда - Возврат ЗначениеXDTO.Значение; - ИначеЕсли ТипЗнч(ЗначениеXDTO) = Тип("ОбъектXDTO") Тогда - Возврат ОбъектXDTOВСтруктурныйОбъект(ЗначениеXDTO); - Иначе - Возврат ЗначениеXDTO; - КонецЕсли; - -КонецФункции - -// Заполняет область поставляемыми данными при подготовке к использованию. -// -// Параметры: -// ОбластьДанных - номер заполняемой области. -// ИДФайлаВыгрузки - ид файла начальных данных. -// Вариант - вариант начальных данных. -// РежимИспользования - демо или рабочий. -// -// Возвращаемое значение: -// Строка - один из вариантов "Успех", "ФатальнаяОшибка". -// -Функция ЗагрузитьОбластьИзПоставляемыхДанных(Знач ОбластьДанных, Знач ИДФайлаВыгрузки, Знач Вариант, СообщениеОФатальнойОшибке) - - Если НЕ Пользователи.ЭтоПолноправныйПользователь(, Истина) Тогда - ВызватьИсключение(НСтр("ru = 'Недостаточно прав для выполнения операции'")); - КонецЕсли; - - Фильтр = Новый Массив(); - Фильтр.Добавить(Новый Структура("Код, Значение", "ИмяКонфигурации", Метаданные.Имя)); - Фильтр.Добавить(Новый Структура("Код, Значение", "ВерсияКонфигурации", Метаданные.Версия)); - Фильтр.Добавить(Новый Структура("Код, Значение", "Вариант", Вариант)); - Фильтр.Добавить(Новый Структура("Код, Значение", "Режим", - ?(Константы.РежимИспользованияИнформационнойБазы.Получить() - = Перечисления.РежимыИспользованияИнформационнойБазы.Демонстрационный, - "Демонстрационный", "Рабочий"))); - - Дескрипторы = ПоставляемыеДанные.ДескрипторыПоставляемыхДанныхИзМенеджера("ЭталонОбластиДанных", Фильтр); - - Если Дескрипторы.Descriptor.Количество() = 0 Тогда - СообщениеОФатальнойОшибке = - НСтр("ru = 'В менеджере сервиса нет файла начальных данных для текущей версии конфигурации.'"); - Возврат "ФатальнаяОшибка"; - КонецЕсли; - - ИмяФайлаВыгрузки = ПолучитьФайлИзХранилищаМенеджераСервиса(Дескрипторы.Descriptor[0].FileGUID); - - Если ИмяФайлаВыгрузки = Неопределено Тогда - СообщениеОФатальнойОшибке = - НСтр("ru = 'В менеджере сервиса больше нет требуемого файла начальных данных, вероятно он был заменен. Область не может быть подготовлена.'"); - Возврат Ложь; - КонецЕсли; - - ПоставляемыеДанные.СохранитьПоставляемыеДанныеВКэш(Дескрипторы.Descriptor[0], ИмяФайлаВыгрузки); - - УстановитьПривилегированныйРежим(Истина); - - Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ВыгрузкаЗагрузкаОбластейДанных") Тогда - - ВызватьИсключениеОтсутствуетПодсистемаБТС("ТехнологияСервиса.РаботаВМоделиСервиса.ВыгрузкаЗагрузкаОбластейДанных"); - - КонецЕсли; - - МодульВыгрузкаЗагрузкаОбластейДанных = ОбщегоНазначения.ОбщийМодуль("ВыгрузкаЗагрузкаОбластейДанных"); - - Попытка - - ЗагружатьПользователейИБ = Ложь; - СвернутьПользователей = (Не Константы.РежимИспользованияИнформационнойБазы.Получить() = Перечисления.РежимыИспользованияИнформационнойБазы.Демонстрационный); - МодульВыгрузкаЗагрузкаОбластейДанных.ЗагрузитьТекущуюОбластьДанныхИзАрхива(ИмяФайлаВыгрузки, ЗагружатьПользователейИБ, СвернутьПользователей); - - Исключение - - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииКопированиеОбластиДанных(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Попытка - УдалитьФайлы(ИмяФайлаВыгрузки); - Исключение - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииКопированиеОбластиДанных(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - - ВызватьИсключение; - КонецПопытки; - - Попытка - УдалитьФайлы(ИмяФайлаВыгрузки); - Исключение - ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииКопированиеОбластиДанных(), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - - Возврат "Успех"; - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Контроль неразделенных данных. - -// Вызывается при проверке доступности неразделенных данных для записи. -// -Процедура КонтрольНеразделенныхДанныхПриЗаписи(Знач Источник) - - Если РазделениеВключено() И ДоступноИспользованиеРазделенныхДанных() Тогда - - ПредставлениеИсключения = НСтр("ru = 'Нарушение прав доступа.'", ОбщегоНазначения.КодОсновногоЯзыка()); - - ЗаписьЖурналаРегистрации( - ПредставлениеИсключения, - УровеньЖурналаРегистрации.Ошибка, - Источник.Метаданные()); - - ВызватьИсключение ПредставлениеИсключения; - - КонецЕсли; - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Обработка вспомогательных данных области. - -// Выполняет обработку значения ссылочного типа, разделенных разделителем РазделительВспомогательныхДанных -// с переключением разделения сеанса на время записи. -// -// Параметры: -// ОбъектВспомогательныхДанных - значение ссылочного типа или УдалениеОбъекта, -// Записать - Булево, признак выполнения записи значения ссылочного типа, -// Удалить - Булево, признак выполнения удаления значения ссылочного типа. -// -Процедура ОбработатьВспомогательныеДанные(ОбъектВспомогательныхДанных, Знач Записать, Знач Удалить) - - Попытка - - ТребуетсяВосстановлениеРазделенияСеанса = Ложь; - - Если ТипЗнч(ОбъектВспомогательныхДанных) = Тип("УдалениеОбъекта") Тогда - ПроверяемоеЗначение = ОбъектВспомогательныхДанных.Ссылка; - ПроверяетсяСсылка = Истина; - Иначе - ПроверяемоеЗначение = ОбъектВспомогательныхДанных; - ПроверяетсяСсылка = Ложь; - КонецЕсли; - - Если Не МонопольныйРежим() И ЭтоРазделенныйОбъектМетаданных(ПроверяемоеЗначение.Метаданные(), РазделительВспомогательныхДанных()) Тогда - - Если ДоступноИспользованиеРазделенныхДанных() Тогда - - // В разделенном сеансе достаточно просто выполнить запись объекта. - Если Записать Тогда - ОбъектВспомогательныхДанных.Записать(); - КонецЕсли; - Если Удалить Тогда - ОбъектВспомогательныхДанных.Удалить(); - КонецЕсли; - - Иначе - - // В неразделенном сеансе требуется переключение разделения сеанса для избежания - // конфликта блокировок с сеансами, в которых установлено другое значение разделителя. - Если ПроверяетсяСсылка Тогда - ЗначениеРазделителя = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПроверяемоеЗначение, РазделительВспомогательныхДанных()); - Иначе - ЗначениеРазделителя = ОбъектВспомогательныхДанных[РазделительВспомогательныхДанных()]; - КонецЕсли; - УстановитьРазделениеСеанса(Истина, ЗначениеРазделителя); - ТребуетсяВосстановлениеРазделенияСеанса = Истина; - Если Записать Тогда - ОбъектВспомогательныхДанных.Записать(); - КонецЕсли; - Если Удалить Тогда - ОбъектВспомогательныхДанных.Удалить(); - КонецЕсли; - - КонецЕсли; - - Иначе - - Если Записать Тогда - ОбъектВспомогательныхДанных.Записать(); - КонецЕсли; - Если Удалить Тогда - ОбъектВспомогательныхДанных.Удалить(); - КонецЕсли; - - КонецЕсли; - - Если ТребуетсяВосстановлениеРазделенияСеанса Тогда - УстановитьРазделениеСеанса(Ложь); - КонецЕсли; - - Исключение - - Если ТребуетсяВосстановлениеРазделенияСеанса Тогда - УстановитьРазделениеСеанса(Ложь); - КонецЕсли; - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// ОБРАБОТЧИКИ ПОЛУЧЕНИЯ ПОСТАВЛЯЕМЫХ ДАННЫХ - -Процедура ОбработатьПоставляемыйЭталонКонфигурации(Знач Дескриптор, Знач ПутьКФайлу) - - Если ЗначениеЗаполнено(ПутьКФайлу) Тогда - - ПоставляемыеДанные.СохранитьПоставляемыеДанныеВКэш(Дескриптор, ПутьКФайлу); - - УдалитьНеактуальныеЭталоныОбластейДанных(Метаданные.Версия); - - Иначе - - Фильтр = Новый Массив; - Для каждого Характеристика Из Дескриптор.Properties.Property Цикл - Если Характеристика.IsKey Тогда - Фильтр.Добавить(Новый Структура("Код, Значение", Характеристика.Code, Характеристика.Value)); - КонецЕсли; - КонецЦикла; - - Для каждого Ссылка Из ПоставляемыеДанные.СсылкиПоставляемыхДанныхИзКэша(Дескриптор.DataType, Фильтр) Цикл - - ПоставляемыеДанные.УдалитьПоставляемыеДанныеИзКэша(Ссылка); - - КонецЦикла; - КонецЕсли; - -КонецПроцедуры - -// Удаляет неактуальные эталоны областей данных: те эталоны, версия которых меньше указанной (актуальной). -// -// Параметры: -// АктуальнаяВерсияКонфигурации - Строка - актуальная версия конфигурации. -// -Процедура УдалитьНеактуальныеЭталоныОбластейДанных(АктуальнаяВерсияКонфигурации) - - Запрос = Новый Запрос( - "ВЫБРАТЬ РАЗЛИЧНЫЕ - | ПоставляемыеДанныеХарактеристикиДанных.Ссылка.Ссылка КАК ПоставляемыеДанные, - | ВЫРАЗИТЬ(ПоставляемыеДанныеХарактеристикиДанных.Значение КАК СТРОКА(150)) КАК ВерсияКонфигурации - |ИЗ - | Справочник.ПоставляемыеДанные.ХарактеристикиДанных КАК ПоставляемыеДанныеХарактеристикиДанных - |ГДЕ - | ПоставляемыеДанныеХарактеристикиДанных.Характеристика = ""ВерсияКонфигурации"" - | И ПоставляемыеДанныеХарактеристикиДанных.Ссылка.ВидДанных = ""ЭталонОбластиДанных"""); - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(АктуальнаяВерсияКонфигурации, Выборка.ВерсияКонфигурации) > 0 Тогда - ПоставляемыеДанные.УдалитьПоставляемыеДанныеИзКэша(Выборка.ПоставляемыеДанные); - КонецЕсли; - КонецЦикла; - -КонецПроцедуры - - -//////////////////////////////////////////////////////////////////////////////// -// ОБРАБОТЧИКИ ОБНОВЛЕНИЯ ИНФОРМАЦИОННОЙ БАЗЫ - -// Переносит данные из РС УдалитьОбластиДанных в РС ОбластиДанных. -// -Процедура ПеренестиОбластиДанных() Экспорт - - НачатьТранзакцию(); - - Попытка - - ТекстЗапроса = - "ВЫБРАТЬ - | ЕСТЬNULL(ОбластиДанных.ОбластьДанныхВспомогательныеДанные, УдалитьОбластиДанных.ОбластьДанных) КАК ОбластьДанныхВспомогательныеДанные, - | УдалитьОбластиДанных.Представление, - | ЕСТЬNULL(ОбластиДанных.Статус, УдалитьОбластиДанных.Статус) КАК Статус, - | УдалитьОбластиДанных.Префикс, - | ЕСТЬNULL(ОбластиДанных.Повтор, УдалитьОбластиДанных.Повтор) КАК Повтор, - | УдалитьОбластиДанных.ЧасовойПояс, - | ЕСТЬNULL(ОбластиДанных.ИдентификаторВыгрузки, УдалитьОбластиДанных.ИдентификаторВыгрузки) КАК ИдентификаторВыгрузки, - | ЕСТЬNULL(ОбластиДанных.ОшибкаОбработки, УдалитьОбластиДанных.ОшибкаОбработки) КАК ОшибкаОбработки, - | ЕСТЬNULL(ОбластиДанных.Вариант, УдалитьОбластиДанных.Вариант) КАК Вариант - |ИЗ - | РегистрСведений.УдалитьОбластиДанных КАК УдалитьОбластиДанных - | ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ОбластиДанных КАК ОбластиДанных - | ПО УдалитьОбластиДанных.ОбластьДанных = ОбластиДанных.ОбластьДанныхВспомогательныеДанные"; Запрос = Новый Запрос(ТекстЗапроса); - ТаблицаПереноса = Запрос.Выполнить().Выгрузить(); - - Для Каждого Перенос Из ТаблицаПереноса Цикл - - Менеджер = РегистрыСведений.ОбластиДанных.СоздатьМенеджерЗаписи(); - Менеджер.ОбластьДанныхВспомогательныеДанные = Перенос.ОбластьДанныхВспомогательныеДанные; - Менеджер.Прочитать(); - Если Не Менеджер.Выбран() Тогда - ЗаполнитьЗначенияСвойств(Менеджер, Перенос); - Менеджер.Записать(); - КонецЕсли; - - Если ЗначениеЗаполнено(Перенос.Представление) Тогда - - Менеджер = Константы.ПредставлениеОбластиДанных.СоздатьМенеджерЗначения(); - Менеджер.ОбластьДанныхВспомогательныеДанные = Перенос.ОбластьДанныхВспомогательныеДанные; - Менеджер.Прочитать(); - Если Не ЗначениеЗаполнено(Менеджер.Значение) Тогда - Менеджер.Значение = Перенос.Представление; - Менеджер.Записать(); - КонецЕсли; - - КонецЕсли; - - Если ЗначениеЗаполнено(Перенос.Префикс) Тогда - - Менеджер = Константы.ПрефиксОбластиДанных.СоздатьМенеджерЗначения(); - Менеджер.ОбластьДанныхВспомогательныеДанные = Перенос.ОбластьДанныхВспомогательныеДанные; - Менеджер.Прочитать(); - Если Не ЗначениеЗаполнено(Менеджер.Значение) Тогда - Менеджер.Значение = Перенос.Префикс; - Менеджер.Записать(); - КонецЕсли; - - КонецЕсли; - - Если ЗначениеЗаполнено(Перенос.ЧасовойПояс) Тогда - - Менеджер = Константы.ЧасовойПоясОбластиДанных.СоздатьМенеджерЗначения(); - Менеджер.ОбластьДанныхВспомогательныеДанные = Перенос.ОбластьДанныхВспомогательныеДанные; - Менеджер.Прочитать(); - Если Не ЗначениеЗаполнено(Менеджер.Значение) Тогда - Менеджер.Значение = Перенос.ЧасовойПояс; - Менеджер.Записать(); - КонецЕсли; - - КонецЕсли; - - КонецЦикла; - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - -// Отключает для пользователей информационной базы использование разделителя. -// ОбластьДанныхВспомогательныеДанные. -// -Процедура ОтключитьРазделениеПользователейПоРазделителюВнутреннихДанных() Экспорт - - ПользователиИБ = ПользователиИнформационнойБазы.ПолучитьПользователей(); - Для Каждого ПользовательИБ Из ПользователиИБ Цикл - - Если ПользовательИБ.РазделениеДанных.Свойство(РазделительВспомогательныхДанных()) Тогда - ПользовательИБ.РазделениеДанных.Удалить(РазделительВспомогательныхДанных()); - ПользовательИБ.Записать(); - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - -// Выполняет контроль структуры метаданных по критерию недоступности неразделенных данных -// для записи из сеансов с включенным разделением. -// -Функция КонтрольНеразделенныхДанныхПриОбновлении(ВызыватьИсключение = Истина) Экспорт - - ПравилаКонтроляМетаданных = Новый Соответствие; - - ПравилаКонтроляМетаданных.Вставить(Метаданные.Константы, "КонстантаМенеджерЗначения.%1"); - ПравилаКонтроляМетаданных.Вставить(Метаданные.Справочники, "СправочникОбъект.%1"); - ПравилаКонтроляМетаданных.Вставить(Метаданные.Документы, "ДокументОбъект.%1"); - ПравилаКонтроляМетаданных.Вставить(Метаданные.БизнесПроцессы, "БизнесПроцессОбъект.%1"); - ПравилаКонтроляМетаданных.Вставить(Метаданные.Задачи, "ЗадачаОбъект.%1"); - ПравилаКонтроляМетаданных.Вставить(Метаданные.ПланыВидовРасчета, "ПланВидовРасчетаОбъект.%1"); - ПравилаКонтроляМетаданных.Вставить(Метаданные.ПланыВидовХарактеристик, "ПланВидовХарактеристикОбъект.%1"); - ПравилаКонтроляМетаданных.Вставить(Метаданные.ПланыОбмена, "ПланОбменаОбъект.%1"); - ПравилаКонтроляМетаданных.Вставить(Метаданные.ПланыСчетов, "ПланСчетовОбъект.%1"); - ПравилаКонтроляМетаданных.Вставить(Метаданные.РегистрыБухгалтерии, "РегистрБухгалтерииНаборЗаписей.%1"); - ПравилаКонтроляМетаданных.Вставить(Метаданные.РегистрыНакопления, "РегистрНакопленияНаборЗаписей.%1"); - ПравилаКонтроляМетаданных.Вставить(Метаданные.РегистрыРасчета, "РегистрРасчетаНаборЗаписей.%1"); - ПравилаКонтроляМетаданных.Вставить(Метаданные.РегистрыСведений, "РегистрСведенийНаборЗаписей.%1"); - - Исключения = Новый Массив(); - - Исключения.Добавить(Метаданные.РегистрыСведений.КэшПрограммныхИнтерфейсов); - Исключения.Добавить(Метаданные.Константы.БлокировкаОтправкиБыстрыхСообщений); - - // СтандартныеПодсистемы.ОбменДанными - Исключения.Добавить(Метаданные.РегистрыСведений.БезопасноеХранилищеДанных); - Исключения.Добавить(Метаданные.РегистрыСведений.УдалитьНастройкиТранспортаОбмена); - Исключения.Добавить(Метаданные.РегистрыСведений.СостоянияОбменовДанными); - Исключения.Добавить(Метаданные.РегистрыСведений.СостоянияУспешныхОбменовДанными); - // Конец СтандартныеПодсистемы.ОбменДанными - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда - Исключения.Добавить(Метаданные.Справочники.Найти("КлючевыеОперации")); - Исключения.Добавить(Метаданные.Справочники.Найти("ПрофилиКлючевыхОпераций")); - Исключения.Добавить(Метаданные.РегистрыСведений.Найти("ЗамерыВремени")); - Исключения.Добавить(Метаданные.РегистрыСведений.Найти("ЗамерыВремениТехнологические")); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда - Исключения.Добавить(Метаданные.РегистрыСведений.Найти("ДампыПлатформы")); - Исключения.Добавить(Метаданные.РегистрыСведений.Найти("ОперацииСтатистики")); - Исключения.Добавить(Метаданные.РегистрыСведений.Найти("КомментарииСтатистики")); - Исключения.Добавить(Метаданные.РегистрыСведений.Найти("ОбластиСтатистики")); - Исключения.Добавить(Метаданные.РегистрыСведений.Найти("КомментарииОперацииСтатистики")); - Исключения.Добавить(Метаданные.РегистрыСведений.Найти("БуферОперацийСтатистики")); - Исключения.Добавить(Метаданные.РегистрыСведений.Найти("ЗамерыОперацииСтатистики")); - Исключения.Добавить(Метаданные.РегистрыСведений.Найти("ЗамерыКомментарииСтатистики")); - Исключения.Добавить(Метаданные.РегистрыСведений.Найти("ЗамерыОбластиСтатистики")); - Исключения.Добавить(Метаданные.РегистрыСведений.Найти("СтатистикаКонфигурации")); - Исключения.Добавить(Метаданные.РегистрыСведений.Найти("ПакетыДляОтправки")); - Исключения.Добавить(Метаданные.РегистрыСведений.Найти("ЗамерыСтатистики")); - КонецЕсли; - - ИнтеграцияСТехнологиейСервиса.ПриОпределенииИсключенийНеразделенныхДанных(Исключения); - - СтандартныеРазделители = Новый Массив; - СтандартныеРазделители.Добавить(Метаданные.ОбщиеРеквизиты.ОбластьДанныхОсновныеДанные); - СтандартныеРазделители.Добавить(Метаданные.ОбщиеРеквизиты.ОбластьДанныхВспомогательныеДанные); - - КонтрольныеПроцедуры = Новый Массив; - КонтрольныеПроцедуры.Добавить(Метаданные.ПодпискиНаСобытия.КонтрольНеразделенныхНаборовЗаписейПриЗаписи.Обработчик); - КонтрольныеПроцедуры.Добавить(Метаданные.ПодпискиНаСобытия.КонтрольНеразделенныхОбъектовПриЗаписи.Обработчик); - - КонтролирующиеПодписки = Новый Массив; - Для Каждого ПодпискаНаСобытие Из Метаданные.ПодпискиНаСобытия Цикл - Если КонтрольныеПроцедуры.Найти(ПодпискаНаСобытие.Обработчик) <> Неопределено Тогда - КонтролирующиеПодписки.Добавить(ПодпискаНаСобытие); - КонецЕсли; - КонецЦикла; - - НарушенияКонтроляВключенияНеразделенныхДанныхВКонтролирующиеПодписки = Новый Массив(); - НарушенияКонтроляРазделенияОбъектовНесколькимиРазделителями = Новый Массив(); - ОбъектыМетаданныхСНарушениями = Новый Массив; - - Для Каждого ПравилоКонтроляМетаданных Из ПравилаКонтроляМетаданных Цикл - - КонтролируемыеОбъектыМетаданных = ПравилоКонтроляМетаданных.Ключ; - КонструкторТипаОбъектовМетаданных = ПравилоКонтроляМетаданных.Значение; - - Для Каждого КонтролируемыйОбъектМетаданных Из КонтролируемыеОбъектыМетаданных Цикл - - // 1. Проверка объекта метаданных на разделение несколькими разделителями. - - ЧислоРазделителей = 0; - Для Каждого СтандартныйРазделитель Из СтандартныеРазделители Цикл - Если ЭтоРазделенныйОбъектМетаданных(КонтролируемыйОбъектМетаданных, СтандартныйРазделитель.Имя) Тогда - ЧислоРазделителей = ЧислоРазделителей + 1; - КонецЕсли; - КонецЦикла; - - Если ЧислоРазделителей > 1 Тогда - НарушенияКонтроляРазделенияОбъектовНесколькимиРазделителями.Добавить(КонтролируемыйОбъектМетаданных); - ОбъектыМетаданныхСНарушениями.Добавить(КонтролируемыйОбъектМетаданных); - КонецЕсли; - - // 2. Проверка неразделенных объектов метаданных на включение в состав контролирующих - // подписок на события. - - Если ЗначениеЗаполнено(КонструкторТипаОбъектовМетаданных) Тогда - - Если Исключения.Найти(КонтролируемыйОбъектМетаданных) <> Неопределено Тогда - Продолжить; - КонецЕсли; - - ТипОбъектаМетаданных = Тип(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(КонструкторТипаОбъектовМетаданных, КонтролируемыйОбъектМетаданных.Имя)); - - ТребуетсяКонтроль = Истина; - Для Каждого СтандартныйРазделитель Из СтандартныеРазделители Цикл - - Если ЭтоРазделенныйОбъектМетаданных(КонтролируемыйОбъектМетаданных, СтандартныйРазделитель.Имя) Тогда - - ТребуетсяКонтроль = Ложь; - - КонецЕсли; - - КонецЦикла; - - ОбеспеченКонтроль = Ложь; - Если ТребуетсяКонтроль Тогда - - Для Каждого КонтролирующаяПодписка Из КонтролирующиеПодписки Цикл - - Если КонтролирующаяПодписка.Источник.СодержитТип(ТипОбъектаМетаданных) Тогда - ОбеспеченКонтроль = Истина; - КонецЕсли; - - КонецЦикла; - - КонецЕсли; - - Если ТребуетсяКонтроль И Не ОбеспеченКонтроль Тогда - НарушенияКонтроляВключенияНеразделенныхДанныхВКонтролирующиеПодписки.Добавить(КонтролируемыйОбъектМетаданных); - ОбъектыМетаданныхСНарушениями.Добавить(КонтролируемыйОбъектМетаданных); - КонецЕсли; - - КонецЕсли; - - КонецЦикла; - - КонецЦикла; - - ВызываемыеИсключения = Новый Массив(); - - ТекстРазделителей = ""; - Для Каждого СтандартныйРазделитель Из СтандартныеРазделители Цикл - - Если Не ПустаяСтрока(ТекстРазделителей) Тогда - ТекстРазделителей = ТекстРазделителей + ", "; - КонецЕсли; - - ТекстРазделителей = ТекстРазделителей + СтандартныйРазделитель.Имя; - - КонецЦикла; - - Если НарушенияКонтроляВключенияНеразделенныхДанныхВКонтролирующиеПодписки.Количество() > 0 Тогда - - ТекстИсключения = ""; - Для Каждого НеконтролируемыйОбъектМетаданных Из НарушенияКонтроляВключенияНеразделенныхДанныхВКонтролирующиеПодписки Цикл - - Если Не ПустаяСтрока(ТекстИсключения) Тогда - ТекстИсключения = ТекстИсключения + ", "; - КонецЕсли; - - ТекстИсключения = ТекстИсключения + НеконтролируемыйОбъектМетаданных.ПолноеИмя(); - - КонецЦикла; - - ТекстПодписок = ""; - Для Каждого КонтролирующаяПодписка Из КонтролирующиеПодписки Цикл - - Если Не ПустаяСтрока(ТекстПодписок) Тогда - ТекстПодписок = ТекстПодписок + ", "; - КонецЕсли; - - ТекстПодписок = ТекстПодписок + КонтролирующаяПодписка.Имя; - - КонецЦикла; - - ВызываемыеИсключения.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Все объекты метаданных, не входящие в состав разделителей БСП (%1), - |должны быть включены в состав подписок на события (%2), контролирующих - |невозможность записи неразделенных данных в разделенных сеансах. - |Следующие объекты метаданных не удовлетворяют этому критерию: %3.'"), - ТекстРазделителей, ТекстПодписок, ТекстИсключения)); - - КонецЕсли; - - Если НарушенияКонтроляРазделенияОбъектовНесколькимиРазделителями.Количество() > 0 Тогда - - ТекстИсключения = ""; - - Для Каждого НарушающийОбъектМетаданных Из НарушенияКонтроляРазделенияОбъектовНесколькимиРазделителями Цикл - - Если Не ПустаяСтрока(ТекстИсключения) Тогда - ТекстИсключения = ТекстИсключения + ", "; - КонецЕсли; - - ТекстИсключения = ТекстИсключения + НарушающийОбъектМетаданных.ПолноеИмя(); - - КонецЦикла; - - ВызываемыеИсключения.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Все объекты метаданных конфигурации должны быть разделены не более чем одним разделителем БСП (%1). - |Следующие объекты не удовлетворяют этому критерию: %2'"), - ТекстРазделителей, ТекстИсключения)); - - КонецЕсли; - - РезультирующееИсключение = ""; - Итератор = 1; - - Для Каждого ВызываемоеИсключение Из ВызываемыеИсключения Цикл - - Если Не ПустаяСтрока(РезультирующееИсключение) Тогда - РезультирующееИсключение = РезультирующееИсключение + Символы.ПС + Символы.ВК; - КонецЕсли; - - РезультирующееИсключение = РезультирующееИсключение + Формат(Итератор, "ЧДЦ=0; ЧГ=0") + ". " + ВызываемоеИсключение; - Итератор = Итератор + 1; - - КонецЦикла; - - Если Не ПустаяСтрока(РезультирующееИсключение) Тогда - - РезультирующееИсключение = НСтр("ru = 'Обнаружены ошибки в структуре метаданных конфигурации:'") + Символы.ПС + Символы.ВК + РезультирующееИсключение; - - Если ВызыватьИсключение Тогда - - ВызватьИсключение РезультирующееИсключение; - - Иначе - - Возврат Новый Структура("ОбъектыМетаданных, ТекстИсключения", ОбъектыМетаданныхСНарушениями, РезультирующееИсключение); - - КонецЕсли; - - КонецЕсли; - - Возврат Неопределено; - -КонецФункции - -// Выполняет контроль структуры метаданных по критерию упорядоченности общих реквизитов -// в дереве метаданных конфигурации. -// -Процедура КонтрольРазделителейПриОбновлении() Экспорт - - ПорядокПрикладныхДанных = 99; - ПорядокВнутреннихДанных = 99; - - РазделительПрикладной = Метаданные.ОбщиеРеквизиты.ОбластьДанныхОсновныеДанные; - РазделительВнутренний = Метаданные.ОбщиеРеквизиты.ОбластьДанныхВспомогательныеДанные; - - Итератор = 0; - Для Каждого ОбщийРеквизитКонфигурации Из Метаданные.ОбщиеРеквизиты Цикл - - Если ОбщийРеквизитКонфигурации = РазделительПрикладной Тогда - ПорядокПрикладныхДанных = Итератор; - ИначеЕсли ОбщийРеквизитКонфигурации = РазделительВнутренний Тогда - ПорядокВнутреннихДанных = Итератор; - КонецЕсли; - - Итератор = Итератор + 1; - - КонецЦикла; - - Если ПорядокПрикладныхДанных <= ПорядокВнутреннихДанных Тогда - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Обнаружено нарушение структуры метаданных конфигурации: общий реквизит %1 должен - |быть расположен в дереве метаданных конфигурации до общего реквизита - |%2 по порядку.'"), - РазделительВнутренний.Имя, - РазделительПрикладной.Имя); - - КонецЕсли; - -КонецПроцедуры - -// Переносит записи из РС УдалитьРейтингАктивностиОбластейДанных в регистр РейтингАктивностиОбластейДанных. -// -Процедура ПеренестиРейтингАктивностиОбластейДанных() Экспорт - - НачатьТранзакцию(); - - Попытка - - Блокировка = Новый БлокировкаДанных(); - Блокировка.Добавить("РегистрСведений.РейтингАктивностиОбластейДанных"); - Блокировка.Добавить("РегистрСведений.УдалитьРейтингАктивностиОбластейДанных"); - Блокировка.Заблокировать(); - - РегистрыСведений.РейтингАктивностиОбластейДанных.СоздатьНаборЗаписей().Записать(); - - Набор = Неопределено; - - Выборка = РегистрыСведений.УдалитьРейтингАктивностиОбластейДанных.Выбрать(); - Пока Выборка.Следующий() Цикл - - Если Набор = Неопределено Тогда - Набор = РегистрыСведений.РейтингАктивностиОбластейДанных.СоздатьНаборЗаписей(); - КонецЕсли; - - Запись = Набор.Добавить(); - Запись.ОбластьДанныхВспомогательныеДанные = Выборка.ОбластьДанных; - Запись.Рейтинг = Выборка.Рейтинг; - - Если Набор.Количество() >= 10000 Тогда - Набор.Записать(Ложь); - Набор = Неопределено; - КонецЕсли; - - КонецЦикла; - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - -// Возвращает минимальную версию библиотеки "1С:Библиотека технологии сервиса", совместно с которой -// возможно использование текущей версии БСП. -// -// Возвращаемое значение: Строка, минимальная поддерживаемая версия БТС в формате РР.{П|ПП}.ЗЗ.СС. -// -Функция ТребуемаяВерсияБТС() - - Возврат "1.0.2.1"; - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/РаботаВМоделиСервиса/РаботаВМоделиСервиса.mdo b/SSL/src/CommonModules/РаботаВМоделиСервиса/РаботаВМоделиСервиса.mdo deleted file mode 100644 index b00350c2a..000000000 --- a/SSL/src/CommonModules/РаботаВМоделиСервиса/РаботаВМоделиСервиса.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - РаботаВМоделиСервиса - - ru - Работа в модели сервиса - - true - true - true - diff --git a/SSL/src/CommonModules/РаботаВМоделиСервисаБСП/Module.bsl b/SSL/src/CommonModules/РаботаВМоделиСервисаБСП/Module.bsl new file mode 100644 index 000000000..23b82470d --- /dev/null +++ b/SSL/src/CommonModules/РаботаВМоделиСервисаБСП/Module.bsl @@ -0,0 +1,51 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныеПроцедурыИФункции + +// Обработчик подписки на событие КонтрольНеразделенныхОбъектовПриЗаписи. +// +Процедура КонтрольНеразделенныхОбъектовПриЗаписи(Источник, Отказ) Экспорт + + // ОбменДанными.Загрузка не требуется. + // Запись неразделенных данных из разделенного сеанса запрещена. + КонтрольНеразделенныхДанныхПриЗаписи(Источник); + +КонецПроцедуры + +// Обработчик подписки на событие КонтрольНеразделенныхНаборовЗаписейПриЗаписи. +// +Процедура КонтрольНеразделенныхНаборовЗаписейПриЗаписи(Источник, Отказ, Замещение) Экспорт + + // ОбменДанными.Загрузка не требуется. + // Запись неразделенных данных из разделенного сеанса запрещена. + КонтрольНеразделенныхДанныхПриЗаписи(Источник); + +КонецПроцедуры + +// Вызывается при проверке доступности неразделенных данных для записи. +// +Процедура КонтрольНеразделенныхДанныхПриЗаписи(Знач Источник) + + Если ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + + ПредставлениеИсключения = НСтр("ru = 'Нарушение прав доступа.'", ОбщегоНазначения.КодОсновногоЯзыка()); + + ЗаписьЖурналаРегистрации( + ПредставлениеИсключения, + УровеньЖурналаРегистрации.Ошибка, + Источник.Метаданные()); + + ВызватьИсключение ПредставлениеИсключения; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/CommonModules/ОбменСообщениями/ОбменСообщениями.mdo b/SSL/src/CommonModules/РаботаВМоделиСервисаБСП/РаботаВМоделиСервисаБСП.mdo similarity index 61% rename from SSL/src/CommonModules/ОбменСообщениями/ОбменСообщениями.mdo rename to SSL/src/CommonModules/РаботаВМоделиСервисаБСП/РаботаВМоделиСервисаБСП.mdo index 38c1d8c10..679be49cd 100644 --- a/SSL/src/CommonModules/ОбменСообщениями/ОбменСообщениями.mdo +++ b/SSL/src/CommonModules/РаботаВМоделиСервисаБСП/РаботаВМоделиСервисаБСП.mdo @@ -1,9 +1,9 @@ - - ОбменСообщениями + + РаботаВМоделиСервисаБСП ru - Обмен сообщениями + Работа в модели сервиса БСП true true diff --git a/SSL/src/CommonModules/РаботаВМоделиСервисаКлиент/Module.bsl b/SSL/src/CommonModules/РаботаВМоделиСервисаКлиент/Module.bsl deleted file mode 100644 index e85f624ad..000000000 --- a/SSL/src/CommonModules/РаботаВМоделиСервисаКлиент/Module.bsl +++ /dev/null @@ -1,30 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. - -// См. ОбщегоНазначенияКлиентПереопределяемый.ПередНачаломРаботыСистемы. -Процедура ПередНачаломРаботыСистемы(Параметры) Экспорт - - ПараметрыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске(); - - Если ПараметрыКлиента.Свойство("ОбластьДанныхЗаблокирована") Тогда - Параметры.Отказ = Истина; - Параметры.ИнтерактивнаяОбработка = Новый ОписаниеОповещения( - "ПоказатьПредупреждениеИПродолжить", - СтандартныеПодсистемыКлиент, - ПараметрыКлиента.ОбластьДанныхЗаблокирована); - Возврат; - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/РаботаВМоделиСервисаКлиент/РаботаВМоделиСервисаКлиент.mdo b/SSL/src/CommonModules/РаботаВМоделиСервисаКлиент/РаботаВМоделиСервисаКлиент.mdo deleted file mode 100644 index 739b587f3..000000000 --- a/SSL/src/CommonModules/РаботаВМоделиСервисаКлиент/РаботаВМоделиСервисаКлиент.mdo +++ /dev/null @@ -1,10 +0,0 @@ - - - РаботаВМоделиСервисаКлиент - - ru - Работа в модели сервиса клиент - - true - true - diff --git a/SSL/src/CommonModules/РаботаВМоделиСервисаПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаВМоделиСервисаПереопределяемый/Module.bsl deleted file mode 100644 index 1913ca974..000000000 --- a/SSL/src/CommonModules/РаботаВМоделиСервисаПереопределяемый/Module.bsl +++ /dev/null @@ -1,82 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Вызывается при удалении области данных. -// В процедуре необходимо удалить данные области данных, которые не -// могут быть удалены стандартным механизмом. -// -// Параметры: -// ОбластьДанных - Число - значение разделителя удаляемой области данных. -// -Процедура ПриУдаленииОбластиДанных(Знач ОбластьДанных) Экспорт - -КонецПроцедуры - -// Формирует список параметров ИБ. -// -// Параметры: -// ТаблицаПараметров - ТаблицаЗначений - таблица описания параметров см. РаботаВМоделиСервиса.ПолучитьТаблицуПараметровИБ(). -// -Процедура ПриЗаполненииТаблицыПараметровИБ(Знач ТаблицаПараметров) Экспорт - -КонецПроцедуры - -// Вызывается перед попыткой получения значений параметров ИБ из одноименных -// констант. -// -// Параметры: -// ИменаПараметров - Массив - имена параметров, значения которых необходимо получить. -// В случае если значение параметра получается в данной процедуре, необходимо удалить имя обработанного параметра из -// массива. -// ЗначенияПараметров - Структура - значения параметров. -// -Процедура ПриПолученииЗначенийПараметровИБ(Знач ИменаПараметров, Знач ЗначенияПараметров) Экспорт - -КонецПроцедуры - -// Вызывается перед попыткой записи значений параметров ИБ в одноименные -// константы. -// -// Параметры: -// ЗначенияПараметров - Структура - значения параметров которые требуется установить. -// В случае если значение параметра устанавливается в данной процедуре из структуры необходимо удалить соответствующую -// пару КлючИЗначение. -// -Процедура ПриУстановкеЗначенийПараметровИБ(Знач ЗначенияПараметров) Экспорт - -КонецПроцедуры - -// Вызывается при включении разделения данных по областям данных, -// при первом запуске конфигурации с параметром "ИнициализироватьРазделеннуюИБ" ("InitializeSeparatedIB"). -// -// В частности, здесь следует размещать код по включению регламентных заданий, -// используемых только при включенном разделении данных, -// и соответственно, по выключению заданий, используемых только при выключенном разделении данных. -// -Процедура ПриВключенииРазделенияПоОбластямДанных() Экспорт - - -КонецПроцедуры - -// Устанавливает пользователю права по умолчанию. -// Вызывается при работе в модели сервиса, в случае обновления в менеджере -// сервиса прав пользователя без прав администрирования. -// -// Параметры: -// Пользователь - СправочникСсылка.Пользователи - пользователь, которому -// требуется установить права по умолчанию. -// -Процедура УстановитьПраваПоУмолчанию(Пользователь) Экспорт - - - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/РаботаВМоделиСервисаПереопределяемый/РаботаВМоделиСервисаПереопределяемый.mdo b/SSL/src/CommonModules/РаботаВМоделиСервисаПереопределяемый/РаботаВМоделиСервисаПереопределяемый.mdo deleted file mode 100644 index 3b6acc1c3..000000000 --- a/SSL/src/CommonModules/РаботаВМоделиСервисаПереопределяемый/РаботаВМоделиСервисаПереопределяемый.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - РаботаВМоделиСервисаПереопределяемый - - ru - Работа в модели сервиса переопределяемый - - true - true - true - diff --git a/SSL/src/CommonModules/РаботаВМоделиСервисаПовтИсп/Module.bsl b/SSL/src/CommonModules/РаботаВМоделиСервисаПовтИсп/Module.bsl deleted file mode 100644 index 341fb8786..000000000 --- a/SSL/src/CommonModules/РаботаВМоделиСервисаПовтИсп/Module.bsl +++ /dev/null @@ -1,373 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -// Возвращает признак наличия в конфигурации общих реквизитов-разделителей. -// -// Возвращаемое значение: -// Булево - Истина, если это разделенная конфигурация. -// -Функция ЭтоРазделеннаяКонфигурация() Экспорт - - ЕстьРазделители = Ложь; - Для каждого ОбщийРеквизит Из Метаданные.ОбщиеРеквизиты Цикл - Если ОбщийРеквизит.РазделениеДанных = Метаданные.СвойстваОбъектов.РазделениеДанныхОбщегоРеквизита.Разделять Тогда - ЕстьРазделители = Истина; - Прервать; - КонецЕсли; - КонецЦикла; - - Возврат ЕстьРазделители; - -КонецФункции - -// Возвращает признак того, что объект метаданных используется в общих реквизитах-разделителях. -// -// Параметры: -// ПолноеИмяОбъектаМетаданных - Строка - имя объекта метаданных. -// Разделитель - Строка - имя общего реквизита-разделителя, на разделение которыми проверяется объект метаданных. -// -// Возвращаемое значение: -// Булево - Истина, если это разделенный объект. -// -Функция ЭтоРазделенныйОбъектМетаданных(Знач ПолноеИмяОбъектаМетаданных, Знач Разделитель = Неопределено) Экспорт - - Если Разделитель = Неопределено Тогда - РазделениеПоОсновномуРеквизиту = РаботаВМоделиСервиса.РазделенныеОбъектыМетаданных(РаботаВМоделиСервиса.РазделительОсновныхДанных()); - РазделениеПоВспомогательномуРеквизиту = РаботаВМоделиСервиса.РазделенныеОбъектыМетаданных(РаботаВМоделиСервиса.РазделительВспомогательныхДанных()); - Результат = РазделениеПоОсновномуРеквизиту.Получить(ПолноеИмяОбъектаМетаданных) <> Неопределено - Или РазделениеПоВспомогательномуРеквизиту.Получить(ПолноеИмяОбъектаМетаданных) <> Неопределено; - Возврат Результат; - Иначе - РазделенныеОбъектыМетаданных = РаботаВМоделиСервиса.РазделенныеОбъектыМетаданных(Разделитель); - Возврат РазделенныеОбъектыМетаданных.Получить(ПолноеИмяОбъектаМетаданных) <> Неопределено; - КонецЕсли; - -КонецФункции - -// Возвращает признак работы в режиме разделения данных по областям -// (технически это признак условного разделения). -// -// Возвращает Ложь, если конфигурация не может работать в режиме разделения данных -// (не содержит общих реквизитов, предназначенных для разделения данных). -// -// Возвращаемое значение: -// Булево - Истина, если разделение включено. -// - Ложь, если разделение выключено или не поддерживается. -// -Функция РазделениеВключено() Экспорт - - Если Не ЭтоРазделеннаяКонфигурация() Тогда - Возврат Ложь; - КонецЕсли; - - Если Не ПолучитьФункциональнуюОпцию("РаботаВМоделиСервиса") Тогда - Возврат Ложь; - КонецЕсли; - - Возврат Истина; - -КонецФункции - -// Возвращает массив сериализуемых структурных типов, поддерживаемых в настоящее время. -// -// Возвращаемое значение: -// ФиксированныйМассив - элементы типа Тип. -// -Функция СериализуемыеСтруктурныеТипы() Экспорт - - МассивТипов = Новый Массив; - - МассивТипов.Добавить(Тип("Структура")); - МассивТипов.Добавить(Тип("ФиксированнаяСтруктура")); - МассивТипов.Добавить(Тип("Массив")); - МассивТипов.Добавить(Тип("ФиксированныйМассив")); - МассивТипов.Добавить(Тип("Соответствие")); - МассивТипов.Добавить(Тип("ФиксированноеСоответствие")); - МассивТипов.Добавить(Тип("КлючИЗначение")); - МассивТипов.Добавить(Тип("ТаблицаЗначений")); - - Возврат Новый ФиксированныйМассив(МассивТипов); - -КонецФункции - -// Возвращает конечную точку для отправки сообщений в менеджер сервиса. -// -// Возвращаемое значение: -// ПланОбменСсылка.ОбменСообщениями - узел соответствующий менеджеру сервиса. -// -Функция КонечнаяТочкаМенеджераСервиса() Экспорт - - ВызываемыйМодуль = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервисаБТС"); - Возврат ВызываемыйМодуль.КонечнаяТочкаМенеджераСервиса(); - -КонецФункции - -// Возвращает соответствие видов контактной информации пользователя видам. -// КИ используемой в XDTO модели сервиса. -// -// Возвращаемое значение: -// Соответствие - соответствие видов КИ. -// -Функция СоответствиеВидовКИПользователяXDTO() Экспорт - - Соответствие = Новый Соответствие; - Соответствие.Вставить(Справочники.ВидыКонтактнойИнформации.EmailПользователя, "UserEMail"); - Соответствие.Вставить(Справочники.ВидыКонтактнойИнформации.ТелефонПользователя, "UserPhone"); - - Возврат Новый ФиксированноеСоответствие(Соответствие); - -КонецФункции - -// Возвращает соответствие видов контактной информации XDTO видам. -// КИ пользователя. -// -// Возвращаемое значение: -// Соответствие - соответствие видов КИ. -// -Функция СоответствиеВидовКИXDTOВидамКИПользователя() Экспорт - - Соответствие = Новый Соответствие; - Для каждого КлючИЗначение Из СоответствиеВидовКИПользователяXDTO() Цикл - Соответствие.Вставить(КлючИЗначение.Значение, КлючИЗначение.Ключ); - КонецЦикла; - - Возврат Новый ФиксированноеСоответствие(Соответствие); - -КонецФункции - -// Возвращает соответствие прав XDTO используемым в модели сервиса возможным -// действиям с пользователем сервиса. -// -// Возвращаемое значение: -// Соответствие - соответствие прав действиям. -// -Функция СоответствиеПравXDTOДействиямСПользователемСервиса() Экспорт - - Соответствие = Новый Соответствие; - Соответствие.Вставить("ChangePassword", "ИзменениеПароля"); - Соответствие.Вставить("ChangeName", "ИзменениеИмени"); - Соответствие.Вставить("ChangeFullName", "ИзменениеПолногоИмени"); - Соответствие.Вставить("ChangeAccess", "ИзменениеДоступа"); - Соответствие.Вставить("ChangeAdmininstrativeAccess", "ИзменениеАдминистративногоДоступа"); - - Возврат Новый ФиксированноеСоответствие(Соответствие); - -КонецФункции - -// Возвращает описание модели данных, относящихся к области данных. -// -// Возвращаемое значение: -// ФиксированноеСоответствие - модель данных области -// * Ключ - ОбъектМетаданных - объект метаданных, -// * Значение - Строка - имя общего реквизита-разделителя. -// -Функция ПолучитьМодельДанныхОбласти() Экспорт - - Результат = Новый Соответствие(); - - РазделительОсновныхДанных = РаботаВМоделиСервиса.РазделительОсновныхДанных(); - ОсновныеДанныеОбласти = РазделенныеОбъектыМетаданных( - РазделительОсновныхДанных); - Для Каждого ЭлементОсновныхДанныхОбласти Из ОсновныеДанныеОбласти Цикл - Результат.Вставить(ЭлементОсновныхДанныхОбласти.Ключ, ЭлементОсновныхДанныхОбласти.Значение); - КонецЦикла; - - РазделительВспомогательныхДанных = РаботаВМоделиСервиса.РазделительВспомогательныхДанных(); - ВспомогательныеДанныеОбласти = РаботаВМоделиСервиса.РазделенныеОбъектыМетаданных( - РазделительВспомогательныхДанных); - Для Каждого ЭлементВспомогательныхДанныхОбласти Из ВспомогательныеДанныеОбласти Цикл - Результат.Вставить(ЭлементВспомогательныхДанныхОбласти.Ключ, ЭлементВспомогательныхДанныхОбласти.Значение); - КонецЦикла; - - Возврат Новый ФиксированноеСоответствие(Результат); - -КонецФункции - -// Возвращает массив существующих в конфигурации разделителей. -// -// Возвращаемое значение: -// ФиксированныйМассив - массив имен общих реквизитов, которые -// являются разделителями. -// -Функция РазделителиКонфигурации() Экспорт - - МассивРазделителей = Новый Массив; - - Для Каждого ОбщийРеквизит Из Метаданные.ОбщиеРеквизиты Цикл - Если ОбщийРеквизит.РазделениеДанных = Метаданные.СвойстваОбъектов.РазделениеДанныхОбщегоРеквизита.Разделять Тогда - МассивРазделителей.Добавить(ОбщийРеквизит.Имя); - КонецЕсли; - КонецЦикла; - - Возврат Новый ФиксированныйМассив(МассивРазделителей); - -КонецФункции - -// Возвращает состав общего реквизита с заданным именем. -// -// Параметры: -// Имя - Строка - Имя общего реквизита. -// -// Возвращаемое значение: -// СоставОбщегоРеквизита - список объектов метаданных, в которые входит общий реквизит. -// -Функция СоставОбщегоРеквизита(Знач Имя) Экспорт - - Возврат Метаданные.ОбщиеРеквизиты[Имя].Состав; - -КонецФункции - -// Возвращает список полных имен всех объектов метаданных, использующихся в общем реквизите-разделителе, -// имя которого передано в качестве значения параметра Разделитель, и значения свойств объекта метаданных, -// которые могут потребоваться для дальнейшей его обработки в универсальных алгоритмах. -// Для последовательностей и журналов документов определяет разделенность по входящим документам: любому из. -// -// Параметры: -// Разделитель - Строка, имя общего реквизита. -// -// Возвращаемое значение: -// ФиксированноеСоответствие, -// Ключ - Строка, полное имя объекта метаданных, -// Значение - ФиксированнаяСтруктура, -// Имя - Строка, имя объекта метаданных, -// Разделитель - Строка, имя разделителя, которым разделен объект метаданных, -// УсловноеРазделение - Строка, полное имя объекта метаданных, выступающего в качестве условия использования -// разделения объекта метаданных данным разделителем. -// -Функция РазделенныеОбъектыМетаданных(Знач Разделитель) Экспорт - - Результат = Новый Соответствие; - - // I. Перебрать состав всех общих реквизитов. - - МетаданныеОбщегоРеквизита = Метаданные.ОбщиеРеквизиты.Найти(Разделитель); - Если МетаданныеОбщегоРеквизита = Неопределено Тогда - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Общий реквизит %1 не обнаружен в конфигурации.'"), Разделитель); - КонецЕсли; - - Если МетаданныеОбщегоРеквизита.РазделениеДанных = Метаданные.СвойстваОбъектов.РазделениеДанныхОбщегоРеквизита.Разделять Тогда - - СоставОбщегоРеквизита = СоставОбщегоРеквизита(МетаданныеОбщегоРеквизита.Имя); - - ИспользоватьОбщийРеквизит = Метаданные.СвойстваОбъектов.ИспользованиеОбщегоРеквизита.Использовать; - АвтоИспользоватьОбщийРеквизит = Метаданные.СвойстваОбъектов.ИспользованиеОбщегоРеквизита.Авто; - АвтоИспользованиеОбщегоРеквизита = - (МетаданныеОбщегоРеквизита.АвтоИспользование = Метаданные.СвойстваОбъектов.АвтоИспользованиеОбщегоРеквизита.Использовать); - - Для Каждого ЭлементСостава Из СоставОбщегоРеквизита Цикл - - Если (АвтоИспользованиеОбщегоРеквизита И ЭлементСостава.Использование = АвтоИспользоватьОбщийРеквизит) - ИЛИ ЭлементСостава.Использование = ИспользоватьОбщийРеквизит Тогда - - ДополнительныеДанные = Новый Структура("Имя,Разделитель,УсловноеРазделение", ЭлементСостава.Метаданные.Имя, Разделитель, Неопределено); - Если ЭлементСостава.УсловноеРазделение <> Неопределено Тогда - ДополнительныеДанные.УсловноеРазделение = ЭлементСостава.УсловноеРазделение.ПолноеИмя(); - КонецЕсли; - - Результат.Вставить(ЭлементСостава.Метаданные.ПолноеИмя(), Новый ФиксированнаяСтруктура(ДополнительныеДанные)); - - // По регистрам расчета дополнительно определяется разделенность подчиненных им перерасчетов. - Если ОбщегоНазначения.ЭтоРегистрРасчета(ЭлементСостава.Метаданные) Тогда - - Перерасчеты = ЭлементСостава.Метаданные.Перерасчеты; - Для Каждого Перерасчет Из Перерасчеты Цикл - - ДополнительныеДанные.Имя = Перерасчет.Имя; - Результат.Вставить(Перерасчет.ПолноеИмя(), Новый ФиксированнаяСтруктура(ДополнительныеДанные)); - - КонецЦикла; - - КонецЕсли; - - КонецЕсли; - - КонецЦикла; - - Иначе - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Для общего реквизита %1 не используется разделение данных.'"), Разделитель); - - КонецЕсли; - - // II. Для последовательностей и журналов определять разделенность по входящим документам. - - // 1) Последовательности. Перебор с проверкой первого входящего документа. Если документов нет, считаем разделенной. - Для Каждого МетаданныеПоследовательности Из Метаданные.Последовательности Цикл - - ДополнительныеДанные = Новый Структура("Имя,Разделитель,УсловноеРазделение", МетаданныеПоследовательности.Имя, Разделитель, Неопределено); - - Если МетаданныеПоследовательности.Документы.Количество() = 0 Тогда - - ШаблонСообщения = НСтр("ru = 'В последовательность %1 не включено ни одного документа.'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, МетаданныеПоследовательности.Имя); - ЗаписьЖурналаРегистрации(НСтр("ru = 'Получение разделенных объектов метаданных'", - ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, - МетаданныеПоследовательности, , ТекстСообщения); - - Результат.Вставить(МетаданныеПоследовательности.ПолноеИмя(), Новый ФиксированнаяСтруктура(ДополнительныеДанные)); - - Иначе - - Для Каждого МетаданныеДокумента Из МетаданныеПоследовательности.Документы Цикл - - ДополнительныеДанныеОтДокумента = Результат.Получить(МетаданныеДокумента.ПолноеИмя()); - - Если ДополнительныеДанныеОтДокумента <> Неопределено Тогда - ЗаполнитьЗначенияСвойств(ДополнительныеДанные, ДополнительныеДанныеОтДокумента, "Разделитель,УсловноеРазделение"); - Результат.Вставить(МетаданныеПоследовательности.ПолноеИмя(), Новый ФиксированнаяСтруктура(ДополнительныеДанные)); - КонецЕсли; - - Прервать; - - КонецЦикла; - - КонецЕсли; - - КонецЦикла; - - // 2) Журналы. Перебор с проверкой первого входящего документа. Если документов нет, считаем разделенным. - Для Каждого МетаданныеЖурналаДокументов Из Метаданные.ЖурналыДокументов Цикл - - ДополнительныеДанные = Новый Структура("Имя,Разделитель,УсловноеРазделение", МетаданныеЖурналаДокументов.Имя, Разделитель, Неопределено); - - Если МетаданныеЖурналаДокументов.РегистрируемыеДокументы.Количество() = 0 Тогда - - ШаблонСообщения = НСтр("ru = 'В журнал %1 не включено ни одного документа.'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, МетаданныеЖурналаДокументов.Имя); - ЗаписьЖурналаРегистрации(НСтр("ru = 'Получение разделенных объектов метаданных'", - ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, - МетаданныеЖурналаДокументов, , ТекстСообщения); - - Результат.Вставить(МетаданныеЖурналаДокументов.ПолноеИмя(), Новый ФиксированнаяСтруктура(ДополнительныеДанные)); - - Иначе - - Для Каждого МетаданныеДокумента Из МетаданныеЖурналаДокументов.РегистрируемыеДокументы Цикл - - ДополнительныеДанныеОтДокумента = Результат.Получить(МетаданныеДокумента.ПолноеИмя()); - - Если ДополнительныеДанныеОтДокумента <> Неопределено Тогда - ЗаполнитьЗначенияСвойств(ДополнительныеДанные, ДополнительныеДанныеОтДокумента, "Разделитель,УсловноеРазделение"); - Результат.Вставить(МетаданныеЖурналаДокументов.ПолноеИмя(), Новый ФиксированнаяСтруктура(ДополнительныеДанные)); - КонецЕсли; - - Прервать; - - КонецЦикла; - - КонецЕсли; - - КонецЦикла; - - Возврат Новый ФиксированноеСоответствие(Результат); - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/РаботаСАдресами/Module.bsl b/SSL/src/CommonModules/РаботаСАдресами/Module.bsl index 429e72fa7..aef0f66f4 100644 --- a/SSL/src/CommonModules/РаботаСАдресами/Module.bsl +++ b/SSL/src/CommonModules/РаботаСАдресами/Module.bsl @@ -148,53 +148,68 @@ // * Регион - Строка - текстовое представление региона РФ. // * РегионТипПолный - Строка - полное наименование типа региона. Например: "область". // * РегионТипКраткий - Строка - краткое наименование типа региона. Например: "обл". -// * РегионСокращение - Строка - устаревшее свойство. Сокращение региона, например: "обл", если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ЛОЖЬ, -// или "область", если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА. +// * РегионСокращение - Строка - устаревшее свойство. Сокращение региона, например: "обл", если +// ДополнительныеПараметры.ПолноеНаименованиеСокращений = ЛОЖЬ, или "область", если +// ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА. // * Округ - Строка - устаревшее свойство. Текстовое представление округа. // * ОкругСокращение - Строка - устаревшее свойство. Сокращение округа. // * Район - Строка - текстовое представление района у адресов по административно-территориальному делению. -// * РайонТипПолный - Строка - полное наименование типа района для адреса по административно-территориальному делению. Например: "район". -// * РайонТипКраткий - Строка - краткое наименование типа района для адреса по административно-территориальному делению. Например: "р-н". -// * РайонСокращение - Строка - устаревшее свойство. Сокращение района для адреса по административно-территориальному делению, -// например: "р-н", если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ЛОЖЬ, -// или "район", если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА. +// * РайонТипПолный - Строка - полное наименование типа района для адреса по административно-территориальному +// делению. Например: "район". +// * РайонТипКраткий - Строка - краткое наименование типа района для адреса по административно-территориальному +// делению. Например: "р-н". +// * РайонСокращение - Строка - устаревшее свойство. Сокращение района для адреса по +// административно-территориальному делению, например: "р-н", если +// ДополнительныеПараметры.ПолноеНаименованиеСокращений = ЛОЖЬ, или "район", если +// ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА. // * МуниципальныйРайон - Строка - текстовое представление муниципального района для адреса по муниципальному делению. -// * МуниципальныйРайонТипПолный - Строка - полное наименование типа муниципального района по муниципальному делению. Например: "городской округ". -// * МуниципальныйРайонТипКраткий - Строка - краткое наименование типа муниципального района для адреса по муниципальному делению. Например: "мун.р-н". -// * МуниципальныйРайонСокращение - Строка - устаревшее свойство. Сокращение муниципального района для адреса по муниципальному делению, например: "мун.р-н", -// если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ЛОЖЬ, -// или "муниципальный район", если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА. -// * КодМуниципальногоРайона - Число - код муниципального района: 1- муниципальный район; 2- городской округ; 3 - внутригородская территория города федерального значения. +// * МуниципальныйРайонТипПолный - Строка - полное наименование типа муниципального района по муниципальному +// делению. Например: "городской округ". +// * МуниципальныйРайонТипКраткий - Строка - краткое наименование типа муниципального района для адреса по +// муниципальному делению. Например: "мун.р-н". +// * МуниципальныйРайонСокращение - Строка - устаревшее свойство. Сокращение муниципального района для адреса по +// муниципальному делению, например: "мун.р-н", если +// ДополнительныеПараметры.ПолноеНаименованиеСокращений = ЛОЖЬ, или +// "муниципальный район", если +// ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА. +// * КодМуниципальногоРайона - Число - код муниципального района: 1- муниципальный район; 2- городской округ; 3 - +// внутригородская территория города федерального значения. // * Город - Строка - текстовое представление города у адресов по административно-территориальному делению. // * ГородТипПолный - Строка - полное наименование типа города у адресов по административно-территориальному делению. // * ГородТипКраткий - Строка - текстовое представление города у адресов по административно-территориальному делению. // * ГородСокращение - Строка - сокращение города у адресов по административно-территориальному делению. // * Поселение - Строка - текстовое представление поселения у адресов по муниципальному делению. -// * ПоселениеТипПолный - Строка - полное наименование типа сельского поселения по муниципальному делению. Например: "сельское поселение". -// * ПоселениеТипКраткий - Строка - краткое наименование типа муниципального района для адреса по муниципальному делению. Например: "с. п.". -// * ПоселениеСокращение - Строка - устаревшее свойство. Сокращение сельского поселения для адреса по муниципальному делению, например: "с. п.", -// если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ЛОЖЬ, -// или "сельское поселение", если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА -// * КодПоселения - Число - код поселения: 1 - городское поселение; 2 - сельское поселение; 3- межселенная территория -// в составе муниципального района; 4 - внутригородской район городского округа; +// * ПоселениеТипПолный - Строка - полное наименование типа сельского поселения по муниципальному делению. +// Например: "сельское поселение". +// * ПоселениеТипКраткий - Строка - краткое наименование типа муниципального района для адреса по муниципальному +// делению. Например: "с. п.". +// * ПоселениеСокращение - Строка - устаревшее свойство. Сокращение сельского поселения для адреса по +// муниципальному делению, например: "с. п.", если +// ДополнительныеПараметры.ПолноеНаименованиеСокращений = ЛОЖЬ, или "сельское +// поселение", если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА +// * КодПоселения - Число - код поселения: 1 - городское поселение; 2 - сельское поселение; 3- межселенная +// территория в составе муниципального района; 4 - внутригородской район городского округа; // * ВнутригородскойРайон - Строка - текстовое представление внутригородского района. // * ВнутригородскойРайонТипПолный - Строка - полное наименование типа внутригородского района. Например: "микрорайон". // * ВнутригородскойРайонТипКраткий - Строка - краткое наименование типа внутригородского района. Например: "мкр". -// * ВнутригородскойРайонСокращение - Строка - устаревшее свойство. Сокращение внутригородского района, например: "мкр", -// если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ЛОЖЬ, -// или "микрорайон", если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА +// * ВнутригородскойРайонСокращение - Строка - устаревшее свойство. Сокращение внутригородского района, например: +// "мкр", если ДополнительныеПараметры.ПолноеНаименованиеСокращений = +// ЛОЖЬ, или "микрорайон", если +// ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА // * НаселенныйПункт - Строка - текстовое представление населенного пункта. // * НаселенныйПунктТипПолный - Строка - полное наименование типа населенного пункта. Например: "деревня". // * НаселенныйПунктТипКраткий - Строка - краткое наименование типа населенного пункта. Например: "д". // * НаселенныйПунктСокращение - Строка - устаревшее свойство. Сокращение населенного пункта, например: "д", // если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ЛОЖЬ, -// или "деревня", если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА +// или "деревня", если +// ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА // * Территория - Строка - текстовое представление территории. // * ТерриторияТипПолный - Строка - полное наименование типа территории. Например: "Гаражно-строительный кооп.". // * ТерриторияТипКраткий - Строка - краткое наименование типа территории. Например: "гск". // * ТерриторияСокращение - Строка - устаревшее свойство. Сокращение населенного пункта, например: "гск", // если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ЛОЖЬ, -// или "Гаражно-строительный кооп.", если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА +// или "Гаражно-строительный кооп.", если +// ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА // * Улица - Строка - текстовое представление улицы. // * УлицаТипПолный - Строка - полное наименование типа улицы. Например: "Улица". // * УлицаТипКраткий - Строка - краткое наименование типа улицы. Например: "ул". @@ -203,8 +218,10 @@ // или "Улица", если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА // * ДополнительнаяТерритория - Строка - устаревшее свойство. Текстовое представление дополнительной территории. // * ДополнительнаяТерриторияСокращение - Строка - устаревшее свойство. Сокращение дополнительной территории. -// * ЭлементДополнительнойТерритории - Строка - устаревшее свойство. Текстовое представление элемента дополнительной территории. -// * ЭлементДополнительнойТерриторииСокращение - Строка - устаревшее свойство. Сокращение элемента дополнительной территории. +// * ЭлементДополнительнойТерритории - Строка - устаревшее свойство. Текстовое представление элемента +// дополнительной территории. +// * ЭлементДополнительнойТерриторииСокращение - Строка - устаревшее свойство. Сокращение элемента дополнительной +// территории. // * Здание - Структура - структура с информацией о здании адреса. // ** ТипЗдания - Строка - тип объекта адресации адреса РФ согласно приказу Минфина России от 5.11.2015 г. N171н. // ** Номер - Строка - текстовое представление номера дома (только для адресов РФ). @@ -218,8 +235,8 @@ // Поле отсутствует, если дополнительный параметр КодыАдреса равен Ложь. // * ИдентификаторДома - УникальныйИдентификатор - Идентификационный код дома(строения) адресного объекта. // Поле отсутствует, если дополнительный параметр КодыАдреса равен Ложь. -// * ИдентификаторЗемельногоУчастка - УникальныйИдентификатор - Идентификационный код земельного участка адресного объекта. -// При отсутствии значения - пустая строка. +// * ИдентификаторЗемельногоУчастка - УникальныйИдентификатор - Идентификационный код земельного участка +// адресного объекта. При отсутствии значения - пустая строка. // * Идентификаторы - Структура - Идентификаторы адресных объектов адреса, если установлен параметр КодыАдреса // или КодыКЛАДР. Поле отсутствует, если дополнительный параметр КодыАдреса или // КодыКЛАДР равен Ложь. @@ -553,6 +570,7 @@ Результат = Новый Соответствие; + // Не локализуется Результат.Вставить("Дом", "Д."); Результат.Вставить("Владение", "Вл."); Результат.Вставить("Домовладение", "Домовл."); @@ -961,10 +979,53 @@ Возврат РасширенныйТекстПреобразования; КонецФункции + +#Область ДляВызоваИзДругихПодсистем + +// ИнтернетПоддержкаПользователей.РаботаСКлассификаторами + +// См. РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов. +Процедура ПриДобавленииКлассификаторов(Классификаторы, ОписаниеКлассификатора) Экспорт + + ОписаниеКлассификатора.Идентификатор = ИдентификаторКлассификатора(); + ОписаниеКлассификатора.Наименование = НСтр("ru = 'Общероссийский классификатор стран мира'"); + ОписаниеКлассификатора.ОбновлятьАвтоматически = Истина; + ОписаниеКлассификатора.ОбщиеДанные = Истина; + ОписаниеКлассификатора.СохранятьФайлВКэш = Истина; + ОписаниеКлассификатора.ОбработкаРазделенныхДанных = Ложь; + + Классификаторы.Добавить(ОписаниеКлассификатора); + +КонецПроцедуры + +// См. РаботаСКлассификаторамиПереопределяемый.ПриЗагрузкеКлассификатора. +Процедура ПриЗагрузкеКлассификатора(Идентификатор, Версия, Адрес, Обработан, ДополнительныеПараметры) Экспорт + + Если Идентификатор <> ИдентификаторКлассификатора() Тогда + Возврат; + КонецЕсли; + + Обработан = Истина; + +КонецПроцедуры + +// Конец ИнтернетПоддержкаПользователей.РаботаСКлассификаторами + +#КонецОбласти + #КонецОбласти #Область СлужебныеПроцедурыИФункции +// Определяет внутренний идентификатор классификатора для подсистемы РаботаСКлассификаторами. +// +// Возвращаемое значение: +// Строка - идентификатор классификатора. +// +Функция ИдентификаторКлассификатора() + Возврат "Countries"; +КонецФункции + // Возвращает XPath для района. // // Возвращаемое значение: @@ -1478,7 +1539,7 @@ КонецЕсли; Иначе - Если ЗначениеЗаполнено(АдресРФ.Адрес_по_документу) Тогда + Если ЗначениеЗаполнено(АдресРФ.Адрес_по_документу) Или ПустаяСтрока(АдресРФ.СубъектРФ)Тогда Результат.AddressType = УправлениеКонтактнойИнформациейКлиентСервер.АдресВСвободнойФорме(); Иначе Результат.AddressType = РаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес(); @@ -2084,12 +2145,13 @@ И КонтактнаяИнформация.Здание.Свойство("Номер") Тогда ОписаниеКонтактнойИнформации.HouseNumber = ?(КонтактнаяИнформация.Здание.Свойство("Номер"), КонтактнаяИнформация.Здание.Номер, ""); - ОписаниеКонтактнойИнформации.HouseType = ?(КонтактнаяИнформация.Здание.Свойство("ТипЗдания"), КонтактнаяИнформация.Здание.ТипЗдания, "Дом"); + ОписаниеКонтактнойИнформации.HouseType = ?(КонтактнаяИнформация.Здание.Свойство("ТипЗдания"), КонтактнаяИнформация.Здание.ТипЗдания, "Дом"); // Тип владения не локализуется КонецЕсли; Если КонтактнаяИнформация.Свойство("Корпус")И ЗначениеЗаполнено(КонтактнаяИнформация.Корпус) Тогда + ТипКорпуса = ?(КонтактнаяИнформация.Свойство("ТипКорпуса"), КонтактнаяИнформация.ТипКорпуса, "Корпус"); // Тип владения не локализуется ОписаниеКонтактнойИнформации.buildings.Добавить(УправлениеКонтактнойИнформациейКлиентСервер.ЗначениеСтроенияИлиПомещения(ТипКорпуса, КонтактнаяИнформация.Корпус)); ИначеЕсли КонтактнаяИнформация.Свойство("Корпуса")И ТипЗнч(КонтактнаяИнформация.Корпуса) = Тип("Массив") Тогда @@ -2358,12 +2420,48 @@ // * КодАльфа3 - Строка - данные страны. // Функция ТаблицаКлассификатора() Экспорт - Макет = Справочники.СтраныМира.ПолучитьМакет("Классификатор"); + + Классификатор = Неопределено; + + Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда + + ИдентификаторКлассификатора = ИдентификаторКлассификатора(); + + МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами"); + Идентификаторы = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИдентификаторКлассификатора); + Результат = МодульРаботаСКлассификаторами.ПолучитьФайлыКлассификаторов(Идентификаторы); + + Если ПустаяСтрока(Результат.КодОшибки) И Результат.ДанныеКлассификаторов <> Неопределено Тогда + + ОписаниеКлассификатора = Результат.ДанныеКлассификаторов.Найти(ИдентификаторКлассификатора, "Идентификатор"); + Если ОписаниеКлассификатора <> Неопределено Тогда + Классификатор = ПолучитьИзВременногоХранилища(ОписаниеКлассификатора.АдресФайла); + КонецЕсли; + + КонецЕсли; + КонецЕсли; + + Если Классификатор = Неопределено Тогда + + Макет = Справочники.СтраныМира.ПолучитьМакет("Классификатор"); + КлассификаторXML = Макет.ПолучитьТекст(); + + Иначе + + НаборСтрок = Новый Массив; + ЧтениеЧасти = Новый ЧтениеДанных(Классификатор.ОткрытьПотокДляЧтения()); + + Пока Не ЧтениеЧасти.ЧтениеЗавершено Цикл + НаборСтрок.Добавить(ЧтениеЧасти.ПрочитатьСтроку()); + КонецЦикла; + + КлассификаторXML = СтрСоединить(НаборСтрок, ЧтениеЧасти.РазделительСтрок); + КонецЕсли; Чтение = Новый ЧтениеXML; - Чтение.УстановитьСтроку(Макет.ПолучитьТекст()); - + Чтение.УстановитьСтроку(КлассификаторXML); Возврат СериализаторXDTO.ПрочитатьXML(Чтение); + КонецФункции Функция ЗаполнитьДанныеВыбораАвтоподбораПоСтранам(Знач Параметры) Экспорт diff --git a/SSL/src/CommonModules/РаботаСАдресамиКлиентСервер/Module.bsl b/SSL/src/CommonModules/РаботаСАдресамиКлиентСервер/Module.bsl index b94a87196..58b28d73f 100644 --- a/SSL/src/CommonModules/РаботаСАдресамиКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/РаботаСАдресамиКлиентСервер/Module.bsl @@ -11,68 +11,67 @@ // Возвращает структуру полей адреса для программного формирования адреса. // // Возвращаемое значение: -// Структура - поля адреса: -// * Представление - Строка - текстовое представление адреса по административно-территориальному делению. -// * МуниципальноеПредставление - Строка - текстовое представление адреса по муниципальному делению. -// * ТипАдреса - Строка - основной тип адреса (только для адресов РФ). +// Структура - поля адреса: +// * Представление - Строка - текстовое представление адреса по административно-территориальному делению. +// * МуниципальноеПредставление - Строка - текстовое представление адреса по муниципальному делению. +// * ТипАдреса - Строка - основной тип адреса (только для адресов РФ). // Варианты: "Муниципальный", "Административно-территориальный". -// * Страна - Строка - текстовое представление страны. -// * КодСтраны - Строка - код страны по ОКСМ. -// * Индекс - Строка - почтовый индекс. -// * КодРегиона - Строка - код региона РФ. -// * Регион - Строка - текстовое представление региона РФ. -// * РегионСокращение - Строка - сокращение региона. -// * Округ - Строка - текстовое представление округа (устарело). -// * ОкругСокращение - Строка - сокращение округа (устарело). -// * Район - Строка - текстовое представление района у адресов по административно-территориальному делению. -// * РайонСокращение - Строка - сокращение района у адресов по административно-территориальному делению. -// * МуниципальныйРайон - Строка - текстовое представление муниципального района у адресов по муниципальному делению. -// * МуниципальныйРайонСокращение - Строка - сокращение муниципального района у адресов по муниципальному делению. -// * Город - Строка - текстовое представление города у адресов по административно-территориальному делению. -// * ГородСокращение - Строка - сокращение города у адресов по административно-территориальному делению. -// * Поселение - Строка - текстовое представление поселения у адресов по муниципальному делению. -// * ПоселениеСокращение - Строка - сокращение поселения у адресов по муниципальному делению. -// * ВнутригородскойРайон - Строка - текстовое представление внутригородского района. -// * ВнутригородскойРайонСокращение - Строка - сокращение внутригородского района. -// * НаселенныйПункт - Строка - текстовое представление населенного пункта. -// * НаселенныйПунктСокращение - Строка - сокращение населенного пункта. -// * Территория - Строка - текстовое представление территории. -// * ТерриторияСокращение - Строка - сокращение территории. -// * Улица - Строка - текстовое представление улицы. -// * УлицаСокращение - Строка - сокращение улицы. -// * ДополнительнаяТерритория - Строка - текстовое представление дополнительной территории (устарело). -// * ДополнительнаяТерриторияСокращение - Строка - сокращение дополнительной территории (устарело). -// * ЭлементДополнительнойТерритории - Строка - текстовое представление элемента дополнительной территории (устарело). -// * ЭлементДополнительнойТерриторииСокращение - Строка - сокращение элемента дополнительной территории (устарело). -// * Здание - Структура - структура с информацией о здании адреса. -// ** ТипЗдания - Строка - тип объекта адресации адреса РФ согласно приказу Минфина России от 5.11.2015 г. N -// 171н. -// ** Номер - Строка - текстовое представление номера дома (только для адресов РФ). -// * Корпуса - Массив - содержит структуры(поля структуры: ТипКорпуса, Номер) с перечнем корпусов адреса. -// * Помещения - Массив - содержит структуры(поля структуры: ТипПомещения, Номер) с перечнем помещений адреса. -// * ИдентификаторАдресногоОбъекта - УникальныйИдентификатор - Идентификационный код последнего адресного объекта -// в иерархи адреса. Например, для адреса: Москва г., Дмитровское ш., д.9 это -// будет идентификатор улицы. -// * ИдентификаторДома - УникальныйИдентификатор - Идентификационный код дома(строения) адресного объекта. -// * Идентификаторы - Структура - Идентификаторы адресных объектов адреса. -// ** РегионИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор региона. -// ** РайонИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор района. -// ** МуниципальныйРайонИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор муниципального района. -// ** ГородИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор города. -// ** ПоселениеИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор поселения. -// ** ВнутригородскойРайонИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор +// * Страна - Строка - текстовое представление страны. +// * КодСтраны - Строка - код страны по ОКСМ. +// * Индекс - Строка - почтовый индекс. +// * КодРегиона - Строка - код региона РФ. +// * Регион - Строка - текстовое представление региона РФ. +// * РегионСокращение - Строка - сокращение региона. +// * Округ - Строка - текстовое представление округа (устарело). +// * ОкругСокращение - Строка - сокращение округа (устарело). +// * Район - Строка - текстовое представление района у адресов по административно-территориальному делению. +// * РайонСокращение - Строка - сокращение района у адресов по административно-территориальному делению. +// * МуниципальныйРайон - Строка - текстовое представление муниципального района у адресов по муниципальному делению. +// * МуниципальныйРайонСокращение - Строка - сокращение муниципального района у адресов по муниципальному делению. +// * Город - Строка - текстовое представление города у адресов по административно-территориальному делению. +// * ГородСокращение - Строка - сокращение города у адресов по административно-территориальному делению. +// * Поселение - Строка - текстовое представление поселения у адресов по муниципальному делению. +// * ПоселениеСокращение - Строка - сокращение поселения у адресов по муниципальному делению. +// * ВнутригородскойРайон - Строка - текстовое представление внутригородского района. +// * ВнутригородскойРайонСокращение - Строка - сокращение внутригородского района. +// * НаселенныйПункт - Строка - текстовое представление населенного пункта. +// * НаселенныйПунктСокращение - Строка - сокращение населенного пункта. +// * Территория - Строка - текстовое представление территории. +// * ТерриторияСокращение - Строка - сокращение территории. +// * Улица - Строка - текстовое представление улицы. +// * УлицаСокращение - Строка - сокращение улицы. +// * ДополнительнаяТерритория - Строка - текстовое представление дополнительной территории (устарело). +// * ДополнительнаяТерриторияСокращение - Строка - сокращение дополнительной территории (устарело). +// * ЭлементДополнительнойТерритории - Строка - текстовое представление элемента дополнительной территории (устарело). +// * ЭлементДополнительнойТерриторииСокращение - Строка - сокращение элемента дополнительной территории (устарело). +// * Здание - Структура - структура с информацией о здании адреса. +// ** ТипЗдания - Строка - тип объекта адресации адреса РФ согласно приказу Минфина России от 5.11.2015 г. N171н. +// ** Номер - Строка - текстовое представление номера дома (только для адресов РФ). +// * Корпуса - Массив - содержит структуры(поля структуры: ТипКорпуса, Номер) с перечнем корпусов адреса. +// * Помещения - Массив - содержит структуры(поля структуры: ТипПомещения, Номер) с перечнем помещений адреса. +// * ИдентификаторАдресногоОбъекта - УникальныйИдентификатор - Идентификационный код последнего адресного объекта +// в иерархи адреса. Например, для адреса: Москва г., Дмитровское ш., д.9 это +// будет идентификатор улицы. +// * ИдентификаторДома - УникальныйИдентификатор - Идентификационный код дома(строения) адресного объекта. +// * Идентификаторы - Структура - Идентификаторы адресных объектов адреса. +// ** РегионИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор региона. +// ** РайонИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор района. +// ** МуниципальныйРайонИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор муниципального района. +// ** ГородИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор города. +// ** ПоселениеИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор поселения. +// ** ВнутригородскойРайонИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор // внутригородского района. -// ** НаселенныйПунктИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор населенного пункта. -// ** ТерриторияИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор территории. -// ** УлицаИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор улица. -// * КодыКЛАДР - Структура - коды КЛАДР, если установлен параметр КодыКЛАДР. -// ** Регион - Строка - код КЛАДР региона. -// ** Район - Строка - код КЛАДР район. -// ** Город - Строка - код КЛАДР города. -// ** НаселенныйПункт - Строка - код КЛАДР населенного пункта. -// ** Улица - Строка - код КЛАДР улицы. -// * ДополнительныеКоды - Структура - коды ОКТМО, ОКТМО, ОКАТО, КодИФНСФЛ, КодИФНСЮЛ, КодУчасткаИФНСФЛ, КодУчасткаИФНСЮЛ. -// * Комментарий - Строка - комментарий к адресу. +// ** НаселенныйПунктИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор населенного пункта. +// ** ТерриторияИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор территории. +// ** УлицаИдентификатор - УникальныйИдентификатор, Неопределено - идентификатор улица. +// * КодыКЛАДР - Структура - коды КЛАДР, если установлен параметр КодыКЛАДР. +// ** Регион - Строка - код КЛАДР региона. +// ** Район - Строка - код КЛАДР район. +// ** Город - Строка - код КЛАДР города. +// ** НаселенныйПункт - Строка - код КЛАДР населенного пункта. +// ** Улица - Строка - код КЛАДР улицы. +// * ДополнительныеКоды - Структура - коды ОКТМО, ОКТМО, ОКАТО, КодИФНСФЛ, КодИФНСЮЛ, КодУчасткаИФНСФЛ, КодУчасткаИФНСЮЛ. +// * Комментарий - Строка - комментарий к адресу. // Функция ПоляАдреса() Экспорт @@ -239,6 +238,7 @@ КодыКЛАДР.Вставить("НаселенныйПункт", ""); КодыКЛАДР.Вставить("Улица" , ""); Результат.Вставить("КодыКЛАДР", КодыКЛАДР); + Возврат Результат; КонецФункции diff --git a/SSL/src/CommonModules/РаботаСБанками/Module.bsl b/SSL/src/CommonModules/РаботаСБанками/Module.bsl index 1287429b0..b0a73f779 100644 --- a/SSL/src/CommonModules/РаботаСБанками/Module.bsl +++ b/SSL/src/CommonModules/РаботаСБанками/Module.bsl @@ -90,21 +90,6 @@ КонецФункции -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать ПолучитьДанныеКлассификатора(). -// Получает данные из справочника КлассификаторБанков по значениям БИК и корреспондентского счета банка. -// -// Параметры: -// БИК - Строка - банковский идентификационный код. -// КоррСчет - Строка - корреспондентский счет банка. -// ЗаписьОБанке - СправочникСсылка, Строка - (возвращаемый) найденный банк. -Процедура ПолучитьДанныеКлассификатораРФ(БИК = "", КоррСчет = "", ЗаписьОБанке = "") Экспорт - ПолучитьДанныеКлассификатора(БИК, КоррСчет, ЗаписьОБанке); -КонецПроцедуры - -#КонецОбласти - #КонецОбласти #Область СлужебныйПрограммныйИнтерфейс @@ -112,15 +97,6 @@ //////////////////////////////////////////////////////////////////////////////// // Обработчики событий подсистем конфигурации. -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - - Если Метаданные.Обработки.Найти("ЗагрузкаКлассификатораБанков") <> Неопределено Тогда - Обработки["ЗагрузкаКлассификатораБанков"].ПриДобавленииОбработчиковОбновления(Обработчики); - КонецЕсли; - -КонецПроцедуры - // См. ЗагрузкаДанныхИзФайлаПереопределяемый.ПриОпределенииСправочниковДляЗагрузкиДанных. Процедура ПриОпределенииСправочниковДляЗагрузкиДанных(ЗагружаемыеСправочники) Экспорт @@ -146,14 +122,6 @@ КонецПроцедуры -// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий. -Процедура ПриОпределенииНастроекРегламентныхЗаданий(Зависимости) Экспорт - ИмяОбработки = "ЗагрузкаКлассификатораБанков"; - Если Метаданные.Обработки.Найти(ИмяОбработки) <> Неопределено Тогда - Обработки[ИмяОбработки].ПриОпределенииНастроекРегламентныхЗаданий(Зависимости); - КонецЕсли; -КонецПроцедуры - // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке. Процедура ПриЗаполненииТиповОбщихДанныхПоддерживающихСопоставлениеСсылокПриЗагрузке(Типы) Экспорт @@ -169,6 +137,10 @@ Возврат; КонецЕсли; + Если Не ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда + Возврат; + КонецЕсли; + МодульТекущиеДелаСервер = ОбщегоНазначения.ОбщийМодуль("ТекущиеДелаСервер"); Если ОбщегоНазначения.РазделениеВключено() // В модели сервиса обновляется автоматически. Или ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() // В узле РИБ обновляется автоматически. @@ -192,8 +164,7 @@ Дело.Важное = Результат.КлассификаторПросрочен; Дело.Представление = НСтр("ru = 'Классификатор банков устарел'"); Дело.Подсказка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Последнее обновление %1 назад'"), Результат.ВеличинаПросрочкиСтрокой); - Дело.Форма = "Обработка.ЗагрузкаКлассификатораБанков.Форма.ЗагрузкаКлассификатора"; - Дело.ПараметрыФормы = Новый Структура("ОткрытиеИзСписка", Истина); + Дело.Форма = "Обработка.ЗагрузкаКлассификатораБанков.Форма.Форма"; Дело.Владелец = Раздел; КонецЦикла; @@ -207,7 +178,7 @@ Не ОбщегоНазначения.РазделениеВключено() // В модели сервиса обновляется автоматически. И Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() // В узле РИБ обновляется автоматически. И ПравоДоступа("Изменение", Метаданные.Справочники.КлассификаторБанков) // Пользователь с необходимыми правами. - И Не КлассификаторАктуален()); // Классификатор уже обновлен. + И Не РаботаСБанкамиСлужебный.КлассификаторАктуален()); // Классификатор уже обновлен. ВключитьОповещение = Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ТекущиеДела"); РаботаСБанкамиПереопределяемый.ПриОпределенииНеобходимостиПоказаПредупрежденияОбУстаревшемКлассификатореБанков(ВключитьОповещение); @@ -216,79 +187,4 @@ КонецПроцедуры -// См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. -Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт - - Если ОбщегоНазначения.РазделениеВключено() Тогда - Возврат; - КонецЕсли; - - МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); - ЗапросыРазрешений.Добавить( - МодульРаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(Разрешения())); - -КонецПроцедуры - -// См. ИнтернетПоддержкаПользователейПереопределяемый.ПриСохраненииДанныхАутентификацииПользователяИнтернетПоддержки. -Процедура ПриСохраненииДанныхАутентификацииПользователяИнтернетПоддержки(ДанныеПользователя) Экспорт - - Если Метаданные.Обработки.Найти("ЗагрузкаКлассификатораБанков") <> Неопределено Тогда - Обработки["ЗагрузкаКлассификатораБанков"].ПриСохраненииДанныхАутентификацииПользователяИнтернетПоддержки(ДанныеПользователя); - КонецЕсли; - -КонецПроцедуры - -// См. ИнтернетПоддержкаПользователейПереопределяемый.ПриУдаленииДанныхАутентификацииПользователяИнтернетПоддержки. -Процедура ПриУдаленииДанныхАутентификацииПользователяИнтернетПоддержки() Экспорт - - Если Метаданные.Обработки.Найти("ЗагрузкаКлассификатораБанков") <> Неопределено Тогда - Обработки["ЗагрузкаКлассификатораБанков"].ПриУдаленииДанныхАутентификацииПользователяИнтернетПоддержки(); - КонецЕсли; - -КонецПроцедуры - - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Возвращает список разрешений для загрузки классификатора банков. -// -// Возвращаемое значение: -// Массив. -// -Функция Разрешения() - - Разрешения = Новый Массив; - ИмяОбработки = "ЗагрузкаКлассификатораБанков"; - Если Метаданные.Обработки.Найти(ИмяОбработки) <> Неопределено Тогда - Обработки[ИмяОбработки].ДобавитьРазрешения(Разрешения); - КонецЕсли; - - Возврат Разрешения; - -КонецФункции - -Процедура ЗагрузитьКлассификаторБанков() Экспорт - - ИмяОбработки = "ЗагрузкаКлассификатораБанков"; - Если Метаданные.Обработки.Найти(ИмяОбработки) <> Неопределено Тогда - Обработки[ИмяОбработки].ЗагрузитьКлассификаторБанков(); - КонецЕсли; - -КонецПроцедуры - -// Определяет нужно ли обновление данных классификатора. -// -Функция КлассификаторАктуален() Экспорт - - ИмяОбработки = "ЗагрузкаКлассификатораБанков"; - Если Метаданные.Обработки.Найти(ИмяОбработки) <> Неопределено Тогда - Возврат Обработки[ИмяОбработки].КлассификаторАктуален(); - КонецЕсли; - - Возврат Истина; - -КонецФункции - #КонецОбласти diff --git a/SSL/src/CommonModules/РаботаСБанкамиКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСБанкамиКлиент/Module.bsl index dacc7e2bf..0158f6582 100644 --- a/SSL/src/CommonModules/РаботаСБанкамиКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСБанкамиКлиент/Module.bsl @@ -40,38 +40,14 @@ КонецПроцедуры -// Выводит соответствующее оповещение. -// -Процедура ОповеститьКлассификаторУспешноОбновлен() Экспорт - - ПоказатьОповещениеПользователя( - НСтр("ru = 'Классификатор банков успешно обновлен'"), - НавигационнаяСсылкаФормыЗагрузки(), - НСтр("ru = 'Классификатор банков обновлен'"), - БиблиотекаКартинок.Информация32); - -КонецПроцедуры - -// Выводит соответствующее оповещение. -// -Процедура ОповеститьКлассификаторАктуален() Экспорт - - ПоказатьПредупреждение(,НСтр("ru = 'Классификатор банков актуален.'")); - -КонецПроцедуры - // Возвращает навигационную ссылку для оповещений. // Функция НавигационнаяСсылкаФормыЗагрузки() - Возврат "e1cib/data/Обработка.ЗагрузкаКлассификатораБанков.Форма.ЗагрузкаКлассификатора"; + Возврат "e1cib/command/Обработка.ЗагрузкаКлассификатораБанков.Команда.ЗагрузкаКлассификатораБанков"; КонецФункции -Процедура ОткрытьФормуЗагрузкиКлассификатора(Владелец, ОткрытиеИзСписка = Ложь) Экспорт - Если ОткрытиеИзСписка Тогда - ПараметрыФормы = Новый Структура("ОткрытиеИзСписка"); - КонецЕсли; - ИмяФормы = "Обработка.ЗагрузкаКлассификатораБанков.Форма.ЗагрузкаКлассификатора"; - ОткрытьФорму(ИмяФормы, ПараметрыФормы, Владелец); +Процедура ОткрытьФормуЗагрузкиКлассификатора() Экспорт + ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(НавигационнаяСсылкаФормыЗагрузки()); КонецПроцедуры #КонецОбласти diff --git a/SSL/src/InformationRegisters/НастройкиОтправителя/Forms/ФормаСписка/Module.bsl b/SSL/src/CommonModules/РаботаСБанкамиСлужебный/Module.bsl similarity index 52% rename from SSL/src/InformationRegisters/НастройкиОтправителя/Forms/ФормаСписка/Module.bsl rename to SSL/src/CommonModules/РаботаСБанкамиСлужебный/Module.bsl index fffd081f4..f5c5321dc 100644 --- a/SSL/src/InformationRegisters/НастройкиОтправителя/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/CommonModules/РаботаСБанкамиСлужебный/Module.bsl @@ -6,19 +6,19 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -#Область ОбработчикиСобытийФормы +#Область СлужебныеПроцедурыИФункции -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) +// Определяет нужно ли обновление данных классификатора. +// +Функция КлассификаторАктуален() Экспорт - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; + ИмяОбработки = "ЗагрузкаКлассификатораБанков"; + Если Метаданные.Обработки.Найти(ИмяОбработки) <> Неопределено Тогда + Возврат Обработки[ИмяОбработки].КлассификаторАктуален(); КонецЕсли; - Если Параметры.Отбор.Свойство("Получатель") Тогда - Элементы.Получатель.Видимость = Ложь; - КонецЕсли; + Возврат Истина; -КонецПроцедуры +КонецФункции #КонецОбласти diff --git a/SSL/src/CommonModules/БанкиСлужебныйВМоделиСервиса/БанкиСлужебныйВМоделиСервиса.mdo b/SSL/src/CommonModules/РаботаСБанкамиСлужебный/РаботаСБанкамиСлужебный.mdo similarity index 70% rename from SSL/src/CommonModules/БанкиСлужебныйВМоделиСервиса/БанкиСлужебныйВМоделиСервиса.mdo rename to SSL/src/CommonModules/РаботаСБанкамиСлужебный/РаботаСБанкамиСлужебный.mdo index dbe127beb..60bc62257 100644 --- a/SSL/src/CommonModules/БанкиСлужебныйВМоделиСервиса/БанкиСлужебныйВМоделиСервиса.mdo +++ b/SSL/src/CommonModules/РаботаСБанкамиСлужебный/РаботаСБанкамиСлужебный.mdo @@ -1,9 +1,9 @@ - БанкиСлужебныйВМоделиСервиса + РаботаСБанкамиСлужебный ru - Банки служебный в модели сервиса + Работа с банками служебный true true diff --git a/SSL/src/CommonModules/РаботаСКурсамиВалют/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалют/Module.bsl index 5249e2265..9d1debfd8 100644 --- a/SSL/src/CommonModules/РаботаСКурсамиВалют/Module.bsl +++ b/SSL/src/CommonModules/РаботаСКурсамиВалют/Module.bsl @@ -236,42 +236,17 @@ // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.4.4"; - Обработчик.Процедура = "РаботаСКурсамиВалют.ОбновитьСведенияОВалюте937"; - Обработчик.РежимВыполнения = "Монопольно"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.3.10"; - Обработчик.Процедура = "РаботаСКурсамиВалют.ЗаполнитьСпособУстановкиКурсаВалют"; - Обработчик.РежимВыполнения = "Монопольно"; - Если Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют") <> Неопределено Тогда Обработки["ЗагрузкаКурсовВалют"].ПриДобавленииОбработчиковОбновления(Обработчики); КонецЕсли; КонецПроцедуры -Процедура ПреобразованиеСвязейВалют() Экспорт - Если Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют") <> Неопределено Тогда - Обработки["ЗагрузкаКурсовВалют"].ПреобразованиеСвязейВалют(); - КонецЕсли; -КонецПроцедуры - // См. ИнтернетПоддержкаПользователейПереопределяемый.ПриСохраненииДанныхАутентификацииПользователяИнтернетПоддержки. -Процедура ПриСохраненииДанныхАутентификацииПользователяИнтернетПоддержки(ДанныеПользователя) Экспорт +Процедура ПриИзмененииДанныхАутентификацииИнтернетПоддержки(ДанныеПользователя) Экспорт Если Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют") <> Неопределено Тогда - Обработки["ЗагрузкаКурсовВалют"].ПриСохраненииДанныхАутентификацииПользователяИнтернетПоддержки(ДанныеПользователя); - КонецЕсли; - -КонецПроцедуры - -// См. ИнтернетПоддержкаПользователейПереопределяемый.ПриУдаленииДанныхАутентификацииПользователяИнтернетПоддержки. -Процедура ПриУдаленииДанныхАутентификацииПользователяИнтернетПоддержки() Экспорт - - Если Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют") <> Неопределено Тогда - Обработки["ЗагрузкаКурсовВалют"].ПриУдаленииДанныхАутентификацииПользователяИнтернетПоддержки(); + Обработки["ЗагрузкаКурсовВалют"].ПриИзмененииДанныхАутентификацииИнтернетПоддержки(ДанныеПользователя); КонецЕсли; КонецПроцедуры @@ -539,38 +514,6 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Обновление информационной базы. - -// Обновляет сведения о валюте, согласно документу "Изменение 33/2012 ОКВ Общероссийский классификатор валют. -// ОК (МК (ИСО 4217) 003-97) 014-2000" (принято и введено в действие Приказом Росстандарта от 12.12.2012 N 1883-ст). -// -Процедура ОбновитьСведенияОВалюте937() Экспорт - Валюта = Справочники.Валюты.НайтиПоКоду("937"); - Если Не Валюта.Пустая() Тогда - Валюта = Валюта.ПолучитьОбъект(); - Валюта.Наименование = "VEF"; - Валюта.НаименованиеПолное = НСтр("ru = 'Боливар'"); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Валюта); - КонецЕсли; -КонецПроцедуры - -// Заполняет реквизит СпособУстановкиКурса у элементов справочника Валюты. -Процедура ЗаполнитьСпособУстановкиКурсаВалют() Экспорт - Выборка = Справочники.Валюты.Выбрать(); - Пока Выборка.Следующий() Цикл - Валюта = Выборка.Ссылка.ПолучитьОбъект(); - Если Валюта.ЗагружаетсяИзИнтернета Тогда - Валюта.СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.ЗагрузкаИзИнтернета; - ИначеЕсли Не Валюта.ОсновнаяВалюта.Пустая() Тогда - Валюта.СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты; - Иначе - Валюта.СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.РучнойВвод; - КонецЕсли; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Валюта); - КонецЦикла; -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // Обновление курсов валют diff --git a/SSL/src/CommonModules/РаботаСКурсамиВалютКлиентСервер/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалютКлиентСервер/Module.bsl index 9751af506..e7f76aa6d 100644 --- a/SSL/src/CommonModules/РаботаСКурсамиВалютКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/РаботаСКурсамиВалютКлиентСервер/Module.bsl @@ -47,35 +47,4 @@ / (ПараметрыНовогоКурса.Курс * ПараметрыТекущегоКурса.Кратность), 2); КонецФункции -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать функцию ПересчитатьПоКурсу. -// -// Пересчитывает сумму из валюты ВалютаНач по курсу ПоКурсуНач -// в валюту ВалютаКон по курсу ПоКурсуКон. -// -// Параметры: -// Сумма - Число - Сумма, которую следует пересчитать. -// ВалютаНач - СправочникСсылка.Валюты - Валюта, из которой надо пересчитать. -// ВалютаКон - СправочникСсылка.Валюты - Валюта, в которую надо пересчитать. -// ПоКурсуНач - Число - Курс, из которого надо пересчитать. -// ПоКурсуКон - Число - Курс, в который надо пересчитать. -// ПоКратностьНач - Число - Кратность, из которой надо пересчитать (по умолчанию = 1). -// ПоКратностьКон - Число - Кратность, в которую надо пересчитать (по умолчанию = 1). -// -// Возвращаемое значение: -// Число - Сумма, пересчитанная в другую валюту. -// -Функция ПересчитатьИзВалютыВВалюту(Сумма, ВалютаНач, ВалютаКон, ПоКурсуНач, ПоКурсуКон, - ПоКратностьНач = 1, ПоКратностьКон = 1) Экспорт - - Возврат ПересчитатьПоКурсу( - Сумма, - Новый Структура("Валюта, Курс, Кратность", ВалютаНач, ПоКурсуНач, ПоКратностьНач), - Новый Структура("Валюта, Курс, Кратность", ВалютаКон, ПоКурсуКон, ПоКратностьКон)); - -КонецФункции - -#КонецОбласти - #КонецОбласти diff --git a/SSL/src/CommonModules/КурсыВалютСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/Module.bsl similarity index 85% rename from SSL/src/CommonModules/КурсыВалютСлужебныйВМоделиСервиса/Module.bsl rename to SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/Module.bsl index 10637c41a..20a43b745 100644 --- a/SSL/src/CommonModules/КурсыВалютСлужебныйВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/Module.bsl @@ -12,18 +12,24 @@ // Процедура ЗагрузитьКурсы() Экспорт - Дескрипторы = ПоставляемыеДанные.ДескрипторыПоставляемыхДанныхИзМенеджера("КурсыВалют"); + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ПоставляемыеДанные") Тогда + Возврат; + КонецЕсли; + + МодульПоставляемыеДанные = ОбщегоНазначения.ОбщийМодуль("ПоставляемыеДанные"); + + Дескрипторы = МодульПоставляемыеДанные.ДескрипторыПоставляемыхДанныхИзМенеджера("КурсыВалют"); Если Дескрипторы.Descriptor.Количество() < 1 Тогда ВызватьИсключение(НСтр("ru = 'В менеджере сервиса отсутствуют данные вида ""КурсыВалют""'")); КонецЕсли; - Курсы = ПоставляемыеДанные.СсылкиПоставляемыхДанныхИзКэша("КурсыОднойВалюты"); + Курсы = МодульПоставляемыеДанные.СсылкиПоставляемыхДанныхИзКэша("КурсыОднойВалюты"); Для каждого Курс Из Курсы Цикл - ПоставляемыеДанные.УдалитьПоставляемыеДанныеИзКэша(Курс); + МодульПоставляемыеДанные.УдалитьПоставляемыеДанныеИзКэша(Курс); КонецЦикла; - ПоставляемыеДанные.ЗагрузитьИОбработатьДанные(Дескрипторы.Descriptor[0]); + МодульПоставляемыеДанные.ЗагрузитьИОбработатьДанные(Дескрипторы.Descriptor[0]); КонецПроцедуры @@ -33,7 +39,8 @@ // Процедура ЗапланироватьКопированиеКурсовВалюты(Знач Валюта) Экспорт - Если Валюта.СпособУстановкиКурса <> Перечисления.СпособыУстановкиКурсаВалюты.ЗагрузкаИзИнтернета Тогда + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") + Или Валюта.СпособУстановкиКурса <> Перечисления.СпособыУстановкиКурсаВалюты.ЗагрузкаИзИнтернета Тогда Возврат; КонецЕсли; @@ -41,20 +48,16 @@ ПараметрыМетода.Добавить(Валюта.Код); ПараметрыЗадания = Новый Структура; - ПараметрыЗадания.Вставить("ИмяМетода", "КурсыВалютСлужебныйВМоделиСервиса.КопироватьКурсыВалюты"); + ПараметрыЗадания.Вставить("ИмяМетода", "РаботаСКурсамиВалютСлужебный.КопироватьКурсыВалюты"); ПараметрыЗадания.Вставить("Параметры", ПараметрыМетода); + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + УстановитьПривилегированныйРежим(Истина); - ОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); + МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); КонецПроцедуры -// Вызывается при обновлении с прошлых версий, где не выставлялся флажок ЗагружаетсяИзИнтернета. -// -Процедура ПреобразованиеСвязейВалют() Экспорт - РаботаСКурсамиВалют.ПреобразованиеСвязейВалют(); -КонецПроцедуры - // Вызывается после загрузки данных в область или при изменении способа установки курса валюты. // Копирует курсы одной валюты за все даты из // неразделенного xml файла в разделенный регистр. @@ -64,6 +67,12 @@ // Процедура КопироватьКурсыВалюты(Знач КодВалюты) Экспорт + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ПоставляемыеДанные") Тогда + Возврат; + КонецЕсли; + + МодульПоставляемыеДанные = ОбщегоНазначения.ОбщийМодуль("ПоставляемыеДанные"); + ВалютаСсылка = Справочники.Валюты.НайтиПоКоду(КодВалюты); Если ВалютаСсылка.Пустая() Тогда Возврат; @@ -71,13 +80,13 @@ Фильтр = Новый Массив; Фильтр.Добавить(Новый Структура("Код, Значение", "Валюта", КодВалюты)); - Курсы = ПоставляемыеДанные.СсылкиПоставляемыхДанныхИзКэша("КурсыОднойВалюты", Фильтр); + Курсы = МодульПоставляемыеДанные.СсылкиПоставляемыхДанныхИзКэша("КурсыОднойВалюты", Фильтр); Если Курсы.Количество() = 0 Тогда Возврат; КонецЕсли; ПутьКФайлу = ПолучитьИмяВременногоФайла(); - ПоставляемыеДанные.ПоставляемыеДанныеИзКэша(Курсы[0]).Записать(ПутьКФайлу); + МодульПоставляемыеДанные.ПоставляемыеДанныеИзКэша(Курсы[0]).Записать(ПутьКФайлу); ТаблицаКурсов = ПрочитатьТаблицуКурсов(ПутьКФайлу, Истина); УдалитьФайлы(ПутьКФайлу); @@ -152,23 +161,17 @@ // Процедура ОбработкаДанныхОтменена(Знач Дескриптор) Экспорт - ПоставляемыеДанные.ОбластьОбработана(Дескриптор.FileGUID, "КурсыВалютЗаДень", Неопределено); - -КонецПроцедуры - -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.1.7"; - Обработчик.Процедура = "КурсыВалютСлужебныйВМоделиСервиса.ПреобразованиеСвязейВалют"; + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ПоставляемыеДанные") Тогда + МодульПоставляемыеДанные = ОбщегоНазначения.ОбщийМодуль("ПоставляемыеДанные"); + МодульПоставляемыеДанные.ОбластьОбработана(Дескриптор.FileGUID, "КурсыВалютЗаДень", Неопределено); + КонецЕсли; КонецПроцедуры // См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков. Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт - СоответствиеИменПсевдонимам.Вставить("КурсыВалютСлужебныйВМоделиСервиса.КопироватьКурсыВалюты"); + СоответствиеИменПсевдонимам.Вставить("РаботаСКурсамиВалютСлужебный.КопироватьКурсыВалюты"); КонецПроцедуры @@ -182,7 +185,7 @@ // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПослеЗагрузкиДанных. Процедура ПослеЗагрузкиДанных(Контейнер) Экспорт - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПоставляемыеДанные") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ПоставляемыеДанные") Тогда // Создаем связи между разделенными и неразделенными валютами, копируем курсы. ОбновитьКурсыВалют(); КонецЕсли; @@ -234,12 +237,12 @@ Обработчик = Обработчики.Добавить(); Обработчик.ВидДанных = "КурсыВалютЗаДень"; Обработчик.КодОбработчика = "КурсыВалютЗаДень"; - Обработчик.Обработчик = КурсыВалютСлужебныйВМоделиСервиса; + Обработчик.Обработчик = РаботаСКурсамиВалютСлужебный; Обработчик = Обработчики.Добавить(); Обработчик.ВидДанных = "КурсыВалют"; Обработчик.КодОбработчика = "КурсыВалют"; - Обработчик.Обработчик = КурсыВалютСлужебныйВМоделиСервиса; + Обработчик.Обработчик = РаботаСКурсамиВалютСлужебный; КонецПроцедуры @@ -335,6 +338,11 @@ // Процедура ОбработатьПоставляемыеКурсы(Знач Дескриптор, Знач ПутьКФайлу) + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ПоставляемыеДанные") Тогда + Возврат; + КонецЕсли; + + МодульПоставляемыеДанные = ОбщегоНазначения.ОбщийМодуль("ПоставляемыеДанные"); ТаблицаКурсов = ПрочитатьТаблицуКурсов(ПутьКФайлу); // Разбиваем на файлы по валюте и записываем в базу. @@ -353,12 +361,12 @@ ДескрипторКэша.Характеристики.Добавить(Новый Структура("Код, Значение, Ключевая", "Валюта", СтрокаКода.Код, Истина)); - ПоставляемыеДанные.СохранитьПоставляемыеДанныеВКэш(ДескрипторКэша, ИмяВременногоФайла); + МодульПоставляемыеДанные.СохранитьПоставляемыеДанныеВКэш(ДескрипторКэша, ИмяВременногоФайла); УдалитьФайлы(ИмяВременногоФайла); КонецЦикла; - ОбластиДляОбновления = ПоставляемыеДанные.ОбластиТребующиеОбработки( + ОбластиДляОбновления = МодульПоставляемыеДанные.ОбластиТребующиеОбработки( Дескриптор.FileGUID, "КурсыВалют"); РаспространитьКурсыПоОД(Неопределено, ТаблицаКурсов, ОбластиДляОбновления, @@ -373,7 +381,13 @@ // ПутьКФайлу - строка. Полное имя извлеченного файла. // Процедура ОбработатьПоставляемыеКурсыЗаДень(Знач Дескриптор, Знач ПутьКФайлу) - + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ПоставляемыеДанные") Тогда + Возврат; + КонецЕсли; + + МодульПоставляемыеДанные = ОбщегоНазначения.ОбщийМодуль("ПоставляемыеДанные"); + ТаблицаКурсов = ПрочитатьТаблицуКурсов(ПутьКФайлу); ДатаКурсов = ""; @@ -387,12 +401,12 @@ ВызватьИсключение НСтр("ru = 'Данные вида ""КурсыВалютЗаДень"" не содержат характеристики ""Дата"". Обновление курсов невозможно.'"); КонецЕсли; - ОбластиДляОбновления = ПоставляемыеДанные.ОбластиТребующиеОбработки(Дескриптор.FileGUID, "КурсыВалютЗаДень", Истина); + ОбластиДляОбновления = МодульПоставляемыеДанные.ОбластиТребующиеОбработки(Дескриптор.FileGUID, "КурсыВалютЗаДень", Истина); ИндексОбщихКурсов = ОбластиДляОбновления.Найти(-1); Если ИндексОбщихКурсов <> Неопределено Тогда - КэшКурсов = ПоставляемыеДанные.ДескрипторыПоставляемыхДанныхИзКэша("КурсыОднойВалюты", , Ложь); + КэшКурсов = МодульПоставляемыеДанные.ДескрипторыПоставляемыхДанныхИзКэша("КурсыОднойВалюты", , Ложь); Если КэшКурсов.Количество() > 0 Тогда Для каждого СтрокаКурсов Из ТаблицаКурсов Цикл @@ -408,7 +422,7 @@ ИмяВременногоФайла = ПолучитьИмяВременногоФайла(); Если КэшТекущей <> Неопределено Тогда - Данные = ПоставляемыеДанные.ПоставляемыеДанныеИзКэша(КэшТекущей.ИдентификаторФайла); + Данные = МодульПоставляемыеДанные.ПоставляемыеДанныеИзКэша(КэшТекущей.ИдентификаторФайла); Данные.Записать(ИмяВременногоФайла); Иначе КэшТекущей = Новый Структура; @@ -428,7 +442,7 @@ ЗаписатьТаблицуКурсов(ТаблицаДляЗаписи, ЗаписьТекста); ЗаписьТекста.Закрыть(); - ПоставляемыеДанные.СохранитьПоставляемыеДанныеВКэш(КэшТекущей, ИмяВременногоФайла); + МодульПоставляемыеДанные.СохранитьПоставляемыеДанныеВКэш(КэшТекущей, ИмяВременногоФайла); УдалитьФайлы(ИмяВременногоФайла); КонецЦикла; @@ -453,6 +467,13 @@ // Процедура РаспространитьКурсыПоОД(Знач ДатаКурсов, Знач ТаблицаКурсов, Знач ОбластиДляОбновления, Знач ИдентификаторФайла, Знач КодОбработчика) + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + Возврат; + КонецЕсли; + + МодульПоставляемыеДанные = ОбщегоНазначения.ОбщийМодуль("ПоставляемыеДанные"); + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + ВалютыОбластей = Новый Соответствие(); ЗапросОбщий = Новый Запрос(); @@ -465,9 +486,9 @@ Для каждого ОбластьДанных Из ОбластиДляОбновления Цикл Попытка - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных); + МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных); Исключение - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); + МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не удалось установить разделение сеанса %1 по причине: |%2'", ОбщегоНазначения.КодОсновногоЯзыка()), Формат(ОбластьДанных, "ЧН=0; ЧГ=0"), @@ -488,8 +509,9 @@ Попытка ОбработатьКурсыОбластиВТранзакции(ЗапросОбщий, ВалютыОбластей, ТаблицаКурсов); - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - ПоставляемыеДанные.ОбластьОбработана(ИдентификаторФайла, КодОбработчика, ОбластьДанных); + МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); + + МодульПоставляемыеДанные.ОбластьОбработана(ИдентификаторФайла, КодОбработчика, ОбластьДанных); ЗафиксироватьТранзакцию(); @@ -498,7 +520,7 @@ ОтменитьТранзакцию(); ВалютыОбластей = ОбщегоНазначения.ЗначениеИзСтрокиXML(ВалютыОбластейСтрокой); - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); + МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не удалось обновить курсы валют в области %1 по причине: |%2'", ОбщегоНазначения.КодОсновногоЯзыка()), Формат(ОбластьДанных, "ЧН=0; ЧГ=0"), diff --git a/SSL/src/CommonModules/КурсыВалютСлужебныйВМоделиСервиса/КурсыВалютСлужебныйВМоделиСервиса.mdo b/SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/РаботаСКурсамиВалютСлужебный.mdo similarity index 67% rename from SSL/src/CommonModules/КурсыВалютСлужебныйВМоделиСервиса/КурсыВалютСлужебныйВМоделиСервиса.mdo rename to SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/РаботаСКурсамиВалютСлужебный.mdo index 8b95ad42f..9d7c63c75 100644 --- a/SSL/src/CommonModules/КурсыВалютСлужебныйВМоделиСервиса/КурсыВалютСлужебныйВМоделиСервиса.mdo +++ b/SSL/src/CommonModules/РаботаСКурсамиВалютСлужебный/РаботаСКурсамиВалютСлужебный.mdo @@ -1,9 +1,9 @@ - КурсыВалютСлужебныйВМоделиСервиса + РаботаСКурсамиВалютСлужебный ru - Курсы валют служебный в модели сервиса + Работа с курсами валют служебный true true diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl index 695ec4e4b..37b30ea63 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениями/Module.bsl @@ -54,13 +54,14 @@ // РазмеченныйТекст/ТипыТекстовЭлектронныхПисем.РазмеченныйТекст - текст почтового сообщения в формате // Rich Text. // * Соединение - ИнтернетПочта - существующее соединение с почтовым сервером. Если не указано, то создается новое. -// * ПротоколПочты - Строка - если указано значение "IMAP", то письмо будет передано по протоколу IMAP, если по указано значение "Все", то по -// протоколу SMTP и по протоколу IMAP, если ничего не указано то по протоколу SMTP. -// Параметр имеет смысл, только наличии действующего соединения, указанного в параметр Соединение. -// В противном случае протокол будет определен автоматически при установке соединения. +// * ПротоколПочты - Строка - если указано значение "IMAP", то письмо будет передано по протоколу IMAP, если по +// указано значение "Все", то по протоколу SMTP и по протоколу IMAP, если ничего не указано +// то по протоколу SMTP. Параметр имеет смысл, только наличии действующего соединения, +// указанного в параметр Соединение. В противном случае протокол будет определен +// автоматически при установке соединения. // * ИдентификаторСообщения - Строка - (возвращаемый параметр) идентификатор отправленного почтового сообщения на SMTP-сервере; -// * ИдентификаторСообщенияОтправкаIMAP - Строка - (возвращаемый параметр) идентификатор отправленного почтового сообщения на IMAP -// сервере; +// * ИдентификаторСообщенияОтправкаIMAP - Строка - (возвращаемый параметр) идентификатор отправленного почтового +// сообщения на IMAP сервере; // * ОшибочныеПолучатели - Соответствие - (возвращаемый параметр) список адресов, по которым отправка не выполнена. // См. возвращаемое значение метода ИнтернетПочта.Послать() в синтакс-помощнике. // @@ -367,4 +368,30 @@ КонецПроцедуры +// Проверяет наличие в документе HTML ссылок на ресурсы, загружаемые по http(s). +// +// Параметры: +// ДокументHTML - ДокументHTML - документ HTML, в котором необходимо выполнить проверку. +// +// Возвращаемое значение: +// Булево - Истина, если в документе HTML есть внешние ресурсы. +// +Функция ЕстьВнешниеРесурсы(ДокументHTML) Экспорт + + Возврат РаботаСПочтовымиСообщениямиСлужебный.ЕстьВнешниеРесурсы(ДокументHTML); + +КонецФункции + +// Удаляет из документа HTML скрипты, обработчики событий, а также очищает ссылки на ресурсы, загружаемые по http(s). +// +// Параметры: +// ДокументHTML - ДокументHTML - документ HTML, в котором необходимо очистить небезопасное содержимое. +// ОтключитьВнешниеРесурсы - Булево - признак необходимости очистки ссылок на ресурсы, загружаемые по http(s). +// +Процедура ОтключитьНебезопасноеСодержимое(ДокументHTML, ОтключитьВнешниеРесурсы = Истина) Экспорт + + РаботаСПочтовымиСообщениямиСлужебный.ОтключитьНебезопасноеСодержимое(ДокументHTML, ОтключитьВнешниеРесурсы); + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебный/Module.bsl index 811b70154..50c4f4528 100644 --- a/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаСПочтовымиСообщениямиСлужебный/Module.bsl @@ -8,42 +8,6 @@ #Область СлужебныйПрограммныйИнтерфейс -// Предназначена для перевода паролей в безопасное хранилище. -// Используется в обработчике обновления ИБ. -Процедура ПеренестиПаролиВБезопасноеХранилище() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | УчетныеЗаписиЭлектроннойПочты.Ссылка, УчетныеЗаписиЭлектроннойПочты.УдалитьПароль, - | УчетныеЗаписиЭлектроннойПочты.УдалитьПарольSMTP - |ИЗ - | Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты"; - - РезультатЗапроса = Запрос.Выполнить().Выбрать(); - - Пока РезультатЗапроса.Следующий() Цикл - Если НЕ ПустаяСтрока(РезультатЗапроса.УдалитьПароль) - ИЛИ НЕ ПустаяСтрока(РезультатЗапроса.УдалитьПарольSMTP) Тогда - НачатьТранзакцию(); - Попытка - УстановитьПривилегированныйРежим(Истина); - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(РезультатЗапроса.Ссылка, РезультатЗапроса.УдалитьПароль); - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(РезультатЗапроса.Ссылка, РезультатЗапроса.УдалитьПарольSMTP, "ПарольSMTP"); - УстановитьПривилегированныйРежим(Ложь); - УчетнаяЗаписьЭлектроннойПочты = РезультатЗапроса.Ссылка.ПолучитьОбъект(); - УчетнаяЗаписьЭлектроннойПочты.УдалитьПароль = ""; - УчетнаяЗаписьЭлектроннойПочты.УдалитьПарольSMTP = ""; - УчетнаяЗаписьЭлектроннойПочты.Записать(); - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - КонецПопытки; - КонецЕсли; - КонецЦикла; - -КонецПроцедуры - // Создает профиль переданной учетной записи для подключения к почтовому серверу. // // Параметры: @@ -61,18 +25,15 @@ | УчетныеЗаписиЭлектроннойПочты.ПортСервераВходящейПочты КАК ПортIMAP, | УчетныеЗаписиЭлектроннойПочты.ИспользоватьЗащищенноеСоединениеДляВходящейПочты КАК ИспользоватьSSLIMAP, | УчетныеЗаписиЭлектроннойПочты.Пользователь КАК ПользовательIMAP, - | УчетныеЗаписиЭлектроннойПочты.ИспользоватьБезопасныйВходНаСерверВходящейПочты КАК ТолькоЗащищеннаяАутентификацияIMAP, | УчетныеЗаписиЭлектроннойПочты.СерверВходящейПочты КАК АдресСервераPOP3, | УчетныеЗаписиЭлектроннойПочты.ПортСервераВходящейПочты КАК ПортPOP3, | УчетныеЗаписиЭлектроннойПочты.ИспользоватьЗащищенноеСоединениеДляВходящейПочты КАК ИспользоватьSSLPOP3, | УчетныеЗаписиЭлектроннойПочты.Пользователь КАК Пользователь, - | УчетныеЗаписиЭлектроннойПочты.ИспользоватьБезопасныйВходНаСерверВходящейПочты КАК ТолькоЗащищеннаяАутентификацияPOP3, | УчетныеЗаписиЭлектроннойПочты.СерверИсходящейПочты КАК АдресСервераSMTP, | УчетныеЗаписиЭлектроннойПочты.ПортСервераИсходящейПочты КАК ПортSMTP, | УчетныеЗаписиЭлектроннойПочты.ИспользоватьЗащищенноеСоединениеДляИсходящейПочты КАК ИспользоватьSSLSMTP, | УчетныеЗаписиЭлектроннойПочты.ТребуетсяВходНаСерверПередОтправкой КАК POP3ПередSMTP, | УчетныеЗаписиЭлектроннойПочты.ПользовательSMTP КАК ПользовательSMTP, - | УчетныеЗаписиЭлектроннойПочты.ИспользоватьБезопасныйВходНаСерверИсходящейПочты КАК ТолькоЗащищеннаяАутентификацияSMTP, | УчетныеЗаписиЭлектроннойПочты.ВремяОжидания КАК Таймаут, | УчетныеЗаписиЭлектроннойПочты.ПротоколВходящейПочты КАК Протокол |ИЗ @@ -86,9 +47,9 @@ Результат = Неопределено; Если Выборка.Следующий() Тогда - СписокСвойствIMAP = "АдресСервераIMAP,ПортIMAP,ИспользоватьSSLIMAP,ПользовательIMAP,ТолькоЗащищеннаяАутентификацияIMAP"; - СписокСвойствPOP3 = "АдресСервераPOP3,ПортPOP3,ИспользоватьSSLPOP3,Пользователь,ТолькоЗащищеннаяАутентификацияPOP3"; - СписокСвойствSMTP = "АдресСервераSMTP,ПортSMTP,ИспользоватьSSLSMTP,ПользовательSMTP,ТолькоЗащищеннаяАутентификацияSMTP"; + СписокСвойствIMAP = "АдресСервераIMAP,ПортIMAP,ИспользоватьSSLIMAP,ПользовательIMAP"; + СписокСвойствPOP3 = "АдресСервераPOP3,ПортPOP3,ИспользоватьSSLPOP3,Пользователь"; + СписокСвойствSMTP = "АдресСервераSMTP,ПортSMTP,ИспользоватьSSLSMTP,ПользовательSMTP"; УстановитьПривилегированныйРежим(Истина); Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(УчетнаяЗапись, "Пароль,ПарольSMTP"); @@ -230,10 +191,6 @@ Обработчик.Процедура = "РаботаСПочтовымиСообщениямиСлужебный.ЗаполнитьСистемнуюУчетнуюЗапись"; Обработчик.РежимВыполнения = "Оперативно"; - Обработчик = Обработчики.Добавить(); - Обработчик.Процедура = "РаботаСПочтовымиСообщениямиСлужебный.ЗаполнитьНовыеРеквизитыУчетныхЗаписей"; - Обработчик.Версия = "2.2.2.5"; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда Обработчик = Обработчики.Добавить(); Обработчик.Версия = "2.4.1.1"; @@ -416,7 +373,7 @@ Если Вложения <> Неопределено Тогда Для Каждого Вложение Из Вложения Цикл Если ТипЗнч(Вложение) = Тип("Структура") Тогда - ДанныеФайла = Неопределено; + ДанныеФайла = Неопределено; Если ЭтоАдресВременногоХранилища(Вложение.АдресВоВременномХранилище) Тогда ДанныеФайла = ПолучитьИзВременногоХранилища(Вложение.АдресВоВременномХранилище); Иначе @@ -531,7 +488,6 @@ Если ПараметрыОтправки.Свойство("УведомитьОДоставке") Тогда Письмо.УведомитьОДоставке = ПараметрыОтправки.УведомитьОДоставке; - Письмо.АдресаУведомленияОДоставке.Добавить(РеквизитыОтправителя.АдресЭлектроннойПочты); КонецЕсли; Если ПараметрыОтправки.Свойство("УведомитьОПрочтении") Тогда @@ -895,44 +851,6 @@ КонецПроцедуры -// Заполняет новые реквизиты справочника УчетныеЗаписиЭлектроннойПочты. -Процедура ЗаполнитьНовыеРеквизитыУчетныхЗаписей() Экспорт - - ТекстЗапроса = - "ВЫБРАТЬ - | ""POP"" КАК ПротоколВходящейПочты, - | ВЫБОР - | КОГДА УчетныеЗаписиЭлектроннойПочты.SMTPАутентификация = ЗНАЧЕНИЕ(Перечисление.ВариантыSMTPАутентификации.POP3ПередSMTP) - | ТОГДА ИСТИНА - | ИНАЧЕ ЛОЖЬ - | КОНЕЦ КАК ТребуетсяВходНаСерверПередОтправкой, - | ВЫБОР - | КОГДА УчетныеЗаписиЭлектроннойПочты.СпособPOP3Аутентификации <> ЗНАЧЕНИЕ(Перечисление.СпособыPOP3Аутентификации.Обычная) - | И УчетныеЗаписиЭлектроннойПочты.СпособPOP3Аутентификации <> ЗНАЧЕНИЕ(Перечисление.СпособыPOP3Аутентификации.ПустаяСсылка) - | ТОГДА ИСТИНА - | ИНАЧЕ ЛОЖЬ - | КОНЕЦ КАК ИспользоватьБезопасныйВходНаСерверВходящейПочты, - | ВЫБОР - | КОГДА УчетныеЗаписиЭлектроннойПочты.СпособSMTPАутентификации = ЗНАЧЕНИЕ(Перечисление.СпособыSMTPАутентификации.CramMD5) - | ТОГДА ИСТИНА - | ИНАЧЕ ЛОЖЬ - | КОНЕЦ КАК ИспользоватьБезопасныйВходНаСерверИсходящейПочты, - | УчетныеЗаписиЭлектроннойПочты.Ссылка КАК Ссылка - |ИЗ - | Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты - |ГДЕ - | УчетныеЗаписиЭлектроннойПочты.ПометкаУдаления = ЛОЖЬ"; - - Запрос = Новый Запрос(ТекстЗапроса); - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - УчетнаяЗапись = Выборка.Ссылка.ПолучитьОбъект(); - ЗаполнитьЗначенияСвойств(УчетнаяЗапись, Выборка, , "Ссылка"); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(УчетнаяЗапись); - КонецЦикла; - -КонецПроцедуры - // Служебная функция используется для проверки учетной записи электронной почты. // Процедура ПроверитьВозможностьОтправкиИПолученияЭлектроннойПочты(УчетнаяЗапись, СообщениеОбОшибке, ДополнительноеСообщение) Экспорт @@ -1371,4 +1289,107 @@ КонецФункции +Функция ЕстьВнешниеРесурсы(ДокументHTML) Экспорт + + Фильтры = Новый Массив; + Фильтры.Добавить(ФильтрПоАтрибуту("src", "^(http|https)://")); + + Фильтр = ОбъединитьФильтры(Фильтры); + НайденныеУзлы = ДокументHTML.НайтиПоФильтру(ЗначениеВJSON(Фильтр)); + + Возврат НайденныеУзлы.Количество() > 0; + +КонецФункции + +Процедура ОтключитьНебезопасноеСодержимое(ДокументHTML, ОтключитьВнешниеРесурсы = Истина) Экспорт + + Фильтры = Новый Массив; + Фильтры.Добавить(ФильтрПоИмениУзла("script")); + Фильтры.Добавить(ФильтрПоИмениУзла("link")); + Фильтры.Добавить(ФильтрПоИмениУзла("iframe")); + Фильтры.Добавить(ФильтрПоИмениАтрибута("onerror")); + Фильтры.Добавить(ФильтрПоИмениАтрибута("onmouseover")); + Фильтры.Добавить(ФильтрПоИмениАтрибута("onmouseout")); + Фильтры.Добавить(ФильтрПоИмениАтрибута("onclick")); + Фильтры.Добавить(ФильтрПоИмениАтрибута("onload")); + + Фильтр = ОбъединитьФильтры(Фильтры); + ДокументHTML.УдалитьПоФильтру(ЗначениеВJSON(Фильтр)); + + Если ОтключитьВнешниеРесурсы Тогда + Фильтр = ФильтрПоАтрибуту("src", "^(http|https)://"); + НайденныеУзлы = ДокументHTML.НайтиПоФильтру(ЗначениеВJSON(Фильтр)); + Для Каждого Узел Из НайденныеУзлы Цикл + Узел.Значение = ""; + КонецЦикла; + КонецЕсли; + +КонецПроцедуры + +Функция ФильтрПоИмениУзла(ИмяУзла) + + Результат = Новый Структура; + Результат.Вставить("type", "elementname"); + Результат.Вставить("value", Новый Структура("value, operation", ИмяУзла, "equals")); + + Возврат Результат; + +КонецФункции + +Функция ОбъединитьФильтры(Фильтры, ТипОбъединения = "Или") + + Если Фильтры.Количество() = 1 Тогда + Возврат Фильтры[0]; + КонецЕсли; + + Результат = Новый Структура; + Результат.Вставить("type", ?(ТипОбъединения = "И", "intersection", "union")); + Результат.Вставить("value", Фильтры); + + Возврат Результат; + +КонецФункции + +Функция ФильтрПоАтрибуту(ИмяАтрибута, ШаблонЗначения) + + Фильтры = Новый Массив; + Фильтры.Добавить(ФильтрПоИмениАтрибута(ИмяАтрибута)); + Фильтры.Добавить(ФильтрПоЗначениюАтрибута(ШаблонЗначения)); + + Результат = ОбъединитьФильтры(Фильтры, "И"); + + Возврат Результат; + +КонецФункции + +Функция ФильтрПоИмениАтрибута(ИмяАтрибута) + + Результат = Новый Структура; + Результат.Вставить("type", "attribute"); + Результат.Вставить("value", Новый Структура("value, operation", ИмяАтрибута, "nameequals")); + + Возврат Результат; + +КонецФункции + +Функция ФильтрПоЗначениюАтрибута(ШаблонЗначения) + + Результат = Новый Структура; + Результат.Вставить("type", "attribute"); + Результат.Вставить("value", Новый Структура("value, operation", ШаблонЗначения, "valuematchesregex")); + + Возврат Результат; + +КонецФункции + +Функция ЗначениеВJSON(Значение) + + ЗаписьJSON = Новый ЗаписьJSON; + ЗаписьJSON.УстановитьСтроку(); + ЗаписатьJSON(ЗаписьJSON, Значение); + + Возврат ЗаписьJSON.Закрыть(); + +КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonModules/РаботаСФайлами/Module.bsl b/SSL/src/CommonModules/РаботаСФайлами/Module.bsl index 5def803cd..a4a8bd46f 100644 --- a/SSL/src/CommonModules/РаботаСФайлами/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайлами/Module.bsl @@ -130,15 +130,18 @@ // * ПодписанЭП - Булево - признак того, что файл подписан. // * Зашифрован - Булево - признак того, что файл зашифрован. // * Версия - ОпределяемыйТип.ПрисоединенныйФайл - если справочник файлов поддерживает создание -// версий, содержит ссылку на текущую версию файла. В ином случае содержит ссылку на файл. +// версий, содержит ссылку на текущую версию файла. В ином случае содержит +// ссылку на файл. // * НомерВерсии - Число - если справочник файлов поддерживает создание версий, содержит номер // текущей версии файла, иначе - 0. // * Том - СправочникСсылка.ТомаХраненияФайлов - том хранения файла. // * Автор - СправочникСсылка.УчетныеЗаписиСинхронизацииФайлов, СправочникСсылка.Пользователи, // СправочникСсылка.ВнешниеПользователи - автор файла. -// * СтатусИзвлеченияТекста - ПеречислениеСсылка.СтатусыИзвлеченияТекстаФайлов - статус извлечения текста из файла. +// * СтатусИзвлеченияТекста - ПеречислениеСсылка.СтатусыИзвлеченияТекстаФайлов - статус извлечения текста +// из файла. // * ПолноеНаименованиеВерсии - Строка - если справочник файлов поддерживает создание версий, содержит полное -// наименование текущей версии файла. В ином случае содержит полное наименование файла. +// наименование текущей версии файла. В ином случае содержит полное +// наименование файла. // * КодировкаТекущейВерсии - Строка - кодировка текстового файла. // * НаЧтение - Булево - признак того, что файл редактируется пользователем, отличным от текущего. // * ПолноеИмяФайлаВРабочемКаталоге - Строка - путь к файлу в рабочем каталоге. @@ -174,15 +177,7 @@ ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("РаботаСФайлами.ДанныеФайла", "ПрисоединенныйФайл", ПрисоединенныйФайл, Метаданные.ОпределяемыеТипы.ПрисоединенныйФайл.Тип); - НачатьТранзакцию(); - Попытка - ФайлОбъект = ПрисоединенныйФайл.ПолучитьОбъект(); - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - + ФайлОбъект = ПрисоединенныйФайл.ПолучитьОбъект(); Если ВызыватьИсключение Тогда ОбщегоНазначенияКлиентСервер.Проверить(ФайлОбъект <> Неопределено, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не найден присоединенный файл ""%1"" (%2)'"), @@ -399,7 +394,7 @@ ЗаголовокОшибки = НСтр("ru = 'Ошибка определения возможности присоединения файла.'"); ИмяСправочника = РаботаСФайламиСлужебный.ИмяСправочникаХраненияФайлов( ВладелецФайлов, ИмяСправочника, ЗаголовокОшибки); - + СправочникПрисоединенныеФайлы = Метаданные.Справочники.Найти(ИмяСправочника); ТипыХранимыхФайлов = Метаданные.ОпределяемыеТипы.ПрисоединенныйФайл.Тип; @@ -576,7 +571,7 @@ РасширениеБезТочки = ПараметрыФайла.РасширениеБезТочки; Если Не ЗначениеЗаполнено(ВладелецФайлов) Тогда - ВызватьИсключение НСтр("ru = 'Не задано значение параметра ВладелецФайлов в РаботаСФайлами.ДобавитьФайл.'"); + ВызватьИсключение НСтр("ru = 'Не задано значение параметра ПараметрыФайла.ВладелецФайлов в РаботаСФайлами.ДобавитьФайл.'"); КонецЕсли; ГруппаФайлов = Неопределено; @@ -1202,7 +1197,7 @@ // Обработчик события ПриЗаписиНаСервере управляемой формы владельца файла. // // Параметры: -// Отказ - Булево - стандартный параметр события ПриЗаписиНаСервере управляемой формы. +// Отказ - Булево - стандартный параметр события ПриЗаписиНаСервере управляемой формы. // ТекущийОбъект - Объект - стандартный параметр события ПриЗаписиНаСервере управляемой формы. // ПараметрыЗаписи - Структура - стандартный параметр события ПриЗаписиНаСервере управляемой формы. // Параметры - ДанныеФормыСтруктура - свойство Параметры управляемой формы. @@ -1220,7 +1215,7 @@ // Размещает гиперссылки и поля присоединенных файлов на управляемой форме. // // Параметры: -// Форма - УправляемаяФорма - форма для подключения. +// Форма - ФормаКлиентскогоПриложения - форма для подключения. // ДобавляемыеЭлементы - Структура, Массив - параметры элементов управления // присоединенными файлами для размещения на форме или массив // таких структур. Свойства: см. РаботаСФайлами.ГиперссылкаФайлов @@ -2558,18 +2553,19 @@ ЭлементПредпросмотра = Форма.Элементы.Добавить("ПолеКартинкиПрисоединенногоФайла" + НомерЭлемента, Тип("ПолеФормы"), ГруппаРазмещенияНаФорме); - ЭлементПредпросмотра.Вид = ВидПоляФормы.ПолеКартинки; - ЭлементПредпросмотра.ЦветТекста = ЦветаСтиля.ЦветТекстаНевыбраннойКартинки; - ЭлементПредпросмотра.ПутьКДанным = ДобавляемыйЭлемент.ПутьКДаннымИзображения; - ЭлементПредпросмотра.Гиперссылка = Истина; - ЭлементПредпросмотра.РазмерКартинки = РазмерКартинки.Пропорционально; - ЭлементПредпросмотра.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; - ЭлементПредпросмотра.АвтоМаксимальнаяШирина = Ложь; - ЭлементПредпросмотра.АвтоМаксимальнаяВысота = Ложь; - ЭлементПредпросмотра.РастягиватьПоВертикали = Истина; - ЭлементПредпросмотра.РазрешитьПеретаскивание = Истина; - ЭлементПредпросмотра.РастягиватьПоГоризонтали = Истина; - ЭлементПредпросмотра.ТекстНевыбраннойКартинки = ДобавляемыйЭлемент.ТекстНевыбраннойКартинки; + ЭлементПредпросмотра.Вид = ВидПоляФормы.ПолеКартинки; + ЭлементПредпросмотра.ЦветТекста = ЦветаСтиля.ЦветТекстаНевыбраннойКартинки; + ЭлементПредпросмотра.ПутьКДанным = ДобавляемыйЭлемент.ПутьКДаннымИзображения; + ЭлементПредпросмотра.Гиперссылка = Истина; + ЭлементПредпросмотра.РазмерКартинки = РазмерКартинки.Пропорционально; + ЭлементПредпросмотра.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; + ЭлементПредпросмотра.АвтоМаксимальнаяШирина = Ложь; + ЭлементПредпросмотра.АвтоМаксимальнаяВысота = Ложь; + ЭлементПредпросмотра.РастягиватьПоВертикали = Истина; + ЭлементПредпросмотра.РазрешитьПеретаскивание = Истина; + ЭлементПредпросмотра.РастягиватьПоГоризонтали = Истина; + ЭлементПредпросмотра.ТекстНевыбраннойКартинки = ДобавляемыйЭлемент.ТекстНевыбраннойКартинки; + ЭлементПредпросмотра.СпособПеретаскиванияФайлов = СпособПеретаскиванияФайлов.КакСсылкаНаФайл; КонтекстноеМенюПредпросмотра = ЭлементПредпросмотра.КонтекстноеМеню; КонтекстноеМенюПредпросмотра.РазрешитьИзменениеСостава = Ложь; diff --git a/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl index 1f8e71ec3..463a8bec2 100644 --- a/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиКлиент/Module.bsl @@ -101,7 +101,7 @@ // // ВладелецФайла - ОпределяемыйТип.ВладелецПрисоединенныхФайлов - папка файлов или объект, к которому // требуется прикрепить добавляемый файл. -// ФормаВладелец - УправляемаяФорма - форма, из которой вызвано создание файла. +// ФормаВладелец - ФормаКлиентскогоПриложения - форма, из которой вызвано создание файла. // РежимСоздания - Неопределено, Число - режим создания файла: // - Неопределено - показать диалог выбора режима создания файла. // - Число - создать файл указанным способом: @@ -169,7 +169,7 @@ // а пользователю задается вопрос. Если пользователь ответил утвердительно, то форма закрывается. // // Параметры: -// Форма - УправляемаяФорма - форма, в которой редактируется файл. +// Форма - ФормаКлиентскогоПриложения - форма, в которой редактируется файл. // Отказ - Булево - параметр события ПередЗакрытием. // ЗавершениеРаботы - Булево - признак того, что форма закрывается в процессе завершения работы приложения. // ВладелецФайлов - ОпределяемыйТип.ВладелецПрисоединенныхФайлов - папка файлов или объект, к которому присоединены @@ -188,7 +188,7 @@ ИмяРеквизита = "МожноЗакрытьФормуСФайлами") Экспорт ИмяПроцедуры = "РаботаСФайламиКлиент.ПоказатьПодтверждениеЗакрытияФормыСФайлами"; - ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Форма", Форма, Тип("УправляемаяФорма")); + ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Форма", Форма, Тип("ФормаКлиентскогоПриложения")); ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Отказ", Отказ, Тип("Булево")); ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "ЗавершениеРаботы", ЗавершениеРаботы, Тип("Булево")); ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "ИмяРеквизита", ИмяРеквизита, Тип("Строка")); @@ -324,7 +324,7 @@ ОписаниеОповещенияОВыборе = Неопределено) Экспорт СтандартнаяОбработка = Ложь; - + Если ВладелецФайлов.Пустая() Тогда ОбработчикОповещенияОЗакрытии = Новый ОписаниеОповещения("ВопросОНеобходимостиЗаписиПослеЗавершения", ЭтотОбъект); ПоказатьВопрос(ОбработчикОповещенияОЗакрытии, @@ -559,7 +559,7 @@ // Обработчик события ПриОткрытии управляемой формы владельца файла. // // Параметры: -// Форма - УправляемаяФорма - форма владельца файла. +// Форма - ФормаКлиентскогоПриложения - форма владельца файла. // Отказ - Булево - стандартный параметр события ПриОткрытии управляемой формы. // Процедура ПриОткрытии(Форма, Отказ) Экспорт @@ -574,7 +574,7 @@ // Обработчик события ОбработкаОповещения управляемой формы владельца файла. // // Параметры: -// Форма - УправляемаяФорма - форма владельца файла. +// Форма - ФормаКлиентскогоПриложения - форма владельца файла. // ИмяСобытия - Строка - стандартный параметр события ОбработкаОповещения управляемой формы. // Процедура ОбработкаОповещения(Форма, ИмяСобытия) Экспорт @@ -617,7 +617,7 @@ // Обработчик выполнения дополнительных команд управления присоединенными файлами. // // Параметры: -// Форма - УправляемаяФорма - форма владельца файла. +// Форма - ФормаКлиентскогоПриложения - форма владельца файла. // Команда - КомандаФормы - выполняемая команда. // Процедура КомандаУправленияПрисоединеннымиФайлами(Форма, Команда) Экспорт @@ -648,7 +648,7 @@ // Обработчик нажатия на поле предпросмотра. // // Параметры: -// Форма - УправляемаяФорма - форма владельца файла. +// Форма - ФормаКлиентскогоПриложения - форма владельца файла. // Элемент - ПолеФормы - поле предпросмотра. // СтандартнаяОбработка - Булево - стандартный параметр события Нажатие поля формы. // Просмотр - Булево - если параметр принимает значение Истина, открывает файл @@ -685,7 +685,7 @@ // Обработчик перетаскивания на поле предпросмотра. // // Параметры: -// Форма - УправляемаяФорма - форма владельца файла. +// Форма - ФормаКлиентскогоПриложения - форма владельца файла. // Элемент - ПолеФормы - поле предпросмотра. // ПараметрыПеретаскивания - ПараметрыПеретаскивания - стандартный параметр события Перетаскивание // поля формы. @@ -698,21 +698,20 @@ ВладелецПрисоединенныхФайлов = ЗначениеПараметраПрисоединенногоФайла(Форма, Число(НомерЭлемента), "ПутьКДаннымВладельца"); СтандартнаяОбработка = Ложь; + ПараметрыОбработчика = Новый Структура; + ПараметрыОбработчика.Вставить("Действие", "Перетаскивание"); + ПараметрыОбработчика.Вставить("Форма", Форма); + ПараметрыОбработчика.Вставить("Элемент", Элемент); + ПараметрыОбработчика.Вставить("НомерЭлемента", НомерЭлемента); + ПараметрыОбработчика.Вставить("ТолькоОдинФайл", ТолькоОдинФайл); + ПараметрыОбработчика.Вставить("ПараметрыПеретаскивания", ПараметрыПеретаскивания); + ПараметрыОбработчика.Вставить("ВладелецПрисоединенныхФайлов", ВладелецПрисоединенныхФайлов); + Если Не ЗначениеЗаполнено(ВладелецПрисоединенныхФайлов) Тогда - - ПараметрыОбработчика = Новый Структура; - ПараметрыОбработчика.Вставить("Действие", "Перетаскивание"); - ПараметрыОбработчика.Вставить("Форма", Форма); - ПараметрыОбработчика.Вставить("Элемент", Элемент); - ПараметрыОбработчика.Вставить("НомерЭлемента", НомерЭлемента); - ПараметрыОбработчика.Вставить("ТолькоОдинФайл", ТолькоОдинФайл); - ПараметрыОбработчика.Вставить("ПараметрыПеретаскивания", ПараметрыПеретаскивания); - ЗадатьВопросОЗаписиВладельца(ПараметрыОбработчика); - Иначе - ПолеПредпросмотраПеретаскиваниеЗавершение(Форма, ВладелецПрисоединенныхФайлов, Элемент, ПараметрыПеретаскивания, - СтандартнаяОбработка, ТолькоОдинФайл); + ОповещениеОбУстановке = Новый ОписаниеОповещения("ПолеПредпросмотраПеретаскиваниеЗавершение", ЭтотОбъект, ПараметрыОбработчика); + ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(ОповещениеОбУстановке, , Ложь); КонецЕсли; КонецПроцедуры @@ -720,7 +719,7 @@ // Обработчик проверки перетаскивания на поле предпросмотра. // // Параметры: -// Форма - УправляемаяФорма - форма владельца файла. +// Форма - ФормаКлиентскогоПриложения - форма владельца файла. // Элемент - ПолеФормы - поле предпросмотра. // ПараметрыПеретаскивания - ПараметрыПеретаскивания - стандартный параметр события Проверка // перетаскивания поля формы. @@ -740,7 +739,7 @@ // Открывает форму файла из формы элемента справочника файлов. Форма элемента закрывается. // // Параметры: -// Форма - УправляемаяФорма - Форма справочника присоединенных файлов. +// Форма - ФормаКлиентскогоПриложения - Форма справочника присоединенных файлов. // Процедура ПерейтиКФормеФайла(Знач Форма) Экспорт @@ -1034,9 +1033,8 @@ ДополнительныеПараметры.Элемент, СтандартнаяОбработка, ДополнительныеПараметры.Просмотр, ДополнительныеПараметры.ТолькоОдинФайл); ИначеЕсли ДополнительныеПараметры.Действие = "Перетаскивание" Тогда - ПолеПредпросмотраПеретаскиваниеЗавершение(Форма, ВладелецПрисоединенныхФайлов, - ДополнительныеПараметры.Элемент, ДополнительныеПараметры.ПараметрыПеретаскивания, - СтандартнаяОбработка, ДополнительныеПараметры.ТолькоОдинФайл); + ОповещениеОбУстановке = Новый ОписаниеОповещения("ПолеПредпросмотраПеретаскиваниеЗавершение", ЭтотОбъект, ДополнительныеПараметры); + ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(ОповещениеОбУстановке, , Ложь); КонецЕсли; КонецЕсли; @@ -1181,29 +1179,42 @@ КонецПроцедуры -Процедура ПолеПредпросмотраПеретаскиваниеЗавершение(Форма, ВладелецПрисоединенныхФайлов, Элемент, ПараметрыПеретаскивания, - СтандартнаяОбработка, ТолькоОдинФайл = Ложь) +Процедура ПолеПредпросмотраПеретаскиваниеЗавершение(РасширениеУстановлено, ДополнительныеПараметры) Экспорт + + Если Не РасширениеУстановлено Тогда + Возврат; + КонецЕсли; + + Форма = ДополнительныеПараметры.Форма; + Элемент = ДополнительныеПараметры.Элемент; + ТолькоОдинФайл = ДополнительныеПараметры.ТолькоОдинФайл; + ПараметрыПеретаскивания = ДополнительныеПараметры.ПараметрыПеретаскивания; + ВладелецПрисоединенныхФайлов = ДополнительныеПараметры.ВладелецПрисоединенныхФайлов; - СтандартнаяОбработка = Ложь; ПараметрыВыполнения = ПараметрыКомандыУправления(Форма); ПараметрыВыполнения.НомерЭлемента = СтрЗаменить(Элемент.Имя, "ПолеКартинкиПрисоединенногоФайла", ""); ТипЧисло = Новый ОписаниеТипов("Число"); НомерЭлемента = ТипЧисло.ПривестиЗначение(ПараметрыВыполнения.НомерЭлемента); - Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Файл") + Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("СсылкаНаФайл") И РаботаСФайламиСлужебныйВызовСервера.ЕстьПравоДоступа("Добавление", ВладелецПрисоединенныхФайлов) Тогда + Файл = ПараметрыПеретаскивания.Значение.Файл; + Если Файл = Неопределено Тогда + Возврат; + КонецЕсли; + ПараметрыВыполнения.Действие = "ЗавершитьПеретаскивание"; ОбработчикЗавершения = Новый ОписаниеОповещения("ЗавершениеВыполненияКомандыСОповещением", ЭтотОбъект, ПараметрыВыполнения); ПараметрыДобавления = Новый Структура; ПараметрыДобавления.Вставить("ОбработчикРезультата", ОбработчикЗавершения); - ПараметрыДобавления.Вставить("ПолноеИмяФайла", ПараметрыПеретаскивания.Значение.ПолноеИмя); + ПараметрыДобавления.Вставить("ПолноеИмяФайла", Файл.ПолноеИмя); ПараметрыДобавления.Вставить("ВладелецФайла", ВладелецПрисоединенныхФайлов); ПараметрыДобавления.Вставить("ФормаВладелец", Форма); ПараметрыДобавления.Вставить("НеОткрыватьКарточкуПослеСозданияИзФайла", Истина); - ПараметрыДобавления.Вставить("ИмяСоздаваемогоФайла", ПараметрыПеретаскивания.Значение.ИмяБезРасширения); + ПараметрыДобавления.Вставить("ИмяСоздаваемогоФайла", Файл.ИмяБезРасширения); ПараметрыДобавления.Вставить("МаксимальныйРазмер", Форма.ПараметрыРаботыСФайлами[НомерЭлемента].МаксимальныйРазмер); ПараметрыДобавления.Вставить("ФильтрДиалогаВыбора", diff --git a/SSL/src/CommonModules/РаботаСФайламиПереопределяемый/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиПереопределяемый/Module.bsl index 76e412c22..08bd06532 100644 --- a/SSL/src/CommonModules/РаботаСФайламиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиПереопределяемый/Module.bsl @@ -139,7 +139,7 @@ // Позволяет изменить стандартную форму списка файлов // // Параметры: -// Форма - УправляемаяФорма - форма списка файлов. +// Форма - ФормаКлиентскогоПриложения - форма списка файлов. Процедура ПриСозданииФормыСпискаФайлов(Форма) Экспорт КонецПроцедуры @@ -147,7 +147,7 @@ // Позволяет изменить стандартную форму файла // // Параметры: -// Форма - УправляемаяФорма - форма файла. +// Форма - ФормаКлиентскогоПриложения - форма файла. Процедура ПриСозданииФормыЭлементаФайлов(Форма) Экспорт КонецПроцедуры diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl index 7b09580e3..d0b87ae58 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебный/Module.bsl @@ -1750,7 +1750,7 @@ КонецЕсли; МодульРаботаВМоделиСервиса = Неопределено; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); КонецЕсли; @@ -2429,26 +2429,6 @@ КонецФункции -//////////////////////////////////////////////////////////////////////////////// -// Обновление информационной базы. - -// Перенести константы СписокЗапрещенныхРасширений и СписокРасширенийФайловOpenDocument. -Процедура ПеренестиКонстантыРасширений() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Если Не ОбщегоНазначения.РазделениеВключено() Тогда - - СписокЗапрещенныхРасширений = Константы.СписокЗапрещенныхРасширений.Получить(); - Константы.СписокЗапрещенныхРасширенийОбластиДанных.Установить(СписокЗапрещенныхРасширений); - - СписокРасширенийФайловOpenDocument = Константы.СписокРасширенийФайловOpenDocument.Получить(); - Константы.СписокРасширенийФайловOpenDocumentОбластиДанных.Установить(СписокРасширенийФайловOpenDocument); - - КонецЕсли; - -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // Сканирование @@ -2786,47 +2766,6 @@ // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.0.5.2"; // При обновлении на 1.0.5.2 сработает обработчик. - Обработчик.Процедура = "РаботаСФайламиСлужебный.ЗаполнитьНомерВерсииИзКодаСправочника"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.0.5.2"; // При обновлении на 1.0.5.2 сработает обработчик. - Обработчик.Процедура = "РаботаСФайламиСлужебный.ЗаполнитьТипХраненияФайлаВБазе"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.0.5.7"; // При обновлении на 1.0.5.7 сработает обработчик. - Обработчик.Процедура = "РаботаСФайламиСлужебный.СменитьИндексПиктограммы"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.0.6.3"; // При обновлении на 1.0.6.3 сработает обработчик. - Обработчик.ОбщиеДанные = Истина; - Обработчик.Процедура = "РаботаСФайламиСлужебный.ЗаполнитьПутиТома"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.0.7.1"; - Обработчик.Процедура = "РаботаСФайламиСлужебный.ПерезаписатьВсеФайлы"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.1.2.2"; - Обработчик.Процедура = "РаботаСФайламиСлужебный.ЗаполнитьДатуМодификацииФайла"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.2.1.2"; - Обработчик.Процедура = "РаботаСФайламиСлужебный.ПереместитьФайлыИзИнформационнойБазыВРегистрСведений"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.2.1.2"; - Обработчик.Процедура = "РаботаСФайламиСлужебный.ЗаполнитьДатуЗаема"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.1.6"; - Обработчик.Процедура = "РаботаСФайламиСлужебный.ПеренестиКонстантыРасширений"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.15"; - Обработчик.Процедура = "РаботаСФайламиСлужебный.ЗаменитьПраваВНастройкахПравПапокФайлов"; - Обработчик = Обработчики.Добавить(); Обработчик.Версия = "2.4.1.1"; Обработчик.ОбщиеДанные = Истина; @@ -2841,6 +2780,7 @@ Обработчик.РежимВыполнения = "Оперативно"; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда + Обработчик = Обработчики.Добавить(); Обработчик.Версия = "2.4.1.49"; Обработчик.Комментарий = @@ -2867,6 +2807,7 @@ Приоритет = Обработчик.ПриоритетыВыполнения.Добавить(); Приоритет.Процедура = "Справочники.Файлы.ОбработатьДанныеДляПереходаНаНовуюВерсию"; Приоритет.Порядок = "Любой"; + КонецЕсли; Обработчик = Обработчики.Добавить(); @@ -3700,17 +3641,15 @@ КонецФункции -// См. ФайловыеФункцииСлужебныйВМоделиСервиса.ОбновитьСостояниеОчередиИзвлеченияТекста. +// См. РаботаСФайламиСлужебныйВМоделиСервиса.ОбновитьСостояниеОчередиИзвлеченияТекста. Процедура ОбновитьСостояниеОчередиИзвлеченияТекста(ИсточникТекста, СостояниеИзвлеченияТекста) Экспорт - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ФайловыеФункцииВМоделиСервиса") Тогда - - Если ОбщегоНазначения.РазделениеВключено() - И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РаботаСФайламиВМоделиСервиса") + И ОбщегоНазначения.РазделениеВключено() + И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - МодульФайловыеФункцииСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ФайловыеФункцииСлужебныйВМоделиСервиса"); - МодульФайловыеФункцииСлужебныйВМоделиСервиса.ОбновитьСостояниеОчередиИзвлеченияТекста(ИсточникТекста, СостояниеИзвлеченияТекста); - КонецЕсли; + МодульРаботаСФайламиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебныйВМоделиСервиса"); + МодульРаботаСФайламиСлужебныйВМоделиСервиса.ОбновитьСостояниеОчередиИзвлеченияТекста(ИсточникТекста, СостояниеИзвлеченияТекста); КонецЕсли; @@ -4565,7 +4504,7 @@ // Внешним пользователям доступна только общая информация о файле и его характеристиках. // // Параметры: -// Форма - УправляемаяФорма - Форма, для которой изменяется видимость элементов. +// Форма - ФормаКлиентскогоПриложения - Форма, для которой изменяется видимость элементов. // ЭтоФормаСписка - Булево - признак того, что процедура вызывается из формы списка. // Процедура ИзменитьФормуДляВнешнегоПользователя(Форма, Знач ЭтоФормаСписка = Ложь) Экспорт @@ -9422,180 +9361,6 @@ КонецПроцедуры -// В справочнике ВерсииФайлов из данных в Код(Строка) заполняет НомерВерсии(Число). -Процедура ЗаполнитьНомерВерсииИзКодаСправочника() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ВерсииФайлов.Ссылка, - | ВерсииФайлов.ПометкаУдаления, - | ВерсииФайлов.Код, - | ВерсииФайлов.НомерВерсии, - | ВерсииФайлов.Владелец.ПометкаУдаления КАК ВладелецПометкаУдаления, - | ВерсииФайлов.Владелец.ТекущаяВерсия - |ИЗ - | Справочник.ВерсииФайлов КАК ВерсииФайлов"; - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - - Если Выборка.НомерВерсии = 0 Тогда - - ОписаниеТипов = Новый ОписаниеТипов("Число"); - КодЧисло = ОписаниеТипов.ПривестиЗначение(Выборка.Код); - Если КодЧисло <> 0 Тогда - Объект = Выборка.Ссылка.ПолучитьОбъект(); - Объект.НомерВерсии = КодЧисло; - - // Коррекция ситуации, допустимой ранее, но недопустимой сейчас - активная версия помечена на удаление, а владелец - // - нет. - Если Выборка.ПометкаУдаления = Истина И Выборка.ВладелецПометкаУдаления = Ложь И Выборка.ТекущаяВерсия = Выборка.Ссылка Тогда - Объект.ПометкаУдаления = Ложь; - КонецЕсли; - - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); - КонецЕсли - - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - -// В справочнике ВерсииФайлов заполняет ТипХраненияФайла значением ВБазе. -Процедура ЗаполнитьТипХраненияФайлаВБазе() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ВерсииФайлов.Ссылка - |ИЗ - | Справочник.ВерсииФайлов КАК ВерсииФайлов"; - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - Объект = Выборка.Ссылка.ПолучитьОбъект(); - - Если Объект.ТипХраненияФайла.Пустая() Тогда - Объект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - -// В справочнике ВерсииФайлов и Файлы ИндексКартинки увеличивает в 2 раза. -Процедура СменитьИндексПиктограммы() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ВерсииФайлов.Ссылка - |ИЗ - | Справочник.ВерсииФайлов КАК ВерсииФайлов"; - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - Объект = Выборка.Ссылка.ПолучитьОбъект(); - Объект.ОбменДанными.Загрузка = Истина; - Объект.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(Объект.Расширение); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); - КонецЦикла; - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | Файлы.Ссылка - |ИЗ - | Справочник.Файлы КАК Файлы"; - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - Объект = Выборка.Ссылка.ПолучитьОбъект(); - Объект.ОбменДанными.Загрузка = Истина; - Объект.ИндексКартинки = Объект.ТекущаяВерсия.ИндексКартинки; - Объект.Записать(); - КонецЦикла; - -КонецПроцедуры - -// Вызывается при обновлении на 1.0.6.3 - заполняет пути ТомаХраненияФайлов. -Процедура ЗаполнитьПутиТома() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ТомаХраненияФайлов.Ссылка - |ИЗ - | Справочник.ТомаХраненияФайлов КАК ТомаХраненияФайлов"; - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - Объект = Выборка.Ссылка.ПолучитьОбъект(); - Объект.ПолныйПутьLinux = Объект.ПолныйПутьWindows; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); - КонецЦикла; - -КонецПроцедуры - -// В справочнике Файлы перезаписывает все элементы. -Процедура ПерезаписатьВсеФайлы() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | Файлы.Ссылка - |ИЗ - | Справочник.Файлы КАК Файлы"; - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - Объект = Выборка.Ссылка.ПолучитьОбъект(); - Объект.Записать(); - КонецЦикла; - -КонецПроцедуры - -// В справочнике ВерсииФайлов заполняет ДатаМодификацииФайла - из даты создания. -Процедура ЗаполнитьДатуМодификацииФайла() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ВерсииФайлов.Ссылка - |ИЗ - | Справочник.ВерсииФайлов КАК ВерсииФайлов"; - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - - Объект = Выборка.Ссылка.ПолучитьОбъект(); - - Если Объект.ДатаМодификацииФайла = Дата("00010101000000") Тогда - Объект.ДатаМодификацииФайла = Объект.ДатаСоздания; - Объект.Записать(); - КонецЕсли; - - КонецЦикла; - - ПерезаписатьВсеФайлы(); // Чтобы перенеслись значения реквизита ДатаМодификацииФайла из версии в файл. - -КонецПроцедуры - // Удаляет запись в регистре ХранимыеФайлыВерсий. // // Параметры: @@ -9611,105 +9376,6 @@ КонецПроцедуры -// Переносит бинарный файл из ФайлХранилище справочника ВерсииФайлов в регистр сведений ХранимыеФайлыВерсий. -Процедура ПереместитьФайлыИзИнформационнойБазыВРегистрСведений() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ВерсииФайлов.Ссылка - |ИЗ - | Справочник.ВерсииФайлов КАК ВерсииФайлов - |ГДЕ - | ВерсииФайлов.ТипХраненияФайла = &ТипХраненияФайла"; - - Запрос.УстановитьПараметр("ТипХраненияФайла", Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе); - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - - Объект = Выборка.Ссылка.ПолучитьОбъект(); - - ДанныеВХранилище = Объект.ФайлХранилище.Получить(); - Если ТипЗнч(ДанныеВХранилище) = Тип("ДвоичныеДанные") Тогда - ЗаписатьФайлВИнформационнуюБазу(Выборка.Ссылка, Объект.ФайлХранилище); - Объект.ФайлХранилище = Новый ХранилищеЗначения(""); // очищаем значение - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - -// Заполняет поле ДатаЗаема текущей датой. -Процедура ЗаполнитьДатуЗаема() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - ДатаЗаема = ТекущаяДатаСеанса(); - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | Файлы.Ссылка - |ИЗ - | Справочник.Файлы КАК Файлы"; - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - Если ЗначениеЗаполнено(Выборка.Ссылка.Редактирует) Тогда - Объект = Выборка.Ссылка.ПолучитьОбъект(); - // Чтобы прошла запись ранее подписанного объекта. - Объект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина); - Объект.ДатаЗаема = ДатаЗаема; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); - КонецЕсли; - КонецЦикла; - -КонецПроцедуры - -// Переименовывает старые права в новые. -Процедура ЗаменитьПраваВНастройкахПравПапокФайлов() Экспорт - - Если НЕ ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда - Возврат; - КонецЕсли; - - МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); - - ТаблицаЗамены = МодульУправлениеДоступом.ТаблицаЗаменыПравВНастройкахПравОбъектов(); - - Строка = ТаблицаЗамены.Добавить(); - Строка.ТипВладельцев = Справочники.ПапкиФайлов.ПустаяСсылка(); - Строка.СтароеИмя = "ЧтениеПапокИФайлов"; - Строка.НовоеИмя = "Чтение"; - - Строка = ТаблицаЗамены.Добавить(); - Строка.ТипВладельцев = Справочники.ПапкиФайлов.ПустаяСсылка(); - Строка.СтароеИмя = "ДобавлениеПапокИФайлов"; - Строка.НовоеИмя = "ДобавлениеФайлов"; - - Строка = ТаблицаЗамены.Добавить(); - Строка.ТипВладельцев = Справочники.ПапкиФайлов.ПустаяСсылка(); - Строка.СтароеИмя = "ИзменениеПапокИФайлов"; - Строка.НовоеИмя = "ИзменениеФайлов"; - - Строка = ТаблицаЗамены.Добавить(); - Строка.ТипВладельцев = Справочники.ПапкиФайлов.ПустаяСсылка(); - Строка.СтароеИмя = "ИзменениеПапокИФайлов"; - Строка.НовоеИмя = "ИзменениеПапок"; - - Строка = ТаблицаЗамены.Добавить(); - Строка.ТипВладельцев = Справочники.ПапкиФайлов.ПустаяСсылка(); - Строка.СтароеИмя = "ПометкаУдаленияПапокИФайлов"; - Строка.НовоеИмя = "ПометкаУдаленияФайлов"; - - МодульУправлениеДоступом.ЗаменитьПраваВНастройкахПравОбъектов(ТаблицаЗамены); - -КонецПроцедуры - // Получает количество версий с неизвлеченным текстом. Процедура ПолучитьКоличествоВерсийСНеизвлеченнымТекстом(ДополнительныеПараметры, АдресВоВременномХранилище) Экспорт @@ -9755,9 +9421,6 @@ КонецПроцедуры -// Регистрирует на плане обмена ОбновлениеИнформационнойБазы объекты, -// для которых необходимо обновить записи в реестре. -// Процедура ЗарегистрироватьОбъектыДляПереносаЭлектронныхПодписейИСертификатовШифрования(Параметры) Экспорт ТекстЗапросаДвеТабличныеЧасти = diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервиса/Module.bsl new file mode 100644 index 000000000..bde1988f7 --- /dev/null +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервиса/Module.bsl @@ -0,0 +1,565 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +#Область ИзвлечениеТекста + +// Добавляет и удаляет записи в регистр сведений ОчередьИзвлеченияТекста при изменении +// состояние извлечения текста версий файлов. +// +// Параметры: +// ИсточникТекста - СправочникСсылка.ВерсииФайлов, СправочникСсылка.*ПрисоединенныеФайлы, +// файл, у которого изменилось состояние извлечения текста. +// СостояниеИзвлеченияТекста - ПеречислениеСсылка.СтатусыИзвлеченияТекстаФайлов, новый +// статус извлечения текста у файла. +// +Процедура ОбновитьСостояниеОчередиИзвлеченияТекста(ИсточникТекста, СостояниеИзвлеченияТекста) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + + УстановитьПривилегированныйРежим(Истина); + + НаборЗаписей = РегистрыСведений.ОчередьИзвлеченияТекста.СоздатьНаборЗаписей(); + НаборЗаписей.Отбор.ОбластьДанныхВспомогательныеДанные.Установить(МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); + НаборЗаписей.Отбор.ИсточникТекста.Установить(ИсточникТекста); + + Если СостояниеИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен + ИЛИ СостояниеИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.ПустаяСсылка() Тогда + + Запись = НаборЗаписей.Добавить(); + Запись.ОбластьДанныхВспомогательныеДанные = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + Запись.ИсточникТекста = ИсточникТекста.Ссылка; + + КонецЕсли; + + НаборЗаписей.Записать(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийПодсистемКонфигурации + +// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков. +Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт + + СоответствиеИменПсевдонимам.Вставить("РаботаСФайламиСлужебный.ИзвлечьТекстИзФайлов"); + СоответствиеИменПсевдонимам.Вставить("РаботаСФайламиСлужебный.ОчиститьНенужныеФайлы"); + СоответствиеИменПсевдонимам.Вставить("РаботаСФайламиСлужебный.РегламентнаяСинхронизацияФайловWebdav"); + +КонецПроцедуры + +// См. ОчередьЗаданийПереопределяемый.ПриОпределенииИспользованияРегламентныхЗаданий. +Процедура ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования) Экспорт + + НоваяСтрока = ТаблицаИспользования.Добавить(); + НоваяСтрока.РегламентноеЗадание = "ПланированиеИзвлеченияТекстаВМоделиСервиса"; + НоваяСтрока.Использование = ПолучитьФункциональнуюОпцию("ИспользоватьПолнотекстовыйПоиск"); + +КонецПроцедуры + +// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. +Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт + + ШаблоныЗаданий.Добавить("ОчисткаНенужныхФайлов"); + ШаблоныЗаданий.Добавить("СинхронизацияФайлов"); + +КонецПроцедуры + +// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. +Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт + + Типы.Добавить(Метаданные.РегистрыСведений.ОчередьИзвлеченияТекста); + + ИсключаемыеТипы = ПрочитатьКэшВыгрузкиЗагрузкиФайловыхФункций().ОбъектыХранения; + Для Каждого ИсключаемыйТип Из ИсключаемыеТипы Цикл + Типы.Добавить(Метаданные.НайтиПоПолномуИмени(ИсключаемыйТип.Ключ)); + КонецЦикла; + +КонецПроцедуры + +// Вызывается при регистрации произвольных обработчиков выгрузки данных. +// +// Параметры: ТаблицаОбработчиков - ТаблицаЗначений, в данной процедуре требуется +// дополнить эту таблицу значений информацией о регистрируемых произвольных +// обработчиках выгрузки данных. Колонки: +// ОбъектМетаданных - ОбъектМетаданных, при выгрузке данных которого должен +// вызываться регистрируемый обработчик, +// Обработчик - ОбщийМодуль, общий модуль, в котором реализован произвольный +// обработчик выгрузки данных. Набор экспортных процедур, которые должны +// быть реализованы в обработчике, зависит от установки значений следующих +// колонок таблицы значений, +// Версия - Строка - номер версии интерфейса обработчиков выгрузки / загрузки данных, +// поддерживаемого обработчиком, +// ПередВыгрузкойТипа - Булево, флаг необходимости вызова обработчика перед +// выгрузкой всех объектов информационной базы, относящихся к данному объекту +// метаданных. Если присвоено значение Истина - в общем модуле обработчика должна +// быть реализована экспортируемая процедура ПередВыгрузкойТипа(), +// поддерживающая следующие параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе выгрузи данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера, +// Сериализатор - Сериализатор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, +// ОбъектМетаданных - ОбъектМетаданных, после выгрузки данных которого +// был вызван обработчик. +// +Процедура ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков) Экспорт + + СправочникиФайлов = ПрочитатьКэшВыгрузкиЗагрузкиФайловыхФункций().СправочникиФайлов; + Для Каждого СправочникФайлов Из СправочникиФайлов Цикл + + НовыйОбработчик = ТаблицаОбработчиков.Добавить(); + НовыйОбработчик.ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(СправочникФайлов.Ключ); + НовыйОбработчик.Обработчик = РаботаСФайламиСлужебныйВМоделиСервиса; + НовыйОбработчик.ПередВыгрузкойОбъекта = Истина; + НовыйОбработчик.Версия = "1.0.0.1"; + + КонецЦикла; + + НовыйОбработчик = ТаблицаОбработчиков.Добавить(); + НовыйОбработчик.ОбъектМетаданных = Метаданные.Справочники.Файлы; + НовыйОбработчик.Обработчик = РаботаСФайламиСлужебныйВМоделиСервиса; + НовыйОбработчик.ПередВыгрузкойОбъекта = Истина; + НовыйОбработчик.Версия = "1.0.0.1"; + +КонецПроцедуры + +// Вызывается при регистрации произвольных обработчиков загрузки данных. +// +// Параметры: ТаблицаОбработчиков - ТаблицаЗначений, в данной процедуре требуется +// дополнить эту таблицу значений информацией о регистрируемых произвольных +// обработчиках загрузки данных. Колонки: +// ОбъектМетаданных - ОбъектМетаданных, при загрузке данных которого должен +// вызываться регистрируемый обработчик, +// Обработчик - ОбщийМодуль, общий модуль, в котором реализован произвольный +// обработчик загрузки данных. Набор экспортных процедур, которые должны +// быть реализованы в обработчике, зависит от установки значений следующих +// колонок таблицы значений, +// Версия - Строка - номер версии интерфейса обработчиков выгрузки / загрузки данных, +// поддерживаемого обработчиком, +// ПередСопоставлениемСсылок - Булево, флаг необходимости вызова обработчика перед +// сопоставлением ссылок (в исходной ИБ и в текущей), относящихся к данному объекту +// метаданных. Если присвоено значение Истина - в общем модуле обработчика должна +// быть реализована экспортируемая процедура ПередСопоставлениемСсылок(), +// поддерживающая следующие параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. +// ОбъектМетаданных - ОбъектМетаданных, перед сопоставлением ссылок которого +// был вызван обработчик, +// СтандартнаяОбработка - Булево. Если процедуре ПередСопоставлениемСсылок() +// установить значение данного параметра равным Ложь, вместо стандартного +// сопоставления ссылок (поиск объектов в текущей ИБ с теми же значениями +// естественного ключа, которые были выгружены из ИБ-источника) будет +// вызвана функция СопоставитьСсылки() общего модуля, в процедуре +// ПередСопоставлениемСсылок() которого значение параметра СтандартнаяОбработка +// было установлено равным Ложь. +// Параметры функции СопоставитьСсылки(): +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера, +// ТаблицаИсходныхСсылок - ТаблицаЗначений, содержащая информацию о ссылках, +// выгруженных из исходной ИБ. Колонки: +// ИсходнаяСсылка - ЛюбаяСсылка, ссылка объекта исходной ИБ, которую требуется +// сопоставить 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-пакеты, +// помимо изначально поставляемых в составе подсистемы ВыгрузкаЗагрузкаДанных. +// ПослеЗагрузкиТипа - Булево, флаг необходимости вызова обработчика после +// загрузки всех объектов данных, относящихся к данному объекту +// метаданных. Если присвоено значение Истина - в общем модуле обработчика должна +// быть реализована экспортируемая процедура ПослеЗагрузкиТипа(), +// поддерживающая следующие параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. +// ОбъектМетаданных - ОбъектМетаданных, после загрузки всех объектов которого +// был вызван обработчик. +// +Процедура ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков) Экспорт + + СправочникиФайлов = ПрочитатьКэшВыгрузкиЗагрузкиФайловыхФункций().СправочникиФайлов; + Для Каждого СправочникФайлов Из СправочникиФайлов Цикл + + НовыйОбработчик = ТаблицаОбработчиков.Добавить(); + НовыйОбработчик.ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(СправочникФайлов.Ключ); + НовыйОбработчик.Обработчик = РаботаСФайламиСлужебныйВМоделиСервиса; + НовыйОбработчик.ПередЗагрузкойОбъекта = Истина; + НовыйОбработчик.Версия = "1.0.0.1"; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +// АПК:299-выкл - обработчики событий и обновления ИБ. +#Область ОбработчикиВыгрузкиДанных + +Процедура ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ) Экспорт + + Если ТипЗнч(Объект) = Тип("СправочникОбъект.Файлы") Тогда + ОчиститьСсылкаНаТомХраненияФайлов(Объект); + Возврат; + КонецЕсли; + + СправочникиФайлов = ПрочитатьКэшВыгрузкиЗагрузкиФайловыхФункций().СправочникиФайлов; + + Обработчик = СправочникиФайлов.Получить(Объект.Метаданные().ПолноеИмя()); + + Если Обработчик = Неопределено Тогда + + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Объект метаданных %1 не может быть обработан обработчиком + |РаботаСФайламиСлужебныйВМоделиСервиса.ПередВыгрузкойОбъекта().'", + Метаданные.ОсновнойЯзык.КодЯзыка), + Объект.Метаданные().ПолноеИмя()); + + КонецЕсли; + + МодульОбработчика = ОбщегоНазначения.ОбщийМодуль(Обработчик); + + РасширениеФайла = МодульОбработчика.РасширениеФайла(Объект); + + ИмяФайла = Контейнер.СоздатьПроизвольныйФайл(РасширениеФайла); + + Попытка + + МодульОбработчика.ВыгрузитьФайл(Объект, ИмяФайла); + + Артефакт = ФабрикаXDTO.Создать(ТипАртефактФайла()); + Артефакт.RelativeFilePath = Контейнер.ПолучитьОтносительноеИмяФайла(ИмяФайла); + Артефакты.Добавить(Артефакт); + + Исключение + + Контейнер.ИсключитьФайл(ИмяФайла); + + КонецПопытки; + + ОчиститьСсылкаНаТомХраненияФайлов(Объект); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиЗагрузкиДанных + +Процедура ПередЗагрузкойОбъекта(Контейнер, Объект, Артефакты, Отказ) Экспорт + + СправочникиФайлов = ПрочитатьКэшВыгрузкиЗагрузкиФайловыхФункций().СправочникиФайлов; + + Обработчик = СправочникиФайлов.Получить(Объект.Метаданные().ПолноеИмя()); + + Если Обработчик = Неопределено Тогда + + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Объект метаданных %1 не может быть обработан обработчиком + |РаботаСФайламиСлужебныйВМоделиСервиса.ПередВыгрузкойОбъекта().'", Метаданные.ОсновнойЯзык.КодЯзыка), + Объект.Метаданные().ПолноеИмя()); + + КонецЕсли; + + МодульОбработчика = ОбщегоНазначения.ОбщийМодуль(Обработчик); + + Для Каждого Артефакт Из Артефакты Цикл + + Если Артефакт.Тип() = ТипАртефактФайла() Тогда + + МодульОбработчика.ЗагрузитьФайл(Объект, Контейнер.ПолучитьПолноеИмяФайла(Артефакт.RelativeFilePath)); + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область ОбновлениеИнформационнойБазы + +// Заполняет очередь извлечения текста для текущей области данных. Используется для начального заполнения при +// обновлении. +Процедура ЗаполнитьОчередьИзвлеченияТекста() Экспорт + + ЭтоРазделеннаяКонфигурация = Ложь; + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + ЭтоРазделеннаяКонфигурация = МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация(); + КонецЕсли; + + Если Не ЭтоРазделеннаяКонфигурация Тогда + Возврат; + КонецЕсли; + + Запрос = Новый Запрос; + Запрос.Текст = РаботаСФайламиСлужебный.ТекстЗапросаДляИзвлеченияТекста(Истина); + + Выборка = Запрос.Выполнить().Выбрать(); + Пока Выборка.Следующий() Цикл + ОбновитьСостояниеОчередиИзвлеченияТекста(Выборка.Ссылка, + Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен); + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти +// АПК:299-вкл + +#Область ИзвлечениеТекста + +// Определяет перечень областей данных, в которых требуется извлечение текста и планирует +// для них его выполнение с использованием очереди заданий. +// +Процедура ОбработатьОчередьИзвлеченияТекста() Экспорт + + ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ПланированиеИзвлеченияТекстаВМоделиСервиса); + + Если НЕ ОбщегоНазначения.РазделениеВключено() + Или Не ОбщегоНазначения.ЭтоWindowsСервер() Тогда + Возврат; + КонецЕсли; + + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + + УстановитьПривилегированныйРежим(Истина); + + ИмяРазделенногоМетода = "РаботаСФайламиСлужебный.ИзвлечьТекстИзФайлов"; + + ТекстЗапроса = + "ВЫБРАТЬ РАЗЛИЧНЫЕ + | ОчередьИзвлеченияТекста.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанных, + | ВЫБОР + | КОГДА ЧасовыеПояса.Значение = """" + | ТОГДА НЕОПРЕДЕЛЕНО + | ИНАЧЕ ЕСТЬNULL(ЧасовыеПояса.Значение, НЕОПРЕДЕЛЕНО) + | КОНЕЦ КАК ЧасовойПояс + |ИЗ + | РегистрСведений.ОчередьИзвлеченияТекста КАК ОчередьИзвлеченияТекста + | ЛЕВОЕ СОЕДИНЕНИЕ Константа.ЧасовойПоясОбластиДанных КАК ЧасовыеПояса + | ПО ОчередьИзвлеченияТекста.ОбластьДанныхВспомогательныеДанные = ЧасовыеПояса.ОбластьДанныхВспомогательныеДанные + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОбластиДанных КАК ОбластиДанных + | ПО ОчередьИзвлеченияТекста.ОбластьДанныхВспомогательныеДанные = ОбластиДанных.ОбластьДанныхВспомогательныеДанные + |ГДЕ + | НЕ ОчередьИзвлеченияТекста.ОбластьДанныхВспомогательныеДанные В (&ОбрабатываемыеОбластиДанных) + | И ОбластиДанных.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыОбластейДанных.Используется)"; + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("ОбрабатываемыеОбластиДанных", МодульОчередьЗаданий.ПолучитьЗадания( + Новый Структура("ИмяМетода", ИмяРазделенногоМетода))); + + Если ТранзакцияАктивна() Тогда + ВызватьИсключение(НСтр("ru = 'Транзакция активна. Выполнение запроса в транзакции невозможно.'")); + КонецЕсли; + + КоличествоПопыток = 0; + + Результат = Неопределено; + Пока Истина Цикл + Попытка + Результат = Запрос.Выполнить(); // Чтение вне транзакции, возможно появление ошибки. + // Could not continue scan with NOLOCK due to data movement + // в этом случае нужно повторить попытку чтения. + Прервать; + Исключение + КоличествоПопыток = КоличествоПопыток + 1; + Если КоличествоПопыток = 5 Тогда + ВызватьИсключение; + КонецЕсли; + КонецПопытки; + КонецЦикла; + + Выборка = Результат.Выбрать(); + Пока Выборка.Следующий() Цикл + // Проверка блокировки области. + Если МодульРаботаВМоделиСервиса.ОбластьДанныхЗаблокирована(Выборка.ОбластьДанных) Тогда + // Область заблокирована, перейти к следующей записи. + Продолжить; + КонецЕсли; + + НовоеЗадание = Новый Структура(); + НовоеЗадание.Вставить("ОбластьДанных", Выборка.ОбластьДанных); + НовоеЗадание.Вставить("ЗапланированныйМоментЗапуска", МестноеВремя(ТекущаяУниверсальнаяДата(), Выборка.ЧасовойПояс)); + НовоеЗадание.Вставить("ИмяМетода", ИмяРазделенногоМетода); + МодульОчередьЗаданий.ДобавитьЗадание(НовоеЗадание); + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#Область Прочее + +Функция ТипАртефактФайла() + + Возврат ФабрикаXDTO.Тип(Пакет(), "FileArtefact"); + +КонецФункции + +Функция Пакет() + + Возврат "http://www.1c.ru/1cFresh/Data/Artefacts/Files/1.0.0.1"; + +КонецФункции + +Функция ПрочитатьКэшВыгрузкиЗагрузкиФайловыхФункций() + + Возврат РаботаСФайламиСлужебныйВМоделиСервисаПовтИсп.СправочникиФайловИОбъектыХранения(); + +КонецФункции + +Процедура ОчиститьСсылкаНаТомХраненияФайлов(Объект) + + Для Каждого РеквизитОбъекта Из Объект.Метаданные().Реквизиты Цикл + Если РеквизитОбъекта.Тип.СодержитТип(Тип("СправочникСсылка.ТомаХраненияФайлов")) + И ЗначениеЗаполнено(Объект[РеквизитОбъекта.Имя]) Тогда + Объект[РеквизитОбъекта.Имя] = Неопределено; + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти diff --git a/SSL/src/CommonModules/ФайловыеФункцииСлужебныйВМоделиСервиса/ФайловыеФункцииСлужебныйВМоделиСервиса.mdo b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервиса/РаботаСФайламиСлужебныйВМоделиСервиса.mdo similarity index 65% rename from SSL/src/CommonModules/ФайловыеФункцииСлужебныйВМоделиСервиса/ФайловыеФункцииСлужебныйВМоделиСервиса.mdo rename to SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервиса/РаботаСФайламиСлужебныйВМоделиСервиса.mdo index 16f430e28..e2aa8bb2a 100644 --- a/SSL/src/CommonModules/ФайловыеФункцииСлужебныйВМоделиСервиса/ФайловыеФункцииСлужебныйВМоделиСервиса.mdo +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервиса/РаботаСФайламиСлужебныйВМоделиСервиса.mdo @@ -1,9 +1,9 @@ - ФайловыеФункцииСлужебныйВМоделиСервиса + РаботаСФайламиСлужебныйВМоделиСервиса ru - Файловые функции служебный в модели сервиса + Работа с файлами служебный в модели сервиса true true diff --git a/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервисаПовтИсп/Module.bsl b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервисаПовтИсп/Module.bsl new file mode 100644 index 000000000..7d183c62b --- /dev/null +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйВМоделиСервисаПовтИсп/Module.bsl @@ -0,0 +1,62 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 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..ea89cbf36 --- /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 0b3e6d588..beb2291ed 100644 --- a/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/РаботаСФайламиСлужебныйКлиент/Module.bsl @@ -51,7 +51,7 @@ // * ПолноеИмяФайла - Строка - Необязательный. Полный путь и имя файла на клиенте. // Если не указан, то будет открыт диалог для выбора файла. // * ВладелецФайла - ЛюбаяСсылка - владелец файла. -// * ФормаВладелец - УправляемаяФорма из которой вызвано создание файла. +// * ФормаВладелец - ФормаКлиентскогоПриложения из которой вызвано создание файла. // * НеОткрыватьКарточкуПослеСозданияИзФайла - Булево. // - Истина когда карточка файла не открывается после создания. // * ИмяСоздаваемогоФайла - Строка - Необязательный. Новое имя файла. @@ -70,7 +70,7 @@ Если ПараметрыВыполнения.НеОткрыватьКарточкуПослеСозданияИзФайла <> Истина Тогда ПараметрыФормы = Новый Структура("КарточкаОткрытаПослеСозданияФайла", Истина); - ОписаниеОповещенияОЗакрытии = ПодготовитьОбработчикДляДиалога(ПараметрыВыполнения.ОбработчикРезультата); + ОписаниеОповещенияОЗакрытии = ОбработчикЗавершения(ПараметрыВыполнения.ОбработчикРезультата); РаботаСФайламиКлиент.ОткрытьФормуФайла(Результат.ФайлСсылка,, ПараметрыФормы, ОписаниеОповещенияОЗакрытии); Иначе ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, Результат); @@ -622,7 +622,7 @@ // Проверить подписи данных объекта в таблице. // // Параметры: -// Форма - УправляемаяФорма - с реквизитами: +// Форма - ФормаКлиентскогоПриложения - с реквизитами: // * Объект - ДанныеФормыСтруктура - как у объекта со свойствами Ссылка, Зашифрован. // Например, СправочникОбъект.Файл, СправочникОбъект.ДокументПрисоединенныеФайлы. // @@ -771,8 +771,9 @@ ЗаполнитьЗначенияСвойств(ПараметрыФормы, ПараметрыВыполнения); ПараметрыФормы.Вставить("ИдентификаторКлиента", СистемнаяИнформация.ИдентификаторКлиента); - ОбработчикРезультата = ПодготовитьОбработчикДляДиалога(ПараметрыВыполнения.ОбработчикРезультата); - ОткрытьФорму("Обработка.Сканирование.Форма.РезультатСканирования", ПараметрыФормы, ПараметрыВыполнения.ФормаВладелец, , , , ОбработчикРезультата); + ОписаниеОповещенияОЗакрытии = ОбработчикЗавершения(ПараметрыВыполнения.ОбработчикРезультата); + ОткрытьФорму("Обработка.Сканирование.Форма.РезультатСканирования", ПараметрыФормы, + ПараметрыВыполнения.ФормаВладелец, , , , ОписаниеОповещенияОЗакрытии); #КонецЕсли @@ -1365,7 +1366,7 @@ Коллекция = ДополнительныеПараметры.ВыделенныеСтроки; КонецЕсли; - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ЭлектроннаяПодписьВМоделиСервиса") Тогда + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ТехнологияСервиса.ЭлектроннаяПодписьВМоделиСервиса") Тогда МодульЭлектроннаяПодписьВМоделиСервисаКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьВМоделиСервисаКлиентСервер"); ИспользоватьЭлектроннуюПодписьВМоделиСервиса = МодульЭлектроннаяПодписьВМоделиСервисаКлиентСервер.ИспользованиеВозможно(); Иначе @@ -3479,12 +3480,12 @@ КонецЕсли; Если ПараметрыВыполнения.НеЗадаватьВопрос = Ложь Тогда - ПараметрыВыполнения.ОбработчикРезультата = ПодготовитьОбработчикДляДиалога(ПараметрыВыполнения.ОбработчикРезультата); + ПараметрыВыполнения.ОбработчикРезультата = ОбработчикЗавершения(ПараметрыВыполнения.ОбработчикРезультата); Обработчик = Новый ОписаниеОповещения("ОсвободитьФайлПослеОтветаНаВопросОтменаРедактирования", ЭтотОбъект, ПараметрыВыполнения); ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Отмена редактирования файла |""%1"" - |может привести к потере ваших изменений. + |может привести к потере внесенных изменений. | |Продолжить?'"), Строка(ПараметрыВыполнения.ОбъектСсылка)); @@ -4250,7 +4251,7 @@ Если ШапкаВопроса <> Неопределено Тогда ТекстВопроса = ШапкаВопроса + Символы.ПС + Символы.ПС + ТекстВопроса; КонецЕсли; - ПараметрыВыполнения.ОбработчикРезультата = ПодготовитьОбработчикДляДиалога(ПараметрыВыполнения.ОбработчикРезультата); + ПараметрыВыполнения.ОбработчикРезультата = ОбработчикЗавершения(ПараметрыВыполнения.ОбработчикРезультата); Обработчик = Новый ОписаниеОповещения("УдалитьФайлПослеОтветаНаВопрос", ЭтотОбъект, ПараметрыВыполнения); ПоказатьВопрос(Обработчик, ТекстВопроса, РежимДиалогаВопрос.ДаНет); Возврат; @@ -4907,8 +4908,8 @@ Если ФайлНаДиске.Существует() Тогда ФайлНаДиске.УстановитьТолькоЧтение(Ложь); - ЗарегистрироватьОписаниеОбработчика( - ПараметрыВыполнения, ЭтотОбъект, "УдалитьФайлИзРабочегоКаталогаПослеУдаленияФайла"); + ОбработчикЗавершения = Новый ОписаниеОповещения("УдалитьФайлИзРабочегоКаталогаПослеУдаленияФайла", ЭтотОбъект); + ЗарегистрироватьОбработчикЗавершения(ПараметрыВыполнения, ОбработчикЗавершения); УдалитьФайл(ПараметрыВыполнения, ПараметрыВыполнения.ПолноеИмяФайлаИзРегистра, ЗадаватьВопрос); Если ПараметрыВыполнения.АсинхронныйДиалог.Открыт = Истина Тогда @@ -5077,7 +5078,8 @@ ПараметрыВыполнения.Вставить("НомерШага", 0); ПараметрыВыполнения.Вставить("ПрерватьЦикл", Ложь); - ЗарегистрироватьОписаниеОбработчика(ПараметрыВыполнения, ЭтотОбъект, "ОчиститьРабочийКаталогОбработчикДиалогаВЦикле"); + ОбработчикЗавершения = Новый ОписаниеОповещения("ОчиститьРабочийКаталогОбработчикДиалогаВЦикле", ЭтотОбъект); + ЗарегистрироватьОбработчикЗавершения(ПараметрыВыполнения, ОбработчикЗавершения); ОчиститьРабочийКаталогЗапускЦикла(ПараметрыВыполнения); @@ -5144,7 +5146,7 @@ Кнопки.Добавить("Нет", НСтр("ru = 'Нет'")); Кнопки.Добавить("НетДляВсех", НСтр("ru = 'Нет для всех'")); - ПоказатьВопрос(ПодготовитьОбработчикДляДиалога(ПараметрыВыполнения), ТекстВопроса, Кнопки); + ПоказатьВопрос(ОбработчикЗавершения(ПараметрыВыполнения), ТекстВопроса, Кнопки); Возврат; КонецЕсли; @@ -6432,7 +6434,9 @@ ПараметрыВыполнения.Вставить("ИмяПапки", Неопределено); ПараметрыВыполнения.Вставить("Путь", Неопределено); ПараметрыВыполнения.Вставить("ПапкаУжеНайдена", Неопределено); - ЗарегистрироватьОписаниеОбработчика(ПараметрыВыполнения, ЭтотОбъект, "ИмпортФайловЦиклПродолжитьИмпортПослеВопросовВРекурсии"); + + ОбработчикЗавершения = Новый ОписаниеОповещения("ИмпортФайловЦиклПродолжитьИмпортПослеВопросовВРекурсии", ЭтотОбъект); + ЗарегистрироватьОбработчикЗавершения(ПараметрыВыполнения, ОбработчикЗавершения); ИмпортФайловЦикл(ПараметрыВыполнения); КонецПроцедуры @@ -6483,8 +6487,8 @@ КонецЦикла; Если ПараметрыВыполнения.МассивФайлов.Количество() <> 0 Тогда - // Собственно импорт - ЗарегистрироватьОписаниеОбработчика(ПараметрыВыполнения, ЭтотОбъект, "ИмпортФайловПослеЦиклаПослеВопросовВРекурсии"); + ОбработчикЗавершения = Новый ОписаниеОповещения("ИмпортФайловПослеЦиклаПослеВопросовВРекурсии", ЭтотОбъект); + ЗарегистрироватьОбработчикЗавершения(ПараметрыВыполнения, ОбработчикЗавершения); ИмпортФайловРекурсивно(ПараметрыВыполнения.Владелец, ПараметрыВыполнения.МассивФайлов, ПараметрыВыполнения); Если ПараметрыВыполнения.АсинхронныйДиалог.Открыт = Истина Тогда @@ -8075,7 +8079,7 @@ ПараметрыВыполнения.ИмяСправочникаХранилищаФайлов, РаботаСФайламиСлужебныйВызовСервера.ИмяСправочникаХраненияФайлов(ПараметрыВыполнения.ВладелецФайла))); - ОписаниеОповещенияОЗакрытии = ПодготовитьОбработчикДляДиалога(ПараметрыВыполнения.ОбработчикРезультата); + ОписаниеОповещенияОЗакрытии = ОбработчикЗавершения(ПараметрыВыполнения.ОбработчикРезультата); РаботаСФайламиКлиент.СкопироватьФайл(ПараметрыВыполнения.ВладелецФайла, Результат, ПараметрыФормы, ОписаниеОповещенияОЗакрытии); КонецПроцедуры @@ -8183,7 +8187,7 @@ Если ПараметрыВыполнения.НеОткрыватьКарточкуПослеСозданияИзФайла <> Истина Тогда ПараметрыФормы = Новый Структура("КарточкаОткрытаПослеСозданияФайла", Истина); - ОписаниеОповещенияОЗакрытии = ПодготовитьОбработчикДляДиалога(ПараметрыВыполнения.ОбработчикРезультата); + ОписаниеОповещенияОЗакрытии = ОбработчикЗавершения(ПараметрыВыполнения.ОбработчикРезультата); РаботаСФайламиКлиент.ОткрытьФормуФайла(Результат.ФайлСсылка,, ПараметрыФормы, ОписаниеОповещенияОЗакрытии); Иначе ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, Результат); @@ -8539,7 +8543,7 @@ // Продолжение процедуры (см. выше). Процедура ИмпортФайловРекурсивноЗадатьСледующийВопрос(ПараметрыВыполнения) - ПараметрыВыполнения.ОбработчикРезультата = ПодготовитьОбработчикДляДиалога(ПараметрыВыполнения.ОбработчикРезультата); + ПараметрыВыполнения.ОбработчикРезультата = ОбработчикЗавершения(ПараметрыВыполнения.ОбработчикРезультата); ПараметрыВыполнения.ПапкаДляДобавленияВВыбранныеФайлы = ПараметрыВыполнения.МассивПапокДляВопросаПапкаУжеСуществует[0]; ПараметрыВыполнения.МассивПапокДляВопросаПапкаУжеСуществует.Удалить(0); @@ -9471,11 +9475,11 @@ ПараметрыВыполнения.Вставить("Ссылка2", ВторойФайл); ПараметрыВыполнения.Вставить("ВладелецВерсии", ВладелецВерсии); - ЗаполнитьПараметрыСравнения(-1, ПараметрыВыполнения); + СравнениеВерсийАвтомат(-1, ПараметрыВыполнения); КонецПроцедуры -Процедура ЗаполнитьПараметрыСравнения(Результат, ПараметрыВыполнения) Экспорт +Процедура СравнениеВерсийАвтомат(Результат, ПараметрыВыполнения) Экспорт Если Результат <> -1 Тогда Если ПараметрыВыполнения.ТекущийШаг = 1 Тогда @@ -9511,7 +9515,7 @@ Если ПараметрыВыполнения.СпособСравненияВерсийФайлов = Неопределено Тогда // Первый вызов - еще не инициализирована настройка. - Обработчик = Новый ОписаниеОповещения("ЗаполнитьПараметрыСравнения", ЭтотОбъект, ПараметрыВыполнения); + Обработчик = Новый ОписаниеОповещения("СравнениеВерсийАвтомат", ЭтотОбъект, ПараметрыВыполнения); ОткрытьФорму("Обработка.РаботаСФайлами.Форма.ВыборСпособаСравненияВерсий", , ЭтотОбъект, , , , Обработчик); Возврат; @@ -9538,14 +9542,14 @@ КонецЕсли; Если ПараметрыВыполнения.ТекущийШаг = 3 Тогда - Обработчик = Новый ОписаниеОповещения("ЗаполнитьПараметрыСравнения", ЭтотОбъект, ПараметрыВыполнения); + Обработчик = Новый ОписаниеОповещения("СравнениеВерсийАвтомат", ЭтотОбъект, ПараметрыВыполнения); ПолучитьФайлВерсииВРабочийКаталог( Обработчик, ПараметрыВыполнения.ДанныеФайла1, ПараметрыВыполнения.ПолноеИмяФайла1); Возврат; КонецЕсли; Если ПараметрыВыполнения.ТекущийШаг = 4 Тогда - Обработчик = Новый ОписаниеОповещения("ЗаполнитьПараметрыСравнения", ЭтотОбъект, ПараметрыВыполнения); + Обработчик = Новый ОписаниеОповещения("СравнениеВерсийАвтомат", ЭтотОбъект, ПараметрыВыполнения); ПолучитьФайлВерсииВРабочийКаталог( Обработчик, ПараметрыВыполнения.ДанныеФайла2, ПараметрыВыполнения.ПолноеИмяФайла2); Возврат; @@ -9750,7 +9754,7 @@ // ** АсинхронныйДиалог - Структура - // *** Открыт - Булево - Истина если диалог был открыт. // *** ИмяПроцедуры - Строка - Имя процедуры обработчика вызывающего кода. -// *** Модуль - ОбщийМодуль, УправляемаяФорма - Модуль обработчика вызывающего кода. +// *** Модуль - ОбщийМодуль, ФормаКлиентскогоПриложения - Модуль обработчика вызывающего кода. // В этом случае ОписаниеОповещения формируется из ключей "ИмяПроцедуры" и "Модуль". // Внимание. Не все асинхронные процедуры поддерживают передачу типа Структура. Читайте состав типов. // @@ -9762,7 +9766,7 @@ Если Обработчик <> Неопределено Тогда ПараметрыОбработчика = Новый Структура; - ПараметрыОбработчика.Вставить("Обработчик", ПодготовитьОбработчикДляДиалога(Обработчик)); + ПараметрыОбработчика.Вставить("Обработчик", ОбработчикЗавершения(Обработчик)); ПараметрыОбработчика.Вставить("Результат", Результат); Обработчик = Новый ОписаниеОповещения("ВернутьРезультатПослеЗакрытияПростогоДиалога", ЭтотОбъект, ПараметрыОбработчика); ПоказатьПредупреждение(Обработчик, ТекстПредупреждения); @@ -9777,7 +9781,7 @@ Если Обработчик <> Неопределено Тогда ПараметрыОбработчика = Новый Структура; - ПараметрыОбработчика.Вставить("Обработчик", ПодготовитьОбработчикДляДиалога(Обработчик)); + ПараметрыОбработчика.Вставить("Обработчик", ОбработчикЗавершения(Обработчик)); ПараметрыОбработчика.Вставить("Результат", Результат); Обработчик = Новый ОписаниеОповещения("ВернутьРезультатПослеЗакрытияПростогоДиалога", ЭтотОбъект, ПараметрыОбработчика); ПоказатьЗначение(Обработчик, Значение); @@ -9807,43 +9811,58 @@ КонецПроцедуры // Записывает информацию, необходимую для подготовки обработчика асинхронного диалога. -Процедура ЗарегистрироватьОписаниеОбработчика(ПараметрыВыполнения, Модуль, ИмяПроцедуры) Экспорт +Процедура ЗарегистрироватьОбработчикЗавершения(ПараметрыВыполнения, ОбработчикЗавершения) Экспорт - ПараметрыВыполнения.Вставить("АсинхронныйДиалог", Новый Структура); - ПараметрыВыполнения.АсинхронныйДиалог.Вставить("Модуль", Модуль); - ПараметрыВыполнения.АсинхронныйДиалог.Вставить("ИмяПроцедуры", ИмяПроцедуры); - ПараметрыВыполнения.АсинхронныйДиалог.Вставить("Открыт", Ложь); - ПараметрыВыполнения.АсинхронныйДиалог.Вставить("РезультатКогдаНеОткрыт", Неопределено); + АсинхронныйДиалог = Новый Структура; + АсинхронныйДиалог.Вставить("Модуль", ОбработчикЗавершения.Модуль); + АсинхронныйДиалог.Вставить("ИмяПроцедуры", ОбработчикЗавершения.ИмяПроцедуры); + АсинхронныйДиалог.Вставить("Открыт", Ложь); + АсинхронныйДиалог.Вставить("РезультатКогдаНеОткрыт", Неопределено); + ПараметрыВыполнения.Вставить("АсинхронныйДиалог", АсинхронныйДиалог); КонецПроцедуры // Подготовка обработчика асинхронного диалога. -Функция ПодготовитьОбработчикДляДиалога(ОбработчикИлиСтруктура) Экспорт +Функция ОбработчикЗавершения(ОбработчикИлиСтруктура) + Обработчик = Неопределено; Если ТипЗнч(ОбработчикИлиСтруктура) = Тип("Структура") Тогда - // Рекурсивная регистрация всех обработчиков вызывающего кода. - Если ОбработчикИлиСтруктура.Свойство("ОбработчикРезультата") Тогда - ОбработчикИлиСтруктура.ОбработчикРезультата = ПодготовитьОбработчикДляДиалога(ОбработчикИлиСтруктура.ОбработчикРезультата); - КонецЕсли; - Если ОбработчикИлиСтруктура.Свойство("АсинхронныйДиалог") Тогда - // Регистрация открытого диалога. - ОбработчикИлиСтруктура.АсинхронныйДиалог.Открыт = Истина; - // Формирование обработчика (при этом фиксируется вся структура параметров). - Обработчик = Новый ОписаниеОповещения( - ОбработчикИлиСтруктура.АсинхронныйДиалог.ИмяПроцедуры, - ОбработчикИлиСтруктура.АсинхронныйДиалог.Модуль, + УстановитьПризнакБлокирующейФормы(ОбработчикИлиСтруктура, Истина); + АсинхронныйДиалог = Неопределено; + Если ОбработчикИлиСтруктура.Свойство("АсинхронныйДиалог", АсинхронныйДиалог) Тогда + Обработчик = Новый ОписаниеОповещения(АсинхронныйДиалог.ИмяПроцедуры, АсинхронныйДиалог.Модуль, ОбработчикИлиСтруктура); - Иначе - Обработчик = Неопределено; КонецЕсли; Иначе Обработчик = ОбработчикИлиСтруктура; КонецЕсли; - Возврат Обработчик; КонецФункции +Процедура УстановитьПризнакБлокирующейФормы(ПараметрыВыполнения, Значение) Экспорт + + // Рекурсивная регистрация всех обработчиков вызывающего кода. + Если ПараметрыВыполнения.Свойство("ОбработчикРезультата") Тогда + ПараметрыВыполнения.ОбработчикРезультата = ОбработчикЗавершения(ПараметрыВыполнения.ОбработчикРезультата); + КонецЕсли; + АсинхронныйДиалог = Неопределено; + Если ПараметрыВыполнения.Свойство("АсинхронныйДиалог", АсинхронныйДиалог) Тогда + АсинхронныйДиалог.Открыт = Значение; + КонецЕсли; + +КонецПроцедуры + +Функция БлокирующаяФормаОткрыта(ПараметрыВыполнения) Экспорт + + АсинхронныйДиалог = Неопределено; + Если ПараметрыВыполнения.Свойство("АсинхронныйДиалог", АсинхронныйДиалог) Тогда + Возврат АсинхронныйДиалог.Открыт; + КонецЕсли; + Возврат Ложь; + +КонецФункции + // Подготовка обработчика прямого вызова без открытия диалога. Функция ПодготовитьОбработчикДляПрямогоВызова(ОбработчикИлиСтруктура, Результат) diff --git a/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl index 80619bb9a..b0e4f115b 100644 --- a/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl +++ b/SSL/src/CommonModules/РассылкаОтчетов/Module.bsl @@ -812,43 +812,6 @@ КонецПроцедуры -//////////////////////////////////////////////////////////////////////////////// -// Обновление ИБ. - -// Предназначена для перевода паролей в безопасное хранилище. -// Используется в обработчике обновления ИБ. -Процедура ПеренестиПаролиВБезопасноеХранилище() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | РассылкиОтчетов.Ссылка, РассылкиОтчетов.УдалитьFTPПароль, РассылкиОтчетов.УдалитьПарольАрхива - |ИЗ - | Справочник.РассылкиОтчетов КАК РассылкиОтчетов"; - - РезультатЗапроса = Запрос.Выполнить().Выбрать(); - Пока РезультатЗапроса.Следующий() Цикл - Если Не ПустаяСтрока(РезультатЗапроса.УдалитьFTPПароль) - Или Не ПустаяСтрока(РезультатЗапроса.УдалитьПарольАрхива) Тогда - НачатьТранзакцию(); - Попытка - УстановитьПривилегированныйРежим(Истина); - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(РезультатЗапроса.Ссылка, РезультатЗапроса.УдалитьFTPПароль, "FTPПароль"); - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(РезультатЗапроса.Ссылка, РезультатЗапроса.УдалитьПарольАрхива, "ПарольАрхива"); - УстановитьПривилегированныйРежим(Ложь); - Рассылка = РезультатЗапроса.Ссылка.ПолучитьОбъект(); - Рассылка.УдалитьFTPПароль = ""; - Рассылка.УдалитьПарольАрхива = ""; - Рассылка.Записать(); - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - КонецПопытки; - КонецЕсли; - КонецЦикла; - -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // Панели администрирования. @@ -863,19 +826,6 @@ // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - Обработчик = Обработчики.Добавить(); - Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ОбщиеДанные = Ложь; - Обработчик.Версия = "2.3.3.30"; - Обработчик.Комментарий = НСтр("ru = 'Отключает неиспользуемые регламентные задания рассылок отчетов.'"); - Обработчик.Идентификатор = Новый УникальныйИдентификатор("b1467977-94b3-4282-9ece-09f127e54775"); - Обработчик.Процедура = "РассылкаОтчетов.АктуализироватьСписокРегламентныхЗаданий"; - Обработчик.ОчередьОтложеннойОбработки = 1; - Обработчик.ПроцедураЗаполненияДанныхОбновления = "РассылкаОтчетов.ЗарегистрироватьДанныеДляАктуализацииСпискаРегламентныхЗаданий"; - Обработчик.ЧитаемыеОбъекты = "Справочник.РассылкиОтчетов"; - Обработчик.ИзменяемыеОбъекты = "РегламентноеЗадание.РассылкаОтчетов"; - Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика(); - Обработчик = Обработчики.Добавить(); Обработчик.НачальноеЗаполнение = Истина; Обработчик.РежимВыполнения = "Оперативно"; @@ -1005,70 +955,6 @@ //////////////////////////////////////////////////////////////////////////////// // Обновление информационной базы. -// [2.3.3.30] Регистрирует данные для выполнения обработчика "АктуализироватьСписокРегламентныхЗаданий". -Процедура ЗарегистрироватьДанныеДляАктуализацииСпискаРегламентныхЗаданий(Параметры) Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ - | РассылкиОтчетов.Ссылка КАК Ссылка - |ИЗ - | Справочник.РассылкиОтчетов КАК РассылкиОтчетов - |ГДЕ - | НЕ(РассылкиОтчетов.Подготовлена - | И РассылкиОтчетов.ВыполнятьПоРасписанию) - | И РассылкиОтчетов.ЭтоГруппа = ЛОЖЬ"; - МассивСсылок = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); - ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, МассивСсылок); - -КонецПроцедуры - -// [2.3.3.30] Отключает не используемые регламентные задания рассылок отчетов. -Процедура АктуализироватьСписокРегламентныхЗаданий(Параметры) Экспорт - - РассылкиОтчетов = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.РассылкиОтчетов"); - ПроблемныхОбъектов = 0; - ОбъектовОбработано = 0; - - Пока РассылкиОтчетов.Следующий() Цикл - Попытка - Если РассылкиОтчетов.Ссылка <> NULL И РассылкиОтчетов.Ссылка.РегламентноеЗадание <> NULL Тогда - Задание = РегламентныеЗаданияСервер.Задание(РассылкиОтчетов.Ссылка.РегламентноеЗадание); - Если Задание <> Неопределено И Задание.Использование Тогда - Задание.Использование = Ложь; - Задание.Записать(); - КонецЕсли; - КонецЕсли; - ОбъектовОбработано = ОбъектовОбработано + 1; - ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(РассылкиОтчетов.Ссылка); - Исключение - // Если не удалось обработать какую-либо рассылку отчетов, повторяем попытку снова. - ПроблемныхОбъектов = ПроблемныхОбъектов + 1; - - ТипОбъекта = Строка(ТипЗнч(РассылкиОтчетов.Ссылка.РегламентноеЗадание)); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось обработать регламентное задание рассылки отчетов: %1 с типом %2 по причине: %3'"), - Строка(РассылкиОтчетов.Ссылка), ТипОбъекта, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение, - Метаданные.Справочники.РассылкиОтчетов, РассылкиОтчетов.Ссылка, ТекстСообщения); - КонецПопытки; - КонецЦикла; - - Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.РассылкиОтчетов"); - - Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Процедуре АктуализироватьСписокРегламентныхЗаданий не удалось обработать некоторые регламентные задания рассылки отчетов (пропущены): %1'"), - ПроблемныхОбъектов); - ВызватьИсключение ТекстСообщения; - Иначе - ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация, - Метаданные.Справочники.РассылкиОтчетов,, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Процедура АктуализироватьСписокРегламентныхЗаданий обработала очередную порцию рассылки отчетов: %1'"), - ОбъектовОбработано)); - КонецЕсли; - -КонецПроцедуры - // Вызывается при переходе на версию конфигурации 3.0.2.128 и при начальном заполнении. Процедура ЗаполнитьНаименованиеПредопределенногоЭлементаЛичныеРассылки() Экспорт @@ -1437,7 +1323,7 @@ Если ПерсонализацияВозможна Тогда ПользовательскиеНастройкиКД = ПараметрыОтчета.КомпоновщикНастроекКД.ПользовательскиеНастройки; Фильтр = Новый Структура("Использование, Значение", Истина, "[Получатель]"); - Найденные = ОтчетыКлиентСервер.НайтиНастройки(ПользовательскиеНастройкиКД.Элементы, Фильтр); + Найденные = ОтчетыКлиентСервер.ЭлементыНастроекОтобранные(ПользовательскиеНастройкиКД, Фильтр); Для Каждого ПользовательскаяНастройкаКД Из Найденные Цикл ИдентификаторКД = ПользовательскиеНастройкиКД.ПолучитьИдентификаторПоОбъекту(ПользовательскаяНастройкаКД); Если ИдентификаторКД <> Неопределено Тогда diff --git a/SSL/src/CommonModules/РассылкаОтчетовКлиент/Module.bsl b/SSL/src/CommonModules/РассылкаОтчетовКлиент/Module.bsl index 8310c2cc2..42e8ac2e6 100644 --- a/SSL/src/CommonModules/РассылкаОтчетовКлиент/Module.bsl +++ b/SSL/src/CommonModules/РассылкаОтчетовКлиент/Module.bsl @@ -11,7 +11,7 @@ // Обработчик команды формы отчета. // // Параметры: -// Форма - УправляемаяФорма - Форма отчета. +// Форма - ФормаКлиентскогоПриложения - Форма отчета. // Команда - КомандаФормы - Команда, которая была вызвана. // // Места использования: @@ -24,7 +24,7 @@ // Обработчик команды формы отчета. // // Параметры: -// Форма - УправляемаяФорма - Форма отчета. +// Форма - ФормаКлиентскогоПриложения - Форма отчета. // Команда - КомандаФормы - Команда, которая была вызвана. // // Места использования: @@ -42,7 +42,7 @@ // Обработчик команды формы отчета. // // Параметры: -// Форма - УправляемаяФорма - Форма отчета. +// Форма - ФормаКлиентскогоПриложения - Форма отчета. // Команда - КомандаФормы - Команда, которая была вызвана. // // Места использования: @@ -59,9 +59,9 @@ // Обработчик выбора формы отчета. // // Параметры: -// Форма - УправляемаяФорма - Форма отчета. +// Форма - ФормаКлиентскогоПриложения - Форма отчета. // ВыбранноеЗначение - Произвольный - Результат выбора в подчиненной форме. -// ИсточникВыбора - УправляемаяФорма - Форма, где осуществлен выбор. +// ИсточникВыбора - ФормаКлиентскогоПриложения - Форма, где осуществлен выбор. // Результат - Булево - Истина, если результат выбора обработан. // // Места использования: @@ -234,7 +234,7 @@ // Открывает рассылку отчетов из формы отчета. // // Параметры: -// Форма - УправляемаяФорма - Форма отчета. +// Форма - ФормаКлиентскогоПриложения - Форма отчета. // Ссылка - СправочникСсылка.РассылкиОтчетов - Необязательный. Ссылка рассылки отчетов. // Процедура ОткрытьРассылкуИзФормыОтчета(Форма, Ссылка = Неопределено) diff --git a/SSL/src/CommonModules/РегламентныеЗаданияСервер/Module.bsl b/SSL/src/CommonModules/РегламентныеЗаданияСервер/Module.bsl index 0a7467ef7..f634816f1 100644 --- a/SSL/src/CommonModules/РегламентныеЗаданияСервер/Module.bsl +++ b/SSL/src/CommonModules/РегламентныеЗаданияСервер/Module.bsl @@ -70,14 +70,13 @@ Если ОбщегоНазначения.РазделениеВключено() Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда Если КопияОтбора.Свойство("УникальныйИдентификатор") И НЕ КопияОтбора.Свойство("Идентификатор") Тогда КопияОтбора.Вставить("Идентификатор", КопияОтбора.УникальныйИдентификатор); КонецЕсли; - Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда ОбластьДанных = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); КопияОтбора.Вставить("ОбластьДанных", ОбластьДанных); @@ -117,19 +116,10 @@ КопияОтбора.Идентификатор = Новый УникальныйИдентификатор(КопияОтбора.Идентификатор); КонецЕсли; - МодульОчередьЗаданийСлужебный = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебный"); - СправочникДляЗадания = МодульОчередьЗаданийСлужебный.СправочникОчередьЗаданий(); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ЭтоРазделеннаяКонфигурация = МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация(); - Иначе - ЭтоРазделеннаяКонфигурация = Ложь; - КонецЕсли; - - Если ЭтоРазделеннаяКонфигурация Тогда - МодульОчередьЗаданийСлужебныйРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебныйРазделениеДанных"); - ПереопределенныйСправочник = МодульОчередьЗаданийСлужебныйРазделениеДанных.ПриВыбореСправочникаДляЗадания(КопияОтбора); + СправочникДляЗадания = МодульОчередьЗаданий.СправочникОчередьЗаданий(); + Если МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация() Тогда + МодульОчередьЗаданийРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийРазделениеДанных"); + ПереопределенныйСправочник = МодульОчередьЗаданийРазделениеДанных.ПриВыбореСправочникаДляЗадания(КопияОтбора); Если ПереопределенныйСправочник <> Неопределено Тогда СправочникДляЗадания = ПереопределенныйСправочник; КонецЕсли; @@ -187,7 +177,8 @@ Если ОбщегоНазначения.РазделениеВключено() Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ПараметрыЗадания = Новый Структура; @@ -207,19 +198,10 @@ ПараметрыЗадания.Вставить("ИмяМетода", Идентификатор.ИмяМетода); КонецЕсли; ИначеЕсли ТипЗнч(Идентификатор) = Тип("УникальныйИдентификатор") Тогда - МодульОчередьЗаданийСлужебный = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебный"); - СправочникДляЗадания = МодульОчередьЗаданийСлужебный.СправочникОчередьЗаданий(); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ЭтоРазделеннаяКонфигурация = МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация(); - Иначе - ЭтоРазделеннаяКонфигурация = Ложь; - КонецЕсли; - - Если ЭтоРазделеннаяКонфигурация Тогда - МодульОчередьЗаданийСлужебныйРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебныйРазделениеДанных"); - ПереопределенныйСправочник = МодульОчередьЗаданийСлужебныйРазделениеДанных.ПриВыбореСправочникаДляЗадания(ПараметрыЗадания); + СправочникДляЗадания = МодульОчередьЗаданий.СправочникОчередьЗаданий(); + Если МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация() Тогда + МодульОчередьЗаданийРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийРазделениеДанных"); + ПереопределенныйСправочник = МодульОчередьЗаданийРазделениеДанных.ПриВыбореСправочникаДляЗадания(ПараметрыЗадания); Если ПереопределенныйСправочник <> Неопределено Тогда СправочникДляЗадания = ПереопределенныйСправочник; КонецЕсли; @@ -282,10 +264,10 @@ Если ОбщегоНазначения.РазделениеВключено() Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ОбластьДанных = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); ПараметрыЗадания.Вставить("ОбластьДанных", ОбластьДанных); КонецЕсли; @@ -385,7 +367,7 @@ Если ОбщегоНазначения.РазделениеВключено() Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ПараметрыЗадания = Новый Структура; @@ -398,19 +380,12 @@ ИмяМетода = Идентификатор.ИмяМетода; ПараметрыЗадания.Вставить("ИмяМетода", ИмяМетода); ИначеЕсли ТипЗнч(Идентификатор) = Тип("УникальныйИдентификатор") Тогда - МодульОчередьЗаданийСлужебный = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебный"); - СправочникДляЗадания = МодульОчередьЗаданийСлужебный.СправочникОчередьЗаданий(); + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + СправочникДляЗадания = МодульОчередьЗаданий.СправочникОчередьЗаданий(); - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ЭтоРазделеннаяКонфигурация = МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация(); - Иначе - ЭтоРазделеннаяКонфигурация = Ложь; - КонецЕсли; - - Если ЭтоРазделеннаяКонфигурация Тогда - МодульОчередьЗаданийСлужебныйРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебныйРазделениеДанных"); - ПереопределенныйСправочник = МодульОчередьЗаданийСлужебныйРазделениеДанных.ПриВыбореСправочникаДляЗадания(ПараметрыЗадания); + Если МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация() Тогда + МодульОчередьЗаданийРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийРазделениеДанных"); + ПереопределенныйСправочник = МодульОчередьЗаданийРазделениеДанных.ПриВыбореСправочникаДляЗадания(ПараметрыЗадания); Если ПереопределенныйСправочник <> Неопределено Тогда СправочникДляЗадания = ПереопределенныйСправочник; КонецЕсли; @@ -484,7 +459,7 @@ Если ОбщегоНазначения.РазделениеВключено() Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ПараметрыПоиска = Новый Структура; @@ -525,19 +500,11 @@ КонецЕсли; ИначеЕсли ТипЗнч(Идентификатор) = Тип("УникальныйИдентификатор") Тогда - МодульОчередьЗаданийСлужебный = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебный"); - СправочникДляЗадания = МодульОчередьЗаданийСлужебный.СправочникОчередьЗаданий(); - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ЭтоРазделеннаяКонфигурация = МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация(); - Иначе - ЭтоРазделеннаяКонфигурация = Ложь; - КонецЕсли; - - Если ЭтоРазделеннаяКонфигурация Тогда - МодульОчередьЗаданийСлужебныйРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийСлужебныйРазделениеДанных"); - ПереопределенныйСправочник = МодульОчередьЗаданийСлужебныйРазделениеДанных.ПриВыбореСправочникаДляЗадания(ПараметрыПоиска); + МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); + СправочникДляЗадания = МодульОчередьЗаданий.СправочникОчередьЗаданий(); + Если МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация() Тогда + МодульОчередьЗаданийРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданийРазделениеДанных"); + ПереопределенныйСправочник = МодульОчередьЗаданийРазделениеДанных.ПриВыбореСправочникаДляЗадания(ПараметрыПоиска); Если ПереопределенныйСправочник <> Неопределено Тогда СправочникДляЗадания = ПереопределенныйСправочник; КонецЕсли; @@ -661,6 +628,7 @@ ПараметрыЗадания = Новый Структура; ИдентификаторТипЗнч = ТипЗнч(Идентификатор); + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); Если ИдентификаторТипЗнч = Тип("ОбъектМетаданных") Тогда ИмяМетода = Идентификатор.ИмяМетода; @@ -677,7 +645,7 @@ ОбластьДанных = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); ПараметрыЗадания.Вставить("ОбластьДанных", ОбластьДанных); - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ОчередьЗаданий") Тогда МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий"); СписокЗаданий = МодульОчередьЗаданий.ПолучитьЗадания(ПараметрыЗадания); Для Каждого Задание Из СписокЗаданий Цикл @@ -938,10 +906,15 @@ Процедура УстановитьИспользованиеПредопределенногоРегламентногоЗадания(ЗаданиеМетаданные, Использование) Экспорт Если ОбщегоНазначения.РазделениеВключено() Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.УстановитьИспользованиеПредопределенногоРегламентногоЗадания(ЗаданиеМетаданные, Использование); - КонецЕсли; + Отбор = Новый Структура; + Отбор.Вставить("Метаданные", ЗаданиеМетаданные); + Параметры = Новый Структура; + Параметры.Вставить("Использование", Истина); + Задания = НайтиЗадания(Отбор); + Для Каждого Задание Из Задания Цикл + ИзменитьЗадание(Задание.УникальныйИдентификатор, Параметры); + Прервать; + КонецЦикла; Иначе Задание = РегламентныеЗадания.НайтиПредопределенное(ЗаданиеМетаданные); diff --git a/SSL/src/CommonModules/РегламентныеЗаданияСлужебный/Module.bsl b/SSL/src/CommonModules/РегламентныеЗаданияСлужебный/Module.bsl index f5c6e8e02..7d07d0a0f 100644 --- a/SSL/src/CommonModules/РегламентныеЗаданияСлужебный/Module.bsl +++ b/SSL/src/CommonModules/РегламентныеЗаданияСлужебный/Module.bsl @@ -223,7 +223,7 @@ // См. РаботаВМоделиСервисаПереопределяемый.ПриЗаполненииТаблицыПараметровИБ. Процедура ПриЗаполненииТаблицыПараметровИБ(Знач ТаблицаПараметров) Экспорт - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); МодульРаботаВМоделиСервиса.ДобавитьКонстантуВТаблицуПараметровИБ(ТаблицаПараметров, "МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания"); МодульРаботаВМоделиСервиса.ДобавитьКонстантуВТаблицуПараметровИБ(ТаблицаПараметров, "МаксимальноеКоличествоИсполняющихФоновыхЗаданий"); @@ -234,11 +234,6 @@ // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.1.24"; - Обработчик.Процедура = "РегламентныеЗаданияСлужебный.УстановитьИспользованиеРегламентныхЗаданийПоФункциональнымОпциям"; - Обработчик.РежимВыполнения = "Монопольно"; - Обработчик = Обработчики.Добавить(); Обработчик.Версия = "2.3.3.12"; Обработчик.НачальноеЗаполнение = Истина; diff --git a/SSL/src/CommonModules/РезервноеКопированиеИБВызовСервера/Module.bsl b/SSL/src/CommonModules/РезервноеКопированиеИБВызовСервера/Module.bsl index ba4ed7b8d..a6fb18b42 100644 --- a/SSL/src/CommonModules/РезервноеКопированиеИБВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/РезервноеКопированиеИБВызовСервера/Module.bsl @@ -28,11 +28,11 @@ Функция ДатаСледующегоАвтоматическогоКопирования(ОтложитьРезервноеКопирование = Ложь) Экспорт Результат = Новый Структура; - НастройкиРезервногоКопирования = РезервноеКопированиеИБСервер.НастройкиРезервногоКопирования(); + Настройки = РезервноеКопированиеИБСервер.НастройкиРезервногоКопирования(); ТекущаяДата = ТекущаяДатаСеанса(); - РасписаниеКопирования = НастройкиРезервногоКопирования.РасписаниеКопирования; + РасписаниеКопирования = Настройки.РасписаниеКопирования; ПериодПовтораВТечениеДня = РасписаниеКопирования.ПериодПовтораВТечениеДня; ПериодПовтораДней = РасписаниеКопирования.ПериодПовтораДней; @@ -47,8 +47,8 @@ КонецЕсли; Результат.Вставить("МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования", Значение); - ЗаполнитьЗначенияСвойств(НастройкиРезервногоКопирования, Результат); - РезервноеКопированиеИБСервер.УстановитьПараметрыРезервногоКопирования(НастройкиРезервногоКопирования); + ЗаполнитьЗначенияСвойств(Настройки, Результат); + РезервноеКопированиеИБСервер.УстановитьНастройкиРезервногоКопирования(Настройки); Возврат Результат; diff --git a/SSL/src/CommonModules/РезервноеКопированиеИБКлиент/Module.bsl b/SSL/src/CommonModules/РезервноеКопированиеИБКлиент/Module.bsl index 02fdbdca6..ca75e2aed 100644 --- a/SSL/src/CommonModules/РезервноеКопированиеИБКлиент/Module.bsl +++ b/SSL/src/CommonModules/РезервноеКопированиеИБКлиент/Module.bsl @@ -38,26 +38,19 @@ Возврат; КонецЕсли; - ФиксированныеПараметрыРезервногоКопированияИБ = Неопределено; - Если Не ПараметрыРаботы.Свойство("РезервноеКопированиеИБ", ФиксированныеПараметрыРезервногоКопированияИБ) Тогда - Возврат; - КонецЕсли; - Если ТипЗнч(ФиксированныеПараметрыРезервногоКопированияИБ) <> Тип("ФиксированнаяСтруктура") Тогда + Настройки = ПараметрыРаботы.РезервноеКопированиеИБ; + Если Не ЗначениеЗаполнено(Настройки) Тогда Возврат; КонецЕсли; - // Заполнение глобальных переменных. - ЗаполнитьЗначенияГлобальныхПеременных(ФиксированныеПараметрыРезервногоКопированияИБ); - - ПроверитьРезервноеКопированиеИБ(ФиксированныеПараметрыРезервногоКопированияИБ); - - Если ФиксированныеПараметрыРезервногоКопированияИБ.ПроведеноВосстановление Тогда + ЗаполнитьЗначенияГлобальныхПеременных(Настройки); + ПроверитьРезервноеКопированиеИБ(Настройки); + Если Настройки.ПроведеноВосстановление Тогда ТекстОповещения = НСтр("ru = 'Восстановление данных проведено успешно.'"); ПоказатьОповещениеПользователя(НСтр("ru = 'Данные восстановлены.'"), , ТекстОповещения); КонецЕсли; - ВариантОповещения = ФиксированныеПараметрыРезервногоКопированияИБ.ПараметрОповещения; - + ВариантОповещения = Настройки.ПараметрОповещения; Если ВариантОповещения = "НеОповещать" Тогда Возврат; КонецЕсли; @@ -134,18 +127,16 @@ #Область СлужебныеПроцедурыИФункции -// Заполнение глобальных переменных. -Процедура ЗаполнитьЗначенияГлобальныхПеременных(ФиксированныеПараметрыРезервногоКопированияИБ) Экспорт +Процедура ЗаполнитьЗначенияГлобальныхПеременных(Настройки) Экспорт - ИмяПараметра = "СтандартныеПодсистемы.ПараметрыРезервногоКопированияИБ"; - ПараметрыПриложения.Вставить(ИмяПараметра, Новый Структура); - ПараметрыПриложения[ИмяПараметра].Вставить("ПроцессВыполняется"); - ПараметрыПриложения[ИмяПараметра].Вставить("МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования"); - ПараметрыПриложения[ИмяПараметра].Вставить("ДатаПоследнегоРезервногоКопирования"); - ПараметрыПриложения[ИмяПараметра].Вставить("ПараметрОповещения"); - - ЗаполнитьЗначенияСвойств(ПараметрыПриложения[ИмяПараметра], ФиксированныеПараметрыРезервногоКопированияИБ); - ПараметрыПриложения[ИмяПараметра].Вставить("РасписаниеЗначение", ОбщегоНазначенияКлиентСервер.СтруктураВРасписание(ФиксированныеПараметрыРезервногоКопированияИБ.РасписаниеКопирования)); + Результат = Новый Структура; + Результат.Вставить("ПроцессВыполняется"); + Результат.Вставить("МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования"); + Результат.Вставить("ДатаПоследнегоРезервногоКопирования"); + Результат.Вставить("ПараметрОповещения"); + ЗаполнитьЗначенияСвойств(Результат, Настройки); + Результат.Вставить("РасписаниеЗначение", ОбщегоНазначенияКлиентСервер.СтруктураВРасписание(Настройки.РасписаниеКопирования)); + ПараметрыПриложения.Вставить("СтандартныеПодсистемы.ПараметрыРезервногоКопированияИБ", Результат); КонецПроцедуры @@ -187,32 +178,30 @@ // Возвращаемое значение - Булево - Истина, если необходима, Ложь - иначе. // Функция НеобходимостьАвтоматическогоРезервногоКопирования() - Перем РасписаниеЗначение; - ПараметрыРезервногоКопированияИБ = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыРезервногоКопированияИБ"]; - Если ПараметрыРезервногоКопированияИБ = Неопределено Тогда + Настройки = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыРезервногоКопированияИБ"]; + Если Настройки = Неопределено Тогда Возврат Ложь; КонецЕсли; - Если ПараметрыРезервногоКопированияИБ.ПроцессВыполняется - ИЛИ НЕ ПараметрыРезервногоКопированияИБ.Свойство("МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования") - ИЛИ НЕ ПараметрыРезервногоКопированияИБ.Свойство("РасписаниеЗначение", РасписаниеЗначение) - ИЛИ НЕ ПараметрыРезервногоКопированияИБ.Свойство("ДатаПоследнегоРезервногоКопирования") Тогда + РасписаниеЗначение = Неопределено; + Если Настройки.ПроцессВыполняется + ИЛИ НЕ Настройки.Свойство("МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования") + ИЛИ НЕ Настройки.Свойство("РасписаниеЗначение", РасписаниеЗначение) + ИЛИ НЕ Настройки.Свойство("ДатаПоследнегоРезервногоКопирования") Тогда Возврат Ложь; КонецЕсли; - Если РасписаниеЗначение = Неопределено Тогда Возврат Ложь; КонецЕсли; ДатаПроверки = ОбщегоНазначенияКлиент.ДатаСеанса(); - - ДатаСледующегоКопирования = ПараметрыРезервногоКопированияИБ.МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования; + ДатаСледующегоКопирования = Настройки.МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования; Если ДатаСледующегоКопирования = '29990101' Или ДатаСледующегоКопирования > ДатаПроверки Тогда Возврат Ложь; КонецЕсли; - Возврат РасписаниеЗначение.ТребуетсяВыполнение(ДатаПроверки, ПараметрыРезервногоКопированияИБ.ДатаПоследнегоРезервногоКопирования); + Возврат РасписаниеЗначение.ТребуетсяВыполнение(ДатаПроверки, Настройки.ДатаПоследнегоРезервногоКопирования); КонецФункции // Запускает резервное копирование по расписанию. @@ -236,10 +225,9 @@ ВыполнитьРезервноеКопирование = РезультатВопроса = "Да" Или РезультатВопроса = КодВозвратаДиалога.Таймаут; ОтложитьРезервноеКопирование = РезультатВопроса = "Отложить"; - ДатаСледующегоАвтоматическогоКопирования = РезервноеКопированиеИБВызовСервера.ДатаСледующегоАвтоматическогоКопирования( - ОтложитьРезервноеКопирование); - ЗаполнитьЗначенияСвойств(ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыРезервногоКопированияИБ"], - ДатаСледующегоАвтоматическогоКопирования); + СледующаяДата = РезервноеКопированиеИБВызовСервера.ДатаСледующегоАвтоматическогоКопирования(ОтложитьРезервноеКопирование); + Настройки = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыРезервногоКопированияИБ"]; + Настройки.МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования = СледующаяДата; Если ВыполнитьРезервноеКопирование Тогда ПараметрыФормы = Новый Структура("РежимРаботы", "ВыполнитьСейчас"); diff --git a/SSL/src/CommonModules/РезервноеКопированиеИБСервер/Module.bsl b/SSL/src/CommonModules/РезервноеКопированиеИБСервер/Module.bsl index c2e001c1b..f913d8e06 100644 --- a/SSL/src/CommonModules/РезервноеКопированиеИБСервер/Module.bsl +++ b/SSL/src/CommonModules/РезервноеКопированиеИБСервер/Module.bsl @@ -8,45 +8,18 @@ #Область СлужебныйПрограммныйИнтерфейс -// Возвращает начальное заполнение настроек автоматического резервного копирования. +// Сохраняет параметры резервного копирования. // -// Параметры: -// СохранятьПараметры - сохранять или нет параметры в хранилище настроек. -// -// Возвращаемое значение - Структура - начальное заполнение параметров резервного копирования. -// -Функция НачальноеЗаполнениеНастроекРезервногоКопирования(СохранятьПараметры = Истина) Экспорт - - Параметры = Новый Структура; - - Параметры.Вставить("ВыполнятьАвтоматическоеРезервноеКопирование", Ложь); - Параметры.Вставить("РезервноеКопированиеНастроено", Ложь); - - Параметры.Вставить("ДатаПоследнегоОповещения", '00010101'); - Параметры.Вставить("ДатаПоследнегоРезервногоКопирования", '00010101'); - Параметры.Вставить("МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования", '29990101'); - - Параметры.Вставить("РасписаниеКопирования", ОбщегоНазначенияКлиентСервер.РасписаниеВСтруктуру(Новый РасписаниеРегламентногоЗадания)); - Параметры.Вставить("КаталогХраненияРезервныхКопий", ""); - Параметры.Вставить("КаталогХраненияРезервныхКопийПриРучномЗапуске", ""); // При ручном выполнении - Параметры.Вставить("ПроведеноКопирование", Ложь); - Параметры.Вставить("ПроведеноВосстановление", Ложь); - Параметры.Вставить("РезультатКопирования", Неопределено); - Параметры.Вставить("ИмяФайлаРезервнойКопии", ""); - Параметры.Вставить("ВариантВыполнения", "ПоРасписанию"); - Параметры.Вставить("ПроцессВыполняется", Ложь); - Параметры.Вставить("АдминистраторИБ", ""); - Параметры.Вставить("ПарольАдминистратораИБ", ""); - Параметры.Вставить("ПараметрыУдаления", ПараметрыУдаленияРезервныхКопийПоУмолчанию()); - Параметры.Вставить("РучнойЗапускПоследнегоРезервногоКопирования", Истина); - - Если СохранятьПараметры Тогда - УстановитьПараметрыРезервногоКопирования(Параметры); +Процедура УстановитьНастройкиРезервногоКопирования(Знач Настройки, Знач Пользователь = Неопределено) Экспорт + Если Не ЗначениеЗаполнено(Настройки) Тогда + Настройки = НовыеНастройкиРезервногоКопирования(); + КонецЕсли; + ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("ПараметрыРезервногоКопирования", "", Настройки); + Если Пользователь <> Неопределено Тогда + ПараметрыКопирования = Новый Структура("Пользователь", Пользователь); + Константы.ПараметрыРезервногоКопирования.Установить(Новый ХранилищеЗначения(ПараметрыКопирования)); КонецЕсли; - - Возврат Параметры; - -КонецФункции +КонецПроцедуры // Возвращает текущую настройку резервного копирования строкой. // Два варианта использования функции - или с передачей всех параметров или без параметров. @@ -181,45 +154,17 @@ КонецПроцедуры -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.15"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.Процедура = "РезервноеКопированиеИБСервер.ОбновитьПараметрыРезервногоКопирования_2_2_1_15"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.33"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.Процедура = "РезервноеКопированиеИБСервер.ОбновитьПараметрыРезервногоКопирования_2_2_1_33"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.2.33"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.Процедура = "РезервноеКопированиеИБСервер.ОбновитьПараметрыРезервногоКопирования_2_2_2_33"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.4.36"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.Процедура = "РезервноеКопированиеИБСервер.ОбновитьПараметрыРезервногоКопирования_2_2_4_36"; - -КонецПроцедуры - // См. РаботаВБезопасномРежимеПереопределяемый.ПриВключенииИспользованияПрофилейБезопасности. Процедура ПриВключенииИспользованияПрофилейБезопасности() Экспорт - ПараметрыРезервногоКопирования = НастройкиРезервногоКопирования(); - - Если ПараметрыРезервногоКопирования = Неопределено Тогда + Настройки = НастройкиРезервногоКопирования(); + Если Настройки = Неопределено Тогда Возврат; КонецЕсли; - Если ПараметрыРезервногоКопирования.Свойство("ПарольАдминистратораИБ") Тогда - - ПараметрыРезервногоКопирования.ПарольАдминистратораИБ = ""; - УстановитьПараметрыРезервногоКопирования(ПараметрыРезервногоКопирования); - + Если Настройки.Свойство("ПарольАдминистратораИБ") Тогда + Настройки.ПарольАдминистратораИБ = ""; + УстановитьНастройкиРезервногоКопирования(Настройки); КонецЕсли; КонецПроцедуры @@ -249,48 +194,34 @@ КонецФункции -// Возвращает значение периода по заданному интервалу времени. +// Возвращает начальное заполнение настроек автоматического резервного копирования. // -// Параметры: -// ИнтервалВремени - Число - интервал времени в секундах. -// -// Возвращаемое значение - Структура с полями: -// ТипПериода - Строка - тип периода: День, Неделя, Месяц, Год. -// ЗначениеПериода - Число - длина периода для заданного типа. -// -Функция ЗначениеПериодаПоИнтервалуВремени(ИнтервалВремени) +Функция НовыеНастройкиРезервногоКопирования() - ВозвращаемаяСтруктура = Новый Структура("ТипПериода, ЗначениеПериода", "Месяц", 1); + Параметры = Новый Структура; - Если ИнтервалВремени = Неопределено Тогда - Возврат ВозвращаемаяСтруктура; - КонецЕсли; + Параметры.Вставить("ВыполнятьАвтоматическоеРезервноеКопирование", Ложь); + Параметры.Вставить("РезервноеКопированиеНастроено", Ложь); - Если Цел(ИнтервалВремени / (3600 * 24 * 365)) > 0 Тогда - ВозвращаемаяСтруктура.ТипПериода = "Год"; - ВозвращаемаяСтруктура.ЗначениеПериода = ИнтервалВремени / (3600 * 24 * 365); - Возврат ВозвращаемаяСтруктура; - КонецЕсли; + Параметры.Вставить("ДатаПоследнегоОповещения", '00010101'); + Параметры.Вставить("ДатаПоследнегоРезервногоКопирования", '00010101'); + Параметры.Вставить("МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования", '29990101'); - Если Цел(ИнтервалВремени / (3600 * 24 * 30)) > 0 Тогда - ВозвращаемаяСтруктура.ТипПериода = "Месяц"; - ВозвращаемаяСтруктура.ЗначениеПериода = ИнтервалВремени / (3600 * 24 * 30); - Возврат ВозвращаемаяСтруктура; - КонецЕсли; + Параметры.Вставить("РасписаниеКопирования", ОбщегоНазначенияКлиентСервер.РасписаниеВСтруктуру(Новый РасписаниеРегламентногоЗадания)); + Параметры.Вставить("КаталогХраненияРезервныхКопий", ""); + Параметры.Вставить("КаталогХраненияРезервныхКопийПриРучномЗапуске", ""); // При ручном выполнении + Параметры.Вставить("ПроведеноКопирование", Ложь); + Параметры.Вставить("ПроведеноВосстановление", Ложь); + Параметры.Вставить("РезультатКопирования", Неопределено); + Параметры.Вставить("ИмяФайлаРезервнойКопии", ""); + Параметры.Вставить("ВариантВыполнения", "ПоРасписанию"); + Параметры.Вставить("ПроцессВыполняется", Ложь); + Параметры.Вставить("АдминистраторИБ", ""); + Параметры.Вставить("ПарольАдминистратораИБ", ""); + Параметры.Вставить("ПараметрыУдаления", ПараметрыУдаленияРезервныхКопийПоУмолчанию()); + Параметры.Вставить("РучнойЗапускПоследнегоРезервногоКопирования", Истина); - Если Цел(ИнтервалВремени / (3600 * 24 * 7)) > 0 Тогда - ВозвращаемаяСтруктура.ТипПериода = "Неделя"; - ВозвращаемаяСтруктура.ЗначениеПериода = ИнтервалВремени / (3600 * 24 * 7); - Возврат ВозвращаемаяСтруктура; - КонецЕсли; - - Если Цел(ИнтервалВремени / (3600 * 24)) > 0 Тогда - ВозвращаемаяСтруктура.ТипПериода = "День"; - ВозвращаемаяСтруктура.ЗначениеПериода = ИнтервалВремени / (3600 * 24); - Возврат ВозвращаемаяСтруктура; - КонецЕсли; - - Возврат ВозвращаемаяСтруктура; + Возврат Параметры; КонецФункции @@ -302,16 +233,17 @@ Параметры = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("ПараметрыРезервногоКопирования", ""); Если Параметры = Неопределено Тогда - Возврат НачальноеЗаполнениеНастроекРезервногоКопирования(); + Параметры = НовыеНастройкиРезервногоКопирования(); + УстановитьНастройкиРезервногоКопирования(Параметры); + Иначе + ДополнитьПараметрыРезервногоКопирования(Параметры); КонецЕсли; - ДополнитьПараметрыРезервногоКопирования(Параметры); Возврат Параметры; КонецФункции -// Приводит параметры резервного копирования. // Если в текущих параметрах резервного копирования нет параметра, который есть в -// функции "НачальноеЗаполнениеНастроекРезервногоКопирования", то он добавляется со значением по умолчанию. +// функции НовыеНастройкиРезервногоКопирования, то он добавляется со значением по умолчанию. // // Параметры: // ПараметрыРезервногоКопирования - Структура - параметры резервного копирования ИБ. @@ -320,7 +252,7 @@ ПараметрыИзменены = Ложь; - Параметры = НачальноеЗаполнениеНастроекРезервногоКопирования(Ложь); + Параметры = НовыеНастройкиРезервногоКопирования(); Для Каждого ЭлементСтруктуры Из Параметры Цикл НайденноеЗначение = Неопределено; Если ПараметрыРезервногоКопирования.Свойство(ЭлементСтруктуры.Ключ, НайденноеЗначение) Тогда @@ -340,23 +272,10 @@ Возврат; КонецЕсли; - УстановитьПараметрыРезервногоКопирования(ПараметрыРезервногоКопирования); + УстановитьНастройкиРезервногоКопирования(ПараметрыРезервногоКопирования); КонецПроцедуры -// Сохраняет параметры резервного копирования. -// -// Параметры: -// СтруктураПараметров - Структура - параметры резервного копирования. -// -Процедура УстановитьПараметрыРезервногоКопирования(СтруктураПараметров, ТекущийПользователь = Неопределено) Экспорт - ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("ПараметрыРезервногоКопирования", "", СтруктураПараметров); - Если ТекущийПользователь <> Неопределено Тогда - ПараметрыКопирования = Новый Структура("Пользователь", ТекущийПользователь); - Константы.ПараметрыРезервногоКопирования.Установить(Новый ХранилищеЗначения(ПараметрыКопирования)); - КонецЕсли; -КонецПроцедуры - // Проверяет, не настало ли время проводить автоматическое резервное копирование. // // Возвращаемое значение: @@ -398,9 +317,9 @@ // Процедура УстановитьРезультатРезервногоКопирования() Экспорт - СтруктураПараметров = НастройкиРезервногоКопирования(); - СтруктураПараметров.ПроведеноКопирование = Ложь; - УстановитьПараметрыРезервногоКопирования(СтруктураПараметров); + Настройки = НастройкиРезервногоКопирования(); + Настройки.ПроведеноКопирование = Ложь; + УстановитьНастройкиРезервногоКопирования(Настройки); Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда МодульЦентрМониторинга = ОбщегоНазначения.ОбщийМодуль("ЦентрМониторинга"); @@ -417,9 +336,9 @@ // Процедура УстановитьДатуПоследнегоНапоминания(ДатаНапоминания) Экспорт - ПараметрыОповещений = ПараметрыРезервногоКопирования(); - ПараметрыОповещений.ДатаПоследнегоОповещения = ДатаНапоминания; - УстановитьПараметрыРезервногоКопирования(ПараметрыОповещений); + Настройки = ПараметрыРезервногоКопирования(); + Настройки.ДатаПоследнегоОповещения = ДатаНапоминания; + УстановитьНастройкиРезервногоКопирования(Настройки); КонецПроцедуры @@ -431,9 +350,9 @@ // Процедура УстановитьЗначениеНастройки(ИмяЭлемента, ЗначениеЭлемента) Экспорт - СтруктураНастроек = ПараметрыРезервногоКопирования(); - СтруктураНастроек.Вставить(ИмяЭлемента, ЗначениеЭлемента); - УстановитьПараметрыРезервногоКопирования(СтруктураНастроек); + Настройки = ПараметрыРезервногоКопирования(); + Настройки.Вставить(ИмяЭлемента, ЗначениеЭлемента); + УстановитьНастройкиРезервногоКопирования(Настройки); КонецПроцедуры @@ -448,11 +367,11 @@ Функция НастройкиРезервногоКопирования(НачалоРаботы = Ложь) Экспорт Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - Возврат Неопределено; // Не выполнен вход в область данных. + Возврат Неопределено; КонецЕсли; Если Не Пользователи.ЭтоПолноправныйПользователь(,Истина) Тогда - Возврат Неопределено; // Текущий пользователь не обладает необходимыми правами. + Возврат Неопределено; КонецЕсли; Результат = ПараметрыРезервногоКопирования(); @@ -481,9 +400,9 @@ ТекущаяДатаСеанса = ТекущаяДатаСеанса(); Результат.ДатаПоследнегоРезервногоКопирования = ТекущаяДатаСеанса; // Сохранение даты последнего резервного копирования в хранилище общих настроек. - СтруктураПараметров = ПараметрыРезервногоКопирования(); - СтруктураПараметров.ДатаПоследнегоРезервногоКопирования = ТекущаяДатаСеанса; - УстановитьПараметрыРезервногоКопирования(СтруктураПараметров); + Настройки = ПараметрыРезервногоКопирования(); + Настройки.ДатаПоследнегоРезервногоКопирования = ТекущаяДатаСеанса; + УстановитьНастройкиРезервногоКопирования(Настройки); КонецЕсли; Если Результат.ПроведеноВосстановление Тогда @@ -514,9 +433,9 @@ // Процедура ОбновитьРезультатВосстановления() - СтруктураВозврата = ПараметрыРезервногоКопирования(); - СтруктураВозврата.ПроведеноВосстановление = Ложь; - УстановитьПараметрыРезервногоКопирования(СтруктураВозврата); + Настройки = ПараметрыРезервногоКопирования(); + Настройки.ПроведеноВосстановление = Ложь; + УстановитьНастройкиРезервногоКопирования(Настройки); КонецПроцедуры @@ -550,11 +469,11 @@ // Процедура ЗавершитьРезервноеКопирование(Результат, ИмяФайлаРезервнойКопии = "") Экспорт - СтруктураРезультата = НастройкиРезервногоКопирования(); - СтруктураРезультата.ПроведеноКопирование = Истина; - СтруктураРезультата.РезультатКопирования = Результат; - СтруктураРезультата.ИмяФайлаРезервнойКопии = ИмяФайлаРезервнойКопии; - УстановитьПараметрыРезервногоКопирования(СтруктураРезультата); + Настройки = НастройкиРезервногоКопирования(); + Настройки.ПроведеноКопирование = Истина; + Настройки.РезультатКопирования = Результат; + Настройки.ИмяФайлаРезервнойКопии = ИмяФайлаРезервнойКопии; + УстановитьНастройкиРезервногоКопирования(Настройки); КонецПроцедуры @@ -566,237 +485,21 @@ // Процедура ЗавершитьВосстановление(Результат) Экспорт - СтруктураРезультата = НастройкиРезервногоКопирования(); - СтруктураРезультата.ПроведеноВосстановление = Истина; - УстановитьПараметрыРезервногоКопирования(СтруктураРезультата); + Настройки = НастройкиРезервногоКопирования(); + Настройки.ПроведеноВосстановление = Истина; + УстановитьНастройкиРезервногоКопирования(Настройки); КонецПроцедуры Функция ПараметрыУдаленияРезервныхКопийПоУмолчанию() ПараметрыУдаления = Новый Структура; - ПараметрыУдаления.Вставить("ТипОграничения", "ПоПериоду"); - ПараметрыУдаления.Вставить("КоличествоКопий", 10); - ПараметрыУдаления.Вставить("ЕдиницаИзмеренияПериода", "Месяц"); ПараметрыУдаления.Вставить("ЗначениеВЕдиницахИзмерения", 6); - Возврат ПараметрыУдаления; КонецФункции -// Обновляет настройки резервного копирования. -// -Процедура ОбновитьПараметрыРезервногоКопирования_2_2_1_15() Экспорт - - ПараметрыРезервногоКопирования = НастройкиРезервногоКопирования(); - - Если ПараметрыРезервногоКопирования = Неопределено Тогда - Возврат; - КонецЕсли; - - Если Не ПараметрыРезервногоКопирования.Свойство("ПроводитьРезервноеКопированиеПриЗавершенииРаботы") - Или Не ПараметрыРезервногоКопирования.Свойство("НастроеноПользователем") Тогда - - Возврат; // Уже было выполнено обновление. - - КонецЕсли; - - ВыборПунктаНастройки = ПараметрыРезервногоКопирования.ВыборПунктаНастройки; - - Если ВыборПунктаНастройки = 3 Тогда - ВыборПунктаНастройки = 0; - ИначеЕсли ВыборПунктаНастройки = 2 Тогда - ВыборПунктаНастройки = 3; - Иначе - Если ПараметрыРезервногоКопирования.ПроводитьРезервноеКопированиеПриЗавершенииРаботы Тогда - ВыборПунктаНастройки = 2; - ИначеЕсли ПараметрыРезервногоКопирования.НастроеноПользователем И ЗначениеЗаполнено(ПараметрыРезервногоКопирования.РасписаниеКопирования) Тогда - ВыборПунктаНастройки = 1; - Иначе - ВыборПунктаНастройки = 0; - КонецЕсли; - КонецЕсли; - - ПараметрыРезервногоКопирования.ВыборПунктаНастройки = ВыборПунктаНастройки; - - МассивУдаляемыхПараметров = Новый Массив; - МассивУдаляемыхПараметров.Добавить("ЕжечасноеОповещение "); - МассивУдаляемыхПараметров.Добавить("НастроеноПользователем "); - МассивУдаляемыхПараметров.Добавить("ПроводитьРезервноеКопированиеПриЗавершенииРаботы"); - МассивУдаляемыхПараметров.Добавить("АвтоматическоеРезервноеКопирование"); - МассивУдаляемыхПараметров.Добавить("ОтложенноеРезервноеКопирование"); - - Для Каждого УдаляемыйПараметр Из МассивУдаляемыхПараметров Цикл - - Если ПараметрыРезервногоКопирования.Свойство(УдаляемыйПараметр) Тогда - - ПараметрыРезервногоКопирования.Удалить(УдаляемыйПараметр); - - КонецЕсли; - - КонецЦикла; - - УстановитьПараметрыРезервногоКопирования(ПараметрыРезервногоКопирования); - -КонецПроцедуры - -// Обновляет настройки резервного копирования. -// -Процедура ОбновитьПараметрыРезервногоКопирования_2_2_1_33() Экспорт - - ПараметрыРезервногоКопирования = НастройкиРезервногоКопирования(); - - Если ПараметрыРезервногоКопирования = Неопределено Тогда - Возврат; - КонецЕсли; - - Если ПараметрыРезервногоКопирования.Свойство("ПараметрыУдаления") Тогда - - Возврат; // Уже было выполнено обновление. - - КонецЕсли; - - ПараметрыУдаления = ПараметрыУдаленияРезервныхКопийПоУмолчанию(); - ПараметрыУдаления.ПроизводитьУдаление = ПараметрыРезервногоКопирования.ПроизводитьУдаление; - ПараметрыУдаления.ТипОграничения = ?(ПараметрыРезервногоКопирования.УдалятьПоПериоду, "ПоПериоду", "ПоКоличеству"); - - Если ПараметрыРезервногоКопирования.УдалятьПоПериоду Тогда - ПараметрыУдаления.ТипОграничения = "ПоПериоду"; - НастройкиЗначенияПериода = ЗначениеПериодаПоИнтервалуВремени(ПараметрыРезервногоКопирования.ЗначениеПараметра); - ПараметрыУдаления.ЕдиницаИзмеренияПериода = НастройкиЗначенияПериода.ТипПериода; - ПараметрыУдаления.ЗначениеВЕдиницахИзмерения = НастройкиЗначенияПериода.ЗначениеПериода; - Иначе - ПараметрыУдаления.ТипОграничения = "ПоКоличеству"; - ПараметрыУдаления.КоличествоКопий = ПараметрыУдаления.ЗначениеПараметра; - КонецЕсли; - - ПараметрыРезервногоКопирования.Вставить("ПараметрыУдаления", ПараметрыУдаления); - - МассивУдаляемыхПараметров = Новый Массив; - МассивУдаляемыхПараметров.Добавить("ПроизводитьУдаление"); - МассивУдаляемыхПараметров.Добавить("УдалятьПоПериоду "); - МассивУдаляемыхПараметров.Добавить("ЗначениеПараметра"); - МассивУдаляемыхПараметров.Добавить("ПериодОповещения"); - - Для Каждого УдаляемыйПараметр Из МассивУдаляемыхПараметров Цикл - - Если ПараметрыРезервногоКопирования.Свойство(УдаляемыйПараметр) Тогда - - ПараметрыРезервногоКопирования.Удалить(УдаляемыйПараметр); - - КонецЕсли; - - КонецЦикла; - - УстановитьПараметрыРезервногоКопирования(ПараметрыРезервногоКопирования); - -КонецПроцедуры - -// Обновляет настройки резервного копирования. -// -Процедура ОбновитьПараметрыРезервногоКопирования_2_2_2_33() Экспорт - - ПараметрыРезервногоКопирования = НастройкиРезервногоКопирования(); - - Если ПараметрыРезервногоКопирования = Неопределено Тогда - Возврат; - КонецЕсли; - - Если ПараметрыРезервногоКопирования.Свойство("ВыполнятьАвтоматическоеРезервноеКопирование") Тогда - - Возврат; // Уже было выполнено обновление. - - КонецЕсли; - - Если ПараметрыРезервногоКопирования.ПервыйЗапуск Тогда - - ПараметрыРезервногоКопирования.ДатаПоследнегоРезервногоКопирования = Дата(1, 1, 1); - - КонецЕсли; - - Если ПараметрыРезервногоКопирования.ВыборПунктаНастройки = 2 Тогда - ВариантВыполнения = "ПриЗавершенииРаботы"; - Иначе - ВариантВыполнения = "ПоРасписанию"; - КонецЕсли; - - ВыполнятьАвтоматическоеРезервноеКопирование = (ПараметрыРезервногоКопирования.ВыборПунктаНастройки = 1 Или ПараметрыРезервногоКопирования.ВыборПунктаНастройки = 2); - - ПараметрыРезервногоКопирования.Вставить("ВыполнятьАвтоматическоеРезервноеКопирование", ВыполнятьАвтоматическоеРезервноеКопирование); - ПараметрыРезервногоКопирования.Вставить("РезервноеКопированиеНастроено", ПараметрыРезервногоКопирования.ВыборПунктаНастройки <> 0); - ПараметрыРезервногоКопирования.Вставить("ВариантВыполнения", ВариантВыполнения); - ПараметрыРезервногоКопирования.Вставить("РучнойЗапускПоследнегоРезервногоКопирования", Истина); - - МассивУдаляемыхПараметров = Новый Массив; - МассивУдаляемыхПараметров.Добавить("ВыборПунктаНастройки"); - МассивУдаляемыхПараметров.Добавить("ПервыйЗапуск"); - - Для Каждого УдаляемыйПараметр Из МассивУдаляемыхПараметров Цикл - - Если ПараметрыРезервногоКопирования.Свойство(УдаляемыйПараметр) Тогда - - ПараметрыРезервногоКопирования.Удалить(УдаляемыйПараметр); - - КонецЕсли; - - КонецЦикла; - - Если ПараметрыРезервногоКопирования.Свойство("ПараметрыУдаления") - И ПараметрыРезервногоКопирования.ПараметрыУдаления.Свойство("ПроизводитьУдаление") Тогда - - Если Не ПараметрыРезервногоКопирования.ПараметрыУдаления.ПроизводитьУдаление Тогда - ПараметрыРезервногоКопирования.ПараметрыУдаления.ТипОграничения = "ХранитьВсе"; - КонецЕсли; - - ПараметрыРезервногоКопирования.ПараметрыУдаления.Удалить("ПроизводитьУдаление"); - - КонецЕсли; - - УстановитьПараметрыРезервногоКопирования(ПараметрыРезервногоКопирования); - -КонецПроцедуры - -// Обновляет настройки резервного копирования. -// -Процедура ОбновитьПараметрыРезервногоКопирования_2_2_4_36() Экспорт - - Если ОбщегоНазначения.РазделениеВключено() Тогда - Возврат; - КонецЕсли; - - СохраненныйПользователь = Неопределено; - Для Каждого Пользователь Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл - Настройки = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("ПараметрыРезервногоКопирования", "",,, Пользователь.Имя); - - Если ТипЗнч(Настройки) <> Тип("Структура") Тогда - Продолжить; - КонецЕсли; - - Если Настройки.Свойство("ВыполнятьАвтоматическоеРезервноеКопирование") - И Настройки.ВыполнятьАвтоматическоеРезервноеКопирование Тогда - СохраненныйПользователь = Пользователь; - Прервать; - КонецЕсли; - - Если Настройки.Свойство("РезервноеКопированиеНастроено") - И Настройки.РезервноеКопированиеНастроено Тогда - СохраненныйПользователь = Пользователь; - КонецЕсли; - - КонецЦикла; - - Если СохраненныйПользователь <> Неопределено Тогда - НайденныйПользователь = Неопределено; - ПользователиСлужебный.ПользовательПоИдентификаторуСуществует(СохраненныйПользователь.УникальныйИдентификатор,, НайденныйПользователь); - Если НайденныйПользователь <> Неопределено Тогда - Параметры = Новый Структура("Пользователь", НайденныйПользователь); - Константы.ПараметрыРезервногоКопирования.Установить(Новый ХранилищеЗначения(Параметры)); - КонецЕсли; - КонецЕсли; - -КонецПроцедуры - #КонецОбласти diff --git a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанных/Module.bsl b/SSL/src/CommonModules/РезервноеКопированиеОбластейДанных/Module.bsl deleted file mode 100644 index 3ef665e4b..000000000 --- a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанных/Module.bsl +++ /dev/null @@ -1,1022 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -//////////////////////////////////////////////////////////////////////////////// -// Обмен сообщениями - -// Возвращает состояние использования резервного копирования областей данных. -// -// Возвращаемое значение: -// Булево - Истина, если резервное копирование используется. -// -Функция РезервноеКопированиеИспользуется() Экспорт - - УстановитьПривилегированныйРежим(Истина); - Возврат Константы.ПоддержкаРезервногоКопирования.Получить(); - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Активность пользователей в области данных. - -// Устанавливает признак активности пользователя в текущей области. -// Признаком является значение совместно разделенной константы ДатаПоследнегоСтартаКлиентскогоСеанса. -// -Процедура УстановитьФлагАктивностиПользователяВОбласти() Экспорт - - Если НЕ РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() - ИЛИ НЕ РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() - ИЛИ ТекущийРежимЗапуска() = Неопределено - ИЛИ НЕ ПолучитьФункциональнуюОпцию("ПоддержкаРезервногоКопирования") - ИЛИ РаботаВМоделиСервиса.ОбластьДанныхЗаблокирована(РаботаВМоделиСервиса.ЗначениеРазделителяСеанса()) Тогда - - Возврат; - - КонецЕсли; - - УстановитьФлагАктивностиВОбласти(); // Для обратной совместимости - - ДатаСтарта = ТекущаяУниверсальнаяДата(); - - Если ДатаСтарта - Константы.ДатаПоследнегоСтартаКлиентскогоСеанса.Получить() < 3600 Тогда - Возврат; - КонецЕсли; - - Константы.ДатаПоследнегоСтартаКлиентскогоСеанса.Установить(ДатаСтарта); - -КонецПроцедуры - -// Возвращает соответствие русских названий полей программных системных настроек -// английским из XDTO-пакета ZoneBackupControl Менеджера сервиса. -// (тип: {http://www.1c.ru/SaaS/1.0/XMLSchema/ZoneBackupControl}Settings). -// -// Возвращаемое значение: -// ФиксированноеСоответствие - соответствие русских имен полей настроек английским. -// -Функция СоответствиеРусскихИменПолейНастроекАнглийским() Экспорт - - Возврат РезервноеКопированиеОбластейДанныхПовтИсп.СоответствиеРусскихИменПолейНастроекАнглийским(); - -КонецФункции - -// Определяет, поддерживает ли приложение функциональность резервного копирования. -// -// Возвращаемое значение: -// Булево - Истина, если приложение поддерживает функциональность резервного копирования. -// -Функция МенеджерСервисаПоддерживаетРезервноеКопирование() Экспорт - - Возврат РезервноеКопированиеОбластейДанныхПовтИсп.МенеджерСервисаПоддерживаетРезервноеКопирование(); - -КонецФункции - -// Возвращает прокси web-сервиса контроля резервного копирования. -// -// Возвращаемое значение: -// WSПрокси - прокси менеджера сервиса. -// -Функция ПроксиКонтроляРезервногоКопирования() Экспорт - - Возврат РезервноеКопированиеОбластейДанныхПовтИсп.ПроксиКонтроляРезервногоКопирования(); - -КонецФункции - -// Возвращает имя подсистемы, которое должно использоваться в именах -// событий журнала регистрации. -// -// Возвращаемое значение: -// Строка - имя подсистемы. -// -Функция ИмяПодсистемыДляСобытийЖурналаРегистрации() Экспорт - - Возврат Метаданные.Подсистемы.СтандартныеПодсистемы.Подсистемы.РаботаВМоделиСервиса.Подсистемы.РезервноеКопированиеОбластейДанных.Имя; - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Фоновые задания - -// Возвращает наименование фонового задания выгрузки области в файл. -// -// Возвращаемое значение: -// Строка - наименование фонового задания. -// -Функция НаименованиеФоновогоРезервногоКопирования() Экспорт - - Возврат НСтр("ru = 'Резервное копирование области данных'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - - -#КонецОбласти - -#Область СлужебныйПрограммныйИнтерфейс - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. - -// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиента. -Процедура ПриДобавленииПараметровРаботыКлиента(Параметры) Экспорт - - Параметры.Вставить("РезервноеКопированиеОбластейДанных", ПолучитьФункциональнуюОпцию("ПоддержкаРезервногоКопирования")); - -КонецПроцедуры - -// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков. -Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт - - СоответствиеИменПсевдонимам.Вставить("РезервноеКопированиеОбластейДанных.ВыгрузитьОбластьВХранилищеМС"); - СоответствиеИменПсевдонимам.Вставить("РезервноеКопированиеОбластейДанных.СозданиеКопий"); - -КонецПроцедуры - -// См. ОбщегоНазначенияПереопределяемый.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов. -Процедура ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(Знач СтруктураПоддерживаемыхВерсий) Экспорт - - МассивВерсий = Новый Массив; - МассивВерсий.Добавить("1.0.1.1"); - МассивВерсий.Добавить("1.0.1.2"); - СтруктураПоддерживаемыхВерсий.Вставить("РезервноеКопированиеОбластейДанных", МассивВерсий); - -КонецПроцедуры - -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.3.9"; - Обработчик.Процедура = "РезервноеКопированиеОбластейДанных.ПеренестиСостояниеПланированияРезервногоКопированияВоВспомогательныеДанные"; - Обработчик.ОбщиеДанные = Истина; - -КонецПроцедуры - -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. -Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт - - Типы.Добавить(Метаданные.Константы.ВыполнитьРезервноеКопированиеОбластиДанных); - Типы.Добавить(Метаданные.Константы.ДатаПоследнегоСтартаКлиентскогоСеанса); - -КонецПроцедуры - -// См. РаботаВМоделиСервисаПереопределяемый.ПриЗаполненииТаблицыПараметровИБ. -Процедура ПриЗаполненииТаблицыПараметровИБ(ТаблицаПараметров) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.ДобавитьКонстантуВТаблицуПараметровИБ(ТаблицаПараметров, "ПоддержкаРезервногоКопирования"); - КонецЕсли; - -КонецПроцедуры - -// См. ОчередьЗаданийПереопределяемый.ПриОпределенииОбработчиковОшибок. -Процедура ПриОпределенииОбработчиковОшибок(ОбработчикиОшибок) Экспорт - - ОбработчикиОшибок.Вставить( - "РезервноеКопированиеОбластейДанных.СозданиеКопий", - "РезервноеКопированиеОбластейДанных.ОшибкаСозданияКопии"); - -КонецПроцедуры - -// См. ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.ЗаполнитьОбработчикиПринимаемыхСообщений. -Процедура РегистрацияИнтерфейсовПринимаемыхСообщений(МассивОбработчиков) Экспорт - - МассивОбработчиков.Добавить(СообщенияУправлениеРезервнымКопированиемИнтерфейс); - -КонецПроцедуры - -// См. ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый.ЗаполнитьОбработчикиОтправляемыхСообщений. -Процедура РегистрацияИнтерфейсовОтправляемыхСообщений(МассивОбработчиков) Экспорт - - МассивОбработчиков.Добавить(СообщенияКонтрольРезервногоКопированияИнтерфейс); - -КонецПроцедуры - -// Возвращает имя метода фонового задания выгрузки области в файл. -// -// Возвращаемое значение: -// Строка - имя метода. -// -Функция ИмяМетодаФоновогоРезервногоКопирования() Экспорт - - Возврат "РезервноеКопированиеОбластейДанных.ВыгрузитьОбластьВХранилищеМС"; - -КонецФункции - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -//////////////////////////////////////////////////////////////////////////////// -// Активность пользователей в области данных. - -// Устанавливает либо снимает признак активности пользователя в текущей области. -// Признаком является значение совместно разделенной константы ВыполнитьРезервноеКопированиеОбластиДанных. -// Устарело. -// -// Параметры: -// ОбластьДанных - Число; Неопределено - Значение разделителя. Неопределено означает значение разделителя текущей -// области данных. -// Состояние - Булево - Истина, если признак надо установить; Ложь, если снять. -// -Процедура УстановитьФлагАктивностиВОбласти(Знач ОбластьДанных = Неопределено, Знач Состояние = Истина) - - Если ОбластьДанных = Неопределено Тогда - Если РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда - ОбластьДанных = РаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); - Иначе - ВызватьИсключение НСтр("ru = 'При вызове процедуры УстановитьФлагАктивностиВОбласти из неразделенного сеанса параметр ОбластьДанных является обязательным.'"); - КонецЕсли; - Иначе - Если НЕ РаботаВМоделиСервиса.СеансЗапущенБезРазделителей() - И ОбластьДанных <> РаботаВМоделиСервиса.ЗначениеРазделителяСеанса() Тогда - - ВызватьИсключение(НСтр("ru = 'Запрещено работать с данными области кроме текущей'")); - - КонецЕсли; - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - - Если Состояние Тогда - МенеджерЗначения = Константы.ВыполнитьРезервноеКопированиеОбластиДанных.СоздатьМенеджерЗначения(); - МенеджерЗначения.ОбластьДанныхВспомогательныеДанные = ОбластьДанных; - МенеджерЗначения.Прочитать(); - Если МенеджерЗначения.Значение Тогда - Возврат; - КонецЕсли; - КонецЕсли; - - ФлагАктивности = Константы.ВыполнитьРезервноеКопированиеОбластиДанных.СоздатьМенеджерЗначения(); - ФлагАктивности.ОбластьДанныхВспомогательныеДанные = ОбластьДанных; - ФлагАктивности.Значение = Состояние; - РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(ФлагАктивности); - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Выгрузка областей данных. - -// Создает резервную копию области в соответствии с настройками резервного копирования -// области. -// -// Параметры: -// ПараметрыСоздания - ФиксированнаяСтруктура - параметры создания резервной копии, -// соответствуют настройкам резервного копирования. -// СостояниеСоздания - ФиксированнаяСтруктура - состояние процесса создания -// резервных копий в области. -// -Процедура СозданиеКопий(Знач ПараметрыСоздания, Знач СостояниеСоздания) Экспорт - - НачалоВыполнения = ТекущаяУниверсальнаяДата(); - - УсловияСозданияКопий = Новый Массив; - - Параметры = Новый Структура; - Параметры.Вставить("Тип", "Ежедневная"); - Параметры.Вставить("Включены", "СоздаватьЕжедневные"); - Параметры.Вставить("Периодичность", "День"); - Параметры.Вставить("ДатаСоздания", "ДатаСозданияПоследнейЕжедневной"); - Параметры.Вставить("День", Неопределено); - Параметры.Вставить("Месяц", Неопределено); - УсловияСозданияКопий.Добавить(Параметры); - - Параметры = Новый Структура; - Параметры.Вставить("Тип", "Ежемесячная"); - Параметры.Вставить("Включены", "СоздаватьЕжемесячные"); - Параметры.Вставить("Периодичность", "Месяц"); - Параметры.Вставить("ДатаСоздания", "ДатаСозданияПоследнейЕжемесячной"); - Параметры.Вставить("День", "ДеньСозданияЕжемесячных"); - Параметры.Вставить("Месяц", Неопределено); - УсловияСозданияКопий.Добавить(Параметры); - - Параметры = Новый Структура; - Параметры.Вставить("Тип", "Ежегодная"); - Параметры.Вставить("Включены", "СоздаватьЕжегодные"); - Параметры.Вставить("Периодичность", "Год"); - Параметры.Вставить("ДатаСоздания", "ДатаСозданияПоследнейЕжегодной"); - Параметры.Вставить("День", "ДеньСозданияЕжегодных"); - Параметры.Вставить("Месяц", "МесяцСозданияЕжегодных"); - УсловияСозданияКопий.Добавить(Параметры); - - ТребуетсяСоздание = Ложь; - ТекущаяДата = ТекущаяУниверсальнаяДата(); - - ПоследнийСеанс = Константы.ДатаПоследнегоСтартаКлиентскогоСеанса.Получить(); - - СоздаватьБезусловно = НЕ ПараметрыСоздания.ТолькоПриАктивностиПользователей; - - ФлагиПериодичности = Новый Структура; - Для каждого ПараметрыПериодичности Из УсловияСозданияКопий Цикл - - ФлагиПериодичности.Вставить(ПараметрыПериодичности.Тип, Ложь); - - Если НЕ ПараметрыСоздания[ПараметрыПериодичности.Включены] Тогда - // Создание копий данной периодичности выключено в настройках. - Продолжить; - КонецЕсли; - - ДатаСозданияПредыдущей = СостояниеСоздания[ПараметрыПериодичности.ДатаСоздания]; - - Если Год(ТекущаяДата) = Год(ДатаСозданияПредыдущей) Тогда - Если ПараметрыПериодичности.Периодичность = "Год" Тогда - // Год еще не сменился - Продолжить; - КонецЕсли; - КонецЕсли; - - Если Месяц(ТекущаяДата) = Месяц(ДатаСозданияПредыдущей) Тогда - Если ПараметрыПериодичности.Периодичность = "Месяц" Тогда - // Месяц еще не сменился - Продолжить; - КонецЕсли; - КонецЕсли; - - Если День(ТекущаяДата) = День(ДатаСозданияПредыдущей) Тогда - // День еще не сменился - Продолжить; - КонецЕсли; - - Если ПараметрыПериодичности.День <> Неопределено - И День(ТекущаяДата) < ПараметрыСоздания[ПараметрыПериодичности.День] Тогда - - // Нужный день еще не наступил. - Продолжить; - КонецЕсли; - - Если ПараметрыПериодичности.Месяц <> Неопределено - И Месяц(ТекущаяДата) < ПараметрыСоздания[ПараметрыПериодичности.Месяц] Тогда - - // Нужный месяц еще не наступил. - Продолжить; - КонецЕсли; - - Если НЕ СоздаватьБезусловно - И ЗначениеЗаполнено(ДатаСозданияПредыдущей) - И ПоследнийСеанс < ДатаСозданияПредыдущей Тогда - - // Пользователи не заходили в область после создания резервной копии. - Продолжить; - КонецЕсли; - - ТребуетсяСоздание = Истина; - ФлагиПериодичности.Вставить(ПараметрыПериодичности.Тип, Истина); - - КонецЦикла; - - Если НЕ ТребуетсяСоздание Тогда - ЗаписьЖурналаРегистрации( - СобытиеЖурналаРегистрации() + "." - + НСтр("ru = 'Пропуск создания'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Информация); - Возврат; - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - - Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ВыгрузкаЗагрузкаОбластейДанных") Тогда - - РаботаВМоделиСервиса.ВызватьИсключениеОтсутствуетПодсистемаБТС("ТехнологияСервиса.РаботаВМоделиСервиса.ВыгрузкаЗагрузкаОбластейДанных"); - - КонецЕсли; - - МодульВыгрузкаЗагрузкаОбластейДанных = ОбщегоНазначения.ОбщийМодуль("ВыгрузкаЗагрузкаОбластейДанных"); - - ИмяАрхива = Неопределено; - - Попытка - - ИмяАрхива = МодульВыгрузкаЗагрузкаОбластейДанных.ВыгрузитьТекущуюОбластьДанныхВАрхив(); - - ДатаСозданияКопии = ТекущаяУниверсальнаяДата(); - - ОписаниеАрхива = Новый Файл(ИмяАрхива); - РазмерФайла = ОписаниеАрхива.Размер(); - - ИДФайла = РаботаВМоделиСервиса.ПоместитьФайлВХранилищеМенеджераСервиса(ОписаниеАрхива); - - Попытка - УдалитьФайлы(ИмяАрхива); - Исключение - // При невозможности удаления файла выполнение не должно прерываться. - ЗаписьЖурналаРегистрации(НСтр("ru = 'Создание резервной копии области данных.Не удалось удалить временный файл'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - - ИдКопии = Новый УникальныйИдентификатор; - - ПараметрыСообщения = Новый Структура; - ПараметрыСообщения.Вставить("ОбластьДанных", РаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); - ПараметрыСообщения.Вставить("ИДКопии", ИдКопии); - ПараметрыСообщения.Вставить("ИДФайла", ИДФайла); - ПараметрыСообщения.Вставить("ДатаСоздания", ДатаСозданияКопии); - Для каждого КлючИЗначение Из ФлагиПериодичности Цикл - ПараметрыСообщения.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение); - КонецЦикла; - - ОтправитьСообщениеРезервнаяКопияОбластиСоздана(ПараметрыСообщения); - - // Обновление состояния в параметрах. - ОтборЗаданий = Новый Структура; - ОтборЗаданий.Вставить("ИмяМетода", "РезервноеКопированиеОбластейДанных.СозданиеКопий"); - ОтборЗаданий.Вставить("Ключ", "1"); - Задания = ОчередьЗаданий.ПолучитьЗадания(ОтборЗаданий); - Если Задания.Количество() > 0 Тогда - Задание = Задания[0].Идентификатор; - - ПараметрыМетода = Новый Массив; - ПараметрыМетода.Добавить(ПараметрыСоздания); - - ОбновленноеСостояние = Новый Структура; - Для каждого ПараметрыПериодичности Из УсловияСозданияКопий Цикл - Если ФлагиПериодичности[ПараметрыПериодичности.Тип] Тогда - ДатаСостояния = ДатаСозданияКопии; - Иначе - ДатаСостояния = СостояниеСоздания[ПараметрыПериодичности.ДатаСоздания]; - КонецЕсли; - - ОбновленноеСостояние.Вставить(ПараметрыПериодичности.ДатаСоздания, ДатаСостояния); - КонецЦикла; - - ПараметрыМетода.Добавить(Новый ФиксированнаяСтруктура(ОбновленноеСостояние)); - - ПараметрыЗадания = Новый Структура; - ПараметрыЗадания.Вставить("Параметры", ПараметрыМетода); - ОчередьЗаданий.ИзменитьЗадание(Задание, ПараметрыЗадания); - КонецЕсли; - - ПараметрыСобытия = Новый Структура; - Для каждого КлючИЗначение Из ФлагиПериодичности Цикл - ПараметрыСобытия.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение); - КонецЦикла; - ПараметрыСобытия.Вставить("ИдКопии", ИдКопии); - ПараметрыСобытия.Вставить("ИдФайла", ИдФайла); - ПараметрыСобытия.Вставить("Размер", РазмерФайла); - ПараметрыСобытия.Вставить("Длительность", ТекущаяУниверсальнаяДата() - НачалоВыполнения); - - ЗаписатьСобытиеВЖурнал( - НСтр("ru = 'Создание'", ОбщегоНазначения.КодОсновногоЯзыка()), - ПараметрыСобытия); - - Исключение - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Создание резервной копии области данных'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Попытка - Если ИмяАрхива <> Неопределено Тогда - УдалитьФайлы(ИмяАрхива); - КонецЕсли; - Исключение - // При невозможности удаления файла выполнение не должно прерываться. - ЗаписьЖурналаРегистрации(НСтр("ru = 'Создание резервной копии области данных.Не удалось удалить временный файл'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - - КонецПопытки; - -КонецПроцедуры - -// При исчерпании количества попыток создания резервной копии, записывает в журнал -// регистрации сообщение о том, что копия не была создана. -// -// Параметры: -// ПараметрыЗадания - Структура - свойства структуры -// см. ОчередьЗаданийПереопределяемый.ПриОпределенииОбработчиковОшибок. -// -Процедура ОшибкаСозданияКопии(Знач ПараметрыЗадания, Знач ИнформацияОбОшибке) Экспорт - - Если ПараметрыЗадания.НомерПопытки < ПараметрыЗадания.КоличествоПовторовПриАварийномЗавершении Тогда - ШаблонКомментария = НСтр("ru = 'При создании резервной копии области %1 произошла ошибка. - |Номер попытки: %2 - |По причине: - |%3'"); - Уровень = УровеньЖурналаРегистрации.Предупреждение; - Событие = НСтр("ru = 'Ошибка итерации создания'", ОбщегоНазначения.КодОсновногоЯзыка()); - Иначе - ШаблонКомментария = НСтр("ru = 'При создании резервной копии области %1 произошла невосстановимая ошибка. - |Номер попытки: %2 - |По причине: - |%3'"); - Уровень = УровеньЖурналаРегистрации.Ошибка; - Событие = НСтр("ru = 'Ошибка создания'", ОбщегоНазначения.КодОсновногоЯзыка()); - КонецЕсли; - - ТекстКомментария = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - ШаблонКомментария, - Формат(РаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), "ЧН=0; ЧГ="), - ПараметрыЗадания.НомерПопытки, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); - - ЗаписьЖурналаРегистрации( - СобытиеЖурналаРегистрации() + "." + Событие, - Уровень, - , - , - ТекстКомментария); - -КонецПроцедуры - -// Планирует создание резервной копии области данных. -// -// Параметры: -// ПараметрыВыгрузки - Структура, состав ключей см. СоздатьПустыеПараметрыВыгрузки(). -// -Процедура ЗапланироватьАрхивациюВОчереди(Знач ПараметрыВыгрузки) Экспорт - - Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда - ВызватьИсключение(НСтр("ru = 'Не достаточно прав для выполнения операции'")); - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - - ПараметрыМетода = Новый Массив; - ПараметрыМетода.Добавить(ПараметрыВыгрузки); - ПараметрыМетода.Добавить(Неопределено); - - ПараметрыЗадания = Новый Структура; - ПараметрыЗадания.Вставить("ИмяМетода", ИмяМетодаФоновогоРезервногоКопирования()); - ПараметрыЗадания.Вставить("Ключ", "" + ПараметрыВыгрузки.ИДКопии); - ПараметрыЗадания.Вставить("ОбластьДанных", ПараметрыВыгрузки.ОбластьДанных); - - // Поиск активных заданий с тем же ключом. - АктивныеЗадания = ОчередьЗаданий.ПолучитьЗадания(ПараметрыЗадания); - - Если АктивныеЗадания.Количество() = 0 Тогда - - // Планируем выполнение нового. - - ПараметрыЗадания.Вставить("Параметры", ПараметрыМетода); - ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ПараметрыВыгрузки.МоментЗапуска); - - ОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); - Иначе - Если АктивныеЗадания[0].СостояниеЗадания <> Перечисления.СостоянияЗаданий.Запланировано Тогда - // Задание уже выполнилось или выполняется. - Возврат; - КонецЕсли; - - ПараметрыЗадания.Удалить("ОбластьДанных"); - - ПараметрыЗадания.Вставить("Использование", Истина); - ПараметрыЗадания.Вставить("Параметры", ПараметрыМетода); - ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ПараметрыВыгрузки.МоментЗапуска); - - ОчередьЗаданий.ИзменитьЗадание(АктивныеЗадания[0].Идентификатор, ПараметрыЗадания); - КонецЕсли; - -КонецПроцедуры - -// Создает файл выгрузки заданной области и помещает его в хранилище Менеджера сервиса. -// -// Параметры: -// Параметры - Структура: -// - ОбластьДанных - Число. -// - ИДКопии - УникальныйИдентификатор; Неопределено. -// - МоментЗапуска - Дата - момент запуска архивирования области. -// - Принудительно - Булево - Флаг из МС: необходимость создавать копию вне зависимости от активности пользователей. -// - ПоТребованию - Булево - флаг интерактивного запуска архивирования. Если из МС - всегда Ложь. -// - ИДФайла - УникальныйИдентификатор - ИД файла выгрузки в хранилище МС. -// - НомерПопытки - Число - Счетчик попыток. Начальное значение: 1. -// -Процедура ВыгрузитьОбластьВХранилищеМС(Знач Параметры, АдресРезультата = Неопределено) Экспорт - - Если НЕ Пользователи.ЭтоПолноправныйПользователь() Тогда - ВызватьИсключение(НСтр("ru = 'Нарушение прав доступа'")); - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - - Если Не ТребуетсяВыгрузка(Параметры) Тогда - ОтправитьСообщениеАрхивацияОбластиПропущена(Параметры); - Возврат; - КонецЕсли; - - Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ВыгрузкаЗагрузкаОбластейДанных") Тогда - - РаботаВМоделиСервиса.ВызватьИсключениеОтсутствуетПодсистемаБТС("ТехнологияСервиса.РаботаВМоделиСервиса.ВыгрузкаЗагрузкаОбластейДанных"); - - КонецЕсли; - - МодульВыгрузкаЗагрузкаОбластейДанных = ОбщегоНазначения.ОбщийМодуль("ВыгрузкаЗагрузкаОбластейДанных"); - - ИмяАрхива = Неопределено; - - Попытка - - ИмяАрхива = МодульВыгрузкаЗагрузкаОбластейДанных.ВыгрузитьТекущуюОбластьДанныхВАрхив(); - ИДФайла = РаботаВМоделиСервиса.ПоместитьФайлВХранилищеМенеджераСервиса(Новый Файл(ИмяАрхива)); - Попытка - УдалитьФайлы(ИмяАрхива); - Исключение - // При невозможности удаления файла выполнение не должно прерываться. - ЗаписьЖурналаРегистрации(НСтр("ru = 'Создание резервной копии области данных.Не удалось удалить временный файл'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - - НачатьТранзакцию(); - - Попытка - - Параметры.Вставить("ИДФайла", ИДФайла); - Параметры.Вставить("ДатаСоздания", ТекущаяУниверсальнаяДата()); - ОтправитьСообщениеРезервнаяКопияОбластиСоздана(Параметры); - Если ЗначениеЗаполнено(АдресРезультата) Тогда - ПоместитьВоВременноеХранилище(ИДФайла, АдресРезультата); - КонецЕсли; - УстановитьФлагАктивностиВОбласти(Параметры.ОбластьДанных, Ложь); - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - ВызватьИсключение; - - КонецПопытки; - - Исключение - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Создание резервной копии области данных'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - Попытка - Если ИмяАрхива <> Неопределено Тогда - УдалитьФайлы(ИмяАрхива); - КонецЕсли; - Исключение - // При невозможности удаления файла выполнение не должно прерываться. - ЗаписьЖурналаРегистрации(НСтр("ru = 'Создание резервной копии области данных.Не удалось удалить временный файл'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - Если Параметры.ПоТребованию Тогда - ВызватьИсключение; - Иначе - Если Параметры.НомерПопытки > 3 Тогда - ОтправитьСообщениеОшибкаАрхивацииОбласти(Параметры); - ВызватьИсключение; - Иначе - // Отмена задания. - ОтменитьСозданиеРезервнойКопииОбласти(Параметры); - - // Перепланировать: текущее время области + 10 минут. - Параметры.НомерПопытки = Параметры.НомерПопытки + 1; - МоментПовторногоЗапуска = ТекущаяДатаОбласти(Параметры.ОбластьДанных); // Сейчас в области. - МоментПовторногоЗапуска = МоментПовторногоЗапуска + 10 * 60; // На 10 минут позже. - Параметры.Вставить("МоментЗапуска", МоментПовторногоЗапуска); - ЗапланироватьАрхивациюВОчереди(Параметры); - КонецЕсли; - КонецЕсли; - КонецПопытки; - -КонецПроцедуры - -Функция ТекущаяДатаОбласти(Знач ОбластьДанных) - - ЧасовойПояс = РаботаВМоделиСервиса.ПолучитьЧасовойПоясОбластиДанных(ОбластьДанных); - Возврат МестноеВремя(ТекущаяУниверсальнаяДата(), ЧасовойПояс); - -КонецФункции - -Функция ТребуетсяВыгрузка(Знач ПараметрыВыгрузки) - - Если НЕ РаботаВМоделиСервиса.СеансЗапущенБезРазделителей() - И ПараметрыВыгрузки.ОбластьДанных <> РаботаВМоделиСервиса.ЗначениеРазделителяСеанса() Тогда - - ВызватьИсключение(НСтр("ru = 'Запрещено работать с данными области кроме текущей'")); - КонецЕсли; - - Результат = ПараметрыВыгрузки.Принудительно; - - Если Не Результат Тогда - - Менеджер = Константы.ВыполнитьРезервноеКопированиеОбластиДанных.СоздатьМенеджерЗначения(); - Менеджер.ОбластьДанныхВспомогательныеДанные = ПараметрыВыгрузки.ОбластьДанных; - Менеджер.Прочитать(); - Результат = Менеджер.Значение; - - КонецЕсли; - - Возврат Результат; - -КонецФункции - -// Создает незаполненную структуру нужного формата. -// -// Возвращаемое значение: -// Структура: -// - ОбластьДанных - Число. -// - ИДКопии - УникальныйИдентификатор; Неопределено. -// - МоментЗапуска - Дата - момент запуска архивирования области. -// - Принудительно - Булево - Флаг из МС: необходимость создавать копию вне зависимости от активности пользователей. -// - ПоТребованию - Булево - флаг интерактивного запуска архивирования. Если из МС - всегда Ложь. -// - ИДФайла - УникальныйИдентификатор - ИД файла выгрузки в хранилище МС. -// - НомерПопытки - Число - Счетчик попыток. Начальное значение: 1. -// -Функция СоздатьПустыеПараметрыВыгрузки() Экспорт - - ПараметрыВыгрузки = Новый Структура; - ПараметрыВыгрузки.Вставить("ОбластьДанных"); - ПараметрыВыгрузки.Вставить("ИДКопии"); - ПараметрыВыгрузки.Вставить("МоментЗапуска"); - ПараметрыВыгрузки.Вставить("Принудительно"); - ПараметрыВыгрузки.Вставить("ПоТребованию"); - ПараметрыВыгрузки.Вставить("ИДФайла"); - ПараметрыВыгрузки.Вставить("НомерПопытки", 1); - Возврат ПараметрыВыгрузки; - -КонецФункции - -// Отменяет запланированное ранее создание резервной копии. -// -// ПараметрыОтмены - Структура -// ОбластьДанных - Число - область данных создание резервной копии в которой требуется отменить. -// ИДКопии - УникальныйИдентификатор - идентификатор копии, создание которой требуется отменить. -// -Процедура ОтменитьСозданиеРезервнойКопииОбласти(Знач ПараметрыОтмены) Экспорт - - Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда - ВызватьИсключение(НСтр("ru = 'Не достаточно прав для выполнения операции'")); - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - - ИмяМетода = ИмяМетодаФоновогоРезервногоКопирования(); - - Отбор = Новый Структура("ИмяМетода, Ключ, ОбластьДанных", - ИмяМетода, "" + ПараметрыОтмены.ИДКопии, ПараметрыОтмены.ОбластьДанных); - Задания = ОчередьЗаданий.ПолучитьЗадания(Отбор); - - Для Каждого Задание Из Задания Цикл - ОчередьЗаданий.УдалитьЗадание(Задание.Идентификатор); - КонецЦикла; - -КонецПроцедуры - -// Сообщить об успешной архивации текущей области. -// -Процедура ОтправитьСообщениеРезервнаяКопияОбластиСоздана(Знач ПараметрыСообщения) - - НачатьТранзакцию(); - - Попытка - - Сообщение = СообщенияВМоделиСервиса.НовоеСообщение( - СообщенияКонтрольРезервногоКопированияИнтерфейс.СообщениеРезервнаяКопияОбластиСоздана()); - - Тело = Сообщение.Body; - - Тело.Zone = ПараметрыСообщения.ОбластьДанных; - Тело.BackupId = ПараметрыСообщения.ИДКопии; - Тело.FileId = ПараметрыСообщения.ИДФайла; - Тело.Date = ПараметрыСообщения.ДатаСоздания; - Если ПараметрыСообщения.Свойство("Ежедневная") Тогда - Тело.Daily = ПараметрыСообщения.Ежедневная; - Тело.Monthly = ПараметрыСообщения.Ежемесячная; - Тело.Yearly = ПараметрыСообщения.Ежегодная; - Иначе - Тело.Daily = Ложь; - Тело.Monthly = Ложь; - Тело.Yearly = Ложь; - КонецЕсли; - Тело.ConfigurationVersion = Метаданные.Версия; - - СообщенияВМоделиСервиса.ОтправитьСообщение( - Сообщение, - РаботаВМоделиСервиса.КонечнаяТочкаМенеджераСервиса()); - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - -// Планировать архивацию области в прикладной базе. -// -Процедура ОтправитьСообщениеОшибкаАрхивацииОбласти(Знач ПараметрыСообщения) - - НачатьТранзакцию(); - Попытка - - Сообщение = СообщенияВМоделиСервиса.НовоеСообщение( - СообщенияКонтрольРезервногоКопированияИнтерфейс.СообщениеОшибкаАрхивацииОбласти()); - - Сообщение.Body.Zone = ПараметрыСообщения.ОбластьДанных; - Сообщение.Body.BackupId = ПараметрыСообщения.ИДКопии; - - СообщенияВМоделиСервиса.ОтправитьСообщение( - Сообщение, - РаботаВМоделиСервиса.КонечнаяТочкаМенеджераСервиса()); - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - -// Планировать архивацию области в прикладной базе. -// -Процедура ОтправитьСообщениеАрхивацияОбластиПропущена(Знач ПараметрыСообщения) - - НачатьТранзакцию(); - Попытка - - Сообщение = СообщенияВМоделиСервиса.НовоеСообщение( - СообщенияКонтрольРезервногоКопированияИнтерфейс.СообщениеАрхивацияОбластиПропущена()); - - Сообщение.Body.Zone = ПараметрыСообщения.ОбластьДанных; - Сообщение.Body.BackupId = ПараметрыСообщения.ИДКопии; - - СообщенияВМоделиСервиса.ОтправитьСообщение( - Сообщение, - РаботаВМоделиСервиса.КонечнаяТочкаМенеджераСервиса()); - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - -Функция СобытиеЖурналаРегистрации() - - Возврат НСтр("ru = 'Резервное копирование приложений'", ОбщегоНазначения.КодОсновногоЯзыка()); - -КонецФункции - -Процедура ЗаписатьСобытиеВЖурнал(Знач Событие, Знач Параметры) - - ЗаписьЖурналаРегистрации( - СобытиеЖурналаРегистрации() + "." + Событие, - УровеньЖурналаРегистрации.Информация, - , - , - ОбщегоНазначения.ЗначениеВСтрокуXML(Параметры)); - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Работа с настройками резервного копирования. - -// Возвращает структуру настроек резервного копирования области данных. -// -// Параметры: -// ОбластьДанных - Число; Неопределено - Если Неопределено, возвращаются системные настройки. -// -// Возвращаемое значение: -// Структура - структура настроек. -// См. РезервноеКопированиеОбластейДанныхПовтИсп.СоответствиеРусскихИменПолейНастроекАнглийским(). -// -Функция ПолучитьНастройкиРезервногоКопированияОбласти(Знач ОбластьДанных = Неопределено) Экспорт - - Если НЕ РаботаВМоделиСервиса.СеансЗапущенБезРазделителей() - И ОбластьДанных <> РаботаВМоделиСервиса.ЗначениеРазделителяСеанса() - И ОбластьДанных <> Неопределено Тогда - - ВызватьИсключение(НСтр("ru = 'Запрещено работать с данными области кроме текущей'")); - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - - Прокси = РезервноеКопированиеОбластейДанныхПовтИсп.ПроксиКонтроляРезервногоКопирования(); - - НастройкиXDTO = Неопределено; - СообщениеОбОшибке = Неопределено; - Если ОбластьДанных = Неопределено Тогда - ОперацияВыполнена = Прокси.GetDefaultSettings(НастройкиXDTO, СообщениеОбОшибке); - Иначе - ОперацияВыполнена = Прокси.GetSettings(ОбластьДанных, НастройкиXDTO, СообщениеОбОшибке); - КонецЕсли; - - Если НЕ ОперацияВыполнена Тогда - ШаблонСообщения = НСтр("ru = 'Ошибка при получении настроек резервного копирования: - |%1'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, СообщениеОбОшибке); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - - Возврат НастройкиXDTOВСтруктуру(НастройкиXDTO); - -КонецФункции - -// Записывает настройки резервного копирования области данных в хранилище менеджера сервиса. -// -// Параметры: -// ОбластьДанных - Число. -// НастройкиРезервногоКопирования - Структура. -// -// Возвращаемое значение: -// Булево - успешность записи. -// -Процедура УстановитьНастройкиРезервногоКопированияОбласти(Знач ОбластьДанных, Знач НастройкиРезервногоКопирования) Экспорт - - Если НЕ РаботаВМоделиСервиса.СеансЗапущенБезРазделителей() - И ОбластьДанных <> РаботаВМоделиСервиса.ЗначениеРазделителяСеанса() Тогда - - ВызватьИсключение(НСтр("ru = 'Запрещено работать с данными области кроме текущей'")); - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - - Прокси = РезервноеКопированиеОбластейДанныхПовтИсп.ПроксиКонтроляРезервногоКопирования(); - - Тип = Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/SaaS/1.0/XMLSchema/ZoneBackupControl", "Settings"); - НастройкиXDTO = Прокси.ФабрикаXDTO.Создать(Тип); - - СоответствиеИмен = РезервноеКопированиеОбластейДанныхПовтИсп.СоответствиеРусскихИменПолейНастроекАнглийским(); - Для Каждого ПараИменНастроек Из СоответствиеИмен Цикл - НастройкиXDTO[ПараИменНастроек.Ключ] = НастройкиРезервногоКопирования[ПараИменНастроек.Значение]; - КонецЦикла; - - СообщениеОбОшибке = Неопределено; - Если НЕ Прокси.SetSettings(ОбластьДанных, НастройкиXDTO, СообщениеОбОшибке) Тогда - ШаблонСообщения = НСтр("ru = 'Ошибка при сохранении настроек резервного копирования: - |%1'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, СообщениеОбОшибке); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Преобразования типов - -Функция НастройкиXDTOВСтруктуру(Знач НастройкиXDTO) - - Если НастройкиXDTO = Неопределено Тогда - Возврат Неопределено; - КонецЕсли; - - Результат = Новый Структура; - СоответствиеИмен = РезервноеКопированиеОбластейДанныхПовтИсп.СоответствиеРусскихИменПолейНастроекАнглийским(); - Для Каждого ПараИменНастроек Из СоответствиеИмен Цикл - Если НастройкиXDTO.Установлено(ПараИменНастроек.Ключ) Тогда - Результат.Вставить(ПараИменНастроек.Значение, НастройкиXDTO[ПараИменНастроек.Ключ]); - КонецЕсли; - КонецЦикла; - Возврат Результат; - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// ОБРАБОТЧИКИ ОБНОВЛЕНИЯ ИНФОРМАЦИОННОЙ БАЗЫ - -// Переносит данные из регистра УдалитьОбластиКРезервномуКопированию в значения разделенной -// константы ВыполнитьРезервноеКопированиеОбластиДанных. -// -Процедура ПеренестиСостояниеПланированияРезервногоКопированияВоВспомогательныеДанные() Экспорт - - Если Не РаботаВМоделиСервиса.РазделениеВключено() Тогда - Возврат; - КонецЕсли; - - НачатьТранзакцию(); - - Попытка - - ТекстЗапроса = - "ВЫБРАТЬ - | УдалитьОбластиКРезервномуКопированию.ОбластьДанных - |ИЗ - | РегистрСведений.УдалитьОбластиКРезервномуКопированию КАК УдалитьОбластиКРезервномуКопированию"; - Запрос = Новый Запрос(ТекстЗапроса); - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - - СостояниеПланирования = Константы.ВыполнитьРезервноеКопированиеОбластиДанных.СоздатьМенеджерЗначения(); - СостояниеПланирования.ОбластьДанныхВспомогательныеДанные = Выборка.ОбластьДанных; - СостояниеПланирования.Значение = Истина; - СостояниеПланирования.Записать(); - - КонецЦикла; - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанных/РезервноеКопированиеОбластейДанных.mdo b/SSL/src/CommonModules/РезервноеКопированиеОбластейДанных/РезервноеКопированиеОбластейДанных.mdo deleted file mode 100644 index bba092b5a..000000000 --- a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанных/РезервноеКопированиеОбластейДанных.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - РезервноеКопированиеОбластейДанных - - ru - Резервное копирование областей данных - - true - true - true - diff --git a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхДанныеФормИнтерфейс/Module.bsl b/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхДанныеФормИнтерфейс/Module.bsl deleted file mode 100644 index 31d6e31b2..000000000 --- a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхДанныеФормИнтерфейс/Module.bsl +++ /dev/null @@ -1,51 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныеПроцедурыИФункции - -Функция ПолучитьПараметрыФормыНастроек(Знач ОбластьДанных) Экспорт - - Параметры = Реализация().ПолучитьПараметрыФормыНастроек(ОбластьДанных); - Параметры.Вставить("ОбластьДанных", ОбластьДанных); - - Возврат Параметры; - -КонецФункции - -Функция ПолучитьНастройкиОбласти(Знач ОбластьДанных) Экспорт - - Возврат Реализация().ПолучитьНастройкиОбласти(ОбластьДанных); - -КонецФункции - -Процедура УстановитьНастройкиОбласти(Знач ОбластьДанных, Знач НовыеНастройки, Знач ИсходныеНастройки) Экспорт - - Реализация().УстановитьНастройкиОбласти(ОбластьДанных, НовыеНастройки, ИсходныеНастройки); - -КонецПроцедуры - -Функция ПолучитьСтандартныеНастройки() Экспорт - - Возврат Реализация().ПолучитьСтандартныеНастройки(); - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ - -Функция Реализация() - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РезервноеКопированиеОбластейДанныхМС") Тогда - Возврат ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеОбластейДанныхДанныеФормИнтерфейс"); - Иначе - Возврат ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеОбластейДанныхДанныеФормРеализацияWebСервис"); - КонецЕсли; - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхДанныеФормИнтерфейс/РезервноеКопированиеОбластейДанныхДанныеФормИнтерфейс.mdo b/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхДанныеФормИнтерфейс/РезервноеКопированиеОбластейДанныхДанныеФормИнтерфейс.mdo deleted file mode 100644 index 0cdd4594b..000000000 --- a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхДанныеФормИнтерфейс/РезервноеКопированиеОбластейДанныхДанныеФормИнтерфейс.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - РезервноеКопированиеОбластейДанныхДанныеФормИнтерфейс - - ru - Резервное копирование областей данных данные форм интерфейс - - true - true - true - diff --git a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхДанныеФормРеализацияWebСервис/Module.bsl b/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхДанныеФормРеализацияWebСервис/Module.bsl deleted file mode 100644 index 3d4808299..000000000 --- a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхДанныеФормРеализацияWebСервис/Module.bsl +++ /dev/null @@ -1,113 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныеПроцедурыИФункции - -Функция ПолучитьПараметрыФормыНастроек(Знач ОбластьДанных) Экспорт - - ИнформацияОбОшибке = Неопределено; - Параметры = Прокси().GetSettingsFormParameters( - ОбластьДанных, - КлючОбласти(), - ИнформацияОбОшибке); - // Имя операции не локализуется. - ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "GetSettingsFormParameters"); - - Возврат СериализаторXDTO.ПрочитатьXDTO(Параметры); - -КонецФункции - -Функция ПолучитьНастройкиОбласти(Знач ОбластьДанных) Экспорт - - ИнформацияОбОшибке = Неопределено; - Параметры = Прокси().GetZoneSettings( - ОбластьДанных, - КлючОбласти(), - ИнформацияОбОшибке); - ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "GetZoneSettings"); // Имя операции не локализуется. - - Возврат СериализаторXDTO.ПрочитатьXDTO(Параметры); - -КонецФункции - -Процедура УстановитьНастройкиОбласти(Знач ОбластьДанных, Знач НовыеНастройки, Знач ИсходныеНастройки) Экспорт - - ИнформацияОбОшибке = Неопределено; - Прокси().SetZoneSettings( - ОбластьДанных, - КлючОбласти(), - СериализаторXDTO.ЗаписатьXDTO(НовыеНастройки), - СериализаторXDTO.ЗаписатьXDTO(ИсходныеНастройки), - ИнформацияОбОшибке); - ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "SetZoneSettings"); // Имя операции не локализуется. - -КонецПроцедуры - -Функция ПолучитьСтандартныеНастройки() Экспорт - - ИнформацияОбОшибке = Неопределено; - Параметры = Прокси().GetDefaultSettings( - ИнформацияОбОшибке); - ОбработатьИнформациюОбОшибкеWebСервиса(ИнформацияОбОшибке, "GetDefaultSettings"); // Имя операции не локализуется. - - Возврат СериализаторXDTO.ПрочитатьXDTO(Параметры); - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ - -Функция КлючОбласти() - - УстановитьПривилегированныйРежим(Истина); - Возврат Константы.КлючОбластиДанных.Получить(); - -КонецФункции - -Функция Прокси() - - УстановитьПривилегированныйРежим(Истина); - АдресМенеджераСервиса = РаботаВМоделиСервиса.ВнутреннийАдресМенеджераСервиса(); - Если Не ЗначениеЗаполнено(АдресМенеджераСервиса) Тогда - ВызватьИсключение(НСтр("ru = 'Не установлены параметры связи с менеджером сервиса.'")); - КонецЕсли; - - АдресСервиса = АдресМенеджераСервиса + "/ws/ZoneBackupControl_1_0_2_1?wsdl"; - ИмяПользователя = РаботаВМоделиСервиса.ИмяСлужебногоПользователяМенеджераСервиса(); - ПарольПользователя = РаботаВМоделиСервиса.ПарольСлужебногоПользователяМенеджераСервиса(); - - ПараметрыПодключения = ОбщегоНазначения.ПараметрыПодключенияWSПрокси(); - ПараметрыПодключения.АдресWSDL = АдресСервиса; - ПараметрыПодключения.URIПространстваИмен = "http://www.1c.ru/1cFresh/ZoneBackupControl/1.0.2.1"; - ПараметрыПодключения.ИмяСервиса = "ZoneBackupControl_1_0_2_1"; - ПараметрыПодключения.ИмяПользователя = ИмяПользователя; - ПараметрыПодключения.Пароль = ПарольПользователя; - ПараметрыПодключения.Таймаут = 10; - - Прокси = ОбщегоНазначения.СоздатьWSПрокси(ПараметрыПодключения); - - Возврат Прокси; - -КонецФункции - -// Обрабатывает информация об ошибке полученную из web-сервиса. -// В случае если передана не пустая информация об ошибке, записывает -// подробное представление ошибки в журнал регистрации и вызывает -// исключение с текстом краткого представления об ошибке. -// -Процедура ОбработатьИнформациюОбОшибкеWebСервиса(Знач ИнформацияОбОшибке, Знач ИмяОперации) - - РаботаВМоделиСервиса.ОбработатьИнформациюОбОшибкеWebСервиса( - ИнформацияОбОшибке, - РезервноеКопированиеОбластейДанных.ИмяПодсистемыДляСобытийЖурналаРегистрации(), - "ZoneBackupControl", // Не локализуется - ИмяОперации); - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхДанныеФормРеализацияWebСервис/РезервноеКопированиеОбластейДанныхДанныеФормРеализацияWebСервис.mdo b/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхДанныеФормРеализацияWebСервис/РезервноеКопированиеОбластейДанныхДанныеФормРеализацияWebСервис.mdo deleted file mode 100644 index 2030738aa..000000000 --- a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхДанныеФормРеализацияWebСервис/РезервноеКопированиеОбластейДанныхДанныеФормРеализацияWebСервис.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - РезервноеКопированиеОбластейДанныхДанныеФормРеализацияWebСервис - - ru - Резервное копирование областей данных данные форм реализация web сервис - - true - true - true - diff --git a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхКлиент/Module.bsl b/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхКлиент/Module.bsl deleted file mode 100644 index 074aa0b8f..000000000 --- a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхКлиент/Module.bsl +++ /dev/null @@ -1,58 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 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 deleted file mode 100644 index b822732af..000000000 --- a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхКлиент/РезервноеКопированиеОбластейДанныхКлиент.mdo +++ /dev/null @@ -1,10 +0,0 @@ - - - РезервноеКопированиеОбластейДанныхКлиент - - ru - Резервное копирование областей данных клиент - - true - true - diff --git a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхПовтИсп/Module.bsl b/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхПовтИсп/Module.bsl deleted file mode 100644 index 6e9a132af..000000000 --- a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхПовтИсп/Module.bsl +++ /dev/null @@ -1,87 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -// Возвращает соответствие русских названий полей программных системных настроек -// английским из XDTO-пакета ZoneBackupControl Менеджера сервиса. -// (тип: {http://www.1c.ru/SaaS/1.0/XMLSchema/ZoneBackupControl}Settings). -// -// Возвращаемое значение: -// ФиксированноеСоответствие - соответствие русских имен полей настроек английским. -// -Функция СоответствиеРусскихИменПолейНастроекАнглийским() Экспорт - - Результат = Новый Соответствие; - - Результат.Вставить("CreateDailyBackup", "ФормироватьЕжедневныеКопии"); - Результат.Вставить("CreateMonthlyBackup", "ФормироватьЕжемесячныеКопии"); - Результат.Вставить("CreateYearlyBackup", "ФормироватьЕжегодныеКопии"); - Результат.Вставить("BackupCreationTime", "ВремяФормированияКопий"); - Результат.Вставить("MonthlyBackupCreationDay", "ЧислоМесяцаФормированияЕжемесячныхКопий"); - Результат.Вставить("YearlyBackupCreationMonth", "МесяцФормированияЕжегодныхКопий"); - Результат.Вставить("YearlyBackupCreationDay", "ЧислоМесяцаФормированияЕжегодныхКопий"); - Результат.Вставить("KeepDailyBackups", "КоличествоЕжедневныхКопий"); - Результат.Вставить("KeepMonthlyBackups", "КоличествоЕжемесячныхКопий"); - Результат.Вставить("KeepYearlyBackups", "КоличествоЕжегодныхКопий"); - Результат.Вставить("CreateDailyBackupOnUserWorkDaysOnly", "ФормироватьЕжедневныеКопииТолькоВДниРаботыПользователей"); - - Возврат Новый ФиксированноеСоответствие(Результат); - -КонецФункции - -// Определяет, поддерживает ли приложение функциональность резервного копирования. -// -// Возвращаемое значение: -// Булево - Истина, если приложение поддерживает функциональность резервного копирования. -// -Функция МенеджерСервисаПоддерживаетРезервноеКопирование() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - ПоддерживаемыеВерсии = ОбщегоНазначения.ПолучитьВерсииИнтерфейса( - РаботаВМоделиСервиса.ВнутреннийАдресМенеджераСервиса(), - РаботаВМоделиСервиса.ИмяСлужебногоПользователяМенеджераСервиса(), - РаботаВМоделиСервиса.ПарольСлужебногоПользователяМенеджераСервиса(), - "РезервноеКопированиеОбластейДанных"); - - Возврат ПоддерживаемыеВерсии.Найти("1.0.1.1") <> Неопределено; - -КонецФункции - -// Возвращает прокси web-сервиса контроля резервного копирования. -// -// Возвращаемое значение: -// WSПрокси - прокси менеджера сервиса. -// -Функция ПроксиКонтроляРезервногоКопирования() Экспорт - - АдресМенеджераСервиса = РаботаВМоделиСервиса.ВнутреннийАдресМенеджераСервиса(); - Если Не ЗначениеЗаполнено(АдресМенеджераСервиса) Тогда - ВызватьИсключение(НСтр("ru = 'Не установлены параметры связи с менеджером сервиса.'")); - КонецЕсли; - - АдресСервиса = АдресМенеджераСервиса + "/ws/ZoneBackupControl?wsdl"; - ИмяПользователя = РаботаВМоделиСервиса.ИмяСлужебногоПользователяМенеджераСервиса(); - ПарольПользователя = РаботаВМоделиСервиса.ПарольСлужебногоПользователяМенеджераСервиса(); - - ПараметрыПодключения = ОбщегоНазначения.ПараметрыПодключенияWSПрокси(); - ПараметрыПодключения.АдресWSDL = АдресСервиса; - ПараметрыПодключения.URIПространстваИмен = "http://www.1c.ru/SaaS/1.0/WS"; - ПараметрыПодключения.ИмяСервиса = "ZoneBackupControl"; - ПараметрыПодключения.ИмяПользователя = ИмяПользователя; - ПараметрыПодключения.Пароль = ПарольПользователя; - ПараметрыПодключения.Таймаут = 10; - - Прокси = ОбщегоНазначения.СоздатьWSПрокси(ПараметрыПодключения); - - Возврат Прокси; - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхПовтИсп/РезервноеКопированиеОбластейДанныхПовтИсп.mdo b/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхПовтИсп/РезервноеКопированиеОбластейДанныхПовтИсп.mdo deleted file mode 100644 index c91be78e4..000000000 --- a/SSL/src/CommonModules/РезервноеКопированиеОбластейДанныхПовтИсп/РезервноеКопированиеОбластейДанныхПовтИсп.mdo +++ /dev/null @@ -1,12 +0,0 @@ - - - РезервноеКопированиеОбластейДанныхПовтИсп - - ru - Резервное копирование областей данных повт исп - - true - true - true - DuringSession - diff --git a/SSL/src/CommonModules/СклонениеПредставленийОбъектов/Module.bsl b/SSL/src/CommonModules/СклонениеПредставленийОбъектов/Module.bsl index d777d896e..4f20ed805 100644 --- a/SSL/src/CommonModules/СклонениеПредставленийОбъектов/Module.bsl +++ b/SSL/src/CommonModules/СклонениеПредставленийОбъектов/Module.bsl @@ -8,8 +8,7 @@ #Область ПрограммныйИнтерфейс -// Склоняет ФИО -// Только для работы на ОС Windows. +// Определяет форму ФИО в заданном падеже. // // Параметры: // ФИО - Строка - Строка, в которой содержится ФИО для склонения. @@ -30,12 +29,15 @@ // Функция ПросклонятьФИО(ФИО, Падеж, Объект = Неопределено, Пол = Неопределено) Экспорт - Возврат Просклонять(ФИО, Падеж, Объект, Истина, Пол); + ПараметрыСклонения = СклонениеПредставленийОбъектовКлиентСервер.ПараметрыСклонения(); + ПараметрыСклонения.ЭтоФИО = Истина; + ПараметрыСклонения.Пол = Пол; + + Возврат Просклонять(ФИО, Падеж, Объект, ПараметрыСклонения); КонецФункции // Склоняет представление объекта. -// Только для работы на ОС Windows. // // Параметры: // Представление - Строка - Строка, в которой содержится ФИО для склонения. @@ -60,12 +62,12 @@ // Выполняет с формой действия, необходимые для подключения подсистемы Склонения. // // Параметры: -// Форма - УправляемаяФорма - форма для подключения механизма склонения. +// Форма - ФормаКлиентскогоПриложения - форма для подключения механизма склонения. // Представление - Строка - Строка для склонения. // ИмяОсновногоРеквизитаФормы - Строка - Имя основного реквизита формы. // Процедура ПриСозданииНаСервере(Форма, Представление, ИмяОсновногоРеквизитаФормы = "Объект") Экспорт - + МассивРеквизитов = Новый Массив; ЗаголовокРеквизита = НСтр("ru = 'Изменено представление'"); @@ -81,24 +83,22 @@ Если СтруктураСклонения <> Неопределено Тогда Форма.Склонения = Новый ФиксированнаяСтруктура(СтруктураСклонения); КонецЕсли; - + КонецПроцедуры // Обработчик события ПриЗаписиНаСервере управляемой формы объекта для склонения. // // Параметры: -// Форма - УправляемаяФорма - форма объекта склонения. -// Представление - Строка - Строка для склонения. -// Объект - ОбъектСклонения - Объект для склонения. -// ЭтоФИО - Булево - Признак склонения ФИО. -// Пол - Число - Пол физического лица (в случае склонения ФИО) -// 1 - мужской -// 2 - женский. +// Форма - ФормаКлиентскогоПриложения - форма объекта склонения. +// Представление - Строка - Строка для склонения. +// Объект - ОбъектСклонения - Объект для склонения. +// ПараметрыСклонения - Структура - необязательный, дополнительные параметры склонения, +// см. СклонениеПредставленийОбъектовКлиентСервер.ПараметрыСклонения(). // -Процедура ПриЗаписиНаСервере(Форма, Представление, Объект, ЭтоФИО = Ложь, Пол = Неопределено) Экспорт +Процедура ПриЗаписиФормыОбъектаСклонения(Форма, Представление, Объект, ПараметрыСклонения = Неопределено) Экспорт Если Форма.ИзмененоПредставление Тогда - СтруктураСклонений = ПросклонятьПредставлениеПоВсемПадежам(Представление, ЭтоФИО, Пол); + СтруктураСклонений = ПросклонятьПредставлениеПоВсемПадежам(Представление, ПараметрыСклонения); Форма.Склонения = Новый ФиксированнаяСтруктура(СтруктураСклонений); Форма.ИзмененоПредставление = Ложь; КонецЕсли; @@ -123,6 +123,49 @@ КонецПроцедуры +// Определяет доступен ли сервис склонения. +// +// Возвращаемое значение: +// Булево - Истина, если веб-сервис склонения доступен. +// +Функция ДоступенСервисСклонения() Экспорт + + Результат = ПараметрыСеанса.ПараметрыКлиентаНаСервере.Получить("ДоступенСервисСклонения"); + + Если Результат = Неопределено Тогда + Возврат Истина; + Иначе + Возврат Результат; + КонецЕсли; + +КонецФункции + +#Область УстаревшиеПроцедурыИФункции + +// Устарела. Следует использовать СклонениеПредставленийОбъектов.ПриЗаписиФормыОбъектаСклонения. +// Обработчик события ПриЗаписиНаСервере управляемой формы объекта для склонения. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения - форма объекта склонения. +// Представление - Строка - Строка для склонения. +// Объект - ОбъектСклонения - Объект для склонения. +// ЭтоФИО - Булево - Признак склонения ФИО. +// Пол - Число - Пол физического лица (в случае склонения ФИО) +// 1 - мужской +// 2 - женский. +// +Процедура ПриЗаписиНаСервере(Форма, Представление, Объект, ЭтоФИО = Ложь, Пол = Неопределено) Экспорт + + ПараметрыСклонения = СклонениеПредставленийОбъектовКлиентСервер.ПараметрыСклонения(); + ПараметрыСклонения.ЭтоФИО = ЭтоФИО; + ПараметрыСклонения.Пол = Пол; + + ПриЗаписиФормыОбъектаСклонения(Форма, Представление, Объект, ПараметрыСклонения); + +КонецПроцедуры + +// Устарела. Следует использовать СклонениеПредставленийОбъектов.ПросклонятьФИО. +// // Склоняет переданную фразу. // Только для работы на ОС Windows. // @@ -145,200 +188,17 @@ // Функция ПросклонятьФИОСПомощьюКомпоненты(Знач ФИО, Падеж, Результат, Пол = Неопределено) Экспорт - ПроверитьПараметрПолМетодаПросклонятьФИО(Пол); + ПроверитьПараметрПол(Пол, "СклонениеПредставленийОбъектов.ПросклонятьФИОСПомощьюКомпоненты"); + ПроверитьПараметрПадеж(Падеж, "СклонениеПредставленийОбъектов.ПросклонятьФИОСПомощьюКомпоненты"); - // Определяем значение по умолчанию (именительный падеж). - Результат = ФИО; - СклоняемаяЧасть = ""; - МассивСтрок = СтрРазделить(ФИО, " ", Ложь); - - // Выделим первые 3 слова, так как компонента не умеет склонять фразу большую 3х символов. - СловСклоняетКомпонента = 3; - НомерНесклоняемогоСимвола = СловСклоняетКомпонента + 1; - Для Номер = 1 По Мин(МассивСтрок.Количество(), СловСклоняетКомпонента) Цикл - Если Не ФизическиеЛицаКлиентСервер.ФИОНаписаноВерно(МассивСтрок[Номер-1], Истина) Тогда - НомерНесклоняемогоСимвола = Номер; - Прервать; - КонецЕсли; - СклоняемаяЧасть = СклоняемаяЧасть + ?(Номер > 1, " ", "") + МассивСтрок[Номер-1]; - КонецЦикла; - - Если ПустаяСтрока(СклоняемаяЧасть) Тогда - Возврат Ложь; - КонецЕсли; - - УстановитьОтключениеБезопасногоРежима(Истина); - Компонента = ОбщегоНазначения.ПодключитьКомпонентуИзМакета("CNameDecl", "ОбщийМакет.КомпонентаСклоненияФИО"); - Если Компонента = Неопределено Тогда - Возврат Ложь; - КонецЕсли; - - Попытка - Если Пол = Неопределено Тогда - Результат = Компонента.Просклонять(СклоняемаяЧасть, Падеж); - Иначе - Результат = Компонента.Просклонять(СклоняемаяЧасть, Падеж, Пол); - КонецЕсли; - Исключение - Событие = НСтр("ru = 'Склонение ФИО при помощи компоненты'", ОбщегоНазначения.КодОсновногоЯзыка()); - ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки()); - Возврат Ложь; - КонецПопытки; - УстановитьОтключениеБезопасногоРежима(Ложь); - - // Остальные символы добавим без склонения. - Для Номер = НомерНесклоняемогоСимвола По МассивСтрок.Количество() Цикл - Результат = Результат + " " + МассивСтрок[Номер-1]; - КонецЦикла; - - Результат = СокрЛП(Результат); + Результат = ПросклонятьФИО(ФИО, Падеж, , Пол); Возврат Истина; КонецФункции -// Определяет доступен ли сервис склонения. -// -// Возвращаемое значение: -// Булево - Истина, если веб-сервис склонения доступен. -// -Функция ДоступенСервисСклонения() Экспорт - - Результат = ПараметрыСеанса.ПараметрыКлиентаНаСервере.Получить("ДоступенСервисСклонения"); - - Если Результат = Неопределено Тогда - Возврат Истина; - Иначе - Возврат Результат; - КонецЕсли; - -КонецФункции - #КонецОбласти -#Область СлужебныйПрограммныйИнтерфейс - -// Склоняет переданную фразу по всем падежам. -// -// Параметры: -// Представление - Строка - Строка для склонения. -// ЭтоФИО - Булево - Признак склонения ФИО. -// Пол - Число - Пол физического лица (в случае склонения ФИО): 1 - мужской, 2 - женский. -// ПоказыватьСообщения - Булево - Признак, определяющий нужно ли показывать пользователю сообщения об ошибках. -// -// Возвращаемое значение: -// Структура - со свойствами: -// * ИменительныйПадеж - Строка. -// * РодительныйПадеж - Строка. -// * ДательныйПадеж - Строка. -// * ВинительныйПадеж - Строка. -// * ТворительныйПадеж - Строка. -// * ПредложныйПадеж - Строка. -// -Функция ПросклонятьПредставлениеПоВсемПадежам(Представление, ЭтоФИО = Ложь, Пол = Неопределено, ПоказыватьСообщения = Ложь) Экспорт - - СтруктураСклонения = СклоненияИзРегистра(Представление); - - Если СтруктураСклонения <> Неопределено Тогда - Возврат СтруктураСклонения; - КонецЕсли; - - СтруктураСклонения = ДанныеСклонения(Представление, ЭтоФИО, Пол, ПоказыватьСообщения); - - Возврат СтруктураСклонения; - -КонецФункции - -// Получает данные склонения по всем падежам. -// -// Параметры: -// Представление - Строка - Строка для склонения. -// ЭтоФИО - Булево - Признак склонения ФИО. -// Пол - Число - Пол физического лица (в случае склонения ФИО) -// 1 - мужской -// 2 - женский. -// ПоказыватьСообщения - Булево - Признак, определяющий нужно ли показывать пользователю сообщения об ошибках. -// -// Возвращаемое значение: -// Структура - со свойствами: -// * ИменительныйПадеж - Строка. -// * РодительныйПадеж - Строка. -// * ДательныйПадеж - Строка -// * ВинительныйПадеж - Строка. -// * ТворительныйПадеж - Строка. -// * ПредложныйПадеж - Строка. -// -Функция ДанныеСклонения(Представление, ЭтоФИО = Ложь, Пол = Неопределено, ПоказыватьСообщения = Ложь) Экспорт - - Если Не ЗначениеЗаполнено(Представление) Тогда - Возврат СклонениеПредставленийОбъектовКлиентСервер.СтруктураСклонения(); - КонецЕсли; - - Если Не ЭтоФИО Тогда - ИспользоватьСервисСклонения = Константы.ИспользоватьСервисСклоненияMorpher.Получить(); - Если ИспользоватьСервисСклонения Тогда - СтруктураСклонения = СтруктураСклоненияЧерезЗапросКСервису(Представление, ПоказыватьСообщения); - Если СтруктураСклонения <> Неопределено Тогда - Возврат СтруктураСклонения; - КонецЕсли; - КонецЕсли; - КонецЕсли; - - Если СтруктураСклонения = Неопределено Тогда - СтруктураСклонения = СклонениеПредставленийОбъектовКлиентСервер.СтруктураСклонения(); - КонецЕсли; - - ПросклонятьСПомощьюКомпоненты = Ложь; - - Если ЭтоФИО Тогда - ПросклонятьСПомощьюКомпоненты = Истина; - Иначе - МассивСтрок = СтрРазделить(Представление, " ", Ложь); - Если МассивСтрок.Количество() = 1 - И СтроковыеФункцииКлиентСерверРФ.ТолькоКириллицаВСтроке(Представление) Тогда - ПросклонятьСПомощьюКомпоненты = Истина; - КонецЕсли; - КонецЕсли; - - Если ПросклонятьСПомощьюКомпоненты Тогда - ПросклонятьСПомощьюКомпоненты(Представление, СтруктураСклонения, , Пол); - Иначе - ЗаполнитьСтруктуруСклоненияПоПредставлению(СтруктураСклонения, Представление); - КонецЕсли; - - Возврат СтруктураСклонения; - -КонецФункции - -Процедура ПросклонятьПредставлениеПоВсемПадежамДлительнаяОперация(Параметры, АдресРезультата) Экспорт - - Если Параметры.ИзмененоПредставление Или Параметры.Склонения = Неопределено Тогда - - СтруктураСклонения = ПросклонятьПредставлениеПоВсемПадежам(Параметры.Представление, Параметры.ЭтоФИО, Параметры.Пол, Истина); - ПоместитьВоВременноеХранилище(СтруктураСклонения, АдресРезультата); - - КонецЕсли; - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. - -// См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам. -Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт - - Разрешения = Новый Массив(); - - МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); - - Разрешения.Добавить(МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеВнешнейКомпоненты("ОбщийМакет.КомпонентаСклоненияФИО", - НСтр("ru = 'Для использования функций по склонению ФИО.'"))); - - ЗапросыРазрешений.Добавить( - МодульРаботаВБезопасномРежиме.ЗапросНаИспользованиеВнешнихРесурсов(Разрешения)); - -КонецПроцедуры - #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -360,63 +220,114 @@ // Возвращаемое значение: // Строка - Результат склонения представления объекта в падеже. // -Функция Просклонять(Представление, Падеж, Объект = Неопределено, ЭтоФИО = Ложь, Пол = Неопределено) +Функция Просклонять(Представление, Падеж, Объект = Неопределено, ПараметрыСклонения = Неопределено) - ПредставлениеВПадеже = ""; + ИмяПадежа = СоответствиеПадежей().Получить(Падеж); + ПроверитьПараметрПадеж(Падеж, "СклонениеПредставленийОбъектов.Просклонять"); - СтруктураСклонения = СклонениеПредставленийОбъектовКлиентСервер.СтруктураСклонения(); - - СоответствиеПадежей = СоответствиеПадежей(); - - ИмяПадежа = СоответствиеПадежей.Получить(Падеж); - - Если ИмяПадежа = Неопределено Тогда - Возврат ПредставлениеВПадеже; - КонецЕсли; - - // сначала получаем склонения из регистра СклоненияПредставленийОбъектов. СтруктураСклоненияИзРегистра = СклоненияИзРегистра(Представление, Объект); - + Если СтруктураСклоненияИзРегистра <> Неопределено И ЗначениеЗаполнено(СтруктураСклоненияИзРегистра[ИмяПадежа]) Тогда Возврат СтруктураСклоненияИзРегистра[ИмяПадежа]; КонецЕсли; - Если ЭтоФИО Тогда - - // Если склоняем ФИО, то используем компоненту склонения ФИО. - ПросклонятьСПомощьюКомпоненты(Представление, СтруктураСклонения, , Пол); - - // Запись в регистр СклоненияПредставленийОбъектов успешного склонения. - Если ЗначениеЗаполнено(Объект) Тогда - ЗаписатьВРегистрСклонения(Представление, Объект, СтруктураСклонения); - КонецЕсли; - - Возврат СтруктураСклонения[ИмяПадежа]; - - КонецЕсли; - - // Если склоняем не ФИО, тогда обращаемся к веб-сервису, если разрешено и сервис доступен. - ИспользоватьСервисСклонения = Константы.ИспользоватьСервисСклоненияMorpher.Получить(); - Если Не ИспользоватьСервисСклонения Тогда - Возврат Представление; - КонецЕсли; + СтруктураСклонения = ДанныеСклонения(Представление, ПараметрыСклонения); - СтруктураСклонения = СтруктураСклоненияЧерезЗапросКСервису(Представление, Ложь); - Если СтруктураСклонения = Неопределено Тогда - Возврат Представление; - КонецЕсли; - - // Запись в регистр СклоненияПредставленийОбъектов успешного склонения. Если ЗначениеЗаполнено(Объект) Тогда ЗаписатьВРегистрСклонения(Представление, Объект, СтруктураСклонения); КонецЕсли; - Если Не ЗначениеЗаполнено(СтруктураСклонения[ИмяПадежа]) Тогда - Возврат Представление; - КонецЕсли; - Возврат СтруктураСклонения[ИмяПадежа]; - + +КонецФункции + +// Склоняет переданную фразу по всем падежам. +// +// Параметры: +// Представление - Строка - Строка для склонения. +// ЭтоФИО - Булево - Признак склонения ФИО. +// Пол - Число - Пол физического лица (в случае склонения ФИО): 1 - мужской, 2 - женский. +// ПоказыватьСообщения - Булево - Признак, определяющий нужно ли показывать пользователю сообщения об ошибках. +// +// Возвращаемое значение: +// Структура - со свойствами: +// * Именительный - Строка. +// * Родительный - Строка. +// * Дательный - Строка. +// * Винительный - Строка. +// * Творительный - Строка. +// * Предложный - Строка. +// +Функция ПросклонятьПредставлениеПоВсемПадежам(Представление, ПараметрыСклонения = Неопределено, ПоказыватьСообщения = Ложь) + + СтруктураСклонения = СклоненияИзРегистра(Представление); + + Если СтруктураСклонения <> Неопределено Тогда + Возврат СтруктураСклонения; + КонецЕсли; + + СтруктураСклонения = ДанныеСклонения(Представление, ПараметрыСклонения, ПоказыватьСообщения); + + Возврат СтруктураСклонения; + +КонецФункции + +Процедура ПросклонятьПредставлениеПоВсемПадежамДлительнаяОперация(Параметры, АдресРезультата) Экспорт + + СтруктураСклонения = ПросклонятьПредставлениеПоВсемПадежам(Параметры.Представление, Параметры.ПараметрыСклонения, Истина); + ПоместитьВоВременноеХранилище(СтруктураСклонения, АдресРезультата); + +КонецПроцедуры + +// Получает данные склонения по всем падежам. +// +// Параметры: +// Представление - Строка - Строка для склонения. +// ЭтоФИО - Булево - Признак склонения ФИО. +// Пол - Число - Пол физического лица (в случае склонения ФИО) +// 1 - мужской +// 2 - женский. +// ПоказыватьСообщения - Булево - Признак, определяющий нужно ли показывать пользователю сообщения об ошибках. +// +// Возвращаемое значение: +// Структура - со свойствами: +// * Именительный - Строка. +// * Родительный - Строка. +// * Дательный - Строка +// * Винительный - Строка. +// * Творительный - Строка. +// * Предложный - Строка. +// +Функция ДанныеСклонения(Представление, ПараметрыСклонения = Неопределено, ПоказыватьСообщения = Ложь) Экспорт + + СтруктураСклонения = СклонениеПредставленийОбъектовКлиентСервер.СтруктураСклонения(); + + Если Не ЗначениеЗаполнено(Представление) Тогда + Возврат СтруктураСклонения; + КонецЕсли; + + СтандартнаяОбработка = Истина; + + ПросклонятьСПомощьюСервисаСклоненияMorpher(СтруктураСклонения, Представление, СтандартнаяОбработка); + + Если Не СтандартнаяОбработка Тогда + Возврат СтруктураСклонения; + КонецЕсли; + + ОписаниеСтроки = Неопределено; + ЗаполнитьОписаниеСтрокиПоПараметрамСклонения(ОписаниеСтроки, ПараметрыСклонения, "СклонениеПредставленийОбъектов.ДанныеСклонения"); + + ИменаПадежей = ОбщегоНазначения.ВыгрузитьКолонку(СтруктураСклонения, "Ключ"); + ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ИменаПадежей, "Именительный"); + + СтруктураСклонения["Именительный"] = Представление; + Для Каждого ИмяПадежа Из ИменаПадежей Цикл + ВариантыСклонения = ПолучитьСклоненияСтроки(Представление, ОписаниеСтроки, "ПД=" + ИмяПадежа); + СтруктураСклонения[ИмяПадежа] = ВариантыСклонения[0]; + КонецЦикла; + + Возврат СтруктураСклонения; + КонецФункции Процедура ЗаписатьВРегистрСклонения(Представление, Объект, Склонения) @@ -431,11 +342,16 @@ ХешПредставления = ОбщегоНазначения.КонтрольнаяСуммаСтрокой(Представление); НаборЗаписейСклонения = РегистрыСведений.СклоненияПредставленийОбъектов.СоздатьНаборЗаписей(); НаборЗаписейСклонения.Отбор.Объект.Установить(Объект.Ссылка); - + НоваяСтрока = НаборЗаписейСклонения.Добавить(); НоваяСтрока.Объект = Объект.Ссылка; НоваяСтрока.ХешПредставления = ХешПредставления; - ЗаполнитьЗначенияСвойств(НоваяСтрока, Склонения); + НоваяСтрока.ИменительныйПадеж = Склонения.Именительный; + НоваяСтрока.РодительныйПадеж = Склонения.Родительный; + НоваяСтрока.ДательныйПадеж = Склонения.Дательный; + НоваяСтрока.ВинительныйПадеж = Склонения.Винительный; + НоваяСтрока.ТворительныйПадеж = Склонения.Творительный; + НоваяСтрока.ПредложныйПадеж = Склонения.Предложный; НаборЗаписейСклонения.Записать(); @@ -443,6 +359,23 @@ #Область СервисСклонений +Процедура ПросклонятьСПомощьюСервисаСклоненияMorpher(СтруктураСклонения, Представление, СтандартнаяОбработка) + + ИспользоватьСервисСклонения = Константы.ИспользоватьСервисСклоненияMorpher.Получить(); + Если Не ИспользоватьСервисСклонения Тогда + Возврат; + КонецЕсли; + + СклоненияЧерезСервис = СтруктураСклоненияЧерезЗапросКСервису(Представление, Ложь); + Если СклоненияЧерезСервис = Неопределено Тогда + Возврат; + КонецЕсли; + + СтандартнаяОбработка = Ложь; + ЗаполнитьЗначенияСвойств(СтруктураСклонения, СклоненияЧерезСервис); + +КонецПроцедуры + Функция СтруктураСклоненияЧерезЗапросКСервису(СклоняемыйТекст, ПоказыватьСообщения) Если Не ДоступенСервисСклонения() Тогда @@ -465,12 +398,12 @@ СтруктураОтвета = СтруктураОтветаСервисаСклонений(Ответ); СтруктураСклонения = СклонениеПредставленийОбъектовКлиентСервер.СтруктураСклонения(); - СтруктураСклонения.ИменительныйПадеж = СклоняемыйТекст; - СтруктураСклонения.РодительныйПадеж = СтруктураОтвета.Р; - СтруктураСклонения.ДательныйПадеж = СтруктураОтвета.Д; - СтруктураСклонения.ВинительныйПадеж = СтруктураОтвета.В; - СтруктураСклонения.ТворительныйПадеж = СтруктураОтвета.Т; - СтруктураСклонения.ПредложныйПадеж = СтруктураОтвета.П; + СтруктураСклонения.Именительный = СклоняемыйТекст; + СтруктураСклонения.Родительный = СтруктураОтвета.Р; + СтруктураСклонения.Дательный = СтруктураОтвета.Д; + СтруктураСклонения.Винительный = СтруктураОтвета.В; + СтруктураСклонения.Творительный = СтруктураОтвета.Т; + СтруктураСклонения.Предложный = СтруктураОтвета.П; Возврат СтруктураСклонения; @@ -589,143 +522,166 @@ УстановитьОтключениеБезопасногоРежима(Истина); УстановитьПривилегированныйРежим(Истина); - + СтруктураСклонения = Неопределено; + Запрос = Новый Запрос; - - Запрос.Текст = - "ВЫБРАТЬ - | КОЛИЧЕСТВО(ВЫРАЗИТЬ(СклоненияПредставленийОбъектов.ИменительныйПадеж КАК СТРОКА(255))) КАК КоличествоНаборовСклонений, - | СклоненияПредставленийОбъектов.ХешПредставления - |ПОМЕСТИТЬ ТаблицаРегистраБезОтбораПоОбъекту - |ИЗ - | РегистрСведений.СклоненияПредставленийОбъектов КАК СклоненияПредставленийОбъектов - |ГДЕ - | СклоненияПредставленийОбъектов.ХешПредставления = &ХешПредставления - | - |СГРУППИРОВАТЬ ПО - | СклоненияПредставленийОбъектов.ХешПредставления - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | СклоненияПредставленийОбъектов.ИменительныйПадеж, - | СклоненияПредставленийОбъектов.РодительныйПадеж, - | СклоненияПредставленийОбъектов.ДательныйПадеж, - | СклоненияПредставленийОбъектов.ВинительныйПадеж, - | СклоненияПредставленийОбъектов.ТворительныйПадеж, - | СклоненияПредставленийОбъектов.ПредложныйПадеж, - | 0 КАК Приоритет - |ИЗ - | РегистрСведений.СклоненияПредставленийОбъектов КАК СклоненияПредставленийОбъектов - |ГДЕ - | &ИспользуетсяОтборПоОбъекту - | И СклоненияПредставленийОбъектов.Объект = &Объект - | И СклоненияПредставленийОбъектов.ХешПредставления = &ХешПредставления - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | СклоненияПредставленийОбъектов.ИменительныйПадеж, - | СклоненияПредставленийОбъектов.РодительныйПадеж, - | СклоненияПредставленийОбъектов.ДательныйПадеж, - | СклоненияПредставленийОбъектов.ВинительныйПадеж, - | СклоненияПредставленийОбъектов.ТворительныйПадеж, - | СклоненияПредставленийОбъектов.ПредложныйПадеж, - | 1 - |ИЗ - | РегистрСведений.СклоненияПредставленийОбъектов КАК СклоненияПредставленийОбъектов - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаРегистраБезОтбораПоОбъекту КАК ТаблицаРегистраБезОтбораПоОбъекту - | ПО СклоненияПредставленийОбъектов.ХешПредставления = ТаблицаРегистраБезОтбораПоОбъекту.ХешПредставления - | И (ТаблицаРегистраБезОтбораПоОбъекту.КоличествоНаборовСклонений = 1) - |ГДЕ - | СклоненияПредставленийОбъектов.ХешПредставления = &ХешПредставления - | - |УПОРЯДОЧИТЬ ПО - | Приоритет"; - Запрос.УстановитьПараметр("ХешПредставления", ОбщегоНазначения.КонтрольнаяСуммаСтрокой(Представление)); Запрос.УстановитьПараметр("Объект", Объект); Запрос.УстановитьПараметр("ИспользуетсяОтборПоОбъекту", ЗначениеЗаполнено(Объект)); + Запрос.Текст = + "ВЫБРАТЬ + | КОЛИЧЕСТВО(ВЫРАЗИТЬ(СклоненияПредставленийОбъектов.ИменительныйПадеж КАК СТРОКА(255))) КАК КоличествоНаборовСклонений, + | СклоненияПредставленийОбъектов.ХешПредставления КАК ХешПредставления + |ПОМЕСТИТЬ ТаблицаРегистраБезОтбораПоОбъекту + |ИЗ + | РегистрСведений.СклоненияПредставленийОбъектов КАК СклоненияПредставленийОбъектов + |ГДЕ + | СклоненияПредставленийОбъектов.ХешПредставления = &ХешПредставления + | + |СГРУППИРОВАТЬ ПО + | СклоненияПредставленийОбъектов.ХешПредставления + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | СклоненияПредставленийОбъектов.ИменительныйПадеж КАК Именительный, + | СклоненияПредставленийОбъектов.РодительныйПадеж КАК Родительный, + | СклоненияПредставленийОбъектов.ДательныйПадеж КАК Дательный, + | СклоненияПредставленийОбъектов.ВинительныйПадеж КАК Винительный, + | СклоненияПредставленийОбъектов.ТворительныйПадеж КАК Творительный, + | СклоненияПредставленийОбъектов.ПредложныйПадеж КАК Предложный, + | 0 КАК Приоритет + |ИЗ + | РегистрСведений.СклоненияПредставленийОбъектов КАК СклоненияПредставленийОбъектов + |ГДЕ + | &ИспользуетсяОтборПоОбъекту + | И СклоненияПредставленийОбъектов.Объект = &Объект + | И СклоненияПредставленийОбъектов.ХешПредставления = &ХешПредставления + | + |ОБЪЕДИНИТЬ ВСЕ + | + |ВЫБРАТЬ + | СклоненияПредставленийОбъектов.ИменительныйПадеж, + | СклоненияПредставленийОбъектов.РодительныйПадеж, + | СклоненияПредставленийОбъектов.ДательныйПадеж, + | СклоненияПредставленийОбъектов.ВинительныйПадеж, + | СклоненияПредставленийОбъектов.ТворительныйПадеж, + | СклоненияПредставленийОбъектов.ПредложныйПадеж, + | 1 + |ИЗ + | РегистрСведений.СклоненияПредставленийОбъектов КАК СклоненияПредставленийОбъектов + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаРегистраБезОтбораПоОбъекту КАК ТаблицаРегистраБезОтбораПоОбъекту + | ПО СклоненияПредставленийОбъектов.ХешПредставления = ТаблицаРегистраБезОтбораПоОбъекту.ХешПредставления + | И (ТаблицаРегистраБезОтбораПоОбъекту.КоличествоНаборовСклонений = 1) + |ГДЕ + | СклоненияПредставленийОбъектов.ХешПредставления = &ХешПредставления + | + |УПОРЯДОЧИТЬ ПО + | Приоритет"; Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда СтруктураСклонения = СклонениеПредставленийОбъектовКлиентСервер.СтруктураСклонения(); ЗаполнитьЗначенияСвойств(СтруктураСклонения, Выборка); КонецЕсли; - - Возврат СтруктураСклонения; + + Возврат СтруктураСклонения; КонецФункции -Процедура ПросклонятьСПомощьюКомпоненты(Представление, СтруктураСклонения, Падеж = 0, Пол = Неопределено) - - СоответствиеПадежей = СоответствиеПадежей(); - - Если Падеж = 0 Тогда - СтруктураСклонения.ИменительныйПадеж = Представление; - - Для НомерПадежа = 2 По 6 Цикл - - ПросклонятьФИОСПомощьюКомпоненты(Представление, НомерПадежа, СтруктураСклонения[СоответствиеПадежей.Получить(НомерПадежа)], Пол); - - КонецЦикла; - - Иначе - - ИмяПадежа = СоответствиеПадежей.Получить(Падеж); - Если ИмяПадежа <> Неопределено Тогда - ПросклонятьФИОСПомощьюКомпоненты(Представление, Падеж, СтруктураСклонения[ИмяПадежа], Пол); - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - Функция СоответствиеПадежей() СоответствиеПадежей = Новый Соответствие; - СоответствиеПадежей.Вставить(1, "ИменительныйПадеж"); - СоответствиеПадежей.Вставить(2, "РодительныйПадеж"); - СоответствиеПадежей.Вставить(3, "ДательныйПадеж"); - СоответствиеПадежей.Вставить(4, "ВинительныйПадеж"); - СоответствиеПадежей.Вставить(5, "ТворительныйПадеж"); - СоответствиеПадежей.Вставить(6, "ПредложныйПадеж"); + СоответствиеПадежей.Вставить(1, "Именительный"); + СоответствиеПадежей.Вставить(2, "Родительный"); + СоответствиеПадежей.Вставить(3, "Дательный"); + СоответствиеПадежей.Вставить(4, "Винительный"); + СоответствиеПадежей.Вставить(5, "Творительный"); + СоответствиеПадежей.Вставить(6, "Предложный"); Возврат СоответствиеПадежей; КонецФункции -Процедура ЗаполнитьСтруктуруСклоненияПоПредставлению(СтруктураСклонения, Представление) - - Для Каждого КлючИЗначение Из СтруктураСклонения Цикл - СтруктураСклонения.Вставить(КлючИЗначение.Ключ, Представление); - КонецЦикла; - -КонецПроцедуры - Функция ЕстьПравоДоступаКОбъекту(Ссылка) Экспорт Возврат ПравоДоступа("Редактирование", Ссылка.Метаданные()); КонецФункции -Процедура ПроверитьПараметрПолМетодаПросклонятьФИО(Пол) +Процедура ЗаполнитьОписаниеСтрокиПоПараметрамСклонения(ОписаниеСтроки, ПараметрыСклонения, ИмяПроцедурыИлиФункции) + + Если ПараметрыСклонения = Неопределено Тогда + ПараметрыСклонения = СклонениеПредставленийОбъектовКлиентСервер.ПараметрыСклонения(); + КонецЕсли; + + ПроверитьПараметрыСклонения(ПараметрыСклонения, ИмяПроцедурыИлиФункции); + + Если Не ПараметрыСклонения.ЭтоФИО Тогда + Возврат; + КонецЕсли; + + Если ПараметрыСклонения.Пол = Неопределено Тогда + Возврат; + КонецЕсли; + + Если ПараметрыСклонения.Пол = 1 Тогда + ОписаниеСтроки = "ПЛ=Мужской"; + КонецЕсли; + + Если ПараметрыСклонения.Пол = 2 Тогда + ОписаниеСтроки = "ПЛ=Женский"; + КонецЕсли; + +КонецПроцедуры + +Процедура ПроверитьПараметрыСклонения(ПараметрыСклонения, ИмяПроцедурыИлиФункции) + + ПроверитьПараметрЭтоФИО(ПараметрыСклонения.ЭтоФИО, ИмяПроцедурыИлиФункции); + ПроверитьПараметрПол(ПараметрыСклонения.Пол, ИмяПроцедурыИлиФункции); + +КонецПроцедуры + +Процедура ПроверитьПараметрЭтоФИО(ЭтоФИО, ИмяПроцедурыИлиФункции) + + ОбщегоНазначенияКлиентСервер.ПроверитьПараметр( + ИмяПроцедурыИлиФункции, "ЭтоФИО", ЭтоФИО, Тип("Булево")); + +КонецПроцедуры + +Процедура ПроверитьПараметрПол(Пол, ИмяПроцедурыИлиФункции) Если Пол = Неопределено Тогда Возврат; КонецЕсли; ОбщегоНазначенияКлиентСервер.ПроверитьПараметр( - "СклонениеПредставленийОбъектов.ПросклонятьФИО", "Пол", Пол, Тип("Число")); + ИмяПроцедурыИлиФункции, "Пол", Пол, Тип("Число")); ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Недопустимое значение параметра %1 в %2. |параметр должен числом 1 (мужской) или 2 (женский); передано значение: %3 (тип %4).'"), - "Пол", "СклонениеПредставленийОбъектов.ПросклонятьФИО", Пол, ТипЗнч(Пол)); + "Пол", ИмяПроцедурыИлиФункции, Пол, ТипЗнч(Пол)); ОбщегоНазначенияКлиентСервер.Проверить(Пол = 1 Или Пол = 2, ТекстСообщения); КонецПроцедуры +Процедура ПроверитьПараметрПадеж(Падеж, ИмяПроцедурыИлиФункции) + + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Недопустимое значение параметра Падеж в СклонениеПредставлениеОбъектов.Просклонять. + |Параметр должен быть числом, обозначающим порядковый номер падежа, от 1 до 6. + |Передано значение %1 (тип %2).'"), + Падеж, + ТипЗнч(Падеж)); + + ОбщегоНазначенияКлиентСервер.Проверить( + ТипЗнч(Падеж) = Тип("Число") И (Падеж >= 1 И Падеж <= 6), + ТекстСообщения, + ИмяПроцедурыИлиФункции); + +КонецПроцедуры + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/СклонениеПредставленийОбъектовВызовСервера/Module.bsl b/SSL/src/CommonModules/СклонениеПредставленийОбъектовВызовСервера/Module.bsl index 600c667d2..34330d9c0 100644 --- a/SSL/src/CommonModules/СклонениеПредставленийОбъектовВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/СклонениеПредставленийОбъектовВызовСервера/Module.bsl @@ -8,17 +8,26 @@ #Область СлужебныеПроцедурыИФункции -Процедура ПросклонятьПредставлениеПоВсемПадежам(Представление, Склонения, ЭтоФИО = Ложь, Пол = Неопределено, ПоказыватьСообщения = Ложь) Экспорт +Функция ДлительнаяОперацияСклоненияПоПадежам(ИдентификаторФормы, Представление, ПараметрыСклонения) Экспорт - СтруктураСклонений = СклонениеПредставленийОбъектов.ПросклонятьПредставлениеПоВсемПадежам(Представление, ЭтоФИО, Пол, ПоказыватьСообщения); - Склонения = Новый ФиксированнаяСтруктура(СтруктураСклонений); - -КонецПроцедуры + ПараметрыПроцедуры = Новый Структура( + "Представление, + |ПараметрыСклонения"); + ПараметрыПроцедуры.Представление = Представление; + ПараметрыПроцедуры.ПараметрыСклонения = ПараметрыСклонения; + + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы); + ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Склонение'"); + + Возврат ДлительныеОперации.ВыполнитьВФоне("СклонениеПредставленийОбъектов.ПросклонятьПредставлениеПоВсемПадежамДлительнаяОперация", + ПараметрыПроцедуры, ПараметрыВыполнения); + +КонецФункции Функция ЕстьПравоДоступаКОбъекту(Ссылка) Экспорт Возврат СклонениеПредставленийОбъектов.ЕстьПравоДоступаКОбъекту(Ссылка); КонецФункции - + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиент/Module.bsl b/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиент/Module.bsl index e588f72fa..d3077a167 100644 --- a/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиент/Module.bsl +++ b/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиент/Module.bsl @@ -8,43 +8,88 @@ #Область ПрограммныйИнтерфейс -// Обработчик события ПриИзменении элемента формы, подлежащего склонению. -// -// Параметры: -// Форма - УправляемаяФорма - форма, содержащая элемент, подлежащий склонению. +// Склоняет переданную фразу по всем падежам. +// Результат фиксируется в данных формы. // -Процедура ПриИзмененииПредставления(Форма) Экспорт +// Параметры: +// Форма - ФормаКлиентскогоПриложения - форма объекта склонения. +// Представление - Строка - Строка для склонения. +// ПараметрыСклонения - Структура - параметры склонения, созданные методом СклонениеПредставленийОбъектовКлиентСервер.ПараметрыСклонения(). +// ПоказыватьСообщения - Булево - Признак, определяющий нужно ли показывать пользователю сообщения об ошибках. +// +Процедура ПросклонятьПредставление(Форма, Представление, ПараметрыСклонения = Неопределено, ПоказыватьСообщения = Ложь) Экспорт Форма.ИзмененоПредставление = Истина; - Форма.ПодключитьОбработчикОжидания("Подключаемый_ПросклонятьПредставлениеПоВсемПадежам", 2, Истина); - -КонецПроцедуры - -// Склоняет переданную фразу по всем падежам. -// Для вызова из обработчика формы Подключаемый_ПросклонятьПредставлениеПоВсемПадежам. -// -// Параметры: -// Форма - УправляемаяФорма - форма объекта склонения. -// Представление - Строка - Строка для склонения. -// ЭтоФИО - Булево - Признак склонения ФИО. -// Пол - Число - Пол физического лица (в случае склонения ФИО): 1 - мужской, 2 - женский. -// ПоказыватьСообщения - Булево - Признак, определяющий нужно ли показывать пользователю сообщения об ошибках. -// -Процедура ПросклонятьПредставлениеПоВсемПадежам(Форма, Представление, ЭтоФИО = Ложь, Пол = Неопределено, ПоказыватьСообщения = Ложь) Экспорт - - Если Форма.ИзмененоПредставление Или Форма.Склонения = Неопределено Тогда - Склонения = Форма.Склонения; - СклонениеПредставленийОбъектовВызовСервера.ПросклонятьПредставлениеПоВсемПадежам(Представление, Склонения, ЭтоФИО, Пол, ПоказыватьСообщения); - Форма.Склонения = Склонения; - Форма.ИзмененоПредставление = Ложь; - КонецЕсли; + НачатьСклонение(Форма, Представление, ПараметрыСклонения, ПоказыватьСообщения); КонецПроцедуры // Обработчик команды "Склонения" формы объекта склонения. +// Открывает форму редактирования склонений представления по всем падежам. // // Параметры: -// Форма - УправляемаяФорма - форма объекта склонения. +// Форма - ФормаКлиентскогоПриложения - форма объекта склонения. +// Представление - Строка - Строка для склонения. +// ПараметрыСклонения - Структура - параметры склонения, созданные методом СклонениеПредставленийОбъектовКлиентСервер.ПараметрыСклонения(). +// +Процедура ПоказатьСклонение(Форма, Представление, ПараметрыСклонения = Неопределено) Экспорт + + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("Форма", Форма); + + Оповещение = Новый ОписаниеОповещения("ОткрытьФормуСклоненияЗавершение", ЭтотОбъект, ДополнительныеПараметры); + + ЕстьПравоДоступаКОбъекту = СклонениеПредставленийОбъектовВызовСервера.ЕстьПравоДоступаКОбъекту(Форма.Параметры.Ключ); + + СтруктураПараметров = Новый Структура; + СтруктураПараметров.Вставить("Склонения", Форма.Склонения); + СтруктураПараметров.Вставить("Представление", Представление); + СтруктураПараметров.Вставить("ПараметрыСклонения", ПараметрыСклонения); + СтруктураПараметров.Вставить("ИзмененоПредставление", Форма.ИзмененоПредставление); + СтруктураПараметров.Вставить("ТолькоПросмотр", Не ЕстьПравоДоступаКОбъекту); + + ОткрытьФорму("ОбщаяФорма.Склонения", СтруктураПараметров, Форма, , , , Оповещение); + +КонецПроцедуры + +#Область УстаревшиеПроцедурыИФункции + +// Устарела. См. СклонениеПредставленийОбъектовКлиент.ПросклонятьПредставлениеПоВсемПадежам. +Процедура ПриИзмененииПредставления(Форма) Экспорт + + ТекстСообщения = НСтр("ru = 'Метод СклонениеПредставленийОбъектовКлиент.ПриИзмененииПредставления более не поддерживается. + |Вместо него следует использовать СклонениеПредставленийОбъектовКлиент.ПросклонятьПредставление'"); + ОбщегоНазначенияКлиентСервер.Проверить(Ложь, ТекстСообщения, Форма.ИмяФормы); + +КонецПроцедуры + +// Устарела. См. СклонениеПредставленийОбъектовКлиент.ПросклонятьПредставление. +// Склоняет переданную фразу по всем падежам. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения - форма объекта склонения. +// Представление - Строка - Строка для склонения. +// ЭтоФИО - Булево - Признак склонения ФИО. +// Пол - Число - Пол физического лица (в случае склонения ФИО) +// 1 - мужской +// 2 - женский. +// ПоказыватьСообщения - Булево - Признак, определяющий нужно ли показывать пользователю сообщения об ошибках. +// +Процедура ПросклонятьПредставлениеПоВсемПадежам(Форма, Представление, ЭтоФИО = Ложь, Пол = Неопределено, ПоказыватьСообщения = Ложь) Экспорт + + ПараметрыСклонения = СклонениеПредставленийОбъектовКлиентСервер.ПараметрыСклонения(); + ПараметрыСклонения.ЭтоФИО = ЭтоФИО; + ПараметрыСклонения.Пол = Пол; + + ПросклонятьПредставление(Форма, Представление, ПараметрыСклонения, ПоказыватьСообщения); + +КонецПроцедуры + +// Устарела. См. СклонениеПредставленийОбъектовКлиент.ПоказатьСклонение. +// Обработчик команды "Склонения" формы объекта склонения. +// +// Параметры: +// Форма - ФормаКлиентскогоПриложения - форма объекта склонения. // Представление - Строка - Строка для склонения. // ЭтоФИО - Булево - Признак склонения ФИО. // Пол - Число - Пол физического лица (в случае склонения ФИО) @@ -52,45 +97,89 @@ // 2 - женский. // Процедура ОбработатьКомандуСклонения(Форма, Представление, ЭтоФИО = Ложь, Пол = Неопределено) Экспорт - - ДополнительныеПараметры = Новый Структура; - ДополнительныеПараметры.Вставить("Форма", Форма); - - Оповещение = Новый ОписаниеОповещения("ОткрытьФормуСклоненияЗавершение", ЭтотОбъект, ДополнительныеПараметры); - ЕстьПравоДоступаКОбъекту = СклонениеПредставленийОбъектовВызовСервера.ЕстьПравоДоступаКОбъекту(Форма.Параметры.Ключ); + ПараметрыСклонения = СклонениеПредставленийОбъектовКлиентСервер.ПараметрыСклонения(); + ПараметрыСклонения.ЭтоФИО = ЭтоФИО; + ПараметрыСклонения.Пол = Пол; - СтруктураПараметров = Новый Структура; - СтруктураПараметров.Вставить("Склонения", Форма.Склонения); - СтруктураПараметров.Вставить("ЭтоФИО", ЭтоФИО); - СтруктураПараметров.Вставить("Пол", Пол); - СтруктураПараметров.Вставить("Представление", Представление); - СтруктураПараметров.Вставить("ИзмененоПредставление", Форма.ИзмененоПредставление); - СтруктураПараметров.Вставить("ТолькоПросмотр", Не ЕстьПравоДоступаКОбъекту); - - ОткрытьФорму("ОбщаяФорма.Склонения", СтруктураПараметров, Форма, , , , Оповещение); - - Форма.ОтключитьОбработчикОжидания("Подключаемый_ПросклонятьПредставлениеПоВсемПадежам"); + ПоказатьСклонение(Форма, Представление, ПараметрыСклонения); КонецПроцедуры #КонецОбласти +#КонецОбласти + #Область СлужебныеПроцедурыИФункции // Завершение процедуры ОбработатьКомандуСклонения. // Процедура ОткрытьФормуСклоненияЗавершение(РезультатРедактирования, ДополнительныеПараметры) Экспорт - + Форма = ДополнительныеПараметры.Форма; Если РезультатРедактирования <> Неопределено Тогда - Форма.Склонения = Новый ФиксированнаяСтруктура(РезультатРедактирования); Форма.Модифицированность = Истина; Форма.ИзмененоПредставление = Ложь; - - КонецЕсли; + КонецЕсли; + +КонецПроцедуры +Процедура НачатьСклонение(Форма, Представление, ПараметрыСклонения = Неопределено, ПоказыватьСообщения = Ложь, ОповещениеОЗавершении = Неопределено) Экспорт + + ДлительнаяОперация = СклонениеПредставленийОбъектовВызовСервера.ДлительнаяОперацияСклоненияПоПадежам( + Форма.УникальныйИдентификатор, + Представление, + ПараметрыСклонения); + + ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(Форма); + ПараметрыОжидания.ВыводитьОкноОжидания = ПоказыватьСообщения; + ПараметрыОжидания.ВыводитьСообщения = ПоказыватьСообщения; + + ПараметрыОповещения = Новый Структура( + "Форма, + |ОповещениеОЗавершении, + |ПоказыватьСообщения"); + ПараметрыОповещения.Форма = Форма; + ПараметрыОповещения.ОповещениеОЗавершении = ОповещениеОЗавершении; + ПараметрыОповещения.ПоказыватьСообщения = ПоказыватьСообщения; + + ОповещениеОЗавершении = Новый ОписаниеОповещения("ЗавершитьСклонение", ЭтотОбъект, ПараметрыОповещения); + ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания); + +КонецПроцедуры + +Процедура ЗавершитьСклонение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат = Неопределено Тогда + Возврат; + КонецЕсли; + + Если Результат.Статус = "Ошибка" Тогда + Если ДополнительныеПараметры.ПоказыватьСообщения Тогда + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось выполнить склонение по падежам по причине: + |%1'"), Результат.КраткоеПредставлениеОшибки); + ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения); + КонецЕсли; + Возврат; + КонецЕсли; + + Форма = ДополнительныеПараметры.Форма; + + Форма.Склонения = Неопределено; + + Склонения = ПолучитьИзВременногоХранилища(Результат.АдресРезультата); + Если ТипЗнч(Склонения) = Тип("Структура") Тогда + Форма.Склонения = Новый ФиксированнаяСтруктура(Склонения); + КонецЕсли; + + Форма.ИзмененоПредставление = Ложь; + + Если ДополнительныеПараметры.ОповещениеОЗавершении <> Неопределено Тогда + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОповещениеОЗавершении, Результат); + КонецЕсли; + КонецПроцедуры #КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиентСервер/Module.bsl b/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиентСервер/Module.bsl index 289fb112e..f0a1b973d 100644 --- a/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/СклонениеПредставленийОбъектовКлиентСервер/Module.bsl @@ -6,6 +6,29 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// +#Область ПрограммныйИнтерфейс + +// Конструктор параметров для методов склонения. +// +// Возвращаемое значение: +// Структура - структура с полями: +// ЭтоФИО - Булево - Признак склонения ФИО. +// Пол - Число - Пол физического лица (в случае склонения ФИО): 1 - мужской, 2 - женский. +// +Функция ПараметрыСклонения() Экспорт + + Параметры = Новый Структура( + "ЭтоФИО, + |Пол"); + + Параметры.ЭтоФИО = Ложь; + + Возврат Параметры; + +КонецФункции + +#КонецОбласти + #Область СлужебныеПроцедурыИФункции // Возвращает пустую структуру склонения. @@ -21,12 +44,14 @@ // Функция СтруктураСклонения() Экспорт - СтруктураСклонений = Новый Структура("ИменительныйПадеж, - |РодительныйПадеж, - |ДательныйПадеж, - |ВинительныйПадеж, - |ТворительныйПадеж, - |ПредложныйПадеж"); + СтруктураСклонений = Новый Структура( + "Именительный, + |Родительный, + |Дательный, + |Винительный, + |Творительный, + |Предложный"); + Возврат СтруктураСклонений; КонецФункции diff --git a/SSL/src/CommonModules/СоединенияИБ/Module.bsl b/SSL/src/CommonModules/СоединенияИБ/Module.bsl index 20072fdb2..548487b19 100644 --- a/SSL/src/CommonModules/СоединенияИБ/Module.bsl +++ b/SSL/src/CommonModules/СоединенияИБ/Module.bsl @@ -66,7 +66,7 @@ // обновлении конфигурации информационной базы. // // Возвращаемое значение: -// Булево - Истина, если установлена, ложь - Иначе. +// Булево - Истина, если установлена, Ложь - иначе. // Функция УстановленаБлокировкаСоединений() Экспорт @@ -83,7 +83,7 @@ // // Возвращаемое значение: // Структура - со свойствами: -// * Установлена - Булево - Истина, если установлена блокировка, Ложь - Иначе. +// * Установлена - Булево - Истина, если установлена блокировка, Ложь - иначе. // * Начало - Дата - дата начала блокировки. // * Конец - Дата - дата окончания блокировки. // * Сообщение - Строка - сообщение пользователю. @@ -140,19 +140,20 @@ // При необходимости записывает сообщение в журнал регистрации. // // Параметры: -// ПолучатьСтрокуСоединения - Булево - Признак необходимости добавления в возвращаемое значение строки соединения. -// СообщенияДляЖурналаРегистрации - СписокЗначение - Если параметр не пустой, то будет выполнена запись событий +// ПолучатьСтрокуСоединения - Булево - признак необходимости добавления в возвращаемое значение строки соединения. +// СообщенияДляЖурналаРегистрации - СписокЗначение - если параметр не пустой, то будет выполнена запись событий // из списка в журнал регистрации. -// ПортКластера - Число - Нестандартный порт кластера серверов. +// ПортКластера - Число - нестандартный порт кластера серверов. // // Возвращаемое значение: -// Структура - Структура со свойствами: -// * НаличиеАктивныхСоединений - Булево - Признак наличия активных соединений. -// * НаличиеCOMСоединений - Булево - Признак наличия com соединений. -// * НаличиеСоединенияКонфигуратором - Булево - Признак наличия соединения конфигуратора. -// * ЕстьАктивныеПользователи - Булево - Признак наличия активных пользователей. -// * СтрокаСоединенияИнформационнойБазы - Строка - Строка соединения информационной базы. Свойство будет только если -// параметр ПолучатьСтрокуСоединения был установлен в значение Истина. +// Структура - структура со свойствами: +// * НаличиеАктивныхСоединений - Булево - признак наличия активных соединений. +// * НаличиеCOMСоединений - Булево - признак наличия com соединений. +// * НаличиеСоединенияКонфигуратором - Булево - признак наличия соединения конфигуратора. +// * ЕстьАктивныеПользователи - Булево - признак наличия активных пользователей. +// * СтрокаСоединенияИнформационнойБазы - Строка - строка соединения информационной базы. Свойство будет, +// только если параметр ПолучатьСтрокуСоединения был +// установлен в значение Истина. // Функция ИнформацияОСоединениях(ПолучатьСтрокуСоединения = Ложь, СообщенияДляЖурналаРегистрации = Неопределено, ПортКластера = 0) Экспорт @@ -247,12 +248,8 @@ Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ЗначениеРазделителяСеанса = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); - Иначе - ЗначениеРазделителяСеанса = 0; - КонецЕсли; + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + ЗначениеРазделителяСеанса = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); Если ОбластьДанных = -1 Тогда ОбластьДанных = ЗначениеРазделителяСеанса; @@ -449,7 +446,7 @@ // См. РаботаВМоделиСервисаПереопределяемый.ПриЗаполненииТаблицыПараметровИБ. Процедура ПриЗаполненииТаблицыПараметровИБ(Знач ТаблицаПараметров) Экспорт - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); МодульРаботаВМоделиСервиса.ДобавитьКонстантуВТаблицуПараметровИБ(ТаблицаПараметров, "СообщениеБлокировкиПриОбновленииКонфигурации"); КонецЕсли; @@ -519,16 +516,6 @@ КонецПроцедуры -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.3.9"; - Обработчик.Процедура = "СоединенияИБ.ПеренестиБлокировкиСеансовОбластейДанныхВоВспомогательныеДанные"; - Обработчик.ОбщиеДанные = Истина; - -КонецПроцедуры - // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт @@ -606,53 +593,6 @@ #Область СлужебныеПроцедурыИФункции -//////////////////////////////////////////////////////////////////////////////// -// ОБРАБОТЧИКИ ОБНОВЛЕНИЯ ИНФОРМАЦИОННОЙ БАЗЫ - -// Переносит данные из регистра сведений УдалитьБлокировкиСеансаОбластейДанных в регистр -// сведений БлокировкиСеансовОбластейДанных. -Процедура ПеренестиБлокировкиСеансовОбластейДанныхВоВспомогательныеДанные() Экспорт - - Если Не ОбщегоНазначения.РазделениеВключено() Тогда - Возврат; - КонецЕсли; - - НачатьТранзакцию(); - - Попытка - - Блокировка = Новый БлокировкаДанных(); - Блокировка.Добавить("РегистрСведений.БлокировкиСеансовОбластейДанных"); - Блокировка.Заблокировать(); - - ТекстЗапроса = - "ВЫБРАТЬ - | ЕСТЬNULL(БлокировкиСеансовОбластейДанных.ОбластьДанныхВспомогательныеДанные, УдалитьБлокировкиСеансовОбластиДанных.ОбластьДанных) КАК ОбластьДанныхВспомогательныеДанные, - | ЕСТЬNULL(БлокировкиСеансовОбластейДанных.НачалоБлокировки, УдалитьБлокировкиСеансовОбластиДанных.НачалоБлокировки) КАК НачалоБлокировки, - | ЕСТЬNULL(БлокировкиСеансовОбластейДанных.КонецБлокировки, УдалитьБлокировкиСеансовОбластиДанных.КонецБлокировки) КАК КонецБлокировки, - | ЕСТЬNULL(БлокировкиСеансовОбластейДанных.СообщениеБлокировки, УдалитьБлокировкиСеансовОбластиДанных.СообщениеБлокировки) КАК СообщениеБлокировки, - | ЕСТЬNULL(БлокировкиСеансовОбластейДанных.Эксклюзивная, УдалитьБлокировкиСеансовОбластиДанных.Эксклюзивная) КАК Эксклюзивная - |ИЗ - | РегистрСведений.УдалитьБлокировкиСеансовОбластиДанных КАК УдалитьБлокировкиСеансовОбластиДанных - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.БлокировкиСеансовОбластейДанных КАК БлокировкиСеансовОбластейДанных - | ПО УдалитьБлокировкиСеансовОбластиДанных.ОбластьДанных = БлокировкиСеансовОбластейДанных.ОбластьДанныхВспомогательныеДанные"; - Запрос = Новый Запрос(ТекстЗапроса); - - Набор = РегистрыСведений.БлокировкиСеансовОбластейДанных.СоздатьНаборЗаписей(); - Набор.Загрузить(Запрос.Выполнить().Выгрузить()); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Набор); - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // Прочее. diff --git a/SSL/src/CommonModules/СоединенияИБКлиент/Module.bsl b/SSL/src/CommonModules/СоединенияИБКлиент/Module.bsl index 2102c7ed9..100496bc1 100644 --- a/SSL/src/CommonModules/СоединенияИБКлиент/Module.bsl +++ b/SSL/src/CommonModules/СоединенияИБКлиент/Module.bsl @@ -11,16 +11,16 @@ // Открывает форму ввода параметров администрирования информационной базы и/или кластера. // // Параметры: -// ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - Обработчик, который будет вызван после ввода параметров +// ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - обработчик, который будет вызван после ввода параметров // администрирования. -// ЗапрашиватьПараметрыАдминистрированияИБ - Булево - Признак необходимости ввода параметров администрирования +// ЗапрашиватьПараметрыАдминистрированияИБ - Булево - признак необходимости ввода параметров администрирования // информационной базы. -// ЗапрашиватьПараметрыАдминистрированияКластера - Булево - Признак необходимости ввода параметров администрирования +// ЗапрашиватьПараметрыАдминистрированияКластера - Булево - признак необходимости ввода параметров администрирования // кластера. -// ПараметрыАдминистрирования - Структура - Параметры администрирования, которые были введены ранее. +// ПараметрыАдминистрирования - Структура - параметры администрирования, которые были введены ранее. // См. СтандартныеПодсистемыСервер.ПараметрыАдминистрирования. -// Заголовок - Строка - Заголовок формы, описывающий для чего запрашиваются параметры администрирования. -// ПоясняющаяНадпись - Строка - Пояснение для выполняемого действия, в контексте которого запрашиваются параметры. +// Заголовок - Строка - заголовок формы, описывающий для чего запрашиваются параметры администрирования. +// ПоясняющаяНадпись - Строка - пояснение для выполняемого действия, в контексте которого запрашиваются параметры. // Процедура ПоказатьПараметрыАдминистрирования(ОписаниеОповещенияОЗакрытии, ЗапрашиватьПараметрыАдминистрированияИБ, ЗапрашиватьПараметрыАдминистрированияКластера, ПараметрыАдминистрирования = Неопределено, diff --git a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс/Module.bsl b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс/Module.bsl new file mode 100644 index 000000000..958ada38f --- /dev/null +++ b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс/Module.bsl @@ -0,0 +1,215 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Пространство имен текущей (используемой вызывающим кодом) версии интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - пространство имен. +// +Функция Пакет() Экспорт + + Возврат "http://www.1c.ru/SaaS/ExchangeAdministration/Control"; + +КонецФункции + +// Текущая (используемая вызывающим кодом) версия интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - версия интерфейса сообщений. +// +Функция Версия() Экспорт + + Возврат "2.1.2.1"; + +КонецФункции + +// Название программного интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - название программного интерфейса сообщений. +// +Функция ПрограммныйИнтерфейс() Экспорт + + Возврат "ExchangeAdministrationControl"; + +КонецФункции + +// Выполняет регистрацию обработчиков сообщений в качестве обработчиков каналов обмена сообщениями. +// +// Параметры: +// МассивОбработчиков - Массив - коллекция модулей, содержащих обработчики. +// +Процедура ОбработчикиКаналовСообщений(Знач МассивОбработчиков) Экспорт + + МассивОбработчиков.Добавить(СообщенияАдминистрированиеОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1); + +КонецПроцедуры + +// Выполняет регистрацию обработчиков трансляции сообщений. +// +// Параметры: +// МассивОбработчиков - Массив - коллекция модулей, содержащих обработчики. +// +Процедура ОбработчикиТрансляцииСообщений(Знач МассивОбработчиков) Экспорт + +КонецПроцедуры + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Control/a.b.c.d}CorrespondentConnectionCompleted +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеКорреспондентУспешноПодключен(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "CorrespondentConnectionCompleted"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Control/a.b.c.d}CorrespondentConnectionFailed +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеОшибкаПодключенияКорреспондента(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "CorrespondentConnectionFailed"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Control/a.b.c.d}GettingSyncSettingsCompleted +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеНастройкиСинхронизацииДанныхПолучены(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "GettingSyncSettingsCompleted"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Control/a.b.c.d}GettingSyncSettingsFailed +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеОшибкаПолученияНастроекСинхронизацииДанных(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "GettingSyncSettingsFailed"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Control/a.b.c.d}EnableSyncCompleted +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеВключениеСинхронизацииУспешноЗавершено(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "EnableSyncCompleted"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Control/a.b.c.d}DisableSyncCompleted +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеСинхронизацияУспешноОтключена(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "DisableSyncCompleted"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Control/a.b.c.d}EnableSyncFailed +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеОшибкаВключенияСинхронизации(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "EnableSyncFailed"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Control/a.b.c.d}DisableSyncFailed +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеОшибкаОтключенияСинхронизации(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "DisableSyncFailed"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Control/a.b.c.d}SyncCompleted +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеСинхронизацияЗавершена(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "SyncCompleted"); + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Для внутреннего использования +// +Функция СоздатьТипСообщения(Знач ИспользуемыйПакет, Знач Тип) + + Если ИспользуемыйПакет = Неопределено Тогда + ИспользуемыйПакет = Пакет(); + КонецЕсли; + + Возврат ФабрикаXDTO.Тип(ИспользуемыйПакет, Тип); + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс/СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс.mdo b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс/СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс.mdo new file mode 100644 index 000000000..0409a4b04 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс/СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс.mdo @@ -0,0 +1,11 @@ + + + СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс + + ru + Сообщения администрирование обмена данными контроль интерфейс + + true + true + true + diff --git a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/Module.bsl b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/Module.bsl new file mode 100644 index 000000000..5620511ac --- /dev/null +++ b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/Module.bsl @@ -0,0 +1,113 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Пространство имен версии интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - пространство имен. +// +Функция Пакет() Экспорт + + Возврат "http://www.1c.ru/SaaS/ExchangeAdministration/Control"; + +КонецФункции + +// Версия интерфейса сообщений, обслуживаемая обработчиком. +// +// Возвращаемое значение: +// Строка - версия интерфейса сообщений. +// +Функция Версия() Экспорт + + Возврат "2.1.2.1"; + +КонецФункции + +// Базовый тип для сообщений версии. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - базовый тип тела сообщения. +// +Функция БазовыйТип() Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + ВызватьИсключение НСтр("ru = 'Отсутствует менеджер сервиса.'"); + КонецЕсли; + + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + Возврат МодульСообщенияВМоделиСервиса.ТипТело(); + +КонецФункции + +// Выполняет обработку входящих сообщений модели сервиса +// +// Параметры: +// Сообщение - ОбъектXDTO - входящее сообщение. +// Отправитель - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, соответствующий отправителю сообщения. +// СообщениеОбработано - Булево - флаг успешной обработки сообщения. Значение данного параметра необходимо +// установить равным Истина в том случае, если сообщение было успешно прочитано в данном обработчике. +// +Процедура ОбработатьСообщениеМоделиСервиса(Знач Сообщение, Знач Отправитель, СообщениеОбработано) Экспорт + + СообщениеОбработано = Истина; + + Словарь = СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс; + ТипСообщения = Сообщение.Body.Тип(); + + Если ТипСообщения = Словарь.СообщениеНастройкиСинхронизацииДанныхПолучены(Пакет()) Тогда + ОбменДаннымиВМоделиСервиса.СохранитьДанныеСессии(Сообщение, ПредставлениеОперацииПолученияНастроек()); + ИначеЕсли ТипСообщения = Словарь.СообщениеОшибкаПолученияНастроекСинхронизацииДанных(Пакет()) Тогда + ОбменДаннымиВМоделиСервиса.ЗафиксироватьНеуспешноеВыполнениеСессии(Сообщение, ПредставлениеОперацииПолученияНастроек()); + ИначеЕсли ТипСообщения = Словарь.СообщениеВключениеСинхронизацииУспешноЗавершено(Пакет()) Тогда + ОбменДаннымиВМоделиСервиса.ЗафиксироватьУспешноеВыполнениеСессии(Сообщение, ПредставлениеВключениеСинхронизации()); + ИначеЕсли ТипСообщения = Словарь.СообщениеСинхронизацияУспешноОтключена(Пакет()) Тогда + ОбменДаннымиВМоделиСервиса.ЗафиксироватьУспешноеВыполнениеСессии(Сообщение, ПредставлениеОтключениеСинхронизации()); + ИначеЕсли ТипСообщения = Словарь.СообщениеОшибкаВключенияСинхронизации(Пакет()) Тогда + ОбменДаннымиВМоделиСервиса.ЗафиксироватьНеуспешноеВыполнениеСессии(Сообщение, ПредставлениеВключениеСинхронизации()); + ИначеЕсли ТипСообщения = Словарь.СообщениеОшибкаОтключенияСинхронизации(Пакет()) Тогда + ОбменДаннымиВМоделиСервиса.ЗафиксироватьНеуспешноеВыполнениеСессии(Сообщение, ПредставлениеОтключениеСинхронизации()); + ИначеЕсли ТипСообщения = Словарь.СообщениеСинхронизацияЗавершена(Пакет()) Тогда + ОбменДаннымиВМоделиСервиса.ЗафиксироватьУспешноеВыполнениеСессии(Сообщение, ПредставлениеВыполнениеСинхронизации()); + Иначе + СообщениеОбработано = Ложь; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПредставлениеОперацииПолученияНастроек() + + Возврат НСтр("ru = 'Получение настроек синхронизации данных из Менеджера сервиса.'"); + +КонецФункции + +Функция ПредставлениеВключениеСинхронизации() + + Возврат НСтр("ru = 'Включение синхронизации данных в Менеджере сервиса.'"); + +КонецФункции + +Функция ПредставлениеОтключениеСинхронизации() + + Возврат НСтр("ru = 'Отключение синхронизации данных в Менеджере сервиса.'"); + +КонецФункции + +Функция ПредставлениеВыполнениеСинхронизации() + + Возврат НСтр("ru = 'Выполнение синхронизации данных по запросу пользователя.'"); + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/СообщенияАдминистрированиеОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1.mdo b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/СообщенияАдминистрированиеОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1.mdo new file mode 100644 index 000000000..9248d702c --- /dev/null +++ b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/СообщенияАдминистрированиеОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1.mdo @@ -0,0 +1,11 @@ + + + СообщенияАдминистрированиеОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1 + + ru + Сообщения администрирование обмена данными контроль обработчик сообщения 2 1 2 1 + + true + true + true + diff --git a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс/Module.bsl b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс/Module.bsl new file mode 100644 index 000000000..7eb6dcea2 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс/Module.bsl @@ -0,0 +1,213 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Пространство имен текущей (используемой вызывающим кодом) версии интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - пространство имен. +// +Функция Пакет() Экспорт + + Возврат "http://www.1c.ru/SaaS/ExchangeAdministration/Manage"; + +КонецФункции + +// Текущая (используемая вызывающим кодом) версия интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - версия интерфейса сообщений. +// +Функция Версия() Экспорт + + Возврат "2.1.2.1"; + +КонецФункции + +// Название программного интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - название программного интерфейса сообщений. +// +Функция ПрограммныйИнтерфейс() Экспорт + + Возврат "ExchangeAdministrationManage"; + +КонецФункции + +// Выполняет регистрацию обработчиков сообщений в качестве обработчиков каналов обмена сообщениями. +// +// Параметры: +// МассивОбработчиков - Массив - коллекция модулей, содержащих обработчики. +// +Процедура ОбработчикиКаналовСообщений(Знач МассивОбработчиков) Экспорт + + МассивОбработчиков.Добавить(СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1); + +КонецПроцедуры + +// Выполняет регистрацию обработчиков трансляции сообщений. +// +// Параметры: +// МассивОбработчиков - Массив - коллекция модулей, содержащих обработчики. +// +Процедура ОбработчикиТрансляцииСообщений(Знач МассивОбработчиков) Экспорт + +КонецПроцедуры + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Manage/a.b.c.d}ConnectCorrespondent +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеПодключитьКорреспондента(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ConnectCorrespondent"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Manage/a.b.c.d}SetTransportParams +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеУстановитьНастройкиТранспорта(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "SetTransportParams"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Manage/a.b.c.d}GetSyncSettings +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеПолучитьНастройкиСинхронизацииДанных(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "GetSyncSettings"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Manage/a.b.c.d}DeleteSync +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеУдалитьНастройкуСинхронизации(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "DeleteSync"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Manage/a.b.c.d}EnableSync +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеВключитьСинхронизацию(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "EnableSync"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Manage/a.b.c.d}DisableSync +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеОтключитьСинхронизацию(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "DisableSync"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Manage/a.b.c.d}PushSync +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеПротолкнутьСинхронизацию(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "PushSync"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Manage/a.b.c.d}PushTwoApplicationSync +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеПротолкнутьСинхронизациюДвухПриложений(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "PushTwoApplicationSync"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/ExchangeAdministration/Manage/a.b.c.d}ExecuteSync +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеВыполнитьСинхронизацию(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ExecuteSync"); + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция СоздатьТипСообщения(Знач ИспользуемыйПакет, Знач Тип) + + Если ИспользуемыйПакет = Неопределено Тогда + ИспользуемыйПакет = Пакет(); + КонецЕсли; + + Возврат ФабрикаXDTO.Тип(ИспользуемыйПакет, Тип); + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс/СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс.mdo b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс/СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс.mdo new file mode 100644 index 000000000..285b75ce6 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс/СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс.mdo @@ -0,0 +1,11 @@ + + + СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс + + ru + Сообщения администрирование обмена данными управление интерфейс + + true + true + true + diff --git a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/Module.bsl b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/Module.bsl new file mode 100644 index 000000000..81518559e --- /dev/null +++ b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/Module.bsl @@ -0,0 +1,362 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Пространство имен версии интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - пространство имен. +// +Функция Пакет() Экспорт + + Возврат "http://www.1c.ru/SaaS/ExchangeAdministration/Manage"; + +КонецФункции + +// Версия интерфейса сообщений, обслуживаемая обработчиком. +// +// Возвращаемое значение: +// Строка - версия интерфейса сообщений. +// +Функция Версия() Экспорт + + Возврат "2.1.2.1"; + +КонецФункции + +// Базовый тип для сообщений версии. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - базовый тип тела сообщения. +// +Функция БазовыйТип() Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + ВызватьИсключение НСтр("ru = 'Отсутствует менеджер сервиса.'"); + КонецЕсли; + + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + Возврат МодульСообщенияВМоделиСервиса.ТипТело(); + +КонецФункции + +// Выполняет обработку входящих сообщений модели сервиса +// +// Параметры: +// Сообщение - ОбъектXDTO - входящее сообщение. +// Отправитель - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, соответствующий отправителю сообщения. +// СообщениеОбработано - Булево - флаг успешной обработки сообщения. Значение данного параметра необходимо +// установить равным Истина в том случае, если сообщение было успешно прочитано в данном обработчике. +// +Процедура ОбработатьСообщениеМоделиСервиса(Знач Сообщение, Знач Отправитель, СообщениеОбработано) Экспорт + + СообщениеОбработано = Истина; + + Словарь = СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс; + ТипСообщения = Сообщение.Body.Тип(); + + Если ТипСообщения = Словарь.СообщениеПодключитьКорреспондента(Пакет()) Тогда + ПодключитьКорреспондента(Сообщение, Отправитель); + ИначеЕсли ТипСообщения = Словарь.СообщениеУстановитьНастройкиТранспорта(Пакет()) Тогда + УстановитьНастройкиТранспорта(Сообщение, Отправитель); + ИначеЕсли ТипСообщения = Словарь.СообщениеУдалитьНастройкуСинхронизации(Пакет()) Тогда + УдалитьНастройкуСинхронизации(Сообщение, Отправитель); + ИначеЕсли ТипСообщения = Словарь.СообщениеВыполнитьСинхронизацию(Пакет()) Тогда + ВыполнитьСинхронизацию(Сообщение, Отправитель); + Иначе + СообщениеОбработано = Ложь; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура ПодключитьКорреспондента(Сообщение, Отправитель) + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + ИмяПланаОбменаСообщениями = "ОбменСообщениями"; + МодульОбменСообщениями = ОбщегоНазначения.ОбщийМодуль("ОбменСообщениями"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + МенеджерПланаОбменСообщениями = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени("ПланОбмена." + + ИмяПланаОбменаСообщениями); + + ЭтотУзелОбменаСообщениями = МенеджерПланаОбменСообщениями.ЭтотУзел(); + + Тело = Сообщение.Body; + + // Проверяем эту конечную точку. + ЭтаКонечнаяТочка = ОбменДаннымиВМоделиСервиса.МенеджерПланаОбменаКонечныхТочек().НайтиПоКоду(Тело.SenderId); + + Если ЭтаКонечнаяТочка.Пустая() + ИЛИ ЭтаКонечнаяТочка <> ЭтотУзелОбменаСообщениями Тогда + + // Отправляем сообщение в менеджер сервиса об ошибке. + ПредставлениеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Конечная точка не соответствует ожидаемой. Код ожидаемой конечной точки %1. Код текущей конечной точки %2.'"), + Тело.SenderId, + ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЭтотУзелОбменаСообщениями, "Код")); + + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКорреспондента(), + УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки); + + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаПодключенияКорреспондента()); + ОтветноеСообщение.Body.RecipientId = Тело.RecipientId; + ОтветноеСообщение.Body.SenderId = Тело.SenderId; + ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки; + + НачатьТранзакцию(); + Попытка + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + + Возврат; + КонецЕсли; + + // Проверяем то, что корреспондент уже был подключен ранее. + Корреспондент = ОбменДаннымиВМоделиСервиса.МенеджерПланаОбменаКонечныхТочек().НайтиПоКоду(Тело.RecipientId); + + Если Корреспондент.Пустая() Тогда // Подключаем конечную точку корреспондента. + + Отказ = Ложь; + ПодключенныйКорреспондент = Неопределено; + + НастройкиПодключенияОтправителя = ОбменДаннымиСервер.СтруктураПараметровWS(); + НастройкиПодключенияОтправителя.WSURLВебСервиса = Тело.RecipientURL; + НастройкиПодключенияОтправителя.WSИмяПользователя = Тело.RecipientUser; + НастройкиПодключенияОтправителя.WSПароль = Тело.RecipientPassword; + + НастройкиПодключенияПолучателя = ОбменДаннымиСервер.СтруктураПараметровWS(); + НастройкиПодключенияПолучателя.WSURLВебСервиса = Тело.SenderURL; + НастройкиПодключенияПолучателя.WSИмяПользователя = Тело.SenderUser; + НастройкиПодключенияПолучателя.WSПароль = Тело.SenderPassword; + + МодульОбменСообщениями.ПодключитьКонечнуюТочку( + Отказ, + НастройкиПодключенияОтправителя, + НастройкиПодключенияПолучателя, + ПодключенныйКорреспондент, + Тело.RecipientName, + Тело.SenderName); + + Если Отказ Тогда // Отправляем сообщение в менеджер сервиса об ошибке. + + ПредставлениеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка подключения конечной точки корреспондента обмена. Код конечной точки корреспондента обмена %1.'"), + Тело.RecipientId); + + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКорреспондента(), + УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки); + + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаПодключенияКорреспондента()); + ОтветноеСообщение.Body.RecipientId = Тело.RecipientId; + ОтветноеСообщение.Body.SenderId = Тело.SenderId; + ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки; + + НачатьТранзакцию(); + Попытка + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + + Возврат; + КонецЕсли; + + ПодключенныйКорреспондентКод = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПодключенныйКорреспондент, "Код"); + + Если ПодключенныйКорреспондентКод <> Тело.RecipientId Тогда + + // Подключили не того корреспондента обмена. + // Отправляем сообщение в менеджер сервиса об ошибке. + ПредставлениеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка при подключении конечной точки корреспондента обмена. + |Настройки подключения веб-сервиса не соответствуют ожидаемым. + |Код ожидаемой конечной точки корреспондента обмена %1. + |Код подключенной конечной точки корреспондента обмена %2.'"), + Тело.RecipientId, + ПодключенныйКорреспондентКод); + + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКорреспондента(), + УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки); + + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаПодключенияКорреспондента()); + ОтветноеСообщение.Body.RecipientId = Тело.RecipientId; + ОтветноеСообщение.Body.SenderId = Тело.SenderId; + ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки; + + НачатьТранзакцию(); + Попытка + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + + Возврат; + КонецЕсли; + + КорреспондентОбъект = ПодключенныйКорреспондент.ПолучитьОбъект(); + КорреспондентОбъект.Заблокирована = Истина; + КорреспондентОбъект.Записать(); + + Иначе // Обновляем настройки подключения этой конечной точки и корреспондента. + + Отказ = Ложь; + + НастройкиПодключенияОтправителя = ОбменДаннымиСервер.СтруктураПараметровWS(); + НастройкиПодключенияОтправителя.WSURLВебСервиса = Тело.RecipientURL; + НастройкиПодключенияОтправителя.WSИмяПользователя = Тело.RecipientUser; + НастройкиПодключенияОтправителя.WSПароль = Тело.RecipientPassword; + + НастройкиПодключенияПолучателя = ОбменДаннымиСервер.СтруктураПараметровWS(); + НастройкиПодключенияПолучателя.WSURLВебСервиса = Тело.SenderURL; + НастройкиПодключенияПолучателя.WSИмяПользователя = Тело.SenderUser; + НастройкиПодключенияПолучателя.WSПароль = Тело.SenderPassword; + + МодульОбменСообщениями.ОбновитьНастройкиПодключенияКонечнойТочки( + Отказ, + Корреспондент, + НастройкиПодключенияОтправителя, + НастройкиПодключенияПолучателя); + + Если Отказ Тогда // Отправляем сообщение в менеджер сервиса об ошибке. + + ПредставлениеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка обновления параметров подключения этой конечной точки и конечной точки корреспондента обмена. + |Код этой конечной токи %1 + |Код конечной точки корреспондента обмена %2'"), + ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЭтотУзелОбменаСообщениями, "Код"), + Тело.RecipientId); + + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииПодключениеКорреспондента(), + УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки); + + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаПодключенияКорреспондента()); + ОтветноеСообщение.Body.RecipientId = Тело.RecipientId; + ОтветноеСообщение.Body.SenderId = Тело.SenderId; + ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки; + + НачатьТранзакцию(); + Попытка + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + + Возврат; + КонецЕсли; + + КорреспондентОбъект = Корреспондент.ПолучитьОбъект(); + КорреспондентОбъект.Заблокирована = Истина; + КорреспондентОбъект.Записать(); + + КонецЕсли; + + // Отправляем сообщение в менеджер сервиса об успешном выполнении операции. + НачатьТранзакцию(); + Попытка + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс.СообщениеКорреспондентУспешноПодключен()); + ОтветноеСообщение.Body.RecipientId = Тело.RecipientId; + ОтветноеСообщение.Body.SenderId = Тело.SenderId; + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +Процедура УстановитьНастройкиТранспорта(Сообщение, Отправитель) + + Тело = Сообщение.Body; + + Корреспондент = ОбменДаннымиВМоделиСервиса.МенеджерПланаОбменаКонечныхТочек().НайтиПоКоду(Тело.RecipientId); + + Если Корреспондент.Пустая() Тогда + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не найдена конечная точка корреспондента с кодом ""%1"".'"), + Тело.RecipientId); + ВызватьИсключение СтрокаСообщения; + КонецЕсли; + + ОбменДаннымиСервер.УстановитьКоличествоЭлементовВТранзакцииЗагрузкиДанных(Тело.ImportTransactionQuantity); + + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("КонечнаяТочкаКорреспондента", Корреспондент); + + СтруктураЗаписи.Вставить("FILEКаталогОбменаИнформацией", Тело.FILE_ExchangeFolder); + СтруктураЗаписи.Вставить("FILEСжиматьФайлИсходящегоСообщения", Тело.FILE_CompressExchangeMessage); + + СтруктураЗаписи.Вставить("FTPСжиматьФайлИсходящегоСообщения", Тело.FTP_CompressExchangeMessage); + СтруктураЗаписи.Вставить("FTPСоединениеМаксимальныйДопустимыйРазмерСообщения", Тело.FTP_MaxExchangeMessageSize); + СтруктураЗаписи.Вставить("FTPСоединениеПассивноеСоединение", Тело.FTP_PassiveMode); + СтруктураЗаписи.Вставить("FTPСоединениеПользователь", Тело.FTP_User); + СтруктураЗаписи.Вставить("FTPСоединениеПорт", Тело.FTP_Port); + СтруктураЗаписи.Вставить("FTPСоединениеПуть", Тело.FTP_ExchangeFolder); + + СтруктураЗаписи.Вставить("ВидТранспортаСообщенийОбменаПоУмолчанию", Перечисления.ВидыТранспортаСообщенийОбмена[Тело.ExchangeTransport]); + + + УстановитьПривилегированныйРежим(Истина); + ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Корреспондент, Тело.FTP_Password, "FTPСоединениеПарольОбластейДанных"); + ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Корреспондент, Тело.ExchangeMessagePassword, "ПарольАрхиваСообщенияОбменаОбластейДанных"); + УстановитьПривилегированныйРежим(Ложь); + + РегистрыСведений.НастройкиТранспортаОбменаОбластейДанных.ОбновитьЗапись(СтруктураЗаписи); + +КонецПроцедуры + +Процедура УдалитьНастройкуСинхронизации(Сообщение, Отправитель) + + Тело = Сообщение.Body; + ОбменДаннымиВМоделиСервиса.УдалитьНастройкуСинхронизации(Тело.ExchangePlan, Формат(Тело.CorrespondentZone, "ЧЦ=7; ЧВН=; ЧГ=0")); + +КонецПроцедуры + +Процедура ВыполнитьСинхронизацию(Сообщение, Отправитель) + + СценарийОбменаДанными = СериализаторXDTO.ПрочитатьXDTO(Сообщение.Body.Scenario); + + Если СценарийОбменаДанными.Количество() > 0 Тогда + + // Запускаем выполнение сценария + ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазе(0, СценарийОбменаДанными); + + КонецЕсли; + +КонецПроцедуры + +Функция СобытиеЖурналаРегистрацииПодключениеКорреспондента() + + Возврат НСтр("ru = 'Обмен данными.Подключение корреспондента обмена'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1.mdo b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1.mdo new file mode 100644 index 000000000..12c9eb12d --- /dev/null +++ b/SSL/src/CommonModules/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1.mdo @@ -0,0 +1,11 @@ + + + СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1 + + ru + Сообщения администрирование обмена данными управление обработчик сообщения 2 1 2 1 + + true + true + true + diff --git a/SSL/src/CommonModules/СообщенияВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/СообщенияВМоделиСервиса/Module.bsl deleted file mode 100644 index b5c76371d..000000000 --- a/SSL/src/CommonModules/СообщенияВМоделиСервиса/Module.bsl +++ /dev/null @@ -1,573 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Возвращает новое сообщение. -// -// Параметры: -// ТипТелаСообщения - ТипОбъектаXDTO - тип тела сообщения которое требуется создать. -// -// Возвращаемое значение: -// ОбъектXDTO - объект требуемого типа. -Функция НовоеСообщение(Знач ТипТелаСообщения) Экспорт - - Сообщение = ФабрикаXDTO.Создать(СообщенияВМоделиСервисаПовтИсп.ТипСообщение()); - - Сообщение.Header = ФабрикаXDTO.Создать(СообщенияВМоделиСервисаПовтИсп.ТипЗаголовокСообщения()); - Сообщение.Header.Id = Новый УникальныйИдентификатор; - Сообщение.Header.Created = ТекущаяУниверсальнаяДата(); - - Сообщение.Body = ФабрикаXDTO.Создать(ТипТелаСообщения); - - Возврат Сообщение; - -КонецФункции - -// Отправляет сообщение -// -// Параметры: -// Сообщение - ОбъектXDTO - сообщение. -// Получатель - ПланОбменаСсылка.ОбменСообщениями - получатель сообщения. -// Сейчас - Булево - отправить сообщений через механизм быстрых сообщений. -// -Процедура ОтправитьСообщение(Знач Сообщение, Знач Получатель = Неопределено, Знач Сейчас = Ложь) Экспорт - - Сообщение.Header.Sender = ОписаниеУзлаОбменаСообщениями(ПланыОбмена.ОбменСообщениями.ЭтотУзел()); - - Если ЗначениеЗаполнено(Получатель) Тогда - Сообщение.Header.Recipient = ОписаниеУзлаОбменаСообщениями(Получатель); - КонецЕсли; - - СтруктураНастроек = РегистрыСведений.НастройкиТранспортаОбменаСообщениями.НастройкиТранспортаWS(Получатель); - ПараметрыПодключения = Новый Структура; - ПараметрыПодключения.Вставить("URL", СтруктураНастроек.WSURLВебСервиса); - ПараметрыПодключения.Вставить("UserName", СтруктураНастроек.WSИмяПользователя); - ПараметрыПодключения.Вставить("Password", СтруктураНастроек.WSПароль); - - ТранслироватьСообщениеВВерсиюКорреспондентаПриНеобходимости( - Сообщение, - ПараметрыПодключения, - Строка(Получатель)); - - НетипизированноеТело = ЗаписатьСообщениеВНетипизированноеТело(Сообщение); - - КаналСообщений = ИмяКаналаПоТипуСообщения(Сообщение.Body.Тип()); - - Если Сейчас Тогда - ОбменСообщениями.ОтправитьСообщениеСейчас(КаналСообщений, НетипизированноеТело, Получатель); - Иначе - ОбменСообщениями.ОтправитьСообщение(КаналСообщений, НетипизированноеТело, Получатель); - КонецЕсли; - -КонецПроцедуры - -// Получает список обработчиков сообщений по пространству имен. -// -// Параметры: -// Обработчики - ТаблицаЗначений - с колонками: -// * Канал - Строка - Канал сообщения. -// * Обработчик - ОбщийМодуль - Обработчик сообщения. -// ПространствоИмен - Строка - uri пространства имен в котором определены типы тел сообщений. -// ОбщийМодуль - ОбщийМодуль - Общий модуль в котором содержатся обработчики сообщений. -// -Процедура ПолучитьОбработчикиКаналовСообщений(Знач Обработчики, Знач ПространствоИмен, Знач ОбщийМодуль) Экспорт - - ИменаКаналов = СообщенияВМоделиСервисаПовтИсп.ПолучитьКаналыПакета(ПространствоИмен); - - Для каждого ИмяКанала Из ИменаКаналов Цикл - Обработчик = Обработчики.Добавить(); - Обработчик.Канал = ИмяКанала; - Обработчик.Обработчик = ОбщийМодуль; - КонецЦикла; - -КонецПроцедуры - -// Возвращает имя канала сообщений соответствующего типу сообщения. -// -// Параметры: -// ТипСообщения - ТипОбъектаXDTO - тип сообщения удаленного администрирования. -// -// Возвращаемое значение: -// Строка - имя канала сообщений соответствующее переданному типу сообщения. -// -Функция ИмяКаналаПоТипуСообщения(Знач ТипСообщения) Экспорт - - Возврат СериализаторXDTO.XMLСтрока(Новый РасширенноеИмяXML(ТипСообщения.URIПространстваИмен, ТипСообщения.Имя)); - -КонецФункции - -// Возвращает тип сообщений удаленного администрирования по -// имени канала сообщений. -// -// Параметры: -// ИмяКанала - Строка - имя канала сообщений соответствующее переданному типу сообщения. -// -// Возвращаемое значение: -// ТипОбъектаXDTO - тип сообщения удаленного администрирования. -// -Функция ТипСообщенияПоИмениКанала(Знач ИмяКанала) Экспорт - - Возврат ФабрикаXDTO.Тип(СериализаторXDTO.XMLЗначение(Тип("РасширенноеИмяXML"), ИмяКанала)); - -КонецФункции - -// Вызывает исключение при получении сообщения в неизвестный канал. -// -// Параметры: -// КаналСообщений - Строка - имя неизвестного канала сообщений. -// -Процедура ОшибкаНеизвестноеИмяКанала(Знач КаналСообщений) Экспорт - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Неизвестное имя канала сообщений %1'"), КаналСообщений); - -КонецПроцедуры - -// Читает сообщение из нетипизированного тела сообщения. -// -// Параметры: -// НетипизированноеТело - Строка - нетипизированное тело сообщения. -// -// Возвращаемое значение: -// {http://www.1c.ru/SaaS/Messages}Message - сообщение. -// -Функция ПрочитатьСообщениеИзНетипизированногоТела(Знач НетипизированноеТело) Экспорт - - Чтение = Новый ЧтениеXML; - Чтение.УстановитьСтроку(НетипизированноеТело); - - Сообщение = ФабрикаXDTO.ПрочитатьXML(Чтение, СообщенияВМоделиСервисаПовтИсп.ТипСообщение()); - - Чтение.Закрыть(); - - Возврат Сообщение; - -КонецФункции - -// Записывает сообщение в нетипизированное тело сообщения. -// -// Параметры: -// Сообщение - Сообщение - Сообщение с типом {http://www.1c.ru/SaaS/Messages}Message. -// -// Возвращаемое значение: -// Строка - нетипизированное тело сообщения. -// -Функция ЗаписатьСообщениеВНетипизированноеТело(Знач Сообщение) Экспорт - - Запись = Новый ЗаписьXML; - Запись.УстановитьСтроку(); - ФабрикаXDTO.ЗаписатьXML(Запись, Сообщение, , , , НазначениеТипаXML.Явное); - - Возврат Запись.Закрыть(); - -КонецФункции - -// Записывает в журнал регистрации событие начала обработки сообщения. -// -// Параметры: -// Сообщение - Сообщение - Сообщение с типом {http://www.1c.ru/SaaS/Messages}Message. -// -Процедура ЗаписатьСобытиеНачалоОбработки(Знач Сообщение) Экспорт - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Сообщения в модели сервиса.Начало обработки'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Информация, - , - , - ПредставлениеСообщенияДляЖурнала(Сообщение)); - -КонецПроцедуры - -// Записывает в журнал регистрации событие окончания обработки сообщения. -// -// Параметры: -// Сообщение - Сообщение - Сообщение с типом {http://www.1c.ru/SaaS/Messages}Message. -// -Процедура ЗаписатьСобытиеОкончаниеОбработки(Знач Сообщение) Экспорт - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Сообщения в модели сервиса.Окончание обработки'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Информация, - , - , - ПредставлениеСообщенияДляЖурнала(Сообщение)); - -КонецПроцедуры - -// Выполняет доставку быстрых сообщений. -// -Процедура ДоставитьБыстрыеСообщения() Экспорт - - Если ТранзакцияАктивна() Тогда - ВызватьИсключение(НСтр("ru = 'Доставка быстрых сообщений невозможна в транзакции'")); - КонецЕсли; - - ИмяМетодаЗадания = "ОбменСообщениями.ДоставитьСообщения"; - КлючЗадания = 1; - - УстановитьПривилегированныйРежим(Истина); - - ОтборЗаданий = Новый Структура; - ОтборЗаданий.Вставить("ИмяМетода", ИмяМетодаЗадания); - ОтборЗаданий.Вставить("Ключ", КлючЗадания); - ОтборЗаданий.Вставить("Состояние", СостояниеФоновогоЗадания.Активно); - - Задания = ФоновыеЗадания.ПолучитьФоновыеЗадания(ОтборЗаданий); - Если Задания.Количество() > 0 Тогда - Попытка - Задания[0].ОжидатьЗавершения(3); - Исключение - - Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Задания[0].УникальныйИдентификатор); - Если Задание.Состояние = СостояниеФоновогоЗадания.ЗавершеноАварийно - И Задание.ИнформацияОбОшибке <> Неопределено Тогда - - ВызватьИсключение(ПодробноеПредставлениеОшибки(Задание.ИнформацияОбОшибке)); - КонецЕсли; - - Возврат; - КонецПопытки; - КонецЕсли; - - Попытка - ФоновыеЗадания.Выполнить(ИмяМетодаЗадания, , КлючЗадания, НСтр("ru = 'Доставка быстрых сообщений'")) - Исключение - // Дополнительная обработка исключения не требуется - // ожидаемое исключение - дублирование задания с таким же ключом. - ЗаписьЖурналаРегистрации(НСтр("ru = 'Доставка быстрых сообщений'", - ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, , , - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - -КонецПроцедуры - -// Возвращает XDTO тип - сообщение. -// -// Возвращаемое значение: -// ТипОбъектаXDTO - тип сообщения. -// -Функция ТипСообщение() Экспорт - - Возврат СообщенияВМоделиСервисаПовтИсп.ТипСообщение(); - -КонецФункции - -// Возвращает тип, являющийся базовым для всех типов тел сообщений -// в модели сервиса. -// -// Возвращаемое значение: -// ТипОбъектаXDTO - базовый тип тел сообщений в модели сервиса. -// -Функция ТипТело() Экспорт - - Возврат СообщенияВМоделиСервисаПовтИсп.ТипТело(); - -КонецФункции - -// Возвращает тип, являющийся базовым для всех типов тел сообщений, -// относящихся к областям данных в модели сервиса. -// -// Возвращаемое значение: -// ТипОбъектаXDTO - базовый тип тел сообщений областей данных в модели сервиса. -// -Функция ТипТелоОбласти() Экспорт - - Возврат СообщенияВМоделиСервисаПовтИсп.ТипТелоОбласти(); - -КонецФункции - -// Возвращает тип, являющийся базовым для всех типов тел сообщений, -// отправляемых из областей данных с аутентификацией области в модели сервиса. -// -// Возвращаемое значение: -// ТипОбъектаXDTO - базовый тип тел сообщений областей данных с аутентификацией -// в модели сервиса. -// -Функция ТипАутентифицированноеТелоОбласти() Экспорт - - Возврат СообщенияВМоделиСервисаПовтИсп.ТипАутентифицированноеТелоОбласти(); - -КонецФункции - -// Возвращает тип - заголовок сообщения. -// -// Возвращаемое значение: -// ТипОбъектаXDTO - тип заголовок сообщения в модели сервиса. -// -Функция ТипЗаголовокСообщения() Экспорт - - Возврат СообщенияВМоделиСервисаПовтИсп.ТипЗаголовокСообщения(); - -КонецФункции - -// Возвращает тип - узел обмена сообщениями в модели сервиса. -// -// Возвращаемое значение: -// ТипОбъектаXDTO - тип узел обмена сообщениями в модели сервиса. -// -Функция ТипУзелОбменаСообщениями() Экспорт - - Возврат СообщенияВМоделиСервисаПовтИсп.ТипУзелОбменаСообщениями(); - -КонецФункции - -// Возвращает типы объектов XDTO содержащихся в заданном -// пакете, являющиеся типа сообщений удаленного администрирования. -// -// Параметры: -// URIПакета - Строка - URI пакета XDTO, типы сообщений из которого -// требуется получить. -// -// Возвращаемое значение: -// ФиксированныйМассив(ТипОбъектаXDTO) - типы сообщений найденные в пакете. -// -Функция ПолучитьТипыСообщенийПакета(Знач URIПакета) Экспорт - - Возврат СообщенияВМоделиСервисаПовтИсп.ПолучитьТипыСообщенийПакета(URIПакета); - -КонецФункции - -// Возвращает имена каналов сообщений из заданного пакета. -// -// Параметры: -// URIПакета - Строка - URI пакета XDTO, типы сообщений из которого -// требуется получить. -// -// Возвращаемое значение: -// ФиксированныйМассив(Строка) - имена каналов найденные в пакете. -// -Функция ПолучитьКаналыПакета(Знач URIПакета) Экспорт - - Возврат СообщенияВМоделиСервисаПовтИсп.ПолучитьКаналыПакета(URIПакета); - -КонецФункции - -#КонецОбласти - -#Область СлужебныйПрограммныйИнтерфейс - -// Обработчик события перед отправкой сообщения. -// Обработчик данного события вызывается перед запись сообщения для последующей отправки. -// Обработчик вызывается для каждого отправляемого сообщения. -// -// Параметры: -// КаналСообщений - Строка - идентификатор канала сообщений, из которого получено сообщение. -// ТелоСообщения - Произвольный - тело записываемого сообщения. -// -Процедура ПередОтправкойСообщения(Знач КаналСообщений, Знач ТелоСообщения) Экспорт - - Если Не РаботаВМоделиСервиса.ИспользованиеРазделителяСеанса() Тогда - Возврат; - КонецЕсли; - - Сообщение = Неопределено; - Если ТелоСодержитТипизированноеСообщение(ТелоСообщения, Сообщение) Тогда - Если СообщенияВМоделиСервисаПовтИсп.ТипТелоОбласти().ЭтоПотомок(Сообщение.Body.Тип()) Тогда - Если РаботаВМоделиСервиса.ЗначениеРазделителяСеанса() <> Сообщение.Body.Zone Тогда - ЗаписьЖурналаРегистрации(НСтр("ru = 'Сообщения в модели сервиса.Отправка сообщения'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, - , - , - ПредставлениеСообщенияДляЖурнала(Сообщение)); - - ШаблонОшибки = НСтр("ru = 'Ошибка при отправке сообщения. Область данных %1 не совпадает с текущей (%2).'"); - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки, - Сообщение.Body.Zone, РаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); - - ВызватьИсключение(ТекстОшибки); - КонецЕсли; - КонецЕсли; - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Обработчик события при отправке сообщения. -// Обработчик данного события вызывается перед помещением сообщения в XML-поток. -// Обработчик вызывается для каждого отправляемого сообщения. -// -// Параметры: -// КаналСообщений - Строка - идентификатор канала сообщений, в который отправляется сообщение. -// ТелоСообщения - Произвольный - тело отправляемого сообщения. В обработчике события тело сообщения -// может быть изменено, например, дополнено информацией. -// -Процедура ПриОтправкеСообщения(КаналСообщений, ТелоСообщения, ОбъектСообщения) Экспорт - - Сообщение = Неопределено; - Если ТелоСодержитТипизированноеСообщение(ТелоСообщения, Сообщение) Тогда - - Сообщение.Header.Sent = ТекущаяУниверсальнаяДата(); - ТелоСообщения = ЗаписатьСообщениеВНетипизированноеТело(Сообщение); - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Сообщения в модели сервиса.Отправка'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Информация, - , - , - ПредставлениеСообщенияДляЖурнала(Сообщение)); - - КонецЕсли; - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - - МодульСообщенияВМоделиСервисаРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервисаРазделениеДанных"); - МодульСообщенияВМоделиСервисаРазделениеДанных.ПриОтправкеСообщения(КаналСообщений, ТелоСообщения, ОбъектСообщения); - - КонецЕсли; - - СообщенияВМоделиСервисаПереопределяемый.ПриОтправкеСообщения(КаналСообщений, ТелоСообщения, ОбъектСообщения); - -КонецПроцедуры - -// Обработчик события при получении сообщения. -// Обработчик данного события вызывается при получении сообщения из XML-потока. -// Обработчик вызывается для каждого получаемого сообщения. -// -// Параметры: -// КаналСообщений - Строка - идентификатор канала сообщений, из которого получено сообщение. -// ТелоСообщения - Произвольный - тело полученного сообщения. В обработчике события тело сообщения -// может быть изменено, например, дополнено информацией. -// -Процедура ПриПолученииСообщения(КаналСообщений, ТелоСообщения, ОбъектСообщения) Экспорт - - Сообщение = Неопределено; - Если ТелоСодержитТипизированноеСообщение(ТелоСообщения, Сообщение) Тогда - - Сообщение.Header.Delivered = ТекущаяУниверсальнаяДата(); - - ТелоСообщения = ЗаписатьСообщениеВНетипизированноеТело(Сообщение); - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Сообщения в модели сервиса.Получение'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Информация, - , - , - ПредставлениеСообщенияДляЖурнала(Сообщение)); - - КонецЕсли; - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - - МодульСообщенияВМоделиСервисаРазделениеДанных = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервисаРазделениеДанных"); - МодульСообщенияВМоделиСервисаРазделениеДанных.ПриПолученииСообщения(КаналСообщений, ТелоСообщения, ОбъектСообщения); - - КонецЕсли; - - СообщенияВМоделиСервисаПереопределяемый.ПриПолученииСообщения(КаналСообщений, ТелоСообщения, ОбъектСообщения); - -КонецПроцедуры - -Функция ОписаниеУзлаОбменаСообщениями(Знач Узел) - - Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта( - Узел, - Новый Структура("Код, Наименование")); - - Описание = ФабрикаXDTO.Создать(СообщенияВМоделиСервисаПовтИсп.ТипУзелОбменаСообщениями()); - Описание.Code = Реквизиты.Код; - Описание.Presentation = Реквизиты.Наименование; - - Возврат Описание; - -КонецФункции - -// Для внутреннего использования. -// -Функция ТелоСодержитТипизированноеСообщение(Знач НетипизированноеТело, Сообщение) Экспорт - - Если ТипЗнч(НетипизированноеТело) <> Тип("Строка") Тогда - Возврат Ложь; - КонецЕсли; - - Если Не СтрНачинаетсяС(НетипизированноеТело, "<") ИЛИ Не СтрЗаканчиваетсяНа(НетипизированноеТело, ">") Тогда - Возврат Ложь; - КонецЕсли; - - Попытка - Чтение = Новый ЧтениеXML; - Чтение.УстановитьСтроку(НетипизированноеТело); - - Сообщение = ФабрикаXDTO.ПрочитатьXML(Чтение); - - Чтение.Закрыть(); - - Исключение - Возврат Ложь; - КонецПопытки; - - Возврат Сообщение.Тип() = СообщенияВМоделиСервисаПовтИсп.ТипСообщение(); - -КонецФункции - -Функция ПредставлениеСообщенияДляЖурнала(Знач Сообщение) - - Шаблон = НСтр("ru = 'Канал: %1'", ОбщегоНазначения.КодОсновногоЯзыка()); - Представление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, ИмяКаналаПоТипуСообщения(Сообщение.Body.Тип())); - - Запись = Новый ЗаписьXML; - Запись.УстановитьСтроку(); - ФабрикаXDTO.ЗаписатьXML(Запись, Сообщение.Header, , , , НазначениеТипаXML.Явное); - - Шаблон = НСтр("ru = 'Заголовок: - |%1'", ОбщегоНазначения.КодОсновногоЯзыка()); - Представление = Представление + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, Запись.Закрыть()); - - Если СообщенияВМоделиСервисаПовтИсп.ТипТелоОбласти().ЭтоПотомок(Сообщение.Body.Тип()) Тогда - Шаблон = НСтр("ru = 'Область данных: %1'", ОбщегоНазначения.КодОсновногоЯзыка()); - Представление = Представление + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, Формат(Сообщение.Body.Zone, "ЧН=0; ЧГ=")); - КонецЕсли; - - Возврат Представление; - -КонецФункции - -// Выполняет трансляцию отправляемого сообщения в версию, поддерживаемую ИБ-корреспондентом. -// -// Параметры: -// Сообщение: ОбъектXDTO, отправляемое сообщение. -// ИнформацияПодключения - структура, параметры подключения к ИБ-получателю. -// ПредставлениеПолучателя - строка, представление ИБ-получателя. -// -// Возвращаемое значение: -// ОбъектXDTO, сообщение, транслированное в версию ИБ-получателя. -// -Процедура ТранслироватьСообщениеВВерсиюКорреспондентаПриНеобходимости(Сообщение, Знач ИнформацияПодключения, Знач ПредставлениеПолучателя) - - ИнтерфейсСообщения = ТрансляцияXDTOСлужебный.ПолучитьИнтерфейсСообщения(Сообщение); - Если ИнтерфейсСообщения = Неопределено Тогда - ВызватьИсключение НСтр("ru = 'Не удалось определить интерфейс отправляемого сообщения: ни для одного из типов, используемых в сообщении, не зарегистрирован обработчик интерфейса.'"); - КонецЕсли; - - Если Не ИнформацияПодключения.Свойство("URL") - Или Не ЗначениеЗаполнено(ИнформацияПодключения.URL) Тогда - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не задан URL сервиса обмена сообщениями с информационной базой %1'"), ПредставлениеПолучателя); - КонецЕсли; - - ВерсияКорреспондента = ИнтерфейсыСообщенийВМоделиСервиса.ВерсияИнтерфейсаКорреспондента( - ИнтерфейсСообщения.ПрограммныйИнтерфейс, ИнформацияПодключения, ПредставлениеПолучателя); - - Если ВерсияКорреспондента = Неопределено Тогда - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Корреспондент %1 не поддерживает получение версий сообщений интерфейса %2, поддерживаемых текущей информационной базой.'"), - ПредставлениеПолучателя, ИнтерфейсСообщения.ПрограммныйИнтерфейс); - КонецЕсли; - - ОтправляемаяВерсия = ИнтерфейсыСообщенийВМоделиСервиса.ПолучитьВерсииОтправляемыхСообщений().Получить(ИнтерфейсСообщения.ПрограммныйИнтерфейс); - Если ОтправляемаяВерсия = ВерсияКорреспондента Тогда - Возврат; - КонецЕсли; - - Сообщение = ТрансляцияXDTO.ТранслироватьВВерсию(Сообщение, ВерсияКорреспондента, ИнтерфейсСообщения.ПространствоИмен); - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияВМоделиСервиса/СообщенияВМоделиСервиса.mdo b/SSL/src/CommonModules/СообщенияВМоделиСервиса/СообщенияВМоделиСервиса.mdo deleted file mode 100644 index a2db7138c..000000000 --- a/SSL/src/CommonModules/СообщенияВМоделиСервиса/СообщенияВМоделиСервиса.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - СообщенияВМоделиСервиса - - ru - Сообщения в модели сервиса - - true - true - true - diff --git a/SSL/src/CommonModules/СообщенияВМоделиСервисаОбработчикСообщений/Module.bsl b/SSL/src/CommonModules/СообщенияВМоделиСервисаОбработчикСообщений/Module.bsl deleted file mode 100644 index 330eab168..000000000 --- a/SSL/src/CommonModules/СообщенияВМоделиСервисаОбработчикСообщений/Module.bsl +++ /dev/null @@ -1,115 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Выполняет обработку тела сообщения из канала в соответствии с алгоритмом текущего канала сообщений. -// -// Параметры: -// КаналСообщений - Строка - идентификатор канала сообщений, из которого получено сообщение. -// ТелоСообщения - Произвольный - тело сообщения, полученное из канала, которое подлежит обработке. -// Отправитель - ПланОбменаСсылка.ОбменСообщениями - конечная точка, которая является отправителем сообщения. -// -Процедура ОбработатьСообщение(Знач КаналСообщений, Знач ТелоСообщения, Знач Отправитель) Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - РазделенныйМодуль = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервисаРазделениеДанных"); - КонецЕсли; - - // Чтение сообщения - Сообщение = СообщенияВМоделиСервиса.ПрочитатьСообщениеИзНетипизированногоТела(ТелоСообщения); - - СообщенияВМоделиСервиса.ЗаписатьСобытиеНачалоОбработки(Сообщение); - - Попытка - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - РазделенныйМодуль.ПриНачалеОбработкиСообщения(Сообщение, Отправитель); - КонецЕсли; - - СообщенияВМоделиСервисаПереопределяемый.ПриНачалеОбработкиСообщения(Сообщение, Отправитель); - - // Получение и выполнение обработчика интерфейса сообщений. - Обработчик = ПолучитьОбработчикКаналаСообщенийСервиса(КаналСообщений); - Если Обработчик <> Неопределено Тогда - - СообщениеОбработано = Ложь; - Обработчик.ОбработатьСообщениеМоделиСервиса(Сообщение, Отправитель, СообщениеОбработано); - - Иначе - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось определить обработчик канала сообщений в модели сервиса %1'"), КаналСообщений); - - КонецЕсли; - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - РазделенныйМодуль.ПослеОбработкиСообщения(Сообщение, Отправитель, СообщениеОбработано); - КонецЕсли; - - СообщенияВМоделиСервисаПереопределяемый.ПослеОбработкиСообщения(Сообщение, Отправитель, СообщениеОбработано); - - Исключение - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - РазделенныйМодуль.ПриОшибкеОбработкиСообщения(Сообщение, Отправитель); - КонецЕсли; - - СообщенияВМоделиСервисаПереопределяемый.ПриОшибкеОбработкиСообщения(Сообщение, Отправитель); - - ВызватьИсключение; - - КонецПопытки; - - СообщенияВМоделиСервиса.ЗаписатьСобытиеОкончаниеОбработки(Сообщение); - - Если НЕ СообщениеОбработано Тогда - - СообщенияВМоделиСервиса.ОшибкаНеизвестноеИмяКанала(КаналСообщений); - - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Функция ПолучитьОбработчикКаналаСообщенийСервиса(КаналСообщений) - - ОбработчикиИнтерфейсов = ИнтерфейсыСообщенийВМоделиСервиса.ПолучитьОбработчикиИнтерфейсовПринимаемыхСообщений(); - - Для Каждого ОбработчикИнтерфейса Из ОбработчикиИнтерфейсов Цикл - - ОбработчикиКаналовИнтерфейса = Новый Массив(); - ОбработчикИнтерфейса.ОбработчикиКаналовСообщений(ОбработчикиКаналовИнтерфейса); - - Для Каждого ОбработчикКаналаИнтерфейса Из ОбработчикиКаналовИнтерфейса Цикл - - Пакет = ОбработчикКаналаИнтерфейса.Пакет(); - БазовыйТип = ОбработчикКаналаИнтерфейса.БазовыйТип(); - - ИменаКаналов = ИнтерфейсыСообщенийВМоделиСервиса.ПолучитьКаналыПакета(Пакет, БазовыйТип); - - Для Каждого ИмяКанала Из ИменаКаналов Цикл - Если ИмяКанала = КаналСообщений Тогда - - Возврат ОбработчикКаналаИнтерфейса; - - КонецЕсли; - КонецЦикла; - - КонецЦикла; - - КонецЦикла; - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияВМоделиСервисаОбработчикСообщений/СообщенияВМоделиСервисаОбработчикСообщений.mdo b/SSL/src/CommonModules/СообщенияВМоделиСервисаОбработчикСообщений/СообщенияВМоделиСервисаОбработчикСообщений.mdo deleted file mode 100644 index 48430fcfe..000000000 --- a/SSL/src/CommonModules/СообщенияВМоделиСервисаОбработчикСообщений/СообщенияВМоделиСервисаОбработчикСообщений.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - СообщенияВМоделиСервисаОбработчикСообщений - - ru - Сообщения в модели сервиса обработчик сообщений - - true - true - true - diff --git a/SSL/src/CommonModules/СообщенияВМоделиСервисаПереопределяемый/Module.bsl b/SSL/src/CommonModules/СообщенияВМоделиСервисаПереопределяемый/Module.bsl deleted file mode 100644 index 159acec1a..000000000 --- a/SSL/src/CommonModules/СообщенияВМоделиСервисаПереопределяемый/Module.bsl +++ /dev/null @@ -1,75 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Обработчик события при получении сообщения. -// Обработчик данного события вызывается при получении сообщения из XML-потока. -// Обработчик вызывается для каждого получаемого сообщения. -// -// Параметры: -// КаналСообщений - Строка - идентификатор канала сообщений, из которого получено сообщение. -// ТелоСообщения - Произвольный - Тело полученного сообщения. В обработчике события тело сообщения может -// быть изменено, например, дополнено информацией. -// ОбъектСообщения - Произвольные - Объект получаемого сообщения. -// -Процедура ПриПолученииСообщения(КаналСообщений, ТелоСообщения, ОбъектСообщения) Экспорт - -КонецПроцедуры - -// Обработчик события при отправке сообщения. -// Обработчик данного события вызывается перед помещением сообщения в XML-поток. -// Обработчик вызывается для каждого отправляемого сообщения. -// -// Параметры: -// КаналСообщений - Строка - идентификатор канала сообщений, в который отправляется сообщение. -// ТелоСообщения - Произвольный - тело отправляемого сообщения. В обработчике события тело сообщения -// может быть изменено, например, дополнено информацией. -// ОбъектСообщения - Произвольные - Объект отправляемого сообщения. -// -Процедура ПриОтправкеСообщения(КаналСообщений, ТелоСообщения, ОбъектСообщения) Экспорт - -КонецПроцедуры - -// Процедура вызывается при начале обработки входящего сообщения. -// -// Параметры: -// Сообщение - ОбъектXDTO - входящее сообщение, -// Отправитель - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, соответствующей -// информационной базе, отправившей сообщение. -// -Процедура ПриНачалеОбработкиСообщения(Знач Сообщение, Знач Отправитель) Экспорт - -КонецПроцедуры - -// Процедура вызывается после обработки входящего сообщения. -// -// Параметры: -// Сообщение - ОбъектXDTO - входящее сообщение, -// Отправитель - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, соответствующей -// информационной базе, отправившей сообщение, -// СообщениеОбработано - Булево - Флаг того, что сообщение было успешно обработано. Если значение -// установлено равным Ложь - после выполнения этой процедуры будет вызвано исключение. В данной -// процедуре значение данного параметра может быть изменено. -// -Процедура ПослеОбработкиСообщения(Знач Сообщение, Знач Отправитель, СообщениеОбработано) Экспорт - -КонецПроцедуры - -// Процедура вызывается при возникновении ошибки обработки сообщения. -// -// Параметры: -// Сообщение - ОбъектXDTO - входящее сообщение, -// Отправитель - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, соответствующей -// информационной базе, отправившей сообщение. -// -Процедура ПриОшибкеОбработкиСообщения(Знач Сообщение, Знач Отправитель) Экспорт - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияВМоделиСервисаПереопределяемый/СообщенияВМоделиСервисаПереопределяемый.mdo b/SSL/src/CommonModules/СообщенияВМоделиСервисаПереопределяемый/СообщенияВМоделиСервисаПереопределяемый.mdo deleted file mode 100644 index ca69a34ff..000000000 --- a/SSL/src/CommonModules/СообщенияВМоделиСервисаПереопределяемый/СообщенияВМоделиСервисаПереопределяемый.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - СообщенияВМоделиСервисаПереопределяемый - - ru - Сообщения в модели сервиса переопределяемый - - true - true - true - diff --git a/SSL/src/CommonModules/СообщенияВМоделиСервисаПовтИсп/Module.bsl b/SSL/src/CommonModules/СообщенияВМоделиСервисаПовтИсп/Module.bsl deleted file mode 100644 index 68b777139..000000000 --- a/SSL/src/CommonModules/СообщенияВМоделиСервисаПовтИсп/Module.bsl +++ /dev/null @@ -1,138 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -// Возвращает XDTO тип - сообщение. -// -// Возвращаемое значение: -// ТипОбъектаXDTO - тип сообщения. -// -Функция ТипСообщение() Экспорт - - Возврат ФабрикаXDTO.Тип(ПакетСообщения(), "Message"); - -КонецФункции - -// Возвращает тип, являющийся базовым для всех типов тел сообщений -// в модели сервиса. -// -// Возвращаемое значение: -// ТипОбъектаXDTO - базовый тип тел сообщений в модели сервиса. -// -Функция ТипТело() Экспорт - - Возврат ФабрикаXDTO.Тип(ПакетСообщения(), "Body"); - -КонецФункции - -// Возвращает тип, являющийся базовым для всех типов тел сообщений, -// относящихся к областям данных в модели сервиса. -// -// Возвращаемое значение: -// ТипОбъектаXDTO - базовый тип тел сообщений областей данных в модели сервиса. -// -Функция ТипТелоОбласти() Экспорт - - Возврат ФабрикаXDTO.Тип(ПакетСообщения(), "ZoneBody"); - -КонецФункции - -// Возвращает тип, являющийся базовым для всех типов тел сообщений, -// отправляемых из областей данных с аутентификацией области в модели сервиса. -// -// Возвращаемое значение: -// ТипОбъектаXDTO - базовый тип тел сообщений областей данных с аутентификацией -// в модели сервиса. -// -Функция ТипАутентифицированноеТелоОбласти() Экспорт - - Возврат ФабрикаXDTO.Тип(ПакетСообщения(), "AuthenticatedZoneBody"); - -КонецФункции - -// Возвращает тип - заголовок сообщения. -// -// Возвращаемое значение: -// ТипОбъектаXDTO - тип заголовок сообщения в модели сервиса. -// -Функция ТипЗаголовокСообщения() Экспорт - - Возврат ФабрикаXDTO.Тип(ПакетСообщения(), "Header"); - -КонецФункции - -// Возвращает тип - узел обмена сообщениями в модели сервиса. -// -// Возвращаемое значение: -// ТипОбъектаXDTO - тип узел обмена сообщениями в модели сервиса. -// -Функция ТипУзелОбменаСообщениями() Экспорт - - Возврат ФабрикаXDTO.Тип(ПакетСообщения(), "Node"); - -КонецФункции - -// Возвращает типы объектов XDTO содержащихся в заданном -// пакете, являющиеся типа сообщений удаленного администрирования. -// -// Параметры: -// URIПакета - Строка - URI пакета XDTO, типы сообщений из которого -// требуется получить. -// -// Возвращаемое значение: -// ФиксированныйМассив(ТипОбъектаXDTO) - типы сообщений найденные в пакете. -// -Функция ПолучитьТипыСообщенийПакета(Знач URIПакета) Экспорт - - БазовыйТип = СообщенияВМоделиСервисаПовтИсп.ТипТело(); - Результат = ИнтерфейсыСообщенийВМоделиСервиса.ПолучитьТипыСообщенийПакета(URIПакета, БазовыйТип); - Возврат Новый ФиксированныйМассив(Результат); - -КонецФункции - -// Возвращает имена каналов сообщений из заданного пакета. -// -// Параметры: -// URIПакета - Строка - URI пакета XDTO, типы сообщений из которого -// требуется получить. -// -// Возвращаемое значение: -// ФиксированныйМассив(Строка) - имена каналов найденные в пакете. -// -Функция ПолучитьКаналыПакета(Знач URIПакета) Экспорт - - Результат = Новый Массив; - - ТипыСообщенийПакета = - СообщенияВМоделиСервисаПовтИсп.ПолучитьТипыСообщенийПакета(URIПакета); - - Для каждого ТипСообщения Из ТипыСообщенийПакета Цикл - Результат.Добавить(СообщенияВМоделиСервиса.ИмяКаналаПоТипуСообщения(ТипСообщения)); - КонецЦикла; - - Возврат Новый ФиксированныйМассив(Результат); - -КонецФункции - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Возвращает uri пакета сообщений с базовыми типами. -// -// Возвращаемое значение: -// Строка - пакет сообщений. -// -Функция ПакетСообщения() - - Возврат "http://www.1c.ru/SaaS/Messages"; - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияВМоделиСервисаПовтИсп/СообщенияВМоделиСервисаПовтИсп.mdo b/SSL/src/CommonModules/СообщенияВМоделиСервисаПовтИсп/СообщенияВМоделиСервисаПовтИсп.mdo deleted file mode 100644 index 521e6094b..000000000 --- a/SSL/src/CommonModules/СообщенияВМоделиСервисаПовтИсп/СообщенияВМоделиСервисаПовтИсп.mdo +++ /dev/null @@ -1,12 +0,0 @@ - - - СообщенияВМоделиСервисаПовтИсп - - ru - Сообщения в модели сервиса повт исп - - true - true - true - DuringSession - diff --git a/SSL/src/CommonModules/СообщенияВМоделиСервисаРазделениеДанных/Module.bsl b/SSL/src/CommonModules/СообщенияВМоделиСервисаРазделениеДанных/Module.bsl deleted file mode 100644 index 41fff4773..000000000 --- a/SSL/src/CommonModules/СообщенияВМоделиСервисаРазделениеДанных/Module.bsl +++ /dev/null @@ -1,331 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -// Вызывается при заполнении массива справочников, которые могут использоваться для -// хранения сообщений. -// -// Параметры: -// МассивСправочник - Массив - в этот параметр в данном методе должны быть добавлены -// менеджеры справочников, которые могут использоваться для хранения заданий очереди. -// -Процедура ПриЗаполненииСправочниковСообщений(МассивСправочников) Экспорт - - МассивСправочников.Добавить(Справочники.СообщенияОбластейДанных); - -КонецПроцедуры - -// Выбирает справочник для сообщения. -// -// Параметры: -// ТелоСообщения - Произвольный - тело сообщения. -// -Функция ПриВыбореСправочникаДляСообщения(Знач ТелоСообщения) Экспорт - - Сообщение = Неопределено; - Если СообщенияВМоделиСервиса.ТелоСодержитТипизированноеСообщение(ТелоСообщения, Сообщение) Тогда - - Если СообщенияВМоделиСервисаПовтИсп.ТипТелоОбласти().ЭтоПотомок(Сообщение.Body.Тип()) Тогда - - Возврат Справочники.СообщенияОбластейДанных; - - КонецЕсли; - - Иначе - - Если РаботаВМоделиСервиса.ИспользованиеРазделителяСеанса() Тогда - Возврат Справочники.СообщенияОбластейДанных; - КонецЕсли; - - КонецЕсли; - -КонецФункции - -// Вызывается перед записью элемента справочника сообщений. -// -// Параметры: -// ОбъектСообщения - СправочникОбъект.СообщенияСистемы, СправочникОбъект.СообщенияОбластейДанных, -// СтандартнаяОбработка - Булево. -// -Процедура ПередЗаписьюСообщения(ОбъектСообщения, СтандартнаяОбработка) Экспорт - - Сообщение = Неопределено; - Если СообщенияВМоделиСервиса.ТелоСодержитТипизированноеСообщение(ОбъектСообщения.ТелоСообщения.Получить(), Сообщение) Тогда - - Если СообщенияВМоделиСервисаПовтИсп.ТипТелоОбласти().ЭтоПотомок(Сообщение.Body.Тип()) Тогда - - ОбъектСообщения.ОбластьДанныхВспомогательныеДанные = Сообщение.Body.Zone; - - КонецЕсли; - - КонецЕсли; - - СтандартнаяОбработка = Ложь; - РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(ОбъектСообщения); - -КонецПроцедуры - -// Обработчик события при отправке сообщения. -// Обработчик данного события вызывается перед помещением сообщения в XML-поток. -// Обработчик вызывается для каждого отправляемого сообщения. -// -// Параметры: -// КаналСообщений - Строка - идентификатор канала сообщений, в который отправляется сообщение. -// ТелоСообщения - Произвольный - Тело отправляемого сообщения. В обработчике события тело сообщения -// может быть изменено, например, дополнено информацией. -// -Процедура ПриОтправкеСообщения(КаналСообщений, ТелоСообщения, ОбъектСообщения) Экспорт - - Сообщение = Неопределено; - Если СообщенияВМоделиСервиса.ТелоСодержитТипизированноеСообщение(ТелоСообщения, Сообщение) Тогда - - Если РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() - И СообщенияВМоделиСервисаПовтИсп.ТипТелоОбласти().ЭтоПотомок(Сообщение.Body.Тип()) Тогда - - Если РаботаВМоделиСервиса.ЗначениеРазделителяСеанса() <> Сообщение.Body.Zone Тогда - ШаблонСообщения = НСтр("ru = 'Попытка отправить сообщение от имени области %1 из области %2'"); - ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Сообщение.Body.Zone, - РаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); - ВызватьИсключение(ТекстСообщения); - КонецЕсли; - КонецЕсли; - - Если СообщенияВМоделиСервисаПовтИсп.ТипАутентифицированноеТелоОбласти().ЭтоПотомок(Сообщение.Body.Тип()) Тогда - - Если РаботаВМоделиСервиса.ДоступноИспользованиеРазделенныхДанных() Тогда - Сообщение.Body.ZoneKey = Константы.КлючОбластиДанных.Получить(); - Иначе - УстановитьПривилегированныйРежим(Истина); - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, Сообщение.Body.Zone); - Сообщение.Body.ZoneKey = Константы.КлючОбластиДанных.Получить(); - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - КонецЕсли; - - КонецЕсли; - - ТелоСообщения = СообщенияВМоделиСервиса.ЗаписатьСообщениеВНетипизированноеТело(Сообщение); - - КонецЕсли; - - Если ТипЗнч(ОбъектСообщения) <> Тип("СправочникОбъект.СообщенияСистемы") Тогда - - ПодменаОбъектаСообщения = Справочники.СообщенияСистемы.СоздатьЭлемент(); - - ЗаполнитьЗначенияСвойств(ПодменаОбъектаСообщения, ОбъектСообщения, , "Родитель,Владелец"); - - ПодменаОбъектаСообщения.УстановитьСсылкуНового(Справочники.СообщенияСистемы.ПолучитьСсылку( - ОбъектСообщения.Ссылка.УникальныйИдентификатор())); - - ОбъектСообщения = ПодменаОбъектаСообщения; - - КонецЕсли; - -КонецПроцедуры - -// Обработчик события при получении сообщения. -// Обработчик данного события вызывается при получении сообщения из XML-потока. -// Обработчик вызывается для каждого получаемого сообщения. -// -// Параметры: -// КаналСообщений - Строка - идентификатор канала сообщений, из которого получено сообщение. -// ТелоСообщения - Произвольный - Тело полученного сообщения. В обработчике события тело -// сообщения может быть изменено, например, дополнено информацией. -// -Процедура ПриПолученииСообщения(КаналСообщений, ТелоСообщения, ОбъектСообщения) Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Сообщение = Неопределено; - Если СообщенияВМоделиСервиса.ТелоСодержитТипизированноеСообщение(ТелоСообщения, Сообщение) Тогда - - Если РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - - ПереопределенныйСправочник = ПриВыбореСправочникаДляСообщения(ТелоСообщения); - - Если ПереопределенныйСправочник <> Неопределено Тогда - - Если ТипЗнч(ПереопределенныйСправочник.ПустаяСсылка()) <> ТипЗнч(ОбъектСообщения.Ссылка) Тогда - - ПодменаОбъектаСообщенияСсылка = ПереопределенныйСправочник.ПолучитьСсылку( - ОбъектСообщения.ПолучитьСсылкуНового().УникальныйИдентификатор()); - - Если ОбщегоНазначения.СсылкаСуществует(ПодменаОбъектаСообщенияСсылка) Тогда - - ПодменаОбъектаСообщения = ПодменаОбъектаСообщенияСсылка.ПолучитьОбъект(); - - Иначе - - ПодменаОбъектаСообщения = ПереопределенныйСправочник.СоздатьЭлемент(); - ПодменаОбъектаСообщения.УстановитьСсылкуНового(ПодменаОбъектаСообщенияСсылка); - - КонецЕсли; - - ЗаполнитьЗначенияСвойств(ПодменаОбъектаСообщения, ОбъектСообщения, , "Родитель,Владелец"); - ПодменаОбъектаСообщения.ОбластьДанныхВспомогательныеДанные = Сообщение.Body.Zone; - - ОбъектСообщения = ПодменаОбъектаСообщения; - - КонецЕсли; - - КонецЕсли; - - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - -// Процедура вызывается при начале обработки входящего сообщения. -// -// Параметры: -// Сообщение - ОбъектXDTO - входящее сообщение, -// Отправитель - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, соответствующей -// информационной базе, отправившей сообщение. -// -Процедура ПриНачалеОбработкиСообщения(Знач Сообщение, Знач Отправитель) Экспорт - - Если СообщенияВМоделиСервисаПовтИсп.ТипТелоОбласти().ЭтоПотомок(Сообщение.Body.Тип()) Тогда - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, Сообщение.Body.Zone); - ОбработатьКлючОбластиВСообщении(Сообщение); - - КонецЕсли; - -КонецПроцедуры - -// Процедура вызывается после обработки входящего сообщения. -// -// Параметры: -// Сообщение - ОбъектXDTO - входящее сообщение, -// Отправитель - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, соответствующей -// информационной базе, отправившей сообщение, -// СообщениеОбработано - булево, флаг того, что сообщение было успешно обработано. Если значение -// установлено равным Ложь - после выполнения этой процедуры будет вызвано исключение. В данной -// процедуре значение данного параметра может быть изменено. -// -Процедура ПослеОбработкиСообщения(Знач Сообщение, Знач Отправитель, СообщениеОбработано) Экспорт - - Если СообщенияВМоделиСервисаПовтИсп.ТипТелоОбласти().ЭтоПотомок(Сообщение.Body.Тип()) Тогда - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - - КонецЕсли; - -КонецПроцедуры - -// Процедура вызывается при возникновении ошибки обработки сообщения. -// -// Параметры: -// Сообщение - ОбъектXDTO - входящее сообщение, -// Отправитель - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, соответствующей -// информационной базе, отправившей сообщение. -// -Процедура ПриОшибкеОбработкиСообщения(Знач Сообщение, Знач Отправитель) Экспорт - - Если СообщенияВМоделиСервисаПовтИсп.ТипТелоОбласти().ЭтоПотомок(Сообщение.Body.Тип()) Тогда - - РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Процедура ОбработатьКлючОбластиВСообщении(Сообщение) - - СообщениеСодержитКлючОбласти = Ложь; - - Если СообщенияВМоделиСервисаПовтИсп.ТипАутентифицированноеТелоОбласти().ЭтоПотомок(Сообщение.Body.Тип()) Тогда - СообщениеСодержитКлючОбласти = Истина; - КонецЕсли; - - Если Не СообщениеСодержитКлючОбласти Тогда - - МассивОбработчиков = Новый Массив(); - ВызываемыйМодуль = ОбщегоНазначения.ОбщийМодуль("СообщенияУдаленногоАдминистрированияИнтерфейс"); - ВызываемыйМодуль.ОбработчикиКаналовСообщений(МассивОбработчиков); - Для Каждого Обработчик Из МассивОбработчиков Цикл - - ТипСообщенияОбработчика = ВызываемыйМодуль.СообщениеУстановитьПараметрыОбластиДанных( - Обработчик.Пакет()); - - Если Сообщение.Body.Тип() = ТипСообщенияОбработчика Тогда - СообщениеСодержитКлючОбласти = Истина; - Прервать; - КонецЕсли; - - КонецЦикла; - - КонецЕсли; - - Если СообщениеСодержитКлючОбласти Тогда - - ТекущийКлючОбласти = Константы.КлючОбластиДанных.Получить(); - - Если Не ЗначениеЗаполнено(ТекущийКлючОбласти) Тогда - - Константы.КлючОбластиДанных.Установить(Сообщение.Body.ZoneKey); - - Иначе - - Если ПроверкаКлючаОбластиВСообщенияхВозможна() Тогда - - Если ТекущийКлючОбласти <> Сообщение.Body.ZoneKey Тогда - - ВызватьИсключение НСтр("ru = 'Неверный ключ области данных в сообщении'"); - - КонецЕсли; - - КонецЕсли; - - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - -Функция ПроверкаКлючаОбластиВСообщенияхВозможна() - - СтруктураНастроек = РегистрыСведений.НастройкиТранспортаОбменаСообщениями.НастройкиТранспортаWS( - РаботаВМоделиСервиса.КонечнаяТочкаМенеджераСервиса()); - ПараметрыПодключенияКМС = Новый Структура; - ПараметрыПодключенияКМС.Вставить("URL", СтруктураНастроек.WSURLВебСервиса); - ПараметрыПодключенияКМС.Вставить("UserName", СтруктураНастроек.WSИмяПользователя); - ПараметрыПодключенияКМС.Вставить("Password", СтруктураНастроек.WSПароль); - - МаксимальнаяВерсия = Неопределено; - ВерсииМС = ОбщегоНазначения.ПолучитьВерсииИнтерфейса(ПараметрыПодключенияКМС, "СообщенияВМоделиСервиса"); - Если ВерсииМС = Неопределено Тогда - Возврат Ложь; - КонецЕсли; - - Для Каждого ВерсияМС Из ВерсииМС Цикл - - Если МаксимальнаяВерсия = Неопределено Тогда - МаксимальнаяВерсия = ВерсияМС; - Иначе - МаксимальнаяВерсия = ?(ОбщегоНазначенияКлиентСервер.СравнитьВерсии( - ВерсияМС, МаксимальнаяВерсия) > 0, ВерсияМС, - МаксимальнаяВерсия); - КонецЕсли; - - КонецЦикла; - - Если ВерсияМС = Неопределено Тогда - Возврат Ложь; - КонецЕсли; - - Возврат (ОбщегоНазначенияКлиентСервер.СравнитьВерсии(МаксимальнаяВерсия, "1.0.4.1") >= 0); - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияВМоделиСервисаРазделениеДанных/СообщенияВМоделиСервисаРазделениеДанных.mdo b/SSL/src/CommonModules/СообщенияВМоделиСервисаРазделениеДанных/СообщенияВМоделиСервисаРазделениеДанных.mdo deleted file mode 100644 index 3caa056f0..000000000 --- a/SSL/src/CommonModules/СообщенияВМоделиСервисаРазделениеДанных/СообщенияВМоделиСервисаРазделениеДанных.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - СообщенияВМоделиСервисаРазделениеДанных - - ru - Сообщения в модели сервиса разделение данных - - true - true - true - diff --git a/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемИнтерфейс/Module.bsl b/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс/Module.bsl similarity index 64% rename from SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемИнтерфейс/Module.bsl rename to SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс/Module.bsl index b86d5d9a7..a5816f31b 100644 --- a/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемИнтерфейс/Module.bsl +++ b/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс/Module.bsl @@ -6,130 +6,121 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -#Область ПрограммныйИнтерфейс +#Область СлужебныеПроцедурыИФункции // Возвращает пространство имен текущей (используемой вызывающим кодом) версии интерфейса сообщений. // // Возвращаемое значение: -// Строка - наименование пакета. +// Строка // Функция Пакет() Экспорт - Возврат "http://www.1c.ru/SaaS/ManageZonesBackup/" + Версия(); + Возврат "http://www.1c.ru/1cFresh/ApplicationExtensions/Control/" + Версия(); КонецФункции // Возвращает текущую (используемую вызывающим кодом) версию интерфейса сообщений. // // Возвращаемое значение: -// Строка - версия пакета. +// Строка // Функция Версия() Экспорт - Возврат "1.0.3.1"; + Возврат "1.0.1.1"; КонецФункции // Возвращает название программного интерфейса сообщений. // // Возвращаемое значение: -// Строка - идентификатор программного интерфейса. +// Строка // Функция ПрограммныйИнтерфейс() Экспорт - Возврат "ManageZonesBackup"; + Возврат "ApplicationExtensionsControl"; КонецФункции // Выполняет регистрацию обработчиков сообщений в качестве обработчиков каналов обмена сообщениями. // // Параметры: -// МассивОбработчиков - Массив - массив обработчиков. +// МассивОбработчиков - Массив - общие модули или модули менеджеров. // Процедура ОбработчикиКаналовСообщений(Знач МассивОбработчиков) Экспорт - МассивОбработчиков.Добавить(СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_2_1); - МассивОбработчиков.Добавить(СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_3_1); - КонецПроцедуры // Выполняет регистрацию обработчиков трансляции сообщений. // // Параметры: -// МассивОбработчиков - Массив - массив обработчиков. +// МассивОбработчиков - Массив - общие модули или модули менеджеров. // Процедура ОбработчикиТрансляцииСообщений(Знач МассивОбработчиков) Экспорт + МассивОбработчиков.Добавить(СообщенияКонтрольДополнительныхОтчетовИОбработокОбработчикТрансляции_1_0_0_1); + КонецПроцедуры -// Возвращает тип сообщения {http://www.1c.ru/SaaS/ManageZonesBackup/a.b.c.d}PlanZoneBackup. +// Возвращает тип сообщения {http://www.1c.ru/1cFresh/ApplicationExtensions/Control/a.b.c.d}ExtensionInstalled // // Параметры: // ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой // получается тип сообщения. // // Возвращаемое значение: -// ТипXDTO - сообщение. +// ТипОбъектаXDTO // -Функция СообщениеПланироватьАрхивациюОбласти(Знач ИспользуемыйПакет = Неопределено) Экспорт +Функция СообщениеДополнительныйОтчетИлиОбработкаУстановлена(Знач ИспользуемыйПакет = Неопределено) Экспорт - Возврат СоздатьТипСообщения(ИспользуемыйПакет, "PlanZoneBackup"); + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ExtensionInstalled"); КонецФункции -// Возвращает тип сообщения {http://www.1c.ru/SaaS/ManageZonesBackup/a.b.c.d}CancelZoneBackup. +// Возвращает тип сообщения {http://www.1c.ru/1cFresh/ApplicationExtensions/Control/a.b.c.d}ExtensionDeleted // // Параметры: // ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой // получается тип сообщения. // // Возвращаемое значение: -// ТипXDTO - сообщение. +// ТипОбъектаXDTO // -Функция СообщениеОтменитьАрхивациюОбласти(Знач ИспользуемыйПакет = Неопределено) Экспорт +Функция СообщениеДополнительныйОтчетИлиОбработкаУдалена(Знач ИспользуемыйПакет = Неопределено) Экспорт - Если ИспользуемыйПакет = Неопределено Тогда - ИспользуемыйПакет = "http://www.1c.ru/SaaS/ManageZonesBackup/1.0.2.1"; - КонецЕсли; - - Возврат СоздатьТипСообщения(ИспользуемыйПакет, "CancelZoneBackup"); + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ExtensionDeleted"); КонецФункции -// Возвращает тип сообщения {http://www.1c.ru/SaaS/ManageZonesBackup/a.b.c.d}UpdateScheduledZoneBackupSettings +// Возвращает тип сообщения {http://www.1c.ru/1cFresh/ApplicationExtensions/Control/a.b.c.d}ExtensionInstallFailed // // Параметры: // ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой // получается тип сообщения. // // Возвращаемое значение: -// ТипXDTO - сообщение. +// ТипОбъектаXDTO // -Функция СообщениеОбновитьНастройкиПериодическогоРезервногоКопирования(Знач ИспользуемыйПакет = Неопределено) Экспорт +Функция СообщениеОшибкаУстановкиДополнительногоОтчетаИлиОбработки(Знач ИспользуемыйПакет = Неопределено) Экспорт - Возврат СоздатьТипСообщения(ИспользуемыйПакет, "UpdateScheduledZoneBackupSettings"); + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ExtensionInstallFailed"); КонецФункции -// Возвращает тип сообщения {http://www.1c.ru/SaaS/ManageZonesBackup/a.b.c.d}CancelScheduledZoneBackup +// Возвращает тип сообщения {http://www.1c.ru/1cFresh/ApplicationExtensions/Control/a.b.c.d}ExtensionDeleteFailed // // Параметры: // ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой // получается тип сообщения. // // Возвращаемое значение: -// ТипXDTO - сообщение. +// ТипОбъектаXDTO // -Функция СообщениеОтменитьПериодическоеРезервноеКопирование(Знач ИспользуемыйПакет = Неопределено) Экспорт +Функция СообщениеОшибкаУдаленияДополнительногоОтчетаИлиОбработки(Знач ИспользуемыйПакет = Неопределено) Экспорт - Возврат СоздатьТипСообщения(ИспользуемыйПакет, "CancelScheduledZoneBackup"); + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ExtensionDeleteFailed"); КонецФункции -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - Функция СоздатьТипСообщения(Знач ИспользуемыйПакет, Знач Тип) Если ИспользуемыйПакет = Неопределено Тогда diff --git a/SSL/src/CommonModules/ИнтеграцияСТехнологиейСервиса/ИнтеграцияСТехнологиейСервиса.mdo b/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс/СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс.mdo similarity index 57% rename from SSL/src/CommonModules/ИнтеграцияСТехнологиейСервиса/ИнтеграцияСТехнологиейСервиса.mdo rename to SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс/СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс.mdo index abb6216c7..01a3c94f2 100644 --- a/SSL/src/CommonModules/ИнтеграцияСТехнологиейСервиса/ИнтеграцияСТехнологиейСервиса.mdo +++ b/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс/СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс.mdo @@ -1,9 +1,9 @@ - - ИнтеграцияСТехнологиейСервиса + + СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс ru - Интеграция с технологией сервиса + Сообщения контроль дополнительных отчетов и обработок интерфейс true true diff --git a/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокОбработчикТрансляции_1_0_0_1/Module.bsl b/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокОбработчикТрансляции_1_0_0_1/Module.bsl new file mode 100644 index 000000000..d06e3ba52 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокОбработчикТрансляции_1_0_0_1/Module.bsl @@ -0,0 +1,86 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Возвращает номер версии, для трансляции с которой предназначен обработчик. +// +// Возвращаемое значение: +// Строка +// +Функция ИсходнаяВерсия() Экспорт + + Возврат "1.0.1.1"; + +КонецФункции + +// Возвращает пространство имен версии, для трансляции с которой предназначен обработчик. +// +// Возвращаемое значение: +// Строка +// +Функция ПакетИсходнойВерсии() Экспорт + + Возврат "http://www.1c.ru/1cFresh/ApplicationExtensions/Control/" + ИсходнаяВерсия(); + +КонецФункции + +// Возвращает номер версии, для трансляции в которую предназначен обработчик. +// +// Возвращаемое значение: +// Строка +// +Функция РезультирующаяВерсия() Экспорт + + Возврат "1.0.0.1"; + +КонецФункции + +// Возвращает пространство имен версии, для трансляции в которую предназначен обработчик. +// +// Возвращаемое значение: +// Строка +// +Функция ПакетРезультирующейВерсии() Экспорт + + Возврат "http://www.1c.ru/1cFresh/RemoteAdministration/Control/1.0.2.4"; + +КонецФункции + +// Обработчик проверки выполнения стандартной обработки трансляции +// +// Параметры: +// ИсходноеСообщение - ОбъектXDTO - транслируемое сообщение, +// СтандартнаяОбработка - Булево - для отмены выполнения стандартной обработки трансляции +// этому параметру внутри данной процедуры необходимо установить значение Ложь. +// При этом вместо выполнения стандартной обработки трансляции будет вызвана функция +// ТрансляцияСообщения() обработчика трансляции. +// +Процедура ПередТрансляцией(Знач ИсходноеСообщение, СтандартнаяОбработка) Экспорт + +КонецПроцедуры + +// Обработчик выполнения произвольной трансляции сообщения. Вызывается только в том случае, +// если при выполнении процедуры ПередТрансляцией значению параметра СтандартнаяОбработка +// было установлено значение Ложь. +// +// Параметры: +// ИсходноеСообщение - ОбъектXDTO - транслируемое сообщение. +// +// Возвращаемое значение: +// ОбъектXDTO - результат произвольной трансляции сообщения. +// +Функция ТрансляцияСообщения(Знач ИсходноеСообщение) Экспорт + +КонецФункции + +#КонецОбласти + + + + diff --git a/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокОбработчикТрансляции_1_0_0_1/СообщенияКонтрольДополнительныхОтчетовИОбработокОбработчикТрансляции_1_0_0_1.mdo b/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокОбработчикТрансляции_1_0_0_1/СообщенияКонтрольДополнительныхОтчетовИОбработокОбработчикТрансляции_1_0_0_1.mdo new file mode 100644 index 000000000..55511404b --- /dev/null +++ b/SSL/src/CommonModules/СообщенияКонтрольДополнительныхОтчетовИОбработокОбработчикТрансляции_1_0_0_1/СообщенияКонтрольДополнительныхОтчетовИОбработокОбработчикТрансляции_1_0_0_1.mdo @@ -0,0 +1,11 @@ + + + СообщенияКонтрольДополнительныхОтчетовИОбработокОбработчикТрансляции_1_0_0_1 + + ru + Сообщения контроль удаленного администрирования обработчик трансляции 1.0.0.1 + + true + true + true + diff --git a/SSL/src/CommonModules/СообщенияКонтрольРезервногоКопированияИнтерфейс/Module.bsl b/SSL/src/CommonModules/СообщенияКонтрольРезервногоКопированияИнтерфейс/Module.bsl deleted file mode 100644 index 30c25afb3..000000000 --- a/SSL/src/CommonModules/СообщенияКонтрольРезервногоКопированияИнтерфейс/Module.bsl +++ /dev/null @@ -1,124 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Возвращает пространство имен текущей (используемой вызывающим кодом) версии интерфейса сообщений. -// -// Возвращаемое значение: -// Строка - пространство имен. -// -Функция Пакет() Экспорт - - Возврат "http://www.1c.ru/SaaS/ControlZonesBackup/" + Версия(); - -КонецФункции - -// Возвращает текущую (используемую вызывающим кодом) версию интерфейса сообщений. -// -// Возвращаемое значение: -// Строка - версия интерфейса. -// -Функция Версия() Экспорт - - Возврат "1.0.3.1"; - -КонецФункции - -// Возвращает название программного интерфейса сообщений. -// -// Возвращаемое значение: -// Строка - название интерфейса. -// -Функция ПрограммныйИнтерфейс() Экспорт - - Возврат "ControlZonesBackup"; - -КонецФункции - -// Выполняет регистрацию обработчиков сообщений в качестве обработчиков каналов обмена сообщениями. -// -// Параметры: -// МассивОбработчиков - Массив - массив обработчиков. -// -Процедура ОбработчикиКаналовСообщений(Знач МассивОбработчиков) Экспорт - -КонецПроцедуры - -// Выполняет регистрацию обработчиков трансляции сообщений. -// -// Параметры: -// МассивОбработчиков - Массив - массив обработчиков. -// -Процедура ОбработчикиТрансляцииСообщений(Знач МассивОбработчиков) Экспорт - - МассивОбработчиков.Добавить(СообщенияКонтрольРезервногоКопированияОбработчикТрансляции_1_0_2_1); - -КонецПроцедуры - -// Возвращает тип сообщения {http://www.1c.ru/SaaS/ControlZonesBackup/a.b.c.d}ZoneBackupSuccessfull. -// -// Параметры: -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой получается тип сообщения. -// -// Возвращаемое значение: -// ТипXDTO - тип сообщения. -// -Функция СообщениеРезервнаяКопияОбластиСоздана(Знач ИспользуемыйПакет = Неопределено) Экспорт - - Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ZoneBackupSuccessfull"); - -КонецФункции - -// Возвращает тип сообщения {http://www.1c.ru/SaaS/ControlZonesBackup/a.b.c.d}ZoneBackupFailed. -// -// Параметры: -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой получается тип сообщения. -// -// Возвращаемое значение: -// ТипXDTO - тип сообщения. -// -Функция СообщениеОшибкаАрхивацииОбласти(Знач ИспользуемыйПакет = Неопределено) Экспорт - - Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ZoneBackupFailed"); - -КонецФункции - -// Возвращает тип сообщения {http://www.1c.ru/SaaS/ControlZonesBackup/a.b.c.d}ZoneBackupSkipped. -// -// Параметры: -// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой получается тип сообщения. -// -// Возвращаемое значение: -// ТипXDTO - тип сообщения. -// -Функция СообщениеАрхивацияОбластиПропущена(Знач ИспользуемыйПакет = Неопределено) Экспорт - - Если ИспользуемыйПакет = Неопределено Тогда - ИспользуемыйПакет = "http://www.1c.ru/SaaS/ControlZonesBackup/1.0.2.1"; - КонецЕсли; - - Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ZoneBackupSkipped"); - -КонецФункции - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Функция СоздатьТипСообщения(Знач ИспользуемыйПакет, Знач Тип) - - Если ИспользуемыйПакет = Неопределено Тогда - ИспользуемыйПакет = Пакет(); - КонецЕсли; - - Возврат ФабрикаXDTO.Тип(ИспользуемыйПакет, Тип); - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияКонтрольРезервногоКопированияИнтерфейс/СообщенияКонтрольРезервногоКопированияИнтерфейс.mdo b/SSL/src/CommonModules/СообщенияКонтрольРезервногоКопированияИнтерфейс/СообщенияКонтрольРезервногоКопированияИнтерфейс.mdo deleted file mode 100644 index 95a5989ed..000000000 --- a/SSL/src/CommonModules/СообщенияКонтрольРезервногоКопированияИнтерфейс/СообщенияКонтрольРезервногоКопированияИнтерфейс.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - СообщенияКонтрольРезервногоКопированияИнтерфейс - - ru - Сообщения контроль резервного копирования интерфейс - - true - true - true - diff --git a/SSL/src/CommonModules/СообщенияКонтрольРезервногоКопированияОбработчикТрансляции_1_0_2_1/Module.bsl b/SSL/src/CommonModules/СообщенияКонтрольРезервногоКопированияОбработчикТрансляции_1_0_2_1/Module.bsl deleted file mode 100644 index 4a4cf2443..000000000 --- a/SSL/src/CommonModules/СообщенияКонтрольРезервногоКопированияОбработчикТрансляции_1_0_2_1/Module.bsl +++ /dev/null @@ -1,148 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Возвращает номер версии, для трансляции с которой предназначен обработчик. -// -// Возвращаемое значение: -// Строка - исходная версия. -// -Функция ИсходнаяВерсия() Экспорт - - Возврат "1.0.3.1"; - -КонецФункции - -// Возвращает пространство имен версии, для трансляции с которой предназначен обработчик. -// -// Возвращаемое значение: -// Строка - пакет исходной версии. -// -Функция ПакетИсходнойВерсии() Экспорт - - Возврат "http://www.1c.ru/SaaS/ControlZonesBackup/1.0.3.1"; - -КонецФункции - -// Возвращает номер версии, для трансляции в которую предназначен обработчик. -// -// Возвращаемое значение: -// Строка - результирующая версия. -// -Функция РезультирующаяВерсия() Экспорт - - Возврат "1.0.2.1"; - -КонецФункции - -// Возвращает пространство имен версии, для трансляции в которую предназначен обработчик. -// -// Возвращаемое значение: -// Строка - пакет результирующей версии. -// -Функция ПакетРезультирующейВерсии() Экспорт - - Возврат "http://www.1c.ru/SaaS/ControlZonesBackup/1.0.2.1"; - -КонецФункции - -// Обработчик проверки выполнения стандартной обработки трансляции. -// -// Параметры: -// ИсходноеСообщение - ОбъектXDTO - транслируемое сообщение, -// СтандартнаяОбработка - Булево - для отмены выполнения стандартной обработки трансляции -// этому параметру внутри данной процедуры необходимо установить значение Ложь. -// При этом вместо выполнения стандартной обработки трансляции будет вызвана функция. -// ТрансляцияСообщения() обработчика трансляции. -// -Процедура ПередТрансляцией(Знач ИсходноеСообщение, СтандартнаяОбработка) Экспорт - - ТипТела = ИсходноеСообщение.Тип(); - - Если ТипТела = Интерфейс().СообщениеРезервнаяКопияОбластиСоздана(ПакетИсходнойВерсии()) Тогда - СтандартнаяОбработка = Ложь; - ИначеЕсли ТипТела = Интерфейс().СообщениеОшибкаАрхивацииОбласти(ПакетИсходнойВерсии()) Тогда - СтандартнаяОбработка = Ложь; - КонецЕсли; - -КонецПроцедуры - -// Обработчик выполнения произвольной трансляции сообщения. Вызывается только в том случае, -// если при выполнении процедуры ПередТрансляцией значению параметра СтандартнаяОбработка -// было установлено значение Ложь. -// -// Параметры: -// ИсходноеСообщение - ОбъектXDTO - транслируемое сообщение. -// -// Возвращаемое значение: -// ОбъектXDTO - результат произвольной трансляции сообщения. -// -Функция ТрансляцияСообщения(Знач ИсходноеСообщение) Экспорт - - ТипТела = ИсходноеСообщение.Тип(); - - Если ТипТела = Интерфейс().СообщениеРезервнаяКопияОбластиСоздана(ПакетИсходнойВерсии()) Тогда - Возврат ТранслироватьРезервнаяКопияОбластиСоздана(ИсходноеСообщение); - ИначеЕсли ТипТела = Интерфейс().СообщениеОшибкаАрхивацииОбласти(ПакетИсходнойВерсии()) Тогда - Возврат ТранслироватьОшибкаАрхивацииОбласти(ИсходноеСообщение); - ИначеЕсли ТипТела = Интерфейс().СообщениеАрхивацияОбластиПропущена(ПакетИсходнойВерсии()) Тогда - Возврат ТранслироватьАрхивацияОбластиПропущена(ИсходноеСообщение); - КонецЕсли; - -КонецФункции - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Функция Интерфейс() - - Возврат СообщенияКонтрольРезервногоКопированияИнтерфейс; - -КонецФункции - -Функция ТранслироватьРезервнаяКопияОбластиСоздана(Знач ИсходноеСообщение) - - Результат = ФабрикаXDTO.Создать( - Интерфейс().СообщениеРезервнаяКопияОбластиСоздана(ПакетРезультирующейВерсии())); - - Результат.Zone = ИсходноеСообщение.Zone; - Результат.BackupId = ИсходноеСообщение.BackupId; - Результат.Date = ИсходноеСообщение.Date; - Результат.FileId = ИсходноеСообщение.FileId; - - Возврат Результат; - -КонецФункции - -Функция ТранслироватьОшибкаАрхивацииОбласти(Знач ИсходноеСообщение) - - Результат = ФабрикаXDTO.Создать( - Интерфейс().СообщениеОшибкаАрхивацииОбласти(ПакетРезультирующейВерсии())); - - Результат.Zone = ИсходноеСообщение.Zone; - Результат.BackupId = ИсходноеСообщение.BackupId; - - Возврат Результат; - -КонецФункции - -Функция ТранслироватьАрхивацияОбластиПропущена(Знач ИсходноеСообщение) - - Результат = ФабрикаXDTO.Создать( - Интерфейс().СообщениеАрхивацияОбластиПропущена(ПакетРезультирующейВерсии())); - - Результат.Zone = ИсходноеСообщение.Zone; - Результат.BackupId = ИсходноеСообщение.BackupId; - - Возврат Результат; - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияКонтрольРезервногоКопированияОбработчикТрансляции_1_0_2_1/СообщенияКонтрольРезервногоКопированияОбработчикТрансляции_1_0_2_1.mdo b/SSL/src/CommonModules/СообщенияКонтрольРезервногоКопированияОбработчикТрансляции_1_0_2_1/СообщенияКонтрольРезервногоКопированияОбработчикТрансляции_1_0_2_1.mdo deleted file mode 100644 index 2f73b92a0..000000000 --- a/SSL/src/CommonModules/СообщенияКонтрольРезервногоКопированияОбработчикТрансляции_1_0_2_1/СообщенияКонтрольРезервногоКопированияОбработчикТрансляции_1_0_2_1.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - СообщенияКонтрольРезервногоКопированияОбработчикТрансляции_1_0_2_1 - - ru - Сообщения контроль резервного копирования обработчик трансляции 1.0.2.1 - - true - true - true - diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольИнтерфейс/Module.bsl b/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольИнтерфейс/Module.bsl new file mode 100644 index 000000000..c15ea0f6d --- /dev/null +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольИнтерфейс/Module.bsl @@ -0,0 +1,258 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Пространство имен текущей (используемой вызывающим кодом) версии интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - пространство имен. +// +Функция Пакет() Экспорт + + Возврат "http://www.1c.ru/SaaS/Exchange/Control"; + +КонецФункции + +// Текущая (используемая вызывающим кодом) версия интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - версия интерфейса сообщений. +// +Функция Версия() Экспорт + + Возврат "2.1.2.1"; + +КонецФункции + +// Название программного интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - название программного интерфейса сообщений. +// +Функция ПрограммныйИнтерфейс() Экспорт + + Возврат "ExchangeControl"; + +КонецФункции + +// Выполняет регистрацию обработчиков сообщений в качестве обработчиков каналов обмена сообщениями. +// +// Параметры: +// МассивОбработчиков - Массив - коллекция модулей, содержащих обработчики. +// +Процедура ОбработчикиКаналовСообщений(Знач МассивОбработчиков) Экспорт + + МассивОбработчиков.Добавить(СообщенияОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1); + +КонецПроцедуры + +// Выполняет регистрацию обработчиков трансляции сообщений. +// +// Параметры: +// МассивОбработчиков - Массив - коллекция модулей, содержащих обработчики. +// +Процедура ОбработчикиТрансляцииСообщений(Знач МассивОбработчиков) Экспорт + +КонецПроцедуры + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Control/a.b.c.d}SetupExchangeStep1Completed +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеНастройкаОбменаШаг1УспешноЗавершена(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "SetupExchangeStep1Completed"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Control/a.b.c.d}SetupExchangeStep2Completed +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеНастройкаОбменаШаг2УспешноЗавершена(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "SetupExchangeStep2Completed"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Control/a.b.c.d}SetupExchangeStep1Failed +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеОшибкаНастройкиОбменаШаг1(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "SetupExchangeStep1Failed"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Control/a.b.c.d}SetupExchangeStep2Failed +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеОшибкаНастройкиОбменаШаг2(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "SetupExchangeStep2Failed"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Control/a.b.c.d}DownloadMessageCompleted +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеЗагрузкаСообщенияОбменаУспешноЗавершена(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "DownloadMessageCompleted"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Control/a.b.c.d}DownloadMessageFailed +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеОшибкаЗагрузкиСообщенияОбмена(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "DownloadMessageFailed"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Control/a.b.c.d}GettingDataCompleted +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеПолучениеДанныхКорреспондентаУспешноЗавершено(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "GettingDataCompleted"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Control/a.b.c.d}GettingCommonNodsDataCompleted +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеПолучениеОбщихДанныхУзловКорреспондентаУспешноЗавершено(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "GettingCommonNodsDataCompleted"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Control/a.b.c.d}GettingDataFailed +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеОшибкаПолученияДанныхКорреспондента(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "GettingDataFailed"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Control/a.b.c.d}GettingCommonNodsDataFailed +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеОшибкаПолученияОбщихДанныхУзловКорреспондента(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "GettingCommonNodsDataFailed"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Control/a.b.c.d}GettingCorrespondentParamsCompleted +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеПолучениеПараметровУчетаКорреспондентаУспешноЗавершено(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "GettingCorrespondentParamsCompleted"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Control/a.b.c.d}GettingCorrespondentParamsFailed +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеОшибкаПолученияПараметровУчетаКорреспондента(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "GettingCorrespondentParamsFailed"); + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция СоздатьТипСообщения(Знач ИспользуемыйПакет, Знач Тип) + + Если ИспользуемыйПакет = Неопределено Тогда + ИспользуемыйПакет = Пакет(); + КонецЕсли; + + Возврат ФабрикаXDTO.Тип(ИспользуемыйПакет, Тип); + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/КалендарныеГрафикиВМоделиСервиса/КалендарныеГрафикиВМоделиСервиса.mdo b/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольИнтерфейс/СообщенияОбменаДаннымиКонтрольИнтерфейс.mdo similarity index 54% rename from SSL/src/CommonModules/КалендарныеГрафикиВМоделиСервиса/КалендарныеГрафикиВМоделиСервиса.mdo rename to SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольИнтерфейс/СообщенияОбменаДаннымиКонтрольИнтерфейс.mdo index 55a8f0964..0c3988c47 100644 --- a/SSL/src/CommonModules/КалендарныеГрафикиВМоделиСервиса/КалендарныеГрафикиВМоделиСервиса.mdo +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольИнтерфейс/СообщенияОбменаДаннымиКонтрольИнтерфейс.mdo @@ -1,9 +1,9 @@ - - КалендарныеГрафикиВМоделиСервиса + + СообщенияОбменаДаннымиКонтрольИнтерфейс ru - Календарные графики в модели сервиса + Сообщения обмена данными контроль интерфейс true true diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/Module.bsl b/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/Module.bsl new file mode 100644 index 000000000..a03a6d1a5 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/Module.bsl @@ -0,0 +1,242 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Пространство имен версии интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - пространство имен. +// +Функция Пакет() Экспорт + + Возврат "http://www.1c.ru/SaaS/Exchange/Control"; + +КонецФункции + +// Версия интерфейса сообщений, обслуживаемая обработчиком. +// +// Возвращаемое значение: +// Строка - версия интерфейса сообщений. +// +Функция Версия() Экспорт + + Возврат "2.1.2.1"; + +КонецФункции + +// Базовый тип для сообщений версии. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - базовый тип тела сообщения. +// +Функция БазовыйТип() Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + ВызватьИсключение НСтр("ru = 'Отсутствует менеджер сервиса.'"); + КонецЕсли; + + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + Возврат МодульСообщенияВМоделиСервиса.ТипТело(); + +КонецФункции + +// Выполняет обработку входящих сообщений модели сервиса +// +// Параметры: +// Сообщение - ОбъектXDTO - входящее сообщение. +// Отправитель - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, соответствующий отправителю сообщения. +// СообщениеОбработано - Булево - флаг успешной обработки сообщения. Значение данного параметра необходимо +// установить равным Истина в том случае, если сообщение было успешно прочитано в данном обработчике. +// +Процедура ОбработатьСообщениеМоделиСервиса(Знач Сообщение, Знач Отправитель, СообщениеОбработано) Экспорт + + СообщениеОбработано = Истина; + + Словарь = СообщенияОбменаДаннымиКонтрольИнтерфейс; + ТипСообщения = Сообщение.Body.Тип(); + + Если ТипСообщения = Словарь.СообщениеНастройкаОбменаШаг1УспешноЗавершена(Пакет()) Тогда + + НастройкаОбменаШаг1УспешноЗавершена(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеНастройкаОбменаШаг2УспешноЗавершена(Пакет()) Тогда + + НастройкаОбменаШаг2УспешноЗавершена(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеОшибкаНастройкиОбменаШаг1(Пакет()) Тогда + + ОшибкаНастройкиОбменаШаг1(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеОшибкаНастройкиОбменаШаг2(Пакет()) Тогда + + ОшибкаНастройкиОбменаШаг2(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеЗагрузкаСообщенияОбменаУспешноЗавершена(Пакет()) Тогда + + ЗагрузкаСообщенияОбменаУспешноЗавершена(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеОшибкаЗагрузкиСообщенияОбмена(Пакет()) Тогда + + ОшибкаЗагрузкиСообщенияОбмена(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеПолучениеДанныхКорреспондентаУспешноЗавершено(Пакет()) Тогда + + ПолучениеДанныхКорреспондентаУспешноЗавершено(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеПолучениеОбщихДанныхУзловКорреспондентаУспешноЗавершено(Пакет()) Тогда + + ПолучениеОбщихДанныхУзловКорреспондентаУспешноЗавершено(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеОшибкаПолученияДанныхКорреспондента(Пакет()) Тогда + + ОшибкаПолученияДанныхКорреспондента(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеОшибкаПолученияОбщихДанныхУзловКорреспондента(Пакет()) Тогда + + ОшибкаПолученияОбщихДанныхУзловКорреспондента(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеПолучениеПараметровУчетаКорреспондентаУспешноЗавершено(Пакет()) Тогда + + ПолучениеПараметровУчетаКорреспондентаУспешноЗавершено(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеОшибкаПолученияПараметровУчетаКорреспондента(Пакет()) Тогда + + ОшибкаПолученияПараметровУчетаКорреспондента(Сообщение, Отправитель); + + Иначе + + СообщениеОбработано = Ложь; + Возврат; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Настройка обмена + +Процедура НастройкаОбменаШаг1УспешноЗавершена(Сообщение, Отправитель) + + ОбменДаннымиВМоделиСервиса.ЗафиксироватьУспешноеВыполнениеСессии(Сообщение, ПредставлениеНастройкаСинхронизацииШаг1()); + +КонецПроцедуры + +Процедура НастройкаОбменаШаг2УспешноЗавершена(Сообщение, Отправитель) + + ОбменДаннымиВМоделиСервиса.ЗафиксироватьУспешноеВыполнениеСессии(Сообщение, ПредставлениеНастройкаСинхронизацииШаг2()); + +КонецПроцедуры + +Процедура ОшибкаНастройкиОбменаШаг1(Сообщение, Отправитель) + + ОбменДаннымиВМоделиСервиса.ЗафиксироватьНеуспешноеВыполнениеСессии(Сообщение, ПредставлениеНастройкаСинхронизацииШаг1()); + +КонецПроцедуры + +Процедура ОшибкаНастройкиОбменаШаг2(Сообщение, Отправитель) + + ОбменДаннымиВМоделиСервиса.ЗафиксироватьНеуспешноеВыполнениеСессии(Сообщение, ПредставлениеНастройкаСинхронизацииШаг2()); + +КонецПроцедуры + +Процедура ЗагрузкаСообщенияОбменаУспешноЗавершена(Сообщение, Отправитель) + + ОбменДаннымиВМоделиСервиса.ЗафиксироватьУспешноеВыполнениеСессии(Сообщение, ПредставлениеЗагрузкаСообщенияОбмена()); + +КонецПроцедуры + +Процедура ОшибкаЗагрузкиСообщенияОбмена(Сообщение, Отправитель) + + ОбменДаннымиВМоделиСервиса.ЗафиксироватьУспешноеВыполнениеСессии(Сообщение, ПредставлениеЗагрузкаСообщенияОбмена()); + +КонецПроцедуры + +// Получение данных корреспондента + +Процедура ПолучениеДанныхКорреспондентаУспешноЗавершено(Сообщение, Отправитель) + + ОбменДаннымиВМоделиСервиса.СохранитьДанныеСессии(Сообщение, ПредставлениеПолучениеДанныхКорреспондента()); + +КонецПроцедуры + +Процедура ПолучениеОбщихДанныхУзловКорреспондентаУспешноЗавершено(Сообщение, Отправитель) + + ОбменДаннымиВМоделиСервиса.СохранитьДанныеСессии(Сообщение, ПредставлениеПолучениеОбщихДанныхУзловКорреспондента()); + +КонецПроцедуры + +Процедура ОшибкаПолученияДанныхКорреспондента(Сообщение, Отправитель) + + ОбменДаннымиВМоделиСервиса.ЗафиксироватьНеуспешноеВыполнениеСессии(Сообщение, ПредставлениеПолучениеДанныхКорреспондента()); + +КонецПроцедуры + +Процедура ОшибкаПолученияОбщихДанныхУзловКорреспондента(Сообщение, Отправитель) + + ОбменДаннымиВМоделиСервиса.ЗафиксироватьНеуспешноеВыполнениеСессии(Сообщение, ПредставлениеПолучениеОбщихДанныхУзловКорреспондента()); + +КонецПроцедуры + +// Получение параметров учета корреспондента + +Процедура ПолучениеПараметровУчетаКорреспондентаУспешноЗавершено(Сообщение, Отправитель) + + ОбменДаннымиВМоделиСервиса.СохранитьДанныеСессии(Сообщение, ПредставлениеПолучениеПараметровУчетаКорреспондента()); + +КонецПроцедуры + +Процедура ОшибкаПолученияПараметровУчетаКорреспондента(Сообщение, Отправитель) + + ОбменДаннымиВМоделиСервиса.ЗафиксироватьНеуспешноеВыполнениеСессии(Сообщение, ПредставлениеПолучениеПараметровУчетаКорреспондента()); + +КонецПроцедуры + +// Вспомогательные функции + +Функция ПредставлениеНастройкаСинхронизацииШаг1() + + Возврат НСтр("ru = 'Настройка синхронизации, шаг 1.'"); + +КонецФункции + +Функция ПредставлениеНастройкаСинхронизацииШаг2() + + Возврат НСтр("ru = 'Настройка синхронизации, шаг 2.'"); + +КонецФункции + +Функция ПредставлениеЗагрузкаСообщенияОбмена() + + Возврат НСтр("ru = 'Загрузка сообщения обмена.'"); + +КонецФункции + +Функция ПредставлениеПолучениеДанныхКорреспондента() + + Возврат НСтр("ru = 'Получение данных корреспондента.'"); + +КонецФункции + +Функция ПредставлениеПолучениеОбщихДанныхУзловКорреспондента() + + Возврат НСтр("ru = 'Получение общих данных узлов корреспондента.'"); + +КонецФункции + +Функция ПредставлениеПолучениеПараметровУчетаКорреспондента() + + Возврат НСтр("ru = 'Получение параметров учета корреспондента.'"); + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/СообщенияОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1.mdo b/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/СообщенияОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1.mdo new file mode 100644 index 000000000..819645cd8 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1/СообщенияОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1.mdo @@ -0,0 +1,11 @@ + + + СообщенияОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1 + + ru + Сообщения обмена данными контроль обработчик сообщения 2 1 2 1 + + true + true + true + diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиОбработчикСообщения/Module.bsl b/SSL/src/CommonModules/СообщенияОбменаДаннымиОбработчикСообщения/Module.bsl new file mode 100644 index 000000000..8ed261008 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиОбработчикСообщения/Module.bsl @@ -0,0 +1,363 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Получает список обработчиков сообщений, которые обрабатывает данная подсистема. +// +// Параметры: +// Обработчики - ТаблицаЗначений - состав полей см. в ОбменСообщениями.НоваяТаблицаОбработчиковСообщений. +// +Процедура ПолучитьОбработчикиКаналовСообщений(Обработчики) Экспорт + + ДобавитьОбработчикКаналаСообщений("ОбменДанными\ПрикладноеПриложение\СозданиеОбмена", СообщенияОбменаДаннымиОбработчикСообщения, Обработчики); + ДобавитьОбработчикКаналаСообщений("ОбменДанными\ПрикладноеПриложение\УдалениеОбмена", СообщенияОбменаДаннымиОбработчикСообщения, Обработчики); + ДобавитьОбработчикКаналаСообщений("ОбменДанными\ПрикладноеПриложение\УстановитьПрефиксОбластиДанных", СообщенияОбменаДаннымиОбработчикСообщения, Обработчики); + +КонецПроцедуры + +// Выполняет обработку тела сообщения из канала в соответствии с алгоритмом текущего канала сообщений. +// +// Параметры: +// КаналСообщений - Строка - Идентификатор канала сообщений, из которого получено сообщение. +// ТелоСообщения - Произвольный - Тело сообщения, полученное из канала, которое подлежит обработке. +// Отправитель - ПланОбменаСсылка.ОбменСообщениями - Конечная точка, которая является отправителем сообщения. +// +Процедура ОбработатьСообщение(КаналСообщений, ТелоСообщения, Отправитель) Экспорт + + Попытка + + УстановитьОбластьДанных(ТелоСообщения.ОбластьДанных); + + Если КаналСообщений = "ОбменДанными\ПрикладноеПриложение\СозданиеОбмена" Тогда + + СоздатьОбменДаннымиВИнформационнойБазе( + Отправитель, + ТелоСообщения.Настройки, + ТелоСообщения.НастройкаОтборовНаУзле, + ТелоСообщения.ЗначенияПоУмолчаниюНаУзле, + ТелоСообщения.КодЭтогоУзла, + ТелоСообщения.КодНовогоУзла); + + ИначеЕсли КаналСообщений = "ОбменДанными\ПрикладноеПриложение\УдалениеОбмена" Тогда + + УдалитьОбменДаннымиВИнформационнойБазе(Отправитель, ТелоСообщения.ИмяПланаОбмена, ТелоСообщения.КодУзла); + + ИначеЕсли КаналСообщений = "ОбменДанными\ПрикладноеПриложение\УстановитьПрефиксОбластиДанных" Тогда + + УстановитьПрефиксОбластиДанных(ТелоСообщения.Префикс); + + КонецЕсли; + + Исключение + ОтменитьУстановкуОбластиДанных(); + ВызватьИсключение; + КонецПопытки; + + ОтменитьУстановкуОбластиДанных(); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Для совместимости, если корреспондент имеет БСП версии ниже БСП 2.1.2 +// +Процедура СоздатьОбменДаннымиВИнформационнойБазе(Отправитель, Настройки, НастройкаОтборовНаУзле, ЗначенияПоУмолчаниюНаУзле, КодЭтогоУзла, КодНовогоУзла) + + // Создаем каталог обмена сообщениями (при необходимости) + Каталог = Новый Файл(Настройки.FILEКаталогОбменаИнформацией); + + Если Не Каталог.Существует() Тогда + + Попытка + СоздатьКаталог(Каталог.ПолноеИмя); + Исключение + + // Отмечаем в управляющем приложении ошибку выполнения операции + ОтправитьСообщениеОшибкаПриСозданииОбмена(Число(КодЭтогоУзла), Число(КодНовогоУзла), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Отправитель); + + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), + УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + Возврат; + КонецПопытки; + КонецЕсли; + + НачатьТранзакцию(); + Попытка + + ОбластьДанныхКорреспондента = Число(КодНовогоУзла); + ИмяПланаОбмена = Настройки.ИмяПланаОбмена; + КодКорреспондента = ОбменДаннымиВМоделиСервиса.КодУзлаПланаОбменаВСервисе(ОбластьДанныхКорреспондента); + НаименованиеКорреспондента = Настройки.НаименованиеВторойБазы; + НастройкаОтборовНаУзле = Новый Структура; + КодЭтогоПриложения = ОбменДаннымиПовтИсп.ПолучитьКодЭтогоУзлаДляПланаОбмена(ИмяПланаОбмена); + НаименованиеЭтогоПриложения = ОбменДаннымиВМоделиСервиса.СформироватьНаименованиеПредопределенногоУзла(); + + КонечнаяТочкаКорреспондента = ОбменДаннымиВМоделиСервиса.МенеджерПланаОбменаКонечныхТочек().НайтиПоКоду( + Настройки.КонечнаяТочкаКорреспондента); + + Если КонечнаяТочкаКорреспондента.Пустая() Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не найдена конечная точка корреспондента с кодом ""%1"".'"), + Настройки.КонечнаяТочкаКорреспондента); + КонецЕсли; + + // Создаем настройку обмена в этой базе + НастройкиПодключения = Новый Структура; + НастройкиПодключения.Вставить("ИмяПланаОбмена", ИмяПланаОбмена); + НастройкиПодключения.Вставить("КодКорреспондента", КодКорреспондента); + НастройкиПодключения.Вставить("НаименованиеКорреспондента", НаименованиеКорреспондента); + НастройкиПодключения.Вставить("КонечнаяТочкаКорреспондента", КонечнаяТочкаКорреспондента); + НастройкиПодключения.Вставить("Настройки", НастройкаОтборовНаУзле); + НастройкиПодключения.Вставить("Префикс", ""); + НастройкиПодключения.Вставить("Корреспондент"); // выходной параметр + + ОбменДаннымиВМоделиСервиса.СоздатьНастройкуОбмена( + НастройкиПодключения, + , + Истина); + + Корреспондент = НастройкиПодключения.Корреспондент; + + // Сохраняем настройки транспорта сообщений обмена для текущей области данных + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("Корреспондент", Корреспондент); + СтруктураЗаписи.Вставить("КонечнаяТочкаКорреспондента", КонечнаяТочкаКорреспондента); + СтруктураЗаписи.Вставить("КаталогОбменаИнформацией", Настройки.FILEОтносительныйКаталогОбменаИнформацией); + + РегистрыСведений.НастройкиТранспортаОбменаОбластиДанных.ОбновитьЗапись(СтруктураЗаписи); + + // Регистрируем все данные к выгрузке в этой базе + ОбменДаннымиСервер.ЗарегистрироватьДанныеДляНачальнойВыгрузки(Корреспондент); + + // Отмечаем успешное выполнение операции в управляющем приложении + ОтправитьСообщениеУспешноеВыполнениеОперации(Число(КодЭтогоУзла), Число(КодНовогоУзла), Отправитель); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + // Отмечаем в управляющем приложении ошибку выполнения операции + ОтправитьСообщениеОшибкаПриСозданииОбмена(Число(КодЭтогоУзла), Число(КодНовогоУзла), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), Отправитель); + + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), + УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + Возврат; + КонецПопытки; + +КонецПроцедуры + +// Для совместимости, если корреспондент имеет БСП версии ниже БСП 2.1.2 +// +Процедура УдалитьОбменДаннымиВИнформационнойБазе(Отправитель, ИмяПланаОбмена, КодУзла) + + // Поиск узла по формату кода узла "S00000123" + УзелИнформационнойБазы = ПланыОбмена[ИмяПланаОбмена].НайтиПоКоду(ОбменДаннымиВМоделиСервиса.КодУзлаПланаОбменаВСервисе(Число(КодУзла))); + + Если УзелИнформационнойБазы.Пустая() Тогда + + // Поиск узла по формату кода узла "0000123" (старый формат) + УзелИнформационнойБазы = ПланыОбмена[ИмяПланаОбмена].НайтиПоКоду(КодУзла); + + КонецЕсли; + + КодЭтогоУзла = ОбменДаннымиПовтИсп.ПолучитьКодЭтогоУзлаДляПланаОбмена(ИмяПланаОбмена); + КодЭтогоУзла = ОбменДаннымиСервер.НомерОбластиИзКодаУзлаПланаОбмена(КодЭтогоУзла); + + Если УзелИнформационнойБазы.Пустая() Тогда + + // Отмечаем успешное выполнение операции в управляющем приложении + ОтправитьСообщениеУспешноеВыполнениеОперации(КодЭтогоУзла, Число(КодУзла), Отправитель); + + Возврат; // настройка обмена не найдена (возможно, была удалена ранее) + КонецЕсли; + + // Удаляем каталог обмена информацией + НастройкиТранспорта = РегистрыСведений.НастройкиТранспортаОбменаОбластиДанных.НастройкиТранспорта(УзелИнформационнойБазы); + + Если НастройкиТранспорта <> Неопределено + И НастройкиТранспорта.ВидТранспортаСообщенийОбменаПоУмолчанию = Перечисления.ВидыТранспортаСообщенийОбмена.FILE Тогда + + Если Не ПустаяСтрока(НастройкиТранспорта.FILEОбщийКаталогОбменаИнформацией) + И Не ПустаяСтрока(НастройкиТранспорта.ОтносительныйКаталогОбменаИнформацией) Тогда + + АбсолютныйКаталогОбменаИнформацией = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( + НастройкиТранспорта.FILEОбщийКаталогОбменаИнформацией, + НастройкиТранспорта.ОтносительныйКаталогОбменаИнформацией); + + АбсолютныйКаталог = Новый Файл(АбсолютныйКаталогОбменаИнформацией); + + Попытка + УдалитьФайлы(АбсолютныйКаталог.ПолноеИмя); + Исключение + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + + КонецЕсли; + + КонецЕсли; + + // Удаляем узел + Попытка + УзелИнформационнойБазы.ПолучитьОбъект().Удалить(); + Исключение + + СтрокаСообщенияОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + // Отмечаем в управляющем приложении ошибку выполнения операции + ОтправитьСообщениеОшибкаПриУдаленииОбмена(КодЭтогоУзла, Число(КодУзла), СтрокаСообщенияОбОшибке, Отправитель); + + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(), + УровеньЖурналаРегистрации.Ошибка,,, СтрокаСообщенияОбОшибке); + Возврат; + КонецПопытки; + + // Отмечаем успешное выполнение операции в управляющем приложении + ОтправитьСообщениеУспешноеВыполнениеОперации(КодЭтогоУзла, Число(КодУзла), Отправитель); + +КонецПроцедуры + +Процедура УстановитьПрефиксОбластиДанных(Знач Префикс) + + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + + УстановитьПривилегированныйРежим(Истина); + + МенеджерКонстанты = Константы["ПрефиксОбластиДанных"]; + + Если ПустаяСтрока(МенеджерКонстанты.Получить()) Тогда + + МенеджерКонстанты.Установить(Формат(Префикс, "ЧЦ=2; ЧВН=; ЧГ=0")); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +Процедура УстановитьОбластьДанных(Знач ОбластьДанных) + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + + УстановитьПривилегированныйРежим(Истина); + + МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных); + +КонецПроцедуры + +Процедура ОтменитьУстановкуОбластиДанных() + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + + УстановитьПривилегированныйРежим(Истина); + + МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); + +КонецПроцедуры + +Процедура ОтправитьСообщениеУспешноеВыполнениеОперации(Код1, Код2, КонечнаяТочка) + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульОбменСообщениями = ОбщегоНазначения.ОбщийМодуль("ОбменСообщениями"); + + НачатьТранзакцию(); + Попытка + + ТелоСообщения = Новый Структура("Код1, Код2", Код1, Код2); + + МодульОбменСообщениями.ОтправитьСообщение("ОбменДанными\ПрикладноеПриложение\Ответ\УспешноеВыполнениеОперации", ТелоСообщения, КонечнаяТочка); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОтправкаСообщений(), + УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +Процедура ОтправитьСообщениеОшибкаПриСозданииОбмена(Код1, Код2, СтрокаОшибки, КонечнаяТочка) + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульОбменСообщениями = ОбщегоНазначения.ОбщийМодуль("ОбменСообщениями"); + + НачатьТранзакцию(); + Попытка + + ТелоСообщения = Новый Структура("Код1, Код2, СтрокаОшибки", Код1, Код2, СтрокаОшибки); + + МодульОбменСообщениями.ОтправитьСообщение("ОбменДанными\ПрикладноеПриложение\Ответ\ОшибкаПриСозданииОбмена", ТелоСообщения, КонечнаяТочка); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОтправкаСообщений(), + УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +Процедура ОтправитьСообщениеОшибкаПриУдаленииОбмена(Код1, Код2, СтрокаОшибки, КонечнаяТочка) + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульОбменСообщениями = ОбщегоНазначения.ОбщийМодуль("ОбменСообщениями"); + + НачатьТранзакцию(); + Попытка + + ТелоСообщения = Новый Структура("Код1, Код2, СтрокаОшибки", Код1, Код2, СтрокаОшибки); + + МодульОбменСообщениями.ОтправитьСообщение("ОбменДанными\ПрикладноеПриложение\Ответ\ОшибкаПриУдаленииОбмена", ТелоСообщения, КонечнаяТочка); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОтправкаСообщений(), + УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +Процедура ДобавитьОбработчикКаналаСообщений(Канал, ОбработчикКанала, Обработчики) + + Обработчик = Обработчики.Добавить(); + Обработчик.Канал = Канал; + Обработчик.Обработчик = ОбработчикКанала; + +КонецПроцедуры + +Функция СобытиеЖурналаРегистрацииОтправкаСообщений() + + Возврат НСтр("ru = 'Отправка сообщений'", ОбщегоНазначения.КодОсновногоЯзыка()); + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/ИнтерфейсыСообщенийВМоделиСервиса/ИнтерфейсыСообщенийВМоделиСервиса.mdo b/SSL/src/CommonModules/СообщенияОбменаДаннымиОбработчикСообщения/СообщенияОбменаДаннымиОбработчикСообщения.mdo similarity index 53% rename from SSL/src/CommonModules/ИнтерфейсыСообщенийВМоделиСервиса/ИнтерфейсыСообщенийВМоделиСервиса.mdo rename to SSL/src/CommonModules/СообщенияОбменаДаннымиОбработчикСообщения/СообщенияОбменаДаннымиОбработчикСообщения.mdo index 821715ab6..72f6670ca 100644 --- a/SSL/src/CommonModules/ИнтерфейсыСообщенийВМоделиСервиса/ИнтерфейсыСообщенийВМоделиСервиса.mdo +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиОбработчикСообщения/СообщенияОбменаДаннымиОбработчикСообщения.mdo @@ -1,9 +1,9 @@ - - ИнтерфейсыСообщенийВМоделиСервиса + + СообщенияОбменаДаннымиОбработчикСообщения ru - Интерфейсы сообщений в модели сервиса + Сообщения обмена данными обработчик сообщения true true diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеИнтерфейс/Module.bsl b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеИнтерфейс/Module.bsl new file mode 100644 index 000000000..2c2fd21d6 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеИнтерфейс/Module.bsl @@ -0,0 +1,171 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Пространство имен текущей (используемой вызывающим кодом) версии интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - пространство имен. +// +Функция Пакет() Экспорт + + Возврат "http://www.1c.ru/SaaS/Exchange/Manage/3.0.1.1"; + +КонецФункции + +// Текущая (используемая вызывающим кодом) версия интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - версия интерфейса сообщений. +// +Функция Версия() Экспорт + + Возврат "3.0.1.1"; + +КонецФункции + +// Название программного интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - название программного интерфейса сообщений. +// +Функция ПрограммныйИнтерфейс() Экспорт + + Возврат "ExchangeManage"; + +КонецФункции + +// Выполняет регистрацию обработчиков сообщений в качестве обработчиков каналов обмена сообщениями. +// +// Параметры: +// МассивОбработчиков - Массив - коллекция модулей, содержащих обработчики. +// +Процедура ОбработчикиКаналовСообщений(Знач МассивОбработчиков) Экспорт + + МассивОбработчиков.Добавить(СообщенияОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1); + МассивОбработчиков.Добавить(СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1); + +КонецПроцедуры + +// Выполняет регистрацию обработчиков трансляции сообщений. +// +// Параметры: +// МассивОбработчиков - Массив - коллекция модулей, содержащих обработчики. +// +Процедура ОбработчикиТрансляцииСообщений(Знач МассивОбработчиков) Экспорт + + МассивОбработчиков.Добавить(СообщенияОбменаДаннымиУправлениеОбработчикТрансляции_2_1_2_1); + +КонецПроцедуры + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Manage/a.b.c.d}SetupExchangeStep1 +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеНастроитьОбменШаг1(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "SetupExchangeStep1"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Manage/a.b.c.d}SetupExchangeStep2 +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеНастроитьОбменШаг2(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "SetupExchangeStep2"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Manage/a.b.c.d}DownloadMessage +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеЗагрузитьСообщениеОбмена(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "DownloadMessage"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Manage/a.b.c.d}GetData +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеПолучитьДанныеКорреспондента(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "GetData"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Manage/a.b.c.d}GetCommonNodsData +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеПолучитьОбщиеДанныеУзловКорреспондента(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "GetCommonNodsData"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/SaaS/Exchange/Manage/a.b.c.d}GetCorrespondentParams +// +// Параметры: +// ИспользуемыйПакет - Строка - Пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - тип объекта сообщения. +// +Функция СообщениеПолучитьПараметрыУчетаКорреспондента(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "GetCorrespondentParams"); + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция СоздатьТипСообщения(Знач ИспользуемыйПакет, Знач Тип) + + Если ИспользуемыйПакет = Неопределено Тогда + ИспользуемыйПакет = Пакет(); + КонецЕсли; + + Возврат ФабрикаXDTO.Тип(ИспользуемыйПакет, Тип); + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеИнтерфейс/СообщенияОбменаДаннымиУправлениеИнтерфейс.mdo b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеИнтерфейс/СообщенияОбменаДаннымиУправлениеИнтерфейс.mdo new file mode 100644 index 000000000..07203f638 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеИнтерфейс/СообщенияОбменаДаннымиУправлениеИнтерфейс.mdo @@ -0,0 +1,11 @@ + + + СообщенияОбменаДаннымиУправлениеИнтерфейс + + ru + Сообщения обмена данными управление интерфейс + + true + true + true + diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/Module.bsl b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/Module.bsl new file mode 100644 index 000000000..b26373f09 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/Module.bsl @@ -0,0 +1,590 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Пространство имен версии интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - пространство имен. +// +Функция Пакет() Экспорт + + Возврат "http://www.1c.ru/SaaS/Exchange/Manage"; + +КонецФункции + +// Версия интерфейса сообщений, обслуживаемая обработчиком. +// +// Возвращаемое значение: +// Строка - версия интерфейса сообщений. +// +Функция Версия() Экспорт + + Возврат "2.1.2.1"; + +КонецФункции + +// Базовый тип для сообщений версии. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - базовый тип тела сообщения. +// +Функция БазовыйТип() Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + ВызватьИсключение НСтр("ru = 'Отсутствует менеджер сервиса.'"); + КонецЕсли; + + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + Возврат МодульСообщенияВМоделиСервиса.ТипТело(); + +КонецФункции + +// Выполняет обработку входящих сообщений модели сервиса +// +// Параметры: +// Сообщение - ОбъектXDTO - входящее сообщение. +// Отправитель - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, соответствующий отправителю сообщения. +// СообщениеОбработано - Булево - флаг успешной обработки сообщения. Значение данного параметра необходимо +// установить равным Истина в том случае, если сообщение было успешно прочитано в данном обработчике. +// +Процедура ОбработатьСообщениеМоделиСервиса(Знач Сообщение, Знач Отправитель, СообщениеОбработано) Экспорт + + СообщениеОбработано = Истина; + + Словарь = СообщенияОбменаДаннымиУправлениеИнтерфейс; + ТипСообщения = Сообщение.Body.Тип(); + + Если ТипСообщения = Словарь.СообщениеНастроитьОбменШаг1(Пакет()) Тогда + + НастроитьОбменШаг1(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеНастроитьОбменШаг2(Пакет()) Тогда + + НастроитьОбменШаг2(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеЗагрузитьСообщениеОбмена(Пакет()) Тогда + + ЗагрузитьСообщениеОбмена(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеПолучитьДанныеКорреспондента(Пакет()) Тогда + + ПолучитьДанныеКорреспондента(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеПолучитьОбщиеДанныеУзловКорреспондента(Пакет()) Тогда + + ПолучитьОбщиеДанныеУзловКорреспондента(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеПолучитьПараметрыУчетаКорреспондента(Пакет()) Тогда + + ПолучитьПараметрыУчетаКорреспондента(Сообщение, Отправитель); + + Иначе + + СообщениеОбработано = Ложь; + Возврат; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура НастроитьОбменШаг1(Сообщение, Отправитель) + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + Если Сообщение.Установлено("AdditionalInfo") Тогда + ДополнительныеСвойства = СериализаторXDTO.ПрочитатьXDTO(Сообщение.AdditionalInfo); + Если ДополнительныеСвойства.Свойство("Интерфейс") + И ДополнительныеСвойства.Интерфейс = "3.0.1.1" Тогда + СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1.НастроитьОбменШаг1(Сообщение, Отправитель); + Возврат; + КонецЕсли; + КонецЕсли; + + Тело = Сообщение.Body; + + Корреспондент = Неопределено; + + НачатьТранзакцию(); + Попытка + + КодЭтогоУзла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПланыОбмена[Тело.ExchangePlan].ЭтотУзел(), "Код"); + ПсевдонимЭтогоУзла = ""; + + Если Не ПустаяСтрока(КодЭтогоУзла) + И КодЭтогоУзла <> Тело.Code Тогда + + ПсевдонимЭтогоУзла = ОбменДаннымиВМоделиСервиса.КодУзлаПланаОбменаВСервисе(МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); + + Если ПсевдонимЭтогоУзла <> Тело.Code Тогда + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ожидаемый код предопределенного узла в этом приложении ""%1"" + |не соответствует фактическому ""%2"" или псевдониму ""%3"". План обмена: %4.'"), + Тело.Code, КодЭтогоУзла, ПсевдонимЭтогоУзла, Тело.ExchangePlan); + ВызватьИсключение СтрокаСообщения; + КонецЕсли; + + КонецЕсли; + + КонечнаяТочкаКорреспондента = ОбменДаннымиВМоделиСервиса.МенеджерПланаОбменаКонечныхТочек().НайтиПоКоду(Тело.EndPoint); + + Если КонечнаяТочкаКорреспондента.Пустая() Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не найдена конечная точка корреспондента с кодом ""%1"".'"), + Тело.EndPoint); + КонецЕсли; + + Префикс = ""; + Если Сообщение.Установлено("AdditionalInfo") Тогда + Префикс = СериализаторXDTO.ПрочитатьXDTO(Сообщение.AdditionalInfo).Префикс; + КонецЕсли; + + НастройкаОтборовНаУзле = СериализаторXDTO.ПрочитатьXDTO(Тело.FilterSettings); + + // {Обработчик: ПриПолученииДанныхОтправителя} Начало + Если ОбменДаннымиСервер.ЕстьАлгоритмМенеджераПланаОбмена("ПриПолученииДанныхОтправителя", Тело.ExchangePlan) Тогда + ПланыОбмена[Тело.ExchangePlan].ПриПолученииДанныхОтправителя(НастройкаОтборовНаУзле, Ложь); + КонецЕсли; + // {Обработчик: ПриПолученииДанныхОтправителя} Окончание + + // Создаем настройку обмена + НастройкиПодключения = Новый Структура; + НастройкиПодключения.Вставить("ИмяПланаОбмена", Тело.ExchangePlan); + НастройкиПодключения.Вставить("КодКорреспондента", Тело.CorrespondentCode); + НастройкиПодключения.Вставить("НаименованиеКорреспондента", Тело.CorrespondentName); + НастройкиПодключения.Вставить("КонечнаяТочкаКорреспондента", КонечнаяТочкаКорреспондента); + НастройкиПодключения.Вставить("Настройки", НастройкаОтборовНаУзле); + НастройкиПодключения.Вставить("Префикс", Префикс); + НастройкиПодключения.Вставить("Корреспондент"); // выходной параметр + + ОбменДаннымиВМоделиСервиса.СоздатьНастройкуОбмена( + НастройкиПодключения, + Истина, + , + ПсевдонимЭтогоУзла); + + Корреспондент = НастройкиПодключения.Корреспондент; + + // Регистрируем справочники к выгрузке + ОбменДаннымиСервер.ЗарегистрироватьТолькоСправочникиДляНачальнойВыгрузки(Корреспондент); + + // Выполняем выгрузку данных + Отказ = Ложь; + ОбменДаннымиВМоделиСервиса.ВыполнитьВыгрузкуДанных(Отказ, Корреспондент); + Если Отказ Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Возникли ошибки в процессе выгрузки справочников для корреспондента %1.'"), + Строка(Корреспондент)); + КонецЕсли; + + // Отправляем ответное сообщение об успешной операции + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеНастройкаОбменаШаг1УспешноЗавершена()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + УдалитьНастройкуСинхронизации(Корреспондент); + + ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки); + + // Отправляем ответное сообщение об ошибке + НачатьТранзакцию(); + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаНастройкиОбменаШаг1()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки; + + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + ЗафиксироватьТранзакцию(); + КонецПопытки; + + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + +КонецПроцедуры + +Процедура НастроитьОбменШаг2(Сообщение, Отправитель) + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + Тело = Сообщение.Body; + + НачатьТранзакцию(); + Попытка + + Корреспондент = КорреспондентОбмена(Тело.ExchangePlan, Тело.CorrespondentCode); + + // Обновляем настройку обмена + ОбменДаннымиВМоделиСервиса.ОбновитьНастройкуОбмена(Корреспондент, + ОбменДаннымиСервер.ПолучитьЗначенияНастройкиОтборов(СериализаторXDTO.ПрочитатьXDTO(Тело.AdditionalSettings))); + + // Регистрируем все данные к выгрузке, кроме справочников + ОбменДаннымиСервер.ЗарегистрироватьВсеДанныеКромеСправочниковДляНачальнойВыгрузки(Корреспондент); + + // Отправляем ответное сообщение об успешной операции + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеНастройкаОбменаШаг2УспешноЗавершена()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки); + + // Отправляем ответное сообщение об ошибке + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаНастройкиОбменаШаг2()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки; + + НачатьТранзакцию(); + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + ЗафиксироватьТранзакцию(); + КонецПопытки; + + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + +КонецПроцедуры + +Процедура ЗагрузитьСообщениеОбмена(Сообщение, Отправитель) + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + Если Сообщение.Установлено("AdditionalInfo") Тогда + ДополнительныеСвойства = СериализаторXDTO.ПрочитатьXDTO(Сообщение.AdditionalInfo); + Если ДополнительныеСвойства.Свойство("Интерфейс") + И ДополнительныеСвойства.Интерфейс = "3.0.1.1" Тогда + СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1.ЗагрузитьСообщениеОбмена(Сообщение, Отправитель); + Возврат; + КонецЕсли; + КонецЕсли; + + Тело = Сообщение.Body; + + ОтветноеСообщение = Неопределено; + Попытка + + Корреспондент = КорреспондентОбмена(Тело.ExchangePlan, Тело.CorrespondentCode); + + // Загружаем сообщение обмена + Отказ = Ложь; + ОбменДаннымиВМоделиСервиса.ВыполнитьЗагрузкуДанных(Отказ, Корреспондент); + Если Отказ Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Возникли ошибки в процессе загрузки справочников от корреспондента %1.'"), + Строка(Корреспондент)); + КонецЕсли; + + // Отправляем ответное сообщение об успешной операции + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеЗагрузкаСообщенияОбменаУспешноЗавершена()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + Исключение + + ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки); + + // Отправляем ответное сообщение об ошибке + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаЗагрузкиСообщенияОбмена()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки; + + КонецПопытки; + + Если Не ОтветноеСообщение = Неопределено Тогда + НачатьТранзакцию(); + Попытка + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + КонецЕсли; + +КонецПроцедуры + +Процедура ПолучитьДанныеКорреспондента(Сообщение, Отправитель) + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + Тело = Сообщение.Body; + + НачатьТранзакцию(); + Попытка + + ДанныеКорреспондента = ОбменДаннымиСервер.ДанныеТаблицКорреспондента( + СериализаторXDTO.ПрочитатьXDTO(Тело.Tables), Тело.ExchangePlan); + + // Отправляем ответное сообщение об успешной операции + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеПолучениеДанныхКорреспондентаУспешноЗавершено()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.Data = Новый ХранилищеЗначения(ДанныеКорреспондента); + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки); + + // Отправляем ответное сообщение об ошибке + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаПолученияДанныхКорреспондента()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки; + + НачатьТранзакцию(); + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + ЗафиксироватьТранзакцию(); + КонецПопытки; + + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + +КонецПроцедуры + +Процедура ПолучитьОбщиеДанныеУзловКорреспондента(Сообщение, Отправитель) + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + Если Сообщение.Установлено("AdditionalInfo") Тогда + ДополнительныеСвойства = СериализаторXDTO.ПрочитатьXDTO(Сообщение.AdditionalInfo); + Если ДополнительныеСвойства.Свойство("Интерфейс") + И ДополнительныеСвойства.Интерфейс = "3.0.1.1" Тогда + СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1.ПолучитьОбщиеДанныеУзловКорреспондента(Сообщение, Отправитель); + Возврат; + КонецЕсли; + КонецЕсли; + + Тело = Сообщение.Body; + + НачатьТранзакцию(); + Попытка + + ДанныеКорреспондента = ОбменДаннымиСервер.ДанныеДляТабличныхЧастейУзловЭтойИнформационнойБазы(Тело.ExchangePlan); + + // Отправляем ответное сообщение об успешной операции + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеПолучениеОбщихДанныхУзловКорреспондентаУспешноЗавершено()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.Data = Новый ХранилищеЗначения(ДанныеКорреспондента); + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки); + + // Отправляем ответное сообщение об ошибке + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаПолученияОбщихДанныхУзловКорреспондента()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки; + + НачатьТранзакцию(); + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + ЗафиксироватьТранзакцию(); + КонецПопытки; + + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + +КонецПроцедуры + +Процедура ПолучитьПараметрыУчетаКорреспондента(Сообщение, Отправитель) + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + Если Сообщение.Установлено("AdditionalInfo") Тогда + ДополнительныеСвойства = СериализаторXDTO.ПрочитатьXDTO(Сообщение.AdditionalInfo); + Если ДополнительныеСвойства.Свойство("Интерфейс") + И ДополнительныеСвойства.Интерфейс = "3.0.1.1" Тогда + СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1.ПолучитьПараметрыУчетаКорреспондента(Сообщение, Отправитель); + Возврат; + КонецЕсли; + КонецЕсли; + + + Тело = Сообщение.Body; + + НачатьТранзакцию(); + Попытка + + Корреспондент = КорреспондентОбмена(Тело.ExchangePlan, Тело.CorrespondentCode); + + Отказ = Ложь; + ПредставлениеОшибки = ""; + + ДанныеКорреспондента = Новый Структура; + + Если ОбменДаннымиСервер.ЕстьАлгоритмМенеджераПланаОбмена("ОбработчикПроверкиПараметровУчета", Тело.ExchangePlan) Тогда + ПланыОбмена[Тело.ExchangePlan].ОбработчикПроверкиПараметровУчета(Отказ, Корреспондент, ПредставлениеОшибки); + КонецЕсли; + + ДанныеКорреспондента.Вставить("ПараметрыУчетаЗаданы", Не Отказ); + ДанныеКорреспондента.Вставить("ПредставлениеОшибки", ПредставлениеОшибки); + + // Отправляем ответное сообщение об успешной операции + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеПолучениеПараметровУчетаКорреспондентаУспешноЗавершено()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.Data = Новый ХранилищеЗначения(ДанныеКорреспондента); + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки); + + // Отправляем ответное сообщение об ошибке + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаПолученияПараметровУчетаКорреспондента()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки; + + НачатьТранзакцию(); + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + ЗафиксироватьТранзакцию(); + КонецПопытки; + + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + +КонецПроцедуры + +Функция КорреспондентОбмена(Знач ИмяПланаОбмена, Знач Код) + + Результат = ПланыОбмена[ИмяПланаОбмена].НайтиПоКоду(Код); + + Если Не ЗначениеЗаполнено(Результат) Тогда + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не найден узел плана обмена; имя плана обмена %1; код узла %2.'"), ИмяПланаОбмена, Код); + ВызватьИсключение СтрокаСообщения; + КонецЕсли; + + Возврат Результат; +КонецФункции + +Процедура УдалитьНастройкуСинхронизации(Знач Корреспондент) + + Если Корреспондент = Неопределено Тогда + Возврат; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + Попытка + КорреспондентОбъект = Корреспондент.ПолучитьОбъект(); + + Если КорреспондентОбъект <> Неопределено Тогда + КорреспондентОбъект.Удалить(); + КонецЕсли; + Исключение + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1.mdo b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1.mdo new file mode 100644 index 000000000..46d65be00 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1.mdo @@ -0,0 +1,11 @@ + + + СообщенияОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1 + + ru + Сообщения обмена данными управление обработчик сообщения 2 1 2 1 + + true + true + true + diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1/Module.bsl b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1/Module.bsl new file mode 100644 index 000000000..96794e8c3 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1/Module.bsl @@ -0,0 +1,518 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Пространство имен версии интерфейса сообщений. +// +// Возвращаемое значение: +// Строка - пространство имен. +// +Функция Пакет() Экспорт + + Возврат "http://www.1c.ru/SaaS/Exchange/Manage/3.0.1.1"; + +КонецФункции + +// Версия интерфейса сообщений, обслуживаемая обработчиком. +// +// Возвращаемое значение: +// Строка - версия интерфейса сообщений. +// +Функция Версия() Экспорт + + Возврат "3.0.1.1"; + +КонецФункции + +// Базовый тип для сообщений версии. +// +// Возвращаемое значение: +// ТипОбъектаXDTO - базовый тип тела сообщения. +// +Функция БазовыйТип() Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + ВызватьИсключение НСтр("ru = 'Отсутствует менеджер сервиса.'"); + КонецЕсли; + + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + Возврат МодульСообщенияВМоделиСервиса.ТипТело(); + +КонецФункции + +// Выполняет обработку входящих сообщений модели сервиса +// +// Параметры: +// Сообщение - ОбъектXDTO - входящее сообщение. +// Отправитель - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, соответствующий отправителю сообщения. +// СообщениеОбработано - Булево - флаг успешной обработки сообщения. Значение данного параметра необходимо +// установить равным Истина в том случае, если сообщение было успешно прочитано в данном обработчике. +// +Процедура ОбработатьСообщениеМоделиСервиса(Знач Сообщение, Знач Отправитель, СообщениеОбработано) Экспорт + + СообщениеОбработано = Истина; + + Словарь = СообщенияОбменаДаннымиУправлениеИнтерфейс; + ТипСообщения = Сообщение.Body.Тип(); + + Если ТипСообщения = Словарь.СообщениеНастроитьОбменШаг1(Пакет()) Тогда + + НастроитьОбменШаг1(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеЗагрузитьСообщениеОбмена(Пакет()) Тогда + + ЗагрузитьСообщениеОбмена(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеПолучитьДанныеКорреспондента(Пакет()) Тогда + + ПолучитьДанныеКорреспондента(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеПолучитьОбщиеДанныеУзловКорреспондента(Пакет()) Тогда + + ПолучитьОбщиеДанныеУзловКорреспондента(Сообщение, Отправитель); + + ИначеЕсли ТипСообщения = Словарь.СообщениеПолучитьПараметрыУчетаКорреспондента(Пакет()) Тогда + + ПолучитьПараметрыУчетаКорреспондента(Сообщение, Отправитель); + + Иначе + + СообщениеОбработано = Ложь; + Возврат; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура НастроитьОбменШаг1(Сообщение, Отправитель) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + Тело = Сообщение.Body; + + КодЭтогоУзла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПланыОбмена[Тело.ExchangePlan].ЭтотУзел(), "Код"); + ПсевдонимЭтогоУзла = ""; + + Если Не ПустаяСтрока(КодЭтогоУзла) И КодЭтогоУзла <> Тело.Code Тогда + ПсевдонимЭтогоУзла = ОбменДаннымиВМоделиСервиса.КодУзлаПланаОбменаВСервисе(МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); + + Если ПсевдонимЭтогоУзла <> Тело.Code Тогда + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ожидаемый код предопределенного узла в этом приложении ""%1"" + |не соответствует фактическому ""%2"" или псевдониму ""%3"". План обмена: %4.'"), + Тело.Code, КодЭтогоУзла, ПсевдонимЭтогоУзла, Тело.ExchangePlan); + ВызватьИсключение СтрокаСообщения; + КонецЕсли; + КонецЕсли; + + КонечнаяТочкаКорреспондента = ОбменДаннымиВМоделиСервиса.МенеджерПланаОбменаКонечныхТочек().НайтиПоКоду(Тело.EndPoint); + + Если КонечнаяТочкаКорреспондента.Пустая() Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не найдена конечная точка корреспондента с кодом ""%1"".'"), + Тело.EndPoint); + КонецЕсли; + + Префикс = ""; + ПрефиксКорреспондента = ""; + ИдентификаторНастройки = ""; + + Если Сообщение.Установлено("AdditionalInfo") Тогда + ДополнительныеСвойства = СериализаторXDTO.ПрочитатьXDTO(Сообщение.AdditionalInfo); + Если ДополнительныеСвойства.Свойство("Префикс") Тогда + Префикс = ДополнительныеСвойства.Префикс; + КонецЕсли; + Если ДополнительныеСвойства.Свойство("ПрефиксКорреспондента") Тогда + ПрефиксКорреспондента = ДополнительныеСвойства.ПрефиксКорреспондента; + КонецЕсли; + Если ДополнительныеСвойства.Свойство("ИдентификаторНастройки") Тогда + ИдентификаторНастройки = ДополнительныеСвойства.ИдентификаторНастройки; + КонецЕсли; + КонецЕсли; + + НастройкиXDTOКорреспондента = Новый Структура; + + НастройкиОтбора = СериализаторXDTO.ПрочитатьXDTO(Тело.FilterSettings); + Если НастройкиОтбора.Свойство("НастройкиXDTOКорреспондента") Тогда + НастройкиXDTOКорреспондента = НастройкиОтбора.НастройкиXDTOКорреспондента; + КонецЕсли; + + // Создаем настройку обмена. + НастройкиПодключения = Новый Структура; + НастройкиПодключения.Вставить("ИмяПланаОбмена", Тело.ExchangePlan); + НастройкиПодключения.Вставить("ИдентификаторНастройки", ИдентификаторНастройки); + + НастройкиПодключения.Вставить("Наименование", ""); // не требуется + НастройкиПодключения.Вставить("НаименованиеКорреспондента", Тело.CorrespondentName); + + НастройкиПодключения.Вставить("Префикс", Префикс); + НастройкиПодключения.Вставить("ПрефиксКорреспондента", ПрефиксКорреспондента); + + НастройкиПодключения.Вставить("ИдентификаторИнформационнойБазыИсточника", КодЭтогоУзла); + НастройкиПодключения.Вставить("ИдентификаторИнформационнойБазыПриемника", Тело.CorrespondentCode); + + НастройкиПодключения.Вставить("КонечнаяТочкаКорреспондента", КонечнаяТочкаКорреспондента); + + НастройкиПодключения.Вставить("НастройкиXDTOКорреспондента", НастройкиXDTOКорреспондента); + + НастройкиПодключения.Вставить("Корреспондент"); // выходной параметр + + НастройкиПодключения.Вставить("ОбластьДанныхКорреспондента", Тело.CorrespondentZone); + + НачатьТранзакцию(); + Попытка + ОбменДаннымиВМоделиСервиса.СоздатьНастройкуОбмена_3_0_1_1(НастройкиПодключения, + Истина, , ПсевдонимЭтогоУзла); + + // Отправляем ответное сообщение об успешной операции. + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеНастройкаОбменаШаг1УспешноЗавершена()); + + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , ПредставлениеОшибки); + + УдалитьНастройкуСинхронизации(НастройкиПодключения.Корреспондент); + + // Отправляем ответное сообщение об ошибке. + НачатьТранзакцию(); + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаНастройкиОбменаШаг1()); + + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки; + + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + ЗафиксироватьТранзакцию(); + КонецПопытки; + + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + +КонецПроцедуры + +Процедура ЗагрузитьСообщениеОбмена(Сообщение, Отправитель) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + СообщениеДляСопоставленияДанных = Ложь; + + Если Сообщение.Установлено("AdditionalInfo") Тогда + ДополнительныеСвойства = СериализаторXDTO.ПрочитатьXDTO(Сообщение.AdditionalInfo); + Если ДополнительныеСвойства.Свойство("СообщениеДляСопоставленияДанных") Тогда + СообщениеДляСопоставленияДанных = ДополнительныеСвойства.СообщениеДляСопоставленияДанных; + КонецЕсли; + КонецЕсли; + + Тело = Сообщение.Body; + + Если Тело.Свойства().Получить("MessageForDataMatching") <> Неопределено + И Тело.Установлено("MessageForDataMatching") Тогда + СообщениеДляСопоставленияДанных = Тело.MessageForDataMatching; + КонецЕсли; + + ОтветноеСообщение = Неопределено; + Попытка + Корреспондент = КорреспондентОбмена(Тело.ExchangePlan, Тело.CorrespondentCode); + + // Загружаем сообщение обмена + Отказ = Ложь; + ОбменДаннымиВМоделиСервиса.ВыполнитьЗагрузкуДанных(Отказ, Корреспондент, СообщениеДляСопоставленияДанных); + Если Отказ Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'В процессе загрузки данных из программы ""%1"" возникли ошибки.'"), + ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Корреспондент, "Наименование")); + КонецЕсли; + + // Отправляем ответное сообщение об успешной операции. + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеЗагрузкаСообщенияОбменаУспешноЗавершена()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + Исключение + ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , ПредставлениеОшибки); + + // Отправляем ответное сообщение об ошибке. + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаЗагрузкиСообщенияОбмена()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки; + + КонецПопытки; + + Если Не ОтветноеСообщение = Неопределено Тогда + НачатьТранзакцию(); + Попытка + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + КонецЕсли; + +КонецПроцедуры + +Процедура ПолучитьДанныеКорреспондента(Сообщение, Отправитель) + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + Тело = Сообщение.Body; + + НачатьТранзакцию(); + Попытка + + ДанныеКорреспондента = ОбменДаннымиСервер.ДанныеТаблицКорреспондента( + СериализаторXDTO.ПрочитатьXDTO(Тело.Tables), Тело.ExchangePlan); + + // Отправляем ответное сообщение об успешной операции + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеПолучениеДанныхКорреспондентаУспешноЗавершено()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.Data = Новый ХранилищеЗначения(ДанныеКорреспондента); + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки); + + // Отправляем ответное сообщение об ошибке + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаПолученияДанныхКорреспондента()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки; + + НачатьТранзакцию(); + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + ЗафиксироватьТранзакцию(); + КонецПопытки; + + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + +КонецПроцедуры + +Процедура ПолучитьОбщиеДанныеУзловКорреспондента(Сообщение, Отправитель) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + Тело = Сообщение.Body; + + НачатьТранзакцию(); + Попытка + ДанныеКорреспондента = ОбменДаннымиСервер.ДанныеДляТабличныхЧастейУзловЭтойИнформационнойБазы(Тело.ExchangePlan); + + // Отправляем ответное сообщение об успешной операции. + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеПолучениеОбщихДанныхУзловКорреспондентаУспешноЗавершено()); + + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ПредставлениеОшибки = ""; + ПараметрыИБ = ОбменДаннымиСервер.ПараметрыИнформационнойБазы(Тело.ExchangePlan, "", ПредставлениеОшибки); + + Результат = Новый Структура; + Результат.Вставить("ОбщиеДанныеУзлов", Новый Структура()); + Результат.Вставить("ПараметрыИнформационнойБазы", ПараметрыИБ); + + ОтветноеСообщение.Body.Data = Новый ХранилищеЗначения(Результат); + + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки); + + // Отправляем ответное сообщение об ошибке + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаПолученияОбщихДанныхУзловКорреспондента()); + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки; + + НачатьТранзакцию(); + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + ЗафиксироватьТранзакцию(); + КонецПопытки; + + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + +КонецПроцедуры + +Процедура ПолучитьПараметрыУчетаКорреспондента(Сообщение, Отправитель) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + Тело = Сообщение.Body; + + НачатьТранзакцию(); + Попытка + + Корреспондент = КорреспондентОбмена(Тело.ExchangePlan, Тело.CorrespondentCode); + + Отказ = Ложь; + ПредставлениеОшибки = ""; + + ДанныеКорреспондента = Новый Структура; + + ПараметрыИБ = ОбменДаннымиСервер.ПараметрыИнформационнойБазы(Тело.ExchangePlan, Тело.CorrespondentCode, ПредставлениеОшибки); + Отказ = Не ПараметрыИБ.НастройкиПараметровУчетаЗаданы; + + ДанныеКорреспондента.Вставить("ПараметрыИнформационнойБазы", ПараметрыИБ); + + ДанныеКорреспондента.Вставить("ПараметрыУчетаЗаданы", Не Отказ); + ДанныеКорреспондента.Вставить("ПредставлениеОшибки", ПредставлениеОшибки); + + // Отправляем ответное сообщение об успешной операции + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеПолучениеПараметровУчетаКорреспондентаУспешноЗавершено()); + + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.Data = Новый ХранилищеЗначения(ДанныеКорреспондента); + + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + + ЗафиксироватьТранзакцию(); + + Исключение + ОтменитьТранзакцию(); + + ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка,,, ПредставлениеОшибки); + + // Отправляем ответное сообщение об ошибке + ОтветноеСообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиКонтрольИнтерфейс.СообщениеОшибкаПолученияПараметровУчетаКорреспондента()); + + ОтветноеСообщение.Body.Zone = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + ОтветноеСообщение.Body.SessionId = Тело.SessionId; + + ОтветноеСообщение.Body.CorrespondentZone = Тело.CorrespondentZone; + ОтветноеСообщение.Body.ErrorDescription = ПредставлениеОшибки; + + НачатьТранзакцию(); + МодульСообщенияВМоделиСервиса.ОтправитьСообщение(ОтветноеСообщение, Отправитель, Истина); + ЗафиксироватьТранзакцию(); + КонецПопытки; + + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + +КонецПроцедуры + +Функция КорреспондентОбмена(Знач ИмяПланаОбмена, Знач Код) + + Результат = ПланыОбмена[ИмяПланаОбмена].НайтиПоКоду(Код); + + Если Не ЗначениеЗаполнено(Результат) Тогда + СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не найден узел плана обмена; имя плана обмена %1; код узла %2.'"), + ИмяПланаОбмена, Код); + ВызватьИсключение СтрокаСообщения; + КонецЕсли; + + Возврат Результат; +КонецФункции + +Процедура УдалитьНастройкуСинхронизации(Знач Корреспондент) + + Если Корреспондент = Неопределено Тогда + Возврат; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + Попытка + КорреспондентОбъект = Корреспондент.ПолучитьОбъект(); + + Если КорреспондентОбъект <> Неопределено Тогда + КорреспондентОбъект.Удалить(); + КонецЕсли; + Исключение + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1.mdo b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1.mdo new file mode 100644 index 000000000..bf1453335 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1/СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1.mdo @@ -0,0 +1,11 @@ + + + СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1 + + ru + Сообщения обмена данными управление обработчик сообщения 3.0.1.1 + + true + true + true + diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикТрансляции_2_1_2_1/Module.bsl b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикТрансляции_2_1_2_1/Module.bsl new file mode 100644 index 000000000..c445072d0 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикТрансляции_2_1_2_1/Module.bsl @@ -0,0 +1,156 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Номер версии, для трансляции с которой предназначен обработчик. +// +// Возвращаемое значение: +// Строка - исходная версия интерфейса сообщений. +// +Функция ИсходнаяВерсия() Экспорт + + Возврат "3.0.1.1"; + +КонецФункции + +// Пространство имен версии, для трансляции с которой предназначен обработчик. +// +// Возвращаемое значение: +// Строка - пространство имен. +// +Функция ПакетИсходнойВерсии() Экспорт + + Возврат "http://www.1c.ru/SaaS/Exchange/Manage/3.0.1.1"; + +КонецФункции + +// Номер версии, для трансляции в которую предназначен обработчик. +// +// Возвращаемое значение: +// Строка - результирующая версия интерфейса сообщений. +// +Функция РезультирующаяВерсия() Экспорт + + Возврат "2.1.2.1"; + +КонецФункции + +// Пространство имен версии, для трансляции в которую предназначен обработчик. +// +// Возвращаемое значение: +// Строка - пространство имен. +// +Функция ПакетРезультирующейВерсии() Экспорт + + Возврат "http://www.1c.ru/SaaS/Exchange/Manage"; + +КонецФункции + +// Обработчик проверки выполнения стандартной обработки трансляции. +// +// Параметры: +// ИсходноеСообщение - ОбъектXDTO - транслируемое сообщение. +// СтандартнаяОбработка - Булево - для отмены выполнения стандартной обработки трансляции +// этому параметру внутри данной процедуры необходимо установить значение Ложь. +// При этом вместо выполнения стандартной обработки трансляции будет вызвана функция. +// ТрансляцияСообщения() обработчика трансляции. +// +Процедура ПередТрансляцией(Знач ИсходноеСообщение, СтандартнаяОбработка) Экспорт + + ТипТела = ИсходноеСообщение.Тип(); + + Если ТипТела = Интерфейс().СообщениеНастроитьОбменШаг1(ПакетИсходнойВерсии()) Тогда + СтандартнаяОбработка = Ложь; + ИначеЕсли ТипТела = Интерфейс().СообщениеЗагрузитьСообщениеОбмена(ПакетИсходнойВерсии()) Тогда + СтандартнаяОбработка = Ложь; + КонецЕсли; + +КонецПроцедуры + +// Обработчик выполнения произвольной трансляции сообщения. Вызывается только в том случае, +// если при выполнении процедуры ПередТрансляцией значению параметра СтандартнаяОбработка +// было установлено значение Ложь. +// +// Параметры: +// ИсходноеСообщение - ОбъектXDTO - транслируемое сообщение. +// +// Возвращаемое значение: +// ОбъектXDTO - результат произвольной трансляции сообщения. +// +Функция ТрансляцияСообщения(Знач ИсходноеСообщение) Экспорт + + ТипТела = ИсходноеСообщение.Тип(); + + Если ТипТела = Интерфейс().СообщениеНастроитьОбменШаг1(ПакетИсходнойВерсии()) Тогда + Возврат ТранслироватьСообщениеНастроитьОбменШаг1(ИсходноеСообщение); + ИначеЕсли ТипТела = Интерфейс().СообщениеЗагрузитьСообщениеОбмена(ПакетИсходнойВерсии()) Тогда + Возврат ТранслироватьСообщениеЗагрузитьСообщениеОбмена(ИсходноеСообщение); + КонецЕсли; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция Интерфейс() + + Возврат СообщенияОбменаДаннымиУправлениеИнтерфейс; + +КонецФункции + +Функция ТранслироватьСообщениеНастроитьОбменШаг1(Знач ИсходноеСообщение) + + Результат = ФабрикаXDTO.Создать( + Интерфейс().СообщениеНастроитьОбменШаг1(ПакетРезультирующейВерсии())); + + Результат.SessionId = ИсходноеСообщение.SessionId; + Результат.Zone = ИсходноеСообщение.Zone; + + Результат.CorrespondentZone = ИсходноеСообщение.CorrespondentZone; + + Результат.ExchangePlan = ИсходноеСообщение.ExchangePlan; + Результат.CorrespondentCode = ИсходноеСообщение.CorrespondentCode; + Результат.CorrespondentName = ИсходноеСообщение.CorrespondentName; + Результат.Code = ИсходноеСообщение.Code; + Результат.EndPoint = ИсходноеСообщение.EndPoint; + + Если ИсходноеСообщение.Установлено("XDTOSettings") Тогда + НастройкиXDTO = СериализаторXDTO.ПрочитатьXDTO(ИсходноеСообщение.XDTOSettings); + + НастройкиОтборов = Новый Структура; + НастройкиОтборов.Вставить("НастройкиXDTOКорреспондента", НастройкиXDTO); + + Результат.FilterSettings = СериализаторXDTO.ЗаписатьXDTO(НастройкиОтборов); + Иначе + Результат.FilterSettings = СериализаторXDTO.ЗаписатьXDTO(Новый Структура); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ТранслироватьСообщениеЗагрузитьСообщениеОбмена(Знач ИсходноеСообщение) + + Результат = ФабрикаXDTO.Создать( + Интерфейс().СообщениеЗагрузитьСообщениеОбмена(ПакетРезультирующейВерсии())); + + Результат.SessionId = ИсходноеСообщение.SessionId; + Результат.Zone = ИсходноеСообщение.Zone; + + Результат.CorrespondentZone = ИсходноеСообщение.CorrespondentZone; + + Результат.ExchangePlan = ИсходноеСообщение.ExchangePlan; + Результат.CorrespondentCode = ИсходноеСообщение.CorrespondentCode; + + Возврат Результат; + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикТрансляции_2_1_2_1/СообщенияОбменаДаннымиУправлениеОбработчикТрансляции_2_1_2_1.mdo b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикТрансляции_2_1_2_1/СообщенияОбменаДаннымиУправлениеОбработчикТрансляции_2_1_2_1.mdo new file mode 100644 index 000000000..965060f0a --- /dev/null +++ b/SSL/src/CommonModules/СообщенияОбменаДаннымиУправлениеОбработчикТрансляции_2_1_2_1/СообщенияОбменаДаннымиУправлениеОбработчикТрансляции_2_1_2_1.mdo @@ -0,0 +1,11 @@ + + + СообщенияОбменаДаннымиУправлениеОбработчикТрансляции_2_1_2_1 + + ru + Сообщения обмена данными управление обработчик трансляции 2.1.2.1 + + true + true + true + diff --git a/SSL/src/CommonModules/СообщенияПоставляемыхДанныхОбработчикСообщения/Module.bsl b/SSL/src/CommonModules/СообщенияПоставляемыхДанныхОбработчикСообщения/Module.bsl deleted file mode 100644 index c000bd880..000000000 --- a/SSL/src/CommonModules/СообщенияПоставляемыхДанныхОбработчикСообщения/Module.bsl +++ /dev/null @@ -1,393 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Запланировать загрузку данных, соответствующих дескриптору. -// -// Параметры: -// Дескриптор - ОбъектXDTO - Descriptor. -// -Процедура ЗапланироватьЗагрузкуДанных(Знач Дескриптор) Экспорт - Перем ДескрипторXML, ПараметрыМетода; - - Если Дескриптор.RecommendedUpdateDate = Неопределено Тогда - Дескриптор.RecommendedUpdateDate = ТекущаяУниверсальнаяДата(); - КонецЕсли; - - ДескрипторXML = СериализоватьXDTO(Дескриптор); - - ПараметрыМетода = Новый Массив; - ПараметрыМетода.Добавить(ДескрипторXML); - - ПараметрыЗадания = Новый Структура; - ПараметрыЗадания.Вставить("ИмяМетода" , "СообщенияПоставляемыхДанныхОбработчикСообщения.ЗагрузитьДанные"); - ПараметрыЗадания.Вставить("Параметры" , ПараметрыМетода); - ПараметрыЗадания.Вставить("ОбластьДанных", -1); - ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", Дескриптор.RecommendedUpdateDate); - ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 3); - - УстановитьПривилегированныйРежим(Истина); - ОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Получает список обработчиков сообщений, которые обрабатывает данная подсистема. -// -// Параметры: -// Обработчики - ТаблицаЗначений - состав полей см. в ОбменСообщениями.НоваяТаблицаОбработчиковСообщений. -// -Процедура ПолучитьОбработчикиКаналовСообщений(Знач Обработчики) Экспорт - - ДобавитьОбработчикКаналаСообщений("ПоставляемыеДанные\Обновление", СообщенияПоставляемыхДанныхОбработчикСообщения, Обработчики); - -КонецПроцедуры - -// Выполняет обработку тела сообщения из канала в соответствии с алгоритмом текущего канала сообщений. -// -// Параметры: -// КаналСообщений - Строка - идентификатор канала сообщений, из которого получено сообщение. -// ТелоСообщения - Произвольный - тело сообщения, полученное из канала, которое подлежит обработке. -// Отправитель - ПланОбменаСсылка.ОбменСообщениями - конечная точка, которая является отправителем сообщения. -// -Процедура ОбработатьСообщение(Знач КаналСообщений, Знач ТелоСообщения, Знач Отправитель) Экспорт - - Попытка - Дескриптор = ДесериализоватьXDTO(ТелоСообщения); - - Если КаналСообщений = "ПоставляемыеДанные\Обновление" Тогда - - ОбработатьНовыйДескриптор(Дескриптор); - - КонецЕсли; - Исключение - ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Ошибка обработки сообщения'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , - , ПоставляемыеДанные.ПолучитьОписаниеДанных(Дескриптор) + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -// Обрабатывает новые данные. Вызывается из ОбработатьСообщение и из ПоставляемыеДанные.ЗагрузитьИОбработатьДанные. -// -// Параметры: -// Дескриптор - ОбъектXDTO Descriptor. -Процедура ОбработатьНовыйДескриптор(Знач Дескриптор) Экспорт - - Загружать = Ложь; - НаборЗаписей = РегистрыСведений.ПоставляемыеДанныеТребующиеОбработки.СоздатьНаборЗаписей(); - НаборЗаписей.Отбор.ИдентификаторФайла.Установить(Дескриптор.FileGUID); - - Для каждого Обработчик Из ПолучитьОбработчики(Дескриптор.DataType) Цикл - - ОбработчикЗагружать = Ложь; - - Обработчик.Обработчик.ДоступныНовыеДанные(Дескриптор, ОбработчикЗагружать); - - Если ОбработчикЗагружать Тогда - НеобработанныеДанные = НаборЗаписей.Добавить(); - НеобработанныеДанные.ИдентификаторФайла = Дескриптор.FileGUID; - НеобработанныеДанные.КодОбработчика = Обработчик.КодОбработчика; - Загружать = Истина; - КонецЕсли; - - КонецЦикла; - - Если Загружать Тогда - УстановитьПривилегированныйРежим(Истина); - НаборЗаписей.Записать(); - УстановитьПривилегированныйРежим(Ложь); - - ЗапланироватьЗагрузкуДанных(Дескриптор); - КонецЕсли; - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Доступны новые данные'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Информация, , - , ?(Загружать, НСтр("ru = 'В очередь добавлено задание на загрузку.'"), НСтр("ru = 'Загрузка данных не требуется.'")) - + Символы.ПС + ПоставляемыеДанные.ПолучитьОписаниеДанных(Дескриптор)); - -КонецПроцедуры - -// Произвести загрузку данных, соответствующих дескриптору. -// -// Параметры: -// Дескриптор - ОбъектXDTO Descriptor. -// -// Произвести загрузку данных, соответствующих дескриптору. -// -// Параметры: -// Дескриптор - ОбъектXDTO Descriptor. -// -Процедура ЗагрузитьДанные(Знач ДескрипторXML) Экспорт - Перем Дескриптор, ИмяФайлаВыгрузки; - - Попытка - Дескриптор = ДесериализоватьXDTO(ДескрипторXML); - Исключение - ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Ошибка работы с XML'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , - , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()) - + ДескрипторXML); - Возврат; - КонецПопытки; - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Загрузка данных'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Информация, , - , НСтр("ru = 'Загрузка начата'") + Символы.ПС + ПоставляемыеДанные.ПолучитьОписаниеДанных(Дескриптор)); - - Если ЗначениеЗаполнено(Дескриптор.FileGUID) Тогда - ИмяФайлаВыгрузки = ПолучитьФайлИзХранилища(Дескриптор); - - Если ИмяФайлаВыгрузки = Неопределено Тогда - ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Загрузка данных'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Информация, , - , НСтр("ru = 'Файл не может быть загружен'") + Символы.ПС - + ПоставляемыеДанные.ПолучитьОписаниеДанных(Дескриптор)); - Возврат; - КонецЕсли; - КонецЕсли; - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Загрузка данных'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Примечание, , - , НСтр("ru = 'Загрузка успешно выполнена'") + Символы.ПС + ПоставляемыеДанные.ПолучитьОписаниеДанных(Дескриптор)); - - // РегистрСведений.ПоставляемыеДанныеТребующиеОбработки используется на тот случай, если выполнение - // цикла было прервано перезагрузкой сервера. - // В этой ситуации единственный способ сохранить информацию о отработавших обработчиках (если их более 1) - - // оперативно записывать их в указанный регистр. - НаборНеобработанныхДанных = РегистрыСведений.ПоставляемыеДанныеТребующиеОбработки.СоздатьНаборЗаписей(); - НаборНеобработанныхДанных.Отбор.ИдентификаторФайла.Установить(Дескриптор.FileGUID); - НаборНеобработанныхДанных.Прочитать(); - БылиОшибки = Ложь; - - Для каждого Обработчик Из ПолучитьОбработчики(Дескриптор.DataType) Цикл - ЗаписьНайдена = Ложь; - Для каждого ЗаписьНеобработанныхДанных Из НаборНеобработанныхДанных Цикл - Если ЗаписьНеобработанныхДанных.КодОбработчика = Обработчик.КодОбработчика Тогда - ЗаписьНайдена = Истина; - Прервать; - КонецЕсли; - КонецЦикла; - - Если Не ЗаписьНайдена Тогда - Продолжить; - КонецЕсли; - - Попытка - Обработчик.Обработчик.ОбработатьНовыеДанные(Дескриптор, ИмяФайлаВыгрузки); - НаборНеобработанныхДанных.Удалить(ЗаписьНеобработанныхДанных); - НаборНеобработанныхДанных.Записать(); - Исключение - ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Ошибка обработки'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , - , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()) - + Символы.ПС + ПоставляемыеДанные.ПолучитьОписаниеДанных(Дескриптор) - + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Код обработчика: %1'"), Обработчик.КодОбработчика)); - - ЗаписьНеобработанныхДанных.КоличествоПопыток = ЗаписьНеобработанныхДанных.КоличествоПопыток + 1; - Если ЗаписьНеобработанныхДанных.КоличествоПопыток > 3 Тогда - УведомитьОбОтменеОбработки(Обработчик, Дескриптор); - НаборНеобработанныхДанных.Удалить(ЗаписьНеобработанныхДанных); - Иначе - БылиОшибки = Истина; - КонецЕсли; - НаборНеобработанныхДанных.Записать(); - - КонецПопытки; - КонецЦикла; - - Если ИмяФайлаВыгрузки <> Неопределено Тогда - - ФайлВременный = Новый Файл(ИмяФайлаВыгрузки); - - Если ФайлВременный.Существует() Тогда - - Попытка - - ФайлВременный.УстановитьТолькоЧтение(Ложь); - УдалитьФайлы(ИмяФайлаВыгрузки); - - Исключение - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Загрузка данных'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - - КонецПопытки; - - КонецЕсли; - - КонецЕсли; - - Если ТранзакцияАктивна() Тогда - - Пока ТранзакцияАктивна() Цикл - - ОтменитьТранзакцию(); - - КонецЦикла; - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Ошибка обработки'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, - , - , - НСтр("ru = 'По завершении выполнения обработчика не была закрыта транзакция'") - + Символы.ПС + ПоставляемыеДанные.ПолучитьОписаниеДанных(Дескриптор)); - - КонецЕсли; - - Если БылиОшибки Тогда - // Откладываем загрузку на 5 минут. - Дескриптор.RecommendedUpdateDate = ТекущаяУниверсальнаяДата() + 5 * 60; - ЗапланироватьЗагрузкуДанных(Дескриптор); - ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Ошибка обработки'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Информация, , , - НСтр("ru = 'Обработка данных будет запущена повторно из-за ошибки обработчика.'") - + Символы.ПС + ПоставляемыеДанные.ПолучитьОписаниеДанных(Дескриптор)); - Иначе - НаборНеобработанныхДанных.Очистить(); - НаборНеобработанныхДанных.Записать(); - - ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Загрузка данных'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Информация, , - , НСтр("ru = 'Новые данные обработаны'") + Символы.ПС + ПоставляемыеДанные.ПолучитьОписаниеДанных(Дескриптор)); - - КонецЕсли; - -КонецПроцедуры - -Процедура УдалитьСведенияОНеобработанныхДанных(Знач Дескриптор) - - НаборНеобработанныхДанных = РегистрыСведений.ПоставляемыеДанныеТребующиеОбработки.СоздатьНаборЗаписей(); - НаборНеобработанныхДанных.Отбор.ИдентификаторФайла.Установить(Дескриптор.FileGUID); - НаборНеобработанныхДанных.Прочитать(); - - Для каждого Обработчик Из ПолучитьОбработчики(Дескриптор.DataType) Цикл - ЗаписьНайдена = Ложь; - - Для каждого ЗаписьНеобработанныхДанных Из НаборНеобработанныхДанных Цикл - Если ЗаписьНеобработанныхДанных.КодОбработчика = Обработчик.КодОбработчика Тогда - ЗаписьНайдена = Истина; - Прервать; - КонецЕсли; - КонецЦикла; - - Если Не ЗаписьНайдена Тогда - Продолжить; - КонецЕсли; - - УведомитьОбОтменеОбработки(Обработчик, Дескриптор); - - КонецЦикла; - НаборНеобработанныхДанных.Очистить(); - НаборНеобработанныхДанных.Записать(); - -КонецПроцедуры - -Процедура УведомитьОбОтменеОбработки(Знач Обработчик, Знач Дескриптор) - - Попытка - Обработчик.Обработчик.ОбработкаДанныхОтменена(Дескриптор); - ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Отмена обработки'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Информация, , - , ПоставляемыеДанные.ПолучитьОписаниеДанных(Дескриптор) - + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Код обработчика: %1'"), Обработчик.КодОбработчика)); - - Исключение - ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Отмена обработки'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , - , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()) - + Символы.ПС + ПоставляемыеДанные.ПолучитьОписаниеДанных(Дескриптор) - + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Код обработчика: %1'"), Обработчик.КодОбработчика)); - КонецПопытки; - -КонецПроцедуры - -Функция ПолучитьФайлИзХранилища(Знач Дескриптор) - - Попытка - ИмяФайлаВыгрузки = РаботаВМоделиСервиса.ПолучитьФайлИзХранилищаМенеджераСервиса(Дескриптор.FileGUID); - Исключение - ЗаписьЖурналаРегистрации(НСтр("ru = 'Поставляемые данные.Ошибка хранилища'", - ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка, , - , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()) - + Символы.ПС + ПоставляемыеДанные.ПолучитьОписаниеДанных(Дескриптор)); - - // Откладываем загрузку на час. - Дескриптор.RecommendedUpdateDate = Дескриптор.RecommendedUpdateDate + 60 * 60; - ЗапланироватьЗагрузкуДанных(Дескриптор); - Возврат Неопределено; - КонецПопытки; - - // Если файл был заменен или удален между перезапусками функции - - // удалим старый план обновления. - Если ИмяФайлаВыгрузки = Неопределено Тогда - УдалитьСведенияОНеобработанныхДанных(Дескриптор); - КонецЕсли; - - Возврат ИмяФайлаВыгрузки; - -КонецФункции - -Функция ПолучитьОбработчики(Знач ВидДанных) - - Обработчики = Новый ТаблицаЗначений; - Обработчики.Колонки.Добавить("ВидДанных"); - Обработчики.Колонки.Добавить("Обработчик"); - Обработчики.Колонки.Добавить("КодОбработчика"); - - ИнтеграцияПодсистемБСП.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики); - ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных(Обработчики); - - Возврат Обработчики.Скопировать(Новый Структура("ВидДанных", ВидДанных), "Обработчик, КодОбработчика"); - -КонецФункции - -Функция СериализоватьXDTO(Знач XDTOОбъект) - Запись = Новый ЗаписьXML; - Запись.УстановитьСтроку(); - ФабрикаXDTO.ЗаписатьXML(Запись, XDTOОбъект, , , , НазначениеТипаXML.Явное); - Возврат Запись.Закрыть(); -КонецФункции - -Функция ДесериализоватьXDTO(Знач СтрокаXML) - Чтение = Новый ЧтениеXML; - Чтение.УстановитьСтроку(СтрокаXML); - XDTOОбъект = ФабрикаXDTO.ПрочитатьXML(Чтение); - Чтение.Закрыть(); - Возврат XDTOОбъект; -КонецФункции - -// ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ - -Процедура ДобавитьОбработчикКаналаСообщений(Знач Канал, Знач ОбработчикКанала, Знач Обработчики) - - Обработчик = Обработчики.Добавить(); - Обработчик.Канал = Канал; - Обработчик.Обработчик = ОбработчикКанала; - -КонецПроцедуры - -#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/СообщенияПоставляемыхДанныхОбработчикСообщения/СообщенияПоставляемыхДанныхОбработчикСообщения.mdo b/SSL/src/CommonModules/СообщенияПоставляемыхДанныхОбработчикСообщения/СообщенияПоставляемыхДанныхОбработчикСообщения.mdo deleted file mode 100644 index 5e18845b1..000000000 --- a/SSL/src/CommonModules/СообщенияПоставляемыхДанныхОбработчикСообщения/СообщенияПоставляемыхДанныхОбработчикСообщения.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - СообщенияПоставляемыхДанныхОбработчикСообщения - - ru - Сообщения поставляемых данных обработчик сообщения - - true - true - true - diff --git a/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемИнтерфейс/СообщенияУправлениеРезервнымКопированиемИнтерфейс.mdo b/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемИнтерфейс/СообщенияУправлениеРезервнымКопированиемИнтерфейс.mdo deleted file mode 100644 index 517511a26..000000000 --- a/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемИнтерфейс/СообщенияУправлениеРезервнымКопированиемИнтерфейс.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - СообщенияУправлениеРезервнымКопированиемИнтерфейс - - ru - Сообщения управление резервным копированием интерфейс - - true - true - true - diff --git a/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_2_1/Module.bsl b/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_2_1/Module.bsl deleted file mode 100644 index 5b9141e12..000000000 --- a/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_2_1/Module.bsl +++ /dev/null @@ -1,93 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Возвращает пространство имен версии интерфейса сообщений. -// -// Возвращаемое значение: -// Строка - наименование пакета. -// -Функция Пакет() Экспорт - - Возврат "http://www.1c.ru/SaaS/ManageZonesBackup/" + Версия(); - -КонецФункции - -// Возвращает версию интерфейса сообщений, обслуживаемую обработчиком. -// -// Возвращаемое значение: -// Строка -версия пакета. -// -Функция Версия() Экспорт - - Возврат "1.0.2.1"; - -КонецФункции - -// Возвращает базовый тип для сообщений версии. -// -// Возвращаемое значение: -// ТипОбъектаXDTO - базовый тип тел сообщений в модели сервиса. -// -Функция БазовыйТип() Экспорт - - Возврат СообщенияВМоделиСервисаПовтИсп.ТипТело(); - -КонецФункции - -// Выполняет обработку входящих сообщений модели сервиса. -// -// Параметры: -// Сообщение - ОбъектXDTO - входящее сообщение, -// Отправитель - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, соответствующий отправителю сообщения. -// СообщениеОбработано - Булево - флаг успешной обработки сообщения. Значение данного параметра необходимо -// установить равным Истина в том случае, если сообщение было успешно прочитано в данном обработчике. -// -Процедура ОбработатьСообщениеМоделиСервиса(Знач Сообщение, Знач Отправитель, СообщениеОбработано) Экспорт - - СообщениеОбработано = Истина; - - Словарь = СообщенияУправлениеРезервнымКопированиемИнтерфейс; - ТипСообщения = Сообщение.Body.Тип(); - - Если ТипСообщения = Словарь.СообщениеПланироватьАрхивациюОбласти(Пакет()) Тогда - ПланироватьАрхивациюОбласти(Сообщение, Отправитель); - ИначеЕсли ТипСообщения = Словарь.СообщениеОтменитьАрхивациюОбласти(Пакет()) Тогда - ОтменитьАрхивациюОбласти(Сообщение, Отправитель); - Иначе - СообщениеОбработано = Ложь; - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Процедура ПланироватьАрхивациюОбласти(Знач Сообщение, Знач Отправитель) - - ТелоСообщения = Сообщение.Body; - СообщенияУправлениеРезервнымКопированиемРеализация.ПланироватьСозданиеРезервнойКопииОбласти( - ТелоСообщения.Zone, - ТелоСообщения.BackupId, - ТелоСообщения.Date, - ТелоСообщения.Forced); - -КонецПроцедуры - -Процедура ОтменитьАрхивациюОбласти(Знач Сообщение, Знач Отправитель) - - ТелоСообщения = Сообщение.Body; - СообщенияУправлениеРезервнымКопированиемРеализация.ОтменитьСозданиеРезервнойКопииОбласти( - ТелоСообщения.Zone, - ТелоСообщения.BackupId); - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_2_1/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_2_1.mdo b/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_2_1/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_2_1.mdo deleted file mode 100644 index 3716bf61e..000000000 --- a/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_2_1/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_2_1.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_2_1 - - ru - Сообщения управление резервным копированием обработчик сообщения 1.0.2.1 - - true - true - true - diff --git a/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_3_1/Module.bsl b/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_3_1/Module.bsl deleted file mode 100644 index 70b49c9b8..000000000 --- a/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_3_1/Module.bsl +++ /dev/null @@ -1,119 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Возвращает пространство имен версии интерфейса сообщений. -// -// Возвращаемое значение: -// Строка - наименование пакета. -// -Функция Пакет() Экспорт - - Возврат "http://www.1c.ru/SaaS/ManageZonesBackup/" + Версия(); - -КонецФункции - -// Возвращает версию интерфейса сообщений, обслуживаемую обработчиком. -// -// Возвращаемое значение: -// Строка - версия пакета. -// -Функция Версия() Экспорт - - Возврат "1.0.3.1"; - -КонецФункции - -// Возвращает базовый тип для сообщений версии. -// -// Возвращаемое значение: -// ТипОбъектаXDTO - базовый тип тел сообщений в модели сервиса. -// -Функция БазовыйТип() Экспорт - - Возврат СообщенияВМоделиСервисаПовтИсп.ТипТело(); - -КонецФункции - -// Выполняет обработку входящих сообщений модели сервиса. -// -// Параметры: -// Сообщение - ОбъектXDTO - входящее сообщение, -// Отправитель - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, соответствующий отправителю сообщения. -// СообщениеОбработано - Булево - флаг успешной обработки сообщения. Значение данного параметра необходимо -// установить равным Истина в том случае, если сообщение было успешно прочитано в данном обработчике. -// -Процедура ОбработатьСообщениеМоделиСервиса(Знач Сообщение, Знач Отправитель, СообщениеОбработано) Экспорт - - СообщениеОбработано = Истина; - - Словарь = СообщенияУправлениеРезервнымКопированиемИнтерфейс; - ТипСообщения = Сообщение.Body.Тип(); - - Если ТипСообщения = Словарь.СообщениеПланироватьАрхивациюОбласти(Пакет()) Тогда - ПланироватьАрхивациюОбласти(Сообщение, Отправитель); - ИначеЕсли ТипСообщения = Словарь.СообщениеОбновитьНастройкиПериодическогоРезервногоКопирования(Пакет()) Тогда - ОбновитьНастройкиПериодическогоРезервногоКопирования(Сообщение, Отправитель); - ИначеЕсли ТипСообщения = Словарь.СообщениеОтменитьПериодическоеРезервноеКопирование(Пакет()) Тогда - ОтменитьПериодическоеРезервноеКопирование(Сообщение, Отправитель); - Иначе - СообщениеОбработано = Ложь; - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Процедура ПланироватьАрхивациюОбласти(Знач Сообщение, Знач Отправитель) - - ТелоСообщения = Сообщение.Body; - СообщенияУправлениеРезервнымКопированиемРеализация.ПланироватьСозданиеРезервнойКопииОбласти( - ТелоСообщения.Zone, - ТелоСообщения.BackupId, - ТелоСообщения.Date, - Истина); - -КонецПроцедуры - -Процедура ОбновитьНастройкиПериодическогоРезервногоКопирования(Знач Сообщение, Знач Отправитель) - - ТелоСообщения = Сообщение.Body; - - Настройки = Новый Структура; - Настройки.Вставить("СоздаватьЕжедневные", ТелоСообщения.CreateDailyBackup); - Настройки.Вставить("СоздаватьЕжемесячные", ТелоСообщения.CreateMonthlyBackup); - Настройки.Вставить("СоздаватьЕжегодные", ТелоСообщения.CreateYearlyBackup); - Настройки.Вставить("ТолькоПриАктивностиПользователей", ТелоСообщения.CreateBackupOnlyAfterUsersActivity); - Настройки.Вставить("НачалоИнтервалаФормированияКопий", ТелоСообщения.BackupCreationBeginTime); - Настройки.Вставить("ОкончаниеИнтервалаФормированияКопий", ТелоСообщения.BackupCreationEndTime); - Настройки.Вставить("ДеньСозданияЕжемесячных", ТелоСообщения.MonthlyBackupCreationDay); - Настройки.Вставить("МесяцСозданияЕжегодных", ТелоСообщения.YearlyBackupCreationMonth); - Настройки.Вставить("ДеньСозданияЕжегодных", ТелоСообщения.YearlyBackupCreationDay); - Настройки.Вставить("ДатаСозданияПоследнейЕжедневной", ТелоСообщения.LastDailyBackupDate); - Настройки.Вставить("ДатаСозданияПоследнейЕжемесячной", ТелоСообщения.LastMonthlyBackupDate); - Настройки.Вставить("ДатаСозданияПоследнейЕжегодной", ТелоСообщения.LastYearlyBackupDate); - - СообщенияУправлениеРезервнымКопированиемРеализация.ОбновитьНастройкиПериодическогоРезервногоКопирования( - ТелоСообщения.Zone, - Настройки); - -КонецПроцедуры - -Процедура ОтменитьПериодическоеРезервноеКопирование(Знач Сообщение, Знач Отправитель) - - ТелоСообщения = Сообщение.Body; - - СообщенияУправлениеРезервнымКопированиемРеализация.ОтменитьПериодическоеРезервноеКопирование( - ТелоСообщения.Zone); - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_3_1/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_3_1.mdo b/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_3_1/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_3_1.mdo deleted file mode 100644 index 80097f904..000000000 --- a/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_3_1/СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_3_1.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_3_1 - - ru - Сообщения управление резервным копированием обработчик сообщения 1.0.3.1 - - true - true - true - diff --git a/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемРеализация/Module.bsl b/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемРеализация/Module.bsl deleted file mode 100644 index ffa05365e..000000000 --- a/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемРеализация/Module.bsl +++ /dev/null @@ -1,139 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Обработка входящих сообщений с типом {http://www.1c.ru/SaaS/ManageZonesBackup/a.b.c.d}PlanZoneBackup. -// -// Параметры: -// КодОбластиДанных - Число - код области данных, -// ИдентификаторРезервнойКопии - УникальныйИдентификатор - идентификатор резервной копии, -// МоментРезервнойКопии - Дата - дата и время резервной копии, -// Принудительно - Булево - флаг принудительного создания резервной копии. -// -Процедура ПланироватьСозданиеРезервнойКопииОбласти(Знач КодОбластиДанных, - Знач ИдентификаторРезервнойКопии, Знач МоментРезервнойКопии, - Знач Принудительно) Экспорт - - ПараметрыВыгрузки = РезервноеКопированиеОбластейДанных.СоздатьПустыеПараметрыВыгрузки(); - ПараметрыВыгрузки.ОбластьДанных = КодОбластиДанных; - ПараметрыВыгрузки.ИДКопии = ИдентификаторРезервнойКопии; - ПараметрыВыгрузки.МоментЗапуска = МестноеВремя(МоментРезервнойКопии, // !Перевести универсальное в местное - - // В очередях на вход должно поступать местное. - РаботаВМоделиСервиса.ПолучитьЧасовойПоясОбластиДанных(КодОбластиДанных)); - ПараметрыВыгрузки.Принудительно = Принудительно; - ПараметрыВыгрузки.ПоТребованию = Ложь; - - РезервноеКопированиеОбластейДанных.ЗапланироватьАрхивациюВОчереди(ПараметрыВыгрузки); - -КонецПроцедуры - -// Обработка входящих сообщений с типом {http://www.1c.ru/SaaS/ManageZonesBackup/a.b.c.d}CancelZoneBackup. -// -// Параметры: -// КодОбластиДанных - Число - код области данных, -// ИдентификаторРезервнойКопии - УникальныйИдентификатор - идентификатор резервной копии. -// -Процедура ОтменитьСозданиеРезервнойКопииОбласти(Знач КодОбластиДанных, Знач ИдентификаторРезервнойКопии) Экспорт - - ПараметрыОтмены = Новый Структура("ОбластьДанных, ИДКопии", КодОбластиДанных, ИдентификаторРезервнойКопии); - РезервноеКопированиеОбластейДанных.ОтменитьСозданиеРезервнойКопииОбласти(ПараметрыОтмены); - -КонецПроцедуры - -// Обработка входящих сообщений с типом -// {http://www.1c.ru/SaaS/ManageZonesBackup/a.b.c.d}UpdateScheduledZoneBackupSettings. -// -// Параметры: -// ОбластьДанных - Число - значение разделителя области данных. -// Настройки - Структура - новые настройки резервного копирования. -Процедура ОбновитьНастройкиПериодическогоРезервногоКопирования(Знач ОбластьДанных, Знач Настройки) Экспорт - - ПараметрыСоздания = Новый Структура; - ПараметрыСоздания.Вставить("СоздаватьЕжедневные"); - ПараметрыСоздания.Вставить("СоздаватьЕжемесячные"); - ПараметрыСоздания.Вставить("СоздаватьЕжегодные"); - ПараметрыСоздания.Вставить("ТолькоПриАктивностиПользователей"); - ПараметрыСоздания.Вставить("ДеньСозданияЕжемесячных"); - ПараметрыСоздания.Вставить("МесяцСозданияЕжегодных"); - ПараметрыСоздания.Вставить("ДеньСозданияЕжегодных"); - ЗаполнитьЗначенияСвойств(ПараметрыСоздания, Настройки); - - СостояниеСоздания = Новый Структура; - СостояниеСоздания.Вставить("ДатаСозданияПоследнейЕжедневной"); - СостояниеСоздания.Вставить("ДатаСозданияПоследнейЕжемесячной"); - СостояниеСоздания.Вставить("ДатаСозданияПоследнейЕжегодной"); - ЗаполнитьЗначенияСвойств(СостояниеСоздания, Настройки); - - ПараметрыМетода = Новый Массив; - ПараметрыМетода.Добавить(Новый ФиксированнаяСтруктура(ПараметрыСоздания)); - ПараметрыМетода.Добавить(Новый ФиксированнаяСтруктура(СостояниеСоздания)); - - Расписание = Новый РасписаниеРегламентногоЗадания; - Расписание.ВремяНачала = Настройки.НачалоИнтервалаФормированияКопий; - Расписание.ВремяКонца = Настройки.ОкончаниеИнтервалаФормированияКопий; - Расписание.ПериодПовтораДней = 1; - - ПараметрыЗадания = Новый Структура; - ПараметрыЗадания.Вставить("Параметры", ПараметрыМетода); - ПараметрыЗадания.Вставить("Расписание", Расписание); - - ОтборЗадания = Новый Структура; - ОтборЗадания.Вставить("ОбластьДанных", ОбластьДанных); - ОтборЗадания.Вставить("ИмяМетода", "РезервноеКопированиеОбластейДанных.СозданиеКопий"); - ОтборЗадания.Вставить("Ключ", "1"); - - НачатьТранзакцию(); - Попытка - Задания = ОчередьЗаданий.ПолучитьЗадания(ОтборЗадания); - Если Задания.Количество() > 0 Тогда - ОчередьЗаданий.ИзменитьЗадание(Задания[0].Идентификатор, ПараметрыЗадания); - Иначе - ПараметрыЗадания.Вставить("ОбластьДанных", ОбластьДанных); - ПараметрыЗадания.Вставить("ИмяМетода", "РезервноеКопированиеОбластейДанных.СозданиеКопий"); - ПараметрыЗадания.Вставить("Ключ", "1"); - ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 3); - ПараметрыЗадания.Вставить("ИнтервалПовтораПриАварийномЗавершении", 600); // 10 минут - ОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); - КонецЕсли; - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -// Обработка входящих сообщений с типом {http://www.1c.ru/SaaS/ManageZonesBackup/a.b.c.d}CancelScheduledZoneBackup. -// -// Параметры: -// ОбластьДанных - Число - значение разделителя области данных. -Процедура ОтменитьПериодическоеРезервноеКопирование(Знач ОбластьДанных) Экспорт - - ОтборЗадания = Новый Структура; - ОтборЗадания.Вставить("ОбластьДанных", ОбластьДанных); - ОтборЗадания.Вставить("ИмяМетода", "РезервноеКопированиеОбластейДанных.СозданиеКопий"); - ОтборЗадания.Вставить("Ключ", "1"); - - НачатьТранзакцию(); - Попытка - Задания = ОчередьЗаданий.ПолучитьЗадания(ОтборЗадания); - Если Задания.Количество() > 0 Тогда - ОчередьЗаданий.УдалитьЗадание(Задания[0].Идентификатор); - КонецЕсли; - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемРеализация/СообщенияУправлениеРезервнымКопированиемРеализация.mdo b/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемРеализация/СообщенияУправлениеРезервнымКопированиемРеализация.mdo deleted file mode 100644 index 0576797d8..000000000 --- a/SSL/src/CommonModules/СообщенияУправлениеРезервнымКопированиемРеализация/СообщенияУправлениеРезервнымКопированиемРеализация.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - СообщенияУправлениеРезервнымКопированиемРеализация - - ru - Сообщения управление резервным копированием реализация - - true - true - true - diff --git a/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_1/Module.bsl b/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_1/Module.bsl new file mode 100644 index 000000000..a63defde4 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_1/Module.bsl @@ -0,0 +1,269 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Возвращает пространство имен версии интерфейса сообщений. +// +// Возвращаемое значение: +// Строка +// +Функция Пакет() Экспорт + + Возврат "http://www.1c.ru/1cFresh/ApplicationExtensions/Management/" + Версия(); + +КонецФункции + +// Возвращает версию интерфейса сообщений, обслуживаемую обработчиком. +// +// Возвращаемое значение: +// Строка +// +Функция Версия() Экспорт + + Возврат "1.0.1.1"; + +КонецФункции + +// Возвращает базовый тип для сообщений версии. +// +// Возвращаемое значение: +// Строка +// +Функция БазовыйТип() Экспорт + + Возврат ФабрикаXDTO.Тип("http://www.1c.ru/SaaS/Messages", "Body"); + +КонецФункции + +// Выполняет обработку входящих сообщений модели сервиса. +// +// Параметры: +// Сообщение - ОбъектXDTO - входящее сообщение, +// Отправитель - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, соответствующий отправителю сообщения +// СообщениеОбработано - Булево - флаг успешной обработки сообщения. Значение данного параметра необходимо +// установить равным Истина в том случае, если сообщение было успешно прочитано в данном обработчике. +// +Процедура ОбработатьСообщениеМоделиСервиса(Знач Сообщение, Знач Отправитель, СообщениеОбработано) Экспорт + + СообщениеОбработано = Истина; + + Словарь = СообщенияУправленияДополнительнымиОтчетамиИОбработкамиИнтерфейс; + ТипСообщения = Сообщение.Body.Тип(); + + Если ТипСообщения = Словарь.СообщениеУстановитьДополнительныйОтчетИлиОбработку(Пакет()) Тогда + УстановитьДополнительныйОтчетИлиОбработку(Сообщение, Отправитель); + ИначеЕсли ТипСообщения = Словарь.СообщениеУдалитьДополнительныйОтчетИлиОбработку(Пакет()) Тогда + УдалитьДополнительныйОтчетИлиОбработку(Сообщение, Отправитель); + ИначеЕсли ТипСообщения = Словарь.СообщениеОтключитьДополнительныйОтчетИлиОбработку(Пакет()) Тогда + ОтключитьДополнительныйОтчетИлиОбработку(Сообщение, Отправитель); + ИначеЕсли ТипСообщения = Словарь.СообщениеВключитьДополнительныйОтчетИлиОбработку(Пакет()) Тогда + ВключитьДополнительныйОтчетИлиОбработку(Сообщение, Отправитель); + ИначеЕсли ТипСообщения = Словарь.СообщениеОтозватьДополнительныйОтчетИлиОбработку(Пакет()) Тогда + ОтозватьДополнительныйОтчетИлиОбработку(Сообщение, Отправитель); + Иначе + СообщениеОбработано = Ложь; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура УстановитьДополнительныйОтчетИлиОбработку(Знач Сообщение, Знач Отправитель) + + ТелоСообщения = Сообщение.Body; + + Попытка + + НастройкиКоманд = НастройкиКоманд(ТелоСообщения); + + НастройкиРазделов = Новый ТаблицаЗначений(); + НастройкиРазделов.Колонки.Добавить("Раздел"); + + НастройкиНазначения = Новый ТаблицаЗначений(); + НастройкиНазначения.Колонки.Добавить("ОбъектНазначения"); + + НастройкиРасположенияКоманд = Новый Структура(); + + Если ЗначениеЗаполнено(ТелоСообщения.Assignments) Тогда + + ТипНазначениеРазделам = ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.ТипНазначениеРазделам(ПакетМанифеста()); + ТипНазначениеСправочникамИДокументам = ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.ТипНазначениеСправочникамИДокументам(ПакетМанифеста()); + Для Каждого Assignment Из ТелоСообщения.Assignments Цикл + + Если Assignment.Тип() = ТипНазначениеРазделам Тогда + + Для Каждого AssignmentObject Из Assignment.Objects Цикл + + СтрокаРаздела = НастройкиРазделов.Добавить(); + Если AssignmentObject.ObjectName = ДополнительныеОтчетыИОбработкиКлиентСервер.ИмяНачальнойСтраницы() Тогда + СтрокаРаздела.Раздел = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(); + Иначе + Раздел = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(AssignmentObject.ObjectName, Ложь); + СтрокаРаздела.Раздел = ?(ЗначениеЗаполнено(Раздел), Раздел, Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка()); + КонецЕсли; + + КонецЦикла; + + ИначеЕсли Assignment.Тип() = ТипНазначениеСправочникамИДокументам Тогда + + Для Каждого AssignmentObject Из Assignment.Objects Цикл + СтрокаНазначения = НастройкиНазначения.Добавить(); + ОбъектНазначения = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(AssignmentObject.ObjectName, Ложь); + СтрокаНазначения.ОбъектНазначения = ?(ЗначениеЗаполнено(ОбъектНазначения), ОбъектНазначения, Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка()); + КонецЦикла; + + НастройкиРасположенияКоманд.Вставить("ИспользоватьДляФормыСписка", Assignment.UseInListsForms); + НастройкиРасположенияКоманд.Вставить("ИспользоватьДляФормыОбъекта", Assignment.UseInObjectsForms); + + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + НастройкиВариантов = НастройкиВариантов(ТелоСообщения); + ОписаниеИнсталляции = Новый Структура( + "Идентификатор,Представление,Инсталляция", + ТелоСообщения.Extension, + ТелоСообщения.Representation, + ТелоСообщения.Installation); + + СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация.УстановитьДополнительныйОтчетИлиОбработку( + ОписаниеИнсталляции, НастройкиКоманд, НастройкиРасположенияКоманд, НастройкиРазделов, + НастройкиНазначения, НастройкиВариантов, ТелоСообщения.InitiatorServiceID); + + Исключение + + ТекстИсключения = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ПоставляемаяОбработка = Справочники.ПоставляемыеДополнительныеОтчетыИОбработки.ПолучитьСсылку(ТелоСообщения.Extension); + ДополнительныеОтчетыИОбработкиВМоделиСервиса.ОбработатьОшибкуУстановкиДополнительнойОбработкиВОбластьДанных( + ПоставляемаяОбработка, ТелоСообщения.Installation, ТекстИсключения); + + КонецПопытки; + +КонецПроцедуры + +Функция НастройкиВариантов(Знач ТелоСообщения) + + НастройкиВариантов = Новый ТаблицаЗначений(); + НастройкиВариантов.Колонки.Добавить("Ключ", Новый ОписаниеТипов("Строка")); + НастройкиВариантов.Колонки.Добавить("Размещение", Новый ОписаниеТипов("Массив")); + НастройкиВариантов.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); + Если ТелоСообщения.ReportVariants = Неопределено Тогда + Возврат НастройкиВариантов; + КонецЕсли; + + Для Каждого ReportVariant Из ТелоСообщения.ReportVariants Цикл + + НастройкаВарианта = НастройкиВариантов.Добавить(); + НастройкаВарианта.Ключ = ReportVariant.VariantKey; + НастройкаВарианта.Представление = ReportVariant.Representation; + + Размещение = Новый Массив; + Для Каждого ReportVariantAssignment Из ReportVariant.Assignments Цикл + + Раздел = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ReportVariantAssignment.ObjectName, Ложь); + Если Не ЗначениеЗаполнено(Раздел) Тогда + Раздел = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(); + КонецЕсли; + + Важный = Ложь; + СмТакже = Ложь; + Если ReportVariantAssignment.Importance = "High" Тогда + Важный = Истина; + ИначеЕсли ReportVariantAssignment.Importance = "Low" Тогда + СмТакже = Истина; + КонецЕсли; + ЭлементРазмещения = Новый Структура("Раздел,Важный,СмТакже", Раздел, Важный, СмТакже); + Размещение.Добавить(ЭлементРазмещения); + + КонецЦикла; + + НастройкаВарианта.Размещение = Размещение; + + КонецЦикла; + + Возврат НастройкиВариантов; + +КонецФункции + +Функция НастройкиКоманд(Знач ТелоСообщения) + + НастройкиКоманд = Новый ТаблицаЗначений(); + НастройкиКоманд.Колонки.Добавить("Идентификатор"); + НастройкиКоманд.Колонки.Добавить("БыстрыйДоступ"); + НастройкиКоманд.Колонки.Добавить("Расписание"); + + Если Не ЗначениеЗаполнено(ТелоСообщения.CommandSettings) Тогда + Возврат НастройкиКоманд; + КонецЕсли; + + Для Каждого CommandSettings Из ТелоСообщения.CommandSettings Цикл + + НастройкиКоманды = НастройкиКоманд.Добавить(); + НастройкиКоманды.Идентификатор = CommandSettings.Id; + + Если CommandSettings.Settings <> Неопределено Тогда + + МассивИдентификаторов = Новый Массив; + Для Каждого UserGUID Из CommandSettings.Settings.UsersFastAccess Цикл + МассивИдентификаторов.Добавить(UserGUID); + КонецЦикла; + + НастройкиКоманды.БыстрыйДоступ = МассивИдентификаторов; + Если CommandSettings.Settings.Schedule <> Неопределено Тогда + НастройкиКоманды.Расписание = СериализаторXDTO.ПрочитатьXDTO(CommandSettings.Settings.Schedule); + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + Возврат НастройкиКоманд; + +КонецФункции + +Процедура УдалитьДополнительныйОтчетИлиОбработку(Знач Сообщение, Знач Отправитель) + + ТелоСообщения = Сообщение.Body; + СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация.УдалитьДополнительныйОтчетИлиОбработку( + ТелоСообщения.Extension, ТелоСообщения.Installation); + +КонецПроцедуры + +Процедура ОтключитьДополнительныйОтчетИлиОбработку(Знач Сообщение, Знач Отправитель) + + СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация.ОтключитьДополнительныйОтчетИлиОбработку( + Сообщение.Body.Extension); + +КонецПроцедуры + +Процедура ВключитьДополнительныйОтчетИлиОбработку(Знач Сообщение, Знач Отправитель) + + СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация.ВключитьДополнительныйОтчетИлиОбработку( + Сообщение.Body.Extension); + +КонецПроцедуры + +Процедура ОтозватьДополнительныйОтчетИлиОбработку(Знач Сообщение, Знач Отправитель) + + СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация.ОтозватьДополнительныйОтчетИлиОбработку( + Сообщение.Body.Extension); + +КонецПроцедуры + +Функция ПакетМанифеста() + + Возврат ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.Пакет("1.0.0.1"); + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_1/СообщенияУправленияДОИООбработчикСообщения_1_0_1_1.mdo b/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_1/СообщенияУправленияДОИООбработчикСообщения_1_0_1_1.mdo new file mode 100644 index 000000000..4baaad575 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_1/СообщенияУправленияДОИООбработчикСообщения_1_0_1_1.mdo @@ -0,0 +1,11 @@ + + + СообщенияУправленияДОИООбработчикСообщения_1_0_1_1 + + ru + Сообщения управления дополнительными отчетами и обработками обработчик сообщения 1. 0 .1 .1 + + true + true + true + diff --git a/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2/Module.bsl b/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2/Module.bsl new file mode 100644 index 000000000..01b07b2fa --- /dev/null +++ b/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2/Module.bsl @@ -0,0 +1,281 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Возвращает пространство имен версии интерфейса сообщений. +// +// Возвращаемое значение: +// Строка +// +Функция Пакет() Экспорт + + Возврат "http://www.1c.ru/1cFresh/ApplicationExtensions/Management/" + Версия(); + +КонецФункции + +// Возвращает версию интерфейса сообщений, обслуживаемую обработчиком. +// +// Возвращаемое значение: +// Строка +// +Функция Версия() Экспорт + + Возврат "1.0.1.2"; + +КонецФункции + +// Возвращает базовый тип для сообщений версии. +// +// Возвращаемое значение: +// Строка +// +Функция БазовыйТип() Экспорт + + Возврат ФабрикаXDTO.Тип("http://www.1c.ru/SaaS/Messages", "Body"); + +КонецФункции + +// Выполняет обработку входящих сообщений модели сервиса +// +// Параметры: +// Сообщение - ОбъектXDTO - входящее сообщение, +// Отправитель - ПланОбменаСсылка.ОбменСообщениями - узел плана обмена, соответствующий отправителю сообщения +// СообщениеОбработано - Булево - флаг успешной обработки сообщения. Значение данного параметра необходимо +// установить равным Истина в том случае, если сообщение было успешно прочитано в данном обработчике. +// +Процедура ОбработатьСообщениеМоделиСервиса(Знач Сообщение, Знач Отправитель, СообщениеОбработано) Экспорт + + СообщениеОбработано = Истина; + + Словарь = СообщенияУправленияДополнительнымиОтчетамиИОбработкамиИнтерфейс; + ТипСообщения = Сообщение.Body.Тип(); + + Если ТипСообщения = Словарь.СообщениеУстановитьДополнительныйОтчетИлиОбработку(Пакет()) Тогда + УстановитьДополнительныйОтчетИлиОбработку(Сообщение, Отправитель); + ИначеЕсли ТипСообщения = Словарь.СообщениеУдалитьДополнительныйОтчетИлиОбработку(Пакет()) Тогда + УдалитьДополнительныйОтчетИлиОбработку(Сообщение, Отправитель); + ИначеЕсли ТипСообщения = Словарь.СообщениеОтключитьДополнительныйОтчетИлиОбработку(Пакет()) Тогда + ОтключитьДополнительныйОтчетИлиОбработку(Сообщение, Отправитель); + ИначеЕсли ТипСообщения = Словарь.СообщениеВключитьДополнительныйОтчетИлиОбработку(Пакет()) Тогда + ВключитьДополнительныйОтчетИлиОбработку(Сообщение, Отправитель); + ИначеЕсли ТипСообщения = Словарь.СообщениеОтозватьДополнительныйОтчетИлиОбработку(Пакет()) Тогда + ОтозватьДополнительныйОтчетИлиОбработку(Сообщение, Отправитель); + ИначеЕсли ТипСообщения = Словарь.СообщениеУстановитьРежимИсполненияДополнительногоОтчетаИлиОбработкиВОбластиДанных(Пакет()) Тогда + УстановитьРежимПодключенияДополнительногоОтчетаИлиОбработкиВОбластиДанных(Сообщение, Отправитель); + Иначе + СообщениеОбработано = Ложь; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура УстановитьДополнительныйОтчетИлиОбработку(Знач Сообщение, Знач Отправитель) + + ТелоСообщения = Сообщение.Body; + + Попытка + + НастройкиКоманд = НастройкиКоманд(ТелоСообщения); + + НастройкиРазделов = Новый ТаблицаЗначений(); + НастройкиРазделов.Колонки.Добавить("Раздел"); + + НастройкиНазначения = Новый ТаблицаЗначений(); + НастройкиНазначения.Колонки.Добавить("ОбъектНазначения"); + + НастройкиРасположенияКоманд = Новый Структура(); + + Если ЗначениеЗаполнено(ТелоСообщения.Assignments) Тогда + + Для Каждого Assignment Из ТелоСообщения.Assignments Цикл + + Если Assignment.Тип() = ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.ТипНазначениеРазделам(ПакетМанифеста()) Тогда + + Для Каждого AssignmentObject Из Assignment.Objects Цикл + + СтрокаРаздела = НастройкиРазделов.Добавить(); + Если AssignmentObject.ObjectName = ДополнительныеОтчетыИОбработкиКлиентСервер.ИмяНачальнойСтраницы() Тогда + СтрокаРаздела.Раздел = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(); + Иначе + Раздел = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(AssignmentObject.ObjectName, Ложь); + СтрокаРаздела.Раздел = ?(ЗначениеЗаполнено(Раздел), Раздел, Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка()); + КонецЕсли; + + КонецЦикла; + + ИначеЕсли Assignment.Тип() = ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.ТипНазначениеСправочникамИДокументам(ПакетМанифеста()) Тогда + + Для Каждого AssignmentObject Из Assignment.Objects Цикл + СтрокаНазначения = НастройкиНазначения.Добавить(); + ОбъектНазначения = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(AssignmentObject.ObjectName, Ложь); + СтрокаРаздела.ОбъектНазначения = ?(ЗначениеЗаполнено(ОбъектНазначения), ОбъектНазначения, Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка()); + КонецЦикла; + + НастройкиРасположенияКоманд.Вставить("ИспользоватьДляФормыСписка", Assignment.UseInListsForms); + НастройкиРасположенияКоманд.Вставить("ИспользоватьДляФормыОбъекта", Assignment.UseInObjectsForms); + + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + НастройкиВариантов = НастройкиВариантов(ТелоСообщения); + + ОписаниеИнсталляции = Новый Структура( + "Идентификатор,Представление,Инсталляция", + ТелоСообщения.Extension, + ТелоСообщения.Representation, + ТелоСообщения.Installation); + + СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация.УстановитьДополнительныйОтчетИлиОбработку( + ОписаниеИнсталляции, НастройкиКоманд, НастройкиРасположенияКоманд, НастройкиРазделов, + НастройкиНазначения, НастройкиВариантов, ТелоСообщения.InitiatorServiceID); + + Исключение + ТекстИсключения = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ПоставляемаяОбработка = Справочники.ПоставляемыеДополнительныеОтчетыИОбработки.ПолучитьСсылку(ТелоСообщения.Extension); + ДополнительныеОтчетыИОбработкиВМоделиСервиса.ОбработатьОшибкуУстановкиДополнительнойОбработкиВОбластьДанных( + ПоставляемаяОбработка, ТелоСообщения.Installation, ТекстИсключения); + КонецПопытки; + +КонецПроцедуры + +Функция НастройкиВариантов(Знач ТелоСообщения) + + НастройкиВариантов = Новый ТаблицаЗначений(); + НастройкиВариантов.Колонки.Добавить("Ключ", Новый ОписаниеТипов("Строка")); + НастройкиВариантов.Колонки.Добавить("Размещение", Новый ОписаниеТипов("Массив")); + НастройкиВариантов.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); + Если ТелоСообщения.ReportVariants = Неопределено Тогда + Возврат НастройкиВариантов; + КонецЕсли; + + Для Каждого ReportVariant Из ТелоСообщения.ReportVariants Цикл + + НастройкаВарианта = НастройкиВариантов.Добавить(); + НастройкаВарианта.Ключ = ReportVariant.VariantKey; + НастройкаВарианта.Представление = ReportVariant.Representation; + + Размещение = Новый Массив; + Для Каждого ReportVariantAssignment Из ReportVariant.Assignments Цикл + + Раздел = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ReportVariantAssignment.ObjectName, Ложь); + Если Не ЗначениеЗаполнено(Раздел) Тогда + Раздел = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(); + КонецЕсли; + + Важный = Ложь; + СмТакже = Ложь; + Если ReportVariantAssignment.Importance = "High" Тогда + Важный = Истина; + ИначеЕсли ReportVariantAssignment.Importance = "Low" Тогда + СмТакже = Истина; + КонецЕсли; + ЭлементРазмещения = Новый Структура("Раздел,Важный,СмТакже", Раздел, Важный, СмТакже); + Размещение.Добавить(ЭлементРазмещения); + + КонецЦикла; + + НастройкаВарианта.Размещение = Размещение; + + КонецЦикла; + + Возврат НастройкиВариантов; + +КонецФункции + +Функция НастройкиКоманд(Знач ТелоСообщения) + + НастройкиКоманд = Новый ТаблицаЗначений(); + НастройкиКоманд.Колонки.Добавить("Идентификатор"); + НастройкиКоманд.Колонки.Добавить("БыстрыйДоступ"); + НастройкиКоманд.Колонки.Добавить("Расписание"); + + Если Не ЗначениеЗаполнено(ТелоСообщения.CommandSettings) Тогда + Возврат НастройкиКоманд; + КонецЕсли; + + Для Каждого CommandSettings Из ТелоСообщения.CommandSettings Цикл + + НастройкиКоманды = НастройкиКоманд.Добавить(); + НастройкиКоманды.Идентификатор = CommandSettings.Id; + + Если CommandSettings.Settings <> Неопределено Тогда + + МассивИдентификаторов = Новый Массив; + Для Каждого UserGUID Из CommandSettings.Settings.UsersFastAccess Цикл + МассивИдентификаторов.Добавить(UserGUID); + КонецЦикла; + + НастройкиКоманды.БыстрыйДоступ = МассивИдентификаторов; + + Если CommandSettings.Settings.Schedule <> Неопределено Тогда + НастройкиКоманды.Расписание = СериализаторXDTO.ПрочитатьXDTO(CommandSettings.Settings.Schedule); + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + Возврат НастройкиКоманд; + +КонецФункции + +Процедура УдалитьДополнительныйОтчетИлиОбработку(Знач Сообщение, Знач Отправитель) + + ТелоСообщения = Сообщение.Body; + СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация.УдалитьДополнительныйОтчетИлиОбработку( + ТелоСообщения.Extension, ТелоСообщения.Installation); + +КонецПроцедуры + +Процедура ОтключитьДополнительныйОтчетИлиОбработку(Знач Сообщение, Знач Отправитель) + + Если Сообщение.Body.Reason = "LockByOwner" Тогда + ПричинаОтключения = Перечисления.ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса.БлокировкаВладельцем; + ИначеЕсли Сообщение.Body.Reason = "LockByProvider" Тогда + ПричинаОтключения = Перечисления.ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса.БлокировкаАдминистраторомСервиса; + КонецЕсли; + + СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация.ОтключитьДополнительныйОтчетИлиОбработку( + Сообщение.Body.Extension, ПричинаОтключения); + +КонецПроцедуры + +Процедура ВключитьДополнительныйОтчетИлиОбработку(Знач Сообщение, Знач Отправитель) + + СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация.ВключитьДополнительныйОтчетИлиОбработку( + Сообщение.Body.Extension); + +КонецПроцедуры + +Процедура ОтозватьДополнительныйОтчетИлиОбработку(Знач Сообщение, Знач Отправитель) + + СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация.ОтозватьДополнительныйОтчетИлиОбработку( + Сообщение.Body.Extension); + +КонецПроцедуры + +Процедура УстановитьРежимПодключенияДополнительногоОтчетаИлиОбработкиВОбластиДанных(Знач Сообщение, Знач Отправитель) + + СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация.УстановитьРежимПодключенияДополнительногоОтчетаИлиОбработкиВОбластиДанных( + Сообщение.Body.Extension, Сообщение.Body.Installation, Сообщение.Body.SecurityProfile); + +КонецПроцедуры + +Функция ПакетМанифеста() + + Возврат ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс.Пакет("1.0.0.1"); + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2.mdo b/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2.mdo new file mode 100644 index 000000000..4e00f1c23 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2/СообщенияУправленияДОИООбработчикСообщения_1_0_1_2.mdo @@ -0,0 +1,11 @@ + + + СообщенияУправленияДОИООбработчикСообщения_1_0_1_2 + + ru + Сообщения управления дополнительными отчетами и обработками обработчик сообщения 1. 0 .1 .1 + + true + true + true + diff --git a/SSL/src/CommonModules/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиИнтерфейс/Module.bsl b/SSL/src/CommonModules/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиИнтерфейс/Module.bsl new file mode 100644 index 000000000..337bdbf14 --- /dev/null +++ b/SSL/src/CommonModules/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиИнтерфейс/Module.bsl @@ -0,0 +1,186 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ПрограммныйИнтерфейс + +// Возвращает пространство имен текущей (используемой вызывающим кодом) версии интерфейса сообщений. +// +// Возвращаемое значение: +// Строка +// +Функция Пакет() Экспорт + + Возврат "http://www.1c.ru/1cFresh/ApplicationExtensions/Management/" + Версия(); + +КонецФункции + +// Возвращает текущую (используемую вызывающим кодом) версию интерфейса сообщений. +// +// Возвращаемое значение: +// Строка +// +Функция Версия() Экспорт + + Возврат "1.0.1.2"; + +КонецФункции + +// Возвращает название программного интерфейса сообщений. +// +// Возвращаемое значение: +// Строка +// +Функция ПрограммныйИнтерфейс() Экспорт + + Возврат "ApplicationExtensionsManagement"; + +КонецФункции + +// Выполняет регистрацию обработчиков сообщений в качестве обработчиков каналов обмена сообщениями. +// +// Параметры: +// МассивОбработчиков - Массив - общие модули или модули менеджеров. +// +Процедура ОбработчикиКаналовСообщений(Знач МассивОбработчиков) Экспорт + + МассивОбработчиков.Добавить(СообщенияУправленияДОИООбработчикСообщения_1_0_1_1); + МассивОбработчиков.Добавить(СообщенияУправленияДОИООбработчикСообщения_1_0_1_2); + +КонецПроцедуры + +// Выполняет регистрацию обработчиков трансляции сообщений. +// +// Параметры: +// МассивОбработчиков - Массив - общие модули или модули менеджеров. +// +Процедура ОбработчикиТрансляцииСообщений(Знач МассивОбработчиков) Экспорт + + + +КонецПроцедуры + +// Возвращает тип сообщения {http://www.1c.ru/1cFresh/ApplicationExtensions/Management/a.b.c.d}InstallExtension +// +// Параметры: +// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO +// +Функция СообщениеУстановитьДополнительныйОтчетИлиОбработку(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "InstallExtension"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/1cFresh/ApplicationExtensions/Management/a.b.c.d}ExtensionCommandSettings +// +// Параметры: +// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO +// +Функция ТипНастройкиКомандыДополнительногоОтчетаИлиОбработки(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "ExtensionCommandSettings"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/1cFresh/ApplicationExtensions/Management/a.b.c.d}DeleteExtension +// +// Параметры: +// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO +// +Функция СообщениеУдалитьДополнительныйОтчетИлиОбработку(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "DeleteExtension"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/1cFresh/ApplicationExtensions/Management/a.b.c.d}DisableExtension +// +// Параметры: +// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO +// +Функция СообщениеОтключитьДополнительныйОтчетИлиОбработку(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "DisableExtension"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/1cFresh/ApplicationExtensions/Management/a.b.c.d}EnableExtension +// +// Параметры: +// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO +// +Функция СообщениеВключитьДополнительныйОтчетИлиОбработку(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "EnableExtension"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/1cFresh/ApplicationExtensions/Management/a.b.c.d}DropExtension +// +// Параметры: +// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO +// +Функция СообщениеОтозватьДополнительныйОтчетИлиОбработку(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "DropExtension"); + +КонецФункции + +// Возвращает тип сообщения {http://www.1c.ru/1cFresh/ApplicationExtensions/Management/a.b.c.d}SetExtensionSecurityProfile +// +// Параметры: +// ИспользуемыйПакет - Строка - пространство имен версии интерфейса сообщений, для которой +// получается тип сообщения. +// +// Возвращаемое значение: +// ТипОбъектаXDTO +// +Функция СообщениеУстановитьРежимИсполненияДополнительногоОтчетаИлиОбработкиВОбластиДанных(Знач ИспользуемыйПакет = Неопределено) Экспорт + + Возврат СоздатьТипСообщения(ИспользуемыйПакет, "SetExtensionSecurityProfile"); + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция СоздатьТипСообщения(Знач ИспользуемыйПакет, Знач Тип) + + Если ИспользуемыйПакет = Неопределено Тогда + ИспользуемыйПакет = Пакет(); + КонецЕсли; + + Возврат ФабрикаXDTO.Тип(ИспользуемыйПакет, Тип); + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/CommonModules/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиИнтерфейс/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиИнтерфейс.mdo b/SSL/src/CommonModules/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиИнтерфейс/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиИнтерфейс.mdo new file mode 100644 index 000000000..374873365 --- /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..a75225a6a --- /dev/null +++ b/SSL/src/CommonModules/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация/Module.bsl @@ -0,0 +1,264 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныеПроцедурыИФункции + +// Обработка входящих сообщений с типом {http://www.1c.ru/1cFresh/ApplicationExtensions/Management/a.b.c.d}InstallExtension +// +// Параметры: +// ОписаниеИнсталляции - Структура - с ключами: +// * Идентификатор - УникальныйИдентификатор - уникальный идентификатор ссылки +// элемента справочника ПоставляемыеДополнительныеОтчетыИОбработки, +// * Представление - Строка - представление инсталляции поставляемой дополнительной +// обработки (будет использоваться в качестве наименования элемента справочника +// ДополнительныеОтчетыИОбработки), +// * Инсталляция - УникальныйИдентификатор - уникальный идентификатор инсталляции +// поставляемой дополнительной обработки (будет использоваться в качестве +// уникального идентификатора ссылки справочника ДополнительныеОтчетыИОбработки), +// НастройкиКоманд - ТаблицаЗначений - настройки команд для инсталляции +// поставляемой дополнительной обработки: +// * Идентификатор - Строка - идентификатор команды, +// * БыстрыйДоступ - Массив - уникальные идентификаторы (УникальныйИдентификатор), +// определяющих пользователей сервиса, которым команда должна быть включена в +// быстрый доступ, +// * Расписание - РасписаниеРегламентногоЗадания - расписание для задания команды +// дополнительной обработки (если для команды включено выполнение в качестве +// регламентного задания), +// Разделы - ТаблицаЗначений - настройки включения команд для инсталляции +// поставляемой дополнительной обработки в разделы командного интерфейса: +// * Раздел - СправочникСсылка.ИдентификаторыОбъектовМетаданных +// СправочникиИДокументы - ТаблицаЗначений - настройки включения команд для инсталляции +// поставляемой дополнительной обработки в интерфейс форм список и элементов, колонки: +// * ОбъектНазначения - СправочникСсылка.ИдентификаторыОбъектовМетаданных +// ВариантыДополнительногоОтчета - Массив - ключи вариантов отчетов дополнительного отчета (Строка). +// ИдентификаторПользователяСервиса - УникальныйИдентификатор - определяет пользователя +// сервиса, который инициировал инсталляцию поставляемой дополнительной обработки. +// +Процедура УстановитьДополнительныйОтчетИлиОбработку(Знач ОписаниеИнсталляции, + Знач НастройкиКоманд, Знач НастройкиРасположенияКоманд, Знач Разделы, Знач СправочникиИДокументы, Знач ВариантыДополнительногоОтчета, + Знач ИдентификаторПользователяСервиса) Экспорт + + // Настройки заполняются по данным из сообщения + БыстрыйДоступ = Новый ТаблицаЗначений(); + БыстрыйДоступ.Колонки.Добавить("ИдентификаторКоманды", Новый ОписаниеТипов("Строка")); + БыстрыйДоступ.Колонки.Добавить("Пользователь", Новый ОписаниеТипов("СправочникСсылка.Пользователи")); + + Задания = Новый ТаблицаЗначений(); + Задания.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); + Задания.Колонки.Добавить("РегламентноеЗаданиеРасписание", Новый ОписаниеТипов("СписокЗначений")); + Задания.Колонки.Добавить("РегламентноеЗаданиеИспользование", Новый ОписаниеТипов("Булево")); + + Для Каждого НастройкаКоманды Из НастройкиКоманд Цикл + + Если ЗначениеЗаполнено(НастройкаКоманды.БыстрыйДоступ) Тогда + + Для Каждого ИдентификаторПользователя Из НастройкаКоманды.БыстрыйДоступ Цикл + + ТекстЗапроса = "ВЫБРАТЬ + | Пользователи.Ссылка + |ИЗ + | Справочник.Пользователи КАК Пользователи + |ГДЕ + | Пользователи.ИдентификаторПользователяСервиса = &ИдентификаторПользователяСервиса"; + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("ИдентификаторПользователяСервиса", ИдентификаторПользователя); + Результат = Запрос.Выполнить(); + Если Результат.Пустой() Тогда + + Продолжить; + + Иначе + + Выборка = Результат.Выбрать(); + Выборка.Следующий(); + ЭлементБыстрогоДоступа = БыстрыйДоступ.Добавить(); + ЭлементБыстрогоДоступа.ИдентификаторКоманды = НастройкаКоманды.Идентификатор; + ЭлементБыстрогоДоступа.Пользователь = Выборка.Ссылка; + + КонецЕсли; + + КонецЦикла; + + КонецЕсли; + + Если НастройкаКоманды.Расписание <> Неопределено Тогда + + Задание = Задания.Добавить(); + Задание.Идентификатор = НастройкаКоманды.Идентификатор; + РегламентноеЗаданиеРасписание = Новый СписокЗначений(); + РегламентноеЗаданиеРасписание.Добавить(НастройкаКоманды.Расписание); + Задание.РегламентноеЗаданиеРасписание= РегламентноеЗаданиеРасписание; + Задание.РегламентноеЗаданиеИспользование = Истина; + + КонецЕсли; + + КонецЦикла; + + ДополнительныеОтчетыИОбработкиВМоделиСервиса.УстановитьПоставляемуюОбработкуВОбластьДанных( + ОписаниеИнсталляции, + БыстрыйДоступ, + Задания, + Разделы, + СправочникиИДокументы, + НастройкиРасположенияКоманд, + ВариантыДополнительногоОтчета, + ПолучитьПользователяОбластиПоИдентификаторуПользователяСервиса( + ИдентификаторПользователяСервиса)); + +КонецПроцедуры + +// Обработка входящих сообщений с типом {http://www.1c.ru/1cFresh/ApplicationExtensions/Management/a.b.c.d}DeleteExtension +// +// Параметры: +// ИдентификаторПоставляемойОбработки - УникальныйИдентификатор - ссылка на элемент +// справочника ПоставляемыеДополнительныеОтчетыИОбработки; +// ИдентификаторИспользуемойОбработки - УникальныйИдентификатор - ссылка на элемент +// справочника ДополнительныеОтчетыИОбработки. +// +Процедура УдалитьДополнительныйОтчетИлиОбработку(Знач ИдентификаторПоставляемойОбработки, Знач ИдентификаторИспользуемойОбработки) Экспорт + + ПоставляемаяОбработка = Справочники.ПоставляемыеДополнительныеОтчетыИОбработки.ПолучитьСсылку( + ИдентификаторПоставляемойОбработки); + + ДополнительныеОтчетыИОбработкиВМоделиСервиса.УдалитьПоставляемуюОбработкуИзОбластиДанных( + ПоставляемаяОбработка, + ИдентификаторИспользуемойОбработки); + +КонецПроцедуры + +// Обработка входящих сообщений с типом {http://www.1c.ru/1cFresh/ApplicationExtensions/Management/a.b.c.d}DisableExtension +// +// Параметры: +// ИдентификаторРасширения - УникальныйИдентификатор - ссылка на элемент +// справочника ПоставляемыеДополнительныеОтчетыИОбработки, +// ПричинаОтключения - ПеречислениеСсылка.ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса. +// +Процедура ОтключитьДополнительныйОтчетИлиОбработку(Знач ИдентификаторРасширения, Знач ПричинаОтключения = Неопределено) Экспорт + + Если ПричинаОтключения = Неопределено Тогда + ПричинаОтключения = Перечисления.ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса.БлокировкаАдминистраторомСервиса; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + ПоставляемаяОбработка = Справочники.ПоставляемыеДополнительныеОтчетыИОбработки.ПолучитьСсылку( + ИдентификаторРасширения); + + Если ОбщегоНазначения.СсылкаСуществует(ПоставляемаяОбработка) Тогда + + Объект = ПоставляемаяОбработка.ПолучитьОбъект(); + + Объект.Публикация = Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Отключена; + Объект.ПричинаОтключения = ПричинаОтключения; + + Объект.Записать(); + + КонецЕсли; + +КонецПроцедуры + +// Обработка входящих сообщений с типом {http://www.1c.ru/1cFresh/ApplicationExtensions/Management/a.b.c.d}EnableExtension +// +// Параметры: +// ИдентификаторРасширения - УникальныйИдентификатор - ссылка на элемент +// справочника ПоставляемыеДополнительныеОтчетыИОбработки. +// +Процедура ВключитьДополнительныйОтчетИлиОбработку(Знач ИдентификаторРасширения) Экспорт + + УстановитьПривилегированныйРежим(Истина); + ПоставляемаяОбработка = Справочники.ПоставляемыеДополнительныеОтчетыИОбработки.ПолучитьСсылку( + ИдентификаторРасширения); + + Если ОбщегоНазначения.СсылкаСуществует(ПоставляемаяОбработка) Тогда + + Объект = ПоставляемаяОбработка.ПолучитьОбъект(); + + Объект.Публикация = + Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Используется; + + Объект.Записать(); + КонецЕсли; + +КонецПроцедуры + +// Обработка входящих сообщений с типом {http://www.1c.ru/1cFresh/ApplicationExtensions/Management/a.b.c.d}DropExtension +// +// Параметры: +// ИдентификаторРасширения - УникальныйИдентификатор - ссылка на элемент +// справочника ПоставляемыеДополнительныеОтчетыИОбработки. +// +Процедура ОтозватьДополнительныйОтчетИлиОбработку(Знач ИдентификаторПоставляемойОбработки) Экспорт + + УстановитьПривилегированныйРежим(Истина); + ПоставляемаяОбработка = Справочники.ПоставляемыеДополнительныеОтчетыИОбработки.ПолучитьСсылку( + ИдентификаторПоставляемойОбработки); + + Если ОбщегоНазначения.СсылкаСуществует(ПоставляемаяОбработка) Тогда + ДополнительныеОтчетыИОбработкиВМоделиСервиса.ОтозватьПоставляемуюДополнительнуюОбработку( + ПоставляемаяОбработка); + КонецЕсли; + +КонецПроцедуры + +// Обработка входящих сообщений с типом {http://www.1c.ru/1cFresh/ApplicationExtensions/Management/a.b.c.d}SetExtensionSecurityProfile +// +// Параметры: +// ИдентификаторПоставляемойОбработки - УникальныйИдентификатор - ссылка на элемент +// справочника ПоставляемыеДополнительныеОтчетыИОбработки; +// ИдентификаторИспользуемойОбработки - УникальныйИдентификатор - ссылка на элемент +// справочника ДополнительныеОтчетыИОбработки. +// +Процедура УстановитьРежимПодключенияДополнительногоОтчетаИлиОбработкиВОбластиДанных(Знач ИдентификаторПоставляемойОбработки, Знач ИдентификаторИспользуемойОбработки, Знач РежимПодключения) Экспорт + + ПоставляемаяОбработка = Справочники.ПоставляемыеДополнительныеОтчетыИОбработки.ПолучитьСсылку( + ИдентификаторПоставляемойОбработки); + + ИспользуемаяОбработка = Справочники.ДополнительныеОтчетыИОбработки.ПолучитьСсылку( + ИдентификаторИспользуемойОбработки); + + Если ОбщегоНазначения.СсылкаСуществует(ИспользуемаяОбработка) Тогда + ИнтеграцияПодсистемБСП.ПриУстановкеРежимаПодключенияДополнительногоОтчетаИлиОбработкиВОбластиДанных(ПоставляемаяОбработка, РежимПодключения); + КонецЕсли; + +КонецПроцедуры + +Функция ПолучитьПользователяОбластиПоИдентификаторуПользователяСервиса(Знач ИдентификаторПользователяСервиса) + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | Пользователи.Ссылка КАК Ссылка + |ИЗ + | Справочник.Пользователи КАК Пользователи + |ГДЕ + | Пользователи.ИдентификаторПользователяСервиса = &ИдентификаторПользователяСервиса"; + Запрос.УстановитьПараметр("ИдентификаторПользователяСервиса", ИдентификаторПользователяСервиса); + + Блокировка = Новый БлокировкаДанных; + Блокировка.Добавить("Справочник.Пользователи"); + + НачатьТранзакцию(); + Попытка + Блокировка.Заблокировать(); + Результат = Запрос.Выполнить(); + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + + Если Результат.Пустой() Тогда + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не найден пользователь с идентификатором пользователя сервиса %1'"), ИдентификаторПользователяСервиса); + ВызватьИсключение(ТекстСообщения); + КонецЕсли; + + Возврат Результат.Выгрузить()[0].Ссылка; + +КонецФункции + +#КонецОбласти diff --git a/SSL/src/CommonModules/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация.mdo b/SSL/src/CommonModules/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация/СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация.mdo new file mode 100644 index 000000000..5eecad9d0 --- /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 bd5833755..94e999caa 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыВызовСервера/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыВызовСервера/Module.bsl @@ -114,12 +114,6 @@ ИнтеграцияПодсистемБСП.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры); - ПрикладныеПараметры = Новый Структура; - ОбщегоНазначенияПереопределяемый.ПараметрыРаботыКлиентаПриЗапуске(ПрикладныеПараметры); - Для Каждого Параметр Из ПрикладныеПараметры Цикл - Параметры.Вставить(Параметр.Ключ, Параметр.Значение); - КонецЦикла; - ПрикладныеПараметры = Новый Структура; ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(ПрикладныеПараметры); Для Каждого Параметр Из ПрикладныеПараметры Цикл @@ -140,12 +134,6 @@ ИнтеграцияПодсистемБСП.ПриДобавленииПараметровРаботыКлиента(Параметры); - ПрикладныеПараметры = Новый Структура; - ОбщегоНазначенияПереопределяемый.ПараметрыРаботыКлиента(ПрикладныеПараметры); - Для Каждого Параметр Из ПрикладныеПараметры Цикл - Параметры.Вставить(Параметр.Ключ, Параметр.Значение); - КонецЦикла; - ПрикладныеПараметры = Новый Структура; ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиента(ПрикладныеПараметры); Для Каждого Параметр Из ПрикладныеПараметры Цикл @@ -159,7 +147,7 @@ // См. РаботаВМоделиСервиса.УстановитьРазделениеСеанса. Процедура УстановитьРазделениеСеанса(Знач Использование, Знач ОбластьДанных = Неопределено) Экспорт - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Использование, ОбластьДанных); КонецЕсли; @@ -315,7 +303,7 @@ ПараметрыКлиента.Вставить("ЭтоВебКлиент", Параметры.ЭтоВебКлиент); ПараметрыКлиента.Вставить("ЭтоМобильныйКлиент", Параметры.ЭтоМобильныйКлиент); ПараметрыКлиента.Вставить("ЭтоLinuxКлиент", Параметры.ЭтоLinuxКлиент); - ПараметрыКлиента.Вставить("ЭтоOSXКлиент", Параметры.ЭтоOSXКлиент); + ПараметрыКлиента.Вставить("ЭтоMacOSКлиент", Параметры.ЭтоMacOSКлиент); ПараметрыКлиента.Вставить("ЭтоWindowsКлиент", Параметры.ЭтоWindowsКлиент); ПараметрыКлиента.Вставить("ИспользуемыйКлиент", Параметры.ИспользуемыйКлиент); ПараметрыКлиента.Вставить("ОперативнаяПамять", Параметры.ОперативнаяПамять); diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl index 2c9c10104..21916a61e 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыКлиент/Module.bsl @@ -165,7 +165,7 @@ // // Параметры: // ПараметрыФормы - Структура - см. описание параметра Параметры метода ОткрытьФорму в синтакс-помощнике. -// ВладелецФормы - УправляемаяФорма - см. описание параметра Владелец метода ОткрытьФорму в синтакс-помощнике. +// ВладелецФормы - ФормаКлиентскогоПриложения - см. описание параметра Владелец метода ОткрытьФорму в синтакс-помощнике. // Процедура ОткрытьСписокАктивныхПользователей(ПараметрыФормы = Неопределено, ВладелецФормы = Неопределено) Экспорт @@ -729,7 +729,7 @@ // Разворачивает узлы указанного дерева на форме. // // Параметры: -// Форма - УправляемаяФорма - форма, на которой размещен элемент управления с деревом значений. +// Форма - ФормаКлиентскогоПриложения - форма, на которой размещен элемент управления с деревом значений. // ИмяЭлементаФормы - Строка - имя элемента с таблицей формы (деревом значений) и связанного с ней // реквизита формы (должны совпадать). // ИдентификаторСтрокиДерева - Произвольный - идентификатор строки дерева, которую требуется развернуть. diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыКлиентПовтИсп/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыКлиентПовтИсп/Module.bsl index b78233620..cf434ad81 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыКлиентПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыКлиентПовтИсп/Module.bsl @@ -21,7 +21,7 @@ Если ПараметрыПриЗапускеПрограммы.Свойство("ПолученныеПараметрыКлиента") И ТипЗнч(ПараметрыПриЗапускеПрограммы.ПолученныеПараметрыКлиента) = Тип("Структура") Тогда - Параметры.Вставить("ПолученныеПараметрыКлиента", ОбщегоНазначенияКлиентСервер.СкопироватьСтруктуру( + Параметры.Вставить("ПолученныеПараметрыКлиента", ОбщегоНазначенияКлиент.СкопироватьРекурсивно( ПараметрыПриЗапускеПрограммы.ПолученныеПараметрыКлиента)); КонецЕсли; @@ -33,7 +33,7 @@ Параметры.Вставить("СтрокаСоединенияИнформационнойБазы", СтрокаСоединенияИнформационнойБазы()); Параметры.Вставить("ЭтоВебКлиент", ЭтоВебКлиент()); Параметры.Вставить("ЭтоLinuxКлиент", ОбщегоНазначенияКлиент.ЭтоLinuxКлиент()); - Параметры.Вставить("ЭтоOSXКлиент", ОбщегоНазначенияКлиент.ЭтоOSXКлиент()); + Параметры.Вставить("ЭтоMacOSКлиент", ОбщегоНазначенияКлиент.ЭтоMacOSКлиент()); Параметры.Вставить("ЭтоWindowsКлиент", ОбщегоНазначенияКлиент.ЭтоWindowsКлиент()); Параметры.Вставить("ЭтоМобильныйКлиент", ЭтоМобильныйКлиент()); Параметры.Вставить("ИспользуемыйКлиент", ИспользуемыйКлиент()); diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыПовтИсп/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыПовтИсп/Module.bsl index 054abcccc..8b9be7024 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыПовтИсп/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыПовтИсп/Module.bsl @@ -16,6 +16,7 @@ МодулиПодсистем = Новый Массив; МодулиПодсистем.Добавить("ОбновлениеИнформационнойБазыБСП"); + ИнтеграцияПодсистемБСП.ПриДобавленииПодсистем(МодулиПодсистем); ПодсистемыКонфигурацииПереопределяемый.ПриДобавленииПодсистем(МодулиПодсистем); ОписаниеКонфигурацииНайдено = Ложь; @@ -294,7 +295,7 @@ Продолжить; КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ЭтоРазделенныеДанные = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных( ПланОбмена.ПолноеИмя(), МодульРаботаВМоделиСервиса.РазделительОсновныхДанных()); diff --git a/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl b/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl index cbae6e68d..5d9fe48e4 100644 --- a/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl +++ b/SSL/src/CommonModules/СтандартныеПодсистемыСервер/Module.bsl @@ -64,6 +64,9 @@ КонецЦикла; ВыполнитьОбработчикиУстановкиПараметровСеанса(ИменаПараметровСеанса, Обработчики, УстановленныеПараметры); + + ИнтеграцияПодсистемБСП.ПриУстановкеПараметровСеанса(ИменаПараметровСеанса); + Возврат УстановленныеПараметры; КонецФункции @@ -210,7 +213,7 @@ // Эта функция предназначена для визуального выделения (жирным шрифтом) заголовков групп в режиме интерфейса 8.2. // // Параметры: -// Форма - УправляемаяФорма - форма для изменения шрифта заголовков групп; +// Форма - ФормаКлиентскогоПриложения - форма для изменения шрифта заголовков групп; // ИменаГрупп - Строка - список имен групп формы, разделенных запятыми. Если имена групп не указаны, // то оформление будет применено ко всем группам на форме. // @@ -249,7 +252,7 @@ // Подробнее см. стандарт "Поле "Дата" в списках". // // Параметры: -// ЭтотОбъект - УправляемаяФорма - форма со списком. +// ЭтотОбъект - ФормаКлиентскогоПриложения - форма со списком. // ПолноеИмяРеквизита - Строка - полный путь к реквизиту типа "Дата" в формате "<ИмяСписка>.<ИмяПоля>". // ИмяЭлемента - Строка - имя элемента формы, связанного с реквизитом списка типа "Дата". // @@ -261,8 +264,11 @@ Процедура УстановитьУсловноеОформлениеПоляДата(ЭтотОбъект, ПолноеИмяРеквизита = "Список.Дата", ИмяЭлемента = "Дата") Экспорт - ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("СтандартныеПодсистемыСервер.УстановитьУсловноеОформлениеПоляДата", - "ЭтотОбъект", ЭтотОбъект, Тип("УправляемаяФорма")); + ОбщегоНазначенияКлиентСервер.ПроверитьПараметр( + "СтандартныеПодсистемыСервер.УстановитьУсловноеОформлениеПоляДата", + "ЭтотОбъект", + ЭтотОбъект, + Тип("ФормаКлиентскогоПриложения")); ЧастиПолногоИмени = СтрРазделить(ПолноеИмяРеквизита, "."); @@ -350,12 +356,12 @@ // Возвращает описания форматов сохранения табличного документа. // // Возвращаемое значение: -// ТаблицаЗначений: -// ТипФайлаТабличногоДокумента - ТипФайлаТабличногоДокумента - значение в платформе, соответствующее формату; -// Ссылка - ПеречислениеСсылка.ФорматыСохраненияОтчетов - ссылка на метаданные, где хранится представление; -// Представление - Строка - представление типа файла (заполняется из перечисления); -// Расширение - Строка - тип файла для операционной системы; -// Картинка - Картинка - значок формата. +// ТаблицаЗначений - с колонками: +// * ТипФайлаТабличногоДокумента - ТипФайлаТабличногоДокумента - значение, соответствующее формату; +// * Ссылка - ПеречислениеСсылка.ФорматыСохраненияОтчетов - ссылка на метаданные, где хранится представление; +// * Представление - Строка - представление типа файла (заполняется из перечисления); +// * Расширение - Строка - тип файла для операционной системы; +// * Картинка - Картинка - картинка формата. // Функция НастройкиФорматовСохраненияТабличногоДокумента() Экспорт @@ -438,165 +444,6 @@ КонецФункции -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать СтандартныеПодсистемыПовтИсп.РежимРегистрацииДанныхДляПланаОбмена. -// -// Параметры: -// Объект - ОбъектМетаданных - проверяемый объект. -// -// Возвращаемое значение: -// Булево - Истина, если объект используется в РИБ только в момент создания начального образа подчиненного узла. -// -Функция ЭтоОбъектНачальногоОбразаУзлаРИБ(Знач Объект) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда - МодульОбменДаннымиПовтИсп = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиПовтИсп"); - Если МодульОбменДаннымиПовтИсп.АвтономнаяРаботаПоддерживается() Тогда - РежимРегистрации = СтандартныеПодсистемыПовтИсп.РежимРегистрацииДанныхДляПланаОбмена( - Объект.ПолноеИмя(), МодульОбменДаннымиПовтИсп.ПланОбменаАвтономнойРаботы()); - Если РежимРегистрации = "АвторегистрацияОтключена" Тогда - Возврат Истина; - КонецЕсли; - КонецЕсли; - КонецЕсли; - - Возврат Ложь; - -КонецФункции - -// Выполняет проверку состава плана обмена на наличие обязательных объектов метаданных -// и объектов-исключений из состава плана обмена. -// -// Параметры: -// ИмяПланаОбмена - Строка, ПланОбменаСсылка - имя плана обмена или ссылка на узел плана обмена, -// для которого необходимо выполнить проверку. -// -Процедура ПроверитьСоставПланаОбмена(Знач ИмяПланаОбмена) Экспорт - - Если ТипЗнч(ИмяПланаОбмена) <> Тип("Строка") Тогда - ИмяПланаОбмена = ИмяПланаОбмена.Метаданные().Имя; - КонецЕсли; - - РаспределеннаяИнформационнаяБаза = Метаданные.ПланыОбмена[ИмяПланаОбмена].РаспределеннаяИнформационнаяБаза; - СоставПланаОбмена = Метаданные.ПланыОбмена[ИмяПланаОбмена].Состав; - - ВключитьВСостав = Новый Массив; - ИсключитьИзСостава = Новый Массив; - ОтключитьАвторегистрацию = Новый Массив; - - // Получаем список обязательных объектов и объектов-исключений. - ОбязательныеОбъекты = Новый Массив; - ОбъектыИсключения = Новый Массив; - ОбъектыНачальногоОбраза = Новый Массив; - - // Получаем объекты-исключения. - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда - МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса"); - МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ПриПолученииОбъектовИсключенийПланаОбмена(ОбъектыИсключения, - РаспределеннаяИнформационнаяБаза); - КонецЕсли; - - Если РаспределеннаяИнформационнаяБаза Тогда - - // Получаем объекты начального образа. - ОбновлениеИнформационнойБазыСлужебный.ПриПолученииОбъектовНачальногоОбразаПланаОбмена(ОбъектыНачальногоОбраза); - - Для Каждого Объект Из ОбъектыНачальногоОбраза Цикл - - ОбязательныеОбъекты.Добавить(Объект); - - КонецЦикла; - - КонецЕсли; - - // Проверяем список обязательных объектов для состава плана обмена. - Для Каждого Объект Из ОбязательныеОбъекты Цикл - - Если СоставПланаОбмена.Найти(Объект) = Неопределено Тогда - - ВключитьВСостав.Добавить(Объект); - - КонецЕсли; - - КонецЦикла; - - // Проверяем список объектов-исключений из состава плана обмена. - Для Каждого Объект Из ОбъектыИсключения Цикл - - Если СоставПланаОбмена.Найти(Объект) <> Неопределено Тогда - - ИсключитьИзСостава.Добавить(Объект); - - КонецЕсли; - - КонецЦикла; - - // Проверяем признак авторегистрации. - // Авторегистрация должна быть отключена у всех объектов начального образа. - Для Каждого ЭлементСостава Из СоставПланаОбмена Цикл - - Если ОбъектыНачальногоОбраза.Найти(ЭлементСостава.Метаданные) <> Неопределено - И ЭлементСостава.АвтоРегистрация <> АвтоРегистрацияИзменений.Запретить Тогда - - ОтключитьАвторегистрацию.Добавить(ЭлементСостава.Метаданные); - - КонецЕсли; - - КонецЦикла; - - // Формируем и выводим текст исключения при необходимости. - Если ВключитьВСостав.Количество() <> 0 - ИЛИ ИсключитьИзСостава.Количество() <> 0 - ИЛИ ОтключитьАвторегистрацию.Количество() <> 0 Тогда - - Если ВключитьВСостав.Количество() <> 0 Тогда - - ОписаниеИсключения1 = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'В состав плана обмена %1 должны входить следующие объекты метаданных: %2'"), - ИмяПланаОбмена, - СтрСоединить(ПредставлениеОбъектовМетаданных(ВключитьВСостав), ", ")); - - КонецЕсли; - - Если ИсключитьИзСостава.Количество() <> 0 Тогда - - ОписаниеИсключения2 = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'В состав плана обмена %1 НЕ должны входить следующие объекты метаданных: %2'"), - ИмяПланаОбмена, - СтрСоединить(ПредставлениеОбъектовМетаданных(ИсключитьИзСостава), ", ")); - - КонецЕсли; - - Если ОтключитьАвторегистрацию.Количество() <> 0 Тогда - - ОписаниеИсключения3 = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'В составе плана обмена %1 не должно быть объектов с установленным признаком авторегистрации. - |Требуется запретить авторегистрацию для следующих объектов метаданных: %2'"), - ИмяПланаОбмена, - СтрСоединить(ПредставлениеОбъектовМетаданных(ОтключитьАвторегистрацию), ", ")); - - КонецЕсли; - - ОписаниеИсключения = "[ОписаниеИсключения1] - | - |[ОписаниеИсключения2] - | - |[ОписаниеИсключения3] - |"; - - ОписаниеИсключения = СтрЗаменить(ОписаниеИсключения, "[ОписаниеИсключения1]", ОписаниеИсключения1); - ОписаниеИсключения = СтрЗаменить(ОписаниеИсключения, "[ОписаниеИсключения2]", ОписаниеИсключения2); - ОписаниеИсключения = СтрЗаменить(ОписаниеИсключения, "[ОписаниеИсключения3]", ОписаниеИсключения3); - - ВызватьИсключение СокрЛП(ОписаниеИсключения); - - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - #КонецОбласти #Область СлужебныйПрограммныйИнтерфейс @@ -920,8 +767,12 @@ ВызватьИсключение НСтр("ru = 'Регистрация изменений неразделенных данных в разделенном режиме.'"); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + МодульРаботаВМоделиСервиса = Неопределено; + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + КонецЕсли; + + Если МодульРаботаВМоделиСервиса <> Неопределено Тогда ЭтоРазделенныйПланОбмена = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных( "ПланОбмена." + ИмяПланаОбмена, МодульРаботаВМоделиСервиса.РазделительОсновныхДанных()); Иначе @@ -932,8 +783,7 @@ ВызватьИсключение НСтр("ru = 'Регистрация изменений для неразделенных планов обмена не поддерживается.'"); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + Если МодульРаботаВМоделиСервиса <> Неопределено Тогда ЭтоРазделенныйОбъектМетаданных = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных( Объект.Метаданные().ПолноеИмя(), МодульРаботаВМоделиСервиса.РазделительОсновныхДанных()); Иначе @@ -1067,7 +917,7 @@ КонецЕсли; // Вставка кода от подсистемы обмена данными в модели сервиса должна быть последней, влияющей на логику отправки. - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); МодульОбменДаннымиВМоделиСервиса.ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза, Получатель); @@ -1259,7 +1109,7 @@ // если для соответствующего нового ключа они еще не были записаны. // // Параметры: -// Форма - УправляемаяФорма - форма ПриСозданииНаСервере, которой устанавливается ключ. +// Форма - ФормаКлиентскогоПриложения - форма ПриСозданииНаСервере, которой устанавливается ключ. // Ключ - Строка - новый ключ назначения формы. // УстановитьНастройки - Булево - установить новому ключу настройки, сохраненные для текущего ключа. // @@ -1632,26 +1482,6 @@ Обработчик.ОбщиеДанные = Истина; Обработчик.МонопольныйРежим = Ложь; - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.2.10"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.Процедура = "СтандартныеПодсистемыСервер.ОбновитьПараметрыАдминистрированияИнформационнойБазы"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.4.17"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.Процедура = "СтандартныеПодсистемыСервер.УстановитьЗначениеКонстантыГлавныйУзел"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.1.18"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.Процедура = "СтандартныеПодсистемыСервер.ПеренестиПаролиВБезопасноеХранилищеОбщиеДанные"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.1.18"; - Обработчик.ОбщиеДанные = Ложь; - Обработчик.Процедура = "СтандартныеПодсистемыСервер.ПеренестиПаролиВБезопасноеХранилище"; - КонецПроцедуры #КонецОбласти @@ -1707,7 +1537,7 @@ ЭтоВызовПередНачаломРаботыСистемы = Параметры.ПолученныеПараметрыКлиента <> Неопределено; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ЭтоРазделеннаяКонфигурация = МодульРаботаВМоделиСервиса.ЭтоРазделеннаяКонфигурация(); Иначе @@ -1805,17 +1635,24 @@ УстановитьПривилегированныйРежим(Ложь); Если ЭтоВызовПередНачаломРаботыСистемы - И НЕ (Параметры.РазделениеВключено И Не Параметры.ДоступноИспользованиеРазделенныхДанных) - И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда + И НЕ (Параметры.РазделениеВключено И Не Параметры.ДоступноИспользованиеРазделенныхДанных) + И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - ОписаниеОшибки = ""; - МодульРаботаВМоделиСервиса.ПриПроверкеБлокировкиОбластиДанныхПриЗапуске(ОписаниеОшибки); - Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда + ЗначениеРазделителя = МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); + Если МодульРаботаВМоделиСервиса.ОбластьДанныхЗаблокирована(ЗначениеРазделителя) Тогда + + ОписаниеОшибки = НСтр("ru = 'Запуск приложения временно недоступен. + |Выполняются регламентные операции по обслуживанию приложения. + | + |Попробуйте запустить приложение через несколько минут.'"); + Параметры.Вставить("ОбластьДанныхЗаблокирована", ОписаниеОшибки); // Работа будет завершена. Возврат Ложь; + КонецЕсли; + КонецЕсли; Если Не Параметры.РазделениеВключено @@ -1885,7 +1722,7 @@ КонецЕсли; КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда МодульАвтономнаяРабота = ОбщегоНазначения.ОбщийМодуль("АвтономнаяРабота"); Если МодульАвтономнаяРабота.ПродолжитьНастройкуАвтономногоРабочегоМеста(Параметры) Тогда Возврат Ложь; @@ -1917,9 +1754,9 @@ // данной подсистемы. // // Параметры: -// Параметры - Структура - структура параметров. +// Параметры - Структура // -Процедура ДобавитьПараметрыРаботыКлиента(Параметры) Экспорт +Процедура ДобавитьПараметрыРаботыКлиента(Параметры) Параметры.Вставить("ИменаПодсистем", СтандартныеПодсистемыПовтИсп.ИменаПодсистем()); Параметры.Вставить("ДоступноИспользованиеРазделенныхДанных", @@ -2091,103 +1928,6 @@ КонецПроцедуры -// Удаляет сохраненные пароли и изменяет структуру хранения настроек. -// -Процедура ОбновитьПараметрыАдминистрированияИнформационнойБазы() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - СтароеЗначениеПараметров = Константы.ПараметрыАдминистрированияИБ.Получить().Получить(); - НовоеЗначениеПараметров = ПараметрыАдминистрированияПоУмолчанию(); - - Если СтароеЗначениеПараметров <> Неопределено Тогда - - Если СтароеЗначениеПараметров.Свойство("ИмяАдминистратораИнформационнойБазы") Тогда - Возврат; // Обновление уже было выполнено ранее. - КонецЕсли; - - Если СтароеЗначениеПараметров.Свойство("ПортАгентаСервера") - И ЗначениеЗаполнено(СтароеЗначениеПараметров.ПортАгентаСервера) Тогда - НовоеЗначениеПараметров.ПортАгентаСервера = СтароеЗначениеПараметров.ПортАгентаСервера; - КонецЕсли; - - Если СтароеЗначениеПараметров.Свойство("ПортКластераСерверов") - И ЗначениеЗаполнено(СтароеЗначениеПараметров.ПортКластераСерверов) Тогда - НовоеЗначениеПараметров.ПортКластера = СтароеЗначениеПараметров.ПортКластераСерверов; - КонецЕсли; - - Если СтароеЗначениеПараметров.Свойство("ИмяАдминистратораКластера") - И Не ПустаяСтрока(СтароеЗначениеПараметров.ИмяАдминистратораКластера) Тогда - НовоеЗначениеПараметров.ИмяАдминистратораКластера = СтароеЗначениеПараметров.ИмяАдминистратораКластера; - КонецЕсли; - - Если СтароеЗначениеПараметров.Свойство("ИмяАдминистратораИБ") - И Не ПустаяСтрока(СтароеЗначениеПараметров.ИмяАдминистратораИБ) Тогда - НовоеЗначениеПараметров.ИмяАдминистратораИнформационнойБазы = СтароеЗначениеПараметров.ИмяАдминистратораИБ; - КонецЕсли; - - КонецЕсли; - - УстановитьПараметрыАдминистрирования(НовоеЗначениеПараметров); - -КонецПроцедуры - -// Обновляет значение константы Главный узел в узлах АРМ. -// -Процедура УстановитьЗначениеКонстантыГлавныйУзел() Экспорт - - Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда - СохранитьГлавныйУзел(); - КонецЕсли; - -КонецПроцедуры - -// Предназначена для перевода паролей в безопасное хранилище. -// Используется в обработчике обновления ИБ. -Процедура ПеренестиПаролиВБезопасноеХранилищеОбщиеДанные() Экспорт - - // Обмен данными - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда - МодульОбменДаннымиСервер = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиСервер"); - МодульОбменДаннымиСервер.ПеренестиПаролиВБезопасноеХранилище(); - КонецЕсли; - -КонецПроцедуры - -// Предназначена для перевода паролей в безопасное хранилище. -// Используется в обработчике обновления ИБ. -Процедура ПеренестиПаролиВБезопасноеХранилище() Экспорт - - // Аутентификация на пользовательском сайте. - Результат = Новый Структура("Логин,Пароль"); - Результат.Логин = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("АутентификацияНаПользовательскомСайте", "КодПользователя", ""); - Результат.Пароль = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("АутентификацияНаПользовательскомСайте", "Пароль", ""); - Если НЕ ПустаяСтрока(Результат.Логин) Тогда - Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Справочник.ИдентификаторыОбъектовМетаданных"); - УстановитьПривилегированныйРежим(Истина); - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, Результат.Логин, "Логин"); - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, Результат.Пароль); - УстановитьПривилегированныйРежим(Ложь); - КонецЕсли; - - // Подсистема Отправка SMS - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОтправкаSMS") Тогда - МодульОтправкаSMS = ОбщегоНазначения.ОбщийМодуль("ОтправкаSMS"); - МодульОтправкаSMS.ПеренестиПаролиВБезопасноеХранилище(); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда - МодульРаботаСПочтовымиСообщениямиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениямиСлужебный"); - МодульРаботаСПочтовымиСообщениямиСлужебный.ПеренестиПаролиВБезопасноеХранилище(); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РассылкаОтчетов") Тогда - МодульРассылкаОтчетов = ОбщегоНазначения.ОбщийМодуль("РассылкаОтчетов"); - МодульРассылкаОтчетов.ПеренестиПаролиВБезопасноеХранилище(); - КонецЕсли; - -КонецПроцедуры - // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПереименованийОбъектовМетаданных. Процедура ПриДобавленииПереименованийОбъектовМетаданных(Итог) Экспорт @@ -2564,7 +2304,7 @@ // Проверка настройки совместимости конфигурации с версией платформы. СистемнаяИнформация = Новый СистемнаяИнформация; - МинимальнаяВерсияПлатформы = "8.3.12.1412"; + МинимальнаяВерсияПлатформы = "8.3.14.1533"; Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, МинимальнаяВерсияПлатформы) < 0 Тогда ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Для запуска необходима версия платформы 1С:Предприятие %1 или выше.'"), МинимальнаяВерсияПлатформы); @@ -2573,7 +2313,7 @@ Режимы = Метаданные.СвойстваОбъектов.РежимСовместимости; ТекущийРежим = Метаданные.РежимСовместимости; - ПоддерживаемаяВерсияПлатформы = "8.3.12"; + ПоддерживаемаяВерсияПлатформы = "8.3.14"; ВерсияПлатформы = ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(СистемнаяИнформация.ВерсияПриложения); Если ТекущийРежим = Режимы.НеИспользовать Тогда Если ОбщегоНазначенияКлиентСервер.СравнитьВерсииБезНомераСборки(ВерсияПлатформы, ПоддерживаемаяВерсияПлатформы) = 0 Тогда @@ -2609,8 +2349,12 @@ НеПоддерживаемаяВерсияПлатформы = "8.3.10"; ИначеЕсли ТекущийРежим = Режимы.Версия8_3_11 Тогда НеПоддерживаемаяВерсияПлатформы = "8.3.11"; + ИначеЕсли ТекущийРежим = Режимы.Версия8_3_12 Тогда + НеПоддерживаемаяВерсияПлатформы = "8.3.12"; + ИначеЕсли ТекущийРежим = Режимы.Версия8_3_13 Тогда + НеПоддерживаемаяВерсияПлатформы = "8.3.13"; Иначе - НеПоддерживаемаяВерсияПлатформы = ?(СтрЗаканчиваетсяНа(Строка(ТекущийРежим), "8_3_12"), "", Строка(ТекущийРежим)); + НеПоддерживаемаяВерсияПлатформы = ?(СтрЗаканчиваетсяНа(Строка(ТекущийРежим), "8_3_14"), "", Строка(ТекущийРежим)); КонецЕсли; Если ЗначениеЗаполнено(НеПоддерживаемаяВерсияПлатформы) Тогда @@ -2641,12 +2385,11 @@ КонецЕсли; КонецЕсли; - Если (Метаданные.ОсновныеРоли.Количество() <> 2 И Метаданные.ОсновныеРоли.Количество() <> 3) - Или Не Метаданные.ОсновныеРоли.Содержит(Метаданные.Роли.АдминистраторСистемы) + Если Не Метаданные.ОсновныеРоли.Содержит(Метаданные.Роли.АдминистраторСистемы) Или Не Метаданные.ОсновныеРоли.Содержит(Метаданные.Роли.ПолныеПрава) Тогда ВызватьИсключение - НСтр("ru = 'В конфигурации в свойстве ОсновныеРоли не указаны стандартные роли - |АдминистраторСистемы и ПолныеПрава или указаны лишние роли.'"); + НСтр("ru = 'В конфигурации в свойстве ОсновныеРоли не указаны + |стандартные роли АдминистраторСистемы и ПолныеПрава.'"); КонецЕсли; // Проверка возможности выполнения обработчиков установки параметров сеанса для запуска программы. @@ -2661,16 +2404,7 @@ ПользователиСлужебный.УстановитьНачальныеНастройки(""); КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - МодульРаботаВМоделиСервиса.ПриПроверкеВключенияБезопасногоРежимаРазделенияДанных(); - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.РезервноеКопированиеОбластейДанных") Тогда - // Установка флага активности пользователей в области. - МодульРезервноеКопированиеОбластейДанных = ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеОбластейДанных"); - МодульРезервноеКопированиеОбластейДанных.УстановитьФлагАктивностиПользователяВОбласти(); - КонецЕсли; + ИнтеграцияПодсистемБСП.ПередЗапускомПрограммы(); СкорректироватьНачальнуюСтраницуНеразделенногоПользователя(); ОбработатьОчередьСкопированныхНастроек(); @@ -2685,7 +2419,7 @@ Возврат; КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей(); Иначе @@ -2879,19 +2613,6 @@ КонецПроцедуры -Функция ПредставлениеОбъектовМетаданных(Объекты) - - Результат = Новый Массив; - - Для Каждого Объект Из Объекты Цикл - - Результат.Добавить(Объект.ПолноеИмя()); - - КонецЦикла; - - Возврат Результат; -КонецФункции - Процедура ИгнорироватьОтправкуИдентификаторовОбъектовМетаданных(ЭлементДанных, ОтправкаЭлемента, Знач СозданиеНачальногоОбраза = Ложь) Если Не СозданиеНачальногоОбраза diff --git a/SSL/src/CommonModules/СтроковыеФункцииКлиентСервер/Module.bsl b/SSL/src/CommonModules/СтроковыеФункцииКлиентСервер/Module.bsl index 14d01b3ec..37eae16d8 100644 --- a/SSL/src/CommonModules/СтроковыеФункцииКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/СтроковыеФункцииКлиентСервер/Module.bsl @@ -920,39 +920,225 @@ КонецФункции -// Преобразует исходную строку в дату. +// Преобразует исходную строку в дату. +// Если дату не удалось распознать, то возвращается пустая дата (01.01.01 00:00:00). // // Параметры: // Значение - Строка - строка, которую необходимо привести к дате. -// Формат даты должен быть в виде "ДД.ММ.ГГГГ" или "ДД/ММ/ГГ" или "ДД-ММ-ГГ", -// Например, "23.02.1980" или "23/02/80". +// Формат даты должен быть в виде "ДД.ММ.ГГГГ" или "ДД/ММ/ГГ" или "ДД-ММ-ГГ ЧЧ:ММ:CC", +// Например, "23.02.1980" или "23/02/80 09:15:45". +// ЧастьДаты - ЧастиДаты - Определяет допустимые части даты. По умолчанию, ЧастиДаты.Дата. // // Возвращаемое значение: // Дата - полученная дата. // -Функция СтрокаВДату(Знач Значение) Экспорт +Функция СтрокаВДату(Знач Значение, ЧастьДаты = Неопределено) Экспорт - Значение = СтрЗаменить(Значение, " ", ""); - Значение = СокрЛП(СтрЗаменить(Значение, ".", "")); - Значение = СокрЛП(СтрЗаменить(Значение, "/", "")); - Значение = СокрЛП(СтрЗаменить(Значение, "-", "")); - Значение = Сред(Значение, 5) + Сред(Значение, 3, 2) + Лев(Значение, 2); - Если СтрДлина(Значение) = 6 Тогда - Год = СтрокаВЧисло(Лев(Значение, 2)); - Если Год = Неопределено Тогда - Возврат Дата('0001.01.01'); - КонецЕсли; - Значение = ?(Год > 29, "19", "20") + Значение; + НаборЦифр = "1234567890"; + + Если ТипЗнч(ЧастьДаты) <> Тип("ЧастиДаты") Тогда + ЧастьДаты = ЧастиДаты.Дата; КонецЕсли; - ОписаниеТипа = Новый ОписаниеТипов("Дата"); - Результат = ОписаниеТипа.ПривестиЗначение(Значение); + ПараметрыДаты = Новый КвалификаторыДаты(ЧастьДаты); + ОписаниеТипаДата = Новый ОписаниеТипов("Дата",,, ПараметрыДаты); + + Значение = ВРег(СтрСоединить(СтрРазделить(СокрЛП(Значение), Символы.НПП + Символы.ПС + Символы.Таб), " ")); + Результат = ОписаниеТипаДата.ПривестиЗначение(Значение); + + Для НомерМесяца = 1 По 12 Цикл + Значение = СтрЗаменить(Значение, ВРег(Формат(Дата(1, НомерМесяца, 2), "ДФ=MMММ")), Формат(НомерМесяца, "ЧЦ=2; ЧВН=")); + Значение = СтрЗаменить(Значение, ВРег(Формат(Дата(1, НомерМесяца, 2), "ДФ=MMM")), Формат(НомерМесяца, "ЧЦ=2; ЧВН=")); + КонецЦикла; + + МассивНеЦифр = СтрРазделить(Значение, НаборЦифр); + Если МассивНеЦифр.Количество() < 2 Тогда + Возврат Результат; + КонецЕсли; + + ПозицияПервойЦифры = СтрДлина(МассивНеЦифр[0]); + ПозицияПоследнейЦифры = СтрДлина(Значение) - СтрДлина(МассивНеЦифр[МассивНеЦифр.ВГраница()]); + Значение = Сред(Значение, ПозицияПервойЦифры, ПозицияПоследнейЦифры - ПозицияПервойЦифры); + Если ПустаяСтрока(Значение) Тогда + Возврат Результат; + КонецЕсли; + + ЗначениеМассивом = СтрРазделить(Значение, " "); + Элемент = ЗначениеМассивом[ЗначениеМассивом.ВГраница()]; + Если ЗначениеМассивом.Количество() > 1 Тогда + Если СтрДлина(Элемент) = 2 Или СтрДлина(Элемент) = 4 Тогда + + ЭтоТолькоЦифры = СтрРазделить(Элемент, НаборЦифр, Ложь).Количество() = 0; + Если ЭтоТолькоЦифры Тогда + ЗначениеДата = Значение; + ЗначениеВремя = ""; + Иначе + ЗначениеВремя = Элемент; + ЗначениеМассивом.Удалить(ЗначениеМассивом.ВГраница()); + ЗначениеДата = СтрСоединить(ЗначениеМассивом, " "); + КонецЕсли; + Иначе + + ЗначениеВремя = Элемент; + ЗначениеМассивом.Удалить(ЗначениеМассивом.ВГраница()); + ЗначениеДата = СтрСоединить(ЗначениеМассивом, " "); + КонецЕсли; + Иначе + + ЭтоТолькоЦифры = СтрРазделить(Элемент, НаборЦифр, Ложь).Количество() = 0; + Если ЭтоТолькоЦифры Тогда + + Результат = ОписаниеТипаДата.ПривестиЗначение(Элемент); + Если Не ЗначениеЗаполнено(Результат) И СтрДлина(Элемент) = 8 Тогда + + ПеревернутаяДата = Сред(Элемент, 5) + Сред(Элемент, 3, 2) + Лев(Элемент, 2); + Результат = ОписаниеТипаДата.ПривестиЗначение(ПеревернутаяДата); + + КонецЕсли; + + Возврат Результат; + + ИначеЕсли СтрНайти(Элемент, ":") > 0 Тогда + + ЗначениеДата = ""; + ЗначениеВремя = Элемент; + Иначе + ЗначениеДата = Элемент; + ЗначениеВремя = ""; + КонецЕсли; + КонецЕсли; + + ОписаниеТипаЧисло = Новый ОписаниеТипов("Число"); + + Если ЗначениеЗаполнено(ЗначениеДата) И ЧастьДаты <> ЧастиДаты.Время Тогда + + НаборРазделителей = СтрСоединить(СтрРазделить(ЗначениеДата, НаборЦифр, Ложь), ""); + ЗначениеДатаМассивом = СтрРазделить(ЗначениеДата, НаборРазделителей, Ложь); + + ЭтоТолькоЦифры = СтрРазделить(ЗначениеДата, НаборЦифр, Ложь).Количество() = 0; + Если НЕ ЭтоТолькоЦифры Тогда + + Год = 1; + Месяц = 1; + День = 1; + + Если СтрДлина(ЗначениеДатаМассивом[0]) = 4 Тогда + Год = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеДатаМассивом[0]); + ГодВНачале = Истина; + Иначе + День = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеДатаМассивом[0]); + ГодВНачале = Ложь; + КонецЕсли; + + Если ЗначениеДатаМассивом.Количество() = 2 Тогда + Месяц = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеДатаМассивом[1]);; + ИначеЕсли ЗначениеДатаМассивом.Количество() > 2 Тогда + Месяц = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеДатаМассивом[1]); + Если ГодВНачале Тогда + День = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеДатаМассивом[2]); + Иначе + Год = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеДатаМассивом[2]); + КонецЕсли; + КонецЕсли; + + Если СтрДлина(Год) < 3 Тогда + ГодЧислом = ОписаниеТипаЧисло.ПривестиЗначение(Год); + Год = ?(ГодЧислом < 30, 2000, 1900) + ГодЧислом; + Иначе + Год = ОписаниеТипаЧисло.ПривестиЗначение(Год); + КонецЕсли; + + ЗначениеДата = Формат(Год, "ЧЦ=4; ЧН=0001; ЧВН=; ЧГ=0") + + Формат(Месяц, "ЧЦ=2; ЧН=01; ЧВН=; ЧГ=0") + + Формат(День, "ЧЦ=2; ЧН=01; ЧВН=; ЧГ=0"); + Иначе + + Если СтрДлина(ЗначениеДата) = 6 Тогда + + Год = Прав(ЗначениеДата, 2); + ГодЧислом = ОписаниеТипаЧисло.ПривестиЗначение(Год); + ЗначениеДата = ?(ГодЧислом < 30, 2000, 1900) + Год + Сред(ЗначениеДата, 3, 2) + Лев(ЗначениеДата, 2) ; + + ИначеЕсли СтрДлина(ЗначениеДата) = 8 Тогда + + Результат = ОписаниеТипаДата.ПривестиЗначение(ЗначениеДата); + + Если Не ЗначениеЗаполнено(Результат) Тогда + ПеревернутаяДата = Сред(ЗначениеДата, 5) + Сред(ЗначениеДата, 3, 2) + Лев(ЗначениеДата, 2); + Результат = ОписаниеТипаДата.ПривестиЗначение(ПеревернутаяДата); + Если ЗначениеЗаполнено(Результат) Тогда + ЗначениеДата = ПеревернутаяДата; + КонецЕсли; + КонецЕсли; + + КонецЕсли; + КонецЕсли; + + Иначе + ЗначениеДата = "00010101"; + КонецЕсли; + + Если ЗначениеЗаполнено(ЗначениеВремя) И ЧастьДаты <> ЧастиДаты.Дата Тогда + + ЭтоТолькоЦифры = СтрРазделить(ЗначениеВремя, НаборЦифр, Ложь).Количество() = 0; + Если НЕ ЭтоТолькоЦифры Тогда + + НаборРазделителей = СтрСоединить(СтрРазделить(ЗначениеВремя, НаборЦифр, Ложь), ""); + ЗначениеВремяМассивом = СтрРазделить(ЗначениеВремя, НаборРазделителей, Ложь); + + Час = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеВремяМассивом[0]); + Минута = 0; + Секунда = 0; + + Если ЗначениеВремяМассивом.Количество() = 2 Тогда + Минута = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеВремяМассивом[1]); + ИначеЕсли ЗначениеВремяМассивом.Количество() > 2 Тогда + Минута = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеВремяМассивом[1]); + Секунда = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеВремяМассивом[2]); + КонецЕсли; + + ШаблонФормата = "ЧЦ=2; ЧН=00; ЧВН=; ЧГ=0"; + ЗначениеВремя = Формат(Час, ШаблонФормата) + + Формат(Минута, ШаблонФормата) + + Формат(Секунда, ШаблонФормата); + + КонецЕсли; + + Иначе + ЗначениеВремя = "000000"; + КонецЕсли; + + Результат = ОписаниеТипаДата.ПривестиЗначение(ЗначениеДата + ЗначениеВремя); Возврат Результат; -КонецФункции +КонецФункции // Формирует представление числа для определенного языка и параметров числа. +// Представление параметров: +// ┌──────┬──────┬─────────────────┬────────────────┬───────────────────┬───────────────────────┬────────────────┐ +// │ Lang │ Zero │ One │ Two │ Few │ Many │ Other │ +// ├──────┼──────┼─────────────────┼────────────────┼───────────────────┼───────────────────────┼────────────────┤ +// │ ru │ │ XX1 / X11 │ │ XX2─XX4 / X12─X14 │ XX0, XX5─XX9, X11─X14 │ дробные │ +// │ Card.│ │ остался %1 день │ │ осталось %1 дня │ осталось %1 дней │ осталось %1 дня│ +// │ │ │ вижу %1 рыбу │ │ вижу %1─х рыб │ вижу %5 рыб │ вижу %1 рыбы │ +// ├──────┼──────┼─────────────────┼────────────────┼───────────────────┼───────────────────────┼────────────────┤ +// │ ru │ │ │ │ │ │ других нет │ +// │ Ord. │ │ │ │ │ │ %1─й день │ +// ├──────┼──────┼─────────────────┼────────────────┼───────────────────┼───────────────────────┼────────────────┤ +// │ en │ │ для 1 │ │ │ │ остальное │ +// │ Card.│ │ left %1 day │ │ │ │ left %1 days │ +// ├──────┼──────┼─────────────────┼────────────────┼───────────────────┼───────────────────────┼────────────────┤ +// │ en │ │ XX1 / X11 │ XX2 / X12 │ XX3 / X13 │ │ остальное │ +// │ Ord. │ │ %1st day │ %1nd day │ %1rd day │ │ %1th day. │ +// └──────┴──────┴─────────────────┴────────────────┴───────────────────┴───────────────────────┴────────────────┘ +// ┌──────┬───────────────────────────┐ +// │Card. │ Cardinal ─ Количественное;│ +// │ Ord. │ Ordinal - Порядковое; │ +// ├──────┼───────────────────────────┤ +// │ X │ любая цифра; │ +// │ / │ кроме. │ +// └──────┴───────────────────────────┘ // // Параметры: // Шаблон - Строка - строка, содержит перечисленные через точку с запятой 6 форм строки @@ -968,28 +1154,6 @@ // // Пример: // -// // Представление параметров: -// // -// // Lang | Zero | One | Two | Few | Many | Other -// // ============================================================================================================ -// // ru | | XX1 / X11 | | XX2-XX4 / X12-X14 | XX0, XX5-XX9, X11-X14 | дробные -// // Card.| | остался %1 день | | осталось %1 дня | осталось %1 дней | осталось %1 дня -// // | | вижу %1 рыбу | | вижу %1-х рыб | вижу %5 рыб | вижу %1 рыбы -// // ------------------------------------------------------------------------------------------------------------ -// // ru | | | | | | других нет -// // Ord. | | | | | | %1-й день -// // ------------------------------------------------------------------------------------------------------------ -// // en | | для 1 | | | | остальное -// // Card.| | left %1 day | | | | left %1 days -// // ------------------------------------------------------------------------------------------------------------ -// // en | | XX1 / X11 | XX2 / X12 | XX3 / X13 | | остальное -// // Ord. | | %1st day | %1nd day | %1rd day | | %1th day. -// -// // Card. - Cardinal - Количественное; -// // Ord. - Ordinal - Порядковое; -// // X - любая цифра; -// // / - кроме. -// // Строка = СтроковыеФункцииКлиентСервер.СтрокаСЧисломДляЛюбогоЯзыка( // НСтр("ru=';остался %1 день;;осталось %1 дня;осталось %1 дней;осталось %1 дня'; // |en=';left %1 day;;;;left %1 days'"), @@ -1011,117 +1175,6 @@ #Область УстаревшиеПроцедурыИФункции -// Устарела. Следует использовать СтрСоединить. -// -// Объединяет строки из массива в строку с разделителями. -// -// Параметры: -// Массив - Массив - массив строк которые необходимо объединить в одну строку; -// Разделитель - Строка - любой набор символов, который будет использован в качестве разделителя. -// СокращатьНепечатаемыеСимволы - Булево - обрезать непечатаемые символы по краям подстрок перед объединением -// в строку с разделителями. -// -// Возвращаемое значение: -// Строка - строка с разделителями. -// -Функция СтрокаИзМассиваПодстрок(Массив, Разделитель = ",", СокращатьНепечатаемыеСимволы = Ложь) Экспорт - - Результат = ""; - - Для Индекс = 0 По Массив.ВГраница() Цикл - Подстрока = Массив[Индекс]; - - Если СокращатьНепечатаемыеСимволы Тогда - Подстрока = СокрЛП(Подстрока); - КонецЕсли; - - Если ТипЗнч(Подстрока) <> Тип("Строка") Тогда - Подстрока = Строка(Подстрока); - КонецЕсли; - - Если Индекс > 0 Тогда - Результат = Результат + Разделитель; - КонецЕсли; - - Результат = Результат + Подстрока; - КонецЦикла; - - Возврат Результат; - -КонецФункции - -// Устарела. Следует использовать СтрНайти. -// -// Осуществляет поиск символа, начиная с конца строки. -// -// Параметры: -// Строка - Строка - строка, в которой осуществляется поиск; -// Символ - Строка - искомый символ. Допускается искать строку, содержащую более одного символа. -// -// Возвращаемое значение: -// Число - позиция символа в строке. -// Если строка не содержит указанного символа, то возвращается 0. -// -Функция НайтиСимволСКонца(Знач Строка, Знач Символ) Экспорт - - Для Позиция = -СтрДлина(Строка) По -1 Цикл - Если Сред(Строка, -Позиция, СтрДлина(Символ)) = Символ Тогда - Возврат -Позиция; - КонецЕсли; - КонецЦикла; - - Возврат 0; - -КонецФункции - -// Устарела. Следует использовать СтроковыеФункцииКлиентСервер.ПараметрыИзСтроки(). -// -// Получает значения параметров из строки. -// -// Параметры: -// СтрокаПараметров - Строка - строка, содержащая параметры, каждый из которых представляет собой -// фрагмент вида <Имя параметра>=<Значение>, где: -// Имя параметра - имя параметра; -// Значение - его значение. -// Фрагменты отделяются друг от друга символами ';'. -// Если значение содержит пробельные символы, то оно должно быть заключено в двойные -// кавычки ("). -// Например: -// "File=""c:\InfoBases\Trade""; Usr=""Director"";" -// Разделитель - Строка - символ, которым фрагменты отделяются друг от друга. -// -// Возвращаемое значение: -// Структура - значения параметров, где ключ - имя параметра, значение - значение параметра. -// -Функция ПолучитьПараметрыИзСтроки(Знач СтрокаПараметров, Знач Разделитель = ";") Экспорт - Результат = Новый Структура; - - ОписаниеПараметра = ""; - НайденоНачалоСтроки = Ложь; - НомерПоследнегоСимвола = СтрДлина(СтрокаПараметров); - Для НомерСимвола = 1 По НомерПоследнегоСимвола Цикл - Символ =Сред(СтрокаПараметров, НомерСимвола, 1); - Если Символ = """" Тогда - НайденоНачалоСтроки = Не НайденоНачалоСтроки; - КонецЕсли; - Если Символ <> Разделитель Или НайденоНачалоСтроки Тогда - ОписаниеПараметра = ОписаниеПараметра + Символ; - КонецЕсли; - Если Символ = Разделитель И Не НайденоНачалоСтроки Или НомерСимвола = НомерПоследнегоСимвола Тогда - Позиция = СтрНайти(ОписаниеПараметра, "="); - Если Позиция > 0 Тогда - ИмяПараметра = СокрЛП(Лев(ОписаниеПараметра, Позиция - 1)); - ЗначениеПараметра = СокрЛП(Сред(ОписаниеПараметра, Позиция + 1)); - ЗначениеПараметра = СократитьДвойныеКавычки(ЗначениеПараметра); - Результат.Вставить(ИмяПараметра, ЗначениеПараметра); - КонецЕсли; - ОписаниеПараметра = ""; - КонецЕсли; - КонецЦикла; - - Возврат Результат; -КонецФункции - // Устарела. Следует использовать СтроковыеФункцииКлиентСервер.СтрокаСЧисломДляЛюбогоЯзыка(). // // ЧислоЦифрамиПредметИсчисленияПрописью(1.5, "минуту,минуты,минут"); diff --git a/SSL/src/CommonModules/ТекущиеДелаПереопределяемый/Module.bsl b/SSL/src/CommonModules/ТекущиеДелаПереопределяемый/Module.bsl index 205052a51..1dc8bd162 100644 --- a/SSL/src/CommonModules/ТекущиеДелаПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ТекущиеДелаПереопределяемый/Module.bsl @@ -8,7 +8,7 @@ #Область ПрограммныйИнтерфейс -// Определяет список обработчиков для формирования (или обновления) +// Определяет список обработчиков (модулей менеджеров или общих модулей) для формирования и обновления // списка всех текущих дел, предусмотренных в конфигурации. // // В указанных модулях должна быть размещена процедура обработчика, в которую передаются параметры: @@ -37,7 +37,7 @@ //КонецПроцедуры // // Параметры: -// Обработчики - Массив - массив ссылок на модули менеджеров или общие модули, +// Обработчики - Массив - модули менеджеров или общие модули, // например: Документы.ЗаказПокупателя, ТекущиеДелаПоПродажам. // Пример: // Обработчики.Добавить(Документы.ЗаказПокупателя); @@ -46,8 +46,6 @@ - - КонецПроцедуры // Задает начальный порядок разделов в панели текущих дел. @@ -61,8 +59,6 @@ - - КонецПроцедуры // Определяет текущие дела, которые не будут выводиться пользователю. @@ -110,7 +106,7 @@ // для переопределения параметров открытия формы и установки необходимых отборов списках формы. // // Параметры: -// Форма - УправляемаяФорма - форма, из которой был осуществлен вызов метода. +// Форма - ФормаКлиентскогоПриложения - форма, из которой был осуществлен вызов метода. // Список - ДинамическийСписок - список, параметры которого можно переопределить. // Процедура ПриСозданииНаСервере(Форма, Список) Экспорт @@ -121,7 +117,7 @@ // расшифровки текущих дел для замены сохраненных значений реквизитов формы. // // Параметры: -// Форма - УправляемаяФорма - форма, из которой был осуществлен вызов метода. +// Форма - ФормаКлиентскогоПриложения - форма, из которой был осуществлен вызов метода. // Настройки - Соответствие - настройки формы, в которых находятся значения реквизитов. // Процедура ПередЗагрузкойДанныхИзНастроекНаСервере(Форма, Настройки) Экспорт diff --git a/SSL/src/CommonModules/ТекущиеДелаСервер/Module.bsl b/SSL/src/CommonModules/ТекущиеДелаСервер/Module.bsl index 8ed68c5bf..1dddfaa6e 100644 --- a/SSL/src/CommonModules/ТекущиеДелаСервер/Module.bsl +++ b/SSL/src/CommonModules/ТекущиеДелаСервер/Module.bsl @@ -45,6 +45,7 @@ // Функция ДелоОтключено(ИдентификаторДела) Экспорт ОтключаемыеДела = Новый Массив; + ИнтеграцияПодсистемБСП.ПриОтключенииТекущихДел(ОтключаемыеДела); ТекущиеДелаПереопределяемый.ПриОтключенииТекущихДел(ОтключаемыеДела); Возврат (ОтключаемыеДела.Найти(ИдентификаторДела) <> Неопределено) diff --git a/SSL/src/CommonModules/ТекущиеДелаСлужебный/Module.bsl b/SSL/src/CommonModules/ТекущиеДелаСлужебный/Module.bsl index 6a46f5c89..d6651d85f 100644 --- a/SSL/src/CommonModules/ТекущиеДелаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ТекущиеДелаСлужебный/Module.bsl @@ -35,6 +35,7 @@ // Добавление дел от прикладных конфигураций. ОбработчикиЗаполненияДел = Новый Массив; + ИнтеграцияПодсистемБСП.ПриОпределенииОбработчиковТекущихДел(ОбработчикиЗаполненияДел); ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел(ОбработчикиЗаполненияДел); Для Каждого Обработчик Из ОбработчикиЗаполненияДел Цикл @@ -178,6 +179,7 @@ Запрос.УстановитьПараметр(КлючИЗначение.Ключ, КлючИЗначение.Значение); КонецЦикла; + ИнтеграцияПодсистемБСП.ПриУстановкеОбщихПараметровЗапросов(Запрос, ОбщиеПараметрыЗапросов); ТекущиеДелаПереопределяемый.УстановитьОбщиеПараметрыЗапросов(Запрос, ОбщиеПараметрыЗапросов); КонецПроцедуры @@ -187,6 +189,7 @@ Процедура УстановитьНачальныйПорядокРазделов(ТекущиеДела) Экспорт ПорядокРазделовКомандногоИнтерфейса = Новый Массив; + ИнтеграцияПодсистемБСП.ПриОпределенииПорядкаРазделовКомандногоИнтерфейса(ПорядокРазделовКомандногоИнтерфейса); ТекущиеДелаПереопределяемый.ПриОпределенииПорядкаРазделовКомандногоИнтерфейса(ПорядокРазделовКомандногоИнтерфейса); Индекс = 0; diff --git a/SSL/src/CommonModules/ТрансляцияXDTO/Module.bsl b/SSL/src/CommonModules/ТрансляцияXDTO/Module.bsl deleted file mode 100644 index d012d7237..000000000 --- a/SSL/src/CommonModules/ТрансляцияXDTO/Module.bsl +++ /dev/null @@ -1,78 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -// Функция выполняет трансляцию произвольного XDTO-объекта -// между версиями по зарегистрированным в системе обработчикам трансляции, -// определяя результирующую версию по пространству имен результирующего сообщения. -// -// Параметры: -// ИсходныйОбъект - ОбъектXDTO - Транслируемый объект. -// РезультирующаяВерсия - строка - Номер результирующей версии интерфейса, в формате РР.{П|ПП}.ЗЗ.СС. -// ПакетИсходнойВерсии - Строка - пространство имен версии сообщения. -// -// Возвращаемое значение: -// ОбъектXDTO - результат трансляции объекта. -// -Функция ТранслироватьВВерсию(Знач ИсходныйОбъект, Знач РезультирующаяВерсия, Знач ПакетИсходнойВерсии = "") Экспорт - - Если ПакетИсходнойВерсии = "" Тогда - ПакетИсходнойВерсии = ИсходныйОбъект.Тип().URIПространстваИмен; - КонецЕсли; - - ОписаниеИсходнойВерсии = ТрансляцияXDTOСлужебный.СформироватьОписаниеВерсии( - , - ПакетИсходнойВерсии); - ОписаниеРезультирующейВерсии = ТрансляцияXDTOСлужебный.СформироватьОписаниеВерсии( - РезультирующаяВерсия); - - Возврат ТрансляцияXDTOСлужебный.ВыполнитьТрансляцию( - ИсходныйОбъект, - ОписаниеИсходнойВерсии, - ОписаниеРезультирующейВерсии); - -КонецФункции - -// Функция выполняет трансляцию произвольного XDTO-объекта -// между версиями по зарегистрированным в системе обработчикам трансляции, -// определяя результирующую версию по пространству имен результирующего сообщения. -// -// Параметры: -// ИсходныйОбъект - ОбъектXDTO - Транслируемый объект. -// ПакетРезультирующейВерсии - Строка - Пространство имен результирующей версии. -// ПакетИсходнойВерсии - Строка - пространство имен версии сообщения. -// -// Возвращаемое значение: -// ОбъектXDTO - результат трансляции объекта. -// -Функция ТранслироватьВПространствоИмен(Знач ИсходныйОбъект, Знач ПакетРезультирующейВерсии, Знач ПакетИсходнойВерсии = "") Экспорт - - Если ИсходныйОбъект.Тип().URIПространстваИмен = ПакетРезультирующейВерсии Тогда - Возврат ИсходныйОбъект; - КонецЕсли; - - Если ПакетИсходнойВерсии = "" Тогда - ПакетИсходнойВерсии = ИсходныйОбъект.Тип().URIПространстваИмен; - КонецЕсли; - - ОписаниеИсходнойВерсии = ТрансляцияXDTOСлужебный.СформироватьОписаниеВерсии( - , - ПакетИсходнойВерсии); - ОписаниеРезультирующейВерсии = ТрансляцияXDTOСлужебный.СформироватьОписаниеВерсии( - , - ПакетРезультирующейВерсии); - - Возврат ТрансляцияXDTOСлужебный.ВыполнитьТрансляцию( - ИсходныйОбъект, - ОписаниеИсходнойВерсии, - ОписаниеРезультирующейВерсии); - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/ТрансляцияXDTO/ТрансляцияXDTO.mdo b/SSL/src/CommonModules/ТрансляцияXDTO/ТрансляцияXDTO.mdo deleted file mode 100644 index 8ac60381f..000000000 --- a/SSL/src/CommonModules/ТрансляцияXDTO/ТрансляцияXDTO.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - ТрансляцияXDTO - - ru - Трансляция XDTO - - true - true - true - diff --git a/SSL/src/CommonModules/ТрансляцияXDTOПереопределяемый/ТрансляцияXDTOПереопределяемый.mdo b/SSL/src/CommonModules/ТрансляцияXDTOПереопределяемый/ТрансляцияXDTOПереопределяемый.mdo deleted file mode 100644 index 6bac0e921..000000000 --- a/SSL/src/CommonModules/ТрансляцияXDTOПереопределяемый/ТрансляцияXDTOПереопределяемый.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - ТрансляцияXDTOПереопределяемый - - ru - Трансляция XDTO Переопределяемый - - true - true - true - diff --git a/SSL/src/CommonModules/ТрансляцияXDTOСлужебный/Module.bsl b/SSL/src/CommonModules/ТрансляцияXDTOСлужебный/Module.bsl deleted file mode 100644 index 065116041..000000000 --- a/SSL/src/CommonModules/ТрансляцияXDTOСлужебный/Module.bsl +++ /dev/null @@ -1,610 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -// Возвращает описание версии сообщения. Возвращаемое значение используется для передачи -// в качестве параметров ОписаниеИсходнойВерсии и ОписаниеРезультирующейВерсии. -// Процедуры НайтиЦепочкиТрансляции(). -// -// Параметры: -// Номер - строка, номер версии сообщения в формате РР.{П|ПП}.ЗЗ.СС, -// Пакет - строка, пространство имен версии сообщения. -// -// Возвращаемое значение: -// Структура(Номер, Пакет). -// -Функция СформироватьОписаниеВерсии(Номер = Неопределено, Пакет = Неопределено) Экспорт - - Возврат Новый Структура("Номер, Пакет", Номер, Пакет); - -КонецФункции // СформироватьОписаниеВерсии() - -// Для внутреннего использования. -Функция ПолучитьИнтерфейсСообщения(Знач Сообщение) Экспорт - - ПакетыИсходногоСообщения = ПолучитьПакетыСообщения(Сообщение); - ЗарегистрированныеИнтерфейсы = ИнтерфейсыСообщенийВМоделиСервиса.ПолучитьИнтерфейсыОтправляемыхСообщений(); - - Для Каждого ПакетИсходногоСообщения Из ПакетыИсходногоСообщения Цикл - - ИнтерфейсСообщения = ЗарегистрированныеИнтерфейсы.Получить(ПакетИсходногоСообщения); - Если ЗначениеЗаполнено(ИнтерфейсСообщения) Тогда - - Возврат Новый Структура("ПрограммныйИнтерфейс, ПространствоИмен", ИнтерфейсСообщения, ПакетИсходногоСообщения); - - КонецЕсли; - - КонецЦикла; - -КонецФункции - -// Для внутреннего использования. -Функция ВыполнитьТрансляцию(Знач ИсходныйОбъект, Знач ОписаниеИсходнойВерсии, Знач ОписаниеРезультирующейВерсии) Экспорт - - ЦепочкаТрансляцииИнтерфейса = ПолучитьЦепочкуТрансляции( - ОписаниеИсходнойВерсии, - ОписаниеРезультирующейВерсии); - Если ЦепочкаТрансляцииИнтерфейса = Неопределено Тогда - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'В конфигурации не зарегистрирован обработчик трансляции из версии %1 в версию %2.'"), - СформироватьПредставлениеВерсии(ОписаниеИсходнойВерсии), - СформироватьПредставлениеВерсии(ОписаниеРезультирующейВерсии)); - Иначе - - ТаблицаТрансляцииИнтерфейса = Новый ТаблицаЗначений(); - ТаблицаТрансляцииИнтерфейса.Колонки.Добавить("Ключ", Новый ОписаниеТипов("Строка")); - ТаблицаТрансляцииИнтерфейса.Колонки.Добавить("Значение", Новый ОписаниеТипов("ОбщийМодуль")); - ТаблицаТрансляцииИнтерфейса.Колонки.Добавить("ВерсияЧислом", Новый ОписаниеТипов("Число")); - - Для Каждого ЭтапТрансляцииИнтерфейса Из ЦепочкаТрансляцииИнтерфейса Цикл - - ЭтапТаблицы = ТаблицаТрансляцииИнтерфейса.Добавить(); - ЗаполнитьЗначенияСвойств(ЭтапТаблицы, ЭтапТрансляцииИнтерфейса); - Версия = ЭтапТрансляцииИнтерфейса.Значение.РезультирующаяВерсия(); - Разряды = СтрРазделить(Версия, "."); - Итератор = 0; - ВерсияЧислом = 0; - Для Каждого Разряд Из Разряды Цикл - - ВерсияЧислом = ВерсияЧислом + (Число(Разряд) * Pow(1000, Разряды.Количество() - Итератор)); - Итератор = Итератор + 1; - - КонецЦикла; - ЭтапТаблицы.ВерсияЧислом = ВерсияЧислом; - - КонецЦикла; - - ТаблицаТрансляцииИнтерфейса.Сортировать("ВерсияЧислом Убыв"); - - КонецЕсли; - - Для Каждого ЭтапТрансляцииИнтерфейса Из ТаблицаТрансляцииИнтерфейса Цикл - - Обработчик = ЭтапТрансляцииИнтерфейса.Значение; - - ВыполнятьСтандартнуюОбработку = Истина; - Обработчик.ПередТрансляцией(ИсходныйОбъект, ВыполнятьСтандартнуюОбработку); - - Если ВыполнятьСтандартнуюОбработку Тогда - ПравилаТрансляцииИнтерфейсов = СформироватьПравилаТрансляцииИнтерфейсов(ИсходныйОбъект, ЭтапТрансляцииИнтерфейса); - ИсходныйОбъект = ТранслироватьОбъект(ИсходныйОбъект, ПравилаТрансляцииИнтерфейсов); - Иначе - ИсходныйОбъект = Обработчик.ТрансляцияСообщения(ИсходныйОбъект); - КонецЕсли; - - КонецЦикла; - - Возврат ИсходныйОбъект; - -КонецФункции - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Возвращает пакеты, входящие в зависимости исходного пакета. -// -// Параметры: -// ПакетОбъектаСообщения - строка, пространство имен пакета, для которого выполняется -// поиск зависимостей. -// -// Возвращаемое значение: -// ФиксированныйМассив, элементы - строка. -// -Функция ПолучитьЗависимостиПакета(Знач ПакетОбъектаСообщения) - - Результат = Новый Массив(); - ЗависимостиПакета = ФабрикаXDTO.Пакеты.Получить(ПакетОбъектаСообщения).Зависимости; - Для Каждого Зависимость Из ЗависимостиПакета Цикл - - ПакетЗависимостиСообщения = Зависимость.URIПространстваИмен; - Результат.Добавить(ПакетЗависимостиСообщения); - ВложенныеЗависимости = ПолучитьЗависимостиПакета(ПакетЗависимостиСообщения); - ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Результат, ВложенныеЗависимости, Истина); - - КонецЦикла; - - Возврат Новый ФиксированныйМассив(Результат); - -КонецФункции - -// Возвращает цепочку выполнения обработчиков трансляции между версиями интерфейса сообщений. -// Если в конфигурации зарегистрировано несколько возможных цепочек трансляции между версиями -// интерфейса сообщений - вернет оптимальную (содержащую меньшее число этапов). -// -// Параметры: -// ОписаниеИсходнойВерсии - Структура, описание исходной версии транслируемого сообщения, -// достаточное для однозначного определения обработчиков в таблице трансляции. -// Поля структуры: -// Номер - строка, исходная версия сообщения в формате РР.{П|ПП}.ЗЗ.СС, -// Пакет - строка, пространство имен исходной версии сообщения, -// ОписаниеРезультирующейВерсии - Структура, описание результирующей версии, в которую -// требуется транслировать сообщение, достаточное для однозначного определения -// обработчиков в таблице трансляции. -// Поля структуры: -// Номер - строка, результирующая версия сообщения в -// формате РР.{П|ПП}.ЗЗ.СС, -// Пакет - строка, пространство имен результирующей версии -// сообщения. -// -// Возвращаемое значение: -// ФиксированноеСоответствие: -// Ключ - Пакет результирующей версии сообщения. -// Значение - ОбщийМодуль, обработчик трансляции. -// -Функция ПолучитьЦепочкуТрансляции(Знач ОписаниеИсходнойВерсии, Знач ОписаниеРезультирующейВерсии) - - ЗарегистрированныеОбработчикиТрансляции = ПолучитьОбработчикиТрансляции(); - - ЦепочкиТрансляции = Новый Массив(); - НайтиЦепочкиТрансляции( - ЗарегистрированныеОбработчикиТрансляции, - ОписаниеИсходнойВерсии, - ОписаниеРезультирующейВерсии, - ЦепочкиТрансляции); - - Если ЦепочкиТрансляции.Количество() = 0 Тогда - Возврат Неопределено; - Иначе - Возврат ВыбратьЦепочкуТрансляции(ЦепочкиТрансляции); - КонецЕсли; - -КонецФункции - -// При наличии нескольких цепочек трансляции сообщения из одной версии в другую, -// возвращает наиболее оптимальную (содержащую меньше всего этапов). -// -// Параметры: -// ЦепочкиТрансляции - Массив, полученные в результате работы функции НайтиЦепочкиТрансляции(). -// -// Возвращаемое значение: -// ТаблицаЗначений - элемент массива, цепочка трансляции, содержащая наименьшее количество этапов. -Функция ВыбратьЦепочкуТрансляции(Знач ЦепочкиТрансляции) - - Если ЦепочкиТрансляции.Количество() = 1 Тогда - Возврат ЦепочкиТрансляции.Получить(0); - Иначе - - ТекущийВыбор = Неопределено; - - Для Каждого ЦепочкаТрансляции Из ЦепочкиТрансляции Цикл - - Если ТекущийВыбор = Неопределено Тогда - ТекущийВыбор = ЦепочкаТрансляции; - Иначе - ТекущийВыбор = ?(ЦепочкаТрансляции.Количество() < ТекущийВыбор.Количество(), - ЦепочкаТрансляции, ТекущийВыбор); - КонецЕсли; - - КонецЦикла; - - Возврат ТекущийВыбор; - - КонецЕсли; - -КонецФункции - -// Формирует человекочитаемое представление версии интерфейса сообщений. -// -// Параметры: -// ОписаниеВерсии - Структура, результат выполнения функции СформироватьОписаниеВерсии(). -// -// Возвращаемое значение: строка. -// -Функция СформироватьПредставлениеВерсии(ОписаниеВерсии) - - Результат = ""; - - Если ЗначениеЗаполнено(ОписаниеВерсии.Номер) Тогда - - Результат = ОписаниеВерсии.Номер; - - КонецЕсли; - - Если ЗначениеЗаполнено(ОписаниеВерсии.Пакет) Тогда - - ПредставлениеПакета = "{" + ОписаниеВерсии.Пакет + "}"; - - Если Не ПустаяСтрока(Результат) Тогда - Результат = Результат + " (" + ПредставлениеПакета + ")"; - Иначе - Результат = ПредставлениеПакета; - КонецЕсли; - - КонецЕсли; - - Возврат Результат; - -КонецФункции - -// Для внутреннего использования. -Функция ТранслироватьОбъект(Знач Объект, Знач ПравилаТрансляцииИнтерфейсов) - - ПакетИсходногоОбъекта = Объект.Тип().URIПространстваИмен; - ЦепочкаТрансляцииИнтерфейса = ПравилаТрансляцииИнтерфейсов.Получить(ПакетИсходногоОбъекта); - - Если ЦепочкаТрансляцииИнтерфейса = Неопределено Тогда - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось определить обработчик трансляции для пакета {%1}, невозможно выполнение стандартной трансляции для обработки данного свойства'"), - ПакетИсходногоОбъекта); - КонецЕсли; - - Если ЦепочкаТрансляцииИнтерфейса.Количество() > 0 Тогда - - Для Каждого ИтерацияТрансляции Из ЦепочкаТрансляцииИнтерфейса Цикл - - Обработчик = ИтерацияТрансляции.Значение; - - ВыполнятьСтандартнуюОбработку = Истина; - Обработчик.ПередТрансляцией(Объект, ВыполнятьСтандартнуюОбработку); - - Если ВыполнятьСтандартнуюОбработку Тогда - Объект = СтандартнаяОбработка(Объект, Обработчик.ПакетРезультирующейВерсии(), ПравилаТрансляцииИнтерфейсов); - Иначе - Объект = Обработчик.ТрансляцияСообщения(Объект); - КонецЕсли; - - КонецЦикла; - - Иначе - - // Отсутствие итераций в цепочке трансляции означает, что версия не изменилась, и нужно просто - // скопировать значения свойств исходного объекта в результирующий объект. - Объект = СтандартнаяОбработка(Объект, Объект.Тип().URIПространстваИмен, ПравилаТрансляцииИнтерфейсов); - - КонецЕсли; - - Возврат Объект; - -КонецФункции - -// Для внутреннего использования. -Функция СтандартнаяОбработка(Знач Объект, Знач ПакетРезультирующегоОбъекта, Знач ПравилаТрансляцииИнтерфейсов) - - ТипИсходногоОбъекта = Объект.Тип(); - Если ТипИсходногоОбъекта.URIПространстваИмен = ПакетРезультирующегоОбъекта Тогда - ТипРезультирующегоОбъекта = ТипИсходногоОбъекта; - Иначе - ТипРезультирующегоОбъекта = ФабрикаXDTO.Тип(ПакетРезультирующегоОбъекта, ТипИсходногоОбъекта.Имя); - Если ТипРезультирующегоОбъекта = Неопределено Тогда - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось выполнить стандартную обработку трансляции типа %1 в пакет %2: тип %1 не существует в пакете %2.'"), - "{" + ТипИсходногоОбъекта.URIПространстваИмен + "}" + ТипИсходногоОбъекта.Имя, - "{" + ПакетРезультирующегоОбъекта + "}"); - КонецЕсли; - КонецЕсли; - - РезультирующийОбъект = ФабрикаXDTO.Создать(ТипРезультирующегоОбъекта); - - Для Каждого Свойство Из ТипРезультирующегоОбъекта.Свойства Цикл - - СвойствоОригинала = ТипИсходногоОбъекта.Свойства.Получить(Свойство.ЛокальноеИмя); - Если СвойствоОригинала = Неопределено Тогда - - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось выполнить стандартную обработку конвертации типа %1 в тип %2: свойство %3 не определено для типа %1.'"), - "{" + ТипИсходногоОбъекта.URIПространстваИмен + "}" + ТипИсходногоОбъекта.Имя, - "{" + ТипРезультирующегоОбъекта.URIПространстваИмен + "}" + ТипРезультирующегоОбъекта.Имя, - Свойство.ЛокальноеИмя); - - КонецЕсли; - - КонецЦикла; - - Для Каждого Свойство Из ТипИсходногоОбъекта.Свойства Цикл - - ТранслируемоеСвойство = ТипРезультирующегоОбъекта.Свойства.Получить(Свойство.ЛокальноеИмя); - Если ТранслируемоеСвойство = Неопределено Тогда - ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Не удалось выполнить стандартную обработку конвертации типа %1 в тип %2: свойство %3 не определено для типа %2.'"), - "{" + ТипИсходногоОбъекта.URIПространстваИмен + "}" + ТипИсходногоОбъекта.Имя, - "{" + ТипРезультирующегоОбъекта.URIПространстваИмен + "}" + ТипРезультирующегоОбъекта.Имя, - Свойство.ЛокальноеИмя); - КонецЕсли; - - Если Объект.Установлено(Свойство) Тогда - - Если Свойство.ВерхняяГраница = 1 Тогда - - // ОбъектXDTO или ЗначениеXDTO. - ТранслируемоеЗначение = Объект.ПолучитьXDTO(Свойство); - - Если ТипЗнч(ТранслируемоеЗначение) = Тип("ОбъектXDTO") Тогда - РезультирующийОбъект.Установить(ТранслируемоеСвойство, ТранслироватьОбъект(ТранслируемоеЗначение, ПравилаТрансляцииИнтерфейсов)); - Иначе - РезультирующийОбъект.Установить(ТранслируемоеСвойство, ТранслируемоеЗначение); - КонецЕсли; - - Иначе - - // СписокXDTO - ТранслируемыйСписок = Объект.ПолучитьСписок(Свойство); - - Для Итератор = 0 По ТранслируемыйСписок.Количество() - 1 Цикл - - ЭлементСписка = ТранслируемыйСписок.ПолучитьXDTO(Итератор); - - Если ТипЗнч(ЭлементСписка) = Тип("ОбъектXDTO") Тогда - РезультирующийОбъект[Свойство.ЛокальноеИмя].Добавить(ТранслироватьОбъект(ЭлементСписка, ПравилаТрансляцииИнтерфейсов)); - Иначе - РезультирующийОбъект[Свойство.ЛокальноеИмя].Добавить(ЭлементСписка); - КонецЕсли; - - КонецЦикла; - - КонецЕсли; - - КонецЕсли; - - КонецЦикла; - - Возврат РезультирующийОбъект; - -КонецФункции - -// Для внутреннего использования. -Функция СформироватьПравилаТрансляцииИнтерфейсов(Знач Сообщение, Знач ИтерацияТрансляцииИнтерфейса) - - ПравилаТрансляцииИнтерфейсов = Новый Соответствие(); - - ПакетыИсходногоСообщения = Новый Массив(); - ПакетыРезультирующегоСообщения = Новый Массив(); - - ПакетыИсходногоСообщения = ПолучитьПакетыСообщения(Сообщение); - - ОбработчикТрансляцииИнтерфейса = ИтерацияТрансляцииИнтерфейса.Значение; - - ПакетыРезультирующегоСообщения.Добавить(ОбработчикТрансляцииИнтерфейса.ПакетРезультирующейВерсии()); - ЗависимостиПакетаКорреспондента = ПолучитьЗависимостиПакета(ОбработчикТрансляцииИнтерфейса.ПакетРезультирующейВерсии()); - ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ПакетыРезультирующегоСообщения, ЗависимостиПакетаКорреспондента, Истина); - - ПравилоТрансляцииИнтерфейса = Новый Соответствие(); - ПравилоТрансляцииИнтерфейса.Вставить(ИтерацияТрансляцииИнтерфейса.Ключ, ИтерацияТрансляцииИнтерфейса.Значение); - - ПравилаТрансляцииИнтерфейсов.Вставить(ОбработчикТрансляцииИнтерфейса.ПакетИсходнойВерсии(), ПравилоТрансляцииИнтерфейса); - - Для Каждого ПакетИсходногоСообщения Из ПакетыИсходногоСообщения Цикл - - ЦепочкаТрансляции = ПравилаТрансляцииИнтерфейсов.Получить(ПакетИсходногоСообщения); - - Если ЦепочкаТрансляции = Неопределено Тогда - - Если ПакетыРезультирующегоСообщения.Найти(ПакетИсходногоСообщения) <> Неопределено Тогда - - // Один и тот же пакет используется и в исходной версии интерфейса, и в результирующей. - // Транслировать его не потребуется, достаточно будет просто переложить значения свойств. - ПравилаТрансляцииИнтерфейсов.Вставить(ПакетИсходногоСообщения, Новый Соответствие()); - - Иначе - - // Пакет исходной версии интерфейса сообщения не используется в результирующей версии интерфейса сообщения. - // Нужно определить, в какой пакет результирующей версии его необходимо транслировать. - - ВозможныеЦепочки = Новый Массив(); - Для Каждого ПакетРезультирующегоСообщения Из ПакетыРезультирующегоСообщения Цикл - - ЦепочкаПакета = ПолучитьЦепочкуТрансляции( - СформироватьОписаниеВерсии( - , ПакетИсходногоСообщения), - СформироватьОписаниеВерсии( - , ПакетРезультирующегоСообщения)); - - Если ЗначениеЗаполнено(ЦепочкаПакета) Тогда - ВозможныеЦепочки.Добавить(ЦепочкаПакета); - КонецЕсли; - - КонецЦикла; - - Если ВозможныеЦепочки.Количество() > 0 Тогда - - ИспользуемаяЦепочка = ВыбратьЦепочкуТрансляции(ВозможныеЦепочки); - ПравилаТрансляцииИнтерфейсов.Вставить(ПакетИсходногоСообщения, ИспользуемаяЦепочка); - - КонецЕсли; - - КонецЕсли; - - КонецЕсли; - - КонецЦикла; - - Возврат ПравилаТрансляцииИнтерфейсов; - -КонецФункции - -// Возвращает массив, заполненный пространствами имен, используемыми в сообщении. -// -// Параметры: -// Сообщение - ОбъектXDTO, сообщение, для которого требуется получить перечень -// пространств имен пакетов. -// -// Возвращаемое значение: -// Массив, тип элементов: строка. -// -Функция ПолучитьПакетыСообщения(Знач Сообщение) - - Результат = Новый Массив(); - - // Пакет XDTO-объекта - ПакетОбъектаСообщения = Сообщение.Тип().URIПространстваИмен; - Результат.Добавить(ПакетОбъектаСообщения); - - // Зависимости пакета XDTO-объекта. - Зависимости = ПолучитьЗависимостиПакета(ПакетОбъектаСообщения); - ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Результат, Зависимости, Истина); - - // Свойства XDTO-объекта - СвойстваОбъекта = Сообщение.Свойства(); - Для Каждого Свойство Из СвойстваОбъекта Цикл - - Если Сообщение.Установлено(Свойство) Тогда - - Если Свойство.ВерхняяГраница = 1 Тогда - - ЗначениеСвойства = Сообщение.ПолучитьXDTO(Свойство); - - Если ТипЗнч(ЗначениеСвойства) = Тип("ОбъектXDTO") Тогда - - ПакетыСвойства = ПолучитьПакетыСообщения(ЗначениеСвойства); - ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Результат, ПакетыСвойства, Истина); - - КонецЕсли; - - Иначе - - СписокСвойств = Сообщение.ПолучитьСписок(Свойство); - Итератор = 0; - - Для Итератор = 0 По СписокСвойств.Количество() - 1 Цикл - - ЭлементСписка = СписокСвойств.ПолучитьXDTO(Итератор); - - Если ТипЗнч(ЭлементСписка) = Тип("ОбъектXDTO") Тогда - - ПакетыСвойства = ПолучитьПакетыСообщения(ЭлементСписка); - ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Результат, ПакетыСвойства, Истина); - - КонецЕсли; - - КонецЦикла; - - КонецЕсли; - - КонецЕсли; - - КонецЦикла; - - Возврат Результат; - -КонецФункции - -// Процедура используется для построения цепочек выполнения обработчиков трансляции -// при трансляции сообщения из одной версии в другую. -// -// Параметры: -// ОбработчикиТрансляции - ТаблицаЗначений, структура которой была получена с помощью -// функции СформироватьТаблицуОбработчиковТрансляции(), содержащая -// все зарегистрированные в конфигурации обработчики трансляции сообщений, -// ОписаниеИсходнойВерсии - Структура, описание исходной версии транслируемого сообщения, -// достаточное для однозначного определения обработчиков в таблице трансляции. -// Поля структуры: -// Номер - строка, исходная версия сообщения в формате РР.{П|ПП}.ЗЗ.СС, -// Пакет - строка, пространство имен исходной версии сообщения, -// ОписаниеРезультирующейВерсии - Структура, описание результирующей версии, в которую -// требуется транслировать сообщение, достаточное для однозначного определения -// обработчиков в таблице трансляции. -// Поля структуры: -// Номер - строка, результирующая версия сообщения в -// формате РР.{П|ПП}.ЗЗ.СС, -// Пакет - строка, пространство имен результирующей версии -// сообщения, -// ЦепочкиТрансляции - Массив, после выполнения процедуры в данный параметр будут помещены все -// возможные цепочки трансляции сообщения из исходной в результирующую версию. Элементами -// массива являются фиксированные соответствия (ключ - пространство имен пакета результирующей -// версии, значение - ОбщийМодуль, являющийся обработчиком трансляции), -// ТекущаяЦепочка - служебный параметр, используемый при рекурсивном выполнении процедуры, -// при первоначальном вызове должен быть не установлен. -// -Процедура НайтиЦепочкиТрансляции(Знач ОбработчикиТрансляции, Знач ОписаниеИсходнойВерсии, - Знач ОписаниеРезультирующейВерсии, ЦепочкиТрансляции, ТекущаяЦепочка = Неопределено) - - Фильтр = Новый Структура(); - Если ЗначениеЗаполнено(ОписаниеИсходнойВерсии.Номер) Тогда - Фильтр.Вставить("ИсходнаяВерсия", ОписаниеИсходнойВерсии.Номер); - КонецЕсли; - Если ЗначениеЗаполнено(ОписаниеИсходнойВерсии.Пакет) Тогда - Фильтр.Вставить("ПакетИсходнойВерсии", ОписаниеИсходнойВерсии.Пакет); - КонецЕсли; - - Ветки = ОбработчикиТрансляции.Скопировать(Фильтр); - Для Каждого Ветка Из Ветки Цикл - - Если ТекущаяЦепочка = Неопределено Тогда - ТекущаяЦепочка = Новый Соответствие(); - КонецЕсли; - ТекущаяЦепочка.Вставить(Ветка.ПакетРезультирующейВерсии, Ветка.Обработчик); - - Если Ветка.РезультирующаяВерсия = ОписаниеРезультирующейВерсии.Номер - ИЛИ Ветка.ПакетРезультирующейВерсии = ОписаниеРезультирующейВерсии.Пакет Тогда - ЦепочкиТрансляции.Добавить(Новый ФиксированноеСоответствие(ТекущаяЦепочка)); - Иначе - НайтиЦепочкиТрансляции(ОбработчикиТрансляции, - СформироватьОписаниеВерсии( - , Ветка.ПакетРезультирующейВерсии), - СформироватьОписаниеВерсии( - ОписаниеРезультирующейВерсии.Номер, ОписаниеРезультирующейВерсии.Пакет), - ЦепочкиТрансляции, ТекущаяЦепочка); - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - -// Конструктор таблицы обработчиков трансляции. -Функция СоздатьТаблицуОбработчиковТрансляции() - - Результат = Новый ТаблицаЗначений(); - Результат.Колонки.Добавить("ИсходнаяВерсия"); - Результат.Колонки.Добавить("ПакетИсходнойВерсии"); - Результат.Колонки.Добавить("РезультирующаяВерсия"); - Результат.Колонки.Добавить("ПакетРезультирующейВерсии"); - Результат.Колонки.Добавить("Обработчик"); - - Возврат Результат; - -КонецФункции - -// Возвращает таблицу обработчиков трансляции сообщений, существующих в конфигурации. -// -Функция ПолучитьОбработчикиТрансляции() - - Результат = СоздатьТаблицуОбработчиковТрансляции(); - МассивОбработчиковТрансляции = Новый Массив(); - - ОбработчикиТрансляцииСообщений = ИнтерфейсыСообщенийВМоделиСервиса.ПолучитьОбработчикиТрансляцииСообщений(); - ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивОбработчиковТрансляции, ОбработчикиТрансляцииСообщений); - - ТрансляцияXDTOПереопределяемый.ЗаполнитьОбработчикиТрансляцииСообщений(МассивОбработчиковТрансляции); - - Для Каждого Обработчик Из МассивОбработчиковТрансляции Цикл - - РегистрацияОбработчика = Результат.Добавить(); - РегистрацияОбработчика.ИсходнаяВерсия = Обработчик.ИсходнаяВерсия(); - РегистрацияОбработчика.РезультирующаяВерсия = Обработчик.РезультирующаяВерсия(); - РегистрацияОбработчика.ПакетИсходнойВерсии = Обработчик.ПакетИсходнойВерсии(); - РегистрацияОбработчика.ПакетРезультирующейВерсии = Обработчик.ПакетРезультирующейВерсии(); - РегистрацияОбработчика.Обработчик = Обработчик; - - КонецЦикла; - - Возврат Результат; - -КонецФункции - -#КонецОбласти diff --git a/SSL/src/CommonModules/ТрансляцияXDTOСлужебный/ТрансляцияXDTOСлужебный.mdo b/SSL/src/CommonModules/ТрансляцияXDTOСлужебный/ТрансляцияXDTOСлужебный.mdo deleted file mode 100644 index d63646d64..000000000 --- a/SSL/src/CommonModules/ТрансляцияXDTOСлужебный/ТрансляцияXDTOСлужебный.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - ТрансляцияXDTOСлужебный - - ru - Трансляция XDTO Служебный - - true - true - true - diff --git a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовПереопределяемый/Module.bsl b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовПереопределяемый/Module.bsl index f3c116d6d..33fe02146 100644 --- a/SSL/src/CommonModules/УдалениеПомеченныхОбъектовПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УдалениеПомеченныхОбъектовПереопределяемый/Module.bsl @@ -8,13 +8,13 @@ #Область ПрограммныйИнтерфейс -// Вызывается перед поиском объектов помеченных на удаление. +// Вызывается перед поиском объектов, помеченных на удаление. // В этом обработчике можно организовать удаление устаревших ключей аналитик и любых других объектов информационной // базы, ставших более не нужными. // // Параметры: // Параметры - Структура - со свойствами: -// * Интерактивное - Булево - Истина, если удаление помеченных объектов запущено пользователем. +// * Интерактивное - Булево - Истина, если удаление помеченных объектов запущено пользователем; // Ложь, если удаление запущено по расписанию регламентного задания. // Процедура ПередПоискомПомеченныхНаУдаление(Параметры) Экспорт diff --git a/SSL/src/CommonModules/УправлениеДоступом/Module.bsl b/SSL/src/CommonModules/УправлениеДоступом/Module.bsl index 4bb8a4873..fd4c9c49b 100644 --- a/SSL/src/CommonModules/УправлениеДоступом/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступом/Module.bsl @@ -601,7 +601,7 @@ // документов, записей регистров и др., чтобы заблокировать форму, если изменение запрещено. // // Параметры: -// Форма - УправляемаяФорма - форма элемента объекта или записи регистра. +// Форма - ФормаКлиентскогоПриложения - форма элемента объекта или записи регистра. // // ТекущийОбъект - СправочникОбъект, // ДокументОбъект, @@ -626,6 +626,8 @@ КонецПроцедуры +// АПК:142-выкл - 5 необязательных параметров для обратной совместимости. + // Настраивает форму значения доступа, которое использует группы значений доступа // для выбора разрешенных значений в группах доступа пользователей. // @@ -646,28 +648,29 @@ // тогда элемент формы скрывается. // // Параметры: -// Форма - УправляемаяФорма - форма значения доступа, использующего группы -// для выбора разрешенных значений. +// Форма - ФормаКлиентскогоПриложения - форма значения доступа, +// использующего группы для выбора разрешенных значений. // -// Реквизит - Неопределено - означает имя реквизита формы "Объект.ГруппаДоступа". -// - Строка - имя реквизита формы, содержащего группу доступа. +// ДополнительныеПараметры - Структура - см. ПараметрыПриСозданииФормыЗначенияДоступа. // -// Элементы - Неопределено - означает имя элемента формы "ГруппаДоступа". -// - Строка - имя элемента формы. -// - Массив - имена элементов формы. +// УдалитьЭлементы - Неопределено - устарел, следует использовать ДополнительныеПараметры. +// УдалитьТипЗначения - Неопределено - устарел, следует использовать ДополнительныеПараметры. +// УдалитьСозданиеНового - Неопределено - устарел, следует использовать ДополнительныеПараметры. // -// ТипЗначения - Неопределено - означает: получить тип из реквизита формы "Объект.Ссылка". -// - Тип - тип ссылки значения доступа. -// -// СозданиеНового - Неопределено - означает: получить значение "НЕ ЗначениеЗаполнено(Форма.Объект.Ссылка)" -// для определения того, создается новое значение доступа или нет. -// - Булево - используется указанное значение. -// -Процедура ПриСозданииФормыЗначенияДоступа(Форма, - Реквизит = Неопределено, - Элементы = Неопределено, - ТипЗначения = Неопределено, - СозданиеНового = Неопределено) Экспорт +Процедура ПриСозданииФормыЗначенияДоступа(Форма, ДополнительныеПараметры = Неопределено, + УдалитьЭлементы = Неопределено, УдалитьТипЗначения = Неопределено, УдалитьСозданиеНового = Неопределено) Экспорт + + Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда + Реквизит = ДополнительныеПараметры.Реквизит; + Элементы = ДополнительныеПараметры.Элементы; + ТипЗначения = ДополнительныеПараметры.ТипЗначения; + СозданиеНового = ДополнительныеПараметры.СозданиеНового; + Иначе + Реквизит = ДополнительныеПараметры; + Элементы = УдалитьЭлементы; + ТипЗначения = УдалитьТипЗначения; + СозданиеНового = УдалитьСозданиеНового; + КонецЕсли; ЗаголовокОшибки = НСтр("ru = 'Ошибка в процедуре ПриСозданииФормыЗначенияДоступа @@ -821,6 +824,32 @@ КонецПроцедуры +// АПК:142-вкл + +// Описание дополнительных параметров, используемых в процедуре ПриСозданииФормыЗначенияДоступа. +// +// Возвращаемое значение: +// Структура - со свойствами: +// * Реквизит - Неопределено - означает имя реквизита формы "Объект.ГруппаДоступа". +// - Строка - имя реквизита формы, содержащего группу доступа. +// +// * Элементы - Неопределено - означает имя элемента формы "ГруппаДоступа". +// - Строка - имя элемента формы. +// - Массив - имена элементов формы. +// +// * ТипЗначения - Неопределено - означает: получить тип из реквизита формы "Объект.Ссылка". +// - Тип - тип ссылки значения доступа. +// +// * СозданиеНового - Неопределено - означает: получить значение "НЕ ЗначениеЗаполнено(Форма.Объект.Ссылка)" +// для определения того, создается новое значение доступа или нет. +// - Булево - используется указанное значение. +// +Функция ПараметрыПриСозданииФормыЗначенияДоступа() Экспорт + + Возврат Новый Структура("Реквизит, Элементы, ТипЗначения, СозданиеНового"); + +КонецФункции + // Возвращает массив групп значений доступа, разрешающих изменять значения доступа. // // Поддерживается только для случая, когда выбирается одна группа значений доступа, а не несколько. @@ -1750,6 +1779,7 @@ // Процедура ЗаменитьПраваВНастройкахПравОбъектов(ТаблицаПереименований) Экспорт + // АПК:96-выкл: допустимо, так как строки не должны повторятся и это разовая операция в обработчике обновления. Запрос = Новый Запрос; Запрос.Параметры.Вставить("ТаблицаПереименований", ТаблицаПереименований); Запрос.Текст = @@ -1837,6 +1867,7 @@ | НастройкиПрав.ПорядокНастройки |ИЗ | НастройкиПрав КАК НастройкиПрав"; + // АПК:96-вкл: допустимо, так как строки не должны повторятся и это разовая операция в обработчике обновления. Блокировка = Новый БлокировкаДанных; Блокировка.Добавить("РегистрСведений.НастройкиПравОбъектов"); diff --git a/SSL/src/CommonModules/УправлениеДоступомСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомСлужебный/Module.bsl index 071bb9200..713f19c97 100644 --- a/SSL/src/CommonModules/УправлениеДоступомСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомСлужебный/Module.bsl @@ -1201,37 +1201,6 @@ Обработчик.РежимВыполнения = "Оперативно"; Обработчик.Процедура = "УправлениеДоступомСлужебный.ЗаполнитьНаименованиеПредопределенныхЭлементов"; - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.2.8"; - Обработчик.Процедура = "РегистрыСведений.УдалитьПраваПоЗначениямДоступа.ПереместитьДанныеВНовыйРегистр"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.2.8"; - Обработчик.Процедура = "УправлениеДоступомСлужебный.ПреобразоватьИменаРолейВИдентификаторы"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.2.8"; - Обработчик.Процедура = "РегистрыСведений.ГруппыЗначенийДоступа.ОбновитьГруппировкиПользователей"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.2.16"; - Обработчик.Процедура = "РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.2.16"; - Обработчик.Процедура = "УправлениеДоступом.ОбновитьРолиПользователей"; - Обработчик.РежимВыполнения = "Оперативно"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.3.5"; - Обработчик.Процедура = "РегистрыСведений.ГруппыЗначенийДоступа.ОбновитьГруппировкиПользователей"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.4.15"; - Обработчик.Процедура = "Справочники.ПрофилиГруппДоступа.ЗаполнитьИдентификаторыПоставляемыхДанных"; - Обработчик.ВыполнятьВГруппеОбязательных = Истина; - Обработчик.Приоритет = 1; - // Должен выполнятся после обработчика ЗаполнитьИдентификаторыПоставляемыхДанных. Обработчик = Обработчики.Добавить(); Обработчик.Версия = "1.0.0.1"; @@ -1241,78 +1210,6 @@ Обработчик.ВыполнятьВГруппеОбязательных = Истина; Обработчик.Приоритет = 1; - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.15"; - Обработчик.Процедура = "Справочники.ПрофилиГруппДоступа.ПреобразоватьИдентификаторыВидовДоступа"; - Обработчик.РежимВыполнения = "Монопольно"; - Обработчик.ВыполнятьВГруппеОбязательных = Истина; - Обработчик.Приоритет = 1; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.15"; - Обработчик.Процедура = "РегистрыСведений.ГруппыЗначенийДоступа.ОбновитьГруппировкиПользователей"; - Обработчик.РежимВыполнения = "Монопольно"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.15"; - Обработчик.Процедура = "РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра"; - Обработчик.РежимВыполнения = "Монопольно"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.15"; - Обработчик.Процедура = "РегистрыСведений.УдалитьГруппыЗначенийДоступа.ПереместитьДанныеВНовыйРегистр"; - Обработчик.РежимВыполнения = "Монопольно"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.15"; - Обработчик.Процедура = "РегистрыСведений.НаследованиеНастроекПравОбъектов.ОбновитьДанныеРегистра"; - Обработчик.РежимВыполнения = "Монопольно"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.15"; - Обработчик.Процедура = "РегистрыСведений.НастройкиПравОбъектов.ОбновитьВспомогательныеДанныеРегистра"; - Обработчик.РежимВыполнения = "Монопольно"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.15"; - Обработчик.Процедура = "УправлениеДоступомСлужебный.ВключитьЗаполнениеДанныхДляОграниченияДоступа"; - Обработчик.РежимВыполнения = "Монопольно"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.35"; - Обработчик.Процедура = "РегистрыСведений.ГруппыЗначенийДоступа.ОбновитьГруппыПустыхЗначенийДоступа"; - Обработчик.РежимВыполнения = "Оперативно"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.3.27"; - Обработчик.Процедура = "РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра"; - Обработчик.РежимВыполнения = "Оперативно"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.5.4"; - Обработчик.Процедура = "РегистрыСведений.УдалитьГруппыЗначенийДоступа.ОчиститьРегистр"; - Обработчик.РежимВыполнения = "Оперативно"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.5.7"; - Обработчик.Процедура = "УправлениеДоступом.ОбновитьРолиПользователей"; - Обработчик.РежимВыполнения = "Оперативно"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.1.61"; - Обработчик.Процедура = "УправлениеДоступомСлужебный.ЗаполнитьНазначениеПрофилейГруппДоступа"; - Обработчик.РежимВыполнения = "Оперативно"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.1.55"; - Обработчик.Процедура = "УправлениеДоступомСлужебный.ЗаменитьУдаленныеРолиВПрофиляхГруппДоступа"; - Обработчик.РежимВыполнения = "Оперативно"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.2.23"; - Обработчик.Процедура = "РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра"; - Обработчик.РежимВыполнения = "Оперативно"; - Обработчик = Обработчики.Добавить(); Обработчик.Версия = "2.4.1.1"; Обработчик.Процедура = "УправлениеДоступомСлужебный.ОбновитьДанныеПрофиляОткрытиеВнешнихОтчетовИОбработок"; @@ -1554,9 +1451,7 @@ // См. СтандартныеПодсистемыСервер.ПриОтправкеДанныхГлавному. Процедура ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель) Экспорт - Если ОбъектПодсистемыУправлениеДоступомТолькоДляСозданияНачальногоОбраза(ЭлементДанных) - Или ИмяОбъектаПодсистемыУправлениеДоступомНачинаетсяСУдалить(ЭлементДанных) Тогда - + Если ОбъектПодсистемыУправлениеДоступомТолькоДляСозданияНачальногоОбраза(ЭлементДанных) Тогда ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать; Возврат; КонецЕсли; @@ -1595,9 +1490,7 @@ Возврат; КонецЕсли; - Если ОбъектПодсистемыУправлениеДоступомТолькоДляСозданияНачальногоОбраза(ЭлементДанных) - Или ИмяОбъектаПодсистемыУправлениеДоступомНачинаетсяСУдалить(ЭлементДанных) Тогда - + Если ОбъектПодсистемыУправлениеДоступомТолькоДляСозданияНачальногоОбраза(ЭлементДанных) Тогда ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать; Возврат; КонецЕсли; @@ -1612,9 +1505,7 @@ Возврат; КонецЕсли; - Если ОбъектПодсистемыУправлениеДоступомТолькоДляСозданияНачальногоОбраза(ЭлементДанных) - Или ИмяОбъектаПодсистемыУправлениеДоступомНачинаетсяСУдалить(ЭлементДанных) Тогда - + Если ОбъектПодсистемыУправлениеДоступомТолькоДляСозданияНачальногоОбраза(ЭлементДанных) Тогда ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать; Возврат; КонецЕсли; @@ -1631,9 +1522,7 @@ Возврат; КонецЕсли; - Если ОбъектПодсистемыУправлениеДоступомТолькоДляСозданияНачальногоОбраза(ЭлементДанных) - Или ИмяОбъектаПодсистемыУправлениеДоступомНачинаетсяСУдалить(ЭлементДанных) Тогда - + Если ОбъектПодсистемыУправлениеДоступомТолькоДляСозданияНачальногоОбраза(ЭлементДанных) Тогда ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать; Возврат; КонецЕсли; @@ -1946,22 +1835,6 @@ // Обработчики событий библиотеки ТехнологияСервиса. -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке. -Процедура ПриЗаполненииТиповОбщихДанныхНеТребующихСопоставлениеСсылокПриЗагрузке(Типы) Экспорт - - // В разделенных данных используются ссылки только на предопределенные элементы - // плана видов характеристик УдалитьВидыДоступа. - Типы.Добавить(Метаданные.ПланыВидовХарактеристик.УдалитьВидыДоступа); - -КонецПроцедуры - -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. -Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт - - Типы.Добавить(Метаданные.ПланыВидовХарактеристик.УдалитьВидыДоступа); - -КонецПроцедуры - // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных. Процедура ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков) Экспорт МодульВыгрузкаЗагрузкаДанныхСлужебныйСобытия = ОбщегоНазначения.ОбщийМодуль("ВыгрузкаЗагрузкаДанныхСлужебныйСобытия"); @@ -2332,7 +2205,7 @@ НовыйАдминистраторИБ = Ложь; Отказ = Ложь; - ИнтеграцияСТехнологиейСервиса.ПриОбновленииРолейПользователяИБ(ИдентификаторПользователяИБ, Отказ); + ИнтеграцияПодсистемБСП.ПриОбновленииРолейПользователяИБ(ИдентификаторПользователяИБ, Отказ); Если Отказ Тогда Продолжить; КонецЕсли; @@ -2447,6 +2320,8 @@ ОбновитьРолиПользователейИБ(ОбновляемыеПользователиИБ, ПарольПользователяСервиса); КонецЕсли; + ОтключитьУВсехРасширенийФлажокИспользоватьОсновныеРолиДляВсехПользователей(); + КонецПроцедуры // Проверка группы доступа Администраторы перед записью. @@ -2792,13 +2667,7 @@ КонецЦикла; - Если КоличествоДанных < 10000 - И НЕ РегистрыСведений.УдалитьНаборыЗначенийДоступа.ПереместитьДанныеВНовыйРегистр() Тогда - // Перед заполнением наборов значений доступа выполняется перенос - // наборов значений доступа из старого регистра. - Возврат; - - ИначеЕсли КоличествоДанных < 10000 Тогда + Если КоличествоДанных < 10000 Тогда // Заполнение регистра сведений НаборыЗначенийДоступа. ТипыОбъектов = УправлениеДоступомСлужебныйПовтИсп.ТипыОбъектовВПодпискахНаСобытия( @@ -2829,8 +2698,6 @@ КонецЕсли; КонецЦикла; КонецЕсли; - Иначе - РегистрыСведений.УдалитьНаборыЗначенийДоступа.ПереместитьДанныеВНовыйРегистр(); КонецЕсли; // Обновление кэш-реквизитов в наборах значений доступа. @@ -3273,7 +3140,7 @@ // @ИмяТаблицы - Строка. // // Параметры: -// Форма - УправляемаяФорма, которую требуется настроить для +// Форма - ФормаКлиентскогоПриложения, которую требуется настроить для // редактирования разрешенных значений. // // ЭтоПрофиль - Булево - указывает, что возможна настройка видов доступа @@ -4280,49 +4147,6 @@ КонецПроцедуры -// Преобразует реквизит УдалитьРоль в реквизит Роль в табличной части Роли -// справочника Профили групп доступа. -// -Процедура ПреобразоватьИменаРолейВИдентификаторы() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | Роли.Ссылка КАК Ссылка - |ИЗ - | Справочник.ПрофилиГруппДоступа.Роли КАК Роли - |ГДЕ - | НЕ(Роли.Роль <> ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) - | И Роли.УдалитьРоль = """")"; - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - Объект = Выборка.Ссылка.ПолучитьОбъект(); - Индекс = Объект.Роли.Количество()-1; - Пока Индекс >= 0 Цикл - Строка = Объект.Роли[Индекс]; - Если ЗначениеЗаполнено(Строка.Роль) Тогда - Строка.УдалитьРоль = ""; - ИначеЕсли ЗначениеЗаполнено(Строка.УдалитьРоль) Тогда - МетаданныеРоли = Метаданные.Роли.Найти(Строка.УдалитьРоль); - Если МетаданныеРоли <> Неопределено Тогда - Строка.УдалитьРоль = ""; - Строка.Роль = ОбщегоНазначения.ИдентификаторОбъектаМетаданных( - МетаданныеРоли); - Иначе - Объект.Роли.Удалить(Индекс); - КонецЕсли; - Иначе - Объект.Роли.Удалить(Индекс); - КонецЕсли; - Индекс = Индекс-1; - КонецЦикла; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); - КонецЦикла; - -КонецПроцедуры - // Обновляет настройки и включает регламентное задание. Процедура ВключитьЗаполнениеДанныхДляОграниченияДоступа() Экспорт @@ -4354,122 +4178,6 @@ КонецПроцедуры -// Заполняет назначение профилей групп доступа. -Процедура ЗаполнитьНазначениеПрофилейГруппДоступа() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ПрофилиГруппДоступа.Ссылка КАК Ссылка - |ИЗ - | Справочник.ПрофилиГруппДоступа КАК ПрофилиГруппДоступа - |ГДЕ - | НЕ(ПрофилиГруппДоступа.ИдентификаторПоставляемыхДанных <> &ПустойУникальныйИдентификатор - | И НЕ ПрофилиГруппДоступа.ПоставляемыйПрофильИзменен) - | И НЕ ПрофилиГруппДоступа.ЭтоГруппа - | И НЕ ПрофилиГруппДоступа.Ссылка В - | (ВЫБРАТЬ РАЗЛИЧНЫЕ - | ПрофилиГруппДоступаНазначение.Ссылка - | ИЗ - | Справочник.ПрофилиГруппДоступа.Назначение КАК ПрофилиГруппДоступаНазначение)"; - - Запрос.УстановитьПараметр("ПустойУникальныйИдентификатор", - ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор()); - - Результат = Запрос.Выполнить(); - Выборка = Результат.Выбрать(); - - Пока Выборка.Следующий() Цикл - ПрофильОбъект = Выборка.Ссылка.ПолучитьОбъект(); - НоваяСтрока = ПрофильОбъект.Назначение.Добавить(); - НоваяСтрока.ТипПользователей = Справочники.Пользователи.ПустаяСсылка(); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ПрофильОбъект); - КонецЦикла; - -КонецПроцедуры - -// Заменяет удаленные роли на новые. -Процедура ЗаменитьУдаленныеРолиВПрофиляхГруппДоступа() Экспорт - - // Заполнение списка удаленных ролей и соответствующих новых ролей. - СоответствиеРолей = Новый Соответствие; - - // ДобавлениеИзменениеБазовойНСИ - ИмяРоли = "? ДобавлениеИзменениеБазовойНСИ"; - - МассивРолей = Новый Массив; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда - МассивРолей.Добавить("ДобавлениеИзменениеДополнительныхРеквизитовИСведений"); - КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда - МассивРолей.Добавить("ДобавлениеИзменениеКурсовВалют"); - КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ГрафикиРаботы") Тогда - МассивРолей.Добавить("ДобавлениеИзменениеГрафиковРаботы"); - КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда - МассивРолей.Добавить("ДобавлениеИзменениеВидовКонтактнойИнформации"); - КонецЕсли; - СоответствиеРолей.Вставить(ИмяРоли, МассивРолей); - - // ДобавлениеИзменениеОбщейБазовойНСИ - ИмяРоли = "? ДобавлениеИзменениеОбщейБазовойНСИ"; - - МассивРолей = Новый Массив; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда - МассивРолей.Добавить("ДобавлениеИзменениеАдресныхСведений"); - КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Банки") Тогда - МассивРолей.Добавить("ДобавлениеИзменениеБанков"); - КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КалендарныеГрафики") Тогда - МассивРолей.Добавить("ДобавлениеИзменениеКалендарныхГрафиков"); - КонецЕсли; - СоответствиеРолей.Вставить(ИмяРоли, МассивРолей); - - // ИзменениеТекущегоПользователя - ИмяРоли = "? ИзменениеТекущегоПользователя"; - - МассивРолей = Новый Массив; - СоответствиеРолей.Вставить(ИмяРоли, МассивРолей); - - // ИзменениеТекущегоВнешнегоПользователя - ИмяРоли = "? ИзменениеТекущегоВнешнегоПользователя"; - - МассивРолей = Новый Массив; - СоответствиеРолей.Вставить(ИмяРоли, МассивРолей); - - // ЧтениеБазовойНСИ - ИмяРоли = "? ЧтениеБазовойНСИ"; - - МассивРолей = Новый Массив; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ГрафикиРаботы") Тогда - МассивРолей.Добавить("ЧтениеГрафиковРаботы"); - КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда - МассивРолей.Добавить("ЧтениеКурсовВалют"); - КонецЕсли; - СоответствиеРолей.Вставить(ИмяРоли, МассивРолей); - - // ЧтениеОбщейБазовойНСИ - ИмяРоли = "? ЧтениеОбщейБазовойНСИ"; - - МассивРолей = Новый Массив; - СоответствиеРолей.Вставить(ИмяРоли, МассивРолей); - - // ДобавлениеИзменениеСтранМира - ИмяРоли = "? ДобавлениеИзменениеСтранМира"; - - МассивРолей = Новый Массив; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда - МассивРолей.Добавить("ДобавлениеИзменениеВидовКонтактнойИнформации"); - КонецЕсли; - СоответствиеРолей.Вставить(ИмяРоли, МассивРолей); - - УправлениеДоступом.ЗаменитьРолиВПрофилях(СоответствиеРолей); - -КонецПроцедуры - // Обновляет данные профиля "ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок". Процедура ОбновитьДанныеПрофиляОткрытиеВнешнихОтчетовИОбработок() Экспорт @@ -4858,18 +4566,6 @@ КонецПроцедуры -// Для процедур ПриОтправкеДанныхГлавному, ПриОтправкеДанныхПодчиненному, -// ПриПолученииДанныхОтГлавного, ПриПолученииДанныхОтПодчиненного. -// -Функция ИмяОбъектаПодсистемыУправлениеДоступомНачинаетсяСУдалить(ЭлементДанных) - - Возврат ТипЗнч(ЭлементДанных) = Тип("ПланВидовХарактеристикОбъект.УдалитьВидыДоступа") - Или ТипЗнч(ЭлементДанных) = Тип("РегистрСведенийНаборЗаписей.УдалитьГруппыЗначенийДоступа") - Или ТипЗнч(ЭлементДанных) = Тип("РегистрСведенийНаборЗаписей.УдалитьНаборыЗначенийДоступа") - Или ТипЗнч(ЭлементДанных) = Тип("РегистрСведенийНаборЗаписей.УдалитьПраваПоЗначениямДоступа"); - -КонецФункции - // Для процедур ПриОтправкеДанныхГлавному, ПриОтправкеДанныхПодчиненному, // ПриПолученииДанныхОтГлавного, ПриПолученииДанныхОтПодчиненного. // @@ -5616,6 +5312,33 @@ КонецПроцедуры +Процедура ОтключитьУВсехРасширенийФлажокИспользоватьОсновныеРолиДляВсехПользователей() + + Отбор = Новый Структура("ИспользоватьОсновныеРолиДляВсехПользователей", Истина); + Расширения = РасширенияКонфигурации.Получить(Отбор); + + Для Каждого Расширение Из Расширения Цикл + Если Не Расширение.ИспользоватьОсновныеРолиДляВсехПользователей Тогда + Продолжить; + КонецЕсли; + Расширение.ИспользоватьОсновныеРолиДляВсехПользователей = Ложь; + Попытка + Расширение.Записать(); + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не удалось отключить флажок ""Использовать основные роли для всех пользователей"" + |у расширения ""%1"" по причине: + | + |%2'"), + Расширение.Синоним, + КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); + ВызватьИсключение ТекстОшибки; + КонецПопытки; + КонецЦикла; + +КонецПроцедуры + // Для процедур ЗарегистрироватьНедоступнуюРоль, ЗарегистрироватьНенайденнуюРоль. Функция ПрофилиПользователяСРолью(Пользователь, Роль) @@ -5661,7 +5384,7 @@ КонецЕсли; Если ПарольПользователяСервиса = Неопределено Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей(); Иначе @@ -6762,19 +6485,6 @@ СвойстваВидовДоступа.Вставить("ВладелецНаборовЗначенийДоступа", СтрокаДанныхДляХеширования(Метаданные.ОпределяемыеТипы.ВладелецНаборовЗначенийДоступаОбъект.Тип)); - // Проверка совместимости перехода на новые версии программы. - Если Параметры.ОпределяемыеТипыЗначенийДоступа.Получить( - ТипЗнч(ПланыВидовХарактеристик.УдалитьВидыДоступа.ПустаяСсылка())) = Неопределено Тогда - - ОписаниеОшибки = - НСтр("ru = 'Тип ПланВидовХарактеристикСсылка.УдалитьВидыДоступа, - |необходимый для перехода на новые версии программы - |не указан в определяемом типе ""Значение доступа"".'"); - - ТекстОшибки = Параметры.ЗаголовокОшибки + ОписаниеОшибки; - ВызватьИсключение ТекстОшибки; - КонецЕсли; - ПроверитьТипыПодпискиОбновитьГруппыЗначенийДоступа(ЗначенияДоступаСГруппами); Возврат ОбщегоНазначения.ФиксированныеДанные(СвойстваВидовДоступа); @@ -9006,11 +8716,10 @@ УстановитьЗапретОбновленияДоступа(Истина, Истина); Если ТипЗнч(Исполнитель) = Тип("ФоновоеЗадание") Тогда - Попытка - Исполнитель.ОжидатьЗавершения(15); - Исключение + Исполнитель = Исполнитель.ОжидатьЗавершенияВыполнения(15); + Если Исполнитель.Состояние = СостояниеФоновогоЗадания.Активно Тогда Исполнитель.Отменить(); - КонецПопытки; + КонецЕсли; КонецЕсли; Отбор = Новый Структура; @@ -9019,11 +8728,10 @@ ОсновныеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); Для Каждого ОсновноеЗадание Из ОсновныеЗадания Цикл - Попытка - ОсновноеЗадание.ОжидатьЗавершения(15); - Исключение + ОсновноеЗадание = ОсновноеЗадание.ОжидатьЗавершенияВыполнения(15); + Если ОсновноеЗадание.Состояние = СостояниеФоновогоЗадания.Активно Тогда ОсновноеЗадание.Отменить(); - КонецПопытки; + КонецЕсли; КонецЦикла; ОтменитьФоновыеЗаданияПотоковОбновленияДоступа(); @@ -9458,14 +9166,16 @@ Отбор.Вставить("ИмяМетода", ИмяМетодаПотокаОбновленияДоступа()); ФоновыеЗаданияПотоков = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); - Попытка - ФоновыеЗадания.ОжидатьЗавершения(ФоновыеЗаданияПотоков, СекундОжидания); - Исключение - ФоновыеЗаданияПотоков = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); - Для Каждого ФоновоеЗаданиеПотока Из ФоновыеЗаданияПотоков Цикл + Если ФоновыеЗаданияПотоков.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + ФоновыеЗаданияПотоков = ФоновыеЗадания.ОжидатьЗавершенияВыполнения(ФоновыеЗаданияПотоков, СекундОжидания); + Для Каждого ФоновоеЗаданиеПотока Из ФоновыеЗаданияПотоков Цикл + Если ФоновоеЗаданиеПотока.Состояние = СостояниеФоновогоЗадания.Активно Тогда ФоновоеЗаданиеПотока.Отменить(); - КонецЦикла; - КонецПопытки; + КонецЕсли; + КонецЦикла; КонецПроцедуры @@ -10584,11 +10294,7 @@ Если ФоновоеЗадание = Неопределено Тогда Прервать; КонецЕсли; - Попытка - ФоновоеЗадание.ОжидатьЗавершения(0.025); - Исключение - // Специальная обработка не требуется, возможно исключение вызвано истечением времени ожидания. - КонецПопытки; + ФоновоеЗадание.ОжидатьЗавершенияВыполнения(0.025); Если Не ЖдатьЗавершенияЗадания Или ТекущаяДатаСеанса() > ГраницаОжидания Или Контекст.ЗанятыеПотоки.Количество() = 0 Тогда @@ -11217,11 +10923,7 @@ Если ТекущаяУниверсальнаяДатаВМиллисекундах() > ГраницаОжидания Тогда Возврат Ложь; КонецЕсли; - Попытка - Контекст.ТекущееФоновоеЗадание.ОжидатьЗавершения(0.025); - Исключение - Продолжить; - КонецПопытки; + Контекст.ТекущееФоновоеЗадание.ОжидатьЗавершенияВыполнения(0.025); КонецЦикла; Контекст.Вставить("ГраницаПроверкиРодительскогоСеанса", ТекущаяУниверсальнаяДатаВМиллисекундах() + 1000); @@ -11250,19 +10952,18 @@ КонецЕсли; НачалоОжидания = ТекущаяУниверсальнаяДатаВМиллисекундах(); - Попытка - Контекст.ТекущееФоновоеЗадание.ОжидатьЗавершения( - Контекст.КоличествоСекундОжиданияДоПоискаНовогоЗадания); - Исключение - Если Показатели <> Неопределено Тогда - Показатели.ВремяОжиданияНовыхЗаданий = Показатели.ВремяОжиданияНовыхЗаданий - + (ТекущаяУниверсальнаяДатаВМиллисекундах() - НачалоОжидания); - КонецЕсли; - Если Контекст.КоличествоСекундОжиданияДоПоискаНовогоЗадания < 1 Тогда - Контекст.КоличествоСекундОжиданияДоПоискаНовогоЗадания = - Контекст.КоличествоСекундОжиданияДоПоискаНовогоЗадания + 0.010; - КонецЕсли; - КонецПопытки; + + Контекст.ТекущееФоновоеЗадание.ОжидатьЗавершенияВыполнения( + Контекст.КоличествоСекундОжиданияДоПоискаНовогоЗадания); + + Если Показатели <> Неопределено Тогда + Показатели.ВремяОжиданияНовыхЗаданий = Показатели.ВремяОжиданияНовыхЗаданий + + (ТекущаяУниверсальнаяДатаВМиллисекундах() - НачалоОжидания); + КонецЕсли; + Если Контекст.КоличествоСекундОжиданияДоПоискаНовогоЗадания < 1 Тогда + Контекст.КоличествоСекундОжиданияДоПоискаНовогоЗадания = + Контекст.КоличествоСекундОжиданияДоПоискаНовогоЗадания + 0.010; + КонецЕсли; Возврат Истина; @@ -11851,11 +11552,7 @@ Прервать; КонецЕсли; Если Контекст.ТекущееФоновоеЗадание <> Неопределено Тогда - Попытка - Контекст.ТекущееФоновоеЗадание.ОжидатьЗавершения(1); - Исключение - Продолжить; - КонецПопытки; + Контекст.ТекущееФоновоеЗадание.ОжидатьЗавершенияВыполнения(1); Иначе ГраницаОжидания = ТекущаяУниверсальнаяДатаВМиллисекундах() + 1000; Пока ГраницаОжидания > ТекущаяУниверсальнаяДатаВМиллисекундах() Цикл @@ -19198,7 +18895,7 @@ // Число нужно увеличивать при внесении изменений в состав параметров кэша // (в том числе при изменении версии шаблонов). - Возврат "10"; + Возврат "11"; КонецФункции @@ -31468,7 +31165,7 @@ Списки.Добавить(ОписаниеВерсии.Ключ); КонецЦикла; - Возврат Справочники.ИдентификаторыОбъектовМетаданных.ИдентификаторыОбъектовМетаданных(Списки, Истина); + Возврат ОбщегоНазначения.ИдентификаторыОбъектовМетаданных(Списки, Ложь); КонецФункции diff --git a/SSL/src/CommonModules/УправлениеДоступомСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/УправлениеДоступомСлужебныйВМоделиСервиса/Module.bsl index b383ceb8d..b95b9a1c8 100644 --- a/SSL/src/CommonModules/УправлениеДоступомСлужебныйВМоделиСервиса/Module.bsl +++ b/SSL/src/CommonModules/УправлениеДоступомСлужебныйВМоделиСервиса/Module.bsl @@ -8,98 +8,6 @@ #Область СлужебныйПрограммныйИнтерфейс -//////////////////////////////////////////////////////////////////////////////// -// Обновление информационной базы. - -// Перемещает всех пользователей из группы доступа "Администраторы данных" в -// группу доступа Администраторы. -// Удаляет профиль "Администратор данных" и группу доступа "Администраторы данных". -// -Процедура ОбновитьГруппыДоступаАдминистраторовВМоделиСервиса() Экспорт - - УстановитьПривилегированныйРежим(Истина); - - ПрофильАдминистраторДанныхСсылка = Справочники.ПрофилиГруппДоступа.ПолучитьСсылку( - Новый УникальныйИдентификатор("f0254dd0-3558-4430-84c7-154c558ae1c9")); - - ГруппаДоступаАдминистраторыДанныхСсылка = Справочники.ГруппыДоступа.ПолучитьСсылку( - Новый УникальныйИдентификатор("c7684994-34c9-4ddc-b31c-05b2d833e249")); - - Запрос = Новый Запрос; - Запрос.УстановитьПараметр("ПрофильАдминистраторДанныхСсылка", ПрофильАдминистраторДанныхСсылка); - Запрос.УстановитьПараметр("ГруппаДоступаАдминистраторыДанныхСсылка", ГруппаДоступаАдминистраторыДанныхСсылка); - Запрос.Текст = - "ВЫБРАТЬ ПЕРВЫЕ 1 - | ИСТИНА КАК ЗначениеИстина - |ИЗ - | Справочник.ГруппыДоступа КАК ГруппыДоступа - |ГДЕ - | ГруппыДоступа.Ссылка = &ГруппаДоступаАдминистраторыДанныхСсылка - | И ГруппыДоступа.Профиль = &ПрофильАдминистраторДанныхСсылка - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ ПЕРВЫЕ 1 - | ИСТИНА КАК ЗначениеИстина - |ИЗ - | Справочник.ПрофилиГруппДоступа КАК ПрофилиГруппДоступа - |ГДЕ - | ПрофилиГруппДоступа.Ссылка = &ПрофильАдминистраторДанныхСсылка"; - - НачатьТранзакцию(); - Попытка - - РезультатыЗапроса = Запрос.ВыполнитьПакет(); - - Если НЕ РезультатыЗапроса[0].Пустой() Тогда - ГруппаАдминистраторы = Справочники.ГруппыДоступа.Администраторы.ПолучитьОбъект(); - ГруппаАдминистраторыДанных = ГруппаДоступаАдминистраторыДанныхСсылка.ПолучитьОбъект(); - - Если ГруппаАдминистраторыДанных.Пользователи.Количество() > 0 Тогда - Для каждого Строка Из ГруппаАдминистраторыДанных.Пользователи Цикл - Если ГруппаАдминистраторы.Пользователи.Найти(Строка.Пользователь, "Пользователь") = Неопределено Тогда - ГруппаАдминистраторы.Пользователи.Добавить().Пользователь = Строка.Пользователь; - КонецЕсли; - КонецЦикла; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ГруппаАдминистраторы); - КонецЕсли; - ОбновлениеИнформационнойБазы.УдалитьДанные(ГруппаАдминистраторыДанных); - КонецЕсли; - - Если НЕ РезультатыЗапроса[1].Пустой() Тогда - ПрофильАдминистраторДанных = ПрофильАдминистраторДанныхСсылка.ПолучитьОбъект(); - ОбновлениеИнформационнойБазы.УдалитьДанные(ПрофильАдминистраторДанных); - КонецЕсли; - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -// Обновляет настройки регламентного задания. -Процедура ОбновитьРасписаниеШаблонаЗаполнениеДанныхДляОграниченияДоступа() Экспорт - - Если НЕ РаботаВМоделиСервиса.РазделениеВключено() Тогда - Возврат; - КонецЕсли; - - Шаблон = ОчередьЗаданий.ШаблонПоИмени("ЗаполнениеДанныхДляОграниченияДоступа"); - ШаблонОбъект = Шаблон.ПолучитьОбъект(); - - Расписание = Новый РасписаниеРегламентногоЗадания; - Расписание.ПериодНедель = 1; - Расписание.ПериодПовтораДней = 1; - Расписание.ПериодПовтораВТечениеДня = 300; - Расписание.ПаузаПовтора = 90; - - ШаблонОбъект.Расписание = Новый ХранилищеЗначения(Расписание); - ШаблонОбъект.Записать(); - -КонецПроцедуры - // Вызывается при обработке сообщения http://www.1c.ru/SaaS/RemoteAdministration/App/a.b.c.d}SetFullControl. // // Параметры: @@ -148,20 +56,6 @@ КонецПроцедуры -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.0.4"; - Обработчик.Процедура = "УправлениеДоступомСлужебныйВМоделиСервиса.ОбновитьГруппыДоступаАдминистраторовВМоделиСервиса"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.1.15"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.Процедура = "УправлениеДоступомСлужебныйВМоделиСервиса.ОбновитьРасписаниеШаблонаЗаполнениеДанныхДляОграниченияДоступа"; - -КонецПроцедуры - // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПослеЗагрузкиДанных. Процедура ПослеЗагрузкиДанных(Контейнер) Экспорт @@ -169,4 +63,19 @@ КонецПроцедуры +// Вызывается при обновлении ролей пользователя информационной базы. +// +// Параметры: +// ИдентификаторПользователяИБ - УникальныйИдентификатор, +// Отказ - Булево. При установке значения параметра в значение Ложь внутри обработчика события +// обновление ролей для этого пользователя информационной базы будет пропущено. +Процедура ПриОбновленииРолейПользователяИБ(Знач ИдентификаторПользователя, Отказ) Экспорт + + Если ОбщегоНазначения.РазделениеВключено() + И ПользователиСлужебныйВМоделиСервиса.ПользовательЗарегистрированКакНеразделенный(ИдентификаторПользователя) Тогда + Отказ = Истина; + КонецЕсли; + +КонецПроцедуры + #КонецОбласти diff --git a/SSL/src/CommonModules/УправлениеИтогамиИАгрегатамиСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеИтогамиИАгрегатамиСлужебный/Module.bsl index 2a8ae86da..0837c46d2 100644 --- a/SSL/src/CommonModules/УправлениеИтогамиИАгрегатамиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеИтогамиИАгрегатамиСлужебный/Module.bsl @@ -362,7 +362,7 @@ Кэш = Новый Структура; Кэш.Вставить("МодельСервиса", ОбщегоНазначения.РазделениеВключено()); Если Кэш.МодельСервиса Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); РазделительОсновныхДанных = МодульРаботаВМоделиСервиса.РазделительОсновныхДанных(); РазделительВспомогательныхДанных = МодульРаботаВМоделиСервиса.РазделительВспомогательныхДанных(); @@ -383,7 +383,7 @@ Возврат Истина; КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ЭтоРазделенныйОбъектМетаданных = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ОбъектМетаданных); Иначе diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформацией/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформацией/Module.bsl index 0286a9c5b..309873e6f 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформацией/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформацией/Module.bsl @@ -616,13 +616,15 @@ // Параметры: // КонтактнаяИнформация - Строка - строка в формате XML. Структура XML-документа соответствует XDTO-пакету КонтактнаяИнформация // или Адрес (для адресов содержащих поля с национальной спецификой). -// Если передана строка во внутреннем формате JSON, то возвращаемое значение будет полностью совпадать с ней. +// Если передана строка во внутреннем формате JSON, то возвращаемое значение будет +// полностью совпадать с ней. // - Структура - см. УправлениеКонтактнойИнформациейКлиентСервер.СтруктураКонтактнойИнформацииПоТипу. // см. РаботаСАдресами.ПоляАдреса (для адресов содержащих поля с национальной спецификой), // см. РаботаСАдресамиКлиентСервер.СтруктураКонтактнойИнформацииПоТипу // (для других типов контактной информации содержащих поля с национальной спецификой). -// ОжидаемыйВид - СправочникСсылка.ВидыКонтактнойИнформации, ПеречислениеСсылка.ТипыКонтактнойИнформации - используется для определения типа -// контактной информации, если его невозможно определить из переданной контактной информации в параметре КонтактнаяИнформация. +// ОжидаемыйВид - СправочникСсылка.ВидыКонтактнойИнформации, ПеречислениеСсылка.ТипыКонтактнойИнформации - +// используется для определения типа контактной информации, если его невозможно определить из +// переданной контактной информации в параметре КонтактнаяИнформация. // // Возвращаемое значение: // Строка - контактная информация во внутреннем формате JSON. @@ -1312,6 +1314,7 @@ КонецЕсли; Возврат Результат; + КонецФункции // Возвращает ссылку на элемент справочника страны мира по коду или наименованию. @@ -1515,7 +1518,7 @@ // Вызывается из модуля формы объекта-владельца КИ при внедрении подсистемы. // // Параметры: -// Форма - УправляемаяФорма - Форма объекта-владельца, предназначенная для вывода контактной информации. +// Форма - ФормаКлиентскогоПриложения - Форма объекта-владельца, предназначенная для вывода контактной информации. // Объект - Произвольный - Объект-владелец контактной информации. Если это ссылка, то контактная информация // будет получена из объекта по ссылке, иначе из таблицы КонтактнаяИнформация объекта. // ДополнительныеПараметры - Структура - Описание настроек контактной информации - см. ПараметрыКонтактнойИнформации. @@ -1774,7 +1777,7 @@ Если ОтложеннаяИнициализация Тогда - ДобавитьРеквизитВОписание(Форма, СтрокаКИ, ДанныеВидовКонтактнойИнформации, ЭтоНовыйВидКИ,, + ДобавитьРеквизитВОписание(Форма, СтрокаКИ, ДанныеВидовКонтактнойИнформации, ЭтоНовыйВидКИ,, СтатическийЭлемент, ИмяЭлементаДляРазмещения); Если СтатическийЭлемент Тогда СозданныеЭлементы.Удалить(ИндексЭлемента); @@ -1782,7 +1785,7 @@ Продолжить; КонецЕсли; - ДобавитьРеквизитВОписание(Форма, СтрокаКИ, ДанныеВидовКонтактнойИнформации, ЭтоНовыйВидКИ,, + ДобавитьРеквизитВОписание(Форма, СтрокаКИ, ДанныеВидовКонтактнойИнформации, ЭтоНовыйВидКИ,, НЕ СтрокаКИ.ЭтоИсторическаяКонтактнаяИнформация, ИмяЭлементаДляРазмещения); Если СтатическийЭлемент Тогда @@ -1819,7 +1822,7 @@ // Вызывается из модуля формы объекта-владельца КИ при внедрении подсистемы. // // Параметры: -// Форма - УправляемаяФорма - Форма объекта-владельца, предназначенная для вывода контактной информации. +// Форма - ФормаКлиентскогоПриложения - Форма объекта-владельца, предназначенная для вывода контактной информации. // Объект - Произвольный - Объект-владелец контактной информации. // ИмяЭлементаДляРазмещения - Строка - группа, куда будут размещены элементы контактной информации. // @@ -1918,7 +1921,7 @@ // Вызывается из модуля формы объекта-владельца КИ при внедрении подсистемы. // // Параметры: -// Форма - УправляемаяФорма - Форма объекта-владельца, предназначенная для вывода контактной информации. +// Форма - ФормаКлиентскогоПриложения - Форма объекта-владельца, предназначенная для вывода контактной информации. // Объект - Произвольный - Объект-владелец контактной информации. // Процедура ПослеЗаписиНаСервере(Форма, Объект) Экспорт @@ -1958,8 +1961,8 @@ // Вызывается из модуля формы объекта-владельца КИ при внедрении подсистемы. // // Параметры: -// Форма - УправляемаяФорма - Форма объекта-владельца, предназначенная для вывода контактной информации. -// Объект - СправочникОбъект, ДокументСсылка, ДанныеФормыСтруктура - Объект-владелец контактной информации. +// Форма - ФормаКлиентскогоПриложения - Форма объекта-владельца, предназначенная для вывода контактной информации. +// Объект - Произвольный - Объект-владелец контактной информации. // Отказ - Булево - Если Истина, то во время проверки были обнаружены ошибки. // Процедура ОбработкаПроверкиЗаполненияНаСервере(Форма, Объект, Отказ) Экспорт @@ -2117,7 +2120,7 @@ // Вызывается из модуля формы объекта-владельца контактной информации. // // Параметры: -// Форма - УправляемаяФорма - Форма объекта-владельца, предназначенная для вывода контактной информации. +// Форма - ФормаКлиентскогоПриложения - Форма объекта-владельца, предназначенная для вывода контактной информации. // Объект - Произвольный - Объект-владелец контактной информации. // Результат - Произвольный - Необязательный служебный реквизит, полученный из предыдущего обработчика события. // @@ -2230,7 +2233,7 @@ // Выполняет отложенную инициализацию реквизитов и элементов контактной информации. // // Параметры: -// Форма - УправляемаяФорма - форма объекта-владельца, предназначенная для вывода контактной информации. +// Форма - ФормаКлиентскогоПриложения - форма объекта-владельца, предназначенная для вывода контактной информации. // Объект - Произвольный - объект-владелец контактной информации. // ИмяЭлементаДляРазмещения - Строка - имя группы, где размещена контактная информация. // @@ -2654,35 +2657,54 @@ // последовательности для каждого вида КИ с указанием порядка 0. Если // добавляется предопределенный вид КИ к уже существующим в ИБ, не // рекомендуется назначать порядок в явном виде. -// * МожноИзменятьСпособРедактирования - Булево - Истина, если есть возможность изменять способ -// редактирования только в диалоге, Ложь - иначе. -// * РедактированиеТолькоВДиалоге - Булево - Истина, если редактировать только в диалоге, -// Ложь - иначе. -// * ХранитьИсториюИзменений - Булево - Признак возможности хранения истории контактной информации. Хранение -// истории допускается, если признак РедактированиеТолькоВДиалоге равен Истина. -// Свойство отсутствует, если в табличной части нет реквизита ДействуетС. -// * ОбязательноеЗаполнение - Булево - Истина, если требуется обязательное -// заполнение поля, Ложь - иначе. -// * РазрешитьВводНесколькихЗначений - Булево - Признак возможности использования дополнительных -// полей ввода для данного вида. -// * ЗапретитьРедактированиеПользователем - Булево - Признак недоступности редактирования -// пользователем свойства вида контактной -// информации. -// * Используется - Булево - Признак использования вида контактной информации. -// Значение по умолчанию Истина. -// * НастройкиПроверки - Структура, Неопределено - Настройки проверки вида контактной информации. -// Для типа Адрес - Структура, содержащая поля: -// * ТолькоНациональныйАдрес - Булево - Истина, если возможен ввод только российских адресов. -// * ПроверятьКорректность - Булево - Истина, если требуется запрещать пользователю записывать -// некорректный адрес (только если ТолькоНациональныйАдрес = Истина). -// * СкрыватьНеактуальныеАдреса - Булево - Истина, если не требуется показывать неактуальные адреса при -// вводе (только если ТолькоНациональныйАдрес = Истина). -// * ВключатьСтрануВПредставление - Булево - Истина, если требуется включать наименование страны в -// представление адреса. +// * МожноИзменятьСпособРедактирования - Булево -Признак возможности изменения свойств вида контактной информации пользователем. +// Если Ложь, то в форме вида контактной информации свойства доступны только для просмотра. +// Значение по умолчанию - Ложь. +// * РедактированиеТолькоВДиалоге - Булево - Если Истина, то форме выводится гиперссылка с представлением контактной информации +// по нажатию на которую, открывается форма соответствующего типа КИ. +// Свойство применимо только для контактной информации с типом: Адрес, Телефон, Факс, ВебСтраница. +// Значение по умолчанию - Ложь. +// * ХранитьИсториюИзменений - Булево - Признак возможности хранения истории контактной информации. +// Хранение истории допускается, если признак РедактированиеТолькоВДиалоге равен Истина. +// Свойство применимо если табличная часть КонтактнаяИнформация содержит реквизит ДействуетС. +// Значение по умолчанию - Ложь. +// * ОбязательноеЗаполнение - Булево - Если Истина, то требуется обязательный ввод значения в поле +// контактной информации. Значение по умолчанию - Ложь. +// * РазрешитьВводНесколькихЗначений - Булево - Признак возможности ввода нескольких значений для данного вида. +// Значение по умолчанию - Ложь. +// * ЗапретитьРедактированиеПользователем - Булево - Признак недоступности редактирования пользователем +// вида контактной информации. Значение по умолчанию - Ложь. +// * Используется - Булево - Если Ложь, то вид контактной информации недоступен для использования пользователем. +// Такой вид не выводится в формах и списке видов контактной информации. +// Значение по умолчанию - Истина. +// * МеждународныйФорматАдреса - Булево - Признак международного формата адреса. +// Если Истина, то ввода всех адресов только в международном формате. +// Значение по умолчанию - Ложь. +// * ВидПоляДругое - Строка - Определяет внешний вид поля с типом Другое на форме. +// Варианты: МногострочноеШирокое, ОднострочноеШирокое, ОднострочноеУзкое. +// Свойство применимо только для контактной информации с типом: Другое. +// Для вида КИ с типом Другое значение по умолчанию - "ОднострочноеШирокое", иначе пустая строка. +// * НастройкиПроверки - Структура, Неопределено - Настройки проверки вида контактной информации. +// Состав полей зависит от типа контактной информации. +// Для типа Адрес - Структура, содержащая поля: +// * ТолькоНациональныйАдрес - Булево - если Истина, то разрешается ввод только национальных адресов. +// Изменение страны у адреса не допускается. +// * ПроверятьКорректность - Булево - если Истина, то для национальных адресов доступен ввод только адресов с разбивкой +// по полям проходящих проверку по ФИАС. Допускается ввод адресов других стран +// в свободной форме, если свойство ТолькоНациональныйАдрес = Ложь. +// Значение по умолчанию - Ложь. +// * ВключатьСтрануВПредставление - Булево - если Истина, то Наименование страны всегда добавляется в представление адреса, +// даже когда другие поля адреса пустые. +// Значение по умолчанию - Ложь +// * УказыватьОКТМО - Булево - признак возможности ручного ввода кода ОКМТО в форме ввода адреса. // Для типа АдресЭлектроннойПочты - Структура, содержащая поля: -// * ПроверятьКорректность - Булево - Истина, если требуется запрещать пользователю записывать +// * ПроверятьКорректность - Булево - если Истина, то запрещается пользователю ввод // некорректный адрес электронной почты. -// Для остальных типов или для задания настроек по умолчанию используется Неопределено. +// Значение по умолчанию - Ложь. +// Для типа Телефон - Структура, содержащая поля: +// * ТелефонCДобавочнымНомером - Булево - если Истина, то в форме ввода телефона доступен ввод добавочного номера. +// Значение по умолчанию - Истина. +// Для остальных типов по умолчанию - Неопределено. // Функция ПараметрыВидаКонтактнойИнформации(ТипИлиВидКонтактнойИнформации = Неопределено) Экспорт @@ -2964,522 +2986,6 @@ КонецФункции -// Устарела. Следует использовать РаботаСАдресами.ПредыдущийФорматКонтактнойИнформацииXML. -// Преобразует данные формата XML в предыдущий формат контактной информации. -// -// Параметры: -// Данные - Строка - XML контактной информации. -// СокращенныйСоставПолей - Булево - если Ложь, то из состава полей будут исключены -// поля, отсутствующие в версиях БСП младше 2.1.3. -// -// Возвращаемое значение: -// Строка - набор пар ключ-значение, разделенных переносом строки. -// -Функция ПредыдущийФорматКонтактнойИнформацииXML(Знач Данные, Знач СокращенныйСоставПолей = Ложь) Экспорт - - Если Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") <> Неопределено Тогда - МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами"); - Возврат МодульРаботаСАдресами.ПредыдущийФорматКонтактнойИнформацииXML(Данные, СокращенныйСоставПолей); - КонецЕсли; - - Возврат ""; - -КонецФункции - -// Устарела. Следует использовать РаботаСАдресами.ПредыдущаяСтруктураКонтактнойИнформацииXML. -// Преобразует данные нового формата XML контактной информации в структуру старого формата. -// -// Параметры: -// Данные - Строка - XML контактной информации или пары ключ-значение. -// ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации, Структура - параметры контактной информации. -// -// Возвращаемое значение: -// Структура - набор пар ключ-значение. Состав свойств для адреса: -// ** Страна - Строка - текстовое представление страны. -// ** КодСтраны - Строка - код страны по ОКСМ. -// ** Индекс - Строка - почтовый индекс (только для адресов РФ). -// ** Регион - Строка - текстовое представление региона РФ (только для адресов РФ). -// ** КодРегиона - Строка - код региона РФ (только для адресов РФ). -// ** РегионСокращение - Строка - сокращение региона (если СтарыйСоставПолей = Ложь). -// ** Район - Строка - текстовое представление района (только для адресов РФ). -// ** РайонСокращение - Строка - сокращение района (если СтарыйСоставПолей = Ложь). -// ** Город - Строка - текстовое представление города (только для адресов РФ). -// ** ГородСокращение - Строка - сокращение города (только для адресов РФ). -// ** НаселенныйПункт - Строка - текстовое представление населенного пункта (только для адресов РФ). -// ** НаселенныйПунктСокращение - Строка - сокращение населенного пункта (если СтарыйСоставПолей = Ложь). -// ** Улица - Строка - текстовое представление улицы (только для адресов РФ). -// ** УлицаСокращение - Строка - сокращение улицы (если СтарыйСоставПолей = Ложь). -// ** ТипДома - Строка - см. РаботаСАдресамиКлиентСервер.ТипыОбъектовАдресацииАдресаРФ(). -// ** Дом - Строка - текстовое представление дома (только для адресов РФ). -// ** ТипКорпуса - Строка - см. РаботаСАдресамиКлиентСервер.ТипыОбъектовАдресацииАдресаРФ(). -// ** Корпус - Строка - текстовое представление корпуса (только для адресов РФ). -// ** ТипКвартиры - Строка - см. РаботаСАдресамиКлиентСервер.ТипыОбъектовАдресацииАдресаРФ(). -// ** Квартира - Строка - текстовое представление квартиры (только для адресов РФ). -// Состав свойств для телефона: -// ** КодСтраны - Строка - код страны. Например, +7. -// ** КодГорода - Строка - код города. Например, 495. -// ** НомерТелефона - Строка - номер телефона. -// ** Добавочный - Строка - добавочный номер телефона. -// -Функция ПредыдущаяСтруктураКонтактнойИнформацииXML(Знач Данные, Знач ВидКонтактнойИнформации = Неопределено) Экспорт - - Если Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") <> Неопределено Тогда - МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами"); - Возврат МодульРаботаСАдресами.ПредыдущаяСтруктураКонтактнойИнформацииXML(Данные, ВидКонтактнойИнформации); - КонецЕсли; - - Возврат Новый Структура; - -КонецФункции - -// Устарела. Следует использовать РаботаСАдресами.АдресВФорматеКЛАДР. -// Преобразует адреса нового формата XML ФИАС в адрес формата КЛАДР. -// -// Параметры: -// Данные - Строка - XML контактной информации или пары ключ-значение. -// -// Возвращаемое значение: -// Структура - набор пар ключ-значение. Состав свойств для адреса: -// ** Страна - Строка - текстовое представление страны. -// ** КодСтраны - Строка - код страны по ОКСМ. -// ** Индекс - Строка - почтовый индекс (только для адресов РФ). -// ** Регион - Строка - текстовое представление региона РФ (только для адресов РФ). -// ** КодРегиона - Строка - код региона РФ (только для адресов РФ). -// ** РегионСокращение - Строка - сокращение региона (если СтарыйСоставПолей = Ложь). -// ** Район - Строка - текстовое представление района (только для адресов РФ). -// ** РайонСокращение - Строка - сокращение района (если СтарыйСоставПолей = Ложь). -// ** Город - Строка - текстовое представление города (только для адресов РФ). -// ** ГородСокращение - Строка - сокращение города (только для адресов РФ). -// ** НаселенныйПункт - Строка - текстовое представление населенного пункта (только для адресов РФ). -// ** НаселенныйПунктСокращение - Строка - сокращение населенного пункта (если СтарыйСоставПолей = Ложь). -// ** Улица - Строка - текстовое представление улицы (только для адресов РФ). -// ** УлицаСокращение - Строка - сокращение улицы (если СтарыйСоставПолей = Ложь). -// ** ТипДома - Строка - см. РаботаСАдресамиКлиентСервер.ТипыОбъектовАдресацииАдресаРФ. -// ** Дом - Строка - текстовое представление дома (только для адресов РФ). -// ** ТипКорпуса - Строка - см. РаботаСАдресамиКлиентСервер.ТипыОбъектовАдресацииАдресаРФ. -// ** Корпус - Строка - текстовое представление корпуса (только для адресов РФ). -// ** ТипКвартиры - Строка - см. РаботаСАдресамиКлиентСервер.ТипыОбъектовАдресацииАдресаРФ. -// ** Квартира - Строка - текстовое представление квартиры (только для адресов РФ). -// ** АдресРФ - Булево - Если Истина, то адрес российский. -// ** Представление - Строка - текстовое представление адреса. -// -Функция АдресВФорматеКЛАДР(Знач Данные) Экспорт - - Если Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") <> Неопределено Тогда - МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами"); - Возврат МодульРаботаСАдресами.АдресВФорматеКЛАДР(Данные); - КонецЕсли; - - Возврат Новый Структура; - -КонецФункции - -// Устарела. Следует использовать РаботаСАдресами.СведенияОбАдресах. -// Возвращает сведения об адресах в виде структуру частей адреса и кодов КЛАДР. -// -// Параметры: -// Адреса - Массив - XDTO объекты или строки XML контактной информации. -// ДополнительныеПараметры - Структура - параметры контактной информации. -// * БезПредставлений - Булево - Если Истина, то поле представления адреса будет отсутствовать. -// * КодыКЛАДР - Булево - Если Истина, то возвращает структуру с кодами КЛАДР по всем частям адреса. -// * ПолноеНаименованиеСокращений - Булево - Если Истина, то возвращает полное наименование адресных объектов. -// * НаименованиеВключаетСокращение - Булево - Если Истина, то поля содержат сокращениям в наименованиях адресных объектов. -// Возвращаемое значение: -// Массив - содержит массив структур, содержимое структуры см. описание функции РаботаСАдресами.СведенияОбАдресе. -// -Функция СведенияОбАдресах(Адреса, ДополнительныеПараметры = Неопределено) Экспорт - - Если Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") <> Неопределено Тогда - МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами"); - Возврат МодульРаботаСАдресами.СведенияОбАдресах(Адреса, ДополнительныеПараметры); - КонецЕсли; - - Возврат Новый Массив; - -КонецФункции - -// Устарела. Следует использовать РаботаСАдресами.СведенияОбАдресе. -// Возвращает сведения об адресах в виде структуру частей адреса и кодов КЛАДР. -// -// Параметры: -// Адрес - Строка, ОбъектXDTO - XDTO объект или строка XML контактной информации. -// ДополнительныеПараметры - Структура - параметры контактной информации. -// * БезПредставлений - Булево - Если Истина, то поле представления адреса будет отсутствовать. -// * КодыКЛАДР - Булево - Если Истина, то возвращает структуру с кодами КЛАДР по всем частям адреса. -// * ПолноеНаименованиеСокращений - Булево - Если Истина, то возвращает полное наименование адресных объектов. -// * НаименованиеВключаетСокращение - Булево - Если Истина, то поля содержат сокращениям в наименованиях адресных объектов. -// Возвращаемое значение: -// Структура - набор пар ключ-значение. Состав свойств для адреса: -// * Страна - Строка - текстовое представление страны. -// * КодСтраны - Строка - код страны по ОКСМ. -// * Индекс - Строка - почтовый индекс. -// * КодРегиона - Строка - код региона РФ. -// * Регион - Строка - текстовое представление региона РФ. -// * РегионСокращение - Строка - сокращение региона. -// * Округ - Строка - текстовое представление округа. -// * ОкругСокращение - Строка - сокращение округа. -// * Район - Строка - текстовое представление района. -// * РайонСокращение - Строка - сокращение района. -// * Город - Строка - текстовое представление города. -// * ГородСокращение - Строка - сокращение города. -// * ВнутригородскойРайон - Строка - текстовое представление внутригородского района. -// * ВнутригородскойРайонСокращение - Строка - сокращение внутригородского района. -// * НаселенныйПункт - Строка - текстовое представление населенного пункта. -// * НаселенныйПунктСокращение - Строка - сокращение населенного пункта. -// * Улица - Строка - текстовое представление улицы. -// * УлицаСокращение - Строка - сокращение улицы. -// * ДополнительнаяТерритория - Строка - текстовое представление дополнительной территории. -// * ДополнительнаяТерриторияСокращение - Строка - сокращение дополнительной территории. -// * ЭлементДополнительнойТерритории - Строка - текстовое представление элемента дополнительной территории. -// * ЭлементДополнительнойТерриторииСокращение - Строка - сокращение элемента дополнительной территории. -// * Здание - Структура - структура с информацией о здании адреса. -// ** ТипЗдания - Строка - тип объекта адресации адреса РФ согласно приказу ФНС ММВ-7-1/525 от 31.08.2011. -// ** Номер - Строка - текстовое представление номера дома (только для адресов РФ). -// * Корпуса - Массив - содержит структуры(поля структуры: ТипКорпуса, Номер) с перечнем корпусов адреса. -// * Помещения - Массив - содержит структуры(поля структуры: ТипПомещения, Номер) с перечнем помещений адреса. -// * КодыКЛАДР - Структура - Коды КЛАДР, если установлен параметр КодыКЛАДР. -// ** Регион - Строка - код КЛАДР региона. -// ** Район - Строка - код КЛАДР район. -// ** Город - Строка - код КЛАДР города. -// ** НаселенныйПункт - Строка - код КЛАДР населенного пункта. -// ** Улица - Строка - код КЛАДР улица. -// * ДополнительныеКоды - Структура - Коды ОКТМО, ОКТМО, ОКАТО, КодИФНСФЛ, КодИФНСЮЛ, КодУчасткаИФНСФЛ, КодУчасткаИФНСЮЛ. -Функция СведенияОбАдресе(Адрес, ДополнительныеПараметры = Неопределено) Экспорт - - Если Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") <> Неопределено Тогда - МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами"); - Возврат МодульРаботаСАдресами.СведенияОбАдресе(Адрес, ДополнительныеПараметры); - КонецЕсли; - -КонецФункции - -// Устарела. Следует использовать РаботаСАдресами.РегионАдресаКонтактнойИнформации. -// Возвращает наименование субъекта РФ для адреса или пустую строку, если субъект не определен. -// Если переданная строка не содержит информации об адресе, то будет вызвано исключение. -// -// Параметры: -// XMLСтрока - Строка - XML контактной информации. -// -// Возвращаемое значение: -// Строка - наименование -// -Функция РегионАдресаКонтактнойИнформации(Знач XMLСтрока) Экспорт - - Если Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") <> Неопределено Тогда - МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами"); - Возврат МодульРаботаСАдресами.РегионАдресаКонтактнойИнформации(XMLСтрока); - КонецЕсли; - - Возврат ""; - -КонецФункции - -// Устарела. Следует использовать РаботаСАдресами.ГородАдресаКонтактнойИнформации. -// Возвращает наименование города для адреса РФ или пустую строку для иностранного адреса. -// Если переданная строка не содержит информации об адресе, то будет вызвано исключение. -// -// Параметры: -// XMLСтрока - Строка - XML контактной информации. -// -// Возвращаемое значение: -// Строка - наименование -// -Функция ГородАдресаКонтактнойИнформации(Знач XMLСтрока) Экспорт - - Если Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") <> Неопределено Тогда - МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами"); - Возврат МодульРаботаСАдресами.ГородАдресаКонтактнойИнформации(XMLСтрока); - КонецЕсли; - - Возврат ""; - -КонецФункции - -// Устарела. Следует использовать УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта. -// Получить значения определенного типа контактной информации у объекта. -// -// Параметры: -// Ссылка - ЛюбаяСсылка - ссылка на объект-владелец контактной информации (организация, контрагент, -// партнер и т.д.). -// ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип получаемой контактной информации. -// -// Возвращаемое значение: -// ТаблицаЗначений - колонки. -// * Значение - строка - строковое представление значения. -// * Вид - строка - представление вида контактной информации. -// -Функция ЗначенияКонтактнойИнформацииОбъекта(Ссылка, ТипКонтактнойИнформации) Экспорт - - МассивОбъектов = Новый Массив; - МассивОбъектов.Добавить(Ссылка); - - КонтактнаяИнформацияОбъекта = КонтактнаяИнформацияОбъектов(МассивОбъектов, ТипКонтактнойИнформации); - - Запрос = Новый Запрос; - - Запрос.УстановитьПараметр("КонтактнаяИнформацияОбъекта", КонтактнаяИнформацияОбъекта); - - Запрос.Текст = - "ВЫБРАТЬ - | КонтактнаяИнформацияОбъекта.Представление, - | КонтактнаяИнформацияОбъекта.Вид - |ПОМЕСТИТЬ ВТКонтактнаяИнформацияОбъекта - |ИЗ - | &КонтактнаяИнформацияОбъекта КАК КонтактнаяИнформацияОбъекта - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | КонтактнаяИнформацияОбъекта.Представление КАК Значение, - | ПРЕДСТАВЛЕНИЕ(КонтактнаяИнформацияОбъекта.Вид) КАК Вид - |ИЗ - | ВТКонтактнаяИнформацияОбъекта КАК КонтактнаяИнформацияОбъекта"; - - Возврат Запрос.Выполнить().Выгрузить(); - -КонецФункции - -// Устарела. Следует использовать УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта. -// Возвращает значения всей контактной информации определенного вида для объекта-владельца. -// -// Параметры: -// Ссылка - ЛюбаяСсылка - ссылка на объект-владелец контактной информации (организация, -// контрагент, партнер и т.д.). -// ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации - параметры обработки. -// Дата - Дата - Необязательный, дата с которой действует запись контактной информации, -// используется при хранении истории изменения контактной информации. -// -// Возвращаемое значение: -// Таблица значений -информация. Колонками: -// * НомерСтроки - Число - номер строки дополнительной табличной части объекта-владельца. -// * Представление - Строка - представление КИ, введенное пользователем. -// * СтруктураПолей - Структура - пары ключ-значение данных информации. -// -Функция ТаблицаКонтактнойИнформацииОбъекта(Ссылка, ВидКонтактнойИнформации, Дата = Неопределено) Экспорт - - МетаданныеОбъекта = Ссылка.Метаданные(); - - Запрос = Новый Запрос; - Если МетаданныеОбъекта.ТабличныеЧасти.КонтактнаяИнформация.Реквизиты.Найти("ДействуетС") <> Неопределено Тогда - ДействуетС = ?(ЗначениеЗаполнено(Дата), Дата, ТекущаяДатаСеанса()); - ТекстЗапроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ВЫБРАТЬ РАЗРЕШЕННЫЕ - | КонтактнаяИнформация.Ссылка КАК Объект, - | КонтактнаяИнформация.Вид КАК Вид, - | МАКСИМУМ(КонтактнаяИнформация.ДействуетС) КАК ДействуетС - |ПОМЕСТИТЬ СрезКонтактнойИнформации - |ИЗ - | %1.КонтактнаяИнформация КАК КонтактнаяИнформация - |ГДЕ - | КонтактнаяИнформация.Ссылка = &Ссылка - | И КонтактнаяИнформация.ДействуетС <= &ДействуетС - | И КонтактнаяИнформация.Вид <> ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ПустаяСсылка) - | И КонтактнаяИнформация.Вид = &Вид - | - |СГРУППИРОВАТЬ ПО - | КонтактнаяИнформация.Вид, - | КонтактнаяИнформация.Ссылка - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ РАЗРЕШЕННЫЕ - | ЕСТЬNULL(КонтактнаяИнформация.ИдентификаторСтрокиТабличнойЧасти, 0) КАК НомерСтроки, - | ЕСТЬNULL(КонтактнаяИнформация.Представление, "") КАК Представление, - | ЕСТЬNULL(КонтактнаяИнформация.ЗначенияПолей, "") - |ИЗ - | СрезКонтактнойИнформации КАК СрезКонтактнойИнформации - | ЛЕВОЕ СОЕДИНЕНИЕ %1.КонтактнаяИнформация КАК КонтактнаяИнформация - | ПО СрезКонтактнойИнформации.Вид = КонтактнаяИнформация.Вид - | И СрезКонтактнойИнформации.ДействуетС = КонтактнаяИнформация.ДействуетС - | И СрезКонтактнойИнформации.Объект = КонтактнаяИнформация.Ссылка - |УПОРЯДОЧИТЬ ПО - | КонтактнаяИнформация.ИдентификаторСтрокиТабличнойЧасти", МетаданныеОбъекта.ПолноеИмя()); - - Запрос.УстановитьПараметр("ДействуетС", ДействуетС); - Иначе - ТекстЗапроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ВЫБРАТЬ - | КонтактнаяИнформация.ИдентификаторСтрокиТабличнойЧасти КАК НомерСтроки, - | КонтактнаяИнформация.Представление КАК Представление, - | КонтактнаяИнформация.ЗначенияПолей КАК ЗначенияПолей - |ИЗ - | %1.КонтактнаяИнформация КАК КонтактнаяИнформация - |ГДЕ - | КонтактнаяИнформация.Ссылка = &Ссылка - | И КонтактнаяИнформация.Вид = &Вид - |УПОРЯДОЧИТЬ ПО - | КонтактнаяИнформация.ИдентификаторСтрокиТабличнойЧасти", МетаданныеОбъекта.ПолноеИмя()); - - КонецЕсли; - - Запрос.Текст = ТекстЗапроса; - Запрос.УстановитьПараметр("Ссылка", Ссылка); - Запрос.УстановитьПараметр("Вид", ВидКонтактнойИнформации); - - Результат = Новый ТаблицаЗначений; - Результат.Колонки.Добавить("НомерСтроки"); - Результат.Колонки.Добавить("Представление"); - Результат.Колонки.Добавить("СтруктураПолей"); - Результат.Индексы.Добавить("НомерСтроки"); - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - СтрокаДанных = Результат.Добавить(); - ЗаполнитьЗначенияСвойств(СтрокаДанных, Выборка, "НомерСтроки, Представление"); - СтрокаДанных.СтруктураПолей = ПредыдущаяСтруктураКонтактнойИнформацииXML( - Выборка.ЗначенияПолей, ВидКонтактнойИнформации); - КонецЦикла; - - Возврат Результат; -КонецФункции - -// Устарела. Следует использовать УправлениеКонтактнойИнформацией.УстановитьКонтактнуюИнформациюОбъектов. -// Заполняет контактную информацию в объектах. -// -// Параметры: -// ДанныеЗаполнения - ТаблицаЗначений - описывает объекты для для заполнения. Содержит колонки: -// * Приемник - Произвольный - ссылка или объект, в котором нужно заполнить КИ. -// * ВидКИ - СправочникСсылка.ВидыКонтактнойИнформации - вид контактной информации, заполняемый в приемнике. -// * СтруктураКИ - СписокЗначений, Строка, Структура - данные значений полей контактной информации. -// * КлючСтроки - Структура - фильтр для поиска строки в табличной части, -// где Ключ - имя колонки в табличной части, Значение - значение отбора. -// Дата - Дата - необязательный, дата с которой действует запись контактной информации, -// используется при хранении истории изменения контактной информации. -// Если не указано, то будет установленная текущая дата. -// -Процедура ЗаполнитьКонтактнуюИнформациюОбъектов(ДанныеЗаполнения, Дата = Неопределено) Экспорт - - ПредыдущийПриемник = Неопределено; - ДанныеЗаполнения.Сортировать("Приемник, ВидКИ"); - - Для Каждого СтрокаЗаполнения Из ДанныеЗаполнения Цикл - - Приемник = СтрокаЗаполнения.Приемник; - Если ОбщегоНазначения.ЭтоСсылка(ТипЗнч(Приемник)) Тогда - Приемник = Приемник.ПолучитьОбъект(); - КонецЕсли; - - Если ПредыдущийПриемник <> Неопределено И ПредыдущийПриемник <> Приемник Тогда - Если ПредыдущийПриемник.Ссылка = Приемник.Ссылка Тогда - Приемник = ПредыдущийПриемник; - Иначе - ПредыдущийПриемник.Записать(); - КонецЕсли; - КонецЕсли; - - ВидКИ = СтрокаЗаполнения.ВидКИ; - ИмяОбъектаПриемника = Приемник.Метаданные().Имя; - ИмяТабличнойЧасти = ИмяТабличнойЧастиПоВидуКИ(ВидКИ, ИмяОбъектаПриемника); - - Если ПустаяСтрока(ИмяТабличнойЧасти) Тогда - ЗаполнитьКонтактнуюИнформациюТабличнойЧасти(Приемник, ВидКИ, СтрокаЗаполнения.СтруктураКИ,, Дата); - Иначе - Если ТипЗнч(СтрокаЗаполнения.КлючСтроки) <> Тип("Структура") Тогда - Продолжить; - КонецЕсли; - - Если СтрокаЗаполнения.КлючСтроки.Свойство("НомерСтроки") Тогда - КоличествоСтрокТабличнойЧасти = Приемник[ИмяТабличнойЧасти].Количество(); - НомерСтроки = СтрокаЗаполнения.КлючСтроки.НомерСтроки; - Если НомерСтроки > 0 И НомерСтроки <= КоличествоСтрокТабличнойЧасти Тогда - СтрокаТабличнойЧасти = Приемник[ИмяТабличнойЧасти][НомерСтроки - 1]; - ЗаполнитьКонтактнуюИнформациюТабличнойЧасти(Приемник, ВидКИ, СтрокаЗаполнения.СтруктураКИ, СтрокаТабличнойЧасти, Дата); - КонецЕсли; - Иначе - СтрокиТабличнойЧасти = Приемник[ИмяТабличнойЧасти].НайтиСтроки(СтрокаЗаполнения.КлючСтроки); - Для каждого СтрокаТабличнойЧасти Из СтрокиТабличнойЧасти Цикл - ЗаполнитьКонтактнуюИнформациюТабличнойЧасти(Приемник, ВидКИ, СтрокаЗаполнения.СтруктураКИ, СтрокаТабличнойЧасти, Дата); - КонецЦикла; - КонецЕсли; - КонецЕсли; - - ПредыдущийПриемник = Приемник; - - КонецЦикла; - - Если ПредыдущийПриемник <> Неопределено Тогда - ПредыдущийПриемник.Записать(); - КонецЕсли; - -КонецПроцедуры - -// Устарела. Следует использовать УправлениеКонтактнойИнформацией.УстановитьКонтактнуюИнформациюОбъекта. -// Заполняет контактную информацию объекта. -// -// Параметры: -// Приемник - Произвольный - Ссылка или объект, в котором нужно заполнить КИ. -// ВидКИ - СправочникСсылка.ВидыКонтактнойИнформации - Вид контактной информации, заполняемый в приемнике. -// СтруктураКИ - Структура - Заполненная структура контактной информации. -// КлючСтроки - Структура - Отбор для поиска строки в табличной части. -// * Ключ - Строка - Имя колонки в табличной части. -// * Значение - Строка - Значение отбора. -// Дата - Дата - Необязательный, дата с которой действует запись контактной информации, -// используется при хранении истории изменения контактной информации. -// Если не указано, то будет установленная текущая дата. -// -Процедура ЗаполнитьКонтактнуюИнформациюОбъекта(Приемник, ВидКИ, СтруктураКИ, КлючСтроки = Неопределено, Дата = Неопределено) Экспорт - - ДанныеЗаполнения = Новый ТаблицаЗначений; - ДанныеЗаполнения.Колонки.Добавить("Приемник"); - ДанныеЗаполнения.Колонки.Добавить("ВидКИ"); - ДанныеЗаполнения.Колонки.Добавить("СтруктураКИ"); - ДанныеЗаполнения.Колонки.Добавить("КлючСтроки"); - - СтрокаЗаполнения = ДанныеЗаполнения.Добавить(); - СтрокаЗаполнения.Приемник = Приемник; - СтрокаЗаполнения.ВидКИ = ВидКИ; - СтрокаЗаполнения.СтруктураКИ = СтруктураКИ; - СтрокаЗаполнения.КлючСтроки = КлючСтроки; - - ЗаполнитьКонтактнуюИнформациюОбъектов(ДанныеЗаполнения, Дата); - -КонецПроцедуры - -// Устарела. Следует использовать РаботаСАдресами.ПроверитьАдрес. -// Проверяет адрес на соответствие требованиям к адресной информации. -// -// Параметры: -// АдресВXML - Строка - строка XML контактной информации. -// ПараметрыПроверки - Структура, СправочникСсылка.ВидыКонтактнойИнформации - флаги проверки адреса. -// ТолькоНациональныйАдрес - Булево - Адрес должен быть только Российским. По умолчанию ИСТИНА. -// ФорматАдреса - Строка - По какому классификатору проверять "КЛАДР" или "ФИАС". По умолчанию "КЛАДР". -// Возвращаемое значение: -// Структура - содержит структуру с полями: -// * Результат - Строка - результат проверки: "Корректный", "НеПроверен", "СодержитОшибки". -// * СписокОшибок - СписокЗначений - Информация о ошибках. -Функция ПроверитьАдрес(Знач АдресВXML, ПараметрыПроверки = Неопределено) Экспорт - Возврат УправлениеКонтактнойИнформациейСлужебный.ПроверитьАдрес(АдресВXML, ПараметрыПроверки); -КонецФункции - -// Устарела. Следует использовать ПараметрыКонтактнойИнформации. -// Описание параметров контактной информацией используемых в обработчике ПриСозданииНаСервере. -// -// Возвращаемое значение: -// Структура - параметры контактной информации. -// * Индекс - Строка - Индекс адреса. -// * Страна - Строка - Страна адреса. -// * ТипПомещения - Строка - Наименование типа помещения, который будет установлен -// в форме ввода нового адреса. По умолчанию, "Квартира". -// * ИмяЭлементаДляРазмещения - Строка - Группа, куда будут размещены элементы контактной информации. -// * ИсключаемыеВиды - Массив - Виды контактной информации, которые не требуется отображать на форме. -// * ОтложеннаяИнициализация - Булево - Если Истина, то создание полей контактной информации на форме будет отложено. -// * ПоложениеЗаголовкаКИ - ПоложениеЗаголовкаЭлементаФормы - Может принимать значения: -// ПоложениеЗаголовкаЭлементаФормы.Верх или -// ПоложениеЗаголовкаЭлементаФормы.Лево (по умолчанию). -// -Функция ПараметрыКонтактнойИнформацией() Экспорт - - Результат = Новый Структура; - Результат.Вставить("ТипПомещения", "Квартира"); - Результат.Вставить("Индекс", Неопределено); - Результат.Вставить("Страна", Неопределено); - Результат.Вставить("ОтложеннаяИнициализация", Ложь); - Результат.Вставить("ПоложениеЗаголовкаКИ", ""); - Результат.Вставить("ИсключаемыеВиды", Неопределено); - Результат.Вставить("ИмяЭлементаДляРазмещения", "ГруппаКонтактнаяИнформация"); - - Возврат Результат; - -КонецФункции - #КонецОбласти #КонецОбласти @@ -3489,7 +2995,7 @@ // Устанавливает доступность элементов контактной информации на форме. // // Параметры: -// Форма - УправляемаяФорма - передаваемая форма. +// Форма - ФормаКлиентскогоПриложения - передаваемая форма. // Элементы - Соответствие - Список видов контактной информации, для которых устанавливается доступ. // ** Ключ - ОбъектМетаданных - Подсистема, в которой размещается отчет или вариант отчета. // ** Значение - Булево - Если ЛОЖЬ, то элемент доступен только для просмотра. @@ -4507,41 +4013,6 @@ КонецФункции -// Возвращает имя табличной части документа по виду контактной информации. -// -// Параметры: -// ВидКИ - СправочникСсылка.ВидыКонтактнойИнформации - вид контактной информации. -// ИмяОбъекта - Строка - полное имя объекта метаданного. -// -// Возвращаемое значение: -// Строка - имя табличной части или пустая строка, если табличной части нет. -// -Функция ИмяТабличнойЧастиПоВидуКИ(ВидКИ, ИмяОбъекта) - - Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ - |ВЫБОР - | КОГДА ВидыКонтактнойИнформации.Родитель.ИмяПредопределенногоВида <> """" - | ТОГДА ВидыКонтактнойИнформации.Родитель.ИмяПредопределенногоВида - | ИНАЧЕ ВидыКонтактнойИнформации.Родитель.ИмяПредопределенныхДанных - |КОНЕЦ КАК ИмяВидаКонтактнойИнформации - |ИЗ - | Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации - |ГДЕ - | ВидыКонтактнойИнформации.Ссылка = &Ссылка"; - - Запрос.УстановитьПараметр("Ссылка", ВидКИ); - РезультатЗапроса = Запрос.Выполнить().Выбрать(); - - Если РезультатЗапроса.Следующий() Тогда - Возврат Сред(РезультатЗапроса.ИмяВидаКонтактнойИнформации, - СтрНайти(РезультатЗапроса.ИмяВидаКонтактнойИнформации, ИмяОбъекта) + СтрДлина(ИмяОбъекта)); - КонецЕсли; - - Возврат ""; - -КонецФункции - Процедура ЗаполнитьТаблицуВидовКИ(ТаблицаВидов, ВетвьДерева) Для каждого СтрокаВида Из ВетвьДерева.Строки Цикл @@ -4877,54 +4348,6 @@ КонецПроцедуры -// Заполняет контактную информацию в табличной части "Контактная информация" приемника. -// -// Параметры: -// * Приемник - Произвольный - Объект, в котором нужно заполнить КИ. -// * ВидКИ - СправочникСсылка.ВидыКонтактнойИнформации - вид контактной информации, заполняемый в -// приемнике. -// * СтруктураКИ - СписокЗначений, Строка, Структура - данные значений полей контактной информации. -// * СтрокаТабличнойЧасти - СтрокаТабличнойЧасти, Неопределено - данные приемника, если контактная информация -// заполняется для строки. -// Неопределено, если контактная информация -// заполняется для приемника. -// * Дата - Дата - Дата с который действует контактная информация. Используется только -// если у вида КИ установлен флаг ХранитьИсториюИзменений. -// -Процедура ЗаполнитьКонтактнуюИнформациюТабличнойЧасти(Приемник, ВидКИ, СтруктураКИ, СтрокаТабличнойЧасти = Неопределено, Дата = Неопределено) - - ПараметрыОтбора = Новый Структура; - Если СтрокаТабличнойЧасти <> Неопределено Тогда - ПараметрыОтбора.Вставить("ИдентификаторСтрокиТабличнойЧасти", СтрокаТабличнойЧасти.ИдентификаторСтрокиТабличнойЧасти); - КонецЕсли; - - ПараметрыОтбора.Вставить("Вид", ВидКИ); - НайденныеСтрокиКИ = Приемник.КонтактнаяИнформация.НайтиСтроки(ПараметрыОтбора); - Если НайденныеСтрокиКИ.Количество() = 0 Тогда - СтрокаКИ = Приемник.КонтактнаяИнформация.Добавить(); - Если СтрокаТабличнойЧасти <> Неопределено Тогда - СтрокаКИ.ИдентификаторСтрокиТабличнойЧасти = СтрокаТабличнойЧасти.ИдентификаторСтрокиТабличнойЧасти; - КонецЕсли; - Иначе - СтрокаКИ = НайденныеСтрокиКИ[0]; - КонецЕсли; - - // Из любого понимаемого - в XML. - ЗначенияПолей = КонтактнаяИнформацияВXML(СтруктураКИ, , ВидКИ); - Представление = ПредставлениеКонтактнойИнформации(ЗначенияПолей); - - СтрокаКИ.Тип = ВидКИ.Тип; - СтрокаКИ.Вид = ВидКИ; - СтрокаКИ.Представление = Представление; - СтрокаКИ.ЗначенияПолей = ЗначенияПолей; - - Если ВидКИ.ХранитьИсториюИзменений Тогда - СтрокаКИ.ДействуетС = ?(ЗначениеЗаполнено(Дата), Дата, ТекущаяДатаСеанса()); - КонецЕсли; - - ЗаполнитьДополнительныеРеквизитыКонтактнойИнформации(СтрокаКИ, Представление, ЗначенияПолей); -КонецПроцедуры - // Проверяет контактную информацию электронной почты и сообщает об ошибках. // // Параметры: @@ -4970,42 +4393,6 @@ КонецФункции -// Заполняет дополнительные реквизиты строки табличной части "Контактная информация". -// -// Параметры: -// СтрокаКИ - СтрокаТабличнойЧасти - строка "Контактная информация". -// Представление - Строка - представление значения. -// ЗначенияПолей - СписокЗначений, ОбъектXTDO - значения полей. -// -Процедура ЗаполнитьДополнительныеРеквизитыКонтактнойИнформации(СтрокаКИ, Представление, ЗначенияПолей) - - Если ТипЗнч(ЗначенияПолей) = Тип("ОбъектXDTO") Тогда - ОбъектКИ = ЗначенияПолей; - Иначе - ОбъектКИ = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияИзXML(ЗначенияПолей, СтрокаКИ.Вид); - КонецЕсли; - - ТипИнформации = СтрокаКИ.Тип; - - Если ТипИнформации = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты Тогда - ЗаполнитьРеквизитыТабличнойЧастиДляАдресаЭлектроннойПочты(СтрокаКИ, ОбъектКИ); - - ИначеЕсли ТипИнформации = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда - ЗаполнитьРеквизитыТабличнойЧастиДляАдреса(СтрокаКИ, ОбъектКИ); - - ИначеЕсли ТипИнформации = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда - ЗаполнитьРеквизитыТабличнойЧастиДляТелефона(СтрокаКИ, ОбъектКИ); - - ИначеЕсли ТипИнформации = Перечисления.ТипыКонтактнойИнформации.Факс Тогда - ЗаполнитьРеквизитыТабличнойЧастиДляТелефона(СтрокаКИ, ОбъектКИ); - - ИначеЕсли ТипИнформации = Перечисления.ТипыКонтактнойИнформации.ВебСтраница Тогда - ЗаполнитьРеквизитыТабличнойЧастиДляВебСтраницы(СтрокаКИ, ОбъектКИ); - - КонецЕсли; - -КонецПроцедуры - // Проверяет контактную информацию. // Функция ПроверитьЗаполнениеКонтактнойИнформации(Представление, Значение, ВидИнформации, ТипИнформации, @@ -6103,4 +5490,5 @@ КонецФункции + #КонецОбласти diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиент/Module.bsl index be8b13a5d..3f7346684 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиент/Module.bsl @@ -12,7 +12,7 @@ // Вызывается из подключаемых действий при внедрении подсистемы "Контактная информация". // // Параметры: -// Форма - УправляемаяФорма - Форма владельца контактной информации. +// Форма - ФормаКлиентскогоПриложения - Форма владельца контактной информации. // Элемент - ПолеФормы - Элемент формы, содержащий представление контактной информации. // ЭтоТабличнаяЧасть - Булево - Флаг того, что элемент является частью таблицы формы. // @@ -26,7 +26,7 @@ // Вызывается из подключаемых действий при внедрении подсистемы "Контактная информация". // // Параметры: -// Форма - УправляемаяФорма - Форма владельца контактной информации. +// Форма - ФормаКлиентскогоПриложения - Форма владельца контактной информации. // Элемент - ПолеФормы - Элемент формы, содержащий представление контактной информации. // Модифицированность - Булево - Устанавливаемый флаг модифицированности формы. // СтандартнаяОбработка - Булево - Устанавливаемый флаг стандартной обработки события формы. @@ -109,7 +109,7 @@ // Вызывается из подключаемых действий при внедрении подсистемы "Контактная информация". // // Параметры: -// Форма - УправляемаяФорма - Форма владельца контактной информации. +// Форма - ФормаКлиентскогоПриложения - Форма владельца контактной информации. // ИмяРеквизита - Строка - Имя реквизита формы, связанного с представление контактной информации. // Процедура Очистка(Знач Форма, Знач ИмяРеквизита) Экспорт @@ -135,7 +135,7 @@ // Вызывается из подключаемых действий при внедрении подсистемы "Контактная информация". // // Параметры: -// Форма - УправляемаяФорма - форма владельца контактной информации. +// Форма - ФормаКлиентскогоПриложения - форма владельца контактной информации. // ИмяКоманды - Строка - имя автоматически сгенерированной команды действия. // Процедура ВыполнитьКоманду(Знач Форма, Знач ИмяКоманды) Экспорт @@ -291,7 +291,7 @@ // Вызывается из подключаемых действий при внедрении подсистемы "Контактная информация". // // Параметры: -// Форма - УправляемаяФорма - форма владельца контактной информации. +// Форма - ФормаКлиентскогоПриложения - форма владельца контактной информации. // Элемент - ПолеФормы - элемент формы, содержащий представление контактной информации. // НавигационнаяСсылкаФорматированнойСтроки - Строка - значение гиперссылки форматированной строки. Параметр // передается по ссылке. @@ -357,7 +357,7 @@ // Вызывается из подключаемых действий при внедрении подсистемы "Контактная информация". // // Параметры: -// Форма - УправляемаяФорма - форма владельца контактной информации. +// Форма - ФормаКлиентскогоПриложения - форма владельца контактной информации. // ВыбранноеЗначение - Строка - выбранное значение, которое будет установлено как значение поля ввода // контактной информации. // ИмяРеквизита - Строка - имя реквизита формы, связанного с представление контактной информации. @@ -385,7 +385,7 @@ // Вызывается из подключаемых действий при внедрении подсистемы "Контактная информация". // // Параметры: -// Форма - УправляемаяФорма - Форма владельца контактной информации. +// Форма - ФормаКлиентскогоПриложения - Форма владельца контактной информации. // Результат - Произвольный - Данные, переданные обработчиком команды. // Процедура ОткрытьФормуВводаАдреса(Форма, Результат) Экспорт @@ -402,7 +402,7 @@ // Вызывается из подключаемых действий при внедрении подсистемы "Контактная информация". // // Параметры: -// Форма - УправляемаяФорма - Форма владельца контактной информации. +// Форма - ФормаКлиентскогоПриложения - Форма владельца контактной информации. // Результат - Произвольный - Данные, переданные обработчиком команды. // Процедура КонтрольОбновленияФормы(Форма, Результат) Экспорт @@ -452,32 +452,32 @@ // Конструктор для структуры параметров открытия формы контактной информации. // // Параметры: -// ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации, Структура - Вид редактируемой контактной информации. -// Структура вида формируется функцией-конструктором -// см. УправлениеКонтактнойИнформацией.ПараметрыВидаКонтактнойИнформации -// Значение - Строка - Сериализованное значение полей контактной информации в формате JSON или XML. -// Представление - Строка - Необязательный. Представление контактной информации. -// Комментарий - Строка - Комментарий контактной информации. -// ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации - Необязательный. Тип контактной информации. -// Если указан, то в возвращаемую структуру добавляются поля соответствующие типу. +// ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации - вид редактируемой контактной информации. +// Структура - см. УправлениеКонтактнойИнформацией.ПараметрыВидаКонтактнойИнформации +// Значение - Строка - сериализованное значение полей контактной информации в формате JSON или XML. +// Представление - Строка - представление контактной информации. +// Комментарий - Строка - комментарий контактной информации. +// ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип контактной информации. +// Если указан, то в возвращаемую структуру добавляются поля соответствующие типу. // // Возвращаемое значение: // Структура - содержит поля: -// * ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации, Структура - Вид редактируемой информации. -// * Значение - Строка - Значение полей контактной информации в формате JSON или ХML. -// * Представление - Строка - Представление контактной информации. -// * ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации - Тип контактной информации, если был указан в параметрах. -// * Страна - Строка - Страна мира, только если указан тип контактной информации Адрес. -// * Регион - Строка - Значение поля региона, только если указан тип контактной информации Адрес. +// * ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации - вид редактируемой контактной информации. +// Структура - см. УправлениеКонтактнойИнформацией.ПараметрыВидаКонтактнойИнформации +// * Значение - Строка - значение полей контактной информации в формате JSON или ХML. +// * Представление - Строка - представление контактной информации. +// * ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип контактной информации, если был указан в параметрах. +// * Страна - Строка - страна мира, только если указан тип контактной информации Адрес. +// * Регион - Строка - значение поля региона, только если указан тип контактной информации Адрес. // Актуально для стран ЕАЭС. -// * Индекс - Строка - Страна мира, только если указан тип контактной информации Адрес. -// * ТипПомещения - Строка - Тип помещения в форме ввода нового адреса, , только если указан тип контактной +// * Индекс - Строка - страна мира, только если указан тип контактной информации Адрес. +// * ТипПомещения - Строка - тип помещения в форме ввода нового адреса, , только если указан тип контактной // информации Адрес. -// * КодСтраны - Строка - Телефонный код страны мира, только если указан тип контактной информации Телефон. -// * КодГорода - Строка - Телефонный код города, только если указан тип контактной информации Телефон. -// * НомерТелефона - Строка - Телефонный номер, только если указан тип контактной информации Телефон. -// * Добавочный - Строка - Добавочный телефонный номер, только если указан тип контактной информации Телефон. -// * Заголовок - Строка - Заголовок формы. По умолчанию, представление вида контактной информации. +// * КодСтраны - Строка - телефонный код страны мира, только если указан тип контактной информации Телефон. +// * КодГорода - Строка - телефонный код города, только если указан тип контактной информации Телефон. +// * НомерТелефона - Строка - телефонный номер, только если указан тип контактной информации Телефон. +// * Добавочный - Строка - добавочный телефонный номер, только если указан тип контактной информации Телефон. +// * Заголовок - Строка - заголовок формы. По умолчанию, представление вида контактной информации. // Функция ПараметрыФормыКонтактнойИнформации(ВидКонтактнойИнформации, Значение, Представление = Неопределено, Комментарий = Неопределено, ТипКонтактнойИнформации = Неопределено) Экспорт @@ -520,7 +520,7 @@ // Оповещение - ОписаниеОповещения - для обработки закрытия формы. // // Возвращаемое значение: -// УправляемаяФорма - необходимая форма. +// ФормаКлиентскогоПриложения - необходимая форма. // Функция ОткрытьФормуКонтактнойИнформации(Параметры, Владелец = Неопределено, Оповещение = Неопределено) Экспорт Параметры.Вставить("ОткрытаПоСценарию", Истина); @@ -730,7 +730,8 @@ // // Параметры: // Адрес - Строка - текстовое представление адреса. -// ИмяКартографическогоСервиса - Строка - имя картографического сервиса, в котором необходимо показать адрес: Яндекс.Карты или GoogleMaps. +// ИмяКартографическогоСервиса - Строка - имя картографического сервиса, в котором необходимо показать адрес: +// Яндекс.Карты или GoogleMaps. // Процедура ПоказатьАдресНаКарте(Адрес, ИмяКартографическогоСервиса) Экспорт АдресКодированный = URLEncode(Адрес); @@ -747,7 +748,7 @@ // Отображает форму с историей изменения контактной информации. // // Параметры: -// Форма - УправляемаяФорма - форма с контактной информацией. +// Форма - ФормаКлиентскогоПриложения - форма с контактной информацией. // ПараметрыКонтактнойИнформации - Структура - сведения об элементе контактной информации. // Процедура ОткрытьФормуИсторииИзменений(Форма, ПараметрыКонтактнойИнформации) Экспорт @@ -803,7 +804,7 @@ // Устарела. Следует использовать ПриИзменении. // // Параметры: -// Форма - УправляемаяФорма - Форма владельца контактной информации. +// Форма - ФормаКлиентскогоПриложения - Форма владельца контактной информации. // Элемент - ПолеФормы - Элемент формы, содержащий представление контактной информации. // ЭтоТабличнаяЧасть - Булево - Флаг того, что элемент является частью таблицы формы. // @@ -814,7 +815,7 @@ // Устарела. Следует использовать НачалоВыбора. // // Параметры: -// Форма - УправляемаяФорма - Форма владельца контактной информации. +// Форма - ФормаКлиентскогоПриложения - Форма владельца контактной информации. // Элемент - ПолеФормы - Элемент формы, содержащий представление контактной информации. // Модифицированность - Булево - Устанавливаемый флаг модифицированности формы. // СтандартнаяОбработка - Булево - Устанавливаемый флаг стандартной обработки события формы. @@ -830,7 +831,7 @@ // Устарела. Следует использовать Очистка. // // Параметры: -// Форма - УправляемаяФорма - Форма владельца контактной информации. +// Форма - ФормаКлиентскогоПриложения - Форма владельца контактной информации. // ИмяРеквизита - Строка - Имя реквизита формы, связанного с представление контактной информации. // // Возвращаемое значение: @@ -844,7 +845,7 @@ // Устарела. Следует использовать ВыполнитьКоманду. // // Параметры: -// Форма - УправляемаяФорма - Форма владельца контактной информации. +// Форма - ФормаКлиентскогоПриложения - Форма владельца контактной информации. // ИмяКоманды - Строка - Имя автоматически сгенерированной команды действия. // // Возвращаемое значение: @@ -1094,7 +1095,7 @@ // Возвращает строку дополнительных значений по имени реквизита. // // Параметры: -// Форма - УправляемаяФорма - передаваемая форма. +// Форма - ФормаКлиентскогоПриложения - передаваемая форма. // Элемент - ДанныеФормыСтруктураСКоллекцией - данные формы. // // Возвращаемое значение: @@ -1236,7 +1237,7 @@ Родитель = Элемент.Родитель; - Пока ТипЗнч(Родитель) <> Тип("УправляемаяФорма") Цикл + Пока ТипЗнч(Родитель) <> Тип("ФормаКлиентскогоПриложения") Цикл Если ТипЗнч(Родитель) = Тип("ТаблицаФормы") Тогда Возврат Истина; diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСервер/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСервер/Module.bsl index 0ea0c7ca3..708e92eb8 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейКлиентСервер/Module.bsl @@ -75,7 +75,8 @@ КонецФункции -// Текст, который выводится в поле контактной информации, когда контактная информация не заполнена и отображается в виде гиперссылки. +// Текст, который выводится в поле контактной информации, когда контактная информация не заполнена и отображается в виде +// гиперссылки. // // Возвращаемое значение: // Строка - текст, который выводится в поле с контактной информацией. diff --git a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl index b9fcdd3c1..ed07d31ab 100644 --- a/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеКонтактнойИнформациейСлужебный/Module.bsl @@ -139,21 +139,6 @@ // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - // Разделение стран мира - Если ОбщегоНазначения.РазделениеВключено() Тогда - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.4.8"; - Обработчик.Процедура = "УправлениеКонтактнойИнформациейСлужебный.ПодготовкаЭталонаРазделенныхСтранМира"; - Обработчик.МонопольныйРежим = Истина; - Обработчик.ОбщиеДанные = Истина; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.4.8"; - Обработчик.Процедура = "УправлениеКонтактнойИнформациейСлужебный.ОбновлениеПоЭталонуРазделенныхСтранМира"; - Обработчик.МонопольныйРежим = Истина; - Обработчик.ОбщиеДанные = Ложь; - КонецЕсли; - Обработчик = Обработчики.Добавить(); Обработчик.Версия = "2.2.3.34"; Обработчик.Процедура = "УправлениеКонтактнойИнформациейСлужебный.ОбновитьСуществующиеСтраныМира"; @@ -161,24 +146,6 @@ Обработчик.ОбщиеДанные = Ложь; Обработчик.НачальноеЗаполнение = Истина; - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.2.39"; - Обработчик.Идентификатор = Новый УникальныйИдентификатор("f663ee3c-68b7-45db-bd6c-eebe6665fc7c"); - Обработчик.Процедура = "УправлениеКонтактнойИнформациейСлужебный.УдалитьАдресаСТекстомЗаполнить"; - Обработчик.Комментарий = НСтр("ru = 'Обновление сведений контактной информации. - |До завершения обработки некоторая контактная информация может отображаться некорректно.'"); - Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.НачальноеЗаполнение = Ложь; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.2.156"; - Обработчик.Идентификатор = Новый УникальныйИдентификатор("143e1eb1-4fce-4cd2-b307-56f759d144d4"); - Обработчик.Процедура = "УправлениеКонтактнойИнформациейСлужебный.ИсправитьДатуДействияУАдресов"; - Обработчик.Комментарий = НСтр("ru = 'Обновление сведений контактной информации содержащих адреса с историей. - |До завершения обработки некоторая контактная информация может отображаться некорректно.'"); - Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.НачальноеЗаполнение = Ложь; - Обработчик = Обработчики.Добавить(); Обработчик.Версия = "2.3.1.8"; Обработчик.Процедура = "УправлениеКонтактнойИнформациейСлужебный.ОбновитьНастройкуДобавочногоНомераТелефона"; @@ -193,21 +160,6 @@ Обработчик.ОбщиеДанные = Ложь; Обработчик.НачальноеЗаполнение = Истина; - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.3.15"; - Обработчик.Идентификатор = Новый УникальныйИдентификатор("72f43d1a-9c4f-4789-81a9-e610cd56f8b2"); - Обработчик.Процедура = "Справочники.ВидыКонтактнойИнформации.ЗаполнитьВидыКонтактнойИнформации"; - Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.ВидыКонтактнойИнформации.ЗаполнитьВидыКонтактнойИнформацииСПолемДругоеКОбработке"; - Обработчик.ОчередьОтложеннойОбработки = 1; - Обработчик.ЧитаемыеОбъекты = "Справочник.ВидыКонтактнойИнформации"; - Обработчик.ИзменяемыеОбъекты = "Справочник.ВидыКонтактнойИнформации"; - Обработчик.БлокируемыеОбъекты = "Справочник.ВидыКонтактнойИнформации"; - Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика(); - Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы"; - Обработчик.Комментарий = НСтр("ru = 'Заполнение значения поля ""Другое"" у видов контактной информации. - |До завершения обработки поля ""Другое"" документов в ряде случаев будут отображаться некорректно.'"); - Обработчик = Обработчики.Добавить(); Обработчик.Версия = "2.4.3.4"; Обработчик.Идентификатор = Новый УникальныйИдентификатор("dfc6a0fa-7c7b-4096-9d04-2c67d5eb17a4"); @@ -324,118 +276,6 @@ #Область ОбновлениеИнформационнойБазы -// Неразделенный монопольный обработчик для копирования стран мира из нулевой области. -// Сохраняет эталон и список областей данных - адресатов. -// -Процедура ПодготовкаЭталонаРазделенныхСтранМира() Экспорт - - // Контроль версии базы - ИмяРегистраЭталона = "УдалитьСтраныМира"; - Если Метаданные.РегистрыСведений.Найти(ИмяРегистраЭталона) = Неопределено Тогда - Возврат; - КонецЕсли; - - Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда - Возврат; - КонецЕсли; - - МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); - - УстановитьПривилегированныйРежим(Истина); - - // Запрашиваем данные из нулевой области, создаем эталон с точностью до ссылки. - МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, 0); - Запрос = Новый Запрос(" - |ВЫБРАТЬ - | Справочник.Ссылка КАК Ссылка, - | Справочник.Код КАК Код, - | Справочник.Наименование КАК Наименование, - | Справочник.КодАльфа2 КАК КодАльфа2, - | Справочник.КодАльфа3 КАК КодАльфа3, - | Справочник.НаименованиеПолное КАК НаименованиеПолное - |ИЗ - | Справочник.СтраныМира КАК Справочник - |"); - Эталон = Запрос.Выполнить().Выгрузить(); - - МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь); - - // Пишем эталон - Набор = РегистрыСведений[ИмяРегистраЭталона].СоздатьНаборЗаписей(); - Набор.Добавить().Значение = Новый ХранилищеЗначения(Эталон, Новый СжатиеДанных(9)); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Набор); - -КонецПроцедуры - -// Разделенный обработчик для копирования стран мира из нулевой области. -// Используется эталон, подготовленный на предыдущем шаге. -// -Процедура ОбновлениеПоЭталонуРазделенныхСтранМира() Экспорт - - // Контроль версии базы - ИмяРегистраЭталона = "УдалитьСтраныМира"; - Если Метаданные.РегистрыСведений.Найти(ИмяРегистраЭталона) = Неопределено Тогда - Возврат; - КонецЕсли; - - // Ищем эталон для текущей области. - Запрос = Новый Запрос(" - |ВЫБРАТЬ - | Эталон.Значение - |ИЗ - | РегистрСведений.УдалитьСтраныМира КАК Эталон - |ГДЕ - | Эталон.ОбластьДанных = 0 - |"); - Результат = Запрос.Выполнить().Выбрать(); - Если НЕ Результат.Следующий() Тогда - Возврат; - КонецЕсли; - Эталон = Результат.Значение.Получить(); - - Запрос = Новый Запрос(" - |ВЫБРАТЬ - | Данные.Ссылка КАК Ссылка, - | Данные.Код КАК Код, - | Данные.Наименование КАК Наименование, - | Данные.КодАльфа2 КАК КодАльфа2, - | Данные.КодАльфа3 КАК КодАльфа3, - | Данные.НаименованиеПолное КАК НаименованиеПолное - |ПОМЕСТИТЬ - | Эталон - |ИЗ - | &Данные КАК Данные - |ИНДЕКСИРОВАТЬ ПО - | Ссылка - |;/////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ - | Эталон.Ссылка КАК Ссылка, - | Эталон.Код КАК Код, - | Эталон.Наименование КАК Наименование, - | Эталон.КодАльфа2 КАК КодАльфа2, - | Эталон.КодАльфа3 КАК КодАльфа3, - | Эталон.НаименованиеПолное КАК НаименованиеПолное - |ИЗ - | Эталон КАК Эталон - |ЛЕВОЕ СОЕДИНЕНИЕ - | Справочник.СтраныМира КАК СтраныМира - |ПО - | СтраныМира.Ссылка = Эталон.Ссылка - |ГДЕ - | СтраныМира.Ссылка ЕСТЬ NULL - |"); - Запрос.УстановитьПараметр("Данные", Эталон); - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - Страна = Справочники.СтраныМира.СоздатьЭлемент(); - Страна.УстановитьСсылкуНового(Выборка.Ссылка); - ЗаполнитьЗначенияСвойств(Страна, Выборка, , "Ссылка"); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Страна); - КонецЦикла; - -КонецПроцедуры - // Обновляем только существующие элементы стран мира по классификатору. Процедура ОбновитьСуществующиеСтраныМира() Экспорт @@ -451,7 +291,6 @@ // Сравнивать в запросе нельзя из-за возможной регистронезависимости базы данных. Для Каждого СтрокаКлассификатора Из МодульРаботаСАдресами.ТаблицаКлассификатора() Цикл - Фильтр.Код = СтрокаКлассификатора.Код; Выборка = Справочники.СтраныМира.Выбрать(,, Фильтр); СтранаНайдена = Выборка.Следующий(); @@ -497,219 +336,6 @@ КонецПроцедуры -Процедура УдалитьАдресаСТекстомЗаполнить(Параметры, РазмерПорции = 1000) Экспорт - - ОбъектыСАдресом = Неопределено; - Параметры.Свойство("ОбъектыСАдресом", ОбъектыСАдресом); - Если Параметры.ПрогрессВыполнения.ВсегоОбъектов = 0 Тогда - - // получение адресов для обработки - Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ - |ВЫБОР - | КОГДА ВидыКонтактнойИнформации.Родитель.ИмяПредопределенногоВида <> """" - | ТОГДА ВидыКонтактнойИнформации.Родитель.ИмяПредопределенногоВида - | ИНАЧЕ ВидыКонтактнойИнформации.Родитель.ИмяПредопределенныхДанных - |КОНЕЦ КАК ИмяПредопределенногоВида - |ИЗ - | Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации - |ГДЕ - | ВидыКонтактнойИнформации.Тип = &Тип - | И ВидыКонтактнойИнформации.РедактированиеТолькоВДиалоге = &РедактированиеТолькоВДиалоге"; - Запрос.УстановитьПараметр("РедактированиеТолькоВДиалоге", Истина); - Запрос.УстановитьПараметр("Тип", Перечисления.ТипыКонтактнойИнформации.Адрес); - РезультатЗапроса = Запрос.Выполнить(); - ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); - ТекстЗапроса = ""; - Разделитель = ""; - ШаблонЗапроса = "ВЫБРАТЬ - | ТаблицаСКонтактнойИнформацией.Ссылка КАК Ссылка - |ИЗ - | %1.%2.КонтактнаяИнформация КАК ТаблицаСКонтактнойИнформацией - |ГДЕ - | ТаблицаСКонтактнойИнформацией.Представление = &Заполнить - | - |СГРУППИРОВАТЬ ПО - | ТаблицаСКонтактнойИнформацией.Ссылка"; - Пока ВыборкаДетальныеЗаписи.Следующий() Цикл - Если СтрНачинаетсяС(ВыборкаДетальныеЗаписи.ИмяПредопределенногоВида, "Справочник") Тогда - ИмяОбъекта = Сред(ВыборкаДетальныеЗаписи.ИмяПредопределенногоВида, 11); - Если Метаданные.Справочники.Найти(ИмяОбъекта) <> Неопределено Тогда - ТекстЗапроса = ТекстЗапроса + Разделитель + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонЗапроса, "Справочник", ИмяОбъекта); - Разделитель = " ОБЪЕДИНИТЬ ВСЕ "; - КонецЕсли; - КонецЕсли; - КонецЦикла; - Если ПустаяСтрока(ТекстЗапроса) Тогда - Возврат; - КонецЕсли; - Запрос = Новый Запрос(ТекстЗапроса); - Запрос.Параметры.Вставить("Заполнить", УправлениеКонтактнойИнформациейКлиентСервер.ТекстПустогоАдресаВВидеГиперссылки()); - ОбъектыСАдресом = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); - Параметры.ПрогрессВыполнения.ВсегоОбъектов = ОбъектыСАдресом.Количество(); - Параметры.Вставить("ОбъектыСАдресом", ОбъектыСАдресом); - КонецЕсли; - - Если ОбъектыСАдресом = Неопределено ИЛИ ОбъектыСАдресом.Количество() = 0 Тогда - Возврат; - КонецЕсли; - - Позиция = ОбъектыСАдресом.Количество() - 1; - КоличествоОбработанных = 0; - - Пока Позиция >= 0 И КоличествоОбработанных < РазмерПорции Цикл - ОбъектКонтактнойИнформации = ОбъектыСАдресом.Получить(Позиция).ПолучитьОбъект(); - КонтактнаяИнформация = ОбъектКонтактнойИнформации.КонтактнаяИнформация; - МассивДляУдаления = Новый Массив; - Для каждого СтрокаКонтактнойИнформации Из КонтактнаяИнформация Цикл - Если СтрокаКонтактнойИнформации.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес - И СтрокаКонтактнойИнформации.Представление = УправлениеКонтактнойИнформациейКлиентСервер.ТекстПустогоАдресаВВидеГиперссылки() Тогда - МассивДляУдаления.Добавить(СтрокаКонтактнойИнформации); - КонецЕсли; - КонецЦикла; - Для каждого СтрокаКонтактнойИнформации Из МассивДляУдаления Цикл - КонтактнаяИнформация.Удалить(СтрокаКонтактнойИнформации); - КонецЦикла; - ОбъектКонтактнойИнформации.Записать(); - ОбъектыСАдресом.Удалить(Позиция); - Позиция = Позиция - 1; - КоличествоОбработанных = КоличествоОбработанных + 1; - КонецЦикла; - Если ОбъектыСАдресом.Количество() > 0 Тогда - Параметры.ОбработкаЗавершена = Ложь; - КонецЕсли; - Параметры.ПрогрессВыполнения.ОбработаноОбъектов = Параметры.ПрогрессВыполнения.ОбработаноОбъектов + КоличествоОбработанных; - Параметры.Вставить("ОбъектыСАдресом", ОбъектыСАдресом); - -КонецПроцедуры - -Процедура ИсправитьДатуДействияУАдресов(Параметры, РазмерПорции = 1000) Экспорт - - ОбъектыСАдресом = Неопределено; - Параметры.Свойство("ОбъектыСАдресом", ОбъектыСАдресом); - Если Параметры.ПрогрессВыполнения.ВсегоОбъектов = 0 Тогда - - // получение адресов для обработки (первый проход) - Запрос = Новый Запрос; - Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ - |ВЫБОР - | КОГДА ВидыКонтактнойИнформации.Родитель.ИмяПредопределенногоВида <> """" - | ТОГДА ВидыКонтактнойИнформации.Родитель.ИмяПредопределенногоВида - | ИНАЧЕ ВидыКонтактнойИнформации.Родитель.ИмяПредопределенныхДанных - |КОНЕЦ КАК ИмяПредопределенногоВида - |ИЗ - | Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации - |ГДЕ - | ВидыКонтактнойИнформации.ХранитьИсториюИзменений = ИСТИНА"; - - ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать(); - - ТекстЗапроса = ""; - Разделитель = ""; - - ШаблонЗапроса = "ВЫБРАТЬ - | ТаблицаСКонтактнойИнформацией.Ссылка КАК Ссылка - |ИЗ - | %1.%2.КонтактнаяИнформация КАК ТаблицаСКонтактнойИнформацией - |ГДЕ - | ТаблицаСКонтактнойИнформацией.Вид.ХранитьИсториюИзменений = ИСТИНА - | И ТаблицаСКонтактнойИнформацией.ДействуетС <> ДАТАВРЕМЯ(1, 1, 1) - | - |СГРУППИРОВАТЬ ПО - | ТаблицаСКонтактнойИнформацией.Вид, - | ТаблицаСКонтактнойИнформацией.Ссылка"; - - Пока ВыборкаДетальныеЗаписи.Следующий() Цикл - Если СтрНачинаетсяС(ВыборкаДетальныеЗаписи.ИмяПредопределенногоВида, "Справочник") Тогда - ИмяОбъекта = Сред(ВыборкаДетальныеЗаписи.ИмяПредопределенногоВида, 11); - Если Метаданные.Справочники.Найти(ИмяОбъекта) <> Неопределено Тогда - ТекстЗапроса = ТекстЗапроса + Разделитель + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонЗапроса, "Справочник", ИмяОбъекта); - Разделитель = " ОБЪЕДИНИТЬ ВСЕ "; - КонецЕсли; - КонецЕсли; - КонецЦикла; - - Если ПустаяСтрока(ТекстЗапроса) Тогда - Возврат; - КонецЕсли; - - Запрос = Новый Запрос(ТекстЗапроса); - ОбъектыСАдресом = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); - Параметры.ПрогрессВыполнения.ВсегоОбъектов = ОбъектыСАдресом.Количество(); - Параметры.Вставить("ОбъектыСАдресом", ОбъектыСАдресом); - - КонецЕсли; - - Если ОбъектыСАдресом = Неопределено ИЛИ ОбъектыСАдресом.Количество() = 0 Тогда - Возврат; - КонецЕсли; - - Позиция = ОбъектыСАдресом.Количество() - 1; - КоличествоОбработанных = 0; - - Пока Позиция >= 0 И КоличествоОбработанных < РазмерПорции Цикл - - ОбъектКонтактнойИнформации = ОбъектыСАдресом.Получить(Позиция).ПолучитьОбъект(); - КонтактнаяИнформация = ОбъектКонтактнойИнформации.КонтактнаяИнформация; - ВидыКонтактнойИнформации = КонтактнаяИнформация.Выгрузить(, "Вид"); - ВидыКонтактнойИнформации.Свернуть("Вид"); - - ТребуетсяЗаписьОбъекта = Ложь; - - Для каждого ВидКонтактнойИнформации Из ВидыКонтактнойИнформации Цикл - Если НЕ ЗначениеЗаполнено(ВидКонтактнойИнформации.Вид) - ИЛИ НЕ ВидКонтактнойИнформации.Вид.ХранитьИсториюИзменений Тогда - Продолжить; - КонецЕсли; - Отбор = Новый Структура("Вид", ВидКонтактнойИнформации.Вид); - НайденныеСтроки = КонтактнаяИнформация.НайтиСтроки(Отбор); - - Если НайденныеСтроки.Количество() = 1 Тогда - Если ЗначениеЗаполнено(НайденныеСтроки[0].ДействуетС) Тогда - НайденныеСтроки[0].ДействуетС = Дата(1, 1, 1); - ТребуетсяЗаписьОбъекта = Истина; - КонецЕсли; - ИначеЕсли НайденныеСтроки.Количество() > 0 Тогда - - СтрокаДляИзменения = НайденныеСтроки[0]; - Если НЕ ЗначениеЗаполнено(СтрокаДляИзменения.ДействуетС) Тогда - СтрокаДляИзменения = Неопределено; - Иначе - Для Индекс = 1 По НайденныеСтроки.Количество() - 1 Цикл - Если НЕ ЗначениеЗаполнено(НайденныеСтроки[Индекс].ДействуетС) Тогда - СтрокаДляИзменения = Неопределено; - Прервать; - ИначеЕсли НайденныеСтроки[Индекс].ДействуетС < СтрокаДляИзменения.ДействуетС Тогда - СтрокаДляИзменения = НайденныеСтроки[Индекс]; - КонецЕсли; - КонецЦикла; - КонецЕсли; - Если СтрокаДляИзменения <> Неопределено Тогда - СтрокаДляИзменения.ДействуетС = Дата(1, 1, 1); - ТребуетсяЗаписьОбъекта = Истина; - КонецЕсли; - КонецЕсли; - - КонецЦикла; - - Если ТребуетсяЗаписьОбъекта Тогда - ОбъектКонтактнойИнформации.Записать(); - КонецЕсли; - - ОбъектыСАдресом.Удалить(Позиция); - Позиция = Позиция - 1; - КоличествоОбработанных = КоличествоОбработанных + 1; - КонецЦикла; - - Если ОбъектыСАдресом.Количество() > 0 Тогда - Параметры.ОбработкаЗавершена = Ложь; - КонецЕсли; - - Параметры.ПрогрессВыполнения.ОбработаноОбъектов = Параметры.ПрогрессВыполнения.ОбработаноОбъектов + КоличествоОбработанных; - Параметры.Вставить("ОбъектыСАдресом", ОбъектыСАдресом); - -КонецПроцедуры - Процедура ОбновитьНастройкуДобавочногоНомераТелефона() Экспорт // Устанавливает флаг ТелефонCДобавочнымНомером для обратной совместимости. @@ -1102,8 +728,8 @@ ОписаниеТипаЧисло = Новый ОписаниеТипов("Число"); МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами"); - Классификатор = МодульРаботаСАдресами.ТаблицаКлассификатора(); + Для каждого ЭлементАдреса Из ДанныеАдреса Цикл Индекс = ОписаниеТипаЧисло.ПривестиЗначение(ЭлементАдреса.Наименование); Если Индекс >= 100000 И Индекс < 1000000 Тогда diff --git a/SSL/src/CommonModules/УправлениеПечатью/Module.bsl b/SSL/src/CommonModules/УправлениеПечатью/Module.bsl index b5e2193d9..cff2dc4b7 100644 --- a/SSL/src/CommonModules/УправлениеПечатью/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатью/Module.bsl @@ -140,7 +140,8 @@ // Возвращает список команд печати для указанной формы. // // Параметры: -// Форма - УправляемаяФорма, Строка - форма или полное имя формы, для которой необходимо получить список команд печати. +// Форма - ФормаКлиентскогоПриложения, Строка - форма или полное имя формы, для которой необходимо получить список +// команд печати. // СписокОбъектов - Массив - коллекция объектов метаданных, команды печати которых необходимо использовать при составлении // списка команд печати для указанной формы. // Возвращаемое значение: @@ -148,7 +149,7 @@ // Функция КомандыПечатиФормы(Форма, СписокОбъектов = Неопределено) Экспорт - Если ТипЗнч(Форма) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(Форма) = Тип("ФормаКлиентскогоПриложения") Тогда ИмяФормы = Форма.ИмяФормы; Иначе ИмяФормы = Форма; @@ -311,7 +312,8 @@ // // Параметры: // // ПараметрыПечати - Структура - сведения о печатной форме. // // * ОбъектыПечати - Массив - массив ссылок выбранных объектов. -// // * Форма - УправляемаяФорма - форма, из которой вызвана команда печати. +// // * Форма - ФормаКлиентскогоПриложения - форма, из которой вызвана +// // команда печати. // // * ДополнительныеПараметры - Структура - дополнительные параметры печати. // // Прочие ключи структуры соответствуют колонкам таблицы КомандыПечати, // // подробнее см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати. @@ -569,8 +571,6 @@ КонецПроцедуры -// Добавляет к параметру НаборОбластей новую запись об области. -// // Добавляет к параметру НаборОбластей новую запись об области. // // Параметры: @@ -933,10 +933,10 @@ // Параметры: // QRСтрока - Строка - данные, которые необходимо разместить в QR-коде. // -// УровеньКоррекции - Число - уровень погрешности изображения, при котором данный QR-код все еще возможно 100 % +// УровеньКоррекции - Число - уровень погрешности изображения, при котором данный QR-код все еще возможно 100% // распознать. // Параметр должен иметь тип целого и принимать одно из 4 допустимых значений: -// 0 (7 % погрешности), 1 (15 % погрешности), 2(25 % погрешности), 3(35 % погрешности). +// 0 (7 % погрешности), 1 (15 % погрешности), 2 (25 % погрешности), 3 (35 % погрешности). // // Размер - Число - определяет длину стороны выходного изображения в пикселях. // Если минимально возможный размер изображения больше этого параметра - код сформирован не будет. @@ -952,7 +952,7 @@ // ТекстОшибки = ""; // ДанныеQRКода = УправлениеПечатью.ДанныеQRКода(QRСтрока, 0, 190, ТекстОшибки); // Если Не ПустаяСтрока(ТекстОшибки) -// ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки); +// ОбщегоНазначения.СообщитьПользователю(ТекстОшибки); // КонецЕсли; // // КартинкаQRКода = Новый Картинка(ДанныеQRКода); @@ -1352,7 +1352,7 @@ // Параметры: // ПечатнаяФорма - Структура - печатная форма, см. УправлениеПечатью.ИнициализироватьПечатнуюФорму. // ОбластьМакета - Структура - см. УправлениеПечатью.ОбластьМакета. -// Данные - Массив - коллекция элементов типа Структура, данные объекта. +// Данные - Массив - коллекция элементов типа Структура - данные объекта. // ПереходНаСледСтроку - Булево - Истина, если требуется вставить разрыв после вывода области. // Процедура ПрисоединитьИЗаполнитьКоллекцию(ПечатнаяФорма, ОбластьМакета, Данные, Знач ПереходНаСледСтроку = Ложь) Экспорт @@ -1386,45 +1386,6 @@ #Область УстаревшиеПроцедурыИФункции -// Устарела. Следует использовать ПодключаемыеКоманды.ПриСозданииНаСервере. -// Размещает команды печати на форме. -// -// Параметры: -// Форма - УправляемаяФорма - форма, в которой необходимо разместить подменю Печать. -// МестоРазмещенияКомандПоУмолчанию - ЭлементФормы - группа, в которую необходимо разместить подменю Печать, -// по умолчанию размещается в командную панель формы. -// ОбъектыПечати - Массив - список объектов метаданных, для которых необходимо сформировать -// объединенное подменю Печать. -Процедура ПриСозданииНаСервере(Форма, МестоРазмещенияКомандПоУмолчанию = Неопределено, ОбъектыПечати = Неопределено) Экспорт - ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения(); - Если ТипЗнч(МестоРазмещенияКомандПоУмолчанию) = Тип("ГруппаФормы") Тогда - Если МестоРазмещенияКомандПоУмолчанию.Вид = ВидГруппыФормы.Подменю - Или МестоРазмещенияКомандПоУмолчанию.Заголовок = НСтр("ru = 'Печать'") - Или МестоРазмещенияКомандПоУмолчанию.Имя = "ПодменюПечать" Тогда - Родитель = МестоРазмещенияКомандПоУмолчанию.Родитель; - Если ТипЗнч(Родитель) = Тип("ГруппаФормы") Тогда - ПараметрыРазмещения.КоманднаяПанель = Родитель; - КонецЕсли; - Иначе - ПараметрыРазмещения.КоманднаяПанель = МестоРазмещенияКомандПоУмолчанию; - КонецЕсли; - КонецЕсли; - Если ТипЗнч(ОбъектыПечати) = Тип("Массив") Тогда - ПараметрыРазмещения.Источники = ОбъектыПечати; - КонецЕсли; - ПодключаемыеКоманды.ПриСозданииНаСервере(Форма, ПараметрыРазмещения); -КонецПроцедуры - -// Устарела. Настройка ЛокальныйКаталогФайловПечати больше не используется. -// Возвращает путь к каталогу, используемому при печати. -// -// Возвращаемое значение: -// Строка - полный путь к каталогу временных файлов печати. -// -Функция ПолучитьЛокальныйКаталогФайловПечати() Экспорт - Возврат ""; -КонецФункции - // Устарела. Следует использовать УправлениеПечатьюРФ.ФорматнаяСтрокаУФЭБС. // // Формирует форматную строку согласно "Унифицированному формату электронных банковских сообщений" для ее отображения в @@ -1741,14 +1702,6 @@ // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.2.5"; - Обработчик.Процедура = "УправлениеПечатью.СброситьПользовательскиеНастройкиФормыПечатьДокументов"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.3.22"; - Обработчик.Процедура = "УправлениеПечатью.ПреобразоватьДвоичныеДанныеПользовательскихМакетовMXLВТабличныеДокументы"; - Обработчик = Обработчики.Добавить(); Обработчик.Версия = "2.4.1.1"; Обработчик.Процедура = "УправлениеПечатью.ДобавитьРольРедактированиеПечатныхФормВПрофилиСБазовымиПравами"; @@ -1862,59 +1815,6 @@ #Область СлужебныеПроцедурыИФункции -// Сбрасывает пользовательские настройки количества печатных форм и порядка. -Процедура СброситьПользовательскиеНастройкиФормыПечатьДокументов() Экспорт - ОбщегоНазначения.ХранилищеОбщихНастроекУдалить("НастройкиПечатныхФорм", Неопределено, Неопределено); -КонецПроцедуры - -// Преобразует пользовательские макеты MXL, хранящиеся в виде двоичных данных в табличные документы. -Процедура ПреобразоватьДвоичныеДанныеПользовательскихМакетовMXLВТабличныеДокументы() Экспорт - - ТекстЗапроса = - "ВЫБРАТЬ - | ПользовательскиеМакетыПечати.ИмяМакета, - | ПользовательскиеМакетыПечати.Объект, - | ПользовательскиеМакетыПечати.Макет, - | ПользовательскиеМакетыПечати.Использование - |ИЗ - | РегистрСведений.ПользовательскиеМакетыПечати КАК ПользовательскиеМакетыПечати"; - - Запрос = Новый Запрос(ТекстЗапроса); - ВыборкаМакетов = Запрос.Выполнить().Выбрать(); - - Пока ВыборкаМакетов.Следующий() Цикл - Если СтрНачинаетсяС(ВыборкаМакетов.ИмяМакета, "ПФ_MXL") Тогда - ИмяВременногоФайла = ПолучитьИмяВременногоФайла(); - - ДвоичныеДанныеМакета = ВыборкаМакетов.Макет.Получить(); - Если ТипЗнч(ДвоичныеДанныеМакета) <> Тип("ДвоичныеДанные") Тогда - Продолжить; - КонецЕсли; - - ДвоичныеДанныеМакета.Записать(ИмяВременногоФайла); - - ТабличныйДокументПрочитан = Истина; - ТабличныйДокумент = Новый ТабличныйДокумент; - Попытка - ТабличныйДокумент.Прочитать(ИмяВременногоФайла); - Исключение - ТабличныйДокументПрочитан = Ложь; // Файл оказался не табличным документом, удаляем. - КонецПопытки; - - Запись = РегистрыСведений.ПользовательскиеМакетыПечати.СоздатьМенеджерЗаписи(); - ЗаполнитьЗначенияСвойств(Запись, ВыборкаМакетов, , "Макет"); - - Если ТабличныйДокументПрочитан Тогда - Запись.Макет = Новый ХранилищеЗначения(ТабличныйДокумент, Новый СжатиеДанных(9)); - Запись.Записать(); - Иначе - Запись.Удалить(); - КонецЕсли; - КонецЕсли; - КонецЦикла; - -КонецПроцедуры - // Добавляет роль РедактированиеПечатныхФорм во все профили, в которые входит роль БазовыеПраваБСП. Процедура ДобавитьРольРедактированиеПечатныхФормВПрофилиСБазовымиПравами() Экспорт @@ -2235,7 +2135,7 @@ ФункциональныеОпцииКомандыПечати = СтрРазделить(ОписаниеКомандыПечати.ФункциональныеОпции, ", ", Ложь); ВидимостьКоманды = ФункциональныеОпцииКомандыПечати.Количество() = 0; Для Каждого ФункциональнаяОпция Из ФункциональныеОпцииКомандыПечати Цикл - Если ТипЗнч(Форма) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(Форма) = Тип("ФормаКлиентскогоПриложения") Тогда ВидимостьКоманды = ВидимостьКоманды Или Форма.ПолучитьФункциональнуюОпциюФормы(ФункциональнаяОпция); Иначе ВидимостьКоманды = ВидимостьКоманды Или ПолучитьФункциональнуюОпцию(ФункциональнаяОпция); diff --git a/SSL/src/CommonModules/УправлениеПечатьюКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюКлиент/Module.bsl index 80b19c415..7c0b0c690 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюКлиент/Module.bsl @@ -14,7 +14,7 @@ // ИмяМенеджераПечати - Строка - менеджер печати для печатаемых объектов; // ИменаМакетов - Строка - идентификаторы печатных форм; // МассивОбъектов - Ссылка, Массив - объекты печати; -// ВладелецФормы - УправляемаяФорма - форма, из которой выполняется печать; +// ВладелецФормы - ФормаКлиентскогоПриложения - форма, из которой выполняется печать; // ПараметрыПечати - Структура - произвольные параметры для передачи в менеджер печати. // // Пример: @@ -108,8 +108,8 @@ // ДополнительныеПараметры - значение, которое было указано при создании объекта // оповещения. // СписокДокументов - Массив - ссылки на документы, которые требуется провести. -// Форма - УправляемаяФорма - форма, из которой было вызвана команда. Параметр требуется, когда -// процедура +// Форма - ФормаКлиентскогоПриложения - форма, из которой было вызвана команда. Параметр +// требуется, когда процедура // вызвана из формы объекта, для того чтобы перечитать форму. Процедура ПроверитьПроведенностьДокументов(ОписаниеПроцедурыЗавершения, СписокДокументов, Форма = Неопределено) Экспорт @@ -134,7 +134,7 @@ // Параметры: // КоллекцияПечатныхФорм - Массив - см. НоваяКоллекцияПечатныхФорм(); // ОбъектыПечати - СписокЗначений - см. УправлениеПечатьюПереопределяемый.ПриПечати; -// ВладелецФормы - УправляемаяФорма - форма, из которой выполняется печать. +// ВладелецФормы - ФормаКлиентскогоПриложения - форма, из которой выполняется печать. // Процедура ПечатьДокументов(КоллекцияПечатныхФорм, Знач ОбъектыПечати = Неопределено, ВладелецФормы = Неопределено) Экспорт Если ОбъектыПечати = Неопределено Тогда @@ -242,7 +242,7 @@ // Возвращает коллекцию параметров текущей печатной формы в форме "Печать документов" (ОбщаяФорма.ПечатьДокументов). // // Параметры: -// Форма - УправляемаяФорма - форма ПечатьДокументов, переданная в параметре Форма процедуры общего модуля +// Форма - ФормаКлиентскогоПриложения - форма ПечатьДокументов, переданная в параметре Форма процедуры общего модуля // УправлениеПечатьюКлиентПереопределяемый. // // Возвращаемое значение: @@ -665,33 +665,6 @@ КонецПроцедуры -// Прочие устаревшие процедуры и функции - -// Устарела. Следует использовать ПодключаемыеКомандыКлиент.ВыполнитьКоманду. -// -// Обработчик динамически подключаемой команды печати. -// -// Параметры: -// Команда - КомандаФормы - подключаемая команда формы, выполняющая обработчик Подключаемый_ВыполнитьКомандуПечати. -// - Структура - строка таблицы КомандыПечати, преобразованная в структуру. -// Форма - УправляемаяФорма - форма, из которой была вызвана команда. -// Источник - ТаблицаФормы, ДанныеФормыСтруктура - источник объектов печати (Форма.Объект, Форма.Элементы.Список). -// - Массив - список объектов печати. -Процедура ВыполнитьПодключаемуюКомандуПечати(Знач Команда, Знач Форма, Знач Источник) Экспорт - ПодключаемыеКомандыКлиент.ВыполнитьКоманду(Форма, Команда, Источник); -КонецПроцедуры - -// Устарела. Следует использовать ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд. -// -// Запускает отложенный процесс обновления команд печати на форме. -// -// Параметры: -// Форма - УправляемаяФорма - форма, на которой необходимо обновить команды печати. -// -Процедура НачатьОбновлениеКоманд(Форма) Экспорт - ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(Форма); -КонецПроцедуры - #КонецОбласти #КонецОбласти diff --git a/SSL/src/CommonModules/УправлениеПечатьюКлиентПереопределяемый/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюКлиентПереопределяемый/Module.bsl index bfe62e464..44451c1a4 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюКлиентПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюКлиентПереопределяемый/Module.bsl @@ -11,7 +11,7 @@ // Вызывается после выполнения обработчика ПриОткрытии формы печати документов (ОбщаяФорма.ПечатьДокументов). // // Параметры: -// Форма - УправляемаяФорма - форма ОбщаяФорма.ПечатьДокументов. +// Форма - ФормаКлиентскогоПриложения - форма ОбщаяФорма.ПечатьДокументов. // Процедура ПечатьДокументовПослеОткрытия(Форма) Экспорт @@ -22,7 +22,7 @@ // с помощью УправлениеПечатьюПереопределяемый.ПечатьДокументовПриСозданииНаСервере. // // Параметры: -// Форма - УправляемаяФорма - форма ОбщаяФорма.ПечатьДокументов. +// Форма - ФормаКлиентскогоПриложения - форма ОбщаяФорма.ПечатьДокументов. // Элемент - ПолеФормы - элемент формы, вызвавший данное событие. // НавигационнаяСсылкаФорматированнойСтроки - Строка - значение гиперссылки форматированной строки. Передается по ссылке. // СтандартнаяОбработка - Булево - признак выполнения стандартной (системной) обработки события. Если установить @@ -39,7 +39,7 @@ // с помощью УправлениеПечатьюПереопределяемый.ПечатьДокументовПриСозданииНаСервере. // // Параметры: -// Форма - УправляемаяФорма - форма ОбщаяФорма.ПечатьДокументов. +// Форма - ФормаКлиентскогоПриложения - форма ОбщаяФорма.ПечатьДокументов. // Команда - КомандаФормы - выполняемая команда. // ПродолжитьВыполнениеНаСервере - Булево - при установке значения Истина, выполнение обработчика будет продолжено в // серверном контексте в процедуре УправлениеПечатьюПереопределяемый.ПечатьДокументовПриВыполненииКоманды. diff --git a/SSL/src/CommonModules/УправлениеПечатьюКлиентСервер/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюКлиентСервер/Module.bsl index 69f55076f..567d2ca44 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюКлиентСервер/Module.bsl @@ -6,26 +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 3b54a2560..789ccaa49 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюПереопределяемый/Module.bsl @@ -156,7 +156,7 @@ // ПечатьДокументовПриСохраненииДанныхВНастройкахНаСервере. // // Параметры: -// Форма - УправляемаяФорма - форма ОбщаяФорма.ПечатьДокументов. +// Форма - ФормаКлиентскогоПриложения - форма ОбщаяФорма.ПечатьДокументов. // Отказ - Булево - признак отказа от создания формы. Если установить // данному параметру значение Истина, то форма создана не будет. // СтандартнаяОбработка - Булево - в данный параметр передается признак выполнения стандартной (системной) обработки @@ -183,7 +183,7 @@ // настроек элементов управления, размещенных с помощью ПечатьДокументовПриСозданииНаСервере. // // Параметры: -// Форма - УправляемаяФорма - форма ОбщаяФорма.ПечатьДокументов. +// Форма - ФормаКлиентскогоПриложения - форма ОбщаяФорма.ПечатьДокументов. // Настройки - Соответствие - значения реквизитов формы. // Процедура ПечатьДокументовПриЗагрузкеДанныхИзНастроекНаСервере(Форма, Настройки) Экспорт @@ -195,7 +195,7 @@ // настроек элементов управления, размещенных с помощью ПечатьДокументовПриСозданииНаСервере. // // Параметры: -// Форма - УправляемаяФорма - форма ОбщаяФорма.ПечатьДокументов. +// Форма - ФормаКлиентскогоПриложения - форма ОбщаяФорма.ПечатьДокументов. // Настройки - Соответствие - значения реквизитов формы. // Процедура ПечатьДокументовПриСохраненииДанныхВНастройкахНаСервере(Форма, Настройки) Экспорт @@ -207,7 +207,7 @@ // с помощью ПечатьДокументовПриСозданииНаСервере. // // Параметры: -// Форма - УправляемаяФорма - форма ОбщаяФорма.ПечатьДокументов. +// Форма - ФормаКлиентскогоПриложения - форма ОбщаяФорма.ПечатьДокументов. // ДополнительныеПараметры - Произвольный - параметры, переданные из УправлениеПечатьюКлиентПереопределяемый.ПечатьДокументовВыполнитьКоманду. // // Пример: diff --git a/SSL/src/CommonModules/УправлениеПечатьюСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюСлужебный/Module.bsl index ff262bf79..2ca26180c 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюСлужебный/Module.bsl @@ -1488,7 +1488,7 @@ КонецЕсли; Если НЕ СтруктураРазбораXML.ПотокиЗаписи.Свойство(ИмяПотока) Тогда - СтруктураРазбораXML.ПотокиЗаписи.Вставить(ИмяПотока, Новый Структура("Поток, ЗаписьРазрешена, Уровень, ПотокЗакрыт, ТекстПотока, УровеньАбзаца")); + СтруктураРазбораXML.ПотокиЗаписи.Вставить(ИмяПотока, Новый Структура("Поток, ЗаписьРазрешена, Уровень, ПотокЗакрыт, ТекстПотока")); КонецЕсли; Если НЕ СтруктураРазбораXML.ПотокиЗаписи[ИмяПотока].ЗаписьРазрешена = Неопределено Тогда @@ -1501,7 +1501,6 @@ СтруктураРазбораXML.ПотокиЗаписи[ИмяПотока].Уровень = ?(ПустаяСтрока(КорневойТэг), 0, 1); СтруктураРазбораXML.ПотокиЗаписи[ИмяПотока].ПотокЗакрыт = Ложь; СтруктураРазбораXML.ПотокиЗаписи[ИмяПотока].ТекстПотока = ""; - СтруктураРазбораXML.ПотокиЗаписи[ИмяПотока].УровеньАбзаца = СтруктураРазбораXML.ТекущийУровеньАбзаца; КонецПроцедуры @@ -1744,10 +1743,6 @@ Для Каждого ЭлементПотока Из СтруктураРазбораXML.ПотокиЗаписи Цикл - Если СтруктураРазбораXML.ТекущийУровеньАбзаца <> ЭлементПотока.Значение.УровеньАбзаца Тогда - Продолжить; - КонецЕсли; - Если Не ПустаяСтрока(СтруктураРазбораXML.БлокирующийПоток) И НЕ ЭлементПотока.Ключ = СтруктураРазбораXML.БлокирующийПоток Тогда Продолжить; КонецЕсли; @@ -1770,10 +1765,6 @@ Для Каждого ЭлементПотока Из СтруктураРазбораXML.ПотокиЗаписи Цикл - Если СтруктураРазбораXML.ТекущийУровеньАбзаца <> ЭлементПотока.Значение.УровеньАбзаца Тогда - Продолжить; - КонецЕсли; - Если Не ПустаяСтрока(СтруктураРазбораXML.БлокирующийПоток) И НЕ ЭлементПотока.Ключ = СтруктураРазбораXML.БлокирующийПоток Тогда Продолжить; КонецЕсли; @@ -1797,10 +1788,6 @@ Для Каждого ЭлементПотока Из СтруктураРазбораXML.ПотокиЗаписи Цикл - Если СтруктураРазбораXML.ТекущийУровеньАбзаца <> ЭлементПотока.Значение.УровеньАбзаца Тогда - Продолжить; - КонецЕсли; - Если Не ПустаяСтрока(СтруктураРазбораXML.БлокирующийПоток) И НЕ ЭлементПотока.Ключ = СтруктураРазбораXML.БлокирующийПоток Тогда Продолжить; КонецЕсли; @@ -1829,10 +1816,6 @@ Для Каждого ЭлементПотока Из СтруктураРазбораXML.ПотокиЗаписи Цикл - Если СтруктураРазбораXML.ТекущийУровеньАбзаца <> ЭлементПотока.Значение.УровеньАбзаца Тогда - Продолжить; - КонецЕсли; - Если Не ПустаяСтрока(СтруктураРазбораXML.БлокирующийПоток) И НЕ ЭлементПотока.Ключ = СтруктураРазбораXML.БлокирующийПоток Тогда Продолжить; КонецЕсли; @@ -1856,10 +1839,6 @@ Для Каждого ЭлементПотока Из СтруктураРазбораXML.ПотокиЗаписи Цикл - Если СтруктураРазбораXML.ТекущийУровеньАбзаца <> ЭлементПотока.Значение.УровеньАбзаца Тогда - Продолжить; - КонецЕсли; - Если Не ПустаяСтрока(СтруктураРазбораXML.БлокирующийПоток) И НЕ ЭлементПотока.Ключ = СтруктураРазбораXML.БлокирующийПоток Тогда Продолжить; КонецЕсли; @@ -2141,7 +2120,6 @@ Результат.Вставить("БлокирующийПоток", ""); Результат.Вставить("РазобранныеСтроки", Новый Массив); Результат.Вставить("ИмяПотокаФормата", ""); - Результат.Вставить("ТекущийУровеньАбзаца", "0"); Возврат Результат; @@ -2338,13 +2316,21 @@ КонецЕсли; Если ЧтениеНачалаПараграфа(СтруктураРазбораXML, ЧтениеXML) Тогда + + Если Число(УровеньАбзаца) > 0 Тогда + ОстановитьЗаписьВПоток(СтруктураРазбораXML, "Строки" + УровеньАбзаца); + ОстановитьЗаписьВПоток(СтруктураРазбораXML, "Абзац" + УровеньАбзаца); + ОстановитьЗаписьВПоток(СтруктураРазбораXML, "СтрокаПарам" + УровеньАбзаца); + КонецЕсли; + УровеньАбзаца = Формат(Число(УровеньАбзаца) + 1, "ЧН=0; ЧГ=0"); - СтруктураРазбораXML.ТекущийУровеньАбзаца = УровеньАбзаца; СброситьСтатусыТэгов1С(СтруктураРазбораXML, Истина); ИнициализироватьЗаписьВПоток(СтруктураРазбораXML, "Абзац" + УровеньАбзаца); ИнициализироватьЗаписьВПоток(СтруктураРазбораXML, "Строки" + УровеньАбзаца); ОстановитьЗаписьВПоток(СтруктураРазбораXML, "Строки" + УровеньАбзаца); + ОстановитьЗаписьВПоток(СтруктураРазбораXML, "Блок"); + КонецЕсли; Если ЧтениеКонцаПараграфа(СтруктураРазбораXML, ЧтениеXML) Тогда @@ -2369,16 +2355,20 @@ КонецЕсли; Если ЗавершитьЗаписьВЗаголовок Тогда + УровеньТэгаБлок = СтруктураРазбораXML.ПотокиЗаписи.Заголовок.Уровень + 1; УровеньТэгаОбласть = СтруктураРазбораXML.ПотокиЗаписи.Заголовок.Уровень + 2; ЗавершитьЗаписьВПоток(СтруктураРазбораXML, "Заголовок"); + КонецЕсли; Если ЧтениеКонцаСтроки(СтруктураРазбораXML, ЧтениеXML) Тогда + Если СтруктураРазбораXML.СтатусТэга1С = 0 И СтруктураРазбораXML.РазобранныеСтроки.Количество() = 0 Тогда ПеренестиЗаписьВПоток(СтруктураРазбораXML, "Строки" + УровеньАбзаца, "Абзац" + УровеньАбзаца); ИначеЕсли СтруктураРазбораXML.РазобранныеСтроки.Количество() > 0 Тогда + ИнициализироватьЗаписьВПоток(СтруктураРазбораXML, "СтрокиПарам"); КоличествоСтрок = 0; @@ -2440,6 +2430,7 @@ СброситьЗаписьВПоток(СтруктураРазбораXML, "СтрокиПарам"); СброситьПотокиШаблоннойСтроки(СтруктураРазбораXML); ОчиститьРазобранныеСтроки(СтруктураРазбораXML); + КонецЕсли; СброситьЗаписьВПоток(СтруктураРазбораXML, "СтрокаПарам" + УровеньАбзаца); @@ -2449,36 +2440,49 @@ ИнициализироватьЗаписьВПоток(СтруктураРазбораXML, "Строки" + УровеньАбзаца); ОстановитьЗаписьВПоток(СтруктураРазбораXML, "Строки" + УровеньАбзаца); КонецЕсли; + КонецЕсли; Если ЧтениеКонцаПараграфа(СтруктураРазбораXML, ЧтениеXML) Тогда + Если НЕ СтруктураРазбораXML.СтатусТэга1С = 0 Тогда СброситьСтатусыТэгов1С(СтруктураРазбораXML, Истина); КонецЕсли; Если Число(УровеньАбзаца) > 1 Тогда - ПотокПереноса = "Строки" + Формат(Число(УровеньАбзаца) - 1, "ЧН=0; ЧГ=0"); - ИначеЕсли ТекущийУровень = УровеньТэгаБлок И ПараметрыАнализа.ТипАнализа = 1 Тогда - ПотокПереноса = "Область"; + ПотокПереноса = "Абзац" + Формат(Число(УровеньАбзаца) - 1, "ЧН=0; ЧГ=0"); + ПеренестиЗаписьВПоток(СтруктураРазбораXML, "Абзац" + УровеньАбзаца, ПотокПереноса); Иначе - ПотокПереноса = "Блок"; + ПотокПереноса = ?(ТекущийУровень = УровеньТэгаБлок, "Область", "Блок"); КонецЕсли; - Если ПараметрыАнализа.ТипАнализа <> 1 - ИЛИ НЕ ПустаяСтрока(СтруктураРазбораXML.ИмяОбласти) И СтруктураРазбораXML.СтатусОбласти = 1 Тогда + Если ПараметрыАнализа.ТипАнализа <> 1 Тогда + ПеренестиЗаписьВПоток(СтруктураРазбораXML, "Абзац" + УровеньАбзаца, "Блок"); + ПотокПереноса = "Блок"; + ИначеЕсли Не ПустаяСтрока(СтруктураРазбораXML.ИмяОбласти) И СтруктураРазбораXML.СтатусОбласти = 1 Тогда ПеренестиЗаписьВПоток(СтруктураРазбораXML, "Абзац" + УровеньАбзаца, ПотокПереноса); КонецЕсли; + Если ПотокПереноса = "Блок" Тогда + ВозобновитьЗаписьВПоток(СтруктураРазбораXML, "Блок"); + КонецЕсли; + СброситьЗаписьВПоток(СтруктураРазбораXML, "Абзац" + УровеньАбзаца); СброситьЗаписьВПоток(СтруктураРазбораXML, "Строки" + УровеньАбзаца); - Если НЕ ПустаяСтрока(СтруктураРазбораXML.ИмяОбласти) И СтруктураРазбораXML.СтатусОбласти = 0 Тогда + Если Не ПустаяСтрока(СтруктураРазбораXML.ИмяОбласти) И СтруктураРазбораXML.СтатусОбласти = 0 Тогда СтруктураРазбораXML.СтатусОбласти = 1; КонецЕсли; УровеньАбзаца = Формат(Число(УровеньАбзаца) - 1, "ЧН=0; ЧГ=0"); - СтруктураРазбораXML.ТекущийУровеньАбзаца = УровеньАбзаца; - СтруктураРазбораXML.ИмяПотокаФормата = "СтрокаПарам" + УровеньАбзаца; + + Если Число(УровеньАбзаца) > 1 Тогда + ВозобновитьЗаписьВПоток(СтруктураРазбораXML, "Строки" + УровеньАбзаца); + ВозобновитьЗаписьВПоток(СтруктураРазбораXML, "Абзац" + УровеньАбзаца); + ВозобновитьЗаписьВПоток(СтруктураРазбораXML, "СтрокаПарам" + УровеньАбзаца); + СтруктураРазбораXML.ИмяПотокаФормата = "СтрокаПарам" + УровеньАбзаца; + КонецЕсли; + КонецЕсли; Если ЧтениеКонцаЛюбогоБлокаКромеПараграфа(СтруктураРазбораXML, ЧтениеXML) И ТекущийУровень = УровеньТэгаБлок Тогда @@ -2516,6 +2520,7 @@ КонецЕсли; Если ПараметрыАнализа.ТипАнализа = 1 Тогда + ИнициализироватьЗаписьВПоток(СтруктураРазбораXML, "Абзац", ""); ПеренестиОткрывающиеТэгиЗаписиВПоток(СтруктураРазбораXML, "Заголовок", "Абзац", "w:body"); @@ -2529,6 +2534,7 @@ СтруктураОбласти.Текст = ТекстОбласти; СтруктураОбласти.НомерРаздела = 0; ДобавитьВСтруктуруДокументаОбластьДокумента(СтруктураДокумента, СтруктураОбласти); + КонецЕсли; КонецПроцедуры diff --git a/SSL/src/CommonModules/УправлениеПечатьюСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеПечатьюСлужебныйКлиент/Module.bsl index 055d874c5..6e9f8ad41 100644 --- a/SSL/src/CommonModules/УправлениеПечатьюСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеПечатьюСлужебныйКлиент/Module.bsl @@ -17,7 +17,7 @@ // ** Идентификатор - Строка - Идентификатор команды. // ** Представление - Строка - Представление команды в форме. // ** Имя - Строка - Имя команды в форме. -// * Форма - УправляемаяФорма - Форма, из которой была вызвана команда. +// * Форма - ФормаКлиентскогоПриложения - Форма, из которой была вызвана команда. // * Источник - ДанныеФормыСтруктура, ТаблицаФормы - Объект или список формы с полем "Ссылка". // Процедура ОбработчикКоманды(Знач МассивСсылок, Знач ПараметрыВыполнения) Экспорт @@ -175,7 +175,7 @@ ОбщегоНазначенияКлиент.ОповеститьОбИзмененииОбъектов(ИзмененныеДокументы); // Если команда была вызвана из формы, то зачитываем в форму актуальную (проведенную) копию из базы. - Если ТипЗнч(ДополнительныеПараметры.Форма) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ДополнительныеПараметры.Форма) = Тип("ФормаКлиентскогоПриложения") Тогда Попытка ДополнительныеПараметры.Форма.Прочитать(); Исключение diff --git a/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl index 22844333b..dd3e6e893 100644 --- a/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствами/Module.bsl @@ -16,7 +16,7 @@ // Вызывается из обработчика ПриСозданииНаСервере формы объекта со свойствами. // // Параметры: -// Форма - УправляемаяФорма - в которой будут отображаться дополнительные реквизиты. +// Форма - ФормаКлиентскогоПриложения - в которой будут отображаться дополнительные реквизиты. // // ДополнительныеПараметры - Неопределено - все дополнительные параметры имеют значения по умолчанию. // Ранее реквизит назывался "Объект" и имел смысл, @@ -121,7 +121,7 @@ // Вызывается из обработчика ПередЗаписьюНаСервере формы объекта со свойствами. // // Параметры: -// Форма - УправляемаяФорма - уже настроена в процедуре ПриСозданииНаСервере. +// Форма - ФормаКлиентскогоПриложения - уже настроена в процедуре ПриСозданииНаСервере. // ТекущийОбъект - Объект - <ВидОбъектаМетаданных>Объект.<ИмяОбъектаМетаданных>. // Процедура ПриЧтенииНаСервере(Форма, ТекущийОбъект) Экспорт @@ -146,7 +146,7 @@ // Вызывается из обработчика ПередЗаписьюНаСервере формы объекта со свойствами. // // Параметры: -// Форма - УправляемаяФорма - уже настроена в процедуре ПриСозданииНаСервере. +// Форма - ФормаКлиентскогоПриложения - уже настроена в процедуре ПриСозданииНаСервере. // ТекущийОбъект - Объект - <ВидОбъектаМетаданных>Объект.<ИмяОбъектаМетаданных>. // Процедура ПередЗаписьюНаСервере(Форма, ТекущийОбъект) Экспорт @@ -158,7 +158,7 @@ // Проверяет заполненность реквизитов, обязательных для заполнения. // // Параметры: -// Форма - УправляемаяФорма - уже настроена в процедуре ПриСозданииНаСервере. +// Форма - ФормаКлиентскогоПриложения - уже настроена в процедуре ПриСозданииНаСервере. // Отказ - Булево - параметр обработчика ОбработкаПроверкиЗаполненияНаСервере. // ПроверяемыеРеквизиты - Массив - параметр обработчика ОбработкаПроверкиЗаполненияНаСервере. // Объект - Объект - по типу объекта, если свойство не указано или Неопределено, @@ -315,7 +315,7 @@ // Обновляет отображаемые данные на форме объекта со свойствами. // // Параметры: -// Форма - УправляемаяФорма - уже настроена в процедуре ПриСозданииНаСервере. +// Форма - ФормаКлиентскогоПриложения - уже настроена в процедуре ПриСозданииНаСервере. // // Объект - Неопределено - взять объект из реквизита формы "Объект". // - Объект - СправочникОбъект, ДокументОбъект, ... , ДанныеФормыСтруктура (по типу объекта). @@ -363,7 +363,7 @@ // Создает/пересоздает дополнительные реквизиты и элементы в форме владельца свойств. // // Параметры: -// Форма - УправляемаяФорма - уже настроена в процедуре ПриСозданииНаСервере. +// Форма - ФормаКлиентскогоПриложения - уже настроена в процедуре ПриСозданииНаСервере. // // Объект - Неопределено - взять объект из реквизита формы "Объект". // - Объект - СправочникОбъект, ДокументОбъект, ..., ДанныеФормыСтруктура (по типу объекта). @@ -843,7 +843,7 @@ // Переносит значения свойств из реквизитов формы в табличную часть объекта. // // Параметры: -// Форма - УправляемаяФорма - уже настроена в процедуре ПриСозданииНаСервере. +// Форма - ФормаКлиентскогоПриложения - уже настроена в процедуре ПриСозданииНаСервере. // Объект - Неопределено - взять объект из реквизита формы "Объект". // - Объект - СправочникОбъект, ДокументОбъект, ..., ДанныеФормыСтруктура (по типу объекта). // @@ -856,7 +856,7 @@ // Удаляет старые реквизиты и элементы формы. // // Параметры: -// Форма - УправляемаяФорма - уже настроена в процедуре ПриСозданииНаСервере. +// Форма - ФормаКлиентскогоПриложения - уже настроена в процедуре ПриСозданииНаСервере. // Процедура УдалитьСтарыеРеквизитыИЭлементы(Форма) Экспорт diff --git a/SSL/src/CommonModules/УправлениеСвойствамиКлиент/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствамиКлиент/Module.bsl index 3ce834e52..3f5ac58c4 100644 --- a/SSL/src/CommonModules/УправлениеСвойствамиКлиент/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствамиКлиент/Module.bsl @@ -11,7 +11,7 @@ // Определяет, что указанное событие - это событие об изменении набора свойств. // // Параметры: -// Форма - УправляемаяФорма - форма, в которой была вызвана обработка оповещения. +// Форма - ФормаКлиентскогоПриложения - форма, в которой была вызвана обработка оповещения. // ИмяСобытия - Строка - имя обрабатываемого события. // Параметр - Произвольный - параметры, переданные в событии. // @@ -54,7 +54,7 @@ // дополнительных реквизитов. // // Параметры: -// Форма - УправляемаяФорма - обрабатываемая форма. +// Форма - ФормаКлиентскогоПриложения - обрабатываемая форма. // Объект - ДанныеФормыСтруктура - описание объекта, к которому подключены свойства, // если свойство не указано или Неопределено, то // объект будет взят из реквизита формы "Объект". @@ -133,7 +133,7 @@ // и при необходимости подключает обработчик ожидания проверки зависимостей реквизитов. // // Параметры: -// Форма - УправляемаяФорма - проверяемая форма. +// Форма - ФормаКлиентскогоПриложения - проверяемая форма. // Процедура ПослеЗагрузкиДополнительныхРеквизитов(Форма) Экспорт @@ -150,7 +150,7 @@ // Обработчик команд с форм, к которым подключены дополнительные свойства. // // Параметры: -// Форма - УправляемаяФорма - форма с дополнительными реквизитами, предварительно +// Форма - ФормаКлиентскогоПриложения - форма с дополнительными реквизитами, предварительно // настроенная в процедуре УправлениеСвойствами.ПриСозданииНаСервере(). // Элемент - ПолеФормы, КомандаФормы - элемент, нажатие которого необходимо обработать. // СтандартнаяОбработка - Булево - возвращаемый параметр, если необходимо выполнить интерактивные @@ -185,7 +185,7 @@ // Открывает форму редактирования набора дополнительных реквизитов. // // Параметры: -// Форма - УправляемаяФорма - форма, из которой осуществляется вызов метода. +// Форма - ФормаКлиентскогоПриложения - форма, из которой осуществляется вызов метода. // Процедура РедактироватьСоставСвойств(Форма) diff --git a/SSL/src/CommonModules/УправлениеСвойствамиПереопределяемый/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствамиПереопределяемый/Module.bsl index cf0022b32..4cc9323b0 100644 --- a/SSL/src/CommonModules/УправлениеСвойствамиПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствамиПереопределяемый/Module.bsl @@ -48,7 +48,7 @@ // // Параметры: // Объект - ЛюбаяСсылка - ссылка на объект со свойствами. -// - УправляемаяФорма - форма объекта, к которому подключены свойства. +// - ФормаКлиентскогоПриложения - форма объекта, к которому подключены свойства. // - ДанныеФормыСтруктура - описание объекта, к которому подключены свойства. // // ТипСсылки - Тип - тип ссылки владельца свойств. @@ -101,7 +101,7 @@ // // Добавка имеет формат "КлючНаборовСвойств<КлючНазначения>", // чтобы <КлючНазначения> можно было обновлять без повторной добавки. -// При автоматическом вычислении <КлючНазначения> содержит хэш +// При автоматическом вычислении <КлючНазначения> содержит хеш // идентификаторов ссылок упорядоченных наборов свойств. // Процедура ЗаполнитьНаборыСвойствОбъекта(Объект, ТипСсылки, НаборыСвойств, СтандартнаяОбработка, КлючНазначения) Экспорт diff --git a/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl b/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl index 1f559f2f3..beb07ca60 100644 --- a/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl +++ b/SSL/src/CommonModules/УправлениеСвойствамиСлужебный/Module.bsl @@ -159,29 +159,6 @@ Обработчик.РежимВыполнения = "Оперативно"; Обработчик.НачальноеЗаполнение = Истина; - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.0.6.7"; - Обработчик.Процедура = "УправлениеСвойствамиСлужебный.ОбновитьСписокДополнительныхСвойств_1_0_6"; - - Обработчик = Обработчики.Добавить(); - Обработчик.ВыполнятьВГруппеОбязательных = Истина; - Обработчик.Версия = "2.1.5.3"; - Обработчик.Приоритет = 1; - Обработчик.Процедура = "УправлениеСвойствамиСлужебный.ЗаполнитьНовыеДанные_2_1_5"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.5.18"; - Обработчик.РежимВыполнения = "Отложенно"; - Обработчик.Идентификатор = Новый УникальныйИдентификатор("b3885620-c224-49f1-bda0-4510c7c18584"); - Обработчик.Комментарий = НСтр("ru = 'Реструктуризация дополнительных реквизитов и сведений. - |Возможна некорректная работа отборов по дополнительным реквизитам и сведениям в списках.'"); - Обработчик.Процедура = "УправлениеСвойствамиСлужебный.ОбновитьСоставСвойствВсехГруппНаборов"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.3.1.14"; - Обработчик.Процедура = "УправлениеСвойствамиСлужебный.ЗаполнитьНовыеСвойстваДополнительныхРеквизитовИСведений"; - Обработчик.РежимВыполнения = "Монопольно"; - Обработчик = Обработчики.Добавить(); Обработчик.Версия = "2.3.1.21"; Обработчик.Процедура = "УправлениеСвойствамиСлужебный.УстановитьЗначениеПризнакаИспользуется"; @@ -1486,292 +1463,6 @@ КонецПроцедуры -// Обновляет наборы дополнительных реквизитов и сведений в информационной базе. -// Используется для перехода к новому формату хранения. -// -Процедура ОбновитьСписокДополнительныхСвойств_1_0_6() Экспорт - - НаборыДополнительныхРеквизитовИСведений = Справочники.НаборыДополнительныхРеквизитовИСведений.Выбрать(); - - Пока НаборыДополнительныхРеквизитовИСведений.Следующий() Цикл - - ДопСведения = Новый Массив; - - НаборСвойствОбъект = НаборыДополнительныхРеквизитовИСведений.Ссылка.ПолучитьОбъект(); - - Для Каждого Запись Из НаборСвойствОбъект.ДополнительныеРеквизиты Цикл - Если Запись.Свойство.ЭтоДополнительноеСведение Тогда - ДопСведения.Добавить(Запись); - КонецЕсли; - КонецЦикла; - - Если ДопСведения.Количество() > 0 Тогда - - Для Каждого ДопСведение Из ДопСведения Цикл - НоваяСтрока = НаборСвойствОбъект.ДополнительныеСведения.Добавить(); - НоваяСтрока.Свойство = ДопСведение.Свойство; - НаборСвойствОбъект.ДополнительныеРеквизиты.Удалить( - НаборСвойствОбъект.ДополнительныеРеквизиты.Индекс(ДопСведение)); - - КонецЦикла; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборСвойствОбъект); - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - -// 1. Заполняет новые данные: -// Справочник.НаборыДополнительныхРеквизитовИСведений -// - КоличествоРеквизитов -// - КоличествоСведений -// ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения. -// - Заголовок -// - НаборСвойств -// - ДополнительныеЗначенияИспользуются -// - ДополнительныеЗначенияСВесом -// - ЗаголовокФормыЗначения -// - ЗаголовокФормыВыбораЗначения -// Константа.ИспользоватьОбщиеДополнительныеРеквизитыИСведения -// Константа.ИспользоватьОбщиеДополнительныеЗначения. -// -// 2. Обновляет имеющиеся данные: -// Справочник.НаборыДополнительныхРеквизитовИСведений. -// - Наименование -// - ДополнительныеРеквизиты (очищает, если изменено встраивание). -// - ДополнительныеСведения (очищает, если изменено встраивание). -// ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения. -// - Наименование. -// -Процедура ЗаполнитьНовыеДанные_2_1_5() Экспорт - - ЗапросСвойств = Новый Запрос; - ЗапросСвойств.Текст = - "ВЫБРАТЬ - | Свойства.Ссылка КАК Ссылка - |ИЗ - | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК Свойства - |ГДЕ - | Свойства.Наименование <> """" - | И Свойства.Заголовок = """""; - - ВыборкаСвойств = ЗапросСвойств.Выполнить().Выбрать(); - - Если ВыборкаСвойств.Количество() = 0 Тогда - Возврат; - КонецЕсли; - - ЗапросНаборов = Новый Запрос; - ЗапросНаборов.Текст = - "ВЫБРАТЬ - | Наборы.Ссылка КАК Ссылка, - | Наборы.ЭтоГруппа КАК ЭтоГруппа, - | Наборы.Наименование КАК Наименование, - | Наборы.КоличествоРеквизитов, - | Наборы.КоличествоСведений, - | Наборы.ДополнительныеРеквизиты.( - | ПометкаУдаления - | ), - | Наборы.ДополнительныеСведения.( - | ПометкаУдаления - | ) - |ИЗ - | Справочник.НаборыДополнительныхРеквизитовИСведений КАК Наборы"; - - ВыборкаНаборов = ЗапросНаборов.Выполнить().Выбрать(); - Пока ВыборкаНаборов.Следующий() Цикл - - Наименование = НаименованиеПредопределенногоНабора(ВыборкаНаборов.Ссылка); - - // Вычисление количества свойств не помеченных на удаление. - ВидыСвойствНабора = ВидыСвойствНабора(ВыборкаНаборов.Ссылка); - - ДополнительныеРеквизиты = ВыборкаНаборов.ДополнительныеРеквизиты.Выгрузить(); - Если ВидыСвойствНабора.ДополнительныеРеквизиты Тогда - КоличествоРеквизитов = ДополнительныеРеквизиты.Количество(); - КоличествоРеквизитовСтрокой = Формат(ДополнительныеРеквизиты.НайтиСтроки( - Новый Структура("ПометкаУдаления", Ложь)).Количество(), "ЧГ="); - Иначе - КоличествоРеквизитов = 0; - КоличествоРеквизитовСтрокой = ""; - КонецЕсли; - - ДополнительныеСведения = ВыборкаНаборов.ДополнительныеСведения.Выгрузить(); - Если ВидыСвойствНабора.ДополнительныеСведения Тогда - КоличествоСведений = ДополнительныеСведения.Количество(); - КоличествоСведенийСтрокой = Формат(ДополнительныеСведения.НайтиСтроки( - Новый Структура("ПометкаУдаления", Ложь)).Количество(), "ЧГ="); - Иначе - КоличествоСведений = 0; - КоличествоСведенийСтрокой = ""; - КонецЕсли; - - Если ВыборкаНаборов.Наименование <> Наименование - ИЛИ НЕ ВыборкаНаборов.ЭтоГруппа - И ( ДополнительныеРеквизиты.Количество() <> КоличествоРеквизитов - ИЛИ ДополнительныеСведения.Количество() <> КоличествоСведений - ИЛИ ВыборкаНаборов.КоличествоРеквизитов <> КоличествоРеквизитовСтрокой - ИЛИ ВыборкаНаборов.КоличествоСведений <> КоличествоСведенийСтрокой ) Тогда - - Объект = ВыборкаНаборов.Ссылка.ПолучитьОбъект(); - Объект.Наименование = Наименование; - Если НЕ ВыборкаНаборов.ЭтоГруппа Тогда - Объект.КоличествоРеквизитов = КоличествоРеквизитовСтрокой; - Объект.КоличествоСведений = КоличествоСведенийСтрокой; - Если НЕ ВидыСвойствНабора.ДополнительныеРеквизиты Тогда - Объект.ДополнительныеРеквизиты.Очистить(); - КонецЕсли; - Если НЕ ВидыСвойствНабора.ДополнительныеСведения Тогда - Объект.ДополнительныеСведения.Очистить(); - КонецЕсли; - КонецЕсли; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); - КонецЕсли; - КонецЦикла; - - ЗапросПроверкиУникальности = Новый Запрос; - ЗапросПроверкиУникальности.Текст = - "ВЫБРАТЬ ПЕРВЫЕ 2 - | Наборы.Ссылка КАК Ссылка, - | ЛОЖЬ КАК ЭтоДополнительноеСведение - |ИЗ - | Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК Наборы - |ГДЕ - | Наборы.Свойство = &Свойство - | И Наборы.Ссылка.ЭтоГруппа = ЛОЖЬ - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ ПЕРВЫЕ 2 - | Наборы.Ссылка, - | ИСТИНА - |ИЗ - | Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения КАК Наборы - |ГДЕ - | Наборы.Свойство = &Свойство - | И Наборы.Ссылка.ЭтоГруппа = ЛОЖЬ"; - - ЗапросПроверкиВеса = Новый Запрос; - ЗапросПроверкиВеса.Текст = - "ВЫБРАТЬ ПЕРВЫЕ 1 - | ИСТИНА КАК ЗначениеИстина - |ИЗ - | Справочник.ЗначенияСвойствОбъектов КАК Значения - |ГДЕ - | Значения.Владелец = &Свойство - | И НЕ Значения.ЭтоГруппа - | И Значения.Вес <> 0 - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ ПЕРВЫЕ 1 - | ИСТИНА - |ИЗ - | Справочник.ЗначенияСвойствОбъектовИерархия КАК Значения - |ГДЕ - | Значения.Владелец = &Свойство - | И Значения.Вес <> 0"; - - Пока ВыборкаСвойств.Следующий() Цикл - - Объект = ВыборкаСвойств.Ссылка.ПолучитьОбъект(); - ЗапросПроверкиУникальности.УстановитьПараметр("Свойство", ВыборкаСвойств.Ссылка); - Выгрузка = ЗапросПроверкиУникальности.Выполнить().Выгрузить(); - - Если Выгрузка.Количество() = 1 - И Выгрузка[0].ЭтоДополнительноеСведение = Объект.ЭтоДополнительноеСведение Тогда - - Объект.НаборСвойств = Выгрузка[0].Ссылка; - КонецЕсли; - - Объект.Заголовок = Объект.Наименование; - Если ЗначениеЗаполнено(Объект.НаборСвойств) Тогда - Объект.Наименование = Объект.Заголовок + " (" + Строка(Объект.НаборСвойств) + ")"; - КонецЕсли; - - Если ТипЗначенияСодержитЗначенияСвойств(Объект.ТипЗначения) Тогда - Объект.ДополнительныеЗначенияИспользуются = Истина; - КонецЕсли; - - ЗапросПроверкиВеса.УстановитьПараметр("Свойство", ВыборкаСвойств.Ссылка); - Если НЕ ЗапросПроверкиВеса.Выполнить().Пустой() Тогда - Объект.ДополнительныеЗначенияСВесом = Истина; - КонецЕсли; - - Объект.ЗаголовокФормыЗначения = СтрПолучитьСтроку(Объект.УдалитьСклоненияПредмета, 1); - Объект.ЗаголовокФормыВыбораЗначения = СтрПолучитьСтроку(Объект.УдалитьСклоненияПредмета, 2); - Объект.УдалитьСклоненияПредмета = ""; - - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); - КонецЦикла; - - // Заполнение констант. - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ ПЕРВЫЕ 1 - | ИСТИНА КАК ЗначениеИстина - |ИЗ - | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения - |ГДЕ - | ДополнительныеРеквизитыИСведения.НаборСвойств = ЗНАЧЕНИЕ(Справочник.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка) - | И ДополнительныеРеквизитыИСведения.ПометкаУдаления = ЛОЖЬ"; - - Если НЕ Запрос.Выполнить().Пустой() Тогда - Если Константы.ИспользоватьОбщиеДополнительныеРеквизитыИСведения.Получить() Тогда - Константы.ИспользоватьОбщиеДополнительныеРеквизитыИСведения.Установить(Истина); - КонецЕсли; - Если Константы.ИспользоватьОбщиеДополнительныеЗначения.Получить() Тогда - Константы.ИспользоватьОбщиеДополнительныеЗначения.Установить(Истина); - КонецЕсли; - КонецЕсли; - -КонецПроцедуры - -// Обновляет состав свойств у всех групп наборов при переходе на новую версию подсистемы. -Процедура ОбновитьСоставСвойствВсехГруппНаборов(Параметры = Неопределено) Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | НаборыСвойств.Ссылка - |ИЗ - | Справочник.НаборыДополнительныхРеквизитовИСведений КАК НаборыСвойств - |ГДЕ - | НаборыСвойств.ЭтоГруппа = ИСТИНА"; - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - ПроверитьОбновитьСоставСвойствГруппы(Выборка.Ссылка); - КонецЦикла; - -КонецПроцедуры - -// Устанавливает значения свойств "Виден", "Доступен" в значение Истина. -// -Процедура ЗаполнитьНовыеСвойстваДополнительныхРеквизитовИСведений() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | ДополнительныеРеквизитыИСведения.Ссылка - |ИЗ - | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения"; - Результат = Запрос.Выполнить().Выгрузить(); - - Для Каждого СтрокаРезультата Из Результат Цикл - СсылкаРеквизитСведение = СтрокаРезультата.Ссылка; - Объект = СсылкаРеквизитСведение.ПолучитьОбъект(); - - Объект.Виден = Истина; - Объект.Доступен = Истина; - - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); - КонецЦикла; - -КонецПроцедуры - // Устанавливает значения свойства Используется в значение Истина. // Процедура УстановитьЗначениеПризнакаИспользуется() Экспорт diff --git a/SSL/src/CommonModules/УправлениеЭлектроннойПочтой/Module.bsl b/SSL/src/CommonModules/УправлениеЭлектроннойПочтой/Module.bsl index 71dad32b4..8b51c50e6 100644 --- a/SSL/src/CommonModules/УправлениеЭлектроннойПочтой/Module.bsl +++ b/SSL/src/CommonModules/УправлениеЭлектроннойПочтой/Module.bsl @@ -2405,7 +2405,7 @@ ИначеЕсли СтрНайти(Объект.ТекстHTML, Вложение.Имя) > 0 И СтрНайти(Вложение.Идентификатор, Вложение.Имя + "@") = 0 И СтрНайти(Объект.ТекстHTML, "alt=" + """" + Вложение.Имя + """") = 0 Тогда - + Вложение.Идентификатор = ""; КонецЕсли; diff --git a/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl b/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl index 26c292865..063fbff90 100644 --- a/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl +++ b/SSL/src/CommonModules/ФайловаяСистемаКлиент/Module.bsl @@ -17,12 +17,15 @@ // Не используется для выбора каталогов - эта опция не поддерживается веб-клиентом. // // Параметры: -// ОбработчикЗавершения- ОписаниеОповещения - содержит описание процедуры, которая будет вызвана после +// ОбработчикЗавершения - ОписаниеОповещения - содержит описание процедуры, которая будет вызвана после // загрузки файла со следующими параметрами: // * ПомещенныеФайлы - Неопределено - пользователь отказался от выбора. // - Структура - пользователь выбрал файл. -// ** Хранение - Строка - расположение данных во временном хранилище. -// ** Имя - Строка - локальный путь, по которому должен быть получен файл. +// ** Хранение - Строка - расположение данных во временном хранилище. +// ** Имя - Строка - в тонком клиенте и в веб-клиенте с установленным +// расширением работы с файлами - локальный путь, по которому +// был получен файл. В веб-клиенте без расширения работы с +// файлами - имя файла с расширением. // * ДополнительныеПараметры - Произвольный - значение, которое было указано при создании объекта // ОписаниеОповещения. // ПараметрыЗагрузки - Структура - См. ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла. @@ -54,10 +57,8 @@ ПараметрыЗагрузки.ИдентификаторФормы = Новый УникальныйИдентификатор; КонецЕсли; - ОписаниеФайла = Новый ОписаниеПередаваемогоФайла(ИмяФайла, АдресВоВременномХранилище); - ЗагружаемыеФайлы = Новый Массив; - ЗагружаемыеФайлы.Добавить(ОписаниеФайла); - ПараметрыЗагрузки.Вставить("ЗагружаемыеФайлы", ЗагружаемыеФайлы); + ОписаниеФайла = Новый ОписаниеПередаваемогоФайла(ИмяФайла, АдресВоВременномХранилище); + ПараметрыЗагрузки.Вставить("ЗагружаемыеФайлы", ОписаниеФайла); ПараметрыЗагрузки.Диалог.ПолноеИмяФайла = ИмяФайла; ПараметрыЗагрузки.Диалог.МножественныйВыбор = Ложь; @@ -76,9 +77,17 @@ // ОбработчикЗавершения - ОписаниеОповещения - содержит описание процедуры, которая будет вызвана после // загрузки файлов со следующими параметрами: // * ПомещенныеФайлы - Неопределено - пользователь отказался от выбора. -// - Массив - Содержит объекты типа ОписаниеПереданногоФайла. Пользователь выбрал файл. -// ** Хранение - Строка - расположение данных во временном хранилище. -// ** Имя - Строка - локальный путь, по которому должен быть получен файл. +// - Массив - Содержит объекты типа Структура. Пользователь выбрал файл. +// ** Хранение - Строка - расположение данных во временном хранилище. +// ** Имя - Строка - в тонком клиенте и в веб-клиенте с установленным +// расширением работы с файлами - локальный путь, по которому +// был получен файл. В веб-клиенте без расширения работы с +// файлами - имя файла с расширением. +// ** ПолноеИмя - Строка - в тонком клиенте и в веб-клиенте с установленным +// расширением работы с файлами - локальный путь, по которому +// был получен файл. В веб-клиенте без расширения работы с файлами +// принимает значение "". +// ** ИмяФайла - Строка - имя файла с расширением. // * ДополнительныеПараметры - Произвольный - значение, которое было указано при создании объекта ОписаниеОповещения. // ПараметрыЗагрузки - Структура - См. ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла. // ЗагружаемыеФайлы - Массив - содержит объекты типа ОписаниеПередаваемогоФайла. Может быть заполнен полностью, @@ -207,20 +216,30 @@ // // Возвращаемое значение: // Структура - со свойствами: -// * ИдентификаторФормы - УникальныйИдентификатор - Уникальный идентификатор формы, из -// которой выполняется размещение файла. Если параметр не заполнен, -// необходимо вызывать метод глобального контекста УдалитьИзВременногоХранилища -// после завершения работы с полученными двоичными данными. Значение по -// умолчанию - Неопределено. -// * Интерактивно - Булево - Указывает использование интерактивного режима, при котором -// пользователю показывается диалог выбора файлов. Значение по -// умолчанию - Истина. -// * Диалог - ДиалогВыбораФайла - свойства см. в синтакс-помощнике. -// Используется, если свойство Интерактивно принимает значение Истина и -// удалось подключить расширение работы с файлами. -// * ТекстПредложения - Строка - текст предложения об установке расширения. Если параметр -// принимает значение "", будет выведен стандартный текст предложения. -// Значение по умолчанию - "". +// * ИдентификаторФормы - УникальныйИдентификатор - уникальный идентификатор формы, из +// которой выполняется размещение файла. Если параметр не заполнен, +// необходимо вызывать метод глобального контекста УдалитьИзВременногоХранилища +// после завершения работы с полученными двоичными данными. Значение по +// умолчанию - Неопределено. +// * Интерактивно - Булево - указывает использование интерактивного режима, при котором +// пользователю показывается диалог выбора файлов. Значение по +// умолчанию - Истина. +// * Диалог - ДиалогВыбораФайла - свойства см. в синтакс-помощнике. +// Используется, если свойство Интерактивно принимает значение Истина и +// удалось подключить расширение работы с файлами. +// * ТекстПредложения - Строка - текст предложения об установке расширения. Если параметр +// принимает значение "", будет выведен стандартный текст предложения. +// Значение по умолчанию - "". +// * ДействиеПередНачаломПомещенияФайлов - ОписаниеОповещения, Неопределено - содержит описание процедуры, +// которая будет вызвана непосредственно перед началом помещения файла +// во временное хранилище.Если параметр принимает значение Неопределено, +// перед помещением файла никакая процедура вызываться не будет. Значение +// по умолчанию - Неопределено. Параметры вызываемой процедуры: +// ** ПомещаемыеФайлы - СсылкаНаФайл, Массив - ссылка на файл, готовый к помещению во временное хранилище. +// Если загружалось несколько файлов, содержит массив ссылок. +// ** ОтказОтПомещенияФайла - Булево - признак отказа от дальнейшего помещения файла. Если в теле процедуры-обработчика +// установить данному параметру значение Истина, то помещение файла будет отменено. +// ** ДополнительныеПараметры - Произвольный - значение, которое было указано при создании объекта ОписаниеОповещения. // // Пример: // ПараметрыЗагрузки = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла(); @@ -232,6 +251,7 @@ ПараметрыЗагрузки = КонтекстОперации(РежимДиалогаВыбораФайла.Открытие); ПараметрыЗагрузки.Вставить("ИдентификаторФормы", Неопределено); + ПараметрыЗагрузки.Вставить("ДействиеПередНачаломПомещенияФайлов", Неопределено); Возврат ПараметрыЗагрузки; КонецФункции @@ -364,7 +384,7 @@ СохранитьФайл(ОписаниеОповещения, РасположениеФайла, ПутьКФайлу, ПараметрыСохранения); Иначе - ФайловаяСистемаСлужебныйКлиент.ОткрытьФайлПослеСохранения(Новый Структура("Имя", РасположениеФайла), ПараметрыОткрытия); + ФайловаяСистемаСлужебныйКлиент.ОткрытьФайлПослеСохранения(Новый Структура("ПолноеИмя", РасположениеФайла), ПараметрыОткрытия); КонецЕсли; КонецПроцедуры @@ -507,7 +527,7 @@ // с повышением привилегий системы: // - Windows: запрос UAC; // - Linux: исполнение с командой pkexec; -// - OSX, веб-клиент и мобильный клиент: будет возвращено Результат.ОписаниеОшибки. +// - macOS, веб-клиент и мобильный клиент: будет возвращено Результат.ОписаниеОшибки. // Функция ПараметрыЗапускаПрограммы() Экспорт diff --git a/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиент/Module.bsl index b3b9295db..29643458f 100644 --- a/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ФайловаяСистемаСлужебныйКлиент/Module.bsl @@ -18,42 +18,44 @@ ЗагружаемыеФайлы = Контекст.ЗагружаемыеФайлы; ИдентификаторФормы = Контекст.ИдентификаторФормы; ОбработчикЗавершения = Контекст.ОбработчикЗавершения; - + ПараметрыОбработкиРезультата = Новый Структура; ПараметрыОбработкиРезультата.Вставить("МножественныйВыбор", Диалог.МножественныйВыбор); ПараметрыОбработкиРезультата.Вставить("ОбработчикЗавершения", ОбработчикЗавершения); - Если РасширениеПодключено Тогда - - Если Интерактивно Тогда - ПомещаемыеФайлы = Новый Массив; - Иначе - Диалог = ""; - ПомещаемыеФайлы = ЗагружаемыеФайлы; - КонецЕсли; + Если Не РасширениеПодключено + И Не Интерактивно Тогда + ВызватьИсключение НСтр("ru ='Невозможно загрузить файл без установленного расширения работы с файлами.'"); + КонецЕсли; + + Если Диалог.МножественныйВыбор Тогда + ПомещаемыеФайлы = ?(Интерактивно, Диалог, ЗагружаемыеФайлы); ОписаниеОповещения = Новый ОписаниеОповещения( "ОбработатьРезультатПомещенияФайлов", ЭтотОбъект, ПараметрыОбработкиРезультата); Если ЗначениеЗаполнено(ИдентификаторФормы) Тогда - НачатьПомещениеФайлов(ОписаниеОповещения, ПомещаемыеФайлы, Диалог, Интерактивно, ИдентификаторФормы); + НачатьПомещениеФайлов(ОписаниеОповещения, ПомещаемыеФайлы, Интерактивно, + ИдентификаторФормы, Контекст.ДействиеПередНачаломПомещенияФайлов); Иначе - НачатьПомещениеФайлов(ОписаниеОповещения, ПомещаемыеФайлы, Диалог, Интерактивно); + НачатьПомещениеФайлов(ОписаниеОповещения, ПомещаемыеФайлы, Интерактивно, , + Контекст.ДействиеПередНачаломПомещенияФайлов); КонецЕсли; - Иначе + Иначе - Обработчик = Новый ОписаниеОповещения( + ПомещаемыйФайл = ?(Интерактивно, Диалог, ЗагружаемыеФайлы.Имя); + ОписаниеОповещения = Новый ОписаниеОповещения( "ОбработатьРезультатПомещенияФайла", ЭтотОбъект, ПараметрыОбработкиРезультата); Если ЗначениеЗаполнено(ИдентификаторФормы) Тогда - НачатьПомещениеФайла(Обработчик, , Диалог.ПолноеИмяФайла, Истина, ИдентификаторФормы); + НачатьПомещениеФайла(ОписаниеОповещения, ЗагружаемыеФайлы.Хранение, ПомещаемыйФайл, + Интерактивно, ИдентификаторФормы, Контекст.ДействиеПередНачаломПомещенияФайлов); Иначе - НачатьПомещениеФайла(Обработчик, , Диалог.ПолноеИмяФайла, Истина); + НачатьПомещениеФайла(ОписаниеОповещения, ЗагружаемыеФайлы.Хранение, ПомещаемыйФайл, + Интерактивно, , Контекст.ДействиеПередНачаломПомещенияФайлов); КонецЕсли; - Возврат; - КонецЕсли; КонецПроцедуры @@ -74,28 +76,26 @@ Если ТипЗнч(АдресИлиРезультатВыбора) = Тип("Массив") Тогда - Если ПараметрыОбработкиРезультата.МножественныйВыбор Тогда - ПомещенныеФайлы = АдресИлиРезультатВыбора; - Иначе + ПомещенныеФайлы = Новый Массив; + Для Каждого ПомещаемыйФайл Из АдресИлиРезультатВыбора Цикл - ПомещенныеФайлы = Новый Структура; - ПомещенныеФайлы.Вставить("Хранение", АдресИлиРезультатВыбора[0].Хранение); - ПомещенныеФайлы.Вставить("Имя", АдресИлиРезультатВыбора[0].Имя); + СвойстваФайла = Новый Структура("Имя, ПолноеИмя, Хранение"); + ЗаполнитьЗначенияСвойств(СвойстваФайла, ПомещаемыйФайл); - КонецЕсли; + СвойстваФайла.Вставить("ИмяФайла", ПомещаемыйФайл.Имя); + Если Не ПустаяСтрока(ПомещаемыйФайл.ПолноеИмя) Тогда + СвойстваФайла.Имя = ПомещаемыйФайл.ПолноеИмя; + КонецЕсли; + + ПомещенныеФайлы.Добавить(СвойстваФайла); + + КонецЦикла; Иначе - ОписаниеФайла = Новый Структура; - ОписаниеФайла.Вставить("Хранение", АдресИлиРезультатВыбора); - ОписаниеФайла.Вставить("Имя", ВыбранноеИмяФайла); - - Если ПараметрыОбработкиРезультата.МножественныйВыбор Тогда - ПомещенныеФайлы = Новый Массив; - ПомещенныеФайлы.Добавить(ОписаниеФайла); - Иначе - ПомещенныеФайлы = ОписаниеФайла; - КонецЕсли; + ПомещенныеФайлы = Новый Структура; + ПомещенныеФайлы.Вставить("Хранение", АдресИлиРезультатВыбора); + ПомещенныеФайлы.Вставить("Имя", ВыбранноеИмяФайла); КонецЕсли; @@ -114,14 +114,20 @@ // Продолжение процедуры ФайловаяСистемаКлиент.ПоказатьПолучениеФайлов. Процедура ПоказатьПолучениеФайловПриПодключенииРасширенияРаботыСФайлами(РасширениеПодключено, Контекст) Экспорт - Интерактивно = Контекст.Интерактивно; - Диалог = ?(Интерактивно, Контекст.Диалог, Контекст.Диалог.Каталог); - Если РасширениеПодключено Тогда - ОповещениеОЗавершении = Новый ОписаниеОповещения("ОповеститьОЗавершенииПолученияФайлов", ЭтотОбъект, Контекст); - НачатьПолучениеФайлов(ОповещениеОЗавершении, Контекст.ПолучаемыеФайлы, - Диалог, Интерактивно); + Если Контекст.Интерактивно Тогда + ПоказатьПолучениеФайловВКаталог(Контекст); + ИначеЕсли Не ПустаяСтрока(Контекст.Диалог.Каталог)Тогда + Контекст.Диалог = Контекст.Диалог.Каталог; + ПоказатьПолучениеФайловВКаталог(Контекст); + Иначе + + ОповещениеОПолученииКаталога = Новый ОписаниеОповещения( + "ПоказатьПолучениеФайловПослеПолученияКаталогаВременныхФайлов", ЭтотОбъект, Контекст); + НачатьПолучениеКаталогаВременныхФайлов(ОповещениеОПолученииКаталога); + + КонецЕсли; Иначе @@ -137,6 +143,23 @@ КонецПроцедуры +// Продолжение процедуры ФайловаяСистемаКлиент.ПоказатьПолучениеФайлов. +Процедура ПоказатьПолучениеФайловПослеПолученияКаталогаВременныхФайлов(ИмяКаталогаВременныхФайлов, Контекст) Экспорт + + Контекст.Диалог = ИмяКаталогаВременныхФайлов; + ПоказатьПолучениеФайловВКаталог(Контекст); + +КонецПроцедуры + +// Продолжение процедуры ФайловаяСистемаКлиент.ПоказатьПолучениеФайлов. +Процедура ПоказатьПолучениеФайловВКаталог(Контекст) + + ОповещениеОЗавершении = Новый ОписаниеОповещения("ОповеститьОЗавершенииПолученияФайлов", ЭтотОбъект, Контекст); + НачатьПолучениеФайлов(ОповещениеОЗавершении, Контекст.ПолучаемыеФайлы, + Контекст.Диалог, Контекст.Интерактивно); + +КонецПроцедуры + // Продолжение процедуры ФайловаяСистемаКлиент.ПоказатьПолучениеФайлов. Процедура ОповеститьОЗавершенииПолученияФайлов(ПолученныеФайлы, ДополнительныеПараметры) Экспорт @@ -162,10 +185,11 @@ СохраненныеФайлы[0], СохраненныеФайлы); + ПараметрыОткрытия.Вставить("ПутьКФайлу", ОписаниеФайла.ПолноеИмя); ОбработчикЗавершения = Новый ОписаниеОповещения( "ОткрытьФайлПослеЗавершенияРедактирования", ЭтотОбъект, ПараметрыОткрытия); - ОткрытьФайлВПрограммеПросмотра(ОписаниеФайла.Имя, ОбработчикЗавершения, ПараметрыОткрытия.ДляРедактирования); + ОткрытьФайлВПрограммеПросмотра(ОписаниеФайла.ПолноеИмя, ОбработчикЗавершения, ПараметрыОткрытия.ДляРедактирования); КонецЕсли; @@ -430,7 +454,7 @@ Или Расширение = ".OUT" // Исполняемый файл Или Расширение = ".RUN" // Исполняемый файл Или Расширение = ".SH" // Shell Script - // MacOS + // macOS Или Расширение = ".ACTION" // Automator Action Или Расширение = ".APP" // Исполняемый файл Или Расширение = ".COMMAND" // Terminal Command @@ -500,7 +524,7 @@ Если ЭтоФайл Тогда Если ОбщегоНазначенияКлиент.ЭтоWindowsКлиент() Тогда НачатьЗапускПриложения(Оповещение, "explorer.exe /select, """ + ФайлИнфо.ПолноеИмя + """"); - Иначе // Это Linux или MacOS. + Иначе // Это Linux или macOS. НачатьЗапускПриложения(Оповещение, "file:///" + ФайлИнфо.Путь); КонецЕсли; Иначе // Это каталог. @@ -1015,8 +1039,8 @@ Возврат; КонецЕсли; - // В веб клиенте под MacOS расширение не доступно. - Если ОбщегоНазначенияКлиент.ЭтоOSXКлиент() Тогда + // В веб клиенте под macOS расширение не доступно. + Если ОбщегоНазначенияКлиент.ЭтоMacOSКлиент() Тогда ВыполнитьОбработкуОповещения(Контекст.ОписаниеОповещенияЗавершение); Возврат; КонецЕсли; diff --git a/SSL/src/CommonModules/ФайловыеФункции/Module.bsl b/SSL/src/CommonModules/ФайловыеФункции/Module.bsl deleted file mode 100644 index 5d00c5500..000000000 --- a/SSL/src/CommonModules/ФайловыеФункции/Module.bsl +++ /dev/null @@ -1,121 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ПрограммныйИнтерфейс - -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать РаботаСФайлами.НастройкиРаботыСФайлами(); -// Возвращает структуру, содержащую персональные настройки работы с файлами. -// -// Возвращаемое значение: -// Структура - со свойствами: -// * ПоказыватьЗанятыеФайлыПриЗавершенииРаботы - Булево - Существует, только если внедрена подсистема Работа с -// файлами. -// * СпрашиватьРежимРедактированияПриОткрытииФайла - Булево - Существует, только если внедрена подсистема Работа с -// файлами. -// * ПоказыватьКолонкуРазмер - Булево - Существует, только если внедрена подсистема Работа с -// файлами. -// * ДействиеПоДвойномуЩелчкуМыши - Строка - Существует, только если внедрена подсистема Работа с -// файлами. -// * СпособСравненияВерсийФайлов - Строка - Существует, только если внедрена подсистема Работа с -// файлами. -// * ГрафическиеСхемыРасширение - Строка - Список расширений для графических схем. -// * ГрафическиеСхемыСпособОткрытия - ПеречислениеСсылка.СпособыОткрытияФайлаНаПросмотр - способ -// открытия графических схем. -// * ТекстовыеФайлыРасширение - Строка - Расширения файлов открытого формата документов. -// * ТекстовыеФайлыСпособОткрытия - ПеречислениеСсылка.СпособыОткрытияФайлаНаПросмотр - способ -// открытия текстовых файлов. -// * МаксимальныйРазмерЛокальногоКэшаФайлов - Число - Определяет максимальный размер локального кэша файлов. -// * ПодтверждатьПриУдаленииИзЛокальногоКэшаФайлов - Булево - Задавать вопрос при удалении файлов из локального кэша. -// * ПоказыватьИнформациюЧтоФайлНеБылИзменен - Булево - Показывать файлы при завершении работы. -// * ПоказыватьПодсказкиПриРедактированииФайлов - Булево - В веб-клиенте показывать подсказки при -// редактировании файлов. -// * ПутьКЛокальномуКэшуФайлов - Строка - Путь к локальному кэшу файлов. -// * ЭтоПолноправныйПользователь - Булево - Истина, если это полноправный пользователь. -// * УдалятьФайлИзЛокальногоКэшаФайловПриЗавершенииРедактирования - Булево - удаления файлов из локального кэша при -// завершении редактирования. -// -Функция НастройкиРаботыСФайлами() Экспорт - - Возврат РаботаСФайлами.НастройкиРаботыСФайлами(); - -КонецФункции - -// Устарела. Следует использовать РаботаСФайлами.СохранитьНастройкиРаботыСФайлами(); -// Сохраняет настройки работы с файлами. -// -// Параметры: -// НастройкиРаботыСФайлами - Структура - настройки работы с файлами с их значениями. -// * ПоказыватьИнформациюЧтоФайлНеБылИзменен - Булево - Необязательный. Показывать сообщение, если файл не -// был изменен. -// * ПоказыватьЗанятыеФайлыПриЗавершенииРаботы - Булево - Необязательный. Показывать файлы при завершении работы. -// * ПоказыватьКолонкуРазмер - Булево - Необязательный. Отображать колонку размер в формах -// списках файлов. -// * ТекстовыеФайлыРасширение - Строка - Расширения файлов открытого формата документов. -// * ТекстовыеФайлыСпособОткрытия - ПеречислениеСсылка.СпособыОткрытияФайлаНаПросмотр - способ -// открытия текстовых файлов. -// * ГрафическиеСхемыРасширение - Строка - Список расширений графических файлов. -// * ПоказыватьПодсказкиПриРедактированииФайлов - Булево - Необязательный. В веб-клиенте показывать подсказки -// при редактировании файлов. -// * СпрашиватьРежимРедактированияПриОткрытииФайла - Булево - Необязательный. Выбирать режим редактирования при -// открытии файла. -// * СпособСравненияВерсийФайлов - ПеречислениеСсылка.СпособыСравненияВерсийФайлов - -// Необязательный. Способ сравнения версий и файлов. -// * ДействиеПоДвойномуЩелчкуМыши - ПеречислениеСсылка.ДействияСФайламиПоДвойномуЩелчку - Необязательный. -// * ГрафическиеСхемыСпособОткрытия - ПеречислениеСсылка.СпособыОткрытияФайлаНаПросмотр - -// Необязательный. Способ открытия файла на просмотр. -// -Процедура СохранитьНастройкиРаботыСФайлами(НастройкиРаботыСФайлами) Экспорт - - РаботаСФайлами.СохранитьНастройкиРаботыСФайлами(НастройкиРаботыСФайлами); - -КонецПроцедуры - -// Устарела. Следует использовать РаботаСФайлами.МаксимальныйРазмерФайла(); -// Возвращает максимальный размер файла. -// -// Возвращаемое значение: -// Число - целое число байт. -// -Функция МаксимальныйРазмерФайла() Экспорт - - Возврат РаботаСФайлами.МаксимальныйРазмерФайла(); - -КонецФункции - -// Устарела. Следует использовать РаботаСФайлами.МаксимальныйРазмерФайлаОбщий(); -// Возвращает максимальный размер файла провайдера. -// -// Возвращаемое значение: -// Число - целое число байт. -// -Функция МаксимальныйРазмерФайлаОбщий() Экспорт - - Возврат РаботаСФайлами.МаксимальныйРазмерФайлаОбщий(); - -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Работа с томами файлов - -// Устарела. Следует использовать РаботаСФайлами.ЕстьТомаХраненияФайлов(); -// Есть ли хоть один том хранения файлов. -// -// Возвращаемое значение: -// Булево - если Истина, тогда существует хотя бы один работающий том. -// -Функция ЕстьТомаХраненияФайлов() Экспорт - - Возврат РаботаСФайлами.ЕстьТомаХраненияФайлов(); - -КонецФункции - -#КонецОбласти - -#КонецОбласти diff --git a/SSL/src/CommonModules/ФайловыеФункцииКлиент/Module.bsl b/SSL/src/CommonModules/ФайловыеФункцииКлиент/Module.bsl deleted file mode 100644 index a8ca45250..000000000 --- a/SSL/src/CommonModules/ФайловыеФункцииКлиент/Module.bsl +++ /dev/null @@ -1,26 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 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 deleted file mode 100644 index ea9071662..000000000 --- a/SSL/src/CommonModules/ФайловыеФункцииКлиент/ФайловыеФункцииКлиент.mdo +++ /dev/null @@ -1,10 +0,0 @@ - - - ФайловыеФункцииКлиент - - ru - Файловые функции клиент - - true - true - diff --git a/SSL/src/CommonModules/ФайловыеФункцииСлужебныйВМоделиСервиса/Module.bsl b/SSL/src/CommonModules/ФайловыеФункцииСлужебныйВМоделиСервиса/Module.bsl deleted file mode 100644 index 8d87d7f40..000000000 --- a/SSL/src/CommonModules/ФайловыеФункцииСлужебныйВМоделиСервиса/Module.bsl +++ /dev/null @@ -1,250 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -//////////////////////////////////////////////////////////////////////////////// -// Извлечение текста - -// Добавляет и удаляет записи в регистр сведений ОчередьИзвлеченияТекста при изменении -// состояние извлечения текста версий файлов. -// -// Параметры: -// ИсточникТекста - СправочникСсылка.ВерсииФайлов, СправочникСсылка.*ПрисоединенныеФайлы, -// файл, у которого изменилось состояние извлечения текста. -// СостояниеИзвлеченияТекста - ПеречислениеСсылка.СтатусыИзвлеченияТекстаФайлов, новый -// статус извлечения текста у файла. -// -Процедура ОбновитьСостояниеОчередиИзвлеченияТекста(ИсточникТекста, СостояниеИзвлеченияТекста) Экспорт - - УстановитьПривилегированныйРежим(Истина); - - НаборЗаписей = РегистрыСведений.ОчередьИзвлеченияТекста.СоздатьНаборЗаписей(); - НаборЗаписей.Отбор.ОбластьДанныхВспомогательныеДанные.Установить(РаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); - НаборЗаписей.Отбор.ИсточникТекста.Установить(ИсточникТекста); - - Если СостояниеИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен - ИЛИ СостояниеИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.ПустаяСсылка() Тогда - - Запись = НаборЗаписей.Добавить(); - Запись.ОбластьДанныхВспомогательныеДанные = РаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); - Запись.ИсточникТекста = ИсточникТекста.Ссылка; - - КонецЕсли; - - НаборЗаписей.Записать(); - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики событий подсистем конфигурации. - -// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков. -Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда - СоответствиеИменПсевдонимам.Вставить("РаботаСФайламиСлужебный.ИзвлечьТекстИзФайлов"); - СоответствиеИменПсевдонимам.Вставить("РаботаСФайламиСлужебный.ОчиститьНенужныеФайлы"); - СоответствиеИменПсевдонимам.Вставить("РаботаСФайламиСлужебный.РегламентнаяСинхронизацияФайловWebdav"); - КонецЕсли; - -КонецПроцедуры - -// См. ОчередьЗаданийПереопределяемый.ПриОпределенииИспользованияРегламентныхЗаданий. -Процедура ПриОпределенииИспользованияРегламентныхЗаданий(ТаблицаИспользования) Экспорт - - НоваяСтрока = ТаблицаИспользования.Добавить(); - НоваяСтрока.РегламентноеЗадание = "ПланированиеИзвлеченияТекстаВМоделиСервиса"; - НоваяСтрока.Использование = ПолучитьФункциональнуюОпцию("ИспользоватьПолнотекстовыйПоиск"); - -КонецПроцедуры - -// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов. -Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт - - ШаблоныЗаданий.Добавить("ОчисткаНенужныхФайлов"); - ШаблоныЗаданий.Добавить("СинхронизацияФайлов"); - -КонецПроцедуры - -// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки. -Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт - - Типы.Добавить(Метаданные.РегистрыСведений.ОчередьИзвлеченияТекста); - -КонецПроцедуры - -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.2.4"; - Обработчик.Процедура = "ФайловыеФункцииСлужебныйВМоделиСервиса.ЗаполнитьОчередьИзвлеченияТекста"; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.1.3.19"; - Обработчик.Процедура = "ФайловыеФункцииСлужебныйВМоделиСервиса.ПеренестиОчередьИзвлеченияТекстаВоВспомогательныеДанные"; - Обработчик.ОбщиеДанные = Истина; - - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.4.3.89"; - Обработчик.ОбщиеДанные = Истина; - Обработчик.Процедура = "ФайловыеФункцииСлужебныйВМоделиСервиса.ОчиститьРегистрСведенийУдалитьОчередьИзвлеченияТекста"; - Обработчик.РежимВыполнения = "Оперативно"; - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -//////////////////////////////////////////////////////////////////////////////// -// Извлечение текста - -// Определяет перечень областей данных, в которых требуется извлечение текста и планирует -// для них его выполнение с использованием очереди заданий. -// -Процедура ОбработатьОчередьИзвлеченияТекста() Экспорт - - ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ПланированиеИзвлеченияТекстаВМоделиСервиса); - - Если НЕ РаботаВМоделиСервиса.РазделениеВключено() - Или Не ОбщегоНазначения.ЭтоWindowsСервер() Тогда - Возврат; - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - - ИмяРазделенногоМетода = "РаботаСФайламиСлужебный.ИзвлечьТекстИзФайлов"; - - ТекстЗапроса = - "ВЫБРАТЬ РАЗЛИЧНЫЕ - | ОчередьИзвлеченияТекста.ОбластьДанныхВспомогательныеДанные КАК ОбластьДанных, - | ВЫБОР - | КОГДА ЧасовыеПояса.Значение = """" - | ТОГДА НЕОПРЕДЕЛЕНО - | ИНАЧЕ ЕСТЬNULL(ЧасовыеПояса.Значение, НЕОПРЕДЕЛЕНО) - | КОНЕЦ КАК ЧасовойПояс - |ИЗ - | РегистрСведений.ОчередьИзвлеченияТекста КАК ОчередьИзвлеченияТекста - | ЛЕВОЕ СОЕДИНЕНИЕ Константа.ЧасовойПоясОбластиДанных КАК ЧасовыеПояса - | ПО ОчередьИзвлеченияТекста.ОбластьДанныхВспомогательныеДанные = ЧасовыеПояса.ОбластьДанныхВспомогательныеДанные - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОбластиДанных КАК ОбластиДанных - | ПО ОчередьИзвлеченияТекста.ОбластьДанныхВспомогательныеДанные = ОбластиДанных.ОбластьДанныхВспомогательныеДанные - |ГДЕ - | НЕ ОчередьИзвлеченияТекста.ОбластьДанныхВспомогательныеДанные В (&ОбрабатываемыеОбластиДанных) - | И ОбластиДанных.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыОбластейДанных.Используется)"; - Запрос = Новый Запрос(ТекстЗапроса); - Запрос.УстановитьПараметр("ОбрабатываемыеОбластиДанных", ОчередьЗаданий.ПолучитьЗадания( - Новый Структура("ИмяМетода", ИмяРазделенногоМетода))); - - Выборка = РаботаВМоделиСервиса.ВыполнитьЗапросВнеТранзакции(Запрос).Выбрать(); - Пока Выборка.Следующий() Цикл - // Проверка блокировки области. - Если РаботаВМоделиСервиса.ОбластьДанныхЗаблокирована(Выборка.ОбластьДанных) Тогда - // Область заблокирована, перейти к следующей записи. - Продолжить; - КонецЕсли; - - НовоеЗадание = Новый Структура(); - НовоеЗадание.Вставить("ОбластьДанных", Выборка.ОбластьДанных); - НовоеЗадание.Вставить("ЗапланированныйМоментЗапуска", МестноеВремя(ТекущаяУниверсальнаяДата(), Выборка.ЧасовойПояс)); - НовоеЗадание.Вставить("ИмяМетода", ИмяРазделенногоМетода); - ОчередьЗаданий.ДобавитьЗадание(НовоеЗадание); - КонецЦикла; - -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Обновление информационной базы. - -// Заполняет очередь извлечения текста для текущей области данных. Используется для начального заполнения при -// обновлении. -Процедура ЗаполнитьОчередьИзвлеченияТекста() Экспорт - - Если Не РаботаВМоделиСервисаПовтИсп.ЭтоРазделеннаяКонфигурация() Тогда - Возврат; - КонецЕсли; - - Запрос = Новый Запрос; - Запрос.Текст = РаботаСФайламиСлужебный.ТекстЗапросаДляИзвлеченияТекста(Истина); - - Выборка = Запрос.Выполнить().Выбрать(); - Пока Выборка.Следующий() Цикл - ОбновитьСостояниеОчередиИзвлеченияТекста(Выборка.Ссылка, - Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен); - КонецЦикла; - -КонецПроцедуры - -// Переносит флаг необходимости выполнения извлечения текста в областях -// данных из РС УдалитьОчередьИзвлеченияТекста в РС ОчередьИзвлеченияТекста. -// -Процедура ПеренестиОчередьИзвлеченияТекстаВоВспомогательныеДанные() Экспорт - - Если Не РаботаВМоделиСервиса.РазделениеВключено() Тогда - Возврат; - КонецЕсли; - - НачатьТранзакцию(); - - Попытка - - Блокировка = Новый БлокировкаДанных(); - Блокировка.Добавить("РегистрСведений.ОчередьИзвлеченияТекста"); - Блокировка.Заблокировать(); - - ТекстЗапроса = - "ВЫБРАТЬ - | ЕСТЬNULL(ОчередьИзвлеченияТекста.ОбластьДанныхВспомогательныеДанные, УдалитьОчередьИзвлеченияТекста.ОбластьДанных) КАК ОбластьДанныхВспомогательныеДанные, - | ЕСТЬNULL(ОчередьИзвлеченияТекста.ИсточникТекста, УдалитьОчередьИзвлеченияТекста.ИсточникТекста) КАК ИсточникТекста - |ИЗ - | РегистрСведений.УдалитьОчередьИзвлеченияТекста КАК УдалитьОчередьИзвлеченияТекста - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОчередьИзвлеченияТекста КАК ОчередьИзвлеченияТекста - | ПО УдалитьОчередьИзвлеченияТекста.ОбластьДанных = ОчередьИзвлеченияТекста.ОбластьДанныхВспомогательныеДанные - | И УдалитьОчередьИзвлеченияТекста.ИсточникТекста = ОчередьИзвлеченияТекста.ИсточникТекста"; - Запрос = Новый Запрос(ТекстЗапроса); - - Набор = РегистрыСведений.ОчередьИзвлеченияТекста.СоздатьНаборЗаписей(); - Набор.Загрузить(Запрос.Выполнить().Выгрузить()); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Набор); - - ЗафиксироватьТранзакцию(); - - Исключение - - ОтменитьТранзакцию(); - ВызватьИсключение; - - КонецПопытки; - -КонецПроцедуры - -// Удаляет записи из регистра сведений УдалитьОчередьИзвлеченияТекста, если они там есть. -// -Процедура ОчиститьРегистрСведенийУдалитьОчередьИзвлеченияТекста() Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ ПЕРВЫЕ 1 - | УдалитьОчередьИзвлеченияТекста.ОбластьДанных - |ИЗ - | РегистрСведений.УдалитьОчередьИзвлеченияТекста КАК УдалитьОчередьИзвлеченияТекста"; - - РезультатЗапроса = Запрос.Выполнить(); - - ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); - - Пока ВыборкаДетальныеЗаписи.Следующий() Цикл - НаборЗаписей = РегистрыСведений.УдалитьОчередьИзвлеченияТекста.СоздатьНаборЗаписей(); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборЗаписей); - КонецЦикла; - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/CommonModules/ФизическиеЛицаКлиентСервер/Module.bsl b/SSL/src/CommonModules/ФизическиеЛицаКлиентСервер/Module.bsl index 977ba5f69..b4cb8598b 100644 --- a/SSL/src/CommonModules/ФизическиеЛицаКлиентСервер/Module.bsl +++ b/SSL/src/CommonModules/ФизическиеЛицаКлиентСервер/Module.bsl @@ -122,98 +122,4 @@ КонецФункции -#Область УстаревшиеПроцедурыИФункции - -// Устарела. Следует использовать ЧастиИмени. -// -// Функция раскладывает строку ФИО в структуру. -// -// Параметры: -// ФИО - Строка - наименование. -// -// Возвращаемое значение: -// Структура - фамилия, имя и отчество: -// * Фамилия - Строка - фамилия; -// * Имя - Строка - имя; -// * Отчество - Строка - отчество. -// -Функция ФамилияИмяОтчество(Знач ФИО) Экспорт - - СтруктураФИО = Новый Структура("Фамилия, Имя, Отчество"); - - МассивПодстрок = СтрРазделить(ФИО, " ", Ложь); - - Если МассивПодстрок.Количество() > 0 Тогда - СтруктураФИО.Вставить("Фамилия", МассивПодстрок[0]); - Если МассивПодстрок.Количество() > 1 Тогда - СтруктураФИО.Вставить("Имя", МассивПодстрок[1]); - КонецЕсли; - Если МассивПодстрок.Количество() > 2 Тогда - Отчество = ""; - Для Шаг = 2 По МассивПодстрок.Количество()-1 Цикл - Отчество = Отчество + МассивПодстрок[Шаг] + " "; - КонецЦикла; - СтроковыеФункцииКлиентСервер.УдалитьПоследнийСимволВСтроке(Отчество, 1); - СтруктураФИО.Вставить("Отчество", Отчество); - КонецЕсли; - КонецЕсли; - - Возврат СтруктураФИО; - -КонецФункции - -// Устарела. Следует использовать функции ФамилияИнициалы и ЧастиИмени. -// Формирует фамилию и инициалы либо по переданным строкам. -// -// Параметры: -// ФИОСтрокой - Строка - если указан это параметр, то остальные игнорируются. -// Фамилия - Строка - фамилия физического лица. -// Имя - Строка - имя физического лица. -// Отчество - Строка - отчество физического лица. -// -// Возвращаемое значение: -// Строка - фамилия и инициалы одной строкой. -// В параметрах Фамилия, Имя и Отчество записываются вычисленные части. -// -// Пример: -// Результат = ФамилияИнициалыФизЛица("Иванов Иван Иванович"); // Результат = "Иванов И. И." -// -Функция ФамилияИнициалыФизЛица(ФИОСтрокой = "", Фамилия = " ", Имя = " ", Отчество = " ") Экспорт - - ТипОбъекта = ТипЗнч(ФИОСтрокой); - Если ТипОбъекта = Тип("Строка") Тогда - ФИО = СтрРазделить(ФИОСтрокой, " ", Ложь); - Иначе - // Используем возможно переданные отдельные строки. - Возврат ?(Не ПустаяСтрока(Фамилия), - Фамилия + ?(Не ПустаяСтрока(Имя), " " + Лев(Имя,1) + "." + ?(Не ПустаяСтрока(Отчество), Лев(Отчество,1) + ".", ""), ""), - ""); - КонецЕсли; - - КоличествоПодстрок = ФИО.Количество(); - Фамилия = ?(КоличествоПодстрок > 0, ФИО[0], ""); - Имя = ?(КоличествоПодстрок > 1, ФИО[1], ""); - Отчество = ?(КоличествоПодстрок > 2, ФИО[2], ""); - - Если КоличествоПодстрок > 3 Тогда - ДополнительныеЧастиОтчества = Новый Массив; - ДополнительныеЧастиОтчества.Добавить(НСтр("ru = 'оглы'")); - ДополнительныеЧастиОтчества.Добавить(НСтр("ru = 'улы'")); - ДополнительныеЧастиОтчества.Добавить(НСтр("ru = 'уулу'")); - ДополнительныеЧастиОтчества.Добавить(НСтр("ru = 'кызы'")); - ДополнительныеЧастиОтчества.Добавить(НСтр("ru = 'гызы'")); - - Если ДополнительныеЧастиОтчества.Найти(НРег(ФИО[3])) <> Неопределено Тогда - Отчество = Отчество + " " + ФИО[3]; - КонецЕсли; - КонецЕсли; - - Возврат ?(Не ПустаяСтрока(Фамилия), - Фамилия + ?(Не ПустаяСтрока(Имя), " " + Лев(Имя, 1) + "." + ?(Не ПустаяСтрока(Отчество), Лев(Отчество, 1) + ".", ""), ""), - ""); - -КонецФункции - -#КонецОбласти - #КонецОбласти diff --git a/SSL/src/CommonModules/ЦентрМониторинга/Module.bsl b/SSL/src/CommonModules/ЦентрМониторинга/Module.bsl index fac96bb6d..dfe263371 100644 --- a/SSL/src/CommonModules/ЦентрМониторинга/Module.bsl +++ b/SSL/src/CommonModules/ЦентрМониторинга/Module.bsl @@ -162,7 +162,7 @@ Параметры.Вставить(ТекМетаданные.Ключ, Новый Структура("Запрос, ОперацииСтатистики, ВидСтатистики", ТекМетаданные.Значение,,0)); КонецЦикла; - Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ОбластьДанныхСтрока = Формат(МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), "ЧГ=0"); Иначе @@ -185,7 +185,7 @@ Если Значение <> 0 Тогда ОперацияСтатистики = ЦентрМониторингаПовтИсп.ПолучитьСсылкуОперацииСтатистики(ИмяОбъекта); - Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ОбластьДанныхСтрока = Формат(МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), "ЧГ=0"); Иначе @@ -207,4 +207,4 @@ #КонецОбласти -#КонецОбласти \ No newline at end of file +#КонецОбласти diff --git a/SSL/src/CommonModules/ЦентрМониторингаПереопределяемый/Module.bsl b/SSL/src/CommonModules/ЦентрМониторингаПереопределяемый/Module.bsl index acfd6d579..dcec4a641 100644 --- a/SSL/src/CommonModules/ЦентрМониторингаПереопределяемый/Module.bsl +++ b/SSL/src/CommonModules/ЦентрМониторингаПереопределяемый/Module.bsl @@ -18,8 +18,6 @@ - - КонецПроцедуры // Задает настройки, применяемые как умолчания для объектов подсистемы. diff --git a/SSL/src/CommonModules/ЦентрМониторингаСлужебный/Module.bsl b/SSL/src/CommonModules/ЦентрМониторингаСлужебный/Module.bsl index 8103c66ca..5471a1297 100644 --- a/SSL/src/CommonModules/ЦентрМониторингаСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ЦентрМониторингаСлужебный/Module.bsl @@ -2960,7 +2960,7 @@ Функция РазделениеПоОбластямДанныхВключено() Экспорт - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда ОбщийМодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); РазделениеПоОбластямДанныхВключено = ОбщийМодульРаботаВМоделиСервиса.РазделениеВключено(); Иначе @@ -3190,7 +3190,7 @@ Процедура УстановитьРазделениеСеанса(Использование, ОбластьДанных = Неопределено) - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Использование, ОбластьДанных); КонецЕсли; diff --git a/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl index 85d140bee..db3d37b3d 100644 --- a/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl +++ b/SSL/src/CommonModules/ШаблоныСообщений/Module.bsl @@ -56,6 +56,8 @@ // * ПреобразовыватьHTMLДляФорматированногоДокумента - Булево - необязательный, по умолчанию Ложь, определяет, // необходимо ли преобразование HTML-текста сообщения, содержащего картинки в тексте письма, из-за // особенностей вывода изображений в форматированном документе. +// * УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - Учетная запись электронной почты, +// которая будет использована для отправки письма сформированного по шаблону. // // Возвращаемое значение: // Структура - результат отправки сообщения. @@ -114,6 +116,7 @@ КонецФункции + // Возвращает описание параметров шаблона. // // Возвращаемое значение: diff --git a/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl b/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl index 061e4f1ee..73475949e 100644 --- a/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ШаблоныСообщенийСлужебный/Module.bsl @@ -112,11 +112,6 @@ Возврат Результат; КонецЕсли; - НомераПолучателей = Новый Массив; - Для каждого Получатель Из Сообщение.Получатель Цикл - НомераПолучателей.Добавить(Получатель.Значение); - КонецЦикла; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОтправкаSMS") Тогда МодульОтправкаSMS = ОбщегоНазначения.ОбщийМодуль("ОтправкаSMS"); Если МодульОтправкаSMS.ДоступнаОтправкаSMS() Тогда @@ -133,6 +128,11 @@ КонецЕсли; КонецЕсли; + НомераПолучателей = Новый Массив; + Для каждого Получатель Из Сообщение.Получатель Цикл + НомераПолучателей.Добавить(Получатель.Значение); + КонецЦикла; + РезультатОтправкаSMS = МодульОтправкаSMS.ОтправитьSMS(НомераПолучателей, Сообщение.Текст, Сообщение.ДополнительныеПараметры.Отправитель, Сообщение.ДополнительныеПараметры.ПеревестиВТранслит); Результат.Отправлено = ПустаяСтрока(РезультатОтправкаSMS.ОписаниеОшибки); Результат.ОписаниеОшибки = РезультатОтправкаSMS.ОписаниеОшибки; @@ -385,16 +385,17 @@ Префикс = МетаданныеОбъект.Имя + "."; Представление = МетаданныеОбъект.Представление(); + + СсылкаНаОбъект = РеквизитыОбъектаНазначения.Добавить(); + СсылкаНаОбъект.Представление = НСтр("ru = 'Ссылка на'") + " """ + Представление + """"; + СсылкаНаОбъект.Имя = Префикс + "ВнешняяСсылкаНаОбъект"; + СсылкаНаОбъект.Тип = Новый ОписаниеТипов("Строка"); + Иначе Префикс = ПараметрыШаблона.ПолноеИмяТипаНазначения +"."; Представление = ПараметрыШаблона.Назначение; КонецЕсли; - СсылкаНаОбъект = РеквизитыОбъектаНазначения.Добавить(); - СсылкаНаОбъект.Представление = НСтр("ru = 'Ссылка на'") + " """ + Представление + """"; - СсылкаНаОбъект.Имя = Префикс + "ВнешняяСсылкаНаОбъект"; - СсылкаНаОбъект.Тип = Новый ОписаниеТипов("Строка"); - ШаблоныСообщенийПереопределяемый.ПриПодготовкеШаблонаСообщения(РеквизитыОбъектаНазначения, СведенияОШаблоне.Вложения, ПараметрыШаблона.ПолноеИмяТипаНазначения, ПараметрыШаблона); Если МетаданныеОбъект <> Неопределено Тогда @@ -1389,6 +1390,11 @@ КонецЦикла; МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(МакетСКД, КомпоновщикНастроек.ПолучитьНастройки(),,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); + + Если МакетКомпоновкиДанных.НаборыДанных.Количество() = 0 Тогда + Возврат; + КонецЕсли; + ТекстЗапросаМакет = МакетКомпоновкиДанных.НаборыДанных.Данные.Запрос; Запрос = Новый Запрос; @@ -1501,11 +1507,13 @@ Для каждого Картинка Из ДокументHTML.Картинки Цикл АтрибутИсточникКартинки = Картинка.Атрибуты.ПолучитьИменованныйЭлемент("src"); + ДополнительныеПараметры = Новый Структура; ДополнительныеПараметры.Вставить("ИдентификаторФормы", ПараметрыШаблона.УникальныйИдентификатор); ДополнительныеПараметры.Вставить("ВызыватьИсключение", Ложь); ИзображениеОтсутствуетВПрисоединенныхФайлах = Истина; + Для Каждого ПрисоединенныйФайл Из СписокФайлов Цикл Если СтрЧислоВхождений(АтрибутИсточникКартинки.Значение, ПрисоединенныйФайл.ИДФайлаЭлектронногоПисьма) > 0 Тогда ДанныеФайла = МодульРаботаСФайлами.ДанныеФайла(ПрисоединенныйФайл.Ссылка, ДополнительныеПараметры); diff --git a/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl index f5bcab850..3073a0556 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодпись/Module.bsl @@ -53,7 +53,7 @@ КонецФункции -// Получает подписи объекта и возвращает их. +// Получает подписи объекта и возвращает их. // // Параметры: // Объект - Ссылка - ссылка на подписанный объект. diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl index 73e1df3c7..f5fcd3ad3 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьКлиент/Module.bsl @@ -149,7 +149,7 @@ // сможет открыть пользователь. Если не указан, то заполняется из // свойств Представление или Объект в свойстве НаборДанных. // -// Форма - УправляемаяФорма - форма, из которой нужно получить уникальный идентификатор, +// Форма - ФормаКлиентскогоПриложения - форма, из которой нужно получить уникальный идентификатор, // который будет использоваться при блокировке объекта. // - УникальныйИдентификатор - уникальный идентификатор, который будет // использоваться при блокировке объекта. @@ -200,7 +200,7 @@ ЭлектроннаяПодписьСлужебныйКлиент, КлиентскиеПараметры); Если ОписаниеДанных.Свойство("КонтекстОперации") - И ТипЗнч(ОписаниеДанных.КонтекстОперации) = Тип("УправляемаяФорма") Тогда + И ТипЗнч(ОписаниеДанных.КонтекстОперации) = Тип("ФормаКлиентскогоПриложения") Тогда ЭлектроннаяПодписьСлужебныйКлиент.ПродлитьХранениеКонтекстаОперации(ОписаниеДанных); НачалоИмениФормы = "Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Форма."; @@ -255,7 +255,7 @@ // * -- // -- - ОписаниеОповещения (необязательный) - обработчик получения данных, который // возвращает их в свойстве Данные (см. выше общий подход). // -// Форма - УправляемаяФорма - форма, из которой нужно получить уникальный идентификатор, +// Форма - ФормаКлиентскогоПриложения - форма, из которой нужно получить уникальный идентификатор, // который будет использоваться при блокировке объекта. // - УникальныйИдентификатор - уникальный идентификаторы, который будет // использоваться при блокировке объекта. @@ -499,7 +499,7 @@ // сможет открыть пользователь. Если не указан, то заполняется из // свойств Представление или Объект в свойстве НаборДанных. // -// Форма - УправляемаяФорма - форма, из которой нужно получить уникальный идентификатор, который будет +// Форма - ФормаКлиентскогоПриложения - форма, из которой нужно получить уникальный идентификатор, который будет // использоваться при помещении зашифрованных данных во временное хранилище. // - УникальныйИдентификатор - уникальный идентификатор, который будет // использоваться при помещении зашифрованных данных во временное хранилище. @@ -533,7 +533,7 @@ ЭлектроннаяПодписьСлужебныйКлиент, КлиентскиеПараметры); Если ОписаниеДанных.Свойство("КонтекстОперации") - И ТипЗнч(ОписаниеДанных.КонтекстОперации) = Тип("УправляемаяФорма") Тогда + И ТипЗнч(ОписаниеДанных.КонтекстОперации) = Тип("ФормаКлиентскогоПриложения") Тогда ЭлектроннаяПодписьСлужебныйКлиент.ПродлитьХранениеКонтекстаОперации(ОписаниеДанных); НачалоИмениФормы = "Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Форма."; @@ -662,7 +662,7 @@ // в параметре СписокПредставлений (порядок должен соответствовать). // Когда указан, параметр Объект не используется. // -// Форма - УправляемаяФорма - форма, из которой нужно получить уникальный идентификатор, который будет +// Форма - ФормаКлиентскогоПриложения - форма, из которой нужно получить уникальный идентификатор, который будет // использоваться при помещении расшифрованных данных во временное хранилище. // - УникальныйИдентификатор - уникальный идентификатор, который будет использоваться // при помещении расшифрованных данных во временное хранилище. @@ -692,7 +692,7 @@ ЭлектроннаяПодписьСлужебныйКлиент, КлиентскиеПараметры); Если ОписаниеДанных.Свойство("КонтекстОперации") - И ТипЗнч(ОписаниеДанных.КонтекстОперации) = Тип("УправляемаяФорма") Тогда + И ТипЗнч(ОписаниеДанных.КонтекстОперации) = Тип("ФормаКлиентскогоПриложения") Тогда ЭлектроннаяПодписьСлужебныйКлиент.ПродлитьХранениеКонтекстаОперации(ОписаниеДанных); НачалоИмениФормы = "Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Форма."; @@ -774,7 +774,7 @@ // // ДополнительныеПараметры - Неопределено - обычная проверка сертификата. // - Структура - с необязательными свойствами: -// * ВладелецФормы - УправляемаяФорма - другая форма. +// * ВладелецФормы - ФормаКлиентскогоПриложения - другая форма. // * ЗаголовокФормы - Строка - если указан, тогда заменяет заголовок формы. // * ПроверкаПриВыборе - Булево - если Истина, тогда кнопка Проверить будет называться // "Проверить и продолжить", а кнопка Закрыть будет называться "Отмена". diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl index efba4137e..cf3c2395c 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебный/Module.bsl @@ -172,11 +172,6 @@ Обработчик.Процедура = "Справочники.ПрограммыЭлектроннойПодписиИШифрования.ЗаполнитьНачальныеНастройки"; Обработчик.РежимВыполнения = "Монопольно"; - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.2.4.7"; - Обработчик.Процедура = "ЭлектроннаяПодписьСлужебный.ПеренестиНастройкиМенеджераКриптографии"; - Обработчик.РежимВыполнения = "Монопольно"; - Обработчик = Обработчики.Добавить(); Обработчик.Версия = "3.0.1.69"; Обработчик.Комментарий = @@ -1126,47 +1121,6 @@ //////////////////////////////////////////////////////////////////////////////// // Обновление информационной базы. -// Обработчик конвертации данных при переходе на поддержку использования -// нескольких программ электронной подписи и шифрования в одной ИБ. -// -Процедура ПеренестиНастройкиМенеджераКриптографии() Экспорт - - ПрограммаОбъект = СтараяПрограмма(); - Программа = Неопределено; - - НачатьТранзакцию(); - Попытка - Если ПрограммаОбъект <> Неопределено Тогда - Если Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда - ОбновлениеИнформационнойБазы.ЗаписатьДанные(ПрограммаОбъект); - КонецЕсли; - Программа = ПрограммаОбъект.Ссылка; - КонецЕсли; - - Если Константы.ИспользоватьЭлектронныеПодписи.Получить() - И Не Константы.ИспользоватьШифрование.Получить() Тогда - - МенеджерЗначения = Константы.ИспользоватьШифрование.СоздатьМенеджерЗначения(); - МенеджерЗначения.Значение = Истина; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(МенеджерЗначения); - КонецЕсли; - - ОчиститьКонстанту(Константы.УдалитьПровайдерЭП); - ОчиститьКонстанту(Константы.УдалитьТипПровайдераЭП); - ОчиститьКонстанту(Константы.УдалитьАлгоритмПодписи); - ОчиститьКонстанту(Константы.УдалитьАлгоритмХеширования); - ОчиститьКонстанту(Константы.УдалитьАлгоритмШифрования); - ОбработатьПутиНаСерверахLinux(Программа); - ОбработатьПутиНаКлиентахLinux(Программа); - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - //////////////////////////////////////////////////////////////////////////////// // Работа с XMLDSig @@ -1425,7 +1379,7 @@ OIDАлгоритмаПодписи = GetSignOIDFromCert(ОбъектКомпоненты, СертификатКриптографииBase64); - OIDАлгоритмовПодписи = СтрРазделить(ДанныеАлгоритмаПодписания.OIDАлгоритмаПодписи, Символы.ПС); + OIDАлгоритмовПодписи = СтрРазделить(ДанныеАлгоритмаПодписания.OIDАлгоритмаПодписи, Символы.ПС); OIDАлгоритмовХеширования = СтрРазделить(ДанныеАлгоритмаПодписания.OIDАлгоритмаХеширования, Символы.ПС); АлгоритмыПодписи = СтрРазделить(ДанныеАлгоритмаПодписания.АлгоритмПодписи, Символы.ПС); АлгоритмыХеширования = СтрРазделить(ДанныеАлгоритмаПодписания.АлгоритмХеширования, Символы.ПС); @@ -1460,132 +1414,6 @@ //////////////////////////////////////////////////////////////////////////////// // Вспомогательные процедуры и функции. - -// Для процедуры обновления ПеренестиНастройкиМенеджераКриптографии. -Процедура ОчиститьКонстанту(Константа) - - Если Не ЗначениеЗаполнено(Константа.Получить()) Тогда - Возврат; - КонецЕсли; - - МенеджерЗначения = Константа.СоздатьМенеджерЗначения(); - МенеджерЗначения.Значение = Неопределено; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(МенеджерЗначения); - -КонецПроцедуры - -// Для процедуры обновления ПеренестиНастройкиМенеджераКриптографии. -Процедура ОбработатьПутиНаСерверахLinux(Программа) - - // Обработка серверных путей - НаборЗаписей = РегистрыСведений.ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux.СоздатьНаборЗаписей(); - НаборЗаписей.Отбор.Программа.Установить(Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка()); - НаборЗаписей.Прочитать(); - - Если НаборЗаписей.Количество() = 0 Тогда - Возврат; - КонецЕсли; - - Если ЗначениеЗаполнено(Программа) Тогда - НаборЗаписейПрограммы = РегистрыСведений.ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux.СоздатьНаборЗаписей(); - НаборЗаписейПрограммы.Отбор.Программа.Установить(Программа); - НаборЗаписейПрограммы.Прочитать(); - Таблица = НаборЗаписейПрограммы.Выгрузить(, "ИмяКомпьютера, ПутьКПрограмме"); - Отбор = Новый Структура("ИмяКомпьютера, ПутьКПрограмме"); - - Для каждого Запись Из НаборЗаписей Цикл - ЗаполнитьЗначенияСвойств(Отбор, Запись); - Строки = Таблица.НайтиСтроки(Отбор); - Если Строки.Количество() = 0 Тогда - НоваяЗапись = НаборЗаписейПрограммы.Добавить(); - ЗаполнитьЗначенияСвойств(НоваяЗапись, Запись); - НоваяЗапись.Программа = Программа; - КонецЕсли; - КонецЦикла; - Если НаборЗаписейПрограммы.Модифицированность() Тогда - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборЗаписейПрограммы); - КонецЕсли; - КонецЕсли; - - НаборЗаписей.Очистить(); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборЗаписей); - -КонецПроцедуры - -// Для процедуры обновления ПеренестиНастройкиМенеджераКриптографии. -Процедура ОбработатьПутиНаКлиентахLinux(Программа) - - // Обработка клиентских путей - ПользователиИБ = ПользователиИнформационнойБазы.ПолучитьПользователей(); - КлючПодсистемы = "ЭЦП"; // Не заменять на "ЭП". Используется для обратной совместимости. - СтарыйКлючНастроек = "ПутьМодуляКриптографии"; - НовыйКлючНастроек = "ПутиКПрограммамЭлектроннойПодписиИШифрования"; - Для каждого ПользовательИБ Из ПользователиИБ Цикл - Путь = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(КлючПодсистемы, СтарыйКлючНастроек,,, - ПользовательИБ.Имя); - Если Не ЗначениеЗаполнено(Путь) Тогда - Продолжить; - КонецЕсли; - Настройки = Новый Соответствие; - Настройки.Вставить(Программа, Путь); - ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(КлючПодсистемы, НовыйКлючНастроек, Настройки,, - ПользовательИБ.Имя) - КонецЦикла; - -КонецПроцедуры - -// Для процедуры обновления ПеренестиНастройкиМенеджераКриптографии. -Функция СтараяПрограмма() - - ИмяПрограммы = СокрЛП(Константы.УдалитьПровайдерЭП.Получить()); - ТипПрограммы = Константы.УдалитьТипПровайдераЭП.Получить(); - - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ ПЕРВЫЕ 1 - | ИСТИНА КАК ЗначениеИстина - |ИЗ - | РегистрСведений.ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux КАК Пути - |ГДЕ - | Пути.Программа = ЗНАЧЕНИЕ(Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.ПустаяСсылка)"; - - Если Не ЗначениеЗаполнено(ИмяПрограммы) - И Не ЗначениеЗаполнено(ТипПрограммы) - И Запрос.Выполнить().Пустой() Тогда - - Возврат Неопределено; - КонецЕсли; - - Запрос = Новый Запрос; - Запрос.УстановитьПараметр("ИмяПрограммы", ИмяПрограммы); - Запрос.УстановитьПараметр("ТипПрограммы", ТипПрограммы); - Запрос.Текст = - "ВЫБРАТЬ - | Программы.Ссылка КАК Ссылка - |ИЗ - | Справочник.ПрограммыЭлектроннойПодписиИШифрования КАК Программы - |ГДЕ - | Программы.ИмяПрограммы = &ИмяПрограммы - | И Программы.ТипПрограммы = &ТипПрограммы"; - - РезультатЗапроса = Запрос.Выполнить(); - Если РезультатЗапроса.Пустой() Тогда - ПрограммаОбъект = Справочники.ПрограммыЭлектроннойПодписиИШифрования.СоздатьЭлемент(); - ПрограммаОбъект.Наименование = ИмяПрограммы; - ПрограммаОбъект.ИмяПрограммы = ИмяПрограммы; - ПрограммаОбъект.ТипПрограммы = ТипПрограммы; - Иначе - ПрограммаОбъект = РезультатЗапроса.Выгрузить()[0].Ссылка.ПолучитьОбъект(); - КонецЕсли; - - ПрограммаОбъект.АлгоритмПодписи = Константы.УдалитьАлгоритмПодписи.Получить(); - ПрограммаОбъект.АлгоритмХеширования = Константы.УдалитьАлгоритмХеширования.Получить(); - ПрограммаОбъект.АлгоритмШифрования = Константы.УдалитьАлгоритмШифрования.Получить(); - - Возврат ПрограммаОбъект; - -КонецФункции - // Для процедуры ОбновитьСписокСертификатов. Процедура ОбработатьДобавленныеСертификаты(ТаблицаСвойствСертификатов, КромеУжеДобавленных, ОтборПоОрганизации = Неопределено) @@ -2018,7 +1846,7 @@ Функция ИспользоватьЭлектроннуюПодписьВМоделиСервиса() Экспорт - Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ЭлектроннаяПодписьВМоделиСервиса") Тогда + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ЭлектроннаяПодписьВМоделиСервиса") Тогда Возврат Ложь; КонецЕсли; diff --git a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl index 9354e8d93..cedbfbd0e 100644 --- a/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl +++ b/SSL/src/CommonModules/ЭлектроннаяПодписьСлужебныйКлиент/Module.bsl @@ -14,7 +14,7 @@ Возврат Ложь; КонецЕсли; - Если МенеджерКриптографии["ИспользованиеИнтерактивногоРежима"] = ИспользованиеИнтерактивногоРежимаКриптографииИспользовать() Тогда + Если МенеджерКриптографии.ИспользованиеИнтерактивногоРежима = ИспользованиеИнтерактивногоРежимаКриптографииИспользовать() Тогда Возврат Истина; КонецЕсли; @@ -1204,7 +1204,7 @@ Контекст.Вставить("ЗаголовокФормы", ЗаголовокФормы); Контекст.Вставить("ЗаголовокОшибки", ЗаголовокОшибки); Контекст.Вставить("СвойстваОшибки", СвойстваОшибки); - // Здесь проверяется что это Linux или OS X клиент. + // Здесь проверяется что это Linux или macOS клиент. Контекст.Вставить("ЭтоLinux", Не ОбщегоНазначенияКлиент.ЭтоWindowsКлиент()); СвойстваОшибки.Вставить("Ошибки", Новый Массив); @@ -4683,7 +4683,7 @@ Функция ИспользоватьЭлектроннуюПодписьВМоделиСервиса() Экспорт - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ЭлектроннаяПодписьВМоделиСервиса") Тогда + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ТехнологияСервиса.ЭлектроннаяПодписьВМоделиСервиса") Тогда МодульЭлектроннаяПодписьВМоделиСервисаКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьВМоделиСервисаКлиентСервер"); Возврат МодульЭлектроннаяПодписьВМоделиСервисаКлиентСервер.ИспользованиеВозможно(); КонецЕсли; diff --git a/SSL/src/CommonPictures/ВедущаяКонечнаяТочка/Picture.zip b/SSL/src/CommonPictures/ВедущаяКонечнаяТочка/Picture.zip deleted file mode 100644 index 1ba0fa725..000000000 Binary files a/SSL/src/CommonPictures/ВедущаяКонечнаяТочка/Picture.zip and /dev/null differ diff --git a/SSL/src/CommonPictures/ВедущаяКонечнаяТочка/ВедущаяКонечнаяТочка.mdo b/SSL/src/CommonPictures/ВедущаяКонечнаяТочка/ВедущаяКонечнаяТочка.mdo deleted file mode 100644 index 752ff27b4..000000000 --- a/SSL/src/CommonPictures/ВедущаяКонечнаяТочка/ВедущаяКонечнаяТочка.mdo +++ /dev/null @@ -1,8 +0,0 @@ - - - ВедущаяКонечнаяТочка - - ru - Ведущая конечная точка - - diff --git a/SSL/src/CommonPictures/СинхронизацияДанныхВыгрузить/Picture.png b/SSL/src/CommonPictures/СинхронизацияДанныхВыгрузить/Picture.png new file mode 100644 index 000000000..a6b599ca3 Binary files /dev/null and b/SSL/src/CommonPictures/СинхронизацияДанныхВыгрузить/Picture.png differ diff --git a/SSL/src/CommonPictures/СинхронизацияДанныхВыгрузить/СинхронизацияДанныхВыгрузить.mdo b/SSL/src/CommonPictures/СинхронизацияДанныхВыгрузить/СинхронизацияДанныхВыгрузить.mdo new file mode 100644 index 000000000..20c4ef1cc --- /dev/null +++ b/SSL/src/CommonPictures/СинхронизацияДанныхВыгрузить/СинхронизацияДанныхВыгрузить.mdo @@ -0,0 +1,8 @@ + + + СинхронизацияДанныхВыгрузить + + ru + Синхронизация данных выгрузить + + diff --git a/SSL/src/CommonTemplates/ИнструкцияКакВыполнитьУстановкуОбновленияВручную/ru.html b/SSL/src/CommonTemplates/ИнструкцияКакВыполнитьУстановкуОбновленияВручную/ru.html index 229dbf12f..3cea9f823 100644 --- a/SSL/src/CommonTemplates/ИнструкцияКакВыполнитьУстановкуОбновленияВручную/ru.html +++ b/SSL/src/CommonTemplates/ИнструкцияКакВыполнитьУстановкуОбновленияВручную/ru.html @@ -1,4 +1,4 @@ - +

                  Установка обновления конфигурации

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

                  diff --git a/SSL/src/CommonTemplates/ИнструкцияПоСозданиюФаксимильнойПодписиИПечати/Template.mxlx b/SSL/src/CommonTemplates/ИнструкцияПоСозданиюФаксимильнойПодписиИПечати/Template.mxlx index 9e9aea1c6..8a887b19b 100644 --- a/SSL/src/CommonTemplates/ИнструкцияПоСозданиюФаксимильнойПодписиИПечати/Template.mxlx +++ b/SSL/src/CommonTemplates/ИнструкцияПоСозданиюФаксимильнойПодписиИПечати/Template.mxlx @@ -3321,6 +3321,13 @@ + + 65 + 66 + + true + + 67 @@ -3366,7 +3373,7 @@ 51 false Stretch - 0 + 1 1 true diff --git a/SSL/src/CommonTemplates/КомпонентаСклоненияФИО/Template.addin b/SSL/src/CommonTemplates/КомпонентаСклоненияФИО/Template.addin deleted file mode 100644 index d9fac982b..000000000 Binary files a/SSL/src/CommonTemplates/КомпонентаСклоненияФИО/Template.addin and /dev/null differ diff --git a/SSL/src/CommonTemplates/КомпонентаСклоненияФИО/КомпонентаСклоненияФИО.mdo b/SSL/src/CommonTemplates/КомпонентаСклоненияФИО/КомпонентаСклоненияФИО.mdo deleted file mode 100644 index f35a2331a..000000000 --- a/SSL/src/CommonTemplates/КомпонентаСклоненияФИО/КомпонентаСклоненияФИО.mdo +++ /dev/null @@ -1,9 +0,0 @@ - - - КомпонентаСклоненияФИО - - ru - Компонента склонения ФИО - - AddIn - diff --git a/SSL/src/CommonTemplates/СтруктураПодчиненности/Template.mxlx b/SSL/src/CommonTemplates/СтруктураПодчиненности/Template.mxlx index 90e120b27..108c37bfb 100644 --- a/SSL/src/CommonTemplates/СтруктураПодчиненности/Template.mxlx +++ b/SSL/src/CommonTemplates/СтруктураПодчиненности/Template.mxlx @@ -1465,7 +1465,7 @@ 57 false Proportionally - 0 + 1 1 @@ -1482,7 +1482,7 @@ 57 false Proportionally - 0 + 2 2 @@ -1499,7 +1499,7 @@ 57 false Proportionally - 0 + 3 3 @@ -1516,7 +1516,7 @@ 57 false Proportionally - 0 + 4 4 @@ -1533,7 +1533,7 @@ 57 false Proportionally - 0 + 5 5 @@ -1550,7 +1550,7 @@ 57 false Proportionally - 0 + 6 6 @@ -1567,7 +1567,7 @@ 57 false Proportionally - 0 + 7 7 @@ -1584,7 +1584,7 @@ 57 false Proportionally - 0 + 8 8 @@ -1601,7 +1601,7 @@ 57 false Proportionally - 0 + 9 9 @@ -1618,7 +1618,7 @@ 57 false Proportionally - 0 + 10 10 @@ -1635,7 +1635,7 @@ 57 false Proportionally - 0 + 11 11 @@ -1652,7 +1652,7 @@ 57 false Proportionally - 0 + 12 12 @@ -1669,7 +1669,7 @@ 57 false Proportionally - 0 + 13 13 @@ -1686,7 +1686,7 @@ 57 false Proportionally - 0 + 14 14 @@ -1703,7 +1703,7 @@ 57 false Proportionally - 0 + 15 15 @@ -1720,7 +1720,7 @@ 57 false Proportionally - 0 + 16 16 @@ -1737,7 +1737,7 @@ 57 false Proportionally - 0 + 17 17 @@ -1754,7 +1754,7 @@ 57 false Proportionally - 0 + 18 18 @@ -1771,7 +1771,7 @@ 57 false Proportionally - 0 + 19 19 @@ -1788,7 +1788,7 @@ 57 false Proportionally - 0 + 20 20 @@ -1805,7 +1805,7 @@ 57 false Proportionally - 0 + 21 21 @@ -1822,7 +1822,7 @@ 57 false Proportionally - 0 + 22 22 @@ -1839,7 +1839,7 @@ 57 false Proportionally - 0 + 23 23 @@ -1856,7 +1856,7 @@ 57 false Proportionally - 0 + 24 24 @@ -1873,7 +1873,7 @@ 57 false Proportionally - 0 + 25 25 @@ -1890,7 +1890,7 @@ 57 false Proportionally - 0 + 26 26 @@ -1907,7 +1907,7 @@ 57 false Proportionally - 0 + 27 27 @@ -1924,7 +1924,7 @@ 57 false Proportionally - 0 + 28 28 @@ -1941,7 +1941,7 @@ 57 false Proportionally - 0 + 29 29 @@ -1958,7 +1958,7 @@ 57 false Proportionally - 0 + 30 30 @@ -1975,7 +1975,7 @@ 57 false Proportionally - 0 + 31 31 @@ -1992,7 +1992,7 @@ 57 false Proportionally - 0 + 32 32 @@ -2009,7 +2009,7 @@ 57 false Proportionally - 0 + 33 33 @@ -2026,7 +2026,7 @@ 57 false Proportionally - 0 + 34 34 @@ -2043,7 +2043,7 @@ 57 false Proportionally - 0 + 35 35 @@ -2060,7 +2060,7 @@ 57 false Proportionally - 0 + 36 36 true diff --git a/SSL/src/Configuration/Configuration.mdo b/SSL/src/Configuration/Configuration.mdo index 34ef6e29e..5507526f5 100644 --- a/SSL/src/Configuration/Configuration.mdo +++ b/SSL/src/Configuration/Configuration.mdo @@ -1,17 +1,17 @@ - + БиблиотекаСтандартныхПодсистем ru - Библиотека стандартных подсистем, редакция 3.0 + Библиотека стандартных подсистем, редакция 3.1 - - - - - - - + + + + + + + ManagedApplication PersonalComputer Russian @@ -19,7 +19,7 @@ Role.АдминистраторСистемы Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок Фирма "1С" - 3.0.2.274 + 3.1.1.91 http://downloads.v8.1c.ru/tmplts/ true @@ -36,11 +36,11 @@ Language.Русский ru - Библиотека стандартных подсистем, редакция 3.0 + Библиотека стандартных подсистем, редакция 3.1 ru - Библиотека стандартных подсистем, редакция 3.0 + Библиотека стандартных подсистем, редакция 3.1 @@ -56,7 +56,7 @@ NotAutoFree UseWithWarnings TaxiEnableVersion8_2 - 8.3.12 + 8.3.14 Русский @@ -120,7 +120,6 @@ CommonPicture.БыстрыйДоступСФлажком CommonPicture.БыстрыйДоступУдалить CommonPicture.ВариантыОтчетовДоступныеВсемПользователям - CommonPicture.ВедущаяКонечнаяТочка CommonPicture.ВертикальноеПоложениеВерх CommonPicture.ВертикальноеПоложениеНиз CommonPicture.ВертикальноеПоложениеЦентр @@ -326,6 +325,7 @@ CommonPicture.СертификатКлюча CommonPicture.СинхронизацияДанных CommonPicture.СинхронизацияДанныхАнализДанных48 + CommonPicture.СинхронизацияДанныхВыгрузить CommonPicture.СинхронизацияДанныхВыполнение CommonPicture.СинхронизацияДанныхДанныеПолучены CommonPicture.СинхронизацияДанныхДлительнаяОперация @@ -534,8 +534,10 @@ Role.РедактированиеРеквизитовОбъектов Role.РежимВсеФункции Role.СохранениеДанныхПользователя + Role.УдалениеДанныхOData Role.УдаленныйДоступБазоваяФункциональность - Role.УдаленныйДоступОбменСообщениями + Role.УдаленныйДоступОбменДаннымиВМоделиСервиса + Role.УдаленныйКонтроль Role.ЧтениеВариантовОтчетов Role.ЧтениеВерсийОбъектов Role.ЧтениеВнешнихПользователей @@ -555,11 +557,13 @@ CommonTemplate.КомпонентаTWAIN CommonTemplate.КомпонентаПечатиQRКода CommonTemplate.КомпонентаПоискаСтрок - CommonTemplate.КомпонентаСклоненияФИО CommonTemplate.ПолучениеДереваОбработчиковОбновления CommonTemplate.СтруктураПодчиненности FilterCriterion.СвязанныеДокументы FilterCriterion.ФайлыВТоме + CommonModule.АвтономнаяРабота + CommonModule.АвтономнаяРаботаСлужебный + CommonModule.АвтономнаяРаботаСлужебныйКлиент CommonModule.АдминистрированиеКластера CommonModule.АдминистрированиеКластераCOM CommonModule.АдминистрированиеКластераCOMКлиентСервер @@ -567,7 +571,6 @@ CommonModule.АдминистрированиеКластераRASКлиентСервер CommonModule.АдминистрированиеКластераКлиентСервер CommonModule.АдресныйКлассификатор - CommonModule.АдресныйКлассификаторВМоделиСервисаСлужебный CommonModule.АдресныйКлассификаторКлиент CommonModule.АдресныйКлассификаторПовтИсп CommonModule.АдресныйКлассификаторСлужебный @@ -576,7 +579,6 @@ CommonModule.Анкетирование CommonModule.АнкетированиеКлиент CommonModule.АнкетированиеКлиентСервер - CommonModule.БанкиСлужебныйВМоделиСервиса CommonModule.БизнесПроцессыИЗадачиВызовСервера CommonModule.БизнесПроцессыИЗадачиКлиент CommonModule.БизнесПроцессыИЗадачиКлиентПереопределяемый @@ -634,16 +636,19 @@ CommonModule.ДлительныеОперацииГлобальный CommonModule.ДлительныеОперацииКлиент CommonModule.ДополнительныеОтчетыИОбработки - CommonModule.ДополнительныеОтчетыИОбработкиВБезопасномРежимеИнтерфейс - CommonModule.ДополнительныеОтчетыИОбработкиВБезопасномРежимеПовтИсп + CommonModule.ДополнительныеОтчетыИОбработкиВАвтономномРежиме CommonModule.ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный + CommonModule.ДополнительныеОтчетыИОбработкиВМоделиСервиса + CommonModule.ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифест + CommonModule.ДополнительныеОтчетыИОбработкиВМоделиСервисаМанифестИнтерфейс + CommonModule.ДополнительныеОтчетыИОбработкиВМоделиСервисаПовтИсп CommonModule.ДополнительныеОтчетыИОбработкиВызовСервера CommonModule.ДополнительныеОтчетыИОбработкиКлиент CommonModule.ДополнительныеОтчетыИОбработкиКлиентПереопределяемый CommonModule.ДополнительныеОтчетыИОбработкиКлиентСервер CommonModule.ДополнительныеОтчетыИОбработкиПереопределяемый CommonModule.ДополнительныеОтчетыИОбработкиПовтИсп - CommonModule.ДополнительныеОтчетыИОбработкиРегламентныеЗадания + CommonModule.ДополнительныеОтчетыИОбработкиРегламентныеЗаданияВМоделиСервиса CommonModule.ЖурналРегистрации CommonModule.ЖурналРегистрацииВызовСервера CommonModule.ЖурналРегистрацииКлиент @@ -668,24 +673,22 @@ CommonModule.ЗаявлениеНаСертификатПереопределяемый CommonModule.ИнтеграцияПодсистемБСП CommonModule.ИнтеграцияПодсистемБСПКлиент - CommonModule.ИнтеграцияСТехнологиейСервиса - CommonModule.ИнтеграцияСТехнологиейСервисаКлиент - CommonModule.ИнтерфейсыСообщенийВМоделиСервиса - CommonModule.ИнтерфейсыСообщенийВМоделиСервисаПереопределяемый + CommonModule.ИнтеграцияПодсистемБСПКлиентПовтИсп + CommonModule.ИнтеграцияПодсистемБСППовтИсп + CommonModule.ИнтерфейсODataСлужебный + CommonModule.ИнтерфейсODataСлужебныйПовтИсп CommonModule.ИнформацияПриЗапуске CommonModule.ИнформацияПриЗапускеКлиент CommonModule.ИнформацияПриЗапускеПереопределяемый CommonModule.КалендарныеГрафики - CommonModule.КалендарныеГрафикиВМоделиСервиса CommonModule.КалендарныеГрафикиПереопределяемый - CommonModule.КалендарныеГрафикиСлужебныйВМоделиСервиса + CommonModule.КалендарныеГрафикиСлужебный CommonModule.КонтрольВеденияУчета CommonModule.КонтрольВеденияУчетаКлиент CommonModule.КонтрольВеденияУчетаПереопределяемый CommonModule.КонтрольВеденияУчетаСлужебный CommonModule.КонтрольВеденияУчетаСлужебныйКлиент CommonModule.КонтрольВеденияУчетаСлужебныйПовтИсп - CommonModule.КурсыВалютСлужебныйВМоделиСервиса CommonModule.ЛокализацияКлиент CommonModule.ЛокализацияКлиентСервер CommonModule.ЛокализацияСервер @@ -695,7 +698,6 @@ CommonModule.НапоминанияПользователяКлиент CommonModule.НапоминанияПользователяКлиентПовтИсп CommonModule.НапоминанияПользователяКлиентСервер - CommonModule.НапоминанияПользователяКлиентСерверПереопределяемый CommonModule.НапоминанияПользователяПереопределяемый CommonModule.НапоминанияПользователяСлужебный CommonModule.НастройкаПорядкаЭлементов @@ -705,6 +707,10 @@ CommonModule.НастройкаРазрешенийНаИспользованиеВнешнихРесурсовКлиент CommonModule.НастройкиПрограммыПереопределяемый CommonModule.ОбменДаннымиXDTOСервер + CommonModule.ОбменДаннымиВМоделиСервиса + CommonModule.ОбменДаннымиВМоделиСервисаКлиент + CommonModule.ОбменДаннымиВМоделиСервисаПереопределяемый + CommonModule.ОбменДаннымиВМоделиСервисаПовтИсп CommonModule.ОбменДаннымиВнешнееСоединение CommonModule.ОбменДаннымиВызовСервера CommonModule.ОбменДаннымиГлобальный @@ -714,12 +720,6 @@ CommonModule.ОбменДаннымиСервер CommonModule.ОбменДаннымиСлужебный CommonModule.ОбменДаннымиСобытия - CommonModule.ОбменСообщениями - CommonModule.ОбменСообщениямиВнутренний - CommonModule.ОбменСообщениямиВызовСервера - CommonModule.ОбменСообщениямиКлиент - CommonModule.ОбменСообщениямиПереопределяемый - CommonModule.ОбменСообщениямиПовтИсп CommonModule.ОбновлениеИнформационнойБазы CommonModule.ОбновлениеИнформационнойБазыБСП CommonModule.ОбновлениеИнформационнойБазыВызовСервера @@ -745,7 +745,6 @@ CommonModule.ОбщегоНазначенияКлиентПовтИсп CommonModule.ОбщегоНазначенияКлиентСервер CommonModule.ОбщегоНазначенияПереопределяемый - CommonModule.ОбщегоНазначенияПовтИсп CommonModule.ОбщегоНазначенияСлужебныйКлиент CommonModule.ОбщегоНазначенияСлужебныйКлиентСервер CommonModule.ОрганизацииПереопределяемый @@ -777,11 +776,6 @@ CommonModule.ОценкаПроизводительностиКлиентСервер CommonModule.ОценкаПроизводительностиПовтИсп CommonModule.ОценкаПроизводительностиСлужебный - CommonModule.ОчередьЗаданий - CommonModule.ОчередьЗаданийПереопределяемый - CommonModule.ОчередьЗаданийСлужебный - CommonModule.ОчередьЗаданийСлужебныйПовтИсп - CommonModule.ОчередьЗаданийСлужебныйРазделениеДанных CommonModule.ПодключаемыеКоманды CommonModule.ПодключаемыеКомандыВызовСервера CommonModule.ПодключаемыеКомандыКлиент @@ -809,31 +803,26 @@ CommonModule.ПользователиПереопределяемый CommonModule.ПользователиСлужебный CommonModule.ПользователиСлужебныйВМоделиСервиса + CommonModule.ПользователиСлужебныйВМоделиСервисаВызовСервера CommonModule.ПользователиСлужебныйВМоделиСервисаКлиент + CommonModule.ПользователиСлужебныйВМоделиСервисаКлиентСервер + CommonModule.ПользователиСлужебныйВМоделиСервисаПовтИсп CommonModule.ПользователиСлужебныйКлиент CommonModule.ПользователиСлужебныйКлиентСервер CommonModule.ПользователиСлужебныйПовтИсп - CommonModule.ПоставляемыеДанные - CommonModule.ПоставляемыеДанныеПереопределяемый CommonModule.ПрефиксацияОбъектовКлиентСервер CommonModule.ПрефиксацияОбъектовКлиентСерверПереопределяемый CommonModule.ПрефиксацияОбъектовПереопределяемый CommonModule.ПрефиксацияОбъектовПовтИсп CommonModule.ПрефиксацияОбъектовСлужебный CommonModule.ПрефиксацияОбъектовСобытия - CommonModule.ПрисоединенныеФайлы - CommonModule.ПрисоединенныеФайлыКлиент - CommonModule.ПрисоединенныеФайлыКлиентСервер CommonModule.ПроверкаЛегальностиПолученияОбновленияКлиент CommonModule.РаботаВБезопасномРежиме CommonModule.РаботаВБезопасномРежимеКлиент CommonModule.РаботаВБезопасномРежимеКлиентПереопределяемый CommonModule.РаботаВБезопасномРежимеПереопределяемый CommonModule.РаботаВБезопасномРежимеСлужебный - CommonModule.РаботаВМоделиСервиса - CommonModule.РаботаВМоделиСервисаКлиент - CommonModule.РаботаВМоделиСервисаПереопределяемый - CommonModule.РаботаВМоделиСервисаПовтИсп + CommonModule.РаботаВМоделиСервисаБСП CommonModule.РаботаСАдресами CommonModule.РаботаСАдресамиКлиент CommonModule.РаботаСАдресамиКлиентСервер @@ -841,12 +830,14 @@ CommonModule.РаботаСБанкамиГлобальный CommonModule.РаботаСБанкамиКлиент CommonModule.РаботаСБанкамиПереопределяемый + CommonModule.РаботаСБанкамиСлужебный CommonModule.РаботаСКурсамиВалют CommonModule.РаботаСКурсамиВалютВызовСервера CommonModule.РаботаСКурсамиВалютГлобальный CommonModule.РаботаСКурсамиВалютКлиент CommonModule.РаботаСКурсамиВалютКлиентСервер CommonModule.РаботаСКурсамиВалютПереопределяемый + CommonModule.РаботаСКурсамиВалютСлужебный CommonModule.РаботаСПочтовымиСообщениями CommonModule.РаботаСПочтовымиСообщениямиВызовСервера CommonModule.РаботаСПочтовымиСообщениямиКлиент @@ -859,6 +850,8 @@ CommonModule.РаботаСФайламиКлиентСервер CommonModule.РаботаСФайламиПереопределяемый CommonModule.РаботаСФайламиСлужебный + CommonModule.РаботаСФайламиСлужебныйВМоделиСервиса + CommonModule.РаботаСФайламиСлужебныйВМоделиСервисаПовтИсп CommonModule.РаботаСФайламиСлужебныйВызовСервера CommonModule.РаботаСФайламиСлужебныйКлиент CommonModule.РаботаСФайламиСлужебныйКлиентПовтИсп @@ -881,11 +874,6 @@ CommonModule.РезервноеКопированиеИБКлиент CommonModule.РезервноеКопированиеИБКлиентПереопределяемый CommonModule.РезервноеКопированиеИБСервер - CommonModule.РезервноеКопированиеОбластейДанных - CommonModule.РезервноеКопированиеОбластейДанныхДанныеФормИнтерфейс - CommonModule.РезервноеКопированиеОбластейДанныхДанныеФормРеализацияWebСервис - CommonModule.РезервноеКопированиеОбластейДанныхКлиент - CommonModule.РезервноеКопированиеОбластейДанныхПовтИсп CommonModule.СклонениеПредставленийОбъектов CommonModule.СклонениеПредставленийОбъектовВызовСервера CommonModule.СклонениеПредставленийОбъектовКлиент @@ -896,18 +884,23 @@ CommonModule.СоединенияИБКлиент CommonModule.СоединенияИБКлиентСервер CommonModule.СоединенияИБПереопределяемый - CommonModule.СообщенияВМоделиСервиса - CommonModule.СообщенияВМоделиСервисаОбработчикСообщений - CommonModule.СообщенияВМоделиСервисаПереопределяемый - CommonModule.СообщенияВМоделиСервисаПовтИсп - CommonModule.СообщенияВМоделиСервисаРазделениеДанных - CommonModule.СообщенияКонтрольРезервногоКопированияИнтерфейс - CommonModule.СообщенияКонтрольРезервногоКопированияОбработчикТрансляции_1_0_2_1 - CommonModule.СообщенияПоставляемыхДанныхОбработчикСообщения - CommonModule.СообщенияУправлениеРезервнымКопированиемИнтерфейс - CommonModule.СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_2_1 - CommonModule.СообщенияУправлениеРезервнымКопированиемОбработчикСообщения_1_0_3_1 - CommonModule.СообщенияУправлениеРезервнымКопированиемРеализация + CommonModule.СообщенияАдминистрированиеОбменаДаннымиКонтрольИнтерфейс + CommonModule.СообщенияАдминистрированиеОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1 + CommonModule.СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс + CommonModule.СообщенияАдминистрированиеОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1 + CommonModule.СообщенияКонтрольДополнительныхОтчетовИОбработокИнтерфейс + CommonModule.СообщенияКонтрольДополнительныхОтчетовИОбработокОбработчикТрансляции_1_0_0_1 + CommonModule.СообщенияОбменаДаннымиКонтрольИнтерфейс + CommonModule.СообщенияОбменаДаннымиКонтрольОбработчикСообщения_2_1_2_1 + CommonModule.СообщенияОбменаДаннымиОбработчикСообщения + CommonModule.СообщенияОбменаДаннымиУправлениеИнтерфейс + CommonModule.СообщенияОбменаДаннымиУправлениеОбработчикСообщения_2_1_2_1 + CommonModule.СообщенияОбменаДаннымиУправлениеОбработчикСообщения_3_0_1_1 + CommonModule.СообщенияОбменаДаннымиУправлениеОбработчикТрансляции_2_1_2_1 + CommonModule.СообщенияУправленияДОИООбработчикСообщения_1_0_1_1 + CommonModule.СообщенияУправленияДОИООбработчикСообщения_1_0_1_2 + CommonModule.СообщенияУправленияДополнительнымиОтчетамиИОбработкамиИнтерфейс + CommonModule.СообщенияУправленияДополнительнымиОтчетамиИОбработкамиРеализация CommonModule.СтандартныеПодсистемыВызовСервера CommonModule.СтандартныеПодсистемыГлобальный CommonModule.СтандартныеПодсистемыКлиент @@ -923,9 +916,6 @@ CommonModule.ТекущиеДелаСервер CommonModule.ТекущиеДелаСлужебный CommonModule.ТекущиеДелаСлужебныйПовтИсп - CommonModule.ТрансляцияXDTO - CommonModule.ТрансляцияXDTOПереопределяемый - CommonModule.ТрансляцияXDTOСлужебный CommonModule.УдалениеПомеченныхОбъектов CommonModule.УдалениеПомеченныхОбъектовКлиент CommonModule.УдалениеПомеченныхОбъектовПереопределяемый @@ -969,9 +959,6 @@ CommonModule.ФайловаяСистема CommonModule.ФайловаяСистемаКлиент CommonModule.ФайловаяСистемаСлужебныйКлиент - CommonModule.ФайловыеФункции - CommonModule.ФайловыеФункцииКлиент - CommonModule.ФайловыеФункцииСлужебныйВМоделиСервиса CommonModule.ФизическиеЛицаКлиентСервер CommonModule.ЦентрМониторинга CommonModule.ЦентрМониторингаГлобальный @@ -1000,18 +987,24 @@ CommonModule.ЭлектроннаяПодписьСлужебныйПовтИсп CommonAttribute.ОбластьДанныхВспомогательныеДанные CommonAttribute.ОбластьДанныхОсновныеДанные - ExchangePlan.ОбменСообщениями ExchangePlan.ОбновлениеИнформационнойБазы - XDTOPackage.AgentScripts XDTOPackage.ApdexExport XDTOPackage.ApdexExport_1_0_0_2 XDTOPackage.ApdexExport_1_0_0_3 XDTOPackage.ApdexExport_1_0_0_4 + XDTOPackage.ApplicationExtensionsCompatibility_1_0_0_1 + XDTOPackage.ApplicationExtensionsControl_1_0_1_1 + XDTOPackage.ApplicationExtensionsManagement_1_0_1_1 + XDTOPackage.ApplicationExtensionsManagement_1_0_1_2 XDTOPackage.ApplicationExtensionsManifest_1_0_0_1 + XDTOPackage.ApplicationExtensionsManifest_1_0_0_2 XDTOPackage.ApplicationExtensionsPermissions_1_0_0_1 XDTOPackage.ApplicationPermissions_1_0_0_1 XDTOPackage.ApplicationPermissions_1_0_0_2 XDTOPackage.CurrencyRates + XDTOPackage.DataArtefacts_Files_1_0_0_1 + XDTOPackage.DataArtefacts_ServiceUsers_1_0_0_1 + XDTOPackage.DataDump_1_0_2_1 XDTOPackage.EnterpriseData_1_2_3 XDTOPackage.EnterpriseData_1_3_20 XDTOPackage.EnterpriseData_1_4_20 @@ -1020,25 +1013,33 @@ XDTOPackage.EnterpriseDataExchange_1_0_1_1 XDTOPackage.ExchangeMessage XDTOPackage.Patch - XDTOPackage.SuppliedData + XDTOPackage.АдминистрированиеОбменаДанными + XDTOPackage.АдминистрированиеОбменаДанными_2_4_5_1 + XDTOPackage.АдминистрированиеОбменаДаннымиКонтроль + XDTOPackage.АдминистрированиеОбменаДаннымиУправление XDTOPackage.Адрес XDTOPackage.АдресныйКлассификатор XDTOPackage.КонтактнаяИнформация - XDTOPackage.КонтрольРезервногоКопированияОбластейДанных_1_0_2_1 - XDTOPackage.КонтрольРезервногоКопированияОбластейДанных_1_0_3_1 + XDTOPackage.ОбменДаннымиКонтроль + XDTOPackage.ОбменДаннымиУправление + XDTOPackage.ОбменДаннымиУправление_3_0_1_1 XDTOPackage.Сообщения - XDTOPackage.СообщенияУдаленногоАдминистрирования - XDTOPackage.УправлениеПриложениями - XDTOPackage.УправлениеРезервнымКопированиемОбластейДанных_1_0_2_1 - XDTOPackage.УправлениеРезервнымКопированиемОбластейДанных_1_0_3_1 WebService.EnterpriseDataExchange_1_0_1_1 WebService.EnterpriseDataUpload_1_0_1_1 WebService.Exchange WebService.Exchange_2_0_1_6 WebService.Exchange_3_0_1_1 WebService.InterfaceVersion - WebService.MessageExchange - WebService.MessageExchange_2_0_1_6 + WebService.RemoteAdministrationOfExchange + WebService.RemoteAdministrationOfExchange_2_0_1_6 + WebService.RemoteAdministrationOfExchange_2_1_6_1 + WebService.RemoteAdministrationOfExchange_2_4_5_1 + WebService.RemoteControl + EventSubscription.АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанных + EventSubscription.АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхДокумент + EventSubscription.АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхКонстанта + EventSubscription.АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписей + EventSubscription.АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписейРасчета EventSubscription.ВариантыОтчетовПередУдалениемИдентификатораОбъектаМетаданных EventSubscription.ВариантыОтчетовПриУдаленииПользователя EventSubscription.ВключитьИспользованиеПланаОбмена @@ -1068,6 +1069,7 @@ EventSubscription.ОбновитьПредставлениеВнешнегоПользователя EventSubscription.ОбновитьСостояниеБизнесПроцесса EventSubscription.ОбновлениеВерсииДатЗапретаИзмененияПослеЗагрузкиДанных + EventSubscription.ОбработкаПолученияФормыПользователяДляНеразделенныхПользователей EventSubscription.ОбработкаПроверкиЗаполненияПрисоединенногоФайла EventSubscription.ОтключитьАвтоматическуюСинхронизациюДанных EventSubscription.ОтключитьИспользованиеПланаОбмена @@ -1108,7 +1110,6 @@ EventSubscription.УстановитьПометкуУдаленияПрисоединенныхФайловДокументовВзаимодействия EventSubscription.УстановитьСнятьПометкуУдаленияЗаметок EventSubscription.УстановитьСтатусИзмененияПометкиУдаленияПользователя - ScheduledJob.ЗагрузкаКлассификатораБанков ScheduledJob.ЗагрузкаКурсовВалют ScheduledJob.ЗаполнениеДанныхДляОграниченияДоступа ScheduledJob.ЗапускДополнительныхОбработок @@ -1118,19 +1119,15 @@ ScheduledJob.ОбновлениеАгрегатов ScheduledJob.ОбновлениеДоступаНаУровнеЗаписей ScheduledJob.ОбновлениеИндексаППД - ScheduledJob.ОбновлениеОбластейДанных ScheduledJob.ОбновлениеПредопределенныхВариантовОтчетов ScheduledJob.ОбновлениеСтатусовДоставкиSMS - ScheduledJob.ОбслуживаниеОбластейДанных ScheduledJob.ОтложенноеОбновлениеИБ ScheduledJob.ОтправкаSMS - ScheduledJob.ОтправкаИПолучениеСообщенийСистемы ScheduledJob.ОчисткаЗамеровВремени ScheduledJob.ОчисткаНенужныхФайлов ScheduledJob.ОчисткаУстаревшихВерсийОбъектов ScheduledJob.ПерестроениеАгрегатов ScheduledJob.ПланированиеИзвлеченияТекстаВМоделиСервиса - ScheduledJob.ПланированиеОбработкиЗаданий ScheduledJob.ПолучениеИОтправкаЭлектронныхПисем ScheduledJob.ПолучениеСубъектовДляСкрытияПерсональныхДанных ScheduledJob.ПроверкаВеденияУчета @@ -1138,6 +1135,7 @@ ScheduledJob.СборИОтправкаОтчетовОбОшибках ScheduledJob.СборИОтправкаСтатистики ScheduledJob.СинхронизацияДанных + ScheduledJob.СинхронизацияДанныхСПриложениемВИнтернете ScheduledJob.СинхронизацияФайлов ScheduledJob.СкрытиеПерсональныхДанныхСубъектов ScheduledJob.СлияниеИндексаППД @@ -1151,7 +1149,10 @@ SettingsStorage.ХранилищеВариантовОтчетов FunctionalOption.АктуальнаяДатаОбновленияПовторноИспользуемыхЗначенийМРО FunctionalOption.ВариантыВерсионированияОбъектов + FunctionalOption.ЗарегистрированыИзмененияДанных FunctionalOption.ИзменятьЗаданияЗаднимЧислом + FunctionalOption.ИспользоватьАвтономнуюРаботуВЛокальномРежиме + FunctionalOption.ИспользоватьАвтономнуюРаботуВМоделиСервиса FunctionalOption.ИспользоватьАнкетирование FunctionalOption.ИспользоватьБизнесПроцессыИЗадачи FunctionalOption.ИспользоватьВерсионированиеОбъекта @@ -1179,6 +1180,9 @@ FunctionalOption.ИспользоватьПрочиеВзаимодействия FunctionalOption.ИспользоватьСинхронизациюДанных FunctionalOption.ИспользоватьСинхронизациюДанныхВЛокальномРежиме + FunctionalOption.ИспользоватьСинхронизациюДанныхВМоделиСервиса + FunctionalOption.ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой + FunctionalOption.ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете FunctionalOption.ИспользоватьСинхронизациюФайлов FunctionalOption.ИспользоватьСкрытиеПерсональныхДанныхСубъектов FunctionalOption.ИспользоватьУдалениеПомеченныхОбъектов @@ -1188,12 +1192,12 @@ FunctionalOption.ИспользоватьЭлектронныеПодписи FunctionalOption.ИспользуютсяПрофилиБезопасности FunctionalOption.ИсточникДанныхАдресногоКлассификатора + FunctionalOption.НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса FunctionalOption.ОграничиватьДоступНаУровнеЗаписей FunctionalOption.ОграничиватьДоступНаУровнеЗаписейУниверсально FunctionalOption.ОтложенноеОбновлениеВГлавномУзлеЗавершеноУспешно FunctionalOption.ОтложенноеОбновлениеЗавершеноУспешно FunctionalOption.ОтправлятьПисьмаВФорматеHTML - FunctionalOption.ПоддержкаРезервногоКопирования FunctionalOption.ПрефиксИнформационнойБазы FunctionalOption.ПроверятьЭлектронныеПодписиНаСервере FunctionalOption.РаботаВАвтономномРежиме @@ -1235,6 +1239,7 @@ DefinedType.ЗначениеДоступа DefinedType.ЗначениеДоступаОбъект DefinedType.Интервьюер + DefinedType.КонечнаяТочкаОбменаСообщениями DefinedType.КонтактВзаимодействия DefinedType.КонтекстПроверокВеденияУчета DefinedType.МестоХраненияФункциональныхОпций @@ -1262,6 +1267,8 @@ DefinedType.СубъектПерсональныхДанных DefinedType.УточнениеКонтекстаПроверокВеденияУчета DefinedType.ФизическоеЛицо + CommonCommand.АвтономнаяРабота + CommonCommand.АвтономнаяРаботаВМоделиСервиса CommonCommand.ВремяТекущегоСеанса CommonCommand.ВсеФайлы CommonCommand.ДобавитьПользователейСервиса @@ -1280,14 +1287,11 @@ CommonCommand.Напомнить CommonCommand.НастроитьПрава CommonCommand.НастройкаКолонтитулов - CommonCommand.НастройкаОбменаСообщениями CommonCommand.НастройкаОнлайнПоддержки CommonCommand.НастройкаСистемнойУчетнойЗаписиЭлектроннойПочты CommonCommand.НастройкиПодключения - CommonCommand.НастройкиПодключенияКонечнойТочки CommonCommand.НастройкиСинхронизацииДанных CommonCommand.НачатьИнтервью - CommonCommand.ОбменСообщениями CommonCommand.Обсуждения CommonCommand.ОтправитьSMS CommonCommand.ОтправитьПисьмо @@ -1304,6 +1308,7 @@ CommonCommand.РолиИИсполнителиЗадач CommonCommand.СведенияОПользователе CommonCommand.СвязатьсяСоСпециалистомОнлайнПоддержки + CommonCommand.СинхронизацияДанныхВМоделиСервиса CommonCommand.Синхронизировать CommonCommand.СинхронизироватьСДополнительнымиПараметрами CommonCommand.СкрытьПерсональныеДанныеСубъектов @@ -1313,7 +1318,6 @@ CommonCommand.СозданиеНачальногоОбразаСФайлами CommonCommand.СозданиеСвязанныхОбъектов CommonCommand.СоздатьЗаметкуПоПредмету - CommonCommand.СоздатьРезервнуюКопию CommonCommand.СоставОтправляемыхДанных CommonCommand.СтруктураПодчиненности CommonCommand.СценарииСинхронизации @@ -1327,17 +1331,15 @@ CommandGroup.Печать CommandGroup.СинхронизацияДанных Constant.АвтоматическиНастраиватьРазрешенияВПрофиляхБезопасности + Constant.АдресДляВосстановленияПароляУчетнойЗаписи Constant.АдресПубликацииИнформационнойБазыВИнтернете Constant.АдресПубликацииИнформационнойБазыВЛокальнойСети - Constant.БлокировкаОтправкиБыстрыхСообщений Constant.ВерсияДатЗапретаИзменения Constant.ВерсияКлассификатораБанков - Constant.ВыполнитьРезервноеКопированиеОбластиДанных Constant.ВыполнятьЗамерыПроизводительности Constant.ГлавныйУзел Constant.ДанныеДляОтложенногоОбновления Constant.ДатаОбновленияПовторноИспользуемыхЗначенийМРО - Constant.ДатаПоследнегоСтартаКлиентскогоСеанса Constant.ДатаПоследнейВыгрузкиЗамеровПроизводительностиUTC Constant.ДатаУведомленияОНовыхЗадачах Constant.ДетализироватьОбновлениеИБВЖурналеРегистрации @@ -1346,10 +1348,12 @@ Constant.ЗагрузитьСообщениеОбменаДанными Constant.ЗапретитьОтображениеНебезопасногоСодержимогоВПисьмах Constant.ЗапрещатьЗагрузкуФайловПоРасширению + Constant.ЗарегистрированыИзмененияДанных Constant.ИдентификаторИнформационнойБазы Constant.ИзвлекатьТекстыФайловНаСервере Constant.ИзменятьЗаданияЗаднимЧислом - Constant.ИспользоватьАльтернативныйСерверДляЗагрузкиКлассификатораБанков + Constant.ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса + Constant.ИспользоватьАвтономнуюРаботуВМоделиСервиса Constant.ИспользоватьАльтернативныйСерверДляЗагрузкиКурсовВалют Constant.ИспользоватьАнкетирование Constant.ИспользоватьБизнесПроцессыИЗадачи @@ -1373,12 +1377,15 @@ Constant.ИспользоватьПолнотекстовыйПоиск Constant.ИспользоватьПочтовыйКлиент Constant.ИспользоватьПризнакРассмотрено + Constant.ИспользоватьПрофилиБезопасностиДляДОиО Constant.ИспользоватьПрочиеВзаимодействия Constant.ИспользоватьРазделениеПоОбластямДанных Constant.ИспользоватьСервисСклоненияMorpher Constant.ИспользоватьСинхронизациюДанных Constant.ИспользоватьСинхронизациюДанныхВЛокальномРежиме Constant.ИспользоватьСинхронизациюДанныхВМоделиСервиса + Constant.ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой + Constant.ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете Constant.ИспользоватьСкрытиеПерсональныхДанныхСубъектов Constant.ИспользоватьУдалениеПомеченныхОбъектов Constant.ИспользоватьШаблоныСообщений @@ -1387,25 +1394,21 @@ Constant.ИспользоватьЭлектронныеПодписи Constant.ИспользуютсяПрофилиБезопасности Constant.ИсточникДанныхАдресногоКлассификатора - Constant.КаталогОбменаФайламиВМоделиСервиса - Constant.КаталогОбменаФайламиВМоделиСервисаLinux Constant.КаталогСообщенийОбменаДаннымиДляLinux Constant.КаталогСообщенийОбменаДаннымиДляWindows - Constant.КлючОбластиДанных Constant.КоличествоЗамеровВПакетеЭкспорта Constant.КоличествоПотоковОбновленияДоступа Constant.КоличествоПотоковОбновленияИнформационнойБазы Constant.КоличествоЭлементовВТранзакцииЗагрузкиДанных - Constant.КопироватьОбластиДанныхИзЭталонной - Constant.МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания - Constant.МаксимальноеКоличествоИсполняющихФоновыхЗаданий Constant.МаксимальныйРазмерФайла Constant.МаксимальныйРазмерФайлаОбластиДанных + Constant.МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса Constant.НастройкаПодчиненногоУзлаРИБЗавершена Constant.НастройкаПроксиСервера Constant.НастройкиВходаПользователей Constant.НастройкиКолонтитулов Constant.НастройкиПодчиненногоУзлаРИБ + Constant.НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса Constant.НеИспользоватьРазделениеПоОбластямДанных Constant.ОграничиватьДоступНаУровнеЗаписей Constant.ОграничиватьДоступНаУровнеЗаписейУниверсально @@ -1421,21 +1424,21 @@ Constant.ПараметрыЦентраМониторинга Constant.ПериодХраненияЗамеров Constant.ПовторитьЗагрузкуСообщенияОбменаДаннымиПередЗапуском - Constant.ПоддержкаРезервногоКопирования + Constant.ПользовательСтандартногоИнтерфейсаOData Constant.ПоследнееОбновлениеДоступа - Constant.ПредставлениеОбластиДанных - Constant.ПрефиксОбластиДанных + Constant.ПрефиксПоследнегоАвтономногоРабочегоМеста Constant.ПрефиксУзлаРаспределеннойИнформационнойБазы + Constant.ПриоритетОбновленияВОбластяхДанных Constant.ПровайдерSMS Constant.ПроверятьЭлектронныеПодписиНаСервере Constant.ПрофильБезопасностиИнформационнойБазы - Constant.РазмерБлокаПередачиФайла - Constant.РежимИспользованияИнформационнойБазы + Constant.РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса Constant.СведенияОБлокируемыхОбъектах Constant.СведенияОбОбновленииИБ + Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы + Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы Constant.СинхронизироватьФайлы Constant.СоздаватьЭлектронныеПодписиНаСервере - Constant.СообщениеБлокировкиПриОбновленииКонфигурации Constant.СообщениеОбменаДаннымиИзГлавногоУзла Constant.СписокЗапрещенныхРасширений Constant.СписокЗапрещенныхРасширенийОбластиДанных @@ -1443,21 +1446,11 @@ Constant.СписокРасширенийФайловOpenDocument Constant.СписокРасширенийФайловOpenDocumentОбластиДанных Constant.СтатусОбновленияКонфигурации - Constant.УдалитьАлгоритмПодписи - Constant.УдалитьАлгоритмХеширования - Constant.УдалитьАлгоритмШифрования - Constant.УдалитьВнутреннийАдресМенеджераСервиса - Constant.УдалитьИмяСлужебногоПользователяМенеджераСервиса - Constant.УдалитьКонечнаяТочкаМенеджераСервиса - Constant.УдалитьЛогинДляОтправкиSMS Constant.УдалитьЛогинДоступаКСервисуMorpher - Constant.УдалитьПарольДляОтправкиSMS - Constant.УдалитьПарольСлужебногоПользователяМенеджераСервиса - Constant.УдалитьПровайдерЭП - Constant.УдалитьТипПровайдераЭП Constant.ХранитьФайлыВТомахНаДиске - Constant.ЧасовойПоясОбластиДанных Constant.ЭтоАвтономноеРабочееМесто + CommonForm.АвтономнаяРабота + CommonForm.АвтономнаяРаботаВМоделиСервиса CommonForm.АдреснаяКнига CommonForm.АутентификацияВСервисе CommonForm.БлокировкаРаботыСВнешнимиРесурсами @@ -1469,7 +1462,6 @@ CommonForm.ВопросОбУстановкеРасширенияРаботыСФайлами CommonForm.ВосстановлениеСвязиСГлавнымУзлом CommonForm.ВспомогательнаяФормаНастроекОтчета - CommonForm.ВходВОбластьДанных CommonForm.ВходВПрограммуЗапрещен CommonForm.ВыборДаты CommonForm.ВыборДействияПриОбнаруженииОтличийФайла @@ -1488,13 +1480,14 @@ CommonForm.ДополнительноеОписание CommonForm.ДополнительныеОтчетыИОбработки CommonForm.ДополнительныеПараметрыПроксиСервера + CommonForm.ИнформацияНеразделенногоПользователя CommonForm.МастерАнкетыПоРазделам + CommonForm.МониторСинхронизацииДанныхВМоделиСервиса CommonForm.НапоминаниеПриРедактировании CommonForm.НастройкаДоступаКСервисуMorpher CommonForm.НастройкаКолонтитулов CommonForm.НастройкаКомандПечати CommonForm.НастройкаМоихОтчетовИОбработок - CommonForm.НастройкаОбменаСообщениями CommonForm.НастройкаОнлайнПоддержки CommonForm.НастройкаОтправкиSMS CommonForm.НастройкаРабочегоКаталога @@ -1504,6 +1497,7 @@ CommonForm.НастройкиЭлектроннойПодписиИШифрования CommonForm.НовыйПароль CommonForm.ОписаниеИзмененийПрограммы + CommonForm.ОтключениеАвтономногоРабочегоМеста CommonForm.ОтправкаSMS CommonForm.ОтправкаСообщения CommonForm.ОтчетОСохраненииФайловЭлектронныхПодписей @@ -1513,13 +1507,13 @@ CommonForm.ПечатьДокументов CommonForm.ПодготовкаНовогоПисьма CommonForm.ПоддерживаемыеКлиентскиеПриложения - CommonForm.ПодключениеКонечнойТочки CommonForm.ПоискИсполняемогоФайлаОнлайнПоддержки CommonForm.ПользователиСервиса CommonForm.ПраваДоступа CommonForm.ПраваДоступаУпрощенно CommonForm.ПредупреждениеБезопасности CommonForm.ПредупрежденияПриЗавершенииРаботы + CommonForm.ПриоритетОбновленияВОбластяхДанных CommonForm.ПустойРабочийСтол CommonForm.Расширения CommonForm.РедактированиеГиперссылки @@ -1531,12 +1525,10 @@ CommonForm.Склонения CommonForm.СменаПароля CommonForm.СозданиеНачальногоОбразаСФайлами - CommonForm.СозданиеРезервнойКопии CommonForm.СохранениеВместеСЭлектроннойПодписью CommonForm.СохранениеПечатнойФормы CommonForm.СравнениеТабличныхДокументов CommonForm.СтруктураПодчиненности - CommonForm.УстановкаВедущейКонечнойТочки CommonForm.УстановкаВнешнейКомпонентыНевозможна CommonForm.УстановленныеИсправления CommonForm.УточнениеКонтактов @@ -1576,13 +1568,11 @@ Catalog.НаборыГруппДоступа Catalog.НаборыДополнительныхРеквизитовИСведений Catalog.ОбщиеВнешниеКомпоненты - Catalog.ОчередьЗаданий - Catalog.ОчередьЗаданийОбластейДанных Catalog.ПапкиФайлов Catalog.ПапкиЭлектронныхПисем Catalog.Пользователи Catalog.ПользовательскиеНастройкиОтчетов - Catalog.ПоставляемыеДанные + Catalog.ПоставляемыеДополнительныеОтчетыИОбработки Catalog.ПравилаОбработкиЭлектроннойПочты Catalog.ПравилаПроверкиУчета Catalog.ПредопределенныеВариантыОтчетов @@ -1595,8 +1585,6 @@ Catalog.РолиИсполнителей Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования Catalog.СообщениеSMSПрисоединенныеФайлы - Catalog.СообщенияОбластейДанных - Catalog.СообщенияСистемы Catalog.СтраныМира Catalog.СтроковыеКонтактыВзаимодействий Catalog.СценарииОбменовДанными @@ -1606,7 +1594,6 @@ Catalog.УчетныеЗаписиЭлектроннойПочты Catalog.Файлы Catalog.ШаблоныАнкет - Catalog.ШаблоныЗаданийОчереди Catalog.ШаблоныСообщений Catalog.ШаблоныСообщенийПрисоединенныеФайлы Catalog.ЭлектронноеПисьмоВходящееПрисоединенныеФайлы @@ -1624,7 +1611,6 @@ DocumentJournal.Взаимодействия DocumentJournal.СогласияНаОбработкуПерсональныхДанных Enum.ВажностьПроблемыУчета - Enum.ВариантыSMTPАутентификации Enum.ВариантыВажностиВзаимодействия Enum.ВариантыВажностиЗадачи Enum.ВариантыВерсионированияОбъектов @@ -1649,24 +1635,21 @@ Enum.ПериодОчисткиФайлов Enum.ПорядокОтветовНаЗапросыУведомленийОПрочтении Enum.ПриоритетыОбъектовОбмена + Enum.ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса Enum.ПровайдерыSMS Enum.РазмерыБумаги Enum.РазрешенияСканированногоИзображения Enum.РежимыАнкетирования Enum.РежимыВыгрузкиОбъектовОбмена - Enum.РежимыИспользованияИнформационнойБазы Enum.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок Enum.РезультатыВыполненияОбмена Enum.СостоянияБизнесПроцессов Enum.СостоянияДокументаСообщениеSMS - Enum.СостоянияЗаданий Enum.СостоянияЗапросовНаИспользованиеВнешнихРесурсов Enum.СостоянияЗаявленияНаВыпускСертификата Enum.СостоянияПроцессовДляЗапуска Enum.СостоянияСообщенияSMS Enum.СостоянияСубъектовДляСкрытия - Enum.СпособыPOP3Аутентификации - Enum.СпособыSMTPАутентификации Enum.СпособыВызоваДополнительныхОбработок Enum.СпособыВыполненияПроверки Enum.СпособыЗаполненияГрафикаРаботы @@ -1680,7 +1663,6 @@ Enum.СрокиХраненияВерсий Enum.СтатусыИзвлеченияТекстаФайлов Enum.СтатусыИсходящегоЭлектронногоПисьма - Enum.СтатусыОбластейДанных Enum.ТипыВерсийОбъекта Enum.ТипыВопросовШаблонаАнкеты Enum.ТипыДанныхКэшаПрограммныхИнтерфейсов @@ -1692,8 +1674,6 @@ Enum.ТипыТекстовЭлектронныхПисем Enum.ТипыФайловДляВстроенногоРедактора Enum.ТипыХраненияФайлов - Enum.УдалитьВидыКалендарей - Enum.УдалитьКлючевыеОперации Enum.УровниПроизводительности Enum.ФорматыСканированногоИзображения Enum.ФорматыСохраненияОтчетов @@ -1731,6 +1711,7 @@ DataProcessor.БлокировкаРаботыПользователей DataProcessor.ВводКонтактнойИнформации DataProcessor.ВыгрузкаЗагрузкаEnterpriseData + DataProcessor.ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных DataProcessor.ВыполнениеОбменаДанными DataProcessor.ГрупповоеИзменениеРеквизитов DataProcessor.ДоступныеАнкеты @@ -1753,17 +1734,21 @@ DataProcessor.ЛегальностьПолученияОбновлений DataProcessor.НастройкаРазрешенийНаИспользованиеВнешнихРесурсов DataProcessor.НастройкаРезервногоКопированияИБ - DataProcessor.НастройкаРезервногоКопированияПриложения + DataProcessor.НастройкаСтандартногоИнтерфейсаOData DataProcessor.НастройкиПользователей DataProcessor.НастройкиЦентраМониторинга DataProcessor.НерекомендуемаяВерсияПлатформы DataProcessor.ОценкаПроизводительности DataProcessor.ПанельАдминистрированияБСП + DataProcessor.ПанельАдминистрированияБСПВМоделиСервиса DataProcessor.ПереносФайловВТома DataProcessor.ПодключениеОбсуждений DataProcessor.ПоискИУдалениеДублей DataProcessor.ПолнотекстовыйПоискВДанных DataProcessor.ПомощникИнтерактивногоОбменаДанными + DataProcessor.ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса + DataProcessor.ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете + DataProcessor.ПомощникСозданияАвтономногоРабочегоМеста DataProcessor.ПомощникСозданияОбменаДанными DataProcessor.ПрограммыЭлектроннойПодписиИШифрования DataProcessor.РаботаСФайлами @@ -1822,6 +1807,8 @@ InformationRegister.ИдентификаторыПолученныхЭлектронныхПисем InformationRegister.ИзмененияОбщихДанныхУзлов InformationRegister.ИсполнителиЗадач + InformationRegister.ИспользованиеДополнительныхОтчетовИОбработокСервисаВАвтономномРабочемМесте + InformationRegister.ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных InformationRegister.ИсторияАдресныхОбъектов InformationRegister.КалендарныеГрафики InformationRegister.КлючиДоступаВнешнихПользователей @@ -1846,19 +1833,18 @@ InformationRegister.НастройкиВерсионированияОбъектов InformationRegister.НастройкиКомандПечати InformationRegister.НастройкиОбменаДаннымиXDTO - InformationRegister.НастройкиОтправителя InformationRegister.НастройкиОчисткиФайлов InformationRegister.НастройкиПравОбъектов InformationRegister.НастройкиСинхронизацииФайлов InformationRegister.НастройкиТранспортаОбменаДанными - InformationRegister.НастройкиТранспортаОбменаСообщениями + InformationRegister.НастройкиТранспортаОбменаОбластейДанных + InformationRegister.НастройкиТранспортаОбменаОбластиДанных InformationRegister.НастройкиУчетныхЗаписейЭлектроннойПочты InformationRegister.НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма + InformationRegister.НеразделенныеПользователи InformationRegister.НомераОтсканированныхФайлов - InformationRegister.ОбластиДанных InformationRegister.ОбластиПерсональныхДанных InformationRegister.ОбластиСтатистики - InformationRegister.ОбластиТребующиеОбработкиПоставляемыхДанных InformationRegister.ОбновлениеКлючейДоступаКДанным InformationRegister.ОбновлениеКлючейДоступаПользователей InformationRegister.ОбновлениеКлючейДоступаТекущиеЗадания @@ -1868,15 +1854,14 @@ InformationRegister.ОриентирыАдресныхОбъектов InformationRegister.ОтветыНаВопросыАнкет InformationRegister.ОчередьИзвлеченияТекста + InformationRegister.ОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных InformationRegister.ПакетыДляОтправки InformationRegister.ПакетыИнформацииПриЗапуске InformationRegister.ПараметрыОграниченияДоступа InformationRegister.ПараметрыРаботыВерсийРасширений InformationRegister.ПараметрыРаботыПрограммы - InformationRegister.ПодпискиПолучателей InformationRegister.ПользовательскиеМакетыПечати InformationRegister.ПользовательскиеНастройкиДоступаКОбработкам - InformationRegister.ПоставляемыеДанныеТребующиеОбработки InformationRegister.ПоставляемыеМакетыПечати InformationRegister.ПраваРолей InformationRegister.ПравилаДляОбменаДанными @@ -1892,49 +1877,36 @@ InformationRegister.РежимыПодключенияВнешнихМодулей InformationRegister.РезультатыОбменаДанными InformationRegister.РезультатыПроверкиУчета - InformationRegister.РейтингАктивностиОбластейДанных InformationRegister.РучныеИзмененияГрафиковРаботы InformationRegister.СведенияОПользователях InformationRegister.СведенияОФайлах InformationRegister.СеансыВерсийРасширений InformationRegister.СертификатыШифрования + InformationRegister.СессииОбменаСообщениямиСистемы InformationRegister.СклоненияПредставленийОбъектов InformationRegister.СлужебныеАдресныеСведения InformationRegister.СогласияНаОбработкуПерсональныхДанных InformationRegister.СообщенияОбменаДанными + InformationRegister.СообщенияОбменаДаннымиОбластейДанных InformationRegister.СоответствияОбъектовИнформационныхБаз InformationRegister.СоставыГруппПользователей InformationRegister.СостоянияКонтактовВзаимодействий InformationRegister.СостоянияОбменовДанными + InformationRegister.СостоянияОбменовДаннымиОбластейДанных InformationRegister.СостоянияПапокПисем InformationRegister.СостоянияПредметовВзаимодействий InformationRegister.СостоянияРассылокОтчетов InformationRegister.СостоянияУспешныхОбменовДанными + InformationRegister.СостоянияУспешныхОбменовДаннымиОбластейДанных InformationRegister.СтатистикаКонфигурации InformationRegister.СтатусыСинхронизацииФайловСОблачнымСервисом InformationRegister.СубъектыДляСкрытияПерсональныхДанных InformationRegister.ТаблицыГруппДоступа InformationRegister.УведомленияОПрочтении - InformationRegister.Удалить_АктивныеПредметыВзаимодействий - InformationRegister.УдалитьБлокировкиСеансовОбластиДанных - InformationRegister.УдалитьВерсииПодсистем - InformationRegister.УдалитьГруппыЗначенийДоступа - InformationRegister.УдалитьЗамерыВремени - InformationRegister.УдалитьЗамерыВремени2 InformationRegister.УдалитьЗамерыВремени3 - InformationRegister.УдалитьЗамерыВремениТехнологические - InformationRegister.УдалитьНаборыЗначенийДоступа - InformationRegister.УдалитьНастройкиВерсионированияОбъектов InformationRegister.УдалитьНастройкиТранспортаОбмена - InformationRegister.УдалитьОбластиДанных - InformationRegister.УдалитьОбластиКРезервномуКопированию InformationRegister.УдалитьОбластиПерсональныхДанных - InformationRegister.УдалитьОчередьЗаданий - InformationRegister.УдалитьОчередьИзвлеченияТекста - InformationRegister.УдалитьПраваПоЗначениямДоступа InformationRegister.УдалитьРезультатыОбменаДанными - InformationRegister.УдалитьРейтингАктивностиОбластейДанных - InformationRegister.УдалитьСтраныМира InformationRegister.УдалитьХранимыеФайлыВерсий InformationRegister.УровниСокращенийАдресныхСведений InformationRegister.ФайлыВРабочемКаталоге @@ -1943,7 +1915,6 @@ ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения ChartOfCharacteristicTypes.ОбъектыАдресацииЗадач ChartOfCharacteristicTypes.РазделыДатЗапретаИзменения - ChartOfCharacteristicTypes.УдалитьВидыДоступа BusinessProcess.Задание Task.ЗадачаИсполнителя diff --git a/SSL/src/Configuration/ParentConfigurations.bin b/SSL/src/Configuration/ParentConfigurations.bin index 417d67b1e..cebeec101 100644 --- a/SSL/src/Configuration/ParentConfigurations.bin +++ b/SSL/src/Configuration/ParentConfigurations.bin @@ -1 +1 @@ -{6,1,1,6717968c-5130-45a6-878f-821d8471c79a,1,86b194d5-70d8-48a7-b5d6-52223f305d26,"3.0.2.274","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6027,1,0,09464420-3584-44f2-961f-dd23cd2f1de8,09464420-3584-44f2-961f-dd23cd2f1de8,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,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,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,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,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,060b6f18-538c-4ea1-9748-00efe0b1ab57,060b6f18-538c-4ea1-9748-00efe0b1ab57,1,0,307b6821-fd82-4a1c-9fdb-a26293d4f713,307b6821-fd82-4a1c-9fdb-a26293d4f713,1,0,a952960b-be1b-4ec4-bd76-80915065a60b,a952960b-be1b-4ec4-bd76-80915065a60b,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,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,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,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,61cd6eab-6bab-4382-986e-4c7fc44f369b,61cd6eab-6bab-4382-986e-4c7fc44f369b,1,0,757b547b-b79c-459a-a64a-eef19a09a38f,757b547b-b79c-459a-a64a-eef19a09a38f,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,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,9eea8645-1ba7-4faf-9c29-868bf99964dd,9eea8645-1ba7-4faf-9c29-868bf99964dd,1,0,e07ac651-07b9-4664-95e8-f3f5a51ea6c8,e07ac651-07b9-4664-95e8-f3f5a51ea6c8,1,0,0c44fdea-7b81-45be-87f5-d64456a9d379,0c44fdea-7b81-45be-87f5-d64456a9d379,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,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,04ab13b1-ffc2-47f5-aa0d-5850dcbd4a62,04ab13b1-ffc2-47f5-aa0d-5850dcbd4a62,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,283ce432-3553-4de9-94a2-ca9a590437f5,283ce432-3553-4de9-94a2-ca9a590437f5,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,654523be-93d9-4faa-9a35-ce2fede13820,654523be-93d9-4faa-9a35-ce2fede13820,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,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,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,87472d14-0d8c-4813-8a3e-2721bbb26811,87472d14-0d8c-4813-8a3e-2721bbb26811,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,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,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,a3131bf3-88b1-431c-a01c-be6e26396f91,a3131bf3-88b1-431c-a01c-be6e26396f91,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,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,2522fce4-d121-482b-a39d-0c1a842d315e,2522fce4-d121-482b-a39d-0c1a842d315e,1,0,4807629d-8421-4bd9-beb4-5b2940197958,4807629d-8421-4bd9-beb4-5b2940197958,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,a3a9a48b-f241-45b2-b93b-d34bba0a8a66,a3a9a48b-f241-45b2-b93b-d34bba0a8a66,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,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,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,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,4eb24fcd-85f6-4fa6-bc9f-baef3861664e,4eb24fcd-85f6-4fa6-bc9f-baef3861664e,1,0,da551cf6-4f86-4e37-8967-a84c80e1fb13,da551cf6-4f86-4e37-8967-a84c80e1fb13,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,60cd8bc4-6a5d-4d36-83d0-76a8477eda6a,60cd8bc4-6a5d-4d36-83d0-76a8477eda6a,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,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,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,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,933cbafc-5667-4a91-8b1d-dca3d7662522,933cbafc-5667-4a91-8b1d-dca3d7662522,1,0,59acaca9-ed29-4927-bee6-287c91934690,59acaca9-ed29-4927-bee6-287c91934690,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,77de81f0-97c5-4751-9f38-f5785c7c45e0,77de81f0-97c5-4751-9f38-f5785c7c45e0,1,0,31ba33d4-5941-4b11-ae99-b15188bfef76,31ba33d4-5941-4b11-ae99-b15188bfef76,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,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,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,63c6cfad-124d-491a-829d-b298463c95e6,63c6cfad-124d-491a-829d-b298463c95e6,1,0,737404de-5b9d-4445-81c5-2c5b50b36846,737404de-5b9d-4445-81c5-2c5b50b36846,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,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,b107a4a8-0db8-44f4-93f7-9f231e850398,b107a4a8-0db8-44f4-93f7-9f231e850398,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,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,b5365cb6-a4e7-479b-82f4-f4ad80fcd7c9,b5365cb6-a4e7-479b-82f4-f4ad80fcd7c9,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,8d9d2284-e592-44c5-93bb-247037ab6b95,8d9d2284-e592-44c5-93bb-247037ab6b95,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,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,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,af8d4bc9-2f0f-44d3-89ce-2593877055c8,af8d4bc9-2f0f-44d3-89ce-2593877055c8,1,0,344fb829-a1cc-4b17-8f98-2d4f93bfcd6a,344fb829-a1cc-4b17-8f98-2d4f93bfcd6a,1,0,eb35bff2-8467-48fe-bf93-ece2aa40f506,eb35bff2-8467-48fe-bf93-ece2aa40f506,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,5a4c6511-f8ed-40e4-a251-e28f62629cf2,5a4c6511-f8ed-40e4-a251-e28f62629cf2,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,c6267c5a-3878-4d0c-8674-4d4dd672b99c,c6267c5a-3878-4d0c-8674-4d4dd672b99c,1,0,44c9e8a9-8efd-4391-a1b2-4ef278376b4d,44c9e8a9-8efd-4391-a1b2-4ef278376b4d,1,0,96d66cdd-d40c-43a3-92ce-40aef2101b64,96d66cdd-d40c-43a3-92ce-40aef2101b64,1,0,9daa8270-4782-4d83-af03-c8d2b11057ff,9daa8270-4782-4d83-af03-c8d2b11057ff,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,45552b2f-0878-499e-8a27-4fcce93e5459,45552b2f-0878-499e-8a27-4fcce93e5459,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,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,c4fe10b6-d025-4736-be23-3113bd7fe7b4,c4fe10b6-d025-4736-be23-3113bd7fe7b4,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,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,38aeb32b-9e3b-4b4a-9a61-97da63cdea48,38aeb32b-9e3b-4b4a-9a61-97da63cdea48,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,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,19a307b1-9ef0-4fc6-bf4f-7636e9118399,19a307b1-9ef0-4fc6-bf4f-7636e9118399,1,0,666244a4-5636-4405-89dd-bbd8f4278071,666244a4-5636-4405-89dd-bbd8f4278071,1,0,8b79f0e3-9024-4073-aa6b-a42beed9b0c6,8b79f0e3-9024-4073-aa6b-a42beed9b0c6,1,0,29a627a9-debc-4074-88d0-ec3561e1ef9c,29a627a9-debc-4074-88d0-ec3561e1ef9c,1,0,5a01a002-8833-4c89-b8d6-9b63fc49d3b6,5a01a002-8833-4c89-b8d6-9b63fc49d3b6,1,0,39f5e272-9a10-40b0-8a10-92037828b206,39f5e272-9a10-40b0-8a10-92037828b206,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,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,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,cafc86e1-d7f1-4cd2-ac20-04fa0917556a,cafc86e1-d7f1-4cd2-ac20-04fa0917556a,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,642154b8-97da-4c4f-bf34-c1124215077d,642154b8-97da-4c4f-bf34-c1124215077d,1,0,abc10867-39ae-46bf-8bd7-90f645919235,abc10867-39ae-46bf-8bd7-90f645919235,1,0,b3396504-8ccb-43d6-9a0f-ab259ba0a542,b3396504-8ccb-43d6-9a0f-ab259ba0a542,1,0,f59f91c5-026a-4dc5-996e-0d59814a9604,f59f91c5-026a-4dc5-996e-0d59814a9604,1,0,aac9966f-e9ea-4106-97bb-6b9822939bc7,aac9966f-e9ea-4106-97bb-6b9822939bc7,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,5fbd9a13-012d-4c36-b72c-da3bc4157cff,5fbd9a13-012d-4c36-b72c-da3bc4157cff,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,2e17464f-9cef-4812-865f-4eb77ff16b6a,2e17464f-9cef-4812-865f-4eb77ff16b6a,1,0,e5ecbb1f-981d-4928-9335-22216879f7e2,e5ecbb1f-981d-4928-9335-22216879f7e2,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,a50fcacc-6d2d-496c-bea0-9c73cd153437,a50fcacc-6d2d-496c-bea0-9c73cd153437,1,0,a6846c5a-7cf6-4df2-a159-2fd33d18d18f,a6846c5a-7cf6-4df2-a159-2fd33d18d18f,1,0,0fb72f4b-e6f6-4b70-8ec7-fdb6d4ad928e,0fb72f4b-e6f6-4b70-8ec7-fdb6d4ad928e,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,14fcf5e5-5856-4b5f-8c3f-75eaba0f7268,14fcf5e5-5856-4b5f-8c3f-75eaba0f7268,1,0,0a0af8bf-0caa-40df-9a69-71f98ca9ff89,0a0af8bf-0caa-40df-9a69-71f98ca9ff89,1,0,6ac7db0c-18ed-4d3b-956a-5985214db474,6ac7db0c-18ed-4d3b-956a-5985214db474,1,0,267103e0-6703-4a74-bb4f-af610d7ef332,267103e0-6703-4a74-bb4f-af610d7ef332,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,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,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,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,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,f3bd841b-fb36-4462-9627-b51801e563cd,f3bd841b-fb36-4462-9627-b51801e563cd,1,0,0a23f273-5589-4a48-be3a-eee7565749aa,0a23f273-5589-4a48-be3a-eee7565749aa,1,0,494eb9d9-4a10-4e85-b511-375408f21bbe,494eb9d9-4a10-4e85-b511-375408f21bbe,1,0,3fbbca3f-d4fa-4d65-a08f-0a348b9030c6,3fbbca3f-d4fa-4d65-a08f-0a348b9030c6,1,0,a161dd07-4a6e-4d0f-b72c-702d0d3a83a3,a161dd07-4a6e-4d0f-b72c-702d0d3a83a3,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,bbdfeebd-cda0-4911-8f31-553d751340a7,bbdfeebd-cda0-4911-8f31-553d751340a7,1,0,dc7adfb7-41e7-4019-a18d-5d9f5d227b71,dc7adfb7-41e7-4019-a18d-5d9f5d227b71,1,0,20aad006-5b1e-4cc2-94ef-668dd002667b,20aad006-5b1e-4cc2-94ef-668dd002667b,1,0,af6af7ae-d68a-4e12-ba2c-a360ce2920a7,af6af7ae-d68a-4e12-ba2c-a360ce2920a7,1,0,b0f5bce4-2ad3-416e-9b1e-3fb23deaa040,b0f5bce4-2ad3-416e-9b1e-3fb23deaa040,1,0,2befb2e3-7354-4a01-83d6-b24262704a5e,2befb2e3-7354-4a01-83d6-b24262704a5e,1,0,5b93975e-b2a4-4102-a060-2667f5813c94,5b93975e-b2a4-4102-a060-2667f5813c94,1,0,dcdc9c65-c2d5-4531-a325-f64b3861cbab,dcdc9c65-c2d5-4531-a325-f64b3861cbab,1,0,8d2bfd40-f185-4eab-b374-872d49310eb2,8d2bfd40-f185-4eab-b374-872d49310eb2,1,0,523de426-e5a6-49e0-8144-c637f80d8ddd,523de426-e5a6-49e0-8144-c637f80d8ddd,1,0,09256328-6205-4b04-b908-3287ae8ded75,09256328-6205-4b04-b908-3287ae8ded75,1,0,05a6e161-9791-4c5b-8753-bd6370cc4cc9,05a6e161-9791-4c5b-8753-bd6370cc4cc9,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,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,1abeb10b-0558-4478-8f51-d0964ba3c274,1abeb10b-0558-4478-8f51-d0964ba3c274,1,0,38325a66-588a-4db0-8e0c-21d239408369,38325a66-588a-4db0-8e0c-21d239408369,1,0,7c27e885-33fd-4da2-a60d-50336c0189b0,7c27e885-33fd-4da2-a60d-50336c0189b0,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,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,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,9ec53d1a-ed7a-41e8-b5d0-6c2181fd63a5,9ec53d1a-ed7a-41e8-b5d0-6c2181fd63a5,1,0,97edd94a-4bf2-4ed7-b98f-677f869b0715,97edd94a-4bf2-4ed7-b98f-677f869b0715,1,0,a9ae364f-b668-4fb4-b976-f227951ffb6b,a9ae364f-b668-4fb4-b976-f227951ffb6b,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,530a3164-4ef1-4b3b-8269-13764ef4bf15,530a3164-4ef1-4b3b-8269-13764ef4bf15,1,0,6df2bb92-558c-4453-9de4-e4176e8f93dc,6df2bb92-558c-4453-9de4-e4176e8f93dc,1,0,0ce4c8a4-b20b-4550-bee3-f677e9ec64e9,0ce4c8a4-b20b-4550-bee3-f677e9ec64e9,1,0,30d5c2a6-b3cf-4ed5-ba75-850bcae932d1,30d5c2a6-b3cf-4ed5-ba75-850bcae932d1,1,0,0bf5e9c1-905a-4202-8b96-ed831b41be4b,0bf5e9c1-905a-4202-8b96-ed831b41be4b,1,0,e92ae368-0d7c-4fb7-b6d0-5ab63dc95a6a,e92ae368-0d7c-4fb7-b6d0-5ab63dc95a6a,1,0,f30c9c4b-aa6c-4b15-9ac7-888c0c0cabd9,f30c9c4b-aa6c-4b15-9ac7-888c0c0cabd9,1,0,be15e947-f671-4848-ada1-51239af73615,be15e947-f671-4848-ada1-51239af73615,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,d3e0dd8f-886a-4441-8f05-fd629da80f07,d3e0dd8f-886a-4441-8f05-fd629da80f07,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,ba49877b-6e30-4177-a67c-00e65aa498fb,ba49877b-6e30-4177-a67c-00e65aa498fb,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,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,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,33c66a15-e48e-406a-a77c-02af72ae96d5,33c66a15-e48e-406a-a77c-02af72ae96d5,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,459ed297-0c0d-4bdb-90a3-da387868f040,459ed297-0c0d-4bdb-90a3-da387868f040,1,0,ccb5b9a7-1a10-4803-b455-0350afe4b584,ccb5b9a7-1a10-4803-b455-0350afe4b584,1,0,c86aa97a-5898-4cb2-ae62-598bddf8e99f,c86aa97a-5898-4cb2-ae62-598bddf8e99f,1,0,d3c9b925-6b74-42db-8b21-ab21d24797d1,d3c9b925-6b74-42db-8b21-ab21d24797d1,1,0,c5033dd2-0911-4124-8688-dc9dabf3155f,c5033dd2-0911-4124-8688-dc9dabf3155f,1,0,274357df-cb5c-407d-ae72-58046c310db2,274357df-cb5c-407d-ae72-58046c310db2,1,0,5467001e-d025-4669-b16e-26381ac4403f,5467001e-d025-4669-b16e-26381ac4403f,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,030c6a22-a3d5-4cf2-9f7b-dc4fe3732f83,030c6a22-a3d5-4cf2-9f7b-dc4fe3732f83,1,0,b19f1223-5ebe-4446-bacc-bc7d53486f2e,b19f1223-5ebe-4446-bacc-bc7d53486f2e,1,0,6ea7e8e9-0faa-43fd-b9c8-1a7b8f899d6d,6ea7e8e9-0faa-43fd-b9c8-1a7b8f899d6d,1,0,7be1decf-feb1-422b-a3f2-f60d08fdb0e6,7be1decf-feb1-422b-a3f2-f60d08fdb0e6,1,0,bf3167d6-3047-482a-b280-184f446ae7a3,bf3167d6-3047-482a-b280-184f446ae7a3,1,0,50c47c0a-a199-4020-9df4-91b17c159454,50c47c0a-a199-4020-9df4-91b17c159454,1,0,c1d449af-8a6e-4cb0-b2c9-50ea5405c44c,c1d449af-8a6e-4cb0-b2c9-50ea5405c44c,1,0,faecdc33-fed8-4b44-96f4-4215c26959b6,faecdc33-fed8-4b44-96f4-4215c26959b6,1,0,09c29992-47a8-4fca-bd95-e7dbc53e8c4c,09c29992-47a8-4fca-bd95-e7dbc53e8c4c,1,0,f07cf7bd-6f3f-426a-8b71-ba1dcb827654,f07cf7bd-6f3f-426a-8b71-ba1dcb827654,1,0,9df3792e-a4ee-4a2c-9296-c1384925521e,9df3792e-a4ee-4a2c-9296-c1384925521e,1,0,03d423db-f98a-468f-9040-5b76454e5a98,03d423db-f98a-468f-9040-5b76454e5a98,1,0,08f394f9-d254-4fe5-8651-a69c96de7a62,08f394f9-d254-4fe5-8651-a69c96de7a62,1,0,e90ec54b-8b86-43df-8c3c-18c6676bf3f1,e90ec54b-8b86-43df-8c3c-18c6676bf3f1,1,0,6aff6b2f-660b-4d75-9064-fed7a6b0feac,6aff6b2f-660b-4d75-9064-fed7a6b0feac,1,0,53502127-9f47-4e2e-b3ed-eb3c3aae1c50,53502127-9f47-4e2e-b3ed-eb3c3aae1c50,1,0,2fcdd0b5-b738-4e19-8bbf-13a72d7014ec,2fcdd0b5-b738-4e19-8bbf-13a72d7014ec,1,0,59dc7e8d-6f5c-4e1b-816e-5fc15c0e96e0,59dc7e8d-6f5c-4e1b-816e-5fc15c0e96e0,1,0,e60a9221-7676-456f-8a01-b317b03a278b,e60a9221-7676-456f-8a01-b317b03a278b,1,0,4e81ec90-f668-49ca-9193-22337bafb01b,4e81ec90-f668-49ca-9193-22337bafb01b,1,0,104c7c31-5bbd-4242-b29a-2c0d8b69a1b9,104c7c31-5bbd-4242-b29a-2c0d8b69a1b9,1,0,cd60adec-52d6-4fa8-85ca-26551196432c,cd60adec-52d6-4fa8-85ca-26551196432c,1,0,4dfbabd7-d5e5-4b2a-b8d1-752e416629a0,4dfbabd7-d5e5-4b2a-b8d1-752e416629a0,1,0,b71ddbdb-08bb-46be-a79d-319c4a557e76,b71ddbdb-08bb-46be-a79d-319c4a557e76,1,0,d3dfa867-3d52-4872-a69e-f27636abe1bd,d3dfa867-3d52-4872-a69e-f27636abe1bd,1,0,6952d1aa-7132-4e40-8542-f64a4dc1e029,6952d1aa-7132-4e40-8542-f64a4dc1e029,1,0,51a1bc4c-9139-42a4-92c3-f45c837cbdb9,51a1bc4c-9139-42a4-92c3-f45c837cbdb9,1,0,1621811b-dfd3-4c58-8e15-ced16690147a,1621811b-dfd3-4c58-8e15-ced16690147a,1,0,3f266e51-0476-4b7f-8d61-6f9f4456049d,3f266e51-0476-4b7f-8d61-6f9f4456049d,1,0,2b9ce591-ff13-4c2d-85c4-632a2609a211,2b9ce591-ff13-4c2d-85c4-632a2609a211,1,0,689ca0ec-61ce-4590-b73b-ac81e8f1d459,689ca0ec-61ce-4590-b73b-ac81e8f1d459,1,0,3ea1895f-66d0-4bbb-a66b-0c9d411a7c55,3ea1895f-66d0-4bbb-a66b-0c9d411a7c55,1,0,55ad36d7-399e-4b82-8d1c-d45bd890abfe,55ad36d7-399e-4b82-8d1c-d45bd890abfe,1,0,0f3b9012-7bf6-4451-b0c3-139d98d9c2c1,0f3b9012-7bf6-4451-b0c3-139d98d9c2c1,1,0,1b39a65f-5425-4bcb-85bd-1425274af8a8,1b39a65f-5425-4bcb-85bd-1425274af8a8,1,0,392a0618-a41a-4713-a561-f3a80b85abd8,392a0618-a41a-4713-a561-f3a80b85abd8,1,0,a453384d-658d-40f1-ac69-578aa3a24e39,a453384d-658d-40f1-ac69-578aa3a24e39,1,0,2215a441-b9b1-4e5c-8df3-e6cee9226c43,2215a441-b9b1-4e5c-8df3-e6cee9226c43,1,0,2a8d4908-ea0d-4837-be3f-bd78f6b61254,2a8d4908-ea0d-4837-be3f-bd78f6b61254,1,0,ec1deb79-7369-4b26-8e91-f51399e8052a,ec1deb79-7369-4b26-8e91-f51399e8052a,1,0,75dde4fb-3a1a-450c-95c2-c1f95a781db9,75dde4fb-3a1a-450c-95c2-c1f95a781db9,1,0,0ae3ac56-160a-417e-9952-719d02e7f089,0ae3ac56-160a-417e-9952-719d02e7f089,1,0,f5b3983d-d22d-44a8-9069-0a60d8b858bf,f5b3983d-d22d-44a8-9069-0a60d8b858bf,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,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,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,38ac9a13-665a-4201-b5cc-687fe4a01130,38ac9a13-665a-4201-b5cc-687fe4a01130,1,0,97c59096-b2dc-45d0-a580-b3018a04f9af,97c59096-b2dc-45d0-a580-b3018a04f9af,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,077af11c-fd3c-4e87-b169-5f3137464f77,077af11c-fd3c-4e87-b169-5f3137464f77,1,0,8172256e-f51e-4de0-bd07-3668785f4cb9,8172256e-f51e-4de0-bd07-3668785f4cb9,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,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,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,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,4d6683a3-1edd-4d04-8e02-0be002e4e5a4,4d6683a3-1edd-4d04-8e02-0be002e4e5a4,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,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,b25083c5-9b97-49a4-b6c3-bbf8d7f91cd3,b25083c5-9b97-49a4-b6c3-bbf8d7f91cd3,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,3bc2ca38-4a10-4ebd-a5dc-3418db494f0c,3bc2ca38-4a10-4ebd-a5dc-3418db494f0c,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,e1314cd1-e662-4c29-ad51-492cb0029883,e1314cd1-e662-4c29-ad51-492cb0029883,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,9690842c-7a2c-4b5d-a238-f730afc49a7b,9690842c-7a2c-4b5d-a238-f730afc49a7b,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,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,364cbfe2-bc44-4387-aa7e-6b4aa086c9e9,364cbfe2-bc44-4387-aa7e-6b4aa086c9e9,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,f5bb88eb-c239-4ae3-a297-dfbbd679e008,f5bb88eb-c239-4ae3-a297-dfbbd679e008,1,0,bb350b39-1f4d-460a-98c9-8d2308cf22f0,bb350b39-1f4d-460a-98c9-8d2308cf22f0,1,0,f259b6b4-d582-429f-a16f-027a6bcb7438,f259b6b4-d582-429f-a16f-027a6bcb7438,1,0,9f32e85c-2ed6-41db-b0ec-6d8596940e80,9f32e85c-2ed6-41db-b0ec-6d8596940e80,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,72d41d01-9c9d-4fbe-8a39-932d82d171ef,72d41d01-9c9d-4fbe-8a39-932d82d171ef,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,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,0f8e87d4-ffb7-4cff-a2d3-6d5c5219ff0b,0f8e87d4-ffb7-4cff-a2d3-6d5c5219ff0b,1,0,1511c2e3-aeb4-422a-b6ae-03412b714c93,1511c2e3-aeb4-422a-b6ae-03412b714c93,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,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,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,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,3cda70d0-3116-4508-82ea-5ea0f0921262,3cda70d0-3116-4508-82ea-5ea0f0921262,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,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,e815010d-e03d-46e4-b482-c1556902cc26,e815010d-e03d-46e4-b482-c1556902cc26,1,0,d4ab930a-ddaa-4552-afed-2618af822365,d4ab930a-ddaa-4552-afed-2618af822365,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,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,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,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,1e63c656-a0e7-4b33-8bac-2a196e028ffa,1e63c656-a0e7-4b33-8bac-2a196e028ffa,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,d33f4859-b68d-4d72-8f4c-a38cf47edb01,d33f4859-b68d-4d72-8f4c-a38cf47edb01,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,b3152292-5546-4896-ad24-cb41057698d8,b3152292-5546-4896-ad24-cb41057698d8,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,3b9c03bc-8517-498f-8052-e53854fb0753,3b9c03bc-8517-498f-8052-e53854fb0753,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,68e82adf-bc03-4f23-9ec4-749ed42241da,68e82adf-bc03-4f23-9ec4-749ed42241da,1,0,7ae5d177-a3e6-4989-b10c-8e0a605c26d9,7ae5d177-a3e6-4989-b10c-8e0a605c26d9,1,0,41f87891-ddd5-4e0f-a4f2-8039fb71981b,41f87891-ddd5-4e0f-a4f2-8039fb71981b,1,0,29f2094a-d0d1-425c-8161-45a9ba186e19,29f2094a-d0d1-425c-8161-45a9ba186e19,1,0,a57f6dc1-59d7-4311-8acd-65ce57a9f386,a57f6dc1-59d7-4311-8acd-65ce57a9f386,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,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,16392cf6-dd83-4df0-a54b-6efc29778a89,16392cf6-dd83-4df0-a54b-6efc29778a89,1,0,e693cdd0-8ead-4ba5-adec-86bab74ee7cd,e693cdd0-8ead-4ba5-adec-86bab74ee7cd,1,0,a4ec7d3d-2d01-436c-98ec-ec42733ee5c6,a4ec7d3d-2d01-436c-98ec-ec42733ee5c6,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,eaf6045f-9ac0-43ef-b165-a45be75a4d44,eaf6045f-9ac0-43ef-b165-a45be75a4d44,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,405c52c4-25fe-45ff-abab-bf01041e768d,405c52c4-25fe-45ff-abab-bf01041e768d,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,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,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,23abf9ba-63f9-4173-a9ce-3cbdf1ec3a52,23abf9ba-63f9-4173-a9ce-3cbdf1ec3a52,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,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,4093fe34-7557-4f15-831b-d654b94b8010,4093fe34-7557-4f15-831b-d654b94b8010,1,0,ee10023f-5c63-4cb3-8e6c-db566c788c9d,ee10023f-5c63-4cb3-8e6c-db566c788c9d,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,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,3f3f1b41-57a9-4a82-bdfa-89a6653479ab,3f3f1b41-57a9-4a82-bdfa-89a6653479ab,1,0,fd12fbe2-56a2-4c9e-a072-989d826a5ea3,fd12fbe2-56a2-4c9e-a072-989d826a5ea3,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,44b28019-01c0-468d-9b60-e050ff8b71ac,44b28019-01c0-468d-9b60-e050ff8b71ac,1,0,69f6173c-a570-41ff-b07f-5b85f7187515,69f6173c-a570-41ff-b07f-5b85f7187515,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,3e2828b4-2b55-471e-ac69-55119c2480f8,3e2828b4-2b55-471e-ac69-55119c2480f8,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,08baf3ee-b8ca-4f29-89fc-c15344064ad3,08baf3ee-b8ca-4f29-89fc-c15344064ad3,1,0,01b85e3a-9920-425a-9de5-5079fffeef93,01b85e3a-9920-425a-9de5-5079fffeef93,1,0,82e12316-cc64-4d2f-83fa-054b5a738f02,82e12316-cc64-4d2f-83fa-054b5a738f02,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,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,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,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,c971e0ba-53b8-4454-92f7-40b0d639058a,c971e0ba-53b8-4454-92f7-40b0d639058a,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,5ae2a1de-6380-45cc-9c8f-5612cd5ba627,5ae2a1de-6380-45cc-9c8f-5612cd5ba627,1,0,e7a63151-fc1a-4563-8768-26d854ab012b,e7a63151-fc1a-4563-8768-26d854ab012b,1,0,e8aa2ba2-7dfa-47e3-bc18-6156f700ceed,e8aa2ba2-7dfa-47e3-bc18-6156f700ceed,1,0,8c472f51-47ec-43c4-9858-fd19ac3e17f3,8c472f51-47ec-43c4-9858-fd19ac3e17f3,1,0,c54f31ce-114b-46d3-b4c6-12c8f07727ca,c54f31ce-114b-46d3-b4c6-12c8f07727ca,1,0,5a9c82c1-d0cd-48ff-b91c-38b950591e4c,5a9c82c1-d0cd-48ff-b91c-38b950591e4c,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,c1508d67-ac6d-41e3-884d-b3bdd54659f8,c1508d67-ac6d-41e3-884d-b3bdd54659f8,1,0,3436b16e-ef5b-4abb-9aad-c70a7c8560ed,3436b16e-ef5b-4abb-9aad-c70a7c8560ed,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,eb276904-cad7-4401-bb78-2d13946291f1,eb276904-cad7-4401-bb78-2d13946291f1,1,0,79ff04ac-4625-469b-916e-938f04de4dd2,79ff04ac-4625-469b-916e-938f04de4dd2,1,0,35103a27-230c-45c0-a8c9-24bd46608bbb,35103a27-230c-45c0-a8c9-24bd46608bbb,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,84395058-d46a-428c-b782-a9fa89fea14a,84395058-d46a-428c-b782-a9fa89fea14a,1,0,64f667e5-6a8f-448f-aed5-a4d461232845,64f667e5-6a8f-448f-aed5-a4d461232845,1,0,a148cdff-0e67-48e6-9cc5-e8a6f5aa1ae8,a148cdff-0e67-48e6-9cc5-e8a6f5aa1ae8,1,0,037842ca-aeaf-4e27-9a0e-e929438b6f40,037842ca-aeaf-4e27-9a0e-e929438b6f40,1,0,b43abcf7-1f1d-4a59-b0d1-0a493c3a4785,b43abcf7-1f1d-4a59-b0d1-0a493c3a4785,1,0,ab6fdd75-2ea6-4408-8c03-0cfab775a7a0,ab6fdd75-2ea6-4408-8c03-0cfab775a7a0,1,0,9da32b56-ff89-4739-bb99-615074b72298,9da32b56-ff89-4739-bb99-615074b72298,1,0,2c8ab5a6-66d5-4b6f-94ae-4292724ded7f,2c8ab5a6-66d5-4b6f-94ae-4292724ded7f,1,0,4766c40e-6330-4c1d-a64f-0c8c672886a4,4766c40e-6330-4c1d-a64f-0c8c672886a4,1,0,de25a90c-4b46-4340-b649-93e16dde33de,de25a90c-4b46-4340-b649-93e16dde33de,1,0,4f2d0398-49f4-410c-a451-436cbf96a262,4f2d0398-49f4-410c-a451-436cbf96a262,1,0,b2c8bd74-21c9-4495-93e2-ca5355698350,b2c8bd74-21c9-4495-93e2-ca5355698350,1,0,39bc2bc6-2a4f-4e26-b1b9-fb8473234f09,39bc2bc6-2a4f-4e26-b1b9-fb8473234f09,1,0,cc9679a5-1ed2-4290-8c9b-8a2f6614d053,cc9679a5-1ed2-4290-8c9b-8a2f6614d053,1,0,93016393-c637-4d81-8675-aa5e51e678e0,93016393-c637-4d81-8675-aa5e51e678e0,1,0,d8621f68-106e-4058-963f-56010491ae2e,d8621f68-106e-4058-963f-56010491ae2e,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,4a1e6d25-89e7-468a-aef1-6ded0154dca2,4a1e6d25-89e7-468a-aef1-6ded0154dca2,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,00418e6c-77b2-4753-b9ff-3a8013436f8a,00418e6c-77b2-4753-b9ff-3a8013436f8a,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,d9f1f56b-75c8-43e9-8043-89076c225f78,d9f1f56b-75c8-43e9-8043-89076c225f78,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,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,fd3a6a7e-203d-447a-aebd-7626579387fb,fd3a6a7e-203d-447a-aebd-7626579387fb,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,e55d259f-cfaa-46f9-92c4-687e1ff3b89d,e55d259f-cfaa-46f9-92c4-687e1ff3b89d,1,0,cf13e2d9-72a0-47c0-bae2-f674024bbdb2,cf13e2d9-72a0-47c0-bae2-f674024bbdb2,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,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,41462827-fd8b-4ee6-a739-a884d704bba5,41462827-fd8b-4ee6-a739-a884d704bba5,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,35bc58df-8aff-48dd-83a9-b60b0461f94d,35bc58df-8aff-48dd-83a9-b60b0461f94d,1,0,0f46ae6b-9fe8-471a-a59f-af5e66cb9e00,0f46ae6b-9fe8-471a-a59f-af5e66cb9e00,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,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,06afe397-1c7e-400e-bb24-f8e611d114e8,06afe397-1c7e-400e-bb24-f8e611d114e8,1,0,f0105e51-9510-426a-8aa0-af827d93ffd9,f0105e51-9510-426a-8aa0-af827d93ffd9,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,11fe3a42-98c4-49ba-b697-86ffb172f16f,11fe3a42-98c4-49ba-b697-86ffb172f16f,1,0,07b53818-7318-4400-8af5-457fac012755,07b53818-7318-4400-8af5-457fac012755,1,0,292b47e7-5cf3-462d-a466-dac6253a7f03,292b47e7-5cf3-462d-a466-dac6253a7f03,1,0,8ecc070f-f6fb-46b1-9636-b77aa80f8804,8ecc070f-f6fb-46b1-9636-b77aa80f8804,1,0,8405be9d-465b-4744-b04f-03933b52f02e,8405be9d-465b-4744-b04f-03933b52f02e,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,cef55e64-d4ad-42dc-aa5a-ea65a3af7cfa,cef55e64-d4ad-42dc-aa5a-ea65a3af7cfa,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,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,9395eb9d-6aff-4af5-a6f1-5c39014ba67b,9395eb9d-6aff-4af5-a6f1-5c39014ba67b,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,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,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,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,bbfd9834-12b4-49ca-bdae-5c94efa80482,bbfd9834-12b4-49ca-bdae-5c94efa80482,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,aeee2eea-1bb9-4e8a-ac5c-c940eaa86511,aeee2eea-1bb9-4e8a-ac5c-c940eaa86511,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,f3a6219e-bff5-4d36-9baa-bb214cebc2ed,f3a6219e-bff5-4d36-9baa-bb214cebc2ed,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,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,295f3692-0721-4c41-a69b-171ef20a5018,295f3692-0721-4c41-a69b-171ef20a5018,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,8d31ce6a-4d44-46c6-a11c-47fb33e88691,8d31ce6a-4d44-46c6-a11c-47fb33e88691,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,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,426cbebb-880b-49c5-b046-83c5e071273e,426cbebb-880b-49c5-b046-83c5e071273e,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,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,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,86755cbc-efd8-43e7-bba8-975c0a51f38f,86755cbc-efd8-43e7-bba8-975c0a51f38f,1,0,7183d525-212a-42f3-a7e5-eb9deaeaa4a3,7183d525-212a-42f3-a7e5-eb9deaeaa4a3,1,0,b82b27cc-e81c-4b7c-9833-ea4f2ce21edb,b82b27cc-e81c-4b7c-9833-ea4f2ce21edb,1,0,4347f77e-bad9-4525-90a0-794787f03585,4347f77e-bad9-4525-90a0-794787f03585,1,0,cfde3330-2bed-4273-8d69-c213ebdde247,cfde3330-2bed-4273-8d69-c213ebdde247,1,0,2d6ca049-89a5-437e-971c-b8e42f61b460,2d6ca049-89a5-437e-971c-b8e42f61b460,1,0,c450ebe1-4223-4a7a-b9fa-374d5c13dc8c,c450ebe1-4223-4a7a-b9fa-374d5c13dc8c,1,0,271d58d0-4449-40cc-bae9-cc4c50eebd9b,271d58d0-4449-40cc-bae9-cc4c50eebd9b,1,0,58df9322-c786-4dd1-af49-7cd164b378da,58df9322-c786-4dd1-af49-7cd164b378da,1,0,8d48de7f-61d6-4462-9c14-f728206a482c,8d48de7f-61d6-4462-9c14-f728206a482c,1,0,a87e890a-8924-4f56-9e37-04579b95297a,a87e890a-8924-4f56-9e37-04579b95297a,1,0,c71d4fa4-86b0-41e2-8b6a-cfb91e131eaf,c71d4fa4-86b0-41e2-8b6a-cfb91e131eaf,1,0,4c1f2581-ee42-4df5-9169-20205a18a9be,4c1f2581-ee42-4df5-9169-20205a18a9be,1,0,bb3d9ea3-8895-4950-9ee9-4249ca983d48,bb3d9ea3-8895-4950-9ee9-4249ca983d48,1,0,86ea21fa-5ecc-4d81-b6ad-d71e7ed39009,86ea21fa-5ecc-4d81-b6ad-d71e7ed39009,1,0,b806d2b6-bbd1-4abd-9471-7791603a2fcf,b806d2b6-bbd1-4abd-9471-7791603a2fcf,1,0,d7aa519b-9a2e-4946-bd06-9ac22bb7c1e4,d7aa519b-9a2e-4946-bd06-9ac22bb7c1e4,1,0,ecee1ec8-aa1f-4b90-a1b3-2538a53c0dd7,ecee1ec8-aa1f-4b90-a1b3-2538a53c0dd7,1,0,34f50dd9-de16-4013-a2ef-6595d9c28930,34f50dd9-de16-4013-a2ef-6595d9c28930,1,0,56fcca65-3429-4409-bce7-f434f6530a74,56fcca65-3429-4409-bce7-f434f6530a74,1,0,5236ca8d-a4a6-4df8-a6a3-5cfe02c49aeb,5236ca8d-a4a6-4df8-a6a3-5cfe02c49aeb,1,0,bcfabf25-ae2f-4f73-836c-2cab3617a0b6,bcfabf25-ae2f-4f73-836c-2cab3617a0b6,1,0,b286f047-a4d0-4808-b1b4-27997ead6d49,b286f047-a4d0-4808-b1b4-27997ead6d49,1,0,49da2d3a-657a-4cfd-8e37-422b96d2cda5,49da2d3a-657a-4cfd-8e37-422b96d2cda5,1,0,fced16ae-abee-4fbe-9582-dfd368d5610a,fced16ae-abee-4fbe-9582-dfd368d5610a,1,0,afe60bad-1585-487f-9a39-9b9e031f9576,afe60bad-1585-487f-9a39-9b9e031f9576,1,0,4c4f0475-bd11-40c8-af0d-8affec6f838d,4c4f0475-bd11-40c8-af0d-8affec6f838d,1,0,7aee36ac-bbd1-4b06-8266-b7325fb9ce3c,7aee36ac-bbd1-4b06-8266-b7325fb9ce3c,1,0,855439d7-a621-48f5-b6d9-bc2bbd11ad90,855439d7-a621-48f5-b6d9-bc2bbd11ad90,1,0,4e0ec0f0-eb44-41b0-b950-88fdb6ac0db2,4e0ec0f0-eb44-41b0-b950-88fdb6ac0db2,1,0,2f25e742-555b-4db8-bff2-2d345ce2a93a,2f25e742-555b-4db8-bff2-2d345ce2a93a,1,0,303d8c17-4303-4f1d-8bed-51cd7ea0a4b2,303d8c17-4303-4f1d-8bed-51cd7ea0a4b2,1,0,46affd3a-f31c-4432-bd58-2f2b1ed9bc4e,46affd3a-f31c-4432-bd58-2f2b1ed9bc4e,1,0,a7fee9d3-569d-4b5b-bd47-44790e0095f5,a7fee9d3-569d-4b5b-bd47-44790e0095f5,1,0,a258fe12-7e55-4f89-86fa-962b1d2947ac,a258fe12-7e55-4f89-86fa-962b1d2947ac,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,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,f8f0857f-2c75-471a-ae0b-a3a265e1eb25,f8f0857f-2c75-471a-ae0b-a3a265e1eb25,1,0,a23f97fb-7ac9-4941-a2c6-bbff6c36ac12,a23f97fb-7ac9-4941-a2c6-bbff6c36ac12,1,0,80cf54ed-8677-4c89-a378-0abef6c64010,80cf54ed-8677-4c89-a378-0abef6c64010,1,0,f0dec7b3-2d6a-44ce-a1da-9c71ccd37539,f0dec7b3-2d6a-44ce-a1da-9c71ccd37539,1,0,56ee3afd-5ae6-421e-b9f3-26505e40f100,56ee3afd-5ae6-421e-b9f3-26505e40f100,1,0,63c9a839-78b2-4706-b380-5aedf6914930,63c9a839-78b2-4706-b380-5aedf6914930,1,0,40f5c1cb-2654-4738-bb44-6734b0e3490b,40f5c1cb-2654-4738-bb44-6734b0e3490b,1,0,2ec484b1-95eb-43a7-9430-1c1ef49f05af,2ec484b1-95eb-43a7-9430-1c1ef49f05af,1,0,1a314ce2-03bc-4267-89a9-bb5bb866f552,1a314ce2-03bc-4267-89a9-bb5bb866f552,1,0,e3b783a6-5ea2-4cd4-955b-df63d93c1f25,e3b783a6-5ea2-4cd4-955b-df63d93c1f25,1,0,f8ab62ad-7776-49ae-b1bb-51bea9a9992b,f8ab62ad-7776-49ae-b1bb-51bea9a9992b,1,0,e859dd18-8baf-49c0-b7a0-1205b6c125d3,e859dd18-8baf-49c0-b7a0-1205b6c125d3,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,f3d8590a-dcfa-4d41-8d03-642b99ffa040,f3d8590a-dcfa-4d41-8d03-642b99ffa040,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,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,150c9d05-4ccc-4cb7-879d-b1d9c3534343,150c9d05-4ccc-4cb7-879d-b1d9c3534343,1,0,65000437-bd07-4841-a458-679d44768c46,65000437-bd07-4841-a458-679d44768c46,1,0,1281fe19-bbca-4a4f-84d8-14187e62000f,1281fe19-bbca-4a4f-84d8-14187e62000f,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,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,1685c406-d0cb-4e0a-a3b0-036c8c22942a,1685c406-d0cb-4e0a-a3b0-036c8c22942a,1,0,892dc4c4-a72b-4dbf-af62-9f9ae0e05aa1,892dc4c4-a72b-4dbf-af62-9f9ae0e05aa1,1,0,81db41a6-2580-4a69-b1fd-57cfd48a7efa,81db41a6-2580-4a69-b1fd-57cfd48a7efa,1,0,0db8b3b2-bf24-4006-9897-797084c241ef,0db8b3b2-bf24-4006-9897-797084c241ef,1,0,fd9d34d9-9c9c-4c05-9c08-b93d4b237adf,fd9d34d9-9c9c-4c05-9c08-b93d4b237adf,1,0,381b7dae-6b34-42a7-9fee-2a4af8a1cc18,381b7dae-6b34-42a7-9fee-2a4af8a1cc18,1,0,31e9ca0d-9ae1-4740-a0a6-2739aa29c99f,31e9ca0d-9ae1-4740-a0a6-2739aa29c99f,1,0,20091427-d173-40ca-b2c4-53ee99b0b5ae,20091427-d173-40ca-b2c4-53ee99b0b5ae,1,0,14cbde39-a39a-48e5-9b72-b798a0bcea3f,14cbde39-a39a-48e5-9b72-b798a0bcea3f,1,0,56871c10-e3af-4679-afad-3baa910d73bb,56871c10-e3af-4679-afad-3baa910d73bb,1,0,f81b51c5-57e4-41f8-9ad5-3d2717351b95,f81b51c5-57e4-41f8-9ad5-3d2717351b95,1,0,3c09f0cd-fbec-46ae-95b0-a00cc53c07ef,3c09f0cd-fbec-46ae-95b0-a00cc53c07ef,1,0,de0a39e0-d37d-47c6-a019-e44836edc8d1,de0a39e0-d37d-47c6-a019-e44836edc8d1,1,0,1fdcc1e7-ad53-409e-ba13-84c6429740cd,1fdcc1e7-ad53-409e-ba13-84c6429740cd,1,0,71d544bf-15c1-4581-8baa-ac126308425c,71d544bf-15c1-4581-8baa-ac126308425c,1,0,1bd0b688-d0fb-4ca2-85aa-4bd82b72ccc2,1bd0b688-d0fb-4ca2-85aa-4bd82b72ccc2,1,0,7acfe30e-73cb-465a-88f2-92b7275dc49b,7acfe30e-73cb-465a-88f2-92b7275dc49b,1,0,8e387dac-5029-49da-a013-355df0a51a44,8e387dac-5029-49da-a013-355df0a51a44,1,0,13859664-8307-40e8-855b-557b9cf2f1ec,13859664-8307-40e8-855b-557b9cf2f1ec,1,0,e4397fba-507f-497c-9414-7d08ccd4d799,e4397fba-507f-497c-9414-7d08ccd4d799,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,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,40b08a20-51a3-438b-ba54-466917ea809f,40b08a20-51a3-438b-ba54-466917ea809f,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,af22406b-daac-475d-b6a9-577452502b84,af22406b-daac-475d-b6a9-577452502b84,1,0,7a925960-a579-4b06-90e0-5121dc774024,7a925960-a579-4b06-90e0-5121dc774024,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,ff18803b-4c3a-4720-a718-7547f04c6e2f,ff18803b-4c3a-4720-a718-7547f04c6e2f,1,0,0e0670d6-d8f7-4728-bd1b-f016fffa0570,0e0670d6-d8f7-4728-bd1b-f016fffa0570,1,0,13beb01d-dd08-4a6d-863b-651e70bbf51f,13beb01d-dd08-4a6d-863b-651e70bbf51f,1,0,a53f6e85-fbf7-4fb1-9301-d63e812fe16c,a53f6e85-fbf7-4fb1-9301-d63e812fe16c,1,0,57a0f5f3-6573-4b35-af25-cea3a25641f1,57a0f5f3-6573-4b35-af25-cea3a25641f1,1,0,0b7c4cb7-5126-4b5e-8941-cd56eaef76a0,0b7c4cb7-5126-4b5e-8941-cd56eaef76a0,1,0,144d5498-bb61-4bec-bef3-85a5a4aec3d5,144d5498-bb61-4bec-bef3-85a5a4aec3d5,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,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,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,5422610d-b92c-4213-a58c-8db067d93b66,5422610d-b92c-4213-a58c-8db067d93b66,1,0,8f59a635-9e0e-470d-8fda-a47a262a59c2,8f59a635-9e0e-470d-8fda-a47a262a59c2,1,0,ffb50eb9-149a-46ec-9472-d8f20ad09810,ffb50eb9-149a-46ec-9472-d8f20ad09810,1,0,5ae3bba3-dc98-4470-a73d-3bd951c0a3f2,5ae3bba3-dc98-4470-a73d-3bd951c0a3f2,1,0,7a6449e2-e90a-4720-a769-192284ef69c1,7a6449e2-e90a-4720-a769-192284ef69c1,1,0,02118b98-2349-46b1-a328-d6e2b5781f7e,02118b98-2349-46b1-a328-d6e2b5781f7e,1,0,67de9cbb-5c80-4cff-bfbe-269a958e08e6,67de9cbb-5c80-4cff-bfbe-269a958e08e6,1,0,2228a457-6805-41ee-85af-5ebca9568bf4,2228a457-6805-41ee-85af-5ebca9568bf4,1,0,96b71795-e230-4ecb-b98d-4feb3f8b9662,96b71795-e230-4ecb-b98d-4feb3f8b9662,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,07d0d6e9-e0a7-4543-9668-3850c1e0a15c,07d0d6e9-e0a7-4543-9668-3850c1e0a15c,1,0,c656771c-dcb7-4c78-9a16-e62806d5bb5a,c656771c-dcb7-4c78-9a16-e62806d5bb5a,1,0,ec42c45c-18ca-44b0-9c59-1cb204552a43,ec42c45c-18ca-44b0-9c59-1cb204552a43,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,699f734b-43d2-4351-bff8-e0e21e164a42,699f734b-43d2-4351-bff8-e0e21e164a42,1,0,95f0792a-7ac4-450a-b05c-219741e61abd,95f0792a-7ac4-450a-b05c-219741e61abd,1,0,742a2e8c-496e-4e02-931d-d33f7afe07a5,742a2e8c-496e-4e02-931d-d33f7afe07a5,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,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,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,cfa55ab3-1335-4712-8352-03c2f0277708,cfa55ab3-1335-4712-8352-03c2f0277708,1,0,fb176f8b-edb9-4e4b-926d-dabe9552bfa1,fb176f8b-edb9-4e4b-926d-dabe9552bfa1,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,fa9572ee-0303-4421-9125-70cf3dd5a8c7,fa9572ee-0303-4421-9125-70cf3dd5a8c7,1,0,4cdd7920-0c49-4950-b92f-fdf6e34578b2,4cdd7920-0c49-4950-b92f-fdf6e34578b2,1,0,0af48650-5fef-4a5b-8ac8-38a9ded23bd4,0af48650-5fef-4a5b-8ac8-38a9ded23bd4,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,22df0fa4-cb1c-45a2-bcce-d32ed44e462a,22df0fa4-cb1c-45a2-bcce-d32ed44e462a,1,0,d97c6204-3656-4591-aea9-6ebedffe1247,d97c6204-3656-4591-aea9-6ebedffe1247,1,0,7caabe33-184f-45db-bef4-59d4e9cd2394,7caabe33-184f-45db-bef4-59d4e9cd2394,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,05558ce4-8568-4009-b1d7-307d54967515,05558ce4-8568-4009-b1d7-307d54967515,1,0,74380324-9b7b-49f6-9458-88deb9405f98,74380324-9b7b-49f6-9458-88deb9405f98,1,0,5286ceb2-0f16-4d70-ad89-dc15a308bb8d,5286ceb2-0f16-4d70-ad89-dc15a308bb8d,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,d5afea8a-1b7a-4b23-8ae0-cefa0b937b17,d5afea8a-1b7a-4b23-8ae0-cefa0b937b17,1,0,6ffd2da8-db97-46fc-9a53-8e665a598e3c,6ffd2da8-db97-46fc-9a53-8e665a598e3c,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,364218e0-87ba-4008-a3e3-e2351a5e04b8,364218e0-87ba-4008-a3e3-e2351a5e04b8,1,0,788a98e0-194f-466c-b4fa-bafd527aae26,788a98e0-194f-466c-b4fa-bafd527aae26,1,0,5d990585-02dd-4a13-8dfa-920df7d1dbb0,5d990585-02dd-4a13-8dfa-920df7d1dbb0,1,0,143f6db9-a4dc-4039-90d0-6161394a3e2f,143f6db9-a4dc-4039-90d0-6161394a3e2f,1,0,07820e9e-9d6b-4c37-909e-90dbd33e30c0,07820e9e-9d6b-4c37-909e-90dbd33e30c0,1,0,483dfce4-9c66-4739-94d4-17a005d64f5b,483dfce4-9c66-4739-94d4-17a005d64f5b,1,0,19506116-43ef-433c-822c-ef8717b0da6b,19506116-43ef-433c-822c-ef8717b0da6b,1,0,464b92cc-b577-4350-ae9f-e697390248d7,464b92cc-b577-4350-ae9f-e697390248d7,1,0,5a1242c8-3817-4d2c-9bfd-f62a6b80730c,5a1242c8-3817-4d2c-9bfd-f62a6b80730c,1,0,b9be6caf-e5e0-45a9-8cc8-3c83721632a2,b9be6caf-e5e0-45a9-8cc8-3c83721632a2,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,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,a23e6c77-8c12-4f99-ae2d-68a12274be38,a23e6c77-8c12-4f99-ae2d-68a12274be38,1,0,3c4454cd-31e9-42a5-9127-fb66a628f0e1,3c4454cd-31e9-42a5-9127-fb66a628f0e1,1,0,c02c5cbf-b25a-4956-8aa7-74cfeb66d508,c02c5cbf-b25a-4956-8aa7-74cfeb66d508,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,118a0e62-c0bb-435b-9e3e-c64563efa602,118a0e62-c0bb-435b-9e3e-c64563efa602,1,0,b57bc8a9-8a59-4192-a442-2e1982e83179,b57bc8a9-8a59-4192-a442-2e1982e83179,1,0,5b06ccda-2a70-4621-8273-78408cbe72a9,5b06ccda-2a70-4621-8273-78408cbe72a9,1,0,89753385-64fd-4e76-9857-bfd5d7c23f71,89753385-64fd-4e76-9857-bfd5d7c23f71,1,0,1b3113f3-e7d4-4e6f-b6ed-08f5fd78c68e,1b3113f3-e7d4-4e6f-b6ed-08f5fd78c68e,1,0,53e72cf2-e2a5-4b59-b5b1-a1fc28fda5bf,53e72cf2-e2a5-4b59-b5b1-a1fc28fda5bf,1,0,e20bcb57-2f68-4709-8a11-105d561a2dda,e20bcb57-2f68-4709-8a11-105d561a2dda,1,0,3df3f61a-2c17-4278-8d82-91089f793e6a,3df3f61a-2c17-4278-8d82-91089f793e6a,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,66ec2482-c1f3-45d3-9257-e0b9f5ae772a,66ec2482-c1f3-45d3-9257-e0b9f5ae772a,1,0,d3211832-c8ca-437a-8810-82e06cbb48de,d3211832-c8ca-437a-8810-82e06cbb48de,1,0,8131d701-1014-4196-9b67-914e451f8a3a,8131d701-1014-4196-9b67-914e451f8a3a,1,0,2b102933-c660-4e74-ae9a-5061a88ed672,2b102933-c660-4e74-ae9a-5061a88ed672,1,0,56c897b7-d34e-4d7d-9a3b-d0779be5c189,56c897b7-d34e-4d7d-9a3b-d0779be5c189,1,0,3ac81c80-56bd-4750-b135-07ab522e3eab,3ac81c80-56bd-4750-b135-07ab522e3eab,1,0,5657872f-c7d5-446f-bcc3-d0b86ad63a42,5657872f-c7d5-446f-bcc3-d0b86ad63a42,1,0,d5214cb9-67e2-469f-989f-3f2b662ae830,d5214cb9-67e2-469f-989f-3f2b662ae830,1,0,69679e88-4f2b-4dd6-8cb2-b88293d07b55,69679e88-4f2b-4dd6-8cb2-b88293d07b55,1,0,68679208-9972-4854-8649-49bdf6212255,68679208-9972-4854-8649-49bdf6212255,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,985106b7-7476-4b48-90ac-ad86876395b5,985106b7-7476-4b48-90ac-ad86876395b5,1,0,0d8db0c9-adbc-478d-997c-3d7feccac99b,0d8db0c9-adbc-478d-997c-3d7feccac99b,1,0,3fd2ef04-c178-47bf-ab62-7baf83236d99,3fd2ef04-c178-47bf-ab62-7baf83236d99,1,0,b4cd1b51-dbc0-4bb0-879e-5ac0d58e78c1,b4cd1b51-dbc0-4bb0-879e-5ac0d58e78c1,1,0,320bf2e6-a3a8-490b-8aa0-21369ffb121b,320bf2e6-a3a8-490b-8aa0-21369ffb121b,1,0,a3bafc54-8fe4-4841-acc6-74a87baf9caf,a3bafc54-8fe4-4841-acc6-74a87baf9caf,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,fc1476f7-26e6-4374-b99b-e515d86c050a,fc1476f7-26e6-4374-b99b-e515d86c050a,1,0,e0eb7b4a-9a13-4752-9327-e13d2abc4fc5,e0eb7b4a-9a13-4752-9327-e13d2abc4fc5,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,6528bd7a-bac1-4c8b-9b00-6be01c0121b1,6528bd7a-bac1-4c8b-9b00-6be01c0121b1,1,0,d8601e95-af94-4805-974a-99c539725d74,d8601e95-af94-4805-974a-99c539725d74,1,0,6d98f877-f3bb-4795-9025-2631468a331f,6d98f877-f3bb-4795-9025-2631468a331f,1,0,89b9379d-ace9-48cc-b979-a66fd45aeb1d,89b9379d-ace9-48cc-b979-a66fd45aeb1d,1,0,c4a5c44d-329d-41b5-9a6c-bddbc15f6249,c4a5c44d-329d-41b5-9a6c-bddbc15f6249,1,0,9767a113-5a42-4749-bf40-0f349e85615d,9767a113-5a42-4749-bf40-0f349e85615d,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,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,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,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,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,b7fae67e-bdbb-4cdf-a6fd-26265e48fddb,b7fae67e-bdbb-4cdf-a6fd-26265e48fddb,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,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,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,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,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,e33df42d-4c64-4475-8294-6b05ecdb4e02,e33df42d-4c64-4475-8294-6b05ecdb4e02,1,0,6094a0ed-2051-4649-ad75-dfeb389d3cbb,6094a0ed-2051-4649-ad75-dfeb389d3cbb,1,0,6944a7e2-b9a1-492f-a6f2-9bf31d97ec78,6944a7e2-b9a1-492f-a6f2-9bf31d97ec78,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,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,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,f38bb317-8a59-4786-be76-e1d4e534628d,f38bb317-8a59-4786-be76-e1d4e534628d,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,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,cf896f41-7cea-4083-a9f8-96ad881ce641,cf896f41-7cea-4083-a9f8-96ad881ce641,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,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,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,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,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,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,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,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,63478206-a155-48f5-822f-9b592b561bac,63478206-a155-48f5-822f-9b592b561bac,1,0,7ab8d806-17b2-41d8-9abb-c302302b3465,7ab8d806-17b2-41d8-9abb-c302302b3465,1,0,e3822657-3052-4e11-9bcf-fdb8c1b26a9c,e3822657-3052-4e11-9bcf-fdb8c1b26a9c,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,6a675752-fd31-46a5-8a62-2a1ede437c68,6a675752-fd31-46a5-8a62-2a1ede437c68,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,ff8eedeb-fc3e-4bee-852b-6da6d59ff38c,ff8eedeb-fc3e-4bee-852b-6da6d59ff38c,1,0,a98bd18f-ccda-41a2-a1b2-8b37cc1f6c36,a98bd18f-ccda-41a2-a1b2-8b37cc1f6c36,1,0,62f9fe19-3d64-4506-a0bc-dbfe47b4df64,62f9fe19-3d64-4506-a0bc-dbfe47b4df64,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,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,5e22429f-9ec0-4943-bf80-1becc4b8e5cb,5e22429f-9ec0-4943-bf80-1becc4b8e5cb,1,0,0153e60e-daca-48ac-b1c6-adecc89f579e,0153e60e-daca-48ac-b1c6-adecc89f579e,1,0,1ed4cf25-19f0-49f5-96a0-0ffe13adfe35,1ed4cf25-19f0-49f5-96a0-0ffe13adfe35,1,0,a896bc34-30a6-48b6-acfc-786c24c186bd,a896bc34-30a6-48b6-acfc-786c24c186bd,1,0,3867f4cb-bf54-42fb-8ea6-ca51d7cd6c91,3867f4cb-bf54-42fb-8ea6-ca51d7cd6c91,1,0,da8ae00a-7207-4ceb-b739-9114888c5b27,da8ae00a-7207-4ceb-b739-9114888c5b27,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,477ca2ac-ae7e-4091-bea3-9ed2d3eae788,477ca2ac-ae7e-4091-bea3-9ed2d3eae788,1,0,c9d0f1dd-bb93-4dbe-85f3-30c791a3c59e,c9d0f1dd-bb93-4dbe-85f3-30c791a3c59e,1,0,d023d15a-0f3f-46c3-8dea-43770f0a53b3,d023d15a-0f3f-46c3-8dea-43770f0a53b3,1,0,daf12fe4-79fb-43b9-9f7a-8da311449193,daf12fe4-79fb-43b9-9f7a-8da311449193,1,0,d0ad91a1-62aa-4e97-9868-82c5b8a46f22,d0ad91a1-62aa-4e97-9868-82c5b8a46f22,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,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,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,61b947a5-edca-43ca-82c4-5a7b529d8f82,61b947a5-edca-43ca-82c4-5a7b529d8f82,1,0,59eb6a7a-1d96-4985-8d8e-575162759415,59eb6a7a-1d96-4985-8d8e-575162759415,1,0,68564573-ed49-4519-a8b3-997865fe70a6,68564573-ed49-4519-a8b3-997865fe70a6,1,0,6c789969-d066-489d-ad88-92e2a5a6ec69,6c789969-d066-489d-ad88-92e2a5a6ec69,1,0,2a07d696-75d6-4a12-a310-30d6598b4a4c,2a07d696-75d6-4a12-a310-30d6598b4a4c,1,0,dde88f56-417c-4559-a893-85dc91e7e623,dde88f56-417c-4559-a893-85dc91e7e623,1,0,963eedab-6976-4a98-b9ad-b81f89239661,963eedab-6976-4a98-b9ad-b81f89239661,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,36baa776-83c4-413d-b70c-cbbc45e25662,36baa776-83c4-413d-b70c-cbbc45e25662,1,0,b65f9165-c20d-4053-8a0b-cff3f693b762,b65f9165-c20d-4053-8a0b-cff3f693b762,1,0,51af096b-687f-44f4-a0d8-306f670fc5ce,51af096b-687f-44f4-a0d8-306f670fc5ce,1,0,75972f88-aedd-4338-a3b5-320cd632a2e6,75972f88-aedd-4338-a3b5-320cd632a2e6,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,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,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,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,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,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,190bc52e-0d51-4dfc-9f16-99ed71ebfa75,190bc52e-0d51-4dfc-9f16-99ed71ebfa75,1,0,0c24858a-7e64-426f-9b59-392449aecaf5,0c24858a-7e64-426f-9b59-392449aecaf5,1,0,b1d61e28-f3dc-418b-b5df-f75622a4b980,b1d61e28-f3dc-418b-b5df-f75622a4b980,1,0,bec4c82f-4e76-4d16-bb4d-b6d9fa404c5d,bec4c82f-4e76-4d16-bb4d-b6d9fa404c5d,1,0,4033f86b-d250-475a-8837-071bf31664b0,4033f86b-d250-475a-8837-071bf31664b0,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,0544376f-461c-42c3-a102-e0ae65e3c0c6,0544376f-461c-42c3-a102-e0ae65e3c0c6,1,0,6df8d316-6ac3-4626-8951-1ad36d7049ed,6df8d316-6ac3-4626-8951-1ad36d7049ed,1,0,f211b418-899d-4220-a14b-4a7302183e46,f211b418-899d-4220-a14b-4a7302183e46,1,0,e499629a-69ed-46b4-be5d-7b1f2f6a11d4,e499629a-69ed-46b4-be5d-7b1f2f6a11d4,1,0,0b8c7a82-9865-4c5e-9bf1-ba6a7ef3a5d1,0b8c7a82-9865-4c5e-9bf1-ba6a7ef3a5d1,1,0,ea9fd5dd-b1de-41f8-87c2-ad3e8ee6b9bf,ea9fd5dd-b1de-41f8-87c2-ad3e8ee6b9bf,1,0,1bc24f0c-7299-4d7d-994c-0e89056f1178,1bc24f0c-7299-4d7d-994c-0e89056f1178,1,0,af958a75-241e-443a-8c1d-0c9240cca3a3,af958a75-241e-443a-8c1d-0c9240cca3a3,1,0,d65cce37-81a6-4f75-84e1-7e5b6340aa13,d65cce37-81a6-4f75-84e1-7e5b6340aa13,1,0,b60ddb04-f87c-4e16-aad0-f06d80dfbe14,b60ddb04-f87c-4e16-aad0-f06d80dfbe14,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,2d942a50-b239-4b8c-812a-5a634f5dcaef,2d942a50-b239-4b8c-812a-5a634f5dcaef,1,0,8ab0c61d-85b4-47e3-aca1-1890e4c6ec8d,8ab0c61d-85b4-47e3-aca1-1890e4c6ec8d,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,fae4675c-dcdc-42fc-911d-07c3c577b8b8,fae4675c-dcdc-42fc-911d-07c3c577b8b8,1,0,f1050611-4f82-411b-97f2-bcd8a5c914bf,f1050611-4f82-411b-97f2-bcd8a5c914bf,1,0,efacf22d-b474-4d49-af8b-6d3784aa5cf2,efacf22d-b474-4d49-af8b-6d3784aa5cf2,1,0,f818b937-9ac3-4a0c-ba50-26c060984f09,f818b937-9ac3-4a0c-ba50-26c060984f09,1,0,f385778d-96cb-4e09-884d-533739b393b1,f385778d-96cb-4e09-884d-533739b393b1,1,0,5bdaa783-e965-4d59-b7b7-a1e86ddb89f7,5bdaa783-e965-4d59-b7b7-a1e86ddb89f7,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,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,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,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,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,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,77bd95d6-3cd5-4b67-a0b6-72d24243fbc2,77bd95d6-3cd5-4b67-a0b6-72d24243fbc2,1,0,0be7f905-53b8-4bb1-8e37-dcc142e508c5,0be7f905-53b8-4bb1-8e37-dcc142e508c5,1,0,4ec242e0-75d1-4bf7-be18-783e7aa4f236,4ec242e0-75d1-4bf7-be18-783e7aa4f236,1,0,e02b1366-9d7a-462f-86a1-436bbf4532ff,e02b1366-9d7a-462f-86a1-436bbf4532ff,1,0,40ee729c-c317-4a1c-b985-5f7e4e1e20fb,40ee729c-c317-4a1c-b985-5f7e4e1e20fb,1,0,2feb35c0-b046-4086-a2ce-ccc462fc6e9c,2feb35c0-b046-4086-a2ce-ccc462fc6e9c,1,0,8811cc64-99d9-4f13-8309-c29965783f5a,8811cc64-99d9-4f13-8309-c29965783f5a,1,0,7c737071-e850-4a3f-8942-697ef52a8ecc,7c737071-e850-4a3f-8942-697ef52a8ecc,1,0,62eff222-7b74-4cab-9138-880db1f05147,62eff222-7b74-4cab-9138-880db1f05147,1,0,39c6c277-cfc6-4e8a-8e7f-afcff55f0511,39c6c277-cfc6-4e8a-8e7f-afcff55f0511,1,0,860f8893-22fe-4b13-adb1-24e1ea8c6544,860f8893-22fe-4b13-adb1-24e1ea8c6544,1,0,95266e9f-073f-4de3-83c6-cc0d9ee9334f,95266e9f-073f-4de3-83c6-cc0d9ee9334f,1,0,21b8ac8d-75ca-481c-8e85-01bc2029f0c0,21b8ac8d-75ca-481c-8e85-01bc2029f0c0,1,0,d5012e69-89bc-40af-8e4f-377a042854ee,d5012e69-89bc-40af-8e4f-377a042854ee,1,0,02f79fd8-5315-4c90-b520-db67dcb6e371,02f79fd8-5315-4c90-b520-db67dcb6e371,1,0,9bb52788-4a3a-48b5-a551-5ca753b6c059,9bb52788-4a3a-48b5-a551-5ca753b6c059,1,0,4fb5004f-3cd9-44c4-a44b-d235cccf9e9c,4fb5004f-3cd9-44c4-a44b-d235cccf9e9c,1,0,872a0c47-fab5-4a54-8ab9-23940bbdefbb,872a0c47-fab5-4a54-8ab9-23940bbdefbb,1,0,7428a626-3fbc-4f2c-a3dd-f14e8d90c00b,7428a626-3fbc-4f2c-a3dd-f14e8d90c00b,1,0,2f20bff4-9201-4f36-9e74-eba4d9b3c59a,2f20bff4-9201-4f36-9e74-eba4d9b3c59a,1,0,b6c94efd-5994-4c4c-a641-b062ecc38b65,b6c94efd-5994-4c4c-a641-b062ecc38b65,1,0,98501228-7f0e-45a3-b58f-4c654f393f80,98501228-7f0e-45a3-b58f-4c654f393f80,1,0,502384c9-edb7-451a-b7ea-de006f657a6e,502384c9-edb7-451a-b7ea-de006f657a6e,1,0,4e1a4fe0-dca4-40ba-9369-73be303a4aef,4e1a4fe0-dca4-40ba-9369-73be303a4aef,1,0,329906a0-0b61-4f3f-8cd0-f06a78e8fe5f,329906a0-0b61-4f3f-8cd0-f06a78e8fe5f,1,0,840e0b1b-a599-4c5f-8eaa-7f7e4f2e55a4,840e0b1b-a599-4c5f-8eaa-7f7e4f2e55a4,1,0,1d06a9e4-e637-4219-a81c-64f8ec1b91a4,1d06a9e4-e637-4219-a81c-64f8ec1b91a4,1,0,50968921-76f3-4108-835a-96b153671c8d,50968921-76f3-4108-835a-96b153671c8d,1,0,b773f510-1485-4886-9071-afcbf49ff856,b773f510-1485-4886-9071-afcbf49ff856,1,0,964403f2-0a87-49e1-b183-dbe3624e3805,964403f2-0a87-49e1-b183-dbe3624e3805,1,0,bb264e83-49f4-4b7a-8be2-094712fc0640,bb264e83-49f4-4b7a-8be2-094712fc0640,1,0,07bf650d-e61e-44f3-9643-6ffc95b913fb,07bf650d-e61e-44f3-9643-6ffc95b913fb,1,0,5c68c57a-31d6-4ae9-855f-3fbc57922e39,5c68c57a-31d6-4ae9-855f-3fbc57922e39,1,0,6b90ed05-813c-4324-8a69-02c2268856b2,6b90ed05-813c-4324-8a69-02c2268856b2,1,0,081ed48d-cb87-459d-97d6-9af121edbabb,081ed48d-cb87-459d-97d6-9af121edbabb,1,0,6c4074b2-f631-451d-b412-1c8c096a71b1,6c4074b2-f631-451d-b412-1c8c096a71b1,1,0,f9931a20-8391-4b13-8c6d-1836f2492e53,f9931a20-8391-4b13-8c6d-1836f2492e53,1,0,c6eec20b-13b9-44a0-968f-1325680c399b,c6eec20b-13b9-44a0-968f-1325680c399b,1,0,02fbf083-1bdd-4900-9dc1-62f415b792a4,02fbf083-1bdd-4900-9dc1-62f415b792a4,1,0,35454c2d-7088-487b-abb3-f95f2dfdcffa,35454c2d-7088-487b-abb3-f95f2dfdcffa,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,2c2526c1-bdf8-4115-bdff-3e79d28321cb,2c2526c1-bdf8-4115-bdff-3e79d28321cb,1,0,4f4da2e9-37ab-4505-b3b1-4b3a908f38c2,4f4da2e9-37ab-4505-b3b1-4b3a908f38c2,1,0,95ab774f-27fa-4bd4-a422-0f997f632679,95ab774f-27fa-4bd4-a422-0f997f632679,1,0,ee3ad891-b7d6-439d-892b-de2f3399d147,ee3ad891-b7d6-439d-892b-de2f3399d147,1,0,4af0f1ee-42cb-47bd-99d0-99deb70e9f82,4af0f1ee-42cb-47bd-99d0-99deb70e9f82,1,0,a2ae0338-ed11-422a-8442-f6c4002ddf0d,a2ae0338-ed11-422a-8442-f6c4002ddf0d,1,0,eb59c9c3-6043-401c-87cc-ba7620139d6a,eb59c9c3-6043-401c-87cc-ba7620139d6a,1,0,2b5ce871-8630-4f2f-9ccb-d9f863886420,2b5ce871-8630-4f2f-9ccb-d9f863886420,1,0,86ae353e-7eed-434c-b4ab-cede36e462bc,86ae353e-7eed-434c-b4ab-cede36e462bc,1,0,18e65717-738b-4d39-9c85-676bca15e6b7,18e65717-738b-4d39-9c85-676bca15e6b7,1,0,01579044-5659-4a73-a989-c52cfabaae66,01579044-5659-4a73-a989-c52cfabaae66,1,0,9b8509e8-8262-4e6a-b2f3-a0df8f49e2c5,9b8509e8-8262-4e6a-b2f3-a0df8f49e2c5,1,0,911baaa1-a4de-4558-b00e-51644144a762,911baaa1-a4de-4558-b00e-51644144a762,1,0,8a8ad123-c01a-440a-bd01-1c0da72cf2eb,8a8ad123-c01a-440a-bd01-1c0da72cf2eb,1,0,ca4ef957-36c2-43b9-8ff7-e2b7ee58cde5,ca4ef957-36c2-43b9-8ff7-e2b7ee58cde5,1,0,4e036eff-92a8-4010-89b2-ed949c123311,4e036eff-92a8-4010-89b2-ed949c123311,1,0,38160114-dc22-4d0b-86a5-d650f4756932,38160114-dc22-4d0b-86a5-d650f4756932,1,0,60aaa289-1f07-438c-8f10-81058ac671c3,60aaa289-1f07-438c-8f10-81058ac671c3,1,0,7312a4ab-a269-4d85-a2c2-25bd5c5dc59c,7312a4ab-a269-4d85-a2c2-25bd5c5dc59c,1,0,c44b0868-bd7f-4230-973b-544ff4dd2afe,c44b0868-bd7f-4230-973b-544ff4dd2afe,1,0,fc2675c2-1c9b-41f9-88eb-5c8be365fe41,fc2675c2-1c9b-41f9-88eb-5c8be365fe41,1,0,51e6a6f9-ce9d-4cb0-a40c-384ede074e07,51e6a6f9-ce9d-4cb0-a40c-384ede074e07,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,d49411b4-5f6d-48c5-b4f8-fdfbd1b73317,d49411b4-5f6d-48c5-b4f8-fdfbd1b73317,1,0,8b3da21b-ea3f-47cf-af48-15b886b21f20,8b3da21b-ea3f-47cf-af48-15b886b21f20,1,0,32c4750b-0096-4bbc-8dcd-c1f717734233,32c4750b-0096-4bbc-8dcd-c1f717734233,1,0,be6740b1-1f57-4c01-a67a-d48152931dc8,be6740b1-1f57-4c01-a67a-d48152931dc8,1,0,40fd038d-a93a-4be7-9221-d8ae83350ca0,40fd038d-a93a-4be7-9221-d8ae83350ca0,1,0,e9fcabef-5067-477b-8cb0-1bf3ab8161c5,e9fcabef-5067-477b-8cb0-1bf3ab8161c5,1,0,29adc9e5-a994-48ab-a5a1-919d01119c3a,29adc9e5-a994-48ab-a5a1-919d01119c3a,1,0,c47ffce7-c905-4e88-8b1f-156f47047ccd,c47ffce7-c905-4e88-8b1f-156f47047ccd,1,0,e1755eed-88cf-42c1-83e4-f9047f2c30bf,e1755eed-88cf-42c1-83e4-f9047f2c30bf,1,0,c6ec9d48-9131-4735-9cf7-b498705a57e4,c6ec9d48-9131-4735-9cf7-b498705a57e4,1,0,865d76f7-db4a-4fa2-8e1c-3ecbc2d8faf4,865d76f7-db4a-4fa2-8e1c-3ecbc2d8faf4,1,0,706c421a-74ce-4985-9443-b4a2032481f6,706c421a-74ce-4985-9443-b4a2032481f6,1,0,64da4c24-4aaf-42c8-8595-7f60ff3bc344,64da4c24-4aaf-42c8-8595-7f60ff3bc344,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,fb9577e1-00d9-4d52-8de9-23914929a683,fb9577e1-00d9-4d52-8de9-23914929a683,1,0,ffd62a16-f2b4-4e3a-8849-15b957a3d1a1,ffd62a16-f2b4-4e3a-8849-15b957a3d1a1,1,0,529253ae-9c92-4426-b150-8444ba622f89,529253ae-9c92-4426-b150-8444ba622f89,1,0,06a1955a-2ef0-4607-9dcb-a480a7951af7,06a1955a-2ef0-4607-9dcb-a480a7951af7,1,0,6f8fcc96-bfed-444a-908d-95c5b1c64972,6f8fcc96-bfed-444a-908d-95c5b1c64972,1,0,97ce4bf2-6580-4f27-8b5d-d60b66a09c9e,97ce4bf2-6580-4f27-8b5d-d60b66a09c9e,1,0,a84c89d9-2cfe-405f-9bb0-5392b3171695,a84c89d9-2cfe-405f-9bb0-5392b3171695,1,0,070ecbfe-88d6-4de8-b236-e7eedbc3ebc6,070ecbfe-88d6-4de8-b236-e7eedbc3ebc6,1,0,91e26e73-027f-4a10-9083-e5182e768723,91e26e73-027f-4a10-9083-e5182e768723,1,0,e55680f4-cb1a-4cdb-88f0-5d82f43c1d05,e55680f4-cb1a-4cdb-88f0-5d82f43c1d05,1,0,54433668-4391-4dea-8baf-43e9aa1d624e,54433668-4391-4dea-8baf-43e9aa1d624e,1,0,fc309616-060a-42c3-8401-dfef0f359bc5,fc309616-060a-42c3-8401-dfef0f359bc5,1,0,b968398d-973d-4643-95a5-16633d7e48bc,b968398d-973d-4643-95a5-16633d7e48bc,1,0,b9507495-2536-4895-b68b-62acd74343f6,b9507495-2536-4895-b68b-62acd74343f6,1,0,e05a14cc-9051-4c38-9725-19856e36d260,e05a14cc-9051-4c38-9725-19856e36d260,1,0,8154aa0f-ecd6-4ab0-9498-56ef25486a55,8154aa0f-ecd6-4ab0-9498-56ef25486a55,1,0,9d6429f7-23da-4596-822a-04818deb3088,9d6429f7-23da-4596-822a-04818deb3088,1,0,a1b67bd2-3220-497d-b2b4-bd0ea62d9111,a1b67bd2-3220-497d-b2b4-bd0ea62d9111,1,0,acb533e7-4610-4f92-b548-1a4ff1a423d4,acb533e7-4610-4f92-b548-1a4ff1a423d4,1,0,8697999d-9cdb-43d8-979b-3f283daffdd3,8697999d-9cdb-43d8-979b-3f283daffdd3,1,0,23378687-249c-4ec6-99b8-b13fb04b8643,23378687-249c-4ec6-99b8-b13fb04b8643,1,0,66315b12-7abf-46e0-a994-894b827b1301,66315b12-7abf-46e0-a994-894b827b1301,1,0,dba174fb-8392-4451-8069-ae8145658e34,dba174fb-8392-4451-8069-ae8145658e34,1,0,ff5dd4f8-8a16-4a41-875d-c4f7c37ae67a,ff5dd4f8-8a16-4a41-875d-c4f7c37ae67a,1,0,4435d99d-a1df-43e6-97ab-5e651017c61d,4435d99d-a1df-43e6-97ab-5e651017c61d,1,0,2398d69d-ecdd-4d34-bdae-34ed5507a61e,2398d69d-ecdd-4d34-bdae-34ed5507a61e,1,0,a707035a-0172-4b55-b589-fa4a8be9b596,a707035a-0172-4b55-b589-fa4a8be9b596,1,0,c4456e94-8c76-49b1-b85a-433e0f65bdb0,c4456e94-8c76-49b1-b85a-433e0f65bdb0,1,0,4a347209-3a07-48ea-b407-6ee37f1d69f2,4a347209-3a07-48ea-b407-6ee37f1d69f2,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,d6aed0fd-686c-430d-b884-74494177422e,d6aed0fd-686c-430d-b884-74494177422e,1,0,245ec4aa-ed65-41f7-b0f0-f8085cfc5bef,245ec4aa-ed65-41f7-b0f0-f8085cfc5bef,1,0,3ed64288-8bf0-4049-8d44-1b424f31d40f,3ed64288-8bf0-4049-8d44-1b424f31d40f,1,0,e0a3fab1-3fe9-4927-840e-f983f72bdfc1,e0a3fab1-3fe9-4927-840e-f983f72bdfc1,1,0,df31eee8-387d-40d1-98df-1f7d8176b50e,df31eee8-387d-40d1-98df-1f7d8176b50e,1,0,c8364283-5525-4bef-8e96-abced54c6a4a,c8364283-5525-4bef-8e96-abced54c6a4a,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,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,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,79ad09ba-875a-46bd-9cd9-9d084bf4f6ea,79ad09ba-875a-46bd-9cd9-9d084bf4f6ea,1,0,2902460a-ed86-41cf-8e8f-895adab9a72f,2902460a-ed86-41cf-8e8f-895adab9a72f,1,0,c4968b4e-0715-43a5-92ad-c8cd276fbf7b,c4968b4e-0715-43a5-92ad-c8cd276fbf7b,1,0,402f2fe0-4d08-4701-9c8f-0c2bb75815ef,402f2fe0-4d08-4701-9c8f-0c2bb75815ef,1,0,1a4ed7cf-3294-4a5c-9650-75b61d6b2531,1a4ed7cf-3294-4a5c-9650-75b61d6b2531,1,0,d6b72e00-018a-4fdc-b6a4-06dcecf89809,d6b72e00-018a-4fdc-b6a4-06dcecf89809,1,0,9f816562-57f0-473f-8c85-14f7521ffd7f,9f816562-57f0-473f-8c85-14f7521ffd7f,1,0,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,98422d20-9a71-40e4-966e-6958d44eaefb,98422d20-9a71-40e4-966e-6958d44eaefb,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,d1b6c5e8-7625-43aa-bb11-943c9bfa01b7,d1b6c5e8-7625-43aa-bb11-943c9bfa01b7,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,66005d30-14fa-4287-8c17-1f163ef0e1cb,1,ff244399-cedd-421d-b526-066a2c199344,"3.1.1.91","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5823,1,0,68dcd69d-e5d3-44c2-9e8e-74c29446652a,68dcd69d-e5d3-44c2-9e8e-74c29446652a,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,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,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,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,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,61cd6eab-6bab-4382-986e-4c7fc44f369b,61cd6eab-6bab-4382-986e-4c7fc44f369b,1,0,757b547b-b79c-459a-a64a-eef19a09a38f,757b547b-b79c-459a-a64a-eef19a09a38f,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,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,9eea8645-1ba7-4faf-9c29-868bf99964dd,9eea8645-1ba7-4faf-9c29-868bf99964dd,1,0,e07ac651-07b9-4664-95e8-f3f5a51ea6c8,e07ac651-07b9-4664-95e8-f3f5a51ea6c8,1,0,0c44fdea-7b81-45be-87f5-d64456a9d379,0c44fdea-7b81-45be-87f5-d64456a9d379,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,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,04ab13b1-ffc2-47f5-aa0d-5850dcbd4a62,04ab13b1-ffc2-47f5-aa0d-5850dcbd4a62,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,283ce432-3553-4de9-94a2-ca9a590437f5,283ce432-3553-4de9-94a2-ca9a590437f5,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,654523be-93d9-4faa-9a35-ce2fede13820,654523be-93d9-4faa-9a35-ce2fede13820,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,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,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,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,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,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,a3131bf3-88b1-431c-a01c-be6e26396f91,a3131bf3-88b1-431c-a01c-be6e26396f91,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,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,2522fce4-d121-482b-a39d-0c1a842d315e,2522fce4-d121-482b-a39d-0c1a842d315e,1,0,4807629d-8421-4bd9-beb4-5b2940197958,4807629d-8421-4bd9-beb4-5b2940197958,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,a3a9a48b-f241-45b2-b93b-d34bba0a8a66,a3a9a48b-f241-45b2-b93b-d34bba0a8a66,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,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,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,4eb24fcd-85f6-4fa6-bc9f-baef3861664e,4eb24fcd-85f6-4fa6-bc9f-baef3861664e,1,0,da551cf6-4f86-4e37-8967-a84c80e1fb13,da551cf6-4f86-4e37-8967-a84c80e1fb13,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,60cd8bc4-6a5d-4d36-83d0-76a8477eda6a,60cd8bc4-6a5d-4d36-83d0-76a8477eda6a,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,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,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,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,933cbafc-5667-4a91-8b1d-dca3d7662522,933cbafc-5667-4a91-8b1d-dca3d7662522,1,0,59acaca9-ed29-4927-bee6-287c91934690,59acaca9-ed29-4927-bee6-287c91934690,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,77de81f0-97c5-4751-9f38-f5785c7c45e0,77de81f0-97c5-4751-9f38-f5785c7c45e0,1,0,31ba33d4-5941-4b11-ae99-b15188bfef76,31ba33d4-5941-4b11-ae99-b15188bfef76,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,38ac9a13-665a-4201-b5cc-687fe4a01130,38ac9a13-665a-4201-b5cc-687fe4a01130,1,0,97c59096-b2dc-45d0-a580-b3018a04f9af,97c59096-b2dc-45d0-a580-b3018a04f9af,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,077af11c-fd3c-4e87-b169-5f3137464f77,077af11c-fd3c-4e87-b169-5f3137464f77,1,0,8172256e-f51e-4de0-bd07-3668785f4cb9,8172256e-f51e-4de0-bd07-3668785f4cb9,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,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,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,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,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,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,364cbfe2-bc44-4387-aa7e-6b4aa086c9e9,364cbfe2-bc44-4387-aa7e-6b4aa086c9e9,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,f5bb88eb-c239-4ae3-a297-dfbbd679e008,f5bb88eb-c239-4ae3-a297-dfbbd679e008,1,0,bb350b39-1f4d-460a-98c9-8d2308cf22f0,bb350b39-1f4d-460a-98c9-8d2308cf22f0,1,0,f259b6b4-d582-429f-a16f-027a6bcb7438,f259b6b4-d582-429f-a16f-027a6bcb7438,1,0,9f32e85c-2ed6-41db-b0ec-6d8596940e80,9f32e85c-2ed6-41db-b0ec-6d8596940e80,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,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,0f8e87d4-ffb7-4cff-a2d3-6d5c5219ff0b,0f8e87d4-ffb7-4cff-a2d3-6d5c5219ff0b,1,0,1511c2e3-aeb4-422a-b6ae-03412b714c93,1511c2e3-aeb4-422a-b6ae-03412b714c93,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,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,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,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,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,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,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,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,41f87891-ddd5-4e0f-a4f2-8039fb71981b,41f87891-ddd5-4e0f-a4f2-8039fb71981b,1,0,29f2094a-d0d1-425c-8161-45a9ba186e19,29f2094a-d0d1-425c-8161-45a9ba186e19,1,0,a57f6dc1-59d7-4311-8acd-65ce57a9f386,a57f6dc1-59d7-4311-8acd-65ce57a9f386,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,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,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,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,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,4093fe34-7557-4f15-831b-d654b94b8010,4093fe34-7557-4f15-831b-d654b94b8010,1,0,ee10023f-5c63-4cb3-8e6c-db566c788c9d,ee10023f-5c63-4cb3-8e6c-db566c788c9d,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,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,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,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,c971e0ba-53b8-4454-92f7-40b0d639058a,c971e0ba-53b8-4454-92f7-40b0d639058a,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,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,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,84395058-d46a-428c-b782-a9fa89fea14a,84395058-d46a-428c-b782-a9fa89fea14a,1,0,4766c40e-6330-4c1d-a64f-0c8c672886a4,4766c40e-6330-4c1d-a64f-0c8c672886a4,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,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,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,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,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,35bc58df-8aff-48dd-83a9-b60b0461f94d,35bc58df-8aff-48dd-83a9-b60b0461f94d,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,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,cef55e64-d4ad-42dc-aa5a-ea65a3af7cfa,cef55e64-d4ad-42dc-aa5a-ea65a3af7cfa,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,364218e0-87ba-4008-a3e3-e2351a5e04b8,364218e0-87ba-4008-a3e3-e2351a5e04b8,1,0,788a98e0-194f-466c-b4fa-bafd527aae26,788a98e0-194f-466c-b4fa-bafd527aae26,1,0,5d990585-02dd-4a13-8dfa-920df7d1dbb0,5d990585-02dd-4a13-8dfa-920df7d1dbb0,1,0,143f6db9-a4dc-4039-90d0-6161394a3e2f,143f6db9-a4dc-4039-90d0-6161394a3e2f,1,0,07820e9e-9d6b-4c37-909e-90dbd33e30c0,07820e9e-9d6b-4c37-909e-90dbd33e30c0,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,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,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,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,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,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,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,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,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,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,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,f38bb317-8a59-4786-be76-e1d4e534628d,f38bb317-8a59-4786-be76-e1d4e534628d,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,cf896f41-7cea-4083-a9f8-96ad881ce641,cf896f41-7cea-4083-a9f8-96ad881ce641,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,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,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,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,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,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,9ade0577-a8de-48f3-aca3-d62557d60b15,9ade0577-a8de-48f3-aca3-d62557d60b15,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,63478206-a155-48f5-822f-9b592b561bac,63478206-a155-48f5-822f-9b592b561bac,1,0,7ab8d806-17b2-41d8-9abb-c302302b3465,7ab8d806-17b2-41d8-9abb-c302302b3465,1,0,e3822657-3052-4e11-9bcf-fdb8c1b26a9c,e3822657-3052-4e11-9bcf-fdb8c1b26a9c,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,ff8eedeb-fc3e-4bee-852b-6da6d59ff38c,ff8eedeb-fc3e-4bee-852b-6da6d59ff38c,1,0,a98bd18f-ccda-41a2-a1b2-8b37cc1f6c36,a98bd18f-ccda-41a2-a1b2-8b37cc1f6c36,1,0,62f9fe19-3d64-4506-a0bc-dbfe47b4df64,62f9fe19-3d64-4506-a0bc-dbfe47b4df64,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,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,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,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,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,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,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,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,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,0b8c7a82-9865-4c5e-9bf1-ba6a7ef3a5d1,0b8c7a82-9865-4c5e-9bf1-ba6a7ef3a5d1,1,0,ea9fd5dd-b1de-41f8-87c2-ad3e8ee6b9bf,ea9fd5dd-b1de-41f8-87c2-ad3e8ee6b9bf,1,0,1bc24f0c-7299-4d7d-994c-0e89056f1178,1bc24f0c-7299-4d7d-994c-0e89056f1178,1,0,af958a75-241e-443a-8c1d-0c9240cca3a3,af958a75-241e-443a-8c1d-0c9240cca3a3,1,0,d65cce37-81a6-4f75-84e1-7e5b6340aa13,d65cce37-81a6-4f75-84e1-7e5b6340aa13,1,0,b60ddb04-f87c-4e16-aad0-f06d80dfbe14,b60ddb04-f87c-4e16-aad0-f06d80dfbe14,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,fae4675c-dcdc-42fc-911d-07c3c577b8b8,fae4675c-dcdc-42fc-911d-07c3c577b8b8,1,0,f1050611-4f82-411b-97f2-bcd8a5c914bf,f1050611-4f82-411b-97f2-bcd8a5c914bf,1,0,efacf22d-b474-4d49-af8b-6d3784aa5cf2,efacf22d-b474-4d49-af8b-6d3784aa5cf2,1,0,f818b937-9ac3-4a0c-ba50-26c060984f09,f818b937-9ac3-4a0c-ba50-26c060984f09,1,0,f385778d-96cb-4e09-884d-533739b393b1,f385778d-96cb-4e09-884d-533739b393b1,1,0,5bdaa783-e965-4d59-b7b7-a1e86ddb89f7,5bdaa783-e965-4d59-b7b7-a1e86ddb89f7,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,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,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,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,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,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,79ad09ba-875a-46bd-9cd9-9d084bf4f6ea,79ad09ba-875a-46bd-9cd9-9d084bf4f6ea,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,d6b72e00-018a-4fdc-b6a4-06dcecf89809,d6b72e00-018a-4fdc-b6a4-06dcecf89809,1,0,9f816562-57f0-473f-8c85-14f7521ffd7f,9f816562-57f0-473f-8c85-14f7521ffd7f,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,98422d20-9a71-40e4-966e-6958d44eaefb,98422d20-9a71-40e4-966e-6958d44eaefb,1,0,37333d0b-3589-4b8b-bf6c-e605e0287b66,37333d0b-3589-4b8b-bf6c-e605e0287b66,1,0,1813c469-da20-46a6-8947-6815b66f64c1,1813c469-da20-46a6-8947-6815b66f64c1,1,0,64e702e9-8934-4356-a1b2-be0e8b390630,64e702e9-8934-4356-a1b2-be0e8b390630,1,0,74880ac4-bdd3-48e6-82a0-a2103da42723,74880ac4-bdd3-48e6-82a0-a2103da42723,1,0,ad083c26-7461-4e94-b524-0174242fbd91,ad083c26-7461-4e94-b524-0174242fbd91,1,0,5ce39370-f918-493f-bb24-53346b6fd836,5ce39370-f918-493f-bb24-53346b6fd836,1,0,84f22fd2-e0d0-42ce-8628-1b13c021a4cb,84f22fd2-e0d0-42ce-8628-1b13c021a4cb,1,0,0e3d2750-bb4c-42b9-9829-60f1480ced9c,0e3d2750-bb4c-42b9-9829-60f1480ced9c,1,0,ddc6761c-a32a-41e1-b110-fdc39ad440d3,ddc6761c-a32a-41e1-b110-fdc39ad440d3,1,0,0b322ee2-b018-4d00-8f05-62ee16e519ff,0b322ee2-b018-4d00-8f05-62ee16e519ff,1,0,0866e282-055a-49bb-9aa5-b1af7c74c344,0866e282-055a-49bb-9aa5-b1af7c74c344,1,0,dad11c2e-08fc-4a6b-8829-8be6c64c15fc,dad11c2e-08fc-4a6b-8829-8be6c64c15fc,1,0,a76b1fd1-ba00-40e6-8756-f17fee449818,a76b1fd1-ba00-40e6-8756-f17fee449818,1,0,5c913626-48d1-4e0a-a423-64078ce59c7b,5c913626-48d1-4e0a-a423-64078ce59c7b,1,0,0a4e6b7a-b380-4547-bc3c-5d6895a5d19a,0a4e6b7a-b380-4547-bc3c-5d6895a5d19a,1,0,7b0ec304-1904-413e-a9c6-ff62e87107dd,7b0ec304-1904-413e-a9c6-ff62e87107dd,1,0,d4dd8c96-914d-496f-b735-ef85ec473605,d4dd8c96-914d-496f-b735-ef85ec473605,1,0,62517db4-59e6-4945-bcd6-b3f1845572bf,62517db4-59e6-4945-bcd6-b3f1845572bf,1,0,a6a9dd40-24cd-4d40-a12d-44f94f8c05a7,a6a9dd40-24cd-4d40-a12d-44f94f8c05a7,1,0,f0f72149-0e7f-441a-b70d-8f47d4977927,f0f72149-0e7f-441a-b70d-8f47d4977927,1,0,776efc3e-ac27-4550-bafd-6e91aa987af2,776efc3e-ac27-4550-bafd-6e91aa987af2,1,0,9f478c85-b72c-40ae-aa08-7ddf73b5b15c,9f478c85-b72c-40ae-aa08-7ddf73b5b15c,1,0,cc438366-85ea-48be-8b74-d05cddb1fc51,cc438366-85ea-48be-8b74-d05cddb1fc51,1,0,4688fd3b-4a92-4ed8-b111-0cf22a729b1c,4688fd3b-4a92-4ed8-b111-0cf22a729b1c,1,0,92029d1f-0472-4aaa-8fd6-9fb3c3cf414e,92029d1f-0472-4aaa-8fd6-9fb3c3cf414e,1,0,3271b800-1825-422f-97bb-757baf403e90,3271b800-1825-422f-97bb-757baf403e90,1,0,6fd6efc1-facc-4ece-a5b3-3dce6acca81d,6fd6efc1-facc-4ece-a5b3-3dce6acca81d,1,0,4ee82868-7a20-4c3a-91f9-42a6bf53ac37,4ee82868-7a20-4c3a-91f9-42a6bf53ac37,1,0,a040c756-4687-4bfd-a690-b122d3c490e5,a040c756-4687-4bfd-a690-b122d3c490e5,1,0,bd5940d5-13fd-4f59-bb6c-614f93f9c8e4,bd5940d5-13fd-4f59-bb6c-614f93f9c8e4,1,0,961a9801-3956-4ea0-b0d3-908f09bf4929,961a9801-3956-4ea0-b0d3-908f09bf4929,1,0,6fac5c14-e126-4342-9078-edf1d0efcbf2,6fac5c14-e126-4342-9078-edf1d0efcbf2,1,0,0a3325a1-21c4-4997-882f-4ac2edc175f0,0a3325a1-21c4-4997-882f-4ac2edc175f0,1,0,71102d3f-f020-4d6f-9582-9a7eefb4e797,71102d3f-f020-4d6f-9582-9a7eefb4e797,1,0,53ef6849-a3f3-4171-9167-f349f2d6a736,53ef6849-a3f3-4171-9167-f349f2d6a736,1,0,3f588bd3-d461-42b7-8ab1-386af6399d56,3f588bd3-d461-42b7-8ab1-386af6399d56,1,0,c04ff85e-b4af-4a9f-b0e9-c5c65e3d10a1,c04ff85e-b4af-4a9f-b0e9-c5c65e3d10a1,1,0,8c576405-29c1-46b1-ab2e-40e52c21cab0,8c576405-29c1-46b1-ab2e-40e52c21cab0,1,0,b33a89da-8589-4902-83fa-6545e5fce23e,b33a89da-8589-4902-83fa-6545e5fce23e,1,0,f0620d5a-e1fe-419f-af37-e0f462f97e8d,f0620d5a-e1fe-419f-af37-e0f462f97e8d,1,0,3e2f2ae1-c809-43fc-8276-b0a16a92858c,3e2f2ae1-c809-43fc-8276-b0a16a92858c,1,0,b58942ca-1367-4e1d-b5b4-7d973d0fecd8,b58942ca-1367-4e1d-b5b4-7d973d0fecd8,1,0,1a7c7427-bead-4655-9dd6-df6e722663c5,1a7c7427-bead-4655-9dd6-df6e722663c5,1,0,3ad08f4a-6202-4099-b6cc-bc116e6731a0,3ad08f4a-6202-4099-b6cc-bc116e6731a0,1,0,fd96c8ab-602a-4735-b168-52b501e80351,fd96c8ab-602a-4735-b168-52b501e80351,1,0,b1dc619d-8d91-4f7a-aa50-1d07ff9aebdc,b1dc619d-8d91-4f7a-aa50-1d07ff9aebdc,1,0,370f0c75-d2c5-4be5-a633-4bcc77998ece,370f0c75-d2c5-4be5-a633-4bcc77998ece,1,0,f80b505f-b4ff-45fb-bd88-74b274ae9d2b,f80b505f-b4ff-45fb-bd88-74b274ae9d2b,1,0,2139532c-f6cb-4393-936e-cc912e5adca9,2139532c-f6cb-4393-936e-cc912e5adca9,1,0,755c3eca-4956-4a44-9b38-c11dae00b87f,755c3eca-4956-4a44-9b38-c11dae00b87f,1,0,f57c558c-2c94-4b9d-8697-448d0548ab1a,f57c558c-2c94-4b9d-8697-448d0548ab1a,1,0,a310c09f-4d3a-4d3a-9ad5-7a5735a33a1d,a310c09f-4d3a-4d3a-9ad5-7a5735a33a1d,1,0,c32db021-eca1-4b67-aa85-3d6e28c51b53,c32db021-eca1-4b67-aa85-3d6e28c51b53,1,0,e9ed0ee4-3fbe-4093-9078-cb265ed6842c,e9ed0ee4-3fbe-4093-9078-cb265ed6842c,1,0,02466dcf-02a1-4853-814f-a913a9baba45,02466dcf-02a1-4853-814f-a913a9baba45,1,0,c4a40dc9-b619-4219-9d9a-e11f49a14fb1,c4a40dc9-b619-4219-9d9a-e11f49a14fb1,1,0,62b75eb2-42e1-4484-a77f-b676dd36f3d4,62b75eb2-42e1-4484-a77f-b676dd36f3d4,1,0,5e28e22a-dd6e-4703-92bd-13f5cb0dc023,5e28e22a-dd6e-4703-92bd-13f5cb0dc023,1,0,856510ee-74f5-44e9-a3c0-1c60cfb7a787,856510ee-74f5-44e9-a3c0-1c60cfb7a787,1,0,28b761c6-c286-4125-a4ed-da602e49950f,28b761c6-c286-4125-a4ed-da602e49950f,1,0,4ac66a22-c736-4e06-a8aa-ef4a71788c65,4ac66a22-c736-4e06-a8aa-ef4a71788c65,1,0,9cfe9281-8840-4077-824d-a2c9cbb0b730,9cfe9281-8840-4077-824d-a2c9cbb0b730,1,0,76389fa9-b9e0-492e-9c93-24b5f3bf094c,76389fa9-b9e0-492e-9c93-24b5f3bf094c,1,0,23e3de37-9315-45e6-bbfd-60aae28c25ae,23e3de37-9315-45e6-bbfd-60aae28c25ae,1,0,a9957f43-8b6f-4d98-a2d8-77b78047494c,a9957f43-8b6f-4d98-a2d8-77b78047494c,1,0,e470e15d-1b06-43cb-a9f9-ba489e2f596f,e470e15d-1b06-43cb-a9f9-ba489e2f596f,1,0,0408002c-9255-43a2-8022-82f02ee0e8f4,0408002c-9255-43a2-8022-82f02ee0e8f4,1,0,88f44c9b-216d-4d7e-bc88-1e6b253ed01e,88f44c9b-216d-4d7e-bc88-1e6b253ed01e,1,0,1851afd4-5324-45c1-b754-54e65943f945,1851afd4-5324-45c1-b754-54e65943f945,1,0,bc5eca9b-32d8-44e0-a127-8ad1f47d7957,bc5eca9b-32d8-44e0-a127-8ad1f47d7957,1,0,6e5307ea-8fbf-4177-bcc8-f163a6ce1b40,6e5307ea-8fbf-4177-bcc8-f163a6ce1b40,1,0,0fa77ef7-a836-4459-9bca-6010d0bdfc7f,0fa77ef7-a836-4459-9bca-6010d0bdfc7f,1,0,c322dc4a-30f3-4d23-9824-4a01c496408d,c322dc4a-30f3-4d23-9824-4a01c496408d,1,0,dcff004c-1b61-4a19-b977-ea21bf688614,dcff004c-1b61-4a19-b977-ea21bf688614,0,0,0,1,0,0,0,1,0,1,0,1,1,1,1} \ No newline at end of file diff --git a/SSL/src/Configuration/SessionModule.bsl b/SSL/src/Configuration/SessionModule.bsl index 083e066cd..a1e3acf71 100644 --- a/SSL/src/Configuration/SessionModule.bsl +++ b/SSL/src/Configuration/SessionModule.bsl @@ -16,8 +16,6 @@ СтандартныеПодсистемыСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса); // Конец СтандартныеПодсистемы - - КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Constants/АдресДляВосстановленияПароляУчетнойЗаписи/АдресДляВосстановленияПароляУчетнойЗаписи.mdo b/SSL/src/Constants/АдресДляВосстановленияПароляУчетнойЗаписи/АдресДляВосстановленияПароляУчетнойЗаписи.mdo new file mode 100644 index 000000000..c1c26276d --- /dev/null +++ b/SSL/src/Constants/АдресДляВосстановленияПароляУчетнойЗаписи/АдресДляВосстановленияПароляУчетнойЗаписи.mdo @@ -0,0 +1,21 @@ + + + + + + + + АдресДляВосстановленияПароляУчетнойЗаписи + + ru + Адрес для восстановления пароля учетной записи + + + String + + + true + + + Managed + diff --git a/SSL/src/Constants/БлокировкаОтправкиБыстрыхСообщений/БлокировкаОтправкиБыстрыхСообщений.mdo b/SSL/src/Constants/БлокировкаОтправкиБыстрыхСообщений/БлокировкаОтправкиБыстрыхСообщений.mdo deleted file mode 100644 index 8e8435bf0..000000000 --- a/SSL/src/Constants/БлокировкаОтправкиБыстрыхСообщений/БлокировкаОтправкиБыстрыхСообщений.mdo +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - БлокировкаОтправкиБыстрыхСообщений - - ru - Блокировка отправки быстрых сообщений - - - Date - - - - - Managed - diff --git a/SSL/src/Constants/ВыполнитьРезервноеКопированиеОбластиДанных/ВыполнитьРезервноеКопированиеОбластиДанных.mdo b/SSL/src/Constants/ВыполнитьРезервноеКопированиеОбластиДанных/ВыполнитьРезервноеКопированиеОбластиДанных.mdo deleted file mode 100644 index dcc1bf9ac..000000000 --- a/SSL/src/Constants/ВыполнитьРезервноеКопированиеОбластиДанных/ВыполнитьРезервноеКопированиеОбластиДанных.mdo +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - ВыполнитьРезервноеКопированиеОбластиДанных - - ru - Выполнить резервное копирование области данных - - - Boolean - - true - - - Managed - diff --git a/SSL/src/Constants/ДатаПоследнегоСтартаКлиентскогоСеанса/ДатаПоследнегоСтартаКлиентскогоСеанса.mdo b/SSL/src/Constants/ДатаПоследнегоСтартаКлиентскогоСеанса/ДатаПоследнегоСтартаКлиентскогоСеанса.mdo deleted file mode 100644 index 395fe7367..000000000 --- a/SSL/src/Constants/ДатаПоследнегоСтартаКлиентскогоСеанса/ДатаПоследнегоСтартаКлиентскогоСеанса.mdo +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - ДатаПоследнегоСтартаКлиентскогоСеанса - - ru - Дата последнего старта клиентского сеанса - - - Date - - - - ru - Универсальная дата последнего запуска клиентского сеанса - - - - Managed - diff --git a/SSL/src/Constants/ЗарегистрированыИзмененияДанных/ЗарегистрированыИзмененияДанных.mdo b/SSL/src/Constants/ЗарегистрированыИзмененияДанных/ЗарегистрированыИзмененияДанных.mdo new file mode 100644 index 000000000..6e476018c --- /dev/null +++ b/SSL/src/Constants/ЗарегистрированыИзмененияДанных/ЗарегистрированыИзмененияДанных.mdo @@ -0,0 +1,20 @@ + + + + + + + + ЗарегистрированыИзмененияДанных + + ru + Зарегистрированы изменения данных + + Кумулятивный признак изменения данных для обмена в модели сервиса + + Boolean + + + + Managed + diff --git a/SSL/src/Catalogs/ПоставляемыеДанные/ObjectModule.bsl b/SSL/src/Constants/ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса/ValueManagerModule.bsl similarity index 72% rename from SSL/src/Catalogs/ПоставляемыеДанные/ObjectModule.bsl rename to SSL/src/Constants/ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса/ValueManagerModule.bsl index d8b348a94..1cddcba66 100644 --- a/SSL/src/Catalogs/ПоставляемыеДанные/ObjectModule.bsl +++ b/SSL/src/Constants/ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса/ValueManagerModule.bsl @@ -10,19 +10,14 @@ #Область ОбработчикиСобытий -Процедура ПередЗаписью(Отказ) - Перем Характеристика; +Процедура ПриЗаписи(Отказ) Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; - Описание = ВидДанных; - Для каждого Характеристика Из ХарактеристикиДанных Цикл - Описание = Описание - + ", " + Характеристика.Характеристика + ": " + Характеристика.Значение; - КонецЦикла; - + ДополнительныеОтчетыИОбработкиВМоделиСервиса.СинхронизацияЗначенийРегулирующихКонстант(Метаданные.Имя, Значение); + КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Constants/ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса/ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса.mdo b/SSL/src/Constants/ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса/ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса.mdo new file mode 100644 index 000000000..dd3e89ca3 --- /dev/null +++ b/SSL/src/Constants/ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса/ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса.mdo @@ -0,0 +1,20 @@ + + + + + + + + ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса + + ru + Использование каталога дополнительных отчетов и обработок в модели сервиса + + + Boolean + + true + + + Managed + diff --git a/SSL/src/Constants/ИспользоватьАвтономнуюРаботуВМоделиСервиса/ИспользоватьАвтономнуюРаботуВМоделиСервиса.mdo b/SSL/src/Constants/ИспользоватьАвтономнуюРаботуВМоделиСервиса/ИспользоватьАвтономнуюРаботуВМоделиСервиса.mdo new file mode 100644 index 000000000..7fa954bee --- /dev/null +++ b/SSL/src/Constants/ИспользоватьАвтономнуюРаботуВМоделиСервиса/ИспользоватьАвтономнуюРаботуВМоделиСервиса.mdo @@ -0,0 +1,19 @@ + + + + + + + + ИспользоватьАвтономнуюРаботуВМоделиСервиса + + ru + Использовать автономную работу в модели сервиса + + + Boolean + + + + Managed + diff --git a/SSL/src/Constants/ИспользоватьАльтернативныйСерверДляЗагрузкиКлассификатораБанков/ИспользоватьАльтернативныйСерверДляЗагрузкиКлассификатораБанков.mdo b/SSL/src/Constants/ИспользоватьАльтернативныйСерверДляЗагрузкиКлассификатораБанков/ИспользоватьАльтернативныйСерверДляЗагрузкиКлассификатораБанков.mdo deleted file mode 100644 index feb08507b..000000000 --- a/SSL/src/Constants/ИспользоватьАльтернативныйСерверДляЗагрузкиКлассификатораБанков/ИспользоватьАльтернативныйСерверДляЗагрузкиКлассификатораБанков.mdo +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - ИспользоватьАльтернативныйСерверДляЗагрузкиКлассификатораБанков - - ru - Использовать альтернативный сервер для загрузки классификатора банков - - - Boolean - - true - - - Managed - diff --git a/SSL/src/Constants/ИспользоватьВнешнихПользователей/ValueManagerModule.bsl b/SSL/src/Constants/ИспользоватьВнешнихПользователей/ValueManagerModule.bsl index 1f3dcdb33..307307a2b 100644 --- a/SSL/src/Constants/ИспользоватьВнешнихПользователей/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьВнешнихПользователей/ValueManagerModule.bsl @@ -70,7 +70,7 @@ #Область СлужебныеПроцедурыИФункции // У всех пользователей ИБ очищает реквизит ПризнакПоказыватьВСписке. -Процедура ОчиститьРеквизитПоказыватьВСпискеВыбораУВсехПользователейИБ() Экспорт +Процедура ОчиститьРеквизитПоказыватьВСпискеВыбораУВсехПользователейИБ() ПользователиИБ = ПользователиИнформационнойБазы.ПолучитьПользователей(); Для Каждого ПользовательИБ Из ПользователиИБ Цикл diff --git a/SSL/src/Constants/ИспользоватьПрофилиБезопасностиДляДОиО/ИспользоватьПрофилиБезопасностиДляДОиО.mdo b/SSL/src/Constants/ИспользоватьПрофилиБезопасностиДляДОиО/ИспользоватьПрофилиБезопасностиДляДОиО.mdo new file mode 100644 index 000000000..deab0029c --- /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 f95b4c71c..e588e3350 100644 --- a/SSL/src/Constants/ИспользоватьСинхронизациюДанных/ValueManagerModule.bsl +++ b/SSL/src/Constants/ИспользоватьСинхронизациюДанных/ValueManagerModule.bsl @@ -16,12 +16,18 @@ РазделениеВключено = ОбщегоНазначения.РазделениеВключено(); Константы.ИспользоватьСинхронизациюДанныхВЛокальномРежиме.Установить(Не РазделениеВключено); - Константы.ИспользоватьСинхронизациюДанныхВМоделиСервиса.Установить(РазделениеВключено); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МенеджерКонстанты = Константы["ИспользоватьСинхронизациюДанныхВМоделиСервиса"]; + МенеджерКонстанты.Установить(РазделениеВключено); + КонецЕсли; Иначе Константы.ИспользоватьСинхронизациюДанныхВЛокальномРежиме.Установить(Ложь); - Константы.ИспользоватьСинхронизациюДанныхВМоделиСервиса.Установить(Ложь); + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + МенеджерКонстанты = Константы["ИспользоватьСинхронизациюДанныхВМоделиСервиса"]; + МенеджерКонстанты.Установить(Ложь); + КонецЕсли; КонецЕсли; @@ -30,7 +36,7 @@ КонецЕсли; Если Не Значение - И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда + И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса"); МодульОбменДаннымиВМоделиСервиса.ПриОтключенииСинхронизацииДанных(Отказ); diff --git a/SSL/src/Constants/ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой/ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой.mdo b/SSL/src/Constants/ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой/ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой.mdo new file mode 100644 index 000000000..6f366fcb7 --- /dev/null +++ b/SSL/src/Constants/ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой/ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой.mdo @@ -0,0 +1,19 @@ + + + + + + + + ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой + + ru + Использовать синхронизацию данных в модели сервиса с локальной программой + + + Boolean + + + + Managed + diff --git a/SSL/src/Constants/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете.mdo b/SSL/src/Constants/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете.mdo new file mode 100644 index 000000000..21787981a --- /dev/null +++ b/SSL/src/Constants/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете.mdo @@ -0,0 +1,19 @@ + + + + + + + + ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете + + ru + Использовать синхронизацию данных в модели сервиса с приложением в Интернете + + + Boolean + + + + Managed + diff --git a/SSL/src/Constants/КаталогОбменаФайламиВМоделиСервиса/КаталогОбменаФайламиВМоделиСервиса.mdo b/SSL/src/Constants/КаталогОбменаФайламиВМоделиСервиса/КаталогОбменаФайламиВМоделиСервиса.mdo deleted file mode 100644 index 47471eacf..000000000 --- a/SSL/src/Constants/КаталогОбменаФайламиВМоделиСервиса/КаталогОбменаФайламиВМоделиСервиса.mdo +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - КаталогОбменаФайламиВМоделиСервиса - - ru - Каталог обмена файлами в модели сервиса - - - String - - - - - Managed - diff --git a/SSL/src/Constants/КаталогОбменаФайламиВМоделиСервисаLinux/ValueManagerModule.bsl b/SSL/src/Constants/КаталогОбменаФайламиВМоделиСервисаLinux/ValueManagerModule.bsl deleted file mode 100644 index e69de29bb..000000000 diff --git a/SSL/src/Constants/КаталогОбменаФайламиВМоделиСервисаLinux/КаталогОбменаФайламиВМоделиСервисаLinux.mdo b/SSL/src/Constants/КаталогОбменаФайламиВМоделиСервисаLinux/КаталогОбменаФайламиВМоделиСервисаLinux.mdo deleted file mode 100644 index eff8795ba..000000000 --- a/SSL/src/Constants/КаталогОбменаФайламиВМоделиСервисаLinux/КаталогОбменаФайламиВМоделиСервисаLinux.mdo +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - КаталогОбменаФайламиВМоделиСервисаLinux - - ru - Каталог обмена файлами в модели сервиса Linux - - - String - - - - - Managed - diff --git a/SSL/src/Constants/КлючОбластиДанных/КлючОбластиДанных.mdo b/SSL/src/Constants/КлючОбластиДанных/КлючОбластиДанных.mdo deleted file mode 100644 index 971210b8d..000000000 --- a/SSL/src/Constants/КлючОбластиДанных/КлючОбластиДанных.mdo +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - КлючОбластиДанных - - ru - Ключ области данных - - - String - - 100 - - - - - Managed - diff --git a/SSL/src/Constants/КопироватьОбластиДанныхИзЭталонной/КопироватьОбластиДанныхИзЭталонной.mdo b/SSL/src/Constants/КопироватьОбластиДанныхИзЭталонной/КопироватьОбластиДанныхИзЭталонной.mdo deleted file mode 100644 index 80fdb1d79..000000000 --- a/SSL/src/Constants/КопироватьОбластиДанныхИзЭталонной/КопироватьОбластиДанныхИзЭталонной.mdo +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - КопироватьОбластиДанныхИзЭталонной - - ru - Копировать области данных из эталонной - - - Boolean - - - - Managed - diff --git a/SSL/src/Constants/МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания/МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания.mdo b/SSL/src/Constants/МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания/МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания.mdo deleted file mode 100644 index 254a922d3..000000000 --- a/SSL/src/Constants/МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания/МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания.mdo +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания - - ru - Максимальная длительность выполнения исполняющего фонового задания - - - Number - - 4 - true - - - - - Managed - diff --git a/SSL/src/Constants/МаксимальноеКоличествоИсполняющихФоновыхЗаданий/МаксимальноеКоличествоИсполняющихФоновыхЗаданий.mdo b/SSL/src/Constants/МаксимальноеКоличествоИсполняющихФоновыхЗаданий/МаксимальноеКоличествоИсполняющихФоновыхЗаданий.mdo deleted file mode 100644 index df0407a3f..000000000 --- a/SSL/src/Constants/МаксимальноеКоличествоИсполняющихФоновыхЗаданий/МаксимальноеКоличествоИсполняющихФоновыхЗаданий.mdo +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - МаксимальноеКоличествоИсполняющихФоновыхЗаданий - - ru - Максимальное количество исполняющих фоновых заданий - - - Number - - 4 - true - - - - - Managed - diff --git a/SSL/src/Constants/МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса/МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса.mdo b/SSL/src/Constants/МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса/МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса.mdo new file mode 100644 index 000000000..4323d4181 --- /dev/null +++ b/SSL/src/Constants/МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса/МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса.mdo @@ -0,0 +1,24 @@ + + + + + + + + МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса + + ru + Минимальный интервал регламентных заданий дополнительных отчетов и обработок в модели сервиса + + + Number + + 10 + true + + + true + + + Managed + diff --git a/SSL/src/ChartsOfCharacteristicTypes/УдалитьВидыДоступа/ObjectModule.bsl b/SSL/src/Constants/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса/ValueManagerModule.bsl similarity index 67% rename from SSL/src/ChartsOfCharacteristicTypes/УдалитьВидыДоступа/ObjectModule.bsl rename to SSL/src/Constants/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса/ValueManagerModule.bsl index 5a4954ab3..1cddcba66 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/УдалитьВидыДоступа/ObjectModule.bsl +++ b/SSL/src/Constants/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса/ValueManagerModule.bsl @@ -10,20 +10,13 @@ #Область ОбработчикиСобытий -// Обработчик события ПередЗаписью предотвращает изменение видов доступа, -// которые должны изменятся только в режиме конфигурирования. -// -Процедура ПередЗаписью(Отказ) +Процедура ПриЗаписи(Отказ) Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; - ВызватьИсключение - НСтр("ru = 'Изменение видов доступа - |выполняется только через конфигуратор. - | - |Удаление допустимо.'"); + ДополнительныеОтчетыИОбработкиВМоделиСервиса.СинхронизацияЗначенийРегулирующихКонстант(Метаданные.Имя, Значение); КонецПроцедуры diff --git a/SSL/src/Constants/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса.mdo b/SSL/src/Constants/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса.mdo new file mode 100644 index 000000000..7ff396f87 --- /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 deleted file mode 100644 index e69de29bb..000000000 diff --git a/SSL/src/Constants/ПоддержкаРезервногоКопирования/ПоддержкаРезервногоКопирования.mdo b/SSL/src/Constants/ПоддержкаРезервногоКопирования/ПоддержкаРезервногоКопирования.mdo deleted file mode 100644 index b6756098b..000000000 --- a/SSL/src/Constants/ПоддержкаРезервногоКопирования/ПоддержкаРезервногоКопирования.mdo +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - ПоддержкаРезервногоКопирования - - ru - Поддержка резервного копирования - - - Boolean - - - - Managed - diff --git a/SSL/src/Constants/ПользовательСтандартногоИнтерфейсаOData/ПользовательСтандартногоИнтерфейсаOData.mdo b/SSL/src/Constants/ПользовательСтандартногоИнтерфейсаOData/ПользовательСтандартногоИнтерфейсаOData.mdo new file mode 100644 index 000000000..358b1d2f6 --- /dev/null +++ b/SSL/src/Constants/ПользовательСтандартногоИнтерфейсаOData/ПользовательСтандартногоИнтерфейсаOData.mdo @@ -0,0 +1,19 @@ + + + + + + + + ПользовательСтандартногоИнтерфейсаOData + + ru + Пользователь стандартного интерфейса OData + + + CatalogRef.Пользователи + + + + Managed + diff --git a/SSL/src/Constants/ПредставлениеОбластиДанных/ПредставлениеОбластиДанных.mdo b/SSL/src/Constants/ПредставлениеОбластиДанных/ПредставлениеОбластиДанных.mdo deleted file mode 100644 index faa7935b8..000000000 --- a/SSL/src/Constants/ПредставлениеОбластиДанных/ПредставлениеОбластиДанных.mdo +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - ПредставлениеОбластиДанных - - ru - Представление области данных - - - String - - - true - - - Managed - diff --git a/SSL/src/Constants/ПрефиксОбластиДанных/ПрефиксОбластиДанных.mdo b/SSL/src/Constants/ПрефиксОбластиДанных/ПрефиксОбластиДанных.mdo deleted file mode 100644 index 52ae91989..000000000 --- a/SSL/src/Constants/ПрефиксОбластиДанных/ПрефиксОбластиДанных.mdo +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - ПрефиксОбластиДанных - - ru - Префикс области данных - - - String - - 2 - - - true - - - Managed - diff --git a/SSL/src/Constants/ПрефиксПоследнегоАвтономногоРабочегоМеста/ПрефиксПоследнегоАвтономногоРабочегоМеста.mdo b/SSL/src/Constants/ПрефиксПоследнегоАвтономногоРабочегоМеста/ПрефиксПоследнегоАвтономногоРабочегоМеста.mdo new file mode 100644 index 000000000..296ddf9a6 --- /dev/null +++ b/SSL/src/Constants/ПрефиксПоследнегоАвтономногоРабочегоМеста/ПрефиксПоследнегоАвтономногоРабочегоМеста.mdo @@ -0,0 +1,23 @@ + + + + + + + + ПрефиксПоследнегоАвтономногоРабочегоМеста + + ru + Префикс последнего автономного рабочего места + + Хранит значение префикса для последнего автономного рабочего места, созданного в системе + + String + + 2 + + + + + Managed + diff --git a/SSL/src/Constants/ПриоритетОбновленияВОбластяхДанных/ПриоритетОбновленияВОбластяхДанных.mdo b/SSL/src/Constants/ПриоритетОбновленияВОбластяхДанных/ПриоритетОбновленияВОбластяхДанных.mdo new file mode 100644 index 000000000..91dc4fe3a --- /dev/null +++ b/SSL/src/Constants/ПриоритетОбновленияВОбластяхДанных/ПриоритетОбновленияВОбластяхДанных.mdo @@ -0,0 +1,24 @@ + + + + + + + + ПриоритетОбновленияВОбластяхДанных + + ru + Приоритет обновления в областях данных + + + String + + 32 + + + true + CommonForm.ПриоритетОбновленияВОбластяхДанных + + + Managed + diff --git a/SSL/src/Constants/РазмерБлокаПередачиФайла/РазмерБлокаПередачиФайла.mdo b/SSL/src/Constants/РазмерБлокаПередачиФайла/РазмерБлокаПередачиФайла.mdo deleted file mode 100644 index 487dd3ef6..000000000 --- a/SSL/src/Constants/РазмерБлокаПередачиФайла/РазмерБлокаПередачиФайла.mdo +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - РазмерБлокаПередачиФайла - - ru - Размер блока передачи файла - - - Number - - 3 - true - - - - ru - Мб - - - - Managed - diff --git a/SSL/src/Constants/РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса/РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса.mdo b/SSL/src/Constants/РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса/РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса.mdo new file mode 100644 index 000000000..44a19911c --- /dev/null +++ b/SSL/src/Constants/РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса/РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса.mdo @@ -0,0 +1,20 @@ + + + + + + + + РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса + + ru + Разрешить выполнение дополнительных отчетов и обработок регламентными заданиями в модели сервиса + + + Boolean + + true + + + Managed + diff --git a/SSL/src/Constants/РежимИспользованияИнформационнойБазы/РежимИспользованияИнформационнойБазы.mdo b/SSL/src/Constants/РежимИспользованияИнформационнойБазы/РежимИспользованияИнформационнойБазы.mdo deleted file mode 100644 index e99dc6bcc..000000000 --- a/SSL/src/Constants/РежимИспользованияИнформационнойБазы/РежимИспользованияИнформационнойБазы.mdo +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - РежимИспользованияИнформационнойБазы - - ru - Режим использования информационной базы - - - EnumRef.РежимыИспользованияИнформационнойБазы - - - - Managed - diff --git a/SSL/src/Constants/СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы/СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы.mdo b/SSL/src/Constants/СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы/СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы.mdo new file mode 100644 index 000000000..4ddf1ac59 --- /dev/null +++ b/SSL/src/Constants/СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы/СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы.mdo @@ -0,0 +1,19 @@ + + + + + + + + СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы + + ru + Синхронизировать данные с приложением в Интернете при завершении работы программы + + + Boolean + + + + Managed + diff --git a/SSL/src/Constants/СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы/СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы.mdo b/SSL/src/Constants/СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы/СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы.mdo new file mode 100644 index 000000000..a9a6cc73c --- /dev/null +++ b/SSL/src/Constants/СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы/СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы.mdo @@ -0,0 +1,19 @@ + + + + + + + + СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы + + ru + Синхронизировать данные с приложением в Интернете при начале работы программы + + + Boolean + + + + Managed + diff --git a/SSL/src/Constants/СообщениеБлокировкиПриОбновленииКонфигурации/СообщениеБлокировкиПриОбновленииКонфигурации.mdo b/SSL/src/Constants/СообщениеБлокировкиПриОбновленииКонфигурации/СообщениеБлокировкиПриОбновленииКонфигурации.mdo deleted file mode 100644 index 58d78eba1..000000000 --- a/SSL/src/Constants/СообщениеБлокировкиПриОбновленииКонфигурации/СообщениеБлокировкиПриОбновленииКонфигурации.mdo +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - СообщениеБлокировкиПриОбновленииКонфигурации - - ru - Сообщение блокировки при обновлении конфигурации - - - String - - - - - Managed - diff --git a/SSL/src/Constants/УдалитьАлгоритмПодписи/УдалитьАлгоритмПодписи.mdo b/SSL/src/Constants/УдалитьАлгоритмПодписи/УдалитьАлгоритмПодписи.mdo deleted file mode 100644 index 2f56c9bc1..000000000 --- a/SSL/src/Constants/УдалитьАлгоритмПодписи/УдалитьАлгоритмПодписи.mdo +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - УдалитьАлгоритмПодписи - - ru - (не используется) Алгоритм подписи - - - String - - - - - Managed - diff --git a/SSL/src/Constants/УдалитьАлгоритмХеширования/УдалитьАлгоритмХеширования.mdo b/SSL/src/Constants/УдалитьАлгоритмХеширования/УдалитьАлгоритмХеширования.mdo deleted file mode 100644 index 407b66724..000000000 --- a/SSL/src/Constants/УдалитьАлгоритмХеширования/УдалитьАлгоритмХеширования.mdo +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - УдалитьАлгоритмХеширования - - ru - (не используется) Алгоритм хеширования - - - String - - - - - Managed - diff --git a/SSL/src/Constants/УдалитьАлгоритмШифрования/УдалитьАлгоритмШифрования.mdo b/SSL/src/Constants/УдалитьАлгоритмШифрования/УдалитьАлгоритмШифрования.mdo deleted file mode 100644 index 8ce1a0d0c..000000000 --- a/SSL/src/Constants/УдалитьАлгоритмШифрования/УдалитьАлгоритмШифрования.mdo +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - УдалитьАлгоритмШифрования - - ru - (не используется) Алгоритм шифрования - - - String - - - - - Managed - diff --git a/SSL/src/Constants/УдалитьВнутреннийАдресМенеджераСервиса/УдалитьВнутреннийАдресМенеджераСервиса.mdo b/SSL/src/Constants/УдалитьВнутреннийАдресМенеджераСервиса/УдалитьВнутреннийАдресМенеджераСервиса.mdo deleted file mode 100644 index 08a40ec50..000000000 --- a/SSL/src/Constants/УдалитьВнутреннийАдресМенеджераСервиса/УдалитьВнутреннийАдресМенеджераСервиса.mdo +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - УдалитьВнутреннийАдресМенеджераСервиса - - ru - (не используется) Внутренний адрес менеджера сервиса - - - String - - - - - Managed - diff --git a/SSL/src/Constants/УдалитьИмяСлужебногоПользователяМенеджераСервиса/УдалитьИмяСлужебногоПользователяМенеджераСервиса.mdo b/SSL/src/Constants/УдалитьИмяСлужебногоПользователяМенеджераСервиса/УдалитьИмяСлужебногоПользователяМенеджераСервиса.mdo deleted file mode 100644 index b89891c98..000000000 --- a/SSL/src/Constants/УдалитьИмяСлужебногоПользователяМенеджераСервиса/УдалитьИмяСлужебногоПользователяМенеджераСервиса.mdo +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - УдалитьИмяСлужебногоПользователяМенеджераСервиса - - ru - (не используется) Имя служебного пользователя менеджера сервиса - - - String - - - - - Managed - diff --git a/SSL/src/Constants/УдалитьКонечнаяТочкаМенеджераСервиса/УдалитьКонечнаяТочкаМенеджераСервиса.mdo b/SSL/src/Constants/УдалитьКонечнаяТочкаМенеджераСервиса/УдалитьКонечнаяТочкаМенеджераСервиса.mdo deleted file mode 100644 index 303e5f985..000000000 --- a/SSL/src/Constants/УдалитьКонечнаяТочкаМенеджераСервиса/УдалитьКонечнаяТочкаМенеджераСервиса.mdo +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - УдалитьКонечнаяТочкаМенеджераСервиса - - ru - (не используется) Конечная точка менеджера сервиса - - - ExchangePlanRef.ОбменСообщениями - - - - Managed - diff --git a/SSL/src/Constants/УдалитьЛогинДляОтправкиSMS/УдалитьЛогинДляОтправкиSMS.mdo b/SSL/src/Constants/УдалитьЛогинДляОтправкиSMS/УдалитьЛогинДляОтправкиSMS.mdo deleted file mode 100644 index 8f22197cd..000000000 --- a/SSL/src/Constants/УдалитьЛогинДляОтправкиSMS/УдалитьЛогинДляОтправкиSMS.mdo +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - УдалитьЛогинДляОтправкиSMS - - ru - (не используется) Логин для отправки SMS - - - String - - 20 - - - true - - - Managed - diff --git a/SSL/src/Constants/УдалитьПарольДляОтправкиSMS/УдалитьПарольДляОтправкиSMS.mdo b/SSL/src/Constants/УдалитьПарольДляОтправкиSMS/УдалитьПарольДляОтправкиSMS.mdo deleted file mode 100644 index 6fc0a721a..000000000 --- a/SSL/src/Constants/УдалитьПарольДляОтправкиSMS/УдалитьПарольДляОтправкиSMS.mdo +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - УдалитьПарольДляОтправкиSMS - - ru - (не используется) Пароль для отправки SMS - - - String - - 64 - - - true - true - - - Managed - diff --git a/SSL/src/Constants/УдалитьПарольСлужебногоПользователяМенеджераСервиса/УдалитьПарольСлужебногоПользователяМенеджераСервиса.mdo b/SSL/src/Constants/УдалитьПарольСлужебногоПользователяМенеджераСервиса/УдалитьПарольСлужебногоПользователяМенеджераСервиса.mdo deleted file mode 100644 index fbf4debb4..000000000 --- a/SSL/src/Constants/УдалитьПарольСлужебногоПользователяМенеджераСервиса/УдалитьПарольСлужебногоПользователяМенеджераСервиса.mdo +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - УдалитьПарольСлужебногоПользователяМенеджераСервиса - - ru - (не используется) Пароль служебного пользователя менеджера сервиса - - - String - - - true - - - Managed - diff --git a/SSL/src/Constants/УдалитьПровайдерЭП/УдалитьПровайдерЭП.mdo b/SSL/src/Constants/УдалитьПровайдерЭП/УдалитьПровайдерЭП.mdo deleted file mode 100644 index 9964063ac..000000000 --- a/SSL/src/Constants/УдалитьПровайдерЭП/УдалитьПровайдерЭП.mdo +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - УдалитьПровайдерЭП - - ru - (не используется) Провайдер ЭП - - - String - - - - - Managed - diff --git a/SSL/src/Constants/УдалитьТипПровайдераЭП/УдалитьТипПровайдераЭП.mdo b/SSL/src/Constants/УдалитьТипПровайдераЭП/УдалитьТипПровайдераЭП.mdo deleted file mode 100644 index a6dbe1067..000000000 --- a/SSL/src/Constants/УдалитьТипПровайдераЭП/УдалитьТипПровайдераЭП.mdo +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - УдалитьТипПровайдераЭП - - ru - (не используется) Тип провайдера ЭП - - - Number - - 10 - - - - - Managed - diff --git a/SSL/src/Constants/ЧасовойПоясОбластиДанных/ЧасовойПоясОбластиДанных.mdo b/SSL/src/Constants/ЧасовойПоясОбластиДанных/ЧасовойПоясОбластиДанных.mdo deleted file mode 100644 index 2743d686e..000000000 --- a/SSL/src/Constants/ЧасовойПоясОбластиДанных/ЧасовойПоясОбластиДанных.mdo +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - ЧасовойПоясОбластиДанных - - ru - Часовой пояс области данных - - - String - - 100 - - - true - - - Managed - diff --git a/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Module.bsl index 646bfa7b2..eacd78f84 100644 --- a/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Forms/Форма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если ОбщегоНазначения.ЭтоВебКлиент() Или Не ОбщегоНазначения.ЭтоWindowsКлиент() Тогда Возврат; // Отказ устанавливается в ПриОткрытии(). КонецЕсли; diff --git a/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Help/ru.html b/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Help/ru.html index 970b2aa6e..75b0914ac 100644 --- a/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Help/ru.html +++ b/SSL/src/DataProcessors/АвтоматическоеИзвлечениеТекстов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                  Если один или несколько рабочих процессов сервера работают под Linux, а часть или все клиенты подключаются с помощью веб-клиента, то в информационной базе могут быть добавлены файлы, текст из которых не извлечен, и соответственно эти файлы не могут быть найдены полнотекстовым поиском по содержимому. В этом случае на одном из клиентских компьютеров, работающих под управлением ОС Microsoft Windows, нужно запустить тонкий или толстый клиент, и на нем в разделе Администрирование - Общие настройки - Полнотекстовый поиск данных выполнить команду Настроить - Запустить извлечение текстов.

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

                  diff --git a/SSL/src/DataProcessors/АктивныеПользователи/Forms/АктивныеПользователи/Module.bsl b/SSL/src/DataProcessors/АктивныеПользователи/Forms/АктивныеПользователи/Module.bsl index 315f62754..a5c3b7f7f 100644 --- a/SSL/src/DataProcessors/АктивныеПользователи/Forms/АктивныеПользователи/Module.bsl +++ b/SSL/src/DataProcessors/АктивныеПользователи/Forms/АктивныеПользователи/Module.bsl @@ -20,16 +20,12 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Параметры.Свойство("ОповещатьОЗакрытии", ОповещатьОЗакрытии); НомерСеансаИнформационнойБазы = НомерСеансаИнформационнойБазы(); УсловноеОформление.Элементы[0].Отбор.Элементы[0].ПравоеЗначение = НомерСеансаИнформационнойБазы; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей(); Иначе @@ -131,7 +127,7 @@ СтандартнаяОбработка = Истина; ОповещениеПослеЗавершенияСеансов = Новый ОписаниеОповещения( "ПослеЗавершенияСеанса", ЭтотОбъект, Новый Структура("НомераСеансов", НомераСеансов)); - ИнтеграцияСТехнологиейСервисаКлиент.ПриЗавершенииСеансов(ЭтотОбъект, НомераСеансов, СтандартнаяОбработка, ОповещениеПослеЗавершенияСеансов); + ИнтеграцияПодсистемБСПКлиент.ПриЗавершенииСеансов(ЭтотОбъект, НомераСеансов, СтандартнаяОбработка, ОповещениеПослеЗавершенияСеансов); Иначе Если ЗапрашиватьПараметрыАдминистрированияИБ Тогда diff --git a/SSL/src/DataProcessors/АктивныеПользователи/Help/ru.html b/SSL/src/DataProcessors/АктивныеПользователи/Help/ru.html index b4d2c1d2b..6f0a7b502 100644 --- a/SSL/src/DataProcessors/АктивныеПользователи/Help/ru.html +++ b/SSL/src/DataProcessors/АктивныеПользователи/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                  В этом списке отображаются не только пользователи, работающие с информационной базой при помощи приложений "Тонкий клиент", "Веб-клиент" или "Конфигуратор", но и такие пользователи как "COM-соединение", "WS-соединение", "Фоновое задание" и т.п.

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

                  diff --git a/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/БлокировкаСоединенийСИнформационнойБазой/Module.bsl b/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/БлокировкаСоединенийСИнформационнойБазой/Module.bsl index d1cd1767a..e005ffb95 100644 --- a/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/БлокировкаСоединенийСИнформационнойБазой/Module.bsl +++ b/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/БлокировкаСоединенийСИнформационнойБазой/Module.bsl @@ -20,11 +20,7 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей(); Иначе diff --git a/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/ОшибкаУстановкиМонопольногоРежима/Module.bsl b/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/ОшибкаУстановкиМонопольногоРежима/Module.bsl index 3d9de2223..751e49203 100644 --- a/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/ОшибкаУстановкиМонопольногоРежима/Module.bsl +++ b/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Forms/ОшибкаУстановкиМонопольногоРежима/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - УдалениеПомеченныхОбъектов = Параметры.УдалениеПомеченныхОбъектов; Если УдалениеПомеченныхОбъектов Тогда Заголовок = НСтр("ru = 'Не удалось выполнить удаление помеченных объектов'"); diff --git a/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Help/ru.html b/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Help/ru.html index 91863b589..5010796ec 100644 --- a/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Help/ru.html +++ b/SSL/src/DataProcessors/БлокировкаРаботыПользователей/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                  При работе в клиент-серверном режиме имеется возможность блокировки работы регламентных заданий.

                  diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводАдресаВСвободнойФорме/Help/ru.html b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводАдресаВСвободнойФорме/Help/ru.html index a6890bc48..c90ebabf1 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводАдресаВСвободнойФорме/Help/ru.html +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводАдресаВСвободнойФорме/Help/ru.html @@ -1,7 +1,7 @@ - +

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

                  Открывается по кнопке  Выбрать из поля Адрес в элементах списков.

                  Автоподбор российского адреса

                  diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводАдресаВСвободнойФорме/Module.bsl b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводАдресаВСвободнойФорме/Module.bsl index 7316d1767..021c5d699 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводАдресаВСвободнойФорме/Module.bsl +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводАдресаВСвободнойФорме/Module.bsl @@ -32,10 +32,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если Не Параметры.Свойство("ОткрытаПоСценарию") Тогда ВызватьИсключение НСтр("ru = 'Обработка не предназначена для непосредственного использования.'"); КонецЕсли; diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводТелефона/Help/ru.html b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводТелефона/Help/ru.html index e69ca80c3..57d2c32fb 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводТелефона/Help/ru.html +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводТелефона/Help/ru.html @@ -1,4 +1,4 @@ - +

                  Предназначена для ввода номера телефона (факса) с использованием шаблона.

                  Открывается из табличной части документов или элементов списков - носителей контактной информации по кнопке  Выбрать.

                  Для того чтобы ввести телефон (факс), необходимо заполнить поля:

                  diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводТелефона/Module.bsl b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводТелефона/Module.bsl index 5f7094c8d..18445d130 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводТелефона/Module.bsl +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВводТелефона/Module.bsl @@ -32,10 +32,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Параметры.Свойство("ВозвращатьСписокЗначений", ВозвращатьСписокЗначений); // Разбор параметров в реквизиты. diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВебСайт/Module.bsl b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВебСайт/Module.bsl index c9d9850ea..80b43963d 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВебСайт/Module.bsl +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ВебСайт/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ВидКонтактнойИнформации = Параметры.ВидКонтактнойИнформации; Если Не ЗначениеЗаполнено(ВидКонтактнойИнформации) Тогда ВызватьИсключение НСтр("ru='Команда не может быть выполнена для указанного объекта из-за некорректного внедрения контактной информации.'"); diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Help/ru.html b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Help/ru.html index 94325054d..91330d461 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Help/ru.html +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                  Изменение адреса

                  diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Module.bsl b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Module.bsl index 045837a97..0c82418fc 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Module.bsl +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Forms/ИсторияКонтактнойИнформации/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если Параметры.Свойство("ТолькоПросмотр") Тогда Элементы.История.ТолькоПросмотр = Параметры.ТолькоПросмотр; КонецЕсли; diff --git a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Help/ru.html b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Help/ru.html index d7e1e1f8c..be5bbb8f4 100644 --- a/SSL/src/DataProcessors/ВводКонтактнойИнформации/Help/ru.html +++ b/SSL/src/DataProcessors/ВводКонтактнойИнформации/Help/ru.html @@ -1,19 +1,29 @@ - +

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

                  Контактную информацию можно вводить:

                  • в виде произвольной строки, -
                  • с помощью шаблонов.

                  Использование шаблонов позволяет унифицировать ввод информации, улучшает ее восприятие при просмотре и поиске в списках.

                  + +
                • с помощью шаблонов.

                Использование шаблонов позволяет унифицировать ввод информации, улучшает ее восприятие при просмотре и поиске в списках.

                Использование шаблона при вводе телефонов и факсов облегчает ввод информации, сокращает количество ошибок при вводе.

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

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

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

                • Выбрать (клавиша F4) - ввести контактную информацию по шаблону, аналогично кнопке  Выбрать. По шаблону можно ввести адрес, телефон или факс. -
                • Открыть (сочетание клавиш Ctrl+Shift+F4) - просмотр введенной контактной информации (например, слишком длинный адрес можно увидеть целиком с помощью этой команды); -
                • Вырезать (сочетание клавиш Ctrl+X); -
                • Копировать (сочетание клавиш Ctrl+C); -
                • Вставить (сочетание клавиш Ctrl+V); -
                • Очистить (сочетание клавиш Shift+F4) - также очищаются поля для ввода по шаблону адреса и телефона. В поле Страна адреса автоматически вводится значение Россия. -
                • Выделить все (сочетание клавиш Ctrl+A). -
                • Ввести комментарий - с помощью этой команды можно ввести или изменить комментарий, не открывая окно редактирования поля. Комментарии предусмотрены для всех видов контактной информации, кроме текстового поля Другое, т.к. в это поле можно ввести всю нужную информацию. Воспользуйтесь командой, затем введите текст комментария, нажмите кнопку ОК для продолжения работы в программе. Если комментарий не пуст, то он выводится под полем контактной информации. -
                • Адрес на Яндекс.Картах; Адрес на Google Maps - команды, которые позволяют увидеть адрес объекта на картах соответственно Яндекс или Google. Также можно эти команды найти в меню Еще в карточке ввода адреса. -
                • История изменений - с помощью этой команды можно просмотреть изменения контактной информации.
                \ No newline at end of file + +
              • Открыть (сочетание клавиш Ctrl+Shift+F4) - просмотр введенной контактной информации (например, слишком длинный адрес можно увидеть целиком с помощью этой команды); +
              • +
              • Вырезать (сочетание клавиш Ctrl+X); +
              • +
              • Копировать (сочетание клавиш Ctrl+C); +
              • +
              • Вставить (сочетание клавиш Ctrl+V); +
              • +
              • Очистить (сочетание клавиш Shift+F4) - также очищаются поля для ввода по шаблону адреса и телефона. В поле Страна адреса автоматически вводится значение Россия. +
              • +
              • Выделить все (сочетание клавиш Ctrl+A). +
              • +
              • Ввести комментарий - с помощью этой команды можно ввести или изменить комментарий, не открывая окно редактирования поля. Комментарии предусмотрены для всех видов контактной информации, кроме текстового поля Другое, т.к. в это поле можно ввести всю нужную информацию. Воспользуйтесь командой, затем введите текст комментария, нажмите кнопку ОК для продолжения работы в программе. Если комментарий не пуст, то он выводится под полем контактной информации. +
              • +
              • Адрес на Яндекс.Картах; Адрес на Google Maps - команды, которые позволяют увидеть адрес объекта на картах соответственно Яндекс или Google. Также можно эти команды найти в меню Еще в карточке ввода адреса. +
              • +
              • История изменений - с помощью этой команды можно просмотреть изменения контактной информации.
              • \ No newline at end of file diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Help/ru.html b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Help/ru.html index e371e4b32..069304e28 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Help/ru.html +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                Отбор данных для выгрузки

                • Для документов используется период отбора. В поле За период нажмите  Выбрать, укажите период. Даты можно указать вручную или выбрать из календаря. С помощью ссылки Показать стандартные периоды можно быстро подобрать период. diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Module.bsl b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Module.bsl index ec38dc520..1a83d45c1 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Module.bsl +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/РедактированиеПериодаИОтбора/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ЗакрыватьПриЗакрытииВладельца = Истина; Заголовок = Параметры.Заголовок; diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/Форма/Module.bsl index ae778cebb..238e935f6 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Forms/Форма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - МассивДоступныхВерсий = Новый Соответствие; Попытка ОбменДаннымиПереопределяемый.ПриПолученииДоступныхВерсийФормата(МассивДоступныхВерсий); diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Help/ru.html b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Help/ru.html index 024bf6a76..9a2e110b5 100644 --- a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Help/ru.html +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаEnterpriseData/Help/ru.html @@ -1,4 +1,4 @@ - +

                  Выгрузка и загрузка данных EnterpriseData

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

                  Работа обработки, встроенной в конфигурацию

                  diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ManagerModule.bsl b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ManagerModule.bsl new file mode 100644 index 000000000..1601db85b --- /dev/null +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ManagerModule.bsl @@ -0,0 +1,271 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныйПрограммныйИнтерфейс + +// Заполняет массив типов, для которых при выгрузке необходимо использовать аннотацию +// ссылок в файлах выгрузки. +// +// Параметры: +// Типы - Массив(ОбъектМетаданных). +// +Процедура ПриЗаполненииТиповТребующихАннотациюСсылокПриВыгрузке(Типы) Экспорт + + Типы.Добавить(Метаданные.Справочники.Пользователи); + +КонецПроцедуры + +// Вызывается при регистрации произвольных обработчиков выгрузки данных. +// +// Параметры: ТаблицаОбработчиков - ТаблицаЗначений, в данной процедуре требуется +// дополнить эту таблицу значений информацией о регистрируемых произвольных +// обработчиках выгрузки данных. Колонки: +// ОбъектМетаданных - ОбъектМетаданных, при выгрузке данных которого должен +// вызываться регистрируемый обработчик, +// Обработчик - ОбщийМодуль, общий модуль, в котором реализован произвольный +// обработчик выгрузки данных. Набор экспортных процедур, которые должны +// быть реализованы в обработчике, зависит от установки значений следующих +// колонок таблицы значений, +// Версия - Строка - номер версии интерфейса обработчиков выгрузки / загрузки данных, +// поддерживаемого обработчиком, +// ПередВыгрузкойТипа - Булево, флаг необходимости вызова обработчика перед +// выгрузкой всех объектов информационной базы, относящихся к данному объекту +// метаданных. Если присвоено значение Истина - в общем модуле обработчика должна +// быть реализована экспортируемая процедура ПередВыгрузкойТипа(), +// поддерживающая следующие параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе выгрузи данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера, +// Сериализатор - Сериализатор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, +// ОбъектМетаданных - ОбъектМетаданных, после выгрузки данных которого +// был вызван обработчик. +// +Процедура ПриРегистрацииОбработчиковВыгрузкиДанных(ТаблицаОбработчиков) Экспорт + + ОбъектОбработчика = Создать(); + + НовыйОбработчик = ТаблицаОбработчиков.Добавить(); + НовыйОбработчик.ОбъектМетаданных = Метаданные.Справочники.Пользователи; + НовыйОбработчик.Обработчик = ОбъектОбработчика; + НовыйОбработчик.ПередВыгрузкойДанных = Истина; + НовыйОбработчик.ПередВыгрузкойОбъекта = Истина; + НовыйОбработчик.ПослеВыгрузкиОбъекта = Истина; + НовыйОбработчик.Версия = "1.0.0.1"; + +КонецПроцедуры + +// Вызывается при регистрации произвольных обработчиков загрузки данных. +// +// Параметры: ТаблицаОбработчиков - ТаблицаЗначений, в данной процедуре требуется +// дополнить эту таблицу значений информацией о регистрируемых произвольных +// обработчиках загрузки данных. Колонки: +// ОбъектМетаданных - ОбъектМетаданных, при загрузке данных которого должен +// вызываться регистрируемый обработчик, +// Обработчик - ОбщийМодуль, общий модуль, в котором реализован произвольный +// обработчик загрузки данных. Набор экспортных процедур, которые должны +// быть реализованы в обработчике, зависит от установки значений следующих +// колонок таблицы значений, +// Версия - Строка - номер версии интерфейса обработчиков выгрузки / загрузки данных, +// поддерживаемого обработчиком, +// ПередСопоставлениемСсылок - Булево, флаг необходимости вызова обработчика перед +// сопоставлением ссылок (в исходной ИБ и в текущей), относящихся к данному объекту +// метаданных. Если присвоено значение Истина - в общем модуле обработчика должна +// быть реализована экспортируемая процедура ПередСопоставлениемСсылок(), +// поддерживающая следующие параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. +// ОбъектМетаданных - ОбъектМетаданных, перед сопоставлением ссылок которого +// был вызван обработчик, +// СтандартнаяОбработка - Булево. Если процедуре ПередСопоставлениемСсылок() +// установить значение данного параметра равным Ложь, вместо стандартного +// сопоставления ссылок (поиск объектов в текущей ИБ с теми же значениями +// естественного ключа, которые были выгружены из ИБ-источника) будет +// вызвана функция СопоставитьСсылки() общего модуля, в процедуре +// ПередСопоставлениемСсылок() которого значение параметра СтандартнаяОбработка +// было установлено равным Ложь. +// Параметры функции СопоставитьСсылки(): +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера, +// ТаблицаИсходныхСсылок - ТаблицаЗначений, содержащая информацию о ссылках, +// выгруженных из исходной ИБ. Колонки: +// ИсходнаяСсылка - ЛюбаяСсылка, ссылка объекта исходной ИБ, которую требуется +// сопоставить 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-пакеты, +// помимо изначально поставляемых в составе подсистемы ВыгрузкаЗагрузкаДанных. +// ПослеЗагрузкиТипа - Булево, флаг необходимости вызова обработчика после +// загрузки всех объектов данных, относящихся к данному объекту +// метаданных. Если присвоено значение Истина - в общем модуле обработчика должна +// быть реализована экспортируемая процедура ПослеЗагрузкиТипа(), +// поддерживающая следующие параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. +// ОбъектМетаданных - ОбъектМетаданных, после загрузки всех объектов которого +// был вызван обработчик. +// +Процедура ПриРегистрацииОбработчиковЗагрузкиДанных(ТаблицаОбработчиков) Экспорт + + ОбъектОбработчика = Создать(); + + НовыйОбработчик = ТаблицаОбработчиков.Добавить(); + НовыйОбработчик.ОбъектМетаданных = Метаданные.Справочники.Пользователи; + НовыйОбработчик.Обработчик = ОбъектОбработчика; + НовыйОбработчик.ПередЗагрузкойДанных = Истина; + НовыйОбработчик.ПередСопоставлениемСсылок = Истина; + НовыйОбработчик.ПередЗагрузкойОбъекта = Истина; + НовыйОбработчик.Версия = "1.0.0.1"; + + СписокРегистров = ПользователиСлужебныйВМоделиСервисаПовтИсп.СписокНаборовЗаписейСоСсылкамиНаПользователей(); + Для Каждого ЭлементСписка Из СписокРегистров Цикл + + НовыйОбработчик = ТаблицаОбработчиков.Добавить(); + НовыйОбработчик.ОбъектМетаданных = ЭлементСписка.Ключ; + НовыйОбработчик.Обработчик = ОбъектОбработчика; + НовыйОбработчик.ПередЗагрузкойТипа = Истина; + НовыйОбработчик.ПередЗагрузкойОбъекта = Истина; + НовыйОбработчик.Версия = "1.0.0.1"; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ObjectModule.bsl b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ObjectModule.bsl new file mode 100644 index 000000000..1442f43d4 --- /dev/null +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ObjectModule.bsl @@ -0,0 +1,486 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область ОписаниеПеременных + +Перем ТекущийИдентификаторНеуказанногоПользователя; +Перем ИсходныйИдентификаторНеуказанногоПользователя; +Перем СохраненныеСсылкиНаНеуказанногоПользователя; + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +#Область ОбработчикиВыгрузкиДанных + +Процедура ПередВыгрузкойДанных(Контейнер) Экспорт + + ТекущийИдентификаторНеуказанногоПользователя = ПользователиСлужебный.СоздатьНеуказанногоПользователя().УникальныйИдентификатор(); + + ИмяФайла = Контейнер.СоздатьПроизвольныйФайл("xml", ТипДанныхДляВыгрузкиИдентификатораНеуказанногоПользователя()); + ЗаписатьОбъектВФайл(ТекущийИдентификаторНеуказанногоПользователя, ИмяФайла); + +КонецПроцедуры + +// Вызывается перед выгрузкой объекта. +// см. "ПриРегистрацииОбработчиковВыгрузкиДанных". +// +Процедура ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ) Экспорт + + Если ТипЗнч(Объект) <> Тип("СправочникОбъект.Пользователи") Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Объект метаданных %1 не может быть обработан обработчиком ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных.ПередВыгрузкойОбъекта.'"), + Объект.Метаданные().ПолноеИмя()); + КонецЕсли; + + Если Объект.Ссылка.УникальныйИдентификатор() = ТекущийИдентификаторНеуказанногоПользователя Тогда + + НовыйАртефакт = ФабрикаXDTO.Создать(ТипАртефактНеуказанногоПользователя()); + Артефакты.Добавить(НовыйАртефакт); + + ИначеЕсли ПользователиСлужебныйВМоделиСервиса.ПользовательЗарегистрированКакНеразделенный(Объект.ИдентификаторПользователяИБ) Тогда + + НовыйАртефакт = ФабрикаXDTO.Создать(ТипАртефактНеразделенногоПользователя()); + НовыйАртефакт.UserName = ВнутреннееИмяНеразделенногоПользователя(Объект.ИдентификаторПользователяИБ); + Артефакты.Добавить(НовыйАртефакт); + + КонецЕсли; + +КонецПроцедуры + +Процедура ПослеВыгрузкиОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты) Экспорт + + Если ТипЗнч(Объект) <> Тип("СправочникОбъект.Пользователи") Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Объект метаданных %1 не может быть обработан обработчиком ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных.ПослеВыгрузкиОбъекта.'"), + Объект.Метаданные().ПолноеИмя()); + КонецЕсли; + + Если Объект.Ссылка.УникальныйИдентификатор() <> ТекущийИдентификаторНеуказанногоПользователя Тогда + + ЭтоСсылкаНеразделенногоПользователя = ПользователиСлужебныйВМоделиСервиса.ПользовательЗарегистрированКакНеразделенный( + Объект.ИдентификаторПользователяИБ); + + ЕстественныйКлюч = Новый Структура("Неразделенный", ЭтоСсылкаНеразделенногоПользователя); + МенеджерВыгрузкиОбъекта.ТребуетсяСопоставитьСсылкуПриЗагрузке(Объект.Ссылка, ЕстественныйКлюч); + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиЗагрузкиДанных + +// Вызывается перед загрузкой данных. +// +// Параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе загрузки данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. +// +Процедура ПередЗагрузкойДанных(Контейнер) Экспорт + + ТекущийИдентификаторНеуказанногоПользователя = ПользователиСлужебный.СоздатьНеуказанногоПользователя().УникальныйИдентификатор(); + + ИмяФайла = Контейнер.ПолучитьПроизвольныйФайл(ТипДанныхДляВыгрузкиИдентификатораНеуказанногоПользователя()); + ИсходныйИдентификаторНеуказанногоПользователя = ПрочитатьОбъектИзФайла(ИмяФайла); + +КонецПроцедуры + +Процедура ПередСопоставлениемСсылок(Контейнер, ОбъектМетаданных, ТаблицаИсходныхСсылок, СтандартнаяОбработка, Отказ) Экспорт + + Если ОбъектМетаданных = Метаданные.Справочники.Пользователи Тогда + + СтандартнаяОбработка = Ложь; + + Иначе + + ВызватьИсключение НСтр("ru = 'Тип данных указан неверно'"); + + КонецЕсли; + +КонецПроцедуры + +Функция СопоставитьСсылки(Контейнер, МенеджерСопоставленияСсылок, ТаблицаИсходныхСсылок) Экспорт + + ИмяКолонки = МенеджерСопоставленияСсылок.ИмяКолонкиИсходныхСсылок(); + + Результат = Новый ТаблицаЗначений(); + Результат.Колонки.Добавить(ИмяКолонки, Новый ОписаниеТипов("СправочникСсылка.Пользователи")); + Результат.Колонки.Добавить("Ссылка", Новый ОписаниеТипов("СправочникСсылка.Пользователи")); + + СопоставлениеНеуказанногоПользователя = Результат.Добавить(); + СопоставлениеНеуказанногоПользователя[ИмяКолонки] = + Справочники.Пользователи.ПолучитьСсылку(ИсходныйИдентификаторНеуказанногоПользователя); + СопоставлениеНеуказанногоПользователя.Ссылка = + Справочники.Пользователи.ПолучитьСсылку(ТекущийИдентификаторНеуказанногоПользователя); + + ОбъединитьНеразделенныхПользователей = Ложь; + ОбъединитьРазделенныхПользователей = Ложь; + + Если ОбщегоНазначения.РазделениеВключено() Тогда + + Если Контейнер.ПараметрыЗагрузки().Свойство("СвернутьРазделенныхПользователей") Тогда + ОбъединитьРазделенныхПользователей = Контейнер.ПараметрыЗагрузки().СвернутьРазделенныхПользователей; + Иначе + ОбъединитьРазделенныхПользователей = Ложь; + КонецЕсли; + + Иначе + ОбъединитьНеразделенныхПользователей = Истина; + ОбъединитьРазделенныхПользователей = Ложь; + КонецЕсли; + + Для Каждого СтрокаТаблицыИсходныхСсылок Из ТаблицаИсходныхСсылок Цикл + + Если СтрокаТаблицыИсходныхСсылок.Неразделенный Тогда + + Если ОбъединитьНеразделенныхПользователей Тогда + + СопоставлениеПользователя = Результат.Добавить(); + СопоставлениеПользователя[ИмяКолонки] = СтрокаТаблицыИсходныхСсылок[ИмяКолонки]; + СопоставлениеПользователя.Ссылка = + Справочники.Пользователи.ПолучитьСсылку(ТекущийИдентификаторНеуказанногоПользователя); + + КонецЕсли; + + Иначе + + Если ОбъединитьРазделенныхПользователей Тогда + + СопоставлениеПользователя = Результат.Добавить(); + СопоставлениеПользователя[ИмяКолонки] = СтрокаТаблицыИсходныхСсылок[ИмяКолонки]; + СопоставлениеПользователя.Ссылка = + Справочники.Пользователи.ПолучитьСсылку(ТекущийИдентификаторНеуказанногоПользователя); + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Выполняет обработчики перед загрузкой определенного типа данных. +// +// Параметры: +// Контейнер - ОбработкаОбъект.ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера - менеджер +// контейнера, используемый в процессе выгрузи данных. Подробнее см. комментарий +// к программному интерфейсу обработки ВыгрузкаЗагрузкаДанныхМенеджерКонтейнера. +// ОбъектМетаданных - ОбъектМетаданных - объект метаданных. +// Отказ - Булево - признак выполнения данной операции. +// +Процедура ПередЗагрузкойТипа(Контейнер, ОбъектМетаданных, Отказ) Экспорт + + Если ПользователиСлужебныйВМоделиСервисаПовтИсп.СписокНаборовЗаписейСоСсылкамиНаПользователей().Получить(ОбъектМетаданных) <> Неопределено Тогда + + СохраненныеСсылкиНаНеуказанногоПользователя = Новый ТаблицаЗначений(); + + Для Каждого Измерение Из ОбъектМетаданных.Измерения Цикл + + СохраненныеСсылкиНаНеуказанногоПользователя.Колонки.Добавить(Измерение.Имя, Измерение.Тип); + + КонецЦикла; + + Иначе + + СохраненныеСсылкиНаНеуказанногоПользователя = Неопределено; + + КонецЕсли; + +КонецПроцедуры + +Процедура ПередЗагрузкойОбъекта(Контейнер, Объект, Артефакты, Отказ) Экспорт + + Если ТипЗнч(Объект) = Тип("СправочникОбъект.Пользователи") Тогда + + // Справочник Пользователи + ЭтоИсходныйНеуказанныйПользователь = Ложь; + + Для Каждого Артефакт Из Артефакты Цикл + + Если Артефакт.Тип() = ТипАртефактНеразделенногоПользователя() Тогда + + ВнутреннееИмя = Артефакт.UserName; + Идентификатор = ИдентификаторСлужебногоПользователяПоВнутреннемуИмени(ВнутреннееИмя); + + Если ПользователиСлужебныйВМоделиСервиса.ПользовательЗарегистрированКакНеразделенный(Идентификатор) Тогда + + Объект.ИдентификаторПользователяИБ = Идентификатор; + Объект.Наименование = ПользователиСлужебныйВМоделиСервиса.ПолноеИмяСлужебногоПользователя(Идентификатор); + + КонецЕсли; + + ИначеЕсли Артефакт.Тип() = ТипАртефактНеуказанногоПользователя() Тогда + + ЭтоИсходныйНеуказанныйПользователь = Истина; + + КонецЕсли; + + КонецЦикла; + + Если Объект.Ссылка.УникальныйИдентификатор() = ТекущийИдентификаторНеуказанногоПользователя И Не ЭтоИсходныйНеуказанныйПользователь Тогда + Отказ = Истина; + КонецЕсли; + + ИначеЕсли ПользователиСлужебныйВМоделиСервисаПовтИсп.СписокНаборовЗаписейСоСсылкамиНаПользователей().Получить(Объект.Метаданные()) <> Неопределено Тогда + + // Набор записей, содержащий измерение с типом СправочникСсылка.Пользователи + СвернутьСсылкиНаПользователейВНаборе(Объект); + + Иначе + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Объект метаданных %1 не может быть обработан обработчиком ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных.ПередЗагрузкойОбъекта.'"), + Объект.Метаданные().ПолноеИмя()); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ТипДанныхДляВыгрузкиИдентификатораНеуказанногоПользователя() + + Возврат "1cfresh\ApplicationData\DefaultUserRef"; + +КонецФункции + +Функция ТипАртефактНеразделенногоПользователя() + + Возврат ФабрикаXDTO.Тип(Пакет(), "UnseparatedUser"); + +КонецФункции + +Функция ТипАртефактНеуказанногоПользователя() + + Возврат ФабрикаXDTO.Тип(Пакет(), "UndefinedUser"); + +КонецФункции + +Функция Пакет() + + Возврат "http://www.1c.ru/1cFresh/Data/Artefacts/ServiceUsers/1.0.0.1"; + +КонецФункции + +Функция ВнутреннееИмяНеразделенногоПользователя(Знач Идентификатор) + + Менеджер = РегистрыСведений.НеразделенныеПользователи.СоздатьМенеджерЗаписи(); + Менеджер.ИдентификаторПользователяИБ = Идентификатор; + Менеджер.Прочитать(); + Если Менеджер.Выбран() Тогда + Возврат Менеджер.ИмяПользователя; + Иначе + Возврат ""; + КонецЕсли; + +КонецФункции + +Функция ИдентификаторСлужебногоПользователяПоВнутреннемуИмени(Знач ВнутреннееИмя) + + ТекстЗапроса = + "ВЫБРАТЬ + | НеразделенныеПользователи.ИдентификаторПользователяИБ КАК ИдентификаторПользователяИБ + |ИЗ + | РегистрСведений.НеразделенныеПользователи КАК НеразделенныеПользователи + |ГДЕ + | НеразделенныеПользователи.ИмяПользователя = &ИмяПользователя"; + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("ИмяПользователя", ВнутреннееИмя); + РезультатЗапроса = Запрос.Выполнить(); + Если РезультатЗапроса.Пустой() Тогда + Возврат Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"); + Иначе + Выборка = РезультатЗапроса.Выбрать(); + Выборка.Следующий(); + Возврат Выборка.ИдентификаторПользователяИБ; + КонецЕсли; + +КонецФункции + +Процедура СвернутьСсылкиНаПользователейВНаборе(НаборЗаписей) + + СсылкаНеуказанногоПользователя = Справочники.Пользователи.ПолучитьСсылку(ТекущийИдентификаторНеуказанногоПользователя); + + УдаляемыеЗаписи = Новый Массив(); + + Для Каждого Запись Из НаборЗаписей Цикл + + ОтборСтрокСостояния = Новый Структура(); + + Для Каждого Измерение Из НаборЗаписей.Метаданные().Измерения Цикл + + ПроверяемоеЗначение = Запись[Измерение.Имя]; + + Если ЗначениеЗаполнено(ПроверяемоеЗначение) Тогда + + Если ТипЗнч(ПроверяемоеЗначение) = Тип("СправочникСсылка.Пользователи") Тогда + + Если ПроверяемоеЗначение = СсылкаНеуказанногоПользователя Тогда + + ОтборСтрокСостояния.Вставить(Измерение.Имя, ПроверяемоеЗначение); + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + Если ОтборСтрокСостояния.Количество() > 0 Тогда + + Если СохраненныеСсылкиНаНеуказанногоПользователя.НайтиСтроки(ОтборСтрокСостояния).Количество() = 0 Тогда + + СтрокаСостояния = СохраненныеСсылкиНаНеуказанногоПользователя.Добавить(); + ЗаполнитьЗначенияСвойств(СтрокаСостояния, Запись); + + Иначе + + УдаляемыеЗаписи.Добавить(Запись); + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + Для Каждого УдаляемаяЗапись Из УдаляемыеЗаписи Цикл + + НаборЗаписей.Удалить(УдаляемаяЗапись); + + КонецЦикла; + +КонецПроцедуры + +// Записывает объект в файл. +// +// Параметры: +// Объект - записываемый объект. +// ИмяФайла - Строка - путь к файлу. +// Сериализатор - СериализаторXDTO - сериализатор. +// +Процедура ЗаписатьОбъектВФайл(Знач Объект, Знач ИмяФайла, Сериализатор = Неопределено) + + ПотокЗаписи = Новый ЗаписьXML(); + ПотокЗаписи.ОткрытьФайл(ИмяФайла); + + ЗаписатьОбъектВПоток(Объект, ПотокЗаписи, Сериализатор); + + ПотокЗаписи.Закрыть(); + +КонецПроцедуры + +// Записывает объект в поток записи. +// +// Параметры: +// Объект - записываемый объект. +// ПотокЗаписи - ЗаписьXML - поток записи. +// Сериализатор - СериализаторXDTO - сериализатор. +// +Процедура ЗаписатьОбъектВПоток(Знач Объект, ПотокЗаписи, Сериализатор = Неопределено) + + Если Сериализатор = Неопределено Тогда + Сериализатор = СериализаторXDTO; + КонецЕсли; + + ПотокЗаписи.ЗаписатьНачалоЭлемента("Data"); + + ПрефиксыПространствИмен = ПрефиксыПространствИмен(); + Для Каждого ПрефиксПространстваИмен Из ПрефиксыПространствИмен Цикл + ПотокЗаписи.ЗаписатьСоответствиеПространстваИмен(ПрефиксПространстваИмен.Значение, ПрефиксПространстваИмен.Ключ); + КонецЦикла; + + Сериализатор.ЗаписатьXML(ПотокЗаписи, Объект, НазначениеТипаXML.Явное); + + ПотокЗаписи.ЗаписатьКонецЭлемента(); + +КонецПроцедуры + +// Возвращает объект из файла. +// +// Параметры: +// ИмяФайла - Строка - путь к файлу. +// +// Возвращаемое значение: +// Объект. +// +Функция ПрочитатьОбъектИзФайла(Знач ИмяФайла) + + ПотокЧтения = Новый ЧтениеXML(); + ПотокЧтения.ОткрытьФайл(ИмяФайла); + ПотокЧтения.ПерейтиКСодержимому(); + + Объект = ПрочитатьОбъектИзПотока(ПотокЧтения); + + ПотокЧтения.Закрыть(); + + Возврат Объект; + +КонецФункции + +// Возвращает объект из файла. +// +// Параметры: +// ПотокЧтения - ЧтениеXML - поток чтения. +// +// Возвращаемое значение: +// Объект. +// +Функция ПрочитатьОбъектИзПотока(ПотокЧтения) + + Если ПотокЧтения.ТипУзла <> ТипУзлаXML.НачалоЭлемента Или ПотокЧтения.Имя <> "Data" Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Ошибка чтения XML. Неверный формат файла. Ожидается начало элемента %1.'"), + "Data"); + КонецЕсли; + + Если НЕ ПотокЧтения.Прочитать() Тогда + ВызватьИсключение НСтр("ru = 'Ошибка чтения XML. Обнаружено завершение файла.'"); + КонецЕсли; + + Объект = СериализаторXDTO.ПрочитатьXML(ПотокЧтения); + Возврат Объект; + +КонецФункции + +// Возвращает префиксы для часто используемых пространств имен. +// +// Возвращаемое значение: +// Соответствие: +// Ключ - Строка - пространство имени. +// Значение - Строка - префикс. +// +Функция ПрефиксыПространствИмен() Экспорт + + Результат = Новый Соответствие(); + + Результат.Вставить("http://www.w3.org/2001/XMLSchema", "xs"); + Результат.Вставить("http://www.w3.org/2001/XMLSchema-instance", "xsi"); + Результат.Вставить("http://v8.1c.ru/8.1/data/core", "v8"); + Результат.Вставить("http://v8.1c.ru/8.1/data/enterprise", "ns"); + Результат.Вставить("http://v8.1c.ru/8.1/data/enterprise/current-config", "cc"); + Результат.Вставить("http://www.1c.ru/1cFresh/Data/Dump/1.0.2.1", "dmp"); + + Возврат Новый ФиксированноеСоответствие(Результат); + +КонецФункции + +#КонецОбласти + +#Иначе +ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных.mdo b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных.mdo new file mode 100644 index 000000000..35e7ac3ab --- /dev/null +++ b/SSL/src/DataProcessors/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных/ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных.mdo @@ -0,0 +1,12 @@ + + + + + + + ВыгрузкаЗагрузкаДанныхСверткаСсылокНаПользователейВРазделенныхДанных + + ru + Выгрузка загрузка данных свертка ссылок на пользователей в разделенных данных + + diff --git a/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Module.bsl index 1c438d8cc..a02292ac7 100644 --- a/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ВыполнениеОбменаДанными/Forms/Форма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - АдресДляВосстановленияПароляУчетнойЗаписи = Параметры.АдресДляВосстановленияПароляУчетнойЗаписи; ЗакрытьПриУспешнойСинхронизации = Параметры.ЗакрытьПриУспешнойСинхронизации; УзелИнформационнойБазы = Параметры.УзелИнформационнойБазы; @@ -51,7 +47,7 @@ ПодключениеЧерезВнешнееСоединение = (ВидТранспортаСообщений = Перечисления.ВидыТранспортаСообщенийОбмена.COM); - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") И ОбменДаннымиСервер.ЭтоАвтономноеРабочееМесто() Тогда МодульАвтономнаяРабота = ОбщегоНазначения.ОбщийМодуль("АвтономнаяРабота"); @@ -689,7 +685,7 @@ &НаСервереБезКонтекста Функция СохранитьФлагВопросаОДолгойСинхронизацииСервер(Знач Флаг, Настройки = Неопределено) - Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") И ОбменДаннымиСервер.ЭтоАвтономноеРабочееМесто() Тогда МодульАвтономнаяРабота = ОбщегоНазначения.ОбщийМодуль("АвтономнаяРабота"); diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыборВидаОбъектов/Module.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыборВидаОбъектов/Module.bsl index 55e2b3fa1..8d39e2574 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыборВидаОбъектов/Module.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыборВидаОбъектов/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЗаполнитьСписокТиповОбъектов(); Если Не ПустаяСтрока(Параметры.ВыбранныеТипы) Тогда diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыбранныеЭлементы/Module.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыбранныеЭлементы/Module.bsl index 4427b404d..3173c639f 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыбранныеЭлементы/Module.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ВыбранныеЭлементы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ВыбранныеТипы = Параметры.ВыбранныеТипы; ОбъектОбработка = РеквизитФормыВЗначение("Объект"); diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Help/ru.html b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Help/ru.html index 402e7dd7c..c6cb199be 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Help/ru.html +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Help/ru.html @@ -1,4 +1,4 @@ - +

                  После ввода значений для изменения реквизитов можно задать особые настройки с помощью команды Дополнительные параметры:

                  • Изменять в транзакции (по умолчанию флажок установлен) - программа позволяет обрабатывать выбранные для изменения элементы списка в транзакции. Если в процессе записи при установленном флажке не удается записать один из объектов (например, потому что объект редактируется другим пользователем), то будут отменены изменения во всех объектах.
                    diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Module.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Module.bsl index 4f59d69fe..0df607044 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Module.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/ДополнительныеПараметры/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Параметры.Свойство("ИзменятьВТранзакции", ИзменятьВТранзакции); Параметры.Свойство("ОбрабатыватьРекурсивно", ОбрабатыватьРекурсивно); diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/РедактированиеФормулы/Help/ru.html b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/РедактированиеФормулы/Help/ru.html index d691f0f39..619db25bf 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/РедактированиеФормулы/Help/ru.html +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/РедактированиеФормулы/Help/ru.html @@ -1,4 +1,4 @@ - +

                    Редактирование формулы

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

                    Составьте формулу, нажмите кнопку Сохранить и закрыть.

                    @@ -13,7 +13,7 @@
                    После составления формулы нажмите кнопку Проверить формулу.

                  См. также:

                  -
                  Совет. Для проверки правильности составления формулы можно воспользоваться кнопкой Проверить формулу.
                  +
                  Совет. Для проверки правильности составления формулы можно воспользоваться кнопкой Проверить формулу.

                  -
                  Совет. Все разрешенные элементы расположены в списке Операторы и функции.
                  +
                  Совет. Все разрешенные элементы расположены в списке Операторы и функции.

                   

                  \ No newline at end of file diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/РедактированиеФормулы/Module.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/РедактированиеФормулы/Module.bsl index b96983e25..f9db3348a 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/РедактированиеФормулы/Module.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/РедактированиеФормулы/Module.bsl @@ -11,11 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Формула = Параметры.Формула; ИсходнаяФормула = Параметры.Формула; diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Module.bsl index 4da0baea6..d9f0bd9a2 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Forms/Форма/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ПроверитьВерсиюИРежимСовместимостиПлатформы(); Параметры.Свойство("ДополнительнаяОбработкаСсылка", ДополнительнаяОбработкаСсылка); diff --git a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Help/ru.html b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Help/ru.html index 42a0745ae..4b951e4d3 100644 --- a/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Help/ru.html +++ b/SSL/src/DataProcessors/ГрупповоеИзменениеРеквизитов/Help/ru.html @@ -1,77 +1,108 @@ - +

                  Групповое изменение реквизитов

                  Групповое изменение реквизитов предусмотрено в двух вариантах:

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

                  Изменение выделенных элементов списка 

                  Изменение значений реквизитов (а также дополнительных реквизитов и сведений) у выбранных элементов списка.

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

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

                  Очистка значений полей выбранных элементов списка

                  +
                • +
                • с помощью команды Показать все (клавиши F8) выбрать значение из соответствующего списка; +
                • +
                • ввести новое значение в список с помощью команды Создать.
                +
              • При вводе нового значения автоматически включается флажок . +
              • +
              • Нажмите Изменить реквизиты.
              • Очистка значений полей выбранных элементов списка

                • Для очистки значения реквизита нужно включить флажок  в соответствующей строке, а колонку Новое значение не заполнять. -
                • Нажмите Изменить реквизиты.

                Результат изменения с ошибками

                + +
              • Нажмите Изменить реквизиты.
              • Результат изменения с ошибками

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

                Выбор ранее сохраненных настроек по изменению реквизитов

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

                Изменение заблокированных реквизитов

                + +
              • Из выпадающего списка выберите нужную настройку. В списке хранятся настройки последних 20 изменений реквизитов.
              • Изменение заблокированных реквизитов

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

                Особенности изменения проведенных документов

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

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

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

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

                Групповое изменение реквизитов (для администратора)

                • Администратору для изменения доступны реквизиты всех справочников и документов программы, в том числе табличные части. Также предусмотрен более точный выбор элементов для изменения реквизитов (таблица Выбор элементов для изменения).

                Выбор элементов для изменения

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

                Ввести новые значения

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

                Выполнить произвольный алгоритм

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

                \ No newline at end of file diff --git a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/АрхивАнкет/Form.form b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/АрхивАнкет/Form.form index bdf83e925..20b55c296 100644 --- a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/АрхивАнкет/Form.form +++ b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/АрхивАнкет/Form.form @@ -345,8 +345,6 @@ true HierarchicalList - true - true true true true @@ -458,23 +456,19 @@ ВЫБРАТЬ - ВложенныйЗапрос.Анкета, - ВложенныйЗапрос.НаименованиеОпроса, - ВложенныйЗапрос.ДатаЗаполнения, + Анкета.Ссылка КАК Анкета, + ЕСТЬNULL(НазначениеОпросов.Наименование, "") КАК НаименованиеОпроса, + Анкета.ДатаРедактирования КАК ДатаЗаполнения, 0 КАК КодКартинки ИЗ - (ВЫБРАТЬ - Анкета.Ссылка КАК Анкета, - ЕСТЬNULL(НазначениеОпросов.Наименование, "") КАК НаименованиеОпроса, - Анкета.ДатаРедактирования КАК ДатаЗаполнения - ИЗ - Документ.Анкета КАК Анкета - ЛЕВОЕ СОЕДИНЕНИЕ Документ.НазначениеОпросов КАК НазначениеОпросов - ПО Анкета.Опрос = НазначениеОпросов.Ссылка - ГДЕ - Анкета.Проведен - И Анкета.Респондент = &Респондент - И (НазначениеОпросов.ПоказыватьВАрхивеАнкет)) КАК ВложенныйЗапрос + Документ.Анкета КАК Анкета + ЛЕВОЕ СОЕДИНЕНИЕ Документ.НазначениеОпросов КАК НазначениеОпросов + ПО Анкета.Опрос = НазначениеОпросов.Ссылка +ГДЕ + Анкета.Проведен + И Анкета.Респондент = &Респондент + И НазначениеОпросов.ПоказыватьВАрхивеАнкет + Document.Анкета true true true diff --git a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/АрхивАнкет/Help/ru.html b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/АрхивАнкет/Help/ru.html index 98b5807c2..76daae444 100644 --- a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/АрхивАнкет/Help/ru.html +++ b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/АрхивАнкет/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                Открывается с рабочего стола респондента по команде Архив анкет.

                В списке отображаются анкеты, у которых составитель установил флажок Показывать в архиве анкет.

                diff --git a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/АрхивАнкет/Module.bsl b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/АрхивАнкет/Module.bsl index d8bf53183..e3991aba8 100644 --- a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/АрхивАнкет/Module.bsl +++ b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/АрхивАнкет/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Свойство("Респондент") Тогда Объект.Респондент = Параметры.Респондент; Иначе diff --git a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Module.bsl index 360817c8f..2695c7ddc 100644 --- a/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ДоступныеАнкеты/Forms/Форма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Объект.РежимАнкетирования = Перечисления.РежимыАнкетирования.Анкета; Если Параметры.Свойство("РежимАнкетирования") Тогда Объект.РежимАнкетирования = Параметры.РежимАнкетирования; diff --git a/SSL/src/DataProcessors/ДоступныеАнкеты/Help/ru.html b/SSL/src/DataProcessors/ДоступныеАнкеты/Help/ru.html index bc716897a..a45c1de01 100644 --- a/SSL/src/DataProcessors/ДоступныеАнкеты/Help/ru.html +++ b/SSL/src/DataProcessors/ДоступныеАнкеты/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Attributes/ПолеИндикаторДлительныхОпераций/ExtInfo/SpreadsheetData.mxlx b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Attributes/ПолеИндикаторДлительныхОпераций/ExtInfo/SpreadsheetData.mxlx index 70a095c0a..498ab0ee1 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Attributes/ПолеИндикаторДлительныхОпераций/ExtInfo/SpreadsheetData.mxlx +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Attributes/ПолеИндикаторДлительныхОпераций/ExtInfo/SpreadsheetData.mxlx @@ -3,5 +3,11 @@ 0 + + 0 + + true + + 0 \ No newline at end of file diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Form.form b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Form.form index e73de89ac..7f65c8e1d 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Form.form +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Form.form @@ -155,6 +155,7 @@ false true true + true true true @@ -175,13 +176,31 @@ Предупреждение + + + ru + Информация + + + Информация + + + + + ru + Примечание + + + Примечание + + ru Все события - Все события + ВсеСобытия Normal diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Module.bsl b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Module.bsl index 9df91b64f..90ab6ff28 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Module.bsl +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ЖурналРегистрации/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - УстановитьУсловноеОформление(); МодельСервиса = ОбщегоНазначения.РазделениеВключено() @@ -106,7 +102,7 @@ ОтборЖурналаРегистрацииПоУмолчанию.Вставить("Событие", ОтборПоУмолчанию); Элементы.ПредставлениеРазделенияДанныхСеанса.Видимость = Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных(); - Критичность = "Все события"; // идентификатор. + Критичность = "ВсеСобытия"; // Взводится в значение Истина, если нужно, чтобы формирование журнала регистрации проходило не в фоне. ЗапускатьНеВФоне = Параметры.ЗапускатьНеВФоне; @@ -175,23 +171,23 @@ &НаКлиенте Процедура КритичностьПриИзменении(Элемент) + ОтборЖурналаРегистрации.Удалить("Уровень"); + ОтборПоУровню = Новый СписокЗначений; Если Критичность = "Ошибка" Тогда - ОтборПоУровню = Новый СписокЗначений; ОтборПоУровню.Добавить("Ошибка", "Ошибка"); - ОтборЖурналаРегистрации.Удалить("Уровень"); - ОтборЖурналаРегистрации.Вставить("Уровень", ОтборПоУровню); - ОбновитьТекущийСписок(); ИначеЕсли Критичность = "Предупреждение" Тогда - ОтборПоУровню = Новый СписокЗначений; ОтборПоУровню.Добавить("Предупреждение", "Предупреждение"); - ОтборЖурналаРегистрации.Удалить("Уровень"); - ОтборЖурналаРегистрации.Вставить("Уровень", ОтборПоУровню); - ОбновитьТекущийСписок(); - Иначе - ОтборЖурналаРегистрации.Удалить("Уровень"); - ОбновитьТекущийСписок(); + ИначеЕсли Критичность = "Информация" Тогда + ОтборПоУровню.Добавить("Информация", "Информация"); + ИначеЕсли Критичность = "Примечание" Тогда + ОтборПоУровню.Добавить("Примечание", "Примечание"); КонецЕсли; + Если ОтборПоУровню.Количество() > 0 Тогда + ОтборЖурналаРегистрации.Вставить("Уровень", ОтборПоУровню); + КонецЕсли; + + ОбновитьТекущийСписок(); КонецПроцедуры #КонецОбласти @@ -225,6 +221,8 @@ Если ОтборЖурналаРегистрации.Уровень.Количество() > 0 Тогда Критичность = Строка(ОтборЖурналаРегистрации.Уровень); КонецЕсли; + Иначе + Критичность = "ВсеСобытия"; КонецЕсли; ОбновитьТекущийСписок(); @@ -280,7 +278,7 @@ Процедура ОтключитьОтбор() ОтборЖурналаРегистрации = ОтборЖурналаРегистрацииПоУмолчанию; - Критичность = "Все события"; // идентификатор. + Критичность = "ВсеСобытия"; ОбновитьТекущийСписок(); КонецПроцедуры diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ОтборЖурналаРегистрации/Module.bsl b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ОтборЖурналаРегистрации/Module.bsl index baf6aee87..6ba13c3a9 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ОтборЖурналаРегистрации/Module.bsl +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/ОтборЖурналаРегистрации/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЗаполнитьВажностьИСтатус(); ЗаполнитьПараметрыОтбора(); diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/РазделениеДанныхСеанса/Module.bsl b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/РазделениеДанныхСеанса/Module.bsl index 82c3ba08b..36fe47f7d 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/РазделениеДанныхСеанса/Module.bsl +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/РазделениеДанныхСеанса/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТесты") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - УстановленныйОтбор = Параметры.УстановленныйОтбор; РазделениеДанныхСоответствие = Новый Соответствие; Если УстановленныйОтбор.Количество() > 0 Тогда diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/РедакторСоставаСвойства/Module.bsl b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/РедакторСоставаСвойства/Module.bsl index 4e3ae1f50..f88c61a4a 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/РедакторСоставаСвойства/Module.bsl +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/РедакторСоставаСвойства/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - РедактируемыйСписок = Параметры.РедактируемыйСписок; ОтбираемыеПараметры = Параметры.ОтбираемыеПараметры; @@ -354,7 +350,7 @@ Возврат ""; КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); Возврат МодульРаботаВМоделиСервиса.ПсевдонимПользователяИнформационнойБазы(ИдентификаторПользователяИБ); КонецЕсли; diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/Событие/Help/ru.html b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/Событие/Help/ru.html index 231da1880..b85569d93 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/Событие/Help/ru.html +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/Событие/Help/ru.html @@ -1,4 +1,4 @@ - +

                Просмотр свойств события в программе, отраженного в журнале регистрации.

                Отображает полную информацию о событии в программе, а не только те данные, которые показываются в журнале регистрации:

                • diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/Событие/Module.bsl b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/Событие/Module.bsl index b9403c2ea..0f7a27d63 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Forms/Событие/Module.bsl +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Forms/Событие/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Дата = Параметры.Дата; ИмяПользователя = Параметры.ИмяПользователя; ПредставлениеПриложения = Параметры.ПредставлениеПриложения; @@ -113,6 +109,7 @@ НоваяСтрока.Значение = КлючИЗначение.Значение; КонецЦикла; КонецЕсли; + СвойстваПользователяИБ.Сортировать("Имя Возр"); СоздатьТаблицуФормы("ТаблицаСвойствПользователяИБ", "ТаблицаДанных", СвойстваПользователяИБ); Если МассивРолей <> Неопределено Тогда РолиПользователяИБ = Новый ТаблицаЗначений; diff --git a/SSL/src/DataProcessors/ЖурналРегистрации/Help/ru.html b/SSL/src/DataProcessors/ЖурналРегистрации/Help/ru.html index 2a00419c2..537f1225d 100644 --- a/SSL/src/DataProcessors/ЖурналРегистрации/Help/ru.html +++ b/SSL/src/DataProcessors/ЖурналРегистрации/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                  diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ВыборКолонок/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ВыборКолонок/Module.bsl index 475ac25f8..da16c0157 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ВыборКолонок/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ВыборКолонок/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - СписокКолонок = Параметры.СписокКолонок; СписокКолонок.СортироватьПоПредставлению(); КонецПроцедуры diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Attributes/ТаблицаОтчет/ExtInfo/SpreadsheetData.mxlx b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Attributes/ТаблицаОтчет/ExtInfo/SpreadsheetData.mxlx index 70a095c0a..498ab0ee1 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Attributes/ТаблицаОтчет/ExtInfo/SpreadsheetData.mxlx +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Attributes/ТаблицаОтчет/ExtInfo/SpreadsheetData.mxlx @@ -3,5 +3,11 @@ 0 + + 0 + + true + + 0 \ No newline at end of file diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Attributes/ШаблонСДанными/ExtInfo/SpreadsheetData.mxlx b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Attributes/ШаблонСДанными/ExtInfo/SpreadsheetData.mxlx index 70a095c0a..498ab0ee1 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Attributes/ШаблонСДанными/ExtInfo/SpreadsheetData.mxlx +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Attributes/ШаблонСДанными/ExtInfo/SpreadsheetData.mxlx @@ -3,5 +3,11 @@ 0 + + 0 + + true + + 0 \ No newline at end of file diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Form.form b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Form.form index d188429eb..0f4efd749 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Form.form +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Form.form @@ -491,7 +491,7 @@ OnActivate - ШаблонСДаннымиПриАктивизацииОбласти + ШаблонСДаннымиПриАктивизации 45 true @@ -2675,7 +2675,7 @@ OnActivate - ТаблицаОтчетПриАктивизацииОбласти + ТаблицаОтчетПриАктивизации 45 true diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Help/ru.html b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Help/ru.html index 0634396fe..edce7b8c1 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Help/ru.html +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                  diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Module.bsl index 9d766db31..369add7b4 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/ЗагрузкаДанныхИзФайла/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если Параметры.Сценарий = "ПоискСсылок" ИЛИ Параметры.Сценарий = "ВставкаИзБуфераОбмена" Тогда ТипЗагрузки = "ВставкаИзБуфераОбмена"; ИначеЕсли ЗначениеЗаполнено(Параметры.ПолноеИмяТабличнойЧасти) Тогда @@ -238,7 +234,7 @@ КонецПроцедуры &НаКлиенте -Процедура ТаблицаОтчетПриАктивизацииОбласти(Элемент) +Процедура ТаблицаОтчетПриАктивизации(Элемент) Если ТаблицаОтчет.ТекущаяОбласть.Низ = 1 И ТаблицаОтчет.ТекущаяОбласть.Верх = 1 Тогда Элементы.ИзменитьРеквизиты.Доступность = Ложь; Иначе @@ -251,7 +247,7 @@ #Область ОбработчикиСобытийЭлементовТаблицыФормыШаблонСДанными &НаКлиенте -Процедура ШаблонСДаннымиПриАктивизацииОбласти(Элемент) +Процедура ШаблонСДаннымиПриАктивизации(Элемент) Элемент.Защита = ?(Элемент.ТекущаяОбласть.Верх > ВысотаШапкиШаблонаСДанными, Ложь, Истина); КонецПроцедуры diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РазрешенияНеоднозначностей/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РазрешенияНеоднозначностей/Module.bsl index c6b11243a..2f2a4339e 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РазрешенияНеоднозначностей/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РазрешенияНеоднозначностей/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - УстановитьОформлениеДанных(); Если Параметры.ТипЗагрузки = "ТабличнаяЧасть" И ЗначениеЗаполнено(Параметры.ПолноеИмяТабличнойЧасти) Тогда diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РасширениеФайла/Form.form b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РасширениеФайла/Form.form index 6b91400da..c63020a5a 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РасширениеФайла/Form.form +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РасширениеФайла/Form.form @@ -145,10 +145,6 @@ Left true - - OnCreateAtServer - ПриСозданииНаСервере - Abort Cancel Close diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РасширениеФайла/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РасширениеФайла/Module.bsl index 1bd6d8512..87e6d44ea 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РасширениеФайла/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РасширениеФайла/Module.bsl @@ -6,17 +6,6 @@ // https://creativecommons.org/licenses/by/4.0/legalcode /////////////////////////////////////////////////////////////////////////////////////////////////////// -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; -КонецПроцедуры - -#КонецОбласти - #Область ОбработчикиКомандФормы &НаКлиенте diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РедактированиеБланка/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РедактированиеБланка/Module.bsl index dde125ea1..2cb1e91ea 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РедактированиеБланка/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Forms/РедактированиеБланка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - УстановитьОформлениеДанных(); ПараметрыЗагрузки = Параметры.ПараметрыЗагрузки; diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Help/ru.html b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Help/ru.html index 0ee42e6d7..291289493 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Help/ru.html +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                  Преимущества загрузки данных из файла

                  • Позволяет задействовать для ввода данных возможности других программ (например, можно вводить данные в Excel, а потом загрузить их в программу); diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/ManagerModule.bsl b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/ManagerModule.bsl index 61be9cd1d..604f3e580 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/ManagerModule.bsl @@ -313,7 +313,6 @@ КонецЕсли; Если СтрНайти(Представление, ПредставлениеЭлемента) > 0 Тогда - ПредставлениеНомерИДата = СокрЛП(Сред(Представление, СтрДлина(ПредставлениеЭлемента) + 1)); ПозицияОкончанияНомера = СтрНайти(ПредставлениеНомерИДата, " "); Номер = Лев(ПредставлениеНомерИДата, ПозицияОкончанияНомера - 1); @@ -322,8 +321,7 @@ ПозицияОкончаниеДаты = СтрНайти(ПредставлениеДата, " "); ДатаОкругленнаяДоДня = Лев(ПредставлениеДата, ПозицияОкончаниеДаты - 1) + " 00:00:00"; НомерДокумент = Номер; - ДатаДокумента = СтрокаВДату(ДатаОкругленнаяДоДня); - + ДатаДокумента = СтроковыеФункцииКлиентСервер.СтрокаВДату(ДатаОкругленнаяДоДня); КонецЕсли; УстановитьПривилегированныйРежим(Истина); @@ -906,7 +904,7 @@ СтрокаИнфоПроКолонки.ИмяКолонки = ИмяРеквизита; СтрокаИнфоПроКолонки.ПредставлениеКолонки = ПредставлениеРеквизита; СтрокаИнфоПроКолонки.ТипКолонки = ТипДанныхКолонки; - СтрокаИнфоПроКолонки.ОбязательнаДляЗаполнения = Ячейка.Шрифт.Жирный; + СтрокаИнфоПроКолонки.ОбязательнаДляЗаполнения = Ячейка.Шрифт.Полужирный; СтрокаИнфоПроКолонки.Позиция = Позиция; СтрокаИнфоПроКолонки.Родитель = Родитель; Если ИспользуетсяГруппировка Тогда @@ -1097,19 +1095,30 @@ АдресЗагруженныхДанных = ПоместитьВоВременноеХранилище(ЗагружаемыеДанные); КонецПроцедуры -Функция ПриведениеЗначениеКТипу(Знач Значение, ОписаниеТипов) +Функция ПриведениеЗначениеКТипу(Значение, ОписаниеТипов) Для каждого Тип Из ОписаниеТипов.Типы() Цикл Если Тип = Тип("Дата") Тогда - Возврат СтрокаВДату(Значение, ОписаниеТипов.КвалификаторыДаты.ЧастиДаты); + + Возврат СтроковыеФункцииКлиентСервер.СтрокаВДату(Значение, ОписаниеТипов.КвалификаторыДаты.ЧастиДаты); + ИначеЕсли Тип = Тип("Булево") Тогда + ОписаниеТипаБулево = Новый ОписаниеТипов("Булево"); Возврат ОписаниеТипаБулево.ПривестиЗначение(Значение); + + ИначеЕсли Тип = Тип("Строка") Тогда + + ОписаниеТипаБулево = Новый ОписаниеТипов("Строка"); + Возврат ОписаниеТипаБулево.ПривестиЗначение(Значение); + ИначеЕсли Тип = Тип("Число") Тогда + НецифровыеСимволы = СтрСоединить(СтрРазделить(Значение, "1234567890,.")); Значение = СтрСоединить(СтрРазделить(Значение, НецифровыеСимволы)); ОписаниеТипаЧисло = Новый ОписаниеТипов("Число"); Возврат ОписаниеТипаЧисло.ПривестиЗначение(Значение); + КонецЕсли; КонецЦикла; @@ -1784,168 +1793,6 @@ КонецФункции -Функция СтрокаВДату(Знач Значение, ЧастьДаты = Неопределено) - - НаборЦифр = "1234567890"; - - Если ТипЗнч(ЧастьДаты) <> Тип("ЧастиДаты") Тогда - ЧастьДаты = ЧастиДаты.Дата; - КонецЕсли; - - ПараметрыДаты = Новый КвалификаторыДаты(ЧастьДаты); - ОписаниеТипаДата = Новый ОписаниеТипов("Дата",,, ПараметрыДаты); - - Значение = ВРег(СтрСоединить(СтрРазделить(СокрЛП(Значение), Символы.НПП + Символы.ПС + Символы.Таб), " ")); - Результат = ОписаниеТипаДата.ПривестиЗначение(Значение); - - Для НомерМесяца = 1 По 12 Цикл - Значение = СтрЗаменить(Значение, ВРег(Формат(Дата(1, НомерМесяца, 2), "ДФ=MMММ")), Формат(НомерМесяца, "ЧЦ=2; ЧВН=")); - Значение = СтрЗаменить(Значение, ВРег(Формат(Дата(1, НомерМесяца, 2), "ДФ=MMM")), Формат(НомерМесяца, "ЧЦ=2; ЧВН=")); - КонецЦикла; - - МассивНеЦифр = СтрРазделить(Значение, НаборЦифр); - Если МассивНеЦифр.Количество() < 2 Тогда - Возврат Результат; - КонецЕсли; - - ПозицияПервойЦифры = СтрДлина(МассивНеЦифр[0]); - ПозицияПоследнейЦифры = СтрДлина(Значение) - СтрДлина(МассивНеЦифр[МассивНеЦифр.ВГраница()]); - Значение = Сред(Значение, ПозицияПервойЦифры, ПозицияПоследнейЦифры - ПозицияПервойЦифры); - Если ПустаяСтрока(Значение) Тогда - Возврат Результат; - КонецЕсли; - - ЗначениеМассивом = СтрРазделить(Значение, " "); - Элемент = ЗначениеМассивом[ЗначениеМассивом.ВГраница()]; - Если ЗначениеМассивом.Количество() > 1 Тогда - - Если СтрДлина(Элемент) = 2 Или СтрДлина(Элемент) = 4 Тогда - - ЭтоТолькоЦифры = СтрРазделить(Элемент, НаборЦифр, Ложь).Количество() = 0; - Если ЭтоТолькоЦифры Тогда - ЗначениеДата = Значение; - ЗначениеВремя = ""; - Иначе - ЗначениеВремя = Элемент; - ЗначениеМассивом.Удалить(ЗначениеМассивом.ВГраница()); - ЗначениеДата = СтрСоединить(ЗначениеМассивом, " "); - КонецЕсли; - - Иначе - - ЗначениеВремя = Элемент; - ЗначениеМассивом.Удалить(ЗначениеМассивом.ВГраница()); - ЗначениеДата = СтрСоединить(ЗначениеМассивом, " "); - - КонецЕсли; - - Иначе - - ЭтоТолькоЦифры = СтрРазделить(Элемент, НаборЦифр, Ложь).Количество() = 0; - Если ЭтоТолькоЦифры Тогда - Возврат ОписаниеТипаДата.ПривестиЗначение(Элемент); - ИначеЕсли СтрНайти(Элемент, ":") > 0 Тогда - ЗначениеДата = ""; - ЗначениеВремя = Элемент; - Иначе - ЗначениеДата = Элемент; - ЗначениеВремя = ""; - КонецЕсли; - - КонецЕсли; - - ОписаниеТипаЧисло = Новый ОписаниеТипов("Число"); - - Если ЗначениеЗаполнено(ЗначениеДата) Тогда - - НаборРазделителей = СтрСоединить(СтрРазделить(ЗначениеДата, НаборЦифр, Ложь), ""); - ЗначениеДатаМассивом = СтрРазделить(ЗначениеДата, НаборРазделителей, Ложь); - - ЭтоТолькоЦифры = СтрРазделить(ЗначениеДата, НаборЦифр, Ложь).Количество() = 0; - Если НЕ ЭтоТолькоЦифры Тогда - - Год = 1; - Месяц = 1; - День = 1; - - Если СтрДлина(ЗначениеДатаМассивом[0]) = 4 Тогда - Год = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеДатаМассивом[0]); - ГодВНачале = Истина; - Иначе - День = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеДатаМассивом[0]); - ГодВНачале = Ложь; - КонецЕсли; - - Если ЗначениеДатаМассивом.Количество() = 2 Тогда - Месяц = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеДатаМассивом[1]);; - ИначеЕсли ЗначениеДатаМассивом.Количество() > 2 Тогда - Месяц = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеДатаМассивом[1]); - Если ГодВНачале Тогда - День = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеДатаМассивом[2]); - Иначе - Год = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеДатаМассивом[2]); - КонецЕсли; - КонецЕсли; - - Если СтрДлина(Год) < 3 Тогда - ГодЧислом = ОписаниеТипаЧисло.ПривестиЗначение(Год); - Год = ?(ГодЧислом < 30, 2000, 1900) + ГодЧислом; - Иначе - Год = ОписаниеТипаЧисло.ПривестиЗначение(Год); - КонецЕсли; - - - ЗначениеДата = Формат(Год, "ЧЦ=4; ЧН=0001; ЧВН=; ЧГ=0") - + Формат(Месяц, "ЧЦ=2; ЧН=01; ЧВН=; ЧГ=0") - + Формат(День, "ЧЦ=2; ЧН=01; ЧВН=; ЧГ=0"); - Иначе - - Если СтрДлина(ЗначениеДата) = 6 Тогда - Год = Прав(ЗначениеДата, 2); - ГодЧислом = ОписаниеТипаЧисло.ПривестиЗначение(Год); - ЗначениеДата = ?(ГодЧислом < 30, 2000, 1900) + Год + Сред(ЗначениеДата, 3, 2) + Лев(ЗначениеДата, 2) ; - КонецЕсли; - КонецЕсли; - - Иначе - ЗначениеДата = "00010101"; - КонецЕсли; - - Если ЗначениеЗаполнено(ЗначениеВремя) Тогда - - ЭтоТолькоЦифры = СтрРазделить(ЗначениеВремя, НаборЦифр, Ложь).Количество() = 0; - Если НЕ ЭтоТолькоЦифры Тогда - - НаборРазделителей = СтрСоединить(СтрРазделить(ЗначениеВремя, НаборЦифр, Ложь), ""); - ЗначениеВремяМассивом = СтрРазделить(ЗначениеВремя, НаборРазделителей, Ложь); - - - Час = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеВремяМассивом[0]); - Минута = 0; - Секунда = 0; - Если ЗначениеВремяМассивом.Количество() = 2 Тогда - Минута = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеВремяМассивом[1]); - ИначеЕсли ЗначениеВремяМассивом.Количество() > 2 Тогда - Минута = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеВремяМассивом[1]); - Секунда = ОписаниеТипаЧисло.ПривестиЗначение(ЗначениеВремяМассивом[2]); - КонецЕсли; - - ШаблонФормата = "ЧЦ=2; ЧН=00; ЧВН=; ЧГ=0"; - ЗначениеВремя = Формат(Час, ШаблонФормата) - + Формат(Минута, ШаблонФормата) - + Формат(Секунда, ШаблонФормата); - - КонецЕсли; - - Иначе - ЗначениеВремя = "000000"; - КонецЕсли; - - Результат = ОписаниеТипаДата.ПривестиЗначение(ЗначениеДата + ЗначениеВремя); - - Возврат Результат; - -КонецФункции #КонецОбласти diff --git a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Templates/ПростойШаблон/Template.mxlx b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Templates/ПростойШаблон/Template.mxlx index 441a8bfa8..73e7a72b3 100644 --- a/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Templates/ПростойШаблон/Template.mxlx +++ b/SSL/src/DataProcessors/ЗагрузкаДанныхИзФайла/Templates/ПростойШаблон/Template.mxlx @@ -30,6 +30,13 @@ + + 1 + 3 + + true + + 4 diff --git a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Commands/ЗагрузкаКлассификатораБанков/CommandModule.bsl b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Commands/ЗагрузкаКлассификатораБанков/CommandModule.bsl index 588795480..71b849f4c 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Commands/ЗагрузкаКлассификатораБанков/CommandModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Commands/ЗагрузкаКлассификатораБанков/CommandModule.bsl @@ -10,8 +10,10 @@ &НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) - ОткрытьФорму("Обработка.ЗагрузкаКлассификатораБанков.Форма.ЗагрузкаКлассификатора", , - , ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно); + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда + МодульРаботаСКлассификаторамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); + МодульРаботаСКлассификаторамиКлиент.ОбновитьКлассификаторы(); + КонецЕсли; КонецПроцедуры #КонецОбласти diff --git a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/ЗагрузкаКлассификатора/Form.form b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/ЗагрузкаКлассификатора/Form.form deleted file mode 100644 index 091f87ccd..000000000 --- a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/ЗагрузкаКлассификатора/Form.form +++ /dev/null @@ -1,625 +0,0 @@ - - - - <key>ru</key> - <value>Загрузка классификатора банков РФ</value> - - - СтраницыФормы - 5 - - СтраницаВыборИсточника - 6 - - ВариантЗагрузки - 7 - true - true - - true - - - ВариантЗагрузки - - Top - ShowBottom - - OnChange - ВариантЗагрузкиПриИзменении - - - ВариантЗагрузкиExtendedTooltip - 28 - - <key>ru</key> - <value>Шаг 1: Нажмите на "Загрузить". -Шаг 2: В открывшемся окне нажмите на "Выберите файл". -Шаг 3: Укажите путь к файлу классификатора: - - На диске ИТС - <Диск ИТС>\1CITS\EXE\EXTDB\bnk.zip - - На компьютере или на сетевом диске - ...\bnk.zip -Шаг 4: Нажмите на "ОК". -Шаг 5: Дождитесь завершения загрузки.</value> - - Label - true - true - - Style.ПоясняющийТекст - - - Left - - - - ВариантЗагрузкиКонтекстноеМеню - 8 - true - - RadioButtonField - Enter - true - Left - true - - RadioButtons - 1 - - - ru - С Портала 1С:ИТС - - - Интернет - - - - - ru - С диска 1С:ИТС - - - ИТС - - - - - ru - Из файла - - - Файл - - - Vertical - - - - Путь - 20 - true - true - - true - - - Путь - - None - - ПутьРасширеннаяПодсказка - 29 - Label - true - true - - Left - - - - ПутьКонтекстноеМеню - 21 - true - - InputField - Enter - true - Left - true - - - StartChoice - ПутьНачалоВыбора - - true - true - true - true - true - true - true - Normal - - - true - true - - true - - - <key>ru</key> - <value>Страница выбор источника</value> - - - СтраницаВыборИсточникаExtendedTooltip - 27 - Label - true - true - - Left - - - Page - - Vertical - auto - false - - - - ЗагрузкаССайта1С - 12 - - ПредупреждениеОЗагрузкаССайта1С - 13 - - <key>ru</key> - <value>Загрузка классификатора банков РФ будет выполнена с сайта 1С. -Для продолжения нажмите"Загрузить".</value> - - true - true - - true - - - ПредупреждениеОЗагрузкаССайта1СРасширеннаяПодсказка - 31 - Label - true - true - - Left - - - - ПредупреждениеОЗагрузкаССайта1СКонтекстноеМеню - 14 - true - - Label - true - - Left - - - true - true - - true - - - <key>ru</key> - <value>Загрузка с сайта 1С</value> - - - ЗагрузкаССайта1СРасширеннаяПодсказка - 30 - Label - true - true - - Left - - - Page - - Vertical - auto - false - - - - ВыполняетсяЗагрузка - 15 - - КартинкаВыполняетсяЗагрузка - 16 - - <key>ru</key> - <value>Картинка выполняется загрузка</value> - - true - true - - true - - - КартинкаВыполняетсяЗагрузкаExtendedTooltip - 33 - Label - true - true - - Left - - - - КартинкаВыполняетсяЗагрузкаКонтекстноеМеню - 17 - true - - true - true - - - CommonPicture.ДлительнаяОперация48 - - - - - НадписьВыполняетсяЗагрузка - 18 - - <key>ru</key> - <value>Выполняется загрузка классификатора...</value> - - true - true - - true - - - НадписьВыполняетсяЗагрузкаExtendedTooltip - 34 - Label - true - true - - Left - - - - НадписьВыполняетсяЗагрузкаКонтекстноеМеню - 19 - true - - Label - true - Center - - Left - - - true - true - - true - - - <key>ru</key> - <value>Выполняется загрузка</value> - - - ВыполняетсяЗагрузкаExtendedTooltip - 32 - Label - true - true - - Left - - - Page - - HorizontalIfPossible - auto - false - - - - СтраницаРезультат - 9 - - ПоясняющийТекст - 10 - - <key>ru</key> - <value>Загрузка классификатора банков РФ выполнена успешно.</value> - - true - true - - true - - - ПоясняющийТекстExtendedTooltip - 36 - Label - true - true - - Left - - - - ПоясняющийТекстКонтекстноеМеню - 11 - true - - Label - true - - Style.FormTextColor - - - Left - - - true - true - - true - - - <key>ru</key> - <value>Страница результат</value> - - - СтраницаРезультатExtendedTooltip - 35 - Label - true - true - - Left - - - Page - - Vertical - auto - false - - - true - true - - true - - - <key>ru</key> - <value>Страницы формы</value> - - - СтраницыФормыExtendedTooltip - 26 - Label - true - true - - Left - - - Pages - - Auto - - - Bottom - true - - ФормаКоманднаяПанель - -1 - - ФормаКнопкаДалее - 2 - true - true - - true - - - ФормаКнопкаДалееExtendedTooltip - 23 - Label - true - true - - Left - - - Form.Command.Далее - Auto - true - true - true - UserCmds - Auto - - - ФормаОтмена - 45 - true - true - - true - - - ФормаОтменаРасширеннаяПодсказка - 46 - Label - true - true - - Left - - - Form.StandardCommand.Cancel - Normal - Auto - true - true - UserCmds - Auto - - - ФормаСправка - 47 - true - true - - true - - - ФормаСправкаРасширеннаяПодсказка - 48 - Label - true - true - - Left - - - Form.StandardCommand.Help - Normal - Auto - true - true - UserCmds - Auto - - Right - - - OnOpen - ПриОткрытии - - - OnLoadDataFromSettingsAtServer - ПриЗагрузкеДанныхИзНастроекНаСервере - - - OnCreateAtServer - ПриСозданииНаСервере - - LockOwner - Use - true - true - Vertical - true - true - true - auto - true - - ВариантЗагрузки - - <key>ru</key> - <value>Вариант загрузки</value> - - 2 - - String - - - - true - - - true - - - ВариантЗагрузки - - - - ОповеститьКлассификаторАктуален - - <key>ru</key> - <value>Оповестить классификатор актуален</value> - - 4 - - Boolean - - - true - - - true - - - - Путь - - <key>ru</key> - <value>Путь</value> - - 5 - - String - - - - true - - - true - - - Путь - - - - Далее - - <key>ru</key> - <value>Загрузить</value> - - 1 - - true - - - - Далее - - - DontUse - Auto - - - Назад - - <key>ru</key> - <value>< Назад </value> - - 2 - - true - - - - Назад - - - DontUse - Auto - - - - - - diff --git a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/ЗагрузкаКлассификатора/Help/ru.html b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/ЗагрузкаКлассификатора/Help/ru.html deleted file mode 100644 index f8eb3de52..000000000 --- a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/ЗагрузкаКлассификатора/Help/ru.html +++ /dev/null @@ -1,31 +0,0 @@ - -

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

                    -

                    Загрузка классификатора банков РФ

                    -

                    Производится с помощью кнопки Загрузить классификатор из классификатора банков.

                    -
                    • -
                      С помощью переключателя выберите Вариант загрузки:
                      -
                      • -

                        С сайта 1С;

                        -
                      • с диска "Информационно-технологическое сопровождение" - загрузка будет производиться из поставляемого на диске 1С:ИТС "Общероссийского классификатора банков" (ОКБ). -
                        • -

                          укажите Путь к диску ИТС;

                      • -

                        Из файла.

                        -
                        • -

                          укажите путь к файлу на диске, например, E:\Классификатор банков\bnk.zip. Скачать файл с классификатором банков можно по адресу https:\\bankregister.1c.ru\bankregister/v1/bnk.zip (для доступа потребуются логин и пароль от ИТС).

                    • -

                      Нажмите Загрузить.

                      -
                    • -

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

                    Повторная загрузка

                    -
                    • -
                      При повторной загрузке перезаписываются только измененные сведения классификатора.
                      -
                    • -
                      При этом если был изменен БИК банка, то будет создана новая запись о банке.
                      -
                    • -
                      Если были изменены другие поля, то при повторной загрузке они будут перезаписаны (кроме полей Адрес и Телефоны в случае, когда классификатор перезагружается с сайта 1С).

                    Особенности загрузки классификатора банков в веб-клиенте

                    -
                    • -
                      В веб-клиенте также производится проверка актуальности классификатора банков и выводится сообщение с предложением его обновления.
                      -
                    • -
                      Если в программе до публикации в веб-клиенте был загружен классификатор банков, то при работе в веб-клиенте необходимо будет его только обновить.
                      -
                    • -
                      Загрузка с диска в веб-клиенте недоступна.

                    См. также:

                    - \ No newline at end of file diff --git a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/ЗагрузкаКлассификатора/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/ЗагрузкаКлассификатора/Module.bsl deleted file mode 100644 index fb7b91734..000000000 --- a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/ЗагрузкаКлассификатора/Module.bsl +++ /dev/null @@ -1,487 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - - Если НЕ Параметры.Свойство("ОткрытиеИзСписка") Тогда - // Открытие по навигационной ссылке. - Если РаботаСБанками.КлассификаторАктуален() Тогда - ОповеститьКлассификаторАктуален = Истина; - Возврат; - КонецЕсли; - КонецЕсли; - - Элементы.СтраницыФормы.ТекущаяСтраница = Элементы.СтраницаВыборИсточника; - - ВыполнитьПроверкуПравДоступа("Изменение", Метаданные.Справочники.КлассификаторБанков); - ВариантЗагрузки = "Интернет"; - - ПоказыватьПолеВыбораФайла = Не ОбщегоНазначения.ЭтоВебКлиент(); - ДоступенВыборДискаИТС = Не ОбщегоНазначения.ЭтоМобильныйКлиент() И ПоказыватьПолеВыбораФайла; - - Если Не ДоступенВыборДискаИТС Тогда - НайденныйВариант = Элементы.ВариантЗагрузки.СписокВыбора.НайтиПоЗначению("ИТС"); - Если НайденныйВариант <> Неопределено Тогда - Элементы.ВариантЗагрузки.СписокВыбора.Удалить(НайденныйВариант); - КонецЕсли; - КонецЕсли; - - Если ПоказыватьПолеВыбораФайла Тогда - Элементы.ВариантЗагрузки.Подсказка = ""; - Элементы.ВариантЗагрузки.ОтображениеПодсказки = ОтображениеПодсказки.Нет; - КонецЕсли; - - Элементы.Путь.Видимость = ПоказыватьПолеВыбораФайла; - - Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда - ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто; - КонецЕсли; - - УстановитьИзмененияВИнтерфейсе(); -КонецПроцедуры - -&НаСервере -Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки) - УстановитьИзмененияВИнтерфейсе(); -КонецПроцедуры - -&НаКлиенте -Процедура ПриОткрытии(Отказ) - Если ОповеститьКлассификаторАктуален Тогда - РаботаСБанкамиКлиент.ОповеститьКлассификаторАктуален(); - Отказ = Истина; - Возврат; - КонецЕсли; -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиСобытийЭлементовШапкиФормы - -&НаКлиенте -Процедура ВариантЗагрузкиПриИзменении(Элемент) - Путь = ""; - УстановитьИзмененияВИнтерфейсе(); -КонецПроцедуры - -&НаКлиенте -Процедура ПутьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - ОчиститьСообщения(); - - Если ВариантЗагрузки = "ИТС" Тогда - РежимДиалога = РежимДиалогаВыбораФайла.ВыборКаталога; - ЗаголовокДиалога = НСтр("ru = 'Укажите путь к диску ИТС'"); - Иначе - РежимДиалога = РежимДиалогаВыбораФайла.Открытие; - ЗаголовокДиалога = НСтр("ru = 'Укажите путь к файлу классификатора'"); - КонецЕсли; - - Диалог = Новый ДиалогВыбораФайла(РежимДиалога); - Диалог.Заголовок = ЗаголовокДиалога; - Диалог.Каталог = Путь; - - Оповещение = Новый ОписаниеОповещения("ПутьЗавершениеВыбора", ЭтотОбъект); - ФайловаяСистемаКлиент.ПоказатьДиалогВыбора(Оповещение, Диалог); - -КонецПроцедуры - -// Обработчик завершения выбора каталога или файла классификатора. -// См. Синтакс-помощник: ДиалогВыбораФайла.Показать(). -// -&НаКлиенте -Процедура ПутьЗавершениеВыбора(ВыбранныйПуть, ДополнительныеПараметры) Экспорт - Если ВыбранныйПуть = Неопределено Или ВыбранныйПуть.Количество() = 0 Тогда - Возврат; - КонецЕсли; - - Если ВариантЗагрузки = "ИТС" Тогда - Путь = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ВыбранныйПуть[0]); - ПолноеИмяФайла = Путь + "1CITS\EXE\EXTDB\bnk.zip"; - Иначе // Вариант загрузки - "Файл". - Путь = ВыбранныйПуть[0]; - ПолноеИмяФайла = Путь; - КонецЕсли; - - ФайлКлассификатора = Новый Файл(ПолноеИмяФайла); - ФайлКлассификатора.НачатьПроверкуСуществования( - Новый ОписаниеОповещения("ОбработатьПроверкуСуществованияКлассификатора", ЭтотОбъект)); -КонецПроцедуры - -// Обработчик проверки существования файла классификатора. -// См. Синтакс-помощник: Файл.НачатьПроверкуСуществования(). -// -&НаКлиенте -Процедура ОбработатьПроверкуСуществованияКлассификатора(Существует, ДополнительныеПараметры) Экспорт - Если Не Существует Тогда - ОбщегоНазначенияКлиент.СообщитьПользователю( - НСтр("ru ='По указанному пути файл классификатора не обнаружен.'"),, "Путь"); - КонецЕсли; -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиКомандФормы - -&НаКлиенте -Процедура Далее(Команда) - Если Элементы.СтраницыФормы.ТекущаяСтраница = Элементы.СтраницаРезультат Тогда - Закрыть(); - Возврат; - КонецЕсли; - - ОчиститьСообщения(); - - СообщениеОбОшибке = ""; - -#Если Не ВебКлиент Тогда - - Если Не ЗначениеЗаполнено(Путь) Тогда - Если ВариантЗагрузки = "ИТС" И Не ОбщегоНазначенияКлиент.ЭтоWindowsКлиент() Тогда - // Не в Windows перебор букв дисков невозможен. - СообщениеОбОшибке = НСтр("ru = 'При работе не в ОС Windows необходимо явно указать путь к диску'"); - ИначеЕсли ВариантЗагрузки = "Файл" Тогда - СообщениеОбОшибке = НСтр("ru = 'Укажите путь к файлу классификатора'"); - КонецЕсли; - КонецЕсли; - -#КонецЕсли - - Если ЗначениеЗаполнено(СообщениеОбОшибке) Тогда - ОбщегоНазначенияКлиент.СообщитьПользователю(СообщениеОбОшибке,, Путь); - Возврат; - КонецЕсли; - - ПодключитьОбработчикОжидания("НачатьЗагрузкуКлассификатора", 0.1, Истина); -КонецПроцедуры - -&НаКлиенте -Процедура Назад(Команда) - ТекущаяСтраница = Элементы.СтраницыФормы.ТекущаяСтраница; - - Если ТекущаяСтраница = Элементы.СтраницаРезультат Тогда - Элементы.СтраницыФормы.ТекущаяСтраница = Элементы.СтраницаВыборИсточника; - КонецЕсли; - - УстановитьИзмененияВИнтерфейсе(); -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики подготовки к загрузке данных - -&НаКлиенте -Процедура НачатьЗагрузкуКлассификатора() - Если ВариантЗагрузки = "Интернет" И ТребуетсяНастройкаАвторизацияИнтернетПоддержки() Тогда - ТекстВопроса = НСтр("ru='Для загрузки классификатора банков из Интернета - |необходимо подключиться к Интернет-поддержке пользователей. - |Подключиться сейчас?'"); - ОписаниеОповещения = Новый ОписаниеОповещения("ПриПодключенииИнтернетПоддержки", ЭтотОбъект); - Кнопки = Новый СписокЗначений; - Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Подключиться'")); - Кнопки.Добавить(КодВозвратаДиалога.Отмена); - - ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки); - Иначе - ЗагрузитьКлассификатор(); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ЗагрузитьКлассификатор() - // Загружает классификатор банков с диска ИТС или с сайта 1С. - ПараметрыЗагрузки = ПараметрыЗагрузкиКлассификатора(ВариантЗагрузки); - - Если ВариантЗагрузки = "Интернет" Тогда - ЗавершитьЗагрузкуКлассификатора(ПараметрыЗагрузки); - Иначе - НачатьПоискКлассификатора(ПараметрыЗагрузки); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ЗавершитьЗагрузкуКлассификатора(ПараметрыЗагрузки) - ДлительнаяОперация = ПолучитьДанныеНаСервере(ПараметрыЗагрузки); - - Элементы.СтраницыФормы.ТекущаяСтраница = Элементы.ВыполняетсяЗагрузка; - УстановитьИзмененияВИнтерфейсе(); - - ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); - ПараметрыОжидания.ВыводитьОкноОжидания = Ложь; - - ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗавершенииОперацииЗагрузки", ЭтотОбъект); - ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОписаниеОповещения, ПараметрыОжидания); -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики поиска данных - -&НаКлиенте -Процедура НачатьПоискКлассификатора(ПараметрыЗагрузки) - Если ЗначениеЗаполнено(Путь) Тогда - Если ПараметрыЗагрузки.ВариантЗагрузки = "ИТС" Тогда - Путь = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(Путь); - - ПараметрыЗагрузки.ДискИТС = Путь; - ПараметрыЗагрузки.Путь = ПараметрыЗагрузки.ДискИТС + ПараметрыЗагрузки.ПутьНаДискеИТС; - Иначе - ПараметрыЗагрузки.ДискИТС = ""; - ПараметрыЗагрузки.Путь = Путь; - КонецЕсли; - - ПараметрыЗагрузки.КодБуквыДиска = 999; - КонецЕсли; - -#Если ВебКлиент Тогда - ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьРезультатПомещенияКлассификатора", ЭтотОбъект, ПараметрыЗагрузки); - НачатьПомещениеФайла(ОписаниеОповещения,,, Истина, УникальныйИдентификатор); -#Иначе - ПродолжитьПоискКлассификатора(ПараметрыЗагрузки); -#КонецЕсли - -КонецПроцедуры - -&НаКлиенте -Процедура ПродолжитьПоискКлассификатора(ПараметрыЗагрузки) - Если ПараметрыЗагрузки.ВариантЗагрузки = "ИТС" - И Не ЗначениеЗаполнено(ПараметрыЗагрузки.ДискИТС) Тогда - - ПараметрыЗагрузки.КодБуквыДиска = ПараметрыЗагрузки.КодБуквыДиска + 1; - ПараметрыЗагрузки.ДискИТС = Символ(ПараметрыЗагрузки.КодБуквыДиска) + ":\"; - ПараметрыЗагрузки.Путь = ПараметрыЗагрузки.ДискИТС + ПараметрыЗагрузки.ПутьНаДискеИТС; - КонецЕсли; - - ОписаниеОповещения = Новый ОписаниеОповещения("ЗавершитьПоискКлассификатора", ЭтотОбъект, ПараметрыЗагрузки); - - ФайлДанных = Новый Файл(ПараметрыЗагрузки.Путь); - ФайлДанных.НачатьПроверкуСуществования(ОписаниеОповещения); -КонецПроцедуры - -&НаКлиенте -Процедура ЗавершитьПоискКлассификатора(Найден, ПараметрыЗагрузки) Экспорт - Если Найден Тогда - Если ПараметрыЗагрузки.ВариантЗагрузки = "ИТС" Тогда - Путь = ПараметрыЗагрузки.ДискИТС; - КонецЕсли; - - ДанныеКлассификатора = Новый ДвоичныеДанные(ПараметрыЗагрузки.Путь); - АдресДанных = ПоместитьВоВременноеХранилище(ДанныеКлассификатора, УникальныйИдентификатор); - ПараметрыЗагрузки.АдресДанных = АдресДанных; - - ЗавершитьЗагрузкуКлассификатора(ПараметрыЗагрузки); - - ИначеЕсли ПараметрыЗагрузки.КодБуквыДиска < 91 Тогда - ПараметрыЗагрузки.ДискИТС = ""; - ПродолжитьПоискКлассификатора(ПараметрыЗагрузки); - Иначе - ТекстСообщения = НСтр("ru ='На диске 1С:ИТС не обнаружены данные классификатора БИК РФ. - |Для установки требуется диск 1С:ИТС, на котором содержится - |база ""Гарант. Налоги, бухучет, предпринимательство.""'"); - ПараметрыЗагрузки.ТекстСообщения = ТекстСообщения; - - Элементы.ПоясняющийТекст.Заголовок = ТекстСообщения; - Элементы.СтраницыФормы.ТекущаяСтраница = Элементы.СтраницаРезультат; - - УстановитьИзмененияВИнтерфейсе(); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ОбработатьРезультатПомещенияКлассификатора(Помещен, АдресДанных, ВыбранноеИмяФайла, ПараметрыЗагрузки) Экспорт - Если Не Помещен Тогда - Элементы.СтраницыФормы.ТекущаяСтраница = Элементы.СтраницаРезультат; - УстановитьИзмененияВИнтерфейсе(); - Возврат; - КонецЕсли; - - Если ПараметрыЗагрузки = Неопределено Тогда - ПараметрыЗагрузки = ПараметрыЗагрузкиКлассификатора(ВариантЗагрузки); - КонецЕсли; - - ПараметрыЗагрузки.Путь = ВыбранноеИмяФайла; - ПараметрыЗагрузки.АдресДанных = АдресДанных; - - ЗавершитьЗагрузкуКлассификатора(ПараметрыЗагрузки); -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики загрузки данных из интернета - -&НаКлиенте -Процедура ПриПодключенииИнтернетПоддержки(РезультатВопроса, ДополнительныеПараметры) Экспорт - Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда - Возврат; - КонецЕсли; - - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда - ОписаниеОповещения = Новый ОписаниеОповещения("ПослеПодключенияИнтернетПоддержки", ЭтотОбъект); - МодульИнтернетПоддержкаПользователейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиент"); - МодульИнтернетПоддержкаПользователейКлиент.ПодключитьИнтернетПоддержкуПользователей(ОписаниеОповещения, ЭтотОбъект); - КонецЕсли; -КонецПроцедуры - -&НаКлиенте -Процедура ПослеПодключенияИнтернетПоддержки(Результат, ДополнительныеПараметры) Экспорт - Если Не (ТипЗнч(Результат) = Тип("Структура") - И ЗначениеЗаполнено(Результат.Логин)) Тогда - Возврат; - КонецЕсли; - ЗагрузитьКлассификатор(); -КонецПроцедуры - -&НаСервере -Функция ТребуетсяНастройкаАвторизацияИнтернетПоддержки() - УстановитьПривилегированныйРежим(Истина); - ИспользоватьАльтернативныйСервер = Константы.ИспользоватьАльтернативныйСерверДляЗагрузкиКлассификатораБанков.Получить(); - УстановитьПривилегированныйРежим(Ложь); - - Если Не ИспользоватьАльтернативныйСервер Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда - МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей"); - Возврат Не МодульИнтернетПоддержкаПользователей.ЗаполненыДанныеАутентификацииПользователяИнтернетПоддержки(); - КонецЕсли; - КонецЕсли; - Возврат Ложь; -КонецФункции - -//////////////////////////////////////////////////////////////////////////////// -// Обработчики загрузки данных классификатора - -&НаСервере -Функция ПолучитьДанныеНаСервере(ПараметрыЗагрузки) - Если ОбщегоНазначения.РазделениеВключено() Тогда - ВызватьИсключение НСтр("ru = 'Загрузка классификатора банков в разделенном режиме запрещена.'"); - КонецЕсли; - - Если ПараметрыЗагрузки.ВариантЗагрузки <> "Интернет" Тогда - АдресДанных = ПараметрыЗагрузки.АдресДанных; - ПараметрыЗагрузки.АдресДанных = Новый ХранилищеЗначения( - ПолучитьИзВременногоХранилища(АдресДанных), Новый СжатиеДанных(9)); - УдалитьИзВременногоХранилища(АдресДанных); - КонецЕсли; - - ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); - ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Загрузка классификатора банков РФ'"); - Результат = ДлительныеОперации.ВыполнитьВФоне("Обработки.ЗагрузкаКлассификатораБанков.ПолучитьДанные", ПараметрыЗагрузки, ПараметрыВыполнения); - - Возврат Результат; -КонецФункции - -&НаКлиенте -Процедура ПриЗавершенииОперацииЗагрузки(Результат, ДополнительныеПараметры) Экспорт - Если Результат = Неопределено Тогда - Возврат; - КонецЕсли; - - Если Результат.Статус = "Ошибка" Тогда - ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(НСтр("ru = 'Загрузка классификатора банков'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()), - "Ошибка", Результат.ПодробноеПредставлениеОшибки, , Истина); - - Элементы.ПоясняющийТекст.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Загрузка классификатора банков прервана по причине: - |%1 - |Подробности см. в журнале регистрации.'"), - Результат.КраткоеПредставлениеОшибки); - - Элементы.СтраницыФормы.ТекущаяСтраница = Элементы.СтраницаРезультат; - УстановитьИзмененияВИнтерфейсе(); - Возврат; - КонецЕсли; - - ЗагрузитьРезультат(Результат.АдресРезультата); -КонецПроцедуры - -&НаКлиенте -Процедура ЗагрузитьРезультат(АдресХранилища) - // Отображает результат попытки загрузки классификатора банков РФ в журнале регистрации - // и в форме загрузки. - Если ВариантЗагрузки = "ИТС" Тогда - Источник = НСтр("ru ='Диск ИТС'"); - ИначеЕсли ВариантЗагрузки = "Файл" Тогда - Источник = НСтр("ru ='Файл'"); - Иначе - Источник = НСтр("ru ='Сайт 1С'"); - КонецЕсли; - - ПараметрыЗагрузкиКлассификатора = ПолучитьИзВременногоХранилища(АдресХранилища); - - ИмяСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru ='Загрузка классификатора банков.%1'"), Источник); - - Если ПараметрыЗагрузкиКлассификатора.ЗагрузкаВыполнена Тогда - ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия,, - ПараметрыЗагрузкиКлассификатора.ТекстСообщения, , Истина); - РаботаСБанкамиКлиент.ОповеститьКлассификаторУспешноОбновлен(); - Иначе - ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия, - "Ошибка", ПараметрыЗагрузкиКлассификатора.ТекстСообщения, , Истина); - КонецЕсли; - Элементы.ПоясняющийТекст.Заголовок = ПараметрыЗагрузкиКлассификатора.ТекстСообщения; - - Элементы.СтраницыФормы.ТекущаяСтраница = Элементы.СтраницаРезультат; - УстановитьИзмененияВИнтерфейсе(); - - Если (ПараметрыЗагрузкиКлассификатора.Обновлено > 0) Или (ПараметрыЗагрузкиКлассификатора.Загружено > 0) Тогда - ОповеститьОбИзменении(Тип("СправочникСсылка.КлассификаторБанков")); - КонецЕсли; -КонецПроцедуры - -//////////////////////////////////////////////////////////////////////////////// -// Общие обработчики - -&НаСервере -Процедура УстановитьИзмененияВИнтерфейсе() - - Если Не ОбщегоНазначения.ЭтоВебКлиент() Тогда - Элементы.Путь.Доступность = (ВариантЗагрузки <> "Интернет"); - - Элементы.Путь.ПодсказкаВвода = ""; - Если ВариантЗагрузки = "ИТС" Тогда - Элементы.Путь.ПодсказкаВвода = НСтр("ru = 'Путь к диску ИТС, например E:\'"); - ИначеЕсли ВариантЗагрузки = "Файл" И Не ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда - Элементы.Путь.ПодсказкаВвода = НСтр("ru = 'Путь к файлу классификатора, например C:\...\bnk.zip'"); - КонецЕсли; - КонецЕсли; - - Элементы.ФормаКнопкаДалее.Видимость = Элементы.СтраницыФормы.ТекущаяСтраница = Элементы.СтраницаВыборИсточника - Или Элементы.СтраницыФормы.ТекущаяСтраница = Элементы.ЗагрузкаССайта1С; - - Если Элементы.СтраницыФормы.ТекущаяСтраница = Элементы.СтраницаРезультат Тогда - Элементы.ФормаОтмена.Заголовок = НСтр("ru ='Закрыть'"); - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Функция ПараметрыЗагрузкиКлассификатора(Знач ВариантЗагрузки) - ПараметрыЗагрузки = Новый Структура; - ПараметрыЗагрузки.Вставить("Загружено", 0); - ПараметрыЗагрузки.Вставить("Обновлено", 0); - ПараметрыЗагрузки.Вставить("ТекстСообщения", ""); - ПараметрыЗагрузки.Вставить("ЗагрузкаВыполнена", Ложь); - ПараметрыЗагрузки.Вставить("ВариантЗагрузки", ВариантЗагрузки); - - Если ВариантЗагрузки <> "Интернет" Тогда - ПараметрыЗагрузки.Вставить("ДискИТС", ""); - ПараметрыЗагрузки.Вставить("КодБуквыДиска", 67); - ПараметрыЗагрузки.Вставить("ПутьНаДискеИТС", "1CITS\EXE\EXTDB\bnk.zip"); - ПараметрыЗагрузки.Вставить("Путь", ""); - ПараметрыЗагрузки.Вставить("АдресДанных", ""); - КонецЕсли; - - Возврат ПараметрыЗагрузки; -КонецФункции - -#КонецОбласти diff --git a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/Форма/Form.form b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/Форма/Form.form new file mode 100644 index 000000000..f60298d1b --- /dev/null +++ b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/Форма/Form.form @@ -0,0 +1,42 @@ + + + + ФормаКоманднаяПанель + -1 + Left + true + + + OnOpen + ПриОткрытии + + DontBlock + true + true + true + Vertical + true + true + true + auto + true + + Объект + 1 + + DataProcessorObject.ЗагрузкаКлассификатораБанков + + + true + + + true + +
                    true
                    +
                    + + + + + +
                    diff --git a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаВыбора/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/Форма/Module.bsl similarity index 67% rename from SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаВыбора/Module.bsl rename to SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/Форма/Module.bsl index bfdf98598..d9c999eb2 100644 --- a/SSL/src/ChartsOfCharacteristicTypes/ВопросыДляАнкетирования/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/Forms/Форма/Module.bsl @@ -8,13 +8,10 @@ #Область ОбработчикиСобытийФормы -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - +&НаКлиенте +Процедура ПриОткрытии(Отказ) + Отказ = Истина; + РаботаСБанкамиКлиент.ОткрытьФормуЗагрузкиКлассификатора(); КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ManagerModule.bsl b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ManagerModule.bsl index 9e8aa3414..4aabb5f15 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ManagerModule.bsl @@ -8,424 +8,79 @@ #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда -#Область СлужебныеПроцедурыИФункции +#Область ПрограммныйИнтерфейс -// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий. -Процедура ПриОпределенииНастроекРегламентныхЗаданий(Зависимости) Экспорт - Зависимость = Зависимости.Добавить(); - Зависимость.РегламентноеЗадание = Метаданные.РегламентныеЗадания.ЗагрузкаКлассификатораБанков; - Зависимость.ДоступноВМоделиСервиса = Ложь; - Зависимость.ДоступноВПодчиненномУзлеРИБ = Ложь; +#Область ДляВызоваИзДругихПодсистем + +// ИнтернетПоддержкаПользователей.РаботаСКлассификаторами + +// См. РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов. +Процедура ПриДобавленииКлассификаторов(Классификаторы, Описатель) Экспорт + + Описатель.Идентификатор = ИдентификаторКлассификатора(); + Описатель.Наименование = НСтр("ru = 'Справочник по кредитным организациям'"); + Описатель.ОбновлятьАвтоматически = Истина; + Описатель.ОбщиеДанные = Истина; + Описатель.ОбработкаРазделенныхДанных = Ложь; + Описатель.СохранятьФайлВКэш = Истина; + + Классификаторы.Добавить(Описатель); + КонецПроцедуры -// Возвращает список разрешений для загрузки классификатора банков с сайта 1С. -// -// Параметры: -// Разрешения - Массив - коллекция разрешений. -// -Процедура ДобавитьРазрешения(Разрешения) Экспорт +// См. РаботаСКлассификаторамиПереопределяемый.ПриЗагрузкеКлассификатора. +Процедура ПриЗагрузкеКлассификатора(Идентификатор, Версия, Адрес, Обработан, ДополнительныеПараметры) Экспорт - УстановитьПривилегированныйРежим(Истина); - ИспользоватьАльтернативныйСервер = Константы.ИспользоватьАльтернативныйСерверДляЗагрузкиКлассификатораБанков.Получить(); - УстановитьПривилегированныйРежим(Ложь); - - МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме"); - - Если ИспользоватьАльтернативныйСервер Тогда - Протокол = "HTTP"; - Адрес = "cbrates.rbc.ru"; - Порт = Неопределено; - Описание = НСтр("ru = 'Загрузка классификатора банков с сайта РБК.'"); - Разрешения.Добавить( - МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(Протокол, Адрес, Порт, Описание)); - Иначе - Протокол = "HTTPS"; - Адрес = "bankregister.1c.ru"; - Порт = Неопределено; - Описание = НСтр("ru = 'Загрузка классификатора банков с сайта 1С.'"); - Разрешения.Добавить( - МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(Протокол, Адрес, Порт, Описание)); + Если Идентификатор <> ИдентификаторКлассификатора() Тогда + Возврат; КонецЕсли; + ИмяВременногоФайла = ПолучитьИмяВременногоФайла("zip"); + ДвоичныеДанные = ПолучитьИзВременногоХранилища(Адрес); + ДвоичныеДанные.Записать(ИмяВременногоФайла); + ЗагрузитьДанныеИзФайла(ИмяВременногоФайла); + УдалитьФайлы(ИмяВременногоФайла); + + Обработан = Истина; + КонецПроцедуры +// Конец ИнтернетПоддержкаПользователей.РаботаСКлассификаторами + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Процедура ПриПолученииДанныхКлассификатора(Параметры, СтандартнаяОбработка) Экспорт СтандартнаяОбработка = Истина; КонецПроцедуры -// Формирует, дополняет текст сообщения пользователю в случае, если загрузка данных классификатора проведена успешно. -// -// Параметры: -// ПараметрыЗагрузкиКлассификатора - Структура: -// Загружено - Число - Количество новых записей классификатора. -// Обновлено - Число - Количество обновленных записей классификатора. -// ТекстСообщения - Строка - тест сообщения о результатах загрузки. -// ЗагрузкаВыполнена - Булево - флаг успешного завершения загрузки данных классификатора. -// -Процедура ДополнитьТекстСообщения(ПараметрыЗагрузкиКлассификатора) +Процедура ЗагрузитьДанные(Параметры) - ТекстСообщения = ПараметрыЗагрузкиКлассификатора.ТекстСообщения; - Загружено = ПараметрыЗагрузкиКлассификатора.Загружено; - Обновлено = ПараметрыЗагрузкиКлассификатора.Обновлено; + Регионы = Регионы(Параметры.ПутьКФайлуРегионов); - Если ПустаяСтрока(ТекстСообщения) Тогда - Если Загружено = 0 И Обновлено = 0 Тогда - ТекстСообщения = НСтр("ru ='Загрузка завершена. Изменений в классификаторе нет.'"); - Иначе - ТекстСообщения = НСтр("ru ='Загрузка классификатора банков РФ выполнена успешно.'"); - КонецЕсли; - КонецЕсли; + ЧтениеТекста = Новый ЧтениеТекста(Параметры.ПутьКФайлуБИК, "windows-1251"); + ТекстКлассификатора = ЧтениеТекста.Прочитать(); + ЧтениеТекста.Закрыть(); - Если Загружено > 0 Тогда - ТекстСообщения = ТекстСообщения + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru ='Загружено новых: %1.'"), Загружено); - КонецЕсли; - - Если Обновлено > 0 Тогда - ТекстСообщения = ТекстСообщения + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru ='Обновлено записей: %1.'"), Обновлено); - КонецЕсли; - - ПараметрыЗагрузкиКлассификатора.ТекстСообщения = ТекстСообщения; - -КонецПроцедуры - -// Получает данные классификатора БИК РФ с сайта 1С или с диска ИТС. -// -// Параметры: -// ПараметрыЗагрузкиКлассификатора - Структура - содержит параметры: -// * ВариантЗагрузки - Строка - "ИТС", "Интернет" или "Файл". -// * АдресДанных - Строка - Если ВариантЗагрузки = "ИТС" или "Файл", то содержит -// адрес временного хранилища с bnk.zip. -// * Загружено - Число - Количество новых записей классификатора. -// * Обновлено - Число - Количество обновленных записей классификатора. -// * ТекстСообщения - Строка - Текст сообщения о результатах загрузки. -// * ЗагрузкаВыполнена - Булево - Флаг успешного завершения загрузки данных классификатора. -// * АдресХранилища - Строка - Адрес внутреннего хранилища. -// -Процедура ПолучитьДанные(ПараметрыЗагрузкиКлассификатора, АдресХранилища = "") Экспорт - - ТекущаяВерсияКлассификатора = ВерсияКлассификатора(); - - ВременныйКаталог = ФайловаяСистема.СоздатьВременныйКаталог(); - - ПараметрыПолученияФайлов = Новый Структура; - ПараметрыПолученияФайлов.Вставить("ПутьКФайлу", ""); - ПараметрыПолученияФайлов.Вставить("ТекстСообщения", ПараметрыЗагрузкиКлассификатора.ТекстСообщения); - ПараметрыПолученияФайлов.Вставить("ВременныйКаталог", ВременныйКаталог); - ПараметрыПолученияФайлов.Вставить("ЕстьОбновлениеНаСервере", Истина); - ПараметрыПолученияФайлов.Вставить("ВерсияКлассификатора", ТекущаяВерсияКлассификатора); - - Попытка - Если ПараметрыЗагрузкиКлассификатора.ВариантЗагрузки = "Интернет" Тогда - ПолучитьДанныеИзИнтернета(ПараметрыПолученияФайлов); - Иначе // ИТС или Файл. - ДанныеКлассификатора = ПараметрыЗагрузкиКлассификатора.АдресДанных.Получить(); - ПараметрыПолученияФайлов.ПутьКФайлу = ВременныйКаталог + "\bnk.zip"; - ДанныеКлассификатора.Записать(ПараметрыПолученияФайлов.ПутьКФайлу); - КонецЕсли; - ПрочитатьИЗагрузитьДанные(ПараметрыЗагрузкиКлассификатора, ПараметрыПолученияФайлов, АдресХранилища); - ФайловаяСистема.УдалитьВременныйКаталог(ВременныйКаталог); - Исключение - ФайловаяСистема.УдалитьВременныйКаталог(ВременныйКаталог); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -Процедура ПрочитатьИЗагрузитьДанные(ПараметрыЗагрузкиКлассификатора, ПараметрыПолученияФайлов, АдресХранилища = "") - - Если Не ПустаяСтрока(ПараметрыПолученияФайлов.ТекстСообщения) Тогда - ПараметрыЗагрузкиКлассификатора.ТекстСообщения = ПараметрыПолученияФайлов.ТекстСообщения; - Если НЕ ПустаяСтрока(АдресХранилища) Тогда - ПоместитьВоВременноеХранилище(ПараметрыЗагрузкиКлассификатора, АдресХранилища); - КонецЕсли; - Возврат; - КонецЕсли; - - Если ПараметрыПолученияФайлов.ЕстьОбновлениеНаСервере Тогда - Попытка - ZIPФайл = Новый ЧтениеZipФайла(ПараметрыПолученияФайлов.ПутьКФайлу); - Исключение - ТекстСообщения = НСтр("ru = 'Возникли проблемы с файлом классификатора банков, полученным с сайта 1С.'"); - ТекстСообщения = ТекстСообщения + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - КонецПопытки; - - Если Не ПустаяСтрока(ТекстСообщения) Тогда - ПараметрыЗагрузкиКлассификатора.ТекстСообщения = ТекстСообщения; - Если НЕ ПустаяСтрока(АдресХранилища) Тогда - ПоместитьВоВременноеХранилище(ПараметрыЗагрузкиКлассификатора, АдресХранилища); - КонецЕсли; - Возврат; - КонецЕсли; - - ВременныйКаталог = ПараметрыПолученияФайлов.ВременныйКаталог; - Попытка - ZIPФайл.ИзвлечьВсе(ВременныйКаталог); - Исключение - ТекстСообщения = НСтр("ru = 'Возникли проблемы с файлом классификатора банков, полученным с сайта 1С.'"); - ТекстСообщения = ТекстСообщения + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - КонецПопытки; - - Если Не ПустаяСтрока(ТекстСообщения) Тогда - ПараметрыЗагрузкиКлассификатора.ТекстСообщения = ТекстСообщения; - Если НЕ ПустаяСтрока(АдресХранилища) Тогда - ПоместитьВоВременноеХранилище(ПараметрыЗагрузкиКлассификатора, АдресХранилища); - КонецЕсли; - Возврат; - КонецЕсли; - - ПутьКФайлуБИК = ИмяФайлаБИКСВИФТ(ВременныйКаталог); - ФайлБИК = Новый Файл(ИмяФайлаБИКСВИФТ(ВременныйКаталог)); - Если Не ФайлБИК.Существует() Тогда - ПутьКФайлуБИК = ИмяФайлаБИК(ВременныйКаталог); - КонецЕсли; - - ФайлБИК = Новый Файл(ПутьКФайлуБИК); - Если Не ФайлБИК.Существует() Тогда - ТекстСообщения = НСтр("ru = 'Возникли проблемы с файлом классификатора банков, полученным с сайта 1С. - |Архив не содержит информацию - классификатор банков.'"); - ПараметрыЗагрузкиКлассификатора.ТекстСообщения = ТекстСообщения; - Если НЕ ПустаяСтрока(АдресХранилища) Тогда - ПоместитьВоВременноеХранилище(ПараметрыЗагрузкиКлассификатора, АдресХранилища); - КонецЕсли; - Возврат; - КонецЕсли; - - ПутьКФайлуРегионов = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ВременныйКаталог) + "reg.txt"; - ФайлРегионов = Новый Файл(ПутьКФайлуРегионов); - Если Не ФайлРегионов.Существует() Тогда - ТекстСообщения = НСтр("ru ='Возникли проблемы с файлом классификатора банков, полученным с сайта 1С. - |Архив не содержит информацию о регионах.'"); - ПараметрыЗагрузкиКлассификатора.ТекстСообщения = ТекстСообщения; - Если НЕ ПустаяСтрока(АдресХранилища) Тогда - ПоместитьВоВременноеХранилище(ПараметрыЗагрузкиКлассификатора, АдресХранилища); - КонецЕсли; - Возврат; - КонецЕсли; - - ПутьКФайлуНедействующихБанков = ИмяФайлаНедействующихБанков(ВременныйКаталог); - ФайлНедействующихБанков = Новый Файл(ПутьКФайлуНедействующихБанков); - Если Не ФайлНедействующихБанков.Существует() Тогда - ТекстСообщения = НСтр("ru ='Возникли проблемы с файлом классификатора банков, полученным с сайта 1С. - |Архив не содержит информацию о недействующих банках.'"); - ПараметрыЗагрузкиКлассификатора.ТекстСообщения = ТекстСообщения; - Если НЕ ПустаяСтрока(АдресХранилища) Тогда - ПоместитьВоВременноеХранилище(ПараметрыЗагрузкиКлассификатора, АдресХранилища); - КонецЕсли; - Возврат; - КонецЕсли; - - ПараметрыЗагрузкиФайлов = Новый Структура; - ПараметрыЗагрузкиФайлов.Вставить("ПутьКФайлуБИК", ПутьКФайлуБИК); - ПараметрыЗагрузкиФайлов.Вставить("ПутьКФайлуРегионов", ПутьКФайлуРегионов); - ПараметрыЗагрузкиФайлов.Вставить("ПутьКФайлуНедействующихБанков", ПутьКФайлуНедействующихБанков); - ПараметрыЗагрузкиФайлов.Вставить("ВременныйКаталог", ВременныйКаталог); - ПараметрыЗагрузкиФайлов.Вставить("Загружено", ПараметрыЗагрузкиКлассификатора.Загружено); - ПараметрыЗагрузкиФайлов.Вставить("Обновлено", ПараметрыЗагрузкиКлассификатора.Обновлено); - ПараметрыЗагрузкиФайлов.Вставить("ТекстСообщения", ПараметрыЗагрузкиКлассификатора.ТекстСообщения); - - ЗагрузитьДанные(ПараметрыЗагрузкиФайлов); - - Если Не ПустаяСтрока(ПараметрыЗагрузкиФайлов.ТекстСообщения) Тогда - Если НЕ ПустаяСтрока(АдресХранилища) Тогда - ПоместитьВоВременноеХранилище(ПараметрыЗагрузкиКлассификатора, АдресХранилища); - КонецЕсли; - Возврат; - КонецЕсли; - - ПараметрыЗагрузкиКлассификатора.Загружено = ПараметрыЗагрузкиФайлов.Загружено; - ПараметрыЗагрузкиКлассификатора.Обновлено = ПараметрыЗагрузкиФайлов.Обновлено; - ПараметрыЗагрузкиКлассификатора.ТекстСообщения = ПараметрыЗагрузкиФайлов.ТекстСообщения; - - КонецЕсли; - - УстановитьВерсиюКлассификатора(ПараметрыПолученияФайлов.ВерсияКлассификатора); - - ПараметрыЗагрузкиКлассификатора.ЗагрузкаВыполнена = Истина; - ДополнитьТекстСообщения(ПараметрыЗагрузкиКлассификатора); - - Если НЕ ПустаяСтрока(АдресХранилища) Тогда - ПоместитьВоВременноеХранилище(ПараметрыЗагрузкиКлассификатора, АдресХранилища); - КонецЕсли; - -КонецПроцедуры - -Процедура ЗагрузитьКлассификаторБанков() Экспорт - - ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ЗагрузкаКлассификатораБанков); - - УровеньСобытия = УровеньЖурналаРегистрации.Информация; - - Если ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда - ЗаписьЖурналаРегистрации(ИмяСобытияВЖурналеРегистрации(), УровеньСобытия, , , НСтр("ru = 'Загрузка в подчиненном узле РИБ не предусмотрена'")); - Возврат; - КонецЕсли; - - ПараметрыЗагрузкиКлассификатора = Новый Структура; - ПараметрыЗагрузкиКлассификатора.Вставить("Загружено", 0); - ПараметрыЗагрузкиКлассификатора.Вставить("Обновлено", 0); - ПараметрыЗагрузкиКлассификатора.Вставить("ТекстСообщения", ""); - ПараметрыЗагрузкиКлассификатора.Вставить("ЗагрузкаВыполнена", Ложь); - ПараметрыЗагрузкиКлассификатора.Вставить("ВариантЗагрузки", "Интернет"); - - ПолучитьДанные(ПараметрыЗагрузкиКлассификатора); - - Если ПараметрыЗагрузкиКлассификатора.ЗагрузкаВыполнена Тогда - Если ПустаяСтрока(ПараметрыЗагрузкиКлассификатора.ТекстСообщения) Тогда - ДополнитьТекстСообщения(ПараметрыЗагрузкиКлассификатора); - КонецЕсли; - Иначе - УровеньСобытия = УровеньЖурналаРегистрации.Ошибка; - КонецЕсли; - - ЗаписьЖурналаРегистрации(ИмяСобытияВЖурналеРегистрации(), УровеньСобытия, , , - ПараметрыЗагрузкиКлассификатора.ТекстСообщения); - -КонецПроцедуры - -Процедура ЗагрузитьДанные(ПараметрыЗагрузкиФайлов) - - Регионы = Регионы(ПараметрыЗагрузкиФайлов.ПутьКФайлуРегионов); - - ТекстБИК = Новый ЧтениеТекста(ПараметрыЗагрузкиФайлов.ПутьКФайлуБИК, "windows-1251"); - СтрокаТекстаБИК = ТекстБИК.ПрочитатьСтроку(); - - ПараметрыЗагрузкиДанных = Новый Структура; - ПараметрыЗагрузкиДанных.Вставить("Загружено", ПараметрыЗагрузкиФайлов.Загружено); - ПараметрыЗагрузкиДанных.Вставить("Обновлено", ПараметрыЗагрузкиФайлов.Обновлено); - - Пока СтрокаТекстаБИК <> Неопределено Цикл - - Строка = СтрокаТекстаБИК; - - Если ПустаяСтрока(СокрЛП(Строка)) Тогда + Для Каждого Строка Из СтрРазделить(ТекстКлассификатора, Символы.ПС, Ложь) Цикл + СведенияОБанке = СведенияОБанке(Строка, Регионы); + Если СведенияОБанке = Неопределено Тогда Продолжить; КонецЕсли; - СтруктураБанк = СведенияОБанке(Строка, Регионы); - СтрокаТекстаБИК = ТекстБИК.ПрочитатьСтроку(); - - Если ПустаяСтрока(СтруктураБанк) Тогда - Продолжить; - КонецЕсли; - - ПараметрыЗагрузкиДанных.Вставить("СтруктураБанк", СтруктураБанк); - ЗаписатьЭлементКлассификатораБанковРФ(ПараметрыЗагрузкиДанных); - + ЗаписатьЭлементКлассификатораБанковРФ(СведенияОБанке); КонецЦикла; // Пометка недействующих банков. - ДействующиеБанки = ДействующиеБанкиИзФайла(ПараметрыЗагрузкиФайлов.ПутьКФайлуБИК); - НедействующиеБанки = НедействующиеБанкиИзФайла(ПараметрыЗагрузкиФайлов.ПутьКФайлуНедействующихБанков); - КоличествоОтмеченных = ОтметитьНедействующиеБанки(ДействующиеБанки, НедействующиеБанки); - ПараметрыЗагрузкиДанных.Обновлено = ПараметрыЗагрузкиДанных.Обновлено + КоличествоОтмеченных; - - ПараметрыЗагрузкиФайлов.Загружено = ПараметрыЗагрузкиДанных.Загружено; - ПараметрыЗагрузкиФайлов.Обновлено = ПараметрыЗагрузкиДанных.Обновлено; -КонецПроцедуры - -Процедура ПолучитьДанныеИзИнтернета(ПараметрыПолученияФайлов) - - УстановитьПривилегированныйРежим(Истина); - ИспользоватьАльтернативныйСервер = Константы.ИспользоватьАльтернативныйСерверДляЗагрузкиКлассификатораБанков.Получить(); - ПараметрыПолучения = ПараметрыАутентификацииНаСайте(); - УстановитьПривилегированныйРежим(Ложь); - - Если ИспользоватьАльтернативныйСервер Тогда - ФайлНаВебСервере = "http://cbrates.rbc.ru/bnk/bnk.zip"; - Иначе - ФайлНаВебСервере = "https://bankregister.1c.ru/bankregister/v1/bnk.zip"; - КонецЕсли; - - ВременныйФайл = ПараметрыПолученияФайлов.ВременныйКаталог+ "\bnk.zip"; - ПараметрыПолучения.Вставить("ПутьДляСохранения", ВременныйФайл); - - ДатаПоследнегоОбновления = ПараметрыПолученияФайлов.ВерсияКлассификатора; - ПараметрыПолучения.Вставить("Заголовки", Новый Соответствие); - ПараметрыПолучения.Заголовки.Вставить("If-Modified-Since", ДатаHTTP(ДатаПоследнегоОбновления)); - - РезультатИзИнтернета = ПолучениеФайловИзИнтернета.СкачатьФайлНаСервере(ФайлНаВебСервере, ПараметрыПолучения); - - Если РезультатИзИнтернета.Статус Тогда - ПараметрыПолученияФайлов.ПутьКФайлу = РезультатИзИнтернета.Путь; - ВерсияКлассификатора = РезультатИзИнтернета.Заголовки["Last-Modified"]; - Если ВерсияКлассификатора <> Неопределено Тогда - ВерсияКлассификатора = ПрочитатьДатуHTTP(ВерсияКлассификатора); - ПараметрыПолученияФайлов.ВерсияКлассификатора = ВерсияКлассификатора; - КонецЕсли; - Иначе - Если РезультатИзИнтернета.КодСостояния = 304 Тогда - ПараметрыПолученияФайлов.ЕстьОбновлениеНаСервере = Ложь; - Иначе - Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда - ДополнительноеСообщение = Символы.ПС - + НСтр("ru ='Возможно неточные или неправильные настройки подключения к Интернету.'"); - Иначе - ДополнительноеСообщение = Символы.ПС - + НСтр("ru ='Возможно неточные или неправильные настройки подключения к Интернету на сервере 1С:Предприятие.'"); - КонецЕсли; - СообщениеОбОшибке = РезультатИзИнтернета.СообщениеОбОшибке + ДополнительноеСообщение; - ПараметрыПолученияФайлов.ТекстСообщения = СообщениеОбОшибке; - КонецЕсли; - КонецЕсли; + ДействующиеБанки = ДействующиеБанкиИзФайла(Параметры.ПутьКФайлуБИК); + НедействующиеБанки = НедействующиеБанкиИзФайла(Параметры.ПутьКФайлуНедействующихБанков); + ОтметитьНедействующиеБанки(ДействующиеБанки, НедействующиеБанки); КонецПроцедуры -Функция ПараметрыАутентификацииНаСайте() - Результат = Новый Структура; - Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда - МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей"); - ДанныеАутентификации = МодульИнтернетПоддержкаПользователей.ДанныеАутентификацииПользователяИнтернетПоддержки(); - Если ДанныеАутентификации <> Неопределено Тогда - Результат.Вставить("Пользователь", ДанныеАутентификации.Логин); - Результат.Вставить("Пароль", ДанныеАутентификации.Пароль); - КонецЕсли; - КонецЕсли; - - Возврат Результат; -КонецФункции - -// Преобразует дату формата rfc1123-date в обычную универсальную дату. -// См. https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html, п. 3.3.1. -Функция ПрочитатьДатуHTTP(ДатаHTTP) - Месяцы = СтрРазделить("Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec", ","); - ДатаВремя = СтрРазделить(ДатаHTTP, " ", Ложь); - - День = ДатаВремя[1]; - Месяц = Месяцы.Найти(ДатаВремя[2]) + 1; - Год = ДатаВремя[3]; - Время = СтрРазделить(ДатаВремя[4], ":", Истина); - Час = Время[0]; - Минута = Время[1]; - Секунда = Время[2]; - - УниверсальноеВремя = Дата(Год, Месяц, День, Час, Минута, Секунда); - Возврат УниверсальноеВремя; -КонецФункции - -// Преобразует универсальную дату в дату формата rfc1123-date. -// См. https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html, п. 3.3.1. -Функция ДатаHTTP(Знач Дата) - ДниНедели = СтрРазделить("Mon,Tue,Wed,Thu,Fri,Sat,Sun", ","); - Месяцы = СтрРазделить("Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec", ","); - - ШаблонДаты = "[ДеньНедели], [День] [Месяц] [Год] [Час]:[Минута]:[Секунда] GMT"; // АПК:1297 не локализуется - - ПараметрыДаты = Новый Структура; - ПараметрыДаты.Вставить("ДеньНедели", ДниНедели[ДеньНедели(Дата)-1]); - ПараметрыДаты.Вставить("День", Формат(День(Дата), "ЧЦ=2; ЧВН=")); - ПараметрыДаты.Вставить("Месяц", Месяцы[Месяц(Дата)-1]); - ПараметрыДаты.Вставить("Год", Формат(Год(Дата), "ЧЦ=4; ЧВН=; ЧГ=0")); - ПараметрыДаты.Вставить("Час", Формат(Час(Дата), "ЧЦ=2; ЧН=00; ЧВН=")); - ПараметрыДаты.Вставить("Минута", Формат(Минута(Дата), "ЧЦ=2; ЧН=00; ЧВН=")); - ПараметрыДаты.Вставить("Секунда", Формат(Секунда(Дата), "ЧЦ=2; ЧН=00; ЧВН=")); - - ДатаHTTP = СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку(ШаблонДаты, ПараметрыДаты); - - Возврат ДатаHTTP; -КонецФункции - Функция ОпределитьТипГородаПоКоду(КодТипа) Если КодТипа = "1" Тогда @@ -522,7 +177,7 @@ КонецЦикла; Если СтрДлина(Результат.БИК) <> 9 Тогда - Возврат ""; + Возврат Неопределено; КонецЕсли; Результат.ТипПункта = ОпределитьТипГородаПоКоду(Результат.ТипПункта); @@ -543,7 +198,8 @@ КонецФункции // Выполняет загрузку классификатора банков РФ из файла, полученного с сайта 1С. -Процедура ЗагрузитьДанныеИзФайла(ИмяФайла) Экспорт +Процедура ЗагрузитьДанныеИзФайла(ИмяФайла) + ПапкаСИзвлеченнымиФайлами = ИзвлечьФайлыИзАрхива(ИмяФайла); Если ФайлыКлассификатораПолучены(ПапкаСИзвлеченнымиФайлами) Тогда Параметры = Новый Структура; @@ -555,8 +211,6 @@ КонецЕсли; Параметры.Вставить("ПутьКФайлуРегионов", ИмяФайлаРегионов(ПапкаСИзвлеченнымиФайлами)); Параметры.Вставить("ПутьКФайлуНедействующихБанков", ИмяФайлаНедействующихБанков(ПапкаСИзвлеченнымиФайлами)); - Параметры.Вставить("Загружено", 0); - Параметры.Вставить("Обновлено", 0); Параметры.Вставить("ТекстСообщения", ""); Параметры.Вставить("ЗагрузкаВыполнена", Неопределено); @@ -635,15 +289,8 @@ КонецПроцедуры Функция ИмяСобытияВЖурналеРегистрации() - УстановитьПривилегированныйРежим(Истина); - ИспользоватьАльтернативныйСервер = Константы.ИспользоватьАльтернативныйСерверДляЗагрузкиКлассификатораБанков.Получить(); - УстановитьПривилегированныйРежим(Ложь); - Если ИспользоватьАльтернативныйСервер Тогда - Возврат НСтр("ru = 'Загрузка классификатора банков.РБК'", ОбщегоНазначения.КодОсновногоЯзыка()); - КонецЕсли; - - Возврат НСтр("ru = 'Загрузка классификатора банков.1С'", ОбщегоНазначения.КодОсновногоЯзыка()); + Возврат НСтр("ru = 'Загрузка классификатора банков.ИПП'", ОбщегоНазначения.КодОсновногоЯзыка()); КонецФункции @@ -732,12 +379,24 @@ |СГРУППИРОВАТЬ ПО | КлассификаторБанков.Ссылка"; - ВыборкаБанков = Запрос.Выполнить().Выбрать(); - Пока ВыборкаБанков.Следующий() Цикл - БанкОбъект = ВыборкаБанков.Ссылка.ПолучитьОбъект(); - БанкОбъект.ДеятельностьПрекращена = Истина; - БанкОбъект.Записать(); - КонецЦикла; + НачатьТранзакцию(); + Попытка + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.КлассификаторБанков"); + Блокировка.Заблокировать(); + + ВыборкаБанков = Запрос.Выполнить().Выбрать(); + Пока ВыборкаБанков.Следующий() Цикл + БанкОбъект = ВыборкаБанков.Ссылка.ПолучитьОбъект(); + БанкОбъект.ДеятельностьПрекращена = Истина; + БанкОбъект.Записать(); + КонецЦикла; + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; Возврат ВыборкаБанков.Количество(); @@ -753,109 +412,93 @@ // Загружено - Число - Количество новых записей классификатора. // Обновлено - Число - Количество обновленных записей классификатора. // -Процедура ЗаписатьЭлементКлассификатораБанковРФ(ПараметрыЗагрузкиДанных) +Процедура ЗаписатьЭлементКлассификатораБанковРФ(СведенияОБанке) - ФлагНовый = Ложь; - ФлагОбновленный = Ложь; - Регион = ""; - - СтруктураБанк = ПараметрыЗагрузкиДанных.СтруктураБанк; - Загружено = ПараметрыЗагрузкиДанных.Загружено; - Обновлено = ПараметрыЗагрузкиДанных.Обновлено; - - ТекущийРегион = Справочники.КлассификаторБанков.НайтиПоКоду(СтруктураБанк.КодРегиона); - - РегионНайден = Не ТекущийРегион.Пустая(); - - Если РегионНайден Тогда - Регион = ТекущийРегион.ПолучитьОбъект(); - Если Не ТекущийРегион.ЭтоГруппа Тогда - Регион.Код = ""; + НачатьТранзакцию(); + Попытка + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Справочник.КлассификаторБанков"); + Блокировка.Заблокировать(); + + РегионСсылка = Справочники.КлассификаторБанков.НайтиПоКоду(СведенияОБанке.КодРегиона); + + Если РегионСсылка.Пустая() Тогда + Регион = Справочники.КлассификаторБанков.СоздатьГруппу(); + Иначе + Регион = РегионСсылка.ПолучитьОбъект(); + Если Не РегионСсылка.ЭтоГруппа Тогда + Регион.Код = ""; + Регион.Записать(); + Регион = Справочники.КлассификаторБанков.СоздатьГруппу(); + КонецЕсли; + КонецЕсли; + + Если СокрЛП(Регион.Код) <> СокрЛП(СведенияОБанке.КодРегиона) Тогда + Регион.Код = СокрЛП(СведенияОБанке.КодРегиона); + КонецЕсли; + + Если СокрЛП(Регион.Наименование) <> СокрЛП(СведенияОБанке.Регион) Тогда + Регион.Наименование = СокрЛП(СведенияОБанке.Регион); + КонецЕсли; + + Если Регион.Модифицированность() Тогда Регион.Записать(); - РегионНайден = Ложь; КонецЕсли; - КонецЕсли; - Если Не РегионНайден Тогда - Регион = Справочники.КлассификаторБанков.СоздатьГруппу(); - КонецЕсли; - - Если СокрЛП(Регион.Код) <> СокрЛП(СтруктураБанк.КодРегиона) Тогда - Регион.Код = СокрЛП(СтруктураБанк.КодРегиона); - КонецЕсли; - - Если СокрЛП(Регион.Наименование) <> СокрЛП(СтруктураБанк.Регион) Тогда - Регион.Наименование = СокрЛП(СтруктураБанк.Регион); - КонецЕсли; - - Если Регион.Модифицированность() Тогда - Регион.Записать(); - КонецЕсли; - - ЗаписываемыйЭлементСправочникаКлассификаторБанков = - Справочники.КлассификаторБанков.НайтиПоКоду(СтруктураБанк.БИК); - - БанкНайден = Не ЗаписываемыйЭлементСправочникаКлассификаторБанков.Пустая(); - - Если БанкНайден Тогда - КлассификаторБанковОбъект = ЗаписываемыйЭлементСправочникаКлассификаторБанков.ПолучитьОбъект(); - Если КлассификаторБанковОбъект.ЭтоГруппа Тогда - КлассификаторБанковОбъект.Код = ""; - КлассификаторБанковОбъект.Записать(); - БанкНайден = Ложь; + БанкСсылка = Справочники.КлассификаторБанков.НайтиПоКоду(СведенияОБанке.БИК); + + Если БанкСсылка.Пустая() Тогда + БанкОбъект = Справочники.КлассификаторБанков.СоздатьЭлемент(); + Иначе + БанкОбъект = БанкСсылка.ПолучитьОбъект(); + Если БанкОбъект.ЭтоГруппа Тогда + БанкОбъект.Код = ""; + БанкОбъект.Записать(); + БанкОбъект = Справочники.КлассификаторБанков.СоздатьЭлемент(); + КонецЕсли; КонецЕсли; - КонецЕсли; - - Если Не БанкНайден Тогда - КлассификаторБанковОбъект = Справочники.КлассификаторБанков.СоздатьЭлемент(); - ФлагНовый = Истина; - КонецЕсли; - - Если КлассификаторБанковОбъект.ДеятельностьПрекращена Тогда - КлассификаторБанковОбъект.ДеятельностьПрекращена = Ложь; - КонецЕсли; - - Если КлассификаторБанковОбъект.Код <> СтруктураБанк.БИК Тогда - КлассификаторБанковОбъект.Код = СтруктураБанк.БИК; - КонецЕсли; - - Для Каждого Реквизит Из КлассификаторБанковОбъект.Метаданные().Реквизиты Цикл - ИмяРеквизита = Реквизит.Имя; - Если СтруктураБанк.Свойство(ИмяРеквизита) И ТипЗнч(КлассификаторБанковОбъект[ИмяРеквизита]) = Тип("Строка") Тогда - ОбновитьЗначениеРеквизита(КлассификаторБанковОбъект, ИмяРеквизита, СтруктураБанк[ИмяРеквизита]); + + Если БанкОбъект.ДеятельностьПрекращена Тогда + БанкОбъект.ДеятельностьПрекращена = Ложь; КонецЕсли; - КонецЦикла; - - ОбновитьЗначениеРеквизита(КлассификаторБанковОбъект, "Наименование", СтруктураБанк.Наименование); - - Если Не ПустаяСтрока(Регион) Тогда - Если КлассификаторБанковОбъект.Родитель <> Регион.Ссылка Тогда - КлассификаторБанковОбъект.Родитель = Регион.Ссылка; + + Если БанкОбъект.Код <> СведенияОБанке.БИК Тогда + БанкОбъект.Код = СведенияОБанке.БИК; КонецЕсли; - КонецЕсли; - - Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - Страна = "РФ"; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда - МодульРаботаСАдресамиКлиентСервер = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресамиКлиентСервер"); - Страна = МодульРаботаСАдресамиКлиентСервер.ОсновнаяСтрана(); + + Для Каждого Реквизит Из БанкОбъект.Метаданные().Реквизиты Цикл + ИмяРеквизита = Реквизит.Имя; + Если СведенияОБанке.Свойство(ИмяРеквизита) И ТипЗнч(БанкОбъект[ИмяРеквизита]) = Тип("Строка") Тогда + ОбновитьЗначениеРеквизита(БанкОбъект, ИмяРеквизита, СведенияОБанке[ИмяРеквизита]); + КонецЕсли; + КонецЦикла; + + ОбновитьЗначениеРеквизита(БанкОбъект, "Наименование", СведенияОБанке.Наименование); + + Если Не ПустаяСтрока(Регион) Тогда + Если БанкОбъект.Родитель <> Регион.Ссылка Тогда + БанкОбъект.Родитель = Регион.Ссылка; + КонецЕсли; КонецЕсли; - ОбновитьЗначениеРеквизита(КлассификаторБанковОбъект, "Страна", Страна); - КонецЕсли; - - Если КлассификаторБанковОбъект.Модифицированность() Тогда - ФлагОбновленный = Истина; - КлассификаторБанковОбъект.Записать(); - КонецЕсли; - - Если ФлагНовый Тогда - Загружено = Загружено + 1; - ИначеЕсли ФлагОбновленный Тогда - Обновлено = Обновлено + 1; - КонецЕсли; - - ПараметрыЗагрузкиДанных.Загружено = Загружено; - ПараметрыЗагрузкиДанных.Обновлено = Обновлено; + + Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + Страна = "РФ"; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда + МодульРаботаСАдресамиКлиентСервер = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресамиКлиентСервер"); + Страна = МодульРаботаСАдресамиКлиентСервер.ОсновнаяСтрана(); + КонецЕсли; + ОбновитьЗначениеРеквизита(БанкОбъект, "Страна", Страна); + КонецЕсли; + + Если БанкОбъект.Модифицированность() Тогда + БанкОбъект.Записать(); + КонецЕсли; + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; КонецПроцедуры @@ -907,57 +550,6 @@ КонецФункции -// См. ИнтернетПоддержкаПользователейПереопределяемый.ПриСохраненииДанныхАутентификацииПользователяИнтернетПоддержки. -Процедура ПриСохраненииДанныхАутентификацииПользователяИнтернетПоддержки(ДанныеПользователя) Экспорт - УстановитьПараметрыРегламентногоЗадания(Новый Структура("Использование", Истина)); -КонецПроцедуры - -// См. ИнтернетПоддержкаПользователейПереопределяемый.ПриУдаленииДанныхАутентификацииПользователяИнтернетПоддержки. -Процедура ПриУдаленииДанныхАутентификацииПользователяИнтернетПоддержки() Экспорт - УстановитьПараметрыРегламентногоЗадания(Новый Структура("Использование", Ложь)); -КонецПроцедуры - -// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. -Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - - Если Не ОбщегоНазначения.РазделениеВключено() Тогда - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "2.4.1.1"; - Обработчик.Процедура = "Обработки.ЗагрузкаКлассификатораБанков.УстановитьРасписаниеРегламентногоЗадания"; - Обработчик.РежимВыполнения = "Оперативно"; - Обработчик.НачальноеЗаполнение = Истина; - КонецЕсли; - -КонецПроцедуры - -Процедура УстановитьРасписаниеРегламентногоЗадания() Экспорт - - ГенераторСлучайныхЧисел = Новый ГенераторСлучайныхЧисел(ТекущаяУниверсальнаяДатаВМиллисекундах()); - Задержка = ГенераторСлучайныхЧисел.СлучайноеЧисло(0, 21600); // С 0 до 6 часов утра. - - Расписание = Новый РасписаниеРегламентногоЗадания; - Расписание.ПериодПовтораДней = 1; - Расписание.ПериодНедель = 1; - Расписание.ВремяНачала = '00010101000000' + Задержка; - - ПараметрыЗадания = Новый Структура; - ПараметрыЗадания.Вставить("Расписание", Расписание); - ПараметрыЗадания.Вставить("ИнтервалПовтораПриАварийномЗавершении", 600); - ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 10); - - УстановитьПараметрыРегламентногоЗадания(ПараметрыЗадания); - -КонецПроцедуры - -Процедура УстановитьПараметрыРегламентногоЗадания(ИзменяемыеПараметры) - РегламентныеЗаданияСервер.УстановитьПараметрыРегламентногоЗадания( - Метаданные.РегламентныеЗадания.ЗагрузкаКлассификатораБанков, ИзменяемыеПараметры); -КонецПроцедуры - -Функция ВерсияКлассификатора() - Возврат СведенияОКлассификаторе().ДатаМодификации; -КонецФункции - Функция ДатаПоследнейЗагрузки() Возврат СведенияОКлассификаторе().ДатаЗагрузки; КонецФункции @@ -989,6 +581,12 @@ Возврат Результат; КонецФункции +Функция ИдентификаторКлассификатора() + + Возврат "Banks"; + +КонецФункции + #КонецОбласти #КонецЕсли \ No newline at end of file diff --git a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ЗагрузкаКлассификатораБанков.mdo b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ЗагрузкаКлассификатораБанков.mdo index 74fcf8ee4..d4d440681 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ЗагрузкаКлассификатораБанков.mdo +++ b/SSL/src/DataProcessors/ЗагрузкаКлассификатораБанков/ЗагрузкаКлассификатораБанков.mdo @@ -9,18 +9,13 @@ ru Загрузка классификатора банков - true - - ЗагрузкаКлассификатора + DataProcessor.ЗагрузкаКлассификатораБанков.Form.Форма + + Форма ru - Загрузка классификатора + Форма - - - ru - - PersonalComputer MobileDevice diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Help/ru.html b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Help/ru.html index bb5c393f1..5238a7ac0 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Help/ru.html +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                    • Целая часть - укажите параметры склонения целой части валюты: Род и соответствующие шаблоны склонения в единственном и множественном числе. diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Module.bsl index 5681792de..ccf55be2f 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПараметрыПрописиВалюты/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЗаполнитьФормуПоОбъекту(); Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПодборВалютИзКлассификатора/Help/ru.html b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПодборВалютИзКлассификатора/Help/ru.html index d37eefea1..589ef0df5 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПодборВалютИзКлассификатора/Help/ru.html +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПодборВалютИзКлассификатора/Help/ru.html @@ -1,19 +1,24 @@ - +

                      Содержит общую информацию о валютах и предназначен для добавления новых валют (рекомендуется для корректного заполнения данных о валюте).

                      В Общероссийском классификаторе валют выводится:

                      • -
                        Код числовой - уникальный числовой код, принят международным стандартом, служит для идентификации валюты при загрузке курсов из сети Интернет (с сайта 1С).
                        -
                      • +
                        Код числовой - уникальный числовой код, принят международным стандартом, служит для идентификации валюты при загрузке курсов из сети Интернет (с портала 1С:ИТС).
                        +
                      • +
                      • Код символьный - принят международным стандартом, используется как краткое наименование и основное представление валюты.
                        -
                      • +
                      • +
                      • Наименование валюты - полное наименование.
                        -
                      • +
                      • +
                      • Страны и территории - указываются страны или территории, в которых данная валюта используется в качестве основной.
                        -
                      • -
                        Загружается из сети Интернет - если флажок включен, то валюта может загружаться с сайта 1С.

                      Добавление валюты из классификатора в список валют

                      +
                    • +
                    • +
                      Загружается из сети Интернет - если флажок включен, то валюта может загружаться с портала 1С:ИТС.

                    Добавление валюты из классификатора в список валют

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

                    См. также: 

                    \ No newline at end of file diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПодборВалютИзКлассификатора/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПодборВалютИзКлассификатора/Module.bsl index f579c98a0..328901ee2 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПодборВалютИзКлассификатора/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/ПодборВалютИзКлассификатора/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - // Заполнение списка валют из ОКВ. ЗакрыватьПриВыборе = Ложь; ЗаполнитьТаблицуВалют(); @@ -55,13 +51,7 @@ &НаСервере Процедура ЗаполнитьТаблицуВалют() - // Заполняет список валют из макета ОКВ. - - КлассификаторXML = Обработки.ЗагрузкаКурсовВалют.ПолучитьМакет("ОбщероссийскийКлассификаторВалют").ПолучитьТекст(); - - КлассификаторТаблица = ОбщегоНазначения.ПрочитатьXMLВТаблицу(КлассификаторXML).Данные; - - Для Каждого ЗаписьОКВ Из КлассификаторТаблица Цикл + Для Каждого ЗаписьОКВ Из Обработки.ЗагрузкаКурсовВалют.КлассификаторВалют() Цикл НоваяСтрока = Валюты.Добавить(); НоваяСтрока.КодВалютыЦифровой = ЗаписьОКВ.Code; НоваяСтрока.КодВалютыБуквенный = ЗаписьОКВ.CodeSymbol; diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/Форма/Module.bsl index 3cfba06ca..20559a4df 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Forms/Форма/Module.bsl @@ -12,9 +12,6 @@ Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Если НЕ Параметры.Свойство("ОткрытиеИзСписка") Тогда Если РаботаСКурсамиВалют.КурсыАктуальны() Тогда diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Help/ru.html b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Help/ru.html index a9bc160a8..4cafe4f7e 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Help/ru.html +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/Help/ru.html @@ -1,24 +1,36 @@ - -

                    Загрузка курсов валют производится с сайта 1С.

                    + +

                    Загрузка курсов валют производится на портале 1С:ИТС.

                    Окно загрузки курсов состоит из двух частей:

                    -
                    • Период: +
                      • Период:
                        • С - дата начала периода загрузки курсов валют. -
                        • -
                          По - дата окончания периода загрузки курсов валют.
                      • Список валют - заполняется по умолчанию из списка Валюты только теми валютами, у которых установлен флажок Загружается из интернета. В списке выводится: +
                      • +
                      • +
                        По - дата окончания периода загрузки курсов валют.
                    • +
                    • Список валют - заполняется по умолчанию из списка Валюты только теми валютами, у которых установлен флажок Загружается из интернета. В списке выводится:
                      • Загружать - включите флажок для загрузки курсов валюты за указанный период. -
                      • Символьный код - принят международным стандартом, используется как основное представление валюты. -
                      • Валюта - полное наименование валюты. -
                      • Дата курса - дата загруженного курса валюты. -
                      • Курс - выводится курс на указанную дату. -
                      • Кратность - количество котировочных единиц, не выводится, если равна 1.
                    • в список можно добавить дополнительные поля по команде Еще - Изменить форму: +
                    • +
                    • Символьный код - принят международным стандартом, используется как основное представление валюты. +
                    • +
                    • Валюта - полное наименование валюты. +
                    • +
                    • Дата курса - дата загруженного курса валюты. +
                    • +
                    • Курс - выводится курс на указанную дату. +
                    • +
                    • Кратность - количество котировочных единиц, не выводится, если равна 1.
                  • +
                  • в список можно добавить дополнительные поля по команде Еще - Изменить форму:
                    • Цифровой код - уникальный числовой код, принят международным стандартом, служит для идентификации валюты при загрузке курсов из сети Интернет.

                  Загрузка курсов выбранных валют 

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

                  См. также: 

                  \ No newline at end of file +
                • +
                • Работа с формами.
                \ No newline at end of file diff --git a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ManagerModule.bsl b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ManagerModule.bsl index 9f5af0f6a..eb153e25c 100644 --- a/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаКурсовВалют/ManagerModule.bsl @@ -8,6 +8,54 @@ #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда +#Область ПрограммныйИнтерфейс + +#Область ДляВызоваИзДругихПодсистем + +// ИнтернетПоддержкаПользователей.РаботаСКлассификаторами + +// См. РаботаСКлассификаторамиПереопределяемый.ПриДобавленииКлассификаторов. +Процедура ПриДобавленииКлассификаторов(Классификаторы, Описатель) Экспорт + + Описатель.Идентификатор = ИдентификаторКлассификатора(); + Описатель.Наименование = НСтр("ru = 'Общероссийский классификатор валют'"); + Описатель.ОбновлятьАвтоматически = Истина; + Описатель.ОбщиеДанные = Истина; + Описатель.ОбработкаРазделенныхДанных = Ложь; + Описатель.СохранятьФайлВКэш = Истина; + + Классификаторы.Добавить(Описатель); + +КонецПроцедуры + +// См. РаботаСКлассификаторамиПереопределяемый.ПриЗагрузкеКлассификатора. +Процедура ПриЗагрузкеКлассификатора(Идентификатор, Версия, Адрес, Обработан, ДополнительныеПараметры) Экспорт + + Если Идентификатор <> ИдентификаторКлассификатора() Тогда + Возврат; + КонецЕсли; + + ПотокВПамяти = Новый ПотокВПамяти; + ЗаписьДанных = Новый ЗаписьДанных(ПотокВПамяти); + ЗаписьДанных.Записать(ПолучитьИзВременногоХранилища(Адрес)); + ЗаписьДанных.Закрыть(); + ПотокВПамяти.Перейти(0, ПозицияВПотоке.Начало); + + ЧтениеТекста = Новый ЧтениеТекста(ПотокВПамяти); + КлассификаторXML = ЧтениеТекста.Прочитать(); + + УстановитьПривилегированныйРежим(Истина); + СтандартныеПодсистемыСервер.УстановитьПараметрРаботыПрограммы(ИдентификаторКлассификатора(), КлассификаторXML); + Обработан = Истина; + +КонецПроцедуры + +// Конец ИнтернетПоддержкаПользователей.РаботаСКлассификаторами + +#КонецОбласти + +#КонецОбласти + #Область СлужебныеПроцедурыИФункции // Добавляет в справочник валют валюты из классификатора. @@ -19,13 +67,10 @@ // Массив, СправочникСсылка.Валюты - ссылки созданных валют. // Функция ДобавитьВалютыПоКоду(Знач Коды) Экспорт - Перем КлассификаторXML, КлассификаторТаблица, ЗаписьОКВ, НоваяСтрока, Результат; - КлассификаторXML = ПолучитьМакет("ОбщероссийскийКлассификаторВалют").ПолучитьТекст(); - - КлассификаторТаблица = ОбщегоНазначения.ПрочитатьXMLВТаблицу(КлассификаторXML).Данные; - - Результат = Новый Массив(); + Результат = Новый Массив; + КлассификаторТаблица = КлассификаторВалют(); + Для каждого Код Из Коды Цикл ЗаписьОКВ = КлассификаторТаблица.Найти(Код, "Code"); Если ЗаписьОКВ = Неопределено Тогда @@ -165,10 +210,6 @@ // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт - Обработчик = Обработчики.Добавить(); - Обработчик.Версия = "1.0.5.9"; - Обработчик.Процедура = "Обработки.ЗагрузкаКурсовВалют.ОбновитьФорматХраненияПрописи"; - Обработчик = Обработчики.Добавить(); Обработчик.Версия = "2.4.1.1"; Обработчик.Процедура = "Обработки.ЗагрузкаКурсовВалют.ОтключитьЗагрузкуКурсаВалюты643ИзИнтернета"; @@ -224,25 +265,6 @@ Зависимость.ДоступноВАвтономномРабочемМесте = Ложь; КонецПроцедуры -// Устанавливает признак загрузки курсов из интернета по данным классификатора. -Процедура ПреобразованиеСвязейВалют() Экспорт - - КлассификаторXML = Обработки["ЗагрузкаКурсовВалют"].ПолучитьМакет("ОбщероссийскийКлассификаторВалют").ПолучитьТекст(); - КлассификаторТаблица = ОбщегоНазначения.ПрочитатьXMLВТаблицу(КлассификаторXML).Данные; - КлассификаторТаблица.Индексы.Добавить("Code"); - - Выборка = Справочники.Валюты.Выбрать(); - Пока Выборка.Следующий() Цикл - Валюта = Выборка.ПолучитьОбъект(); - НайденнаяСтрока = КлассификаторТаблица.Найти(Валюта.Код, "Code"); - Если НайденнаяСтрока <> Неопределено И НайденнаяСтрока.RBCLoading = "истина" Тогда - Валюта.СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.ЗагрузкаИзИнтернета; - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Валюта); - КонецЕсли; - КонецЦикла; - -КонецПроцедуры - // Процедура для загрузки курсов валют по определенному периоду. // // Параметры: @@ -423,7 +445,7 @@ Если ЧислоЗагружаемыхДнейВсего <> ЧислоЗагруженныхДней Тогда Если ЧислоЗагруженныхДней = 0 Тогда ПояснениеОЗагрузке = НСтр("ru = 'Курсы валюты %1 (%2) не загружены. - |Нет сведение о курсе за указанный период.'"); + |Нет сведений о курсе за указанный период.'"); Иначе ПояснениеОЗагрузке = НСтр("ru = 'Загружены не все курсы по валюте %1 (%2).'"); КонецЕсли; @@ -478,30 +500,6 @@ КонецФункции -Процедура ОбновитьФорматХраненияПрописи() Экспорт - - ВыборкаВалют = Справочники.Валюты.Выбрать(); - - Пока ВыборкаВалют.Следующий() Цикл - Объект = ВыборкаВалют.ПолучитьОбъект(); - СтрокаПараметров = СтрЗаменить(Объект.ПараметрыПрописи, ",", Символы.ПС); - Род1 = НРег(Лев(СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 4)), 1)); - Род2 = НРег(Лев(СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 8)), 1)); - Объект.ПараметрыПрописи = - СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 1)) + ", " - + СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 2)) + ", " - + СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 3)) + ", " - + Род1 + ", " - + СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 5)) + ", " - + СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 6)) + ", " - + СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 7)) + ", " - + Род2 + ", " - + СокрЛП(СтрПолучитьСтроку(СтрокаПараметров, 9)); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект); - КонецЦикла; - -КонецПроцедуры - // Отключает у валюты 643 загрузку из интернета. Процедура ОтключитьЗагрузкуКурсаВалюты643ИзИнтернета(Параметры) Экспорт Выборка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.Валюты"); @@ -553,8 +551,8 @@ КонецФункции Функция ВалютыЗагружаемыеИзИнтернета() - КлассификаторXML = ПолучитьМакет("ОбщероссийскийКлассификаторВалют").ПолучитьТекст(); - КлассификаторТаблица = ОбщегоНазначения.ПрочитатьXMLВТаблицу(КлассификаторXML).Данные; + + КлассификаторТаблица = КлассификаторВалют(); НайденныеСтроки = КлассификаторТаблица.НайтиСтроки(Новый Структура("RBCLoading", "истина")); ЗагружаемыеПоКлассификатору = КлассификаторТаблица.Скопировать(НайденныеСтроки, "Code").ВыгрузитьКолонку("Code"); @@ -574,22 +572,49 @@ Результат = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); Возврат Результат; + КонецФункции Функция ИмяСобытияЖурналаРегистрации() Возврат НСтр("ru = 'Валюты.Загрузка курсов валют'", ОбщегоНазначения.КодОсновногоЯзыка()); КонецФункции -// См. ИнтернетПоддержкаПользователейПереопределяемый.ПриСохраненииДанныхАутентификацииПользователяИнтернетПоддержки. -Процедура ПриСохраненииДанныхАутентификацииПользователяИнтернетПоддержки(ДанныеПользователя) Экспорт - УстановитьПараметрыРегламентногоЗадания(Новый Структура("Использование", Истина)); +// См. ИнтеграцияПодсистемБСП.ПриИзмененииДанныхАутентификацииИнтернетПоддержки. +Процедура ПриИзмененииДанныхАутентификацииИнтернетПоддержки(ДанныеПользователя) Экспорт + УстановитьПараметрыРегламентногоЗадания(Новый Структура("Использование", ДанныеПользователя <> Неопределено)); КонецПроцедуры -// См. ИнтернетПоддержкаПользователейПереопределяемый.ПриУдаленииДанныхАутентификацииПользователяИнтернетПоддержки. -Процедура ПриУдаленииДанныхАутентификацииПользователяИнтернетПоддержки() Экспорт - УстановитьПараметрыРегламентногоЗадания(Новый Структура("Использование", Ложь)); -КонецПроцедуры +Функция ИдентификаторКлассификатора() + + Возврат "Currencies"; + +КонецФункции + +Функция КлассификаторВалют() Экспорт + + Попытка + + КлассификаторXML = СтандартныеПодсистемыСервер.ПараметрРаботыПрограммы(ИдентификаторКлассификатора()); + + Исключение + + // Не удалось получить классификатор из кэша, будем использовать поставляемый из макета. + КлассификаторXML = Неопределено; + + КонецПопытки; + + Если КлассификаторXML = Неопределено Тогда + КлассификаторXML = ПолучитьМакет("ОбщероссийскийКлассификаторВалют").ПолучитьТекст(); + КонецЕсли; + + Результат = ОбщегоНазначения.ПрочитатьXMLВТаблицу(КлассификаторXML).Данные; + Результат.Индексы.Добавить("Code"); + Результат.Индексы.Добавить("RBCLoading"); + + Возврат Результат; + +КонецФункции #КонецОбласти -#КонецЕсли \ No newline at end of file +#КонецЕсли diff --git a/SSL/src/DataProcessors/ЗагрузкаПравилРегистрацииОбъектов/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ЗагрузкаПравилРегистрацииОбъектов/Forms/Форма/Module.bsl index e803df40c..9cf4ad6cb 100644 --- a/SSL/src/DataProcessors/ЗагрузкаПравилРегистрацииОбъектов/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ЗагрузкаПравилРегистрацииОбъектов/Forms/Форма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ВызватьИсключение НСтр("ru='Обработка не предназначена для непосредственного использования.'"); КонецПроцедуры diff --git a/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ЗаменаЭлементов/Help/ru.html b/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ЗаменаЭлементов/Help/ru.html index 948ac7fa4..69403282f 100644 --- a/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ЗаменаЭлементов/Help/ru.html +++ b/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ЗаменаЭлементов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                Открывается по кнопке Заменить и удалить из списков программы. Также можно воспользоваться командой Заменить во всех местах использования из окна Удаление помеченных объектов.

                diff --git a/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ЗаменаЭлементов/Module.bsl b/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ЗаменаЭлементов/Module.bsl index 6dbf3998d..ffdbc79d7 100644 --- a/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ЗаменаЭлементов/Module.bsl +++ b/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ЗаменаЭлементов/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если Не Параметры.Свойство("ОткрытаПоСценарию") Тогда ВызватьИсключение НСтр("ru = 'Обработка не предназначена для непосредственного использования.'"); КонецЕсли; diff --git a/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ОбъединениеЭлементов/Help/ru.html b/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ОбъединениеЭлементов/Help/ru.html index 040a70ec3..0a19ef6c3 100644 --- a/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ОбъединениеЭлементов/Help/ru.html +++ b/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ОбъединениеЭлементов/Help/ru.html @@ -1,4 +1,4 @@ - +

                Предназначено для устранения дублирующихся данных.

                Открывается из списков программы по команде Еще - Объединить выделенные. Объединить можно несколько элементов, предварительно выделив их.

                В списке элементов для объединения выводится:

                diff --git a/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ОбъединениеЭлементов/Module.bsl b/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ОбъединениеЭлементов/Module.bsl index 4a3bd6567..366baf112 100644 --- a/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ОбъединениеЭлементов/Module.bsl +++ b/SSL/src/DataProcessors/ЗаменаИОбъединениеЭлементов/Forms/ОбъединениеЭлементов/Module.bsl @@ -18,9 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; // Перекладываем параметры в таблицу МестаИспользования. // Инициализируем реквизиты ОсновнойЭлемент, ОбщийВладелецЗаменяемыхСсылок, ТекстОшибкиПараметров. diff --git a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Forms/ПодборКалендарейИзКлассификатора/Help/ru.html b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Forms/ПодборКалендарейИзКлассификатора/Help/ru.html index 9eddf17c1..fc340b783 100644 --- a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Forms/ПодборКалендарейИзКлассификатора/Help/ru.html +++ b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Forms/ПодборКалендарейИзКлассификатора/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                diff --git a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Forms/ПодборКалендарейИзКлассификатора/Module.bsl b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Forms/ПодборКалендарейИзКлассификатора/Module.bsl index 58dfe33cd..63cc6689f 100644 --- a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Forms/ПодборКалендарейИзКлассификатора/Module.bsl +++ b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/Forms/ПодборКалендарейИзКлассификатора/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - // Заполнение списка календарей. ЗакрыватьПриВыборе = Ложь; diff --git a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/ManagerModule.bsl b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/ManagerModule.bsl index 6d9a2f8b1..e5eaa1060 100644 --- a/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ЗаполнениеКалендарныхГрафиков/ManagerModule.bsl @@ -57,7 +57,7 @@ Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт - Возврат "3.0.2.215"; + Возврат "3.1.1.16"; КонецФункции diff --git a/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Forms/Форма/Attributes/ПолеИндикаторДлительныхОпераций/ExtInfo/SpreadsheetData.mxlx b/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Forms/Форма/Attributes/ПолеИндикаторДлительныхОпераций/ExtInfo/SpreadsheetData.mxlx index 70a095c0a..498ab0ee1 100644 --- a/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Forms/Форма/Attributes/ПолеИндикаторДлительныхОпераций/ExtInfo/SpreadsheetData.mxlx +++ b/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Forms/Форма/Attributes/ПолеИндикаторДлительныхОпераций/ExtInfo/SpreadsheetData.mxlx @@ -3,5 +3,11 @@ 0 + + 0 + + true + + 0 \ No newline at end of file diff --git a/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Forms/Форма/Module.bsl index 10122f9c7..ec5052550 100644 --- a/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Forms/Форма/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЗаполнитьОтборЖурналаРегистрацииПоУмолчанию(); ОтборЖурналаРегистрации = ОбщегоНазначения.СкопироватьРекурсивно(ОтборЖурналаРегистрацииПоУмолчанию); diff --git a/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Help/ru.html b/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Help/ru.html index fc0ca2087..c52dcf004 100644 --- a/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Help/ru.html +++ b/SSL/src/DataProcessors/ЗащитаПерсональныхДанных/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                Открывается по команде Защита персональных данных в разделе Администрирование - Поддержка и обслуживание.

                Согласно Федеральному закону от 27.06.2006 №152-Ф3 "О персональных данных" и подзаконным актам в программе реализована регистрация следующих событий:

                @@ -15,7 +15,7 @@

                Просмотр события

                +
              • Сведения о событии - дополнительная информация о событии (текущий пользователь ОС, который заходил в программу, справочник программы, связанный с персональными данными, в который заходил пользователь и т.п.).
              • Просмотр события

                • Для просмотра детальной информации о событии можно воспользоваться двойным щелчком мыши или кнопкой  Просмотр текущего события.
                • diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Form.form b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Form.form index 16d442cff..58b1d269a 100644 --- a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Form.form @@ -8660,7 +8660,7 @@ ru Вид контактной информации - 90 + 20 true @@ -8675,7 +8675,7 @@ ru Вид контактной информации (телефон) - 91 + 35 true diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Help/ru.html b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Help/ru.html index 064a5d3e4..8e0b8bdff 100644 --- a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Help/ru.html +++ b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Help/ru.html @@ -1,4 +1,4 @@ - +

                  Предназначена для подготовки заявления на выпуск нового квалифицированного сертификата в удостоверяющий центр 1С.

                  Соглашение

                  • На странице прочтите соглашение о присоединении к регламенту удостоверяющего центра (УЦ). По гиперссылке можно перейти к просмотру информации об УЦ. diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Module.bsl index 8b51a7823..75fc82d14 100644 --- a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Forms/Форма/Module.bsl @@ -20,10 +20,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЕстьОрганизации = Не Метаданные.ОпределяемыеТипы.Организация.Тип.СодержитТип(Тип("Строка")); Если Не ЕстьОрганизации Тогда Элементы.Организация.Видимость = Ложь; @@ -50,11 +46,11 @@ КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда - + МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией"); ВидКонтактнойИнформации = МодульУправлениеКонтактнойИнформацией.ПараметрыВидаКонтактнойИнформации( Перечисления["ТипыКонтактнойИнформации"].Адрес); - + ВидКонтактнойИнформации.НастройкиПроверки.ТолькоНациональныйАдрес = Истина; ВидКонтактнойИнформацииТелефон = МодульУправлениеКонтактнойИнформацией.ПараметрыВидаКонтактнойИнформации( diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Templates/ИндивидуальныйПредприниматель/Template.mxlx b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Templates/ИндивидуальныйПредприниматель/Template.mxlx index 0b594a1d7..40a9c3aba 100644 --- a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Templates/ИндивидуальныйПредприниматель/Template.mxlx +++ b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Templates/ИндивидуальныйПредприниматель/Template.mxlx @@ -1089,6 +1089,12 @@ + + 19 + + true + + 20 @@ -1272,6 +1278,12 @@ + + 29 + + true + + 30 diff --git a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Templates/ЮридическоеЛицо/Template.mxlx b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Templates/ЮридическоеЛицо/Template.mxlx index 322383eab..9b491022c 100644 --- a/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Templates/ЮридическоеЛицо/Template.mxlx +++ b/SSL/src/DataProcessors/ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Templates/ЮридическоеЛицо/Template.mxlx @@ -1313,6 +1313,12 @@ + + 22 + + true + + 23 @@ -1587,6 +1593,12 @@ + + 39 + + true + + 40 diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/ВыборВидаОбъектаСоставаУзла/Module.bsl b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/ВыборВидаОбъектаСоставаУзла/Module.bsl index 30736bf03..62a93e840 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/ВыборВидаОбъектаСоставаУзла/Module.bsl +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/ВыборВидаОбъектаСоставаУзла/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЗакрыватьПриЗакрытииВладельца = Истина; ЗакрыватьПриВыборе = Ложь; diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/ОбщиеПараметрыСинхронизации/Module.bsl b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/ОбщиеПараметрыСинхронизации/Module.bsl index 4ff0413f9..641ec2328 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/ОбщиеПараметрыСинхронизации/Module.bsl +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/ОбщиеПараметрыСинхронизации/Module.bsl @@ -12,10 +12,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЗакрыватьПриЗакрытииВладельца = Истина; Если ЗначениеЗаполнено(Параметры.УзелИнформационнойБазы) Тогда diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Help/ru.html b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Help/ru.html index 05432920f..069304e28 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Help/ru.html +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                    Отбор данных для выгрузки

                    • Для документов используется период отбора. В поле За период нажмите  Выбрать, укажите период. Даты можно указать вручную или выбрать из календаря. С помощью ссылки Показать стандартные периоды можно быстро подобрать период. diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Module.bsl b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Module.bsl index 01ad3dda5..fecaa9034 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Module.bsl +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеПериодаИОтбора/Module.bsl @@ -12,10 +12,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЗакрыватьПриЗакрытииВладельца = Истина; Заголовок = Параметры.Заголовок; diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеСоставаНастроек/Help/ru.html b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеСоставаНастроек/Help/ru.html index 279e76484..bf4f07019 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеСоставаНастроек/Help/ru.html +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеСоставаНастроек/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                      Открывается с помощью кнопки Настройки из окна Интерактивное изменение выгрузки.

                      В списке приводятся Ранее сохраненные настройки.

                      diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеСоставаНастроек/Module.bsl b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеСоставаНастроек/Module.bsl index 00fd181ff..e7d228f5b 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеСоставаНастроек/Module.bsl +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/РедактированиеСоставаНастроек/Module.bsl @@ -12,11 +12,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЗаполнитьЗначенияСвойств(Объект, Параметры.Объект , , "КомпоновщикОтбораВсехДокументов, ДополнительнаяРегистрация, ДополнительнаяРегистрацияСценарияУзла"); Для Каждого Строка Из Параметры.Объект.ДополнительнаяРегистрация Цикл ЗаполнитьЗначенияСвойств(Объект.ДополнительнаяРегистрация.Добавить(), Строка); diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/СоставВыгрузки/Help/ru.html b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/СоставВыгрузки/Help/ru.html index ec21b39da..2b5b95b56 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/СоставВыгрузки/Help/ru.html +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/СоставВыгрузки/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                      diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/СоставВыгрузки/Module.bsl b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/СоставВыгрузки/Module.bsl index b290e6b7b..d02915a78 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/СоставВыгрузки/Module.bsl +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/СоставВыгрузки/Module.bsl @@ -17,10 +17,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Элементы.ФормаНастройкиОтчета.Видимость = Ложь; ЭтаОбработка = ЭтотОбъект(); diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/Форма/Module.bsl index 873495be9..e98910f25 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Forms/Форма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если НЕ Параметры.Свойство("ОткрытаПоСценарию") Тогда ВызватьИсключение НСтр("ru='Обработка не предназначена для непосредственного использования.'"); КонецЕсли; diff --git a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Help/ru.html b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Help/ru.html index 71a24b6c4..d75741a23 100644 --- a/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Help/ru.html +++ b/SSL/src/DataProcessors/ИнтерактивноеИзменениеВыгрузки/Help/ru.html @@ -1,4 +1,4 @@ - +

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

                      Открыть список можно, нажав на ссылку в поле С отбором для добавления данных на странице Данные для отправки Помощника интерактивной синхронизации данных. 

                      Отправляемые данные

                      diff --git a/SSL/src/DataProcessors/ИнформацияПриЗапуске/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ИнформацияПриЗапуске/Forms/Форма/Module.bsl index 9e9f42654..1a9884b58 100644 --- a/SSL/src/DataProcessors/ИнформацияПриЗапуске/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ИнформацияПриЗапуске/Forms/Форма/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; ТекущаяСтрокаИндекс = -1; КонфигурацияБазовая = СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации(); diff --git a/SSL/src/DataProcessors/ИнформацияПриЗапуске/Help/ru.html b/SSL/src/DataProcessors/ИнформацияПриЗапуске/Help/ru.html index 001ab348a..f84ab11ad 100644 --- a/SSL/src/DataProcessors/ИнформацияПриЗапуске/Help/ru.html +++ b/SSL/src/DataProcessors/ИнформацияПриЗапуске/Help/ru.html @@ -1,12 +1,16 @@ - +

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

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

                      Открывается по команде Информация при запуске из группы Информация на странице Главное. При открытии сразу показывается одна из страниц дополнительной информации.

                      Навигация

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

                      Получение информации об ИТС

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

                    Получение информации об ИТС

                    • С помощью кнопки Поддержка можно получить информацию об ИТС (информационно-технологическом сопровождении) и условиях его получения.

                    Показывать при начале работы - недоступно в базовых версиях

                    • Для ПРОФ-версий доступна настройка показа дополнительной информации при начале работы программы. Если дополнительная информация показывается в режиме рабочего стола, то в командной панели размещается флажок Показывать при начале работы. -
                    • Если снять флажок, то дополнительная информация не будет показываться при начале работы. -
                    • Флажок Показывать при начале работы автоматически снимается два раза в месяц и после обновления версии программы.
                    \ No newline at end of file +
                  • +
                  • Если снять флажок, то дополнительная информация не будет показываться при начале работы. +
                  • +
                  • Флажок Показывать при начале работы автоматически снимается два раза в месяц и после обновления версии программы.
                  \ No newline at end of file diff --git a/SSL/src/DataProcessors/КартаМаршрутаБизнесПроцесса/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/КартаМаршрутаБизнесПроцесса/Forms/Форма/Module.bsl index 06d1c4a82..d437726f8 100644 --- a/SSL/src/DataProcessors/КартаМаршрутаБизнесПроцесса/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/КартаМаршрутаБизнесПроцесса/Forms/Форма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если ЗначениеЗаполнено(Параметры.БизнесПроцесс) Тогда БизнесПроцесс = Параметры.БизнесПроцесс; КонецЕсли; diff --git a/SSL/src/DataProcessors/КартаМаршрутаБизнесПроцесса/Help/ru.html b/SSL/src/DataProcessors/КартаМаршрутаБизнесПроцесса/Help/ru.html index a65bab434..29911e5bc 100644 --- a/SSL/src/DataProcessors/КартаМаршрутаБизнесПроцесса/Help/ru.html +++ b/SSL/src/DataProcessors/КартаМаршрутаБизнесПроцесса/Help/ru.html @@ -1,4 +1,4 @@ - +

                  Открывается из списка Мои бизнес-процессы или из окна бизнес-процесса (например, Задания) по кнопке  Карта маршрута.

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

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

                  diff --git a/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/Forms/Форма/Module.bsl index e803df40c..9cf4ad6cb 100644 --- a/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/Forms/Форма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ВызватьИсключение НСтр("ru='Обработка не предназначена для непосредственного использования.'"); КонецПроцедуры diff --git a/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/ObjectModule.bsl b/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/ObjectModule.bsl index e3e2a7d25..f2932b1a1 100644 --- a/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/ObjectModule.bsl +++ b/SSL/src/DataProcessors/КонвертацияОбъектовИнформационныхБаз/ObjectModule.bsl @@ -1702,7 +1702,7 @@ Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ЭтоРазделенныйОбъектМетаданных = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(Объект.Метаданные().ПолноеИмя()); Иначе diff --git a/SSL/src/DataProcessors/КонвертацияОбъектовРаспределенныхИнформационныхБаз/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/КонвертацияОбъектовРаспределенныхИнформационныхБаз/Forms/Форма/Module.bsl index e803df40c..9cf4ad6cb 100644 --- a/SSL/src/DataProcessors/КонвертацияОбъектовРаспределенныхИнформационныхБаз/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/КонвертацияОбъектовРаспределенныхИнформационныхБаз/Forms/Форма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ВызватьИсключение НСтр("ru='Обработка не предназначена для непосредственного использования.'"); КонецПроцедуры diff --git a/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/Forms/ПроверкаЛегальностиПолученияОбновления/Module.bsl b/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/Forms/ПроверкаЛегальностиПолученияОбновления/Module.bsl index f069ac69a..8b2a19d37 100644 --- a/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/Forms/ПроверкаЛегальностиПолученияОбновления/Module.bsl +++ b/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/Forms/ПроверкаЛегальностиПолученияОбновления/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Не Параметры.ПрограммноеОткрытие Тогда ВызватьИсключение НСтр("ru = 'Обработка не предназначена для непосредственного использования.'"); diff --git a/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/Help/ru.html b/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/Help/ru.html index 7b31158a6..23e55553b 100644 --- a/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/Help/ru.html +++ b/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                  Выберите с помощью переключателя:

                  diff --git a/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/Templates/УсловияРаспространенияОбновлений/ru.html b/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/Templates/УсловияРаспространенияОбновлений/ru.html index 83c0df280..218d10483 100644 --- a/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/Templates/УсловияРаспространенияОбновлений/ru.html +++ b/SSL/src/DataProcessors/ЛегальностьПолученияОбновлений/Templates/УсловияРаспространенияОбновлений/ru.html @@ -1,11 +1,14 @@ - +

                  УСЛОВИЯ РАСПРОСТРАНЕНИЯ ОБНОВЛЕНИЙ ПРОГРАММ "1С:ПРЕДПРИЯТИЕ"

                  Обновления к программам производства фирмы "1С", также как и сами программы, являются объектами исключительного права фирмы "1С" и распространяются по правилам, установленным фирмой "1С" как правообладателем в соответствии со ст. 1225 Гражданского кодекса.

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

                  • зарегистрировать программный продукт в фирме "1С" (отправить анкету на программный продукт в фирму «1С»)*; -
                  • зарегистрировать программный продукт в «Личном кабинете пользователя» на портале 1С:ИТС (https://portal.1c.ru)*; -
                  • настроить интернет-поддержку в программе; -
                  • заключить договор сопровождения 1С:ИТС с партнером фирмы «1С».

                  Подробнее об условиях поддержки программных продуктов фирмы "1С" см. на сайте http://www.1c.ru/rus/support/support.htm.

                  +
                • +
                • зарегистрировать программный продукт в «Личном кабинете пользователя» на портале 1С:ИТС (https://portal.1c.ru)*; +
                • +
                • настроить интернет-поддержку в программе; +
                • +
                • заключить договор сопровождения 1С:ИТС с партнером фирмы «1С».

                Подробнее об условиях поддержки программных продуктов фирмы "1С" см. на сайте http://www.1c.ru/rus/support/support.htm.

                Несанкционированное распространение и использование обновлений и информационных ресурсов рассматриваются как нарушение авторского права и преследуются по ст. 1301 Гражданского кодекса РФ, ст. 7.12 Кодекса Российской Федерации об административных правонарушениях, ст. 146 Уголовного кодекса РФ.

                Для подключения официальной поддержки вы можете обратиться к партнерам фирмы "1С" см. на сайте https://its.1c.ru/db/aboutits#content:23:hdoc.

                * прим.: электронные поставки регистрируются автоматически при покупке программного продукта.

                \ No newline at end of file diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ЗавершениеЗапросаРазрешений/Module.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ЗавершениеЗапросаРазрешений/Module.bsl index a097896ed..087587b1b 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ЗавершениеЗапросаРазрешений/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ЗавершениеЗапросаРазрешений/Module.bsl @@ -21,10 +21,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Длительность = Параметры.Длительность; КонецПроцедуры diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ИнициализацияЗапросаРазрешений/Module.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ИнициализацияЗапросаРазрешений/Module.bsl index 2d359f2cd..a9b92b787 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ИнициализацияЗапросаРазрешений/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/ИнициализацияЗапросаРазрешений/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - АдресХранилища = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор); АдресХранилищаСостояния = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор); diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Help/ru.html b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Help/ru.html index 1d4a1f46c..33b15959b 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Help/ru.html +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Help/ru.html @@ -1,4 +1,4 @@ - +

                В случае если в кластере серверов 1С:Предприятия для данной информационной базы используются профили безопасности, ограничивающие доступ к внешним (относительно кластера серверов 1С:Предприятия) ресурсам, то для корректной работы программы требуется внести изменения в состав разрешений в профиле безопасности.

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

                Для подтверждения нажмите Применить изменения.

                diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Module.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Module.bsl index 8b25d32fa..012c86726 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - АдресХранилищаНаСервере = Параметры.АдресХранилища; РезультатОбработкиЗапросов = ПолучитьИзВременногоХранилища(АдресХранилищаНаСервере); diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкиИспользованияПрофилейБезопасности/Help/ru.html b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкиИспользованияПрофилейБезопасности/Help/ru.html index 3484a3716..c6e1ebc4f 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкиИспользованияПрофилейБезопасности/Help/ru.html +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкиИспользованияПрофилейБезопасности/Help/ru.html @@ -4,7 +4,7 @@ TD { VERTICAL-ALIGN: top } - +

                В данной панели осуществляется настройка использования для информационной базы профилей безопасности кластера серверов 1С:Предприятия. Профили безопасности предназначены для контроля за использованием программой внешних ресурсов (относительно кластера серверов 1С:Предприятия).

                Находится в разделе Администрирование - Поддержка и обслуживание - Безопасность.

                Режим использования профилей безопасности

                diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкиИспользованияПрофилейБезопасности/Module.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкиИспользованияПрофилейБезопасности/Module.bsl index 4c73d7c91..977dedae1 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкиИспользованияПрофилейБезопасности/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/НастройкиИспользованияПрофилейБезопасности/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если Не РаботаВБезопасномРежимеСлужебный.ВозможноИспользованиеПрофилейБезопасности() Тогда ВызватьИсключение НСтр("ru = 'Внимание! Использование профилей безопасности недоступно для данной конфигурации'"); КонецЕсли; @@ -237,8 +233,7 @@ &НаКлиенте Процедура Подключаемый_ПриИзмененииРеквизита(Элемент, ОбновлятьИнтерфейс = Истина) - КонстантаИмя = ПриИзмененииРеквизитаСервер(Элемент.Имя); - + ИмяКонстанты = ПриИзмененииРеквизитаСервер(Элемент.Имя); ОбновитьПовторноИспользуемыеЗначения(); Если ОбновлятьИнтерфейс Тогда @@ -246,8 +241,8 @@ ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина); КонецЕсли; - Если КонстантаИмя <> "" Тогда - Оповестить("Запись_НаборКонстант", Новый Структура, КонстантаИмя); + Если ИмяКонстанты <> "" Тогда + Оповестить("Запись_НаборКонстант", Новый Структура, ИмяКонстанты); КонецЕсли; КонецПроцедуры @@ -266,14 +261,10 @@ Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента) РеквизитПутьКДанным = Элементы[ИмяЭлемента].ПутьКДанным; - - КонстантаИмя = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); - + ИмяКонстанты = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); УстановитьДоступность(РеквизитПутьКДанным); - ОбновитьПовторноИспользуемыеЗначения(); - - Возврат КонстантаИмя; + Возврат ИмяКонстанты; КонецФункции @@ -285,15 +276,15 @@ Возврат ""; КонецЕсли; - КонстантаИмя = ЧастиИмени[1]; - КонстантаМенеджер = Константы[КонстантаИмя]; - КонстантаЗначение = НаборКонстант[КонстантаИмя]; + ИмяКонстанты = ЧастиИмени[1]; + КонстантаМенеджер = Константы[ИмяКонстанты]; + КонстантаЗначение = НаборКонстант[ИмяКонстанты]; Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда КонстантаМенеджер.Установить(КонстантаЗначение); КонецЕсли; - Возврат КонстантаИмя; + Возврат ИмяКонстанты; КонецФункции diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/Форма/Module.bsl index d4e8f10e6..21def46f9 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Forms/Форма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ВызватьИсключение НСтр("ru='Обработка не предназначена для непосредственного использования.'"); КонецПроцедуры diff --git a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Help/ru.html b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Help/ru.html index fcf5ef7da..d804c09c1 100644 --- a/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Help/ru.html +++ b/SSL/src/DataProcessors/НастройкаРазрешенийНаИспользованиеВнешнихРесурсов/Help/ru.html @@ -1,4 +1,4 @@ - +

                Профили безопасности - механизм версии 8.3 платформы "1С:Предприятие", позволяющий ограничивать использование информационной базой внешних (по отношению к кластеру серверов платформы "1С:Предприятие" ресурсов, такие, как каталоги файловой системы, COM-объекты (на Windows-системах), внешние (по отношению к конфигурации) программные модули на встроенном языке платформы "1С:Предприятие" (внешние отчеты и обработки, вызовы методов Выполнить и Вычислить, внешние компоненты, приложения операционной системы и Интернет-ресурсы. Таким образом, с помощью профилей безопасности можно изолировать каждую информационную базу, позволяя ей использовать только те внешние ресурсы, использование которых явно одобрено администратором.

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

                Реализовано автоматическое управление разрешениями на доступ к внешним (относительно кластера серверов платформы "1С:Предприятие ресурсам. Таким образом, администратору не требуется самостоятельно отслеживать перечень внешних ресурсов, к которым нужно предоставить доступ (иначе программа не сможет функционировать), вместо этого - при необходимости получения разрешения администратору выводится диалог с перечнем требуемых разрешений. В случае одобрения новых разрешений администратором, они будут автоматически добавлены в профиль безопасности в кластере серверов. При этом для программы автоматически формируется максимально ограниченный профиль безопасности, в котором, в частности, снят признак Полный доступ к внешним отчетам и обработкам.

                diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопирования/Module.bsl b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопирования/Module.bsl index 4a3179839..1685a5018 100644 --- a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопирования/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопирования/Module.bsl @@ -9,7 +9,7 @@ #Область ОписаниеПеременных &НаКлиенте -Перем ЗаписатьНастройки, МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования; +Перем ЗаписатьНастройки, СледующаяДата; #КонецОбласти @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если Не ОбщегоНазначения.ЭтоWindowsКлиент() Тогда ВызватьИсключение НСтр("ru = 'Резервное копирование и восстановление данных необходимо настроить средствами операционной системы или другими сторонними средствами.'"); КонецЕсли; @@ -75,9 +71,9 @@ Если Настройки = Неопределено Тогда Отказ = Истина; Возврат; - КонецЕсли; + КонецЕсли; - МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования = Настройки.МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования; + СледующаяДата = Настройки.МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования; Настройки.МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования = '29990101'; ЗаписатьНастройки = Ложь; @@ -94,9 +90,8 @@ ПараметрыПриЗавершении = Новый ФиксированнаяСтруктура(ПараметрыПриЗавершении); СтандартныеПодсистемыКлиент.УстановитьПараметрКлиента(ИмяПараметра, ПараметрыПриЗавершении); Иначе - ИмяПараметра = "СтандартныеПодсистемы.ПараметрыРезервногоКопированияИБ"; - ПараметрыПриложения[ИмяПараметра].МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования - = МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования; + Настройки = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыРезервногоКопированияИБ"]; + Настройки.МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования = СледующаяДата; КонецЕсли; Если ЗавершениеРаботы Тогда @@ -186,7 +181,7 @@ &НаКлиенте Процедура ПерейтиСоСтраницыНастройки() - ПараметрыРезервногоКопированияИБ = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыРезервногоКопированияИБ"]; + Настройки = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыРезервногоКопированияИБ"]; ТекущийПользователь = ПользователиКлиент.ТекущийПользователь(); Если Объект.ВыполнятьАвтоматическоеРезервноеКопирование Тогда @@ -196,7 +191,7 @@ КонецЕсли; Контекст = Новый Структура; - Контекст.Вставить("ПараметрыРезервногоКопированияИБ", ПараметрыРезервногоКопированияИБ); + Контекст.Вставить("ПараметрыРезервногоКопированияИБ", Настройки); Контекст.Вставить("ТекущийПользователь", ТекущийПользователь); Оповещение = Новый ОписаниеОповещения( @@ -208,8 +203,8 @@ ОстановитьСервисОповещения(ТекущийПользователь); РезервноеКопированиеИБКлиент.ОтключитьОбработчикОжиданияРезервногоКопирования(); - ПараметрыРезервногоКопированияИБ.МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования = '29990101'; - ПараметрыРезервногоКопированияИБ.ПараметрОповещения = "НеОповещать"; + Настройки.МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования = '29990101'; + Настройки.ПараметрОповещения = "НеОповещать"; ОбновитьПовторноИспользуемыеЗначения(); Закрыть(); @@ -321,7 +316,7 @@ НастройкиРезервногоКопирования.ВыполнятьАвтоматическоеРезервноеКопирование = Ложь; НастройкиРезервногоКопирования.РезервноеКопированиеНастроено = Истина; НастройкиРезервногоКопирования.МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования = '29990101'; - РезервноеКопированиеИБСервер.УстановитьПараметрыРезервногоКопирования(НастройкиРезервногоКопирования, ТекущийПользователь); + РезервноеКопированиеИБСервер.УстановитьНастройкиРезервногоКопирования(НастройкиРезервногоКопирования, ТекущийПользователь); КонецПроцедуры &НаСервере @@ -332,32 +327,32 @@ Объект.ВариантВыполнения = "ПриЗавершенииРаботы"; КонецЕсли; - ПараметрыРезервногоКопирования = РезервноеКопированиеИБСервер.ПараметрыРезервногоКопирования(); + Настройки = РезервноеКопированиеИБСервер.ПараметрыРезервногоКопирования(); - ПараметрыРезервногоКопирования.Вставить("АдминистраторИБ", АдминистраторИБ); - ПараметрыРезервногоКопирования.Вставить("ПарольАдминистратораИБ", ?(ТребуетсяВводПароля, ПарольАдминистратораИБ, "")); - ПараметрыРезервногоКопирования.ДатаПоследнегоОповещения = Дата('29990101'); - ПараметрыРезервногоКопирования.КаталогХраненияРезервныхКопий = Объект.КаталогСРезервнымиКопиями; - ПараметрыРезервногоКопирования.ВариантВыполнения = Объект.ВариантВыполнения; - ПараметрыРезервногоКопирования.ВыполнятьАвтоматическоеРезервноеКопирование = Объект.ВыполнятьАвтоматическоеРезервноеКопирование; - ПараметрыРезервногоКопирования.РезервноеКопированиеНастроено = Истина; + Настройки.Вставить("АдминистраторИБ", АдминистраторИБ); + Настройки.Вставить("ПарольАдминистратораИБ", ?(ТребуетсяВводПароля, ПарольАдминистратораИБ, "")); + Настройки.ДатаПоследнегоОповещения = Дата('29990101'); + Настройки.КаталогХраненияРезервныхКопий = Объект.КаталогСРезервнымиКопиями; + Настройки.ВариантВыполнения = Объект.ВариантВыполнения; + Настройки.ВыполнятьАвтоматическоеРезервноеКопирование = Объект.ВыполнятьАвтоматическоеРезервноеКопирование; + Настройки.РезервноеКопированиеНастроено = Истина; - ЗаполнитьЗначенияСвойств(ПараметрыРезервногоКопирования.ПараметрыУдаления, Объект); + ЗаполнитьЗначенияСвойств(Настройки.ПараметрыУдаления, Объект); Если Объект.ВариантВыполнения = "ПоРасписанию" Тогда РасписаниеСтруктура = ОбщегоНазначенияКлиентСервер.РасписаниеВСтруктуру(Расписание); - ПараметрыРезервногоКопирования.РасписаниеКопирования = РасписаниеСтруктура; - ПараметрыРезервногоКопирования.МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования = ТекущаяДатаСеанса(); - ПараметрыРезервногоКопирования.ДатаПоследнегоРезервногоКопирования = ТекущаяДатаСеанса(); + Настройки.РасписаниеКопирования = РасписаниеСтруктура; + Настройки.МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования = ТекущаяДатаСеанса(); + Настройки.ДатаПоследнегоРезервногоКопирования = ТекущаяДатаСеанса(); ИначеЕсли Объект.ВариантВыполнения = "ПриЗавершенииРаботы" Тогда - ПараметрыРезервногоКопирования.МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования = '29990101'; + Настройки.МинимальнаяДатаСледующегоАвтоматическогоРезервногоКопирования = '29990101'; КонецЕсли; - РезервноеКопированиеИБСервер.УстановитьПараметрыРезервногоКопирования(ПараметрыРезервногоКопирования, ТекущийПользователь); + РезервноеКопированиеИБСервер.УстановитьНастройкиРезервногоКопирования(Настройки, ТекущийПользователь); КонецПроцедуры diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопированияКлиентСервер/Form.form b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопированияКлиентСервер/Form.form index 10062ae1a..8526c183f 100644 --- a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопированияКлиентСервер/Form.form +++ b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопированияКлиентСервер/Form.form @@ -206,10 +206,6 @@ Right - - OnOpen - ПриОткрытии - OnCreateAtServer ПриСозданииНаСервере diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопированияКлиентСервер/Module.bsl b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопированияКлиентСервер/Module.bsl index 7035db954..12e54de7a 100644 --- a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопированияКлиентСервер/Module.bsl +++ b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Forms/НастройкаРезервногоКопированияКлиентСервер/Module.bsl @@ -16,23 +16,11 @@ КонецЕсли; Если Не ОбщегоНазначения.ЭтоWindowsКлиент() Тогда - Возврат; // Отказ устанавливается в ПриОткрытии(). + ВызватьИсключение НСтр("ru = 'Резервное копирование и восстановление данных необходимо настроить средствами операционной системы или другими сторонними средствами.'"); КонецЕсли; - ПараметрыРезервногоКопирования = РезервноеКопированиеИБСервер.ПараметрыРезервногоКопирования(); - ОтключитьНапоминания = ПараметрыРезервногоКопирования.РезервноеКопированиеНастроено; - -КонецПроцедуры - -&НаКлиенте -Процедура ПриОткрытии(Отказ) - - Если Не ОбщегоНазначенияКлиент.ЭтоWindowsКлиент() Тогда - Отказ = Истина; - ТекстСообщения = НСтр("ru = 'Резервное копирование поддерживается только в клиенте под управлением ОС Windows.'"); - ПоказатьПредупреждение(, ТекстСообщения); - Возврат; - КонецЕсли; + Настройки = РезервноеКопированиеИБСервер.ПараметрыРезервногоКопирования(); + ОтключитьНапоминания = Настройки.РезервноеКопированиеНастроено; КонецПроцедуры @@ -43,8 +31,8 @@ &НаКлиенте Процедура ОК(Команда) - ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыРезервногоКопированияИБ"].ПараметрОповещения = - ?(ОтключитьНапоминания, "НеОповещать", "ЕщеНеНастроено"); + Настройки = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыРезервногоКопированияИБ"]; + Настройки.ПараметрОповещения = ?(ОтключитьНапоминания, "НеОповещать", "ЕщеНеНастроено"); Если ОтключитьНапоминания Тогда РезервноеКопированиеИБКлиент.ОтключитьОбработчикОжиданияРезервногоКопирования(); @@ -52,7 +40,7 @@ РезервноеКопированиеИБКлиент.ПодключитьОбработчикОжиданияРезервногоКопирования(); КонецЕсли; - ОКНаСервере(); + УстановитьНастройкиРезервногоКопирования(); Оповестить("ЗакрытаФормаНастройкиРезервногоКопирования"); Закрыть(); @@ -63,14 +51,12 @@ #Область СлужебныеПроцедурыИФункции &НаСервере -Процедура ОКНаСервере() +Процедура УстановитьНастройкиРезервногоКопирования() - ПараметрыРезервногоКопирования = РезервноеКопированиеИБСервер.ПараметрыРезервногоКопирования(); - - ПараметрыРезервногоКопирования.РезервноеКопированиеНастроено = ОтключитьНапоминания; - ПараметрыРезервногоКопирования.ВыполнятьАвтоматическоеРезервноеКопирование = Ложь; - - РезервноеКопированиеИБСервер.УстановитьПараметрыРезервногоКопирования(ПараметрыРезервногоКопирования); + Настройки = РезервноеКопированиеИБСервер.ПараметрыРезервногоКопирования(); + Настройки.РезервноеКопированиеНастроено = ОтключитьНапоминания; + Настройки.ВыполнятьАвтоматическоеРезервноеКопирование = Ложь; + РезервноеКопированиеИБСервер.УстановитьНастройкиРезервногоКопирования(Настройки); КонецПроцедуры diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Help/ru.html b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Help/ru.html index 56eb77bdf..7b9cb1cbc 100644 --- a/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Help/ru.html +++ b/SSL/src/DataProcessors/НастройкаРезервногоКопированияИБ/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                @@ -9,18 +9,28 @@
                • Внимание! Резервное копирование не поддерживается в случае, если пользователь Администратор, от лица которого запускается резервное копирование,имеет аутентификацию операционной системы.

                Настройка резервного копирования (файловый режим работы программы)

                • Программа позволяет создавать резервные копии в режиме 1С:Предприятие. Резервное копирование может выполняться как в автоматическом режиме, так и в ручном. Для выполнения резервного копирования в автоматическом режиме необходимо предварительно его настроить.

                  -
                • +
                • +
                • Включите флажок Выполнять автоматическое резервное копирование.

                  -
                • После этого с помощью переключателя можно выбрать следующие возможности: +
                • +
                • После этого с помощью переключателя можно выбрать следующие возможности:
                  • Регулярно по расписанию - выполнять резервное копирование автоматически. Перейдите по ссылке, для того чтобы настроить расписание резервного копирования. Ссылка отражает введенное расписание. Недоступно в базовых версиях.
                    • При составлении расписания необходимо учитывать, что если к моменту запуска резервного копирования программа не будет работать, то резервное копирование не выполнится. -
                    • Внимание! Некоторые стандартные настройки в расписании резервного копирования не поддерживаются: Повторять с паузой, Завершить после, Останавливать через. Подберите другие настройки, для того чтобы заменить их.
                  • При завершении работы - при каждом выходе из программы администратору предлагается выполнить резервное копирование. При выходе из программы, для того чтобы началось резервное копирование, подтвердите свой выбор - нажмите кнопку Завершить. В окне Завершение работы флажок Выполнить резервное копирование по умолчанию включен. Для того чтобы при завершении работы больше не предлагалось резервное копирование, выключите флажок.
                • Выберите Каталог для сохранения резервных копий. Для этого нажмите  Выбрать, укажите путь к папке, в которую будут помещаться резервные копии, например, E:\Резервное копирование. Поле является обязательным. Рекомендуется выполнять резервное копирование на другой компьютер или внешний носитель. -
                • С помощью переключателя выберите срок, на протяжении которого программа будет Хранить резервные копии, или количество хранимых резервных копий: +
                • +
                • Внимание! Некоторые стандартные настройки в расписании резервного копирования не поддерживаются: Повторять с паузой, Завершить после, Останавливать через. Подберите другие настройки, для того чтобы заменить их.
                +
              • При завершении работы - при каждом выходе из программы администратору предлагается выполнить резервное копирование. При выходе из программы, для того чтобы началось резервное копирование, подтвердите свой выбор - нажмите кнопку Завершить. В окне Завершение работы флажок Выполнить резервное копирование по умолчанию включен. Для того чтобы при завершении работы больше не предлагалось резервное копирование, выключите флажок.
              • +
              • Выберите Каталог для сохранения резервных копий. Для этого нажмите  Выбрать, укажите путь к папке, в которую будут помещаться резервные копии, например, E:\Резервное копирование. Поле является обязательным. Рекомендуется выполнять резервное копирование на другой компьютер или внешний носитель. +
              • +
              • С помощью переключателя выберите срок, на протяжении которого программа будет Хранить резервные копии, или количество хранимых резервных копий:
                • Все - если объем жесткого диска, на котором будет находиться каталог для резервного копирования, позволяет, можно выбрать это значение. -
                • За последние 6 мес. (по умолчанию). Можно выбрать срок хранения резервных копий. -
                • Последние 10 шт. (по умолчанию). Можно ограничить количество хранимых копий.
              • Нажмите Готово, для того чтобы подтвердить свой выбор и вернуться в программу. После этого программа перейдет в режим автоматического резервного копирования.
              • Выполнение резервного копирования сторонними средствами

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

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

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

                + +
              • Для этого выключите флажок Выполнять автоматическое резервное копирование.
              • Резервное копирование при хранении файлов в томах

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

                Ошибки при резервном копировании

                Если резервное копирование завершилось неудачей, а во временном log-файле имеется запись: "Исключение в createConnection: Error, Automation server can't create object", то, скорее всего, используется 32-разрядная компонента comcntr.dll на компьютере под управлением 64-разрядной операционной системы. Для устранения данной проблемы необходимо взять 64-разрядную компоненту comcntr.dll из поставки 1С Предприятие x64 Сервер и зарегистрировать ее, запустив из командной строки:

                regsvr32 <каталог 64-разрядного comcntr.dll>\comcntr.dll

                diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/Forms/НастройкаБезИнтервалов/Form.form b/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/Forms/НастройкаБезИнтервалов/Form.form deleted file mode 100644 index 5fd87aed2..000000000 --- a/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/Forms/НастройкаБезИнтервалов/Form.form +++ /dev/null @@ -1,1389 +0,0 @@ - - - - <key>ru</key> - <value>Настройка резервного копирования приложения</value> - - - ФормаУстановитьНастройкиПоУмолчанию - 25 - true - true - - true - - - ФормаУстановитьНастройкиПоУмолчаниюExtendedTooltip - 73 - Label - true - true - - Left - - - UsualButton - Form.Command.УстановитьПоУмолчанию - Normal - Auto - true - true - UserCmds - Auto - - - ГруппаПараметрыФормирования - 29 - - ГруппаВремяФормированияКопий - 30 - - ВремяФормированияКопий - 31 - - <key>ru</key> - <value>Формировать копии в</value> - - true - true - - true - - - ВремяФормированияКопий - - - ВремяФормированияКопийExtendedTooltip - 76 - Label - true - true - - Left - - - - ВремяФормированияКопийКонтекстноеМеню - 32 - true - - InputField - Enter - true - Left - true - - 6 - true - true - true - true - true - true - Normal - - - - ЧасовойПоясОбласти - 33 - true - true - - true - - - ЧасовойПоясОбласти - - None - - ЧасовойПоясОбластиExtendedTooltip - 77 - Label - true - true - - Left - - - - ЧасовойПоясОбластиКонтекстноеМеню - 34 - true - - LabelField - Enter - true - Left - true - - true - true - - - true - true - - true - - - <key>ru</key> - <value>Время формирования копий</value> - - - ГруппаВремяФормированияКопийExtendedTooltip - 75 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - - - ГруппаПараметрыФормированияКолонки - 35 - - ГруппаФлагиИВремя - 36 - - ГруппаЕжедневныеКопии - 37 - - ФормироватьЕжедневныеКопии - 38 - true - true - - true - - - ФормироватьЕжедневныеКопии - - - ФормироватьЕжедневныеКопииExtendedTooltip - 81 - Label - true - true - - Left - - - - ФормироватьЕжедневныеКопииКонтекстноеМеню - 39 - true - - CheckBoxField - Enter - true - Left - true - - - - ФормироватьЕжедневныеКопииТолькоВДниРаботыПользователей - 40 - - <key>ru</key> - <value>только в дни работы</value> - - true - true - - true - - - ФормироватьЕжедневныеКопииТолькоВДниРаботыПользователей - - Left - - ФормироватьЕжедневныеКопииТолькоВДниРаботыПользователейExtendedTooltip - 82 - Label - true - true - - Left - - - - ФормироватьЕжедневныеКопииТолькоВДниРаботыПользователейКонтекстноеМеню - 41 - true - - CheckBoxField - Enter - true - Left - true - - - true - true - - true - - - <key>ru</key> - <value>Ежедневные копии</value> - - - ГруппаЕжедневныеКопииExtendedTooltip - 80 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - - - ГруппаЕжемесячныеКопии - 42 - - ФормироватьЕжемесячныеКопии - 43 - true - true - - true - - - ФормироватьЕжемесячныеКопии - - - ФормироватьЕжемесячныеКопииExtendedTooltip - 84 - Label - true - true - - Left - - - - ФормироватьЕжемесячныеКопииКонтекстноеМеню - 44 - true - - CheckBoxField - Enter - true - Left - true - - - - ЧислоМесяцаФормированияЕжемесячныхКопий - 45 - - <key>ru</key> - <value> числа месяца</value> - - true - true - - true - - - ЧислоМесяцаФормированияЕжемесячныхКопий - - Right - - ЧислоМесяцаФормированияЕжемесячныхКопийExtendedTooltip - 85 - Label - true - true - - Left - - - - ЧислоМесяцаФормированияЕжемесячныхКопийКонтекстноеМеню - 46 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - true - - 1 - - - 28 - - Normal - - - true - true - - true - - - <key>ru</key> - <value>Ежемесячные копии</value> - - - ГруппаЕжемесячныеКопииExtendedTooltip - 83 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - - - ГруппаЕжегодныеКопии - 47 - - ФормироватьЕжегодныеКопии - 48 - true - true - - true - - - ФормироватьЕжегодныеКопии - - - ФормироватьЕжегодныеКопииExtendedTooltip - 87 - Label - true - true - - Left - - - - ФормироватьЕжегодныеКопииКонтекстноеМеню - 49 - true - - CheckBoxField - Enter - true - Left - true - - - - ЧислоМесяцаФормированияЕжегодныхКопий - 50 - true - true - - true - - - ЧислоМесяцаФормированияЕжегодныхКопий - - None - - ЧислоМесяцаФормированияЕжегодныхКопийExtendedTooltip - 88 - Label - true - true - - Left - - - - ЧислоМесяцаФормированияЕжегодныхКопийКонтекстноеМеню - 51 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - true - - 1 - - - 28 - - Normal - - - - МесяцФормированияЕжегодныхКопий - 52 - true - true - - true - - - МесяцФормированияЕжегодныхКопий - - None - - МесяцФормированияЕжегодныхКопийExtendedTooltip - 89 - Label - true - true - - Left - - - - МесяцФормированияЕжегодныхКопийКонтекстноеМеню - 53 - true - - InputField - Enter - true - Left - true - - 10 - true - true - true - true - true - true - true - Normal - - - true - true - - true - - - <key>ru</key> - <value>Ежегодные копии</value> - - - ГруппаЕжегодныеКопииExtendedTooltip - 86 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - - true - true - - true - - - <key>ru</key> - <value>Флаги и время</value> - - - ГруппаФлагиИВремяExtendedTooltip - 79 - Label - true - true - - Left - - - UsualGroup - - Vertical - Auto - true - true - Auto - Auto - - - - ГруппаКоличество - 54 - - ГруппаЕжедневныеКопииКоличество - 55 - - КоличествоЕжедневныхКопий - 56 - - <key>ru</key> - <value>хранить</value> - - true - true - - true - - - КоличествоЕжедневныхКопий - - - КоличествоЕжедневныхКопийExtendedTooltip - 92 - Label - true - true - - Left - - - - КоличествоЕжедневныхКопийКонтекстноеМеню - 57 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - ДекорацияКопийЕжедневных - 58 - - <key>ru</key> - <value>копий</value> - - true - true - - true - - - ДекорацияКопийЕжедневныхExtendedTooltip - 93 - Label - true - true - - Left - - - - ДекорацияКопийЕжедневныхКонтекстноеМеню - 59 - true - - Label - true - - Left - - - true - true - - true - - - <key>ru</key> - <value>Ежедневные копии (количество)</value> - - - ГруппаЕжедневныеКопииКоличествоExtendedTooltip - 91 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - - - ГруппаЕжемесячныеКопииКоличество - 60 - - КоличествоЕжемесячныхКопий - 61 - - <key>ru</key> - <value>хранить</value> - - true - true - - true - - - КоличествоЕжемесячныхКопий - - - КоличествоЕжемесячныхКопийExtendedTooltip - 95 - Label - true - true - - Left - - - - КоличествоЕжемесячныхКопийКонтекстноеМеню - 62 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - ДекорацияКопийЕжемесячных - 63 - - <key>ru</key> - <value>копий</value> - - true - true - - true - - - ДекорацияКопийЕжемесячныхExtendedTooltip - 96 - Label - true - true - - Left - - - - ДекорацияКопийЕжемесячныхКонтекстноеМеню - 64 - true - - Label - true - - Left - - - true - true - - true - - - <key>ru</key> - <value>Ежемесячные копии (количество)</value> - - - ГруппаЕжемесячныеКопииКоличествоExtendedTooltip - 94 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - - - ГруппаЕжегодныеКопииКоличество - 65 - - КоличествоЕжегодныхКопий - 66 - - <key>ru</key> - <value>хранить</value> - - true - true - - true - - - КоличествоЕжегодныхКопий - - - КоличествоЕжегодныхКопийExtendedTooltip - 98 - Label - true - true - - Left - - - - КоличествоЕжегодныхКопийКонтекстноеМеню - 67 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - ДекорацияКопийЕжегодных - 68 - - <key>ru</key> - <value>копий</value> - - true - true - - true - - - ДекорацияКопийЕжегодныхExtendedTooltip - 99 - Label - true - true - - Left - - - - ДекорацияКопийЕжегодныхКонтекстноеМеню - 69 - true - - Label - true - - Left - - - true - true - - true - - - <key>ru</key> - <value>Ежегодные копии (количество)</value> - - - ГруппаЕжегодныеКопииКоличествоExtendedTooltip - 97 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - - true - true - - true - - - <key>ru</key> - <value>Количество</value> - - - ГруппаКоличествоExtendedTooltip - 90 - Label - true - true - - Left - - - UsualGroup - - Vertical - Auto - true - true - Auto - Auto - - - true - true - - true - - - <key>ru</key> - <value>Параметры формирования</value> - - - ГруппаПараметрыФормированияКолонкиExtendedTooltip - 78 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - - true - true - - true - - - <key>ru</key> - <value>Параметры формирования</value> - - - ГруппаПараметрыФормированияExtendedTooltip - 74 - Label - true - true - - Left - - - UsualGroup - - Vertical - Auto - WeakSeparation - true - true - Auto - Auto - - - Bottom - true - - ФормаКоманднаяПанель - -1 - - ФормаОК - 26 - - <key>ru</key> - <value>ОК</value> - - true - true - - true - - - ФормаОКExtendedTooltip - 70 - Label - true - true - - Left - - - Form.Command.ЗаписатьИЗакрыть - Auto - true - true - true - UserCmds - Auto - - - ФормаОтмена - 27 - true - true - - true - - - ФормаОтменаExtendedTooltip - 71 - Label - true - true - - Left - - - Form.StandardCommand.Cancel - Normal - Auto - true - true - UserCmds - Auto - - - ФормаСправка - 28 - true - true - - true - - - ФормаСправкаExtendedTooltip - 72 - Label - true - true - - Left - - - Form.StandardCommand.Help - Normal - Auto - true - true - UserCmds - Auto - - Right - - - BeforeClose - ПередЗакрытием - - - OnCreateAtServer - ПриСозданииНаСервере - - LockOwner - true - true - Vertical - true - true - true - auto - true - - ФормироватьЕжедневныеКопии - - <key>ru</key> - <value>Формировать ежедневные копии</value> - - 2 - - Boolean - - - true - - - true - - true - - - ФормироватьЕжемесячныеКопии - - <key>ru</key> - <value>Формировать ежемесячные копии</value> - - 3 - - Boolean - - - true - - - true - - true - - - ФормироватьЕжегодныеКопии - - <key>ru</key> - <value>Формировать ежегодные копии</value> - - 4 - - Boolean - - - true - - - true - - true - - - ВремяФормированияКопий - - <key>ru</key> - <value>Время формирования копий</value> - - 5 - - Date - - Time - - - - true - - - true - - true - - - ЧислоМесяцаФормированияЕжемесячныхКопий - - <key>ru</key> - <value>Число месяца формирования ежемесячных копий</value> - - 6 - - Number - - 2 - true - - - - true - - - true - - true - - - МесяцФормированияЕжегодныхКопий - - <key>ru</key> - <value>Месяц формирования ежегодных копий</value> - - 7 - - Number - - 2 - true - - - - true - - - true - - true - - - ЧислоМесяцаФормированияЕжегодныхКопий - - <key>ru</key> - <value>Число месяца формирования ежегодных копий</value> - - 8 - - Number - - 2 - true - - - - true - - - true - - true - - - КоличествоЕжедневныхКопий - - <key>ru</key> - <value>Количество ежедневных копий</value> - - 9 - - Number - - 2 - true - - - - true - - - true - - true - - - КоличествоЕжемесячныхКопий - - <key>ru</key> - <value>Количество ежемесячных копий</value> - - 10 - - Number - - 2 - true - - - - true - - - true - - true - - - КоличествоЕжегодныхКопий - - <key>ru</key> - <value>Количество ежегодных копий</value> - - 11 - - Number - - 2 - true - - - - true - - - true - - true - - - ФормироватьЕжедневныеКопииТолькоВДниРаботыПользователей - - <key>ru</key> - <value>Формировать ежедневные копии только в дни работы пользователей</value> - - 12 - - Boolean - - - true - - - true - - true - - - ЧасовойПоясОбласти - - <key>ru</key> - <value>Часовой пояс области</value> - - 1 - - String - - - - true - - - true - - - - УстановитьПоУмолчанию - - <key>ru</key> - <value>Установить по умолчанию</value> - - 1 - - ru - Установить по умолчанию - - - true - - - - УстановитьПоУмолчанию - - - true - DontUse - Auto - - - ЗаписатьИЗакрыть - - <key>ru</key> - <value>Записать и закрыть</value> - - 2 - - true - - - - ЗаписатьИЗакрыть - - - DontUse - Auto - - - ОбластьДанных - - String - - - true - - - - - - diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/Forms/НастройкаБезИнтервалов/Module.bsl b/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/Forms/НастройкаБезИнтервалов/Module.bsl deleted file mode 100644 index bf1269ac3..000000000 --- a/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/Forms/НастройкаБезИнтервалов/Module.bsl +++ /dev/null @@ -1,130 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОписаниеПеременных - -&НаКлиенте -Перем ОтветПередЗакрытием; - -#КонецОбласти - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда - - Отказ = Истина; - ВызватьИсключение НСтр("ru = 'Для корректной работы необходим режим толстого, тонкого или ВЕБ-клиента.'"); - - КонецЕсли; - - НастройкиРезервногоКопирования = РезервноеКопированиеОбластейДанных.ПолучитьНастройкиРезервногоКопированияОбласти( - РаботаВМоделиСервиса.ЗначениеРазделителяСеанса()); - ЗаполнитьЗначенияСвойств(ЭтотОбъект, НастройкиРезервногоКопирования); - - Для НомерМесяца = 1 По 12 Цикл - Элементы.МесяцФормированияЕжегодныхКопий.СписокВыбора.Добавить(НомерМесяца, - Формат(Дата(2, НомерМесяца, 1), "ДФ=MMMM")); - КонецЦикла; - - ЧасовойПояс = ЧасовойПоясСеанса(); - ЧасовойПоясОбласти = ЧасовойПояс + " (" + ПредставлениеЧасовогоПояса(ЧасовойПояс) + ")"; - -КонецПроцедуры - -&НаКлиенте -Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) - - Если Не Модифицированность Тогда - Возврат; - КонецЕсли; - - Если ОтветПередЗакрытием = Истина Тогда - Возврат; - КонецЕсли; - - Отказ = Истина; - Если ЗавершениеРаботы Тогда - Возврат; - КонецЕсли; - - ОписаниеОповещения = Новый ОписаниеОповещения("ПередЗакрытиемЗавершение", ЭтотОбъект); - ПоказатьВопрос(ОписаниеОповещения, НСтр("ru = 'Настройки были изменены. Сохранить изменения?'"), - РежимДиалогаВопрос.ДаНетОтмена, , КодВозвратаДиалога.Да); - -КонецПроцедуры - -&НаКлиенте -Процедура ПередЗакрытиемЗавершение(Ответ, ДополнительныеПараметры) Экспорт - - Если Ответ = КодВозвратаДиалога.Отмена Тогда - Возврат; - КонецЕсли; - - Если Ответ = КодВозвратаДиалога.Да Тогда - ЗаписатьНастройкиРезервногоКопирования(); - КонецЕсли; - ОтветПередЗакрытием = Истина; - Закрыть(); - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиКомандФормы - -&НаКлиенте -Процедура УстановитьПоУмолчанию(Команда) - - УстановитьПоУмолчаниюНаСервере(); - -КонецПроцедуры - -&НаКлиенте -Процедура ЗаписатьИЗакрыть(Команда) - - ЗаписатьНастройкиРезервногоКопирования(); - Модифицированность = Ложь; - Закрыть(КодВозвратаДиалога.ОК); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -&НаСервере -Процедура УстановитьПоУмолчаниюНаСервере() - - НастройкиРезервногоКопирования = РезервноеКопированиеОбластейДанных.ПолучитьНастройкиРезервногоКопированияОбласти(); - ЗаполнитьЗначенияСвойств(ЭтотОбъект, НастройкиРезервногоКопирования); - -КонецПроцедуры - -&НаСервере -Процедура ЗаписатьНастройкиРезервногоКопирования() - - СоответствиеНастроек = РезервноеКопированиеОбластейДанныхПовтИсп.СоответствиеРусскихИменПолейНастроекАнглийским(); - - НастройкиРезервногоКопирования = Новый Структура; - Для Каждого КлючИЗначение Из СоответствиеНастроек Цикл - НастройкиРезервногоКопирования.Вставить(КлючИЗначение.Значение, ЭтотОбъект[КлючИЗначение.Значение]); - КонецЦикла; - - РезервноеКопированиеОбластейДанных.УстановитьНастройкиРезервногоКопированияОбласти( - РаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), НастройкиРезервногоКопирования); - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/Forms/НастройкаСИнтервалами/Form.form b/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/Forms/НастройкаСИнтервалами/Form.form deleted file mode 100644 index ae70f3fd7..000000000 --- a/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/Forms/НастройкаСИнтервалами/Form.form +++ /dev/null @@ -1,1662 +0,0 @@ - - - - <key>ru</key> - <value>Настройка резервного копирования приложения</value> - - - ПредставлениеПриложения - 1 - true - true - - true - - - ПредставлениеПриложения - - - ПредставлениеПриложенияExtendedTooltip - 57 - Label - true - true - - Left - - - - ПредставлениеПриложенияКонтекстноеМеню - 2 - true - - InputField - true - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - ГруппаПараметрыФормирования - 7 - - ИнтервалФормированияКопий - 17 - - ИнтервалФормированияКопийСтраница - 18 - - НачалоИнтервалаФормированияКопий - 9 - - <key>ru</key> - <value>Формировать копии с</value> - - true - true - - true - - - НачалоИнтервалаФормированияКопий - - - НачалоИнтервалаФормированияКопийExtendedTooltip - 61 - Label - true - true - - Left - - - - НачалоИнтервалаФормированияКопийКонтекстноеМеню - 10 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - ОкончаниеИнтервалаФормированияКопий - 11 - - <key>ru</key> - <value>по</value> - - true - true - - true - - - ОкончаниеИнтервалаФормированияКопий - - - ОкончаниеИнтервалаФормированияКопийExtendedTooltip - 62 - Label - true - true - - Left - - - - ОкончаниеИнтервалаФормированияКопийКонтекстноеМеню - 12 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - ЧасовойПояс - 13 - true - true - - true - - - ЧасовойПояс - - None - - ЧасовойПоясExtendedTooltip - 63 - Label - true - true - - Left - - - - ЧасовойПоясКонтекстноеМеню - 14 - true - - LabelField - Enter - true - Left - true - - true - true - - - true - true - - true - - - <key>ru</key> - <value>Интервал формирования копий страница</value> - - - ИнтервалФормированияКопийСтраницаExtendedTooltip - 60 - Label - true - true - - Left - - - Page - - HorizontalIfPossible - auto - false - - - true - true - - true - - - <key>ru</key> - <value>Интервал формирования копий</value> - - - ИнтервалФормированияКопийExtendedTooltip - 59 - Label - true - true - - Left - - - Pages - - Auto - - - - ГруппаПараметрыФормированияКолонки - 19 - - ГруппаПериодичность - 20 - - ФормироватьЕжедневныеКопии - 24 - true - true - - true - - - ФормироватьЕжедневныеКопии - - - ФормироватьЕжедневныеКопииExtendedTooltip - 66 - Label - true - true - - Left - - - - ФормироватьЕжедневныеКопииКонтекстноеМеню - 25 - true - - CheckBoxField - Enter - true - Left - true - - - - ГруппаЕжемесячныеКопии - 23 - - ФормироватьЕжемесячныеКопии - 26 - true - true - - true - - - ФормироватьЕжемесячныеКопии - - - ФормироватьЕжемесячныеКопииExtendedTooltip - 68 - Label - true - true - - Left - - - - ФормироватьЕжемесячныеКопииКонтекстноеМеню - 27 - true - - CheckBoxField - Enter - true - Left - true - - - - ЧислоМесяцаФормированияЕжемесячныхКопий - 31 - - <key>ru</key> - <value> числа месяца</value> - - true - true - - true - - - ЧислоМесяцаФормированияЕжемесячныхКопий - - Right - - ЧислоМесяцаФормированияЕжемесячныхКопийExtendedTooltip - 69 - Label - true - true - - Left - - - - ЧислоМесяцаФормированияЕжемесячныхКопийКонтекстноеМеню - 32 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - true - - 1 - - - 28 - - Normal - - - true - true - - true - - - <key>ru</key> - <value>Ежемесячные копии</value> - - - ГруппаЕжемесячныеКопииExtendedTooltip - 67 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - - - ГруппаЕжегодныеКопии - 28 - - ФормироватьЕжегодныеКопии - 29 - true - true - - true - - - ФормироватьЕжегодныеКопии - - - ФормироватьЕжегодныеКопииExtendedTooltip - 71 - Label - true - true - - Left - - - - ФормироватьЕжегодныеКопииКонтекстноеМеню - 30 - true - - CheckBoxField - Enter - true - Left - true - - - - ЧислоМесяцаФормированияЕжегодныхКопий - 33 - true - true - - true - - - ЧислоМесяцаФормированияЕжегодныхКопий - - None - - ЧислоМесяцаФормированияЕжегодныхКопийExtendedTooltip - 72 - Label - true - true - - Left - - - - ЧислоМесяцаФормированияЕжегодныхКопийКонтекстноеМеню - 34 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - true - - 1 - - - 28 - - Normal - - - - МесяцФормированияЕжегодныхКопий - 35 - true - true - - true - - - МесяцФормированияЕжегодныхКопий - - None - - МесяцФормированияЕжегодныхКопийExtendedTooltip - 73 - Label - true - true - - Left - - - - МесяцФормированияЕжегодныхКопийКонтекстноеМеню - 36 - true - - InputField - Enter - true - Left - true - - 10 - true - true - true - true - true - true - true - Normal - - - true - true - - true - - - <key>ru</key> - <value>Ежегодные копии</value> - - - ГруппаЕжегодныеКопииExtendedTooltip - 70 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - - true - true - - true - - - <key>ru</key> - <value>Периодичность</value> - - - ГруппаПериодичностьExtendedTooltip - 65 - Label - true - true - - Left - - - UsualGroup - - Vertical - Auto - true - true - Auto - Auto - - - - ГруппаКоличество - 37 - - ГруппаКоличествоЕжедневных - 44 - - КоличествоЕжедневныхКопий - 38 - - <key>ru</key> - <value>хранить</value> - - true - true - - true - - - КоличествоЕжедневныхКопий - - - OnChange - КоличествоЕжедневныхКопийПриИзменении - - - КоличествоЕжедневныхКопийExtendedTooltip - 76 - Label - true - true - - Left - - - - КоличествоЕжедневныхКопийКонтекстноеМеню - 39 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - ПодписьКоличестваЕжедневных - 51 - true - true - - true - - - ПодписьКоличестваЕжедневных - - None - - ПодписьКоличестваЕжедневныхExtendedTooltip - 77 - Label - true - true - - Left - - - - ПодписьКоличестваЕжедневныхКонтекстноеМеню - 52 - true - - LabelField - Enter - true - Left - true - - true - true - - - true - true - - true - - - <key>ru</key> - <value>Количество ежедневных</value> - - - ГруппаКоличествоЕжедневныхExtendedTooltip - 75 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - - - ГруппаКоличествоЕжемесячных - 45 - - КоличествоЕжемесячныхКопий - 40 - - <key>ru</key> - <value>хранить</value> - - true - true - - true - - - КоличествоЕжемесячныхКопий - - - OnChange - КоличествоЕжемесячныхКопийПриИзменении - - - КоличествоЕжемесячныхКопийExtendedTooltip - 79 - Label - true - true - - Left - - - - КоличествоЕжемесячныхКопийКонтекстноеМеню - 41 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - ПодписьКоличестваЕжемесячных - 49 - true - true - - true - - - ПодписьКоличестваЕжемесячных - - None - - ПодписьКоличестваЕжемесячныхExtendedTooltip - 80 - Label - true - true - - Left - - - - ПодписьКоличестваЕжемесячныхКонтекстноеМеню - 50 - true - - LabelField - Enter - true - Left - true - - true - true - - - true - true - - true - - - <key>ru</key> - <value>Количество ежемесячных</value> - - - ГруппаКоличествоЕжемесячныхExtendedTooltip - 78 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - - - ГруппаКоличествоЕжегодных - 46 - - КоличествоЕжегодныхКопий - 42 - - <key>ru</key> - <value>хранить</value> - - true - true - - true - - - КоличествоЕжегодныхКопий - - - OnChange - КоличествоЕжегодныхКопийПриИзменении - - - КоличествоЕжегодныхКопийExtendedTooltip - 82 - Label - true - true - - Left - - - - КоличествоЕжегодныхКопийКонтекстноеМеню - 43 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - ПодписьКоличестваЕжегодных - 47 - true - true - - true - - - ПодписьКоличестваЕжегодных - - None - - ПодписьКоличестваЕжегодныхExtendedTooltip - 83 - Label - true - true - - Left - - - - ПодписьКоличестваЕжегодныхКонтекстноеМеню - 48 - true - - LabelField - Enter - true - Left - true - - true - true - - - true - true - - true - - - <key>ru</key> - <value>Количество ежегодных</value> - - - ГруппаКоличествоЕжегодныхExtendedTooltip - 81 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - - true - true - - true - - - <key>ru</key> - <value>Количество</value> - - - ГруппаКоличествоExtendedTooltip - 74 - Label - true - true - - Left - - - UsualGroup - - Vertical - Auto - true - true - Auto - Auto - - - true - true - - true - - - <key>ru</key> - <value>Параметры формирования колонки</value> - - - ГруппаПараметрыФормированияКолонкиExtendedTooltip - 64 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - NormalSeparation - true - true - Auto - Auto - - - - ФормироватьКопииТолькоПриАктивностиПользователей - 15 - - <key>ru</key> - <value>Формировать копии только в дни работы пользователей</value> - - true - true - - true - - - ФормироватьКопииТолькоПриАктивностиПользователей - - - ФормироватьКопииТолькоПриАктивностиПользователейExtendedTooltip - 84 - Label - true - true - - Left - - - - ФормироватьКопииТолькоПриАктивностиПользователейКонтекстноеМеню - 16 - true - - CheckBoxField - Enter - true - Left - true - - - true - true - - true - - - <key>ru</key> - <value>Параметры формирования</value> - - - ГруппаПараметрыФормированияExtendedTooltip - 58 - Label - true - true - - Left - - - UsualGroup - - Vertical - Auto - WeakSeparation - true - true - Auto - Auto - - - - ФормаКоманднаяПанель - -1 - - ЗаписатьИЗакрыть - 4 - true - true - - true - - - ЗаписатьИЗакрытьExtendedTooltip - 53 - Label - true - true - - Left - - - Form.Command.ЗаписатьИЗакрыть - Auto - true - true - true - UserCmds - Auto - - - ФормаЗаписать - 6 - true - true - - true - - - ФормаЗаписатьExtendedTooltip - 54 - Label - true - true - - Left - - - Form.Command.Записать - Normal - Auto - true - true - UserCmds - Auto - - - ФормаПеречитать - 5 - true - true - - true - - - ФормаПеречитатьExtendedTooltip - 55 - Label - true - true - - Left - - - Form.Command.Перечитать - Normal - Auto - true - true - UserCmds - Auto - - - ФормаУстановитьПоУмолчанию - 3 - true - true - - true - - - ФормаУстановитьПоУмолчаниюExtendedTooltip - 56 - Label - true - true - - Left - - - Form.Command.УстановитьСтандартныеНастройки - Normal - Auto - true - true - UserCmds - Auto - - Left - true - - - BeforeClose - ПередЗакрытием - - - OnCreateAtServer - ПриСозданииНаСервере - - DontBlock - true - true - Vertical - true - true - auto - true - - ПредставлениеПриложения - - <key>ru</key> - <value>Приложение</value> - - 1 - - String - - - - true - - - true - - - - НачалоИнтервалаФормированияКопий - - <key>ru</key> - <value>Начало интервала формирования копий</value> - - 3 - - Date - - Time - - - - true - - - true - - true - - - ОкончаниеИнтервалаФормированияКопий - - <key>ru</key> - <value>Окончание интервала формирования копий</value> - - 4 - - Date - - Time - - - - true - - - true - - true - - - ЧасовойПояс - - <key>ru</key> - <value>Часовой пояс</value> - - 5 - - String - - - - true - - - true - - - - ФормироватьКопииТолькоПриАктивностиПользователей - - <key>ru</key> - <value>Формировать копии только при активности пользователей</value> - - 6 - - Boolean - - - true - - - true - - true - - - ФормироватьЕжедневныеКопии - - <key>ru</key> - <value>Формировать ежедневные копии</value> - - 7 - - Boolean - - - true - - - true - - true - - - ФормироватьЕжемесячныеКопии - - <key>ru</key> - <value>Формировать ежемесячные копии</value> - - 8 - - Boolean - - - true - - - true - - true - - - ФормироватьЕжегодныеКопии - - <key>ru</key> - <value>Формировать ежегодные копии</value> - - 9 - - Boolean - - - true - - - true - - true - - - ЧислоМесяцаФормированияЕжемесячныхКопий - - <key>ru</key> - <value>Число месяца формирования ежемесячных копий</value> - - 10 - - Number - - 2 - true - - - - true - - - true - - true - - - ЧислоМесяцаФормированияЕжегодныхКопий - - <key>ru</key> - <value>Число месяца формирования ежегодных копий</value> - - 11 - - Number - - 2 - true - - - - true - - - true - - true - - - МесяцФормированияЕжегодныхКопий - - <key>ru</key> - <value>Месяц формирования ежегодных копий</value> - - 12 - - Number - - 2 - true - - - - true - - - true - - true - - - КоличествоЕжедневныхКопий - - <key>ru</key> - <value>Количество ежедневных копий</value> - - 13 - - Number - - 2 - true - - - - true - - - true - - true - - - КоличествоЕжемесячныхКопий - - <key>ru</key> - <value>Количество ежемесячных копий</value> - - 14 - - Number - - 2 - true - - - - true - - - true - - true - - - КоличествоЕжегодныхКопий - - <key>ru</key> - <value>Количество ежегодных копий</value> - - 15 - - Number - - 2 - true - - - - true - - - true - - true - - - ПодписьКоличестваЕжедневных - - <key>ru</key> - <value>Подпись количества ежедневных</value> - - 16 - - String - - - - true - - - true - - - - ПодписьКоличестваЕжемесячных - - <key>ru</key> - <value>Подпись количества ежемесячных</value> - - 17 - - String - - - - true - - - true - - - - ПодписьКоличестваЕжегодных - - <key>ru</key> - <value>Подпись количества ежегодных</value> - - 18 - - String - - - - true - - - true - - - - ИсходныеНастройки - - <key>ru</key> - <value>Исходные настройки</value> - - 2 - - - true - - - true - - - - УстановитьСтандартныеНастройки - - <key>ru</key> - <value>Установить стандартные настройки</value> - - 1 - - ru - Установить стандартные настройки - - - true - - - - УстановитьСтандартныеНастройки - - - true - DontUse - Auto - - - ЗаписатьИЗакрыть - - <key>ru</key> - <value>Записать и закрыть</value> - - 2 - - ru - Записать и закрыть - - - true - - - StdPicture.WriteAndClose - - - - ЗаписатьИЗакрыть - - - Text - true - DontUse - Auto - - - Перечитать - - <key>ru</key> - <value>Перечитать</value> - - 3 - - ru - Перечитать - - - true - - - StdPicture.Reread - - - - Перечитать - - - DontUse - Auto - - - Записать - - <key>ru</key> - <value>Записать</value> - - 4 - - ru - Записать - - - true - - - StdPicture.Write - - - - Записать - - - DontUse - Auto - - - ДанныеНастроек - - - - ОбластьДанных - - Number - - 7 - true - - - true - - - ОграниченияНастроек - - - - - - - diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/Forms/НастройкаСИнтервалами/Module.bsl b/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/Forms/НастройкаСИнтервалами/Module.bsl deleted file mode 100644 index 69ba83641..000000000 --- a/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/Forms/НастройкаСИнтервалами/Module.bsl +++ /dev/null @@ -1,280 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОписаниеПеременных - -&НаКлиенте -Перем ОтветПередЗакрытием; - -#КонецОбласти - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда - - Отказ = Истина; - ВызватьИсключение НСтр("ru = 'Для корректной работы необходим режим толстого, или тонкого клиента.'"); - - КонецЕсли; - - // Инициализация формы - Для НомерМесяца = 1 По 12 Цикл - Элементы.МесяцФормированияЕжегодныхКопий.СписокВыбора.Добавить(НомерМесяца, - Формат(Дата(2, НомерМесяца, 1), "ДФ=MMMM")); - КонецЦикла; - - УстановитьШиринуПодписей(); - - ПрименитьОграниченияНастроек(); - - ЗаполнитьФормуПоНастройкам(Параметры.ДанныеНастроек); - -КонецПроцедуры - -&НаКлиенте -Процедура КоличествоЕжедневныхКопийПриИзменении(Элемент) - - ПодписьКоличестваЕжедневных = ПодписьКоличестваКопий(КоличествоЕжедневныхКопий); - -КонецПроцедуры - -&НаКлиенте -Процедура КоличествоЕжемесячныхКопийПриИзменении(Элемент) - - ПодписьКоличестваЕжемесячных = ПодписьКоличестваКопий(КоличествоЕжемесячныхКопий); - -КонецПроцедуры - -&НаКлиенте -Процедура КоличествоЕжегодныхКопийПриИзменении(Элемент) - - ПодписьКоличестваЕжегодных = ПодписьКоличестваКопий(КоличествоЕжегодныхКопий); - -КонецПроцедуры - -&НаКлиенте -Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) - - Если Не Модифицированность Тогда - Возврат; - КонецЕсли; - - Если ОтветПередЗакрытием = Истина Тогда - Возврат; - КонецЕсли; - - Отказ = Истина; - Если ЗавершениеРаботы Тогда - Возврат; - КонецЕсли; - - ОписаниеОповещения = Новый ОписаниеОповещения("ПередЗакрытиемЗавершение", ЭтотОбъект); - ПоказатьВопрос(ОписаниеОповещения, НСтр("ru = 'Данные были изменены. Сохранить изменения?'"), - РежимДиалогаВопрос.ДаНетОтмена, , КодВозвратаДиалога.Да); - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиКомандФормы - -&НаКлиенте -Процедура Перечитать(Команда) - - ПеречитатьНаСервере(); - -КонецПроцедуры - -&НаКлиенте -Процедура Записать(Команда) - - ЗаписатьНовыеНастройки(); - -КонецПроцедуры - -&НаКлиенте -Процедура ЗаписатьИЗакрыть(Команда) - - ЗаписатьНовыеНастройки(); - Закрыть(); - -КонецПроцедуры - -&НаКлиенте -Процедура УстановитьСтандартныеНастройки(Команда) - - УстановитьСтандартныеНастройкиНаСервере(); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -&НаСервере -Процедура ПеречитатьНаСервере() - - ЗаполнитьФормуПоНастройкам( - РезервноеКопированиеОбластейДанныхДанныеФормИнтерфейс.ПолучитьНастройкиОбласти(Параметры.ОбластьДанных)); - - Модифицированность = Ложь; - -КонецПроцедуры - -&НаСервере -Процедура ЗаполнитьФормуПоНастройкам(Знач ДанныеНастроек, Знач ОбновлятьИсходныеНастройки = Истина) - - ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеНастроек); - - Если ОбновлятьИсходныеНастройки Тогда - ИсходныеНастройки = ДанныеНастроек; - КонецЕсли; - - УстановитьПодписиВсехКоличеств(); - -КонецПроцедуры - -&НаСервере -Процедура УстановитьШиринуПодписей() - - МаксимальнаяШирина = 0; - - ЧислаДляПроверки = Новый Массив; - ЧислаДляПроверки.Добавить(1); - ЧислаДляПроверки.Добавить(2); - ЧислаДляПроверки.Добавить(5); - - Для Каждого Число Из ЧислаДляПроверки Цикл - ШиринаНадписи = СтрДлина(ПодписьКоличестваКопий(Число)); - Если ШиринаНадписи > МаксимальнаяШирина Тогда - МаксимальнаяШирина = ШиринаНадписи; - КонецЕсли; - КонецЦикла; - - ЭлементыПодписей = Новый Массив; - ЭлементыПодписей.Добавить(Элементы.ПодписьКоличестваЕжедневных); - ЭлементыПодписей.Добавить(Элементы.ПодписьКоличестваЕжемесячных); - ЭлементыПодписей.Добавить(Элементы.ПодписьКоличестваЕжегодных); - - Для каждого ЭлементПодписи Из ЭлементыПодписей Цикл - ЭлементПодписи.Ширина = МаксимальнаяШирина; - КонецЦикла; - -КонецПроцедуры - -&НаСервере -Процедура ПрименитьОграниченияНастроек() - - ОграниченияНастроек = Параметры.ОграниченияНастроек; - - ШаблонПодсказки = НСтр("ru = 'Максимум %1'"); - - ЭлементыОграничений = Новый Структура; - ЭлементыОграничений.Вставить("КоличествоЕжедневныхКопий", "МаксимумЕжедневныхКопий"); - ЭлементыОграничений.Вставить("КоличествоЕжемесячныхКопий", "МаксимумЕжемесячныхКопий"); - ЭлементыОграничений.Вставить("КоличествоЕжегодныхКопий", "МаксимумЕжегодныхКопий"); - - Для каждого КлючИЗначение Из ЭлементыОграничений Цикл - Элемент = Элементы[КлючИЗначение.Ключ]; - Элемент.МаксимальноеЗначение = ОграниченияНастроек[КлючИЗначение.Значение]; - Элемент.Подсказка = - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонПодсказки, - ОграниченияНастроек[КлючИЗначение.Значение]); - КонецЦикла; - -КонецПроцедуры - -&НаСервере -Процедура УстановитьПодписиВсехКоличеств() - - ПодписьКоличестваЕжедневных = ПодписьКоличестваКопий(КоличествоЕжедневныхКопий); - ПодписьКоличестваЕжемесячных = ПодписьКоличестваКопий(КоличествоЕжемесячныхКопий); - ПодписьКоличестваЕжегодных = ПодписьКоличестваКопий(КоличествоЕжегодныхКопий); - -КонецПроцедуры - -&НаКлиентеНаСервереБезКонтекста -Функция ПодписьКоличестваКопий(Знач Количество) - - МассивПредставлений = Новый Массив; - МассивПредставлений.Добавить(НСтр("ru = 'последнюю копию'")); - МассивПредставлений.Добавить(НСтр("ru = 'последние копии'")); - МассивПредставлений.Добавить(НСтр("ru = 'последних копий'")); - - Если Количество >= 100 Тогда - Количество = Количество - Цел(Количество / 100)*100; - КонецЕсли; - - Если Количество > 20 Тогда - Количество = Количество - Цел(Количество/10)*10; - КонецЕсли; - - Если Количество = 1 Тогда - Результат = МассивПредставлений[0]; - ИначеЕсли Количество > 1 И Количество < 5 Тогда - Результат = МассивПредставлений[1]; - Иначе - Результат = МассивПредставлений[2]; - КонецЕсли; - - Возврат Результат; - -КонецФункции - -&НаСервере -Процедура ЗаписатьНовыеНастройки() - - НовыеНастройки = Новый Структура; - Для каждого КлючИЗначение Из ИсходныеНастройки Цикл - НовыеНастройки.Вставить(КлючИЗначение.Ключ, ЭтотОбъект[КлючИЗначение.Ключ]); - КонецЦикла; - - НовыеНастройки = Новый ФиксированнаяСтруктура(НовыеНастройки); - - РезервноеКопированиеОбластейДанныхДанныеФормИнтерфейс.УстановитьНастройкиОбласти( - Параметры.ОбластьДанных, - НовыеНастройки, - ИсходныеНастройки); - - Модифицированность = Ложь; - ИсходныеНастройки = НовыеНастройки; - -КонецПроцедуры - -&НаСервере -Процедура УстановитьСтандартныеНастройкиНаСервере() - - ЗаполнитьФормуПоНастройкам( - РезервноеКопированиеОбластейДанныхДанныеФормИнтерфейс.ПолучитьСтандартныеНастройки(), - Ложь); - -КонецПроцедуры - -&НаКлиенте -Процедура ПередЗакрытиемЗавершение(Ответ, ДополнительныеПараметры) Экспорт - - Если Ответ = КодВозвратаДиалога.Отмена Тогда - Возврат; - КонецЕсли; - - Если Ответ = КодВозвратаДиалога.Да Тогда - ЗаписатьНовыеНастройки(); - КонецЕсли; - ОтветПередЗакрытием = Истина; - Закрыть(); - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/ManagerModule.bsl b/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/ManagerModule.bsl deleted file mode 100644 index 1bc2c943f..000000000 --- a/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/ManagerModule.bsl +++ /dev/null @@ -1,57 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда - -#Область ОбработчикиСобытий - -Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) - - СтандартнаяОбработка = Ложь; - - УстановитьПривилегированныйРежим(Истина); - - Версии = ПолучитьВерсииWebСервиса(); - - Если Версии.Найти("1.0.2.1") <> Неопределено Тогда - - ВыбраннаяФорма = "НастройкаСИнтервалами"; - - ОбластьДанных = РаботаВМоделиСервиса.ЗначениеРазделителяСеанса(); - - ДополнительныеПараметры = РезервноеКопированиеОбластейДанныхДанныеФормИнтерфейс. - ПолучитьПараметрыФормыНастроек(ОбластьДанных); - Для каждого КлючИЗначение Из ДополнительныеПараметры Цикл - Параметры.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение); - КонецЦикла; - - ИначеЕсли РезервноеКопированиеОбластейДанныхПовтИсп.МенеджерСервисаПоддерживаетРезервноеКопирование() Тогда - - ВыбраннаяФорма = "НастройкаБезИнтервалов"; - - Иначе - - ВызватьИсключение(НСтр("ru = 'Менеджер сервиса не поддерживает резервное копирование приложений'")); - - КонецЕсли; - -КонецПроцедуры - -Функция ПолучитьВерсииWebСервиса() - - Возврат ОбщегоНазначения.ПолучитьВерсииИнтерфейса( - РаботаВМоделиСервиса.ВнутреннийАдресМенеджераСервиса(), - РаботаВМоделиСервиса.ИмяСлужебногоПользователяМенеджераСервиса(), - РаботаВМоделиСервиса.ПарольСлужебногоПользователяМенеджераСервиса(), - "ZoneBackupControl"); - -КонецФункции - -#КонецОбласти - -#КонецЕсли \ No newline at end of file diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/ObjectModule.bsl b/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/ObjectModule.bsl deleted file mode 100644 index e69de29bb..000000000 diff --git a/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/НастройкаРезервногоКопированияПриложения.mdo b/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/НастройкаРезервногоКопированияПриложения.mdo deleted file mode 100644 index bfebede27..000000000 --- a/SSL/src/DataProcessors/НастройкаРезервногоКопированияПриложения/НастройкаРезервногоКопированияПриложения.mdo +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - НастройкаРезервногоКопированияПриложения - - ru - Настройка резервного копирования приложения - - true - - НастройкаБезИнтервалов - - ru - Настройка без интервалов - - PersonalComputer - MobileDevice - - - НастройкаСИнтервалами - - ru - Настройка с интервалами - - PersonalComputer - MobileDevice - - diff --git a/SSL/src/InformationRegisters/НастройкиОтправителя/Commands/НастройкиОтправителя/CommandModule.bsl b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Commands/НастройкиСтандартногоИнтерфейсаOData/CommandModule.bsl similarity index 63% rename from SSL/src/InformationRegisters/НастройкиОтправителя/Commands/НастройкиОтправителя/CommandModule.bsl rename to SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Commands/НастройкиСтандартногоИнтерфейсаOData/CommandModule.bsl index fc6f0929d..69783fd59 100644 --- a/SSL/src/InformationRegisters/НастройкиОтправителя/Commands/НастройкиОтправителя/CommandModule.bsl +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Commands/НастройкиСтандартногоИнтерфейсаOData/CommandModule.bsl @@ -10,13 +10,12 @@ &НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) - - Отбор = Новый Структура("Получатель", ПараметрКоманды); - - ПараметрыФормы = Новый Структура("Отбор", Отбор); - - ОткрытьФорму("РегистрСведений.НастройкиОтправителя.ФормаСписка", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно); - + ПараметрыФормы = Новый Структура("ТолькоЗагрузка"); + ОткрытьФорму("Обработка.НастройкаСтандартногоИнтерфейсаOData.Форма.НастройкаИспользованияСтандартногоИнтерфейсаOData", + ПараметрыФормы, , + ПараметрыВыполненияКоманды.Уникальность, + ПараметрыВыполненияКоманды.Окно, + ПараметрыВыполненияКоманды.НавигационнаяСсылка); КонецПроцедуры -#КонецОбласти +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Form.form b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Form.form new file mode 100644 index 000000000..5c81a3377 --- /dev/null +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Form.form @@ -0,0 +1,851 @@ + + + + <key>ru</key> + <value>Зависимости объекта "%1"</value> + + + КартинкаИВопрос + 7 + + ДекорацияВопрос + 1 + + <key>ru</key> + <value>Декорация вопрос</value> + + true + true + + true + + + ДекорацияВопросРасширеннаяПодсказка + 3 + Label + true + true + + Left + + + + ДекорацияВопросКонтекстноеМеню + 2 + true + + 4 + true + 2 + true + + + CommonPicture.Вопрос32 + + + + + ГруппаВопрос + 9 + + ГруппаСтраницыШапка + 61 + + ГруппаСтраницаШапкаДобавление + 63 + + ДекорацияЗаголовокШапкаДобавление + 4 + + <key>ru</key> + <value>Будет разрешен доступ к %1 "%2" с помощью автоматического REST-сервиса. +Для того, чтобы сторонняя программа смогла работать с этим объектом через автоматический REST-сервис требуется дополнительно разрешить доступ через автоматический REST-сервис к следующим объектам:</value> + + true + true + + true + + + ДекорацияЗаголовокШапкаДобавлениеРасширеннаяПодсказка + 6 + Label + true + true + + Left + + + + ДекорацияЗаголовокШапкаДобавлениеКонтекстноеМеню + 5 + true + + Label + 3 + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница шапка добавление</value> + + + ГруппаСтраницаШапкаДобавлениеРасширеннаяПодсказка + 64 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + ГруппаСтраницаШапкаУдаление + 65 + + ДекорацияЗаголовокШапкаУдаление + 67 + + <key>ru</key> + <value>Вы решили запретить доступ к %1 "%2" с помощью автоматического REST-сервиса. +Этот объект обязательно должен быть разрешен для использования с помощью стандартного REST-сервиса для того, чтобы через автоматический REST-сервис сторонние программы могли взаимодействовать со следующими объектами:</value> + + true + true + + true + + + ДекорацияЗаголовокШапкаУдалениеРасширеннаяПодсказка + 69 + Label + true + true + + Left + + + + ДекорацияЗаголовокШапкаУдалениеКонтекстноеМеню + 68 + true + + Label + true + 3 + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница шапка удаление</value> + + + ГруппаСтраницаШапкаУдалениеРасширеннаяПодсказка + 66 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Страницы шапка</value> + + true + + ГруппаСтраницыШапкаРасширеннаяПодсказка + 62 + Label + true + true + + Left + + + Pages + + Auto + + + + ОбъектыМетаданных + 11 + + <key>ru</key> + <value>Объекты метаданных</value> + + true + true + + true + + + ОбъектыМетаданных + + None + + ОбъектыМетаданныхГруппа + 57 + + ОбъектыМетаданныхКартинка + 36 + + <key>ru</key> + <value>Объект</value> + + true + true + + true + + + ОбъектыМетаданных.Картинка + + + ОбъектыМетаданныхКартинкаРасширеннаяПодсказка + 38 + Label + true + true + + Left + + + + ОбъектыМетаданныхКартинкаКонтекстноеМеню + 37 + true + + PictureField + Auto + true + Left + true + + true + true + true + true + + + 1 + + + + + ОбъектыМетаданныхПредставление + 33 + true + true + + true + + + ОбъектыМетаданных.Представление + + None + + ОбъектыМетаданныхПредставлениеРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + + ОбъектыМетаданныхПредставлениеКонтекстноеМеню + 34 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Объекты метаданных группа</value> + + + ОбъектыМетаданныхГруппаРасширеннаяПодсказка + 58 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + None + + ОбъектыМетаданныхКоманднаяПанель + 13 + Left + true + + + ОбъектыМетаданныхСтрокаПоиска + 15 + + ОбъектыМетаданныхСтрокаПоискаРасширеннаяПодсказка + 19 + Label + true + true + + Left + + + + ОбъектыМетаданныхСтрокаПоискаКонтекстноеМеню + 18 + true + + ОбъектыМетаданных + + true + + + + ОбъектыМетаданныхСостояниеПросмотра + 20 + + ОбъектыМетаданныхСостояниеПросмотраРасширеннаяПодсказка + 24 + Label + true + true + + Left + + + + ОбъектыМетаданныхСостояниеПросмотраКонтекстноеМеню + 23 + true + + ViewStatusAddition + ОбъектыМетаданных + + true + + + + ОбъектыМетаданныхУправлениеПоиском + 25 + + ОбъектыМетаданныхУправлениеПоискомРасширеннаяПодсказка + 29 + Label + true + true + + Left + + + + ОбъектыМетаданныхУправлениеПоискомКонтекстноеМеню + 28 + true + + SearchControlAddition + ОбъектыМетаданных + + true + + + + ОбъектыМетаданныхРасширеннаяПодсказка + 14 + Label + true + true + + Left + + + + ОбъектыМетаданныхКонтекстноеМеню + 12 + true + + Tree + true + true + true + true +
                true
                + 1 + 1 + AutoUse + AutoUse + true + true + false + true + Auto + ExpandAllLevels + true + true + true + true + true +
                + + ГруппаСтраницыПодвал + 70 + + ГруппаСтраницаПодвалДобавление + 72 + + ДекорацияТекстВопросаДобавление + 48 + + <key>ru</key> + <value>Разрешить доступ и к этим объектам через автоматический REST-сервис?</value> + + true + true + + true + + + ДекорацияТекстВопросаДобавлениеРасширеннаяПодсказка + 50 + Label + true + true + + Left + + + + ДекорацияТекстВопросаДобавлениеКонтекстноеМеню + 49 + true + + Label + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница подвал добавление</value> + + + ГруппаСтраницаПодвалДобавлениеРасширеннаяПодсказка + 73 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + ГруппаСтраницаПодвалУдаление + 74 + + ДекорацияТекстВопросаУдаление + 76 + + <key>ru</key> + <value>Запретить доступ к этим объектам через автоматический REST-сервис?</value> + + true + true + + true + + + ДекорацияТекстВопросаУдалениеРасширеннаяПодсказка + 78 + Label + true + true + + Left + + + + ДекорацияТекстВопросаУдалениеКонтекстноеМеню + 77 + true + + Label + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Страница подвал удаление</value> + + + ГруппаСтраницаПодвалУдалениеРасширеннаяПодсказка + 75 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Страницы подвал</value> + + true + + ГруппаСтраницыПодвалРасширеннаяПодсказка + 71 + Label + true + true + + Left + + + Pages + + Auto + + + + Кнопки + 51 + + Да + 53 + true + true + + true + + + ДаРасширеннаяПодсказка + 54 + Label + true + true + + Left + + + Form.StandardCommand.Yes + Normal + Auto + true + true + UserCmds + Auto + + + Нет + 55 + true + true + + true + + + НетРасширеннаяПодсказка + 56 + Label + true + true + + Left + + + Form.StandardCommand.No + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Кнопки</value> + + + КнопкиРасширеннаяПодсказка + 52 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Вопрос</value> + + true + + ГруппаВопросРасширеннаяПодсказка + 10 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + +
                + true + true + + true + + + <key>ru</key> + <value>Картинка и вопрос</value> + + + КартинкаИВопросРасширеннаяПодсказка + 8 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + +
                + + ФормаКоманднаяПанель + -1 + Left + + + OnCreateAtServer + ПриСозданииНаСервере + + DontBlock + true + true + Vertical + true + true + true + auto + true + + Объект + 1 + + DataProcessorObject.НастройкаСтандартногоИнтерфейсаOData + + + true + + + true + +
                true
                +
                + + ОбъектыМетаданных + + <key>ru</key> + <value>Объекты метаданных</value> + + 2 + + ValueTree + + + true + + + true + + true + + Представление + + <key>ru</key> + <value>Представление</value> + + 2 + + String + + + + true + + + true + + + + Картинка + + <key>ru</key> + <value>Картинка</value> + + 3 + + Picture + + + true + + + true + + + + + ПолноеИмяОбъекта + + String + + + + + ЗависимостиОбъекта + + + + Добавление + + Boolean + + + + + + + +
                diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Module.bsl b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Module.bsl new file mode 100644 index 000000000..4555d8087 --- /dev/null +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/ЗависимостиОбъектаМетаданных/Module.bsl @@ -0,0 +1,165 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(Параметры.ПолноеИмяОбъекта); + + Если ОбщегоНазначения.ЭтоКонстанта(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'константе'"); + ИначеЕсли ОбщегоНазначения.ЭтоСправочник(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'справочнику'"); + ИначеЕсли ОбщегоНазначения.ЭтоДокумент(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'документу'"); + ИначеЕсли ИнтерфейсODataСлужебный.ЭтоНаборЗаписейПоследовательности(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'последовательности'"); + ИначеЕсли ОбщегоНазначения.ЭтоЖурналДокументов(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'журналу документов'"); + ИначеЕсли ОбщегоНазначения.ЭтоПеречисление(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'перечислению'"); + ИначеЕсли ОбщегоНазначения.ЭтоПланВидовХарактеристик(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'плану видов характеристик'"); + ИначеЕсли ОбщегоНазначения.ЭтоПланСчетов(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'плану счетов'"); + ИначеЕсли ОбщегоНазначения.ЭтоПланВидовРасчета(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'плану видов расчета'"); + ИначеЕсли ОбщегоНазначения.ЭтоРегистрСведений(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'регистру сведений'"); + ИначеЕсли ОбщегоНазначения.ЭтоРегистрНакопления(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'регистру накопления'"); + ИначеЕсли ОбщегоНазначения.ЭтоРегистрБухгалтерии(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'регистру бухгалтерии'"); + ИначеЕсли ОбщегоНазначения.ЭтоРегистрРасчета(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'регистру расчета'"); + ИначеЕсли ИнтерфейсODataСлужебный.ЭтоНаборЗаписейПерерасчета(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'перерасчету'"); + ИначеЕсли ОбщегоНазначения.ЭтоБизнесПроцесс(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'бизнес-процессу'"); + ИначеЕсли ОбщегоНазначения.ЭтоЗадача(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'задаче'"); + ИначеЕсли ОбщегоНазначения.ЭтоПланОбмена(ОбъектМетаданных) Тогда + ПредставлениеТипаОбъекта = НСтр("ru = 'плану обмена'"); + КонецЕсли; + + Если Параметры.Добавление Тогда + + Элементы.ГруппаСтраницыШапка.ТекущаяСтраница = Элементы.ГруппаСтраницаШапкаДобавление; + Элементы.ГруппаСтраницыПодвал.ТекущаяСтраница = Элементы.ГруппаСтраницаПодвалДобавление; + Элементы.ДекорацияЗаголовокШапкаДобавление.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + Элементы.ДекорацияЗаголовокШапкаДобавление.Заголовок, + ПредставлениеТипаОбъекта, + ОбъектМетаданных.Представление()); + + Иначе + + Элементы.ГруппаСтраницыШапка.ТекущаяСтраница = Элементы.ГруппаСтраницаШапкаУдаление; + Элементы.ГруппаСтраницыПодвал.ТекущаяСтраница = Элементы.ГруппаСтраницаПодвалУдаление; + Элементы.ДекорацияЗаголовокШапкаУдаление.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + Элементы.ДекорацияЗаголовокШапкаУдаление.Заголовок, + ПредставлениеТипаОбъекта, + ОбъектМетаданных.Представление()); + + КонецЕсли; + + ЭтотОбъект.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + ЭтотОбъект.Заголовок, ОбъектМетаданных.Представление()); + + // Заполнение дерева + + Дерево = Новый ДеревоЗначений(); + + Дерево.Колонки.Добавить("ПолноеИмя", Новый ОписаниеТипов("Строка")); + Дерево.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); + Дерево.Колонки.Добавить("Класс", Новый ОписаниеТипов("Число", , Новый КвалификаторыЧисла(10, 0, ДопустимыйЗнак.Неотрицательный))); + Дерево.Колонки.Добавить("Картинка", Новый ОписаниеТипов("Картинка")); + + ДобавитьКорневуюСтрокуДерева(Дерево, "Константа", НСтр("ru = 'Константы'"), 1, БиблиотекаКартинок.Константа); + ДобавитьКорневуюСтрокуДерева(Дерево, "Справочник", НСтр("ru = 'Справочники'"), 2, БиблиотекаКартинок.Справочник); + ДобавитьКорневуюСтрокуДерева(Дерево, "Документ", НСтр("ru = 'Документы'"), 3, БиблиотекаКартинок.Документ); + ДобавитьКорневуюСтрокуДерева(Дерево, "ЖурналДокументов", НСтр("ru = 'Журналы документов'"), 4, БиблиотекаКартинок.ЖурналДокументов); + ДобавитьКорневуюСтрокуДерева(Дерево, "Перечисление", НСтр("ru = 'Перечисление'"), 5, БиблиотекаКартинок.Перечисление); + ДобавитьКорневуюСтрокуДерева(Дерево, "ПланВидовХарактеристик", НСтр("ru = 'Планы видов характеристик'"), 6, БиблиотекаКартинок.ПланВидовХарактеристик); + ДобавитьКорневуюСтрокуДерева(Дерево, "ПланСчетов", НСтр("ru = 'Планы счетов'"), 7, БиблиотекаКартинок.ПланСчетов); + ДобавитьКорневуюСтрокуДерева(Дерево, "ПланВидовРасчета", НСтр("ru = 'Планы видов расчета'"), 8, БиблиотекаКартинок.ПланВидовРасчета); + ДобавитьКорневуюСтрокуДерева(Дерево, "РегистрСведений", НСтр("ru = 'Регистры сведений'"), 9, БиблиотекаКартинок.РегистрСведений); + ДобавитьКорневуюСтрокуДерева(Дерево, "РегистрНакопления", НСтр("ru = 'Регистры накопления'"), 10, БиблиотекаКартинок.РегистрНакопления); + ДобавитьКорневуюСтрокуДерева(Дерево, "РегистрБухгалтерии", НСтр("ru = 'Регистры бухгалтерии'"), 11, БиблиотекаКартинок.РегистрБухгалтерии); + ДобавитьКорневуюСтрокуДерева(Дерево, "РегистрРасчета", НСтр("ru = 'Регистры расчета'"), 12, БиблиотекаКартинок.РегистрРасчета); + ДобавитьКорневуюСтрокуДерева(Дерево, "БизнесПроцесс", НСтр("ru = 'Бизнес-процессы'"), 13, БиблиотекаКартинок.БизнесПроцесс); + ДобавитьКорневуюСтрокуДерева(Дерево, "Задача", НСтр("ru = 'Задачи'"), 14, БиблиотекаКартинок.Задача); + ДобавитьКорневуюСтрокуДерева(Дерево, "ПланОбмена", НСтр("ru = 'Планы обмена'"), 15, БиблиотекаКартинок.ПланОбмена); + + Для Каждого Зависимость Из Параметры.ЗависимостиОбъекта Цикл + ДобавитьВложеннуюСтрокуДерева(Дерево, Метаданные.НайтиПоПолномуИмени(Зависимость)); + КонецЦикла; + + Дерево.Колонки.Удалить(Дерево.Колонки["ПолноеИмя"]); + Дерево.Колонки.Удалить(Дерево.Колонки["Класс"]); + + УдаляемыеСтроки = Новый Массив(); + Для Каждого СтрокаДерева Из Дерево.Строки Цикл + Если СтрокаДерева.Строки.Количество() = 0 Тогда + УдаляемыеСтроки.Добавить(СтрокаДерева); + КонецЕсли; + КонецЦикла; + Для Каждого УдаляемаяСтрока Из УдаляемыеСтроки Цикл + Дерево.Строки.Удалить(УдаляемаяСтрока); + КонецЦикла; + + ЗначениеВРеквизитФормы(Дерево, "ОбъектыМетаданных"); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура ДобавитьКорневуюСтрокуДерева(Дерево,Знач ПолноеИмя, Знач Представление, Знач Класс, Знач Картинка) + + НоваяСтрока = Дерево.Строки.Добавить(); + НоваяСтрока.ПолноеИмя = ПолноеИмя; + НоваяСтрока.Представление = Представление; + НоваяСтрока.Класс = Класс; + НоваяСтрока.Картинка = Картинка; + +КонецПроцедуры + +&НаСервере +Процедура ДобавитьВложеннуюСтрокуДерева(Дерево, Знач ОбъектМетаданных) + + ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); + + СтруктураИмени = СтрРазделить(ПолноеИмя, "."); + КлассОбъекта = СтруктураИмени[0]; + + СтрокаВладелец = Неопределено; + Для Каждого СтрокаДерева Из Дерево.Строки Цикл + Если СтрокаДерева.ПолноеИмя = КлассОбъекта Тогда + СтрокаВладелец = СтрокаДерева; + Прервать; + КонецЕсли; + КонецЦикла; + + Если СтрокаВладелец = Неопределено Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неизвестный объект метаданных: %1'"), ПолноеИмя); + КонецЕсли; + + НоваяСтрока = СтрокаВладелец.Строки.Добавить(); + + НоваяСтрока.Представление = ОбъектМетаданных.Представление(); + НоваяСтрока.Класс = СтрокаВладелец.Класс; + НоваяСтрока.Картинка = СтрокаВладелец.Картинка; + +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/НастройкаИспользованияСтандартногоИнтерфейсаOData/Form.form b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/НастройкаИспользованияСтандартногоИнтерфейсаOData/Form.form new file mode 100644 index 000000000..18490b9f8 --- /dev/null +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/НастройкаИспользованияСтандартногоИнтерфейсаOData/Form.form @@ -0,0 +1,1521 @@ + + + + <key>ru</key> + <value>Настройка автоматического REST-сервиса</value> + + + Группа1 + 116 + + ГруппаСтраницы + 104 + + Авторизация + 106 + + ГруппаИспользование + 77 + + СоздатьПользователяСтандартногоИнтерфейсаOData + 74 + true + true + + true + + + СоздатьПользователяСтандартногоИнтерфейсаOData + + Right + ShowTop + + OnChange + СоздатьПользователяСтандартногоИнтерфейсаODataПриИзменении + + + СоздатьПользователяСтандартногоИнтерфейсаODataРасширеннаяПодсказка + 76 + + <key>ru</key> + <value>При использовании REST-сервиса и настройке интеграции не рекомендуется передавать учетные данные пользователя с правами доступа для работы в приложении. Рекомендуется создать отдельного пользователя (с отдельным паролем). Такой пользователь не будет иметь возможности работать с приложением (или изменять настройки).</value> + + Label + true + true + + Left + Top + + + + СоздатьПользователяСтандартногоИнтерфейсаODataКонтекстноеМеню + 75 + true + + CheckBoxField + Center + Enter + true + Left + true + + CheckBox + + + true + true + + true + + + <key>ru</key> + <value>Использование</value> + + true + + ГруппаИспользованиеРасширеннаяПодсказка + 78 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + + Style.ФонУправляющегоПоля + + Auto + Auto + + + + ИмяПользователяИПароль + 39 + + ИмяПользователя + 41 + true + true + + true + + + ИмяПользователя + + + ИмяПользователяРасширеннаяПодсказка + 43 + Label + true + true + + Left + + + + ИмяПользователяКонтекстноеМеню + 42 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + ПарольИПодтверждение + 60 + + Пароль + 44 + true + true + + true + + + Пароль + + + ПарольРасширеннаяПодсказка + 46 + Label + true + true + + Left + + + + ПарольКонтекстноеМеню + 45 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + ПодтверждениеПароля + 57 + true + true + + true + + + ПодтверждениеПароля + + + ПодтверждениеПароляРасширеннаяПодсказка + 59 + Label + true + true + + Left + + + + ПодтверждениеПароляКонтекстноеМеню + 58 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Пароль и подтверждение</value> + + + ПарольИПодтверждениеРасширеннаяПодсказка + 61 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Имя пользователя и пароль</value> + + ShowBottom + + ИмяПользователяИПарольРасширеннаяПодсказка + 40 + + <key>ru</key> + <value>В целях безопасности при использовании автоматического REST-сервиса, не передавайте имя и пароль этого пользователя третьим лицам без необходимости, так как использование REST-сервиса позволяет выполнять чтение и изменение данных приложения. Сообщайте их только надежным лицам и используйте в сторонних программах, которым доверяете.</value> + + Label + true + true + + Left + Top + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Авторизация</value> + + + АвторизацияРасширеннаяПодсказка + 107 + Label + true + true + true + + Left + + + Page + + Vertical + auto + false + + + + Состав + 108 + + ОбъектыМетаданных + 1 + + <key>ru</key> + <value>Объекты метаданных</value> + + true + true + + true + + + ОбъектыМетаданных + + None + ShowBottom + + ОбъектыМетаданныхГруппа + 32 + + ОбъектыМетаданныхКартинка + 26 + true + true + + true + + + ОбъектыМетаданных.Картинка + + None + + ОбъектыМетаданныхКартинкаРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + + ОбъектыМетаданныхКартинкаКонтекстноеМеню + 27 + true + + PictureField + true + Auto + true + Left + true + + true + true + true + true + + + 1 + + + + + ОбъектыМетаданныхИспользование + 29 + true + true + + true + + + ОбъектыМетаданных.Использование + + None + + OnChange + ОбъектыМетаданныхИспользованиеПриИзменении + + + ОбъектыМетаданныхИспользованиеРасширеннаяПодсказка + 31 + Label + true + true + + Left + + + + ОбъектыМетаданныхИспользованиеКонтекстноеМеню + 30 + true + + CheckBoxField + Auto + true + Left + true + + + + ОбъектыМетаданныхПредставление + 23 + + <key>ru</key> + <value>Объект</value> + + true + true + + true + + + ОбъектыМетаданных.Представление + + + ОбъектыМетаданныхПредставлениеРасширеннаяПодсказка + 25 + Label + true + true + + Left + + + + ОбъектыМетаданныхПредставлениеКонтекстноеМеню + 24 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Объект метаданных</value> + + true + false + + ОбъектыМетаданныхГруппаРасширеннаяПодсказка + 33 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + + ПримечаниеГруппа + 114 + + ОбъектыМетаданныхПодчиненный + 95 + true + true + + true + + + ОбъектыМетаданных.Подчиненный + + None + + ОбъектыМетаданныхПодчиненныйРасширеннаяПодсказка + 97 + Label + true + true + + Left + + + + ОбъектыМетаданныхПодчиненныйКонтекстноеМеню + 96 + true + + LabelField + true + Auto + true + Left + true + + true + true + + ru + БЛ=; БИ='Подчиненный объект' + + + + + ОбъектыМетаданныхТолькоЧтение + 101 + true + true + + true + + + ОбъектыМетаданных.ТолькоЧтение + + None + + ОбъектыМетаданныхТолькоЧтениеРасширеннаяПодсказка + 103 + Label + true + true + + Left + + + + ОбъектыМетаданныхТолькоЧтениеКонтекстноеМеню + 102 + true + + LabelField + true + Auto + true + Left + true + + true + true + + ru + БЛ=; БИ='Доступен только для чтения' + + + + true + true + + true + + + <key>ru</key> + <value>Примечание</value> + + true + true + + ПримечаниеГруппаРасширеннаяПодсказка + 115 + Label + true + true + + Left + + + ColumnGroup + + InCell + auto + true + + + + ОбъектыМетаданныхКоманднаяПанель + 3 + + ОбъектыМетаданныхЗагрузитьМетаданные + 127 + true + true + + true + + + ОбъектыМетаданныхЗагрузитьМетаданныеРасширеннаяПодсказка + 128 + Label + true + true + + Left + + + Form.Command.ЗагрузитьМетаданные + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + ОбъектыМетаданныхСтрокаПоиска + 118 + + ОбъектыМетаданныхСтрокаПоискаРасширеннаяПодсказка + 120 + Label + true + true + + Left + + + + ОбъектыМетаданныхСтрокаПоискаКонтекстноеМеню + 119 + true + + ОбъектыМетаданных + + true + + + + ОбъектыМетаданныхСостояниеПросмотра + 121 + + ОбъектыМетаданныхСостояниеПросмотраРасширеннаяПодсказка + 123 + Label + true + true + + Left + + + + ОбъектыМетаданныхСостояниеПросмотраКонтекстноеМеню + 122 + true + + ViewStatusAddition + ОбъектыМетаданных + + true + + + + ОбъектыМетаданныхУправлениеПоиском + 124 + + ОбъектыМетаданныхУправлениеПоискомРасширеннаяПодсказка + 126 + Label + true + true + + Left + + + + ОбъектыМетаданныхУправлениеПоискомКонтекстноеМеню + 125 + true + + SearchControlAddition + ОбъектыМетаданных + + true + + + + ОбъектыМетаданныхРасширеннаяПодсказка + 4 + + <key>ru</key> + <value>Ряд объектов могут быть выделены дополнительно в колонке "Примечание": +- Подчиненный объект - объект используется при работе пользователей с приложением не непосредстванно, а при работе с другими объектами. Предоставление доступа к таким объектам является штатной ситуацией. +- Доступен только для чтения - данные объекта могут быть только прочитаны через автоматический REST-сервис. + +В списке отображаются только объекты, доступные при текущих настройках программы.</value> + + Label + true + true + + Left + Top + + + + ОбъектыМетаданныхКонтекстноеМеню + 2 + true + + Tree + true + true + true +
                true
                + 1 + 1 + AutoUse + true + true + false + false + DontUse + ExpandAllLevels + Disable + true + true + + ОбъектыМетаданных.Картинка + + None + None + None + true +
                + true + true + + true + + + <key>ru</key> + <value>Состав</value> + + ShowTop + + СоставРасширеннаяПодсказка + 109 + + <key>ru</key> + <value>В списке перечислены объекты, доступ к которым может быть предоставлен через автоматический REST-сервис. +Требуемый состав объектов можно уточнить у разработчика сторонней программы, которая будет подключаться к приложению через автоматический REST-сервис.</value> + + Label + true + true + + Left + + + Page + + Vertical + auto + false + +
                + true + true + + true + + + <key>ru</key> + <value>Страницы</value> + + + ГруппаСтраницыРасширеннаяПодсказка + 105 + Label + true + true + + Left + + + Pages + + TabsOnTop + Auto + +
                + + ИнформацияДляРазработчиков + 55 + + Декорация1 + 64 + + <key>ru</key> + <value><link http://v8.1c.ru/o7/201312rest/index.htm>Обзорное о</><link http://v8.1c.ru/o7/201312rest/index.htm>писание технологии автоматического REST-сервиса</></value> + + true + true + + true + + + Декорация1РасширеннаяПодсказка + 66 + Label + true + true + + Left + + + + Декорация1КонтекстноеМеню + 65 + true + + true + Label + true + + Left + + + + Декорация2 + 67 + + <key>ru</key> + <value><link http://its.1c.ru/db/v83doc#bookmark:dev:ti000001358>Документация</><link http://its.1c.ru/db/v83doc#bookmark:dev:ti000001358> по использованию автоматического REST-сервиса</></value> + + true + true + + true + + + Декорация2РасширеннаяПодсказка + 69 + Label + true + true + + Left + + + + Декорация2КонтекстноеМеню + 68 + true + + true + Label + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Информация для разработчиков</value> + + true + + ИнформацияДляРазработчиковРасширеннаяПодсказка + 56 + Label + true + true + + Left + + + UsualGroup + + Collapsible + true + Button + WeakSeparation + true + true + auto + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Настройки</value> + + ShowTop + true + + Группа1РасширеннаяПодсказка + 117 + + <key>ru</key> + <value>Автоматический REST-сервис предназначен для взаимодействия прикладных решений на платформе «1С:Предприятие» и сторонних систем (например, для интеграции с Интернет-магазином, корпоративными информационными системами или пакетной загрузки данных в приложение). REST-сервис позволяет получать данные, изменять их, создавать новые объекты (например, справочники и документы) и удалять существующие. </value> + + Label + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + +
                + + ФормаКоманднаяПанель + -1 + + ФормаСохранитьИЗакрыть + 34 + true + true + + true + + + ФормаСохранитьИЗакрытьРасширеннаяПодсказка + 35 + Label + true + true + + Left + + + Form.Command.СохранитьИЗакрыть + Auto + true + true + true + UserCmds + Auto + + + ФормаСохранить + 79 + true + true + + true + + + ФормаСохранитьРасширеннаяПодсказка + 80 + Label + true + true + + Left + + + Form.Command.Сохранить + Normal + Auto + true + true + UserCmds + Auto + + Left + true + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + + FillCheckProcessingAtServer + ОбработкаПроверкиЗаполненияНаСервере + + DontBlock + true + true + Vertical + true + true + true + auto + true + + ОбъектыМетаданных + + <key>ru</key> + <value>Объекты метаданных</value> + + 2 + + ValueTree + + + true + + + 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 + + Picture + + + true + + + true + + + + Использование + + <key>ru</key> + <value>Использование</value> + + 4 + + Boolean + + + true + + + true + + + + Подчиненный + + <key>ru</key> + <value>Подчиненный</value> + + 5 + + Boolean + + + true + + + true + + + + ТолькоЧтение + + <key>ru</key> + <value>Только чтение</value> + + 7 + + Boolean + + + true + + + true + + + + Корневой + + <key>ru</key> + <value>Корневой</value> + + 8 + + Boolean + + + true + + + true + + + + Класс + + <key>ru</key> + <value>Класс</value> + + 9 + + Number + + 10 + + + + true + + + true + + + + + СоздатьПользователяСтандартногоИнтерфейсаOData + + <key>ru</key> + <value>Создать для использования автоматического REST-сервиса отдельные имя пользователя и пароль</value> + + 1 + + Boolean + + + true + + + true + + true + + + ИмяПользователя + + <key>ru</key> + <value>Имя пользователя</value> + + 3 + + String + + + + true + + + true + + true + + + Пароль + + <key>ru</key> + <value>Пароль</value> + + 4 + + String + + + + true + + + true + + true + + + ПодтверждениеПароля + + <key>ru</key> + <value>Подтверждение</value> + + 5 + + String + + + + true + + + true + + true + + + ПроверкаИзмененияПароля + + <key>ru</key> + <value>Проверка изменения пароля</value> + + 6 + + String + + + + true + + + true + + + + Объект + + <key>ru</key> + <value>Объект</value> + + 9 + + DataProcessorObject.НастройкаСтандартногоИнтерфейсаOData + + + true + + + true + +
                true
                +
                + + ЗависимостиДляДобавления + + <key>ru</key> + <value>Зависимости для добавления</value> + + 10 + + ValueTable + + + 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> + + 11 + + ValueTable + + + 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> + + 7 + + UUID + + + true + + + true + + + + АдресХранилища + + <key>ru</key> + <value>Адрес хранилища</value> + + 8 + + String + + + + true + + + true + + + + СохранитьИЗакрыть + + <key>ru</key> + <value>Сохранить и закрыть</value> + + 1 + + ru + Сохранить и закрыть + + + true + + + + СохранитьИЗакрыть + + + DontUse + Auto + + + Сохранить + + <key>ru</key> + <value>Сохранить</value> + + 2 + + ru + Сохранить + + + true + + + + Сохранить + + + DontUse + Auto + + + ЗагрузитьМетаданные + + <key>ru</key> + <value>Загрузить метаданные</value> + + 5 + + ru + Загрузить метаданные + + + true + + + + ЗагрузитьМетаданные + + + DontUse + Auto + + + + + + +
                diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/НастройкаИспользованияСтандартногоИнтерфейсаOData/Module.bsl b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/НастройкаИспользованияСтандартногоИнтерфейсаOData/Module.bsl new file mode 100644 index 000000000..07f9857c1 --- /dev/null +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Forms/НастройкаИспользованияСтандартногоИнтерфейсаOData/Module.bsl @@ -0,0 +1,406 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Не ПравоДоступа("АдминистрированиеДанных", Метаданные) Тогда + ВызватьИсключение НСтр("ru = 'Недостаточно прав для настройки автоматического REST-сервиса'"); + КонецЕсли; + + НастройкиАвторизации = Обработки.НастройкаСтандартногоИнтерфейсаOData.НастройкиАвторизацииДляСтандартногоИнтерфейсаOData(); + СоздатьПользователяСтандартногоИнтерфейсаOData = НастройкиАвторизации.Используется; + + Если ЗначениеЗаполнено(НастройкиАвторизации.Логин) Тогда + + ИмяПользователя = НастройкиАвторизации.Логин; + Если СоздатьПользователяСтандартногоИнтерфейсаOData Тогда + + ПроверкаИзмененияПароля = Строка(Новый УникальныйИдентификатор()); + Пароль = ПроверкаИзмененияПароля; + ПодтверждениеПароля = ПроверкаИзмененияПароля; + + КонецЕсли; + + Иначе + ИмяПользователя = "odata.user"; + КонецЕсли; + + УстановитьВидимостьИДоступность(); + УстановитьУсловноеОформление(); + +КонецПроцедуры + +&НаСервере +Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) + + Если СоздатьПользователяСтандартногоИнтерфейсаOData Тогда + + ПроверяемыеРеквизиты.Добавить("ИмяПользователя"); + ПроверяемыеРеквизиты.Добавить("Пароль"); + ПроверяемыеРеквизиты.Добавить("ПодтверждениеПароля"); + + Если Пароль <> ПодтверждениеПароля Тогда + ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Подтверждение пароля не совпадает с паролем'"), , "ПодтверждениеПароля"); + Отказ = Истина; + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) + + Если ЗавершениеРаботы Тогда + Возврат; + КонецЕсли; + + Если Модифицированность Тогда + + Отказ = Истина; + + ОписаниеОповещения = Новый ОписаниеОповещения("ПродолжитьЗакрытиеПослеВопроса", ЭтотОбъект); + ПоказатьВопрос(ОписаниеОповещения, НСтр("ru = 'Данные были изменены. Сохранить изменения?'"), РежимДиалогаВопрос.ДаНетОтмена); + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ОбъектыМетаданныхИспользованиеПриИзменении(Элемент) + + Если Элементы.ОбъектыМетаданных.ТекущиеДанные.Использование Тогда + Добавление = Истина; + Зависимости = ЗависимостиДляДобавленияОбъекта(Элементы.ОбъектыМетаданных.ТекущиеДанные.ПолучитьИдентификатор()); + Иначе + Добавление = Ложь; + Зависимости = ЗависимостиДляУдаленияОбъекта(Элементы.ОбъектыМетаданных.ТекущиеДанные.ПолучитьИдентификатор()); + КонецЕсли; + + Если Зависимости.Количество() > 0 Тогда + + ПараметрыФормы = Новый Структура(); + ПараметрыФормы.Вставить("ПолноеИмяОбъекта", Элементы.ОбъектыМетаданных.ТекущиеДанные.ПолноеИмя); + ПараметрыФормы.Вставить("ЗависимостиОбъекта", Зависимости); + ПараметрыФормы.Вставить("Добавление", Добавление); + + Контекст = Новый Структура(); + Контекст.Вставить("Зависимости", Зависимости); + Контекст.Вставить("Добавление", Добавление); + + ОписаниеОповещения = Новый ОписаниеОповещения("ОбъектыМетаданныхИспользованиеПриИзмененииПродолжение", ЭтотОбъект, Контекст); + + ОткрытьФорму( + "Обработка.НастройкаСтандартногоИнтерфейсаOData.Форма.ЗависимостиОбъектаМетаданных", + ПараметрыФормы, + , + , + , + , + ОписаниеОповещения, + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьПользователяСтандартногоИнтерфейсаODataПриИзменении(Элемент) + + УстановитьВидимостьИДоступность(); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Функция Сохранить(Команда = Неопределено) + + Если Модифицированность Тогда + + Если ПроверитьЗаполнение() + И ОбъектыМетаданных.ПолучитьЭлементы().Количество() > 0 Тогда + + СохранитьНаСервере(); + Возврат Истина; + + Иначе + Возврат Ложь; + КонецЕсли; + + Иначе + Возврат Истина; + КонецЕсли; + +КонецФункции + +&НаКлиенте +Процедура СохранитьИЗакрыть(Команда = Неопределено) + + Если Сохранить() Тогда + Закрыть(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗагрузитьМетаданные(Команда) + + Если Модифицированность + И ОбъектыМетаданных.ПолучитьЭлементы().Количество() > 0 Тогда + + Оповещение = Новый ОписаниеОповещения("ЗагрузитьМетаданныеПродолжение", ЭтотОбъект); + ПоказатьВопрос(Оповещение, НСтр("ru = 'Загрузить метаданные заново? Внесенные изменения будут потеряны.'"), РежимДиалогаВопрос.ДаНет); + + Иначе + ЗагрузитьМетаданныеПродолжение(КодВозвратаДиалога.Да, Неопределено); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаКлиенте +Процедура ЗагрузитьМетаданныеПродолжение(РезультатВопроса, ДополнительныеПараметры) Экспорт + + Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда + Возврат; + КонецЕсли; + + Результат = ЗапуститьПодготовкуПараметровНастройки(); + ИдентификаторЗадания = Результат.ИдентификаторЗадания; + Если ТипЗнч(Результат) = Тип("Структура") + И Результат.Статус <> "Выполнено" Тогда + + Оповещение = Новый ОписаниеОповещения("ЗавершениеПолученияПараметровНастройки", ЭтотОбъект); + ДлительныеОперацииКлиент.ОжидатьЗавершение(Результат, Оповещение, ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект)); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПродолжитьЗакрытиеПослеВопроса(Результат, Контекст) Экспорт + + Если Результат = КодВозвратаДиалога.Да Тогда + СохранитьИЗакрыть(); + ИначеЕсли Результат = КодВозвратаДиалога.Нет Тогда + Модифицированность = Ложь; + Закрыть(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбъектыМетаданныхИспользованиеПриИзмененииПродолжение(Результат, Контекст) Экспорт + + Если Результат = КодВозвратаДиалога.Да Тогда + УстановитьИспользованиеЗависимостей(Контекст.Зависимости, Контекст.Добавление); + Иначе + Элементы.ОбъектыМетаданных.ТекущиеДанные.Использование = Не Элементы.ОбъектыМетаданных.ТекущиеДанные.Использование; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗавершениеПолученияПараметровНастройки(Результат, ДополнительныеПараметры) Экспорт + + Если Результат.Статус <> "Выполнено" Тогда + Возврат; + КонецЕсли; + + АдресХранилища = Результат.АдресРезультата; + ЗагрузитьПараметрыНастройки(); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьВидимостьИДоступность() + + Элементы.ИмяПользователяИПароль.Доступность = СоздатьПользователяСтандартногоИнтерфейсаOData; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьУсловноеОформление() + + УсловноеОформление.Элементы.Очистить(); + + Элемент = УсловноеОформление.Элементы.Добавить(); + Элемент.Использование = Истина; + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("ОбъектыМетаданныхИспользование"); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОбъектыМетаданных.Корневой"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь); + +КонецПроцедуры + +&НаСервере +Функция ЗависимостиДляДобавленияОбъекта(Знач ИдентификаторСтроки) + + ТаблицаЗависимостей = РеквизитФормыВЗначение("ЗависимостиДляДобавления"); + Возврат ЗависимостиДляОбъекта(ИдентификаторСтроки, ТаблицаЗависимостей, Истина); + +КонецФункции + +&НаСервере +Функция ЗависимостиДляУдаленияОбъекта(Знач ИдентификаторСтроки) + + ТаблицаЗависимостей = РеквизитФормыВЗначение("ЗависимостиДляУдаления"); + Возврат ЗависимостиДляОбъекта(ИдентификаторСтроки, ТаблицаЗависимостей, Ложь); + +КонецФункции + +&НаСервере +Функция ЗависимостиДляОбъекта(Знач ИдентификаторСтроки, ТаблицаЗависимостей, ИспользованиеЭталон) + + Результат = Новый Массив(); + + ИмяТекущегоОбъекта = ОбъектыМетаданных.НайтиПоИдентификатору(ИдентификаторСтроки).ПолноеИмя; + + ДеревоОбъектов = РеквизитФормыВЗначение("ОбъектыМетаданных"); + + ЗаполнитьТребуемыеЗависимостиОбъектаПоСтроке(Результат, ДеревоОбъектов, ТаблицаЗависимостей, ИмяТекущегоОбъекта, ИспользованиеЭталон); + + Возврат Результат; + +КонецФункции + +&НаСервере +Процедура ЗаполнитьТребуемыеЗависимостиОбъектаПоСтроке(Результат, ДеревоОбъектов, ТаблицаЗависимостей, ИмяТекущегоОбъекта, ИспользованиеЭталон) + + ПараметрыОтбора = Новый Структура(); + ПараметрыОтбора.Вставить("ИмяОбъекта", ИмяТекущегоОбъекта); + + СтрокиЗависимостей = ТаблицаЗависимостей.НайтиСтроки(ПараметрыОтбора); + + Для Каждого СтрокаЗависимости Из СтрокиЗависимостей Цикл + + ЗависимыйОбъектВДереве = ДеревоОбъектов.Строки.Найти(СтрокаЗависимости.ИмяЗависимогоОбъекта, "ПолноеИмя", Истина); + + Если ЗависимыйОбъектВДереве.Использование <> ИспользованиеЭталон И Результат.Найти(СтрокаЗависимости.ИмяЗависимогоОбъекта) = Неопределено Тогда + + Результат.Добавить(СтрокаЗависимости.ИмяЗависимогоОбъекта); + ЗаполнитьТребуемыеЗависимостиОбъектаПоСтроке(Результат, ДеревоОбъектов, ТаблицаЗависимостей, + СтрокаЗависимости.ИмяЗависимогоОбъекта, ИспользованиеЭталон); + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьИспользованиеЗависимостей(Знач Зависимости, Знач Использование) + + КорневыеЭлементы = ОбъектыМетаданных.ПолучитьЭлементы(); + Для Каждого КорневойЭлемент Из КорневыеЭлементы Цикл + + ЭлементыДерева = КорневойЭлемент.ПолучитьЭлементы(); + Для Каждого ЭлементДерева Из ЭлементыДерева Цикл + + Если Зависимости.Найти(ЭлементДерева.ПолноеИмя) <> Неопределено Тогда + ЭлементДерева.Использование = Использование; + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + +&НаСервере +Процедура СохранитьНаСервере() + + НачатьТранзакцию(); + + Попытка + + Настройки = Новый Структура(); + + Настройки.Вставить("Используется", СоздатьПользователяСтандартногоИнтерфейсаOData); + Настройки.Вставить("Логин", ИмяПользователя); + Если ПроверкаИзмененияПароля <> Пароль Тогда + Настройки.Вставить("Пароль", Пароль); + КонецЕсли; + + Обработки.НастройкаСтандартногоИнтерфейсаOData.ЗаписатьНастройкиАвторизацииДляСтандартногоИнтерфейсаOData(Настройки); + + Состав = Новый Массив(); + Дерево = РеквизитФормыВЗначение("ОбъектыМетаданных"); + Строки = Дерево.Строки.НайтиСтроки(Новый Структура("Использование", Истина), Истина); + Для Каждого Строка Из Строки Цикл + Состав.Добавить(Строка.ПолноеИмя); + КонецЦикла; + + ОбщегоНазначения.ВыполнитьВБезопасномРежиме("УстановитьСоставСтандартногоИнтерфейсаOData(Параметры);", Состав); + + Модифицированность = Ложь; + ЗафиксироватьТранзакцию(); + + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +&НаСервере +Процедура ЗагрузитьПараметрыНастройки() + + Данные = ПолучитьИзВременногоХранилища(АдресХранилища); + Если ТипЗнч(Данные) <> Тип("Структура") Тогда + Возврат; + КонецЕсли; + + ЗначениеВРеквизитФормы(Данные.ДеревоОбъектов, "ОбъектыМетаданных"); + ЗначениеВРеквизитФормы(Данные.ЗависимостиДобавления, "ЗависимостиДляДобавления"); + ЗначениеВРеквизитФормы(Данные.ЗависимостиУдаления, "ЗависимостиДляУдаления"); + +КонецПроцедуры + +&НаСервере +Функция ЗапуститьПодготовкуПараметровНастройки() + + ПараметрыВыполненияВФоне = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); + ПараметрыВыполненияВФоне.НаименованиеФоновогоЗадания = "ПодготовитьПараметрыНастройкиСоставаСтандартногоИнтерфейсаOData"; + + Результат = ДлительныеОперации.ВыполнитьВФоне( + "Обработки.НастройкаСтандартногоИнтерфейсаOData.ПодготовитьПараметрыНастройкиСоставаСтандартногоИнтерфейсаOData", + Новый Структура, + ПараметрыВыполненияВФоне); + + АдресХранилища = Результат.АдресРезультата; + Если Результат.Статус = "Выполнено" Тогда + ЗагрузитьПараметрыНастройки(); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +#КонецОбласти + + diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Help/ru.html b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Help/ru.html new file mode 100644 index 000000000..89825a391 --- /dev/null +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Help/ru.html @@ -0,0 +1,18 @@ +Предназначена для настройки REST-сервиса для обмена со сторонними программами. +
                Для работы с REST-сервисом не рекомендуется использовать какие-либо уже существующие учетные записи с целью защиты данных программы от взлома, т.к. REST-сервис предназначен для работы со сторонними программами.
                +

                +
                Состоит из двух вкладок:
                +
                Авторизация - можно ввести имя пользователя и пароль для работы с REST-сервисом;
                +
                Состав - можно определить, какие данные будут участвовать в работе автоматического REST-сервиса.
                +

                Авторизация

                +
                Включите флажок Создать для использования автоматического REST-сервиса отдельные имя пользователя и пароль (рекомендуется).
                +
                Заполните поля:
                +
                +
                • Имя пользователя;
                • +
                • Пароль;
                • +
                • Подтверждение пароля.

                Состав

                +

                Определите, какие данные будут участвовать в работе автоматического REST-сервиса. 

                +
                • По умолчанию список пуст. Нажмите кнопку Загрузить метаданные, для того чтобы отобразить данные программы.
                • +
                • С помощью флажков предоставьте доступ к основным данным, которые будут участвовать в работе REST-сервиса. 
                • +
                • После предоставления доступа к основным данным программа выводит список подчиненных (зависимых) данных, без которых работа с основными данными невозможна. Подтвердите возможность их использования.
                • +
                • После предоставления доступа нажмите кнопку Сохранить и закрыть.
                \ No newline at end of file diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ManagerModule.bsl b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ManagerModule.bsl new file mode 100644 index 000000000..f1918bc43 --- /dev/null +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ManagerModule.bsl @@ -0,0 +1,1101 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныйПрограммныйИнтерфейс + +// АПК:581-выкл - вызывается из инструментов разработчика. + +// Помещает во временное хранилище подготовленную структуру для просмотра метаданных +// +// Параметры: +// Параметры - Структура - Пустая структура. Наличие параметра обусловлено использованием в подсистеме ДлительныеОперации +// АдресХранилища - Строка - Адрес временного хранилища, куда будут возвращены данные. Наличие параметра обусловлено использованием в подсистеме ДлительныеОперации +// +Процедура ПодготовитьПараметрыНастройкиСоставаСтандартногоИнтерфейсаOData(Параметры, АдресХранилища) Экспорт + + ДанныеИнициализации = Обработки.НастройкаСтандартногоИнтерфейсаOData.ПараметрыНастройкиСоставаСтандартногоИнтерфейсаOData(); + ПоместитьВоВременноеХранилище(ДанныеИнициализации, АдресХранилища); + +КонецПроцедуры + +// Возвращает роль, предназначенную для назначения пользователю информационной базы, +// логин и пароль которого будет использоваться при подключении к стандартному интерфейсу +// OData (в модели сервиса). +// +// Возвращаемое значение: ОбъектМетаданных (роль). +// +Функция РольДляСтандартногоИнтерфейсаOData() Экспорт + + Возврат Метаданные.Роли.УдалениеДанныхOData; + +КонецФункции + +// Возвращает настройки авторизации для стандартного интерфейса OData (в модели сервиса). +// +// Возвращаемое значение: ФиксированнаяСтруктура, поля: +// * Используется - Булево - флаг включения авторизации для доступа +// к стандартному интерфейсу OData, +// * Логин - Строка - логин пользователя для авторизации при доступе +// к стандартному интерфейсу OData. +// +Функция НастройкиАвторизацииДляСтандартногоИнтерфейсаOData() Экспорт + + Результат = Новый Структура("Используется, Логин"); + Результат.Используется = Ложь; + + СвойстваПользователя = СвойстваПользователяСтандартногоИнтерфейсаOData(); + Если ЗначениеЗаполнено(СвойстваПользователя.Пользователь) Тогда + Результат.Логин = СвойстваПользователя.Имя; + Результат.Используется = СвойстваПользователя.Аутентификация; + КонецЕсли; + + Возврат Новый ФиксированнаяСтруктура(Результат); + +КонецФункции + +// Записывает настройки авторизации для стандартного интерфейса OData (в модели сервиса). +// +// Параметры: +// НастройкиАвторизации - Структура, поля: +// * Используется - Булево - флаг включения авторизации для доступа +// к стандартному интерфейсу OData, +// * Логин - Строка - логин пользователя для авторизации при доступе +// к стандартному интерфейсу OData, +// * Пароль - Строка - пароль пользователя для авторизации при доступе +// к стандартному интерфейсу OData. Значение передается +// в составе структуры только в тех случаях, когда требуется +// изменить пароль. +// +Процедура ЗаписатьНастройкиАвторизацииДляСтандартногоИнтерфейсаOData(Знач НастройкиАвторизации) Экспорт + + СвойстваПользователя = СвойстваПользователяСтандартногоИнтерфейсаOData(); + + Если НастройкиАвторизации.Используется Тогда + + // Требуется создать или обновить пользователя ИБ + + ПроверитьВозможностьСозданияПользователяДляВызововСтандартногоИнтерфейсаOData(); + + ОписаниеПользователяИБ = Новый Структура(); + ОписаниеПользователяИБ.Вставить("Действие", "Записать"); + ОписаниеПользователяИБ.Вставить("Имя", НастройкиАвторизации.Логин); + ОписаниеПользователяИБ.Вставить("АутентификацияСтандартная", Истина); + ОписаниеПользователяИБ.Вставить("АутентификацияОС", Ложь); + ОписаниеПользователяИБ.Вставить("АутентификацияOpenID", Ложь); + ОписаниеПользователяИБ.Вставить("ПоказыватьВСпискеВыбора", Ложь); + Если НастройкиАвторизации.Свойство("Пароль") Тогда + ОписаниеПользователяИБ.Вставить("Пароль", НастройкиАвторизации.Пароль); + КонецЕсли; + ОписаниеПользователяИБ.Вставить("ЗапрещеноИзменятьПароль", Истина); + ОписаниеПользователяИБ.Вставить("Роли", + ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве( + РольДляСтандартногоИнтерфейсаOData().Имя)); + + Если ЗначениеЗаполнено(СвойстваПользователя.Пользователь) Тогда + ПользовательСтандартногоИнтерфейсаOData = СвойстваПользователя.Пользователь.ПолучитьОбъект(); + Иначе + ПользовательСтандартногоИнтерфейсаOData = Справочники.Пользователи.СоздатьЭлемент(); + КонецЕсли; + + ПользовательСтандартногоИнтерфейсаOData.Наименование = НСтр("ru = 'Автоматический REST-сервис'"); + ПользовательСтандартногоИнтерфейсаOData.Служебный = Истина; + ПользовательСтандартногоИнтерфейсаOData.ДополнительныеСвойства.Вставить("ОписаниеПользователяИБ", ОписаниеПользователяИБ); + + НачатьТранзакцию(); + + Попытка + + ПользовательСтандартногоИнтерфейсаOData.Записать(); + + Константы.ПользовательСтандартногоИнтерфейсаOData.Установить( + ПользовательСтандартногоИнтерфейсаOData.Ссылка); + + Если ОписаниеПользователяИБ.Свойство("Пароль") Тогда + ОписаниеПользователяИБ.Удалить("Пароль"); + КонецЕсли; + + СокращенноеОписание = Новый Структура; + ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(СокращенноеОписание, ОписаниеПользователяИБ); + СокращенноеОписание.Удалить("ПользовательИБ"); + + Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Выполнена запись пользователя для стандартного интерфейса OData. + | + |Описание пользователя ИБ: + |------------------------------------------- + |%1 + |------------------------------------------- + | + |Результат: + |------------------------------------------- + |%2 + |-------------------------------------------'"), + ОбщегоНазначения.ЗначениеВСтрокуXML(СокращенноеОписание), + ПользовательСтандартногоИнтерфейсаOData.ДополнительныеСвойства.ОписаниеПользователяИБ.РезультатДействия); + + ЗаписьЖурналаРегистрации( + ИмяСобытияЖурналаРегистрации(НСтр("ru = 'ЗаписьПользователя'", ОбщегоНазначения.КодОсновногоЯзыка())), + УровеньЖурналаРегистрации.Информация, + Метаданные.Справочники.Пользователи, + , + Комментарий); + + ЗафиксироватьТранзакцию(); + + Исключение + + ОтменитьТранзакцию(); + ОписаниеПользователяИБ.Удалить("Пароль"); + + Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'При записи пользователя для стандартного интерфейса OData произошла ошибка. + | + |Описание пользователя ИБ: + |------------------------------------------- + |%1 + |------------------------------------------- + | + |Текст ошибки: + |------------------------------------------- + |%2 + |-------------------------------------------'"), + ОбщегоНазначения.ЗначениеВСтрокуXML(ОписаниеПользователяИБ), + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + + ЗаписьЖурналаРегистрации( + ИмяСобытияЖурналаРегистрации(НСтр("ru = 'ЗаписьПользователя'", ОбщегоНазначения.КодОсновногоЯзыка())), + УровеньЖурналаРегистрации.Ошибка, + Метаданные.Справочники.Пользователи, + , + Комментарий); + + ВызватьИсключение; + + КонецПопытки; + + Иначе + + Если ЗначениеЗаполнено(СвойстваПользователя.Пользователь) Тогда + + // Требуется заблокировать пользователя ИБ + + ОписаниеПользователяИБ = Новый Структура(); + ОписаниеПользователяИБ.Вставить("Действие", "Записать"); + + ОписаниеПользователяИБ.Вставить("ВходВПрограммуРазрешен", Ложь); + + ПользовательСтандартногоИнтерфейсаOData = СвойстваПользователя.Пользователь.ПолучитьОбъект(); + ПользовательСтандартногоИнтерфейсаOData.ДополнительныеСвойства.Вставить("ОписаниеПользователяИБ", ОписаниеПользователяИБ); + ПользовательСтандартногоИнтерфейсаOData.Служебный = Истина; + ПользовательСтандартногоИнтерфейсаOData.Записать(); + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +// Возвращает модель данных для объектов, которые могут быть включены в состава стандартного +// интерфейса OData (в модели сервиса). +// +// Возвращаемое значение: ТаблицаЗначений, колонки: +// * ОбъектМетаданных - ОбъектМетаданных - объект метаданных, который может +// включен в состав стандартного интерфейса OData, +// * Чтение - Булево - через стандартный интерфейс OData может быть предоставлен +// доступ к чтению объекта, +// * Запись - Булево - через стандартный интерфейс OData может быть предоставлен +// доступ к записи объекта, +// * Зависимости - Массив(ОбъектМетаданных) - массив объектов метаданных, которые +// необходимо включить в состав стандартного интерфейса OData при +// включении текущего объекта. +// +Функция МодельДанныхПредоставляемыхДляСтандартногоИнтерфейсаOData() Экспорт + + Исключаемые = Новый Соответствие(); + Для Каждого ИсключаемыйОбъект Из ОбъектыИсключаемыеИзСтандартногоИнтерфейсаOData() Цикл + Исключаемые.Вставить(ИсключаемыйОбъект.ПолноеИмя(), Истина); + КонецЦикла; + + Результат = Новый ТаблицаЗначений(); + Результат.Колонки.Добавить("ПолноеИмя", Новый ОписаниеТипов("Строка")); + Результат.Колонки.Добавить("Чтение", Новый ОписаниеТипов("Булево")); + Результат.Колонки.Добавить("Изменение", Новый ОписаниеТипов("Булево")); + Результат.Колонки.Добавить("Зависимости", Новый ОписаниеТипов("Массив")); + + Модель = ИнтерфейсODataСлужебныйПовтИсп.ОписаниеМоделиДанныхКонфигурации(); + Для Каждого Элементы Из Модель Цикл + + Для Каждого КлючИЗначение Из Элементы.Значение Цикл + + ОписаниеОбъекта = КлючИЗначение.Значение; + + Если Исключаемые.Получить(ОписаниеОбъекта.ПолноеИмя) <> Неопределено Тогда + Продолжить; + КонецЕсли; + + ЭтоРазделенныйОбъектМетаданных = Ложь; + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + ЭтоРазделенныйОбъектМетаданных = ОписаниеОбъекта.РазделениеДанных.Свойство(МодульРаботаВМоделиСервиса.РазделительОсновныхДанных()); + КонецЕсли; + + Если ЭтоРазделенныйОбъектМетаданных Тогда + ЗаполнитьМодельДанныхПредоставляемыхДляСтандартногоИнтерфейсаOData(Результат, ОписаниеОбъекта.ПолноеИмя, Исключаемые); + КонецЕсли; + + КонецЦикла; + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Возвращает эталонный состав роли для назначения пользователю информационной базы, +// логин и пароль которого будет использоваться при подключении к стандартному интерфейсу +// OData (в модели сервиса). +// +// Возвращаемое значение: Соответствие: +// * Ключ - ОбъектМетаданных - объект метаданных, +// * Значение - Массив(Строка) - массив названий прав доступа, +// которые должны быть разрешены для данного объекта +// метаданных в роли. +// +Функция ЭталонныйСоставРолиДляСтандартногоИнтерфейсаOData() Экспорт + + Результат = Новый Соответствие(); + + ВидыПрав = ВидыПравДляСтандартногоИнтерфейсаOData(Метаданные, Ложь, Ложь); + Если ВидыПрав.Количество() > 0 Тогда + Результат.Вставить(Метаданные, ВидыПрав); + КонецЕсли; + + Для Каждого ПараметрСеанса Из Метаданные.ПараметрыСеанса Цикл + ВидыПрав = ВидыПравДляСтандартногоИнтерфейсаOData(ПараметрСеанса, Истина, Ложь); + Если ВидыПрав.Количество() > 0 Тогда + Результат.Вставить(ПараметрСеанса, ВидыПрав); + КонецЕсли; + КонецЦикла; + + Модель = МодельДанныхПредоставляемыхДляСтандартногоИнтерфейсаOData(); + Для Каждого ЭлементМодели Из Модель Цикл + + ВидыПрав = ВидыПравДляСтандартногоИнтерфейсаOData( + ЭлементМодели.ПолноеИмя, + ЭлементМодели.Чтение, + ЭлементМодели.Изменение); + + Если ВидыПрав.Количество() > 0 Тогда + Результат.Вставить(ЭлементМодели.ПолноеИмя, ВидыПрав); + КонецЕсли; + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Возвращает ошибки состава роли, предназначенной для назначения пользователю информационной базы, +// логин и пароль которого будет использоваться при подключении к стандартному интерфейсу +// OData (в модели сервиса). +// +// Возвращаемое значение: +// Массив - ошибки, найденные в составе роли. +// +Функция ОшибкиСоставаРолиOData() Экспорт + + Роль = РольДляСтандартногоИнтерфейсаOData(); + + ИзбыточныеПрава = Новый Соответствие(); + НедостающиеПрава = Новый Соответствие(); + + ЭталонныйСостав = ЭталонныйСоставРолиДляСтандартногоИнтерфейсаOData(); + + ПроверитьСоставРолиODataПоОбъектуМетаданных(Метаданные, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + ПроверитьСоставРолиODataПоКоллекцииМетаданных(Метаданные.ПараметрыСеанса, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + ПроверитьСоставРолиODataПоКоллекцииМетаданных(Метаданные.Константы, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + ПроверитьСоставРолиODataПоКоллекцииМетаданных(Метаданные.Справочники, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + ПроверитьСоставРолиODataПоКоллекцииМетаданных(Метаданные.Документы, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + ПроверитьСоставРолиODataПоКоллекцииМетаданных(Метаданные.ЖурналыДокументов, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + ПроверитьСоставРолиODataПоКоллекцииМетаданных(Метаданные.ПланыВидовХарактеристик, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + ПроверитьСоставРолиODataПоКоллекцииМетаданных(Метаданные.ПланыСчетов, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + ПроверитьСоставРолиODataПоКоллекцииМетаданных(Метаданные.ПланыВидовРасчета, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + ПроверитьСоставРолиODataПоКоллекцииМетаданных(Метаданные.ПланыОбмена, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + ПроверитьСоставРолиODataПоКоллекцииМетаданных(Метаданные.БизнесПроцессы, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + ПроверитьСоставРолиODataПоКоллекцииМетаданных(Метаданные.Задачи, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + ПроверитьСоставРолиODataПоКоллекцииМетаданных(Метаданные.Последовательности, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + ПроверитьСоставРолиODataПоКоллекцииМетаданных(Метаданные.РегистрыСведений, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + ПроверитьСоставРолиODataПоКоллекцииМетаданных(Метаданные.РегистрыНакопления, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + ПроверитьСоставРолиODataПоКоллекцииМетаданных(Метаданные.РегистрыБухгалтерии, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + ПроверитьСоставРолиODataПоКоллекцииМетаданных(Метаданные.РегистрыРасчета, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + Для Каждого РегистрРасчета Из Метаданные.РегистрыРасчета Цикл + ПроверитьСоставРолиODataПоКоллекцииМетаданных(РегистрРасчета.Перерасчеты, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + КонецЦикла; + + Ошибки = Новый Массив(); + Если ИзбыточныеПрава.Количество() > 0 Тогда + ТекстОшибки = Символы.НПП + НСтр("ru = 'Следующие права избыточно включены в состав роли:'") + Символы.ПС + Символы.ВК + + ПредставлениеИзбыточныхИлиНедостающихПрав(ИзбыточныеПрава, 2); + Ошибки.Добавить(ТекстОшибки); + КонецЕсли; + + Если НедостающиеПрава.Количество() > 0 Тогда + ТекстОшибки = Символы.НПП + НСтр("ru = 'Следующие права должны быть включены в состав роли:'") + Символы.ПС + Символы.ВК + + ПредставлениеИзбыточныхИлиНедостающихПрав(НедостающиеПрава, 2); + Ошибки.Добавить(ТекстОшибки); + КонецЕсли; + + Возврат Ошибки; + +КонецФункции + +#Область ОбработчикиОбновления + +// Добавляет в список Обработчики процедуры-обработчики обновления, +// необходимые данной подсистеме. +// +// Параметры: +// Обработчики - ТаблицаЗначений - см. описание функции НоваяТаблицаОбработчиковОбновления +// общего модуля ОбновлениеИнформационнойБазы. +// +Процедура ЗарегистрироватьОбработчикиОбновления(Обработчики) Экспорт + + Если ОбщегоНазначения.РазделениеВключено() Тогда + + Обработчик = Обработчики.Добавить(); + Обработчик.Версия = "*"; + Обработчик.НачальноеЗаполнение = Истина; + Обработчик.Процедура = "Обработки.НастройкаСтандартногоИнтерфейсаOData.ПроверитьСоставРолиODataПриОбновлении"; + Обработчик.ОбщиеДанные = Истина; + Обработчик.РежимВыполнения = "Оперативно"; + + КонецЕсли; + +КонецПроцедуры + +// Проверяет состав роли для стандартного интерфейса OData при обновлении информационной базы +Процедура ПроверитьСоставРолиODataПриОбновлении() Экспорт + + Если ОбщегоНазначения.РазделениеВключено() Тогда + + Ошибки = ОшибкиСоставаРолиOData(); + Если Ошибки.Количество() > 0 Тогда + + ТекстИсключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обнаружены ошибки в составе прав роли %1:'"), + РольДляСтандартногоИнтерфейсаOData().Имя); + + Для Каждого Ошибка Из Ошибки Цикл + ТекстИсключения = ТекстИсключения + Символы.ПС + Символы.ВК + Символы.Таб + Ошибка; + КонецЦикла; + + ВызватьИсключение ТекстИсключения; + + КонецЕсли; + + Иначе + ВызватьИсключение НСтр("ru = 'Обработчик не должен использоваться при выключенном разделении по областям данных'"); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +// АПК:581-вкл + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПараметрыНастройкиСоставаСтандартногоИнтерфейсаOData() Экспорт + + Объект = Создать(); + Возврат Объект.ИнициализироватьДанныеДляНастройкиСоставаСтандартногоИнтерфейсаOData(); + +КонецФункции + +Процедура ПроверитьСоставРолиODataПоКоллекцииМетаданных(КоллекцияМетаданных, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава) + + Для Каждого ОбъектМетаданных Из КоллекцияМетаданных Цикл + ПроверитьСоставРолиODataПоОбъектуМетаданных(ОбъектМетаданных, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава); + КонецЦикла; + +КонецПроцедуры + +Процедура ПроверитьСоставРолиODataПоОбъектуМетаданных(ОбъектМетаданных, ЭталонныйСостав, ИзбыточныеПрава, НедостающиеПрава) + + ВидыПрав = ДопустимыеПраваДляОбъектаМетаданных(ОбъектМетаданных); + + ЭталонныеПрава = ЭталонныйСостав.Получить(ОбъектМетаданных.ПолноеИмя()); + Если ЭталонныеПрава = Неопределено Тогда + ЭталонныеПрава = Новый Массив(); + КонецЕсли; + + ПредоставленныеПрава = Новый Массив(); + Для Каждого ВидПрава Из ВидыПрав Цикл + Если ПравоДоступа(ВидПрава.Имя, ОбъектМетаданных, РольДляСтандартногоИнтерфейсаOData()) Тогда + ПредоставленныеПрава.Добавить(ВидПрава.Имя); + КонецЕсли; + КонецЦикла; + + // Все права, которые есть в эталонных, но отсутствуют в предоставленных - недостающие. + НедостающиеПраваПоОбъекту = Новый Массив(); + Для Каждого ВидПрава Из ЭталонныеПрава Цикл + Если ПредоставленныеПрава.Найти(ВидПрава) = Неопределено Тогда + НедостающиеПраваПоОбъекту.Добавить(ВидПрава); + КонецЕсли; + КонецЦикла; + Если НедостающиеПраваПоОбъекту.Количество() > 0 Тогда + НедостающиеПрава.Вставить(ОбъектМетаданных, НедостающиеПраваПоОбъекту); + КонецЕсли; + + // Все права, которые есть в предоставленных, но отсутствуют в эталонных - избыточные. + ИзбыточныеПраваПоОбъекту = Новый Массив(); + Для Каждого ВидПрава Из ПредоставленныеПрава Цикл + Если ЭталонныеПрава.Найти(ВидПрава) = Неопределено Тогда + ИзбыточныеПраваПоОбъекту.Добавить(ВидПрава); + КонецЕсли; + КонецЦикла; + Если ИзбыточныеПраваПоОбъекту.Количество() > 0 Тогда + ИзбыточныеПрава.Вставить(ОбъектМетаданных, ИзбыточныеПраваПоОбъекту); + КонецЕсли; + +КонецПроцедуры + +Функция ВидыПравДляСтандартногоИнтерфейсаOData(Знач ОбъектМетаданных, Знач РазрешатьЧтениеДанных, Знач РазрешатьИзменениеДанных) + + ВсеВидыПрав = ДопустимыеПраваДляОбъектаМетаданных(ОбъектМетаданных); + + ОтборПрав = Новый Структура(); + ОтборПрав.Вставить("Интерактивное", Ложь); + ОтборПрав.Вставить("АдминистрированиеИнформационнойБазы", Ложь); + ОтборПрав.Вставить("АдминистрированиеОбластиДанных", Ложь); + + Если РазрешатьЧтениеДанных И Не РазрешатьИзменениеДанных Тогда + ОтборПрав.Вставить("Чтение", РазрешатьЧтениеДанных); + КонецЕсли; + + Если РазрешатьИзменениеДанных И Не РазрешатьЧтениеДанных Тогда + ОтборПрав.Вставить("Изменение", РазрешатьИзменениеДанных); + КонецЕсли; + + ТребуемыеВидыПрав = ВсеВидыПрав.Скопировать(ОтборПрав); + + Возврат ТребуемыеВидыПрав.ВыгрузитьКолонку("Имя"); + +КонецФункции + +Процедура ЗаполнитьМодельДанныхПредоставляемыхДляСтандартногоИнтерфейсаOData(Знач Результат, Знач ПолноеИмя, Знач Исключаемые) + + ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмя); + Если Не ЭтоДопустимыйОбъектМетаданныхOData(ОбъектМетаданных) Тогда + Возврат; + КонецЕсли; + + Строка = Результат.Найти(ПолноеИмя, "ПолноеИмя"); + Если Строка = Неопределено Тогда + Строка = Результат.Добавить(); + КонецЕсли; + + СвойстваОбъектовМетаданных = ИнтерфейсODataСлужебный.СвойстваОбъектаМоделиКонфигурации( + ИнтерфейсODataСлужебныйПовтИсп.ОписаниеМоделиДанныхКонфигурации(), ПолноеИмя); + + ЭтоРазделенныйОбъектМетаданных = Ложь; + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + ЭтоРазделенныйОбъектМетаданных = СвойстваОбъектовМетаданных.РазделениеДанных.Свойство(МодульРаботаВМоделиСервиса.РазделительОсновныхДанных()); + КонецЕсли; + + Строка.Чтение = Истина; + Строка.ПолноеИмя = ПолноеИмя; + Если ОбщегоНазначения.ЭтоПеречисление(ОбъектМетаданных) Тогда + Строка.Изменение = Ложь; + ИначеЕсли ОбщегоНазначения.ЭтоЖурналДокументов(ОбъектМетаданных) Тогда + Строка.Изменение = Ложь; + ИначеЕсли Не ЭтоРазделенныйОбъектМетаданных Тогда + Строка.Изменение = Ложь; + Иначе + Строка.Изменение = Истина; + КонецЕсли; + + Зависимости = СвойстваОбъектовМетаданных.Зависимости; + Для Каждого КлючИЗначение Из Зависимости Цикл + + ПолноеИмяЗависимости = КлючИЗначение.Ключ; + Если ПолноеИмяЗависимости = ПолноеИмя + Или Исключаемые.Получить(ПолноеИмяЗависимости) <> Неопределено Тогда + Продолжить; + КонецЕсли; + + Строка.Зависимости.Добавить(ПолноеИмяЗависимости); + + СтрокаЗависимости = Результат.Найти(ПолноеИмяЗависимости, "ПолноеИмя"); + Если СтрокаЗависимости = Неопределено Тогда + ЗаполнитьМодельДанныхПредоставляемыхДляСтандартногоИнтерфейсаOData(Результат, ПолноеИмяЗависимости, Исключаемые); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Функция ЭтоДопустимыйОбъектМетаданныхOData(Знач ОбъектМетаданных) + + Возврат ОбщегоНазначения.ЭтоСправочник(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоДокумент(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоПланОбмена(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоПланСчетов(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоПланВидовРасчета(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоПланВидовХарактеристик(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоРегистрБухгалтерии(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоРегистрСведений(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоРегистрРасчета(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоРегистрНакопления(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоЖурналДокументов(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоПеречисление(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоЗадача(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоБизнесПроцесс(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоКонстанта(ОбъектМетаданных); + +КонецФункции + +Функция ПредставлениеИзбыточныхИлиНедостающихПрав(Знач ОписанияПрав, Знач Отступ) + + Результат = ""; + + Для Каждого КлючИЗначение Из ОписанияПрав Цикл + + ОбъектМетаданных = КлючИЗначение.Ключ; + Права = КлючИЗначение.Значение; + + Строка = ""; + + Для Шаг = 1 По Отступ Цикл + Строка = Строка + Символы.НПП; + КонецЦикла; + + Строка = Строка + ОбъектМетаданных.ПолноеИмя() + ": " + СтрСоединить(Права, ", "); + + Если Не ПустаяСтрока(Результат) Тогда + Результат = Результат + Символы.ПС; + КонецЕсли; + + Результат = Результат + Строка; + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +Функция ОбъектыИсключаемыеИзСтандартногоИнтерфейсаOData() + + Возврат ИнтеграцияПодсистемБСП.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузкиOData(); + +КонецФункции + +Функция СвойстваПользователяСтандартногоИнтерфейсаOData() + + Если Не ПравоДоступа("АдминистрированиеДанных", Метаданные) Тогда + ВызватьИсключение НСтр("ru = 'Недостаточно прав доступа для настройки автоматического REST-сервиса'"); + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + Результат = Новый Структура; + Результат.Вставить("Пользователь", Справочники.Пользователи.ПустаяСсылка()); + Результат.Вставить("Идентификатор"); + Результат.Вставить("Имя", ""); + Результат.Вставить("Аутентификация", Ложь); + + Пользователь = Константы.ПользовательСтандартногоИнтерфейсаOData.Получить(); + Если ЗначениеЗаполнено(Пользователь) Тогда + + Результат.Пользователь = Пользователь; + Идентификатор = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Пользователь, "ИдентификаторПользователяИБ"); + Если ЗначениеЗаполнено(Идентификатор) Тогда + + Результат.Идентификатор = Идентификатор; + ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Идентификатор); + Если ПользовательИБ <> Неопределено Тогда + Результат.Имя = ПользовательИБ.Имя; + Результат.Аутентификация = ПользовательИБ.АутентификацияСтандартная; + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция ИмяСобытияЖурналаРегистрации(Знач Суффикс) + + Возврат НСтр("ru = 'НастройкаСтандартногоИнтерфейсаOData.'") + СокрЛП(Суффикс); + +КонецФункции + +Процедура ПроверитьВозможностьСозданияПользователяДляВызововСтандартногоИнтерфейсаOData() + + УстановитьПривилегированныйРежим(Истина); + КоличествоПользователей = ПользователиИнформационнойБазы.ПолучитьПользователей().Количество(); + УстановитьПривилегированныйРежим(Ложь); + + Если КоличествоПользователей = 0 Тогда + ВызватьИсключение НСтр("ru = 'Нельзя создать отдельные логин и пароль для использования автоматического REST-сервиса, т.к. в программе отсутствуют другие пользователи.'"); + КонецЕсли; + +КонецПроцедуры + +#Область Метаданные + +Функция ДопустимыеПраваДляОбъектаМетаданных(Знач ОбъектМетаданных) + + ВидыПрав = Новый ТаблицаЗначений(); + ВидыПрав.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка")); + ВидыПрав.Колонки.Добавить("Интерактивное", Новый ОписаниеТипов("Булево")); + ВидыПрав.Колонки.Добавить("Чтение", Новый ОписаниеТипов("Булево")); + ВидыПрав.Колонки.Добавить("Изменение", Новый ОписаниеТипов("Булево")); + ВидыПрав.Колонки.Добавить("АдминистрированиеИнформационнойБазы", Новый ОписаниеТипов("Булево")); + ВидыПрав.Колонки.Добавить("АдминистрированиеОбластиДанных", Новый ОписаниеТипов("Булево")); + + Если ТипЗнч(ОбъектМетаданных) = Тип("Строка") Тогда + ИмяОбъектаМетаданных = ОбъектМетаданных; + ОбъектМетаданныхДляАнализа = Метаданные.НайтиПоПолномуИмени(ОбъектМетаданных); + Иначе + ИмяОбъектаМетаданных = ОбъектМетаданных.ПолноеИмя(); + ОбъектМетаданныхДляАнализа = ОбъектМетаданных; + КонецЕсли; + + Если ЭтоОбъектМетаданныхКонфигурация(ИмяОбъектаМетаданных) Тогда + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Администрирование"; + ВидПрава.АдминистрированиеИнформационнойБазы = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "АдминистрированиеДанных"; + ВидПрава.АдминистрированиеОбластиДанных = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ОбновлениеКонфигурацииБазыДанных"; + ВидПрава.АдминистрированиеИнформационнойБазы = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "МонопольныйРежим"; + ВидПрава.АдминистрированиеОбластиДанных = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "АктивныеПользователи"; + ВидПрава.АдминистрированиеОбластиДанных = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ЖурналРегистрации"; + ВидПрава.АдминистрированиеОбластиДанных = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ТонкийКлиент"; + ВидПрава.Интерактивное = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ВебКлиент"; + ВидПрава.Интерактивное = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ТолстыйКлиент"; + ВидПрава.АдминистрированиеИнформационнойБазы = Истина; + ВидПрава.Интерактивное = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ВнешнееСоединение"; + ВидПрава.АдминистрированиеИнформационнойБазы = Истина; + ВидПрава.Интерактивное = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Automation"; + ВидПрава.АдминистрированиеИнформационнойБазы = Истина; + ВидПрава.Интерактивное = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "РежимВсеФункции"; + ВидПрава.АдминистрированиеИнформационнойБазы = Истина; + ВидПрава.Интерактивное = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "СохранениеДанныхПользователя"; + ВидПрава.Интерактивное = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивноеОткрытиеВнешнихОбработок"; + ВидПрава.АдминистрированиеИнформационнойБазы = Истина; + ВидПрава.Интерактивное = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивноеОткрытиеВнешнихОтчетов"; + ВидПрава.АдминистрированиеИнформационнойБазы = Истина; + ВидПрава.Интерактивное = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Вывод"; + ВидПрава.Интерактивное = Истина; + + ИначеЕсли ЭтоПараметрСеанса(ИмяОбъектаМетаданных) Тогда + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Получение"; + ВидПрава.Чтение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Установка"; + ВидПрава.Изменение = Истина; + + ИначеЕсли ЭтоОбщийРеквизит(ИмяОбъектаМетаданных) Тогда + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава = "Просмотр"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Чтение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Редактирование"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + ИначеЕсли ОбщегоНазначения.ЭтоКонстанта(ОбъектМетаданныхДляАнализа) Тогда + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Чтение"; + ВидПрава.Чтение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Изменение"; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Просмотр"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Чтение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Редактирование"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + ИначеЕсли ЭтоСсылочныеДанные(ОбъектМетаданныхДляАнализа) Тогда + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Чтение"; + ВидПрава.Чтение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Добавление"; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Изменение"; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Удаление"; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Просмотр"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Чтение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивноеДобавление"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Редактирование"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивноеУдаление"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивнаяПометкаУдаления"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивноеСнятиеПометкиУдаления"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивноеУдалениеПомеченных"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + Если ОбщегоНазначения.ЭтоДокумент(ОбъектМетаданныхДляАнализа) Тогда + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Проведение"; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ОтменаПроведения"; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивноеПроведение"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивноеПроведениеНеоперативное"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивнаяОтменаПроведения"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивноеИзменениеПроведенных"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + КонецЕсли; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ВводПоСтроке"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Чтение = Истина; + + Если ОбщегоНазначения.ЭтоБизнесПроцесс(ОбъектМетаданныхДляАнализа) Тогда + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивнаяАктивация"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Старт"; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивныйСтарт"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + КонецЕсли; + + Если ОбщегоНазначения.ЭтоЗадача(ОбъектМетаданныхДляАнализа) Тогда + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивнаяАктивация"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Выполнение"; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивноеВыполнение"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + КонецЕсли; + + Если ЭтоСсылочныеДанныеПоддерживающиеПредопределенныеЭлементы(ОбъектМетаданныхДляАнализа) Тогда + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивноеУдалениеПредопределенныхДанных"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивнаяПометкаУдаленияПредопределенныхДанных"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивноеСнятиеПометкиУдаленияПредопределенныхДанных"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "ИнтерактивноеУдалениеПомеченныхПредопределенныхДанных"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + КонецЕсли; + + ИначеЕсли ИнтерфейсODataСлужебный.ЭтоНаборЗаписей(ИмяОбъектаМетаданных) Тогда + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Чтение"; + ВидПрава.Чтение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Изменение"; + ВидПрава.Изменение = Истина; + + Если Не ИнтерфейсODataСлужебный.ЭтоНаборЗаписейПоследовательности(ИмяОбъектаМетаданных) + И Не ИнтерфейсODataСлужебный.ЭтоНаборЗаписейПерерасчета(ИмяОбъектаМетаданных) Тогда + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Просмотр"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Чтение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Редактирование"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Изменение = Истина; + + КонецЕсли; + + Если ЭтоНаборЗаписейПоддерживающийИтоги(ОбъектМетаданныхДляАнализа) Тогда + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "УправлениеИтогами"; + ВидПрава.АдминистрированиеОбластиДанных = Истина; + + КонецЕсли; + + ИначеЕсли ОбщегоНазначения.ЭтоЖурналДокументов(ОбъектМетаданныхДляАнализа) Тогда + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Чтение"; + ВидПрава.Чтение = Истина; + + ВидПрава = ВидыПрав.Добавить(); + ВидПрава.Имя = "Просмотр"; + ВидПрава.Интерактивное = Истина; + ВидПрава.Чтение = Истина; + + КонецЕсли; + + Возврат ВидыПрав; + +КонецФункции + +// Проверяет, является ли переданный объект метаданных объектом ОбъектМетаданныхКонфигурация. +// +// Параметры: +// ОбъектМетаданных - проверяемый объект метаданных. +// +// Возвращаемое значение: Булево. +// +Функция ЭтоОбъектМетаданныхКонфигурация(Знач ОбъектМетаданных) + + Возврат ТипЗнч(ОбъектМетаданных) = Тип("ОбъектМетаданныхКонфигурация"); + +КонецФункции + +// Проверяет, является ли переданный объект метаданных параметром сеанса. +// +// Параметры: +// ОбъектМетаданных - проверяемый объект метаданных. +// +// Возвращаемое значение: Булево. +// +Функция ЭтоПараметрСеанса(Знач ОбъектМетаданных) + + Возврат ИнтерфейсODataСлужебный.ЭтоОбъектМетаданныхКласса(ОбъектМетаданных, + ИнтерфейсODataСлужебныйПовтИсп.КлассыМетаданныхВМоделиКонфигурации().ПараметрыСеанса); + +КонецФункции + +// Проверяет, является ли переданный объект метаданных общим реквизитом. +// +// Параметры: +// ОбъектМетаданных - проверяемый объект метаданных. +// +// Возвращаемое значение: Булево. +// +Функция ЭтоОбщийРеквизит(Знач ОбъектМетаданных) + + Возврат ИнтерфейсODataСлужебный.ЭтоОбъектМетаданныхКласса(ОбъектМетаданных, + ИнтерфейсODataСлужебныйПовтИсп.КлассыМетаданныхВМоделиКонфигурации().ОбщиеРеквизиты); + +КонецФункции + +// Проверяет, является ли переданный объект метаданных ссылочным. +// +// Параметры: +// ОбъектМетаданных - проверяемый объект метаданных. +// +// Возвращаемое значение: Булево. +// +Функция ЭтоСсылочныеДанные(Знач ОбъектМетаданных) + + Возврат ОбщегоНазначения.ЭтоСправочник(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоДокумент(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоБизнесПроцесс(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоЗадача(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоПланСчетов(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоПланОбмена(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоПланВидовХарактеристик(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоПланВидовРасчета(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоПеречисление(ОбъектМетаданных); + +КонецФункции + +// Проверяет, является ли переданный объект метаданных ссылочным с поддержкой предопределенных элементов. +// +// Параметры: +// ОбъектМетаданных - проверяемый объект метаданных. +// +// Возвращаемое значение: Булево. +// +Функция ЭтоСсылочныеДанныеПоддерживающиеПредопределенныеЭлементы(Знач ОбъектМетаданных) + + Возврат ОбщегоНазначения.ЭтоСправочник(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоПланСчетов(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоПланВидовХарактеристик(ОбъектМетаданных) + Или ОбщегоНазначения.ЭтоПланВидовРасчета(ОбъектМетаданных); + +КонецФункции + +// Проверяет, является ли переданный объект метаданных набором записей, поддерживающим итоги. +// +// Параметры: +// ОбъектМетаданных - проверяемый объект метаданных. +// +// Возвращаемое значение: Булево. +// +Функция ЭтоНаборЗаписейПоддерживающийИтоги(Знач ОбъектМетаданных) + + Если ОбщегоНазначения.ЭтоРегистрСведений(ОбъектМетаданных) Тогда + + Если ТипЗнч(ОбъектМетаданных) = Тип("Строка") Тогда + ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ОбъектМетаданных); + КонецЕсли; + + Возврат ОбъектМетаданных.РазрешитьИтогиСрезПервых + Или ОбъектМетаданных.РазрешитьИтогиСрезПоследних; + + ИначеЕсли ОбщегоНазначения.ЭтоРегистрНакопления(ОбъектМетаданных) Тогда + Возврат Истина; + ИначеЕсли ОбщегоНазначения.ЭтоРегистрБухгалтерии(ОбъектМетаданных) Тогда + Возврат Истина; + Иначе + Возврат Ложь; + КонецЕсли; + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#КонецЕсли diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ObjectModule.bsl b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ObjectModule.bsl new file mode 100644 index 000000000..3146ade8a --- /dev/null +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/ObjectModule.bsl @@ -0,0 +1,222 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область ОписаниеПеременных + +Перем ДеревоОбъектов; +Перем ЗависимостиДобавления; +Перем ЗависимостиУдаления; +Перем СоставСтандартногоИнтерфейса; + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +Функция ИнициализироватьДанныеДляНастройкиСоставаСтандартногоИнтерфейсаOData() Экспорт + + // Заполняем корневые строки дерева (по коллекциям объектов метаданных) + ДобавитьКорневуюСтрокуДерева("Константа", НСтр("ru = 'Константы'"), 1, БиблиотекаКартинок.Константа); + ДобавитьКорневуюСтрокуДерева("Справочник", НСтр("ru = 'Справочники'"), 2, БиблиотекаКартинок.Справочник); + ДобавитьКорневуюСтрокуДерева("Документ", НСтр("ru = 'Документы'"), 3, БиблиотекаКартинок.Документ); + ДобавитьКорневуюСтрокуДерева("ЖурналДокументов", НСтр("ru = 'Журналы документов'"), 4, БиблиотекаКартинок.ЖурналДокументов); + ДобавитьКорневуюСтрокуДерева("Перечисление", НСтр("ru = 'Перечисление'"), 5, БиблиотекаКартинок.Перечисление); + ДобавитьКорневуюСтрокуДерева("ПланВидовХарактеристик", НСтр("ru = 'Планы видов характеристик'"), 6, БиблиотекаКартинок.ПланВидовХарактеристик); + ДобавитьКорневуюСтрокуДерева("ПланСчетов", НСтр("ru = 'Планы счетов'"), 7, БиблиотекаКартинок.ПланСчетов); + ДобавитьКорневуюСтрокуДерева("ПланВидовРасчета", НСтр("ru = 'Планы видов расчета'"), 8, БиблиотекаКартинок.ПланВидовРасчета); + ДобавитьКорневуюСтрокуДерева("РегистрСведений", НСтр("ru = 'Регистры сведений'"), 9, БиблиотекаКартинок.РегистрСведений); + ДобавитьКорневуюСтрокуДерева("РегистрНакопления", НСтр("ru = 'Регистры накопления'"), 10, БиблиотекаКартинок.РегистрНакопления); + ДобавитьКорневуюСтрокуДерева("РегистрБухгалтерии", НСтр("ru = 'Регистры бухгалтерии'"), 11, БиблиотекаКартинок.РегистрБухгалтерии); + ДобавитьКорневуюСтрокуДерева("РегистрРасчета", НСтр("ru = 'Регистры расчета'"), 12, БиблиотекаКартинок.РегистрРасчета); + ДобавитьКорневуюСтрокуДерева("БизнесПроцесс", НСтр("ru = 'Бизнес-процессы'"), 13, БиблиотекаКартинок.БизнесПроцесс); + ДобавитьКорневуюСтрокуДерева("Задача", НСтр("ru = 'Задачи'"), 14, БиблиотекаКартинок.Задача); + ДобавитьКорневуюСтрокуДерева("ПланОбмена", НСтр("ru = 'Планы обмена'"), 15, БиблиотекаКартинок.ПланОбмена); + + // Читаем текущий состав стандартного интерфейса OData + СистемныйСостав = ПолучитьСоставСтандартногоИнтерфейсаOData(); + СоставСтандартногоИнтерфейса = Новый Массив(); + Для Каждого Элемент Из СистемныйСостав Цикл + СоставСтандартногоИнтерфейса.Добавить(Элемент.ПолноеИмя()); + КонецЦикла; + + // Читаем модель данных, предоставляемых для стандартного интерфейса OData + Модель = Обработки.НастройкаСтандартногоИнтерфейсаOData.МодельДанныхПредоставляемыхДляСтандартногоИнтерфейсаOData(); + + // Заполняем вложенные строки дерева (по объектам метаданных, входящим в модель) + Для Каждого ЭлементМодели Из Модель Цикл + + ПолноеИмя = ЭлементМодели.ПолноеИмя; + ЭтоОбъектДоступныйТолькоДляЧтения = Не ЭлементМодели.Изменение; + ЭтоОбъектВключенныйВСостав = (СоставСтандартногоИнтерфейса.Найти(ЭлементМодели.ПолноеИмя) <> Неопределено); + Зависимости = ЭлементМодели.Зависимости; + + Если ОбщегоНазначения.ОбъектМетаданныхДоступенПоФункциональнымОпциям(ПолноеИмя) Тогда + + ДобавитьВложеннуюСтрокуДерева(ПолноеИмя, ЭтоОбъектДоступныйТолькоДляЧтения, + ЭтоОбъектВключенныйВСостав, Зависимости); + + КонецЕсли; + + КонецЦикла; + + // Удалим корневые строки (от коллекций метаданных, для которых нет ни одного объекта для включения в состав). + УдаляемыеСтроки = Новый Массив(); + Для Каждого СтрокаДерева Из ДеревоОбъектов.Строки Цикл + Если СтрокаДерева.Строки.Количество() = 0 Тогда + УдаляемыеСтроки.Добавить(СтрокаДерева); + КонецЕсли; + КонецЦикла; + Для Каждого УдаляемаяСтрока Из УдаляемыеСтроки Цикл + ДеревоОбъектов.Строки.Удалить(УдаляемаяСтрока); + КонецЦикла; + + // Отсортируем вложенные строки по представлению объектов метаданных + Для Каждого ВложеннаяСтрока Из ДеревоОбъектов.Строки Цикл + ВложеннаяСтрока.Строки.Сортировать("Представление"); + КонецЦикла; + + Результат = Новый Структура(); + Результат.Вставить("ДеревоОбъектов", ДеревоОбъектов); + Результат.Вставить("ЗависимостиДобавления", ЗависимостиДобавления); + Результат.Вставить("ЗависимостиУдаления", ЗависимостиУдаления); + + Возврат Результат; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура ДобавитьВложеннуюСтрокуДерева(Знач ПолноеИмя, Знач ТолькоЧтение, Знач Использование, Знач Зависимости) + + СтруктураИмени = СтрРазделить(ПолноеИмя, "."); + КлассОбъекта = СтруктураИмени[0]; + + СтрокаВладелец = Неопределено; + Для Каждого СтрокаДерева Из ДеревоОбъектов.Строки Цикл + Если СтрокаДерева.ПолноеИмя = КлассОбъекта Тогда + СтрокаВладелец = СтрокаДерева; + Прервать; + КонецЕсли; + КонецЦикла; + + Если СтрокаВладелец = Неопределено Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Неизвестный объект метаданных: %1'"), ПолноеИмя); + КонецЕсли; + + НоваяСтрока = СтрокаВладелец.Строки.Добавить(); + + НоваяСтрока.ПолноеИмя = ПолноеИмя; + НоваяСтрока.Представление = ПредставлениеОбъектаМетаданных(ПолноеИмя); + НоваяСтрока.Класс = СтрокаВладелец.Класс; + НоваяСтрока.Картинка = СтрокаВладелец.Картинка; + НоваяСтрока.Использование = СоставСтандартногоИнтерфейса.Найти(ПолноеИмя) <> Неопределено; + НоваяСтрока.Подчиненный = ИнтерфейсODataСлужебный.ЭтоНаборЗаписей(ПолноеИмя) + И Не ЭтоНезависимыйНаборЗаписей(ПолноеИмя); + НоваяСтрока.ТолькоЧтение = ТолькоЧтение; + НоваяСтрока.Использование = Использование; + + Для Каждого ОбъектЗависимость Из Зависимости Цикл + + Если ОбщегоНазначения.ОбъектМетаданныхДоступенПоФункциональнымОпциям(ОбъектЗависимость) Тогда + + // При включении в состав объекта ОбъектМетаданных требуется включать в состав объект ОбъектЗависимость. + Строка = ЗависимостиДобавления.Добавить(); + Строка.ИмяОбъекта = ПолноеИмя; + Строка.ИмяЗависимогоОбъекта = ОбъектЗависимость; + + // При исключении из состава объекта ОбъектЗависимость требуется исключать из состава объект ОбъектМетаданных. + Строка = ЗависимостиУдаления.Добавить(); + Строка.ИмяОбъекта = ОбъектЗависимость; + Строка.ИмяЗависимогоОбъекта = ПолноеИмя; + + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Процедура ДобавитьКорневуюСтрокуДерева(Знач ПолноеИмя, Знач Представление, Знач Класс, Знач Картинка) + + НоваяСтрока = ДеревоОбъектов.Строки.Добавить(); + НоваяСтрока.ПолноеИмя = ПолноеИмя; + НоваяСтрока.Представление = Представление; + НоваяСтрока.Класс = Класс; + НоваяСтрока.Картинка = Картинка; + НоваяСтрока.Подчиненный = Ложь; + НоваяСтрока.ТолькоЧтение = Ложь; + НоваяСтрока.Корневой = Истина; + +КонецПроцедуры + +// Возвращает представление объекта метаданных. +// +// Параметры: +// ОбъектМетаданных. +// +// Возвращаемое значение: Строка - представление объекта метаданных. +// +Функция ПредставлениеОбъектаМетаданных(Знач ОбъектМетаданных) Экспорт + + СвойстваОбъектовМетаданных = ИнтерфейсODataСлужебный.СвойстваОбъектаМоделиКонфигурации( + ИнтерфейсODataСлужебныйПовтИсп.ОписаниеМоделиДанныхКонфигурации(), ОбъектМетаданных); + + Возврат СвойстваОбъектовМетаданных.Представление; + +КонецФункции + +// Проверяет, является ли переданный объект метаданных независимым набором записей. +// +// Параметры: +// ОбъектМетаданных - проверяемый объект метаданных. +// +// Возвращаемое значение: Булево. +// +Функция ЭтоНезависимыйНаборЗаписей(Знач ОбъектМетаданных) Экспорт + + Если ТипЗнч(ОбъектМетаданных) = Тип("Строка") Тогда + ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ОбъектМетаданных); + КонецЕсли; + + Возврат ОбщегоНазначения.ЭтоРегистрСведений(ОбъектМетаданных) + И ОбъектМетаданных.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.Независимый; + +КонецФункции + +#КонецОбласти + +#Область Инициализация + +ДеревоОбъектов = Новый ДеревоЗначений(); +ДеревоОбъектов.Колонки.Добавить("ПолноеИмя", Новый ОписаниеТипов("Строка")); +ДеревоОбъектов.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); +ДеревоОбъектов.Колонки.Добавить("Класс", Новый ОписаниеТипов("Число", , Новый КвалификаторыЧисла(10, 0, ДопустимыйЗнак.Неотрицательный))); +ДеревоОбъектов.Колонки.Добавить("Картинка", Новый ОписаниеТипов("Картинка")); +ДеревоОбъектов.Колонки.Добавить("Использование", Новый ОписаниеТипов("Булево")); +ДеревоОбъектов.Колонки.Добавить("Подчиненный", Новый ОписаниеТипов("Булево")); +ДеревоОбъектов.Колонки.Добавить("ТолькоЧтение", Новый ОписаниеТипов("Булево")); +ДеревоОбъектов.Колонки.Добавить("Корневой", Новый ОписаниеТипов("Булево")); + +СоставСтандартногоИнтерфейса = Новый Массив(); + +ЗависимостиДобавления = Новый ТаблицаЗначений(); +ЗависимостиДобавления.Колонки.Добавить("ИмяОбъекта", Новый ОписаниеТипов("Строка")); +ЗависимостиДобавления.Колонки.Добавить("ИмяЗависимогоОбъекта", Новый ОписаниеТипов("Строка")); + +ЗависимостиУдаления = Новый ТаблицаЗначений(); +ЗависимостиУдаления.Колонки.Добавить("ИмяОбъекта", Новый ОписаниеТипов("Строка")); +ЗависимостиУдаления.Колонки.Добавить("ИмяЗависимогоОбъекта", Новый ОписаниеТипов("Строка")); + +#КонецОбласти + +#Иначе +ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Templates/СхемаРоли/Template.bin b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Templates/СхемаРоли/Template.bin new file mode 100644 index 000000000..272656cd2 --- /dev/null +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/Templates/СхемаРоли/Template.bin @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/НастройкаСтандартногоИнтерфейсаOData.mdo b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/НастройкаСтандартногоИнтерфейсаOData.mdo new file mode 100644 index 000000000..528b98628 --- /dev/null +++ b/SSL/src/DataProcessors/НастройкаСтандартногоИнтерфейсаOData/НастройкаСтандартногоИнтерфейсаOData.mdo @@ -0,0 +1,55 @@ + + + + + + + НастройкаСтандартногоИнтерфейсаOData + + ru + Настройка стандартного интерфейса OData + + true + DataProcessor.НастройкаСтандартногоИнтерфейсаOData.Form.НастройкаИспользованияСтандартногоИнтерфейсаOData + + + ru + + + + НастройкаИспользованияСтандартногоИнтерфейсаOData + + ru + Настройка использования стандартного интерфейса OData + + PersonalComputer + MobileDevice + + + ЗависимостиОбъектаМетаданных + + ru + Зависимости объекта метаданных + + PersonalComputer + MobileDevice + + + СхемаРоли + + ru + Схема роли + + АПК:497 - не локализуется + BinaryData + + + НастройкиСтандартногоИнтерфейсаOData + + ru + Настройки стандартного интерфейса OData + + NavigationPanelOrdinary + Auto + + diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборНастроек/Help/ru.html b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборНастроек/Help/ru.html index f967e0cbb..2fd8eac49 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборНастроек/Help/ru.html +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборНастроек/Help/ru.html @@ -1,4 +1,4 @@ - +

                Выбор пользовательских настроек, которые необходимо скопировать или очистить:

                Список состоит из трех вкладок:

                • Внешний вид - выводятся настройки внешнего вида рабочего стола, форм (например, различных списков программы) и командного интерфейса программы. diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборНастроек/Module.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборНастроек/Module.bsl index e7db9f93c..d29768af6 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборНастроек/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборНастроек/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ПользовательСсылка = Параметры.Пользователь; ДействиеСНастройками = Параметры.ДействиеСНастройками; ПользовательИнформационнойБазы = Обработки.НастройкиПользователей.ИмяПользователяИБ(ПользовательСсылка); @@ -32,7 +28,7 @@ Процедура ПриЗакрытии(ЗавершениеРаботы) Если ДанныеВХранилищеНастроекСохранены - И ТипЗнч(ВладелецФормы) = Тип("УправляемаяФорма") Тогда + И ТипЗнч(ВладелецФормы) = Тип("ФормаКлиентскогоПриложения") Тогда Свойства = Новый Структура("ОчиститьИсториюВыбораНастроек", Ложь); ЗаполнитьЗначенияСвойств(ВладелецФормы, Свойства); diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Help/ru.html b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Help/ru.html index e769555e8..48ccfd176 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Help/ru.html +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Help/ru.html @@ -1,4 +1,4 @@ - +

                  Необходимо выбрать одного или нескольких пользователей, которым будут скопированы настройки (у которых будут очищены настройки).

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

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

                  diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Module.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Module.bsl index c9e61d7aa..9ecd7e86f 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ВыборПользователей/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТипПользователя = ТипЗнч(Параметры.Пользователь); Если ТипПользователя = Тип("СправочникСсылка.ВнешниеПользователи") Тогда diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/КопированиеНастроекПользователей/Help/ru.html b/SSL/src/DataProcessors/НастройкиПользователей/Forms/КопированиеНастроекПользователей/Help/ru.html index 3b3875592..01a8e0001 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/КопированиеНастроекПользователей/Help/ru.html +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/КопированиеНастроекПользователей/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                  Команда для копирования настроек пользователей находится в разделе Администрирование - Настройки пользователей и прав.

                  diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/КопированиеНастроекПользователей/Module.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Forms/КопированиеНастроекПользователей/Module.bsl index 21c20fbea..526c1f562 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/КопированиеНастроекПользователей/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/КопированиеНастроекПользователей/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ИспользоватьВнешнихПользователей = ПолучитьФункциональнуюОпцию("ИспользоватьВнешнихПользователей"); ПереключательКомуКопироватьНастройки = "ВыбраннымПользователям"; ПереключательКопируемыеНастройки = "СкопироватьВсе"; diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/НастройкиПользователей/Help/ru.html b/SSL/src/DataProcessors/НастройкиПользователей/Forms/НастройкиПользователей/Help/ru.html index 35daaa87e..43a522076 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/НастройкиПользователей/Help/ru.html +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/НастройкиПользователей/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                  Список настроек можно открыть из раздела Администрирование - Настройки пользователей и прав по команде Настройки пользователей.

                  diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/НастройкиПользователей/Module.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Forms/НастройкиПользователей/Module.bsl index 11f18d106..98e5d057a 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/НастройкиПользователей/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/НастройкиПользователей/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТекущийПользовательСсылка = Пользователи.ТекущийПользователь(); Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ОчисткаНастроекПользователей/Help/ru.html b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ОчисткаНастроекПользователей/Help/ru.html index 5203fdbf6..92db4b722 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ОчисткаНастроекПользователей/Help/ru.html +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ОчисткаНастроекПользователей/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

                  Команда для очистки настроек пользователей находится в разделе Администрирование - Настройки пользователей и прав.

                  diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ОчисткаНастроекПользователей/Module.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ОчисткаНастроекПользователей/Module.bsl index d0db75f38..e3807d559 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ОчисткаНастроекПользователей/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ОчисткаНастроекПользователей/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ИспользоватьВнешнихПользователей = ПолучитьФункциональнуюОпцию("ИспользоватьВнешнихПользователей"); ПользователиКоторымОчищаютсяНастройки = Новый Структура; diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ПредупреждениеОКопированииНастроек/Module.bsl b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ПредупреждениеОКопированииНастроек/Module.bsl index 50a4d11f6..94bcd4f43 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Forms/ПредупреждениеОКопированииНастроек/Module.bsl +++ b/SSL/src/DataProcessors/НастройкиПользователей/Forms/ПредупреждениеОКопированииНастроек/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; ОткрытыеКопируемыеФормы = Параметры.ОткрытыеКопируемыеФормы; Элементы.ГруппаАктивныеПользователи.Видимость = Параметры.ЕстьАктивныеПользователиПолучатели; diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Help/ru.html b/SSL/src/DataProcessors/НастройкиПользователей/Help/ru.html index 92a339f4d..67656a17c 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Help/ru.html +++ b/SSL/src/DataProcessors/НастройкиПользователей/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

                  diff --git a/SSL/src/DataProcessors/НастройкиПользователей/Templates/МакетОтчета/Template.mxlx b/SSL/src/DataProcessors/НастройкиПользователей/Templates/МакетОтчета/Template.mxlx index 9cd1d3e9d..cb7993b61 100644 --- a/SSL/src/DataProcessors/НастройкиПользователей/Templates/МакетОтчета/Template.mxlx +++ b/SSL/src/DataProcessors/НастройкиПользователей/Templates/МакетОтчета/Template.mxlx @@ -29,6 +29,12 @@ + + 1 + + true + + 2 diff --git a/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Commands/НастройкаОтправкиОтчетовОбОшибках/CommandModule.bsl b/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Commands/НастройкаОтправкиОтчетовОбОшибках/CommandModule.bsl index f65a4a42a..8bc762f89 100644 --- a/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Commands/НастройкаОтправкиОтчетовОбОшибках/CommandModule.bsl +++ b/SSL/src/DataProcessors/НастройкиЦентраМониторинга/Commands/НастройкаОтправкиОтчетовОбОшибках/CommandModule.bsl @@ -11,7 +11,7 @@ &НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) ПараметрыОткрытия = Новый Структура; - Если ТипЗнч(ПараметрыВыполненияКоманды.Источник) = Тип("УправляемаяФорма") Тогда + Если ТипЗнч(ПараметрыВыполненияКоманды.Источник) = Тип("ФормаКлиентскогоПриложения") Тогда ПараметрыОткрытия.Вставить("ИдентификаторЗадания", ПараметрыВыполненияКоманды.Источник.ЦентрМониторингаИдентификаторЗадания); ПараметрыОткрытия.Вставить("АдресРезультатаЗадания", ПараметрыВыполненияКоманды.Источник.ЦентрМониторингаАдресРезультатаЗадания); КонецЕсли; diff --git a/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/НерекомендуемаяВерсияПлатформы/Module.bsl b/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/НерекомендуемаяВерсияПлатформы/Module.bsl index 189aaf41f..bdc20bcb9 100644 --- a/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/НерекомендуемаяВерсияПлатформы/Module.bsl +++ b/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/НерекомендуемаяВерсияПлатформы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если НЕ Параметры.Свойство("ОткрытаПоСценарию") Тогда ВызватьИсключение НСтр("ru='Обработка не предназначена для непосредственного использования.'"); КонецЕсли; diff --git a/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/ПорядокОбновленияПлатформы/Module.bsl b/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/ПорядокОбновленияПлатформы/Module.bsl index 1b90eaec1..2636f8dee 100644 --- a/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/ПорядокОбновленияПлатформы/Module.bsl +++ b/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Forms/ПорядокОбновленияПлатформы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - БазаФайловая = ОбщегоНазначения.ИнформационнаяБазаФайловая(); Если БазаФайловая Тогда МакетПорядокОбновления = Обработки.НерекомендуемаяВерсияПлатформы.ПолучитьМакет("ПорядокОбновленияДляФайловойБазы"); diff --git a/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Templates/ПорядокОбновленияДляКлиентСервернойБазы/ru.html b/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Templates/ПорядокОбновленияДляКлиентСервернойБазы/ru.html index 6bbb6c87d..7c3753c3f 100644 --- a/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Templates/ПорядокОбновленияДляКлиентСервернойБазы/ru.html +++ b/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Templates/ПорядокОбновленияДляКлиентСервернойБазы/ru.html @@ -1,4 +1,4 @@ -

                  Порядок обновления на новую версию 1С:Предприятия 8.3

                  1. -
                    Скачайте дистрибутив последней версии 1С:Предприятия 8.3 с сайта поддержки пользователей 1С по указанному адресу: http://users.v8.1c.ru/project.jsp?id=Platform83
                    +
                    Скачайте дистрибутив последней версии 1С:Предприятия 8.3 с сайта поддержки пользователей 1С по указанному адресу: http://users.v8.1c.ru/project.jsp?id=Platform83
                  2. -
                    Далее необходимо руководствоваться информацией из файла V8Update.htm, включенном в поставку дистрибутива 1С:Предприятия 8.3.
                  \ No newline at end of file +
                  Далее необходимо руководствоваться информацией из файла V8Update.htm, включенном в поставку дистрибутива 1С:Предприятия 8.3.
                • \ No newline at end of file diff --git a/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Templates/ПорядокОбновленияДляФайловойБазы/ru.html b/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Templates/ПорядокОбновленияДляФайловойБазы/ru.html index de1a1884f..0d0732474 100644 --- a/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Templates/ПорядокОбновленияДляФайловойБазы/ru.html +++ b/SSL/src/DataProcessors/НерекомендуемаяВерсияПлатформы/Templates/ПорядокОбновленияДляФайловойБазы/ru.html @@ -1,4 +1,4 @@ - +

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

                  Настройки Интернет-поддержки

                  • Логин - сохраненный в программе логин, используемый для входа в систему Интернет-поддержки пользователей. Для входа в систему Интернет-поддержки пользователей используется тот же логин и пароль, что и на сайтах portal.1c.ru и portal.1c.eu. Если у вас еще нет логина и пароля, то выполните регистрацию самостоятельно или обратитесь за помощью к партнеру фирмы "1С", с которым у Вас заключен договор ИТС. -
                  • Подключить - ввести логин и пароль для подключения ко всем сервисам Интернет-поддержки. Введенные логин и пароль будут сохранены в программе. -
                  • Отключить - удалить из программы логин и пароль для подключения к сервисам Интернет-поддержки. -
                  • Сообщение в службу технической поддержки - перейти на Портал 1С:ИТС для отправки сообщения в службу технической поддержки. К данным сообщения будет автоматически добавлена техническая информация о программе. -
                  • Монитор Портала 1С:ИТС - информация о поддержке программного продукта, версии программы и др.

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

                Новости

                • Управление новостями - управление настройками новостей, а также ручное обновление классификаторов и списка новостей.

                1СПАРК Риски

                Адресный классификатор

                + +
              • Справки 1СПАРК Риски; +
              • +
              • События мониторинга 1СПАРК Риски.
              • Классификаторы, курсы валют

                -
                Роль исполнителя Основной объект адресации
                (тип, значение)
                Дополнительный объект адресации
                (тип, значение)
                Пользователь
                - - -
                Для использования возможностей адресного классификатора предусмотрены команды:
                -
              • Подключить интернет-поддержку
              • Для использования веб-сервиса 1С и загрузки обновлений адресного классификатора необходимо выполнить подключение к интернет-поддержке пользователей.
                -
              • Загрузить классификатор
              • Загрузка адресного классификатора с сайта 1С или из папки на диске.
                -
              • Очистить адресные сведения
              • Удаление загруженных адресных сведений по выбранным, неиспользуемым регионам для уменьшения размера базы.

                Классификатор банков, загрузка курсов валют

                -

                - - - - -
                -
              • Загрузить классификатор банков
              • Загрузка и обновление классификатора банков РФ из сети Интернет или диска 1С:ИТС.
                -
              • Загрузить курсы валют
              • Загрузка курсов валют из сети Интернет.

                Обсуждения

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

                Обновление версии программы

                + + +
                +
                • Обновление классификаторов - переход к загрузке и обновлению классификаторов банков, валют, стран мира, производственных календарей. Обновление можно произвести на портале 1С:ИТС или из файла на компьютере.
                + +
                • Загрузка адресного классификатора с портала 1С:ИТС или из папки на диске.
                + +
                • Удаление загруженных адресных сведений по выбранным, неиспользуемым регионам для уменьшения размера базы.
                +
                + +
                • Загрузка курсов валют из сети Интернет.

                Обсуждения

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

                Обновление версии программы

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

                - -
                + + +

                + + -

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

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

                Обновление классификаторов

                -

                В подразделе производится получение обновлений классификаторов.

                - - - -

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

                Онлайн-поддержка

                +
                При включенном флажке в журнал регистрации записываются выполняемые обработчики обновления с указанием времени выполнения.

                Онлайн-поддержка

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

                Склонения представлений объектов

                +
                +
              • Настройка онлайн-поддержки
              • +настройка приложения 1С-Коннект на этом компьютере: можно расположить ссылку для запуска на Начальной странице программы, а также скачать приложение и настроить его.

                Склонения представлений объектов

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

                Центр мониторинга

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

                @@ -95,6 +99,7 @@ TD {

                В разделе представлены команды для обновления внешних компонент с портала 1С:ИТС.

                + +
              • Настройка внешних компонент
              • -
              • Настройка внешних компонент
              • Перейдите по ссылке для настройки автообновления внешних компонент сторонних поставщиков, подключенных к программе, с портала 1С:ИТС.

                См. также:

                \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Module.bsl index 38de771ea..e3957f230 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ИнтернетПоддержкаИСервисы/Module.bsl @@ -17,47 +17,28 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; ЭтоАдминистраторСистемы = Пользователи.ЭтоПолноправныйПользователь(, Истина); РазделениеВключено = ОбщегоНазначения.РазделениеВключено(); ЭтоАвтономноеРабочееМесто = ОбщегоНазначения.ЭтоАвтономноеРабочееМесто(); - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда - ВидимостьГруппыНастройки = Не РазделениеВключено; - Если ВидимостьГруппыНастройки Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда - МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей"); - Элементы.ГруппаАдресныйКлассификаторПраваяКолонка.Видимость = - НЕ МодульИнтернетПоддержкаПользователей.ЗаполненыДанныеАутентификацииПользователяИнтернетПоддержки(); - - Иначе - ВидимостьГруппыНастройки = Ложь; - КонецЕсли; - - МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); - СведенияОДоступностиАдресныхСведений = МодульАдресныйКлассификаторСлужебный.СведенияОДоступностиАдресныхСведений(); - АдресныйКлассификаторСодержитЗагруженныеСведения = СведенияОДоступностиАдресныхСведений.Получить("ИспользоватьЗагруженные") = Истина; - Элементы.РегистрСведенийАдресныеОбъектыОчиститьАдресныйКлассификатор.Доступность = АдресныйКлассификаторСодержитЗагруженныеСведения; - КонецЕсли; - Элементы.ГруппаАдресныйКлассификаторНастройки.Видимость = ВидимостьГруппыНастройки; - Иначе - Элементы.ГруппаАдресныйКлассификаторНастройки.Видимость = Ложь; - КонецЕсли; - Элементы.ГруппаКлассификаторы.Видимость = Не РазделениеВключено; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Банки")Тогда - ИмяОбработки = "ЗагрузкаКлассификатораБанков"; - Элементы.ГруппаЗагрузитьКлассификаторБанков.Видимость = - Не РазделениеВключено - И Не ЭтоАвтономноеРабочееМесто - И ЭтоАдминистраторСистемы - И Метаданные.Обработки.Найти(ИмяОбработки) <> Неопределено; - Иначе - Элементы.ГруппаЗагрузитьКлассификаторБанков.Видимость = Ложь; + Если Элементы.ГруппаКлассификаторы.Видимость Тогда + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда + МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); + Если МодульАдресныйКлассификаторСлужебный.ЕстьПравоДобавлениеИзменениеАдресныхСведений() Тогда + СведенияОДоступностиАдресныхСведений = МодульАдресныйКлассификаторСлужебный.СведенияОДоступностиАдресныхСведений(); + АдресныйКлассификаторСодержитЗагруженныеСведения = СведенияОДоступностиАдресныхСведений.Получить("ЕстьЗагруженныеСведения") = Истина; + Элементы.РегистрСведенийАдресныеОбъектыОчиститьАдресныйКлассификатор.Доступность = АдресныйКлассификаторСодержитЗагруженныеСведения; + Иначе + Элементы.АдресныйКлассификаторНастройки.Видимость = Ложь; + КонецЕсли; + Иначе + Элементы.АдресныйКлассификаторНастройки.Видимость = Ложь; + КонецЕсли; + КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда @@ -151,8 +132,8 @@ КонецЕсли; Если ОбрабатыватьНастройкиБИП Тогда - МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей"); - МодульИнтернетПоддержкаПользователей.ИнтернетПоддержкаИСервисы_ПриСозданииНаСервере(ЭтотОбъект); + МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП"); + МодульИнтеграцияПодсистемБИП.ИнтернетПоддержкаИСервисы_ПриСозданииНаСервере(ЭтотОбъект); Иначе Элементы.БИПГруппаНастройки.Видимость = Ложь; Элементы.БИПГруппаНовости.Видимость = Ложь; @@ -178,12 +159,6 @@ &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) - Если ИмяСобытия = "ИнтернетПоддержкаПодключена" Тогда - Элементы.ГруппаАдресныйКлассификаторПраваяКолонка.Видимость = Ложь; - ИначеЕсли ИмяСобытия = "ИнтернетПоддержкаОтключена" Тогда - Элементы.ГруппаАдресныйКлассификаторПраваяКолонка.Видимость = Истина; - КонецЕсли; - Если ИмяСобытия = "ОчищенАдресныйКлассификатор" Или ИмяСобытия = "ЗагруженАдресныйКлассификатор" Тогда Элементы.РегистрСведенийАдресныеОбъектыОчиститьАдресныйКлассификатор.Доступность = (Параметр = Истина); КонецЕсли; @@ -194,8 +169,8 @@ Если ОбрабатыватьНастройкиБИП Тогда Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.БазоваяФункциональностьБИП") Тогда - МодульИнтернетПоддержкаПользователейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиент"); - МодульИнтернетПоддержкаПользователейКлиент.ИнтернетПоддержкаИСервисы_ОбработкаОповещения( + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ИнтернетПоддержкаИСервисы_ОбработкаОповещения( ЭтотОбъект, ИмяСобытия, Параметр, @@ -285,12 +260,14 @@ Подключаемый_ПриИзмененииРеквизита(Элемент); КонецПроцедуры +#Область ИнтернетПоддержкаПользователейОбработчикиСобытийЭлементовШапкиФормы + &НаКлиенте Процедура ДекорацияЛогинИППОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) - МодульИнтернетПоддержкаПользователейКлиент = - ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиент"); - МодульИнтернетПоддержкаПользователейКлиент.ИнтернетПоддержкаИСервисы_ДекорацияОбработкаНавигационнойСсылки( + МодульИнтеграцияПодсистемБИПКлиент = + ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ИнтернетПоддержкаИСервисы_ДекорацияОбработкаНавигационнойСсылки( ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, @@ -298,34 +275,6 @@ КонецПроцедуры -&НаКлиенте -Процедура БИПВключитьРаботуСНовостямиПриИзменении(Элемент) - - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.Новости") Тогда - МодульОбработкаНовостейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбработкаНовостейКлиент"); - МодульОбработкаНовостейКлиент.ИнтернетПоддержкаИСервисы_ВключитьРаботуСНовостямиПриИзменении( - ЭтотОбъект, - Элемент); - ОбновитьИнтерфейс = Истина; - ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина); - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура БИПИспользоватьСервисСПАРКРискиПриИзменении(Элемент) - - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.СПАРКРиски") Тогда - МодульСПАРКРискиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СПАРКРискиКлиент"); - МодульСПАРКРискиКлиент.ИнтернетПоддержкаИСервисы_ИспользоватьСервисСПАРКРискиПриИзменении( - ЭтотОбъект, - Элемент); - ОбновитьИнтерфейс = Истина; - ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина); - КонецЕсли; - -КонецПроцедуры - &НаКлиенте Процедура АвтоматическаяПроверкаОбновленийПриИзменении(Элемент) @@ -369,6 +318,45 @@ Подключаемый_ПриИзмененииРеквизита(Элемент); КонецПроцедуры +&НаКлиенте +Процедура ДекорацияРасписаниеУстановкаИсправленийНажатие(Элемент) + + МодульПолучениеОбновленийПрограммыКлиент = + ОбщегоНазначенияКлиент.ОбщийМодуль("ПолучениеОбновленийПрограммыКлиент"); + МодульПолучениеОбновленийПрограммыКлиент.ИнтернетПоддержкаИСервисы_ДекорацияРасписаниеУстановкаИсправленийНажатие( + ЭтотОбъект, + Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура БИПВключитьРаботуСНовостямиПриИзменении(Элемент) + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.Новости") Тогда + МодульОбработкаНовостейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбработкаНовостейКлиент"); + МодульОбработкаНовостейКлиент.ИнтернетПоддержкаИСервисы_ВключитьРаботуСНовостямиПриИзменении( + ЭтотОбъект, + Элемент); + ОбновитьИнтерфейс = Истина; + ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура БИПИспользоватьСервисСПАРКРискиПриИзменении(Элемент) + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.СПАРКРиски") Тогда + МодульСПАРКРискиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СПАРКРискиКлиент"); + МодульСПАРКРискиКлиент.ИнтернетПоддержкаИСервисы_ИспользоватьСервисСПАРКРискиПриИзменении( + ЭтотОбъект, + Элемент); + ОбновитьИнтерфейс = Истина; + ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина); + КонецЕсли; + +КонецПроцедуры + &НаКлиенте Процедура БИПЗагружатьИУстанавливатьИсправленияАвтоматическиПриИзменении(Элемент) @@ -381,16 +369,46 @@ КонецПроцедуры &НаКлиенте -Процедура ДекорацияРасписаниеУстановкаИсправленийНажатие(Элемент) +Процедура БИПФайлКлассификаторовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - МодульПолучениеОбновленийПрограммыКлиент = - ОбщегоНазначенияКлиент.ОбщийМодуль("ПолучениеОбновленийПрограммыКлиент"); - МодульПолучениеОбновленийПрограммыКлиент.ИнтернетПоддержкаИСервисы_ДекорацияРасписаниеУстановкаИсправленийНажатие( - ЭтотОбъект, - Элемент); + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда + МодульПолучениеРаботаСКлассификаторамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); + МодульПолучениеРаботаСКлассификаторамиКлиент.ИнтернетПоддержкаИСервисы_БИПФайлКлассификаторовНачалоВыбора( + ЭтотОбъект, + Элемент, + ДанныеВыбора, + СтандартнаяОбработка); + КонецЕсли; КонецПроцедуры +&НаКлиенте +Процедура БИПВариантОбновленияКлассификаторовПриИзменении(Элемент) + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда + МодульПолучениеРаботаСКлассификаторамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); + МодульПолучениеРаботаСКлассификаторамиКлиент.ИнтернетПоддержкаИСервисы_БИПВариантОбновленияКлассификаторовПриИзменении( + ЭтотОбъект, + Элемент); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДекорацияРасписаниеОбновленияКлассификаторовНажатие(Элемент) + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда + МодульПолучениеОбновленийПрограммыКлиент = + ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); + МодульПолучениеОбновленийПрограммыКлиент.ИнтернетПоддержкаИСервисы_ДекорацияРасписаниеОбновленияКлассификаторовНажатие( + ЭтотОбъект, + Элемент); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + #КонецОбласти #Область ОбработчикиКомандФормы @@ -407,13 +425,15 @@ КонецПроцедуры // Конец СтандартныеПодсистемы.ОбновлениеВерсииИБ +#Область ИнтернетПоддержкаПользователейОбработчикиКомандФормы + &НаКлиенте Процедура БИПВойтиИлиВыйти(Команда) Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.БазоваяФункциональностьБИП") Тогда - МодульИнтернетПоддержкаПользователейКлиент = - ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиент"); - МодульИнтернетПоддержкаПользователейКлиент.ИнтернетПоддержкаИСервисы_БИПВойтиИлиВыйти( + МодульИнтеграцияПодсистемБИПКлиент = + ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ИнтернетПоддержкаИСервисы_БИПВойтиИлиВыйти( ЭтотОбъект, Команда); КонецЕсли; @@ -424,8 +444,8 @@ Процедура БИПСообщениеВСлужбуТехническойПоддержки(Команда) Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.БазоваяФункциональностьБИП") Тогда - МодульИнтернетПоддержкаПользователейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиент"); - МодульИнтернетПоддержкаПользователейКлиент.ИнтернетПоддержкаИСервисы_СообщениеВСлужбуТехническойПоддержки( + МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент"); + МодульИнтеграцияПодсистемБИПКлиент.ИнтернетПоддержкаИСервисы_СообщениеВСлужбуТехническойПоддержки( ЭтотОбъект, Команда); КонецЕсли; @@ -480,6 +500,32 @@ КонецПроцедуры +&НаКлиенте +Процедура БИПФайлКлассификаторовПриИзменении(Элемент) + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда + МодульПолучениеРаботаСКлассификаторамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); + МодульПолучениеРаботаСКлассификаторамиКлиент.ИнтернетПоддержкаИСервисы_БИПФайлКлассификаторовПриИзменении( + ЭтотОбъект, + Элемент); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура БИПДекорацияОбновлениеКлассификаторовНеВыполняетсяОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда + МодульПолучениеРаботаСКлассификаторамиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСКлассификаторамиКлиент"); + МодульПолучениеРаботаСКлассификаторамиКлиент.ИнтернетПоддержкаИСервисы_БИПДекорацияОбновлениеКлассификаторовНеВыполняетсяОбработкаНавигационнойСсылки( + ЭтотОбъект, + Элемент, + НавигационнаяСсылкаФорматированнойСтроки, + СтандартнаяОбработка); + КонецЕсли; + +КонецПроцедуры + &НаКлиенте Процедура БИПИспользоватьПроверкуКонтрагентовПриИзменении(Элемент) @@ -507,6 +553,8 @@ КонецПроцедуры +#КонецОбласти + &НаКлиенте Процедура ПодключитьОтключитьОбсуждения(Команда) @@ -560,8 +608,7 @@ &НаКлиенте Процедура Подключаемый_ПриИзмененииРеквизита(Элемент, НеобходимоОбновлятьИнтерфейс = Истина) - КонстантаИмя = ПриИзмененииРеквизитаСервер(Элемент.Имя); - + ИмяКонстанты = ПриИзмененииРеквизитаСервер(Элемент.Имя); ОбновитьПовторноИспользуемыеЗначения(); Если НеобходимоОбновлятьИнтерфейс Тогда @@ -569,8 +616,8 @@ ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина); КонецЕсли; - Если КонстантаИмя <> "" Тогда - Оповестить("Запись_НаборКонстант", Новый Структура, КонстантаИмя); + Если ИмяКонстанты <> "" Тогда + Оповестить("Запись_НаборКонстант", Новый Структура, ИмяКонстанты); КонецЕсли; КонецПроцедуры @@ -631,9 +678,7 @@ Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента) РеквизитПутьКДанным = Элементы[ИмяЭлемента].ПутьКДанным; - - КонстантаИмя = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); - + ИмяКонстанты = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); УстановитьДоступность(РеквизитПутьКДанным); Если ИмяЭлемента = "ИспользоватьСервисСклоненияMorpher" @@ -643,8 +688,7 @@ КонецЕсли; ОбновитьПовторноИспользуемыеЗначения(); - - Возврат КонстантаИмя; + Возврат ИмяКонстанты; КонецФункции @@ -682,15 +726,15 @@ Возврат ""; КонецЕсли; - КонстантаИмя = ЧастиИмени[1]; - КонстантаМенеджер = Константы[КонстантаИмя]; - КонстантаЗначение = НаборКонстант[КонстантаИмя]; + ИмяКонстанты = ЧастиИмени[1]; + КонстантаМенеджер = Константы[ИмяКонстанты]; + КонстантаЗначение = НаборКонстант[ИмяКонстанты]; Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда КонстантаМенеджер.Установить(КонстантаЗначение); КонецЕсли; - Возврат КонстантаИмя; + Возврат ИмяКонстанты; КонецФункции diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Help/ru.html b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Help/ru.html index 40d3e11fb..20c65fa42 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Help/ru.html +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Help/ru.html @@ -4,14 +4,14 @@ TD { VERTICAL-ALIGN: top } - +

                В данной панели осуществляется администрирование пользователей и настройка прав доступа. Доступны команды:

                Пользователи

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

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

                Внешние пользователи

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

              Внешние пользователи

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

              • Разрешить доступ внешним пользователям - включите флажок, для того чтобы настраивать доступ внешних пользователей и использовать их в программе.
              • Внешние пользователи - учет пользователей, которые работают с программой "извне". В качестве внешних пользователей программы могут выступать партнеры, респонденты различных опросов, клиенты интернет-магазина и др. Администрирование внешних пользователей выполняется аналогично пользователям программы. @@ -24,8 +24,8 @@ TD {
              • Очистка настроек - очистка настроек пользователя, группы пользователей или всех пользователей. Это восстанавливает целостность настроек и в некоторых случаях помогает нормализовать работу сеансов этого пользователя в программе.
              • Настройки пользователей - просмотр и управление настройками выбранного пользователя.

              Даты запрета изменения

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

              Защита персональных данных 

              • Настройки регистрации событий доступа к персональным данным - настройки регистрации событий доступа в соответствии с требованиями Федерального закона от 27.07.2006 N152-ФЗ "О персональных данных"; diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Module.bsl index 30d0d7195..bca19bd3a 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиПользователейИПрав/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если Не Пользователи.ОбщиеНастройкиВходаИспользуются() Тогда Элементы.ГруппаНастройкиВходаПользователей.Видимость = Ложь; Элементы.ГруппаСписокВнешнихПользователейОтступ.Видимость = Ложь; @@ -227,8 +223,7 @@ &НаКлиенте Процедура Подключаемый_ПриИзмененииРеквизита(Элемент, ОбновлятьИнтерфейс = Истина) - МассивИменКонстант = ПриИзмененииРеквизитаСервер(Элемент.Имя); - + ИменаКонстант = ПриИзмененииРеквизитаСервер(Элемент.Имя); ОбновитьПовторноИспользуемыеЗначения(); Если ОбновлятьИнтерфейс Тогда @@ -236,9 +231,9 @@ ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина); КонецЕсли; - Для Каждого КонстантаИмя Из МассивИменКонстант Цикл - Если КонстантаИмя <> "" Тогда - Оповестить("Запись_НаборКонстант", Новый Структура, КонстантаИмя); + Для Каждого ИмяКонстанты Из ИменаКонстант Цикл + Если ИмяКонстанты <> "" Тогда + Оповестить("Запись_НаборКонстант", Новый Структура, ИмяКонстанты); КонецЕсли; КонецЦикла; @@ -292,15 +287,14 @@ &НаСервере Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента) - МассивИменКонстант = Новый Массив; - + ИменаКонстант = Новый Массив; РеквизитПутьКДанным = Элементы[ИмяЭлемента].ПутьКДанным; НачатьТранзакцию(); Попытка - КонстантаИмя = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); - МассивИменКонстант.Добавить(КонстантаИмя); + ИмяКонстанты = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); + ИменаКонстант.Добавить(ИмяКонстанты); ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); @@ -308,10 +302,8 @@ КонецПопытки; УстановитьДоступность(РеквизитПутьКДанным); - ОбновитьПовторноИспользуемыеЗначения(); - - Возврат МассивИменКонстант; + Возврат ИменаКонстант; КонецФункции @@ -326,20 +318,20 @@ Возврат ""; КонецЕсли; - КонстантаИмя = ЧастиИмени[1]; - КонстантаМенеджер = Константы[КонстантаИмя]; - КонстантаЗначение = НаборКонстант[КонстантаИмя]; - ТекущееЗначение = КонстантаМенеджер.Получить(); + ИмяКонстанты = ЧастиИмени[1]; + КонстантаМенеджер = Константы[ИмяКонстанты]; + КонстантаЗначение = НаборКонстант[ИмяКонстанты]; + ТекущееЗначение = КонстантаМенеджер.Получить(); Если ТекущееЗначение <> КонстантаЗначение Тогда Попытка КонстантаМенеджер.Установить(КонстантаЗначение); Исключение - НаборКонстант[КонстантаИмя] = ТекущееЗначение; + НаборКонстант[ИмяКонстанты] = ТекущееЗначение; ВызватьИсключение; КонецПопытки; КонецЕсли; - Возврат КонстантаИмя; + Возврат ИмяКонстанты; КонецФункции diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Form.form index 440dd39ee..160ebed56 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Form.form @@ -408,7 +408,8 @@ ru Расширения файлов, для которых будет запрещена загрузка в программу, чтобы предотвратить возможность нанесения вреда компьютеру и данным в программе. Указываются через "пробел". -См. также: <link http://1c.ru/news/info.jsp?id=21537>Пример проблемы с вирусом во внешней обработке.</> +См. также: <link http://1c.ru/news/info.jsp?id=21537>Пример проблемы с вирусом во внешней обработке</>. + true Label @@ -1622,14 +1623,6 @@ ru Общие параметры для всех областей данных - - System.DefaultGUIFont - 11.0 - true - false - false - false - ОбщиеПараметрыДляВсехОбластейДанныхExtendedTooltip 2083 @@ -1644,6 +1637,7 @@ Vertical Auto + NormalSeparation true true auto diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Help/ru.html b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Help/ru.html index b3fffe67a..605b723a2 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Help/ru.html +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Help/ru.html @@ -4,16 +4,16 @@ TD { VERTICAL-ALIGN: top } - +

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

                • Хранить файлы в томах на диске - выбор между хранением файлов в информационной базе или в томах на диске. В последнем случае файлы не будут храниться в программе.
                  • Если флажок включен, становится доступной команда Тома хранения файлов - переход к настройке подключения к томам (папкам) хранения файлов на файловом сервере.
                • Запретить загрузку файлов с расширениями - включите флажок, для того чтобы запретить загрузку в программу файлов с указанными расширениями и укажите запрещенные к загрузке расширения файлов в поле ввода через пробел.
                • Максимальный размер файла - введите ограничение загрузки в программу файлов, превышающих указанный размер. По умолчанию указан размер 50 Мб. Файлы большего размера не будут загружаться в программу. Если максимальный размер равен нулю, то объем файлов не ограничен.
                • Расширения файлов ODF - можно указать расширения файлов открытого формата документов для офисных приложений, текст из которых также будет извлекаться для построения индекса полнотекстового поиска. Расширения указываются через пробел. По умолчанию список заполнен основными расширениями файлов. Указывать или уточнять список расширений файлов открытого формата документов нужно при использовании операционных систем фирмы Microsoft, если для программы OpenOffice не установлено расширение IFilter.
                • Расширения текстовых файлов - введите расширения файлов, содержащих текстовые данные. Расширения указываются через пробел. -
                • Настройка очистки файлов - выполните команду, для того чтобы настроить очистку ненужных файлов. +
                • Настройка очистки файлов - выполните команду, для того чтобы настроить очистку ненужных файлов.
                • Синхронизировать файлы с облачными сервисами - включите флажок для синхронизации с Яндекс.Диск, Box и другими облачными сервисами для упрощения редактирования файлов. -
                • Настройки синхронизации - перейдите по ссылке для настройки синхронизации файлов с облачными сервисами.

                Преимущества хранения файлов в томах на диске

                +
              • Настройки синхронизации - перейдите по ссылке для настройки синхронизации файлов с облачными сервисами.

              Преимущества хранения файлов в томах на диске

              • Нет излишней нагрузки на информационную базу. Файлы могут занимать существенный объем, значительно превышающий объем всех остальных данных информационной базы. В таком случае работа программы существенно замедляется;
              • diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Module.bsl index cab439425..6b9773596 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/НастройкиРаботыСФайлами/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда ВызватьИсключение НСтр("ru = 'Не внедрена подсистема Работа с файлами. |Рекомендуется отключить видимость этой панели.'"); @@ -226,8 +222,7 @@ &НаКлиенте Процедура Подключаемый_ПриИзмененииРеквизита(Элемент, ОбновлятьИнтерфейс = Истина) - КонстантаИмя = ПриИзмененииРеквизитаСервер(Элемент.Имя); - + ИмяКонстанты = ПриИзмененииРеквизитаСервер(Элемент.Имя); ОбновитьПовторноИспользуемыеЗначения(); Если ОбновлятьИнтерфейс Тогда @@ -235,8 +230,8 @@ ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина); КонецЕсли; - Если КонстантаИмя <> "" Тогда - Оповестить("Запись_НаборКонстант", Новый Структура, КонстантаИмя); + Если ИмяКонстанты <> "" Тогда + Оповестить("Запись_НаборКонстант", Новый Структура, ИмяКонстанты); КонецЕсли; КонецПроцедуры @@ -255,56 +250,51 @@ Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента) РеквизитПутьКДанным = Элементы[ИмяЭлемента].ПутьКДанным; - - КонстантаИмя = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); - + ИмяКонстанты = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); УстановитьДоступность(РеквизитПутьКДанным); - ОбновитьПовторноИспользуемыеЗначения(); - - Возврат КонстантаИмя; + Возврат ИмяКонстанты; КонецФункции &НаСервере Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным) + Если РеквизитПутьКДанным = "" Тогда + Возврат ""; + КонецЕсли; + ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, "."); - Если ЧастиИмени.Количество() <> 2 Тогда + Если ЧастиИмени.Количество() = 2 Тогда + ИмяКонстанты = ЧастиИмени[1]; + Иначе Если РеквизитПутьКДанным = "МаксимальныйРазмерФайла" Тогда НаборКонстант.МаксимальныйРазмерФайла = МаксимальныйРазмерФайла * (1024*1024); - КонстантаИмя = "МаксимальныйРазмерФайла"; + ИмяКонстанты = "МаксимальныйРазмерФайла"; ИначеЕсли РеквизитПутьКДанным = "МаксимальныйРазмерФайлаОбластиДанных" Тогда Если Не ОбщегоНазначения.РазделениеВключено() Тогда НаборКонстант.МаксимальныйРазмерФайла = МаксимальныйРазмерФайлаОбластиДанных * (1024*1024); - КонстантаИмя = "МаксимальныйРазмерФайла"; + ИмяКонстанты = "МаксимальныйРазмерФайла"; Иначе НаборКонстант.МаксимальныйРазмерФайлаОбластиДанных = МаксимальныйРазмерФайлаОбластиДанных * (1024*1024); - КонстантаИмя = "МаксимальныйРазмерФайлаОбластиДанных"; + ИмяКонстанты = "МаксимальныйРазмерФайлаОбластиДанных"; КонецЕсли; ИначеЕсли РеквизитПутьКДанным = "ЗапрещатьЗагрузкуФайловПоРасширению" Тогда НаборКонстант.ЗапрещатьЗагрузкуФайловПоРасширению = ЗапрещатьЗагрузкуФайловПоРасширению; - КонстантаИмя = "ЗапрещатьЗагрузкуФайловПоРасширению"; + ИмяКонстанты = "ЗапрещатьЗагрузкуФайловПоРасширению"; КонецЕсли; - Иначе - КонстантаИмя = ЧастиИмени[1]; КонецЕсли; - Если ПустаяСтрока(КонстантаИмя) Тогда - Возврат ""; - КонецЕсли; - - КонстантаМенеджер = Константы[КонстантаИмя]; - КонстантаЗначение = НаборКонстант[КонстантаИмя]; + КонстантаМенеджер = Константы[ИмяКонстанты]; + КонстантаЗначение = НаборКонстант[ИмяКонстанты]; Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда КонстантаМенеджер.Установить(КонстантаЗначение); КонецЕсли; - Возврат КонстантаИмя; - + Возврат ИмяКонстанты; КонецФункции &НаСервере diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Form.form index c527c9efa..b5e48091d 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Form.form @@ -3459,6 +3459,44 @@ true + + КоличествоПотоковОбновления + + <key>ru</key> + <value>Количество потоков обновления</value> + + 5 + + Number + + 5 + + + + true + + + true + + + + ПриоритетОбработкиДанных + + <key>ru</key> + <value>Приоритет обработки данных</value> + + 3 + + String + + + + true + + + true + + РазблокироватьРаботуСВнешнимиРесурсами diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Help/ru.html b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Help/ru.html index 7443daafb..7f3250a1a 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Help/ru.html +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Help/ru.html @@ -4,44 +4,42 @@ TD { VERTICAL-ALIGN: top } -</style><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +</style><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> <p>В данной панели осуществляется контроль состояния программы, резервное копирование и восстановление, обновление версии, оптимизация быстродействия.</p> -<table><tbody><a name="СтандартныеПодсистемы.БазоваяФункциональность"> -<tr><td> +<a name="СтандартныеПодсистемы.БазоваяФункциональность"> +</a><a name="СтандартныеПодсистемы.ЗавершениеРаботыПользователей"> +</a><a name="СтандартныеПодсистемы.УдалениеПомеченныхОбъектов"> +</a><table><tbody><tr><td> <li><a href="DataProcessor.ЖурналРегистрации/Help">Журнал регистрации</a></li></td> -<td>Просмотр событий и действий, которые происходили в регламентных заданиях или в процессе работы пользователей в программе.</td></tr></a><a name="СтандартныеПодсистемы.ЗавершениеРаботыПользователей"> -<tr><td> +<td>Просмотр событий и действий, которые происходили в регламентных заданиях или в процессе работы пользователей в программе.</td></tr><tr><td> <li><a href="DataProcessor.АктивныеПользователи/Help">Активные пользователи</a></li></td> <td>Список пользователей, которые сейчас работают в программе.</td></tr><tr><td> <li><a href="DataProcessor.БлокировкаРаботыПользователей/Help">Блокировка работы пользователей</a></li></td> -<td>Установка и снятие запрета работы пользователей с программой. При установке запрета завершается работа всех активных пользователей (включая текущего).</td></tr></a><a name="СтандартныеПодсистемы.УдалениеПомеченныхОбъектов"> -<tr><td> +<td>Установка и снятие запрета работы пользователей с программой. При установке запрета завершается работа всех активных пользователей (включая текущего).</td></tr><tr><td> <li><a href="DataProcessor.УдалениеПомеченныхОбъектов/Help">Удаление помеченных объектов</a></li></td> -<td>Окончательное удаление тех объектов программы, которым ранее была присвоена пометка на удаление.</td></tr></a></tbody></table><h3>Отчеты и обработки</h3> +<td>Окончательное удаление тех объектов программы, которым ранее была присвоена пометка на удаление.</td></tr></tbody></table><h3>Отчеты и обработки</h3> <p>В данном подразделе администратору предоставляются возможности по получению отчетов о работе программы, а также внешних дополнительных отчетов и обработок по администрированию программы. </p> -<table><tbody><tr><td> +<a name="СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки"> +</a><table><tbody><tr><td> <li><strong>Отчеты администратора</strong></li></td> <td><a name="СтандартныеПодсистемы.АнализЖурналаРегистрации"> -<p><a href="Report.АнализЖурналаРегистрации/Help">Отчеты по журналу регистрации</a>. </p></a> -<p>Отчеты для администрирования программы.</p></td></tr><a name="СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки"> -<tr><td> +</a><p><a name="СтандартныеПодсистемы.АнализЖурналаРегистрации"></a><a href="Report.АнализЖурналаРегистрации/Help">Отчеты по журналу регистрации</a>. </p> +<p>Отчеты для администрирования программы.</p></td></tr><tr><td> <li><strong>Дополнительные</strong><strong> отчеты по администрированию</strong></li></td> <td>Команды <a href="Catalog.ДополнительныеОтчетыИОбработки/Help">дополнительных отчетов</a>, подключенных к программе.</td></tr><tr><td> <li><strong>Дополнительные </strong><strong>обработки по администрированию</strong></li></td> -<td>Команды <a href="Catalog.ДополнительныеОтчетыИОбработки/Help">дополнительных обработок</a>, подключенных к программе.</td></tr></a></tbody></table><h3>Регламентные операции</h3> +<td>Команды <a href="Catalog.ДополнительныеОтчетыИОбработки/Help">дополнительных обработок</a>, подключенных к программе.</td></tr></tbody></table><h3>Регламентные операции</h3> <p>В подразделе доступны команды по управлению регламентными операциями:</p> -<table><tbody><a name="СтандартныеПодсистемы.РегламентныеЗадания"> -<tr><td> +<a name="СтандартныеПодсистемы.РегламентныеЗадания"> +</a><table><tbody><tr><td> <li><a href="DataProcessor.РегламентныеИФоновыеЗадания/Help">Регламентные и фоновые задания</a></li></td> -<td>Настройка, выполнение и отслеживание состояний регламентных и фоновых заданий. Регламентные задания автоматически выполняют регламентные операции по расписанию.</td></tr></a> -<tr><td> +<td>Настройка, выполнение и отслеживание состояний регламентных и фоновых заданий. Регламентные задания автоматически выполняют регламентные операции по расписанию.</td></tr><tr><td> <li><strong>Разблокировать работу с внешними ресурсами</strong></li></td> <td>С помощью кнопки можно снять блокировку регламентных заданий по работе с внешними ресурсами. Она автоматически устанавливается, если изменилось местоположение ИБ в связи с копированием или восстановлением из резервной копии.</td></tr><tr><td><a name="СтандартныеПодсистемы.УправлениеИтогамиИАгрегатами"> -<li><a href="DataProcessor.УправлениеИтогамиИАгрегатами/Help">Управление итогами и агрегатами</a></li></a></td> +</a><li><a name="СтандартныеПодсистемы.УправлениеИтогамиИАгрегатами"></a><a href="DataProcessor.УправлениеИтогамиИАгрегатами/Help">Управление итогами и агрегатами</a></li></td> <td>Управление итогами регистров накопления и бухгалтерии и агрегатами оборотных регистров. Правильная настройка итогов и агрегатов может повысить производительность программы.</td></tr></tbody></table><h3>Резервное копирование и восстановление</h3> <p>С целью уменьшения риска потери данных необходимо регулярно выполнять резервное копирование программы. Частота создания резервных копий зависит от интенсивности ввода новых данных.</p> -<table><tbody><tr><a name="СтандартныеПодсистемы.РезервноеКопированиеИБ"></a> -<td><a href="DataProcessor.РезервноеКопированиеИБ.Form.РезервноеКопированиеДанных/Help">Создание резервнойкопии</a> </td> +<a name="СтандартныеПодсистемы.РезервноеКопированиеИБ"></a><table><tbody><tr><td><a href="DataProcessor.РезервноеКопированиеИБ.Form.РезервноеКопированиеДанных/Help">Создание резервнойкопии</a> </td> <td>Выполнение резервного копирования программы: прямо сейчас, через некоторое время или при завершении работы.</td></tr><tr><td> <li><a href="DataProcessor.НастройкаРезервногоКопированияИБ/Help">Настройка резервного копирования</a></li></td> <td>Настройка автоматического резервного копирования по расписанию, или отключение контроля резервного копирования, если оно выполняется сторонними средствами.</td></tr><tr><td> @@ -49,41 +47,38 @@ TD { <td>Восстановление программы из резервной копии.</td></tr></tbody></table><h3>Корректировка данных</h3> <p>В программе предусмотрены различные возможности поддерживать списки в порядке: изменять данные, отобранные по определенным признакам; устранять повторяющиеся элементы автоматически, при этом программа также исправляет ссылки на удаленные элементы.</p> <p></p> -<table><tbody><tr><td><a name="СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов"> -<li><a href="DataProcessor.ГрупповоеИзменениеРеквизитов/Help">Групповое изменение реквизитов</a></li></a></td> -<td>Изменение реквизитов и табличных частей в выбранных элементах.</td></tr><a href="Catalog.ПравилаПроверкиУчета/Help"> -<tr><td><a name="СтандартныеПодсистемы.ПоискИУдалениеДублей"> -<li><a href="DataProcessor.ПоискИУдалениеДублей/Help">Поиск и удаление дублей</a></li></a></td> -<td>Поиск похожих элементов по заданным условиям сравнения.</td></tr></a><a name="СтандартныеПодсистемы.КонтрольВеденияУчета"></a> -<tr><td><a name="СтандартныеПодсистемы.ПоискИУдалениеДублей"> -<li><a href="Catalog.ПравилаПроверкиУчета/Help">Правила проверки учета</a></li></a></td> -<td>Правила проверки корректности данных информационной базы.</td></tr><a name="СтандартныеПодсистемы.КонтрольВеденияУчета"></a></tbody></table><h3>Обновление программы</h3> +<a href="Catalog.ПравилаПроверкиУчета/Help"> +</a><a name="СтандартныеПодсистемы.КонтрольВеденияУчета"></a><a name="СтандартныеПодсистемы.КонтрольВеденияУчета"></a><table><tbody><tr><td><a name="СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов"> +</a><li><a name="СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов"></a><a href="DataProcessor.ГрупповоеИзменениеРеквизитов/Help">Групповое изменение реквизитов</a></li></td> +<td>Изменение реквизитов и табличных частей в выбранных элементах.</td></tr><tr><td><a name="СтандартныеПодсистемы.ПоискИУдалениеДублей"> +</a><li><a name="СтандартныеПодсистемы.ПоискИУдалениеДублей"></a><a href="DataProcessor.ПоискИУдалениеДублей/Help">Поиск и удаление дублей</a></li></td> +<td>Поиск похожих элементов по заданным условиям сравнения.</td></tr><tr><td><a name="СтандартныеПодсистемы.ПоискИУдалениеДублей"> +</a><li><a name="СтандартныеПодсистемы.ПоискИУдалениеДублей"></a><a href="Catalog.ПравилаПроверкиУчета/Help">Правила проверки учета</a></li></td> +<td>Правила проверки корректности данных информационной базы.</td></tr></tbody></table><h3>Обновление программы</h3> <p>В подразделе производится установка обновлений программы или исправлений (патчей), также можно просмотреть информацию о предыдущих обновлениях.</p> -<table><tbody><a href="CommonForm.УстановленныеИсправления/Help" name="СтандартныеПодсистемы.ОбновлениеКонфигурации"> -<tr><td> +<a href="CommonForm.УстановленныеИсправления/Help" name="СтандартныеПодсистемы.ОбновлениеКонфигурации"> +</a><p></p><a name="СтандартныеПодсистемы.ОбновлениеВерсииИБ"></a><table><tbody><tr><td> <li><a href="DataProcessor.УстановкаОбновлений/Help">Установка обновлений и исправлений (патчей</a>)</li></td> <td>Переход к установке обновлений программы или исправлений (патчей).</td> -<p></p></tr><tr><td> +</tr><tr><td> <li>Установленные исправления (патчи)</li></td> -<td>Переход к просмотру списка установленных в программе исправлений (патчей).</td></tr><tr><a name="СтандартныеПодсистемы.ОбновлениеВерсииИБ"></a> -<td> +<td>Переход к просмотру списка установленных в программе исправлений (патчей).</td></tr><tr><td> <li><a href="CommonForm.ОписаниеИзмененийПрограммы/Help">Описание изменений программы</a></li></td> <td>Просмотр списка изменений в установленной версии программы и рекомендаций по обновлению программы.</td></tr><tr><td> <li><a href="DataProcessor.РезультатыОбновленияПрограммы.Form.ИндикацияХодаОтложенногоОбновленияИБ/Help">Результаты обновления и дополнительная обработка данных</a></li></td> <td>Сведения о ходе обновления версии программы, отложенное выполнение дополнительных процедур обработки данных.</td></tr><tr><td> <li><strong>Детализировать ход обновления в журнале регистрации</strong></li></td> -<td>При включенном флажке в <a href="DataProcessor.ЖурналРегистрации/Help">журнал регистрации</a> записываются выполняемые обработчики обновления с указанием времени выполнения.</td></tr></a></tbody></table><h3>Оценка производительности</h3> +<td>При включенном флажке в <a href="DataProcessor.ЖурналРегистрации/Help">журнал регистрации</a> записываются выполняемые обработчики обновления с указанием времени выполнения.</td></tr></tbody></table><h3>Оценка производительности</h3> <p>В программе предусмотрены встроенные средства для сбора и анализа данных о производительности ее работы по APDEX. В подразделе можно настроить параметры:</p> -<table><tbody><tr><td> +<p></p><table><tbody><tr><td> <li><strong>Оценка производительности</strong></li></td> <td>Флажок замеров интегральной производительности программы по методике APDEX.</td></tr><tr><td><a name="СтандартныеПодсистемы.ОценкаПроизводительности"> -<li><a href="Catalog.ПрофилиКлючевыхОпераций/Help">Профили ключевых операций</a></li></a></td> +</a><li><a name="СтандартныеПодсистемы.ОценкаПроизводительности"></a><a href="Catalog.ПрофилиКлючевыхОпераций/Help">Профили ключевых операций</a></li></td> <td>Переход к настройке профилей ключевых операций.</td></tr><tr><td> <li><a href="DataProcessor.ОценкаПроизводительности.Form.АвтоматическийЭкспортЗамеровПроизводительности/Help">Настройки оценки производительности</a></li></td> <td>Настройки параметров оценки производительности.</td></tr><tr><td> <li><a href="DataProcessor.ОценкаПроизводительности.Form.ЭкспортЗамеровПроизводительности/Help">Экспорт замеров производительности</a></li></td> -<td>Экспорт замеров производительности за произвольный период.</td></tr><tr><p></p> -<td> +<td>Экспорт замеров производительности за произвольный период.</td></tr><tr><td> <li><a href="DataProcessor.ОценкаПроизводительности.Form.ИмпортЗамеровПроизводительности/Help">Импорт замеров производительности</a></li></td> <td>Импорт замеров производительности за произвольный период.</td></tr><tr></tr></tbody></table><h3>См. также: </h3> <ul><li><a href="DataProcessor.ПанельАдминистрированияБСП/Help">Настройки программы</a>.</li></ul></body></html> \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Module.bsl index 6bfa55067..291671f22 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Обслуживание/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда Элементы.ГруппаБлокировкаРаботыСВнешнимиРесурсами.Видимость = РегламентныеЗаданияСервер.РаботаСВнешнимиРесурсамиЗаблокирована(); @@ -258,8 +254,7 @@ &НаКлиенте Процедура Подключаемый_ПриИзмененииРеквизита(Элемент, НеобходимоОбновлятьИнтерфейс = Истина) - КонстантаИмя = ПриИзмененииРеквизитаСервер(Элемент.Имя); - + ИмяКонстанты = ПриИзмененииРеквизитаСервер(Элемент.Имя); ОбновитьПовторноИспользуемыеЗначения(); Если НеобходимоОбновлятьИнтерфейс Тогда @@ -267,8 +262,8 @@ ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина); КонецЕсли; - Если КонстантаИмя <> "" Тогда - Оповестить("Запись_НаборКонстант", Новый Структура, КонстантаИмя); + Если ИмяКонстанты <> "" Тогда + Оповестить("Запись_НаборКонстант", Новый Структура, ИмяКонстанты); КонецЕсли; КонецПроцедуры @@ -290,14 +285,10 @@ Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента) РеквизитПутьКДанным = Элементы[ИмяЭлемента].ПутьКДанным; - - КонстантаИмя = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); - + ИмяКонстанты = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); УстановитьДоступность(РеквизитПутьКДанным); - ОбновитьПовторноИспользуемыеЗначения(); - - Возврат КонстантаИмя; + Возврат ИмяКонстанты; КонецФункции @@ -312,15 +303,15 @@ Возврат ""; КонецЕсли; - КонстантаИмя = ЧастиИмени[1]; - КонстантаМенеджер = Константы[КонстантаИмя]; - КонстантаЗначение = НаборКонстант[КонстантаИмя]; + ИмяКонстанты = ЧастиИмени[1]; + КонстантаМенеджер = Константы[ИмяКонстанты]; + КонстантаЗначение = НаборКонстант[ИмяКонстанты]; Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда КонстантаМенеджер.Установить(КонстантаЗначение); КонецЕсли; - Возврат КонстантаИмя; + Возврат ИмяКонстанты; КонецФункции diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Form.form index 7d3859794..abefff6a1 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Form.form @@ -947,191 +947,6 @@ <showInFooter>true</showInFooter> <extInfo xsi:type="form:CheckBoxFieldExtInfo"/> </items> - <items xsi:type="form:FormGroup"> - <name>ГруппаДополнительныеРеквизитыИСведенияПрочиеНастройки</name> - <id>1807</id> - <items xsi:type="form:Decoration"> - <name>Декорация1</name> - <id>2035</id> - <visible>true</visible> - <enabled>true</enabled> - <userVisible> - <common>true</common> - </userVisible> - <extendedTooltip> - <name>Декорация1РасширеннаяПодсказка</name> - <id>2037</id> - <type>Label</type> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - <extInfo xsi:type="form:LabelDecorationExtInfo"> - <horizontalAlign>Left</horizontalAlign> - </extInfo> - </extendedTooltip> - <contextMenu> - <name>Декорация1КонтекстноеМеню</name> - <id>2036</id> - <autoFill>true</autoFill> - </contextMenu> - <type>Label</type> - <width>1</width> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - <extInfo xsi:type="form:LabelDecorationExtInfo"> - <horizontalAlign>Left</horizontalAlign> - </extInfo> - </items> - <items xsi:type="form:FormGroup"> - <name>Группа7</name> - <id>2033</id> - <items xsi:type="form:FormField"> - <name>ИспользоватьОбщиеДополнительныеЗначения</name> - <id>1812</id> - <title> - <key>ru</key> - <value>Реквизиты и сведения с общим списком значений </value> - - true - true - - true - - - НаборКонстант.ИспользоватьОбщиеДополнительныеЗначения - - Right - - ru - Разрешить добавление реквизитов, у которых общий список значений с другими реквизитами. - - ShowBottom - - OnChange - ИспользоватьДополнительныеРеквизитыИСведенияПриИзменении - - - ИспользоватьОбщиеДополнительныеЗначенияExtendedTooltip - 1854 - Label - true - true - - Left - - - - ИспользоватьОбщиеДополнительныеЗначенияКонтекстноеМеню - 1813 - true - - CheckBoxField - Enter - true - Left - true - - - - ИспользоватьОбщиеДополнительныеРеквизитыИСведения - 1816 - - <key>ru</key> - <value>Общие реквизиты и сведения</value> - - true - true - - true - - - НаборКонстант.ИспользоватьОбщиеДополнительныеРеквизитыИСведения - - Right - - ru - Разрешить добавление реквизитов сразу к нескольким объектам программы одновременно. - - ShowBottom - - OnChange - ИспользоватьДополнительныеРеквизитыИСведенияПриИзменении - - - ИспользоватьОбщиеДополнительныеРеквизитыИСведенияExtendedTooltip - 1856 - Label - true - true - - Left - - - - ИспользоватьОбщиеДополнительныеРеквизитыИСведенияКонтекстноеМеню - 1817 - true - - CheckBoxField - Enter - true - Left - true - - - true - true - - true - - - Группа7РасширеннаяПодсказка - 2034 - Label - true - true - - Left - - - UsualGroup - - Vertical - Auto - true - true - Auto - Auto - - - true - true - - true - - - <key>ru</key> - <value>Дополнительные реквизиты и сведения прочие настройки</value> - - - ГруппаДополнительныеРеквизитыИСведенияПрочиеНастройкиExtendedTooltip - 1850 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - true true @@ -1581,7 +1396,7 @@ <key>ru</key> - <value>Группа полнотекстовый поиск</value> + <value>Полнотекстовый поиск</value> ru diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Help/ru.html b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Help/ru.html index ca0398dfc..09258fc19 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Help/ru.html +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Help/ru.html @@ -4,7 +4,7 @@ TD { VERTICAL-ALIGN: top } - +

                В данной панели осуществляется настройка основных параметров программы.

                • Заголовок программы - введите текст, который будет отображаться в заголовке окна программы.
                • Часовой пояс - часовой пояс, в котором ведется учет в программе. Все даты документов и других данных в программе хранятся в этом часовом поясе. @@ -14,23 +14,22 @@ TD {
                • Например, если такой адрес включить в рассылку писем, то из письма за одно нажатие можно перейти к форме объекта в самой программе.

                Параметры серверной информационной базы

                +
              • Параметры доступа в Интернет - настройки параметров прокси-сервера на сервере 1С:Предприятие. +
              • Использование профилей безопасности - использование профилей безопасности для контроля за использованием программой внешних (относительно кластера серверов 1С:Предприятия) ресурсов.

              Контактная информация

              -
              • Виды контактной информации - добавление и настройка видов контактной информации различных объектов программы, например, партнеров, контрагентов, сотрудников и т.д.
              -

              Дополнительные реквизиты и сведения

              +
              • Виды контактной информации - добавление и настройка видов контактной информации различных объектов программы, например, партнеров, контрагентов, сотрудников и т.д.

              Дополнительные реквизиты и сведения

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

            История изменений

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

            -
            +

            Поиск данных

            -
            • Полнотекстовый поиск данных - Включите флажок, после этого становится доступной команда: -
            • Настроить - Настройка полнотекстового поиска и поддержка индекса полнотекстового поиска в актуальном состоянии.
            +
            • Полнотекстовый поиск данных - Включите флажок, после этого становится доступной команда: +
            • Настроить - Настройка полнотекстового поиска и поддержка индекса полнотекстового поиска в актуальном состоянии.

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

            • Электронная подпись - включите флажок, для того чтобы разрешить использовать электронные подписи и проверять отсутствие изменений файла с момента формирования электронной подписи.
            • Шифрование - включите флажок, для того чтобы разрешить шифрование файлов. diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Module.bsl index c5940edbb..499769fc6 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ОбщиеНастройки/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ЧасовойПоясПрограммы = ПолучитьЧасовойПоясИнформационнойБазы(); Если ПустаяСтрока(ЧасовойПоясПрограммы) Тогда ЧасовойПоясПрограммы = ЧасовойПояс(); @@ -253,8 +249,7 @@ &НаКлиенте Процедура Подключаемый_ПриИзмененииРеквизита(Элемент, ОбновлятьИнтерфейс = Истина) - КонстантаИмя = ПриИзмененииРеквизитаСервер(Элемент.Имя); - + ИмяКонстанты = ПриИзмененииРеквизитаСервер(Элемент.Имя); ОбновитьПовторноИспользуемыеЗначения(); Если ОбновлятьИнтерфейс Тогда @@ -262,8 +257,8 @@ ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина); КонецЕсли; - Если КонстантаИмя <> "" Тогда - Оповестить("Запись_НаборКонстант", Новый Структура, КонстантаИмя); + Если ИмяКонстанты <> "" Тогда + Оповестить("Запись_НаборКонстант", Новый Структура, ИмяКонстанты); КонецЕсли; КонецПроцедуры @@ -285,14 +280,10 @@ Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента) РеквизитПутьКДанным = Элементы[ИмяЭлемента].ПутьКДанным; - - КонстантаИмя = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); - + ИмяКонстанты = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); УстановитьДоступность(РеквизитПутьКДанным); - ОбновитьПовторноИспользуемыеЗначения(); - - Возврат КонстантаИмя; + Возврат ИмяКонстанты; КонецФункции @@ -325,19 +316,19 @@ Возврат ""; КонецЕсли; - КонстантаИмя = ЧастиИмени[1]; - КонстантаМенеджер = Константы[КонстантаИмя]; - КонстантаЗначение = НаборКонстант[КонстантаИмя]; + ИмяКонстанты = ЧастиИмени[1]; + КонстантаМенеджер = Константы[ИмяКонстанты]; + КонстантаЗначение = НаборКонстант[ИмяКонстанты]; Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда КонстантаМенеджер.Установить(КонстантаЗначение); КонецЕсли; - Если КонстантаИмя = "ИспользоватьДополнительныеРеквизитыИСведения" И КонстантаЗначение = Ложь Тогда + Если ИмяКонстанты = "ИспользоватьДополнительныеРеквизитыИСведения" И КонстантаЗначение = Ложь Тогда ЭтотОбъект.Прочитать(); КонецЕсли; - Возврат КонстантаИмя; + Возврат ИмяКонстанты; КонецФункции diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Form.form index b90d3a8f2..ed3613ce1 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Form.form @@ -483,14 +483,6 @@ true - - System.DefaultGUIFont - 11.0 - true - false - false - false - Группа7ExtendedTooltip 1650 @@ -752,14 +744,6 @@ true - - System.DefaultGUIFont - 11.0 - true - false - false - false - Группа6ExtendedTooltip 1657 diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Help/ru.html b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Help/ru.html index 0e67a9bed..8da851b2a 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Help/ru.html +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Help/ru.html @@ -4,7 +4,7 @@ TD { VERTICAL-ALIGN: top } - +

              В данной панели осуществляется настройка электронной почты, заметок, напоминаний и бизнес-процессов.

              Почта

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

              diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Module.bsl index f22c49544..2815f285b 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/Органайзер/Module.bsl @@ -17,9 +17,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.БизнесПроцессыИЗадачи") Тогда Если Пользователи.ЭтоПолноправныйПользователь() Тогда @@ -51,11 +48,6 @@ Элементы.ГруппаБизнесПроцессыИЗадачи.Видимость = Ложь; КонецЕсли; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда - МодульВзаимодействия = ОбщегоНазначения.ОбщийМодуль("Взаимодействия"); - Элементы.БезопасностьПочты.Видимость = МодульВзаимодействия.ЕстьВозможностьФильтрацииСодержимогоHTML(); - КонецЕсли; - // Обновление состояния элементов. УстановитьДоступность(); @@ -187,8 +179,7 @@ &НаКлиенте Процедура Подключаемый_ПриИзмененииРеквизита(Элемент, ОбновлятьИнтерфейс = Истина) - КонстантаИмя = ПриИзмененииРеквизитаСервер(Элемент.Имя); - + ИмяКонстанты = ПриИзмененииРеквизитаСервер(Элемент.Имя); ОбновитьПовторноИспользуемыеЗначения(); Если ОбновлятьИнтерфейс Тогда @@ -196,8 +187,8 @@ ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина); КонецЕсли; - Если КонстантаИмя <> "" Тогда - Оповестить("Запись_НаборКонстант", Новый Структура, КонстантаИмя); + Если ИмяКонстанты <> "" Тогда + Оповестить("Запись_НаборКонстант", Новый Структура, ИмяКонстанты); КонецЕсли; КонецПроцедуры @@ -255,14 +246,14 @@ Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента) РеквизитПутьКДанным = Элементы[ИмяЭлемента].ПутьКДанным; - - КонстантаИмя = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); - + ИмяКонстанты = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); + Если (ИмяКонстанты = "ИспользоватьПочтовыйКлиент" ИЛИ ИмяКонстанты = "ИспользоватьБизнесПроцессыИЗадачи") + И Не НаборКонстант[ИмяКонстанты] Тогда + ЭтотОбъект.Прочитать(); + КонецЕсли; УстановитьДоступность(РеквизитПутьКДанным); - ОбновитьПовторноИспользуемыеЗначения(); - - Возврат КонстантаИмя; + Возврат ИмяКонстанты; КонецФункции @@ -274,19 +265,15 @@ Возврат ""; КонецЕсли; - КонстантаИмя = ЧастиИмени[1]; - КонстантаМенеджер = Константы[КонстантаИмя]; - КонстантаЗначение = НаборКонстант[КонстантаИмя]; + ИмяКонстанты = ЧастиИмени[1]; + КонстантаМенеджер = Константы[ИмяКонстанты]; + КонстантаЗначение = НаборКонстант[ИмяКонстанты]; Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда КонстантаМенеджер.Установить(КонстантаЗначение); КонецЕсли; - Если (КонстантаИмя = "ИспользоватьПочтовыйКлиент" ИЛИ КонстантаИмя = "ИспользоватьБизнесПроцессыИЗадачи") И КонстантаЗначение = Ложь Тогда - ЭтотОбъект.Прочитать(); - КонецЕсли; - - Возврат КонстантаИмя; + Возврат ИмяКонстанты; КонецФункции diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Help/ru.html b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Help/ru.html index 50e9a6a4d..02a813aca 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Help/ru.html +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Help/ru.html @@ -4,16 +4,16 @@ TD { VERTICAL-ALIGN: top } - +

              В данной панели осуществляется настройка печатных форм, вариантов отчетов, рассылок отчетов, дополнительных отчетов и обработок. Доступны команды:

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

              См. также:

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

            См. также:

            \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Module.bsl index 5b0e24266..bfa1dfce2 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/ПечатныеФормыОтчетыИОбработки/Module.bsl @@ -17,9 +17,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; // Настройки видимости при запуске. Элементы.Расширения.Видимость = Не СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации(); @@ -63,25 +60,7 @@ &НаКлиенте Процедура ИспользоватьДополнительныеОтчетыИОбработкиПриИзменении(Элемент) - СтароеЗначение = НаборКонстант.ИспользоватьДополнительныеОтчетыИОбработки; - - Попытка - - Обработчик = Новый ОписаниеОповещения("ИспользоватьДополнительныеОтчетыИОбработкиПриИзмененииЗавершение", ЭтотОбъект, Элемент); - Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда - ЗапросыНаИспользованиеВнешнихРесурсов = ЗапросыНаИспользованиеВнешнихРесурсовДополнительныхОтчетовИОбработок(СтароеЗначение); - МодульРаботаВБезопасномРежимеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаВБезопасномРежимеКлиент"); - МодульРаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(ЗапросыНаИспользованиеВнешнихРесурсов, ЭтотОбъект, Обработчик); - Иначе - ВыполнитьОбработкуОповещения(Обработчик, КодВозвратаДиалога.ОК); - КонецЕсли; - - Исключение - - НаборКонстант.ИспользоватьДополнительныеОтчетыИОбработки = СтароеЗначение; - ВызватьИсключение; - - КонецПопытки; + НаборКонстант.ИспользоватьДополнительныеОтчетыИОбработки = Не НаборКонстант.ИспользоватьДополнительныеОтчетыИОбработки; КонецПроцедуры @@ -95,8 +74,7 @@ &НаКлиенте Процедура Подключаемый_ПриИзмененииРеквизита(Элемент, ОбновлятьИнтерфейс = Истина) - КонстантаИмя = ПриИзмененииРеквизитаСервер(Элемент.Имя); - + ИмяКонстанты = ПриИзмененииРеквизитаСервер(Элемент.Имя); ОбновитьПовторноИспользуемыеЗначения(); Если ОбновлятьИнтерфейс Тогда @@ -104,8 +82,8 @@ ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина); КонецЕсли; - Если КонстантаИмя <> "" Тогда - Оповестить("Запись_НаборКонстант", Новый Структура, КонстантаИмя); + Если ИмяКонстанты <> "" Тогда + Оповестить("Запись_НаборКонстант", Новый Структура, ИмяКонстанты); КонецЕсли; КонецПроцедуры @@ -127,14 +105,10 @@ Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента) РеквизитПутьКДанным = Элементы[ИмяЭлемента].ПутьКДанным; - - КонстантаИмя = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); - + ИмяКонстанты = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); УстановитьДоступность(РеквизитПутьКДанным); - ОбновитьПовторноИспользуемыеЗначения(); - - Возврат КонстантаИмя; + Возврат ИмяКонстанты; КонецФункции @@ -149,15 +123,15 @@ Возврат ""; КонецЕсли; - КонстантаИмя = ЧастиИмени[1]; - КонстантаМенеджер = Константы[КонстантаИмя]; - КонстантаЗначение = НаборКонстант[КонстантаИмя]; + ИмяКонстанты = ЧастиИмени[1]; + КонстантаМенеджер = Константы[ИмяКонстанты]; + КонстантаЗначение = НаборКонстант[ИмяКонстанты]; Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда КонстантаМенеджер.Установить(КонстантаЗначение); КонецЕсли; - Возврат КонстантаИмя; + Возврат ИмяКонстанты; КонецФункции @@ -171,24 +145,4 @@ КонецПроцедуры -&НаСервереБезКонтекста -Функция ЗапросыНаИспользованиеВнешнихРесурсовДополнительныхОтчетовИОбработок(Включение) - - МодульДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный = ОбщегоНазначения.ОбщийМодуль( - "ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный"); - Возврат МодульДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный.ЗапросыРазрешенийДополнительныхОбработок(Включение); - -КонецФункции - -&НаКлиенте -Процедура ИспользоватьДополнительныеОтчетыИОбработкиПриИзмененииЗавершение(Ответ, Элемент) Экспорт - - Если Ответ <> КодВозвратаДиалога.ОК Тогда - НаборКонстант.ИспользоватьДополнительныеОтчетыИОбработки = Не НаборКонстант.ИспользоватьДополнительныеОтчетыИОбработки; - Иначе - Подключаемый_ПриИзмененииРеквизита(Элемент); - КонецЕсли; - -КонецПроцедуры - #КонецОбласти diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Form.form index 2f83bf997..5630b15ef 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Form.form +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Form.form @@ -908,6 +908,71 @@ Auto + + ГруппаИнтерфейсOData + 2076 + + ОбработкаНастройкаСтандартногоИнтерфейсаODataНастройкаСтандартногоИнтерфейсаOData + 2078 + true + true + + true + + + ОбработкаНастройкаСтандартногоИнтерфейсаODataНастройкаСтандартногоИнтерфейсаODataРасширеннаяПодсказка + 2079 + + <key>ru</key> + <value>Настройки автоматического REST-сервиса для запроса и обновления данных.</value> + + Label + true + true + + Left + + + Hyperlink + DataProcessor.НастройкаСтандартногоИнтерфейсаOData.Command.НастройкиСтандартногоИнтерфейсаOData + Normal + Auto + true + true + UserCmds + ShowBottom + Auto + + true + true + + true + + + <key>ru</key> + <value>Интерфейс o data</value> + + + ГруппаИнтерфейсODataРасширеннаяПодсказка + 2077 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + ФормаКоманднаяПанель -1 diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Help/ru.html b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Help/ru.html index 00b11d256..e5acfaed2 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Help/ru.html +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

          Каталог временных файлов кластера серверов 1С:Предприятие

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

      Каталог временных файлов кластера серверов 1С:Предприятие

      • Путь к единому сетевому каталогу для общих временных файлов серверов 1С:Предприятие, работающих в одном кластере:
        • Под управлением ОС Windows - укажите путь к единому каталогу временных файлов всех серверов кластера, который будет использоваться для серверов, работающих под управлением ОС Windows. -
        • Под управлением ОС Linux - укажите путь к единому каталогу временных файлов всех серверов кластера, который будет использоваться для серверов, работающих под управлением ОС Linux.
      • Каталоги временных файлов можно не заполнять, когда в кластере 1С:Предприятия работает только один сервер или программа работает в файловом режиме. -
      • Если все сервера кластера работают под управлением операционных систем одного семейства (Windows/Linux), то второе поле заполнять не обязательно. -
      • Каталог должен быть доступен на чтение и запись для всех серверов кластера. В том числе - для всех пользователей операционных систем, от имени которых запускаются сервера 1С:Предприятия. -
      • UNC путь к каталогу должен быть одинаковым для всех серверов одного семейства - для этого каталог необходимо подключать к серверам под одним именем. -
      • В поле Каталог временных файлов Linux можно указать только локальный путь, например, /home/path. -
      • Для того чтобы использовать UNC путь, нужно сделать на него ссылку. Для этого под правами администратора (root) сделайте следующее: +
      • +
      • Под управлением ОС Linux - укажите путь к единому каталогу временных файлов всех серверов кластера, который будет использоваться для серверов, работающих под управлением ОС Linux.
      +
    • Каталоги временных файлов можно не заполнять, когда в кластере 1С:Предприятия работает только один сервер или программа работает в файловом режиме. +
    • +
    • Если все сервера кластера работают под управлением операционных систем одного семейства (Windows/Linux), то второе поле заполнять не обязательно. +
    • +
    • Каталог должен быть доступен на чтение и запись для всех серверов кластера. В том числе - для всех пользователей операционных систем, от имени которых запускаются сервера 1С:Предприятия. +
    • +
    • UNC путь к каталогу должен быть одинаковым для всех серверов одного семейства - для этого каталог необходимо подключать к серверам под одним именем. +
    • +
    • В поле Каталог временных файлов Linux можно указать только локальный путь, например, /home/path. +
    • +
    • Для того чтобы использовать UNC путь, нужно сделать на него ссылку. Для этого под правами администратора (root) сделайте следующее:
      • 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.
    • Подробнее об администрировании сервера 1С:Предприятия см. документацию к платформе 1С:Предприятие.

      + +
    • 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.
    • Подробнее об администрировании сервера 1С:Предприятия см. документацию к платформе 1С:Предприятие.

      См. также:

      \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Module.bsl index a47624a26..4ec4bd8e1 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Module.bsl +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Forms/СинхронизацияДанных/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - РазделениеВключено = ОбщегоНазначения.РазделениеВключено(); ПодсистемаСуществуетОбменДанными = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными"); @@ -189,8 +185,7 @@ &НаКлиенте Процедура Подключаемый_ПриИзмененииРеквизита(Элемент, ОбновлятьИнтерфейс = Истина) - КонстантаИмя = ПриИзмененииРеквизитаСервер(Элемент.Имя); - + ИмяКонстанты = ПриИзмененииРеквизитаСервер(Элемент.Имя); ОбновитьПовторноИспользуемыеЗначения(); Если ОбновлятьИнтерфейс Тогда @@ -198,8 +193,8 @@ ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина); КонецЕсли; - Если КонстантаИмя <> "" Тогда - Оповестить("Запись_НаборКонстант", Новый Структура, КонстантаИмя); + Если ИмяКонстанты <> "" Тогда + Оповестить("Запись_НаборКонстант", Новый Структура, ИмяКонстанты); КонецЕсли; КонецПроцедуры @@ -301,14 +296,10 @@ Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента) РеквизитПутьКДанным = Элементы[ИмяЭлемента].ПутьКДанным; - - КонстантаИмя = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); - + ИмяКонстанты = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); УстановитьДоступность(РеквизитПутьКДанным); - ОбновитьПовторноИспользуемыеЗначения(); - - Возврат КонстантаИмя; + Возврат ИмяКонстанты; КонецФункции @@ -323,15 +314,15 @@ Возврат ""; КонецЕсли; - КонстантаИмя = ЧастиИмени[1]; - КонстантаМенеджер = Константы[КонстантаИмя]; - КонстантаЗначение = НаборКонстант[КонстантаИмя]; + ИмяКонстанты = ЧастиИмени[1]; + КонстантаМенеджер = Константы[ИмяКонстанты]; + КонстантаЗначение = НаборКонстант[ИмяКонстанты]; Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда КонстантаМенеджер.Установить(КонстантаЗначение); КонецЕсли; - Возврат КонстантаИмя; + Возврат ИмяКонстанты; КонецФункции diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Help/ru.html b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Help/ru.html index f7cdc4427..59f1cd7f6 100644 --- a/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Help/ru.html +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСП/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

      diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Form.form b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Form.form new file mode 100644 index 000000000..6ad135549 --- /dev/null +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Form.form @@ -0,0 +1,1338 @@ + + + + ГруппаПрименитьНастройки + 2105 + + КакПрименитьНастройки + 2107 + + <key>ru</key> + <value>После изменения настроек необходимо <link ОбновитьИнтерфейс>переоткрыть все открытые окна</> или перезайти в программу.</value> + + true + true + + true + + + КакПрименитьНастройкиРасширеннаяПодсказка + 2109 + Label + true + true + + Left + + + + КакПрименитьНастройкиКонтекстноеМеню + 2108 + true + + true + Label + true + + + URLProcessing + КакПрименитьНастройкиОбработкаНавигационнойСсылки + + Left + + + true + true + + true + + + <key>ru</key> + <value>Применить настройки</value> + + + ГруппаПрименитьНастройкиРасширеннаяПодсказка + 2106 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + Группа + 2092 + + ОбщиеПараметрыДляВсехОбластейДанных + 2007 + + СинхронизацияДанныхГруппа + 2024 + + ГруппаСинхронизацияДанныхФлаг + 2035 + + ИспользоватьСинхронизациюДанных + 2029 + + <key>ru</key> + <value>Синхронизация данных</value> + + true + true + + true + + + НаборКонстант.ИспользоватьСинхронизациюДанных + + Right + + OnChange + ИспользоватьСинхронизациюДанныхПриИзменении + + + ИспользоватьСинхронизациюДанныхExtendedTooltip + 2056 + Label + true + true + + Left + + + + ИспользоватьСинхронизациюДанныхКонтекстноеМеню + 2030 + true + + CheckBoxField + Enter + true + Left + true + + + + ПояснениеСинхронизацияДанныхСПриложениямиВИнтернете1 + 2027 + + <key>ru</key> + <value>Синхронизация данных с другими программами 1С:Предприятие +и другими информационными системами.</value> + + true + true + + true + + + ПояснениеСинхронизацияДанныхСПриложениямиВИнтернете1ExtendedTooltip + 2057 + Label + true + true + + Left + + + + ПояснениеСинхронизацияДанныхСПриложениямиВИнтернете1КонтекстноеМеню + 2028 + true + + Label + true + + Style.ПоясняющийТекст + + + Left + + + true + true + + true + + + <key>ru</key> + <value>Синхронизация данных флаг</value> + + + ГруппаСинхронизацияДанныхФлагExtendedTooltip + 2055 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Синхронизация данных группа</value> + + + ru + Синхронизация данных с приложениями в сети Интернет + + + СинхронизацияДанныхГруппаExtendedTooltip + 2054 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + СинхронизацияДанныхПодчиненнаяГруппировка + 2031 + + Декорация2 + 2033 + true + true + + true + + + Декорация2ExtendedTooltip + 2059 + Label + true + true + + Left + + + + Декорация2КонтекстноеМеню + 2034 + true + + Label + true + true + + Left + + + + Группа1 + 2032 + + СинхронизацияДанныхСПриложениямиВИнтернете + 2019 + + ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете + 2016 + + <key>ru</key> + <value>Синхронизация данных с приложениями в сети Интернет</value> + + true + true + + true + + + НаборКонстант.ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете + + Right + + OnChange + ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернетеПриИзменении + + + ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернетеExtendedTooltip + 2062 + Label + true + true + + Left + + + + ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернетеКонтекстноеМеню + 2017 + true + + CheckBoxField + Enter + true + Left + true + + + + ПояснениеСинхронизацияДанныхСПриложениямиВИнтернете + 2022 + + <key>ru</key> + <value>Синхронизация данных между приложениями абонентов.</value> + + true + true + + true + + + ПояснениеСинхронизацияДанныхСПриложениямиВИнтернетеExtendedTooltip + 2063 + Label + true + true + + Left + + + + ПояснениеСинхронизацияДанныхСПриложениямиВИнтернетеКонтекстноеМеню + 2023 + true + + Label + true + true + + Style.ПоясняющийТекст + + + Left + + + true + true + + true + + + <key>ru</key> + <value>Синхронизация данных с приложениями в сети Интернет</value> + + + СинхронизацияДанныхСПриложениямиВИнтернетеExtendedTooltip + 2061 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + СинхронизацияДанныхСПрограммамиВЛокальномРежиме + 2018 + + ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой + 2014 + + <key>ru</key> + <value>Синхронизация данных с программами в локальном режиме</value> + + true + true + + true + + + НаборКонстант.ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой + + Right + + OnChange + ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммойПриИзменении + + + ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммойExtendedTooltip + 2065 + Label + true + true + + Left + + + + ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммойКонтекстноеМеню + 2015 + true + + CheckBoxField + Enter + true + Left + true + + + + ПояснениеСинхронизацияДанныхСПрограммамиВЛокальномРежиме + 2020 + + <key>ru</key> + <value>Синхронизация данных между приложениями абонентов и программами в локальном режиме.</value> + + true + true + + true + + + ПояснениеСинхронизацияДанныхСПрограммамиВЛокальномРежимеExtendedTooltip + 2066 + Label + true + true + + Left + + + + ПояснениеСинхронизацияДанныхСПрограммамиВЛокальномРежимеКонтекстноеМеню + 2021 + true + + Label + true + + Style.ПоясняющийТекст + + + Left + + + true + true + + true + + + <key>ru</key> + <value>Синхронизация данных с программами в локальном режиме</value> + + + СинхронизацияДанныхСПрограммамиВЛокальномРежимеExtendedTooltip + 2064 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + АвтономнаяРабота + 2013 + + ИспользоватьАвтономнуюРаботуВМоделиСервиса + 2009 + + <key>ru</key> + <value>Автономная работа</value> + + true + true + + true + + + НаборКонстант.ИспользоватьАвтономнуюРаботуВМоделиСервиса + + Right + + OnChange + ИспользоватьАвтономнуюРаботуВМоделиСервисаПриИзменении + + + ИспользоватьАвтономнуюРаботуВМоделиСервисаExtendedTooltip + 2068 + Label + true + true + + Left + + + + ИспользоватьАвтономнуюРаботуВМоделиСервисаКонтекстноеМеню + 2010 + true + + CheckBoxField + Enter + true + Left + true + + + + ПояснениеАвтономнаяРабота + 2011 + + <key>ru</key> + <value>Автономная работа с приложением в условиях отсутствия связи с Интернетом.</value> + + true + true + + true + + + ПояснениеАвтономнаяРаботаExtendedTooltip + 2069 + Label + true + true + + Left + + + + ПояснениеАвтономнаяРаботаКонтекстноеМеню + 2012 + true + + Label + true + + Style.ПоясняющийТекст + + + Left + + + true + true + + true + + + <key>ru</key> + <value>Автономная работа</value> + + + АвтономнаяРаботаExtendedTooltip + 2067 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + Группа1ExtendedTooltip + 2060 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Синхронизация данных подчиненная группировка</value> + + + СинхронизацияДанныхПодчиненнаяГруппировкаExtendedTooltip + 2058 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Общие параметры для всех областей данных</value> + + + System.DefaultGUIFont + 11.0 + true + false + false + false + + 43 + + ОбщиеПараметрыДляВсехОбластейДанныхExtendedTooltip + 2053 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ГруппаСинхронизацияДанныхМониторСинхронизацииДанных + 2036 + + МониторСинхронизацииДанных + 2037 + true + true + + true + + + МониторСинхронизацииДанныхExtendedTooltip + 2071 + Label + true + true + + Left + + + Hyperlink + Form.Command.МониторСинхронизацииДанных + Normal + Auto + true + true + UserCmds + Auto + + + ПояснениеМониторСинхронизацииДанных + 2040 + + <key>ru</key> + <value>Монитор синхронизации данных приложений абонентов.</value> + + true + true + + true + + + ПояснениеМониторСинхронизацииДанныхExtendedTooltip + 2072 + Label + true + true + + Left + + + + ПояснениеМониторСинхронизацииДанныхКонтекстноеМеню + 2041 + true + + Label + true + + Style.ПоясняющийТекст + + + Left + + + + НастройкиТранспортаОбменаГруппа + 2049 + + НастройкиТранспортаОбмена + 2042 + true + true + + true + + + НастройкиТранспортаОбменаExtendedTooltip + 2074 + Label + true + true + + Left + + + Hyperlink + Form.Command.НастройкиТранспортаОбмена + Normal + Auto + true + UserCmds + Auto + + + ПояснениеНастройкиТранспортаОбмена + 2045 + + <key>ru</key> + <value>Настройки подключения конечных точек.</value> + + true + true + + true + + + ПояснениеНастройкиТранспортаОбменаExtendedTooltip + 2075 + Label + true + true + + Left + + + + ПояснениеНастройкиТранспортаОбменаКонтекстноеМеню + 2046 + true + + Label + true + + Style.ПоясняющийТекст + + + Left + + + + НастройкиТранспортаОбменаОбластейДанных + 2043 + true + true + + true + + + НастройкиТранспортаОбменаОбластейДанныхExtendedTooltip + 2076 + Label + true + true + + Left + + + Hyperlink + Form.Command.НастройкиТранспортаОбменаОбластейДанных + Normal + Auto + true + true + UserCmds + Auto + + + ПояснениеНастройкиТранспортаОбменаОбластейДанных + 2047 + + <key>ru</key> + <value>Настройки подключения общие для всех областей данных.</value> + + true + true + + true + + + ПояснениеНастройкиТранспортаОбменаОбластейДанныхExtendedTooltip + 2077 + Label + true + true + + Left + + + + ПояснениеНастройкиТранспортаОбменаОбластейДанныхКонтекстноеМеню + 2048 + true + + Label + true + + Style.ПоясняющийТекст + + + Left + + + true + true + + true + + + <key>ru</key> + <value>Настройки транспорта обмена</value> + + + НастройкиТранспортаОбменаГруппаExtendedTooltip + 2073 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ПравилаДляОбменаДанными + 2050 + true + true + + true + + + ПравилаДляОбменаДаннымиExtendedTooltip + 2078 + Label + true + true + + Left + + + Hyperlink + Form.Command.ПравилаДляОбменаДанными + Normal + Auto + true + true + UserCmds + Auto + + + ПояснениеПравилаДляОбменаДанными + 2051 + + <key>ru</key> + <value>Правила конвертации и правила регистрации объектов.</value> + + true + true + + true + + + ПояснениеПравилаДляОбменаДаннымиExtendedTooltip + 2079 + Label + true + true + + Left + + + + ПояснениеПравилаДляОбменаДаннымиКонтекстноеМеню + 2052 + true + + Label + true + + Style.ПоясняющийТекст + + + Left + + + true + true + + true + + + <key>ru</key> + <value>Синхронизация данных монитор синхронизации данных</value> + + 43 + + ГруппаСинхронизацияДанныхМониторСинхронизацииДанныхExtendedTooltip + 2070 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Группа</value> + + + ГруппаРасширеннаяПодсказка + 2093 + Label + true + true + + Left + + + UsualGroup + + Auto + NormalSeparation + true + true + Auto + Auto + + + + ГруппаВременныеКаталогиКластераСерверов + 2094 + + КаталогСообщенийОбменаДаннымиДляWindows + 2096 + + <key>ru</key> + <value>Под управлением ОС Windows</value> + + true + true + + true + + + НаборКонстант.КаталогСообщенийОбменаДаннымиДляWindows + + + OnChange + КаталогСообщенийОбменаДаннымиДляWindowsПриИзменении + + + КаталогСообщенийОбменаДаннымиДляWindowsРасширеннаяПодсказка + 2098 + Label + true + true + + Left + + + + КаталогСообщенийОбменаДаннымиДляWindowsКонтекстноеМеню + 2097 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + + + КаталогСообщенийОбменаДаннымиДляLinux + 2099 + + <key>ru</key> + <value>Под управлением ОС Linux</value> + + true + true + + true + + + НаборКонстант.КаталогСообщенийОбменаДаннымиДляLinux + + + OnChange + КаталогСообщенийОбменаДаннымиДляLinuxПриИзменении + + + КаталогСообщенийОбменаДаннымиДляLinuxРасширеннаяПодсказка + 2101 + Label + true + true + + Left + + + + КаталогСообщенийОбменаДаннымиДляLinuxКонтекстноеМеню + 2100 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + Normal + + true + + + + + ПояснениеВременныеКаталоги + 2102 + + <key>ru</key> + <value>Путь к единому сетевому каталогу для общих временных файлов серверов 1С:Предприятие, работающих в одном кластере.</value> + + true + true + + true + + + ПояснениеВременныеКаталогиExtendedTooltip + 2104 + Label + true + true + + Left + + + + ПояснениеВременныеКаталогиКонтекстноеМеню + 2103 + true + + Label + true + + Style.ПоясняющийТекст + + + Left + + + true + true + + true + + + <key>ru</key> + <value>Каталог временных файлов кластера серверов 1С:Предприятие:</value> + + 86 + false + + ГруппаВременныеКаталогиКластераСерверовExtendedTooltip + 2095 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + auto + Auto + Auto + + + None + false + + ФормаКоманднаяПанель + -1 + Left + + + OnCreateAtServer + ПриСозданииНаСервере + + + OnClose + ПриЗакрытии + + Abort + Cancel + Ignore + No + OK + RestoreValues + Retry + SaveValues + Write + WriteAndClose + Yes + DontBlock + true + true + true + Vertical + true + true + UseIfNecessary + auto + true + + НаборКонстант + + <key>ru</key> + <value>Набор констант</value> + + 1 + + ConstantsSet + + + true + + + true + + + НаборКонстант.ИспользоватьСинхронизациюДанных + +
      true
      +
      + + МониторСинхронизацииДанных + + <key>ru</key> + <value>Монитор синхронизации данных</value> + + 2 + + true + + + + МониторСинхронизацииДанных + + + DontUse + Auto + + + НастройкиТранспортаОбмена + + <key>ru</key> + <value>Настройки подключения</value> + + 1 + + true + + + + НастройкиТранспортаОбмена + + + DontUse + Auto + + + НастройкиТранспортаОбменаОбластейДанных + + <key>ru</key> + <value>Настройки подключения для областей данных</value> + + 3 + + true + + + + НастройкиТранспортаОбменаОбластейДанных + + + DontUse + Auto + + + ПравилаДляОбменаДанными + + <key>ru</key> + <value>Правила для обмена данными</value> + + 4 + + ru + Правила для обмена данными + + + true + + + + ПравилаДляОбменаДанными + + + DontUse + Auto + + + + + + +
      diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Help/ru.html b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Help/ru.html new file mode 100644 index 000000000..5cb37bb55 --- /dev/null +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Help/ru.html @@ -0,0 +1,22 @@ + +

      В данной панели осуществляется настройка синхронизации данных для информационной базы.

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

      Каталоги временных файлов можно не заполнять, когда в кластере 1С:Предприятия работает только один сервер или программа работает в файловом режиме.
      Если все сервера кластера работают под управлением операционных систем одного семейства (Windows/Linux), то второе поле заполнять не обязательно.

      +

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

      +

      В поле Каталог временных файлов Linux можно указать только локальный путь, например /home/path.

      +

      Чтобы использовать UNC путь, нужно сделать на него ссылку. Для этого под правами администратора (root) сделайте следующее:

      +

      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

      +

      Подробнее об администрировании сервера 1С:Предприятия см. документацию к платформе 1С:Предприятие

       

      \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Module.bsl b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Module.bsl new file mode 100644 index 000000000..b89dcebd2 --- /dev/null +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/Forms/СинхронизацияДанныхДляАдминистратораСервиса/Module.bsl @@ -0,0 +1,230 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОписаниеПеременных + +&НаКлиенте +Перем ОбновитьИнтерфейс; + +#КонецОбласти + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Не Пользователи.ЭтоПолноправныйПользователь(Неопределено, Истина, Ложь) Тогда + ВызватьИсключение НСтр("ru = 'Недостаточно прав для администрирования синхронизации данных между приложениями.'"); + КонецЕсли; + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + ВызватьИсключение НСтр("ru = 'Не поддерживается функциональность администрирования синхронизации данных в модели сервиса.'"); + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + // Настройки видимости при запуске. + Элементы.ГруппаПрименитьНастройки.Видимость = ОбщегоНазначения.ЭтоВебКлиент(); + Элементы.АвтономнаяРабота.Видимость = АвтономнаяРаботаСлужебный.АвтономнаяРаботаПоддерживается(); + Элементы.ГруппаВременныеКаталогиКластераСерверов.Видимость = (Не ОбщегоНазначения.ИнформационнаяБазаФайловая()) + И Пользователи.ЭтоПолноправныйПользователь(, Истина); + + // Обновление состояния элементов. + УстановитьДоступность(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриЗакрытии(ЗавершениеРаботы) + + Если ЗавершениеРаботы Тогда + Возврат; + КонецЕсли; + + #Если Не ВебКлиент Тогда + ОбновитьИнтерфейсПрограммы(); + #КонецЕсли + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура КакПрименитьНастройкиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + СтандартнаяОбработка = Ложь; + ОбновитьИнтерфейс = Истина; + ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 0.1, Истина); +КонецПроцедуры + +&НаКлиенте +Процедура КаталогСообщенийОбменаДаннымиДляWindowsПриИзменении(Элемент) + Подключаемый_ПриИзмененииРеквизита(Элемент); +КонецПроцедуры + +&НаКлиенте +Процедура КаталогСообщенийОбменаДаннымиДляLinuxПриИзменении(Элемент) + Подключаемый_ПриИзмененииРеквизита(Элемент); +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура МониторСинхронизацииДанных(Команда) + + ОткрытьФорму("ОбщаяФорма.МониторСинхронизацииДанныхВМоделиСервиса",, ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура НастройкиТранспортаОбмена(Команда) + + ИмяРегистраНастроекТранспорта = "НастройкиТранспортаОбменаСообщениями"; + ИмяФормыНастроекТранспорта = "РегистрСведений.[ИмяРегистраНастроекТранспорта].ФормаСписка"; + ИмяФормыНастроекТранспорта = СтрЗаменить(ИмяФормыНастроекТранспорта, + "[ИмяРегистраНастроекТранспорта]", ИмяРегистраНастроекТранспорта); + + ОткрытьФорму(ИмяФормыНастроекТранспорта, , ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура НастройкиТранспортаОбменаОбластейДанных(Команда) + + ОткрытьФорму("РегистрСведений.НастройкиТранспортаОбменаОбластейДанных.ФормаСписка",, ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура ПравилаДляОбменаДанными(Команда) + + ОткрытьФорму("РегистрСведений.ПравилаДляОбменаДанными.ФормаСписка",, ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура ИспользоватьСинхронизациюДанныхПриИзменении(Элемент) + + Если НаборКонстант.ИспользоватьСинхронизациюДанных = Ложь Тогда + НаборКонстант.ИспользоватьАвтономнуюРаботуВМоделиСервиса = Ложь; + НаборКонстант.ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой = Ложь; + НаборКонстант.ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете = Ложь; + КонецЕсли; + + Подключаемый_ПриИзмененииРеквизита(Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура ИспользоватьАвтономнуюРаботуВМоделиСервисаПриИзменении(Элемент) + + Подключаемый_ПриИзмененииРеквизита(Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернетеПриИзменении(Элемент) + + Подключаемый_ПриИзмененииРеквизита(Элемент); + +КонецПроцедуры + +&НаКлиенте +Процедура ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммойПриИзменении(Элемент) + + Подключаемый_ПриИзмененииРеквизита(Элемент); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +//////////////////////////////////////////////////////////////////////////////// +// Клиент + +&НаКлиенте +Процедура Подключаемый_ПриИзмененииРеквизита(Элемент, НеобходимоОбновлятьИнтерфейс = Истина) + + ИмяКонстанты = ПриИзмененииРеквизитаСервер(Элемент.Имя); + ОбновитьПовторноИспользуемыеЗначения(); + + Если НеобходимоОбновлятьИнтерфейс Тогда + ОбновитьИнтерфейс = Истина; + ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина); + КонецЕсли; + + Если ИмяКонстанты <> "" Тогда + Оповестить("Запись_НаборКонстант", Новый Структура, ИмяКонстанты); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьИнтерфейсПрограммы() + + Если ОбновитьИнтерфейс = Истина Тогда + ОбновитьИнтерфейс = Ложь; + ОбщегоНазначенияКлиент.ОбновитьИнтерфейсПрограммы(); + КонецЕсли; + +КонецПроцедуры + +//////////////////////////////////////////////////////////////////////////////// +// Вызов сервера + +&НаСервере +Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента) + + РеквизитПутьКДанным = Элементы[ИмяЭлемента].ПутьКДанным; + ИмяКонстанты = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); + УстановитьДоступность(РеквизитПутьКДанным); + ОбновитьПовторноИспользуемыеЗначения(); + Возврат ИмяКонстанты; + +КонецФункции + +//////////////////////////////////////////////////////////////////////////////// +// Сервер + +&НаСервере +Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным) + + ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, "."); + Если ЧастиИмени.Количество() <> 2 Тогда + Возврат ""; + КонецЕсли; + + ИмяКонстанты = ЧастиИмени[1]; + КонстантаМенеджер = Константы[ИмяКонстанты]; + КонстантаЗначение = НаборКонстант[ИмяКонстанты]; + + Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда + КонстантаМенеджер.Установить(КонстантаЗначение); + КонецЕсли; + + Возврат ИмяКонстанты; + +КонецФункции + +&НаСервере +Процедура УстановитьДоступность(РеквизитПутьКДанным = "") + + Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьСинхронизациюДанных" ИЛИ РеквизитПутьКДанным = "" Тогда + Элементы.СинхронизацияДанныхПодчиненнаяГруппировка.Доступность = НаборКонстант.ИспользоватьСинхронизациюДанных; + Элементы.ГруппаСинхронизацияДанныхМониторСинхронизацииДанных.Доступность = НаборКонстант.ИспользоватьСинхронизациюДанных; + Элементы.ГруппаВременныеКаталогиКластераСерверов.Доступность = НаборКонстант.ИспользоватьСинхронизациюДанных; + КонецЕсли; + +КонецПроцедуры + + +#КонецОбласти diff --git a/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/ПанельАдминистрированияБСПВМоделиСервиса.mdo b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/ПанельАдминистрированияБСПВМоделиСервиса.mdo new file mode 100644 index 000000000..f7cfece29 --- /dev/null +++ b/SSL/src/DataProcessors/ПанельАдминистрированияБСПВМоделиСервиса/ПанельАдминистрированияБСПВМоделиСервиса.mdo @@ -0,0 +1,27 @@ + + + + + + + ПанельАдминистрированияБСПВМоделиСервиса + + ru + Панель администрирования БСП в модели сервиса + + true + + СинхронизацияДанныхДляАдминистратораСервиса + + ru + Синхронизация данных + + + + ru + + + PersonalComputer + MobileDevice + + diff --git a/SSL/src/DataProcessors/ПереносФайловВТома/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ПереносФайловВТома/Forms/Форма/Module.bsl index c702c585a..d885ba622 100644 --- a/SSL/src/DataProcessors/ПереносФайловВТома/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ПереносФайловВТома/Forms/Форма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЧислоВерсийВБазе = ЧислоВерсийВБазе(); ТипХраненияВТомах = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске; diff --git a/SSL/src/DataProcessors/ПереносФайловВТома/Forms/ФормаОтчета/Module.bsl b/SSL/src/DataProcessors/ПереносФайловВТома/Forms/ФормаОтчета/Module.bsl index 8d984f5f0..bc1c96f5b 100644 --- a/SSL/src/DataProcessors/ПереносФайловВТома/Forms/ФормаОтчета/Module.bsl +++ b/SSL/src/DataProcessors/ПереносФайловВТома/Forms/ФормаОтчета/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Пояснение = Параметры.Пояснение; ТабДок = Новый ТабличныйДокумент; diff --git a/SSL/src/DataProcessors/ПереносФайловВТома/Help/ru.html b/SSL/src/DataProcessors/ПереносФайловВТома/Help/ru.html index f9f7cedb3..b912ab4a4 100644 --- a/SSL/src/DataProcessors/ПереносФайловВТома/Help/ru.html +++ b/SSL/src/DataProcessors/ПереносФайловВТома/Help/ru.html @@ -1,4 +1,4 @@ - +

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

      Для успешного переноса файлов необходимо:

      • В настройках программы в разделе Администрирование - Настройки работы с файлами включить флажок Хранить файлы в томах на диске. diff --git a/SSL/src/DataProcessors/ПереносФайловВТома/Templates/МакетОтчета/Template.mxlx b/SSL/src/DataProcessors/ПереносФайловВТома/Templates/МакетОтчета/Template.mxlx index cec9b025c..c1fc22159 100644 --- a/SSL/src/DataProcessors/ПереносФайловВТома/Templates/МакетОтчета/Template.mxlx +++ b/SSL/src/DataProcessors/ПереносФайловВТома/Templates/МакетОтчета/Template.mxlx @@ -34,6 +34,12 @@ + + 0 + + true + + 1 diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/Форма/Help/ru.html b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/Форма/Help/ru.html index 7a2268823..e7269ca5b 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/Форма/Help/ru.html +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/Форма/Help/ru.html @@ -1,4 +1,4 @@ - +

        Предназначена для подключения обсуждений.

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

        Для участия в обсуждениях необходимо подключиться к серверу 1С:Диалог.

        diff --git a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/Форма/Module.bsl index 5796baf36..cee23a6bb 100644 --- a/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ПодключениеОбсуждений/Forms/Форма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Не ПравоДоступа("РегистрацияИнформационнойБазыСистемыВзаимодействия", Метаданные) Тогда Отказ = Истина; Возврат; diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ОбластьПоискаДублей/Module.bsl b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ОбластьПоискаДублей/Module.bsl index f52e54adf..c4120abbf 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ОбластьПоискаДублей/Module.bsl +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ОбластьПоискаДублей/Module.bsl @@ -21,10 +21,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Параметры.Свойство("ОбластьПоискаДублей", ОбластьПоУмолчанию); Параметры.Свойство("АдресНастроек", АдресНастроек); diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl index 00e9ab589..134ef1f2e 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПоискДублей/Module.bsl @@ -11,9 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УстановитьЦветаИУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; FuzzySearch = ОбщегоНазначения.ПодключитьКомпонентуИзМакета("FuzzyStringMatchExtension", "ОбщийМакет.КомпонентаПоискаСтрок"); Если FuzzySearch <> Неопределено Тогда diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаОтбора/Help/ru.html b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаОтбора/Help/ru.html index 91ccdd59c..31f1721c8 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаОтбора/Help/ru.html +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаОтбора/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

        Ввод условий отбора

        diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаОтбора/Module.bsl b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаОтбора/Module.bsl index 3c4f49554..dbbdfe921 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаОтбора/Module.bsl +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаОтбора/Module.bsl @@ -26,10 +26,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ИдентификаторОсновнойФормы = Параметры.ИдентификаторОсновнойФормы; КомпоновщикПредварительногоОтбора = Новый КомпоновщикНастроекКомпоновкиДанных; diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаПоиска/Module.bsl b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаПоиска/Module.bsl index 1c30178d4..c056fab87 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаПоиска/Module.bsl +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Forms/ПравилаПоиска/Module.bsl @@ -34,10 +34,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Параметры.Свойство("ОписаниеПрикладныхПравил", ОписаниеПрикладныхПравил); ОбластьПоискаДублей = Параметры.ОбластьПоискаДублей; diff --git a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Help/ru.html b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Help/ru.html index f2b4e1def..e1be9d197 100644 --- a/SSL/src/DataProcessors/ПоискИУдалениеДублей/Help/ru.html +++ b/SSL/src/DataProcessors/ПоискИУдалениеДублей/Help/ru.html @@ -1,30 +1,48 @@ - +

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

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

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

        Команду Поиск и удаление дублей можно найти в разделе Администрирование - Обслуживание - Корректировка данных.

        Поиск дублей

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

        Список дублей

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

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

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

      • Если все перечисленные в информационной строке списка условия устраивают, нажмите Удалить дубли. Дубли будут помечены на удаление, все их вхождения в документах заменяются на выбранный Оригинал. -
      • Для выхода без удаления нажмите Закрыть. Условия поиска и список дублей не сохраняются. -
      • Окончательно удалить дубли можно по команде Удаление помеченных объектов раздела Администрирование - Обслуживание.

      Просмотр ссылок на элементы списка дублей

      + +
    • Для выхода без удаления нажмите Закрыть. Условия поиска и список дублей не сохраняются. +
    • +
    • Окончательно удалить дубли можно по команде Удаление помеченных объектов раздела Администрирование - Обслуживание.
    • Просмотр ссылок на элементы списка дублей

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

      См. также:

      \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ВыборОбластиПоиска/Help/ru.html b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ВыборОбластиПоиска/Help/ru.html index 2737c8271..5ad24c67a 100644 --- a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ВыборОбластиПоиска/Help/ru.html +++ b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ВыборОбластиПоиска/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

      diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ВыборОбластиПоиска/Module.bsl b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ВыборОбластиПоиска/Module.bsl index 6973c2805..8d981a595 100644 --- a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ВыборОбластиПоиска/Module.bsl +++ b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/ВыборОбластиПоиска/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - КонтейнерСостояний = Новый Структура; КонтейнерСостояний.Вставить("ОбластиПоиска", Новый СписокЗначений); // Идентификаторы объектов метаданных. КонтейнерСостояний.Вставить("ТекущийРаздел", ""); diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УпрощеннаяФорма/Form.form b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/Поиск/Form.form similarity index 100% rename from SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УпрощеннаяФорма/Form.form rename to SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/Поиск/Form.form diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УпрощеннаяФорма/Module.bsl b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/Поиск/Module.bsl similarity index 93% rename from SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УпрощеннаяФорма/Module.bsl rename to SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/Поиск/Module.bsl index 0bcbd0519..11bbba164 100644 --- a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УпрощеннаяФорма/Module.bsl +++ b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/Поиск/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОбновитьИсториюПоиска(Элементы.СтрокаПоиска); КонецПроцедуры diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Form.form b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Form.form index b82f6fbdc..9050b53fa 100644 --- a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Form.form +++ b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Form.form @@ -666,13 +666,6 @@ ru Полнотекстовый поиск - - System.DefaultGUIFont - true - false - false - false - ru Группа управление автоматическим извлечением текстов diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Help/ru.html b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Help/ru.html index cf636a154..d6915b6ea 100644 --- a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Help/ru.html +++ b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Help/ru.html @@ -4,18 +4,17 @@ TD { VERTICAL-ALIGN: top } - +

      Предназначена для включения и отключения полнотекстового поиска, обновления индекса полнотекстового поиска, а также настройки извлечения текстов из файлов для использования при поиске.

      Открывается по ссылке Настроить раздела Администрирование - Общие настройки - Поиск данных.

      -

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

      +

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

      Также полнотекстовый поиск предоставляет такие возможности как: поддержка транслитерации (написание русских слов символами латиницы в соответствии с ГОСТ); поддержка замещения (написание части символов в русских словах одноклавишными латинскими символами); нечеткий поиск (буквы в найденных словах могут отличаться).

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

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

      Временное отключение полнотекстового поиска

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

      Размер индексируемых данных

      -
      • С помощью соответствующего флажка можно Ограничить максимальный размер индексируемых данных. По умолчанию ограничение равно 1 Мб. Это может быть востребовано, если ресурсы компьютера, на котором установлена программа, ограничены.
      -

      Обновление индекса полнотекстового поиска

      +
      • С помощью соответствующего флажка можно Ограничить максимальный размер индексируемых данных. По умолчанию ограничение равно 1 Мб. Это может быть востребовано, если ресурсы компьютера, на котором установлена программа, ограничены.

      Обновление индекса полнотекстового поиска

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

      Очистка индекса полнотекстового поиска

      @@ -26,7 +25,7 @@ TD {

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

      Для настройки необходимо с помощью переключателя выбрать:

        -
      • В кластере серверов настроено выполнение на сервере под управлением ОС Windows - в этом случае становится доступной команда Настроить расписание, с помощью которой можнонастроить регламентное задание. Укажите расписание и другие параметры регламентного задания по извлечению текстов из файлов.

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

      • Данный вариант подходит, когда в Администрировании серверов 1С Предприятия задано следующее правило для сервера под управлением ОС Microsoft Windows:
        • Объект требования: Клиентское соединение с ИБ.
        • Тип требования: Назначать.
        • Имя ИБ: не указывается. diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Module.bsl b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Module.bsl index 621620024..ad20f79ca 100644 --- a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Module.bsl +++ b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Forms/УправлениеПолнотекстовымПоискомИИзвлечениемТекстов/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ИспользоватьПолнотекстовыйПоиск = ПолнотекстовыйПоискСервер.ЗначениеФлажкаИспользоватьПоиск(); Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") @@ -182,8 +178,8 @@ ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина); КонецЕсли; - Если Результат.КонстантаИмя <> "" Тогда - Оповестить("Запись_НаборКонстант", Новый Структура, Результат.КонстантаИмя); + Если Результат.ИмяКонстанты <> "" Тогда + Оповестить("Запись_НаборКонстант", Новый Структура, Результат.ИмяКонстанты); КонецЕсли; КонецПроцедуры @@ -261,17 +257,12 @@ Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента) РеквизитПутьКДанным = Элементы[ИмяЭлемента].ПутьКДанным; - Результат = СохранитьЗначениеРеквизита(РеквизитПутьКДанным); - УстановитьДоступность(РеквизитПутьКДанным); - Если Результат.Свойство("НеУдалосьУстановитьРежимПолнотекстовогоПоиска") Тогда Возврат Результат; КонецЕсли; - ОбновитьПовторноИспользуемыеЗначения(); - Возврат Результат; КонецФункции @@ -295,7 +286,7 @@ &НаСервере Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным) - Результат = Новый Структура("КонстантаИмя", ""); + Результат = Новый Структура("ИмяКонстанты", ""); // Сохранение значений реквизитов, не связанных с константами напрямую (в отношении один-к-одному). Если РеквизитПутьКДанным = "" Тогда @@ -305,7 +296,7 @@ ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, "."); Если ЧастиИмени.Количество() <> 2 Тогда Если РеквизитПутьКДанным = "ИзвлекатьТекстыФайловНаСервере" Тогда - КонстантаИмя = "ИзвлекатьТекстыФайловНаСервере"; + ИмяКонстанты = "ИзвлекатьТекстыФайловНаСервере"; НаборКонстант.ИзвлекатьТекстыФайловНаСервере = ИзвлекатьТекстыФайловНаСервере; Изменения = Новый Структура("Использование", НаборКонстант.ИзвлекатьТекстыФайловНаСервере); РегламентныеЗаданияСохранить("ИзвлечениеТекста", Изменения, Ложь); @@ -334,24 +325,23 @@ Возврат Результат; КонецПопытки; КонецЕсли; - Иначе - КонстантаИмя = ЧастиИмени[1]; + Иначе + ИмяКонстанты = ЧастиИмени[1]; КонецЕсли; - Если ПустаяСтрока(КонстантаИмя) Тогда + Если ПустаяСтрока(ИмяКонстанты) Тогда Возврат Результат; - КонецЕсли; - - КонстантаМенеджер = Константы[КонстантаИмя]; - КонстантаЗначение = НаборКонстант[КонстантаИмя]; + КонецЕсли; + + КонстантаМенеджер = Константы[ИмяКонстанты]; + КонстантаЗначение = НаборКонстант[ИмяКонстанты]; Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда КонстантаМенеджер.Установить(КонстантаЗначение); КонецЕсли; - Результат.КонстантаИмя = КонстантаИмя; - Возврат КонстантаИмя; - + Результат.ИмяКонстанты = ИмяКонстанты; + Возврат Результат; КонецФункции &НаСервере diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Help/ru.html b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Help/ru.html index 489971188..9dbed7238 100644 --- a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Help/ru.html +++ b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

          Полнотекстовый поиск предоставляет такие возможности как:

          diff --git a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/ПолнотекстовыйПоискВДанных.mdo b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/ПолнотекстовыйПоискВДанных.mdo index b9c5a45f9..a00d7fe11 100644 --- a/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/ПолнотекстовыйПоискВДанных.mdo +++ b/SSL/src/DataProcessors/ПолнотекстовыйПоискВДанных/ПолнотекстовыйПоискВДанных.mdo @@ -9,7 +9,7 @@ ru Полнотекстовый поиск - DataProcessor.ПолнотекстовыйПоискВДанных.Form.УпрощеннаяФорма + DataProcessor.ПолнотекстовыйПоискВДанных.Form.Поиск true @@ -17,7 +17,7 @@ - УпрощеннаяФорма + Поиск ru Поиск diff --git a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/ВыгрузкаДанныхДляСопоставления/Module.bsl b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/ВыгрузкаДанныхДляСопоставления/Module.bsl index 4d6025c8a..2efc10bb6 100644 --- a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/ВыгрузкаДанныхДляСопоставления/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Forms/ВыгрузкаДанныхДляСопоставления/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ПроверитьВозможностьИспользованияФормы(Отказ); Если Отказ Тогда diff --git a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Help/ru.html b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Help/ru.html index 0b08a5cc9..f11c28eb4 100644 --- a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Help/ru.html +++ b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДанными/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

          Открыть помощник можно, нажав кнопку  Запустить синхронизацию в списке Синхронизация данных.

          diff --git a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса/ManagerModule.bsl b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса/ManagerModule.bsl new file mode 100644 index 000000000..b344c842f --- /dev/null +++ b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса/ManagerModule.bsl @@ -0,0 +1,682 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныйПрограммныйИнтерфейс + +#Область ВыгрузкаДанныхДляСопоставления + +Процедура ПриНачалеВыгрузкиДанныхДляСопоставления(НастройкиВыгрузки, ПараметрыОбработчика, ПродолжитьОжидание) Экспорт + + КлючФоновогоЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Выгрузка данных для сопоставления (%1)'"), + НастройкиВыгрузки.Корреспондент); + + Если ЕстьАктивныеФоновыеЗадания(КлючФоновогоЗадания) Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Выгрузка данных для сопоставления для ""%1"" уже выполняется.'"), + НастройкиВыгрузки.Корреспондент); + КонецЕсли; + + ПараметрыПроцедуры = Новый Структура; + ПараметрыПроцедуры.Вставить("НастройкиВыгрузки", НастройкиВыгрузки); + + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Новый УникальныйИдентификатор); + ПараметрыВыполнения.НаименованиеФоновогоЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Выгрузка данных для сопоставления (%1).'"), + НастройкиВыгрузки.Корреспондент); + ПараметрыВыполнения.КлючФоновогоЗадания = КлючФоновогоЗадания; + ПараметрыВыполнения.ЗапуститьНеВФоне = Ложь; + ПараметрыВыполнения.ЗапуститьВФоне = Истина; + + ФоновоеЗадание = ДлительныеОперации.ВыполнитьВФоне( + "Обработки.ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса.ВыгрузитьДанныеДляСопоставления", + ПараметрыПроцедуры, + ПараметрыВыполнения); + + ПриНачалеДлительнойОперации(ФоновоеЗадание, ПараметрыОбработчика, ПродолжитьОжидание); + + Если Не ПродолжитьОжидание + И Не ПараметрыОбработчика.Отказ Тогда + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("ФоновоеЗаданиеВыполнено"); + ПродолжитьОжидание = Истина; + КонецЕсли; + + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("НастройкиВыгрузки", НастройкиВыгрузки); + +КонецПроцедуры + +Процедура ПриОжиданииВыгрузкиДанныхДляСопоставления(ПараметрыОбработчика, ПродолжитьОжидание) Экспорт + + Если ПараметрыОбработчика.ДополнительныеПараметры.Свойство("ОжиданиеСессииПомещенияДанныхДляСопоставления") Тогда + + ПриОжиданииСессииОбменаСообщениямиСистемы( + ПараметрыОбработчика.ДополнительныеПараметры.ПараметрыОбработчикаСессии, ПродолжитьОжидание); + + Иначе + ЗаданиеВыполнено = Ложь; + + Если ПараметрыОбработчика.ДополнительныеПараметры.Свойство("ФоновоеЗаданиеВыполнено") Тогда + ЗаданиеВыполнено = Истина; + Иначе + ПриОжиданииДлительнойОперации(ПараметрыОбработчика, ПродолжитьОжидание); + + ЗаданиеВыполнено = Не ПродолжитьОжидание И Не ПараметрыОбработчика.Отказ; + КонецЕсли; + + Если ЗаданиеВыполнено Тогда + + Результат = ПолучитьИзВременногоХранилища(ПараметрыОбработчика.АдресРезультата); + + Если Результат.ДанныеВыгружены Тогда + + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("ОжиданиеСессииПомещенияДанныхДляСопоставления"); + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("ПараметрыОбработчикаСессии"); + + ПриНачалеПомещенияДанныхДляСопоставления(ПараметрыОбработчика.ДополнительныеПараметры.НастройкиВыгрузки, + ПараметрыОбработчика.ДополнительныеПараметры.ПараметрыОбработчикаСессии, ПродолжитьОжидание); + Иначе + + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.СообщениеОбОшибке = Результат.СообщениеОбОшибке; + ПродолжитьОжидание = Ложь; + + КонецЕсли; + + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +Процедура ПриЗавершенииВыгрузкиДанныхДляСопоставления(ПараметрыОбработчика, СтатусЗавершения) Экспорт + + ИнициализироватьСтатусЗавершенияДлительнойОперации(СтатусЗавершения); + + Если ПараметрыОбработчика.Отказ Тогда + ЗаполнитьЗначенияСвойств(СтатусЗавершения, ПараметрыОбработчика, "Отказ, СообщениеОбОшибке"); + Иначе + ПараметрыОбработчикаСессии = ПараметрыОбработчика.ДополнительныеПараметры.ПараметрыОбработчикаСессии; + + Результат = Новый Структура; + Результат.Вставить("ДанныеВыгружены", Истина); + Результат.Вставить("СообщениеОбОшибке", ""); + + Если ПараметрыОбработчикаСессии.Отказ Тогда + Результат.ДанныеВыгружены = Ложь; + Результат.СообщениеОбОшибке = ПараметрыОбработчикаСессии.СообщениеОбОшибке; + КонецЕсли; + + СтатусЗавершения.Результат = Результат; + + КонецЕсли; + + ПараметрыОбработчика = Неопределено; + +КонецПроцедуры + +#КонецОбласти + +#Область ВыгрузкаЗагрузкаДанных + +Процедура ПриНачалеВыгрузкиДанных(НастройкиВыгрузки, ПараметрыОбработчика, ПродолжитьОжидание) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + ИнициализироватьПараметрыОбработчикаДлительнойОперации(ПараметрыОбработчика, Неопределено); + + УстановитьПривилегированныйРежим(Истина); + + НачатьТранзакцию(); + Попытка + Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиУправлениеИнтерфейс.СообщениеПолучитьПараметрыУчетаКорреспондента()); + + Сообщение.Body.ExchangePlan = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(НастройкиВыгрузки.Корреспондент); + Сообщение.Body.CorrespondentCode = ОбменДаннымиСервер.ИдентификаторЭтогоУзлаДляОбмена(НастройкиВыгрузки.Корреспондент); + + Сообщение.Body.CorrespondentZone = НастройкиВыгрузки.ОбластьДанныхКорреспондента; + + ДополнительныеСвойства = Новый Структура; + ДополнительныеСвойства.Вставить("Интерфейс", "3.0.1.1"); + + Сообщение.AdditionalInfo = СериализаторXDTO.ЗаписатьXDTO(ДополнительныеСвойства); + + ПараметрыОбработчика.ИдентификаторОперации = ОбменДаннымиВМоделиСервиса.ОтправитьСообщение(Сообщение); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + Информация = ИнформацияОбОшибке(); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииМониторСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(Информация)); + + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.СообщениеОбОшибке = КраткоеПредставлениеОшибки(Информация); + ПараметрыОбработчика.ИдентификаторОперации = Неопределено; + КонецПопытки; + + Если Не ПараметрыОбработчика.Отказ Тогда + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("НастройкиВыгрузки", + Новый ХранилищеЗначения(НастройкиВыгрузки, Новый СжатиеДанных)); + ПродолжитьОжидание = Истина; + Иначе + ПродолжитьОжидание = Ложь; + КонецЕсли; + +КонецПроцедуры + +Процедура ПриОжиданииВыгрузкиДанных(ПараметрыОбработчика, ПродолжитьОжидание) Экспорт + + Если ПараметрыОбработчика.ДополнительныеПараметры.Свойство("ОжиданиеСессииВыгрузкиЗагрузкиДанных") Тогда + + ПриОжиданииСессииОбменаСообщениямиСистемы( + ПараметрыОбработчика.ДополнительныеПараметры.ПараметрыОбработчикаСессии, ПродолжитьОжидание); + + ИначеЕсли ПараметрыОбработчика.ДополнительныеПараметры.Свойство("ОжиданиеДлительнойОперацииВыгрузкиЗагрузкиДанных") Тогда + + ПараметрыОбработчикаДлительнойОперации = ПараметрыОбработчика.ДополнительныеПараметры.ПараметрыОбработчикаДлительнойОперации; + + ЗаданиеВыполнено = Ложь; + + Если ПараметрыОбработчика.ДополнительныеПараметры.Свойство("ФоновоеЗаданиеВыполнено") Тогда + ЗаданиеВыполнено = Истина; + Иначе + ПриОжиданииДлительнойОперации(ПараметрыОбработчикаДлительнойОперации, ПродолжитьОжидание); + + ЗаданиеВыполнено = Не ПродолжитьОжидание И Не ПараметрыОбработчикаДлительнойОперации.Отказ; + КонецЕсли; + + Если ЗаданиеВыполнено Тогда + + Результат = ПолучитьИзВременногоХранилища(ПараметрыОбработчикаДлительнойОперации.АдресРезультата); + + Если Результат.Свойство("ПараметрыОбработчикаСессии") Тогда + + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("ОжиданиеСессииВыгрузкиЗагрузкиДанных"); + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("ПараметрыОбработчикаСессии", Результат.ПараметрыОбработчикаСессии); + + ПродолжитьОжидание = Истина; + + Иначе + + ПродолжитьОжидание = Ложь; + + КонецЕсли; + + КонецЕсли; + + Иначе + + ПриОжиданииСессииОбменаСообщениямиСистемы(ПараметрыОбработчика, ПродолжитьОжидание); + + Если Не ПродолжитьОжидание + И Не ПараметрыОбработчика.Отказ Тогда + + НастройкиВыгрузкиХранилище = Неопределено; + ПараметрыОбработчика.ДополнительныеПараметры.Свойство("НастройкиВыгрузки", НастройкиВыгрузкиХранилище); + НастройкиВыгрузки = НастройкиВыгрузкиХранилище.Получить(); + + ПараметрыКорреспондента = РегистрыСведений.СессииОбменаСообщениямиСистемы.ПолучитьДанныеСессии( + ПараметрыОбработчика.ИдентификаторОперации).Получить(); + + ПараметрыИнформационнойБазы = Неопределено; + Если ПараметрыКорреспондента.Свойство("ПараметрыИнформационнойБазы", ПараметрыИнформационнойБазы) Тогда + Если ПараметрыИнформационнойБазы.УзелСуществует Тогда + Если ПараметрыИнформационнойБазы.Свойство("НастройкаСинхронизацииДанныхЗавершена") + И Не ПараметрыИнформационнойБазы.НастройкаСинхронизацииДанныхЗавершена Тогда + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Перед запуском обмена данными необходимо завершить настройку синхронизации в программе ""%1"".'"), + ОбщегоНазначения.ЗначениеРеквизитаОбъекта(НастройкиВыгрузки.Корреспондент, "Наименование")); + ПродолжитьОжидание = Ложь; + Возврат; + КонецЕсли; + + Если ПараметрыИнформационнойБазы.Свойство("ПолученоСообщениеДляСопоставленияДанных") + И ПараметрыИнформационнойБазы.ПолученоСообщениеДляСопоставленияДанных Тогда + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Перед запуском обмена данными необходимо завершить сопоставление данных в программе ""%1"".'"), + ОбщегоНазначения.ЗначениеРеквизитаОбъекта(НастройкиВыгрузки.Корреспондент, "Наименование")); + ПродолжитьОжидание = Ложь; + Возврат; + КонецЕсли; + КонецЕсли; + КонецЕсли; + + КлючФоновогоЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обмен данными (%1)'"), + НастройкиВыгрузки.Корреспондент); + + Если ЕстьАктивныеФоновыеЗадания(КлючФоновогоЗадания) Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обмен данными с ""%1"" уже выполняется.'"), + НастройкиВыгрузки.Корреспондент); + КонецЕсли; + + ПараметрыПроцедуры = Новый Структура; + ПараметрыПроцедуры.Вставить("НастройкиВыгрузки", НастройкиВыгрузки); + + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Новый УникальныйИдентификатор); + ПараметрыВыполнения.НаименованиеФоновогоЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Обмен данными (%1).'"), + НастройкиВыгрузки.Корреспондент); + ПараметрыВыполнения.КлючФоновогоЗадания = КлючФоновогоЗадания; + ПараметрыВыполнения.ЗапуститьНеВФоне = Ложь; + ПараметрыВыполнения.ЗапуститьВФоне = Истина; + + ФоновоеЗадание = ДлительныеОперации.ВыполнитьВФоне( + "Обработки.ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса.ВыгрузитьЗагрузитьДанныеПоТребованию", + ПараметрыПроцедуры, + ПараметрыВыполнения); + + ПараметрыОбработчикаДлительнойОперации = Неопределено; + ПриНачалеДлительнойОперации(ФоновоеЗадание, ПараметрыОбработчикаДлительнойОперации, ПродолжитьОжидание); + + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("ОжиданиеДлительнойОперацииВыгрузкиЗагрузкиДанных"); + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("ПараметрыОбработчикаДлительнойОперации", ПараметрыОбработчикаДлительнойОперации); + + Если Не ПродолжитьОжидание + И Не ПараметрыОбработчика.Отказ Тогда + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("ФоновоеЗаданиеВыполнено"); + ПродолжитьОжидание = Истина; + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +Процедура ПриЗавершенииВыгрузкиДанных(ПараметрыОбработчика, СтатусЗавершения) Экспорт + + ИнициализироватьСтатусЗавершенияДлительнойОперации(СтатусЗавершения); + + Если ПараметрыОбработчика.Отказ Тогда + ЗаполнитьЗначенияСвойств(СтатусЗавершения, ПараметрыОбработчика, "Отказ, СообщениеОбОшибке"); + Иначе + ПараметрыОбработчикаСессии = ПараметрыОбработчика.ДополнительныеПараметры.ПараметрыОбработчикаСессии; + + Результат = Новый Структура; + Результат.Вставить("ДанныеВыгружены", Истина); + Результат.Вставить("СообщениеОбОшибке", ""); + + Если ПараметрыОбработчикаСессии.Отказ Тогда + Результат.ДанныеВыгружены = Ложь; + Результат.СообщениеОбОшибке = ПараметрыОбработчикаСессии.СообщениеОбОшибке; + КонецЕсли; + + СтатусЗавершения.Результат = Результат; + + КонецЕсли; + + ПараметрыОбработчика = Неопределено; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область СессииОбменаСообщениями + +Процедура ПриОжиданииСессииОбменаСообщениямиСистемы(ПараметрыОбработчика, ПродолжитьОжидание) + + СтатусСессии = ""; + Попытка + СтатусСессии = СтатусСессии(ПараметрыОбработчика.ИдентификаторОперации); + Исключение + СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииМониторСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); + + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.СообщениеОбОшибке = СообщениеОбОшибке; + ПараметрыОбработчика.ИдентификаторОперации = Неопределено; + + ПродолжитьОжидание = Ложь; + Возврат; + КонецПопытки; + + Если СтатусСессии = "Успешно" Тогда + + ПродолжитьОжидание = Ложь; + + ИначеЕсли СтатусСессии = "Ошибка" Тогда + + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.ИдентификаторОперации = Неопределено; + ПродолжитьОжидание = Ложь; + + Иначе + + ПродолжитьОжидание = Истина; + + КонецЕсли; + +КонецПроцедуры + +Функция СтатусСессии(Знач Сессия) + + УстановитьПривилегированныйРежим(Истина); + + Возврат РегистрыСведений.СессииОбменаСообщениямиСистемы.СтатусСессии(Сессия); + +КонецФункции + +#КонецОбласти + +#Область РаботаСДлительнымиОперациями + +// Для внутреннего использования. +// +Процедура ПриНачалеДлительнойОперации(ФоновоеЗадание, ПараметрыОбработчика, ПродолжитьОжидание = Истина) + + ИнициализироватьПараметрыОбработчикаДлительнойОперации(ПараметрыОбработчика, ФоновоеЗадание); + + Если ФоновоеЗадание.Статус = "Выполняется" Тогда + ПараметрыОбработчика.АдресРезультата = ФоновоеЗадание.АдресРезультата; + ПараметрыОбработчика.ИдентификаторОперации = ФоновоеЗадание.ИдентификаторЗадания; + ПараметрыОбработчика.ДлительнаяОперация = Истина; + + ПродолжитьОжидание = Истина; + Возврат; + ИначеЕсли ФоновоеЗадание.Статус = "Выполнено" Тогда + ПараметрыОбработчика.АдресРезультата = ФоновоеЗадание.АдресРезультата; + ПараметрыОбработчика.ДлительнаяОперация = Ложь; + + ПродолжитьОжидание = Ложь; + Возврат; + Иначе + ПараметрыОбработчика.СообщениеОбОшибке = ФоновоеЗадание.КраткоеПредставлениеОшибки; + Если ЗначениеЗаполнено(ФоновоеЗадание.ПодробноеПредставлениеОшибки) Тогда + ПараметрыОбработчика.СообщениеОбОшибке = ФоновоеЗадание.ПодробноеПредставлениеОшибки; + КонецЕсли; + + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.ДлительнаяОперация = Ложь; + + ПродолжитьОжидание = Ложь; + Возврат; + КонецЕсли; + +КонецПроцедуры + +// Для внутреннего использования. +// +Процедура ПриОжиданииДлительнойОперации(ПараметрыОбработчика, ПродолжитьОжидание = Истина) + + Если ПараметрыОбработчика.Отказ + Или Не ПараметрыОбработчика.ДлительнаяОперация Тогда + ПродолжитьОжидание = Ложь; + Возврат; + КонецЕсли; + + ЗаданиеВыполнено = Ложь; + Попытка + ЗаданиеВыполнено = ДлительныеОперации.ЗаданиеВыполнено(ПараметрыОбработчика.ИдентификаторОперации); + Исключение + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), + УровеньЖурналаРегистрации.Ошибка, , , ПараметрыОбработчика.СообщениеОбОшибке); + КонецПопытки; + + Если ПараметрыОбработчика.Отказ Тогда + ПродолжитьОжидание = Ложь; + Возврат; + КонецЕсли; + + ПродолжитьОжидание = Не ЗаданиеВыполнено; + +КонецПроцедуры + +Процедура ИнициализироватьПараметрыОбработчикаДлительнойОперации(ПараметрыОбработчика, ФоновоеЗадание) + + ПараметрыОбработчика = Новый Структура; + ПараметрыОбработчика.Вставить("ФоновоеЗадание", ФоновоеЗадание); + ПараметрыОбработчика.Вставить("Отказ", Ложь); + ПараметрыОбработчика.Вставить("СообщениеОбОшибке", ""); + ПараметрыОбработчика.Вставить("ДлительнаяОперация", Ложь); + ПараметрыОбработчика.Вставить("ИдентификаторОперации", Неопределено); + ПараметрыОбработчика.Вставить("АдресРезультата", Неопределено); + ПараметрыОбработчика.Вставить("ДополнительныеПараметры", Новый Структура); + +КонецПроцедуры + +Функция ЕстьАктивныеФоновыеЗадания(КлючФоновогоЗадания) + + Отбор = Новый Структура; + Отбор.Вставить("Ключ", КлючФоновогоЗадания); + Отбор.Вставить("Состояние", СостояниеФоновогоЗадания.Активно); + + АктивныеФоновыеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); + + Возврат (АктивныеФоновыеЗадания.Количество() > 0); + +КонецФункции + +Процедура ИнициализироватьСтатусЗавершенияДлительнойОперации(СтатусЗавершения) + + СтатусЗавершения = Новый Структура; + СтатусЗавершения.Вставить("Отказ", Ложь); + СтатусЗавершения.Вставить("СообщениеОбОшибке", ""); + СтатусЗавершения.Вставить("Результат", Неопределено); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиФоновыхЗаданий + +Процедура ВыгрузитьДанныеДляСопоставления(Параметры, АдресРезультата) Экспорт + + НастройкиВыгрузки = Неопределено; + Параметры.Свойство("НастройкиВыгрузки", НастройкиВыгрузки); + + Результат = Новый Структура; + Результат.Вставить("ДанныеВыгружены", Истина); + Результат.Вставить("СообщениеОбОшибке", ""); + + Отказ = Ложь; + Попытка + ОбменДаннымиВМоделиСервиса.ВыполнитьВыгрузкуДанных(Отказ, НастройкиВыгрузки.Корреспондент); + Исключение + Результат.ДанныеВыгружены = Ложь; + Результат.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , Результат.СообщениеОбОшибке); + КонецПопытки; + + Результат.ДанныеВыгружены = Результат.ДанныеВыгружены И Не Отказ; + + Если Не Результат.ДанныеВыгружены + И ПустаяСтрока(Результат.СообщениеОбОшибке) Тогда + Результат.СообщениеОбОшибке = НСтр("ru = 'При выполнении выгрузки данных для сопоставления возникли ошибки (см. Журнал регистрации).'"); + КонецЕсли; + + ПоместитьВоВременноеХранилище(Результат, АдресРезультата); + +КонецПроцедуры + +Процедура ВыгрузитьЗагрузитьДанныеПоТребованию(Параметры, АдресРезультата) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + НастройкиВыгрузки = Неопределено; + Параметры.Свойство("НастройкиВыгрузки", НастройкиВыгрузки); + + ПараметрыОбработчикаСессии = Неопределено; + ИнициализироватьПараметрыОбработчикаДлительнойОперации(ПараметрыОбработчикаСессии, Неопределено); + + УстановитьПривилегированныйРежим(Истина); + + НачатьТранзакцию(); + Попытка + Если НастройкиВыгрузки.Свойство("ДополнениеВыгрузки") Тогда + ЗарегистрироватьДанныеДополненияВыгрузки(НастройкиВыгрузки.ДополнениеВыгрузки); + КонецЕсли; + + Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс.СообщениеПротолкнутьСинхронизациюДвухПриложений()); + + Сообщение.Body.CorrespondentZone = НастройкиВыгрузки.ОбластьДанныхКорреспондента; + + ПараметрыОбработчикаСессии.ИдентификаторОперации = ОбменДаннымиВМоделиСервиса.ОтправитьСообщение(Сообщение); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + ПараметрыОбработчикаСессии.Отказ = Истина; + ПараметрыОбработчикаСессии.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , ПараметрыОбработчикаСессии.СообщениеОбОшибке); + КонецПопытки; + + Если Не ПараметрыОбработчикаСессии.Отказ Тогда + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + КонецЕсли; + + Результат = Новый Структура; + Результат.Вставить("ПараметрыОбработчикаСессии", ПараметрыОбработчикаСессии); + + ПоместитьВоВременноеХранилище(Результат, АдресРезультата); + +КонецПроцедуры + +#КонецОбласти + +// Регистрирует дополнительные данные по настройкам +// +// Параметры: +// ОбработкаВыгрузки - Структура, ОбработкаОбъект.ИнтерактивноеИзменениеВыгрузки - инициализированный объект. +// +Процедура ЗарегистрироватьДанныеДополненияВыгрузки(Знач ОбработкаВыгрузки) + + Если ТипЗнч(ОбработкаВыгрузки) = Тип("Структура") Тогда + Обработка = Обработки.ИнтерактивноеИзменениеВыгрузки.Создать(); + ЗаполнитьЗначенияСвойств(Обработка, ОбработкаВыгрузки, , "ДополнительнаяРегистрация, ДополнительнаяРегистрацияСценарияУзла"); + + Обработка.КомпоновщикОтбораВсехДокументов.ЗагрузитьНастройки(ОбработкаВыгрузки.КомпоновщикОтбораВсехДокументовНастройки); + + ОбменДаннымиСервер.ЗаполнитьТаблицуЗначений(Обработка.ДополнительнаяРегистрация, ОбработкаВыгрузки.ДополнительнаяРегистрация); + ОбменДаннымиСервер.ЗаполнитьТаблицуЗначений(Обработка.ДополнительнаяРегистрацияСценарияУзла, ОбработкаВыгрузки.ДополнительнаяРегистрацияСценарияУзла); + Иначе + Обработка = ОбработкаВыгрузки; + КонецЕсли; + + Если Обработка.ВариантВыгрузки <= 0 Тогда + // Не добавлять + Возврат; + + ИначеЕсли Обработка.ВариантВыгрузки = 1 Тогда + // За период с отбором, очищаем дополнительную + Обработка.ДополнительнаяРегистрация.Очистить(); + + ИначеЕсли Обработка.ВариантВыгрузки = 2 Тогда + // Детально настроено, очищаем общее + Обработка.КомпоновщикОтбораВсехДокументов = Неопределено; + Обработка.ПериодОтбораВсехДокументов = Неопределено; + + КонецЕсли; + + Обработка.ЗарегистрироватьДополнительныеИзменения(); + +КонецПроцедуры + +Процедура ПриНачалеПомещенияДанныхДляСопоставления(НастройкиВыгрузки, ПараметрыОбработчика, ПродолжитьОжидание) + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + ИнициализироватьПараметрыОбработчикаДлительнойОперации(ПараметрыОбработчика, Неопределено); + + УстановитьПривилегированныйРежим(Истина); + + ИмяПланаОбмена = ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(НастройкиВыгрузки.Корреспондент); + + Если ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(ИмяПланаОбмена) Тогда + ПсевдонимПредопределенногоУзла = ОбменДаннымиСервер.ПсевдонимПредопределенногоУзла(НастройкиВыгрузки.Корреспондент); + + Если ЗначениеЗаполнено(ПсевдонимПредопределенногоУзла) Тогда + // Требуется корректировка кода узла отправителя. + КодЭтогоПриложения = СокрЛП(ПсевдонимПредопределенногоУзла); + Иначе + КодЭтогоПриложения = ОбменДаннымиСервер.ИдентификаторЭтогоУзлаДляОбмена(НастройкиВыгрузки.Корреспондент); + КонецЕсли; + Иначе + КодЭтогоПриложения = ОбменДаннымиПовтИсп.ПолучитьКодЭтогоУзлаДляПланаОбмена(ИмяПланаОбмена); + КонецЕсли; + + НачатьТранзакцию(); + Попытка + // Отправляем сообщение корреспонденту. + Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиУправлениеИнтерфейс.СообщениеЗагрузитьСообщениеОбмена()); + + Сообщение.Body.CorrespondentZone = НастройкиВыгрузки.ОбластьДанныхКорреспондента; + Сообщение.Body.ExchangePlan = ИмяПланаОбмена; + Сообщение.Body.CorrespondentCode = КодЭтогоПриложения; + + Сообщение.Body.MessageForDataMatching = Истина; + + ДополнительныеСвойства = Новый Структура; + ДополнительныеСвойства.Вставить("Интерфейс", "3.0.1.1"); + ДополнительныеСвойства.Вставить("СообщениеДляСопоставленияДанных", Истина); + + Сообщение.AdditionalInfo = СериализаторXDTO.ЗаписатьXDTO(ДополнительныеСвойства); + + ПараметрыОбработчика.ИдентификаторОперации = ОбменДаннымиВМоделиСервиса.ОтправитьСообщение(Сообщение); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + Информация = ИнформацияОбОшибке(); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(Информация)); + + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.СообщениеОбОшибке = КраткоеПредставлениеОшибки(Информация); + ПараметрыОбработчика.ИдентификаторОперации = Неопределено; + + ПродолжитьОжидание = Ложь; + Возврат; + КонецПопытки; + + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + ПродолжитьОжидание = Истина; + +КонецПроцедуры + +#КонецОбласти + +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса/ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса.mdo b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса/ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса.mdo new file mode 100644 index 000000000..ff6a920b7 --- /dev/null +++ b/SSL/src/DataProcessors/ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса/ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса.mdo @@ -0,0 +1,25 @@ + + + + + + + ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса + + ru + Помощник интерактивного обмена данными в модели сервиса + + true + + УзелИнформационнойБазы + + ru + Узел информационной базы + + + ExchangePlanRef + + + + + diff --git a/SSL/src/DataProcessors/ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете/ManagerModule.bsl b/SSL/src/DataProcessors/ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете/ManagerModule.bsl new file mode 100644 index 000000000..0801447cd --- /dev/null +++ b/SSL/src/DataProcessors/ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете/ManagerModule.bsl @@ -0,0 +1,1171 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныйПрограммныйИнтерфейс + +// Для внутреннего использования +// +Процедура НастроитьОбменШаг1_3_0_1_1(Параметры, АдресВременногоХранилища) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + ИмяПланаОбменаСообщениями = "ОбменСообщениями"; + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + МенеджерПланаОбменСообщениями = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени("ПланОбмена." + + ИмяПланаОбменаСообщениями); + + НастройкиПодключения = Неопределено; + Параметры.Свойство("НастройкиПодключения", НастройкиПодключения); + + ПараметрыОбработчикаСессии = Неопределено; + ИнициализироватьПараметрыОбработчикаДлительнойОперации(ПараметрыОбработчикаСессии, Неопределено); + + УстановитьПривилегированныйРежим(Истина); + + НачатьТранзакцию(); + Попытка + // Создаем настройку обмена в этой базе. + ОбменДаннымиВМоделиСервиса.СоздатьНастройкуОбмена_3_0_1_1(НастройкиПодключения); + + // Отправляем сообщение корреспонденту. + Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиУправлениеИнтерфейс.СообщениеНастроитьОбменШаг1()); + + Сообщение.Body.CorrespondentZone = НастройкиПодключения.ОбластьДанныхКорреспондента; + + Сообщение.Body.ExchangePlan = НастройкиПодключения.ИмяПланаОбмена; + Сообщение.Body.CorrespondentCode = НастройкиПодключения.ИдентификаторИнформационнойБазыИсточника; + Сообщение.Body.CorrespondentName = НастройкиПодключения.Наименование; + + Сообщение.Body.Code = НастройкиПодключения.ИдентификаторИнформационнойБазыПриемника; + Сообщение.Body.EndPoint = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(МенеджерПланаОбменСообщениями.ЭтотУзел(), "Код"); + + Если ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(НастройкиПодключения.ИмяПланаОбмена) Тогда + ВерсииФормата = ОбщегоНазначения.ВыгрузитьКолонку( + ОбменДаннымиСервер.ЗначениеНастройкиПланаОбмена(НастройкиПодключения.ИмяПланаОбмена, "ВерсииФорматаОбмена"), "Ключ", Истина); + + ОбъектыФормата = ОбменДаннымиXDTOСервер.ПоддерживаемыеОбъектыФормата( + НастройкиПодключения.ИмяПланаОбмена, "ОтправкаПолучение", НастройкиПодключения.Корреспондент); + + НастройкиXDTOКорреспондента = Новый Структура; + НастройкиXDTOКорреспондента.Вставить("ПоддерживаемыеВерсии", ВерсииФормата); + НастройкиXDTOКорреспондента.Вставить("ПоддерживаемыеОбъекты", + Новый ХранилищеЗначения(ОбъектыФормата, Новый СжатиеДанных(9))); + + Сообщение.Body.XDTOSettings = СериализаторXDTO.ЗаписатьXDTO(НастройкиXDTOКорреспондента); + КонецЕсли; + + ДополнительныеСвойства = Новый Структура; + ДополнительныеСвойства.Вставить("Интерфейс", "3.0.1.1"); + ДополнительныеСвойства.Вставить("Префикс", НастройкиПодключения.ПрефиксКорреспондента); + ДополнительныеСвойства.Вставить("ПрефиксКорреспондента", НастройкиПодключения.Префикс); + ДополнительныеСвойства.Вставить("ИдентификаторНастройки", НастройкиПодключения.ИдентификаторНастройки); + + Сообщение.AdditionalInfo = СериализаторXDTO.ЗаписатьXDTO(ДополнительныеСвойства); + + ПараметрыОбработчикаСессии.ИдентификаторОперации = ОбменДаннымиВМоделиСервиса.ОтправитьСообщение(Сообщение); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + ПараметрыОбработчикаСессии.Отказ = Истина; + ПараметрыОбработчикаСессии.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , ПараметрыОбработчикаСессии.СообщениеОбОшибке); + КонецПопытки; + + Если Не ПараметрыОбработчикаСессии.Отказ Тогда + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + + ПараметрыОбработчикаСессии.ДлительнаяОперация = Истина; + ПараметрыОбработчикаСессии.ДополнительныеПараметры.Вставить( + "Корреспондент", НастройкиПодключения.Корреспондент); + КонецЕсли; + + Результат = Новый Структура; + Результат.Вставить("Корреспондент", НастройкиПодключения.Корреспондент); + Результат.Вставить("ПараметрыОбработчикаСессии", ПараметрыОбработчикаСессии); + + ПоместитьВоВременноеХранилище(Результат, АдресВременногоХранилища); + +КонецПроцедуры + +#Область СписокПриложений + +// Для внутреннего использования. +// +Процедура ПриНачалеПолученияСпискаПриложений(Настройки, ПараметрыОбработчика, ПродолжитьОжидание = Истина) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + ИнициализироватьПараметрыОбработчикаДлительнойОперации(ПараметрыОбработчика, Неопределено); + + УстановитьПривилегированныйРежим(Истина); + + НачатьТранзакцию(); + Попытка + // Отправляем сообщение в МС. + Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс.СообщениеПолучитьНастройкиСинхронизацииДанных()); + + ПараметрыОбработчика.ИдентификаторОперации = ОбменДаннымиВМоделиСервиса.ОтправитьСообщение(Сообщение); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииМониторСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); + + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.СообщениеОбОшибке = СообщениеОбОшибке; + ПараметрыОбработчика.ИдентификаторОперации = Неопределено; + + ПродолжитьОжидание = Ложь; + КонецПопытки; + + Если Не ПараметрыОбработчика.Отказ Тогда + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + + Для Каждого ЭлементНастройки Из Настройки Цикл + ПараметрыОбработчика.ДополнительныеПараметры.Вставить(ЭлементНастройки.Ключ, ЭлементНастройки.Значение); + КонецЦикла; + + ПродолжитьОжидание = Истина; + КонецЕсли; + +КонецПроцедуры + +// Для внутреннего использования. +// +Процедура ПриОжиданииПолученияСпискаПриложений(ПараметрыОбработчика, ПродолжитьОжидание = Истина) Экспорт + + Если ПараметрыОбработчика.ДополнительныеПараметры.Свойство("ОжиданиеСессииПолучениеПараметровКорреспондента") Тогда + + ПродолжитьОжидание = Ложь; + + ОбластиДляОпределенияКодовУзлов = ПараметрыОбработчика.ДополнительныеПараметры.ОбластиДляОпределенияКодовУзлов.Получить(); + + Для Каждого Область Из ОбластиДляОпределенияКодовУзлов Цикл + + Для Каждого СтрокаКодыУзлов Из Область.КодыУзлов Цикл + + Если СтрокаКодыУзлов.ПродолжитьОжидание Тогда + ПриОжиданииСессииОбменаСообщениямиСистемы(СтрокаКодыУзлов.ПараметрыОбработчика, СтрокаКодыУзлов.ПродолжитьОжидание); + КонецЕсли; + + Если Не СтрокаКодыУзлов.ПродолжитьОжидание + И Не ЗначениеЗаполнено(СтрокаКодыУзлов.КодПредопределенногоУзла) + И Не СтрокаКодыУзлов.ПараметрыОбработчика.Отказ Тогда + + ПараметрыКорреспондента = РегистрыСведений.СессииОбменаСообщениямиСистемы.ПолучитьДанныеСессии( + СтрокаКодыУзлов.ПараметрыОбработчика.ИдентификаторОперации).Получить(); + + Если ПараметрыКорреспондента.Свойство("ПараметрыИнформационнойБазы") Тогда + Если ПараметрыКорреспондента.ПараметрыИнформационнойБазы.УзелСуществует Тогда + СтрокаКодыУзлов.КодПредопределенногоУзла = ПараметрыКорреспондента.ПараметрыИнформационнойБазы.КодЭтогоУзла; + КонецЕсли; + КонецЕсли; + + КонецЕсли; + + ПродолжитьОжидание = ПродолжитьОжидание Или СтрокаКодыУзлов.ПродолжитьОжидание; + + КонецЦикла; + + КонецЦикла; + + ПараметрыОбработчика.ДополнительныеПараметры.ОбластиДляОпределенияКодовУзлов = + Новый ХранилищеЗначения(ОбластиДляОпределенияКодовУзлов, Новый СжатиеДанных(9)); + + Иначе + ПриОжиданииСессииОбменаСообщениямиСистемы(ПараметрыОбработчика, ПродолжитьОжидание); + + Если Не ПродолжитьОжидание + И Не ПараметрыОбработчика.Отказ Тогда + + НастройкиСинхронизацииИзМенеджераСервиса = Неопределено; + + УстановитьПривилегированныйРежим(Истина); + Попытка + НастройкиСинхронизацииИзМенеджераСервиса = РегистрыСведений.СессииОбменаСообщениямиСистемы.ПолучитьДанныеСессии( + ПараметрыОбработчика.ИдентификаторОперации).Получить(); + Исключение + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ПараметрыОбработчика.ИдентификаторОперации = Неопределено; + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииМониторСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , ПараметрыОбработчика.СообщениеОбОшибке); + + Возврат; + КонецПопытки; + + УдалитьЛишниеСтрокиНастроекСинхронизации(НастройкиСинхронизацииИзМенеджераСервиса, ПараметрыОбработчика.ДополнительныеПараметры); + + ЕстьКодПредопределенногоУзла = НастройкиСинхронизацииИзМенеджераСервиса.Колонки.Найти("КодПредопределенногоУзла") <> Неопределено; + Если Не ЕстьКодПредопределенногоУзла Тогда + НастройкиСинхронизацииИзМенеджераСервиса.Колонки.Добавить("КодПредопределенногоУзла", Новый ОписаниеТипов("Строка")); + КонецЕсли; + + СтрокиНастройкиСинхронизацииXDTO = НастройкиСинхронизацииИзМенеджераСервиса.НайтиСтроки( + Новый Структура("ЭтоПланОбменаXDTO, СинхронизацияНастроена", Истина, Истина)); + + ОбластиДляОпределенияКодовУзлов = Новый ТаблицаЗначений; + ОбластиДляОпределенияКодовУзлов.Колонки.Добавить("ОбластьДанных", Новый ОписаниеТипов("Число")); + ОбластиДляОпределенияКодовУзлов.Колонки.Добавить("ПланОбмена", Новый ОписаниеТипов("Строка")); + ОбластиДляОпределенияКодовУзлов.Колонки.Добавить("КодыУзлов"); + + Для Каждого СтрокаНастройкиСинхронизацииXDTO Из СтрокиНастройкиСинхронизацииXDTO Цикл + + Если ЗначениеЗаполнено(СтрокаНастройкиСинхронизацииXDTO.КодПредопределенногоУзла) Тогда + Продолжить; + КонецЕсли; + + КодыУзлов = Новый ТаблицаЗначений; + КодыУзлов.Колонки.Добавить("КодЭтогоУзла", Новый ОписаниеТипов("Строка")); + КодыУзлов.Колонки.Добавить("КодПредопределенногоУзла", Новый ОписаниеТипов("Строка")); + КодыУзлов.Колонки.Добавить("ПараметрыОбработчика"); + КодыУзлов.Колонки.Добавить("ПродолжитьОжидание", Новый ОписаниеТипов("Булево")); + + Запрос = Новый Запрос( + "ВЫБРАТЬ + | Т.Ссылка КАК УзелОбмена + |ИЗ + | #ТаблицаПланаОбмена КАК Т + |ГДЕ + | НЕ Т.ЭтотУзел"); + + Запрос.Текст = СтрЗаменить(Запрос.Текст, + "#ТаблицаПланаОбмена", "ПланОбмена." + СтрокаНастройкиСинхронизацииXDTO.ПланОбмена); + + Выборка = Запрос.Выполнить().Выбрать(); + Пока Выборка.Следующий() Цикл + КодЭтогоУзла = ОбменДаннымиСервер.ИдентификаторЭтогоУзлаДляОбмена(Выборка.УзелОбмена); + + ОбластьДанныхКорреспондента = РегистрыСведений.НастройкиОбменаДаннымиXDTO.ЗначениеНастройкиКорреспондента(Выборка.УзелОбмена, + "ОбластьДанныхКорреспондента"); + + Если СтрокаНастройкиСинхронизацииXDTO.ОбластьДанных = ОбластьДанныхКорреспондента Тогда + СтрокаКодыУзлов = КодыУзлов.Добавить(); + СтрокаКодыУзлов.КодЭтогоУзла = КодЭтогоУзла; + СтрокаКодыУзлов.КодПредопределенногоУзла = ОбменДаннымиСервер.ИдентификаторУзлаКорреспондентаДляОбмена(Выборка.УзелОбмена); + СтрокаКодыУзлов.ПродолжитьОжидание = Ложь; + Прервать; + КонецЕсли; + КонецЦикла; + + Выборка.Сбросить(); + + Пока Выборка.Следующий() Цикл + КодЭтогоУзла = ОбменДаннымиСервер.ИдентификаторЭтогоУзлаДляОбмена(Выборка.УзелОбмена); + + Если Не КодыУзлов.Найти(КодЭтогоУзла, "КодЭтогоУзла") = Неопределено Тогда + Продолжить; + КонецЕсли; + + СтрокаКодыУзлов = КодыУзлов.Добавить(); + СтрокаКодыУзлов.КодЭтогоУзла = КодЭтогоУзла; + СтрокаКодыУзлов.ПродолжитьОжидание = Истина; + + КонецЦикла; + + Область = ОбластиДляОпределенияКодовУзлов.Добавить(); + ЗаполнитьЗначенияСвойств(Область, СтрокаНастройкиСинхронизацииXDTO, "ОбластьДанных, ПланОбмена"); + Область.КодыУзлов = КодыУзлов; + + КонецЦикла; + + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("НастройкиСинхронизацииИзМенеджераСервиса", + Новый ХранилищеЗначения(НастройкиСинхронизацииИзМенеджераСервиса, Новый СжатиеДанных(9))); + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("ОбластиДляОпределенияКодовУзлов", + Новый ХранилищеЗначения(ОбластиДляОпределенияКодовУзлов, Новый СжатиеДанных(9))); + + Если ОбластиДляОпределенияКодовУзлов.Количество() > 0 Тогда + + ПриНачалеПолученияКодовУзловОбластейДанных(ПараметрыОбработчика); + + Если Не ПараметрыОбработчика.Отказ Тогда + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("ОжиданиеСессииПолучениеПараметровКорреспондента"); + ПродолжитьОжидание = Истина; + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +// Для внутреннего использования. +// +Процедура ПриЗавершенииПолученияСпискаПриложений(ПараметрыОбработчика, СтатусЗавершения) Экспорт + + ИнициализироватьСтатусЗавершенияДлительнойОперации(СтатусЗавершения); + + Если ПараметрыОбработчика.Отказ Тогда + ЗаполнитьЗначенияСвойств(СтатусЗавершения, ПараметрыОбработчика, "Отказ, СообщениеОбОшибке"); + Иначе + + Попытка + СтатусЗавершения.Результат = ТаблицаПриложенийСинхронизацииДанных(ПараметрыОбработчика.ДополнительныеПараметры); + Исключение + СтатусЗавершения.Отказ = Истина; + СтатусЗавершения.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииМониторСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , СтатусЗавершения.СообщениеОбОшибке); + КонецПопытки; + + КонецЕсли; + + ПараметрыОбработчика = Неопределено; + +КонецПроцедуры + +#КонецОбласти + +#Область ПолучениеОбщихДанныхУзловКорреспондента + +// Для внутреннего использования. +// +Процедура ПриНачалеПолученияОбщихДанныхУзловКорреспондента(НастройкиПодключения, ПараметрыОбработчика, ПродолжитьОжидание = Истина) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + ИнициализироватьПараметрыОбработчикаДлительнойОперации(ПараметрыОбработчика, Неопределено); + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("НастройкиПодключения", НастройкиПодключения); + + ИмяПланаОбмена = НастройкиПодключения.ИмяПланаОбмена; + ОбластьДанныхКорреспондента = НастройкиПодключения.ОбластьДанныхКорреспондента; + + УстановитьПривилегированныйРежим(Истина); + + НачатьТранзакцию(); + Попытка + // Отправляем сообщение корреспонденту. + Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиУправлениеИнтерфейс.СообщениеПолучитьОбщиеДанныеУзловКорреспондента()); + Сообщение.Body.CorrespondentZone = ОбластьДанныхКорреспондента; + + Сообщение.Body.ExchangePlan = ИмяПланаОбмена; + + ДополнительныеСвойства = Новый Структура; + ДополнительныеСвойства.Вставить("Интерфейс", "3.0.1.1"); + + Сообщение.AdditionalInfo = СериализаторXDTO.ЗаписатьXDTO(ДополнительныеСвойства); + + ПараметрыОбработчика.ИдентификаторОперации = ОбменДаннымиВМоделиСервиса.ОтправитьСообщение(Сообщение); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); + + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.СообщениеОбОшибке = СообщениеОбОшибке; + ПараметрыОбработчика.ИдентификаторОперации = Неопределено; + + ПродолжитьОжидание = Ложь; + Возврат; + КонецПопытки; + + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + +КонецПроцедуры + +// Для внутреннего использования. +// +Процедура ПриОжиданииПолученияОбщихДанныхУзловКорреспондента(ПараметрыОбработчика, ПродолжитьОжидание = Истина) Экспорт + + ПриОжиданииСессииОбменаСообщениямиСистемы(ПараметрыОбработчика, ПродолжитьОжидание); + +КонецПроцедуры + +// Для внутреннего использования. +// +Процедура ПриЗавершенииПолученияОбщихДанныхУзловКорреспондента(ПараметрыОбработчика, СтатусЗавершения) Экспорт + + ИнициализироватьСтатусЗавершенияДлительнойОперации(СтатусЗавершения); + + НастройкиПодключения = ПараметрыОбработчика.ДополнительныеПараметры.НастройкиПодключения; + + Если ПараметрыОбработчика.Отказ Тогда + ЗаполнитьЗначенияСвойств(СтатусЗавершения, ПараметрыОбработчика, "Отказ, СообщениеОбОшибке"); + Иначе + Результат = Новый Структура; + Результат.Вставить("ПараметрыКорреспондентаПолучены", Истина); + Результат.Вставить("ПараметрыКорреспондента"); + Результат.Вставить("СообщениеОбОшибке", ""); + + УстановитьПривилегированныйРежим(Истина); + + Попытка + // Параметры корреспондента. + ДанныеКорреспондента = РегистрыСведений.СессииОбменаСообщениямиСистемы.ПолучитьДанныеСессии( + ПараметрыОбработчика.ИдентификаторОперации).Получить(); + + Если Не ДанныеКорреспондента.Свойство("ПараметрыИнформационнойБазы", Результат.ПараметрыКорреспондента) Тогда + Результат.СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не поддерживается версия 3.0.1.1 интерфейса ""ОбменДанными"". + |Для настройки подключения необходимо обновить программу ""%1"", или начать настройку из нее.'"), + НастройкиПодключения.НаименованиеКорреспондента); + Результат.ПараметрыКорреспондентаПолучены = Ложь; + КонецЕсли; + + СтатусЗавершения.Результат = Результат; + + Исключение + СтатусЗавершения.Отказ = Истина; + СтатусЗавершения.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , СтатусЗавершения.СообщениеОбОшибке); + + Возврат; + КонецПопытки; + КонецЕсли; + + ПараметрыОбработчика = Неопределено; + +КонецПроцедуры + +#КонецОбласти + +#Область СохранениеНастроекПодключения + +Процедура ПриНачалеСохраненияНастроекПодключения(НастройкиПодключения, ПараметрыОбработчика, ПродолжитьОжидание = Истина) Экспорт + + КлючФоновогоЗадания = КлючФоновогоЗадания(НастройкиПодключения.ИмяПланаОбмена, + НСтр("ru = 'Настройка подключения к корреспонденту'")); + + Если ЕстьАктивныеФоновыеЗадания(КлючФоновогоЗадания) Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Настройка подключения к корреспонденту для ""%1"" уже выполняется.'"), НастройкиПодключения.ИмяПланаОбмена); + КонецЕсли; + + ПараметрыПроцедуры = Новый Структура; + ПараметрыПроцедуры.Вставить("НастройкиПодключения", НастройкиПодключения); + + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Новый УникальныйИдентификатор); + ПараметрыВыполнения.НаименованиеФоновогоЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Настройка подключения к корреспонденту: %1.'"), НастройкиПодключения.ИмяПланаОбмена); + ПараметрыВыполнения.КлючФоновогоЗадания = КлючФоновогоЗадания; + ПараметрыВыполнения.ЗапуститьНеВФоне = Ложь; + ПараметрыВыполнения.ЗапуститьВФоне = Истина; + + ФоновоеЗадание = ДлительныеОперации.ВыполнитьВФоне( + "Обработки.ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете.НастроитьОбменШаг1_3_0_1_1", + ПараметрыПроцедуры, + ПараметрыВыполнения); + + ПриНачалеДлительнойОперации(ФоновоеЗадание, ПараметрыОбработчика, ПродолжитьОжидание); + + Если Не ПродолжитьОжидание + И Не ПараметрыОбработчика.Отказ Тогда + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("ФоновоеЗаданиеВыполнено"); + ПродолжитьОжидание = Истина; + КонецЕсли; + + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("НастройкиПодключения", НастройкиПодключения); + +КонецПроцедуры + +Процедура ПриОжиданииСохраненияНастроекПодключения(ПараметрыОбработчика, ПродолжитьОжидание = Истина) Экспорт + + Если ПараметрыОбработчика.ДополнительныеПараметры.Свойство("ОжиданиеСессииОбменаСообщениямиСистемы1") Тогда + + ПриОжиданииСессииОбменаСообщениямиСистемы( + ПараметрыОбработчика.ДополнительныеПараметры.ПараметрыОбработчикаСессии, ПродолжитьОжидание); + + Если Не ПродолжитьОжидание + И Не ПараметрыОбработчика.ДополнительныеПараметры.ПараметрыОбработчикаСессии.Отказ Тогда + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("ОжиданиеСессииОбменаСообщениямиСистемы2"); + ПараметрыОбработчика.ДополнительныеПараметры.Удалить("ОжиданиеСессииОбменаСообщениямиСистемы1"); + + ПриНачалеСохраненияНастройкиОбменаВМенеджереСервиса(ПараметрыОбработчика.ДополнительныеПараметры.НастройкиПодключения, + ПараметрыОбработчика.ДополнительныеПараметры.ПараметрыОбработчикаСессии, ПродолжитьОжидание); + КонецЕсли; + + ИначеЕсли ПараметрыОбработчика.ДополнительныеПараметры.Свойство("ОжиданиеСессииОбменаСообщениямиСистемы2") Тогда + + ПриОжиданииСессииОбменаСообщениямиСистемы( + ПараметрыОбработчика.ДополнительныеПараметры.ПараметрыОбработчикаСессии, ПродолжитьОжидание); + + Иначе + + ЗаданиеВыполнено = Ложь; + + Если ПараметрыОбработчика.ДополнительныеПараметры.Свойство("ФоновоеЗаданиеВыполнено") Тогда + ЗаданиеВыполнено = Истина; + Иначе + ПриОжиданииДлительнойОперации(ПараметрыОбработчика, ПродолжитьОжидание); + + ЗаданиеВыполнено = Не ПродолжитьОжидание И Не ПараметрыОбработчика.Отказ; + КонецЕсли; + + Если ЗаданиеВыполнено Тогда + + Результат = ПолучитьИзВременногоХранилища(ПараметрыОбработчика.АдресРезультата); + + ПараметрыОбработчикаСессии = Результат.ПараметрыОбработчикаСессии; + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("Корреспондент", Результат.Корреспондент); + + Если ПараметрыОбработчикаСессии.Отказ Тогда + ПродолжитьОжидание = Ложь; + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.СообщениеОбОшибке = ПараметрыОбработчикаСессии.СообщениеОбОшибке; + Иначе + ПродолжитьОжидание = Истина; + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("ОжиданиеСессииОбменаСообщениямиСистемы1"); + ПараметрыОбработчика.ДополнительныеПараметры.Вставить("ПараметрыОбработчикаСессии", ПараметрыОбработчикаСессии); + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +Процедура ПриЗавершенииСохраненияНастроекПодключения(ПараметрыОбработчика, СтатусЗавершения) Экспорт + + ИнициализироватьСтатусЗавершенияДлительнойОперации(СтатусЗавершения); + + Если ПараметрыОбработчика.Отказ Тогда + ЗаполнитьЗначенияСвойств(СтатусЗавершения, ПараметрыОбработчика, "Отказ, СообщениеОбОшибке"); + Иначе + ПараметрыОбработчикаСессии = ПараметрыОбработчика.ДополнительныеПараметры.ПараметрыОбработчикаСессии; + + Результат = Новый Структура; + Результат.Вставить("НастройкиПодключенияСохранены", Истина); + Результат.Вставить("УзелОбмена", Неопределено); + Результат.Вставить("СообщениеОбОшибке", ""); + + Если ПараметрыОбработчикаСессии.Отказ Тогда + // Удаление узла обмена в этой базе. + Если ЗначениеЗаполнено(ПараметрыОбработчика.ДополнительныеПараметры.Корреспондент) Тогда + ОбменДаннымиСервер.УдалитьНастройкуСинхронизации(ПараметрыОбработчика.ДополнительныеПараметры.Корреспондент); + КонецЕсли; + + Результат.НастройкиПодключенияСохранены = Ложь; + Результат.СообщениеОбОшибке = ПараметрыОбработчикаСессии.СообщениеОбОшибке; + Иначе + Результат.Вставить("УзелОбмена", ПараметрыОбработчика.ДополнительныеПараметры.Корреспондент); + КонецЕсли; + + СтатусЗавершения.Результат = Результат; + + КонецЕсли; + + ПараметрыОбработчика = Неопределено; + +КонецПроцедуры + +#КонецОбласти + +#Область УдалениеНастройкиСинхронизацииДанных + +// Для внутреннего использования. +// +Процедура ПриНачалеУдаленияНастройкиСинхронизации(НастройкиУдаления, ПараметрыОбработчика, ПродолжитьОжидание) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + ИнициализироватьПараметрыОбработчикаДлительнойОперации(ПараметрыОбработчика, Неопределено); + + УстановитьПривилегированныйРежим(Истина); + + НачатьТранзакцию(); + Попытка + // Отправляем сообщение Менеджеру сервиса. + Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс.СообщениеОтключитьСинхронизацию()); + + Сообщение.Body.CorrespondentZone = НастройкиУдаления.ОбластьДанныхКорреспондента; + Сообщение.Body.ExchangePlan = НастройкиУдаления.ИмяПланаОбмена; + + ПараметрыОбработчика.ИдентификаторОперации = ОбменДаннымиВМоделиСервиса.ОтправитьСообщение(Сообщение); + + ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Отключение синхронизации данных ""%1"" с приложением ""%2"".'"), + НастройкиУдаления.ИмяПланаОбмена, XMLСтрока(НастройкиУдаления.ОбластьДанныхКорреспондента)); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Информация, , , ТекстСообщения); + + ЗафиксироватьТранзакцию(); + Исключение + + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); + + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.СообщениеОбОшибке = СообщениеОбОшибке; + ПараметрыОбработчика.ИдентификаторОперации = Неопределено; + + ПродолжитьОжидание = Ложь; + Возврат; + КонецПопытки; + + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + ПродолжитьОжидание = Истина; + +КонецПроцедуры + +// Для внутреннего использования. +// +Процедура ПриОжиданииУдаленияНастройкиСинхронизации(ПараметрыОбработчика, ПродолжитьОжидание) Экспорт + + ПриОжиданииСессииОбменаСообщениямиСистемы(ПараметрыОбработчика, ПродолжитьОжидание); + +КонецПроцедуры + +// Для внутреннего использования. +// +Процедура ПриЗавершенииУдаленияНастройкиСинхронизации(ПараметрыОбработчика, СтатусЗавершения) Экспорт + + ИнициализироватьСтатусЗавершенияДлительнойОперации(СтатусЗавершения); + + Если ПараметрыОбработчика.Отказ Тогда + ЗаполнитьЗначенияСвойств(СтатусЗавершения, ПараметрыОбработчика, "Отказ, СообщениеОбОшибке"); + Иначе + + Результат = Новый Структура; + Результат.Вставить("НастройкаУдалена", Истина); + Результат.Вставить("НастройкаУдаленаВКорреспонденте", Истина); + Результат.Вставить("СообщениеОбОшибке", ""); + Результат.Вставить("СообщениеОбОшибкеВКорреспонденте", ""); + + СтатусЗавершения.Результат = Результат; + + КонецЕсли; + + ПараметрыОбработчика = Неопределено; + +КонецПроцедуры + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область СессииОбменаСообщениями + +Процедура ПриОжиданииСессииОбменаСообщениямиСистемы(ПараметрыОбработчика, ПродолжитьОжидание) + + СтатусСессии = ""; + Попытка + СтатусСессии = СтатусСессии(ПараметрыОбработчика.ИдентификаторОперации); + Исключение + СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииМониторСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); + + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.СообщениеОбОшибке = СообщениеОбОшибке; + ПараметрыОбработчика.ИдентификаторОперации = Неопределено; + + ПродолжитьОжидание = Ложь; + Возврат; + КонецПопытки; + + Если СтатусСессии = "Успешно" Тогда + + ПродолжитьОжидание = Ложь; + + ИначеЕсли СтатусСессии = "Ошибка" Тогда + + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.ИдентификаторОперации = Неопределено; + ПродолжитьОжидание = Ложь; + + Иначе + + ПродолжитьОжидание = Истина; + + КонецЕсли; + +КонецПроцедуры + +Функция СтатусСессии(Знач Сессия) + + УстановитьПривилегированныйРежим(Истина); + + Возврат РегистрыСведений.СессииОбменаСообщениямиСистемы.СтатусСессии(Сессия); + +КонецФункции + +#КонецОбласти + +#Область РаботаСДлительнымиОперациями + +// Для внутреннего использования. +// +Процедура ПриНачалеДлительнойОперации(ФоновоеЗадание, ПараметрыОбработчика, ПродолжитьОжидание = Истина) + + ИнициализироватьПараметрыОбработчикаДлительнойОперации(ПараметрыОбработчика, ФоновоеЗадание); + + Если ФоновоеЗадание.Статус = "Выполняется" Тогда + ПараметрыОбработчика.АдресРезультата = ФоновоеЗадание.АдресРезультата; + ПараметрыОбработчика.ИдентификаторОперации = ФоновоеЗадание.ИдентификаторЗадания; + ПараметрыОбработчика.ДлительнаяОперация = Истина; + + ПродолжитьОжидание = Истина; + Возврат; + ИначеЕсли ФоновоеЗадание.Статус = "Выполнено" Тогда + ПараметрыОбработчика.АдресРезультата = ФоновоеЗадание.АдресРезультата; + ПараметрыОбработчика.ДлительнаяОперация = Ложь; + + ПродолжитьОжидание = Ложь; + Возврат; + Иначе + ПараметрыОбработчика.СообщениеОбОшибке = ФоновоеЗадание.КраткоеПредставлениеОшибки; + Если ЗначениеЗаполнено(ФоновоеЗадание.ПодробноеПредставлениеОшибки) Тогда + ПараметрыОбработчика.СообщениеОбОшибке = ФоновоеЗадание.ПодробноеПредставлениеОшибки; + КонецЕсли; + + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.ДлительнаяОперация = Ложь; + + ПродолжитьОжидание = Ложь; + Возврат; + КонецЕсли; + +КонецПроцедуры + +// Для внутреннего использования. +// +Процедура ПриОжиданииДлительнойОперации(ПараметрыОбработчика, ПродолжитьОжидание = Истина) + + Если ПараметрыОбработчика.Отказ + Или Не ПараметрыОбработчика.ДлительнаяОперация Тогда + ПродолжитьОжидание = Ложь; + Возврат; + КонецЕсли; + + ЗаданиеВыполнено = Ложь; + Попытка + ЗаданиеВыполнено = ДлительныеОперации.ЗаданиеВыполнено(ПараметрыОбработчика.ИдентификаторОперации); + Исключение + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииСозданиеОбменаДанными(), + УровеньЖурналаРегистрации.Ошибка, , , ПараметрыОбработчика.СообщениеОбОшибке); + КонецПопытки; + + Если ПараметрыОбработчика.Отказ Тогда + ПродолжитьОжидание = Ложь; + Возврат; + КонецЕсли; + + ПродолжитьОжидание = Не ЗаданиеВыполнено; + +КонецПроцедуры + +Процедура ИнициализироватьПараметрыОбработчикаДлительнойОперации(ПараметрыОбработчика, ФоновоеЗадание) + + ПараметрыОбработчика = Новый Структура; + ПараметрыОбработчика.Вставить("ФоновоеЗадание", ФоновоеЗадание); + ПараметрыОбработчика.Вставить("Отказ", Ложь); + ПараметрыОбработчика.Вставить("СообщениеОбОшибке", ""); + ПараметрыОбработчика.Вставить("ДлительнаяОперация", Ложь); + ПараметрыОбработчика.Вставить("ИдентификаторОперации", Неопределено); + ПараметрыОбработчика.Вставить("АдресРезультата", Неопределено); + ПараметрыОбработчика.Вставить("ДополнительныеПараметры", Новый Структура); + +КонецПроцедуры + +Функция КлючФоновогоЗадания(ИмяПланаОбмена, Действие) + + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'ПланОбмена:%1 Действие:%2'"), ИмяПланаОбмена, Действие); + +КонецФункции + +Функция ЕстьАктивныеФоновыеЗадания(КлючФоновогоЗадания) + + Отбор = Новый Структура; + Отбор.Вставить("Ключ", КлючФоновогоЗадания); + Отбор.Вставить("Состояние", СостояниеФоновогоЗадания.Активно); + + АктивныеФоновыеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор); + + Возврат (АктивныеФоновыеЗадания.Количество() > 0); + +КонецФункции + +Процедура ИнициализироватьСтатусЗавершенияДлительнойОперации(СтатусЗавершения) + + СтатусЗавершения = Новый Структура; + СтатусЗавершения.Вставить("Отказ", Ложь); + СтатусЗавершения.Вставить("СообщениеОбОшибке", ""); + СтатусЗавершения.Вставить("Результат", Неопределено); + +КонецПроцедуры + +#КонецОбласти + +Процедура ПриНачалеПолученияКодовУзловОбластейДанных(ПараметрыОбработчика) + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + ОбластиДляОпределенияКодовУзлов = ПараметрыОбработчика.ДополнительныеПараметры.ОбластиДляОпределенияКодовУзлов.Получить(); + + УстановитьПривилегированныйРежим(Истина); + + Для Каждого Область Из ОбластиДляОпределенияКодовУзлов Цикл + + Для Каждого СтрокаКодыУзлов Из Область.КодыУзлов Цикл + + Если Не СтрокаКодыУзлов.ПродолжитьОжидание Тогда + Продолжить; + КонецЕсли; + + ИнициализироватьПараметрыОбработчикаДлительнойОперации(СтрокаКодыУзлов.ПараметрыОбработчика, Неопределено); + + НачатьТранзакцию(); + Попытка + Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияОбменаДаннымиУправлениеИнтерфейс.СообщениеПолучитьПараметрыУчетаКорреспондента()); + + Сообщение.Body.ExchangePlan = Область.ПланОбмена; + Сообщение.Body.CorrespondentCode = СтрокаКодыУзлов.КодЭтогоУзла; + + Сообщение.Body.CorrespondentZone = Область.ОбластьДанных; + + ДополнительныеСвойства = Новый Структура; + ДополнительныеСвойства.Вставить("Интерфейс", "3.0.1.1"); + + Сообщение.AdditionalInfo = СериализаторXDTO.ЗаписатьXDTO(ДополнительныеСвойства); + + СтрокаКодыУзлов.ПараметрыОбработчика.ИдентификаторОперации = ОбменДаннымиВМоделиСервиса.ОтправитьСообщение(Сообщение); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + СообщениеОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииМониторСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке); + + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.СообщениеОбОшибке = СообщениеОбОшибке; + ПараметрыОбработчика.ИдентификаторОперации = Неопределено; + + Прервать; + КонецПопытки; + + КонецЦикла; + + Если ПараметрыОбработчика.Отказ Тогда + Прервать; + КонецЕсли; + + КонецЦикла; + + Если Не ПараметрыОбработчика.Отказ Тогда + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + КонецЕсли; + + ПараметрыОбработчика.ДополнительныеПараметры.ОбластиДляОпределенияКодовУзлов = + Новый ХранилищеЗначения(ОбластиДляОпределенияКодовУзлов, Новый СжатиеДанных(9)); + +КонецПроцедуры + +Процедура ПриНачалеСохраненияНастройкиОбменаВМенеджереСервиса(НастройкиПодключения, ПараметрыОбработчика, ПродолжитьОжидание) + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + Возврат; + КонецЕсли; + + МодульСообщенияВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("СообщенияВМоделиСервиса"); + + ИнициализироватьПараметрыОбработчикаДлительнойОперации(ПараметрыОбработчика, Неопределено); + + ИмяПланаОбмена = НастройкиПодключения.ИмяПланаОбмена; + ОбластьДанныхКорреспондента = НастройкиПодключения.ОбластьДанныхКорреспондента; + + УстановитьПривилегированныйРежим(Истина); + + НачатьТранзакцию(); + Попытка + // Отправляем сообщение менеджеру сервиса - включить синхронизацию. + Сообщение = МодульСообщенияВМоделиСервиса.НовоеСообщение( + СообщенияАдминистрированиеОбменаДаннымиУправлениеИнтерфейс.СообщениеВключитьСинхронизацию()); + + Сообщение.Body.CorrespondentZone = ОбластьДанныхКорреспондента; + Сообщение.Body.ExchangePlan = ИмяПланаОбмена; + + ПараметрыОбработчика.ИдентификаторОперации = ОбменДаннымиВМоделиСервиса.ОтправитьСообщение(Сообщение); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + + Информация = ИнформацияОбОшибке(); + + ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(), + УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(Информация)); + + ПараметрыОбработчика.Отказ = Истина; + ПараметрыОбработчика.СообщениеОбОшибке = КраткоеПредставлениеОшибки(Информация); + ПараметрыОбработчика.ИдентификаторОперации = Неопределено; + + ПродолжитьОжидание = Ложь; + Возврат; + КонецПопытки; + + МодульСообщенияВМоделиСервиса.ДоставитьБыстрыеСообщения(); + ПродолжитьОжидание = Истина; + +КонецПроцедуры + +Функция ТаблицаПриложенийСинхронизацииДанных(Параметры) + + НастройкиСинхронизацииИзМенеджераСервиса = Параметры.НастройкиСинхронизацииИзМенеджераСервиса.Получить(); + ОбластиДляОпределенияКодовУзлов = Параметры.ОбластиДляОпределенияКодовУзлов.Получить(); + + ТаблицаПриложений = Новый ТаблицаЗначений; + ТаблицаПриложений.Колонки.Добавить("НаименованиеПриложения", Новый ОписаниеТипов("Строка")); + ТаблицаПриложений.Колонки.Добавить("Префикс", Новый ОписаниеТипов("Строка")); + ТаблицаПриложений.Колонки.Добавить("ПрефиксКорреспондента", Новый ОписаниеТипов("Строка")); + ТаблицаПриложений.Колонки.Добавить("ВерсияКорреспондента", Новый ОписаниеТипов("Строка")); + ТаблицаПриложений.Колонки.Добавить("РольКорреспондента", Новый ОписаниеТипов("Строка")); + ТаблицаПриложений.Колонки.Добавить("ИмяПланаОбмена", Новый ОписаниеТипов("Строка")); + ТаблицаПриложений.Колонки.Добавить("ФорматОбмена", Новый ОписаниеТипов("Строка")); + ТаблицаПриложений.Колонки.Добавить("ОбластьДанных", Новый ОписаниеТипов("Число")); + + ТаблицаПриложений.Колонки.Добавить("КонечнаяТочкаКорреспондента", Новый ОписаниеТипов("ПланОбменаСсылка.ОбменСообщениями")); + + ТаблицаПриложений.Колонки.Добавить("НастройкаСинхронизацииВМенеджереСервиса", Новый ОписаниеТипов("Булево")); + ТаблицаПриложений.Колонки.Добавить("СинхронизацияОтключенаВМенеджереСервиса", Новый ОписаниеТипов("Булево")); + + ТаблицаПриложений.Колонки.Добавить("Корреспондент"); + + Если НастройкиСинхронизацииИзМенеджераСервиса.Количество() = 0 Тогда + Возврат ТаблицаПриложений; + КонецЕсли; + + УстановитьПривилегированныйРежим(Истина); + + Для Каждого НастройкаИзМенеджераСервиса Из НастройкиСинхронизацииИзМенеджераСервиса Цикл + + СтрокаПриложение = ТаблицаПриложений.Добавить(); + + ЗаполнитьЗначенияСвойств(СтрокаПриложение, НастройкаИзМенеджераСервиса, + "НаименованиеПриложения, + |Префикс, + |ПрефиксКорреспондента, + |ВерсияКорреспондента, + |РольКорреспондента, + |ФорматОбмена, + |ОбластьДанных, + |НастройкаСинхронизацииВМенеджереСервиса"); + + СтрокаПриложение.ИмяПланаОбмена = НастройкаИзМенеджераСервиса.ПланОбмена; + + СтрокаПриложение.КонечнаяТочкаКорреспондента = ПланыОбмена["ОбменСообщениями"].НайтиПоКоду( + НастройкаИзМенеджераСервиса.КонечнаяТочкаКорреспондента); + + Если СтрокаПриложение.КонечнаяТочкаКорреспондента.Пустая() Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не найдена конечная точка корреспондента с идентификатором ""%1"".'"), + НастройкаИзМенеджераСервиса.КонечнаяТочкаКорреспондента); + КонецЕсли; + + Если Не ЗначениеЗаполнено(НастройкаИзМенеджераСервиса.КодПредопределенногоУзла) + И НастройкаИзМенеджераСервиса.ЭтоПланОбменаXDTO + И НастройкаИзМенеджераСервиса.СинхронизацияНастроена Тогда + + Отбор = Новый Структура("ОбластьДанных, ПланОбмена"); + ЗаполнитьЗначенияСвойств(Отбор, НастройкаИзМенеджераСервиса); + + Области = ОбластиДляОпределенияКодовУзлов.НайтиСтроки(Отбор); + Если Области.Количество() > 0 Тогда + Область = Области[0]; + + Для Каждого СтрокаКодыУзлов Из Область.КодыУзлов Цикл + Если Не ЗначениеЗаполнено(СтрокаКодыУзлов.КодПредопределенногоУзла) Тогда + Продолжить; + КонецЕсли; + + НастройкаИзМенеджераСервиса.КодПредопределенногоУзла = СтрокаКодыУзлов.КодПредопределенногоУзла; + Прервать; + КонецЦикла; + КонецЕсли; + КонецЕсли; + + Если ЗначениеЗаполнено(НастройкаИзМенеджераСервиса.КодПредопределенногоУзла) Тогда + СтрокаПриложение.Корреспондент = ОбменДаннымиСервер.УзелПланаОбменаПоКоду(СтрокаПриложение.ИмяПланаОбмена, + НастройкаИзМенеджераСервиса.КодПредопределенногоУзла); + КонецЕсли; + + Если Не ЗначениеЗаполнено(СтрокаПриложение.Корреспондент) Тогда + КодУзлаМС = ОбменДаннымиВМоделиСервиса.КодУзлаПланаОбменаВСервисе(СтрокаПриложение.ОбластьДанных); + СтрокаПриложение.Корреспондент = ОбменДаннымиСервер.УзелПланаОбменаПоКоду(СтрокаПриложение.ИмяПланаОбмена, КодУзлаМС); + Иначе + + ОбластьДанныхКорреспондента = РегистрыСведений.НастройкиОбменаДаннымиXDTO.ЗначениеНастройкиКорреспондента(СтрокаПриложение.Корреспондент, + "ОбластьДанныхКорреспондента"); + + Если ОбластьДанныхКорреспондента = Неопределено Тогда + РегистрыСведений.НастройкиОбменаДаннымиXDTO.ОбновитьНастройкиКорреспондента(СтрокаПриложение.Корреспондент, + "ОбластьДанныхКорреспондента", НастройкаИзМенеджераСервиса.ОбластьДанных); + КонецЕсли; + + КонецЕсли; + + Если ЗначениеЗаполнено(СтрокаПриложение.Корреспондент) + И Не НастройкаИзМенеджераСервиса.СинхронизацияНастроена Тогда + СтрокаПриложение.СинхронизацияОтключенаВМенеджереСервиса = Истина; + КонецЕсли; + + Если Параметры.Режим = "НеНастроенныеОбмены" + И ЗначениеЗаполнено(СтрокаПриложение.Корреспондент) Тогда + ТаблицаПриложений.Удалить(СтрокаПриложение); + ИначеЕсли Параметры.Режим = "НастроенныеОбмены" + И Не ЗначениеЗаполнено(СтрокаПриложение.Корреспондент) Тогда + ТаблицаПриложений.Удалить(СтрокаПриложение); + КонецЕсли; + + КонецЦикла; + + Возврат ТаблицаПриложений; + +КонецФункции + +Процедура УдалитьЛишниеСтрокиНастроекСинхронизации(НастройкиСинхронизацииИзМенеджераСервиса, ДополнительныеПараметры) + + НастройкиСинхронизацииИзМенеджераСервиса.Колонки.Добавить("ЭтоПланОбменаXDTO", Новый ОписаниеТипов("Булево")); + НастройкиСинхронизацииИзМенеджераСервиса.Колонки.Добавить("УдалитьНастройку", Новый ОписаниеТипов("Булево")); + + НастройкиСинхронизацииИзМенеджераСервиса.Колонки.Добавить("ИмяПланаОбменаДляПереходаНаНовыйОбмен", + Новый ОписаниеТипов("Строка")); + + Если НастройкиСинхронизацииИзМенеджераСервиса.Колонки.Найти("РольКорреспондента") = Неопределено Тогда + НастройкиСинхронизацииИзМенеджераСервиса.Колонки.Добавить("РольКорреспондента", Новый ОписаниеТипов("Строка")); + КонецЕсли; + + ЕстьВерсияКорреспондента = НастройкиСинхронизацииИзМенеджераСервиса.Колонки.Найти("ВерсияКорреспондента") <> Неопределено; + + Для Каждого НастройкаИзМенеджераСервиса Из НастройкиСинхронизацииИзМенеджераСервиса Цикл + + Если Метаданные.ПланыОбмена.Найти(НастройкаИзМенеджераСервиса.ПланОбмена) = Неопределено Тогда + НастройкаИзМенеджераСервиса.УдалитьНастройку = Истина; + Продолжить; + КонецЕсли; + + НастройкиПланаОбмена = ОбменДаннымиСервер.ЗначениеНастройкиПланаОбмена(НастройкаИзМенеджераСервиса.ПланОбмена, + "ИмяПланаОбменаДляПереходаНаНовыйОбмен, ЭтоПланОбменаXDTO"); + ЗаполнитьЗначенияСвойств(НастройкаИзМенеджераСервиса, НастройкиПланаОбмена); + + Если Не ЗначениеЗаполнено(НастройкаИзМенеджераСервиса.СинхронизацияНастроена) Тогда + НастройкаИзМенеджераСервиса.СинхронизацияНастроена = Ложь; + КонецЕсли; + + КонецЦикла; + + Если ДополнительныеПараметры.Режим = "НеНастроенныеОбмены" Тогда + + НастроенныеОбмены = НастройкиСинхронизацииИзМенеджераСервиса.Скопировать(Новый Структура("СинхронизацияНастроена", Истина)); + + Для Каждого НастройкаИзМенеджераСервиса Из НастройкиСинхронизацииИзМенеджераСервиса Цикл + + Если НастройкаИзМенеджераСервиса.УдалитьНастройку Тогда + Продолжить; + КонецЕсли; + + Если Не НастройкаИзМенеджераСервиса.СинхронизацияНастроена + И НастроенныеОбмены.НайтиСтроки(Новый Структура("ОбластьДанных", НастройкаИзМенеджераСервиса.ОбластьДанных)).Количество() > 0 Тогда + НастройкаИзМенеджераСервиса.УдалитьНастройку = Истина; + Продолжить; + КонецЕсли; + + ВариантыНастроек = ОбменДаннымиСервер.ВариантыНастроекОбменаДляКорреспондента( + НастройкаИзМенеджераСервиса.ПланОбмена, + ?(ЕстьВерсияКорреспондента, НастройкаИзМенеджераСервиса.ВерсияКорреспондента, ""), + НастройкаИзМенеджераСервиса.РольКорреспондента); + + Если ВариантыНастроек.Найти(ДополнительныеПараметры.ИдентификаторНастройки) = Неопределено Тогда + НастройкаИзМенеджераСервиса.УдалитьНастройку = Истина; + Продолжить; + КонецЕсли; + + // Исключение возможности создания новой синхронизации данных на устаревшем плане обмена. + НастройкаИзМенеджераСервиса.УдалитьНастройку = Не НастройкаИзМенеджераСервиса.СинхронизацияНастроена + И ЗначениеЗаполнено(НастройкаИзМенеджераСервиса.ИмяПланаОбменаДляПереходаНаНовыйОбмен); + + КонецЦикла; + КонецЕсли; + + Для Каждого НастройкаИзМенеджераСервиса Из НастройкиСинхронизацииИзМенеджераСервиса.НайтиСтроки(Новый Структура("УдалитьНастройку", Ложь)) Цикл + + Если ДополнительныеПараметры.Режим = "НеНастроенныеОбмены" Тогда + Если НастройкаИзМенеджераСервиса.ПланОбмена <> ДополнительныеПараметры.ИмяПланаОбмена Тогда + НастройкаИзМенеджераСервиса.УдалитьНастройку = Истина; + Продолжить; + КонецЕсли; + КонецЕсли; + + Если ДополнительныеПараметры.Режим = "НеНастроенныеОбмены" + И НастройкаИзМенеджераСервиса.СинхронизацияНастроена Тогда + НастройкаИзМенеджераСервиса.УдалитьНастройку = Истина; + ИначеЕсли ДополнительныеПараметры.Режим = "НастроенныеОбмены" + И Не НастройкаИзМенеджераСервиса.СинхронизацияНастроена Тогда + НастройкаИзМенеджераСервиса.УдалитьНастройку = Истина; + КонецЕсли; + + КонецЦикла; + + Если НастройкиСинхронизацииИзМенеджераСервиса.Найти(Истина, "УдалитьНастройку") <> Неопределено Тогда + НастройкиСинхронизацииИзМенеджераСервиса = НастройкиСинхронизацииИзМенеджераСервиса.Скопировать( + Новый Структура("УдалитьНастройку", Ложь)); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#КонецЕсли diff --git a/SSL/src/DataProcessors/ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете/ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете.mdo b/SSL/src/DataProcessors/ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете/ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете.mdo new file mode 100644 index 000000000..492e83eb2 --- /dev/null +++ b/SSL/src/DataProcessors/ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете/ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете.mdo @@ -0,0 +1,12 @@ + + + + + + + ПомощникНастройкиСинхронизацииДанныхМеждуПриложениямиВИнтернете + + ru + Помощник настройки синхронизации данных между приложениями в Интернете + + diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/ДополнительноеОписание/Form.form b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/ДополнительноеОписание/Form.form new file mode 100644 index 000000000..c34399878 --- /dev/null +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/ДополнительноеОписание/Form.form @@ -0,0 +1,123 @@ + + + + ПолеHTMLДокумента + 1 + true + true + + true + + + ПолеHTMLДокумента + + true + None + + ПолеHTMLДокументаExtendedTooltip + 5 + Label + true + true + + Left + + + + ПолеHTMLДокументаКонтекстноеМеню + 2 + true + + HTMLDocumentField + Enter + true + Left + true + + 50 + 10 + true + true + true + + + Bottom + true + + ФормаКоманднаяПанель + -1 + + ФормаЗакрыть + 3 + true + true + + true + + + ФормаЗакрытьExtendedTooltip + 4 + Label + true + true + + Left + + + Form.StandardCommand.Close + PictureAndText + true + true + true + UserCmds + Auto + + Right + + + OnCreateAtServer + ПриСозданииНаСервере + + Abort + Cancel + Help + Ignore + No + OK + RestoreValues + Retry + SaveValues + Yes + 70 + 15 + LockOwner + true + true + Vertical + true + UseIfNecessary + auto + true + + ПолеHTMLДокумента + + <key>ru</key> + <value>Поле HTMLДокумента</value> + + 2 + + String + + + + true + + + true + + + + + + + diff --git a/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаВыбора/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/ДополнительноеОписание/Module.bsl similarity index 79% rename from SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаВыбора/Module.bsl rename to SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/ДополнительноеОписание/Module.bsl index bfdf98598..4eefb30c5 100644 --- a/SSL/src/Catalogs/ВариантыОтветовАнкет/Forms/ФормаВыбора/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/ДополнительноеОписание/Module.bsl @@ -11,9 +11,9 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; + ПолеHTMLДокумента = АвтономнаяРаботаСлужебный.ТекстИнструкцииИзМакета(Параметры.ИмяМакета); + + Заголовок = Параметры.Заголовок; КонецПроцедуры diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Form.form b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Form.form new file mode 100644 index 000000000..9792e728b --- /dev/null +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Form.form @@ -0,0 +1,2948 @@ + + + + <key>ru</key> + <value>Создание автономного рабочего места</value> + + + ПанельОсновная + 29 + + Начало + 30 + + ГруппаНачало + 314 + + КартинкаСозданиеЛокальногоРабочегоМеста + 91 + true + true + + true + + + КартинкаСозданиеЛокальногоРабочегоМестаExtendedTooltip + 229 + Label + true + true + + Left + + + + КартинкаСозданиеЛокальногоРабочегоМестаКонтекстноеМеню + 92 + true + + 64 + true + 9 + true + + + + + + Группа3 + 153 + + Декорация5 + 154 + true + true + + true + + + Декорация5ExtendedTooltip + 231 + Label + true + true + + Left + + + + Декорация5КонтекстноеМеню + 155 + true + + 2 + true + 2 + true + + + CommonPicture.Информация + + + + + ПоясняющаяНадписьОВерсииПлатформы + 151 + + <key>ru</key> + <value>Для автономной работы на Вашем компьютере должна быть установлена +платформа "1С:Предприятие" версии 8.3.</value> + + true + true + + true + + + ПоясняющаяНадписьОВерсииПлатформыExtendedTooltip + 232 + Label + true + true + + Left + + + + ПоясняющаяНадписьОВерсииПлатформыКонтекстноеМеню + 152 + true + + Label + 2 + true + + Style.ПоясняющийТекст + + + Left + Center + + + true + true + + true + + + Группа3ExtendedTooltip + 230 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + Группа5 + 173 + + Декорация8 + 174 + true + true + + true + + + Декорация8ExtendedTooltip + 234 + Label + true + true + + Left + + + + Декорация8КонтекстноеМеню + 175 + true + + Label + true + true + + Left + + + + КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие + 194 + true + true + + true + + true + + КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятиеExtendedTooltip + 235 + Label + true + true + + Left + + + Hyperlink + Form.Command.КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие + Normal + Auto + true + UserCmds + Auto + + true + true + + true + + + Группа5ExtendedTooltip + 233 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + НадписьДалее1 + 93 + + <key>ru</key> + <value>Нажмите кнопку "Далее" для настройки параметров автономной работы.</value> + + true + true + + true + + + НадписьДалее1ExtendedTooltip + 236 + Label + true + true + + Left + + + + НадписьДалее1КонтекстноеМеню + 94 + true + + Label + 3 + true + true + + Left + Bottom + + + true + true + + true + + + <key>ru</key> + <value>Создание автономного рабочего места</value> + + + ГруппаНачалоРасширеннаяПодсказка + 315 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + auto + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Начало</value> + + + НачалоExtendedTooltip + 227 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + НастройкаВыгрузки + 33 + + ГруппаНастройкаВыгрузки + 316 + + НаименованиеАвтономногоРабочегоМеста + 139 + + <key>ru</key> + <value>Наименование автономного рабочего места</value> + + true + true + + true + + + Объект.НаименованиеАвтономногоРабочегоМеста + + Top + Button + + НаименованиеАвтономногоРабочегоМестаExtendedTooltip + 239 + + <key>ru</key> + <value>Например, "Для работы дома" или "Командировка к партнеру".</value> + + Label + true + true + + Left + + + + НаименованиеАвтономногоРабочегоМестаКонтекстноеМеню + 140 + true + + InputField + true + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + Группа2 + 143 + + НастроитьОграниченияПередачиДанных + 105 + true + true + + true + + + НастроитьОграниченияПередачиДанныхExtendedTooltip + 242 + Label + true + true + + Left + + + UsualButton + Form.Command.НастроитьОграниченияПередачиДанных + Normal + Auto + true + true + UserCmds + Auto + + + ОписаниеОграниченийПередачиДанных + 206 + + <key>ru</key> + <value><В автономном рабочем месте доступны все данные.></value> + + true + true + + true + + + ОписаниеОграниченийПередачиДанныхExtendedTooltip + 243 + Label + true + true + + Left + + + + ОписаниеОграниченийПередачиДанныхКонтекстноеМеню + 207 + true + + Label + true + + Left + + + true + true + + true + + + Группа2ExtendedTooltip + 241 + Label + true + true + + Left + + + UsualGroup + + Auto + NormalSeparation + true + true + Auto + Auto + + + + НастройкаПравПользователей + 212 + + ПользователиСинхронизации + 213 + + <key>ru</key> + <value>Разрешить выполнять синхронизацию данных пользователям</value> + + true + true + + true + + + ПользователиСинхронизации + + Top + Change + + ПользователиРазрешитьСинхронизациюДанных + 224 + true + true + + true + + + ПользователиСинхронизации.РазрешитьСинхронизациюДанных + + + ПользователиРазрешитьСинхронизациюДанныхExtendedTooltip + 246 + Label + true + true + + Left + + + + ПользователиРазрешитьСинхронизациюДанныхКонтекстноеМеню + 225 + true + + CheckBoxField + Auto + true + Left + true + + + + ПользователиПользователь + 216 + true + true + + true + + + ПользователиСинхронизации.Пользователь + + + ПользователиПользовательExtendedTooltip + 247 + Label + true + true + + Left + + + + ПользователиПользовательКонтекстноеМеню + 217 + true + + InputField + true + Auto + true + Left + true + + true + true + true + true + true + Normal + + + None + + ПользователиСинхронизацииКоманднаяПанель + 215 + Left + true + + + ПользователиСинхронизацииСтрокаПоиска + 318 + + ПользователиСинхронизацииСтрокаПоискаРасширеннаяПодсказка + 320 + Label + true + true + + Left + + + + ПользователиСинхронизацииСтрокаПоискаКонтекстноеМеню + 319 + true + + ПользователиСинхронизации + + true + + + + ПользователиСинхронизацииСостояниеПросмотра + 321 + + ПользователиСинхронизацииСостояниеПросмотраРасширеннаяПодсказка + 323 + Label + true + true + + Left + + + + ПользователиСинхронизацииСостояниеПросмотраКонтекстноеМеню + 322 + true + + ViewStatusAddition + ПользователиСинхронизации + + true + + + + ПользователиСинхронизацииУправлениеПоиском + 324 + + ПользователиСинхронизацииУправлениеПоискомРасширеннаяПодсказка + 326 + Label + true + true + + Left + + + + ПользователиСинхронизацииУправлениеПоискомКонтекстноеМеню + 325 + true + + SearchControlAddition + ПользователиСинхронизации + + true + + + + ПользователиСинхронизацииExtendedTooltip + 245 + Label + true + true + + Left + + + + ПользователиСинхронизацииКонтекстноеМеню + 214 + true + + 42 + 5 + true + true + Row + 1 + 1 + AutoUse + AutoUse + true + true + false + Auto + Auto + None + None + None + true + + + + Декорация6 + 222 + + <key>ru</key> + <value>Указанные пользователи могут выполнять синхронизацию данных +с любыми автономными рабочими местами и другими программами.</value> + + true + true + + true + + + Декорация6ExtendedTooltip + 248 + Label + true + true + + Left + + + + Декорация6КонтекстноеМеню + 223 + true + + Label + true + + Style.ПоясняющийТекст + + + Left + + + true + true + + true + + + <key>ru</key> + <value>Настройка прав пользователей</value> + + + НастройкаПравПользователейExtendedTooltip + 244 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + НадписьДалее2 + 95 + + <key>ru</key> + <value>Нажмите кнопку "Создать" для подготовки данных для загрузки.</value> + + true + true + + true + + + НадписьДалее2ExtendedTooltip + 249 + Label + true + true + + Left + + + + НадписьДалее2КонтекстноеМеню + 96 + true + + Label + 3 + true + true + + Left + Bottom + + + true + true + + true + + + <key>ru</key> + <value>Настройка параметров</value> + + + ГруппаНастройкаВыгрузкиРасширеннаяПодсказка + 317 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + auto + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Настройка выгрузки</value> + + + НастройкаВыгрузкиExtendedTooltip + 237 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + ОжиданиеСозданияНачальногоОбраза + 45 + + ГруппировкаСообщения + 48 + + ГруппаКартинки + 49 + + Декорация14 + 50 + true + true + + true + + + Декорация14ExtendedTooltip + 254 + Label + true + true + + Left + + + + Декорация14КонтекстноеМеню + 51 + true + + 8 + true + 3 + true + false + + + CommonPicture.ДлительнаяОперация48 + + + + true + true + + true + + + <key>ru</key> + <value>Картинки</value> + + + ГруппаКартинкиExtendedTooltip + 253 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + + ГруппаСообщения + 52 + + Декорация15 + 53 + + <key>ru</key> + <value>Выполняется подготовка данных для загрузки на Ваш компьютер. +Это может занять несколько минут. +Пожалуйста, подождите...</value> + + true + true + + true + + + Декорация15ExtendedTooltip + 256 + Label + true + true + + Left + + + + Декорация15КонтекстноеМеню + 54 + true + + Label + 3 + true + true + false + + System.DefaultGUIFont + 10.0 + + + Left + Center + + + true + true + + true + + + <key>ru</key> + <value>Сообщения</value> + + + ГруппаСообщенияExtendedTooltip + 255 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Подготовка данных для загрузки</value> + + + ГруппировкаСообщенияExtendedTooltip + 252 + Label + true + true + + Left + + + UsualGroup + + Auto + NormalSeparation + true + true + auto + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Ожидание создания начального образа</value> + + + ru + Страница 14 + + + ОжиданиеСозданияНачальногоОбразаExtendedTooltip + 250 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + Окончание + 42 + + Группа4 + 167 + + Декорация3 + 168 + + <key>ru</key> + <value>1. Загрузите данные к себе на компьютер:</value> + + true + true + + true + + + Декорация3ExtendedTooltip + 260 + Label + true + true + + Left + + + + Декорация3КонтекстноеМеню + 169 + true + + Label + true + true + + Left + + + + ЗагрузитьНачальныйОбразНаКомпьютерПользователя + 170 + + <key>ru</key> + <value>Автономная работа.zip</value> + + true + true + + true + + + ЗагрузитьНачальныйОбразНаКомпьютерПользователяExtendedTooltip + 261 + + <key>ru</key> + <value>При возникновении проблем скачивания файла с использованием веб-клиента можно попробовать использовать для работы тонкий клиент 1С:Предприятия. +Для использования тонкого клиента ознакомьтесь с <link АдресИнструкцииПоНастройкеТонкогоКлиента>инструкцией</> или обратитесь за помощью у администратору.</value> + + true + Label + true + true + + + URLProcessing + ЗагрузитьНачальныйОбразНаКомпьютерПользователяРасширеннаяПодсказкаОбработкаНавигационнойСсылки + + Left + + + Hyperlink + Form.Command.ЗагрузитьНачальныйОбразНаКомпьютерПользователя + Normal + Auto + true + true + UserCmds + Button + Auto + + true + true + + true + + + <key>ru</key> + <value>Создание автономного рабочего места успешно завершено</value> + + + Группа4ExtendedTooltip + 259 + Label + true + true + + Left + + + UsualGroup + + Auto + NormalSeparation + true + true + auto + Auto + Auto + + + + Декорация1 + 210 + + <key>ru</key> + <value>2. Следуйте инструкции:</value> + + true + true + + true + + + Декорация1ExtendedTooltip + 262 + Label + true + true + + Left + + + + Декорация1КонтекстноеМеню + 211 + true + + Label + true + true + + Left + + + + Группа9 + 201 + + Группа6 + 180 + + ИнструкцияПоНастройкеАвтономногоРабочегоМестаСохранитьИнструкциюКак + 209 + true + true + + true + + + ИнструкцияПоНастройкеАвтономногоРабочегоМестаСохранитьИнструкциюКакExtendedTooltip + 266 + Label + true + true + + Left + + + Form.Command.СохранитьИнструкциюКак + Normal + Auto + true + true + UserCmds + Auto + + + ИнструкцияПоНастройкеАвтономногоРабочегоМестаПечатьИнструкции + 208 + true + true + + true + + + ИнструкцияПоНастройкеАвтономногоРабочегоМестаПечатьИнструкцииExtendedTooltip + 265 + Label + true + true + + Left + + + Form.Command.ПечатьИнструкции + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + Группа6ExtendedTooltip + 264 + Label + true + true + + Left + + + CommandBar + + Left + Item.ИнструкцияПоНастройкеАвтономногоРабочегоМеста + + + + ИнструкцияПоНастройкеАвтономногоРабочегоМеста + 171 + true + true + + true + + + ИнструкцияПоНастройкеАвтономногоРабочегоМеста + + None + + ИнструкцияПоНастройкеАвтономногоРабочегоМестаExtendedTooltip + 267 + Label + true + true + + Left + + + + ИнструкцияПоНастройкеАвтономногоРабочегоМестаКонтекстноеМеню + 172 + true + + HTMLDocumentField + Enter + true + Left + true + + + DocumentComplete + ИнструкцияПоНастройкеАвтономногоРабочегоМестаДокументСформирован + + 50 + true + 10 + true + true + true + + + true + true + + true + + + Группа9ExtendedTooltip + 263 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Окончание</value> + + + ОкончаниеExtendedTooltip + 257 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Панель основная</value> + + + ru + Панель навигации + + true + true + + ПанельОсновнаяExtendedTooltip + 226 + Label + true + true + + Left + + + Pages + + Auto + + + + РамкаПанелиНавигации + 55 + + ПанельНавигации + 56 + + СтраницаНавигацииНачало + 57 + + КоманднаяПанельСлева1 + 297 + + КомандаНазад + 59 + true + + true + + + КомандаНазадExtendedTooltip + 272 + Label + true + true + + Left + + + Form.Command.КомандаНазад + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Командная панель слева 1</value> + + + КоманднаяПанельСлева1РасширеннаяПодсказка + 298 + Label + true + true + + Left + + + CommandBar + + Left + + + + КоманднаяПанельСправа1 + 58 + + КомандаДалее + 60 + true + true + + true + + true + + КомандаДалееExtendedTooltip + 273 + Label + true + true + + Left + + + Form.Command.КомандаДалее + Auto + true + true + true + UserCmds + Auto + + + КомандаОтмена + 61 + true + true + + true + + + КомандаОтменаExtendedTooltip + 274 + Label + true + true + + Left + + + Form.Command.КомандаОтмена + Normal + Auto + true + true + UserCmds + Auto + + + Справка + 62 + true + true + + true + + + СправкаExtendedTooltip + 275 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Командная панель справа 1</value> + + true + + КоманднаяПанельСправа1РасширеннаяПодсказка + 271 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Страница навигации начало</value> + + + СтраницаНавигацииНачалоExtendedTooltip + 270 + Label + true + true + + Left + + + Page + + auto + false + + + + СтраницаНавигацииПродолжение + 63 + + КоманднаяПанельСлева2 + 302 + + КомандаНазад1 + 65 + true + true + + true + + + КомандаНазад1ExtendedTooltip + 278 + Label + true + true + + Left + + + Form.Command.КомандаНазад + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Командная панель слева 2</value> + + + КоманднаяПанельСлева2РасширеннаяПодсказка + 303 + Label + true + true + + Left + + + CommandBar + + Left + + + + КоманднаяПанельСправа2 + 64 + + КомандаДалее1 + 66 + + <key>ru</key> + <value>Создать</value> + + true + true + + true + + true + + КомандаДалее1ExtendedTooltip + 279 + Label + true + true + + Left + + + Form.Command.КомандаДалее + Normal + PictureAndText + true + true + UserCmds + + StdPicture.CreateInitialImage + + Auto + + + КомандаОтмена1 + 67 + true + true + + true + + + КомандаОтмена1ExtendedTooltip + 280 + Label + true + true + + Left + + + Form.Command.КомандаОтмена + Normal + Auto + true + true + UserCmds + Auto + + + Справка1 + 68 + true + true + + true + + + Справка1ExtendedTooltip + 281 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Командная панель справа 2</value> + + true + + КоманднаяПанельСправа2РасширеннаяПодсказка + 277 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Страница навигации продолжение</value> + + + СтраницаНавигацииПродолжениеExtendedTooltip + 276 + Label + true + true + + Left + + + Page + + auto + false + + + + СтраницаНавигацииОкончание + 69 + + КоманднаяПанельСлева3 + 307 + + КомандаНазад2 + 71 + true + false + + true + + + КомандаНазад2ExtendedTooltip + 284 + Label + true + true + + Left + + + Form.Command.КомандаНазад + Normal + Auto + true + true + UserCmds + Auto + + true + true + + true + + + <key>ru</key> + <value>Командная панель слева 3</value> + + + КоманднаяПанельСлева3РасширеннаяПодсказка + 308 + Label + true + true + + Left + + + CommandBar + + Left + + + + КоманднаяПанельСправа3 + 70 + + КомандаГотово + 72 + true + true + + true + + + КомандаГотовоExtendedTooltip + 285 + Label + true + true + + Left + + + Form.Command.КомандаГотово + Normal + Auto + true + true + UserCmds + Auto + + + КомандаОтмена2 + 73 + true + false + + true + + + КомандаОтмена2ExtendedTooltip + 286 + Label + true + true + + Left + + + Form.Command.КомандаОтмена + Normal + Auto + true + true + UserCmds + Auto + + + Справка2 + 74 + true + true + + true + + + Справка2ExtendedTooltip + 287 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Командная панель справа 3</value> + + true + + КоманднаяПанельСправа3РасширеннаяПодсказка + 283 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Страница навигации окончание</value> + + + СтраницаНавигацииОкончаниеExtendedTooltip + 282 + Label + true + true + + Left + + + Page + + auto + false + + + + СтраницаНавигацииОжидание + 75 + + КоманднаяПанельСлева4 + 312 + + КомандаНазад3 + 77 + true + false + + true + + + КомандаНазад3ExtendedTooltip + 290 + Label + true + true + + Left + + + Form.Command.КомандаНазад + Normal + Auto + true + true + UserCmds + Auto + + true + false + + true + + + <key>ru</key> + <value>Командная панель слева 4</value> + + + КоманднаяПанельСлева4РасширеннаяПодсказка + 313 + Label + true + true + + Left + + + CommandBar + + Left + + + + КоманднаяПанельСправа4 + 76 + + КомандаДалее3 + 78 + + <key>ru</key> + <value>Далее ></value> + + true + false + + true + + + КомандаДалее3ExtendedTooltip + 291 + Label + true + true + + Left + + + Form.Command.КомандаДалее + Normal + Auto + true + true + UserCmds + Auto + + + КомандаОтмена3 + 79 + true + true + + true + + + КомандаОтмена3ExtendedTooltip + 292 + Label + true + true + + Left + + + Form.Command.КомандаОтмена + Normal + Auto + true + true + UserCmds + Auto + + + Справка3 + 80 + true + true + + true + + + Справка3ExtendedTooltip + 293 + Label + true + true + + Left + + + Form.StandardCommand.Help + Normal + Auto + true + true + UserCmds + Auto + InCommandBarAndInAdditionalSubmenu + + true + true + + true + + + <key>ru</key> + <value>Командная панель справа 4</value> + + true + + КоманднаяПанельСправа4РасширеннаяПодсказка + 289 + Label + true + true + + Left + + + CommandBar + + Right + + + true + true + + true + + + <key>ru</key> + <value>Страница навигации ожидание</value> + + true + + СтраницаНавигацииОжиданиеExtendedTooltip + 288 + Label + true + true + + Left + + + Page + + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Панель навигации</value> + + true + + ПанельНавигацииExtendedTooltip + 269 + Label + true + true + + Left + + + Pages + + Auto + + + true + true + + true + + + <key>ru</key> + <value>Рамка панели навигации</value> + + + РамкаПанелиНавигацииExtendedTooltip + 268 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + + None + false + + ФормаКоманднаяПанель + -1 + Left + true + + + OnOpen + ПриОткрытии + + + BeforeClose + ПередЗакрытием + + + OnCreateAtServer + ПриСозданииНаСервере + + LockOwner + true + true + Vertical + true + true + UseIfNecessary + auto + true + + Объект + 1 + + DataProcessorObject.ПомощникСозданияАвтономногоРабочегоМеста + + + true + + + true + +
          true
          +
          + + ПорядковыйНомерПерехода + + <key>ru</key> + <value>Порядковый номер перехода</value> + + 2 + + Number + + 3 + true + + + + true + + + true + + + + ТаблицаПереходов + + <key>ru</key> + <value>Таблица переходов</value> + + 3 + + ValueTable + + + true + + + true + + + ПорядковыйНомерПерехода + + <key>ru</key> + <value>Порядковый номер перехода</value> + + 1 + + Number + + 3 + true + + + + 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> + + 5 + + String + + + + true + + + true + + + + ИмяОбработчикаПриПереходеДалее + + <key>ru</key> + <value>Имя обработчика при переходе далее</value> + + 6 + + String + + + + true + + + true + + + + ИмяОбработчикаПриПереходеНазад + + <key>ru</key> + <value>Имя обработчика при переходе назад</value> + + 7 + + String + + + + true + + + true + + + + ДлительнаяОперация + + <key>ru</key> + <value>Длительная операция</value> + + 8 + + Boolean + + + true + + + true + + + + ИмяОбработчикаДлительнойОперации + + <key>ru</key> + <value>Имя обработчика длительной операции</value> + + 9 + + String + + + + true + + + true + + + + + НастройкаОтборовНаУзле + + <key>ru</key> + <value>Настройка отборов на узле</value> + + 9 + + + true + + + true + + + + ИнструкцияПоНастройкеАвтономногоРабочегоМеста + + <key>ru</key> + <value>Инструкция по настройке автономного рабочего места</value> + + 13 + + String + + + + true + + + true + + + + ИмяПланаОбмена + + <key>ru</key> + <value>Имя плана обмена</value> + + 14 + + String + + + + true + + + true + + + + ДлительнаяОперация + + <key>ru</key> + <value>Длительная операция</value> + + 6 + + Boolean + + + true + + + true + + + + ДлительнаяОперацияЗавершена + + <key>ru</key> + <value>Длительная операция завершена</value> + + 7 + + Boolean + + + true + + + true + + + + СобытиеЖурналаРегистрацииСозданиеАвтономногоРабочегоМеста + + <key>ru</key> + <value>Событие журнала регистрации создание автономного рабочего места</value> + + 10 + + String + + + + true + + + true + + + + ИдентификаторЗадания + + <key>ru</key> + <value>Идентификатор задания</value> + + 11 + + + true + + + true + + + + АдресВременногоХранилищаНачальногоОбраза + + <key>ru</key> + <value>Адрес временного хранилища начального образа</value> + + 8 + + String + + + + true + + + true + + + + ИмяФайлаПакетаУстановки + + <key>ru</key> + <value>Имя файла пакета установки</value> + + 12 + + String + + + + true + + + true + + + + АдресВременногоХранилищаИнформацииОПакетеУстановки + + <key>ru</key> + <value>Адрес временного хранилища информации о пакете установки</value> + + 15 + + String + + + + true + + + true + + + + РазмерФайлаПакетаУстановки + + <key>ru</key> + <value>Размер файла пакета установки</value> + + 16 + + Number + + 10 + 1 + + + + true + + + true + + + + ПользователиСинхронизации + + <key>ru</key> + <value>Пользователи синхронизации</value> + + 4 + + ValueTable + + + true + + + true + + + Пользователь + + <key>ru</key> + <value>Пользователь</value> + + 1 + + CatalogRef.Пользователи + + + true + + + true + + + + СинхронизацияДанныхРазрешена + + <key>ru</key> + <value>Синхронизация данных разрешена</value> + + 2 + + Boolean + + + true + + + true + + + + РазрешитьСинхронизациюДанных + + <key>ru</key> + <value>Разрешить синхронизацию данных</value> + + 3 + + Boolean + + + true + + + true + + + + + ЗакрытьФормуБезусловно + + <key>ru</key> + <value>Закрыть форму безусловно</value> + + 5 + + Boolean + + + true + + + true + + + + АдресИнструкцииПоНастройкеТонкогоКлиента + + <key>ru</key> + <value>Адрес инструкции по настройке тонкого клиента</value> + + 17 + + String + + + + true + + + true + + + + КомандаГотово + + <key>ru</key> + <value>Готово</value> + + 2 + + true + + + + КомандаГотово + + + DontUse + Auto + + + КомандаДалее + + <key>ru</key> + <value>Далее ></value> + + 3 + + true + + + + КомандаДалее + + + DontUse + Auto + + + КомандаНазад + + <key>ru</key> + <value>< Назад</value> + + 4 + + true + + + + КомандаНазад + + + DontUse + Auto + + + КомандаОтмена + + <key>ru</key> + <value>Отмена</value> + + 5 + + true + + + + КомандаОтмена + + + DontUse + Auto + + + НастроитьОграниченияПередачиДанных + + <key>ru</key> + <value>Изменить...</value> + + 6 + + true + + + StdPicture.FilterCriterion + + + + НастроитьОграниченияПередачиДанных + + + TextPicture + DontUse + Auto + + + ЗагрузитьНачальныйОбразНаКомпьютерПользователя + + <key>ru</key> + <value>Загрузить</value> + + 8 + + true + + + StdPicture.MoveDown + + + + ЗагрузитьНачальныйОбразНаКомпьютерПользователя + + + TextPicture + DontUse + Auto + + + КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие + + <key>ru</key> + <value>Как установить или обновить версию платформы 1С:Предприятие</value> + + 1 + + true + + + + КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие + + + DontUse + Auto + + + ПечатьИнструкции + + <key>ru</key> + <value>Печать</value> + + 9 + + ru + Печать инструкции + + + true + + + StdPicture.Print + + + + ПечатьИнструкции + + + TextPicture + DontUse + Auto + + + СохранитьИнструкциюКак + + <key>ru</key> + <value>Загрузить</value> + + 10 + + true + + + StdPicture.Write + + + + СохранитьИнструкциюКак + + + TextPicture + DontUse + Auto + + + + + + +
          diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Items/КартинкаСозданиеЛокальногоРабочегоМеста/Picture.png b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Items/КартинкаСозданиеЛокальногоРабочегоМеста/Picture.png new file mode 100644 index 000000000..8cec9ae00 Binary files /dev/null and b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Items/КартинкаСозданиеЛокальногоРабочегоМеста/Picture.png differ diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Module.bsl new file mode 100644 index 000000000..4ce0ae98a --- /dev/null +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Forms/НастройкаНаСторонеСервиса/Module.bsl @@ -0,0 +1,840 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + УстановитьУсловноеОформление(); + + ОбменДаннымиСервер.ПроверитьВозможностьАдминистрированияОбменов(); + + УстановитьПривилегированныйРежим(Истина); + + ОбменДаннымиВМоделиСервиса.ПриСозданииАвтономногоРабочегоМеста(); + + ОбменДаннымиВМоделиСервисаПереопределяемый.ПриСозданииАвтономногоРабочегоМеста(); + + ИмяПланаОбмена = АвтономнаяРаботаСлужебный.ПланОбменаАвтономнойРаботы(); + + // получаем значения по умолчанию для плана обмена + МенеджерПланаОбмена = ПланыОбмена[ИмяПланаОбмена]; + + НастройкаОтборовНаУзле = ОбменДаннымиСервер.НастройкаОтборовНаУзле(ИмяПланаОбмена, ""); + + Элементы.ОписаниеОграниченийПередачиДанных.Заголовок = ОписаниеОграниченийПередачиДанных(ИмяПланаОбмена, НастройкаОтборовНаУзле); + + ИнструкцияПоНастройкеАвтономногоРабочегоМеста = АвтономнаяРаботаСлужебный.ТекстИнструкцииИзМакета("ИнструкцияПоНастройкеАвтономногоРабочегоМеста"); + + Элементы.ПоясняющаяНадписьОВерсииПлатформы.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Для автономной работы на Вашем компьютере должна быть установлена + |платформа ""1С:Предприятие"" версии %1.'"), + ОбменДаннымиВМоделиСервиса.ТребуемаяВерсияПлатформы()); + + Объект.НаименованиеАвтономногоРабочегоМеста = АвтономнаяРаботаСлужебный.СформироватьНаименованиеАвтономногоРабочегоМестаПоУмолчанию(); + + // Устанавливаем текущую таблицу переходов + СценарийСозданияАвтономногоРабочегоМеста(); + + ЗакрытьФормуБезусловно = Ложь; + + СобытиеЖурналаРегистрацииСозданиеАвтономногоРабочегоМеста = АвтономнаяРаботаСлужебный.СобытиеЖурналаРегистрацииСозданиеАвтономногоРабочегоМеста(); + + ИмяФайлаПакетаУстановки = АвтономнаяРаботаСлужебный.ИмяФайлаПакетаУстановки(); + + // Настройка прав пользователей на выполнение синхронизации данных + + Элементы.НастройкаПравПользователей.Видимость = Ложь; + + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + + ПользователиСинхронизации.Загрузить(ПользователиСинхронизации()); + + Элементы.НастройкаПравПользователей.Видимость = ПользователиСинхронизации.Количество() > 1; + + КонецЕсли; + + // Подсказка о тонком клиенте + АдресИнструкцииПоНастройкеТонкогоКлиента = ОбменДаннымиВМоделиСервиса.АдресИнструкцииПоНастройкеТонкогоКлиента(); + Если ПустаяСтрока(АдресИнструкцииПоНастройкеТонкогоКлиента) Тогда + Элементы.ЗагрузитьНачальныйОбразНаКомпьютерПользователя.ОтображениеПодсказки = ОтображениеПодсказки.Нет; + КонецЕсли; + + СтандартныеПодсистемыСервер.УстановитьОтображениеЗаголовковГрупп(ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриОткрытии(Отказ) + + Объект.URLВебСервиса = АдресПриложенияВИнтернете(); + + // Позиционируемся на первом шаге помощника + УстановитьПорядковыйНомерПерехода(1); + +КонецПроцедуры + +&НаКлиенте +Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) + + Если ЗавершениеРаботы Тогда + Возврат; + КонецЕсли; + + Если Элементы.ПанельОсновная.ТекущаяСтраница = Элементы.Окончание Тогда + Возврат; + КонецЕсли; + + ОписаниеОповещения = Новый ОписаниеОповещения("ОтменитьСозданиеАвтономногоРабочегоМеста", ЭтотОбъект); + + ТекстПредупреждения = НСтр("ru = 'Отменить создание автономного рабочего места?'"); + ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияПроизвольнойФормы( + ЭтотОбъект, Отказ, ЗавершениеРаботы, ТекстПредупреждения, "ЗакрытьФормуБезусловно", ОписаниеОповещения); + +КонецПроцедуры + +// Обработчики ожидания + +&НаКлиенте +Процедура ОбработчикОжиданияДлительнойОперации() + + Попытка + + Если ЗаданиеВыполнено(ИдентификаторЗадания) Тогда + + ДлительнаяОперация = Ложь; + ДлительнаяОперацияЗавершена = Истина; + ПерейтиДалее(); + + Иначе + ПодключитьОбработчикОжидания("ОбработчикОжиданияДлительнойОперации", 5, Истина); + КонецЕсли; + + Исключение + ДлительнаяОперация = Ложь; + ПерейтиНазад(); + ПоказатьПредупреждение(, НСтр("ru = 'Не удалось выполнить операцию.'")); + + ЗаписатьОшибкуВЖурналРегистрации( + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), СобытиеЖурналаРегистрацииСозданиеАвтономногоРабочегоМеста); + КонецПопытки; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура ИнструкцияПоНастройкеАвтономногоРабочегоМестаДокументСформирован(Элемент) + + // Видимость команды печати + Если Не Элемент.Документ.queryCommandSupported("Print") Тогда + Элементы.ИнструкцияПоНастройкеАвтономногоРабочегоМестаПечатьИнструкции.Видимость = Ложь; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +// Поставляемая часть + +&НаКлиенте +Процедура КомандаДалее(Команда) + + ИзменитьПорядковыйНомерПерехода(+1); + +КонецПроцедуры + +&НаКлиенте +Процедура КомандаНазад(Команда) + + ИзменитьПорядковыйНомерПерехода(-1); + +КонецПроцедуры + +&НаКлиенте +Процедура КомандаГотово(Команда) + + ЗакрытьФормуБезусловно = Истина; + + Закрыть(); + +КонецПроцедуры + +&НаКлиенте +Процедура КомандаОтмена(Команда) + + Закрыть(); + +КонецПроцедуры + +// Переопределяемая часть + +&НаКлиенте +Процедура НастроитьОграниченияПередачиДанных(Команда) + + ИмяФормыНастройкиУзла = "ПланОбмена.[ИмяПланаОбмена].Форма.ФормаНастройкиУзла"; + ИмяФормыНастройкиУзла = СтрЗаменить(ИмяФормыНастройкиУзла, "[ИмяПланаОбмена]", ИмяПланаОбмена); + + ПараметрыФормы = Новый Структура("НастройкаОтборовНаУзле, ВерсияКорреспондента", НастройкаОтборовНаУзле, ""); + Обработчик = Новый ОписаниеОповещения("НастроитьОграниченияПередачиДанныхЗавершение", ЭтотОбъект); + Режим = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца; + + ОткрытьФорму(ИмяФормыНастройкиУзла, ПараметрыФормы, ЭтотОбъект,,,,Обработчик, Режим); + +КонецПроцедуры + +&НаКлиенте +Процедура НастроитьОграниченияПередачиДанныхЗавершение(РезультатОткрытия, ДополнительныеПараметры) Экспорт + + Если РезультатОткрытия <> Неопределено Тогда + + Для Каждого НастройкаОтбора Из НастройкаОтборовНаУзле Цикл + + НастройкаОтборовНаУзле[НастройкаОтбора.Ключ] = РезультатОткрытия[НастройкаОтбора.Ключ]; + + КонецЦикла; + + Элементы.ОписаниеОграниченийПередачиДанных.Заголовок = ОписаниеОграниченийПередачиДанных(ИмяПланаОбмена, НастройкаОтборовНаУзле); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ЗагрузитьНачальныйОбразНаКомпьютерПользователя(Команда) + + ПолучитьФайл(АдресВременногоХранилищаНачальногоОбраза, ИмяФайлаПакетаУстановки); + +КонецПроцедуры + +&НаКлиенте +Процедура КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие(Команда) + + ПараметрыФормы = Новый Структура; + ПараметрыФормы.Вставить("ИмяМакета", "КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие"); + ПараметрыФормы.Вставить("Заголовок", НСтр("ru = 'Как установить или обновить версию платформы 1С:Предприятие'")); + + ОткрытьФорму("Обработка.ПомощникСозданияАвтономногоРабочегоМеста.Форма.ДополнительноеОписание", ПараметрыФормы, ЭтотОбъект, "КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие"); + +КонецПроцедуры + +&НаКлиенте +Процедура ПечатьИнструкции(Команда) + + Элементы.ИнструкцияПоНастройкеАвтономногоРабочегоМеста.Документ.execCommand("Print"); + +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьИнструкциюКак(Команда) + + АдресВоВременномХранилище = ПолучитьМакет(); + ПолучитьФайл(АдресВоВременномХранилище, НСтр("ru = 'Инструкция по настройке автономного рабочего места.html'")); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервере +Процедура УстановитьУсловноеОформление() + + УсловноеОформление.Элементы.Очистить(); + + Элемент = УсловноеОформление.Элементы.Добавить(); + + ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); + ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ПользователиРазрешитьСинхронизациюДанных.Имя); + + ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); + ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПользователиСинхронизации.СинхронизацияДанныхРазрешена"); + ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; + ОтборЭлемента.ПравоеЗначение = Истина; + + Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗагрузитьНачальныйОбразНаКомпьютерПользователяРасширеннаяПодсказкаОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) + + Если НавигационнаяСсылкаФорматированнойСтроки = "АдресИнструкцииПоНастройкеТонкогоКлиента" Тогда + СтандартнаяОбработка = Ложь; + ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(АдресИнструкцииПоНастройкеТонкогоКлиента); + КонецЕсли; + +КонецПроцедуры + +//////////////////////////////////////////////////////////////////////////////// +// Поставляемая часть + +&НаКлиенте +Процедура ИзменитьПорядковыйНомерПерехода(Итератор) + + ОчиститьСообщения(); + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + Итератор); + +КонецПроцедуры + +&НаКлиенте +Процедура УстановитьПорядковыйНомерПерехода(Знач Значение) + + ЭтоПереходДалее = (Значение > ПорядковыйНомерПерехода); + + ПорядковыйНомерПерехода = Значение; + + Если ПорядковыйНомерПерехода < 0 Тогда + + ПорядковыйНомерПерехода = 0; + + КонецЕсли; + + ПорядковыйНомерПереходаПриИзменении(ЭтоПереходДалее); + +КонецПроцедуры + +&НаКлиенте +Процедура ПорядковыйНомерПереходаПриИзменении(Знач ЭтоПереходДалее) + + // Выполняем обработчики событий перехода + ВыполнитьОбработчикиСобытийПерехода(ЭтоПереходДалее); + + // Устанавливаем отображение страниц + СтрокиПереходаТекущие = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода)); + + Если СтрокиПереходаТекущие.Количество() = 0 Тогда + ВызватьИсключение НСтр("ru = 'Не определена страница для отображения.'"); + КонецЕсли; + + СтрокаПереходаТекущая = СтрокиПереходаТекущие[0]; + + Элементы.ПанельОсновная.ТекущаяСтраница = Элементы[СтрокаПереходаТекущая.ИмяОсновнойСтраницы]; + Элементы.ПанельНавигации.ТекущаяСтраница = Элементы[СтрокаПереходаТекущая.ИмяСтраницыНавигации]; + + // Устанавливаем текущую кнопку по умолчанию + КнопкаДалее = ПолучитьКнопкуФормыПоИмениКоманды(Элементы.ПанельНавигации.ТекущаяСтраница, "КомандаДалее"); + + Если КнопкаДалее <> Неопределено Тогда + + КнопкаДалее.КнопкаПоУмолчанию = Истина; + + Иначе + + КнопкаГотово = ПолучитьКнопкуФормыПоИмениКоманды(Элементы.ПанельНавигации.ТекущаяСтраница, "КомандаГотово"); + + Если КнопкаГотово <> Неопределено Тогда + + КнопкаГотово.КнопкаПоУмолчанию = Истина; + + КонецЕсли; + + КонецЕсли; + + Если ЭтоПереходДалее И СтрокаПереходаТекущая.ДлительнаяОперация Тогда + + ПодключитьОбработчикОжидания("ВыполнитьОбработчикДлительнойОперации", 1, Истина); + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьОбработчикиСобытийПерехода(Знач ЭтоПереходДалее) + + // Обработчики событий переходов + Если ЭтоПереходДалее Тогда + + СтрокиПерехода = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода - 1)); + + Если СтрокиПерехода.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + СтрокаПерехода = СтрокиПерехода[0]; + + // обработчик ПриПереходеДалее + Если Не ПустаяСтрока(СтрокаПерехода.ИмяОбработчикаПриПереходеДалее) + И Не СтрокаПерехода.ДлительнаяОперация Тогда + + ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ)"; + ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПерехода.ИмяОбработчикаПриПереходеДалее); + + Отказ = Ложь; + + РезультатВычисления = Вычислить(ИмяПроцедуры); + + Если Отказ Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1); + + Возврат; + + КонецЕсли; + + КонецЕсли; + + Иначе + + СтрокиПерехода = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода + 1)); + + Если СтрокиПерехода.Количество() = 0 Тогда + Возврат; + КонецЕсли; + + СтрокаПерехода = СтрокиПерехода[0]; + + // обработчик ПриПереходеНазад + Если Не ПустаяСтрока(СтрокаПерехода.ИмяОбработчикаПриПереходеНазад) + И Не СтрокаПерехода.ДлительнаяОперация Тогда + + ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ)"; + ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПерехода.ИмяОбработчикаПриПереходеНазад); + + Отказ = Ложь; + + РезультатВычисления = Вычислить(ИмяПроцедуры); + + Если Отказ Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1); + + Возврат; + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + + СтрокиПереходаТекущие = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода)); + + Если СтрокиПереходаТекущие.Количество() = 0 Тогда + ВызватьИсключение НСтр("ru = 'Не определена страница для отображения.'"); + КонецЕсли; + + СтрокаПереходаТекущая = СтрокиПереходаТекущие[0]; + + Если СтрокаПереходаТекущая.ДлительнаяОперация И Не ЭтоПереходДалее Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1); + Возврат; + КонецЕсли; + + // обработчик ПриОткрытии + Если Не ПустаяСтрока(СтрокаПереходаТекущая.ИмяОбработчикаПриОткрытии) Тогда + + ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ, ПропуститьСтраницу, ЭтоПереходДалее)"; + ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПереходаТекущая.ИмяОбработчикаПриОткрытии); + + Отказ = Ложь; + ПропуститьСтраницу = Ложь; + + РезультатВычисления = Вычислить(ИмяПроцедуры); + + Если Отказ Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1); + + Возврат; + + ИначеЕсли ПропуститьСтраницу Тогда + + Если ЭтоПереходДалее Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1); + + Возврат; + + Иначе + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1); + + Возврат; + + КонецЕсли; + + КонецЕсли; + + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьОбработчикДлительнойОперации() + + СтрокиПереходаТекущие = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода)); + + Если СтрокиПереходаТекущие.Количество() = 0 Тогда + ВызватьИсключение НСтр("ru = 'Не определена страница для отображения.'"); + КонецЕсли; + + СтрокаПереходаТекущая = СтрокиПереходаТекущие[0]; + + // обработчик ОбработкаДлительнойОперации + Если Не ПустаяСтрока(СтрокаПереходаТекущая.ИмяОбработчикаДлительнойОперации) Тогда + + ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ, ПерейтиДалее)"; + ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПереходаТекущая.ИмяОбработчикаДлительнойОперации); + + Отказ = Ложь; + ПерейтиДалее = Истина; + + РезультатВычисления = Вычислить(ИмяПроцедуры); + + Если Отказ Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1); + + Возврат; + + ИначеЕсли ПерейтиДалее Тогда + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1); + + Возврат; + + КонецЕсли; + + Иначе + + УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1); + + Возврат; + + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Функция ТаблицаПереходовНоваяСтрока(ИмяОсновнойСтраницы, ИмяСтраницыНавигации, ИмяСтраницыДекорации = "") + + НоваяСтрока = ТаблицаПереходов.Добавить(); + + НоваяСтрока.ПорядковыйНомерПерехода = ТаблицаПереходов.Количество(); + НоваяСтрока.ИмяОсновнойСтраницы = ИмяОсновнойСтраницы; + НоваяСтрока.ИмяСтраницыДекорации = ИмяСтраницыДекорации; + НоваяСтрока.ИмяСтраницыНавигации = ИмяСтраницыНавигации; + + Возврат НоваяСтрока; + +КонецФункции + +&НаКлиенте +Функция ПолучитьКнопкуФормыПоИмениКоманды(ЭлементФормы, ИмяКоманды) + + Для Каждого Элемент Из ЭлементФормы.ПодчиненныеЭлементы Цикл + + Если ТипЗнч(Элемент) = Тип("ГруппаФормы") Тогда + + ЭлементФормыПоИмениКоманды = ПолучитьКнопкуФормыПоИмениКоманды(Элемент, ИмяКоманды); + + Если ЭлементФормыПоИмениКоманды <> Неопределено Тогда + + Возврат ЭлементФормыПоИмениКоманды; + + КонецЕсли; + + ИначеЕсли ТипЗнч(Элемент) = Тип("КнопкаФормы") + И СтрНайти(Элемент.ИмяКоманды, ИмяКоманды) > 0 Тогда + + Возврат Элемент; + + Иначе + + Продолжить; + + КонецЕсли; + + КонецЦикла; + + Возврат Неопределено; + +КонецФункции + +&НаСервере +Функция ПолучитьМакет() + + ИмяВременногоФайла = ПолучитьИмяВременногоФайла(); + ТекстовыйДокумент = Новый ТекстовыйДокумент; + ТекстовыйДокумент.УстановитьТекст(ИнструкцияПоНастройкеАвтономногоРабочегоМеста); + ТекстовыйДокумент.Записать(ИмяВременногоФайла); + ДвоичныеДанные = Новый ДвоичныеДанные(ИмяВременногоФайла); + УдалитьФайлы(ИмяВременногоФайла); + + Возврат ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор); + +КонецФункции + +&НаКлиенте +Процедура ОтменитьСозданиеАвтономногоРабочегоМеста(Результат, ДополнительныеПараметры) Экспорт + + Если Объект.АвтономноеРабочееМесто <> Неопределено Тогда + ОбменДаннымиВызовСервера.УдалитьНастройкуСинхронизации(Объект.АвтономноеРабочееМесто); + КонецЕсли; + +КонецПроцедуры + +//////////////////////////////////////////////////////////////////////////////// +// Переопределяемая часть - Служебные процедуры и функции + +&НаСервере +Процедура СоздатьНачальныйОбразАвтономногоРабочегоМестаНаСервере(Отказ) + + Отбор = Новый Структура("СинхронизацияДанныхРазрешена, РазрешитьСинхронизациюДанных", Ложь, Истина); + ВыбранныеПользователиСинхронизации = ПользователиСинхронизации.Выгрузить(Отбор, "Пользователь").ВыгрузитьКолонку("Пользователь"); + + КонтекстПомощника = Новый Структура( + "URLВебСервиса, НаименованиеАвтономногоРабочегоМеста, АвтономноеРабочееМесто"); + ЗаполнитьЗначенияСвойств(КонтекстПомощника, Объект); + + КонтекстПомощника.Вставить("НастройкаОтборовНаУзле", НастройкаОтборовНаУзле); + КонтекстПомощника.Вставить("ВыбранныеПользователиСинхронизации", ВыбранныеПользователиСинхронизации); + + Попытка + ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор); + ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Создание начального образа автономного рабочего места'"); + ПараметрыВыполнения.ДополнительныйРезультат = Истина; + ПараметрыВыполнения.ЗапуститьНеВФоне = Ложь; + ПараметрыВыполнения.ЗапуститьВФоне = Истина; + + ФоновоеЗадание = ДлительныеОперации.ВыполнитьВФоне( + "АвтономнаяРаботаСлужебный.СоздатьНачальныйОбразАвтономногоРабочегоМеста", + КонтекстПомощника, + ПараметрыВыполнения); + + АдресВременногоХранилищаНачальногоОбраза = ФоновоеЗадание.АдресРезультата; + АдресВременногоХранилищаИнформацииОПакетеУстановки = ФоновоеЗадание.АдресДополнительногоРезультата; + + Если ФоновоеЗадание.Статус = "Выполняется" Тогда + ДлительнаяОперация = Истина; + ИдентификаторЗадания = ФоновоеЗадание.ИдентификаторЗадания; + ИначеЕсли ФоновоеЗадание.Статус = "Выполнено" Тогда + ИнформацияОПакетеУстановки = ПолучитьИзВременногоХранилища(АдресВременногоХранилищаИнформацииОПакетеУстановки); + РазмерФайлаПакетаУстановки = ИнформацияОПакетеУстановки.РазмерФайлаПакетаУстановки; + Иначе + СообщениеОбОшибке = ФоновоеЗадание.КраткоеПредставлениеОшибки; + Если ЗначениеЗаполнено(ФоновоеЗадание.ПодробноеПредставлениеОшибки) Тогда + СообщениеОбОшибке = ФоновоеЗадание.ПодробноеПредставлениеОшибки; + КонецЕсли; + + ВызватьИсключение СообщениеОбОшибке; + КонецЕсли; + + Исключение + Отказ = Истина; + ЗаписатьОшибкуВЖурналРегистрации( + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), СобытиеЖурналаРегистрацииСозданиеАвтономногоРабочегоМеста); + Возврат; + КонецПопытки; + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ОписаниеОграниченийПередачиДанных(Знач ИмяПланаОбмена, НастройкаОтборовНаУзле) + + Возврат ОбменДаннымиСервер.ОписаниеОграниченийПередачиДанных(ИмяПланаОбмена, НастройкаОтборовНаУзле, ""); + +КонецФункции + +&НаКлиенте +Функция АдресПриложенияВИнтернете() + + ПараметрыСоединения = СтроковыеФункцииКлиентСервер.ПараметрыИзСтроки(СтрокаСоединенияИнформационнойБазы()); + + Если Не ПараметрыСоединения.Свойство("ws") Тогда + ВызватьИсключение НСтр("ru = 'Создать автономное рабочее место можно только в режиме веб-клиента.'"); + КонецЕсли; + + Возврат ПараметрыСоединения.ws; +КонецФункции + +&НаКлиенте +Процедура ПерейтиДалее() + + ИзменитьПорядковыйНомерПерехода(+1); + +КонецПроцедуры + +&НаКлиенте +Процедура ПерейтиНазад() + + ИзменитьПорядковыйНомерПерехода(-1); + +КонецПроцедуры + +&НаСервереБезКонтекста +Процедура ЗаписатьОшибкуВЖурналРегистрации(СтрокаСообщенияОбОшибке, Событие) + + ЗаписьЖурналаРегистрации(Событие, УровеньЖурналаРегистрации.Ошибка,,, СтрокаСообщенияОбОшибке); + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ЗаданиеВыполнено(ИдентификаторЗадания) + + Возврат ДлительныеОперации.ЗаданиеВыполнено(ИдентификаторЗадания); + +КонецФункции + +&НаСервере +Функция ПользователиСинхронизации() + + Результат = Новый ТаблицаЗначений; + Результат.Колонки.Добавить("Пользователь"); // Тип: СправочникСсылка.Пользователи + Результат.Колонки.Добавить("СинхронизацияДанныхРазрешена", Новый ОписаниеТипов("Булево")); + Результат.Колонки.Добавить("РазрешитьСинхронизациюДанных", Новый ОписаниеТипов("Булево")); + + ТекстЗапроса = + "ВЫБРАТЬ + | Пользователи.Ссылка КАК Пользователь, + | Пользователи.ИдентификаторПользователяИБ КАК ИдентификаторПользователяИБ + |ИЗ + | Справочник.Пользователи КАК Пользователи + |ГДЕ + | НЕ Пользователи.ПометкаУдаления + | И НЕ Пользователи.Недействителен + | И НЕ Пользователи.Служебный + | + |УПОРЯДОЧИТЬ ПО + | Пользователи.Наименование"; + + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапроса; + + Выборка = Запрос.Выполнить().Выбрать(); + + Пока Выборка.Следующий() Цикл + + Если ЗначениеЗаполнено(Выборка.ИдентификаторПользователяИБ) Тогда + + ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Выборка.ИдентификаторПользователяИБ); + + Если ПользовательИБ <> Неопределено Тогда + + НастройкиПользователя = Результат.Добавить(); + НастройкиПользователя.Пользователь = Выборка.Пользователь; + НастройкиПользователя.СинхронизацияДанныхРазрешена = ОбменДаннымиСервер.СинхронизацияДанныхРазрешена(ПользовательИБ); + НастройкиПользователя.РазрешитьСинхронизациюДанных = НастройкиПользователя.СинхронизацияДанныхРазрешена; + + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + Возврат Результат; +КонецФункции + +//////////////////////////////////////////////////////////////////////////////// +// Переопределяемая часть - Обработчики событий переходов + +&НаКлиенте +Функция Подключаемый_НастройкаВыгрузки_ПриПереходеДалее(Отказ) + + Если ПустаяСтрока(Объект.НаименованиеАвтономногоРабочегоМеста) Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Не задано наименование автономного рабочего места.'"), + , "Объект.НаименованиеАвтономногоРабочегоМеста", , Отказ); + КонецЕсли; + +КонецФункции + +&НаКлиенте +Функция Подключаемый_ОжиданиеСозданияНачальногоОбраза_ОбработкаДлительнойОперации(Отказ, ПерейтиДалее) + + ДлительнаяОперация = Ложь; + ДлительнаяОперацияЗавершена = Ложь; + ИдентификаторЗадания = Неопределено; + + СоздатьНачальныйОбразАвтономногоРабочегоМестаНаСервере(Отказ); + + Если Отказ Тогда + + // + + ИначеЕсли Не ДлительнаяОперация Тогда + + Оповестить("Создание_АвтономноеРабочееМесто"); + + КонецЕсли; + +КонецФункции + +&НаКлиенте +Функция Подключаемый_ОжиданиеСозданияНачальногоОбразаДлительнаяОперация_ОбработкаДлительнойОперации(Отказ, ПерейтиДалее) + + Если ДлительнаяОперация Тогда + + ПерейтиДалее = Ложь; + + ПодключитьОбработчикОжидания("ОбработчикОжиданияДлительнойОперации", 5, Истина); + + КонецЕсли; + +КонецФункции + +&НаКлиенте +Функция Подключаемый_ОжиданиеСозданияНачальногоОбразаДлительнаяОперацияОкончание_ОбработкаДлительнойОперации(Отказ, ПерейтиДалее) + + Если ДлительнаяОперацияЗавершена Тогда + + ИнформацияОПакетеУстановки = ПолучитьИзВременногоХранилища(АдресВременногоХранилищаИнформацииОПакетеУстановки); + РазмерФайлаПакетаУстановки = ИнформацияОПакетеУстановки.РазмерФайлаПакетаУстановки; + + Оповестить("Создание_АвтономноеРабочееМесто"); + + КонецЕсли; + +КонецФункции + +&НаКлиенте +Функция Подключаемый_Окончание_ПриОткрытии(Отказ, ПропуститьСтраницу, ЭтоПереходДалее) + + ЗаголовокЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 (%2 МБ)'"), ИмяФайлаПакетаУстановки, Формат(РазмерФайлаПакетаУстановки, "ЧДЦ=1; ЧГ=3,0")); + Элементы.ЗагрузитьНачальныйОбразНаКомпьютерПользователя.Заголовок = ЗаголовокЭлемента; + +КонецФункции + +//////////////////////////////////////////////////////////////////////////////// +// Переопределяемая часть - Инициализация переходов помощника + +&НаСервере +Процедура СценарийСозданияАвтономногоРабочегоМеста() + + ТаблицаПереходов.Очистить(); + + НовыйПереход = ТаблицаПереходовНоваяСтрока("Начало", "СтраницаНавигацииНачало"); + + НовыйПереход = ТаблицаПереходовНоваяСтрока("НастройкаВыгрузки", "СтраницаНавигацииПродолжение"); + НовыйПереход.ИмяОбработчикаПриПереходеДалее = "НастройкаВыгрузки_ПриПереходеДалее"; + + НовыйПереход = ТаблицаПереходовНоваяСтрока("ОжиданиеСозданияНачальногоОбраза", "СтраницаНавигацииОжидание"); + НовыйПереход.ДлительнаяОперация = Истина; + НовыйПереход.ИмяОбработчикаДлительнойОперации = "ОжиданиеСозданияНачальногоОбраза_ОбработкаДлительнойОперации"; + + НовыйПереход = ТаблицаПереходовНоваяСтрока("ОжиданиеСозданияНачальногоОбраза", "СтраницаНавигацииОжидание"); + НовыйПереход.ДлительнаяОперация = Истина; + НовыйПереход.ИмяОбработчикаДлительнойОперации = "ОжиданиеСозданияНачальногоОбразаДлительнаяОперация_ОбработкаДлительнойОперации"; + + НовыйПереход = ТаблицаПереходовНоваяСтрока("ОжиданиеСозданияНачальногоОбраза", "СтраницаНавигацииОжидание"); + НовыйПереход.ДлительнаяОперация = Истина; + НовыйПереход.ИмяОбработчикаДлительнойОперации = "ОжиданиеСозданияНачальногоОбразаДлительнаяОперацияОкончание_ОбработкаДлительнойОперации"; + + НовыйПереход = ТаблицаПереходовНоваяСтрока("Окончание", "СтраницаНавигацииОкончание"); + НовыйПереход.ИмяОбработчикаПриОткрытии = "Окончание_ПриОткрытии"; + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/Catalogs/ОчередьЗаданий/ManagerModule.bsl b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ManagerModule.bsl similarity index 100% rename from SSL/src/Catalogs/ОчередьЗаданий/ManagerModule.bsl rename to SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ManagerModule.bsl diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ObjectModule.bsl b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ObjectModule.bsl new file mode 100644 index 000000000..18e58027f --- /dev/null +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ObjectModule.bsl @@ -0,0 +1,328 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныйПрограммныйИнтерфейс + +// Создает начальный образ для Автономного рабочего места в соответствии +// с переданными настройками и помещает во временное хранилище. +// +// Параметры: +// Настройки - Структура - Настройки отборов на узле +// АдресВременногоХранилищаНачальногоОбраза - Строка +// АдресВременногоХранилищаИнформацииОПакетеУстановки - Строка +// +Процедура СоздатьНачальныйОбразАвтономногоРабочегоМеста( + Знач Настройки, + Знач ВыбранныеПользователиСинхронизации, + Знач АдресВременногоХранилищаНачальногоОбраза, + Знач АдресВременногоХранилищаИнформацииОПакетеУстановки) Экспорт + + ОбменДаннымиСервер.ПроверитьВозможностьАдминистрированияОбменов(); + + УстановитьПривилегированныйРежим(Истина); + + НачатьТранзакцию(); + Попытка + + // Назначаем права на синхронизацию выбранным пользователям + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда + + ОбщийМодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный"); + + Для Каждого Пользователь Из ВыбранныеПользователиСинхронизации Цикл + + ОбщийМодульУправлениеДоступомСлужебный.ВключитьПользователяВГруппуДоступа(Пользователь, + ОбменДаннымиСервер.ПрофильДоступаСинхронизацияДанныхСДругимиПрограммами()); + КонецЦикла; + + КонецЕсли; + + // Формируем префикс для нового автономного рабочего места + Блокировка = Новый БлокировкаДанных; + ЭлементБлокировки = Блокировка.Добавить("Константа.ПрефиксПоследнегоАвтономногоРабочегоМеста"); + ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; + Блокировка.Заблокировать(); + + ПоследнийПрефикс = Константы.ПрефиксПоследнегоАвтономногоРабочегоМеста.Получить(); + ПрефиксАвтономногоРабочегоМеста = АвтономнаяРаботаСлужебный.СформироватьПрефиксАвтономногоРабочегоМеста(ПоследнийПрефикс); + + Константы.ПрефиксПоследнегоАвтономногоРабочегоМеста.Установить(ПрефиксАвтономногоРабочегоМеста); + + // Создаем узел автономного рабочего места + АвтономноеРабочееМесто = СоздатьНовоеАвтономноеРабочееМесто(Настройки); + + ДатаСозданияНачальногоОбраза = ТекущаяДатаСеанса(); + + // Выгружаем параметры настройки в начальный образ автономного рабочего места + ВыгрузитьПараметрыВНачальныйОбраз(ПрефиксАвтономногоРабочегоМеста, ДатаСозданияНачальногоОбраза, АвтономноеРабочееМесто); + + // Устанавливаем дату создания начального образа, как дату первой успешной синхронизации данных. + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("УзелИнформационнойБазы", АвтономноеРабочееМесто); + СтруктураЗаписи.Вставить("ДействиеПриОбмене", Перечисления.ДействияПриОбмене.ВыгрузкаДанных); + СтруктураЗаписи.Вставить("ДатаОкончания", ДатаСозданияНачальногоОбраза); + РегистрыСведений.СостоянияУспешныхОбменовДанными.ДобавитьЗапись(СтруктураЗаписи); + + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("УзелИнформационнойБазы", АвтономноеРабочееМесто); + СтруктураЗаписи.Вставить("ДействиеПриОбмене", Перечисления.ДействияПриОбмене.ЗагрузкаДанных); + СтруктураЗаписи.Вставить("ДатаОкончания", ДатаСозданияНачальногоОбраза); + РегистрыСведений.СостоянияУспешныхОбменовДанными.ДобавитьЗапись(СтруктураЗаписи); + + ОбменДаннымиСервер.ЗавершитьСозданиеНачальногоОбраза(АвтономноеРабочееМесто); + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), + УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ВызватьИсключение; + КонецПопытки; + + КаталогНачальногоОбраза = ПолучитьИмяВременногоФайла("Replica"); + КаталогУстановки = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(КаталогНачальногоОбраза, "1"); + КаталогАрхива = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(КаталогУстановки, "InfoBase"); + ИмяФайлаДанныхНачальногоОбраза = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(КаталогАрхива, "data.xml"); + + СоздатьКаталог(КаталогАрхива); + + // Создаем начальный образ автономного рабочего места + СтрокаСоединения = "File = ""&КаталогИнформационнойБазы"""; + СтрокаСоединения = СтрЗаменить(СтрокаСоединения, "&КаталогИнформационнойБазы", СокрЛП(КаталогНачальногоОбраза)); + + ВыгруженныеДанные = Новый ЗаписьXML; + ВыгруженныеДанные.ОткрытьФайл(ИмяФайлаДанныхНачальногоОбраза); + ВыгруженныеДанные.ЗаписатьОбъявлениеXML(); + ВыгруженныеДанные.ЗаписатьНачалоЭлемента("Data"); + ВыгруженныеДанные.ЗаписатьСоответствиеПространстваИмен("xsd", "http://www.w3.org/2001/XMLSchema"); + ВыгруженныеДанные.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance"); + ВыгруженныеДанные.ЗаписатьСоответствиеПространстваИмен("v8", "http://v8.1c.ru/data"); + + АвтономноеРабочееМестоОбъект = АвтономноеРабочееМесто.ПолучитьОбъект(); + АвтономноеРабочееМестоОбъект.ДополнительныеСвойства.Вставить("ВыгруженныеДанные", ВыгруженныеДанные); + АвтономноеРабочееМестоОбъект.ДополнительныеСвойства.Вставить("РазмещатьФайлыВНачальномОбразе"); + + // Обновляем повторно используемые значения Механизма регистрации объектов. + ОбменДаннымиСлужебный.ПроверитьКэшМеханизмаРегистрацииОбъектов(); + + Попытка + ПланыОбмена.СоздатьНачальныйОбраз(АвтономноеРабочееМестоОбъект, СтрокаСоединения); + Исключение + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), + УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + + // Хранить настройки для автономного рабочего места в ИБ небезопасно. + Константы.НастройкиПодчиненногоУзлаРИБ.Установить(""); + ВыгруженныеДанные = Неопределено; + + Попытка + УдалитьФайлы(КаталогНачальногоОбраза); + Исключение + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,,, + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + + // Удаляем автономное рабочее место + АвтономнаяРаботаСлужебный.УдалитьАвтономноеРабочееМесто(Новый Структура("АвтономноеРабочееМесто", АвтономноеРабочееМесто), ""); + + ВызватьИсключение; + КонецПопытки; + + ВыгруженныеДанные.ЗаписатьКонецЭлемента(); // Data + ВыгруженныеДанные.Закрыть(); + + ИмяФайлаНачальногоОбраза = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( + КаталогНачальногоОбраза, "1Cv8.1CD"); + + ИмяФайлаНачальногоОбразаВКаталогеАрхива = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( + КаталогАрхива, "1Cv8.1CD"); + + ИмяФайлаПакетаУстановки = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( + КаталогНачальногоОбраза, АвтономнаяРаботаСлужебный.ИмяФайлаПакетаУстановки()); + + ИмяФайлаИнструкции = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( + КаталогАрхива, "ReadMe.html"); + + ТекстИнструкции = АвтономнаяРаботаСлужебный.ТекстИнструкцииИзМакета("ИнструкцияПоНастройкеАвтономногоРабочегоМеста"); + + Текст = Новый ЗаписьТекста(ИмяФайлаИнструкции); + Текст.Записать(ТекстИнструкции); + Текст.Закрыть(); + + ПереместитьФайл(ИмяФайлаНачальногоОбраза, ИмяФайлаНачальногоОбразаВКаталогеАрхива); + + Архиватор = Новый ЗаписьZipФайла(ИмяФайлаПакетаУстановки,,,, УровеньСжатияZIP.Максимальный); + Архиватор.Добавить(ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(КаталогУстановки, "*.*"), + РежимСохраненияПутейZIP.СохранятьОтносительныеПути, + РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно); + Архиватор.Записать(); + + ДанныеПакетаУстановки = Новый ДвоичныеДанные(ИмяФайлаПакетаУстановки); + + РазмерФайлаПакетаУстановки = Окр(ДанныеПакетаУстановки.Размер() / 1024 / 1024, 1); // размер пакета в Мб, например, 155.2 Мб + + ИнформацияОПакетеУстановки = Новый Структура; + ИнформацияОПакетеУстановки.Вставить("РазмерФайлаПакетаУстановки", РазмерФайлаПакетаУстановки); + + ПоместитьВоВременноеХранилище(ДанныеПакетаУстановки, АдресВременногоХранилищаНачальногоОбраза); + + ПоместитьВоВременноеХранилище(ИнформацияОПакетеУстановки, АдресВременногоХранилищаИнформацииОПакетеУстановки); + + Попытка + УдалитьФайлы(КаталогНачальногоОбраза); + Исключение + ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,,, + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + КонецПопытки; + + // Хранить настройки для автономного рабочего места в ИБ небезопасно. + Константы.НастройкиПодчиненногоУзлаРИБ.Установить(""); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура ВыгрузитьПараметрыВНачальныйОбраз(ПрефиксАвтономногоРабочегоМеста, ДатаСозданияНачальногоОбраза, АвтономноеРабочееМесто) + + Константы.НастройкиПодчиненногоУзлаРИБ.Установить(ВыгрузитьПараметрыВСтрокуXML(ПрефиксАвтономногоРабочегоМеста, ДатаСозданияНачальногоОбраза, АвтономноеРабочееМесто)); + +КонецПроцедуры + +Функция СоздатьНовоеАвтономноеРабочееМесто(Настройки) + + // Обновляем узел приложения в сервисе при необходимости + Если ПустаяСтрока(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(АвтономнаяРаботаСлужебный.ПриложениеВСервисе(), "Код")) Тогда + + ПриложениеВСервисеОбъект = СоздатьПриложениеВСервисе(); + ПриложениеВСервисеОбъект.ОбменДанными.Загрузка = Истина; + ПриложениеВСервисеОбъект.Записать(); + + КонецЕсли; + + // Создаем узел автономного рабочего места + АвтономноеРабочееМестоОбъект = СоздатьАвтономноеРабочееМесто(); + АвтономноеРабочееМестоОбъект.Наименование = НаименованиеАвтономногоРабочегоМеста; + АвтономноеРабочееМестоОбъект.РегистрироватьИзменения = Истина; + АвтономноеРабочееМестоОбъект.ОбменДанными.Загрузка = Истина; + + // Устанавливаем значения отборов на узле + ОбменДаннымиСобытия.УстановитьЗначенияОтборовНаУзле(АвтономноеРабочееМестоОбъект, Настройки); + + АвтономноеРабочееМестоОбъект.Записать(); + + ОбменДаннымиСервер.ЗавершитьНастройкуСинхронизацииДанных(АвтономноеРабочееМестоОбъект.Ссылка); + + Возврат АвтономноеРабочееМестоОбъект.Ссылка; + +КонецФункции + +Функция ВыгрузитьПараметрыВСтрокуXML(ПрефиксАвтономногоРабочегоМеста, Знач ДатаСозданияНачальногоОбраза, АвтономноеРабочееМесто) + + ПараметрыАвтономногоРабочегоМеста = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(АвтономноеРабочееМесто, "Код, Наименование"); + ПараметрыПриложенияВСервисе = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(АвтономнаяРаботаСлужебный.ПриложениеВСервисе(), "Код, Наименование"); + + ЗаписьXML = Новый ЗаписьXML; + ЗаписьXML.УстановитьСтроку("UTF-8"); + ЗаписьXML.ЗаписатьОбъявлениеXML(); + + ЗаписьXML.ЗаписатьНачалоЭлемента("Параметры"); + ЗаписьXML.ЗаписатьАтрибут("ВерсияФормата", ВерсияФорматаФайлаНастроекОбменаДанными()); + + ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsd", "http://www.w3.org/2001/XMLSchema"); + ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance"); + ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("v8", "http://v8.1c.ru/data"); + + ЗаписьXML.ЗаписатьНачалоЭлемента("ПараметрыАвтономногоРабочегоМеста"); + + ЗаписатьXML(ЗаписьXML, ДатаСозданияНачальногоОбраза, "ДатаСозданияНачальногоОбраза", НазначениеТипаXML.Явное); + ЗаписатьXML(ЗаписьXML, ПрефиксАвтономногоРабочегоМеста, "Префикс", НазначениеТипаXML.Явное); + ЗаписатьXML(ЗаписьXML, ЗаголовокСистемы(), "ЗаголовокСистемы", НазначениеТипаXML.Явное); + ЗаписатьXML(ЗаписьXML, URLВебСервиса, "URL", НазначениеТипаXML.Явное); + ЗаписатьXML(ЗаписьXML, ПользователиИнформационнойБазы.ТекущийПользователь().Имя, "ИмяВладельца", НазначениеТипаXML.Явное); + ЗаписатьXML(ЗаписьXML, Строка(Пользователи.АвторизованныйПользователь().УникальныйИдентификатор()), "Владелец", НазначениеТипаXML.Явное); + + ЗаписатьXML(ЗаписьXML, ПараметрыАвтономногоРабочегоМеста.Код, "КодАвтономногоРабочегоМеста", НазначениеТипаXML.Явное); + ЗаписатьXML(ЗаписьXML, ПараметрыАвтономногоРабочегоМеста.Наименование, "НаименованиеАвтономногоРабочегоМеста", НазначениеТипаXML.Явное); + ЗаписатьXML(ЗаписьXML, ПараметрыПриложенияВСервисе.Код, "КодПриложенияВСервисе", НазначениеТипаXML.Явное); + ЗаписатьXML(ЗаписьXML, ПараметрыПриложенияВСервисе.Наименование, "НаименованиеПриложенияВСервисе", НазначениеТипаXML.Явное); + ЗаписатьXML(ЗаписьXML, ОбменДаннымиСервер.ПрефиксИнформационнойБазы(), "ПрефиксПриложенияВСервисе", НазначениеТипаXML.Явное); + + ЗаписьXML.ЗаписатьКонецЭлемента(); // ПараметрыАвтономногоРабочегоМеста + ЗаписьXML.ЗаписатьКонецЭлемента(); // Параметры + + Возврат ЗаписьXML.Закрыть(); +КонецФункции + +Функция ВерсияФорматаФайлаНастроекОбменаДанными() + + Возврат "1.0"; + +КонецФункции + +Функция СобытиеЖурналаРегистрации() + + Возврат АвтономнаяРаботаСлужебный.СобытиеЖурналаРегистрацииСозданиеАвтономногоРабочегоМеста(); + +КонецФункции + +Функция СоздатьПриложениеВСервисе() + + Результат = ПланыОбмена[АвтономнаяРаботаСлужебный.ПланОбменаАвтономнойРаботы()].ЭтотУзел().ПолучитьОбъект(); + Результат.Код = Строка(Новый УникальныйИдентификатор); + Результат.Наименование = СформироватьНаименованиеПриложенияВСервисе(); + + Возврат Результат; +КонецФункции + +Функция СоздатьАвтономноеРабочееМесто() + + Результат = ПланыОбмена[АвтономнаяРаботаСлужебный.ПланОбменаАвтономнойРаботы()].СоздатьУзел(); + Результат.Код = Строка(Новый УникальныйИдентификатор); + + Возврат Результат; +КонецФункции + +Функция СформироватьНаименованиеПриложенияВСервисе() + + НаименованиеПриложения = ОбменДаннымиВМоделиСервиса.СформироватьНаименованиеПредопределенногоУзла(); + Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1 (приложение в Интернете)'"), НаименованиеПриложения); + +КонецФункции + +Функция ЗаголовокСистемы() + + Результат = ""; + + Если Не ОбщегоНазначения.РазделениеВключено() + Или ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда + Результат = Константы.ЗаголовокСистемы.Получить(); + КонецЕсли; + + Если ПустаяСтрока(Результат) Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); + Результат = МодульРаботаВМоделиСервиса.ПолучитьИмяПриложения(); + КонецЕсли; + КонецЕсли; + + Возврат ?(ПустаяСтрока(Результат), + НСтр("ru = 'Автономное рабочее место'"), + Результат); + +КонецФункции + +#КонецОбласти + +#Иначе +ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/ИнструкцияПоНастройкеАвтономногоРабочегоМеста/Template.htmldoc b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/ИнструкцияПоНастройкеАвтономногоРабочегоМеста/Template.htmldoc new file mode 100644 index 000000000..1621f1d23 --- /dev/null +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/ИнструкцияПоНастройкеАвтономногоРабочегоМеста/Template.htmldoc @@ -0,0 +1,4 @@ + + + + diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/ИнструкцияПоНастройкеАвтономногоРабочегоМеста/ru.html b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/ИнструкцияПоНастройкеАвтономногоРабочегоМеста/ru.html new file mode 100644 index 000000000..d5f55f476 --- /dev/null +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/ИнструкцияПоНастройкеАвтономногоРабочегоМеста/ru.html @@ -0,0 +1,39 @@ + +

          Настройка автономного рабочего места на компьютере

          +

          +

          +

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

          +
          1. Создайте новую папку, в которой на Вашем компьютере будет размещаться информационная база автономного рабочего места. Например, в папке "Мои документы". +
          2. Откройте загруженный файл Автономная работа.zip и скопируйте (извлеките) все файлы из него в эту папку. +
          3. Запустите 1С:Предприятие и в открывшемся окне "Запуск 1С:Предприятия" нажмите на кнопку "Добавить..." +
          4. Укажите вариант "Добавление в список существующей информационной базы" и нажмите "Далее". +
          5. На следующей странице помощника укажите вариант "На данном компьютере или на компьютере в локальной сети" и введите название информационной базы. Рекомендуется указывать такое же имя, как и название автономного рабочего места. +
          6. На следующей странице укажите подпапку InfoBase в папке, созданной на шаге 1, и затем на финальной странице помощника нажмите "Готово". +
          7. Запустите программу, воспользовавшись кнопкой "1С:Предприятие" (в правом верхнем углу окна "Запуск 1С:Предприятия").
            В окне доступа к информационной базе в поле "Пользователь" выберите из списка пользователя, от имени которого было создано автономное рабочее место. Поле "Пароль" оставьте пустым.

           

          +

          В дальнейшем, для входа в программу необходимо запускать 1С:Предприятие, и в открывшемся окне "Запуск 1С:Предприятия" выбирать в списке эту информационную базу. При работе с программой, для изменения параметров синхронизации данных с приложением в Интернете можно воспользоваться командой "Автономная работа" раздела "Администрирование".

          +

          Дополнительная информация

          +

           

          +

          1. Как установить или обновить версию платформы 1С:Предприятие?

          +

          Для автономной работы без подключения к сети Интернет необходимо предварительно приобрести и установить локально на компьютере программу [НазваниеПрограммы]. Программы системы 1С:Предприятие распространяются через сеть партнерских организаций во всех регионах России, странах СНГ и Балтии.

          +

          Если программа уже установлена на Вашем компьютере, убедитесь, что используется версия платформы 1С:Предприятие не ниже [ВерсияПлатформы] (см. первую строчку в окне, вызываемом из меню "Справка - О программе"). Если используется устаревшая версия, необходимо зайти на сайт поддержки пользователей системы 1С:Предприятие, загрузить и установить последнюю версию платформы 1С:Предприятие.

          +

          См. также

          +

          2. Как настроить автономное рабочее место для работы других пользователей?

          +

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

          +

          В случае если с этим автономным рабочим местом должны работать другие пользователи, то нужно разрешить им вход в программу в списке "Пользователи" раздела "Администрирование". При этом им будут назначены такие же права доступа, как и в приложении в Интернете. Подробнее о ведении списка пользователей и настройке прав доступа см. документацию к программе.

          +

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

          \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие/Template.htmldoc b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие/Template.htmldoc new file mode 100644 index 000000000..1621f1d23 --- /dev/null +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие/Template.htmldoc @@ -0,0 +1,4 @@ + + + + diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие/ru.html b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие/ru.html new file mode 100644 index 000000000..ee8925b83 --- /dev/null +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/Templates/КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие/ru.html @@ -0,0 +1,21 @@ + +

          Для автономной работы без подключения к сети Интернет необходимо приобрести и установить локально на компьютере программу [НазваниеПрограммы]. Программы системы 1С:Предприятие распространяются через сеть партнерских организаций во всех регионах России, странах СНГ и Балтии.

          +

          Если программа уже установлена на Вашем компьютере, убедитесь, что используется версия платформы 1С:Предприятие не ниже [ВерсияПлатформы] (см. первую строчку в окне, вызываемом из меню "Справка - О программе"). Если используется устаревшая версия, необходимо зайти на сайт поддержки пользователей системы 1С:Предприятие, загрузить и установить последнюю версию платформы 1С:Предприятие.

          +

          См. также

          + \ No newline at end of file diff --git a/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ПомощникСозданияАвтономногоРабочегоМеста.mdo b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ПомощникСозданияАвтономногоРабочегоМеста.mdo new file mode 100644 index 000000000..5bd983ee1 --- /dev/null +++ b/SSL/src/DataProcessors/ПомощникСозданияАвтономногоРабочегоМеста/ПомощникСозданияАвтономногоРабочегоМеста.mdo @@ -0,0 +1,88 @@ + + + + + + + ПомощникСозданияАвтономногоРабочегоМеста + + ru + Помощник создания автономного рабочего места + + true + DataProcessor.ПомощникСозданияАвтономногоРабочегоМеста.Form.НастройкаНаСторонеСервиса + + URLВебСервиса + + ru + URL веб-сервиса + + + String + + + + + + + НаименованиеАвтономногоРабочегоМеста + + ru + Наименование автономного рабочего места + + + String + + 150 + + + + + + + АвтономноеРабочееМесто + + ru + Автономное рабочее место + + + ExchangePlanRef + + + + + + НастройкаНаСторонеСервиса + + ru + Настройка на стороне сервиса + + PersonalComputer + MobileDevice + + + ДополнительноеОписание + + ru + Дополнительное описание + + PersonalComputer + MobileDevice + + + ИнструкцияПоНастройкеАвтономногоРабочегоМеста + + ru + Инструкция по настройке автономного рабочего места + + HTMLDocument + + + КакУстановитьИлиОбновитьВерсиюПлатформы1СПредприятие + + ru + Как установить или обновить версию платформы 1С:Предприятие + + HTMLDocument + + diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ЗагрузкаНастроекXDTO/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ЗагрузкаНастроекXDTO/Module.bsl index 25c28a76e..8c0812847 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ЗагрузкаНастроекXDTO/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/ЗагрузкаНастроекXDTO/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - УзелОбмена = Параметры.УзелОбмена; НаименованиеКорреспондента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(УзелОбмена, "Наименование"); diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Form.form b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Form.form index a49e005f9..b0b4fc031 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Form.form +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Form.form @@ -5626,7 +5626,8 @@ 8 - ExchangePlanRef.ОбменСообщениями + String + true @@ -7169,7 +7170,8 @@ 104 - ExchangePlanRef.ОбменСообщениями + String + true diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Module.bsl index 11e5526ea..8375d5cbe 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НастройкаПодключения/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ПроверитьВозможностьИспользованияФормы(Отказ); Если Отказ Тогда @@ -538,8 +534,6 @@ ПриОжиданииПроверкиПодключенияНаСервере(ПараметрыОбработчикаПроверкиПодключения, ПродолжитьОжидание); Если ПродолжитьОжидание Тогда - ОбменДаннымиКлиент.ОбновитьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжиданияПроверкиПодключения); - ПодключитьОбработчикОжидания("ПриОжиданииПроверкиПодключенияOffline", ПараметрыОбработчикаОжиданияПроверкиПодключения.ТекущийИнтервал, Истина); Иначе diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НоваяСинхронизацияДанных/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НоваяСинхронизацияДанных/Module.bsl index ce5c2bd41..88f4c1128 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НоваяСинхронизацияДанных/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/НоваяСинхронизацияДанных/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОбменДаннымиСервер.ПроверитьВозможностьАдминистрированияОбменов(); ПроверитьВозможностьНастройкиСинхронизацииДанных(Отказ); diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/УдалениеНастройкиСинхронизации/Module.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/УдалениеНастройкиСинхронизации/Module.bsl index c01f2da44..a52c848f9 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/УдалениеНастройкиСинхронизации/Module.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Forms/УдалениеНастройкиСинхронизации/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОбменДаннымиСервер.ПроверитьВозможностьАдминистрированияОбменов(); ИнициализироватьРеквизитыФормы(); @@ -800,7 +796,7 @@ Форма = ОкноПриложения.ПолучитьСодержимое(); - Если ТипЗнч(Форма) = Тип("УправляемаяФорма") + Если ТипЗнч(Форма) = Тип("ФормаКлиентскогоПриложения") И Не Форма.Модифицированность И СтрНайти(Форма.ИмяФормы, ИмяФормы) <> 0 Тогда diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Help/ru.html b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Help/ru.html index dd1de4acc..2e6d818d1 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Help/ru.html +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/Help/ru.html @@ -1,4 +1,4 @@ - +

          Предназначен для настройки синхронизации данных. Возможна настройка синхронизации данных между двумя программами по правилам обмена, без использования правил обмена или организация совместной работы в распределенной информационной базе (РИБ).

          Выбор типа синхронизации данных

          Выберите нужный раздел списка:

          diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ManagerModule.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ManagerModule.bsl index 7638479b0..47779598c 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ManagerModule.bsl @@ -1675,7 +1675,7 @@ СтруктураЗаписи.Вставить("УзелИнформационнойБазы", НовыйУзел.Ссылка); СтруктураЗаписи.Вставить("ИмяПланаОбменаКорреспондента", НастройкиПодключения.ИмяПланаОбменаКорреспондента); - ОбменДаннымиСервер.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиОбменаДаннымиXDTO"); + ОбменДаннымиСлужебный.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиОбменаДаннымиXDTO"); КонецЕсли; НастройкиПодключения.УзелИнформационнойБазы = НовыйУзел.Ссылка; @@ -1701,7 +1701,7 @@ СтруктураВременныйКод.Вставить("Корреспондент", НастройкиПодключения.УзелИнформационнойБазы); СтруктураВременныйКод.Вставить("КодУзла", КодЭтогоУзла); - ОбменДаннымиСервер.ДобавитьЗаписьВРегистрСведений(СтруктураВременныйКод, "ПсевдонимыПредопределенныхУзлов"); + ОбменДаннымиСлужебный.ДобавитьЗаписьВРегистрСведений(СтруктураВременныйКод, "ПсевдонимыПредопределенныхУзлов"); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ObjectModule.bsl b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ObjectModule.bsl index 3fb712a6a..630103208 100644 --- a/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ObjectModule.bsl +++ b/SSL/src/DataProcessors/ПомощникСозданияОбменаДанными/ObjectModule.bsl @@ -535,7 +535,7 @@ СтруктураЗаписи.Вставить("УзелИнформационнойБазы", НовыйУзел.Ссылка); СтруктураЗаписи.Вставить("ИмяПланаОбменаКорреспондента", ИмяПланаОбменаКорреспондента); - ОбменДаннымиСервер.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиОбменаДаннымиXDTO"); + ОбменДаннымиСлужебный.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиОбменаДаннымиXDTO"); КонецЕсли; // Общие данные узлов. @@ -559,7 +559,7 @@ Или ИспользоватьПрефиксыДляНастройкиОбменаКорреспондента) Тогда // Узел в базе корреспонденте нуждается в перекодировании. СтруктураВременныйКод = Новый Структура("Корреспондент, КодУзла", УзелИнформационнойБазы, КодЭтогоУзла); - ОбменДаннымиСервер.ДобавитьЗаписьВРегистрСведений(СтруктураВременныйКод, "ПсевдонимыПредопределенныхУзлов"); + ОбменДаннымиСлужебный.ДобавитьЗаписьВРегистрСведений(СтруктураВременныйКод, "ПсевдонимыПредопределенныхУзлов"); КонецЕсли; КонецПроцедуры diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Help/ru.html b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Help/ru.html index 9d925b20a..fe16841cb 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Help/ru.html +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Help/ru.html @@ -1,4 +1,4 @@ - +

          Просмотр сведений о версии файла.

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

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

          diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Module.bsl index a3cdd9546..7a04ab885 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВерсияПрисоединенногоФайла/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОбъектЗначение = Параметры.Ключ.ПолучитьОбъект(); ОбъектЗначение.Заполнить(Неопределено); diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВопросПриИмпортеФайлов/Help/ru.html b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВопросПриИмпортеФайлов/Help/ru.html index 5d86154e0..66a6fa2b9 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВопросПриИмпортеФайлов/Help/ru.html +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВопросПриИмпортеФайлов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

          diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВопросПриИмпортеФайлов/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВопросПриИмпортеФайлов/Module.bsl index 8e04700d9..9d5c19266 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВопросПриИмпортеФайлов/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВопросПриИмпортеФайлов/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ФайлыБольшие = Параметры.ФайлыБольшие; МаксимальныйРазмерФайла = Цел(РаботаСФайлами.МаксимальныйРазмерФайла() / (1024 * 1024)); diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Help/ru.html b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Help/ru.html index 6ecc2621c..b609d252f 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Help/ru.html +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

          •  - наличие электронной подписи и шифрования; diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Module.bsl index 95c6ece8a..bd5884d42 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВсеФайлы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТекущийПользователь = Пользователи.АвторизованныйПользователь(); Если ТипЗнч(ТекущийПользователь) = Тип("СправочникСсылка.ВнешниеПользователи") Тогда РаботаСФайламиСлужебный.ИзменитьФормуДляВнешнегоПользователя(ЭтотОбъект, Истина); diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборГруппы/Module.bsl b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборГруппы/Module.bsl index 3c9e6bb51..85015a429 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборГруппы/Module.bsl +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборГруппы/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; НастроитьДинамическийСписок(); УстановитьУсловноеОформление(); diff --git a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборКодировки/Help/ru.html b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборКодировки/Help/ru.html index 6a6fd01fd..a5db19ed5 100644 --- a/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборКодировки/Help/ru.html +++ b/SSL/src/DataProcessors/РаботаСФайлами/Forms/ВыборКодировки/Help/ru.html @@ -1,4 +1,4 @@ - +

            +

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

            Открывается по кнопке  Выбрать из поля Адрес в элементах списков.

            Автоподбор российского адреса

            diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl index 04ccee05a..dd23575f0 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВводАдреса/Module.bsl @@ -32,10 +32,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если Не Параметры.Свойство("ОткрытаПоСценарию") Тогда ВызватьИсключение НСтр("ru = 'Обработка не предназначена для непосредственного использования.'"); КонецЕсли; @@ -532,6 +528,7 @@ КонецЕсли; ОбновитьМенюДобавленияСтроенийИПомещений(); + ОбработкаИзмененияАдреса(); КонецПроцедуры @@ -2971,7 +2968,7 @@ &НаКлиенте Процедура ЗаполнитьПоляЗемельногоУчастка(Знач ВыбранноеЗначение) - НаселенныйПунктДетально.stead = ВыбранноеЗначение.Дом; + НаселенныйПунктДетально.stead = ВыбранноеЗначение.Номер; НаселенныйПунктДетально.steadId = ВыбранноеЗначение.Идентификатор; Индекс = НаселенныйПунктДетально.ZipCode; @@ -2985,6 +2982,7 @@ КонецПроцедуры + &НаКлиенте Функция ПерваяБукваЗаглавная(Строка) Возврат ВРег(Лев(Строка, 1)) + Сред(НРег(Строка), 2); // Использовать ТРег нельзя. diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоПочтовомуИндексу/Help/ru.html b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоПочтовомуИндексу/Help/ru.html index b3817032e..123b86b97 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоПочтовомуИндексу/Help/ru.html +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоПочтовомуИндексу/Help/ru.html @@ -1,4 +1,4 @@ - +

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

            Почтовое деление России следует административному делению страны. Введенная в 1971 году система 6-значных почтовых индексов была унаследована от СССР и не претерпела существенных изменений. Первые три цифры индекса соответствуют определенному субъекту федерации. Следующие три - номеру почтового отделения в нем.

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

            diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоПочтовомуИндексу/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоПочтовомуИндексу/Module.bsl index 152656a11..f58d8518a 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоПочтовомуИндексу/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоПочтовомуИндексу/Module.bsl @@ -28,10 +28,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ПараметрыПоиска = Новый Структура; Параметры.Свойство("Индекс", Индекс); diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Help/ru.html b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Help/ru.html index 5fb2fa51a..55601b956 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Help/ru.html +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

            Открывается из окна ввода адреса по команде Еще - Заполнить по почтовому индексу после ввода почтового индекса.

            diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Module.bsl index c0e21b812..865eca2e8 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборАдресаПоУровню/Module.bsl @@ -32,10 +32,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Параметры.Свойство("Родитель", Родитель); Параметры.Свойство("Уровень", Уровень); diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборДома/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборДома/Module.bsl index 02cfd9075..a03537cf7 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборДома/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборДома/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - АдресныйОбъект = Параметры.Идентификатор; Если СтрСравнить(Параметры.ТипДома, РаботаСАдресамиКлиентСервер.НаименованиеЗемельногоУчастка()) <> 0 Тогда diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборУлицы/Help/ru.html b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборУлицы/Help/ru.html index 5fb2fa51a..55601b956 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборУлицы/Help/ru.html +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборУлицы/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

            Открывается из окна ввода адреса по команде Еще - Заполнить по почтовому индексу после ввода почтового индекса.

            diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборУлицы/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборУлицы/Module.bsl index 462d935f8..a14e50285 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборУлицы/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ВыборУлицы/Module.bsl @@ -31,10 +31,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Параметры.Свойство("Родитель", Родитель); Параметры.Свойство("ТипАдреса", ТипАдреса); diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl index 341c140bf..102275d2c 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если ЗначениеЗаполнено(Параметры.ТекстПредупреждения) Тогда Элементы.Надпись.Заголовок = Параметры.ТекстПредупреждения; ИначеЕсли ЗначениеЗаполнено(Параметры.НазваниеРегиона) Тогда diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НаселенныйПунктАдреса/Help/ru.html b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НаселенныйПунктАдреса/Help/ru.html index 2faae7c40..9f6dc1e86 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НаселенныйПунктАдреса/Help/ru.html +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НаселенныйПунктАдреса/Help/ru.html @@ -1,4 +1,4 @@ - +

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

            Открывается из шаблона ввода адреса в поле Город, населенный пункт по кнопке  Выбрать.

            Выбор вида территориального деления

            diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НаселенныйПунктАдреса/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НаселенныйПунктАдреса/Module.bsl index ce257af19..795cbb12c 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НаселенныйПунктАдреса/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НаселенныйПунктАдреса/Module.bsl @@ -31,10 +31,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Параметры.Свойство("НаселенныйПунктДетально", НаселенныйПунктДетально); ИспользоватьАвтоподбор = Истина; Если НаселенныйПунктДетально <> Неопределено Тогда diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НастройкиАдреса/Help/ru.html b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НастройкиАдреса/Help/ru.html index 7b8f1379b..1c017fc20 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НастройкиАдреса/Help/ru.html +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НастройкиАдреса/Help/ru.html @@ -1,4 +1,4 @@ - +

            Предназначена для настройки адреса РФ.

            Открывается из окна настройки адреса в списке Виды контактной информации по команде Дополнительные настройки адреса.

            При включенном флажке Только российский адрес становятся активными дополнительные флажки:

            diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НастройкиАдреса/Module.bsl b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НастройкиАдреса/Module.bsl index 2c289d84d..344154a58 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НастройкиАдреса/Module.bsl +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Forms/НастройкиАдреса/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если ТипЗнч(Параметры.Объект) = Тип("ДанныеФормыСтруктура") Тогда ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры.Объект); КонецЕсли; diff --git a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Help/ru.html b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Help/ru.html index f24d7adf2..76228c0c3 100644 --- a/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Help/ru.html +++ b/SSL/src/DataProcessors/РасширенныйВводКонтактнойИнформации/Help/ru.html @@ -1,20 +1,30 @@ - +

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

            Контактную информацию можно вводить:

            • в виде произвольной строки, -
            • с помощью шаблонов.

            Использование шаблонов позволяет унифицировать ввод информации, улучшает ее восприятие при просмотре и поиске в списках.

            +
          • +
          • с помощью шаблонов.

          Использование шаблонов позволяет унифицировать ввод информации, улучшает ее восприятие при просмотре и поиске в списках.

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

          Использование шаблона при вводе телефонов и факсов облегчает ввод информации, сокращает количество ошибок при вводе.

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

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

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

          • Выбрать (клавиша F4) - ввести контактную информацию по шаблону, аналогично кнопке  Выбрать. По шаблону можно ввести адрес, телефон или факс. -
          • Открыть (сочетание клавиш Ctrl+Shift+F4) - просмотр введенной контактной информации (например, слишком длинный адрес можно увидеть целиком с помощью этой команды); -
          • Вырезать (сочетание клавиш Ctrl+X); -
          • Копировать (сочетание клавиш Ctrl+C); -
          • Вставить (сочетание клавиш Ctrl+V); -
          • Очистить (сочетание клавиш Shift+F4) - также очищаются поля для ввода по шаблону адреса и телефона. В поле Страна адреса автоматически вводится значение Россия. -
          • Выделить все (сочетание клавиш Ctrl+A). -
          • Ввести комментарий - с помощью этой команды можно ввести или изменить комментарий, не открывая окно редактирования поля. Комментарии предусмотрены для всех видов контактной информации, кроме текстового поля Другое, т.к. в это поле можно ввести всю нужную информацию. Воспользуйтесь командой, затем введите текст комментария, нажмите кнопку ОК для продолжения работы в программе. Если комментарий не пуст, то он выводится под полем контактной информации. -
          • Адрес на Яндекс.Картах; Адрес на Google Maps - команды, которые позволяют увидеть адрес объекта на картах соответственно Яндекс или Google. Также можно эти команды найти в меню Еще в карточке ввода адреса. -
          • История изменений - с помощью этой команды можно просмотреть изменения контактной информации.
          \ No newline at end of file +
        • +
        • Открыть (сочетание клавиш Ctrl+Shift+F4) - просмотр введенной контактной информации (например, слишком длинный адрес можно увидеть целиком с помощью этой команды); +
        • +
        • Вырезать (сочетание клавиш Ctrl+X); +
        • +
        • Копировать (сочетание клавиш Ctrl+C); +
        • +
        • Вставить (сочетание клавиш Ctrl+V); +
        • +
        • Очистить (сочетание клавиш Shift+F4) - также очищаются поля для ввода по шаблону адреса и телефона. В поле Страна адреса автоматически вводится значение Россия. +
        • +
        • Выделить все (сочетание клавиш Ctrl+A). +
        • +
        • Ввести комментарий - с помощью этой команды можно ввести или изменить комментарий, не открывая окно редактирования поля. Комментарии предусмотрены для всех видов контактной информации, кроме текстового поля Другое, т.к. в это поле можно ввести всю нужную информацию. Воспользуйтесь командой, затем введите текст комментария, нажмите кнопку ОК для продолжения работы в программе. Если комментарий не пуст, то он выводится под полем контактной информации. +
        • +
        • Адрес на Яндекс.Картах; Адрес на Google Maps - команды, которые позволяют увидеть адрес объекта на картах соответственно Яндекс или Google. Также можно эти команды найти в меню Еще в карточке ввода адреса. +
        • +
        • История изменений - с помощью этой команды можно просмотреть изменения контактной информации.
        \ No newline at end of file diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборКонстанты/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборКонстанты/Module.bsl index 843bac570..7bb317d39 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборКонстанты/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборКонстанты/Module.bsl @@ -12,10 +12,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - СписокКонстант.Очистить(); Для ТекИнд = 0 По Параметры.МассивИменМетаданных.ВГраница() Цикл Строка = СписокКонстант.Добавить(); diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Module.bsl index 92d24afd0..0f65f2a11 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборОбъектовОтбором/Module.bsl @@ -12,10 +12,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ИмяТаблицыДанных = Параметры.ИмяТаблицы; ТекущийОбъект = ЭтотОбъект(); ЗаголовокТаблицы = ""; @@ -132,9 +128,8 @@ Процедура УстановитьСвойстваДинамическогоСписка(Список, СтруктураПараметров) Форма = Список.Родитель; - ТипУправляемаяФорма = Тип("УправляемаяФорма"); - Пока ТипЗнч(Форма) <> ТипУправляемаяФорма Цикл + Пока ТипЗнч(Форма) <> Тип("ФормаКлиентскогоПриложения") Цикл Форма = Форма.Родитель; КонецЦикла; diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборУзлаПланаОбмена/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборУзлаПланаОбмена/Module.bsl index 40b74993b..6d2e5c5e2 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборУзлаПланаОбмена/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/ВыборУзлаПланаОбмена/Module.bsl @@ -14,10 +14,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - МножественныйВыбор = Ложь; ПрочитатьДеревоУзловОбмена(); diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Настройки/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Настройки/Module.bsl index d046fd037..af8a97caa 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Настройки/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Настройки/Module.bsl @@ -12,10 +12,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ИдентификаторКонсолиЗапросов = "КонсольЗапросов"; ТекущийОбъект = ЭтотОбъект(); diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/НомераСообщенийУзлаПланаОбмена/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/НомераСообщенийУзлаПланаОбмена/Module.bsl index 4dd4bf194..e2987fc60 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/НомераСообщенийУзлаПланаОбмена/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/НомераСообщенийУзлаПланаОбмена/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Не Параметры.Свойство("УзелОбменаСсылка", УзелОбменаСсылка) Тогда Отказ = Истина; Возврат; diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/УзлыРегистрацииОбъекта/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/УзлыРегистрацииОбъекта/Module.bsl index 4b7e0a127..ff0dbfce3 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/УзлыРегистрацииОбъекта/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/УзлыРегистрацииОбъекта/Module.bsl @@ -14,10 +14,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТекущийОбъект = ЭтотОбъект(); ТекущийОбъект.ПрочитатьНастройки(); ТекущийОбъект.ПрочитатьПризнакиПоддержкиБСП(); diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl index ff55b7c85..fd513db6c 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Forms/Форма/Module.bsl @@ -79,10 +79,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ПроверитьВерсиюИРежимСовместимостиПлатформы(); ПараметрТаблицаРегистрации = Неопределено; @@ -201,7 +197,7 @@ &НаКлиенте Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) - Если Не (ТипЗнч(ИсточникВыбора) = Тип("УправляемаяФорма") + Если Не (ТипЗнч(ИсточникВыбора) = Тип("ФормаКлиентскогоПриложения") И ИсточникВыбора.КлючУникальности = КлючУникальностиФормыВыбораРезультатаЗапроса) Тогда Возврат; КонецЕсли; @@ -2629,9 +2625,8 @@ Процедура УстановитьСвойстваДинамическогоСписка(Список, СтруктураПараметров) Форма = Список.Родитель; - ТипУправляемаяФорма = Тип("УправляемаяФорма"); - Пока ТипЗнч(Форма) <> ТипУправляемаяФорма Цикл + Пока ТипЗнч(Форма) <> Тип("ФормаКлиентскогоПриложения") Цикл Форма = Форма.Родитель; КонецЦикла; diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Help/ru.html b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Help/ru.html index 264029129..725f81710 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Help/ru.html +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/Help/ru.html @@ -1,4 +1,4 @@ - +

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

        Список можно открыть с помощью кнопки  или по команде Еще - Состав отправляемых данных из списка Синхронизации данных.

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

        diff --git a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl index 42136d022..b7b6d1fff 100644 --- a/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl +++ b/SSL/src/DataProcessors/РегистрацияИзмененийДляОбменаДанными/ObjectModule.bsl @@ -1557,7 +1557,7 @@ // Функция ФормаЭлементаФормы(ЭлементФормы) Результат = ЭлементФормы; - ТипыФормы = Новый ОписаниеТипов("УправляемаяФорма"); + ТипыФормы = Новый ОписаниеТипов("ФормаКлиентскогоПриложения"); Пока Не ТипыФормы.СодержитТип(ТипЗнч(Результат)) Цикл Результат = Результат.Родитель; КонецЦикла; diff --git a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентноеЗадание/Help/ru.html b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентноеЗадание/Help/ru.html index 9edc59474..9f669aa01 100644 --- a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентноеЗадание/Help/ru.html +++ b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентноеЗадание/Help/ru.html @@ -1,4 +1,4 @@ - +

        Описание свойств регламентного задания.

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

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

        diff --git a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентноеЗадание/Module.bsl b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентноеЗадание/Module.bsl index 5dee03e9a..bc0447dac 100644 --- a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентноеЗадание/Module.bsl +++ b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентноеЗадание/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если НЕ Пользователи.ЭтоПолноправныйПользователь(, Истина) Тогда ВызватьИсключение НСтр("ru = 'Недостаточно прав доступа. | diff --git a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентныеИФоновыеЗадания/Module.bsl b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентныеИФоновыеЗадания/Module.bsl index aad94f687..5e0f6b02e 100644 --- a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентныеИФоновыеЗадания/Module.bsl +++ b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/РегламентныеИФоновыеЗадания/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если НЕ Пользователи.ЭтоПолноправныйПользователь(, Истина) Тогда ВызватьИсключение НСтр("ru = 'Недостаточно прав доступа. | diff --git a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/ФоновоеЗадание/Help/ru.html b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/ФоновоеЗадание/Help/ru.html index 765397adc..882f70254 100644 --- a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/ФоновоеЗадание/Help/ru.html +++ b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/ФоновоеЗадание/Help/ru.html @@ -1,4 +1,4 @@ - +

        Описание свойств фонового задания.

        • Наименование - копия поля Наименование регламентного задания. При применении кнопки Выполнить сейчас на командной панели регламентного задания, наименованию фонового задания присваивается значение "Запуск вручную: <Представление регламентного задания>".
        • Состояние - возможны значения: "Задание выполнено", "Задание завершено с ошибками", "Задание отменено пользователем", "Задание выполняется". diff --git a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/ФоновоеЗадание/Module.bsl b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/ФоновоеЗадание/Module.bsl index 83ec30194..c1dbcbe48 100644 --- a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/ФоновоеЗадание/Module.bsl +++ b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Forms/ФоновоеЗадание/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.СвойстваФоновогоЗадания = Неопределено Тогда СвойстваФоновогоЗадания = РегламентныеЗаданияСлужебный diff --git a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Help/ru.html b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Help/ru.html index 1b73a3541..f56d5134a 100644 --- a/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Help/ru.html +++ b/SSL/src/DataProcessors/РегламентныеИФоновыеЗадания/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

          Открывается по команде Регламентные и фоновые задания в разделе Администрирование - Обслуживание - Регламентные операции.

          diff --git a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Help/ru.html b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Help/ru.html index 548c57c83..973e7bc9c 100644 --- a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Help/ru.html +++ b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Help/ru.html @@ -1,4 +1,4 @@ - +

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

          Открывается командой Восстановление из резервной копии раздела Администрирование - Обслуживание - Резервное копирование и восстановление.

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

          diff --git a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Module.bsl b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Module.bsl index ed942d398..cf6c450af 100644 --- a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Module.bsl +++ b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/ВосстановлениеДанныхИзРезервнойКопии/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если Не ОбщегоНазначения.ЭтоWindowsКлиент() Тогда ВызватьИсключение НСтр("ru = 'Резервное копирование и восстановление данных необходимо настроить средствами операционной системы или другими сторонними средствами.'"); КонецЕсли; @@ -538,7 +534,7 @@ ПараметрыРезервногоКопирования.Вставить("АдминистраторИБ", АдминистраторИБ); ПараметрыРезервногоКопирования.Вставить("ПарольАдминистратораИБ", ?(ТребуетсяВводПароля, ПарольАдминистратораИБ, "")); - РезервноеКопированиеИБСервер.УстановитьПараметрыРезервногоКопирования(ПараметрыРезервногоКопирования); + РезервноеКопированиеИБСервер.УстановитьНастройкиРезервногоКопирования(ПараметрыРезервногоКопирования); КонецПроцедуры diff --git a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Help/ru.html b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Help/ru.html index f20ac1b7d..6968891cc 100644 --- a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Help/ru.html +++ b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

          Открывается по команде Создание резервной копии из раздела Администрирование - Обслуживание - Резервное копирование и восстановление.

          diff --git a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Module.bsl b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Module.bsl index fb44f393f..6091bb048 100644 --- a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Module.bsl +++ b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Forms/РезервноеКопированиеДанных/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если Не ОбщегоНазначения.ЭтоWindowsКлиент() Тогда ВызватьИсключение НСтр("ru = 'Резервное копирование и восстановление данных необходимо настроить средствами операционной системы или другими сторонними средствами.'"); КонецЕсли; @@ -153,7 +149,7 @@ СоединенияИБВызовСервера.РазрешитьРаботуПользователей(); Если ПроцессВыполняется() Тогда - ПроцессВыполняется(Ложь); + УстановитьЗначение(Ложь); КонецЕсли; КонецПроцедуры @@ -279,8 +275,7 @@ КонецПроцедуры &НаКлиенте -Процедура ПерейтиНаСтраницуРезервногоКопированияПослеПроверкиДоступаКИнформационнойБазе(РезультатПодключения, - Контекст) Экспорт +Процедура ПерейтиНаСтраницуРезервногоКопированияПослеПроверкиДоступаКИнформационнойБазе(РезультатПодключения, Контекст) Экспорт Если РезультатПодключения.ОшибкаПодключенияКомпоненты Тогда Элементы.СтраницыСтатусаКопирования.ТекущаяСтраница = Элементы.СтраницаОшибкаПодключения; @@ -290,7 +285,7 @@ УстановитьПараметрыРезервногоКопирования(); КонецЕсли; - ПроцессВыполняется(Истина); + УстановитьЗначение(Истина); КоличествоСеансовИнформационнойБазы = КоличествоСеансовИнформационнойБазы(); Элементы.КоличествоАктивныхПользователей.Заголовок = КоличествоСеансовИнформационнойБазы; @@ -332,11 +327,11 @@ &НаКлиенте Процедура ПерейтиНаСтраницуРезультатовРезервногоКопирования() - Элементы.Далее.Видимость= Ложь; + Элементы.Далее.Видимость = Ложь; Элементы.Отмена.Заголовок = НСтр("ru = 'Закрыть'"); Элементы.Отмена.КнопкаПоУмолчанию = Истина; - ПараметрыРезервногоКопирования = НастройкиРезервногоКопирования(); - РезервноеКопированиеИБКлиент.ЗаполнитьЗначенияГлобальныхПеременных(ПараметрыРезервногоКопирования); + Настройки = НастройкиРезервногоКопирования(); + РезервноеКопированиеИБКлиент.ЗаполнитьЗначенияГлобальныхПеременных(Настройки); УстановитьРезультатРезервногоКопирования(); КонецПроцедуры @@ -351,12 +346,10 @@ &НаСервере Процедура УстановитьПараметрыРезервногоКопирования() - ПараметрыРезервногоКопирования = РезервноеКопированиеИБСервер.НастройкиРезервногоКопирования(); - - ПараметрыРезервногоКопирования.Вставить("АдминистраторИБ", АдминистраторИБ); - ПараметрыРезервногоКопирования.Вставить("ПарольАдминистратораИБ", ?(ТребуетсяВводПароля, ПарольАдминистратораИБ, "")); - - РезервноеКопированиеИБСервер.УстановитьПараметрыРезервногоКопирования(ПараметрыРезервногоКопирования); + Настройки = РезервноеКопированиеИБСервер.НастройкиРезервногоКопирования(); + Настройки.Вставить("АдминистраторИБ", АдминистраторИБ); + Настройки.Вставить("ПарольАдминистратораИБ", ?(ТребуетсяВводПароля, ПарольАдминистратораИБ, "")); + РезервноеКопированиеИБСервер.УстановитьНастройкиРезервногоКопирования(Настройки); КонецПроцедуры @@ -598,7 +591,7 @@ НастройкиПути = РезервноеКопированиеИБСервер.НастройкиРезервногоКопирования(); НастройкиПути.Вставить("КаталогХраненияРезервныхКопийПриРучномЗапуске", Путь); - РезервноеКопированиеИБСервер.УстановитьПараметрыРезервногоКопирования(НастройкиПути); + РезервноеКопированиеИБСервер.УстановитьНастройкиРезервногоКопирования(НастройкиПути); КонецПроцедуры @@ -791,21 +784,24 @@ КонецФункции &НаКлиенте -Функция ПроцессВыполняется(Значение = Неопределено) +Функция ПроцессВыполняется() - ИмяПараметра = "СтандартныеПодсистемы.ПараметрыРезервногоКопированияИБ"; - Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда - ПараметрыРезервногоКопирования = НастройкиРезервногоКопирования(); - РезервноеКопированиеИБКлиент.ЗаполнитьЗначенияГлобальныхПеременных(ПараметрыРезервногоКопирования); - ПараметрыПриложения[ИмяПараметра].ПроцессВыполняется = Ложь; - КонецЕсли; + Настройки = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыРезервногоКопированияИБ"]; + Если Настройки = Неопределено Тогда + НовыеНастройки = НастройкиРезервногоКопирования(); + РезервноеКопированиеИБКлиент.ЗаполнитьЗначенияГлобальныхПеременных(НовыеНастройки); + Настройки = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыРезервногоКопированияИБ"]; + КонецЕсли; + Возврат ?(Настройки.ПроцессВыполняется <> Неопределено, Настройки.ПроцессВыполняется, Ложь); - Если Значение <> Неопределено Тогда - ПараметрыПриложения[ИмяПараметра].ПроцессВыполняется = Значение; - РезервноеКопированиеИБВызовСервера.УстановитьЗначениеНастройки("ПроцессВыполняется", Значение); - Иначе - Возврат ПараметрыПриложения[ИмяПараметра].ПроцессВыполняется; - КонецЕсли; +КонецФункции + +&НаКлиенте +Функция УстановитьЗначение(Знач ПроцессВыполняется) + + Настройки = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыРезервногоКопированияИБ"]; + Настройки.ПроцессВыполняется = ПроцессВыполняется; + РезервноеКопированиеИБВызовСервера.УстановитьЗначениеНастройки("ПроцессВыполняется", ПроцессВыполняется); КонецФункции diff --git a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Templates/МакетФайлаЗагрузкаИБ/Template.txt b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Templates/МакетФайлаЗагрузкаИБ/Template.txt index 60403062c..d9ba1c599 100644 --- a/SSL/src/DataProcessors/РезервноеКопированиеИБ/Templates/МакетФайлаЗагрузкаИБ/Template.txt +++ b/SSL/src/DataProcessors/РезервноеКопированиеИБ/Templates/МакетФайлаЗагрузкаИБ/Template.txt @@ -16,7 +16,7 @@ var TempCatalog = [КаталогВременныхФайлов] // катало var v8exe = [ИмяИсполняемогоФайлаПрограммы] // Путь к исполняемому файлу 1С:Предприятия 8 var infoBasePath = [ПараметрПутиКИнформационнойБазе] var BaseFileName = [СтрокаПутиКФайлуИнформационнойБазы] -var connectionString = [СтрокаСоединенияИнформационнойБазы] + ';UC=РезервноеКопирование' +var connectionString = [СтрокаСоединенияИнформационнойБазы] + '; UC=РезервноеКопирование' var adminName = [ИмяАдминистратораОбновления] // имя администратора, инициировавшего обновление var backupFileName = [ФайлРезервнойКопии] // Файл резервной копии var eventLogID = [СобытиеЖурналаРегистрации] @@ -381,7 +381,6 @@ function doAllowConnections () { var BlockFilePath = BaseFileName + '1Cv8.cdn' if (oFileSystemObject.FileExists(BlockFilePath)) { try { - log('Выполняется удаление файла блокировок 1Cv8.cdn...') oFileSystemObject.DeleteFile(BaseFileName + '1Cv8.cdn') } catch (e) { log(format('Ошибка при удалении файла блокировок 1Cv8.cdn: {0}, {1}.', e.name, e.message), true) diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОбновленияИБ/Help/ru.html b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОбновленияИБ/Help/ru.html index 6ac78b15c..c9bde9fcc 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОбновленияИБ/Help/ru.html +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОбновленияИБ/Help/ru.html @@ -1,4 +1,4 @@ - +

          Индикатор показывает ход обновления ИБ.

          В сообщении выводится номер версии, на которую производится обновление ИБ.

          Обновление может занять длительное время, в зависимости от объема данных и производительности компьютера.

          diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОбновленияИБ/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОбновленияИБ/Module.bsl index ae9d9251a..19a5e0a19 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОбновленияИБ/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОбновленияИБ/Module.bsl @@ -22,10 +22,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ВыполняетсяОбновлениеВерсииИБ = Истина; ВремяНачалаОбновления = ТекущаяДатаСеанса(); diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОтложенногоОбновленияИБ/Help/ru.html b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОтложенногоОбновленияИБ/Help/ru.html index f94ed9317..afaee40b6 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОтложенногоОбновленияИБ/Help/ru.html +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОтложенногоОбновленияИБ/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

          Открывается автоматически при входе в программу после обновления ИБ одновременно с открытием окна Описание изменений программы (Что нового в конфигурации).

          diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОтложенногоОбновленияИБ/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОтложенногоОбновленияИБ/Module.bsl index f4cecf8f6..0cf6fe73e 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОтложенногоОбновленияИБ/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ИндикацияХодаОтложенногоОбновленияИБ/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - НастройкиПодсистемы = ОбновлениеИнформационнойБазыСлужебный.НастройкиПодсистемы(); ТекстПодсказки = НастройкиПодсистемы.ПоясненияДляРезультатовОбновления; @@ -134,10 +130,6 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - #Если МобильныйКлиент Тогда ЭтотОбъект.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Нет; #КонецЕсли diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Help/ru.html b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Help/ru.html index 6a5f492a7..9b32c57d0 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Help/ru.html +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

          diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Module.bsl index 10ea07f93..f936c30c7 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/ОтложенныеОбработчики/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - СведенияОбОбновлении = ОбновлениеИнформационнойБазыСлужебный.СведенияОбОбновленииИнформационнойБазы(); ВремяНачалаОтложенногоОбновления = СведенияОбОбновлении.ВремяНачалаОтложенногоОбновления; ВремяОкончанияОтложенногоОбновления = СведенияОбОбновлении.ВремяОкончаниеОтложенногоОбновления; diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеОНеудачномОбновлении/Help/ru.html b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеОНеудачномОбновлении/Help/ru.html index d57c485e8..cf2e29e3f 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеОНеудачномОбновлении/Help/ru.html +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеОНеудачномОбновлении/Help/ru.html @@ -1,4 +1,4 @@ - +

          Предназначено для информирования об ошибке во время обновления ИБ.

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

          Для того чтобы выйти из программы, нажмите Завершить.

          diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеОНеудачномОбновлении/Module.bsl b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеОНеудачномОбновлении/Module.bsl index b36e4e9f6..eda0c7fbc 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеОНеудачномОбновлении/Module.bsl +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Forms/СообщениеОНеудачномОбновлении/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - // Переход в режим открытия формы повторной синхронизации данных перед запуском // с двумя вариантами "Синхронизировать и продолжить" и "Продолжить". Если ЗначениеЗаполнено(Параметры.ПодробноеПредставлениеОшибки) diff --git a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Help/ru.html b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Help/ru.html index 40b392eee..17c71283f 100644 --- a/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Help/ru.html +++ b/SSL/src/DataProcessors/РезультатыОбновленияПрограммы/Help/ru.html @@ -1,28 +1,40 @@ - +

          Существует два метода обновления ИБ, которые могут применяться, дополняя друг друга:

          • с помощью монопольных обработчиков:
            • работа пользователей заблокирована.
              -
            • +
            • +
            • применяется для обновления тех данных, обработка которых должна быть обязательно завершена к моменту входа пользователей в программу.
              • -
                чем меньше таких данных, тем меньше время простоя.
          • +
            чем меньше таких данных, тем меньше время простоя.
        +
      • с помощью отложенных обработчиков:
        • вход пользователей в программу разрешен.
          -
        • +
        • +
        • применяется для обновления "архивной" части данных ИБ, с которыми пользователи либо активно не работают, либо могут начинать свою работу, не дожидаясь завершения обработки.

      Обновление информационной базы

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

      Описание изменений программы

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

      • После успешного завершения обновления версии программы можно просмотреть описание изменений и улучшений в новой версии (окно Что нового в конфигурации), перейти к журналу регистрации, чтобы ознакомиться с техническими событиями, возникшими в ходе процесса обновления, а также запустить, а затем проконтролировать ход отложенной обработки данных (если она предусмотрена в этой версии программы). В дальнейшем окно Что нового можно также открыть в разделе Главное.

      Особенности и преимущества отложенного обновления ИБ

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

      Контроль процесса отложенного обновления

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

      • В тех случаях, когда переход на новую версию программы предусматривает фоновую отложенную обработку данных, с ходом выполнения отложенных процедур обновления версии программы администратор может ознакомиться, выполнив команду Результаты обновления и дополнительная обработка данных раздела Администрирование - Обслуживание - Результаты обновления программы, а также по ссылке Выполняются дополнительные процедуры обработки данных в окне Что нового в конфигурации.
      \ No newline at end of file diff --git a/SSL/src/DataProcessors/СдвигГраницыИтогов/Forms/ОсновнаяФорма/Module.bsl b/SSL/src/DataProcessors/СдвигГраницыИтогов/Forms/ОсновнаяФорма/Module.bsl index 843830233..1d93abc1e 100644 --- a/SSL/src/DataProcessors/СдвигГраницыИтогов/Forms/ОсновнаяФорма/Module.bsl +++ b/SSL/src/DataProcessors/СдвигГраницыИтогов/Forms/ОсновнаяФорма/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Если Не УправлениеИтогамиИАгрегатамиСлужебный.НадоСдвинутьГраницуИтогов() Тогда Отказ = Истина; // Период уже был установлен в сеансе другого пользователя. Возврат; diff --git a/SSL/src/DataProcessors/Сканирование/Forms/ВыборУстройстваСканирования/Help/ru.html b/SSL/src/DataProcessors/Сканирование/Forms/ВыборУстройстваСканирования/Help/ru.html index 38bac756f..b6a488341 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/ВыборУстройстваСканирования/Help/ru.html +++ b/SSL/src/DataProcessors/Сканирование/Forms/ВыборУстройстваСканирования/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

      \ No newline at end of file diff --git a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Help/ru.html b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Help/ru.html index 553b8da37..695905ff7 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Help/ru.html +++ b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

      Имя сканера

      diff --git a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Module.bsl b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Module.bsl index f692b8ee3..77e763fb3 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Module.bsl +++ b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканирования/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ИдентификаторКлиента = Параметры.ИдентификаторКлиента; ПоказыватьДиалогСканера = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( diff --git a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Help/ru.html b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Help/ru.html index 52d45efc2..a4721f19e 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Help/ru.html +++ b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Help/ru.html @@ -1,4 +1,4 @@ - +

      Предназначена для настройки на данный сеанс сканирования (эти настройки не будут сохранены). Открывается из Помощника сканирования по команде Настройка.

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

      Основное

      diff --git a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Module.bsl b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Module.bsl index cceab6438..52e74f659 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Module.bsl +++ b/SSL/src/DataProcessors/Сканирование/Forms/НастройкаСканированияНаСеанс/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Разрешение = Параметры.Разрешение; Цветность = Параметры.Цветность; diff --git a/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Help/ru.html b/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Help/ru.html index 4e794d7e7..26ac586d5 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Help/ru.html +++ b/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Help/ru.html @@ -1,4 +1,4 @@ - +

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

      Сканирование изображений производится по команде Создать файл - Со сканера в списке Файлы (Присоединенные файлы).

      Работа с отсканированными изображениями

      diff --git a/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Module.bsl b/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Module.bsl index b762e7960..49ad2a627 100644 --- a/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Module.bsl +++ b/SSL/src/DataProcessors/Сканирование/Forms/РезультатСканирования/Module.bsl @@ -21,10 +21,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Элементы.ТаблицаФайлов.Видимость = Ложь; Элементы.ФормаПринятьВсеКакОдинФайл.Видимость = Ложь; Элементы.ФормаПринятьВсеКакОтдельныеФайлы.Видимость = Ложь; diff --git a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/ВыборПравилОбработки/Module.bsl b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/ВыборПравилОбработки/Module.bsl index bfe531ef8..718e9b726 100644 --- a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/ВыборПравилОбработки/Module.bsl +++ b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/ВыборПравилОбработки/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - УстановитьПравилаПоУмолчанию(); ТипЗначенияСвойства = Параметры.ТипЗначения; diff --git a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/Форма/Module.bsl index de81c4b43..213a48979 100644 --- a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Forms/Форма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); СохраненныеНастройки = СохраненныеНастройки(ОбработкаОбъект); АдресХранилищаНастроек = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор); @@ -41,9 +37,6 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Если Не МакетОпределен Тогда Элементы.ГруппаИзменениеРежима.Видимость = Ложь; diff --git a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Help/ru.html b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Help/ru.html index cde164149..c5542d014 100644 --- a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Help/ru.html +++ b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/Help/ru.html @@ -1,4 +1,4 @@ - +

      Предназначена для очистки конфиденциальной информации. Доступна только администратору в меню Все функции.

      Предоставляет возможности:

      • Возможность очистки реквизитов; diff --git a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/ObjectModule.bsl b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/ObjectModule.bsl index 70b2f2158..ab8ae47f0 100644 --- a/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/ObjectModule.bsl +++ b/SSL/src/DataProcessors/СкрытиеКонфиденциальнойИнформации/ObjectModule.bsl @@ -625,7 +625,7 @@ Если РазделениеВключено Тогда ПолноеИмя = СтрокаДерева.ПолноеИмя + "." + ОбъектМетаданных.Имя; - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ЭтоРазделенныйОМД = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ПолноеИмя); Иначе diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаАвтоматическогоСопоставления/Module.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаАвтоматическогоСопоставления/Module.bsl index 7e73bf8d1..2a562b3b4 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаАвтоматическогоСопоставления/Module.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаАвтоматическогоСопоставления/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - СписокПолейСопоставления = Параметры.СписокПолейСопоставления; КонецПроцедуры diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаПолейТаблицы/Module.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаПолейТаблицы/Module.bsl index c33502cf2..e4101a8af 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаПолейТаблицы/Module.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаПолейТаблицы/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - СписокПолей = Параметры.СписокПолей; КонецПроцедуры diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаПолейТаблицыСопоставления/Module.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаПолейТаблицыСопоставления/Module.bsl index fdad2e9d7..6ca3fdce3 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаПолейТаблицыСопоставления/Module.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаПолейТаблицыСопоставления/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - СписокПолей = Параметры.СписокПолей; КонецПроцедуры diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаСортировки/Module.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаСортировки/Module.bsl index e87647540..9b944a6f7 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаСортировки/Module.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/НастройкаСортировки/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТаблицаСортировки.Загрузить(Параметры.ТаблицаСортировки.Выгрузить()); КонецПроцедуры diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/РезультатАвтоматическогоСопоставления/Module.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/РезультатАвтоматическогоСопоставления/Module.bsl index 854138d57..f246c44fa 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/РезультатАвтоматическогоСопоставления/Module.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/РезультатАвтоматическогоСопоставления/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ВыдаватьПредупреждениеПриЗакрытииФормы = Истина; // Проверка, что форма открыта программно. diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Module.bsl index 8be992913..677813819 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/Форма/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - // Проверка, что форма открыта программно. Если Не Параметры.Свойство("ИмяФайлаСообщенияОбмена") Тогда ВызватьИсключение НСтр("ru = 'Обработка не предназначена для непосредственного использования.'"); diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/ФормаВыбораСвязиСопоставления/Module.bsl b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/ФормаВыбораСвязиСопоставления/Module.bsl index 9399f99d7..396a0c9d5 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/ФормаВыбораСвязиСопоставления/Module.bsl +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Forms/ФормаВыбораСвязиСопоставления/Module.bsl @@ -36,10 +36,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОбъектДляСопоставления = Параметры.ОбъектДляСопоставления; Элементы.ОбъектДляСопоставления.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( diff --git a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Help/ru.html b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Help/ru.html index 7b987a14a..f0e630cf4 100644 --- a/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Help/ru.html +++ b/SSL/src/DataProcessors/СопоставлениеОбъектовИнформационныхБаз/Help/ru.html @@ -1,4 +1,4 @@ - +

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

        Список открывается по команде Выполнить сопоставление на странице Сопоставление данных Помощника интерактивной синхронизации данных. Также можно дважды щелкнуть мышью по строке, в которой обнаружены проблемы сопоставления данных.

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

        diff --git a/SSL/src/DataProcessors/ТекущиеДела/Forms/НастройкаТекущихДел/Module.bsl b/SSL/src/DataProcessors/ТекущиеДела/Forms/НастройкаТекущихДел/Module.bsl index 49e23b386..cf8bc70d6 100644 --- a/SSL/src/DataProcessors/ТекущиеДела/Forms/НастройкаТекущихДел/Module.bsl +++ b/SSL/src/DataProcessors/ТекущиеДела/Forms/НастройкаТекущихДел/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - НастройкиОтображения = ТекущиеДелаСлужебный.СохраненныеНастройкиОтображения(); ЗаполнитьДеревоДел(НастройкиОтображения); УстановитьПорядокРазделов(НастройкиОтображения); diff --git a/SSL/src/DataProcessors/ТекущиеДела/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТекущиеДела/Forms/Форма/Module.bsl index 10c7c62c0..04739f3ca 100644 --- a/SSL/src/DataProcessors/ТекущиеДела/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТекущиеДела/Forms/Форма/Module.bsl @@ -18,11 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ИнтерфейсТакси = (КлиентскоеПриложение.ТекущийВариантИнтерфейса() = ВариантИнтерфейсаКлиентскогоПриложения.Такси); ДлительнаяОперация = СформироватьСписокТекущихДелВФоне(); diff --git a/SSL/src/DataProcessors/ТекущиеДела/Help/ru.html b/SSL/src/DataProcessors/ТекущиеДела/Help/ru.html index 52b00b075..805d904c8 100644 --- a/SSL/src/DataProcessors/ТекущиеДела/Help/ru.html +++ b/SSL/src/DataProcessors/ТекущиеДела/Help/ru.html @@ -1,5 +1,5 @@ - -

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

        + +

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

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

        Дела отображаются в виде ссылок, перейдя по которым, можно открыть соответствующие списки, документы или другие объекты программы.

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

        diff --git a/SSL/src/DataProcessors/ТекущиеДела/ManagerModule.bsl b/SSL/src/DataProcessors/ТекущиеДела/ManagerModule.bsl index d3fc69a54..33066ccdc 100644 --- a/SSL/src/DataProcessors/ТекущиеДела/ManagerModule.bsl +++ b/SSL/src/DataProcessors/ТекущиеДела/ManagerModule.bsl @@ -16,7 +16,9 @@ Настройки = Новый Структура; Настройки.Вставить("ЗаголовокПрочихДел"); + ИнтеграцияПодсистемБСП.ПриОпределенииНастроекТекущихДел(Настройки); ТекущиеДелаПереопределяемый.ПриОпределенииНастроек(Настройки); + Если ЗначениеЗаполнено(Настройки.ЗаголовокПрочихДел) Тогда ЗаголовокПрочихДел = Настройки.ЗаголовокПрочихДел; Иначе @@ -24,6 +26,7 @@ КонецЕсли; Возврат ЗаголовокПрочихДел; + КонецФункции #КонецОбласти diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/Forms/Форма/Module.bsl index e803df40c..9cf4ad6cb 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаEMAIL/Forms/Форма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ВызватьИсключение НСтр("ru='Обработка не предназначена для непосредственного использования.'"); КонецПроцедуры diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/Forms/Форма/Module.bsl index e803df40c..9cf4ad6cb 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFILE/Forms/Форма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ВызватьИсключение НСтр("ru='Обработка не предназначена для непосредственного использования.'"); КонецПроцедуры diff --git a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/Forms/Форма/Module.bsl index e803df40c..9cf4ad6cb 100644 --- a/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/ТранспортСообщенийОбменаFTP/Forms/Форма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ВызватьИсключение НСтр("ru='Обработка не предназначена для непосредственного использования.'"); КонецПроцедуры diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Form.form b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Form.form index ae2d77023..942631a42 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Form.form +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Form.form @@ -225,6 +225,10 @@ Right Button + + OnChange + УскоритьУдалениеПомеченныхПриИзменении + УскоритьУдалениеПомеченныхРасширеннаяПодсказка 441 diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl index 1565e5dad..d6a7c4d57 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Forms/ОсновнаяФорма/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда ТекстОшибки = НСтр("ru = 'Недостаточно прав для выполнения операции.'"); @@ -59,6 +56,7 @@ РежимУдаления = "Полный"; ПриСозданииНаСервереУстановитьТекстПоясненияКОбработке(); ВидимостьДоступность(ЭтотОбъект); + КонецПроцедуры &НаСервере @@ -646,6 +644,8 @@ Элементы.КнопкаДалее.Видимость = Ложь; КонецЕсли; + Элементы.ПодсказкаМонопольногоРежима.Видимость = Форма.Монопольно; + КонецПроцедуры &НаКлиентеНаСервереБезКонтекста @@ -1487,4 +1487,11 @@ КонецЕсли; КонецПроцедуры +&НаКлиенте +Процедура УскоритьУдалениеПомеченныхПриИзменении(Элемент) + + ВидимостьДоступность(ЭтотОбъект); + +КонецПроцедуры + #КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Help/ru.html b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Help/ru.html index e55320e22..46aa9bfbe 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Help/ru.html +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

        diff --git a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl index 820ef514a..0d79e51d1 100644 --- a/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl +++ b/SSL/src/DataProcessors/УдалениеПомеченныхОбъектов/ManagerModule.bsl @@ -813,7 +813,7 @@ Если Не ПараметрыВыполнения.Свойство("МодельСервиса") Тогда ПараметрыВыполнения.Вставить("МодельСервиса", ОбщегоНазначения.РазделениеВключено()); Если ПараметрыВыполнения.МодельСервиса Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); РазделительОсновныхДанных = МодульРаботаВМоделиСервиса.РазделительОсновныхДанных(); РазделительВспомогательныхДанных = МодульРаботаВМоделиСервиса.РазделительВспомогательныхДанных(); @@ -998,7 +998,7 @@ Информация.Технический = ЭтоТехническийОбъект(Информация.ПолноеИмя); Если ПараметрыВыполнения.МодельСервиса Тогда - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); ЭтоРазделенныйОбъектМетаданных = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ОбъектМетаданных); Иначе diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФорма/Module.bsl b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФорма/Module.bsl index 443431edc..081efa418 100644 --- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФорма/Module.bsl +++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФорма/Module.bsl @@ -16,10 +16,6 @@ ВызватьИсключение НСтр("ru = 'Использование обработки в интерактивном режиме доступно только администратору.'"); КонецЕсли; - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ПроверитьВерсиюИРежимСовместимостиПлатформы(); Объект.ЭтоИнтерактивныйРежим = Истина; diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФормаНастройкиОтладкиОбработчиков/Module.bsl b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФормаНастройкиОтладкиОбработчиков/Module.bsl index ecaf5e877..475151b4e 100644 --- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФормаНастройкиОтладкиОбработчиков/Module.bsl +++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Forms/УправляемаяФормаНастройкиОтладкиОбработчиков/Module.bsl @@ -16,10 +16,6 @@ ВызватьИсключение НСтр("ru = 'Использование обработки в интерактивном режиме доступно только администратору.'"); КонецЕсли; - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Объект.ИмяФайлаОбмена = Параметры.ИмяФайлаОбмена; Объект.ИмяФайлаПравилОбмена = Параметры.ИмяФайлаПравилОбмена; Объект.ИмяФайлаВнешнейОбработкиОбработчиковСобытий = Параметры.ИмяФайлаВнешнейОбработкиОбработчиковСобытий; diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Help/ru.html b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Help/ru.html index 520c8991c..8c393529a 100644 --- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Help/ru.html +++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Help/ru.html @@ -1,4 +1,4 @@ -

        Обработка "Универсальный обмен данными в формате XML" предназначена для загрузки и выгрузки данных в файл из любой конфигурации, реализованной на платформе 1С:Предприятие 8.

        +

        Обработка "Универсальный обмен данными в формате XML" предназначена для загрузки и выгрузки данных в файл из любой конфигурации, реализованной на платформе 1С:Предприятие 8.

        Режим работы

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

        Обработка имеет четыре закладки

        @@ -27,9 +27,11 @@

        "Изменения регистрации для узлов обмена после выгрузки" – поле определяет режим работы с регистрацией изменений данных после завершения выгрузки данных. Возможные значения:

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


        "Протокол обмена" – позволяет настроить вывод информационных сообщений в окно сообщений, ведение и запись в отдельный файл протокола обмена.

        "Имя файла, протокола обмена" – имя файла для вывода протокола процесса обмена данными.

        "Протокол загрузки (для COM - соединения)" – имя файла для вывода протокола процесса обмена данными в базе-приемнике при обмене через COM-соединение. Важно: путь к файлу должен быть доступен с компьютера, на котором установлена база-приемник.

        @@ -47,9 +49,11 @@


        На первом шаге необходимо определиться с режимом отладки алгоритмов:

        • Без отладки алгоритмов
          -
        • +
        • +
        • Вызывать алгоритмы как процедуры
          -
        • +
        • +
        • Подставлять код алгоритмов по месту вызова

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

        Второй режим необходимо использовать в тех случаях, когда ошибка находится в коде алгоритма. При установке этого режима алгоритмы будут выгружены как отдельные процедуры. В момент вызова алгоритма из какого-либо обработчика происходит обращение к соответствующей процедуре обработки. Этот режим удобно использовать, когда для передачи параметров в алгоритмы используется глобальная переменная "Параметры". Ограничения использования этого режима в том, что при отладке в алгоритме недоступны локальные переменные обработчика, из которого он вызывается.

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

        diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl index f370d464d..6ffbf7114 100644 --- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl +++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/ObjectModule.bsl @@ -6024,17 +6024,23 @@ Возврат; КонецЕсли; - Попытка - Объект.ОбменДанными.Загрузка = Значение; - Исключение - // Не все объекты, которые участвуют в обмене, имеют свойство "ОбменДанными". - // Например КонстантыНабор такого свойства не имеют. - // Использование конструкции Попытка ... Исключение выгоднее с точки зрения быстродействия, - // нежели определения типа объекта. - КонецПопытки; + Если ЕстьРеквизитИлиСвойствоОбъекта(Объект, "ОбменДанными") Тогда + СтруктураДляЗаполнения = Новый Структура("Загрузка", Значение); + ЗаполнитьЗначенияСвойств(Объект.ОбменДанными, СтруктураДляЗаполнения); + КонецЕсли; КонецПроцедуры +Функция ЕстьРеквизитИлиСвойствоОбъекта(Объект, ИмяРеквизита) + + КлючУникальности = Новый УникальныйИдентификатор; + СтруктураРеквизита = Новый Структура(ИмяРеквизита, КлючУникальности); + ЗаполнитьЗначенияСвойств(СтруктураРеквизита, Объект); + + Возврат СтруктураРеквизита[ИмяРеквизита] <> КлючУникальности; + +КонецФункции + Функция УстановитьСсылкуНового(Объект, Менеджер, СвойстваПоиска) УИ = СвойстваПоиска["{УникальныйИдентификатор}"]; diff --git a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Templates/ПараметрыОбработчиков/Template.mxlx b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Templates/ПараметрыОбработчиков/Template.mxlx index 0dcc9218a..e2749f211 100644 --- a/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Templates/ПараметрыОбработчиков/Template.mxlx +++ b/SSL/src/DataProcessors/УниверсальныйОбменДаннымиXML/Templates/ПараметрыОбработчиков/Template.mxlx @@ -24,6 +24,12 @@ + + 0 + + true + + 1 @@ -75,6 +81,12 @@ + + 4 + + true + + 5 @@ -211,6 +223,12 @@ + + 13 + + true + + 14 @@ -647,6 +665,12 @@ + + 40 + + true + + 41 @@ -681,6 +705,12 @@ + + 43 + + true + + 44 @@ -732,6 +762,12 @@ + + 47 + + true + + 48 @@ -749,6 +785,13 @@ + + 49 + 50 + + true + + 51 @@ -970,6 +1013,12 @@ + + 64 + + true + + 65 @@ -1123,6 +1172,12 @@ + + 74 + + true + + 75 @@ -1140,6 +1195,13 @@ + + 76 + 77 + + true + + 78 @@ -1208,6 +1270,12 @@ + + 82 + + true + + 83 @@ -1259,6 +1327,12 @@ + + 86 + + true + + 87 @@ -1310,6 +1384,12 @@ + + 90 + + true + + 91 @@ -1378,6 +1458,12 @@ + + 95 + + true + + 96 @@ -1429,6 +1515,12 @@ + + 99 + + true + + 100 @@ -1531,6 +1623,12 @@ + + 106 + + true + + 107 @@ -1667,6 +1765,12 @@ + + 115 + + true + + 116 @@ -1786,6 +1890,12 @@ + + 123 + + true + + 124 @@ -1854,6 +1964,12 @@ + + 128 + + true + + 129 @@ -1939,6 +2055,12 @@ + + 134 + + true + + 135 @@ -2041,6 +2163,12 @@ + + 141 + + true + + 142 @@ -2075,6 +2203,12 @@ + + 144 + + true + + 145 @@ -2381,6 +2515,12 @@ + + 163 + + true + + 164 @@ -2602,6 +2742,12 @@ + + 177 + + true + + 178 @@ -2987,6 +3133,12 @@ + + 201 + + true + + 202 @@ -3208,6 +3360,12 @@ + + 215 + + true + + 216 @@ -3310,6 +3468,12 @@ + + 222 + + true + + 223 @@ -3480,6 +3644,12 @@ + + 233 + + true + + 234 @@ -3616,6 +3786,12 @@ + + 242 + + true + + 243 @@ -3837,6 +4013,12 @@ + + 256 + + true + + 257 @@ -4041,6 +4223,12 @@ + + 269 + + true + + 270 @@ -4262,6 +4450,12 @@ + + 283 + + true + + 284 @@ -4483,6 +4677,12 @@ + + 297 + + true + + 298 @@ -4670,6 +4870,12 @@ + + 309 + + true + + 310 @@ -4976,6 +5182,12 @@ + + 328 + + true + + 329 @@ -5316,6 +5528,12 @@ + + 349 + + true + + 350 @@ -5673,6 +5891,12 @@ + + 371 + + true + + 372 @@ -5707,6 +5931,12 @@ + + 374 + + true + + 375 diff --git a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ОсновнаяФорма/Module.bsl b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ОсновнаяФорма/Module.bsl index 63e726c87..260a15cdf 100644 --- a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ОсновнаяФорма/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ОсновнаяФорма/Module.bsl @@ -20,10 +20,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если ОбщегоНазначения.РазделениеВключено() Тогда ВызватьИсключение НСтр("ru = 'Управление итогами и агрегатами недоступно в модели сервиса.'"); КонецЕсли; diff --git a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаВыбораПериода/Help/ru.html b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаВыбораПериода/Help/ru.html index ca7374864..6442de929 100644 --- a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаВыбораПериода/Help/ru.html +++ b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаВыбораПериода/Help/ru.html @@ -1,4 +1,4 @@ - +

        В данном диалоге можно ввести границы периода рассчитанных итогов для регистров накопления или бухгалтерии.

        По умолчанию предлагаются следующие даты для установки границы рассчитанных итогов:

        • diff --git a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаВыбораПериода/Module.bsl b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаВыбораПериода/Module.bsl index 1cd240801..258908c3a 100644 --- a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаВыбораПериода/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаВыбораПериода/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ПериодДляРегистровНакопления = КонецПериода(ДобавитьМесяц(ТекущаяДатаСеанса(), -1)); ПериодДляРегистровБухгалтерии = КонецПериода(ТекущаяДатаСеанса()); diff --git a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаПараметровПерестроения/Help/ru.html b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаПараметровПерестроения/Help/ru.html index 0c56afd0f..ee2e2efab 100644 --- a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаПараметровПерестроения/Help/ru.html +++ b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаПараметровПерестроения/Help/ru.html @@ -1,4 +1,4 @@ - +

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

          • Максимальный относительный размер - максимальная сумма размеров агрегатов в процентах от таблицы движений. Если параметр неуказан или равен нулю, то нет ограничения размера агрегатов.
            diff --git a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаПараметровПерестроения/Module.bsl b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаПараметровПерестроения/Module.bsl index 0e2ecf010..6a3131b90 100644 --- a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаПараметровПерестроения/Module.bsl +++ b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Forms/ФормаПараметровПерестроения/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОтносительныйРазмер = Параметры.ОтносительныйРазмер; МинимальныйЭффект = Параметры.МинимальныйЭффект; Элементы.МинимальныйЭффект.Видимость = Параметры.РежимПерестроения; diff --git a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Help/ru.html b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Help/ru.html index 1e6d24244..c95f75a7d 100644 --- a/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Help/ru.html +++ b/SSL/src/DataProcessors/УправлениеИтогамиИАгрегатами/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

            diff --git a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/НастройкаРезервнойКопии/Help/ru.html b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/НастройкаРезервнойКопии/Help/ru.html index 8f4ba989c..a34a08810 100644 --- a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/НастройкаРезервнойКопии/Help/ru.html +++ b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/НастройкаРезервнойКопии/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

            Открывается по ссылке Создавать временную резервную копию ИБ и выполнять откат при нештатной ситуации из окна Поиск и установка обновлений. 

            diff --git a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/НастройкаРезервнойКопии/Module.bsl b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/НастройкаРезервнойКопии/Module.bsl index 2f831cd10..a5e12366f 100644 --- a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/НастройкаРезервнойКопии/Module.bsl +++ b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/НастройкаРезервнойКопии/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЗаполнитьЗначенияСвойств(Объект, Параметры); ОбновитьСостояниеЭлементовУправления(ЭтотОбъект); diff --git a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/ОбновлениеНеПодходит/Form.form b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/ОбновлениеНеПодходит/Form.form new file mode 100644 index 000000000..0df11fed2 --- /dev/null +++ b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/ОбновлениеНеПодходит/Form.form @@ -0,0 +1,425 @@ + + + + ГруппаПредупреждение + 22 + + ПредупреждениеКартинка + 19 + + <key>ru</key> + <value>Предупреждение картинка</value> + + true + true + + true + + + ПредупреждениеКартинкаРасширеннаяПодсказка + 21 + Label + true + true + + Left + + + + ПредупреждениеКартинкаКонтекстноеМеню + 20 + true + + true + true + + + CommonPicture.Предупреждение32 + + AsFileRef + + + + ПредупреждениеТекст + 24 + + <key>ru</key> + <value>Выбранный файл поставки обновления не подходит для установленной программы +%1 (%2) +%3 (%4)</value> + + true + true + + true + + + ПредупреждениеТекстРасширеннаяПодсказка + 26 + Label + true + true + + Left + + + + ПредупреждениеТекстКонтекстноеМеню + 25 + true + + Label + true + + Left + + + true + true + + true + + + <key>ru</key> + <value>Группа предупреждение</value> + + + ГруппаПредупреждениеРасширеннаяПодсказка + 23 + Label + true + true + + Left + + + UsualGroup + + AlwaysHorizontal + Auto + NormalSeparation + true + true + Auto + Auto + + + + ОбновлениеДляВерсий + 1 + + <key>ru</key> + <value>Поставка предназначена для обновления следующих версий</value> + + true + true + + true + + + ОбновлениеДляВерсий + + Add + Change + Copy + Delete + EndEdit + HierarchicalList + List + MoveDown + MoveUp + ShowMultipleSelection + ShowRowRearrangement + SortListAsc + SortListDesc + Tree + + ОбновлениеДляВерсийВерсияКонфигурации + 14 + true + true + + true + + + ОбновлениеДляВерсий.Версия + + + ОбновлениеДляВерсийВерсияКонфигурацииРасширеннаяПодсказка + 16 + Label + true + true + + Left + + + + ОбновлениеДляВерсийВерсияКонфигурацииКонтекстноеМеню + 15 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ОбновлениеДляВерсийКоманднаяПанель + 3 + Left + + + ОбновлениеДляВерсийСтрокаПоиска + 5 + + ОбновлениеДляВерсийСтрокаПоискаРасширеннаяПодсказка + 7 + Label + true + true + + Left + + + + ОбновлениеДляВерсийСтрокаПоискаКонтекстноеМеню + 6 + true + + ОбновлениеДляВерсий + + true + + + + ОбновлениеДляВерсийСостояниеПросмотра + 8 + + ОбновлениеДляВерсийСостояниеПросмотраРасширеннаяПодсказка + 10 + Label + true + true + + Left + + + + ОбновлениеДляВерсийСостояниеПросмотраКонтекстноеМеню + 9 + true + + ViewStatusAddition + ОбновлениеДляВерсий + + true + + + + ОбновлениеДляВерсийУправлениеПоиском + 11 + + ОбновлениеДляВерсийУправлениеПоискомРасширеннаяПодсказка + 13 + Label + true + true + + Left + + + + ОбновлениеДляВерсийУправлениеПоискомКонтекстноеМеню + 12 + true + + SearchControlAddition + ОбновлениеДляВерсий + + true + + + + ОбновлениеДляВерсийРасширеннаяПодсказка + 4 + Label + true + true + + Left + + + + ОбновлениеДляВерсийКонтекстноеМеню + 2 + + ВывестиСписок + 17 + true + true + + true + + + ВывестиСписокРасширеннаяПодсказка + 18 + Label + true + true + + Left + + + Form.Item.ОбновлениеДляВерсий.StandardCommand.OutputList + Normal + Auto + true + true + UserCmds + Auto + + true + + Tree + true + true + true + true + MultiRow + Row + 1 + 1 + AutoUse + AutoUse + true + true + false + false + true + Auto + Auto + ExpandAllLevels + true + true + true + true + AsFileRef + true + + Bottom + true + + ФормаКоманднаяПанель + -1 + + ФормаЗакрыть + 27 + true + true + + true + + + ФормаЗакрытьРасширеннаяПодсказка + 28 + Label + true + true + + Left + + + Form.StandardCommand.Close + Auto + true + true + true + UserCmds + Auto + + Right + true + + + OnCreateAtServer + ПриСозданииНаСервере + + Abort + Cancel + CustomizeForm + Help + Ignore + No + OK + RestoreValues + Retry + SaveValues + Yes + LockOwner + true + true + true + Vertical + true + true + true + auto + true + + ОбновлениеДляВерсий + + <key>ru</key> + <value>Обновление для версий</value> + + 2 + + ValueTree + + + true + + + true + + + Версия + + <key>ru</key> + <value>Версия</value> + + 1 + + String + + + + true + + + true + + + + + ИсходныеКонфигурации + + String + + + + + + + + diff --git a/SSL/src/InformationRegisters/ПодпискиПолучателей/Forms/ФормаЗаписи/Module.bsl b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/ОбновлениеНеПодходит/Module.bsl similarity index 55% rename from SSL/src/InformationRegisters/ПодпискиПолучателей/Forms/ФормаЗаписи/Module.bsl rename to SSL/src/DataProcessors/УстановкаОбновлений/Forms/ОбновлениеНеПодходит/Module.bsl index 0e5990f4b..0bb902f49 100644 --- a/SSL/src/InformationRegisters/ПодпискиПолучателей/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/ОбновлениеНеПодходит/Module.bsl @@ -11,16 +11,14 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; + Элементы.ПредупреждениеТекст.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + Элементы.ПредупреждениеТекст.Заголовок, + Метаданные.Синоним, Метаданные.Версия, Метаданные.Имя, Метаданные.Поставщик); - Если ЗначениеЗаполнено(Запись.Получатель) Тогда - - Элементы.Получатель.Видимость = Ложь; - - КонецЕсли; + ИсходныеКонфигурации = ПолучитьИзВременногоХранилища(Параметры.ИсходныеКонфигурации); + ЗначениеВРеквизитФормы(ИсходныеКонфигурации, "ОбновлениеДляВерсий"); КонецПроцедуры #КонецОбласти + diff --git a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Form.form b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Form.form index e78395334..5b97311c5 100644 --- a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Form.form +++ b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Form.form @@ -3729,6 +3729,24 @@ true + + ИсходныеКонфигурации + + <key>ru</key> + <value>Исходные конфигурации</value> + + 2 + + String + + + + true + + + true + + Назад diff --git a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Module.bsl b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Module.bsl index 191cd2061..020212a61 100644 --- a/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Module.bsl +++ b/SSL/src/DataProcessors/УстановкаОбновлений/Forms/Форма/Module.bsl @@ -17,9 +17,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; Если Не ОбновлениеКонфигурации.ЕстьПраваНаУстановкуОбновления() Тогда ВызватьИсключение НСтр("ru = 'Недостаточно прав для обновления конфигурации. Обратитесь к администратору.'"); @@ -115,9 +112,8 @@ Если КонфигурацияИзменена Тогда ПерейтиКВыборуРежимаОбновления(); Возврат; - Иначе - ИмяСтраницы = Страницы.ОбновленияНеОбнаружено.Имя; КонецЕсли; + ИмяСтраницы = Страницы.ОбновленияНеОбнаружено.Имя; КонецЕсли; ПередОткрытиемСтраницы(Страницы[ИмяСтраницы]); @@ -172,21 +168,7 @@ Процедура ПолеФайлОбновленияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; - - Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); - Диалог.Каталог = ПолучитьКаталогФайла(Элементы.ПолеФайлОбновления.ТекстРедактирования); - Диалог.ПроверятьСуществованиеФайла = Истина; - Если ЭтоБазоваяВерсия Тогда - Диалог.Фильтр = НСтр("ru = 'Все файлы поставки (*.cf*;*.cfu)|*.cf*;*.cfu|Файлы поставки конфигурации (*.cf)|*.cf|Файлы поставки обновления конфигурации(*.cfu)|*.cfu'"); - Иначе - Диалог.МножественныйВыбор = Истина; - Диалог.Фильтр = НСтр("ru = 'Все файлы (*.cf*;*.cfu;*.cfe;*.zip)|*.cf*;*.cfu;*.cfe;*.zip|Файлы поставки конфигурации (*.cf)|*.cf|Файлы поставки обновления конфигурации (*.cfu)|*.cfu|Файлы исправлений (*.cfe*;*.zip)|*.cfe*;*.zip'"); - КонецЕсли; - Диалог.Заголовок = НСтр("ru = 'Выбор поставки обновления конфигурации'"); - - Если Диалог.Выбрать() Тогда - ВыбранныеФайлы = СтрСоединить(Диалог.ВыбранныеФайлы, ","); - КонецЕсли; + ВыбратьФайлОбновления(); КонецПроцедуры @@ -398,11 +380,14 @@ Если НуженФайлОбновления = 0 Тогда Если КонфигурацияИзменена Тогда - Элементы.СтраницыНадписиИзмененнойКонфигурации.ТекущаяСтраница = Элементы.СтраницыНадписиИзмененнойКонфигурации.ПодчиненныеЭлементы.ЕстьИзменения; + Элементы.СтраницыНадписиИзмененнойКонфигурации.ТекущаяСтраница = Элементы.ЕстьИзменения; Иначе - Элементы.СтраницыНадписиИзмененнойКонфигурации.ТекущаяСтраница = Элементы.СтраницыНадписиИзмененнойКонфигурации.ПодчиненныеЭлементы.НетИзменений; + Элементы.СтраницыНадписиИзмененнойКонфигурации.ТекущаяСтраница = Элементы.НетИзменений; ДоступностьКнопкиДалее = Ложь; КонецЕсли; + ИначеЕсли НуженФайлОбновления = 1 Тогда + ТекущийЭлемент = Элементы.ПолеФайлОбновления; + ПодключитьОбработчикОжидания("ВыбратьФайлОбновления", 0.1, Истина); КонецЕсли; Элементы.ПанельОбновлениеИзОсновнойКонфигурации.Видимость = НуженФайлОбновления = 0; Элементы.ПолеФайлОбновления.Доступность = НуженФайлОбновления = 1; @@ -432,6 +417,26 @@ КонецПроцедуры +&НаКлиенте +Процедура ВыбратьФайлОбновления() + + Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); + Диалог.Каталог = ПолучитьКаталогФайла(Элементы.ПолеФайлОбновления.ТекстРедактирования); + Диалог.ПроверятьСуществованиеФайла = Истина; + Если ЭтоБазоваяВерсия Тогда + Диалог.Фильтр = НСтр("ru = 'Все файлы поставки (*.cf*;*.cfu)|*.cf*;*.cfu|Файлы поставки конфигурации (*.cf)|*.cf|Файлы поставки обновления конфигурации(*.cfu)|*.cfu'"); + Иначе + Диалог.МножественныйВыбор = Истина; + Диалог.Фильтр = НСтр("ru = 'Все файлы (*.cf*;*.cfu;*.cfe;*.zip)|*.cf*;*.cfu;*.cfe;*.zip|Файлы поставки конфигурации (*.cf)|*.cf|Файлы поставки обновления конфигурации (*.cfu)|*.cfu|Файлы исправлений (*.cfe*;*.zip)|*.cfe*;*.zip'"); + КонецЕсли; + Диалог.Заголовок = НСтр("ru = 'Выбор поставки обновления конфигурации'"); + + Если Диалог.Выбрать() Тогда + ВыбранныеФайлы = СтрСоединить(Диалог.ВыбранныеФайлы, ","); + КонецЕсли; + +КонецПроцедуры + &НаКлиенте Процедура ОбновитьИнформациюОНаличииСоединений(ТекущаяСтраница = Неопределено) @@ -542,12 +547,103 @@ &НаКлиенте Процедура ПерейтиСоСтраницыФайлаОбновления() - Обработчик = Новый ОписаниеОповещения("ПослеПодтвержденияБезопасности", ЭтотОбъект); + ФайлыИсправлений = Новый Массив; + Объект.ИмяФайлаОбновления = ""; + Если Не ПустаяСтрока(ИсходныеКонфигурации) Тогда + УдалитьИзВременногоХранилища(ИсходныеКонфигурации); + ИсходныеКонфигурации = ""; + КонецЕсли; + + ИменаВыбранныхФайлов = СтрРазделить(ВыбранныеФайлы, ","); + Для Каждого ИмяФайла Из ИменаВыбранныхФайлов Цикл + Если СтрЗаканчиваетсяНа(ИмяФайла, ".cfe") Или СтрЗаканчиваетсяНа(ИмяФайла, ".zip") Тогда + ФайлыИсправлений.Добавить(ИмяФайла); + Иначе // Это файл обновления. + Если Не ПустаяСтрока(Объект.ИмяФайлаОбновления) Тогда + ВызватьИсключение НСтр("ru = 'Допустимо выбирать только один файл обновления.'"); + КонецЕсли; + Объект.ИмяФайлаОбновления = ИмяФайла; + КонецЕсли; + КонецЦикла; + + Если НуженФайлОбновления = 1 Тогда + Если Не ЗначениеЗаполнено(ВыбранныеФайлы) Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Укажите файл поставки обновления конфигурации.'"),,"Объект.ИмяФайлаОбновления"); + ТекущийЭлемент = Элементы.ПолеФайлОбновления; + Возврат; + КонецЕсли; + Если Не ПустаяСтрока(Объект.ИмяФайлаОбновления) Тогда + Файл = Новый Файл(Объект.ИмяФайлаОбновления); + Если Не Файл.Существует() Или Не Файл.ЭтоФайл() Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Файл поставки обновления конфигурации не найден.'"),,"Объект.ИмяФайлаОбновления"); + ТекущийЭлемент = Элементы.ПолеФайлОбновления; + Возврат; + КонецЕсли; + КонецЕсли; + КонецЕсли; + + Обработчик = Новый ОписаниеОповещения("ПроверитьПрименимостьФайловОбновления", ЭтотОбъект); ПараметрыФормы = Новый Структура("Ключ", "ПередВыборомФайлаОбновления"); ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы, , , , , Обработчик); КонецПроцедуры +&НаКлиенте +Процедура ПроверитьПрименимостьФайловОбновления(Результат, ДополнительныеПараметры) Экспорт + + Если Результат <> "Продолжить" Тогда + Возврат; + КонецЕсли; + + Если ПустаяСтрока(Объект.ИмяФайлаОбновления) Тогда + Если НуженФайлОбновления = 1 Тогда + ПерейтиКУстановкеИсправлений(); + КонецЕсли; + Возврат; + КонецЕсли; + + // Проверяем применимость файлов поставки обновлений только в файловой базе. + Если Не ОбщегоНазначенияКлиент.ИнформационнаяБазаФайловая() Тогда + ПриПроверкеЛегальностиПолученияОбновления(); + Возврат; + КонецЕсли; + + Если Не ЭтоФайлПоставкиОбновленияКонфигурации(Объект.ИмяФайлаОбновления) Тогда + ПриПроверкеЛегальностиПолученияОбновления(); + Возврат; + КонецЕсли; + + Состояние(НСтр("ru = 'Проверка применимости...'"), 75); + СведенияОбОбновлении = ПроверитьПрименимостьФайлаОбновления(Объект.ИмяФайлаОбновления, УникальныйИдентификатор); + Если Не ПустаяСтрока(СведенияОбОбновлении.ТекстОшибки) Тогда + ПриПроверкеЛегальностиПолученияОбновления(); + Возврат; // не удалось проверить: возможно, файл поврежден + КонецЕсли; + + Если СведенияОбОбновлении.Подходит Тогда + УдалитьИзВременногоХранилища(СведенияОбОбновлении.ИсходныеКонфигурации); + ПриПроверкеЛегальностиПолученияОбновления(); + Возврат; + КонецЕсли; + + ИсходныеКонфигурации = СведенияОбОбновлении.ИсходныеКонфигурации; + ОткрытьФорму("Обработка.УстановкаОбновлений.Форма.ОбновлениеНеПодходит", + Новый Структура("ИсходныеКонфигурации", ИсходныеКонфигурации)); + +КонецПроцедуры + +&НаКлиенте +Функция ЭтоФайлПоставкиОбновленияКонфигурации(Знач ИмяФайла) + Возврат СтрСравнить(ОбщегоНазначенияКлиентСервер.ПолучитьРасширениеИмениФайла(ИмяФайла), "cfu") = 0; +КонецФункции + +&НаСервереБезКонтекста +Функция ПроверитьПрименимостьФайлаОбновления(Знач ИмяФайла, Знач ИдентификаторФормы) + Результат = ОбновлениеКонфигурации.СведенияОбОбновлении(ИмяФайла); + Результат.ИсходныеКонфигурации = ПоместитьВоВременноеХранилище(Результат.ИсходныеКонфигурации, ИдентификаторФормы); + Возврат Результат; +КонецФункции + &НаКлиенте Процедура ПерейтиКУстановкеИсправлений() @@ -577,73 +673,13 @@ СоединенияИнфо = СоединенияИБВызовСервера.ИнформацияОСоединениях(Ложь); Элементы.ДекорацияАктивныеПользователи.Видимость = СоединенияИнфо.НаличиеАктивныхСоединений; - ЕстьОшибки = Ложь; - УстановленоИсправлений = 0; - Для Каждого ПомещенныйФайл Из ПомещенныеФайлы Цикл - - Попытка - Если СтрЗаканчиваетсяНа(ПомещенныйФайл.Имя, ".zip") Тогда - ИмяАрхива = ПолучитьИмяВременногоФайла("zip"); - ДвоичныеДанные = ПолучитьИзВременногоХранилища(ПомещенныйФайл.Хранение); - ДвоичныеДанные.Записать(ИмяАрхива); - - ИсправлениеНайдено = Ложь; - ЧтениеZip = Новый ЧтениеZipФайла(ИмяАрхива); - Для Каждого ЭлементАрхива Из ЧтениеZip.Элементы Цикл - Если ЭлементАрхива.Расширение = "cfe" Тогда - ИсправлениеНайдено = Истина; - Прервать; - КонецЕсли; - КонецЦикла; - - Если ИсправлениеНайдено Тогда - ВременныйКаталог = ФайловаяСистема.СоздатьВременныйКаталог("Патчи"); - ЧтениеZip.Извлечь(ЭлементАрхива, ВременныйКаталог); - ПолноеИмяИсправления = ВременныйКаталог + ЭлементАрхива.Имя; - Данные = Новый ДвоичныеДанные(ПолноеИмяИсправления); - УдалитьФайлы(ПолноеИмяИсправления); - Иначе - ВызватьИсключение НСтр("ru = 'Файл не является исправлением.'"); - КонецЕсли; - ЧтениеZip.Закрыть(); - УдалитьФайлы(ИмяАрхива); - Иначе - Данные = ПолучитьИзВременногоХранилища(ПомещенныйФайл.Хранение); - КонецЕсли; - - Расширение = РасширенияКонфигурации.Создать(); - Расширение.БезопасныйРежим = Ложь; - Расширение.ИспользуетсяВРаспределеннойИнформационнойБазе = Истина; - Расширение.ЗащитаОтОпасныхДействий = ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений(); - Расширение.Записать(Данные); - - УстановленноеРасширение = ОбновлениеКонфигурации.РасширениеПоИдентификатору(Расширение.УникальныйИдентификатор); - Если Не ОбновлениеКонфигурации.ЭтоИсправление(УстановленноеРасширение) Тогда - Расширение.Удалить(); - ВызватьИсключение НСтр("ru = 'Расширение не является патчем.'"); - КонецЕсли; - УстановленоИсправлений = УстановленоИсправлений + 1; - Исключение - ИнформацияОбОшибке = ИнформацияОбОшибке(); - ЕстьОшибки = Истина; - ИмяФайлаИсправления = ИмяФайлаПоПути(ПомещенныйФайл.Имя); - - ТекстОшибки = НСтр("ru = 'При установке исправления %1 возникла ошибка: - |%2'"); - ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, - ИмяФайлаИсправления, - ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); - ЗаписьЖурналаРегистрации(НСтр("ru = 'Исправления.Установка'", ОбщегоНазначения.КодОсновногоЯзыка()), - УровеньЖурналаРегистрации.Ошибка,,, ТекстОшибки); - КонецПопытки; - КонецЦикла; - - Если ЕстьОшибки Тогда - Элементы.ОшибкаУстановкиИсправлений.Видимость = Истина; - Если УстановленоИсправлений > 0 Тогда + Результат = ОбновлениеКонфигурации.УстановитьИсправления(ПомещенныеФайлы); + Элементы.ОшибкаУстановкиИсправлений.Видимость = Результат.ЕстьОшибки; + Если Результат.ЕстьОшибки Тогда + Если Результат.УстановленоИсправлений > 0 Тогда ТекстНадписи = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Установлено исправлений: %1 из %2, изменения вступят в силу после перезапуска программы'"), - УстановленоИсправлений, + Результат.УстановленоИсправлений, ПомещенныеФайлы.Количество()); Элементы.ДекорацияУстановленоИсправлений.Заголовок = ТекстНадписи; Элементы.ДекорацияИсправленияУстановлены.Видимость = Ложь; @@ -652,12 +688,8 @@ Элементы.ДекорацияУстановленоИсправлений.Видимость = Ложь; Возврат; КонецЕсли; - Иначе - Элементы.ОшибкаУстановкиИсправлений.Видимость = Ложь; КонецЕсли; - РегистрыСведений.ПараметрыРаботыВерсийРасширений.ОбновитьПараметрыРаботыРасширений(); - КонецПроцедуры &НаКлиенте @@ -785,16 +817,6 @@ КонецФункции -&НаСервере -Функция ИмяФайлаПоПути(Знач ПутьКФайлу) - ПозицияСимвола = СтрНайти(ПутьКФайлу, "\", НаправлениеПоиска.СКонца); - Если ПозицияСимвола > 1 Тогда - Возврат Сред(ПутьКФайлу, ПозицияСимвола + 1); - Иначе - Возврат ""; - КонецЕсли; -КонецФункции - &НаСервере Процедура ВосстановитьНастройкиОбновленияКонфигурации() @@ -824,52 +846,4 @@ КонецПроцедуры -&НаКлиенте -Процедура ПослеПодтвержденияБезопасности(Результат, ДополнительныеПараметры) Экспорт - - Если Результат = "Продолжить" Тогда - ФайлыИсправлений = Новый Массив; - - УказанФайлОбновления = Ложь; - ИменаВыбранныхФайлов = СтрРазделить(ВыбранныеФайлы, ","); - Для Каждого ИмяФайла Из ИменаВыбранныхФайлов Цикл - Если СтрЗаканчиваетсяНа(ИмяФайла, ".cfe") - Или СтрЗаканчиваетсяНа(ИмяФайла, ".zip") Тогда - ФайлыИсправлений.Добавить(ИмяФайла); - Иначе // Это файл обновления. - Если Не УказанФайлОбновления Тогда - Объект.ИмяФайлаОбновления = ИмяФайла; - УказанФайлОбновления = Истина; - Иначе - ВызватьИсключение НСтр("ru = 'Допустимо выбирать только один файл обновления.'"); - КонецЕсли; - КонецЕсли; - КонецЦикла; - - Если НуженФайлОбновления = 1 Тогда - Если Не ЗначениеЗаполнено(ВыбранныеФайлы) Тогда - ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Укажите файл поставки обновления конфигурации.'"),,"Объект.ИмяФайлаОбновления"); - ТекущийЭлемент = Элементы.ПолеФайлОбновления; - Возврат; - КонецЕсли; - Если Не ПустаяСтрока(Объект.ИмяФайлаОбновления) Тогда - Файл = Новый Файл(Объект.ИмяФайлаОбновления); - Если Не Файл.Существует() Или Не Файл.ЭтоФайл() Тогда - ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Файл поставки обновления конфигурации не найден.'"),,"Объект.ИмяФайлаОбновления"); - ТекущийЭлемент = Элементы.ПолеФайлОбновления; - Возврат; - КонецЕсли; - КонецЕсли; - КонецЕсли; - - Если НуженФайлОбновления И Не УказанФайлОбновления Тогда - ПерейтиКУстановкеИсправлений(); - Иначе - ПриПроверкеЛегальностиПолученияОбновления(); - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - #КонецОбласти \ No newline at end of file diff --git a/SSL/src/DataProcessors/УстановкаОбновлений/Help/ru.html b/SSL/src/DataProcessors/УстановкаОбновлений/Help/ru.html index 99b052ae8..fd98ab441 100644 --- a/SSL/src/DataProcessors/УстановкаОбновлений/Help/ru.html +++ b/SSL/src/DataProcessors/УстановкаОбновлений/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> <p>Установка обновлений позволяет автоматически устанавливать обновления конфигурации из файла.</p> <p>Открывается с помощью ссылки <strong>Установка обновлений и исправлений (патчей)</strong> раздела <strong>Администрирование - Обслуживание - Обновление программы</strong>.</p> <p>Программа позволяет обновлять конфигурацию ИБ в режиме 1С:Предприятия. Обновление производится по требованию или в указанное время.</p> diff --git a/SSL/src/DataProcessors/УстановкаОбновлений/УстановкаОбновлений.mdo b/SSL/src/DataProcessors/УстановкаОбновлений/УстановкаОбновлений.mdo index 621d361c2..c52d8a810 100644 --- a/SSL/src/DataProcessors/УстановкаОбновлений/УстановкаОбновлений.mdo +++ b/SSL/src/DataProcessors/УстановкаОбновлений/УстановкаОбновлений.mdo @@ -214,6 +214,15 @@ <usePurposes>PersonalComputer</usePurposes> <usePurposes>MobileDevice</usePurposes> </forms> + <forms uuid="f9c0862c-34a2-41a3-ae46-b6a8e1ad1b08"> + <name>ОбновлениеНеПодходит</name> + <synonym> + <key>ru</key> + <value>Обновление не подходит</value> + </synonym> + <usePurposes>PersonalComputer</usePurposes> + <usePurposes>MobileDevice</usePurposes> + </forms> <templates uuid="1528b799-1c0f-4244-85e8-e738b827934a"> <name>МакетФайлаОбновленияКонфигурации</name> <synonym> diff --git a/SSL/src/DefinedTypes/ЗначениеДоступа/ЗначениеДоступа.mdo b/SSL/src/DefinedTypes/ЗначениеДоступа/ЗначениеДоступа.mdo index 5d1881669..c29ab5e40 100644 --- a/SSL/src/DefinedTypes/ЗначениеДоступа/ЗначениеДоступа.mdo +++ b/SSL/src/DefinedTypes/ЗначениеДоступа/ЗначениеДоступа.mdo @@ -18,7 +18,6 @@ <types>CatalogRef.ГруппыПользователей</types> <types>EnumRef.ДополнительныеЗначенияДоступа</types> <types>ChartOfCharacteristicTypesRef.ДополнительныеРеквизитыИСведения</types> - <types>ChartOfCharacteristicTypesRef.УдалитьВидыДоступа</types> <types>CatalogRef.ДополнительныеОтчетыИОбработки</types> <types>CatalogRef.Пользователи</types> <types>CatalogRef.ГруппыИсполнителейЗадач</types> diff --git a/SSL/src/DefinedTypes/КонечнаяТочкаОбменаСообщениями/КонечнаяТочкаОбменаСообщениями.mdo b/SSL/src/DefinedTypes/КонечнаяТочкаОбменаСообщениями/КонечнаяТочкаОбменаСообщениями.mdo new file mode 100644 index 000000000..e7fea9c75 --- /dev/null +++ b/SSL/src/DefinedTypes/КонечнаяТочкаОбменаСообщениями/КонечнаяТочкаОбменаСообщениями.mdo @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:DefinedType xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="bc2dd611-b589-4519-b274-40db5c66b378"> + <producedTypes> + <containerType typeId="57b68283-7447-40d3-8516-461b446fa6ef" valueTypeId="61ee77e5-2780-46d3-82d4-e9b37840c45a"/> + </producedTypes> + <name>КонечнаяТочкаОбменаСообщениями</name> + <synonym> + <key>ru</key> + <value>Конечная точка обмена сообщениями</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers> + <length>10</length> + </stringQualifiers> + </type> +</mdclass:DefinedType> diff --git a/SSL/src/DefinedTypes/МестоХраненияФункциональныхОпций/МестоХраненияФункциональныхОпций.mdo b/SSL/src/DefinedTypes/МестоХраненияФункциональныхОпций/МестоХраненияФункциональныхОпций.mdo index 28fbfa8c2..fcd4beacc 100644 --- a/SSL/src/DefinedTypes/МестоХраненияФункциональныхОпций/МестоХраненияФункциональныхОпций.mdo +++ b/SSL/src/DefinedTypes/МестоХраненияФункциональныхОпций/МестоХраненияФункциональныхОпций.mdo @@ -9,6 +9,7 @@ <value>Место хранения функциональных опций</value> </synonym> <type> + <types>ConstantValueManager.НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса</types> <types>ConstantValueManager.СоздаватьЭлектронныеПодписиНаСервере</types> <types>ConstantValueManager.ИспользоватьСинхронизациюДанныхВМоделиСервиса</types> <types>ConstantValueManager.НеИспользоватьРазделениеПоОбластямДанных</types> @@ -28,22 +29,25 @@ <types>ConstantValueManager.ИспользоватьПодчиненныеБизнесПроцессы</types> <types>ConstantValueManager.ХранитьФайлыВТомахНаДиске</types> <types>ConstantValueManager.ИспользоватьШифрование</types> + <types>ConstantValueManager.ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете</types> <types>ConstantValueManager.ИспользоватьЭлектронныеПодписи</types> <types>ConstantValueManager.ИспользоватьДатуИВремяВСрокахЗадач</types> <types>ConstantValueManager.ИспользоватьВнешнихПользователей</types> + <types>ConstantValueManager.ИспользоватьАвтономнуюРаботуВМоделиСервиса</types> <types>ConstantValueManager.ИспользуютсяПрофилиБезопасности</types> <types>ConstantValueManager.ЭтоАвтономноеРабочееМесто</types> <types>ConstantValueManager.ИспользоватьДополнительныеОтчетыИОбработки</types> <types>ConstantValueManager.ИспользоватьДополнительныеРеквизитыИСведения</types> <types>ConstantValueManager.ДатаОбновленияПовторноИспользуемыхЗначенийМРО</types> - <types>ConstantValueManager.ПоддержкаРезервногоКопирования</types> <types>ConstantValueManager.ИспользоватьОнлайнПоддержку</types> <types>ConstantValueManager.ИспользоватьРазделениеПоОбластямДанных</types> + <types>ConstantValueManager.ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой</types> <types>ConstantValueManager.ИспользоватьГруппыПользователей</types> <types>ConstantValueManager.ИспользоватьПрочиеВзаимодействия</types> <types>ConstantValueManager.ИспользоватьОбщиеДополнительныеЗначения</types> <types>ConstantValueManager.ИспользоватьПризнакРассмотрено</types> <types>ConstantValueManager.ПрефиксУзлаРаспределеннойИнформационнойБазы</types> + <types>ConstantValueManager.ЗарегистрированыИзмененияДанных</types> <types>ConstantValueManager.ИспользоватьБизнесПроцессыИЗадачи</types> <types>ConstantValueManager.ИспользоватьНесколькоПроизводственныхКалендарей</types> <types>ConstantValueManager.ИспользоватьВерсионированиеОбъектов</types> diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ВыборТипаПредмета/Help/ru.html b/SSL/src/DocumentJournals/Взаимодействия/Forms/ВыборТипаПредмета/Help/ru.html index 76d592a15..8d0d5316e 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ВыборТипаПредмета/Help/ru.html +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ВыборТипаПредмета/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body> <p>Предназначена для выбора типа предмета в <a href="DocumentJournal.Взаимодействия.Form.ФормаСписка/Help">документах взаимодействий</a>.</p> <p>Для заполнения поля <strong>Предмет</strong> сначала выберите из списка тип предмета. После этого откроется список выбранных объектов программы.</p> <p>По умолчанию в списке отображаются типы документов взаимодействий.</p> diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/НастройкиРаботыСПочтой/Help/ru.html b/SSL/src/DocumentJournals/Взаимодействия/Forms/НастройкиРаботыСПочтой/Help/ru.html index ee84de2fb..833f942ef 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/НастройкиРаботыСПочтой/Help/ru.html +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/НастройкиРаботыСПочтой/Help/ru.html @@ -1,12 +1,12 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> <p>Предназначена для настройки работы с почтой.</p> <p>Перед тем как начать работать с почтовыми сообщениями, в программе необходимо настроить работу с почтой. Для этого в <a href="DocumentJournal.Взаимодействия.Form.ФормаСписка/Help">списке взаимодействий</a> выполните команду <strong>Еще</strong> <strong>- Персональные настройки</strong>.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e3002f54a740bf">Как настроить подпись к письму?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300b66f2364d4">Как указать, что для всех отправляемых писем по умолчанию необходимо уведомление о доставке и прочтении?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300b7952e59fb">Как настроить порядок ответов на запросы уведомлений о прочтении?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300b973efaf1b">Как указать, что в документе Исходящее письмо при ответе или пересылке необходимо отображать тело письма основания?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300bb66819eae">Как указать, что в тело исходящего письма при ответе или пересылке необходимо включать тело письма основания?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#1">Как указать в файловом режиме, что письма должны отправляться сразу?</a></p><a name="70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e3002f54a740bf"> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e3002f54a740bf">Как настроить подпись к письму?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300b66f2364d4">Как указать, что для всех отправляемых писем по умолчанию необходимо уведомление о доставке и прочтении?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300b7952e59fb">Как настроить порядок ответов на запросы уведомлений о прочтении?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300b973efaf1b">Как указать, что в документе Исходящее письмо при ответе или пересылке необходимо отображать тело письма основания?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300bb66819eae">Как указать, что в тело исходящего письма при ответе или пересылке необходимо включать тело письма основания?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#1">Как указать в файловом режиме, что письма должны отправляться сразу?</a></p><a name="70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e3002f54a740bf"> <h3 style="MARGIN-LEFT: 0px">Настройка подписи к письму</h3></a> <p style="MARGIN-LEFT: 20px">При настройке работы с почтой можно создать шаблоны подписей для <a href="Document.ЭлектронноеПисьмоИсходящее.Form.ФормаДокумента/Help">исходящих электронных писем</a>. Также шаблоны подписей можно создать при настройке <a href="Catalog.УчетныеЗаписиЭлектроннойПочты/Help">учетных записей электронной почты</a>.</p> <ul><li> diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/НастройкиРаботыСПочтой/Module.bsl b/SSL/src/DocumentJournals/Взаимодействия/Forms/НастройкиРаботыСПочтой/Module.bsl index d9e6869e0..0c829125e 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/НастройкиРаботыСПочтой/Module.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/НастройкиРаботыСПочтой/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОтправлятьПисьмаВФорматеHTML = ПолучитьФункциональнуюОпцию("ОтправлятьПисьмаВФорматеHTML"); НастройкиХранилище = Взаимодействия.ПолучитьНастройкуРаботаСПочтой(); diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПараметрыЭлектронногоПисьма/Help/ru.html b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПараметрыЭлектронногоПисьма/Help/ru.html index 97f4edc3b..149b23a01 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПараметрыЭлектронногоПисьма/Help/ru.html +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПараметрыЭлектронногоПисьма/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body> <p>Предназначена для просмотра и изменения параметров <a href="Document.ЭлектронноеПисьмоВходящее.Form.ФормаДокумента/Help">входящего электронного письма</a> или <a href="Document.ЭлектронноеПисьмоИсходящее.Form.ФормаДокумента/Help">исходящего электронного письма</a>.</p> <p>Открывается по соответствующей команде меню <strong>Еще</strong> из электронных писем. </p> <p>Параметры письма:</p> diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПараметрыЭлектронногоПисьма/Module.bsl b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПараметрыЭлектронногоПисьма/Module.bsl index 2902a1989..03162192e 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПараметрыЭлектронногоПисьма/Module.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПараметрыЭлектронногоПисьма/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; ЗаполнитьРеквизитыФормыИзПараметров(Параметры); УправлениеДоступностью(); diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Form.form b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Form.form index 575f00d4d..eb55ade92 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Form.form +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Form.form @@ -1163,6 +1163,24 @@ <common>true</common> </edit> </attributes> + <attributes> + <name>ИсходныйТекстHTML</name> + <title> + <key>ru</key> + <value>Исходный текст HTML</value> + + 19 + + String + + + + true + + + true + + ОткрытьВложение diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Module.bsl b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Module.bsl index 31e7957d6..f3b76a93a 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Module.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ПечатьЭлектронногоПисьма/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если НЕ Параметры.Свойство("Письмо") Тогда Отказ = Истина; Возврат; diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Help/ru.html b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Help/ru.html index e7cc4d76f..09fee030a 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Help/ru.html +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Help/ru.html @@ -1,68 +1,68 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px">Предназначен для работы с документами взаимодействий.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px">Бизнес-процессы помимо обычного делопроизводства в настоящее время включают и общение партнеров между собой, т.е. их взаимодействие: между партнерами проходят различные встречи, переговоры, электронная переписка. В процессе общения принимаются важные решения, заключаются различные договоры, составляются другие документы, поэтому необходимо это взаимодействие также задокументировать.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px">Программа позволяет планировать, регистрировать, упорядочивать и работать с результатами взаимодействия - общения пользователей программы с кем-либо по поводу предмета взаимодействия. Например, один сотрудник может взаимодействовать с другим сотрудником (контактом) по поводу заказа клиента (предмета). </p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px">Программа позволяет выстраивать различные взаимодействия, возникшие на основании одного и того же предмета, в цепочку. В цепочке взаимодействий в качестве предмета у всех взаимодействий указывается одно, как правило, первое по времени взаимодействие. При этом в любой момент времени в любом взаимодействии из цепочки можно указать другой предмет, не являющийся взаимодействием, например, один из документов программы, программа после этого в автоматическом режиме поменяет предмет у всей цепочки. Например, переговоры с потенциальным клиентом, состоявшие из встреч, телефонных звонков и переписки (цепочки взаимодействий) закончились заказом клиента. В этом случае программа позволяет изменить предмет во всех взаимодействиях, предшествовавших заказу, на итоговый заказ клиента.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px">Кроме этого, для удобства работы с контактами программа формирует единую <a href="CommonForm.АдреснаяКнига/Help">адресную книгу</a> на основании контактной информации.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px">Список взаимодействий состоит из двух частей: в левой части списка обычно отображается панель навигации, в правой части - документы взаимодействий. </p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"> </p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#1">Какие сведения выводятся в списке?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#2">Как ввести документ взаимодействий?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695915">Какие виды панелей навигации доступны в списке взаимодействий?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695917">Как переключить вид панели навигации?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#3">Как скрыть панель навигации?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695919">Какие отборы можно установить для списка, помимо отбора, наложенного в панели навигации?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba869591b">Можно ли найти взаимодействие при помощи полнотекстового поиска?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba869591f">Как установить признак Рассмотрено для нескольких документов в списке?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695921">Как снять признак Рассмотрено для нескольких документов в списке?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba869592b">Как отложить рассмотрение нескольких документов в списке?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#4">Как просмотреть отложенные взаимодействия?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695929">Как установить предмет взаимодействий для нескольких документов в списке?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba869592e">Как назначить ответственного для нескольких документов в списке?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695934">Как создать закладку взаимодействий?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#6">Как включить просмотр содержания документов в списке?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#7">Можно ли работать с электронной перепиской из списка взаимодействий?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba869591c">Может ли пользователь инициировать процесс отправки и получения писем?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba869591e">Можно ли ответить или переслать письмо из списка взаимодействий?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#8">Как из списка перейти к настройке учетной записи электронной почты?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"> </p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a name="#1">Правая часть списка состоит из колонок:</a></p> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px">Предназначен для работы с документами взаимодействий.</p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px">Бизнес-процессы помимо обычного делопроизводства в настоящее время включают и общение партнеров между собой, т.е. их взаимодействие: между партнерами проходят различные встречи, переговоры, электронная переписка. В процессе общения принимаются важные решения, заключаются различные договоры, составляются другие документы, поэтому необходимо это взаимодействие также задокументировать.</p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px">Программа позволяет планировать, регистрировать, упорядочивать и работать с результатами взаимодействия - общения пользователей программы с кем-либо по поводу предмета взаимодействия. Например, один сотрудник может взаимодействовать с другим сотрудником (контактом) по поводу заказа клиента (предмета). </p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px">Программа позволяет выстраивать различные взаимодействия, возникшие на основании одного и того же предмета, в цепочку. В цепочке взаимодействий в качестве предмета у всех взаимодействий указывается одно, как правило, первое по времени взаимодействие. При этом в любой момент времени в любом взаимодействии из цепочки можно указать другой предмет, не являющийся взаимодействием, например, один из документов программы, программа после этого в автоматическом режиме поменяет предмет у всей цепочки. Например, переговоры с потенциальным клиентом, состоявшие из встреч, телефонных звонков и переписки (цепочки взаимодействий) закончились заказом клиента. В этом случае программа позволяет изменить предмет во всех взаимодействиях, предшествовавших заказу, на итоговый заказ клиента.</p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px">Кроме этого, для удобства работы с контактами программа формирует единую <a href="CommonForm.АдреснаяКнига/Help">адресную книгу</a> на основании контактной информации.</p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px">Список взаимодействий состоит из двух частей: в левой части списка обычно отображается панель навигации, в правой части - документы взаимодействий. </p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"> </p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#1">Какие сведения выводятся в списке?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#2">Как ввести документ взаимодействий?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695915">Какие виды панелей навигации доступны в списке взаимодействий?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695917">Как переключить вид панели навигации?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#3">Как скрыть панель навигации?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695919">Какие отборы можно установить для списка, помимо отбора, наложенного в панели навигации?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba869591b">Можно ли найти взаимодействие при помощи полнотекстового поиска?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba869591f">Как установить признак Рассмотрено для нескольких документов в списке?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695921">Как снять признак Рассмотрено для нескольких документов в списке?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba869592b">Как отложить рассмотрение нескольких документов в списке?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#4">Как просмотреть отложенные взаимодействия?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695929">Как установить предмет взаимодействий для нескольких документов в списке?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba869592e">Как назначить ответственного для нескольких документов в списке?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695934">Как создать закладку взаимодействий?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#6">Как включить просмотр содержания документов в списке?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#7">Можно ли работать с электронной перепиской из списка взаимодействий?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba869591c">Может ли пользователь инициировать процесс отправки и получения писем?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba869591e">Можно ли ответить или переслать письмо из списка взаимодействий?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#8">Как из списка перейти к настройке учетной записи электронной почты?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"> </p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a name="#1">Правая часть списка состоит из колонок:</a></p> <ul><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><img src="CommonPicture.ЭлектронноеПисьмо" width="16" height="16"></img> <strong>Вид взаимодействия</strong> - взаимодействия в списке отображаются соответствующими значками: </div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><img src="CommonPicture.ЭлектронноеПисьмо" width="16" height="16"></img> <strong>Вид взаимодействия</strong> - взаимодействия в списке отображаются соответствующими значками: </div> <ul><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px">Для отражения будущих взаимодействий в программе используется документ <img src="CommonPicture.ЗапланированноеВзаимодействие" width="16" height="16"></img> <a href="Document.ЗапланированноеВзаимодействие.Form.ФормаДокумента/Help">Запланированное взаимодействие</a>.</div> -</li><li style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px">Для отражения фактически состоявшихся контактов служат документы: +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px">Для отражения будущих взаимодействий в программе используется документ <img src="CommonPicture.ЗапланированноеВзаимодействие" width="16" height="16"></img> <a href="Document.ЗапланированноеВзаимодействие.Form.ФормаДокумента/Help">Запланированное взаимодействие</a>.</div> +</li><li style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px">Для отражения фактически состоявшихся контактов служат документы: <ul><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><img src="CommonPicture.Встреча" width="16" height="16"></img> <a href="Document.Встреча.Form.ФормаДокумента/Help">Встреча</a>;</div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><img src="CommonPicture.Встреча" width="16" height="16"></img> <a href="Document.Встреча.Form.ФормаДокумента/Help">Встреча</a>;</div> </li><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><img src="CommonPicture.НаписатьSMS" width="16" height="16"></img> <a href="Document.СообщениеSMS.Form.ФормаДокумента/Help">Сообщение SMS</a>;</div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><img src="CommonPicture.НаписатьSMS" width="16" height="16"></img> <a href="Document.СообщениеSMS.Form.ФормаДокумента/Help">Сообщение SMS</a>;</div> </li><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><img src="CommonPicture.ТелефонныйЗвонок" width="16" height="16"></img> <a href="Document.ТелефонныйЗвонок.Form.ФормаДокумента/Help">Телефонный звонок</a>;</div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><img src="CommonPicture.ТелефонныйЗвонок" width="16" height="16"></img> <a href="Document.ТелефонныйЗвонок.Form.ФормаДокумента/Help">Телефонный звонок</a>;</div> </li><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><img src="CommonPicture.ЭлектронноеПисьмоВходящее" width="16" height="16"></img> <a href="Document.ЭлектронноеПисьмоВходящее.Form.ФормаДокумента/Help">Электронное письмо входящее</a> - в отличие от остальных документов, невозможно ввести. Его можно только получить от отправителя;</div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><img src="CommonPicture.ЭлектронноеПисьмоВходящее" width="16" height="16"></img> <a href="Document.ЭлектронноеПисьмоВходящее.Form.ФормаДокумента/Help">Электронное письмо входящее</a> - в отличие от остальных документов, невозможно ввести. Его можно только получить от отправителя;</div> </li><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><img src="CommonPicture.ЭлектронноеПисьмоИсходящее" width="16" height="16"></img> <a href="Document.ЭлектронноеПисьмоИсходящее.Form.ФормаДокумента/Help">Электронное письмо исходящее</a>.</div></li></ul></li></ul></li><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><img src="CommonPicture.ВосклицательныйЗнакСерый" width="16" height="16"></img> <strong>Важность - </strong>признак необходимости акцентировать внимание на данном взаимодействии, или наоборот, признак несущественности. Может принимать значения: <strong>Низкая</strong>, <strong>Обычная</strong> (значение по умолчанию), <strong>Высокая</strong>. Отображается в списке взаимодействий специальными значками.</div></div> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"></div></div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><img src="CommonPicture.ЭлектронноеПисьмоИсходящее" width="16" height="16"></img> <a href="Document.ЭлектронноеПисьмоИсходящее.Form.ФормаДокумента/Help">Электронное письмо исходящее</a>.</div></li></ul></li></ul></li><li> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><img src="CommonPicture.ВосклицательныйЗнакСерый" width="16" height="16"></img> <strong>Важность - </strong>признак необходимости акцентировать внимание на данном взаимодействии, или наоборот, признак несущественности. Может принимать значения: <strong>Низкая</strong>, <strong>Обычная</strong> (значение по умолчанию), <strong>Высокая</strong>. Отображается в списке взаимодействий специальными значками.</div></div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"></div></div> </li><li><strong>Участники</strong> - контакты, с которыми были взаимодействия; </li><li><strong>Тема</strong> - краткое содержание взаимодействия. <div></div> <div></div> </li><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><strong>Дата</strong> - дата создания документа;</div></div> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"></div></div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><strong>Дата</strong> - дата создания документа;</div></div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"></div></div> </li><li><img src="CommonPicture.Скрепка" width="16" height="16"></img> <strong>Наличие вложений - </strong>к письмам можно приложить различные файлы. <div></div> -<div></div></li></ul><p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px">В нижней части списка (в зависимости от <a href="#6">настроек</a>) может отображаться описание, текст выделенного в списке взаимодействия или тело письма.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px">Жирным шрифтом в списке выделяются документы к рассмотрению, письма и сообщения SMS с установленным признаком <strong>На контроле</strong>. Программа ведет подсчет нерассмотренных документов и писем с флажком <strong>На контроле</strong> в каждой группе списка. Группы, которые содержат такие документы, выделяются жирным шрифтом.</p> -<h3 style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a name="#2">Ввод документов взаимодействия</a></h3> +<div></div></li></ul><p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px">В нижней части списка (в зависимости от <a href="#6">настроек</a>) может отображаться описание, текст выделенного в списке взаимодействия или тело письма.</p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px">Жирным шрифтом в списке выделяются документы к рассмотрению, письма и сообщения SMS с установленным признаком <strong>На контроле</strong>. Программа ведет подсчет нерассмотренных документов и писем с флажком <strong>На контроле</strong> в каждой группе списка. Группы, которые содержат такие документы, выделяются жирным шрифтом.</p> +<h3 style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a name="#2">Ввод документов взаимодействия</a></h3> <ul><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px">Нажмите <strong>Создать</strong>, выберите из списка нужный документ.</div></li></ul><h3 style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a name="70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695915">Виды панелей навигации списка взаимодействий</a></h3> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px">В левой части списка отображается панель, с помощью которой можно удобно группировать взаимодействия:</p> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px">Нажмите <strong>Создать</strong>, выберите из списка нужный документ.</div></li></ul><h3 style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a name="70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695915">Виды панелей навигации списка взаимодействий</a></h3> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px">В левой части списка отображается панель, с помощью которой можно удобно группировать взаимодействия:</p> <ul><li><b>По предметам</b> - панель навигации заполняется предметами взаимодействий. Все взаимодействия в списке группируются по предметам. <ul><li>При позиционировании на предмете в списке отображаются взаимодействия по данному предмету. </li><li> В панели группировки можно открывать предметы, по которым сгруппированы взаимодействия (двойным щелчком мыши в панели группировки). diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl index 01f86cac6..b64a34dea 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСписка/Module.bsl @@ -20,10 +20,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Свойство("РежимВыбора") И Параметры.РежимВыбора = Истина Тогда РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца; Элементы.Список.РежимВыбора = Истина; @@ -1814,14 +1810,15 @@ Если ТипЗнч(СсылкаДокументВзаимодействий) = Тип("ДокументСсылка.ЭлектронноеПисьмоВходящее") Тогда ИмяТекущейСтраницы = Элементы.СтраницаПредпросмотрHTML.Имя; - ПредпросмотрHTML = Взаимодействия.СформироватьТекстHTMLДляВходящегоПисьма(СсылкаДокументВзаимодействий, Ложь, Ложь, Не ВключитьНебезопасноеСодержимое, ЕстьНебезопасноеСодержимое); + ПредпросмотрHTML = Взаимодействия.СформироватьТекстHTMLДляВходящегоПисьма(СсылкаДокументВзаимодействий, Ложь, Ложь, + Не ВключитьНебезопасноеСодержимое, ЕстьНебезопасноеСодержимое); Предпросмотр = ""; - ИначеЕсли ТипЗнч(СсылкаДокументВзаимодействий) = Тип("ДокументСсылка.ЭлектронноеПисьмоИсходящее") Тогда ИмяТекущейСтраницы = Элементы.СтраницаПредпросмотрHTML.Имя; - ПредпросмотрHTML = Взаимодействия.СформироватьТекстHTMLДляИсходящегоПисьма(СсылкаДокументВзаимодействий, Ложь, Ложь, Не ВключитьНебезопасноеСодержимое, ЕстьНебезопасноеСодержимое); + ПредпросмотрHTML = Взаимодействия.СформироватьТекстHTMLДляИсходящегоПисьма(СсылкаДокументВзаимодействий, Ложь, Ложь, + Не ВключитьНебезопасноеСодержимое, ЕстьНебезопасноеСодержимое); Предпросмотр = ""; Иначе @@ -4018,7 +4015,7 @@ КонецПроцедуры &НаСервере -Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) +Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат); КонецПроцедуры diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСпискаПараметрическая/Help/ru.html b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСпискаПараметрическая/Help/ru.html index 380d286b6..78c49e005 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСпискаПараметрическая/Help/ru.html +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСпискаПараметрическая/Help/ru.html @@ -1,35 +1,35 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> <p>Предназначен для отражения взаимодействий по предмету или по контакту. </p> <p>В панели навигации различных документов и элементов некоторых списков, например, <a href="Catalog.Пользователи/Help">списка пользователей</a>, доступна команда <strong>Взаимодействия</strong>, которая открывает списки взаимодействий по предмету или контакту. </p> <p>Например, если вызов произошел из карточки контактного лица партнера, то выводятся все взаимодействия с участием данного контактного лица. А если вызов произошел из какого-либо документа, то отображаются все взаимодействия по данному предмету.</p> <p>Все <strong>Взаимодействия</strong> без исключения можно посмотреть в <a href="DocumentJournal.Взаимодействия.Form.ФормаСписка/Help">списке взаимодействий</a>.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30341655e784a">Какие режимы просмотра доступны, и как изменить текущий режим просмотра?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30345a0cffc84">Какие отборы можно установить для взаимодействий в форме, помимо отбора по контакту или предмету наложенного при вызове формы?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30342df9e34d1">Как установить признак Рассмотрено для нескольких документов?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30342df9e34d3">Как снять признак Рассмотрено для нескольких документов?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30343a62cf9fb">Как отложить рассмотрение нескольких документов?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30343a62cf9fd">Как установить предмет взаимодействий для нескольких документов?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30344dd8ba6d4">Как назначить ответственного для нескольких документов?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px">В списке выводится:</p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30341655e784a">Какие режимы просмотра доступны, и как изменить текущий режим просмотра?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30345a0cffc84">Какие отборы можно установить для взаимодействий в форме, помимо отбора по контакту или предмету наложенного при вызове формы?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30342df9e34d1">Как установить признак Рассмотрено для нескольких документов?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30342df9e34d3">Как снять признак Рассмотрено для нескольких документов?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30343a62cf9fb">Как отложить рассмотрение нескольких документов?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30343a62cf9fd">Как установить предмет взаимодействий для нескольких документов?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30344dd8ba6d4">Как назначить ответственного для нескольких документов?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px">В списке выводится:</p> <ul><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><img src="CommonPicture.ЭлектронноеПисьмо"></img> Тип взаимодействия - показан в виде значка:</div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><img src="CommonPicture.ЭлектронноеПисьмо"></img> Тип взаимодействия - показан в виде значка:</div> <ul><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><img src="CommonPicture.ЗапланированноеВзаимодействие"></img> <a href="Document.ЗапланированноеВзаимодействие.Form.ФормаДокумента/Help">Запланированное взаимодействие</a>;</div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><img src="CommonPicture.ЗапланированноеВзаимодействие"></img> <a href="Document.ЗапланированноеВзаимодействие.Form.ФормаДокумента/Help">Запланированное взаимодействие</a>;</div> </li><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><img src="CommonPicture.Встреча"></img> <a href="Document.Встреча.Form.ФормаДокумента/Help">Встреча</a>;</div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><img src="CommonPicture.Встреча"></img> <a href="Document.Встреча.Form.ФормаДокумента/Help">Встреча</a>;</div> </li><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><img src="CommonPicture.ТелефонныйЗвонок"></img> <a href="Document.ТелефонныйЗвонок.Form.ФормаДокумента/Help">Телефонный звонок</a>;</div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><img src="CommonPicture.ТелефонныйЗвонок"></img> <a href="Document.ТелефонныйЗвонок.Form.ФормаДокумента/Help">Телефонный звонок</a>;</div> </li><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><img src="CommonPicture.НаписатьSMS"></img> <a href="Document.СообщениеSMS.Form.ФормаДокумента/Help">Сообщение SMS</a>;</div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><img src="CommonPicture.НаписатьSMS"></img> <a href="Document.СообщениеSMS.Form.ФормаДокумента/Help">Сообщение SMS</a>;</div> </li><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><img src="CommonPicture.ЭлектронноеПисьмоВходящее"></img> <a href="Document.ЭлектронноеПисьмоВходящее.Form.ФормаДокумента/Help">Электронное письмо входящее</a>;</div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><img src="CommonPicture.ЭлектронноеПисьмоВходящее"></img> <a href="Document.ЭлектронноеПисьмоВходящее.Form.ФормаДокумента/Help">Электронное письмо входящее</a>;</div> </li><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><img src="CommonPicture.ЭлектронноеПисьмоИсходящее"></img> <a href="Document.ЭлектронноеПисьмоИсходящее.Form.ФормаДокумента/Help">Электронное письмо исходящее</a>.</div></li></ul></li><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><strong>Участники </strong>- контакты, с которыми были взаимодействия;</div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><img src="CommonPicture.ЭлектронноеПисьмоИсходящее"></img> <a href="Document.ЭлектронноеПисьмоИсходящее.Form.ФормаДокумента/Help">Электронное письмо исходящее</a>.</div></li></ul></li><li> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><strong>Участники </strong>- контакты, с которыми были взаимодействия;</div> </li><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><strong>Дата</strong> - дата создания документа;</div> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><strong>Дата</strong> - дата создания документа;</div> </li><li> -<div style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><strong>Тема </strong>- краткое содержание взаимодействия.</div></li></ul><p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px">Жирным шрифтом в списке выделяются документы к рассмотрению, письма и сообщения SMS с установленным признаком <strong>На контроле</strong>. После установки флажка <strong>Рассмотрено</strong> выделение снимается. </p> +<div style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><strong>Тема </strong>- краткое содержание взаимодействия.</div></li></ul><p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px">Жирным шрифтом в списке выделяются документы к рассмотрению, письма и сообщения SMS с установленным признаком <strong>На контроле</strong>. После установки флажка <strong>Рассмотрено</strong> выделение снимается. </p> <h3 style="MARGIN-LEFT: 0px"><a name="70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30341655e784a">Доступные режимы просмотра</a></h3> <ul><li> <div style="MARGIN-LEFT: 20px">Доступно два режима просмотра:</div> diff --git a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСпискаПараметрическая/Module.bsl b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСпискаПараметрическая/Module.bsl index 4d5328932..0e51b2854 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСпискаПараметрическая/Module.bsl +++ b/SSL/src/DocumentJournals/Взаимодействия/Forms/ФормаСпискаПараметрическая/Module.bsl @@ -20,10 +20,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Взаимодействия.ИнициализироватьФормуСпискаВзаимодействий(ЭтотОбъект, Параметры); Элементы.СписокСоздатьЭлектронноеПисьмоОтдельнаяКнопкаДерево.Видимость = ТолькоПочта; Элементы.ГруппаСоздатьДерево.Видимость = НЕ ТолькоПочта; diff --git a/SSL/src/DocumentJournals/Взаимодействия/Взаимодействия.mdo b/SSL/src/DocumentJournals/Взаимодействия/Взаимодействия.mdo index ba78456e8..ff03698cf 100644 --- a/SSL/src/DocumentJournals/Взаимодействия/Взаимодействия.mdo +++ b/SSL/src/DocumentJournals/Взаимодействия/Взаимодействия.mdo @@ -118,33 +118,6 @@ <references>Document.ТелефонныйЗвонок.Attribute.Тема</references> <references>Document.СообщениеSMS.Attribute.Тема</references> </columns> - <columns uuid="d5afea8a-1b7a-4b23-8ae0-cefa0b937b17"> - <name>Рассмотрено</name> - <synonym> - <key>ru</key> - <value>Рассмотрено</value> - </synonym> - <indexing>Index</indexing> - <references>Document.Встреча.Attribute.Удалить_Рассмотрено</references> - <references>Document.ТелефонныйЗвонок.Attribute.Удалить_Рассмотрено</references> - <references>Document.ЭлектронноеПисьмоВходящее.Attribute.Удалить_Рассмотрено</references> - <references>Document.ЭлектронноеПисьмоИсходящее.Attribute.Удалить_Рассмотрено</references> - <references>Document.ЗапланированноеВзаимодействие.Attribute.Удалить_Рассмотрено</references> - <references>Document.СообщениеSMS.Attribute.Удалить_Рассмотрено</references> - </columns> - <columns uuid="6ffd2da8-db97-46fc-9a53-8e665a598e3c"> - <name>РассмотретьПосле</name> - <synonym> - <key>ru</key> - <value>Рассмотреть после</value> - </synonym> - <references>Document.Встреча.Attribute.Удалить_РассмотретьПосле</references> - <references>Document.ТелефонныйЗвонок.Attribute.Удалить_РассмотретьПосле</references> - <references>Document.ЭлектронноеПисьмоВходящее.Attribute.Удалить_РассмотретьПосле</references> - <references>Document.ЗапланированноеВзаимодействие.Attribute.Удалить_РассмотретьПосле</references> - <references>Document.ЭлектронноеПисьмоИсходящее.Attribute.Удалить_РассмотретьПосле</references> - <references>Document.СообщениеSMS.Attribute.Удалить_РассмотретьПосле</references> - </columns> <columns uuid="8c413fa5-9e24-4b81-aa55-0e78c5e3e20f"> <name>Участники</name> <synonym> diff --git a/SSL/src/DocumentJournals/СогласияНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl b/SSL/src/DocumentJournals/СогласияНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl index bcff3a36a..fad8b1747 100644 --- a/SSL/src/DocumentJournals/СогласияНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/DocumentJournals/СогласияНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Свойство("ИстекшиеСогласия") Тогда ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Ссылка", Параметры.ИстекшиеСогласия, ВидСравненияКомпоновкиДанных.ВСписке); КонецЕсли; @@ -51,7 +47,7 @@ КонецПроцедуры &НаСервере -Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) +Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат); КонецПроцедуры diff --git a/SSL/src/DocumentJournals/СогласияНаОбработкуПерсональныхДанных/Help/ru.html b/SSL/src/DocumentJournals/СогласияНаОбработкуПерсональныхДанных/Help/ru.html index 6b1c0ceb7..9319e5bf6 100644 --- a/SSL/src/DocumentJournals/СогласияНаОбработкуПерсональныхДанных/Help/ru.html +++ b/SSL/src/DocumentJournals/СогласияНаОбработкуПерсональныхДанных/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> <p>Предназначен для хранения согласий на обработку ПДн и отзывов согласий.</p> <p>Открывается по соответствующей команде в разделе <strong>Интегрируемые подсистемы</strong>.</p> <h3>Ввод новых документов</h3> diff --git a/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Help/ru.html b/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Help/ru.html index 7f2c44ead..9bf2d95df 100644 --- a/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Help/ru.html +++ b/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body> <p>Предназначена для ответов на вопросы при проведении анкетирования.</p> <p>Открывается по двойному щелчку мыши в списке анкет, который становится доступным после входа респондента в программу.</p> <h3>Разделы анкеты</h3> diff --git a/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Module.bsl index e54d3ca10..75e5eb56b 100644 --- a/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/Анкета/Forms/ФормаДокумента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - // Для предотвращения открытия документа "Анкета" другими внешними пользователями. Если Пользователи.ЭтоСеансВнешнегоПользователя() Тогда Если НЕ Объект.Ссылка.Пустая() Тогда @@ -1628,7 +1624,7 @@ КонецПроцедуры &НаСервере -Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) +Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат); КонецПроцедуры diff --git a/SSL/src/Documents/Анкета/Forms/ФормаСписка/Help/ru.html b/SSL/src/Documents/Анкета/Forms/ФормаСписка/Help/ru.html index 450fc0e40..fcd01821d 100644 --- a/SSL/src/Documents/Анкета/Forms/ФормаСписка/Help/ru.html +++ b/SSL/src/Documents/Анкета/Forms/ФормаСписка/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body> <p>Предназначен для контроля хода проведения опроса.</p> <p>Сотрудник, ответственный за проведение опроса, имеет возможность в реальном времени отслеживать и контролировать ход анкетирования. Заполненные респондентами <a href="Document.Анкета.Form.ФормаДокумента/Help">анкеты</a> попадают в список.</p> <p>Список открывается по команде <strong>Анкеты</strong> раздела <strong>Анкетирование</strong>.</p> diff --git a/SSL/src/Documents/Анкета/Forms/ФормаСписка/Module.bsl b/SSL/src/Documents/Анкета/Forms/ФормаСписка/Module.bsl index de1db8aad..7648da43a 100644 --- a/SSL/src/Documents/Анкета/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Documents/Анкета/Forms/ФормаСписка/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Пользователи.ЭтоСеансВнешнегоПользователя() Тогда Отказ = Истина; КонецЕсли; diff --git a/SSL/src/Documents/Встреча/Forms/ФормаВыбора/Help/ru.html b/SSL/src/Documents/Встреча/Forms/ФормаВыбора/Help/ru.html index 2dd31d571..cd725e954 100644 --- a/SSL/src/Documents/Встреча/Forms/ФормаВыбора/Help/ru.html +++ b/SSL/src/Documents/Встреча/Forms/ФормаВыбора/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body> <p>Предназначен для выбора документа <a href="Document.Встреча.Form.ФормаДокумента/Help">Встреча</a>.</p> <p>Открывается по кнопке <img src="StdPicture.InputFieldSelect"></img> после выбора типа данных <strong>Встреча</strong> (например, при заполнении поля <strong>Предмет</strong> в каком-либо документе взаимодействий).</p> <p>В списке выводится:</p> diff --git a/SSL/src/Documents/Встреча/Forms/ФормаДокумента/Help/ru.html b/SSL/src/Documents/Встреча/Forms/ФормаДокумента/Help/ru.html index 293045444..aee64a310 100644 --- a/SSL/src/Documents/Встреча/Forms/ФормаДокумента/Help/ru.html +++ b/SSL/src/Documents/Встреча/Forms/ФормаДокумента/Help/ru.html @@ -1,9 +1,9 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> <p>Документ предназначен для регистрации информации о прошедших встречах, для планирования и отражения факта встреч - совещаний, семинаров и т.п. Например, в этом документе можно отразить результаты обсуждения с клиентом нового коммерческого предложения.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff4c16a92456">Какие реквизиты можно указать в документе?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff4c16a92459">Как указать участников встречи?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff4c16a9245c">Какие взаимодействия можно создать на основании встречи?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#1">Как просмотреть взаимодействия, созданные на основании встречи?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff4c16a92456">Какие реквизиты можно указать в документе?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff4c16a92459">Как указать участников встречи?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff4c16a9245c">Какие взаимодействия можно создать на основании встречи?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#1">Как просмотреть взаимодействия, созданные на основании встречи?</a></p> <p><a name="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff4c16a92456">Заполните необходимые поля:</a></p> <ul style="MARGIN-LEFT: 40px"><li><b>Начало</b> - дата и время начала встречи. </li><li><b>Окончание</b> - дата и время окончания встречи. diff --git a/SSL/src/Documents/Встреча/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/Встреча/Forms/ФормаДокумента/Module.bsl index 4a73cc585..09655e8f3 100644 --- a/SSL/src/Documents/Встреча/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/Встреча/Forms/ФормаДокумента/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Объект.Ссылка.Пустая() Тогда Взаимодействия.УстановитьПредметПоДаннымЗаполнения(Параметры, Предмет); КонецЕсли; diff --git a/SSL/src/Documents/Встреча/Встреча.mdo b/SSL/src/Documents/Встреча/Встреча.mdo index a0f7cedcc..aa5adfb54 100644 --- a/SSL/src/Documents/Встреча/Встреча.mdo +++ b/SSL/src/Documents/Встреча/Встреча.mdo @@ -275,63 +275,6 @@ <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> </attributes> - <attributes uuid="07d0d6e9-e0a7-4543-9668-3850c1e0a15c"> - <name>Удалить_Рассмотрено</name> - <synonym> - <key>ru</key> - <value>(не используется) Рассмотрено</value> - </synonym> - <type> - <types>Boolean</types> - </type> - <toolTip> - <key>ru</key> - <value>Состояние встречи</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:BooleanValue"/> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="c656771c-dcb7-4c78-9a16-e62806d5bb5a"> - <name>Удалить_РассмотретьПосле</name> - <synonym> - <key>ru</key> - <value>(не используется) Рассмотреть после</value> - </synonym> - <type> - <types>Date</types> - <dateQualifiers/> - </type> - <toolTip> - <key>ru</key> - <value>Плановые дата и время работы по встрече</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:DateValue"> - <value>0001-01-01T00:00:00</value> - </fillValue> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="ec42c45c-18ca-44b0-9c59-1cb204552a43"> - <name>УдалитьПредмет</name> - <synonym> - <key>ru</key> - <value>(не используется) предмет</value> - </synonym> - <type> - <types>DefinedType.ПредметВзаимодействия</types> - </type> - <toolTip> - <key>ru</key> - <value>Ссылка на предмет обсуждения.</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:ReferenceValue"/> - <dataHistory>Use</dataHistory> - </attributes> <attributes uuid="2aafb1a1-4321-47e9-9783-03ab616a2873"> <name>СписокУчастников</name> <synonym> diff --git a/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаВыбора/Help/ru.html b/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаВыбора/Help/ru.html index 0196e5996..1ae48e818 100644 --- a/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаВыбора/Help/ru.html +++ b/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаВыбора/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body> <p>Предназначен для выбора документа <a href="Document.ЗапланированноеВзаимодействие.Form.ФормаДокумента/Help">Запланированное взаимодействие</a>. Документ предназначен для планирования взаимодействия с одним или несколькими контактами. Документ вводится в том случае, если необходимо запланировать взаимодействие, однако как именно будет производиться взаимодействие (телефонный звонок, встреча, электронное письмо, сообщение SMS), еще не известно.</p> <p>Открывается по кнопке <img src="StdPicture.InputFieldSelect"></img> после выбора типа данных <strong>Запланированное взаимодействие</strong> (например, при заполнении поля <strong>Предмет</strong> в каком-либо документе взаимодействий).</p> <p>В списке выводится:</p> diff --git a/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаДокумента/Help/ru.html b/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаДокумента/Help/ru.html index bf90b8500..18e7a58ab 100644 --- a/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаДокумента/Help/ru.html +++ b/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаДокумента/Help/ru.html @@ -1,9 +1,9 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> <p>Документ предназначен для планирования взаимодействия с одним или несколькими контактами. Вводится в том случае, если необходимо запланировать взаимодействие, однако как именно будет производиться взаимодействие (телефонный звонок, встреча, электронное письмо, сообщение SMS), еще не известно. </p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff3ac11444df">Какие реквизиты можно указать в документе?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff394a79a4e0">Как указать контакты запланированного взаимодействия?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff3b3910c647">Какие взаимодействия можно создать на основании запланированного взаимодействия?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#2">Как просмотреть взаимодействия, созданные на основании данного документа?</a></p><a name="70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff3ac11444df"> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff3ac11444df">Какие реквизиты можно указать в документе?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff394a79a4e0">Как указать контакты запланированного взаимодействия?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff3b3910c647">Какие взаимодействия можно создать на основании запланированного взаимодействия?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#2">Как просмотреть взаимодействия, созданные на основании данного документа?</a></p><a name="70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff3ac11444df"> <p style="MARGIN-LEFT: 0px"></p></a><a name="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff4c16a92456">Заполните необходимые поля:</a><a name="70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff3ac11444df"></a> <ul style="MARGIN-LEFT: 40px"><li><b>Предмет</b> - то, чему посвящено взаимодействие, например, претензии клиента. Предметом могут быть документы программы, а также <a href="DocumentJournal.Взаимодействия.Form.ФормаСписка/Help">документы взаимодействий</a>. Если предмет взаимодействия не определен, то в качестве предмета выступает текущий документ (т.е. такой документ начинает цепочку взаимодействий). <ul><li>Для заполнения поля нажмите <img src="StdPicture.InputFieldSelect" width="12" height="12"></img> <strong>Выбрать</strong>, выберите тип данных, затем из соответствующего списка выберите конкретный документ.</li></ul></li><li><b>Тема</b> - краткое описание того, чему будет посвящено запланированное взаимодействие. diff --git a/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаДокумента/Module.bsl index 475187b12..46aaa56ab 100644 --- a/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/ЗапланированноеВзаимодействие/Forms/ФормаДокумента/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Объект.Ссылка.Пустая() Тогда Взаимодействия.УстановитьПредметПоДаннымЗаполнения(Параметры, Предмет); КонецЕсли; diff --git a/SSL/src/Documents/ЗапланированноеВзаимодействие/Help/ru.html b/SSL/src/Documents/ЗапланированноеВзаимодействие/Help/ru.html index 95c82a49d..8b45af9e9 100644 --- a/SSL/src/Documents/ЗапланированноеВзаимодействие/Help/ru.html +++ b/SSL/src/Documents/ЗапланированноеВзаимодействие/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16553"></meta></head><body> <h1>Запланированное взаимодействие</h1> <p style="MARGIN-LEFT: 0px">Документ предназначен для планирования взаимодействия с одним или несколькими контактами. Документ вводится в том случае, если необходимо запланировать взаимодействие, однако как именно будет производиться взаимодействие (телефонный звонок, встреча, электронное письмо, сообщение SMS), еще не известно. </p> <p> </p></body></html> \ No newline at end of file diff --git a/SSL/src/Documents/ЗапланированноеВзаимодействие/ЗапланированноеВзаимодействие.mdo b/SSL/src/Documents/ЗапланированноеВзаимодействие/ЗапланированноеВзаимодействие.mdo index e276eb3c8..30edb7e06 100644 --- a/SSL/src/Documents/ЗапланированноеВзаимодействие/ЗапланированноеВзаимодействие.mdo +++ b/SSL/src/Documents/ЗапланированноеВзаимодействие/ЗапланированноеВзаимодействие.mdo @@ -211,65 +211,6 @@ <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> </attributes> - <attributes uuid="699f734b-43d2-4351-bff8-e0e21e164a42"> - <name>Удалить_Рассмотрено</name> - <synonym> - <key>ru</key> - <value>(не используется) Рассмотрено</value> - </synonym> - <type> - <types>Boolean</types> - </type> - <toolTip> - <key>ru</key> - <value>Признак, указывающий на то, что необходимые действия завершены.</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:BooleanValue"/> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="95f0792a-7ac4-450a-b05c-219741e61abd"> - <name>Удалить_РассмотретьПосле</name> - <synonym> - <key>ru</key> - <value>(не используется) Рассмотреть после</value> - </synonym> - <type> - <types>Date</types> - <dateQualifiers/> - </type> - <toolTip> - <key>ru</key> - <value>Плановые дата и время работы по плановому взаимодействию</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:DateValue"> - <value>0001-01-01T00:00:00</value> - </fillValue> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="742a2e8c-496e-4e02-931d-d33f7afe07a5"> - <name>УдалитьПредмет</name> - <synonym> - <key>ru</key> - <value>(не используется) предмет</value> - </synonym> - <type> - <types>DefinedType.ПредметВзаимодействия</types> - </type> - <toolTip> - <key>ru</key> - <value>Ссылка на предмет обсуждения.</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:ReferenceValue"> - <value>Document.ТелефонныйЗвонок.EmptyRef</value> - </fillValue> - <dataHistory>Use</dataHistory> - </attributes> <attributes uuid="c3efa853-cd29-4618-929f-e3bec33dfd65"> <name>СписокУчастников</name> <synonym> diff --git a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаВыбора/Help/ru.html b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаВыбора/Help/ru.html index bf17c2cbe..ff6b1b5b4 100644 --- a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаВыбора/Help/ru.html +++ b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаВыбора/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body> <p>Предназначен для выбора документа <a href="Document.НазначениеОпросов.Form.ФормаДокумента/Help">Назначение опросов</a>.</p> <p>Открывается по кнопке выбора из отчетов <a href="Report.АнализОпроса/Help">Анализ опроса</a> и <a href="Report.АналитическийОтчетПоАнкетированию/Help">Аналитический отчет по анкетированию</a> раздела <strong>Анкетирование</strong>.</p> <p>В списке выводится:</p> diff --git a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаДокумента/Help/ru.html b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаДокумента/Help/ru.html index 9574878b7..7420e1627 100644 --- a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаДокумента/Help/ru.html +++ b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаДокумента/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body> <p>Предназначен для назначения опроса респондентам.</p> <p>Для того чтобы респондент приступил к заполнению <a href="Document.Анкета.Form.ФормаДокумента/Help">анкеты</a> по составленному шаблону, необходимо выполнить ряд подготовительных действий. Сначала необходимо организовать проведение опроса, в рамках которого определить сроки его проведения, состав респондентов и <a href="Catalog.ШаблоныАнкет.Form.ФормаЭлемента/Help">шаблон анкеты</a>, на основании которого будут сформированы <a href="Document.Анкета.Form.ФормаСписка/Help">анкеты</a> респондентов.</p> <h3>Назначение опроса</h3> diff --git a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаДокумента/Module.bsl index 0444e8708..c644d50c2 100644 --- a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаДокумента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ДоступныеТипы = РеквизитФормыВЗначение("Объект").Метаданные().Реквизиты.ТипРеспондентов.Тип.Типы(); Для каждого ДоступныйТип Из ДоступныеТипы Цикл @@ -239,7 +235,7 @@ КонецПроцедуры &НаСервере -Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) +Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат); КонецПроцедуры diff --git a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Help/ru.html b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Help/ru.html index 8a3690f2e..4093693c4 100644 --- a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Help/ru.html +++ b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body> <p>Предназначена для подбора респондентов из выбранного списка программы.</p> <p>Открывается по кнопке <strong>Подобрать</strong> из документа <a href="Document.НазначениеОпросов.Form.ФормаДокумента/Help">Назначение опросов</a>.</p> <h3>Выбор респондентов</h3> diff --git a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Module.bsl b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Module.bsl index dd9db47a7..21bbccc39 100644 --- a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Module.bsl +++ b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаПодбораРеспондентов/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(Параметры.ТипРеспондента)) Тогда СтруктураСвойствСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка(); diff --git a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаСписка/Help/ru.html b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаСписка/Help/ru.html index b3995c954..67627b49f 100644 --- a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаСписка/Help/ru.html +++ b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаСписка/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> <p>Предназначен для назначения опросов респондентам.</p> <p>Для того чтобы респондент приступил к заполнению анкеты по составленному <a href="Catalog.ШаблоныАнкет.Form.ФормаЭлемента/Help">шаблону</a>, необходимо выполнить ряд подготовительных действий. Сначала необходимо организовать проведение опроса, в рамках которого определить сроки его проведения, состав респондентов и шаблон анкеты, на основании которого будут сформированы <a href="Document.Анкета.Form.ФормаСписка/Help">анкеты</a> респондентов.</p> <p>Открывается по команде <strong>Назначения опросов</strong> раздела <strong>Анкетирование</strong>.</p> diff --git a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаСписка/Module.bsl b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаСписка/Module.bsl index a302e8c37..170333f78 100644 --- a/SSL/src/Documents/НазначениеОпросов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Documents/НазначениеОпросов/Forms/ФормаСписка/Module.bsl @@ -11,9 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; // СтандартныеПодсистемы.ПодключаемыеКоманды Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда @@ -59,7 +56,7 @@ КонецПроцедуры &НаСервере -Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) +Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат); КонецПроцедуры diff --git a/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Module.bsl index 1e2f62bce..649fe35bf 100644 --- a/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Ключ.Пустая() Тогда // Заполняем значениями по умолчанию. Объект.Ответственный = Пользователи.ТекущийПользователь(); diff --git a/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl b/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl index beae8ad99..87666ec40 100644 --- a/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - КонецПроцедуры #КонецОбласти diff --git a/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Help/ru.html b/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Help/ru.html index 2710bf3d4..7db5e0f5a 100644 --- a/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Help/ru.html +++ b/SSL/src/Documents/ОтзывСогласияНаОбработкуПерсональныхДанных/Help/ru.html @@ -1,11 +1,11 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16421"></meta></head><body> <p>Предназначен для документирования отзыва согласия на обработку ПДн.</p> <p>Субъект персональных данных в любой момент может отозвать свое согласие на обработку персональных данных.</p> <p>Заполняется на основании документа <a href="Document.СогласиеНаОбработкуПерсональныхДанных/Help">Согласие на обработку ПДн</a>.</p> <p>В этом случае все необходимые сведения автоматически копируются из согласия на обработку персональных данных.</p> <p>Заполните оставшиеся поля:</p> <ul><a name="СтандартныеПодсистемы.Пользователи"> -<li>В поле <strong>Ответственный за обработку ПДн</strong> - выберите из <a href="Catalog.Пользователи/Help">списка</a> нужного <a href="Catalog.Пользователи.Form.ФормаЭлемента/Help">пользователя</a>.</li></a> +</a><li><a name="СтандартныеПодсистемы.Пользователи">В поле <strong>Ответственный за обработку ПДн</strong> - выберите из </a><a href="Catalog.Пользователи/Help">списка</a> нужного <a href="Catalog.Пользователи.Form.ФормаЭлемента/Help">пользователя</a>.</li> <li>В поле <strong>Комментарий</strong> можно написать дополнительные сведения.</li></ul><h3>Просмотр согласия на обработку ПДн</h3> <ul><li>Программа выводит предупреждение о наличии согласия на обработку персональных данных. </li><li>Нажав на ссылку, можно перейти к просмотру согласия.</li></ul><h3>Проведение документа</h3> diff --git a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Module.bsl index 415cf6d5f..078c501da 100644 --- a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Forms/ФормаДокумента/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Ключ.Пустая() Тогда // Заполняем значениями по умолчанию. Объект.Ответственный = Пользователи.ТекущийПользователь(); @@ -127,7 +123,7 @@ КонецПроцедуры &НаСервере -Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) +Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат); КонецПроцедуры diff --git a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl index 78bade2ed..8272684fd 100644 --- a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Forms/ФормаСписка/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - // СтандартныеПодсистемы.ПодключаемыеКоманды ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект); // Конец СтандартныеПодсистемы.ПодключаемыеКоманды @@ -61,7 +57,7 @@ КонецПроцедуры &НаСервере -Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) +Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат); КонецПроцедуры diff --git a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Help/ru.html b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Help/ru.html index 14bfc3e08..63795a395 100644 --- a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Help/ru.html +++ b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18315"></meta></head><body> <p>Вводится при получении согласия на обработку персональных данных.</p> <p>С помощью программы можно проводить проверку персональных данных, например, при приеме на работу сотрудника:</p> <ul><li>Проверяется наличие зарегистрированных физических лиц; @@ -9,7 +9,7 @@ <ul><a name="СтандартныеПодсистемы.Организации"> <li>Выберите <strong>Организацию</strong> из </li></a>списка; <li>После этого автоматически заполняется <strong>Адрес</strong> (если он заполнен в карточке организации); <a name="СтандартныеПодсистемы.Пользователи"> -<li>Выберите из <a href="Catalog.Пользователи/Help">списка пользователей</a> <strong>Ответственного за обработку персональных данных</strong>.</li></a></li></ul><h3>Субъект персональных данных </h3> +</a></li><li><a name="СтандартныеПодсистемы.Пользователи">Выберите из </a><a href="Catalog.Пользователи/Help">списка пользователей</a> <strong>Ответственного за обработку персональных данных</strong>.</li></ul><h3>Субъект персональных данных </h3> <ul><li>Персональные данные субъектов выбираются из нескольких списков; </li><li>Рекомендуется заносить все данные субъектов в соответствующий список, а не только в окне согласия, т.к. этим облегчается последующая работа. Если согласие формируется из списка, данные выбранного субъекта заполняются автоматически; </li><li>В поле <strong>Субъект</strong> сначала выберите список, затем выберите субъекта персональных данных из соответствующего списка; @@ -18,7 +18,7 @@ <ul><li>Поле <strong>Согласие получено</strong> заполняется автоматически текущей датой. </li><li>Проставьте <strong>Срок действия</strong> согласия. Если срок действия не заполнен, то согласие на обработку персональных данных будет выдано бессрочно. </li><li>В поле <strong>Комментарий</strong> можно написать дополнительную информацию. <a name="СтандартныеПодсистемы.Пользователи"> -<li>В поле <strong>Ответственный</strong> программа автоматически проставляет текущего <a href="Catalog.Пользователи.Form.ФормаЭлемента/Help">пользователя</a>.</li></a></li></ul><h3>Печать</h3> +</a></li><li><a name="СтандартныеПодсистемы.Пользователи">В поле <strong>Ответственный</strong> программа автоматически проставляет текущего </a><a href="Catalog.Пользователи.Form.ФормаЭлемента/Help">пользователя</a>.</li></ul><h3>Печать</h3> <ul><li>С помощью кнопки <strong>Печать</strong> можно распечатать выделенные согласия. Печать возможна в виде табличных документов формата MXL (для печати в этом формате не требуется специальных программ); </li><li>В виде офисных документов в форматах Microsoft Word и OpenOffice.org, для этого требуются соответствующие программы, установленные на компьютере.</li></ul><h3>Предупреждение</h3> <ul><li>При выборе субъекта программа проводит поиск зарегистрированных согласий на обработку ПДн. diff --git a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Templates/ПФ_MXL_СогласиеНаОбработкуПерсональныхДанных/Template.mxlx b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Templates/ПФ_MXL_СогласиеНаОбработкуПерсональныхДанных/Template.mxlx index ab7cc38a4..d3e7387f4 100644 --- a/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Templates/ПФ_MXL_СогласиеНаОбработкуПерсональныхДанных/Template.mxlx +++ b/SSL/src/Documents/СогласиеНаОбработкуПерсональныхДанных/Templates/ПФ_MXL_СогласиеНаОбработкуПерсональныхДанных/Template.mxlx @@ -234,6 +234,12 @@ </c> </row> </rowsItem> + <rowsItem> + <index>1</index> + <row> + <empty>true</empty> + </row> + </rowsItem> <rowsItem> <index>2</index> <row> diff --git a/SSL/src/Documents/СообщениеSMS/Forms/ФормаДокумента/Help/ru.html b/SSL/src/Documents/СообщениеSMS/Forms/ФормаДокумента/Help/ru.html index 5486f1c8e..97cad5c4d 100644 --- a/SSL/src/Documents/СообщениеSMS/Forms/ФормаДокумента/Help/ru.html +++ b/SSL/src/Documents/СообщениеSMS/Forms/ФормаДокумента/Help/ru.html @@ -1,12 +1,12 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> <p>Документ предназначен для отправки сообщения SMS одному или нескольким адресатам, проведения SMS-рассылки и последующего отражения факта отправки сообщений.</p> <p>Документ позволяет создавать, редактировать и отправлять сообщения SMS, помимо их документирования и хранения. Возможна отправка нескольких сообщений с одинаковым текстом разным адресатам посредством одного документа. При этом отслеживается как состояние документа в целом, так и состояния отдельного сообщения каждому из различных адресатов в рамках документа.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff5bac459cbf">Какие реквизиты можно указать в документе?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff5bac459cc2">Как указать адресатов сообщения?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#1">Как отправить сообщения?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff5f98ffe116">Как узнать текущее состояние сообщения SMS?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff5bac459cc5">Какие взаимодействия можно создать на основании сообщения SMS?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#2">Как просмотреть взаимодействия, созданные на основании сообщения SMS?</a></p><a name="70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff5bac459cbf"> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff5bac459cbf">Какие реквизиты можно указать в документе?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff5bac459cc2">Как указать адресатов сообщения?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#1">Как отправить сообщения?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff5f98ffe116">Как узнать текущее состояние сообщения SMS?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff5bac459cc5">Какие взаимодействия можно создать на основании сообщения SMS?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#2">Как просмотреть взаимодействия, созданные на основании сообщения SMS?</a></p><a name="70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff5bac459cbf"> <p style="MARGIN-LEFT: 0px">Заполните необходимые поля:</p></a> <ul style="MARGIN-LEFT: 40px"><li><b>Предмет</b> - то, чему посвящено взаимодействие, например, претензии клиента. Предметом могут быть документы программы, а также документы взаимодействий. Если предмет взаимодействия не определен, то в качестве предмета выступает текущий документ (т.е. такой документ начинает цепочку взаимодействий). </li><li>Для заполнения поля нажмите <img src="StdPicture.InputFieldSelect"></img> <strong>Выбрать</strong>, выберите тип данных, затем из соответствующего списка выберите конкретный документ. diff --git a/SSL/src/Documents/СообщениеSMS/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/СообщениеSMS/Forms/ФормаДокумента/Module.bsl index ef51a2677..2b769c072 100644 --- a/SSL/src/Documents/СообщениеSMS/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/СообщениеSMS/Forms/ФормаДокумента/Module.bsl @@ -20,11 +20,6 @@ УстановитьУсловноеОформление(); - // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест". - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - Если Объект.Ссылка.Пустая() Тогда Объект.Состояние = Перечисления.СостоянияДокументаСообщениеSMS.Черновик; Рассмотрено = Истина; @@ -794,7 +789,7 @@ КонецПроцедуры &НаСервере -Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) +Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат); КонецПроцедуры diff --git a/SSL/src/Documents/СообщениеSMS/Forms/ФормаСписка/Module.bsl b/SSL/src/Documents/СообщениеSMS/Forms/ФормаСписка/Module.bsl index 6045fc819..170333f78 100644 --- a/SSL/src/Documents/СообщениеSMS/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Documents/СообщениеSMS/Forms/ФормаСписка/Module.bsl @@ -12,10 +12,6 @@ Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - // СтандартныеПодсистемы.ПодключаемыеКоманды Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); @@ -60,7 +56,7 @@ КонецПроцедуры &НаСервере -Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) +Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды"); МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат); КонецПроцедуры diff --git a/SSL/src/Documents/СообщениеSMS/Help/ru.html b/SSL/src/Documents/СообщениеSMS/Help/ru.html index 5c9845c5b..cf011131a 100644 --- a/SSL/src/Documents/СообщениеSMS/Help/ru.html +++ b/SSL/src/Documents/СообщениеSMS/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body> <p>Предназначен для выбора документа <a href="Document.СообщениеSMS.Form.ФормаДокумента/Help">Сообщение SMS</a>. Документ используется для отправки сообщения SMS одному или нескольким адресатам. </p> <p>Открывается по кнопке <img src="StdPicture.InputFieldSelect"></img> после выбора типа данных <strong>Сообщение SMS</strong> (например, при заполнении поля <strong>Предмет</strong> в каком-либо документе взаимодействий).</p> <p>В списке выводится:</p> diff --git a/SSL/src/Documents/СообщениеSMS/СообщениеSMS.mdo b/SSL/src/Documents/СообщениеSMS/СообщениеSMS.mdo index 053bd18fb..3863a183a 100644 --- a/SSL/src/Documents/СообщениеSMS/СообщениеSMS.mdo +++ b/SSL/src/Documents/СообщениеSMS/СообщениеSMS.mdo @@ -189,48 +189,6 @@ <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> </attributes> - <attributes uuid="cfa55ab3-1335-4712-8352-03c2f0277708"> - <name>Удалить_Рассмотрено</name> - <synonym> - <key>ru</key> - <value>(не используется) Рассмотрено</value> - </synonym> - <type> - <types>Boolean</types> - </type> - <toolTip> - <key>ru</key> - <value>Признак, указывающий, что сообщение SMS не требует дальнейшего внимания</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillFromFillingValue>true</fillFromFillingValue> - <fillValue xsi:type="core:BooleanValue"> - <value>true</value> - </fillValue> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="fb176f8b-edb9-4e4b-926d-dabe9552bfa1"> - <name>Удалить_РассмотретьПосле</name> - <synonym> - <key>ru</key> - <value>(не используется) Рассмотреть после</value> - </synonym> - <type> - <types>Date</types> - <dateQualifiers/> - </type> - <toolTip> - <key>ru</key> - <value>Плановые дата и время работы по сообщению SMS</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:DateValue"> - <value>0001-01-01T00:00:00</value> - </fillValue> - <dataHistory>Use</dataHistory> - </attributes> <attributes uuid="cd5c52d4-f832-4a3b-b4c7-b4f3e0c98222"> <name>СписокУчастников</name> <synonym> diff --git a/SSL/src/Documents/ТелефонныйЗвонок/Forms/ФормаДокумента/Help/ru.html b/SSL/src/Documents/ТелефонныйЗвонок/Forms/ФормаДокумента/Help/ru.html index 71e677e9e..2e8994c19 100644 --- a/SSL/src/Documents/ТелефонныйЗвонок/Forms/ФормаДокумента/Help/ru.html +++ b/SSL/src/Documents/ТелефонныйЗвонок/Forms/ФормаДокумента/Help/ru.html @@ -1,9 +1,9 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> <p>Документ предназначен для регистрации входящих и исходящих телефонных звонков. </p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff457d115e8d">Какие реквизиты можно указать в документе?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff457d115e90">Как указать абонента телефонного звонка?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff457d115e93">Какие взаимодействия можно создать на основании телефонного звонка?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#2">Как просмотреть взаимодействия, созданные на основании телефонного звонка?</a></p><a name="70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff457d115e8d"> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff457d115e8d">Какие реквизиты можно указать в документе?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff457d115e90">Как указать абонента телефонного звонка?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff457d115e93">Какие взаимодействия можно создать на основании телефонного звонка?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#2">Как просмотреть взаимодействия, созданные на основании телефонного звонка?</a></p><a name="70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff457d115e8d"> <p style="MARGIN-LEFT: 0px"></p></a><a name="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff4c16a92456">Заполните необходимые поля:</a><a name="70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ff457d115e8d"></a> <ul style="MARGIN-LEFT: 40px"><li><b>Предмет</b> - то, чему посвящен телефонный звонок, например, претензии клиента. Предметом могут быть документы программы и документы взаимодействий. Если предмет взаимодействия не определен, то в качестве предмета автоматически проставляется значение текущего документа, т.е. такой документ начинает цепочку взаимодействий. При выполнении команды <strong>Взаимодействия</strong> из документа предметом взаимодействия во вновь созданном документе будет предмет, указанный в исходном документе, при этом основные поля будут также скопированы. </li><li>Для заполнения поля нажмите <img src="StdPicture.InputFieldSelect" width="12" height="12"></img> <strong>Выбрать</strong>, выберите тип данных, затем из соответствующего списка выберите конкретный документ. diff --git a/SSL/src/Documents/ТелефонныйЗвонок/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/ТелефонныйЗвонок/Forms/ФормаДокумента/Module.bsl index 5d1dee26a..78e9db93f 100644 --- a/SSL/src/Documents/ТелефонныйЗвонок/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/ТелефонныйЗвонок/Forms/ФормаДокумента/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Объект.Ссылка.Пустая() Тогда Взаимодействия.УстановитьПредметПоДаннымЗаполнения(Параметры, Предмет); КонецЕсли; diff --git a/SSL/src/Documents/ТелефонныйЗвонок/ТелефонныйЗвонок.mdo b/SSL/src/Documents/ТелефонныйЗвонок/ТелефонныйЗвонок.mdo index 2e3961e99..9bde8ae69 100644 --- a/SSL/src/Documents/ТелефонныйЗвонок/ТелефонныйЗвонок.mdo +++ b/SSL/src/Documents/ТелефонныйЗвонок/ТелефонныйЗвонок.mdo @@ -290,65 +290,6 @@ <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> </attributes> - <attributes uuid="fa9572ee-0303-4421-9125-70cf3dd5a8c7"> - <name>Удалить_Рассмотрено</name> - <synonym> - <key>ru</key> - <value>(не используется) Рассмотрено</value> - </synonym> - <type> - <types>Boolean</types> - </type> - <toolTip> - <key>ru</key> - <value>Признак, указывающий на то, что необходимые действия завершены.</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:BooleanValue"/> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="4cdd7920-0c49-4950-b92f-fdf6e34578b2"> - <name>Удалить_РассмотретьПосле</name> - <synonym> - <key>ru</key> - <value>(не используется) Рассмотреть после</value> - </synonym> - <type> - <types>Date</types> - <dateQualifiers/> - </type> - <toolTip> - <key>ru</key> - <value>Плановые дата и время работы по звонку</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:DateValue"> - <value>0001-01-01T00:00:00</value> - </fillValue> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="0af48650-5fef-4a5b-8ac8-38a9ded23bd4"> - <name>УдалитьПредмет</name> - <synonym> - <key>ru</key> - <value>(не используется) предмет</value> - </synonym> - <type> - <types>DefinedType.ПредметВзаимодействия</types> - </type> - <toolTip> - <key>ru</key> - <value>Ссылка на предмет обсуждения.</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:ReferenceValue"> - <value>Document.ТелефонныйЗвонок.EmptyRef</value> - </fillValue> - <dataHistory>Use</dataHistory> - </attributes> <attributes uuid="c7b883dc-6c26-4eb5-bc19-7919ad57da27"> <name>ВзаимодействиеОснование</name> <synonym> diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаВыбора/Help/ru.html b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаВыбора/Help/ru.html index 1e530172c..69c7fe1f7 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаВыбора/Help/ru.html +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаВыбора/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body> <p>Предназначен для выбора документа <a href="Document.ЭлектронноеПисьмоВходящее.Form.ФормаДокумента/Help">Входящее электронное письмо</a>. Этот документ можно только получить, ввести его невозможно.</p> <p>Открывается по кнопке <img src="StdPicture.InputFieldSelect"></img> после выбора типа данных <strong>Входящее электронное письмо</strong> (например, при заполнении поля <strong>Предмет</strong> в каком-либо документе взаимодействий).</p> <p>В списке выводится:</p> diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Help/ru.html b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Help/ru.html index 03bbd8804..82fa54021 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Help/ru.html +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Help/ru.html @@ -1,16 +1,16 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> <p>Документ предназначен для регистрации полученных электронных писем.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba86958f7">Какая информация отображается в документе и недоступна для изменения?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba86958fa">Какие реквизиты доступны для редактирования в письме?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba86958fb">Как создать исходящее электронное письмо на основании входящего электронного письма?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba86958ff">В каких случаях в документе появляется ссылка Уточнить контакты?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695901">Как изменить папку электронного письма?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba86958fd">Как изменить кодировку письма?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ffff6ed7e7bb">Какие взаимодействия можно создать на основании входящего письма?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#2">Как просмотреть взаимодействия, созданные на основании входящего письма?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e3002e26a1ec7e">Как распечатать письмо?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#1">Как работать со списком вложений?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#5">Как сохранить письмо на компьютер?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba86958f7">Какая информация отображается в документе и недоступна для изменения?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba86958fa">Какие реквизиты доступны для редактирования в письме?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba86958fb">Как создать исходящее электронное письмо на основании входящего электронного письма?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba86958ff">В каких случаях в документе появляется ссылка Уточнить контакты?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695901">Как изменить папку электронного письма?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba86958fd">Как изменить кодировку письма?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e2ffff6ed7e7bb">Какие взаимодействия можно создать на основании входящего письма?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#2">Как просмотреть взаимодействия, созданные на основании входящего письма?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e3002e26a1ec7e">Как распечатать письмо?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#1">Как работать со списком вложений?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#5">Как сохранить письмо на компьютер?</a></p> <h3 style="MARGIN-LEFT: 0px"><a name="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba86958f7">Информация для просмотра</a></h3> <ul style="MARGIN-LEFT: 40px"><li><b>От</b> - информация об отправителе письма. </li><li><b>Кому</b> - информация об основных получателях письма. diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Module.bsl index ea23090c7..8bc82942a 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаДокумента/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - // Запретим создание новых Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда Отказ = Истина; diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаСписка/Help/ru.html b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаСписка/Help/ru.html index f16339327..41cf5abb0 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаСписка/Help/ru.html +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/Forms/ФормаСписка/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body> <p>Предназначен для работы с документами <a href="Document.ЭлектронноеПисьмоВходящее.Form.ФормаДокумента/Help">Входящее электронное письмо</a>. Этот документ можно только получить, ввести его невозможно.</p> <p>В списке выводится:</p> <ul><li><strong>Отправлено</strong> - дата отправки письма; diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ManagerModule.bsl b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ManagerModule.bsl index 040cd3ee3..2db2df0e5 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ManagerModule.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ManagerModule.bsl @@ -165,38 +165,6 @@ #КонецОбласти -#Область СлужебныеПроцедурыИФункции - -#Область ОбработчикиОбновления - -// Регистрирует к обработке электронные письма у которых возможно заполнить ВзаимодействиеОснование. -// -Процедура ЗаполнитьВзаимодействияОснованияУПодчиненныхПисемКОбработке(Параметры) Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = Взаимодействия.ТекстЗапросаОтметкиКОбработкиЗаполненияПисемОснований("Документ.ЭлектронноеПисьмоВходящее"); - - ОбновлениеИнформационнойБазы.ОтметитьКОбработке( - Параметры, - Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка")); - -КонецПроцедуры - -// Выполняет дозаполнение реквизита ВзаимодействиеОснование у электронных писем. -// -Процедура ЗаполнитьВзаимодействияОснованияУПодчиненныхПисем(Параметры) Экспорт - - ПолноеИмяДокумента = "Документ.ЭлектронноеПисьмоВходящее"; - МетаданныеДокумента = Метаданные.Документы.ЭлектронноеПисьмоВходящее; - - Взаимодействия.ЗаполнитьВзаимодействияОснованияУПодчиненныхПисем(Параметры, ПолноеИмяДокумента, МетаданныеДокумента); - -КонецПроцедуры - -#КонецОбласти - -#КонецОбласти - #КонецЕсли diff --git a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ЭлектронноеПисьмоВходящее.mdo b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ЭлектронноеПисьмоВходящее.mdo index 5129c5c88..2703378c9 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ЭлектронноеПисьмоВходящее.mdo +++ b/SSL/src/Documents/ЭлектронноеПисьмоВходящее/ЭлектронноеПисьмоВходящее.mdo @@ -391,63 +391,6 @@ <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> </attributes> - <attributes uuid="22df0fa4-cb1c-45a2-bcce-d32ed44e462a"> - <name>Удалить_Рассмотрено</name> - <synonym> - <key>ru</key> - <value>(не используется) Рассмотрено</value> - </synonym> - <type> - <types>Boolean</types> - </type> - <toolTip> - <key>ru</key> - <value>Признак, указывающий, что работа по письму завершена</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:BooleanValue"/> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="d97c6204-3656-4591-aea9-6ebedffe1247"> - <name>Удалить_РассмотретьПосле</name> - <synonym> - <key>ru</key> - <value>(не используется) Рассмотреть после</value> - </synonym> - <type> - <types>Date</types> - <dateQualifiers/> - </type> - <toolTip> - <key>ru</key> - <value>Плановые дата и время работы по письму</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:DateValue"> - <value>0001-01-01T00:00:00</value> - </fillValue> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="7caabe33-184f-45db-bef4-59d4e9cd2394"> - <name>УдалитьПредмет</name> - <synonym> - <key>ru</key> - <value>(не используется) предмет</value> - </synonym> - <type> - <types>DefinedType.ПредметВзаимодействия</types> - </type> - <toolTip> - <key>ru</key> - <value>Ссылка на предмет обсуждения. Может быть не заполнена.</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:ReferenceValue"/> - <dataHistory>Use</dataHistory> - </attributes> <attributes uuid="3255033a-e922-412e-a825-a3e8bd284703"> <name>Размер</name> <synonym> diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаВыбора/Help/ru.html b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаВыбора/Help/ru.html index cf5dbc047..40b8ffbb0 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаВыбора/Help/ru.html +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаВыбора/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17126"></meta></head><body> <p>Предназначен для выбора документа <a href="Document.ЭлектронноеПисьмоИсходящее.Form.ФормаДокумента/Help">Исходящее</a><u> </u><a href="Document.ЭлектронноеПисьмоИсходящее.Form.ФормаДокумента/Help">электронное письмо</a>. </p> <p>Открывается по кнопке <img src="StdPicture.InputFieldSelect"></img> после выбора типа данных <strong>Исходящее электронное письмо</strong> (например, при заполнении поля <strong>Предмет</strong> в каком-либо документе взаимодействий).</p> <p>В списке выводится:</p> diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Help/ru.html b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Help/ru.html index bf2083693..6bf98fa74 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Help/ru.html +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Help/ru.html @@ -1,22 +1,22 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> <p>Документ предназначен для формирования и отправки исходящего электронного письма.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695907">Какая из доступных учетных записей подставляется по умолчанию?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695903">Как указать адресатов письма?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e3001c727aaba9">Какие еще реквизиты доступны для редактирования в письме?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695909">Можно ли редактировать письмо в формате HTML?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300284eec1dca">Как приложить к письму файлы и письма?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30028f8356e24">Какие еще действия доступны с вложениями письма?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30027268e0fe4">Как сделать так, чтобы к письму при ответе или пересылке был приложен текст исходного письма?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30024c0312ccc">Как указать что необходимо уведомление о доставке и/или прочтении письма?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695913">Как указать, что письмо нужно отправить в определенной кодировке?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba869590f">В каких случаях в документе появляется ссылка Уточнить контакты?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e3002a21ffaefd">Как изменить папку электронного письма?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba869590b">Как отправить письмо?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e3002efba3d07a">Какие взаимодействия можно создать на основании исходящего письма?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#2">Как просмотреть взаимодействия, созданные на основании исходящего письма?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e3002efba3d07c">Как распечатать письмо?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#3">Как вставить в письмо ссылку на объект информационной базы?</a></p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#9">Как сохранить письмо на компьютер</a>?</p><a name="70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695907"> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695907">Какая из доступных учетных записей подставляется по умолчанию?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695903">Как указать адресатов письма?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e3001c727aaba9">Какие еще реквизиты доступны для редактирования в письме?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695909">Можно ли редактировать письмо в формате HTML?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300284eec1dca">Как приложить к письму файлы и письма?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30028f8356e24">Какие еще действия доступны с вложениями письма?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30027268e0fe4">Как сделать так, чтобы к письму при ответе или пересылке был приложен текст исходного письма?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e30024c0312ccc">Как указать что необходимо уведомление о доставке и/или прочтении письма?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695913">Как указать, что письмо нужно отправить в определенной кодировке?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba869590f">В каких случаях в документе появляется ссылка Уточнить контакты?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e3002a21ffaefd">Как изменить папку электронного письма?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba869590b">Как отправить письмо?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e3002efba3d07a">Какие взаимодействия можно создать на основании исходящего письма?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#2">Как просмотреть взаимодействия, созданные на основании исходящего письма?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e3002efba3d07c">Как распечатать письмо?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#3">Как вставить в письмо ссылку на объект информационной базы?</a></p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#9">Как сохранить письмо на компьютер</a>?</p><a name="70a6370b13ca43baa611bed9691c46111905adcce61f135f174b11e275eba8695907"> <h3 style="MARGIN-LEFT: 0px">Учетная запись в письме по умолчанию</h3></a> <ul style="MARGIN-LEFT: 40px"><li>В поле <strong>От</strong> (электронный адрес отправителя) программой автоматически проставляется: <ul><li>Учетная запись письма-основания, если данное письмо создается на основании другого письма. Например, как ответ на <a href="Document.ЭлектронноеПисьмоВходящее.Form.ФормаДокумента/Help">входящее письмо</a>; diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl index 8859b7d45..1d23c3b18 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормаДокумента/Module.bsl @@ -20,10 +20,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект); Если Объект.Ссылка.Пустая() Тогда diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормированиеВнешнейСсылкиНаОбъект/Module.bsl b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормированиеВнешнейСсылкиНаОбъект/Module.bsl index f97c6e724..bf1b23fe3 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормированиеВнешнейСсылкиНаОбъект/Module.bsl +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/Forms/ФормированиеВнешнейСсылкиНаОбъект/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - АдресПубликацииИнформационнойБазыВИнтернете = ОбщегоНазначения.АдресПубликацииИнформационнойБазыВИнтернете(); КонецПроцедуры diff --git a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ЭлектронноеПисьмоИсходящее.mdo b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ЭлектронноеПисьмоИсходящее.mdo index 2f756f743..d24788c5f 100644 --- a/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ЭлектронноеПисьмоИсходящее.mdo +++ b/SSL/src/Documents/ЭлектронноеПисьмоИсходящее/ЭлектронноеПисьмоИсходящее.mdo @@ -399,67 +399,6 @@ <fullTextSearch>Use</fullTextSearch> <dataHistory>Use</dataHistory> </attributes> - <attributes uuid="05558ce4-8568-4009-b1d7-307d54967515"> - <name>Удалить_Рассмотрено</name> - <synonym> - <key>ru</key> - <value>(не используется) Рассмотрено</value> - </synonym> - <type> - <types>Boolean</types> - </type> - <toolTip> - <key>ru</key> - <value>Признак, указывающий, что работа по письму завершена</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillFromFillingValue>true</fillFromFillingValue> - <fillValue xsi:type="core:BooleanValue"> - <value>true</value> - </fillValue> - <fullTextSearch>Use</fullTextSearch> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="74380324-9b7b-49f6-9458-88deb9405f98"> - <name>Удалить_РассмотретьПосле</name> - <synonym> - <key>ru</key> - <value>(не используется) Рассмотреть после</value> - </synonym> - <type> - <types>Date</types> - <dateQualifiers/> - </type> - <toolTip> - <key>ru</key> - <value>Плановые дата и время работы по письму</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:DateValue"> - <value>0001-01-01T00:00:00</value> - </fillValue> - <dataHistory>Use</dataHistory> - </attributes> - <attributes uuid="5286ceb2-0f16-4d70-ad89-dc15a308bb8d"> - <name>УдалитьПредмет</name> - <synonym> - <key>ru</key> - <value>(не используется) предмет</value> - </synonym> - <type> - <types>DefinedType.ПредметВзаимодействия</types> - </type> - <toolTip> - <key>ru</key> - <value>Ссылка на предмет обсуждения. Может быть не заполнена.</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fillValue xsi:type="core:ReferenceValue"/> - <dataHistory>Use</dataHistory> - </attributes> <attributes uuid="0abf70e0-0d81-4d85-a288-a2134da5fbf1"> <name>СписокПолучателейКопий</name> <synonym> diff --git a/SSL/src/Enums/ВариантыSMTPАутентификации/ВариантыSMTPАутентификации.mdo b/SSL/src/Enums/ВариантыSMTPАутентификации/ВариантыSMTPАутентификации.mdo deleted file mode 100644 index 59048de31..000000000 --- a/SSL/src/Enums/ВариантыSMTPАутентификации/ВариантыSMTPАутентификации.mdo +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<mdclass:Enum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="483dfce4-9c66-4739-94d4-17a005d64f5b"> - <producedTypes> - <refType typeId="c147a978-0ef7-45bc-8a21-9eb3277a5ad4" valueTypeId="971e7bea-6b39-433c-a39c-e341772ce800"/> - <listType typeId="a4a8078b-726c-4fea-bb64-2bc1a9ecb601" valueTypeId="df2033e3-17b9-4589-8c2c-cd9830ba724b"/> - <managerType typeId="32104192-b596-4ded-b188-c15e0d929add" valueTypeId="5f2ca258-9b3b-4ada-ac5f-653612d3c3ef"/> - </producedTypes> - <name>ВариантыSMTPАутентификации</name> - <synonym> - <key>ru</key> - <value>Варианты SMTP аутентификации</value> - </synonym> - <standardAttributes> - <dataHistory>Use</dataHistory> - <name>Order</name> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - </standardAttributes> - <standardAttributes> - <dataHistory>Use</dataHistory> - <name>Ref</name> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - </standardAttributes> - <quickChoice>true</quickChoice> - <choiceMode>BothWays</choiceMode> - <enumValues uuid="19506116-43ef-433c-822c-ef8717b0da6b"> - <name>АналогичноPOP3</name> - <synonym> - <key>ru</key> - <value>Аналогично POP3</value> - </synonym> - </enumValues> - <enumValues uuid="464b92cc-b577-4350-ae9f-e697390248d7"> - <name>ЗадаетсяПараметрами</name> - <synonym> - <key>ru</key> - <value>Задается параметрами</value> - </synonym> - </enumValues> - <enumValues uuid="5a1242c8-3817-4d2c-9bfd-f62a6b80730c"> - <name>POP3ПередSMTP</name> - <synonym> - <key>ru</key> - <value>POP3 перед SMTP</value> - </synonym> - </enumValues> - <enumValues uuid="b9be6caf-e5e0-45a9-8cc8-3c83721632a2"> - <name>НеЗадано</name> - <synonym> - <key>ru</key> - <value>Не задано</value> - </synonym> - </enumValues> -</mdclass:Enum> diff --git a/SSL/src/Enums/ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса/ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса.mdo b/SSL/src/Enums/ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса/ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса.mdo new file mode 100644 index 000000000..70281a405 --- /dev/null +++ b/SSL/src/Enums/ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса/ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса.mdo @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:Enum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c343495b-5947-4fe7-a94b-d1f2b2455b4f"> + <producedTypes> + <refType typeId="342e26e2-3acb-4a40-91c4-de8ba8daeb76" valueTypeId="b081753c-fb55-4be0-95c8-f134899752fd"/> + <listType typeId="89c528df-30d2-475c-a12c-9372a1dd279b" valueTypeId="2cb25350-59a6-4d3c-9bb6-bb6921fcfac3"/> + <managerType typeId="4ec0e820-c9f5-4b23-87ee-03946b281ef3" valueTypeId="0a475d55-2569-4517-85ec-c1bb1d138121"/> + </producedTypes> + <name>ПричиныОтключенияДополнительныхОтчетовИОбработокВМоделиСервиса</name> + <synonym> + <key>ru</key> + <value>Причины отключения дополнительных отчетов и обработок в модели сервиса</value> + </synonym> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>Order</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>Ref</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <quickChoice>true</quickChoice> + <choiceMode>BothWays</choiceMode> + <enumValues uuid="fbce7316-bb9a-40c1-af3c-352f4b559ab6"> + <name>БлокировкаАдминистраторомСервиса</name> + <synonym> + <key>ru</key> + <value>Блокировка администратором сервиса</value> + </synonym> + </enumValues> + <enumValues uuid="a3721457-b33b-4742-b6e1-531af10969d1"> + <name>БлокировкаВладельцем</name> + <synonym> + <key>ru</key> + <value>Блокировка владельцем</value> + </synonym> + </enumValues> + <enumValues uuid="9619a603-e578-4f30-bcc6-adfddfa915c0"> + <name>ОбновлениеВерсииКонфигурации</name> + <synonym> + <key>ru</key> + <value>Обновление версии конфигурации</value> + </synonym> + </enumValues> +</mdclass:Enum> diff --git a/SSL/src/Enums/РежимыИспользованияИнформационнойБазы/РежимыИспользованияИнформационнойБазы.mdo b/SSL/src/Enums/РежимыИспользованияИнформационнойБазы/РежимыИспользованияИнформационнойБазы.mdo deleted file mode 100644 index 4e8c3900c..000000000 --- a/SSL/src/Enums/РежимыИспользованияИнформационнойБазы/РежимыИспользованияИнформационнойБазы.mdo +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<mdclass:Enum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="a23e6c77-8c12-4f99-ae2d-68a12274be38"> - <producedTypes> - <refType typeId="9481d0a7-535e-42ba-92ee-1deb9aa21609" valueTypeId="e540472f-c055-4438-912f-077460400fe2"/> - <listType typeId="1d52caa5-6158-46ea-91e4-7b57a4b3f046" valueTypeId="617097a5-f861-47d9-8620-339befd193cc"/> - <managerType typeId="bf31114b-36c3-43ff-8abb-51fd81112238" valueTypeId="a08c66ad-c068-4851-8c5b-9540eef21017"/> - </producedTypes> - <name>РежимыИспользованияИнформационнойБазы</name> - <synonym> - <key>ru</key> - <value>Режимы использования информационной базы</value> - </synonym> - <standardAttributes> - <dataHistory>Use</dataHistory> - <name>Order</name> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - </standardAttributes> - <standardAttributes> - <dataHistory>Use</dataHistory> - <name>Ref</name> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - </standardAttributes> - <quickChoice>true</quickChoice> - <choiceMode>BothWays</choiceMode> - <enumValues uuid="3c4454cd-31e9-42a5-9127-fb66a628f0e1"> - <name>Рабочий</name> - <synonym> - <key>ru</key> - <value>Рабочий</value> - </synonym> - </enumValues> - <enumValues uuid="c02c5cbf-b25a-4956-8aa7-74cfeb66d508"> - <name>Демонстрационный</name> - <synonym> - <key>ru</key> - <value>Демонстрационный</value> - </synonym> - </enumValues> -</mdclass:Enum> diff --git a/SSL/src/Enums/СостоянияЗаданий/СостоянияЗаданий.mdo b/SSL/src/Enums/СостоянияЗаданий/СостоянияЗаданий.mdo deleted file mode 100644 index 328649292..000000000 --- a/SSL/src/Enums/СостоянияЗаданий/СостоянияЗаданий.mdo +++ /dev/null @@ -1,86 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<mdclass:Enum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="118a0e62-c0bb-435b-9e3e-c64563efa602"> - <producedTypes> - <refType typeId="1261ceb2-7d47-49f3-a7cb-a946ca667677" valueTypeId="d93e7c0f-df46-48fb-9889-e68dab0715c9"/> - <listType typeId="3fd4055b-ec48-4211-beb8-8010fc3edd9a" valueTypeId="093a1aad-316d-4500-bf18-1660a34dcbb8"/> - <managerType typeId="57a09abf-c93f-4f21-bd7f-ef964e70859f" valueTypeId="75217e12-7631-45b3-9dc9-bb39c1046f71"/> - </producedTypes> - <name>СостоянияЗаданий</name> - <synonym> - <key>ru</key> - <value>Состояния заданий</value> - </synonym> - <standardAttributes> - <dataHistory>Use</dataHistory> - <name>Order</name> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - </standardAttributes> - <standardAttributes> - <dataHistory>Use</dataHistory> - <name>Ref</name> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - </standardAttributes> - <quickChoice>true</quickChoice> - <choiceMode>BothWays</choiceMode> - <enumValues uuid="b57bc8a9-8a59-4192-a442-2e1982e83179"> - <name>Запланировано</name> - <synonym> - <key>ru</key> - <value>Запланировано</value> - </synonym> - <comment>Задание запланировано на выполнение</comment> - </enumValues> - <enumValues uuid="5b06ccda-2a70-4621-8273-78408cbe72a9"> - <name>Выполняется</name> - <synonym> - <key>ru</key> - <value>Выполняется</value> - </synonym> - <comment>Задание выполняется</comment> - </enumValues> - <enumValues uuid="89753385-64fd-4e76-9857-bfd5d7c23f71"> - <name>Завершено</name> - <synonym> - <key>ru</key> - <value>Завершено</value> - </synonym> - <comment>Задание завершено</comment> - </enumValues> - <enumValues uuid="1b3113f3-e7d4-4e6f-b6ed-08f5fd78c68e"> - <name>НеЗапланировано</name> - <synonym> - <key>ru</key> - <value>Не запланировано</value> - </synonym> - <comment>Задание не запланировано</comment> - </enumValues> - <enumValues uuid="53e72cf2-e2a5-4b59-b5b1-a1fc28fda5bf"> - <name>ОшибкаВыполнения</name> - <synonym> - <key>ru</key> - <value>Ошибка выполнения</value> - </synonym> - <comment>Ошибка при выполнении задания</comment> - </enumValues> - <enumValues uuid="e20bcb57-2f68-4709-8a11-105d561a2dda"> - <name>НеАктивно</name> - <synonym> - <key>ru</key> - <value>Не активно</value> - </synonym> - <comment>Задание не активно</comment> - </enumValues> - <enumValues uuid="3df3f61a-2c17-4278-8d82-91089f793e6a"> - <name>ОбработкаОшибкиПриАварийномЗавершении</name> - <synonym> - <key>ru</key> - <value>Обработка ошибки при аварийном завершении</value> - </synonym> - </enumValues> -</mdclass:Enum> diff --git a/SSL/src/Enums/СпособыPOP3Аутентификации/СпособыPOP3Аутентификации.mdo b/SSL/src/Enums/СпособыPOP3Аутентификации/СпособыPOP3Аутентификации.mdo deleted file mode 100644 index 19f05e7ea..000000000 --- a/SSL/src/Enums/СпособыPOP3Аутентификации/СпособыPOP3Аутентификации.mdo +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<mdclass:Enum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="66ec2482-c1f3-45d3-9257-e0b9f5ae772a"> - <producedTypes> - <refType typeId="6c8a5e0b-313e-4744-b67d-b6812a3f4e09" valueTypeId="2314f85d-ca71-4dd8-8a3e-0a81105a517b"/> - <listType typeId="435b3d32-809c-431d-aacc-8ea3e7051f8b" valueTypeId="64f6af07-286e-413f-8a8d-22af27be4e65"/> - <managerType typeId="6716055b-0027-4165-bd24-b5dfac8860b3" valueTypeId="9f91f611-3ae9-4bef-b8f9-ed26902d4a7f"/> - </producedTypes> - <name>СпособыPOP3Аутентификации</name> - <synonym> - <key>ru</key> - <value>Способы POP3 аутентификации</value> - </synonym> - <standardAttributes> - <dataHistory>Use</dataHistory> - <name>Order</name> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - </standardAttributes> - <standardAttributes> - <dataHistory>Use</dataHistory> - <name>Ref</name> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - </standardAttributes> - <quickChoice>true</quickChoice> - <choiceMode>BothWays</choiceMode> - <enumValues uuid="d3211832-c8ca-437a-8810-82e06cbb48de"> - <name>APOP</name> - <synonym> - <key>ru</key> - <value>APOP</value> - </synonym> - </enumValues> - <enumValues uuid="8131d701-1014-4196-9b67-914e451f8a3a"> - <name>CramMD5</name> - <synonym> - <key>ru</key> - <value>Cram MD5</value> - </synonym> - </enumValues> - <enumValues uuid="2b102933-c660-4e74-ae9a-5061a88ed672"> - <name>Обычная</name> - <synonym> - <key>ru</key> - <value>Обычная</value> - </synonym> - </enumValues> -</mdclass:Enum> diff --git a/SSL/src/Enums/СпособыSMTPАутентификации/СпособыSMTPАутентификации.mdo b/SSL/src/Enums/СпособыSMTPАутентификации/СпособыSMTPАутентификации.mdo deleted file mode 100644 index 510f6f794..000000000 --- a/SSL/src/Enums/СпособыSMTPАутентификации/СпособыSMTPАутентификации.mdo +++ /dev/null @@ -1,66 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<mdclass:Enum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="56c897b7-d34e-4d7d-9a3b-d0779be5c189"> - <producedTypes> - <refType typeId="37548c27-9bd4-48d9-93ce-9f149740606f" valueTypeId="c5455baf-f805-4a79-9ae2-00304938fba6"/> - <listType typeId="0a795758-7931-40fd-a4c8-87d0d081093e" valueTypeId="e1419b71-cd78-422b-8ed8-fe100ce9c104"/> - <managerType typeId="01fd47e2-c97c-48dd-83bb-5aeff37a7c4d" valueTypeId="4817c1b2-5b71-4847-966e-4163881af3da"/> - </producedTypes> - <name>СпособыSMTPАутентификации</name> - <synonym> - <key>ru</key> - <value>Способы SMTP аутентификации</value> - </synonym> - <standardAttributes> - <dataHistory>Use</dataHistory> - <name>Order</name> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - </standardAttributes> - <standardAttributes> - <dataHistory>Use</dataHistory> - <name>Ref</name> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - </standardAttributes> - <quickChoice>true</quickChoice> - <choiceMode>BothWays</choiceMode> - <enumValues uuid="3ac81c80-56bd-4750-b135-07ab522e3eab"> - <name>CramMD5</name> - <synonym> - <key>ru</key> - <value>Cram MD5</value> - </synonym> - </enumValues> - <enumValues uuid="5657872f-c7d5-446f-bcc3-d0b86ad63a42"> - <name>Login</name> - <synonym> - <key>ru</key> - <value>Login</value> - </synonym> - </enumValues> - <enumValues uuid="d5214cb9-67e2-469f-989f-3f2b662ae830"> - <name>Plain</name> - <synonym> - <key>ru</key> - <value>Plain</value> - </synonym> - </enumValues> - <enumValues uuid="69679e88-4f2b-4dd6-8cb2-b88293d07b55"> - <name>БезАутентификации</name> - <synonym> - <key>ru</key> - <value>Без аутентификации</value> - </synonym> - </enumValues> - <enumValues uuid="68679208-9972-4854-8649-49bdf6212255"> - <name>ПоУмолчанию</name> - <synonym> - <key>ru</key> - <value>По умолчанию</value> - </synonym> - </enumValues> -</mdclass:Enum> diff --git a/SSL/src/Enums/СтатусыОбластейДанных/СтатусыОбластейДанных.mdo b/SSL/src/Enums/СтатусыОбластейДанных/СтатусыОбластейДанных.mdo deleted file mode 100644 index d03a76dc5..000000000 --- a/SSL/src/Enums/СтатусыОбластейДанных/СтатусыОбластейДанных.mdo +++ /dev/null @@ -1,66 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<mdclass:Enum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="985106b7-7476-4b48-90ac-ad86876395b5"> - <producedTypes> - <refType typeId="55993386-0e15-4a2f-b9b8-9681e51bbf01" valueTypeId="cc868b08-d0c2-407b-b249-65637dee4cd5"/> - <listType typeId="505ac2db-f538-4797-b398-b10a9609d2fe" valueTypeId="74dd7b97-f44b-4e5c-8f80-aaba4f8db55a"/> - <managerType typeId="af6d5914-5eeb-4cc5-bec1-be3be340507d" valueTypeId="4a6a4f43-e412-419a-8d86-4d6b9f2ecf95"/> - </producedTypes> - <name>СтатусыОбластейДанных</name> - <synonym> - <key>ru</key> - <value>Статусы областей данных</value> - </synonym> - <standardAttributes> - <dataHistory>Use</dataHistory> - <name>Order</name> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - </standardAttributes> - <standardAttributes> - <dataHistory>Use</dataHistory> - <name>Ref</name> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - </standardAttributes> - <quickChoice>true</quickChoice> - <choiceMode>BothWays</choiceMode> - <enumValues uuid="0d8db0c9-adbc-478d-997c-3d7feccac99b"> - <name>Новая</name> - <synonym> - <key>ru</key> - <value>Новая</value> - </synonym> - </enumValues> - <enumValues uuid="3fd2ef04-c178-47bf-ab62-7baf83236d99"> - <name>Используется</name> - <synonym> - <key>ru</key> - <value>Используется</value> - </synonym> - </enumValues> - <enumValues uuid="b4cd1b51-dbc0-4bb0-879e-5ac0d58e78c1"> - <name>КУдалению</name> - <synonym> - <key>ru</key> - <value>К удалению</value> - </synonym> - </enumValues> - <enumValues uuid="320bf2e6-a3a8-490b-8aa0-21369ffb121b"> - <name>Удалена</name> - <synonym> - <key>ru</key> - <value>Удалена</value> - </synonym> - </enumValues> - <enumValues uuid="a3bafc54-8fe4-4841-acc6-74a87baf9caf"> - <name>ИмпортИзФайла</name> - <synonym> - <key>ru</key> - <value>Импорт из файла</value> - </synonym> - </enumValues> -</mdclass:Enum> diff --git a/SSL/src/Enums/ТипыОтчетов/ТипыОтчетов.mdo b/SSL/src/Enums/ТипыОтчетов/ТипыОтчетов.mdo index 61e7661fe..f21f70a52 100644 --- a/SSL/src/Enums/ТипыОтчетов/ТипыОтчетов.mdo +++ b/SSL/src/Enums/ТипыОтчетов/ТипыОтчетов.mdo @@ -57,18 +57,4 @@ <value>Внешний</value> </synonym> </enumValues> - <enumValues uuid="fc1476f7-26e6-4374-b99b-e515d86c050a"> - <name>УдалитьОтчет</name> - <synonym> - <key>ru</key> - <value>(не используется) Отчет</value> - </synonym> - </enumValues> - <enumValues uuid="e0eb7b4a-9a13-4752-9327-e13d2abc4fc5"> - <name>УдалитьПользовательский</name> - <synonym> - <key>ru</key> - <value>(не используется) Пользовательский</value> - </synonym> - </enumValues> </mdclass:Enum> diff --git a/SSL/src/Enums/УдалитьВидыКалендарей/УдалитьВидыКалендарей.mdo b/SSL/src/Enums/УдалитьВидыКалендарей/УдалитьВидыКалендарей.mdo deleted file mode 100644 index 8a152d0e4..000000000 --- a/SSL/src/Enums/УдалитьВидыКалендарей/УдалитьВидыКалендарей.mdo +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<mdclass:Enum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="6528bd7a-bac1-4c8b-9b00-6be01c0121b1"> - <producedTypes> - <refType typeId="8143dbe6-e23b-47a2-a88a-588d34513590" valueTypeId="b54d485e-86c7-45e4-847b-3048569addff"/> - <listType typeId="85bf6dde-b2a4-4355-8608-3ab1b30e7afe" valueTypeId="f3aac290-5606-43b3-851f-6865572dc62d"/> - <managerType typeId="fcc0f1ee-2a46-4bdd-9fb7-8cc521a27a60" valueTypeId="61837136-60ec-4482-a159-64e31d83c401"/> - </producedTypes> - <name>УдалитьВидыКалендарей</name> - <synonym> - <key>ru</key> - <value>(не используется) Виды календарей</value> - </synonym> - <standardAttributes> - <dataHistory>Use</dataHistory> - <name>Order</name> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - </standardAttributes> - <standardAttributes> - <dataHistory>Use</dataHistory> - <name>Ref</name> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - </standardAttributes> - <quickChoice>true</quickChoice> - <choiceMode>BothWays</choiceMode> - <enumValues uuid="d8601e95-af94-4805-974a-99c539725d74"> - <name>Пятидневка</name> - <synonym> - <key>ru</key> - <value>Пятидневка</value> - </synonym> - </enumValues> - <enumValues uuid="6d98f877-f3bb-4795-9025-2631468a331f"> - <name>Шестидневка</name> - <synonym> - <key>ru</key> - <value>Шестидневка</value> - </synonym> - </enumValues> - <enumValues uuid="89b9379d-ace9-48cc-b979-a66fd45aeb1d"> - <name>Произвольный</name> - <synonym> - <key>ru</key> - <value>Произвольный</value> - </synonym> - </enumValues> -</mdclass:Enum> diff --git a/SSL/src/Enums/УдалитьКлючевыеОперации/УдалитьКлючевыеОперации.mdo b/SSL/src/Enums/УдалитьКлючевыеОперации/УдалитьКлючевыеОперации.mdo deleted file mode 100644 index 3ed217882..000000000 --- a/SSL/src/Enums/УдалитьКлючевыеОперации/УдалитьКлючевыеОперации.mdo +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<mdclass:Enum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c4a5c44d-329d-41b5-9a6c-bddbc15f6249"> - <producedTypes> - <refType typeId="2764f2a3-0479-4e06-a265-789b4d2a1811" valueTypeId="6bf18c82-6a68-41f9-9c4e-a4f029ccd3b7"/> - <listType typeId="07b82631-0a2d-4b76-b534-8142ebc83402" valueTypeId="ba7af65f-7319-496d-866a-6b2706905f3e"/> - <managerType typeId="38bc2bdd-747c-4f61-b5bd-0870c1b01fe4" valueTypeId="a0a5c0c2-5db0-4daf-bdf9-3d7561c96f71"/> - </producedTypes> - <name>УдалитьКлючевыеОперации</name> - <synonym> - <key>ru</key> - <value>(не используется) Ключевые операции</value> - </synonym> - <useStandardCommands>true</useStandardCommands> - <standardAttributes> - <dataHistory>Use</dataHistory> - <name>Order</name> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - </standardAttributes> - <standardAttributes> - <dataHistory>Use</dataHistory> - <name>Ref</name> - <fillValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - </standardAttributes> - <choiceMode>BothWays</choiceMode> - <enumValues uuid="9767a113-5a42-4749-bf40-0f349e85615d"> - <name>ОбщаяПроизводительностьСистемы</name> - <synonym> - <key>ru</key> - <value>Общая производительность системы</value> - </synonym> - </enumValues> -</mdclass:Enum> diff --git a/SSL/src/EventSubscriptions/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанных/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанных.mdo b/SSL/src/EventSubscriptions/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанных/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанных.mdo new file mode 100644 index 000000000..6a5f92109 --- /dev/null +++ b/SSL/src/EventSubscriptions/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанных/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанных.mdo @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:EventSubscription xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="4e36184e-d818-4f38-9257-6d91d9cc85ae"> + <name>АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанных</name> + <synonym> + <key>ru</key> + <value>Автономная работа проверить возможность записи общих данных</value> + </synonym> + <source> + <types>BusinessProcessObject</types> + <types>ChartOfCalculationTypesObject</types> + <types>ChartOfAccountsObject</types> + <types>ChartOfCharacteristicTypesObject</types> + <types>CatalogObject</types> + <types>TaskObject</types> + </source> + <event>BeforeWrite</event> + <handler>CommonModule.ОбменДаннымиВМоделиСервиса.АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанных</handler> +</mdclass:EventSubscription> diff --git a/SSL/src/EventSubscriptions/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхДокумент/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхДокумент.mdo b/SSL/src/EventSubscriptions/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхДокумент/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхДокумент.mdo new file mode 100644 index 000000000..d8412794c --- /dev/null +++ b/SSL/src/EventSubscriptions/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхДокумент/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхДокумент.mdo @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:EventSubscription xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="afcba8a1-5d3e-4a76-9be9-5fbda20d55bd"> + <name>АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхДокумент</name> + <synonym> + <key>ru</key> + <value>Автономная работа проверить возможность записи общих данных документ</value> + </synonym> + <source> + <types>DocumentObject</types> + </source> + <event>BeforeWrite</event> + <handler>CommonModule.ОбменДаннымиВМоделиСервиса.АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхДокумент</handler> +</mdclass:EventSubscription> diff --git a/SSL/src/EventSubscriptions/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхКонстанта/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхКонстанта.mdo b/SSL/src/EventSubscriptions/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхКонстанта/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхКонстанта.mdo new file mode 100644 index 000000000..0e48e026c --- /dev/null +++ b/SSL/src/EventSubscriptions/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхКонстанта/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхКонстанта.mdo @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:EventSubscription xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="cbdc8d7e-b685-4c8d-9f47-d8bfb08300d4"> + <name>АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхКонстанта</name> + <synonym> + <key>ru</key> + <value>Автономная работа проверить возможность записи общих данных константа</value> + </synonym> + <source> + <types>ConstantValueManager</types> + </source> + <event>BeforeWrite</event> + <handler>CommonModule.ОбменДаннымиВМоделиСервиса.АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхКонстанта</handler> +</mdclass:EventSubscription> diff --git a/SSL/src/EventSubscriptions/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписей/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписей.mdo b/SSL/src/EventSubscriptions/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписей/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписей.mdo new file mode 100644 index 000000000..774d124cf --- /dev/null +++ b/SSL/src/EventSubscriptions/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписей/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписей.mdo @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:EventSubscription xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="3893a258-a9c7-441a-b80c-1cc8c3f4735c"> + <name>АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписей</name> + <synonym> + <key>ru</key> + <value>Автономная работа проверить возможность записи общих данных набор записей</value> + </synonym> + <source> + <types>InformationRegisterRecordSet</types> + <types>AccountingRegisterRecordSet</types> + <types>AccumulationRegisterRecordSet</types> + </source> + <event>BeforeWrite</event> + <handler>CommonModule.ОбменДаннымиВМоделиСервиса.АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписей</handler> +</mdclass:EventSubscription> diff --git a/SSL/src/EventSubscriptions/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписейРасчета/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписейРасчета.mdo b/SSL/src/EventSubscriptions/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписейРасчета/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписейРасчета.mdo new file mode 100644 index 000000000..355f16d92 --- /dev/null +++ b/SSL/src/EventSubscriptions/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписейРасчета/АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписейРасчета.mdo @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:EventSubscription xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="f9ad1ef3-7475-4d55-a1ef-eadceda9bf6b"> + <name>АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписейРасчета</name> + <synonym> + <key>ru</key> + <value>Автономная работа проверить возможность записи общих данных набор записей расчета</value> + </synonym> + <source> + <types>CalculationRegisterRecordSet</types> + </source> + <event>BeforeWrite</event> + <handler>CommonModule.ОбменДаннымиВМоделиСервиса.АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписейРасчета</handler> +</mdclass:EventSubscription> diff --git a/SSL/src/EventSubscriptions/КонтрольНеразделенныхНаборовЗаписейПриЗаписи/КонтрольНеразделенныхНаборовЗаписейПриЗаписи.mdo b/SSL/src/EventSubscriptions/КонтрольНеразделенныхНаборовЗаписейПриЗаписи/КонтрольНеразделенныхНаборовЗаписейПриЗаписи.mdo index dcebcb37d..aa54d6776 100644 --- a/SSL/src/EventSubscriptions/КонтрольНеразделенныхНаборовЗаписейПриЗаписи/КонтрольНеразделенныхНаборовЗаписейПриЗаписи.mdo +++ b/SSL/src/EventSubscriptions/КонтрольНеразделенныхНаборовЗаписейПриЗаписи/КонтрольНеразделенныхНаборовЗаписейПриЗаписи.mdo @@ -7,14 +7,10 @@ </synonym> <source> <types>InformationRegisterRecordSet.ДанныеПроизводственногоКалендаря</types> - <types>InformationRegisterRecordSet.ПодпискиПолучателей</types> - <types>InformationRegisterRecordSet.УдалитьОбластиДанных</types> <types>InformationRegisterRecordSet.ЗемельныеУчастки</types> - <types>InformationRegisterRecordSet.УдалитьБлокировкиСеансовОбластиДанных</types> <types>InformationRegisterRecordSet.ПравилаДляОбменаДанными</types> <types>InformationRegisterRecordSet.ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов</types> <types>InformationRegisterRecordSet.РазрешенияНаИспользованиеВнешнихРесурсов</types> - <types>InformationRegisterRecordSet.УдалитьСтраныМира</types> <types>InformationRegisterRecordSet.УровниСокращенийАдресныхСведений</types> <types>InformationRegisterRecordSet.ОриентирыАдресныхОбъектов</types> <types>InformationRegisterRecordSet.ВерсииПодсистем</types> @@ -22,31 +18,21 @@ <types>InformationRegisterRecordSet.СообщенияОбменаДанными</types> <types>InformationRegisterRecordSet.АдресныеОбъекты</types> <types>InformationRegisterRecordSet.УдалитьЗамерыВремени3</types> - <types>InformationRegisterRecordSet.УдалитьЗамерыВремениТехнологические</types> <types>InformationRegisterRecordSet.БезопасноеХранилищеДанных</types> + <types>InformationRegisterRecordSet.НеразделенныеПользователи</types> <types>InformationRegisterRecordSet.РежимыПодключенияВнешнихМодулей</types> <types>InformationRegisterRecordSet.СлужебныеАдресныеСведения</types> - <types>InformationRegisterRecordSet.УдалитьЗамерыВремени2</types> - <types>InformationRegisterRecordSet.УдалитьОбластиКРезервномуКопированию</types> - <types>InformationRegisterRecordSet.УдалитьРейтингАктивностиОбластейДанных</types> <types>InformationRegisterRecordSet.ЗависимостиПравДоступа</types> <types>InformationRegisterRecordSet.ПараметрыРаботыПрограммы</types> - <types>InformationRegisterRecordSet.НастройкиОтправителя</types> <types>InformationRegisterRecordSet.ПакетыИнформацииПриЗапуске</types> - <types>InformationRegisterRecordSet.ОбластиТребующиеОбработкиПоставляемыхДанных</types> + <types>InformationRegisterRecordSet.НастройкиТранспортаОбменаОбластейДанных</types> <types>InformationRegisterRecordSet.ДомаЗданияСтроения</types> <types>InformationRegisterRecordSet.ДополнительныеАдресныеСведения</types> - <types>InformationRegisterRecordSet.НастройкиТранспортаОбменаСообщениями</types> <types>InformationRegisterRecordSet.ОбластиПерсональныхДанных</types> <types>InformationRegisterRecordSet.ЗагруженныеВерсииАдресныхСведений</types> - <types>InformationRegisterRecordSet.УдалитьОчередьЗаданий</types> <types>InformationRegisterRecordSet.ИсторияАдресныхОбъектов</types> - <types>InformationRegisterRecordSet.УдалитьЗамерыВремени</types> <types>InformationRegisterRecordSet.ПраваРолей</types> - <types>InformationRegisterRecordSet.УдалитьВерсииПодсистем</types> - <types>InformationRegisterRecordSet.УдалитьОчередьИзвлеченияТекста</types> - <types>InformationRegisterRecordSet.ПоставляемыеДанныеТребующиеОбработки</types> </source> <event>OnWrite</event> - <handler>CommonModule.РаботаВМоделиСервиса.КонтрольНеразделенныхНаборовЗаписейПриЗаписи</handler> + <handler>CommonModule.РаботаВМоделиСервисаБСП.КонтрольНеразделенныхНаборовЗаписейПриЗаписи</handler> </mdclass:EventSubscription> diff --git a/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписи/КонтрольНеразделенныхОбъектовПриЗаписи.mdo b/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписи/КонтрольНеразделенныхОбъектовПриЗаписи.mdo index 6532cf3c5..b6561c647 100644 --- a/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписи/КонтрольНеразделенныхОбъектовПриЗаписи.mdo +++ b/SSL/src/EventSubscriptions/КонтрольНеразделенныхОбъектовПриЗаписи/КонтрольНеразделенныхОбъектовПриЗаписи.mdo @@ -6,78 +6,71 @@ <value>Контроль неразделенных объектов при записи</value> </synonym> <source> - <types>CatalogObject.ШаблоныЗаданийОчереди</types> <types>ConstantValueManager.МаксимальныйРазмерФайла</types> + <types>ConstantValueManager.НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса</types> + <types>ConstantValueManager.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы</types> <types>CatalogObject.КлассификаторБанков</types> <types>ConstantValueManager.ИспользоватьСинхронизациюДанныхВМоделиСервиса</types> <types>ConstantValueManager.НеИспользоватьРазделениеПоОбластямДанных</types> - <types>ConstantValueManager.СообщениеБлокировкиПриОбновленииКонфигурации</types> + <types>ConstantValueManager.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы</types> <types>ConstantValueManager.СписокЗапрещенныхРасширений</types> + <types>ConstantValueManager.ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса</types> <types>ConstantValueManager.КоличествоПотоковОбновленияДоступа</types> <types>ConstantValueManager.ИспользоватьСинхронизациюДанных</types> <types>ConstantValueManager.ПараметрыЦентраМониторинга</types> - <types>ConstantValueManager.УдалитьПарольСлужебногоПользователяМенеджераСервиса</types> - <types>CatalogObject.СообщенияСистемы</types> - <types>ConstantValueManager.РазмерБлокаПередачиФайла</types> <types>ConstantValueManager.КаталогСообщенийОбменаДаннымиДляLinux</types> <types>ConstantValueManager.ИспользоватьПолнотекстовыйПоиск</types> <types>ConstantValueManager.КоличествоПотоковОбновленияИнформационнойБазы</types> <types>ConstantValueManager.КаталогСообщенийОбменаДаннымиДляWindows</types> <types>ConstantValueManager.ИспользоватьСинхронизациюДанныхВЛокальномРежиме</types> - <types>ConstantValueManager.УдалитьКонечнаяТочкаМенеджераСервиса</types> <types>ConstantValueManager.ДетализироватьОбновлениеИБВЖурналеРегистрации</types> <types>ConstantValueManager.ДатаПоследнейВыгрузкиЗамеровПроизводительностиUTC</types> - <types>ConstantValueManager.УдалитьИмяСлужебногоПользователяМенеджераСервиса</types> - <types>ConstantValueManager.УдалитьВнутреннийАдресМенеджераСервиса</types> + <types>CatalogObject.ПоставляемыеДополнительныеОтчетыИОбработки</types> <types>ConstantValueManager.ИзвлекатьТекстыФайловНаСервере</types> <types>ConstantValueManager.ПрофильБезопасностиИнформационнойБазы</types> <types>ConstantValueManager.ПовторитьЗагрузкуСообщенияОбменаДаннымиПередЗапуском</types> <types>ConstantValueManager.УдалитьЛогинДоступаКСервисуMorpher</types> <types>CatalogObject.СценарииОбменовДанными</types> + <types>ConstantValueManager.РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса</types> <types>ConstantValueManager.ИсточникДанныхАдресногоКлассификатора</types> - <types>ConstantValueManager.КаталогОбменаФайламиВМоделиСервиса</types> + <types>ConstantValueManager.ИспользоватьПрофилиБезопасностиДляДОиО</types> <types>ConstantValueManager.ХранитьФайлыВТомахНаДиске</types> - <types>CatalogObject.ОчередьЗаданий</types> <types>ConstantValueManager.СообщениеОбменаДаннымиИзГлавногоУзла</types> - <types>ConstantValueManager.КаталогОбменаФайламиВМоделиСервисаLinux</types> + <types>ConstantValueManager.АдресДляВосстановленияПароляУчетнойЗаписи</types> + <types>ConstantValueManager.ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете</types> <types>ConstantValueManager.ПараметрыРезервногоКопирования</types> <types>ConstantValueManager.ИспользоватьАльтернативныйСерверДляЗагрузкиКурсовВалют</types> <types>ConstantValueManager.ПараметрыАдминистрированияИБ</types> + <types>ConstantValueManager.ИспользоватьАвтономнуюРаботуВМоделиСервиса</types> <types>ConstantValueManager.ИспользуютсяПрофилиБезопасности</types> <types>ConstantValueManager.ЭтоАвтономноеРабочееМесто</types> <types>ConstantValueManager.ИспользоватьДополнительныеОтчетыИОбработки</types> <types>ConstantValueManager.ИспользоватьСервисСклоненияMorpher</types> <types>ChartOfCharacteristicTypesObject.РазделыДатЗапретаИзменения</types> <types>ConstantValueManager.ВерсияКлассификатораБанков</types> - <types>ConstantValueManager.ПоддержкаРезервногоКопирования</types> <types>ConstantValueManager.ГлавныйУзел</types> <types>ConstantValueManager.ОценкаПроизводительностиПериодЗаписи</types> <types>ConstantValueManager.СписокРасширенийФайловOpenDocument</types> + <types>ConstantValueManager.МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса</types> <types>ConstantValueManager.ИспользоватьРазделениеПоОбластямДанных</types> + <types>ConstantValueManager.ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой</types> <types>ConstantValueManager.НастройкаПодчиненногоУзлаРИБЗавершена</types> - <types>ConstantValueManager.КопироватьОбластиДанныхИзЭталонной</types> - <types>ConstantValueManager.ИспользоватьАльтернативныйСерверДляЗагрузкиКлассификатораБанков</types> - <types>CatalogObject.ПоставляемыеДанные</types> <types>CatalogObject.ПредопределенныеВариантыОтчетов</types> - <types>ChartOfCharacteristicTypesObject.УдалитьВидыДоступа</types> <types>CatalogObject.ПроизводственныеКалендари</types> <types>ConstantValueManager.СписокРасширенийТекстовыхФайлов</types> + <types>ConstantValueManager.ПриоритетОбновленияВОбластяхДанных</types> <types>CatalogObject.ТомаХраненияФайлов</types> <types>CatalogObject.ОбщиеВнешниеКомпоненты</types> <types>CatalogObject.ИдентификаторыОбъектовМетаданных</types> - <types>ConstantValueManager.РежимИспользованияИнформационнойБазы</types> <types>ConstantValueManager.КоличествоЭлементовВТранзакцииЗагрузкиДанных</types> <types>ConstantValueManager.ВыполнятьЗамерыПроизводительности</types> <types>ConstantValueManager.ЗагрузитьСообщениеОбменаДанными</types> <types>ConstantValueManager.АвтоматическиНастраиватьРазрешенияВПрофиляхБезопасности</types> - <types>ExchangePlanObject.ОбменСообщениями</types> - <types>ConstantValueManager.МаксимальноеКоличествоИсполняющихФоновыхЗаданий</types> <types>ConstantValueManager.ПериодХраненияЗамеров</types> <types>ConstantValueManager.НастройкаПроксиСервера</types> - <types>ConstantValueManager.МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания</types> <types>ConstantValueManager.КоличествоЗамеровВПакетеЭкспорта</types> <types>ConstantValueManager.ИспользоватьНесколькоПроизводственныхКалендарей</types> </source> <event>OnWrite</event> - <handler>CommonModule.РаботаВМоделиСервиса.КонтрольНеразделенныхОбъектовПриЗаписи</handler> + <handler>CommonModule.РаботаВМоделиСервисаБСП.КонтрольНеразделенныхОбъектовПриЗаписи</handler> </mdclass:EventSubscription> diff --git a/SSL/src/EventSubscriptions/ОбработкаПолученияФормыПользователяДляНеразделенныхПользователей/ОбработкаПолученияФормыПользователяДляНеразделенныхПользователей.mdo b/SSL/src/EventSubscriptions/ОбработкаПолученияФормыПользователяДляНеразделенныхПользователей/ОбработкаПолученияФормыПользователяДляНеразделенныхПользователей.mdo new file mode 100644 index 000000000..09c985218 --- /dev/null +++ b/SSL/src/EventSubscriptions/ОбработкаПолученияФормыПользователяДляНеразделенныхПользователей/ОбработкаПолученияФормыПользователяДляНеразделенныхПользователей.mdo @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:EventSubscription xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="efb50581-cc7e-47ac-bfa2-86da2860bf1d"> + <name>ОбработкаПолученияФормыПользователяДляНеразделенныхПользователей</name> + <synonym> + <key>ru</key> + <value>Обработка получения формы пользователя для неразделенных пользователей</value> + </synonym> + <source> + <types>CatalogManager.Пользователи</types> + </source> + <event>FormGetProcessing</event> + <handler>CommonModule.ПользователиСлужебныйВМоделиСервисаКлиентСервер.ОбработкаПолученияФормыПользователя</handler> +</mdclass:EventSubscription> diff --git a/SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss deleted file mode 100644 index 61e6fb4bb..000000000 --- a/SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"> - <filter> - <viewMode>Normal</viewMode> - <userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID> - </filter> - <order> - <viewMode>Normal</viewMode> - <userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID> - </order> - <conditionalAppearance> - <viewMode>Normal</viewMode> - <userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID> - </conditionalAppearance> - <itemsViewMode>Normal</itemsViewMode> - <itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</itemsUserSettingID> -</Settings> diff --git a/SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаСписка/Module.bsl b/SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаСписка/Module.bsl deleted file mode 100644 index e63acc96b..000000000 --- a/SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаСписка/Module.bsl +++ /dev/null @@ -1,69 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 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/ExchangePlans/ОбменСообщениями/Forms/ФормаУзла/Form.form b/SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаУзла/Form.form deleted file mode 100644 index 945067786..000000000 --- a/SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаУзла/Form.form +++ /dev/null @@ -1,536 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form"> - <items xsi:type="form:FormField"> - <name>Наименование</name> - <id>3</id> - <visible>true</visible> - <enabled>true</enabled> - <userVisible> - <common>true</common> - </userVisible> - <dataPath xsi:type="form:DataPath"> - <segments>Объект.Description</segments> - </dataPath> - <extendedTooltip> - <name>НаименованиеExtendedTooltip</name> - <id>13</id> - <type>Label</type> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - <extInfo xsi:type="form:LabelDecorationExtInfo"> - <horizontalAlign>Left</horizontalAlign> - </extInfo> - </extendedTooltip> - <contextMenu> - <name>НаименованиеКонтекстноеМеню</name> - <id>4</id> - <autoFill>true</autoFill> - </contextMenu> - <type>InputField</type> - <editMode>Auto</editMode> - <showInHeader>true</showInHeader> - <headerHorizontalAlign>Left</headerHorizontalAlign> - <showInFooter>true</showInFooter> - <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:FormGroup"> - <name>ГруппаИнформационныхСообщений</name> - <id>10</id> - <items xsi:type="form:Decoration"> - <name>ИнформационноеСообщение</name> - <id>7</id> - <title> - <key>ru</key> - <value>Эта конечная точка является ведомой, т.е. выполняет отправку и получение сообщений обмена только по требованию текущей информационной системы.</value> - - true - true - - true - - - ИнформационноеСообщениеExtendedTooltip - 15 - Label - true - true - - Left - - - - ИнформационноеСообщениеКонтекстноеМеню - 8 - true - - Label - true - - Style.ПоясняющийТекст - - - Left - 2 - - - - СделатьЭтуКонечнуюТочкуВедомой - 9 - true - true - - true - - - СделатьЭтуКонечнуюТочкуВедомойExtendedTooltip - 16 - Label - true - true - - Left - - - UsualButton - Form.Command.СделатьЭтуКонечнуюТочкуВедомой - Normal - Auto - true - true - UserCmds - Auto - - true - true - - true - - - <key>ru</key> - <value>Информационных сообщений</value> - - - ГруппаИнформационныхСообщенийExtendedTooltip - 14 - Label - true - true - - Left - - - UsualGroup - - Vertical - Auto - NormalSeparation - true - true - Auto - Auto - - - - ГруппаСлужебные - 17 - - ГруппаСлужебныеВерх - 36 - - Ведущая - 28 - true - true - - true - - - Объект.Ведущая - - Right - - ВедущаяРасширеннаяПодсказка - 30 - Label - true - true - - Left - - - - ВедущаяКонтекстноеМеню - 29 - true - - CheckBoxField - Enter - true - Left - true - - - - Заблокирована - 31 - true - true - - true - - - Объект.Заблокирована - - Right - - ЗаблокированаРасширеннаяПодсказка - 33 - Label - true - true - - Left - - - - ЗаблокированаКонтекстноеМеню - 32 - true - - CheckBoxField - Enter - true - Left - true - - - - Код - 19 - true - true - - true - - - Объект.Code - - - КодРасширеннаяПодсказка - 21 - Label - true - true - - Left - - - - КодКонтекстноеМеню - 20 - true - - InputField - Enter - true - Left - true - - 20 - true - true - false - true - true - true - true - Normal - - - true - true - - true - - - <key>ru</key> - <value>Служебные верх</value> - - - ГруппаСлужебныеВерхРасширеннаяПодсказка - 37 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - - - ГруппаСлужебныеНиз - 34 - - НомерОтправленного - 22 - true - true - - true - - - Объект.SentNo - - - НомерОтправленногоРасширеннаяПодсказка - 24 - Label - true - true - - Left - - - - НомерОтправленногоКонтекстноеМеню - 23 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - НомерПринятого - 25 - true - true - - true - - - Объект.ReceivedNo - - - НомерПринятогоРасширеннаяПодсказка - 27 - Label - true - true - - Left - - - - НомерПринятогоКонтекстноеМеню - 26 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - true - true - - true - - - <key>ru</key> - <value>Служебные низ</value> - - Ctrl+S - - ГруппаСлужебныеНизРасширеннаяПодсказка - 35 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - true - true - Auto - Auto - - - true - true - - - <key>ru</key> - <value>Служебные параметры</value> - - - ГруппаСлужебныеРасширеннаяПодсказка - 18 - Label - true - true - - Left - - - UsualGroup - - Vertical - Auto - WeakSeparation - true - true - auto - Auto - Auto - - - - ФормаКоманднаяПанель - -1 - - ФормаОбщаяКомандаНастроитьПараметрыТранспортаСообщенийОбмена - 11 - true - true - - true - - - Объект.Ref - - - ФормаОбщаяКомандаНастроитьПараметрыТранспортаСообщенийОбменаExtendedTooltip - 12 - Label - true - true - - Left - - - CommonCommand.НастройкиПодключения - Normal - PictureAndText - true - true - UserCmds - - CommonPicture.СинхронизацияДанныхНастройка - - Auto - - Left - true - - - NotificationProcessing - ОбработкаОповещения - - - OnCreateAtServer - ПриСозданииНаСервере - - - OnClose - ПриЗакрытии - - Copy - Delete - SetDeletionMark - LockOwner - true - true - true - Vertical - true - true - true - auto - true - - Объект - 1 - - ExchangePlanObject.ОбменСообщениями - - - true - - - true - -
            true
            - true -
            - - СделатьЭтуКонечнуюТочкуВедомой - - <key>ru</key> - <value>Сделать эту конечную точку ведомой...</value> - - 1 - - ru - Сделать эту конечную точку ведомой по отношению к текущей информационной системе. - - - true - - - - СделатьЭтуКонечнуюТочкуВедомой - - - DontUse - Auto - - - - - - - diff --git a/SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаУзла/Module.bsl b/SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаУзла/Module.bsl deleted file mode 100644 index 2477e395a..000000000 --- a/SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаУзла/Module.bsl +++ /dev/null @@ -1,75 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - ЭтоЭтотУзел = (Объект.Ссылка = ОбменСообщениямиВнутренний.ЭтотУзел()); - - Элементы.ГруппаИнформационныхСообщений.Видимость = Не ЭтоЭтотУзел; - - Если Не ЭтоЭтотУзел Тогда - - Если Объект.Заблокирована Тогда - Элементы.ИнформационноеСообщение.Заголовок - = НСтр("ru = 'Эта конечная точка заблокирована.'"); - ИначеЕсли Объект.Ведущая Тогда - Элементы.ИнформационноеСообщение.Заголовок - = НСтр("ru = 'Эта конечная точка является ведущей, т.е. инициирует отправку и получение сообщений обмена для текущей информационной системы.'"); - Иначе - Элементы.ИнформационноеСообщение.Заголовок - = НСтр("ru = 'Эта конечная точка является ведомой, т.е. выполняет отправку и получение сообщений обмена только по требованию текущей информационной системы.'"); - КонецЕсли; - - Элементы.СделатьЭтуКонечнуюТочкуВедомой.Видимость = Объект.Ведущая И Не Объект.Заблокирована; - - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура ПриЗакрытии(ЗавершениеРаботы) - - Если ЗавершениеРаботы Тогда - Возврат; - КонецЕсли; - Оповестить(ОбменСообщениямиКлиент.ИмяСобытияЗакрытаФормаКонечнойТочки()); - -КонецПроцедуры - -&НаКлиенте -Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) - - Если ИмяСобытия = ОбменСообщениямиКлиент.ИмяСобытияУстановленаВедущаяКонечнаяТочка() Тогда - - Закрыть(); - - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиКомандФормы - -&НаКлиенте -Процедура СделатьЭтуКонечнуюТочкуВедомой(Команда) - - ПараметрыФормы = Новый Структура("КонечнаяТочка", Объект.Ссылка); - - ОткрытьФорму("ОбщаяФорма.УстановкаВедущейКонечнойТочки", ПараметрыФормы, ЭтотОбъект, Объект.Ссылка); - -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/ExchangePlans/ОбменСообщениями/ManagerModule.bsl b/SSL/src/ExchangePlans/ОбменСообщениями/ManagerModule.bsl deleted file mode 100644 index 2f1add58b..000000000 --- a/SSL/src/ExchangePlans/ОбменСообщениями/ManagerModule.bsl +++ /dev/null @@ -1,73 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда - -#Область ПрограммныйИнтерфейс - -#Область ДляВызоваИзДругихПодсистем - -// СтандартныеПодсистемы.ОбменДанными - -// Заполняет настройки, влияющие на использование плана обмена. -// -// Параметры: -// Настройки - Структура - настройки плана обмена по умолчанию, см. ОбменДаннымиСервер.НастройкиПланаОбменаПоУмолчанию, -// описание возвращаемого значения функции. -// -Процедура ПриПолученииНастроек(Настройки) Экспорт - - Настройки.Алгоритмы.ПриПолученииОписанияВариантаНастройки = Истина; - -КонецПроцедуры - -// Заполняет набор параметров, определяющих вариант настройки обмена. -// -// Параметры: -// ОписаниеВарианта - Структура - набор варианта настройки по умолчанию, -// см. ОбменДаннымиСервер.ОписаниеВариантаНастройкиОбменаПоУмолчанию, -// описание возвращаемого значения. -// ИдентификаторНастройки - Строка - идентификатор варианта настройки обмена. -// ПараметрыКонтекста - Структура - см. ОбменДаннымиСервер.ПараметрыКонтекстаПолученияОписанияВариантаНастройки, -// описание возвращаемого значения функции. -// -Процедура ПриПолученииОписанияВариантаНастройки(ОписаниеВарианта, ИдентификаторНастройки, ПараметрыКонтекста) Экспорт - - ОписаниеВарианта.ИспользоватьПомощникСозданияОбменаДанными = Ложь; - - ИспользуемыеТранспортыСообщенийОбмена = Новый Массив; - ИспользуемыеТранспортыСообщенийОбмена.Добавить(Перечисления.ВидыТранспортаСообщенийОбмена.WS); - - ОписаниеВарианта.ИспользуемыеТранспортыСообщенийОбмена = ИспользуемыеТранспортыСообщенийОбмена; - -КонецПроцедуры - -// Конец СтандартныеПодсистемы.ОбменДанными - -// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов - -// Возвращает реквизиты объекта, которые не рекомендуется редактировать -// с помощью обработки группового изменения реквизитов. -// -// Возвращаемое значение: -// Массив - список имен реквизитов объекта. -Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт - - Результат = Новый Массив; - Результат.Добавить("*"); - Возврат Результат; - -КонецФункции - -// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов - -#КонецОбласти - -#КонецОбласти - -#КонецЕсли \ No newline at end of file diff --git a/SSL/src/ExchangePlans/ОбменСообщениями/ObjectModule.bsl b/SSL/src/ExchangePlans/ОбменСообщениями/ObjectModule.bsl deleted file mode 100644 index efb9c724d..000000000 --- a/SSL/src/ExchangePlans/ОбменСообщениями/ObjectModule.bsl +++ /dev/null @@ -1,85 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда - -#Область ОбработчикиСобытий - -Процедура ПередЗаписью(Отказ) - - Если ОбменДанными.Загрузка Тогда - Возврат; - КонецЕсли; - - Если Не ЭтоНовый() Тогда - - Если ПометкаУдаления <> ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "ПометкаУдаления") Тогда - - УстановитьПривилегированныйРежим(Истина); - - УстановитьПометкуУдаленияСвязаннымОбъектам(Ссылка, ПометкаУдаления); - - КонецЕсли; - - КонецЕсли; - -КонецПроцедуры - -Процедура ПередУдалением(Отказ) - - // Проверка значения свойства ОбменДанными.Загрузка отсутствует по причине того, что в расположенным ниже коде, - // реализована логика, которая должна выполняться в том числе при установке этого свойства равным Истина - // (на стороне кода, который выполняет попытку записи в данный план обмена). - - УстановитьПривилегированныйРежим(Истина); - ОбщегоНазначения.УдалитьДанныеИзБезопасногоХранилища(Ссылка); - УстановитьПривилегированныйРежим(Ложь); -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -// Устанавливает или снимает пометку удаления всем связанным объектам. -// -// Параметры: -// Владелец - ПланОбменаСсылка, СправочникСсылка, ДокументСсылка - ссылка на объект, который является -// "владельцем" по отношению к помечаемым на удаление объектам. -// -// ПометкаУдаления - Булево - признак установки/снятия пометки на удаление у всех "подчиненных" объектов. -// -Процедура УстановитьПометкуУдаленияСвязаннымОбъектам(Знач Владелец, Знач ПометкаУдаления) - - НачатьТранзакцию(); - Попытка - - СписокСсылок = Новый Массив; - СписокСсылок.Добавить(Владелец); - Ссылки = НайтиПоСсылкам(СписокСсылок); - - Для Каждого ТекущаяСсылка Из Ссылки Цикл - - Если ОбщегоНазначения.ЗначениеСсылочногоТипа(ТекущаяСсылка[1]) Тогда - ТекущаяСсылка[1].ПолучитьОбъект().УстановитьПометкуУдаления(ПометкаУдаления); - КонецЕсли; - - КонецЦикла; - - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -#КонецОбласти - -#Иначе -ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); -#КонецЕсли \ No newline at end of file diff --git a/SSL/src/ExchangePlans/ОбменСообщениями/ОбменСообщениями.mdo b/SSL/src/ExchangePlans/ОбменСообщениями/ОбменСообщениями.mdo deleted file mode 100644 index 472e39bdb..000000000 --- a/SSL/src/ExchangePlans/ОбменСообщениями/ОбменСообщениями.mdo +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - ОбменСообщениями - - ru - Обмен сообщениями - - ExchangePlan.ОбменСообщениями.StandardAttribute.Description - ExchangePlan.ОбменСообщениями.StandardAttribute.Code - DontUse - - Use - ThisNode - - Use - - - - - Use - ReceivedNo - - Use - - - - - Use - SentNo - - Use - - - - - Use - Ref - - Use - - - - - Use - DeletionMark - - Use - - - - - Use - Description - - ru - Имя конечной точки - - - ShowError - Use - - - - - Use - Code - - ru - Код конечной точки - - - ShowError - Use - - - - DontUse - Managed - Use - - ru - Конечная точка - - - ru - Конечные точки - - 36 - Variable - 150 - - Catalog.СообщенияОбластейДанных - - - InformationRegister.ПодпискиПолучателей - - - Catalog.СообщенияСистемы - - AsDescription - InDialog - BothWays - ExchangePlan.ОбменСообщениями.Form.ФормаУзла - ExchangePlan.ОбменСообщениями.Form.ФормаСписка - ExchangePlan.ОбменСообщениями.Form.ФормаВыбора - - Ведущая - - ru - Ведущая - - Признак того, что конечная точка является инициатором отправки и получения сообщений, а также инициатором обработки очереди сообщений. - - Boolean - - - ru - Признак того, что конечная точка является инициатором отправки и получения сообщений, а также инициатором обработки очереди сообщений в этой и других (ведомых) конечных точках. - - - - - Index - Use - - - Заблокирована - - ru - Заблокирована - - - Boolean - - - ru - Признак блокировки конечной точки - - - - - Index - Use - - - ФормаУзла - - ru - Форма узла - - PersonalComputer - MobileDevice - - - ФормаСписка - - ru - Форма списка - - PersonalComputer - MobileDevice - - - ФормаВыбора - - ru - Форма выбора - - PersonalComputer - MobileDevice - - diff --git a/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo b/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo index 8357a8db0..26854e936 100644 --- a/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo +++ b/SSL/src/ExchangePlans/ОбновлениеИнформационнойБазы/ОбновлениеИнформационнойБазы.mdo @@ -89,24 +89,12 @@ 9 Variable 25 - - InformationRegister.УдалитьНаборыЗначенийДоступа - - - Constant.МаксимальнаяДлительностьВыполненияИсполняющегоФоновогоЗадания - InformationRegister.СостоянияРассылокОтчетов - - Constant.УдалитьАлгоритмШифрования - Catalog.ЭлектронноеПисьмоВходящееПрисоединенныеФайлы - - InformationRegister.ПоставляемыеДанныеТребующиеОбработки - Catalog.ШаблоныАнкет @@ -131,9 +119,6 @@ Constant.ПараметрыИтоговИАгрегатов - - Constant.КопироватьОбластиДанныхИзЭталонной - InformationRegister.СообщенияОбменаДанными @@ -221,9 +206,6 @@ Constant.АдресПубликацииИнформационнойБазыВИнтернете - - Catalog.СообщенияОбластейДанных - Catalog.КлючиДоступа @@ -239,9 +221,6 @@ InformationRegister.ДомаЗданияСтроения - - InformationRegister.ПодпискиПолучателей - Constant.ЗапретитьОтображениеНебезопасногоСодержимогоВПисьмах @@ -284,9 +263,6 @@ Constant.ВыполнятьЗамерыПроизводительности - - Constant.ИспользоватьАльтернативныйСерверДляЗагрузкиКлассификатораБанков - Constant.ПрофильБезопасностиИнформационнойБазы @@ -311,17 +287,11 @@ Constant.СписокРасширенийФайловOpenDocumentОбластиДанных - - InformationRegister.УдалитьЗамерыВремениТехнологические - - - Constant.УдалитьЛогинДляОтправкиSMS - Constant.ИспользоватьСинхронизациюДанныхВМоделиСервиса - InformationRegister.РейтингАктивностиОбластейДанных + InformationRegister.ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных InformationRegister.РазрешенияНаИспользованиеВнешнихРесурсов @@ -332,21 +302,15 @@ InformationRegister.УдалитьОбластиПерсональныхДанных - - Constant.РежимИспользованияИнформационнойБазы - Catalog.КлючевыеОперации - - Constant.СообщениеБлокировкиПриОбновленииКонфигурации - - - InformationRegister.ОбластиТребующиеОбработкиПоставляемыхДанных - Catalog.ВидыПроверок + + Constant.НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса + Catalog.ВариантыОтветовАнкет @@ -354,7 +318,7 @@ Catalog.Заметки - Constant.УдалитьТипПровайдераЭП + Constant.АдресДляВосстановленияПароляУчетнойЗаписи Task.ЗадачаИсполнителя @@ -377,15 +341,9 @@ Catalog.СценарииОбменовДанными - - Constant.КлючОбластиДанных - Constant.ИспользоватьСкрытиеПерсональныхДанныхСубъектов - - Constant.ДатаПоследнегоСтартаКлиентскогоСеанса - Catalog.ИдентификаторыОбъектовМетаданных @@ -404,9 +362,6 @@ InformationRegister.ИсполнителиЗадач - - Constant.КаталогОбменаФайламиВМоделиСервиса - Document.ТелефонныйЗвонок @@ -422,6 +377,9 @@ Constant.СписокЗапрещенныхРасширенийОбластиДанных + + InformationRegister.НастройкиТранспортаОбменаОбластейДанных + Constant.ОтправлятьПисьмаВФорматеHTML @@ -437,9 +395,6 @@ InformationRegister.ОбластиПерсональныхДанных - - InformationRegister.НастройкиТранспортаОбменаСообщениями - InformationRegister.СтатусыСинхронизацииФайловСОблачнымСервисом @@ -462,10 +417,7 @@ InformationRegister.ПричиныИзмененияАдресныхСведений - InformationRegister.УдалитьБлокировкиСеансовОбластиДанных - - - Constant.УдалитьПарольСлужебногоПользователяМенеджераСервиса + InformationRegister.СессииОбменаСообщениямиСистемы Constant.СписокРасширенийТекстовыхФайлов @@ -482,9 +434,6 @@ Document.ЗапланированноеВзаимодействие - - Catalog.ШаблоныЗаданийОчереди - Constant.СписокРасширенийФайловOpenDocument @@ -510,10 +459,7 @@ Constant.ПровайдерSMS - Constant.ПоддержкаРезервногоКопирования - - - InformationRegister.НастройкиОтправителя + Constant.ПользовательСтандартногоИнтерфейсаOData InformationRegister.ВерсииПодсистем @@ -525,20 +471,14 @@ InformationRegister.СостоянияОбменовДанными - InformationRegister.УдалитьНастройкиВерсионированияОбъектов + Constant.ИспользоватьАвтономнуюРаботуВМоделиСервиса InformationRegister.ПредметыПапкиВзаимодействий - - InformationRegister.ОбластиДанных - InformationRegister.ЗначенияГруппДоступаПоУмолчанию - - InformationRegister.УдалитьВерсииПодсистем - Constant.ОтложенноеОбновлениеЗавершеноУспешно @@ -546,7 +486,7 @@ Constant.ИзвлекатьТекстыФайловНаСервере - Constant.УдалитьАлгоритмПодписи + Constant.ИспользоватьПрофилиБезопасностиДляДОиО Constant.КоличествоЗамеровВПакетеЭкспорта @@ -558,10 +498,10 @@ InformationRegister.КлючиДоступаВнешнихПользователей - Document.СообщениеSMS + Constant.РазрешитьВыполнениеДОИОРегламентнымиЗаданиямиВМоделиСервиса - Constant.КаталогОбменаФайламиВМоделиСервисаLinux + Document.СообщениеSMS InformationRegister.ОчередьИзвлеченияТекста @@ -584,18 +524,15 @@ InformationRegister.ПакетыИнформацииПриЗапуске - - InformationRegister.УдалитьОбластиКРезервномуКопированию - - - Catalog.ОчередьЗаданий - InformationRegister.ЗамерыОбластиСтатистики Constant.ПараметрыБлокировкиРаботыСВнешнимиРесурсами + + Constant.ПриоритетОбновленияВОбластяхДанных + Document.Анкета @@ -615,7 +552,7 @@ Catalog.СтроковыеКонтактыВзаимодействий - InformationRegister.Удалить_АктивныеПредметыВзаимодействий + Catalog.ПоставляемыеДополнительныеОтчетыИОбработки Catalog.ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы @@ -653,9 +590,6 @@ Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования - - Constant.МаксимальноеКоличествоИсполняющихФоновыхЗаданий - InformationRegister.НастройкиТранспортаОбменаДанными @@ -674,9 +608,6 @@ Constant.КоличествоПотоковОбновленияДоступа - - InformationRegister.УдалитьОчередьИзвлеченияТекста - InformationRegister.СоставыГруппПользователей @@ -699,10 +630,10 @@ InformationRegister.ОбновлениеКлючейДоступаПользователей - Constant.ПрефиксОбластиДанных + Catalog.РассылкиОтчетов - Catalog.РассылкиОтчетов + InformationRegister.НеразделенныеПользователи InformationRegister.УведомленияОПрочтении @@ -716,6 +647,12 @@ Document.ЭлектронноеПисьмоИсходящее + + Constant.МинимальныйИнтервалРегламентныхЗаданийДОИОВМоделиСервиса + + + Constant.ИспользованиеКаталогаДополнительныхОтчетовИОбработокВМоделиСервиса + InformationRegister.УдалитьЗамерыВремени3 @@ -728,9 +665,6 @@ Catalog.ВнешниеПользователи - - Constant.ЧасовойПоясОбластиДанных - Catalog.ПапкиФайлов @@ -773,9 +707,6 @@ Constant.КаталогСообщенийОбменаДаннымиДляLinux - - Constant.УдалитьКонечнаяТочкаМенеджераСервиса - Constant.СведенияОБлокируемыхОбъектах @@ -785,15 +716,15 @@ Constant.ИспользоватьЭлектроннуюПочтуВШаблонахСообщений + + Constant.ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете + Constant.ОценкаПроизводительностиПериодЗаписи Constant.ГлавныйУзел - - Constant.УдалитьАлгоритмХеширования - Constant.ЗаголовокСистемы @@ -803,6 +734,9 @@ Constant.ИспользоватьБизнесПроцессыИЗадачи + + InformationRegister.СостоянияОбменовДаннымиОбластейДанных + Catalog.ГруппыПользователей @@ -810,10 +744,10 @@ Constant.ИспользуютсяПрофилиБезопасности - Constant.БлокировкаОтправкиБыстрыхСообщений + Constant.ОграничиватьДоступНаУровнеЗаписейУниверсально - Constant.ОграничиватьДоступНаУровнеЗаписейУниверсально + Constant.ЗарегистрированыИзмененияДанных InformationRegister.НастройкиОчисткиФайлов @@ -851,9 +785,6 @@ Constant.ИспользоватьОнлайнПоддержку - - Constant.УдалитьИмяСлужебногоПользователяМенеджераСервиса - InformationRegister.УдалитьНастройкиТранспортаОбмена @@ -863,9 +794,15 @@ Constant.ИспользоватьГруппыПользователей + + Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы + InformationRegister.ПсевдонимыПредопределенныхУзлов + + InformationRegister.СостоянияУспешныхОбменовДаннымиОбластейДанных + Constant.ИспользоватьНесколькоПроизводственныхКалендарей @@ -887,12 +824,6 @@ Catalog.ЗначенияСвойствОбъектов - - Constant.УдалитьПровайдерЭП - - - Constant.УдалитьВнутреннийАдресМенеджераСервиса - InformationRegister.ДатыПоследнейЗагрузкиПочтовыхСообщений @@ -912,7 +843,7 @@ Constant.СписокЗапрещенныхРасширений - InformationRegister.УдалитьЗамерыВремени + InformationRegister.СообщенияОбменаДаннымиОбластейДанных InformationRegister.НастройкиВариантовОтчетов @@ -927,7 +858,7 @@ InformationRegister.УдалитьРезультатыОбменаДанными - InformationRegister.УдалитьЗамерыВремени2 + InformationRegister.ИспользованиеДополнительныхОтчетовИОбработокСервисаВАвтономномРабочемМесте InformationRegister.ЗаблокированныеДляПолученияУчетныеЗаписи @@ -936,7 +867,7 @@ InformationRegister.ПараметрыРаботыВерсийРасширений - Constant.РазмерБлокаПередачиФайла + InformationRegister.НастройкиТранспортаОбменаОбластиДанных Constant.ИспользоватьНапоминанияПользователя @@ -950,6 +881,9 @@ Constant.ИспользоватьЗаметки + + InformationRegister.ОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных + Document.СогласиеНаОбработкуПерсональныхДанных @@ -986,21 +920,12 @@ Catalog.ГруппыДоступа - - ChartOfCharacteristicTypes.УдалитьВидыДоступа - Constant.КоличествоПотоковОбновленияИнформационнойБазы - - InformationRegister.УдалитьОбластиДанных - InformationRegister.СостоянияУспешныхОбменовДанными - - InformationRegister.УдалитьГруппыЗначенийДоступа - Constant.ОтложенноеОбновлениеВГлавномУзлеЗавершеноУспешно @@ -1010,9 +935,6 @@ Catalog.ВстречаПрисоединенныеФайлы - - InformationRegister.УдалитьРейтингАктивностиОбластейДанных - InformationRegister.КлючиДоступаКРегистрам @@ -1049,20 +971,14 @@ BusinessProcess.Задание - - InformationRegister.УдалитьПраваПоЗначениямДоступа - - - Constant.УдалитьПарольДляОтправкиSMS - InformationRegister.ИдентификаторыОбъектовВерсийРасширений - Constant.КоличествоЭлементовВТранзакцииЗагрузкиДанных + Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы - InformationRegister.УдалитьСтраныМира + Constant.КоличествоЭлементовВТранзакцииЗагрузкиДанных InformationRegister.КлючиДоступаПользователей @@ -1089,10 +1005,10 @@ Catalog.Файлы - Constant.ИсточникДанныхАдресногоКлассификатора + Constant.ПрефиксПоследнегоАвтономногоРабочегоМеста - Constant.ПредставлениеОбластиДанных + Constant.ИсточникДанныхАдресногоКлассификатора InformationRegister.ЗамерыСтатистики @@ -1103,9 +1019,6 @@ InformationRegister.ОриентирыАдресныхОбъектов - - Constant.ВыполнитьРезервноеКопированиеОбластиДанных - Constant.СинхронизироватьФайлы @@ -1118,9 +1031,6 @@ InformationRegister.ДвоичныеДанныеФайлов - - Catalog.ОчередьЗаданийОбластейДанных - Constant.ПовторитьЗагрузкуСообщенияОбменаДаннымиПередЗапуском @@ -1160,12 +1070,6 @@ InformationRegister.РежимыПодключенияВнешнихМодулей - - Catalog.СообщенияСистемы - - - Catalog.ПоставляемыеДанные - InformationRegister.БезопасноеХранилищеДанных @@ -1176,10 +1080,10 @@ InformationRegister.СостоянияПредметовВзаимодействий - InformationRegister.УдалитьОчередьЗаданий + InformationRegister.РезультатыПроверкиУчета - InformationRegister.РезультатыПроверкиУчета + Constant.ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой InformationRegister.СведенияОПользователях diff --git a/SSL/src/FunctionalOptions/ЗарегистрированыИзмененияДанных/ЗарегистрированыИзмененияДанных.mdo b/SSL/src/FunctionalOptions/ЗарегистрированыИзмененияДанных/ЗарегистрированыИзмененияДанных.mdo new file mode 100644 index 000000000..05d4c7b47 --- /dev/null +++ b/SSL/src/FunctionalOptions/ЗарегистрированыИзмененияДанных/ЗарегистрированыИзмененияДанных.mdo @@ -0,0 +1,10 @@ + + + ЗарегистрированыИзмененияДанных + + ru + Зарегистрированы изменения данных + + Constant.ЗарегистрированыИзмененияДанных + true + diff --git a/SSL/src/FunctionalOptions/ИспользоватьАвтономнуюРаботуВЛокальномРежиме/ИспользоватьАвтономнуюРаботуВЛокальномРежиме.mdo b/SSL/src/FunctionalOptions/ИспользоватьАвтономнуюРаботуВЛокальномРежиме/ИспользоватьАвтономнуюРаботуВЛокальномРежиме.mdo new file mode 100644 index 000000000..4a015076e --- /dev/null +++ b/SSL/src/FunctionalOptions/ИспользоватьАвтономнуюРаботуВЛокальномРежиме/ИспользоватьАвтономнуюРаботуВЛокальномРежиме.mdo @@ -0,0 +1,12 @@ + + + ИспользоватьАвтономнуюРаботуВЛокальномРежиме + + ru + Использовать автономную работу в локальном режиме + + Constant.ЭтоАвтономноеРабочееМесто + true + CommonCommand.АвтономнаяРабота + CommonForm.АвтономнаяРабота + diff --git a/SSL/src/FunctionalOptions/ИспользоватьАвтономнуюРаботуВМоделиСервиса/ИспользоватьАвтономнуюРаботуВМоделиСервиса.mdo b/SSL/src/FunctionalOptions/ИспользоватьАвтономнуюРаботуВМоделиСервиса/ИспользоватьАвтономнуюРаботуВМоделиСервиса.mdo new file mode 100644 index 000000000..277e50095 --- /dev/null +++ b/SSL/src/FunctionalOptions/ИспользоватьАвтономнуюРаботуВМоделиСервиса/ИспользоватьАвтономнуюРаботуВМоделиСервиса.mdo @@ -0,0 +1,12 @@ + + + ИспользоватьАвтономнуюРаботуВМоделиСервиса + + ru + Использовать автономную работу в модели сервиса + + Constant.ИспользоватьАвтономнуюРаботуВМоделиСервиса + true + CommonCommand.АвтономнаяРаботаВМоделиСервиса + CommonForm.АвтономнаяРаботаВМоделиСервиса + diff --git a/SSL/src/FunctionalOptions/ИспользоватьПочтовыйКлиент/ИспользоватьПочтовыйКлиент.mdo b/SSL/src/FunctionalOptions/ИспользоватьПочтовыйКлиент/ИспользоватьПочтовыйКлиент.mdo index 55f7a2f10..22a4e7a3b 100644 --- a/SSL/src/FunctionalOptions/ИспользоватьПочтовыйКлиент/ИспользоватьПочтовыйКлиент.mdo +++ b/SSL/src/FunctionalOptions/ИспользоватьПочтовыйКлиент/ИспользоватьПочтовыйКлиент.mdo @@ -25,7 +25,6 @@ Enum.СтатусыИсходящегоЭлектронногоПисьма Enum.ПорядокОтветовНаЗапросыУведомленийОПрочтении InformationRegister.ИдентификаторыПолученныхЭлектронныхПисем - InformationRegister.Удалить_АктивныеПредметыВзаимодействий InformationRegister.НастройкиУчетныхЗаписейЭлектроннойПочты InformationRegister.ПредметыПапкиВзаимодействий InformationRegister.УведомленияОПрочтении diff --git a/SSL/src/FunctionalOptions/ИспользоватьПризнакРассмотрено/ИспользоватьПризнакРассмотрено.mdo b/SSL/src/FunctionalOptions/ИспользоватьПризнакРассмотрено/ИспользоватьПризнакРассмотрено.mdo index 95bdf7184..6c5f3d8f6 100644 --- a/SSL/src/FunctionalOptions/ИспользоватьПризнакРассмотрено/ИспользоватьПризнакРассмотрено.mdo +++ b/SSL/src/FunctionalOptions/ИспользоватьПризнакРассмотрено/ИспользоватьПризнакРассмотрено.mdo @@ -7,18 +7,6 @@ Constant.ИспользоватьПризнакРассмотрено true - Document.Встреча.Attribute.Удалить_Рассмотрено - Document.Встреча.Attribute.Удалить_РассмотретьПосле - Document.ЗапланированноеВзаимодействие.Attribute.Удалить_РассмотретьПосле - Document.ЗапланированноеВзаимодействие.Attribute.Удалить_Рассмотрено - Document.ТелефонныйЗвонок.Attribute.Удалить_Рассмотрено - Document.ТелефонныйЗвонок.Attribute.Удалить_РассмотретьПосле - Document.ЭлектронноеПисьмоВходящее.Attribute.Удалить_Рассмотрено - Document.ЭлектронноеПисьмоВходящее.Attribute.Удалить_РассмотретьПосле - Document.ЭлектронноеПисьмоИсходящее.Attribute.Удалить_Рассмотрено - Document.ЭлектронноеПисьмоИсходящее.Attribute.Удалить_РассмотретьПосле - Document.СообщениеSMS.Attribute.Удалить_РассмотретьПосле - Document.СообщениеSMS.Attribute.Удалить_Рассмотрено InformationRegister.СостоянияПредметовВзаимодействий.Resource.КоличествоНеРассмотрено InformationRegister.СостоянияПапокПисем.Resource.КоличествоНеРассмотрено InformationRegister.СостоянияКонтактовВзаимодействий.Resource.КоличествоНеРассмотрено diff --git a/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервиса/ИспользоватьСинхронизациюДанныхВМоделиСервиса.mdo b/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервиса/ИспользоватьСинхронизациюДанныхВМоделиСервиса.mdo new file mode 100644 index 000000000..35bf5a2d2 --- /dev/null +++ b/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервиса/ИспользоватьСинхронизациюДанныхВМоделиСервиса.mdo @@ -0,0 +1,11 @@ + + + ИспользоватьСинхронизациюДанныхВМоделиСервиса + + ru + Использовать синхронизацию данных в модели сервиса + + Constant.ИспользоватьСинхронизациюДанныхВМоделиСервиса + true + CommonForm.МониторСинхронизацииДанныхВМоделиСервиса + diff --git a/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой/ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой.mdo b/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой/ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой.mdo new file mode 100644 index 000000000..e5725d1bf --- /dev/null +++ b/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой/ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой.mdo @@ -0,0 +1,10 @@ + + + ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой + + ru + Использовать синхронизацию данных в модели сервиса с локальной программой + + Constant.ИспользоватьСинхронизациюДанныхВМоделиСервисаСЛокальнойПрограммой + true + diff --git a/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете.mdo b/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете.mdo new file mode 100644 index 000000000..cea1105ca --- /dev/null +++ b/SSL/src/FunctionalOptions/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете/ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете.mdo @@ -0,0 +1,11 @@ + + + ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете + + ru + Использовать синхронизацию данных в модели сервиса с приложением в Интернете + + Constant.ИспользоватьСинхронизациюДанныхВМоделиСервисаСПриложениемВИнтернете + true + CommonCommand.СинхронизацияДанныхВМоделиСервиса + diff --git a/SSL/src/FunctionalOptions/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса.mdo b/SSL/src/FunctionalOptions/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса.mdo new file mode 100644 index 000000000..8045a1932 --- /dev/null +++ b/SSL/src/FunctionalOptions/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса/НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса.mdo @@ -0,0 +1,10 @@ + + + НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса + + ru + Независимое использование дополнительных отчетов и обработок в модели сервиса + + Constant.НезависимоеИспользованиеДополнительныхОтчетовИОбработокВМоделиСервиса + true + diff --git a/SSL/src/FunctionalOptions/ПоддержкаРезервногоКопирования/ПоддержкаРезервногоКопирования.mdo b/SSL/src/FunctionalOptions/ПоддержкаРезервногоКопирования/ПоддержкаРезервногоКопирования.mdo deleted file mode 100644 index b7d4dcd86..000000000 --- a/SSL/src/FunctionalOptions/ПоддержкаРезервногоКопирования/ПоддержкаРезервногоКопирования.mdo +++ /dev/null @@ -1,14 +0,0 @@ - - - ПоддержкаРезервногоКопирования - - ru - Поддержка резервного копирования - - Constant.ПоддержкаРезервногоКопирования - true - CommonForm.СозданиеРезервнойКопии - CommonCommand.СоздатьРезервнуюКопию - InformationRegister.УдалитьОбластиКРезервномуКопированию - Constant.ВыполнитьРезервноеКопированиеОбластиДанных - diff --git a/SSL/src/FunctionalOptions/СтандартныеПодсистемыВМоделиСервиса/СтандартныеПодсистемыВМоделиСервиса.mdo b/SSL/src/FunctionalOptions/СтандартныеПодсистемыВМоделиСервиса/СтандартныеПодсистемыВМоделиСервиса.mdo index 8db752f2c..9b7aa3ebb 100644 --- a/SSL/src/FunctionalOptions/СтандартныеПодсистемыВМоделиСервиса/СтандартныеПодсистемыВМоделиСервиса.mdo +++ b/SSL/src/FunctionalOptions/СтандартныеПодсистемыВМоделиСервиса/СтандартныеПодсистемыВМоделиСервиса.mdo @@ -7,24 +7,9 @@ Constant.ИспользоватьРазделениеПоОбластямДанных true - CommonForm.ВходВОбластьДанных - InformationRegister.УдалитьБлокировкиСеансовОбластиДанных - InformationRegister.УдалитьОчередьЗаданий CommonCommand.ДобавитьПользователейСервиса - Constant.КлючОбластиДанных CommonCommand.ЗагрузитьКурсыВалют - Catalog.ШаблоныЗаданийОчереди InformationRegister.БлокировкиСеансовОбластейДанных - InformationRegister.УдалитьОбластиДанных - Constant.ПредставлениеОбластиДанных - Constant.ПрефиксОбластиДанных - Constant.ЧасовойПоясОбластиДанных - InformationRegister.УдалитьОчередьИзвлеченияТекста - Catalog.ОчередьЗаданий - Catalog.ОчередьЗаданийОбластейДанных InformationRegister.ВерсииПодсистемОбластейДанных InformationRegister.ОчередьИзвлеченияТекста - InformationRegister.ОбластиДанных - Constant.ДатаПоследнегоСтартаКлиентскогоСеанса - InformationRegister.РейтингАктивностиОбластейДанных diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/АктуализацияУстаревшегоКлассификатора/Module.bsl b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/АктуализацияУстаревшегоКлассификатора/Module.bsl index 0a22cfa7e..54cb47178 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/АктуализацияУстаревшегоКлассификатора/Module.bsl +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/АктуализацияУстаревшегоКлассификатора/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - АдресныйКлассификаторСлужебный.ПроверитьНачальноеЗаполнение(); // Инициализация списка регионов АутентификацияВыполнена = ДанныеАутентификацииСайтаСохранены(); diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Help/ru.html b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Help/ru.html index 47db0688b..e5e697d40 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Help/ru.html +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Help/ru.html @@ -1,17 +1,26 @@ - +

            В адресном классификаторе хранятся адресные сведения, необходимые для работы в программе.

            Для обеспечения единства структуры и состава адресной информации используется Федеральная информационная адресная система (ФИАС). В ФИАС содержатся почтовые адреса РФ. Использование ФИАС помогает заполнять адреса правильно и быстро. Без этого невозможна сдача отчетности. Например, при сдаче отчетности по работникам в налоговую инспекцию, в пенсионный фонд необходимо заполнить адреса по стандарту, иначе отчетность не будет принята. Кроме того, адреса могут меняться и не всегда можно уследить за этими изменениями самостоятельно. Программа позволяет управлять адресами и поддерживать их в актуальном состоянии с помощью ФИАС.

            Для всех регионов РФ имеется возможность загрузки адресных сведений с сайта поддержки пользователей программы 1С:Предприятие фирмы "1С", а также из файлов, распространяемых ФНС РФ.

            -

            Окно для работы с адресным классификатором открывается по команде Загрузить классификатор раздела Администрирование - Интернет-поддержка и сервисы - Адресный классификатор.

            +

            Окно для работы с адресным классификатором открывается по команде Загрузить классификатор раздела Администрирование - Интернет-поддержка и сервисы - Классификаторы, курсы валют.

            Загрузка адресного классификатора

            • При загрузке классификатора можно выбрать один, несколько или все регионы России, по которым необходимо загрузить адресные сведения. Это удобно, т.к. можно не загружать адреса тех регионов, которые заведомо не будут использоваться в работе. Включите флажки рядом с наименованиями нужных регионов. Для того чтобы выбрать все регионы для загрузки, нажмите , для того чтобы отменить выбор, нажмите кнопку . Для поиска регионов в списке используйте кнопку Найти. В нижней части списка идет подсчет количества выбранных регионов. -
            • С помощью переключателя выберите Вариант загрузки: -
              • С веб-сайта 1С; -
                • Для загрузки необходимо заполнить данные авторизации для подключения к Интернет-поддержке пользователей. Из папки на диске.
              • -
                •  укажите путь к папке (также можно нажать клавишу F4). Скачать адресные сведения для загрузки можно на сайте 1С:ИТС - по ссылке;
            • После указания всех параметров нажмите Загрузить адресные сведения. -
            • Во время загрузки программой выводится сообщение о состоянии загрузки: +
            • +
            • Включите флажок, для того чтобы Загружать историю изменения адресных объектов. По умолчанию флажок отключен и история изменения адресных сведений не загружается в программу. Загрузка истории адресных сведений может потребоваться, если, например, в программу вводятся паспортные данные сотрудников, в них могут быть и устаревшие адреса.
            • +
            • С помощью переключателя выберите Вариант загрузки: +
              • С портала 1С:ИТС (рекомендуется); +
                • Для загрузки необходимо заполнить данные авторизации для подключения к Интернет-поддержке пользователей. 
              • +
              • Из папки на диске.
              • +
                •  укажите путь к папке с адресными сведениями (также можно нажать клавишу F4). Скачать адресные сведения для загрузки можно на сайте 1С:ИТС - по ссылке;
          • После указания всех параметров нажмите Загрузить адресные сведения. +
          • +
          • Во время загрузки программой выводится сообщение о состоянии загрузки:
            • количество загружаемых регионов; -
            • источник загрузки; -
            • загружаемый в текущий момент регион.
          • После успешной загрузки выводится сообщение. Нажмите Закрыть для возврата в программу. -
          • При повторной загрузке адресных сведений, ранее загруженных в классификатор, они перезаписываются. -
          • В веб-клиенте загрузка адресного классификатора не поддерживается.
          \ No newline at end of file +
        • +
        • источник загрузки; +
        • +
        • загружаемый в текущий момент регион.
      • +
      • После успешной загрузки выводится сообщение. Нажмите Закрыть для возврата в программу. +
      • +
      • При повторной загрузке адресных сведений, ранее загруженных в классификатор, они перезаписываются. +
      • +
      • В веб-клиенте загрузка адресного классификатора не поддерживается.
      • \ No newline at end of file diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl index cef5819a4..7011b7476 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ЗагрузкаАдресногоКлассификатора/Module.bsl @@ -36,9 +36,6 @@ Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; ДоступнаЗагрузкаАдресныхСведенийИзИнтернет = АдресныйКлассификаторСлужебный.ДоступнаЗагрузкаАдресныхСведенийИзИнтернет(); @@ -771,7 +768,7 @@ ОписаниеОповещения = Новый ОписаниеОповещения("ЗапуститьФоновуюЗагрузкуИзКаталогаКлиентаПослеИнициализации", ЭтотОбъект, ДополнительныеПараметры); Файл = Новый Файл(); - Файл.НачатьИнициализацию(ОписаниеОповещения, Описание.Имя); + Файл.НачатьИнициализацию(ОписаниеОповещения, Описание.ПолноеИмя); Иначе // выход из цикла diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ОчисткаАдресногоКлассификатора/Help/ru.html b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ОчисткаАдресногоКлассификатора/Help/ru.html index ac83bdf37..1eb63f82b 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ОчисткаАдресногоКлассификатора/Help/ru.html +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ОчисткаАдресногоКлассификатора/Help/ru.html @@ -1,9 +1,13 @@ - +

        Предназначена для удаления адресных данных (например, ошибочно загруженных).

        -

        Открывается по команде Очистить адресные сведения в разделе Администрирование - Интернет-поддержка и сервисы - Адресный классификатор.

        +

        Открывается по команде Очистка адресных сведений в разделе Администрирование - Интернет-поддержка и сервисы - Классификаторы, курсы валют.

        Очистка адресного классификатора

        • Включите флажки рядом с наименованиями нужных регионов. -
        • Включите флажок Показывать только загруженные регионы, это облегчает выбор. -
        • Для того чтобы выбрать для очистки все регионы, нажмите , для того чтобы отменить выбор, нажмите . -
        • Для поиска регионов в списке используйте кнопку Найти. В нижней части списка идет подсчет количества выбранных регионов. -
        • После установки необходимых параметров нажмите Очистить адресные сведения.
        \ No newline at end of file + +
      • Включите флажок Показывать только загруженные регионы, это облегчает выбор. +
      • +
      • Для того чтобы выбрать для очистки все регионы, нажмите , для того чтобы отменить выбор, нажмите . +
      • +
      • В нижней части списка идет подсчет количества выбранных регионов. +
      • +
      • После установки необходимых параметров нажмите Очистить адресные сведения.
      \ No newline at end of file diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ОчисткаАдресногоКлассификатора/Module.bsl b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ОчисткаАдресногоКлассификатора/Module.bsl index 0a7c77e70..3bbc1f7d1 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ОчисткаАдресногоКлассификатора/Module.bsl +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/ОчисткаАдресногоКлассификатора/Module.bsl @@ -20,9 +20,6 @@ Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; ПоказыватьТолькоЗагруженныеРегионы = Истина; ОпределитьЗагруженныеРегионы(); diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/СведенияОбАдресномКлассификаторе/Module.bsl b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/СведенияОбАдресномКлассификаторе/Module.bsl index d8e68f87c..073cf4142 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/СведенияОбАдресномКлассификаторе/Module.bsl +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/Forms/СведенияОбАдресномКлассификаторе/Module.bsl @@ -1,3 +1,11 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + #Область ОбработчикиСобытийФормы &НаСервере diff --git a/SSL/src/InformationRegisters/АдресныеОбъекты/АдресныеОбъекты.mdo b/SSL/src/InformationRegisters/АдресныеОбъекты/АдресныеОбъекты.mdo index 4057bacae..79c8c3f1f 100644 --- a/SSL/src/InformationRegisters/АдресныеОбъекты/АдресныеОбъекты.mdo +++ b/SSL/src/InformationRegisters/АдресныеОбъекты/АдресныеОбъекты.mdo @@ -276,7 +276,7 @@ PersonalComputer MobileDevice - + СведенияОбАдресномКлассификаторе ru diff --git a/SSL/src/InformationRegisters/БуферОперацийСтатистики/ManagerModule.bsl b/SSL/src/InformationRegisters/БуферОперацийСтатистики/ManagerModule.bsl index b3a6f352b..b15b95430 100644 --- a/SSL/src/InformationRegisters/БуферОперацийСтатистики/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/БуферОперацийСтатистики/ManagerModule.bsl @@ -16,7 +16,7 @@ ПериодИдентификатораУдаления = ЦентрМониторингаСлужебный.ПолучитьПараметрыЦентраМониторинга("ПериодАгрегацииМалый"); - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда + Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); Если МодульРаботаВМоделиСервиса.ИспользованиеРазделителяСеанса() Тогда ОбластьДанных = Формат(МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), "ЧН=0; ЧГ=0"); diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборРеквизитовОбъекта/Module.bsl b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборРеквизитовОбъекта/Module.bsl index 2d0729dde..f0831f16e 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборРеквизитовОбъекта/Module.bsl +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборРеквизитовОбъекта/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ДеревоРеквизитов = РеквизитФормыВЗначение("РеквизитыОбъекта"); КоллекцияРеквизитовОбъекта = ДеревоРеквизитов.Строки; diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборХранимыхВерсий/Help/ru.html b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборХранимыхВерсий/Help/ru.html index dced07a4b..7559ba367 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборХранимыхВерсий/Help/ru.html +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборХранимыхВерсий/Help/ru.html @@ -1,4 +1,4 @@ - +

      Предназначен для просмотра истории изменений объекта и выбора хранимых версий. История версий позволяет быстро ответить на вопросы: "Кто изменил объект?", "Когда произошли изменения?" и "Что было изменено в объекте?".

      С помощью списка можно вести историю изменений документов и списков, просматривать любую версию объекта или сравнивать любые версии объекта между собой.

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

      diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборХранимыхВерсий/Module.bsl b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборХранимыхВерсий/Module.bsl index 0db2c650e..990ceae0a 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборХранимыхВерсий/Module.bsl +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ВыборХранимыхВерсий/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Ссылка = Параметры.Ссылка; Элементы.НетВерсий.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Предыдущие версии отсутствуют: ""%1"".'"), Строка(Ссылка)); diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ОтчетПоВерсиямОбъекта/Attributes/ОбщийШаблон/ExtInfo/SpreadsheetData.mxlx b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ОтчетПоВерсиямОбъекта/Attributes/ОбщийШаблон/ExtInfo/SpreadsheetData.mxlx index 70a095c0a..498ab0ee1 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ОтчетПоВерсиямОбъекта/Attributes/ОбщийШаблон/ExtInfo/SpreadsheetData.mxlx +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ОтчетПоВерсиямОбъекта/Attributes/ОбщийШаблон/ExtInfo/SpreadsheetData.mxlx @@ -3,5 +3,11 @@ 0 + + 0 + + true + + 0 \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ОтчетПоВерсиямОбъекта/Attributes/ТаблицаОтчета/ExtInfo/SpreadsheetData.mxlx b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ОтчетПоВерсиямОбъекта/Attributes/ТаблицаОтчета/ExtInfo/SpreadsheetData.mxlx index 70a095c0a..498ab0ee1 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ОтчетПоВерсиямОбъекта/Attributes/ТаблицаОтчета/ExtInfo/SpreadsheetData.mxlx +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ОтчетПоВерсиямОбъекта/Attributes/ТаблицаОтчета/ExtInfo/SpreadsheetData.mxlx @@ -3,5 +3,11 @@ 0 + + 0 + + true + + 0 \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ОтчетПоВерсиямОбъекта/Module.bsl b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ОтчетПоВерсиямОбъекта/Module.bsl index 88ec2fffe..21f850e04 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ОтчетПоВерсиямОбъекта/Module.bsl +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ОтчетПоВерсиямОбъекта/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - СсылкаНаОбъект = Параметры.Ссылка; ОбщийШаблон = РегистрыСведений.ВерсииОбъектов.ПолучитьМакет("СтандартныйМакетПредставленияОбъекта"); diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ФормаЗаписи/Help/ru.html b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ФормаЗаписи/Help/ru.html index 00c878746..46bd6e306 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ФормаЗаписи/Help/ru.html +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/Forms/ФормаЗаписи/Help/ru.html @@ -1 +1 @@ -Форма записи \ No newline at end of file +Форма записи \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ВерсииОбъектов/Templates/СтандартныйМакетПредставленияОбъекта/Template.mxlx b/SSL/src/InformationRegisters/ВерсииОбъектов/Templates/СтандартныйМакетПредставленияОбъекта/Template.mxlx index 08affd02f..aaf340517 100644 --- a/SSL/src/InformationRegisters/ВерсииОбъектов/Templates/СтандартныйМакетПредставленияОбъекта/Template.mxlx +++ b/SSL/src/InformationRegisters/ВерсииОбъектов/Templates/СтандартныйМакетПредставленияОбъекта/Template.mxlx @@ -113,6 +113,12 @@ + + 3 + + true + + 4 @@ -176,7 +182,7 @@ 0 - Text + Comment 0 16 @@ -195,7 +201,6 @@ 243 true Stretch - 0 @@ -224,6 +229,12 @@ + + 8 + + true + + 9 @@ -383,6 +394,12 @@ + + 17 + + true + + 18 @@ -423,6 +440,12 @@ + + 21 + + true + + 22 @@ -440,6 +463,13 @@ + + 23 + 24 + + true + + 25 @@ -457,6 +487,12 @@ + + 26 + + true + + 27 @@ -529,6 +565,12 @@ + + 32 + + true + + 33 diff --git a/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/Forms/ФормаЗаписи/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/Forms/ФормаСписка/Module.bsl index 30df400b8..83e963f31 100644 --- a/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/Forms/ФормаСписка/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/ManagerModule.bsl b/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/ManagerModule.bsl index 484ab01cd..a32d49583 100644 --- a/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ГруппыЗначенийДоступа/ManagerModule.bsl @@ -233,7 +233,7 @@ КонецПроцедуры // Заполняет группы для пустых ссылок используемых типов значений доступа. -Процедура ОбновитьГруппыПустыхЗначенийДоступа() Экспорт +Процедура ОбновитьГруппыПустыхЗначенийДоступа() СвойстваВидовДоступа = УправлениеДоступомСлужебныйПовтИсп.СвойстваВидовДоступа(); ЗначенияДоступаСГруппами = СвойстваВидовДоступа.ЗначенияДоступаСГруппами; @@ -1076,6 +1076,7 @@ Если ГруппыИсполнителей = Неопределено И Исполнители <> Неопределено Тогда + // АПК:96-выкл: допустимо, так как строки не должны повторятся и объем данных небольшой (от единиц до сотен). ТекстЗапроса = "ВЫБРАТЬ | ПользователиГруппИсполнителей.ГруппаИсполнителей @@ -1088,6 +1089,7 @@ | ВнешниеПользователиГруппИсполнителей.ГруппаИсполнителей |ИЗ | ВнешниеПользователиГруппИсполнителей КАК ВнешниеПользователиГруппИсполнителей"; + // АПК:96-вкл: допустимо, так как строки не должны повторятся и объем данных небольшой (от единиц до сотен). Запрос.Текст = ТекстЗапросовВременныхТаблиц + " |; diff --git a/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Forms/МоиБизнесПроцессы/Module.bsl b/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Forms/МоиБизнесПроцессы/Module.bsl index 8fd0a0476..3fc63b73a 100644 --- a/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Forms/МоиБизнесПроцессы/Module.bsl +++ b/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Forms/МоиБизнесПроцессы/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - УстановитьОтбор(Новый Структура("ПоказыватьЗавершенные", ПоказыватьЗавершенные)); ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( Список, "Автор", Пользователи.ТекущийПользователь()); diff --git a/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Help/ru.html b/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Help/ru.html index 20a1cfdb6..aa3d52a2a 100644 --- a/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Help/ru.html +++ b/SSL/src/InformationRegisters/ДанныеБизнесПроцессов/Help/ru.html @@ -1,4 +1,4 @@ - +

      В этом списке выводятся бизнес-процессы, в которых автором является текущий пользователь.

      Открывается по команде Мои бизнес-процессы в разделе Бизнес-процессы и задачи.

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

      diff --git a/SSL/src/InformationRegisters/ДанныеОбъектовДляРегистрацииВОбменах/ManagerModule.bsl b/SSL/src/InformationRegisters/ДанныеОбъектовДляРегистрацииВОбменах/ManagerModule.bsl index 77c54feb0..82150b500 100644 --- a/SSL/src/InformationRegisters/ДанныеОбъектовДляРегистрацииВОбменах/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ДанныеОбъектовДляРегистрацииВОбменах/ManagerModule.bsl @@ -49,7 +49,7 @@ // Процедура добавляет запись в регистр по переданным значениям структуры. Процедура ДобавитьЗапись(СтруктураЗаписи, Загрузка = Ложь) - ОбменДаннымиСервер.ДобавитьЗаписьВРегистрСведений(СтруктураЗаписи, "ДанныеОбъектовДляРегистрацииВОбменах", Загрузка); + ОбменДаннымиСлужебный.ДобавитьЗаписьВРегистрСведений(СтруктураЗаписи, "ДанныеОбъектовДляРегистрацииВОбменах", Загрузка); КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Module.bsl b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Module.bsl index b70909392..71088d544 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Module.bsl +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ДатыЗапретаИзменения/Module.bsl @@ -20,10 +20,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ДатыЗапретаИзмененияСлужебный.ОбновитьРазделыДатЗапретаИзменения(); Если КлиентскоеПриложение.ТекущийВариантИнтерфейса() = ВариантИнтерфейсаКлиентскогоПриложения.Версия8_2 Тогда @@ -1522,7 +1518,8 @@ ТекущийРаздел = ТекущиеДанные.ПолучитьРодителя(); УдалитьЗаписьПользователя(АдресУстановленныхБлокировок, - ТекущийРаздел.Раздел, ТекущиеДанные.Объект, ТекущийПользователь); + ?(ТекущийРаздел <> Неопределено, ТекущийРаздел.Раздел, Неопределено), + ТекущиеДанные.Объект, ТекущийПользователь); Если ТекущийРаздел() = ТекущиеДанные.Объект Тогда // Удалена общая дата. ДатаЗапрета = '00010101'; @@ -2128,6 +2125,7 @@ Запрос.УстановитьПараметр("Пользователь", Пользователь); Запрос.УстановитьПараметр("ЕдинственныйРаздел", ЕдинственныйРаздел); Запрос.УстановитьПараметр("ОбщаяДатаПредставление", ТекстПредставленияОбщейДаты()); + // АПК:494-выкл: допустимо, так как объем данных небольшой (от единиц до сотен). Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ЗНАЧЕНИЕ(ПланВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка) КАК Раздел, @@ -2171,6 +2169,7 @@ | ДатыЗапретаИзменения.Пользователь = &Пользователь | И ДатыЗапретаИзменения.Раздел = &ЕдинственныйРаздел | И ТИПЗНАЧЕНИЯ(ДатыЗапретаИзменения.Объект) <> ТИП(ПланВидовХарактеристик.РазделыДатЗапретаИзменения)"; + // АПК:494-вкл: допустимо, так как объем данных небольшой (от единиц до сотен). ПрочитанныеДатыЗапрета = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/РедактированиеДатыЗапрета/Module.bsl b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/РедактированиеДатыЗапрета/Module.bsl index 8ab0156b3..4a94b1c67 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/РедактированиеДатыЗапрета/Module.bsl +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/РедактированиеДатыЗапрета/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ПользовательПредставление = Параметры.ПользовательПредставление; РазделПредставление = Параметры.РазделПредставление; Объект = Параметры.Объект; diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ФормаЗаписи/Module.bsl index 7395fe8ae..136052163 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; ДатыЗапретаИзмененияСлужебный.ОбновитьРазделыДатЗапретаИзменения(); diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ФормаСписка/Module.bsl index 3ad2064be..4cc43763b 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Forms/ФормаСписка/Module.bsl @@ -13,9 +13,6 @@ УстановитьУсловноеОформление(); УстановитьПорядок(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; ТолькоПросмотр = Истина; diff --git a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Help/ru.html b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Help/ru.html index 17ac20990..3ccb04828 100644 --- a/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Help/ru.html +++ b/SSL/src/InformationRegisters/ДатыЗапретаИзменения/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

      Установка даты запрета изменения данных и различные настройки, связанные с ней, выполняются по соответствующей команде в разделе Администрирование - Настройки пользователей и прав - Даты запрета изменения.

      diff --git a/SSL/src/InformationRegisters/ДвоичныеДанныеФайлов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ДвоичныеДанныеФайлов/Forms/ФормаЗаписи/Module.bsl index d3917e80c..b5993fff4 100644 --- a/SSL/src/InformationRegisters/ДвоичныеДанныеФайлов/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ДвоичныеДанныеФайлов/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда Элементы.Файл.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх; diff --git a/SSL/src/InformationRegisters/ДвоичныеДанныеФайлов/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ДвоичныеДанныеФайлов/Forms/ФормаСписка/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/ДвоичныеДанныеФайлов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ДвоичныеДанныеФайлов/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ДополнительныеСведения/Help/ru.html b/SSL/src/InformationRegisters/ДополнительныеСведения/Help/ru.html index 639686172..7aab2f63a 100644 --- a/SSL/src/InformationRegisters/ДополнительныеСведения/Help/ru.html +++ b/SSL/src/InformationRegisters/ДополнительныеСведения/Help/ru.html @@ -1,4 +1,4 @@ - +

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

      См. также:

      • Дополнительные свойства; diff --git a/SSL/src/InformationRegisters/ЗависимостиПравДоступа/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ЗависимостиПравДоступа/Forms/ФормаЗаписи/Module.bsl index 03376fab5..9eebd2862 100644 --- a/SSL/src/InformationRegisters/ЗависимостиПравДоступа/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ЗависимостиПравДоступа/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; ПроверитьЧтениеВместоИзменения = Истина; diff --git a/SSL/src/InformationRegisters/ЗависимостиПравДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ЗависимостиПравДоступа/Forms/ФормаСписка/Module.bsl index 48871143c..127430b1b 100644 --- a/SSL/src/InformationRegisters/ЗависимостиПравДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ЗависимостиПравДоступа/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ЗамерыВремени/Help/ru.html b/SSL/src/InformationRegisters/ЗамерыВремени/Help/ru.html index 280f950b6..503ba8b13 100644 --- a/SSL/src/InformationRegisters/ЗамерыВремени/Help/ru.html +++ b/SSL/src/InformationRegisters/ЗамерыВремени/Help/ru.html @@ -1,4 +1,4 @@ - +

        Предназначен для просмотра замеров времени, которые производятся для оценки производительности работы программы.

        Открыть список можно по команде Замеры времени на панели навигации ключевой операции.

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

        diff --git a/SSL/src/InformationRegisters/ЗамерыВремениТехнологические/Help/ru.html b/SSL/src/InformationRegisters/ЗамерыВремениТехнологические/Help/ru.html index ad6473c92..ba5442731 100644 --- a/SSL/src/InformationRegisters/ЗамерыВремениТехнологические/Help/ru.html +++ b/SSL/src/InformationRegisters/ЗамерыВремениТехнологические/Help/ru.html @@ -1,4 +1,4 @@ - +

        Предназначен для просмотра замеров времени, которые производятся для оценки производительности работы программы.

        Открыть список можно по команде Замеры времени на панели навигации ключевой операции.

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

        diff --git a/SSL/src/InformationRegisters/ЗначенияГруппДоступа/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ЗначенияГруппДоступа/Forms/ФормаЗаписи/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/ЗначенияГруппДоступа/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ЗначенияГруппДоступа/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ЗначенияГруппДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ЗначенияГруппДоступа/Forms/ФормаСписка/Module.bsl index 7098ee344..c98ed0600 100644 --- a/SSL/src/InformationRegisters/ЗначенияГруппДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ЗначенияГруппДоступа/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/Forms/ФормаЗаписи/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/Forms/ФормаСписка/Module.bsl index 55e3a4db3..4ed1831ca 100644 --- a/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ЗначенияГруппДоступаПоУмолчанию/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - УстановитьУсловноеОформление(); ТолькоПросмотр = Истина; diff --git a/SSL/src/InformationRegisters/ИзмененияОбщихДанныхУзлов/ManagerModule.bsl b/SSL/src/InformationRegisters/ИзмененияОбщихДанныхУзлов/ManagerModule.bsl index 14e8c649f..382cfb6c1 100644 --- a/SSL/src/InformationRegisters/ИзмененияОбщихДанныхУзлов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ИзмененияОбщихДанныхУзлов/ManagerModule.bsl @@ -146,14 +146,14 @@ // Процедура добавляет запись в регистр по переданным значениям структуры. Процедура ДобавитьЗапись(СтруктураЗаписи) - ОбменДаннымиСервер.ДобавитьЗаписьВРегистрСведений(СтруктураЗаписи, "ИзмененияОбщихДанныхУзлов"); + ОбменДаннымиСлужебный.ДобавитьЗаписьВРегистрСведений(СтруктураЗаписи, "ИзмененияОбщихДанныхУзлов"); КонецПроцедуры // Процедура удаляет набор записей в регистре по переданным значениям структуры. Процедура УдалитьЗапись(СтруктураЗаписи) - ОбменДаннымиСервер.УдалитьНаборЗаписейВРегистреСведений(СтруктураЗаписи, "ИзмененияОбщихДанныхУзлов"); + ОбменДаннымиСлужебный.УдалитьНаборЗаписейВРегистреСведений(СтруктураЗаписи, "ИзмененияОбщихДанныхУзлов"); КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРоли/Help/ru.html b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРоли/Help/ru.html index aa850ca79..c813b5d98 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРоли/Help/ru.html +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРоли/Help/ru.html @@ -1,5 +1,5 @@ - -

        В этом списке содержится актуальная (текущая) информация о соответствии пользователей роли и объектам адресации, которая используется механизмом бизнес-процессов для доставки задач конкретным пользователям.

        + +

        В этом списке содержится актуальная (текущая) информация о соответствии пользователей роли и объектам адресации, которая используется механизмом бизнес-процессов для доставки задач конкретным пользователям.

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

        Ввод исполнителя роли

        • Нажмите Создать, заполните необходимые поля.

        См. также:

        diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРоли/Module.bsl b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРоли/Module.bsl index 3965d6a42..d8dac0218 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРоли/Module.bsl +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРоли/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Исполнители.Параметры.УстановитьЗначениеПараметра("БезОбъектаАдресации", НСтр("ru='<Без объекта адресации>'")); НастроитьОтображениеСпискаРолей(); diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРолиСОбъектомАдресации/Help/ru.html b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРолиСОбъектомАдресации/Help/ru.html index e6cc2cbee..b0fbd347b 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРолиСОбъектомАдресации/Help/ru.html +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРолиСОбъектомАдресации/Help/ru.html @@ -1,4 +1,4 @@ - +

        Предназначен для назначения пользователей на роль исполнителя.

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

        В нижней части списка ведется подсчет назначенных исполнителей.

        diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРолиСОбъектомАдресации/Module.bsl b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРолиСОбъектомАдресации/Module.bsl index 7c9621554..535300786 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРолиСОбъектомАдресации/Module.bsl +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ИсполнителиРолиСОбъектомАдресации/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Роль = Параметры.Роль; УстановитьДоступностьРоли(Роль); ОсновнойОбъектАдресации = Параметры.ОсновнойОбъектАдресации; diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/РолиИИсполнителиЗадач/Help/ru.html b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/РолиИИсполнителиЗадач/Help/ru.html index 034442366..8d661b7af 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/РолиИИсполнителиЗадач/Help/ru.html +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/РолиИИсполнителиЗадач/Help/ru.html @@ -1,11 +1,11 @@ - +

        В списке содержится актуальная (текущая) информация о соответствии пользователей ролям исполнителей.

        Перед началом работы с бизнес-процессами и задачами рекомендуется заполнить список.

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

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

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

        • Роль - наименование роли. Роли, на которые не назначено ни одного исполнителя, отмечены значком Внимание. Такая ситуация может приводить к возникновению зависших задач (т.е. задач, у которых не существует реального исполнителя). Для контроля зависших задач предназначен Отчет по зависшим задачам, для получения уведомлений по зависшим задачам - предопределенная роль Координатор выполнения задач. -
        • Исполнители - имя пользователя (если на роль назначен 1 исполнитель) или количество человек, назначенных на эту роль.

        Назначение исполнителей на роль

        +
      • Исполнители - имя пользователя (если на роль назначен 1 исполнитель) или количество человек, назначенных на эту роль.

      Назначение исполнителей на роль

      • Выделите роль, нажмите Назначить исполнителей на роль, подберите исполнителей из списка пользователей.
      • Также можно воспользоваться двойным щелчком мыши.

      Предопределенные роли

      В составе программы поставляются следующие роли:

      diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/РолиИИсполнителиЗадач/Module.bsl b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/РолиИИсполнителиЗадач/Module.bsl index e4b319329..3cfb809f4 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/РолиИИсполнителиЗадач/Module.bsl +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/РолиИИсполнителиЗадач/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОсновнойОбъектАдресации = Параметры.ОсновнойОбъектАдресации; ОбновитьДанныеЭлементов(); diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаЗаписи/Help/ru.html b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаЗаписи/Help/ru.html index b8342a5ff..71ef7d2d5 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаЗаписи/Help/ru.html +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаЗаписи/Help/ru.html @@ -1,9 +1,9 @@ - +

      Сведения об исполнителе задач при ролевой адресации.

      Открывается по команде Создать из списка Исполнители роли.

      Ввод исполнителя роли

      См. также:

      diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаЗаписи/Module.bsl index 8a40588b5..306297de8 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - УстановитьСостояниеЭлементов(); КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаСписка/Module.bsl index 94b55db7b..54406bbe1 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Forms/ФормаСписка/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - КонецПроцедуры &НаКлиенте diff --git a/SSL/src/InformationRegisters/ИсполнителиЗадач/Help/ru.html b/SSL/src/InformationRegisters/ИсполнителиЗадач/Help/ru.html index 3309258a2..17a6cd00b 100644 --- a/SSL/src/InformationRegisters/ИсполнителиЗадач/Help/ru.html +++ b/SSL/src/InformationRegisters/ИсполнителиЗадач/Help/ru.html @@ -1,4 +1,4 @@ - +

      В этом списке содержится актуальная (текущая) информация о соответствии пользователей ролям и объектам адресации, которая используется механизмом бизнес-процессов для доставки задач конкретным исполнителям.

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

      Особенности взаимодействия с внешними пользователями

      @@ -9,7 +9,7 @@
    • Для этого нужно настроить список таких ролей, указав, что они предназначены для определенных категорий внешних пользователей.
    • Примеры заполнения списка ролевой адресации

      - +
      Роль исполнителя
      @@ -19,7 +19,7 @@
      Роль исполнителя Пользователь Пояснение
      Старший по залу Иванов И.Петров А. Поручения, выданные роли Руководителя, попадут в список поручений Петрова А.

      В определенных случаях роли исполнителя бывает недостаточно, чтобы точно определить исполнителей. Тогда необходимо указывать основной и дополнительный объекты адресации. Например:

      - +
      Роль исполнителя
      diff --git a/SSL/src/InformationRegisters/УдалитьРейтингАктивностиОбластейДанных/УдалитьРейтингАктивностиОбластейДанных.mdo b/SSL/src/InformationRegisters/ИспользованиеДополнительныхОтчетовИОбработокСервисаВАвтономномРабочемМесте/ИспользованиеДополнительныхОтчетовИОбработокСервисаВАвтономномРабочемМесте.mdo similarity index 53% rename from SSL/src/InformationRegisters/УдалитьРейтингАктивностиОбластейДанных/УдалитьРейтингАктивностиОбластейДанных.mdo rename to SSL/src/InformationRegisters/ИспользованиеДополнительныхОтчетовИОбработокСервисаВАвтономномРабочемМесте/ИспользованиеДополнительныхОтчетовИОбработокСервисаВАвтономномРабочемМесте.mdo index e48328ecf..d16ca8740 100644 --- a/SSL/src/InformationRegisters/УдалитьРейтингАктивностиОбластейДанных/УдалитьРейтингАктивностиОбластейДанных.mdo +++ b/SSL/src/InformationRegisters/ИспользованиеДополнительныхОтчетовИОбработокСервисаВАвтономномРабочемМесте/ИспользованиеДополнительныхОтчетовИОбработокСервисаВАвтономномРабочемМесте.mdo @@ -1,20 +1,19 @@ - + - - - - - - - + + + + + + + - УдалитьРейтингАктивностиОбластейДанных + ИспользованиеДополнительныхОтчетовИОбработокСервисаВАвтономномРабочемМесте ru - (Не используется) Рейтинг активности областей данных + Использование дополнительных отчетов и обработок сервиса в автономном рабочем месте - true InDialog Use @@ -50,47 +49,37 @@ Managed - - Рейтинг + + Поставляемый ru - Рейтинг + Поставляемый - Number - - 7 - true - + Boolean - - ru - Рейтинг активности области данных - Use Use - - ОбластьДанных + + ДополнительныйОтчетИлиОбработка ru - Область данных + Дополнительный отчет или обработка - Number - - 7 - true - + CatalogRef.ДополнительныеОтчетыИОбработки Use Use + true + true true diff --git a/SSL/src/Catalogs/ОчередьЗаданийОбластейДанных/ManagerModule.bsl b/SSL/src/InformationRegisters/ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных/ManagerModule.bsl similarity index 100% rename from SSL/src/Catalogs/ОчередьЗаданийОбластейДанных/ManagerModule.bsl rename to SSL/src/InformationRegisters/ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных/ManagerModule.bsl diff --git a/SSL/src/InformationRegisters/УдалитьОчередьИзвлеченияТекста/УдалитьОчередьИзвлеченияТекста.mdo b/SSL/src/InformationRegisters/ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных/ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных.mdo similarity index 53% rename from SSL/src/InformationRegisters/УдалитьОчередьИзвлеченияТекста/УдалитьОчередьИзвлеченияТекста.mdo rename to SSL/src/InformationRegisters/ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных/ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных.mdo index 51f221dd1..998c1162b 100644 --- a/SSL/src/InformationRegisters/УдалитьОчередьИзвлеченияТекста/УдалитьОчередьИзвлеченияТекста.mdo +++ b/SSL/src/InformationRegisters/ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных/ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных.mdo @@ -1,18 +1,18 @@ - + - - - - - - - + + + + + + + - УдалитьОчередьИзвлеченияТекста + ИспользованиеПоставляемыхДополнительныхОтчетовИОбработокВОбластяхДанных ru - (не используется) Очередь извлечения текста + Использование поставляемых дополнительных отчетов и обработок в областях данных InDialog @@ -49,48 +49,38 @@ Managed - - ОбластьДанных + + ИспользуемаяОбработка ru - Область данных + Используемая обработка - Number - - 7 - + CatalogRef.ДополнительныеОтчетыИОбработки - - ru - Номер области данных при работе в модели сервиса (служебный реквизит) - Use Use - true - - - ИсточникТекста + Index + + + ПоставляемаяОбработка ru - Источник текста + Поставляемая обработка - CatalogRef + CatalogRef.ПоставляемыеДополнительныеОтчетыИОбработки - - ru - Ссылка на объект в базе данных, из которого нужно извлечь текст. - Use Use true + true true diff --git a/SSL/src/InformationRegisters/КалендарныеГрафики/Help/ru.html b/SSL/src/InformationRegisters/КалендарныеГрафики/Help/ru.html index 773da3f1f..206ed767b 100644 --- a/SSL/src/InformationRegisters/КалендарныеГрафики/Help/ru.html +++ b/SSL/src/InformationRegisters/КалендарныеГрафики/Help/ru.html @@ -1,2 +1,2 @@ - +

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

      \ No newline at end of file diff --git a/SSL/src/InformationRegisters/КлючиДоступаВнешнихПользователей/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаВнешнихПользователей/Forms/ФормаЗаписи/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаВнешнихПользователей/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаВнешнихПользователей/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/КлючиДоступаВнешнихПользователей/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаВнешнихПользователей/Forms/ФормаСписка/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаВнешнихПользователей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаВнешнихПользователей/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/КлючиДоступаГруппДоступа/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаГруппДоступа/Forms/ФормаЗаписи/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаГруппДоступа/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаГруппДоступа/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/КлючиДоступаГруппДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаГруппДоступа/Forms/ФормаСписка/Module.bsl index aeb9e8e27..c2ea34b14 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаГруппДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаГруппДоступа/Forms/ФормаСписка/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/КлючиДоступаКОбъектам/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаКОбъектам/Forms/ФормаЗаписи/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаКОбъектам/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаКОбъектам/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/КлючиДоступаКОбъектам/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаКОбъектам/Forms/ФормаСписка/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаКОбъектам/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаКОбъектам/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаЗаписи/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаСписка/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаКРегистрам/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/КлючиДоступаНаборовГруппДоступа/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаНаборовГруппДоступа/Forms/ФормаЗаписи/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаНаборовГруппДоступа/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаНаборовГруппДоступа/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/КлючиДоступаНаборовГруппДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаНаборовГруппДоступа/Forms/ФормаСписка/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаНаборовГруппДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаНаборовГруппДоступа/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/КлючиДоступаПользователей/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаПользователей/Forms/ФормаЗаписи/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаПользователей/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаПользователей/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/КлючиДоступаПользователей/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/КлючиДоступаПользователей/Forms/ФормаСписка/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/КлючиДоступаПользователей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/КлючиДоступаПользователей/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/КонтактыВзаимодействий/ManagerModule.bsl b/SSL/src/InformationRegisters/КонтактыВзаимодействий/ManagerModule.bsl index 17679b3e0..e69de29bb 100644 --- a/SSL/src/InformationRegisters/КонтактыВзаимодействий/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/КонтактыВзаимодействий/ManagerModule.bsl @@ -1,266 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда - -#Область СлужебныеПроцедурыИФункции - -// Удаляет либо одну, либо все записи из регистра. -// -// Параметры: -// Взаимодействие - ДокументСсылка - Ссылка на документ взаимодействия, Неопределено - взаимодействие, запись о -// котором удаляется. -// Если указано значение Неопределено, то регистр будет очищен полностью. -// -Процедура УдалитьНаборЗаписейПоВзаимодействию(Взаимодействие = Неопределено) Экспорт - - УстановитьПривилегированныйРежим(Истина); - - НаборЗаписей = СоздатьНаборЗаписей(); - Если Взаимодействие <> Неопределено Тогда - НаборЗаписей.Отбор.Взаимодействие.Установить(Взаимодействие); - КонецЕсли; - - НаборЗаписей.Записать(); - -КонецПроцедуры - -// Выполняет запись в регистр сведений для указанного взаимодействия. -// -// Параметры: -// Взаимодействие - ДокументСсылка - взаимодействие, для которого выполняется запись. -// Контакт - СправочникСсылка - Ссылка на справочник контакта, являющегося участником взаимодействия. -// -Процедура ВыполнитьЗаписьВРегистр(Взаимодействие, Контакт) Экспорт - - УстановитьПривилегированныйРежим(Истина); - - Запись = СоздатьМенеджерЗаписи(); - Запись.Взаимодействие = Взаимодействие; - Запись.Контакт = Контакт; - Запись.Записать(Истина); - -КонецПроцедуры - -#Область ОбработчикиОбновления - -// Процедура обновления ИБ для версии БСП 2.2. -// Заполняет регистр сведений КонтактыВзаимодействий. -// -// Параметры: -// Параметры - Структура- параметры выполнения текущей порции обработчика обновления. -// -Процедура ЗаполнитьКонтактыВзаимодействий_2_2_0_0(Параметры) Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = " - |ВЫБРАТЬ ПЕРВЫЕ 1000 - | Взаимодействия.Ссылка КАК Ссылка - |ПОМЕСТИТЬ НеобработанныеВзаимодействия - |ИЗ - | ЖурналДокументов.Взаимодействия КАК Взаимодействия - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактыВзаимодействий КАК КонтактыВзаимодействий - | ПО Взаимодействия.Ссылка = КонтактыВзаимодействий.Взаимодействие - |ГДЕ - | КонтактыВзаимодействий.Взаимодействие ЕСТЬ NULL - | - |ИНДЕКСИРОВАТЬ ПО - | Ссылка - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | ВстречаУчастники.Ссылка КАК Взаимодействие, - | ВстречаУчастники.Контакт, - | ВстречаУчастники.ПредставлениеКонтакта КАК ПредставлениеКонтакта - |ПОМЕСТИТЬ ИнформацияОКонтактах - |ИЗ - | Документ.Встреча.Участники КАК ВстречаУчастники - |ГДЕ - | ВстречаУчастники.Ссылка В - | (ВЫБРАТЬ - | НеобработанныеВзаимодействия.Ссылка - | ИЗ - | НеобработанныеВзаимодействия КАК НеобработанныеВзаимодействия) - | - |ОБЪЕДИНИТЬ - | - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | ЗапланированноеВзаимодействиеУчастники.Ссылка, - | ЗапланированноеВзаимодействиеУчастники.Контакт, - | ЗапланированноеВзаимодействиеУчастники.ПредставлениеКонтакта - |ИЗ - | Документ.ЗапланированноеВзаимодействие.Участники КАК ЗапланированноеВзаимодействиеУчастники - |ГДЕ - | ЗапланированноеВзаимодействиеУчастники.Ссылка В - | (ВЫБРАТЬ - | НеобработанныеВзаимодействия.Ссылка - | ИЗ - | НеобработанныеВзаимодействия КАК НеобработанныеВзаимодействия) - | - |ОБЪЕДИНИТЬ - | - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | ТелефонныйЗвонок.Ссылка, - | ТелефонныйЗвонок.АбонентКонтакт, - | ТелефонныйЗвонок.АбонентПредставление - |ИЗ - | Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок - |ГДЕ - | ТелефонныйЗвонок.Ссылка В - | (ВЫБРАТЬ - | НеобработанныеВзаимодействия.Ссылка - | ИЗ - | НеобработанныеВзаимодействия КАК НеобработанныеВзаимодействия) - | - |ОБЪЕДИНИТЬ - | - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | СообщениеSMSАдресаты.Ссылка, - | СообщениеSMSАдресаты.Контакт, - | СообщениеSMSАдресаты.ПредставлениеКонтакта - |ИЗ - | Документ.СообщениеSMS.Адресаты КАК СообщениеSMSАдресаты - |ГДЕ - | СообщениеSMSАдресаты.Ссылка В - | (ВЫБРАТЬ - | НеобработанныеВзаимодействия.Ссылка - | ИЗ - | НеобработанныеВзаимодействия КАК НеобработанныеВзаимодействия) - | - |ОБЪЕДИНИТЬ - | - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | ЭлектронноеПисьмоВходящее.Ссылка, - | ЭлектронноеПисьмоВходящее.ОтправительКонтакт, - | ЭлектронноеПисьмоВходящее.ОтправительПредставление - |ИЗ - | Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее - |ГДЕ - | ЭлектронноеПисьмоВходящее.Ссылка В - | (ВЫБРАТЬ - | НеобработанныеВзаимодействия.Ссылка - | ИЗ - | НеобработанныеВзаимодействия КАК НеобработанныеВзаимодействия) - | - |ОБЪЕДИНИТЬ - | - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | ЭлектронноеПисьмоИсходящееПолучателиПисьма.Ссылка, - | ЭлектронноеПисьмоИсходящееПолучателиПисьма.Контакт, - | ЭлектронноеПисьмоИсходящееПолучателиПисьма.Представление - |ИЗ - | Документ.ЭлектронноеПисьмоИсходящее.ПолучателиПисьма КАК ЭлектронноеПисьмоИсходящееПолучателиПисьма - |ГДЕ - | ЭлектронноеПисьмоИсходящееПолучателиПисьма.Ссылка В - | (ВЫБРАТЬ - | НеобработанныеВзаимодействия.Ссылка - | ИЗ - | НеобработанныеВзаимодействия КАК НеобработанныеВзаимодействия) - | - |ОБЪЕДИНИТЬ - | - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | ЭлектронноеПисьмоИсходящееПолучателиКопий.Ссылка, - | ЭлектронноеПисьмоИсходящееПолучателиКопий.Контакт, - | ЭлектронноеПисьмоИсходящееПолучателиКопий.Представление - |ИЗ - | Документ.ЭлектронноеПисьмоИсходящее.ПолучателиКопий КАК ЭлектронноеПисьмоИсходящееПолучателиКопий - |ГДЕ - | ЭлектронноеПисьмоИсходящееПолучателиКопий.Ссылка В - | (ВЫБРАТЬ - | НеобработанныеВзаимодействия.Ссылка - | ИЗ - | НеобработанныеВзаимодействия КАК НеобработанныеВзаимодействия) - | - |ОБЪЕДИНИТЬ - | - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | ЭлектронноеПисьмоИсходящееПолучателиСкрытыхКопий.Ссылка, - | ЭлектронноеПисьмоИсходящееПолучателиСкрытыхКопий.Контакт, - | ЭлектронноеПисьмоИсходящееПолучателиСкрытыхКопий.Представление - |ИЗ - | Документ.ЭлектронноеПисьмоИсходящее.ПолучателиСкрытыхКопий КАК ЭлектронноеПисьмоИсходящееПолучателиСкрытыхКопий - |ГДЕ - | ЭлектронноеПисьмоИсходящееПолучателиСкрытыхКопий.Ссылка В - | (ВЫБРАТЬ - | НеобработанныеВзаимодействия.Ссылка - | ИЗ - | НеобработанныеВзаимодействия КАК НеобработанныеВзаимодействия) - | - |ИНДЕКСИРОВАТЬ ПО - | ПредставлениеКонтакта - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ РАЗЛИЧНЫЕ - | ИнформацияОКонтактах.Взаимодействие КАК Взаимодействие, - | ВЫБОР - | КОГДА ИнформацияОКонтактах.Контакт = НЕОПРЕДЕЛЕНО - | ТОГДА ЕСТЬNULL(СтроковыеКонтактыВзаимодействий.Ссылка, НЕОПРЕДЕЛЕНО) - | ИНАЧЕ ИнформацияОКонтактах.Контакт - | КОНЕЦ КАК Контакт, - | ИнформацияОКонтактах.ПредставлениеКонтакта - |ИЗ - | ИнформацияОКонтактах КАК ИнформацияОКонтактах - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СтроковыеКонтактыВзаимодействий КАК СтроковыеКонтактыВзаимодействий - | ПО ИнформацияОКонтактах.ПредставлениеКонтакта = СтроковыеКонтактыВзаимодействий.Наименование - |ИТОГИ ПО - | Взаимодействие"; - - РезультатЗапроса = Запрос.Выполнить(); - Если РезультатЗапроса.Пустой() Тогда - Возврат; - КонецЕсли; - - СозданныеСтроковыеКонтакты = Новый Соответствие; - - ВыборкаВзаимодействие = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); - Пока ВыборкаВзаимодействие.Следующий() Цикл - - ВыборкаДетали = ВыборкаВзаимодействие.Выбрать(); - - НаборЗаписей = СоздатьНаборЗаписей(); - НаборЗаписей.Отбор.Взаимодействие.Установить(ВыборкаВзаимодействие.Взаимодействие); - - Пока ВыборкаДетали.Следующий() Цикл - - НоваяЗапись = НаборЗаписей.Добавить(); - НоваяЗапись.Взаимодействие = ВыборкаВзаимодействие.Взаимодействие; - Если ВыборкаДетали.Контакт <> Неопределено Тогда - НоваяЗапись.Контакт = ВыборкаДетали.Контакт; - Иначе - - УжеСозданныйСтроковыйКонтакт = СозданныеСтроковыеКонтакты.Получить(ВыборкаДетали.ПредставлениеКонтакта); - - Если УжеСозданныйСтроковыйКонтакт = Неопределено Тогда - СтроковыйКонтактВзаимодействий = Справочники.СтроковыеКонтактыВзаимодействий.СоздатьЭлемент(); - СтроковыйКонтактВзаимодействий.Наименование = ВыборкаДетали.ПредставлениеКонтакта; - СтроковыйКонтактВзаимодействий.Записать(); - СозданныеСтроковыеКонтакты.Вставить(ВыборкаДетали.ПредставлениеКонтакта, СтроковыйКонтактВзаимодействий.Ссылка); - НоваяЗапись.Контакт = СтроковыйКонтактВзаимодействий.Ссылка; - Иначе - НоваяЗапись.Контакт = УжеСозданныйСтроковыйКонтакт; - КонецЕсли; - КонецЕсли; - - КонецЦикла; - - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборЗаписей); - - КонецЦикла; - - Параметры.ОбработкаЗавершена = (ВыборкаВзаимодействие.Количество() = 0); - -КонецПроцедуры - -#КонецОбласти - -#КонецОбласти - -#КонецЕсли \ No newline at end of file diff --git a/SSL/src/InformationRegisters/КурсыВалют/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/КурсыВалют/Forms/ФормаЗаписи/Module.bsl index 6369a97c8..6b1eacb7a 100644 --- a/SSL/src/InformationRegisters/КурсыВалют/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/КурсыВалют/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Не ЗначениеЗаполнено(Запись.ИсходныйКлючЗаписи) Тогда Запись.Период = ТекущаяДатаСеанса(); КонецЕсли; diff --git a/SSL/src/InformationRegisters/КурсыВалют/Help/ru.html b/SSL/src/InformationRegisters/КурсыВалют/Help/ru.html index 0a0c0a064..5efe1ed83 100644 --- a/SSL/src/InformationRegisters/КурсыВалют/Help/ru.html +++ b/SSL/src/InformationRegisters/КурсыВалют/Help/ru.html @@ -1,24 +1,32 @@ - +

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

      -

      Курсы валют можно загружать с сайта 1С, автоматически (с помощью регламентного задания) или вручную (см. загрузка курсов валют).

      +

      Курсы валют можно загружать с портала 1С:ИТС, автоматически (с помощью регламентного задания) или вручную (см. загрузка курсов валют).

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

      -

      Если нет возможности загружать курсы с сайта 1С, их можно ввести вручную.

      +

      Если нет возможности загружать курсы с портала 1С:ИТС, их можно ввести вручную.

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

      • Дата курса; -
      • Валюта - символьный код валюты, принятый международным стандартом; -
      • Курс; -
      • Кратность.

      Ввод курса валюты вручную

      + +
    • Валюта - символьный код валюты, принятый международным стандартом; +
    • +
    • Курс; +
    • +
    • Кратность.
    • Ввод курса валюты вручную

      • Нажмите Создать, 
        -
      • +
      • +
      • выберите из списка Валюту (соответствует списку Валюты).
        -
      • +
      • +
      • введите Дату курса или выберите с помощью календаря, 
        -
      • +
      • +
      • введите Курс,
        -
      • +
      • +
      • введите Кратность - по умолчанию равна 1. Если курс валюты по отношению к рублю очень низкий (точность составляет меньше четырех знаков дробной части), то необходимо указать количество котировочных единиц. Например, курс вьетнамского донга 16,1574 рубля за 10000 вьетнамских донгов. В этом случае в поле Кратность необходимо указать значение 10000, а в поле курс - 16,1574.

      См. также:

      \ No newline at end of file diff --git a/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/ManagerModule.bsl b/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/ManagerModule.bsl index 35a7bfe26..b3c5c7582 100644 --- a/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/КэшПрограммныхИнтерфейсов/ManagerModule.bsl @@ -323,14 +323,6 @@ #Область СлужебныеПроцедурыИФункции -// Возвращает актуальность записи кэша версий. -// -// Параметры: -// ДатаОбновления - Дата - дата обновления записи. -// -// Возвращаемое значение: -// Булево - признак устаревания записи. -// Функция КэшПрограммногоИнтерфейсаАктуален(ДатаОбновления) Если ЗначениеЗаполнено(ДатаОбновления) Тогда @@ -341,28 +333,12 @@ КонецФункции -// Функция возвращает объект WSОпределения созданный с переданными параметрами. -// -// Примечание: при получении определения используется кэш, обновление которого осуществляется -// при смене версии конфигурации. Если для целей отладки требуется обновить -// значения в кэше, раньше этого времени, следует удалить из регистра сведений. -// КэшПрограммныхИнтерфейсов соответствующие записи. -// -// Параметры: -// АдресWSDL - Строка - месторасположение wsdl. -// ИмяПользователя - Строка - имя пользователя для входа на сервер. -// Пароль - Строка - пароль пользователя. -// Таймаут - Число - таймаут на получение wsdl. -// ЗащищенноеСоединение - ЗащищенноеСоединениеOpenSSL, Неопределено - (необязательный) параметры защищенного соединения. -// -// Возвращаемое значение: -// WSОпределения -// Функция WSОпределения(Знач АдресWSDL, Знач ИмяПользователя, Знач Пароль, Знач Таймаут = 10, Знач ЗащищенноеСоединение = Неопределено) Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда Попытка - Определения = Новый WSОпределения(АдресWSDL, ИмяПользователя, Пароль, ,Таймаут, ЗащищенноеСоединение); + ИнтернетПрокси = Неопределено; // По умолчанию. + Определения = Новый WSОпределения(АдресWSDL, ИмяПользователя, Пароль, ИнтернетПрокси, Таймаут, ЗащищенноеСоединение); Исключение ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Не удалось получить WS-определения по адресу diff --git a/SSL/src/InformationRegisters/НаборыЗначенийДоступа/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НаборыЗначенийДоступа/Forms/ФормаЗаписи/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/НаборыЗначенийДоступа/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НаборыЗначенийДоступа/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/НаборыЗначенийДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/НаборыЗначенийДоступа/Forms/ФормаСписка/Module.bsl index a9c1f25d9..4dbc81989 100644 --- a/SSL/src/InformationRegisters/НаборыЗначенийДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/НаборыЗначенийДоступа/Forms/ФормаСписка/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/НазначениеДополнительныхОбработок/ManagerModule.bsl b/SSL/src/InformationRegisters/НазначениеДополнительныхОбработок/ManagerModule.bsl index 8beb92dfd..46ae608a0 100644 --- a/SSL/src/InformationRegisters/НазначениеДополнительныхОбработок/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НазначениеДополнительныхОбработок/ManagerModule.bsl @@ -37,28 +37,6 @@ КонецЦикла; КонецПроцедуры -// Полностью перезаполняет данные регистра. -// -Процедура Обновить(РежимОбновленияИБ = Ложь) Экспорт - - Запрос = НовыйЗапросОбновленияДанныхРегистра(Неопределено); - ВыборкаСсылок = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); - НаборЗаписей = СоздатьНаборЗаписей(); - Пока ВыборкаСсылок.Следующий() Цикл - ВыборкаЗаписей = ВыборкаСсылок.Выбрать(); - Пока ВыборкаЗаписей.Следующий() Цикл - ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(), ВыборкаЗаписей); - КонецЦикла; - КонецЦикла; - - Если РежимОбновленияИБ Тогда - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборЗаписей); - Иначе - НаборЗаписей.Записать(); - КонецЕсли; - -КонецПроцедуры - // Возвращает текст запроса, который используется для обновления данных регистра. // Функция НовыйЗапросОбновленияДанныхРегистра(СсылкиОбъектовМетаданных) diff --git a/SSL/src/InformationRegisters/НазначениеДополнительныхОбработок/НазначениеДополнительныхОбработок.mdo b/SSL/src/InformationRegisters/НазначениеДополнительныхОбработок/НазначениеДополнительныхОбработок.mdo index b0aff4157..fc1fdec9f 100644 --- a/SSL/src/InformationRegisters/НазначениеДополнительныхОбработок/НазначениеДополнительныхОбработок.mdo +++ b/SSL/src/InformationRegisters/НазначениеДополнительныхОбработок/НазначениеДополнительныхОбработок.mdo @@ -148,27 +148,4 @@ true - - УдалитьТипОбъекта - - ru - (не используется) Тип объекта - - - String - - 100 - - - - ru - Полное имя объекта - - - - Use - - - -
      diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/МоиНапоминания/Help/ru.html b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/МоиНапоминания/Help/ru.html index de1776b19..1f415871a 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/МоиНапоминания/Help/ru.html +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/МоиНапоминания/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

      • Срок напоминания - время срабатывания напоминания; diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/МоиНапоминания/Module.bsl b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/МоиНапоминания/Module.bsl index c72db1bad..6274efabf 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/МоиНапоминания/Module.bsl +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/МоиНапоминания/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Список.Параметры.УстановитьЗначениеПараметра("Пользователь", Пользователи.ТекущийПользователь()); КонецПроцедуры diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Напоминание/Form.form b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Напоминание/Form.form index e0f4fb5e5..faf4867d3 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Напоминание/Form.form +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Напоминание/Form.form @@ -674,7 +674,7 @@ <key>ru</key> - <value>Группа интервал времени относительно источника</value> + <value>Интервал времени относительно источника</value> ГруппаИнтервалВремениОтносительноИсточникаРасширеннаяПодсказка @@ -789,7 +789,7 @@ <key>ru</key> - <value>Группа имя реквизита источника</value> + <value>Имя реквизита источника</value> ГруппаИмяРеквизитаИсточникаРасширеннаяПодсказка diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Напоминание/Help/ru.html b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Напоминание/Help/ru.html index 287021080..ae4bd6e8a 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Напоминание/Help/ru.html +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Напоминание/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

        Открывается по кнопке  Органайзер - Напомнить из различных объектов программы. При этом можно ввести только одно напоминание для одного объекта.

        diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Напоминание/Module.bsl b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Напоминание/Module.bsl index abfd7500e..9388127a9 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Напоминание/Module.bsl +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/Напоминание/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - НастройкиПодсистемы = НапоминанияПользователяСлужебный.НастройкиПодсистемы(); Объект.Пользователь = Пользователи.ТекущийПользователь(); @@ -359,9 +355,6 @@ ИнтеграцияПодсистемБСП.ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания(Объект.Источник, РеквизитыСДатами); НапоминанияПользователяПереопределяемый.ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания(Объект.Источник, РеквизитыСДатами); - // Поддержка обратной совместимости. - НапоминанияПользователяКлиентСерверПереопределяемый.ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания(Объект.Источник, РеквизитыСДатами); - Элементы.ИмяРеквизитаИсточника.СписокВыбора.Очистить(); ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.Источник, СтрСоединить(РеквизитыСДатами, ",")); diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ФормаОповещения/Help/ru.html b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ФормаОповещения/Help/ru.html index 9e5337eff..fde49c9d2 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ФормаОповещения/Help/ru.html +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ФормаОповещения/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

        diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ФормаОповещения/Module.bsl b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ФормаОповещения/Module.bsl index 704e5708a..3a68d27af 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ФормаОповещения/Module.bsl +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/Forms/ФормаОповещения/Module.bsl @@ -10,9 +10,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; Если ОбщегоНазначения.ЭтоВебКлиент() Тогда РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца; diff --git a/SSL/src/InformationRegisters/НапоминанияПользователя/Help/ru.html b/SSL/src/InformationRegisters/НапоминанияПользователя/Help/ru.html index 78bfd3285..6976b302a 100644 --- a/SSL/src/InformationRegisters/НапоминанияПользователя/Help/ru.html +++ b/SSL/src/InformationRegisters/НапоминанияПользователя/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

        Открывается по кнопке  Органайзер - Напомнить из различных объектов программы. При этом можно ввести только одно напоминание для одного объекта.

        diff --git a/SSL/src/InformationRegisters/НаследованиеНастроекПравОбъектов/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/НаследованиеНастроекПравОбъектов/Forms/ФормаСписка/Module.bsl index 30689a3a4..79c90a844 100644 --- a/SSL/src/InformationRegisters/НаследованиеНастроекПравОбъектов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/НаследованиеНастроекПравОбъектов/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/НастройкиВерсионированияОбъектов/Forms/НастройкиХраненияИстории/Module.bsl b/SSL/src/InformationRegisters/НастройкиВерсионированияОбъектов/Forms/НастройкиХраненияИстории/Module.bsl index bece6f3aa..bd1960992 100644 --- a/SSL/src/InformationRegisters/НастройкиВерсионированияОбъектов/Forms/НастройкиХраненияИстории/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиВерсионированияОбъектов/Forms/НастройкиХраненияИстории/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЗаполнитьТипыОбъектовВДеревеЗначений(); ЗаполнитьСпискиВыбора(); diff --git a/SSL/src/InformationRegisters/НастройкиВерсионированияОбъектов/Help/ru.html b/SSL/src/InformationRegisters/НастройкиВерсионированияОбъектов/Help/ru.html index a2d253656..83a0b941f 100644 --- a/SSL/src/InformationRegisters/НастройкиВерсионированияОбъектов/Help/ru.html +++ b/SSL/src/InformationRegisters/НастройкиВерсионированияОбъектов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

        Для ведения истории изменений объектов необходимо включить флажок Хранить историю изменений (по умолчанию включен) в разделе Администрирование - Общие настройки - История изменений.

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

        diff --git a/SSL/src/InformationRegisters/НастройкиОбменаДаннымиXDTO/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиОбменаДаннымиXDTO/Forms/ФормаЗаписи/Module.bsl index b422bb4c3..14f0338a6 100644 --- a/SSL/src/InformationRegisters/НастройкиОбменаДаннымиXDTO/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиОбменаДаннымиXDTO/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - МенеджерЗаписи = РегистрыСведений.НастройкиОбменаДаннымиXDTO.СоздатьМенеджерЗаписи(); ЗаполнитьЗначенияСвойств(МенеджерЗаписи, Запись.ИсходныйКлючЗаписи); МенеджерЗаписи.Прочитать(); diff --git a/SSL/src/InformationRegisters/НастройкиОбменаДаннымиXDTO/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиОбменаДаннымиXDTO/ManagerModule.bsl index f771f0805..f31729015 100644 --- a/SSL/src/InformationRegisters/НастройкиОбменаДаннымиXDTO/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиОбменаДаннымиXDTO/ManagerModule.bsl @@ -80,7 +80,7 @@ СтруктураЗаписи.Вставить("УзелИнформационнойБазы", УзелИнформационнойБазы); СтруктураЗаписи.Вставить(ИмяИзмерения, Новый ХранилищеЗначения(НовыеНастройки, Новый СжатиеДанных(9))); - ОбменДаннымиСервер.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиОбменаДаннымиXDTO"); + ОбменДаннымиСлужебный.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиОбменаДаннымиXDTO"); КонецПроцедуры diff --git a/SSL/src/InformationRegisters/НастройкиОтправителя/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/InformationRegisters/НастройкиОтправителя/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss deleted file mode 100644 index 61e6fb4bb..000000000 --- a/SSL/src/InformationRegisters/НастройкиОтправителя/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss +++ /dev/null @@ -1,17 +0,0 @@ - - - - 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 deleted file mode 100644 index f6eafbfe5..000000000 --- a/SSL/src/InformationRegisters/НастройкиОтправителя/Forms/ФормаСписка/Form.form +++ /dev/null @@ -1,326 +0,0 @@ - - - - ГруппаПользовательскихНастроек - 11 - true - true - - true - - - <key>ru</key> - <value>Группа пользовательских настроек</value> - - - ГруппаПользовательскихНастроекРасширеннаяПодсказка - 12 - Label - true - true - - Left - - - UsualGroup - - Vertical - Auto - true - true - Auto - Auto - - - - КоманднаяПанель - 13 - true - true - - true - - - <key>ru</key> - <value>Командная панель</value> - - - КоманднаяПанельРасширеннаяПодсказка - 14 - Label - true - true - - Left - - - CommandBar - - Left - Form - - - - Список - 1 - - <key>ru</key> - <value>Список</value> - - true - true - - true - - - Список - - true - None - - КаналСообщений - 4 - true - true - - true - - - Список.КаналСообщений - - true - - КаналСообщенийExtendedTooltip - 9 - Label - true - true - - Left - - - - КаналСообщенийКонтекстноеМеню - 5 - true - - LabelField - Enter - true - Left - true - - true - true - - - - Получатель - 6 - true - true - - true - - - Список.Получатель - - true - - ПолучательExtendedTooltip - 10 - Label - true - true - - Left - - - - ПолучательКонтекстноеМеню - 7 - true - - LabelField - Enter - true - Left - true - - true - true - - - None - - СписокКоманднаяПанель - 3 - Left - - - СписокSearchString - 15 - - СписокSearchStringExtendedTooltip - 17 - Label - true - true - - Left - - - - СписокSearchStringContextMenu - 16 - true - - Список - - true - - - - СписокViewStatus - 18 - - СписокViewStatusExtendedTooltip - 20 - Label - true - true - - Left - - - - СписокViewStatusContextMenu - 19 - true - - ViewStatusAddition - Список - - true - - - - СписокSearchControl - 21 - - СписокSearchControlExtendedTooltip - 23 - Label - true - true - - Left - - - - СписокSearchControlContextMenu - 22 - true - - SearchControlAddition - Список - - true - - - - СписокExtendedTooltip - 8 - Label - true - true - - Left - - - - СписокКонтекстноеМеню - 2 - true - - true - true - true - true - true - MultiRow -
        true
        - 1 - 1 - AutoUse - AutoUse - true - true - Auto - Auto - ExpandTopLevel - true - true - true - - Список.DefaultPicture - - true - - 60 - - 0001-01-01T00:00:00 - 0001-01-01T00:00:00 - - - true - true - ГруппаПользовательскихНастроек - -
        - - ФормаКоманднаяПанель - -1 - Left - - - OnCreateAtServer - ПриСозданииНаСервере - - DontBlock - true - true - true - Vertical - true - true - true - auto - true - - Список - 1 - - DynamicList - - - true - - - true - -
        true
        - - InformationRegister.НастройкиОтправителя - true - true - true - true - -
        - - - - - -
        diff --git a/SSL/src/InformationRegisters/НастройкиОтправителя/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиОтправителя/ManagerModule.bsl deleted file mode 100644 index 74e3aa65a..000000000 --- a/SSL/src/InformationRegisters/НастройкиОтправителя/ManagerModule.bsl +++ /dev/null @@ -1,42 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 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/InformationRegisters/НастройкиОтправителя/НастройкиОтправителя.mdo b/SSL/src/InformationRegisters/НастройкиОтправителя/НастройкиОтправителя.mdo deleted file mode 100644 index caac786f2..000000000 --- a/SSL/src/InformationRegisters/НастройкиОтправителя/НастройкиОтправителя.mdo +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - НастройкиОтправителя - - ru - Настройки отправителя - - Используется для хранения связей каналов с получателями этих каналов. Регистр задает рассылку по получателям со стороны отправителя. - InDialog - InformationRegister.НастройкиОтправителя.Form.ФормаЗаписи - InformationRegister.НастройкиОтправителя.Form.ФормаСписка - - Use - Active - - Use - - - - - Use - LineNumber - - Use - - - - - Use - Recorder - - Use - - - - - Use - Period - - ShowError - Use - - - - Managed - - КаналСообщений - - ru - Канал сообщений - - - String - - 150 - - - - ru - Имя канала сообщений - - - - Use - Use - - - - Получатель - - ru - Получатель - - - ExchangePlanRef.ОбменСообщениями - - - ru - Конечная точка (получатель сообщений из канала) - - - - true - Use - true - - true - - - ФормаСписка - - ru - Форма списка - - PersonalComputer - MobileDevice - - - ФормаЗаписи - - ru - Форма записи - - PersonalComputer - MobileDevice - - - НастройкиОтправителя - - ru - Настройки отправителя - - FormNavigationPanelGoTo - - ExchangePlanRef.ОбменСообщениями - - Auto - - diff --git a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаЗаписи/Help/ru.html b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаЗаписи/Help/ru.html index 08341b3cf..0bc366cd2 100644 --- a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаЗаписи/Help/ru.html +++ b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаЗаписи/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

        Новый отбор

        diff --git a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Module.bsl index 7426a9c97..2a69db297 100644 --- a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - УстановитьУсловноеОформление(); ЗаполнитьТипыОбъектовВДеревеЗначений(); diff --git a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Help/ru.html b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Help/ru.html index 91d94bf0d..de5e9b577 100644 --- a/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Help/ru.html +++ b/SSL/src/InformationRegisters/НастройкиОчисткиФайлов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

        @@ -24,5 +24,5 @@
        • Для получения отчета об объеме данных на диске, который занимают "ненужные" файлы, нажмите ссылку Объем ненужных файлов.

        Очистка файлов вручную

        • С помощью кнопки Очистить можно в любой момент времени вручную удалить "ненужные" файлы с учетом настроенных правил очистки.

        Настройка автоматической очистки файлов

        \ No newline at end of file diff --git a/SSL/src/InformationRegisters/НастройкиПравОбъектов/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиПравОбъектов/Forms/ФормаЗаписи/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/НастройкиПравОбъектов/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиПравОбъектов/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/НастройкиПравОбъектов/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/НастройкиПравОбъектов/Forms/ФормаСписка/Module.bsl index 555562602..1d3209308 100644 --- a/SSL/src/InformationRegisters/НастройкиПравОбъектов/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиПравОбъектов/Forms/ФормаСписка/Module.bsl @@ -13,10 +13,6 @@ УстановитьУсловноеОформление(); - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/НастройкиСинхронизацииФайлов/Module.bsl b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/НастройкиСинхронизацииФайлов/Module.bsl index 46bdfbc6b..5e38bf4aa 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/НастройкиСинхронизацииФайлов/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/НастройкиСинхронизацииФайлов/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - УстановитьУсловноеОформление(); Если Параметры.Свойство("ВладелецФайла") Тогда diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ПростаяФормаЗаписиНастройки/Help/ru.html b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ПростаяФормаЗаписиНастройки/Help/ru.html index e448d453a..8c380a6e8 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ПростаяФормаЗаписиНастройки/Help/ru.html +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ПростаяФормаЗаписиНастройки/Help/ru.html @@ -1,4 +1,4 @@ - +

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

        Открывается из списка Присоединенные файлы объектов программы по команде Еще - Синхронизация с облаком.

        Настройка синхронизации файлов

        diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Help/ru.html b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Help/ru.html index 7802b5630..740ad7558 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Help/ru.html +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Help/ru.html @@ -1,4 +1,4 @@ - +

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

        Открывается из списка Настройки синхронизации файлов по соответствующей ссылке.

        • По умолчанию включен флажок Синхронизировать файлы с облачным сервисом. diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Module.bsl b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Module.bsl index 77a9ad031..632bd1c25 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Forms/ФормаЗаписиНастройки/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Свойство("ВладелецФайла") Тогда Запись.ВладелецФайла = Параметры.ВладелецФайла; diff --git a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Help/ru.html b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Help/ru.html index 9e6e8ecbf..8baac1664 100644 --- a/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Help/ru.html +++ b/SSL/src/InformationRegisters/НастройкиСинхронизацииФайлов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

          Открывается в разделе Администрирование - Настройки работы с файлами по команде Настройки синхронизации.

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

          diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/НастройкаПодключенияКСервису/Module.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/НастройкаПодключенияКСервису/Module.bsl index 7370a4b37..6bf01793b 100644 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/НастройкаПодключенияКСервису/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/НастройкаПодключенияКСервису/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОбменДаннымиСервер.ПроверитьВозможностьАдминистрированияОбменов(); УстановитьПривилегированныйРежим(Истина); diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/ПовторнаяСинхронизацияДанныхПередЗапуском/Module.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/ПовторнаяСинхронизацияДанныхПередЗапуском/Module.bsl index 0d9d889ac..7bb101a9f 100644 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/ПовторнаяСинхронизацияДанныхПередЗапуском/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/ПовторнаяСинхронизацияДанныхПередЗапуском/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - УзелИнформационнойБазы = ОбменДаннымиСервер.ГлавныйУзел(); ЭтоАвтономноеРабочееМесто = ОбменДаннымиСервер.ЭтоАвтономноеРабочееМесто(); diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/ФормаЗаписи/Module.bsl index bd5f8ad11..37a04fe8a 100644 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - УстановитьВидимостьЭлементовФормы(); Если ЗначениеЗаполнено(Запись.ВидТранспортаСообщенийОбменаПоУмолчанию) Тогда diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Help/ru.html b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Help/ru.html index eb446eae2..93cba204e 100644 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Help/ru.html +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

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

          diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/ManagerModule.bsl index 997f28b92..d3f1f0ad5 100644 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаДанными/ManagerModule.bsl @@ -15,7 +15,7 @@ НачатьТранзакцию(); Попытка - ОбменДаннымиСервер.ДобавитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиТранспортаОбменаДанными"); + ОбменДаннымиСлужебный.ДобавитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиТранспортаОбменаДанными"); ЗаписатьПароль("COMПарольПользователя", "COMПарольПользователя", СтруктураЗаписи); ЗаписатьПароль("FTPСоединениеПароль", "FTPСоединениеПароль", СтруктураЗаписи); @@ -35,7 +35,7 @@ НачатьТранзакцию(); Попытка - ОбменДаннымиСервер.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиТранспортаОбменаДанными"); + ОбменДаннымиСлужебный.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиТранспортаОбменаДанными"); ЗаписатьПароль("COMПарольПользователя", "COMПарольПользователя", СтруктураЗаписи); ЗаписатьПароль("FTPСоединениеПароль", "FTPСоединениеПароль", СтруктураЗаписи); @@ -345,21 +345,6 @@ Возврат Результат; КонецФункции -Функция НастройкиТранспортаДляУзлаЗаданы(Корреспондент) Экспорт - - Запрос = Новый Запрос( - "ВЫБРАТЬ - | 1 КАК ЕстьНастройки - |ИЗ - | РегистрСведений.НастройкиТранспортаОбменаДанными КАК НастройкиТранспорта - |ГДЕ - | НастройкиТранспорта.Корреспондент = &Корреспондент"); - Запрос.УстановитьПараметр("Корреспондент", Корреспондент); - - Возврат Не Запрос.Выполнить().Пустой(); - -КонецФункции - Функция НастроенныеВидыТранспорта(УзелИнформационнойБазы) Экспорт Результат = Новый Массив; diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаЗаписи/Form.form b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаЗаписи/Form.form new file mode 100644 index 000000000..f9a5035cc --- /dev/null +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаЗаписи/Form.form @@ -0,0 +1,1008 @@ + + + + ВидТранспортаСообщенийОбменаПоУмолчанию + 1 + + <key>ru</key> + <value>Транспорт по умолчанию</value> + + true + true + + true + + + Запись.ВидТранспортаСообщенийОбменаПоУмолчанию + + + ВидТранспортаСообщенийОбменаПоУмолчаниюExtendedTooltip + 104 + Label + true + true + + Left + + + + ВидТранспортаСообщенийОбменаПоУмолчаниюКонтекстноеМеню + 2 + true + + InputField + Enter + true + Left + true + + 50 + true + true + false + true + true + true + true + true + Normal + + + + СтраницыВидовТранспорта + 47 + + НастройкиТранспортаFILE + 5 + + FILEКаталогОбменаИнформацией + 8 + true + true + + true + + + Запись.FILEКаталогОбменаИнформацией + + + FILEКаталогОбменаИнформациейExtendedTooltip + 107 + Label + true + true + + Left + + + + FILEКаталогОбменаИнформациейКонтекстноеМеню + 9 + true + + InputField + Enter + true + Left + true + + + StartChoice + FILEКаталогОбменаИнформациейНачалоВыбора + + + Opening + FILEКаталогОбменаИнформациейОткрытие + + true + true + true + true + true + true + true + true + Normal + + + + ПроверитьПодключениеFILE + 42 + true + true + + true + + false + + ПроверитьПодключениеFILEExtendedTooltip + 108 + Label + true + true + + Left + + + UsualButton + Form.Command.ПроверитьПодключениеFILE + Normal + Auto + true + true + UserCmds + Auto + + + Группа1 + 100 + + FILEСжиматьФайлИсходящегоСообщения + 10 + true + true + + true + + + Запись.FILEСжиматьФайлИсходящегоСообщения + + Right + + FILEСжиматьФайлИсходящегоСообщенияExtendedTooltip + 110 + Label + true + true + + Left + + + + FILEСжиматьФайлИсходящегоСообщенияКонтекстноеМеню + 11 + true + + CheckBoxField + Enter + true + Left + true + + + + ПарольАрхиваСообщенияОбмена1 + 101 + true + true + + true + + + ПарольАрхиваСообщенияОбмена + + + OnChange + ПарольАрхиваСообщенияОбмена1ПриИзменении + + + ПарольАрхиваСообщенияОбмена1ExtendedTooltip + 111 + Label + true + true + + Left + + + + ПарольАрхиваСообщенияОбмена1КонтекстноеМеню + 102 + true + + InputField + Enter + true + Left + true + + 20 + true + true + false + true + true + true + true + true + Normal + + + true + true + + true + + + Группа1ExtendedTooltip + 109 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Обмен через сетевой каталог</value> + + + НастройкиТранспортаFILEExtendedTooltip + 106 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + + НастройкиТранспортаFTP + 6 + + ГруппаСерверПорт + 37 + + FTPСоединениеПуть + 14 + true + true + + true + + + Запись.FTPСоединениеПуть + + + FTPСоединениеПутьExtendedTooltip + 114 + Label + true + true + + Left + + + + FTPСоединениеПутьКонтекстноеМеню + 15 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + FTPСоединениеПорт + 16 + true + true + + true + + + Запись.FTPСоединениеПорт + + + FTPСоединениеПортExtendedTooltip + 115 + Label + true + true + + Left + + + + FTPСоединениеПортКонтекстноеМеню + 17 + true + + InputField + Enter + true + Left + true + + true + true + true + + ru + ЧГ=0 + + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Сервер порт</value> + + + ГруппаСерверПортExtendedTooltip + 113 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + ГруппаПользовательПароль + 38 + + FTPСоединениеПользователь + 18 + true + true + + true + + + Запись.FTPСоединениеПользователь + + + FTPСоединениеПользовательExtendedTooltip + 117 + Label + true + true + + Left + + + + FTPСоединениеПользовательКонтекстноеМеню + 19 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + FTPСоединениеПароль + 22 + true + true + + true + + + FTPСоединениеПароль + + + OnChange + FTPСоединениеПарольПриИзменении + + + FTPСоединениеПарольExtendedTooltip + 118 + Label + true + true + + Left + + + + FTPСоединениеПарольКонтекстноеМеню + 23 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + true + true + + true + + + <key>ru</key> + <value>Пользователь пароль</value> + + + ГруппаПользовательПарольExtendedTooltip + 116 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + Группа2 + 125 + + FTPСоединениеМаксимальныйДопустимыйРазмерСообщения + 39 + true + true + + true + + + Запись.FTPСоединениеМаксимальныйДопустимыйРазмерСообщения + + + FTPСоединениеМаксимальныйДопустимыйРазмерСообщенияExtendedTooltip + 119 + Label + true + true + + Left + + + + FTPСоединениеМаксимальныйДопустимыйРазмерСообщенияКонтекстноеМеню + 40 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + true + Normal + + + + Декорация1 + 127 + + <key>ru</key> + <value>КБ (0 - нет ограничений)</value> + + true + true + + true + + + Декорация1РасширеннаяПодсказка + 129 + Label + true + true + + Left + + + + Декорация1КонтекстноеМеню + 128 + true + + Label + true + true + + Left + + + true + true + + true + + + Группа2РасширеннаяПодсказка + 126 + Label + true + true + + Left + + + UsualGroup + + Auto + true + true + Auto + Auto + + + + FTPСоединениеПассивноеСоединение + 20 + true + true + + true + + + Запись.FTPСоединениеПассивноеСоединение + + Right + + FTPСоединениеПассивноеСоединениеExtendedTooltip + 120 + Label + true + true + + Left + + + + FTPСоединениеПассивноеСоединениеКонтекстноеМеню + 21 + true + + CheckBoxField + Enter + true + Left + true + + + + ПроверитьПодключениеFTP + 41 + true + true + + true + + false + + ПроверитьПодключениеFTPExtendedTooltip + 121 + Label + true + true + + Left + + + UsualButton + Form.Command.ПроверитьПодключениеFTP + Normal + Auto + true + true + UserCmds + Auto + + + Группа3 + 103 + + FTPСжиматьФайлИсходящегоСообщения + 12 + true + true + + true + + + Запись.FTPСжиматьФайлИсходящегоСообщения + + Right + + FTPСжиматьФайлИсходящегоСообщенияExtendedTooltip + 123 + Label + true + true + + Left + + + + FTPСжиматьФайлИсходящегоСообщенияКонтекстноеМеню + 13 + true + + CheckBoxField + Enter + true + Left + true + + + + ПарольАрхиваСообщенияОбмена + 34 + true + true + + true + + + ПарольАрхиваСообщенияОбмена + + + OnChange + ПарольАрхиваСообщенияОбменаПриИзменении + + + ПарольАрхиваСообщенияОбменаExtendedTooltip + 124 + Label + true + true + + Left + + + + ПарольАрхиваСообщенияОбменаКонтекстноеМеню + 35 + true + + InputField + Enter + true + Left + true + + 20 + true + true + false + true + true + true + true + true + Normal + + + true + true + + true + + + Группа3ExtendedTooltip + 122 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + NormalSeparation + true + true + Auto + Auto + + + true + true + + true + + + <key>ru</key> + <value>Обмен через FTP</value> + + + ru + Настройки транспорта FILE + + + НастройкиТранспортаFTPExtendedTooltip + 112 + Label + true + true + + Left + + + Page + + Vertical + auto + false + + + true + true + + true + + + <key>ru</key> + <value>Страницы видов транспорта</value> + + + СтраницыВидовТранспортаExtendedTooltip + 105 + Label + true + true + + Left + + + Pages + + TabsOnTop + Auto + + + + ФормаКоманднаяПанель + -1 + Left + true + + + OnCreateAtServer + ПриСозданииНаСервере + + Copy + Delete + LockOwner + true + true + true + Vertical + true + true + true + UseIfNecessary + auto + true + + Запись + 1 + + InformationRegisterRecordManager.НастройкиТранспортаОбменаОбластейДанных + + + true + + + true + +
          true
          + true +
          + + FTPСоединениеПароль + + <key>ru</key> + <value>Пароль</value> + + 2 + + String + + 50 + + + + true + + + true + + + + ПарольАрхиваСообщенияОбмена + + <key>ru</key> + <value>Пароль архива сообщения обмена</value> + + 3 + + String + + 50 + + + + true + + + true + + + + FTPСоединениеПарольИзменен + + <key>ru</key> + <value>FTPСоединение пароль изменен</value> + + 4 + + Boolean + + + true + + + true + + + + ПарольАрхиваСообщенияОбменаИзменен + + <key>ru</key> + <value>Пароль архива сообщения обмена изменен</value> + + 5 + + Boolean + + + true + + + true + + + + ПроверитьПодключениеFTP + + <key>ru</key> + <value>Проверить подключение</value> + + 1 + + ru + Проверить подключение через FTP ресурс + + + true + + + + ПроверитьПодключениеFTP + + + DontUse + Auto + + + ПроверитьПодключениеFILE + + <key>ru</key> + <value>Проверить подключение</value> + + 2 + + ru + Проверить подключение по сетевому каталогу + + + true + + + + ПроверитьПодключениеFILE + + + DontUse + Auto + + + + + + + + OnWriteAtServer + ПриЗаписиНаСервере + + +
          diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаЗаписи/Module.bsl new file mode 100644 index 000000000..814b458c4 --- /dev/null +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаЗаписи/Module.bsl @@ -0,0 +1,146 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + УстановитьВидимостьЭлементовФормы(); + + Если ЗначениеЗаполнено(Запись.ВидТранспортаСообщенийОбменаПоУмолчанию) Тогда + + ИмяСтраницы = "НастройкиТранспорта[ВидТранспорта]"; + ИмяСтраницы = СтрЗаменить(ИмяСтраницы, "[ВидТранспорта]" + , ОбщегоНазначения.ИмяЗначенияПеречисления(Запись.ВидТранспортаСообщенийОбменаПоУмолчанию)); + + Если Элементы[ИмяСтраницы].Видимость Тогда + + Элементы.СтраницыВидовТранспорта.ТекущаяСтраница = Элементы[ИмяСтраницы]; + + КонецЕсли; + + КонецЕсли; + + Если ЗначениеЗаполнено(Запись.КонечнаяТочкаКорреспондента) Тогда + УстановитьПривилегированныйРежим(Истина); + Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Запись.КонечнаяТочкаКорреспондента, "FTPСоединениеПарольОбластейДанных, ПарольАрхиваСообщенияОбменаОбластейДанных"); + FTPСоединениеПароль = ?(ЗначениеЗаполнено(Пароли.FTPСоединениеПарольОбластейДанных), ЭтотОбъект.УникальныйИдентификатор, ""); + ПарольАрхиваСообщенияОбмена = ?(ЗначениеЗаполнено(Пароли.ПарольАрхиваСообщенияОбменаОбластейДанных), ЭтотОбъект.УникальныйИдентификатор, ""); + УстановитьПривилегированныйРежим(Ложь); + КонецЕсли; + +КонецПроцедуры + +&НаСервере +Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + УстановитьПривилегированныйРежим(Истина); + Если FTPСоединениеПарольИзменен Тогда + ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Запись.КонечнаяТочкаКорреспондента, FTPСоединениеПароль, "FTPСоединениеПарольОбластейДанных"); + КонецЕсли; + Если ПарольАрхиваСообщенияОбменаИзменен Тогда + ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Запись.КонечнаяТочкаКорреспондента, ПарольАрхиваСообщенияОбмена, "ПарольАрхиваСообщенияОбменаОбластейДанных"); + КонецЕсли; + УстановитьПривилегированныйРежим(Ложь); +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +&НаКлиенте +Процедура FILEКаталогОбменаИнформациейНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + ОбменДаннымиКлиент.ОбработчикВыбораФайловогоКаталога(Запись, "FILEКаталогОбменаИнформацией", СтандартнаяОбработка); + +КонецПроцедуры + +&НаКлиенте +Процедура FILEКаталогОбменаИнформациейОткрытие(Элемент, СтандартнаяОбработка) + + ОбменДаннымиКлиент.ОбработчикОткрытияФайлаИлиКаталога(Запись, "FILEКаталогОбменаИнформацией", СтандартнаяОбработка) + +КонецПроцедуры + +&НаКлиенте +Процедура ПарольАрхиваСообщенияОбменаПриИзменении(Элемент) + ПарольАрхиваСообщенияОбменаИзменен = Истина; +КонецПроцедуры + +&НаКлиенте +Процедура FTPСоединениеПарольПриИзменении(Элемент) + FTPСоединениеПарольИзменен = Истина; +КонецПроцедуры + +&НаКлиенте +Процедура ПарольАрхиваСообщенияОбмена1ПриИзменении(Элемент) + ПарольАрхиваСообщенияОбменаИзменен = Истина; +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ПроверитьПодключениеFILE(Команда) + + ПроверитьПодключение("FILE"); + +КонецПроцедуры + +&НаКлиенте +Процедура ПроверитьПодключениеFTP(Команда) + + ПроверитьПодключение("FTP"); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаКлиенте +Процедура ПроверитьПодключение(ВидТранспортаСтрокой) + + Отказ = Ложь; + + ОчиститьСообщения(); + + ПроверитьПодключениеНаСервере(Отказ, ВидТранспортаСтрокой); + + ТекстПредупреждения = ?(Отказ, НСтр("ru = 'Не удалось установить подключение.'"), НСтр("ru = 'Подключение успешно установлено.'")); + ПоказатьПредупреждение(, ТекстПредупреждения); + +КонецПроцедуры + +&НаСервере +Процедура ПроверитьПодключениеНаСервере(Отказ, ВидТранспортаСтрокой) + + ОбменДаннымиСервер.ПроверитьПодключениеОбработкиТранспортаСообщенийОбмена(Отказ, Запись, Перечисления.ВидыТранспортаСообщенийОбмена[ВидТранспортаСтрокой]); + +КонецПроцедуры + +&НаСервере +Процедура УстановитьВидимостьЭлементовФормы() + + ИспользуемыеТранспорты = Новый Массив; + ИспользуемыеТранспорты.Добавить(Перечисления.ВидыТранспортаСообщенийОбмена.FILE); + ИспользуемыеТранспорты.Добавить(Перечисления.ВидыТранспортаСообщенийОбмена.FTP); + + Элементы.ВидТранспортаСообщенийОбменаПоУмолчанию.СписокВыбора.Очистить(); + + Для Каждого Элемент Из ИспользуемыеТранспорты Цикл + + Элементы.ВидТранспортаСообщенийОбменаПоУмолчанию.СписокВыбора.Добавить(Элемент, Строка(Элемент)); + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/Catalogs/ОчередьЗаданийОбластейДанных/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss similarity index 100% rename from SSL/src/Catalogs/ОчередьЗаданийОбластейДанных/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss rename to SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss diff --git a/SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаСписка/Form.form b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаСписка/Form.form similarity index 74% rename from SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаСписка/Form.form rename to SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаСписка/Form.form index dca0b0548..648fdd9dc 100644 --- a/SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаСписка/Form.form +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/Forms/ФормаСписка/Form.form @@ -1,8 +1,8 @@ - ГруппаПользовательскихНастроек - 8 + СписокКомпоновщикНастроекПользовательскиеНастройки + 1 true true @@ -12,9 +12,10 @@ ru Группа пользовательских настроек + false - ГруппаПользовательскихНастроекРасширеннаяПодсказка - 9 + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 Label true true @@ -26,43 +27,16 @@ Vertical Auto + WeakSeparation true true Auto Auto - - КоманднаяПанель - 10 - true - true - - true - - - <key>ru</key> - <value>Командная панель</value> - - - КоманднаяПанельРасширеннаяПодсказка - 11 - Label - true - true - - Left - - - CommandBar - - Left - Form - - Список - 1 + 3 <key>ru</key> <value>Список</value> @@ -77,21 +51,23 @@ </dataPath> <defaultItem>true</defaultItem> <titleLocation>None</titleLocation> + <excludedCommands>Copy</excludedCommands> + <excludedCommands>Create</excludedCommands> <items xsi:type="form:FormField"> - <name>Наименование</name> - <id>4</id> + <name>КонечнаяТочкаКорреспондента</name> + <id>16</id> <visible>true</visible> <enabled>true</enabled> <userVisible> <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>Список.Description</segments> + <segments>Список.КонечнаяТочкаКорреспондента</segments> </dataPath> <defaultItem>true</defaultItem> <extendedTooltip> - <name>НаименованиеExtendedTooltip</name> - <id>7</id> + <name>КонечнаяТочкаКорреспондентаРасширеннаяПодсказка</name> + <id>18</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -100,42 +76,8 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>НаименованиеКонтекстноеМеню</name> - <id>5</id> - <autoFill>true</autoFill> - </contextMenu> - <type>LabelField</type> - <editMode>Enter</editMode> - <showInHeader>true</showInHeader> - <headerHorizontalAlign>Left</headerHorizontalAlign> - <showInFooter>true</showInFooter> - <extInfo xsi:type="form:LabelFieldExtInfo"> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - </extInfo> - </items> - <items xsi:type="form:FormField"> - <name>Ссылка</name> - <id>21</id> - <visible>true</visible> - <enabled>true</enabled> - <userVisible/> - <dataPath xsi:type="form:DataPath"> - <segments>Список.Ref</segments> - </dataPath> - <extendedTooltip> - <name>СсылкаРасширеннаяПодсказка</name> - <id>23</id> - <type>Label</type> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - <extInfo xsi:type="form:LabelDecorationExtInfo"> - <horizontalAlign>Left</horizontalAlign> - </extInfo> - </extendedTooltip> - <contextMenu> - <name>СсылкаКонтекстноеМеню</name> - <id>22</id> + <name>КонечнаяТочкаКорреспондентаКонтекстноеМеню</name> + <id>17</id> <autoFill>true</autoFill> </contextMenu> <type>LabelField</type> @@ -151,15 +93,15 @@ <commandBarLocation>None</commandBarLocation> <autoCommandBar> <name>СписокКоманднаяПанель</name> - <id>3</id> + <id>5</id> <horizontalAlign>Left</horizontalAlign> </autoCommandBar> <searchStringAddition> <name>СписокСтрокаПоиска</name> - <id>12</id> + <id>7</id> <extendedTooltip> <name>СписокСтрокаПоискаРасширеннаяПодсказка</name> - <id>14</id> + <id>9</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -169,7 +111,7 @@ </extendedTooltip> <contextMenu> <name>СписокСтрокаПоискаКонтекстноеМеню</name> - <id>13</id> + <id>8</id> <autoFill>true</autoFill> </contextMenu> <source>Список</source> @@ -179,10 +121,10 @@ </searchStringAddition> <viewStatusAddition> <name>СписокСостояниеПросмотра</name> - <id>15</id> + <id>10</id> <extendedTooltip> <name>СписокСостояниеПросмотраРасширеннаяПодсказка</name> - <id>17</id> + <id>12</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -192,7 +134,7 @@ </extendedTooltip> <contextMenu> <name>СписокСостояниеПросмотраКонтекстноеМеню</name> - <id>16</id> + <id>11</id> <autoFill>true</autoFill> </contextMenu> <type>ViewStatusAddition</type> @@ -203,10 +145,10 @@ </viewStatusAddition> <searchControlAddition> <name>СписокУправлениеПоиском</name> - <id>18</id> + <id>13</id> <extendedTooltip> <name>СписокУправлениеПоискомРасширеннаяПодсказка</name> - <id>20</id> + <id>15</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -216,7 +158,7 @@ </extendedTooltip> <contextMenu> <name>СписокУправлениеПоискомКонтекстноеМеню</name> - <id>19</id> + <id>14</id> <autoFill>true</autoFill> </contextMenu> <type>SearchControlAddition</type> @@ -226,7 +168,7 @@ </extInfo> </searchControlAddition> <extendedTooltip> - <name>СписокExtendedTooltip</name> + <name>СписокРасширеннаяПодсказка</name> <id>6</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> @@ -237,7 +179,7 @@ </extendedTooltip> <contextMenu> <name>СписокКонтекстноеМеню</name> - <id>2</id> + <id>4</id> <autoFill>true</autoFill> </contextMenu> <changeRowSet>true</changeRowSet> @@ -262,6 +204,8 @@ <rowPictureDataPath xsi:type="form:DataPath"> <segments>Список.DefaultPicture</segments> </rowPictureDataPath> + <searchStringLocation>None</searchStringLocation> + <searchControlLocation>None</searchControlLocation> <autoMaxCardHeight>true</autoMaxCardHeight> <extInfo xsi:type="form:DynamicListTableExtInfo"> <autoRefreshPeriod>60</autoRefreshPeriod> @@ -272,18 +216,44 @@ <topLevelParent xsi:type="core:UndefinedValue"/> <showRoot>true</showRoot> <allowGettingCurrentRowURL>true</allowGettingCurrentRowURL> - <userSettingsGroup>ГруппаПользовательскихНастроек</userSettingsGroup> + <userSettingsGroup>СписокКомпоновщикНастроекПользовательскиеНастройки</userSettingsGroup> </extInfo> </items> <autoCommandBar> <name>ФормаКоманднаяПанель</name> <id>-1</id> + <items xsi:type="form:Button"> + <name>ФормаИзменить</name> + <id>19</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <extendedTooltip> + <name>ФормаИзменитьРасширеннаяПодсказка</name> + <id>20</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <commandName>Form.StandardCommand.Change</commandName> + <buttonImportance>Normal</buttonImportance> + <representation>Auto</representation> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <placementArea>UserCmds</placementArea> + <representationInContextMenu>Auto</representationInContextMenu> + <locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar> + </items> <horizontalAlign>Left</horizontalAlign> + <autoFill>true</autoFill> </autoCommandBar> - <handlers> - <event>OnCreateAtServer</event> - <name>ПриСозданииНаСервере</name> - </handlers> + <excludedCommands>Copy</excludedCommands> + <excludedCommands>Create</excludedCommands> <windowOpeningMode>DontBlock</windowOpeningMode> <saveWindowSettings>true</saveWindowSettings> <autoTitle>true</autoTitle> @@ -306,18 +276,9 @@ <edit> <common>true</common> </edit> - <notDefaultUseAlwaysAttributes xsi:type="form:DataPath"> - <segments>Список.Ref</segments> - </notDefaultUseAlwaysAttributes> - <notDefaultUseAlwaysAttributes xsi:type="form:DataPath"> - <segments>Список.Ведущая</segments> - </notDefaultUseAlwaysAttributes> - <notDefaultUseAlwaysAttributes xsi:type="form:DataPath"> - <segments>Список.Заблокирована</segments> - </notDefaultUseAlwaysAttributes> <main>true</main> <extInfo xsi:type="form:DynamicListExtInfo"> - <mainTable>ExchangePlan.ОбменСообщениями</mainTable> + <mainTable>InformationRegister.НастройкиТранспортаОбменаОбластейДанных</mainTable> <dynamicDataRead>true</dynamicDataRead> <autoFillAvailableFields>true</autoFillAvailableFields> <autoSaveUserSettings>true</autoSaveUserSettings> diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/ManagerModule.bsl new file mode 100644 index 000000000..060b1c3d4 --- /dev/null +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/ManagerModule.bsl @@ -0,0 +1,76 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныйПрограммныйИнтерфейс + +// Процедура обновляет запись в регистре по переданным значениям структуры +// +Процедура ОбновитьЗапись(СтруктураЗаписи) Экспорт + + ОбменДаннымиСлужебный.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиТранспортаОбменаОбластейДанных"); + +КонецПроцедуры + +Функция НастройкиТранспорта(Знач КонечнаяТочкаКорреспондента) Экспорт + + ТекстЗапроса = + "ВЫБРАТЬ + | НастройкиТранспорта.FILEКаталогОбменаИнформацией КАК FILEКаталогОбменаИнформацией, + | НастройкиТранспорта.FILEСжиматьФайлИсходящегоСообщения КАК FILEСжиматьФайлИсходящегоСообщения, + | НастройкиТранспорта.FTPСжиматьФайлИсходящегоСообщения КАК FTPСжиматьФайлИсходящегоСообщения, + | НастройкиТранспорта.FTPСоединениеМаксимальныйДопустимыйРазмерСообщения КАК FTPСоединениеМаксимальныйДопустимыйРазмерСообщения, + | НастройкиТранспорта.FTPСоединениеПассивноеСоединение КАК FTPСоединениеПассивноеСоединение, + | НастройкиТранспорта.FTPСоединениеПользователь КАК FTPСоединениеПользователь, + | НастройкиТранспорта.FTPСоединениеПорт КАК FTPСоединениеПорт, + | НастройкиТранспорта.FTPСоединениеПуть КАК FTPСоединениеПуть, + | НастройкиТранспорта.ВидТранспортаСообщенийОбменаПоУмолчанию КАК ВидТранспортаСообщенийОбменаПоУмолчанию + |ИЗ + | РегистрСведений.НастройкиТранспортаОбменаОбластейДанных КАК НастройкиТранспорта + |ГДЕ + | НастройкиТранспорта.КонечнаяТочкаКорреспондента = &КонечнаяТочкаКорреспондента"; + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("КонечнаяТочкаКорреспондента", КонечнаяТочкаКорреспондента); + Запрос.Текст = ТекстЗапроса; + + РезультатЗапроса = Запрос.Выполнить(); + + Если РезультатЗапроса.Пустой() Тогда + ВызватьИсключение СтрШаблон(НСтр("ru = 'Не заданы настройки подключения для конечной точки %1.'"), + Строка(КонечнаяТочкаКорреспондента)); + КонецЕсли; + + Результат = ОбменДаннымиСервер.РезультатЗапросаВСтруктуру(РезультатЗапроса); + УстановитьПривилегированныйРежим(Истина); + Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(КонечнаяТочкаКорреспондента, "FTPСоединениеПарольОбластейДанных,ПарольАрхиваСообщенияОбменаОбластейДанных"); + УстановитьПривилегированныйРежим(Ложь); + Результат.Вставить("ПарольАрхиваСообщенияОбмена", Пароли.ПарольАрхиваСообщенияОбменаОбластейДанных); + Результат.Вставить("FTPСоединениеПароль", Пароли.FTPСоединениеПарольОбластейДанных); + + Если Результат.ВидТранспортаСообщенийОбменаПоУмолчанию = Перечисления.ВидыТранспортаСообщенийОбмена.FTP Тогда + + ПараметрыFTP = ОбменДаннымиСервер.FTPИмяСервераИПуть(Результат.FTPСоединениеПуть); + + Результат.Вставить("FTPСервер", ПараметрыFTP.Сервер); + Результат.Вставить("FTPПуть", ПараметрыFTP.Путь); + Иначе + Результат.Вставить("FTPСервер", ""); + Результат.Вставить("FTPПуть", ""); + КонецЕсли; + + ОбменДаннымиСервер.ДополнитьНастройкиТранспортаКоличествомЭлементовВТранзакции(Результат); + + Возврат Результат; + +КонецФункции + +#КонецОбласти + +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/InformationRegisters/УдалитьГруппыЗначенийДоступа/RecordSetModule.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/RecordSetModule.bsl similarity index 100% rename from SSL/src/InformationRegisters/УдалитьГруппыЗначенийДоступа/RecordSetModule.bsl rename to SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/RecordSetModule.bsl diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/НастройкиТранспортаОбменаОбластейДанных.mdo b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/НастройкиТранспортаОбменаОбластейДанных.mdo new file mode 100644 index 000000000..6296692a9 --- /dev/null +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластейДанных/НастройкиТранспортаОбменаОбластейДанных.mdo @@ -0,0 +1,323 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:InformationRegister xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="46c3341c-352c-43fb-b338-15c8ad487fbf"> + <producedTypes> + <selectionType typeId="0d6075f9-bbc4-49b1-bfc5-23f5b3ba7ded" valueTypeId="e435f877-10cf-4a5e-9d5b-f2132bae83a1"/> + <listType typeId="50acffde-b1b7-4a69-9a34-da843dc96eed" valueTypeId="f8e7e91b-41c0-41c2-a584-6f15c0b47931"/> + <managerType typeId="7c0bff10-c6fc-455b-92c8-4c17842cacfa" valueTypeId="98f6b384-ab66-498b-8472-a2ebb074166b"/> + <recordSetType typeId="9ef4b633-5e42-4760-ab96-05c58faefabd" valueTypeId="801654df-f787-4360-a237-212f2235e9af"/> + <recordKeyType typeId="670b0d5e-d51b-42dc-a952-413cca3ff407" valueTypeId="3d5053e1-4f8d-4f15-8526-eeb0205e3517"/> + <recordType typeId="c8e58b03-5aae-485d-9564-91882659e876" valueTypeId="c318c0df-b8cc-4cfb-83ce-5b2a9a215f73"/> + <recordManagerType typeId="ea76013c-67ed-40ce-bd33-6ad1e4b7e8e4" valueTypeId="324957b7-b2d5-4884-9a8f-3516766ee68f"/> + </producedTypes> + <name>НастройкиТранспортаОбменаОбластейДанных</name> + <synonym> + <key>ru</key> + <value>Настройки транспорта обмена областей данных</value> + </synonym> + <comment>Хранит общие для всех областей данных настройки транспорта сообщений обмена.</comment> + <useStandardCommands>true</useStandardCommands> + <defaultRecordForm>InformationRegister.НастройкиТранспортаОбменаОбластейДанных.Form.ФормаЗаписи</defaultRecordForm> + <defaultListForm>InformationRegister.НастройкиТранспортаОбменаОбластейДанных.Form.ФормаСписка</defaultListForm> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>Active</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>LineNumber</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>Recorder</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>Period</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fillChecking>ShowError</fillChecking> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <dataLockControlMode>Managed</dataLockControlMode> + <resources uuid="a2a8b35e-04e5-4176-8d3b-2cd4dfb6d653"> + <name>FILEКаталогОбменаИнформацией</name> + <synonym> + <key>ru</key> + <value>Каталог обмена информацией</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers/> + </type> + <toolTip> + <key>ru</key> + <value>Каталог обмена информацией на сетевом ресурсе.</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:StringValue"/> + </resources> + <resources uuid="ea7ad7f5-e502-49a9-b4a6-e9adceb15057"> + <name>FILEСжиматьФайлИсходящегоСообщения</name> + <synonym> + <key>ru</key> + <value>Сжимать файл исходящего сообщения</value> + </synonym> + <type> + <types>Boolean</types> + </type> + <toolTip> + <key>ru</key> + <value>Признак того, что файл сообщения будет заархивирован перед отправкой.</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:UndefinedValue"/> + </resources> + <resources uuid="f9450d6a-849c-4621-b528-9cafc4819b44"> + <name>FTPСжиматьФайлИсходящегоСообщения</name> + <synonym> + <key>ru</key> + <value>Сжимать файл исходящего сообщения</value> + </synonym> + <type> + <types>Boolean</types> + </type> + <toolTip> + <key>ru</key> + <value>Признак того, что файл сообщения будет заархивирован перед отправкой на сервер.</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:UndefinedValue"/> + </resources> + <resources uuid="5b7cac99-2fca-4dbb-8d49-b84f310a2496"> + <name>FTPСоединениеМаксимальныйДопустимыйРазмерСообщения</name> + <synonym> + <key>ru</key> + <value>Максимальный размер сообщения обмена</value> + </synonym> + <type> + <types>Number</types> + <numberQualifiers> + <precision>10</precision> + <nonNegative>true</nonNegative> + </numberQualifiers> + </type> + <toolTip> + <key>ru</key> + <value>Максимальный размер отправляемого файла сообщения обмена (Кб)</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:UndefinedValue"/> + </resources> + <resources uuid="a4673d5c-9dae-48f7-9c91-53c1302a266a"> + <name>FTPСоединениеПассивноеСоединение</name> + <synonym> + <key>ru</key> + <value>Пассивное соединение</value> + </synonym> + <type> + <types>Boolean</types> + </type> + <toolTip> + <key>ru</key> + <value>Признак пассивного соединения.</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:UndefinedValue"/> + </resources> + <resources uuid="1a2a0dd2-b0dc-41e1-8c4f-f275f025bad2"> + <name>FTPСоединениеПользователь</name> + <synonym> + <key>ru</key> + <value>Пользователь (логин)</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers> + <length>50</length> + </stringQualifiers> + </type> + <toolTip> + <key>ru</key> + <value>Имя пользователя для доступа на FTP-ресурс.</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:StringValue"/> + </resources> + <resources uuid="c255932e-fc34-402c-a6e9-2fda1ffbcdf2"> + <name>FTPСоединениеПорт</name> + <synonym> + <key>ru</key> + <value>Порт</value> + </synonym> + <type> + <types>Number</types> + <numberQualifiers> + <precision>5</precision> + </numberQualifiers> + </type> + <toolTip> + <key>ru</key> + <value>Порт для доступа на FTP-ресурс.</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:UndefinedValue"/> + </resources> + <resources uuid="0d323d88-2823-493e-8c1e-b2b9f3dcdd3e"> + <name>FTPСоединениеПуть</name> + <synonym> + <key>ru</key> + <value>Путь к каталогу</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers/> + </type> + <toolTip> + <key>ru</key> + <value>Строка с полным именем пути FTP-ресурса</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:StringValue"/> + </resources> + <resources uuid="3f410b53-e762-41fe-9469-d538dfec3a9a"> + <name>ВидТранспортаСообщенийОбменаПоУмолчанию</name> + <synonym> + <key>ru</key> + <value>Вид транспорта сообщений обмена по умолчанию</value> + </synonym> + <type> + <types>EnumRef.ВидыТранспортаСообщенийОбмена</types> + </type> + <toolTip> + <key>ru</key> + <value>Вид транспорта сообщений обмена, который будет использоваться как транспорт по умолчанию.</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:UndefinedValue"/> + </resources> + <resources uuid="bb11c22e-0fbd-4985-be67-0866df7f7e61"> + <name>УдалитьFTPСоединениеПароль</name> + <synonym> + <key>ru</key> + <value>(не используется) Пароль</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers> + <length>50</length> + </stringQualifiers> + </type> + <passwordMode>true</passwordMode> + <toolTip> + <key>ru</key> + <value>Пароль для доступа на FTP-ресурс.</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:StringValue"/> + </resources> + <resources uuid="92ea60c0-1027-4337-9130-40028951f09b"> + <name>УдалитьПарольАрхиваСообщенияОбмена</name> + <synonym> + <key>ru</key> + <value>(не используется) Пароль архива сообщения обмена</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers> + <length>50</length> + </stringQualifiers> + </type> + <toolTip> + <key>ru</key> + <value>Поле для задания пароля для сжатия и распаковки архива сообщения обмена. Подразумевается, что пароль сжатия в базе источнике и пароль распаковки в базе приемнике должны быть одинаковыми для пары обменивающихся конфигураций.</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:StringValue"/> + </resources> + <dimensions uuid="46710ce6-0f82-4c4c-91e8-f8ee726e00ce"> + <name>КонечнаяТочкаКорреспондента</name> + <synonym> + <key>ru</key> + <value>Конечная точка корреспондента</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers> + <length>10</length> + </stringQualifiers> + </type> + <toolTip> + <key>ru</key> + <value>Конечная точка корреспондента.</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <denyIncompleteValues>true</denyIncompleteValues> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:ReferenceValue"/> + <master>true</master> + </dimensions> + <forms uuid="d64f18a4-ff93-4284-9eca-085109eafd24"> + <name>ФормаЗаписи</name> + <synonym> + <key>ru</key> + <value>Форма записи</value> + </synonym> + <usePurposes>PersonalComputer</usePurposes> + <usePurposes>MobileDevice</usePurposes> + </forms> + <forms uuid="6381b8d2-7722-45c7-8800-19f6574d7d7a"> + <name>ФормаСписка</name> + <synonym> + <key>ru</key> + <value>Форма списка</value> + </synonym> + <usePurposes>PersonalComputer</usePurposes> + <usePurposes>MobileDevice</usePurposes> + </forms> +</mdclass:InformationRegister> diff --git a/SSL/src/InformationRegisters/НастройкиОтправителя/Forms/ФормаЗаписи/Form.form b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/Forms/ФормаЗаписи/Form.form similarity index 57% rename from SSL/src/InformationRegisters/НастройкиОтправителя/Forms/ФормаЗаписи/Form.form rename to SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/Forms/ФормаЗаписи/Form.form index 5f3560e57..642abe1c4 100644 --- a/SSL/src/InformationRegisters/НастройкиОтправителя/Forms/ФормаЗаписи/Form.form +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/Forms/ФормаЗаписи/Form.form @@ -1,19 +1,19 @@ <?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:FormField"> - <name>КаналСообщений</name> - <id>1</id> + <name>КаталогОбменаИнформацией</name> + <id>55</id> <visible>true</visible> <enabled>true</enabled> <userVisible> <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>Запись.КаналСообщений</segments> + <segments>Запись.КаталогОбменаИнформацией</segments> </dataPath> <extendedTooltip> - <name>КаналСообщенийExtendedTooltip</name> - <id>5</id> + <name>КаталогОбменаИнформациейРасширеннаяПодсказка</name> + <id>57</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -22,8 +22,8 @@ </extInfo> </extendedTooltip> <contextMenu> - <name>КаналСообщенийКонтекстноеМеню</name> - <id>2</id> + <name>КаталогОбменаИнформациейКонтекстноеМеню</name> + <id>56</id> <autoFill>true</autoFill> </contextMenu> <type>InputField</type> @@ -41,20 +41,17 @@ <textSize>Normal</textSize> </extInfo> </items> - <items xsi:type="form:FormField"> - <name>Получатель</name> - <id>3</id> + <items xsi:type="form:Button"> + <name>ОткрытьОбщиеНастройкиТранспорта</name> + <id>48</id> <visible>true</visible> <enabled>true</enabled> <userVisible> <common>true</common> </userVisible> - <dataPath xsi:type="form:DataPath"> - <segments>Запись.Получатель</segments> - </dataPath> <extendedTooltip> - <name>ПолучательExtendedTooltip</name> - <id>6</id> + <name>ОткрытьОбщиеНастройкиТранспортаExtendedTooltip</name> + <id>54</id> <type>Label</type> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> @@ -62,25 +59,14 @@ <horizontalAlign>Left</horizontalAlign> </extInfo> </extendedTooltip> - <contextMenu> - <name>ПолучательКонтекстноеМеню</name> - <id>4</id> - <autoFill>true</autoFill> - </contextMenu> - <type>InputField</type> - <editMode>Enter</editMode> - <showInHeader>true</showInHeader> - <headerHorizontalAlign>Left</headerHorizontalAlign> - <showInFooter>true</showInFooter> - <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> + <type>Hyperlink</type> + <commandName>Form.Command.ОткрытьОбщиеНастройкиТранспорта</commandName> + <buttonImportance>Normal</buttonImportance> + <representation>Auto</representation> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <placementArea>UserCmds</placementArea> + <representationInContextMenu>Auto</representationInContextMenu> </items> <autoCommandBar> <name>ФормаКоманднаяПанель</name> @@ -88,10 +74,8 @@ <horizontalAlign>Left</horizontalAlign> <autoFill>true</autoFill> </autoCommandBar> - <handlers> - <event>OnCreateAtServer</event> - <name>ПриСозданииНаСервере</name> - </handlers> + <excludedCommands>Copy</excludedCommands> + <excludedCommands>Delete</excludedCommands> <windowOpeningMode>LockOwner</windowOpeningMode> <saveWindowSettings>true</saveWindowSettings> <autoTitle>true</autoTitle> @@ -100,13 +84,14 @@ <autoFillCheck>true</autoFillCheck> <allowFormCustomize>true</allowFormCustomize> <enabled>true</enabled> + <verticalScroll>UseIfNecessary</verticalScroll> <showTitle>auto</showTitle> <showCloseButton>true</showCloseButton> <attributes> <name>Запись</name> <id>1</id> <valueType> - <types>InformationRegisterRecordManager.НастройкиОтправителя</types> + <types>InformationRegisterRecordManager.НастройкиТранспортаОбменаОбластиДанных</types> </valueType> <view> <common>true</common> @@ -117,6 +102,28 @@ <main>true</main> <savedData>true</savedData> </attributes> + <formCommands> + <name>ОткрытьОбщиеНастройкиТранспорта</name> + <title> + <key>ru</key> + <value>Общие настройки транспорта</value> + + 1 + + ru + Открыть общие настройки транспорта + + + true + + + + ОткрытьОбщиеНастройкиТранспорта + + + Auto + Auto + diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/Forms/ФормаЗаписи/Module.bsl new file mode 100644 index 000000000..a1da76c2b --- /dev/null +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/Forms/ФормаЗаписи/Module.bsl @@ -0,0 +1,21 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура ОткрытьОбщиеНастройкиТранспорта(Команда) + + Отбор = Новый Структура("КонечнаяТочкаКорреспондента", Запись.КонечнаяТочкаКорреспондента); + ЗначенияЗаполнения = Новый Структура("КонечнаяТочкаКорреспондента", Запись.КонечнаяТочкаКорреспондента); + + ОбменДаннымиКлиент.ОткрытьФормуЗаписиРегистраСведенийПоОтбору(Отбор, ЗначенияЗаполнения, "НастройкиТранспортаОбменаОбластейДанных", ЭтотОбъект); + +КонецПроцедуры + +#КонецОбласти diff --git a/SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаВыбора/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss similarity index 100% rename from SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаВыбора/Attributes/Список/ExtInfo/ListSettings.dcss rename to SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss diff --git a/SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаВыбора/Form.form b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/Forms/ФормаСписка/Form.form similarity index 73% rename from SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаВыбора/Form.form rename to SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/Forms/ФормаСписка/Form.form index 95848026a..a4c20e061 100644 --- a/SSL/src/ExchangePlans/ОбменСообщениями/Forms/ФормаВыбора/Form.form +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/Forms/ФормаСписка/Form.form @@ -1,8 +1,42 @@ + + СписокКомпоновщикНастроекПользовательскиеНастройки + 1 + true + true + + true + + + <key>ru</key> + <value>Группа пользовательских настроек</value> + + false + + СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка + 2 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + Список - 1 + 3 <key>ru</key> <value>Список</value> @@ -17,66 +51,33 @@ </dataPath> <defaultItem>true</defaultItem> <titleLocation>None</titleLocation> - <excludedCommands>Change</excludedCommands> + <excludedCommands>Copy</excludedCommands> + <excludedCommands>Create</excludedCommands> <items xsi:type="form:FormField"> - <name>Наименование</name> - <id>4</id> + <name>Корреспондент</name> + <id>16</id> <visible>true</visible> <enabled>true</enabled> <userVisible> <common>true</common> </userVisible> <dataPath xsi:type="form:DataPath"> - <segments>Список.Description</segments> + <segments>Список.Корреспондент</segments> </dataPath> <defaultItem>true</defaultItem> <extendedTooltip> - <name>НаименованиеРасширеннаяПодсказка</name> - <id>16</id> - <type>Label</type> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - <extInfo xsi:type="form:LabelDecorationExtInfo"> - <horizontalAlign>Left</horizontalAlign> - </extInfo> - </extendedTooltip> - <contextMenu> - <name>НаименованиеКонтекстноеМеню</name> - <id>5</id> - <autoFill>true</autoFill> - </contextMenu> - <type>LabelField</type> - <editMode>Enter</editMode> - <showInHeader>true</showInHeader> - <headerHorizontalAlign>Left</headerHorizontalAlign> - <showInFooter>true</showInFooter> - <extInfo xsi:type="form:LabelFieldExtInfo"> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - </extInfo> - </items> - <items xsi:type="form:FormField"> - <name>Ссылка</name> - <id>17</id> - <visible>true</visible> - <enabled>true</enabled> - <userVisible/> - <dataPath xsi:type="form:DataPath"> - <segments>Список.Ref</segments> - </dataPath> - <extendedTooltip> - <name>СсылкаРасширеннаяПодсказка</name> - <id>19</id> - <type>Label</type> - <autoMaxWidth>true</autoMaxWidth> - <autoMaxHeight>true</autoMaxHeight> - <extInfo xsi:type="form:LabelDecorationExtInfo"> - <horizontalAlign>Left</horizontalAlign> - </extInfo> - </extendedTooltip> - <contextMenu> - <name>СсылкаКонтекстноеМеню</name> + <name>КорреспондентРасширеннаяПодсказка</name> <id>18</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <contextMenu> + <name>КорреспондентКонтекстноеМеню</name> + <id>17</id> <autoFill>true</autoFill> </contextMenu> <type>LabelField</type> @@ -92,7 +93,7 @@ <commandBarLocation>None</commandBarLocation> <autoCommandBar> <name>СписокКоманднаяПанель</name> - <id>3</id> + <id>5</id> <horizontalAlign>Left</horizontalAlign> </autoCommandBar> <searchStringAddition> @@ -178,13 +179,14 @@ </extendedTooltip> <contextMenu> <name>СписокКонтекстноеМеню</name> - <id>2</id> + <id>4</id> <autoFill>true</autoFill> </contextMenu> + <changeRowSet>true</changeRowSet> + <changeRowOrder>true</changeRowOrder> <autoMaxWidth>true</autoMaxWidth> <autoMaxHeight>true</autoMaxHeight> <autoMaxRowsCount>true</autoMaxRowsCount> - <choiceMode>true</choiceMode> <selectionMode>MultiRow</selectionMode> <header>true</header> <headerHeight>1</headerHeight> @@ -203,7 +205,7 @@ <segments>Список.DefaultPicture</segments> </rowPictureDataPath> <searchStringLocation>None</searchStringLocation> - <viewStatusLocation>None</viewStatusLocation> + <searchControlLocation>None</searchControlLocation> <autoMaxCardHeight>true</autoMaxCardHeight> <extInfo xsi:type="form:DynamicListTableExtInfo"> <autoRefreshPeriod>60</autoRefreshPeriod> @@ -214,16 +216,45 @@ <topLevelParent xsi:type="core:UndefinedValue"/> <showRoot>true</showRoot> <allowGettingCurrentRowURL>true</allowGettingCurrentRowURL> + <userSettingsGroup>СписокКомпоновщикНастроекПользовательскиеНастройки</userSettingsGroup> </extInfo> </items> <autoCommandBar> <name>ФормаКоманднаяПанель</name> <id>-1</id> + <items xsi:type="form:Button"> + <name>ФормаИзменить</name> + <id>19</id> + <visible>true</visible> + <enabled>true</enabled> + <userVisible> + <common>true</common> + </userVisible> + <extendedTooltip> + <name>ФормаИзменитьРасширеннаяПодсказка</name> + <id>20</id> + <type>Label</type> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <extInfo xsi:type="form:LabelDecorationExtInfo"> + <horizontalAlign>Left</horizontalAlign> + </extInfo> + </extendedTooltip> + <commandName>Form.Item.Список.StandardCommand.Change</commandName> + <buttonImportance>Normal</buttonImportance> + <representation>Auto</representation> + <autoMaxWidth>true</autoMaxWidth> + <autoMaxHeight>true</autoMaxHeight> + <placementArea>UserCmds</placementArea> + <representationInContextMenu>Auto</representationInContextMenu> + <locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar> + </items> <horizontalAlign>Left</horizontalAlign> <autoFill>true</autoFill> </autoCommandBar> - <excludedCommands>Change</excludedCommands> - <windowOpeningMode>LockOwner</windowOpeningMode> + <excludedCommands>Copy</excludedCommands> + <excludedCommands>Create</excludedCommands> + <windowOpeningMode>DontBlock</windowOpeningMode> <saveWindowSettings>true</saveWindowSettings> <autoTitle>true</autoTitle> <autoUrl>true</autoUrl> @@ -245,12 +276,9 @@ <edit> <common>true</common> </edit> - <notDefaultUseAlwaysAttributes xsi:type="form:DataPath"> - <segments>Список.Ref</segments> - </notDefaultUseAlwaysAttributes> <main>true</main> <extInfo xsi:type="form:DynamicListExtInfo"> - <mainTable>ExchangePlan.ОбменСообщениями</mainTable> + <mainTable>InformationRegister.НастройкиТранспортаОбменаОбластиДанных</mainTable> <dynamicDataRead>true</dynamicDataRead> <autoFillAvailableFields>true</autoFillAvailableFields> <autoSaveUserSettings>true</autoSaveUserSettings> diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/ManagerModule.bsl new file mode 100644 index 000000000..18db1ee3d --- /dev/null +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/ManagerModule.bsl @@ -0,0 +1,141 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныеПроцедурыИФункции + +Функция НастройкиТранспорта(Знач Корреспондент) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + ВызватьИсключение НСтр("ru = 'Не определен менеджер настроек транспорта обмена сообщениями.'"); + КонецЕсли; + + ИмяРегистраНастроекТранспортаОбменаСообщениями = "НастройкиТранспортаОбменаСообщениями"; + + ТекстЗапроса = + "ВЫБРАТЬ + | """" КАК FILEКаталогОбменаИнформацией, + | """" КАК FTPСоединениеПуть, + | НастройкиТранспортаОбластиДанных.КаталогОбменаИнформацией КАК ОтносительныйКаталогОбменаИнформацией, + | НастройкиТранспортаОбластейДанных.FILEКаталогОбменаИнформацией КАК FILEОбщийКаталогОбменаИнформацией, + | НастройкиТранспортаОбластейДанных.FILEСжиматьФайлИсходящегоСообщения, + | НастройкиТранспортаОбластейДанных.FTPСоединениеПуть КАК FTPОбщийКаталогОбменаИнформацией, + | НастройкиТранспортаОбластейДанных.FTPСжиматьФайлИсходящегоСообщения, + | НастройкиТранспортаОбластейДанных.FTPСоединениеМаксимальныйДопустимыйРазмерСообщения, + | НастройкиТранспортаОбластейДанных.FTPСоединениеПассивноеСоединение, + | НастройкиТранспортаОбластейДанных.FTPСоединениеПользователь, + | НастройкиТранспортаОбластейДанных.FTPСоединениеПорт, + | НастройкиТранспортаОбластейДанных.ВидТранспортаСообщенийОбменаПоУмолчанию, + | НастройкиТранспорта.АдресВебСервиса КАК WSURLВебСервиса, + | НастройкиТранспорта.ИмяПользователя КАК WSИмяПользователя + |ИЗ + | РегистрСведений.НастройкиТранспортаОбменаОбластиДанных КАК НастройкиТранспортаОбластиДанных + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиТранспортаОбменаОбластейДанных КАК НастройкиТранспортаОбластейДанных + | ПО (НастройкиТранспортаОбластейДанных.КонечнаяТочкаКорреспондента = НастройкиТранспортаОбластиДанных.КонечнаяТочкаКорреспондента) + | ЛЕВОЕ СОЕДИНЕНИЕ #ТаблицаНастройкиТранспорта КАК НастройкиТранспорта + | ПО (НастройкиТранспорта.КонечнаяТочка = НастройкиТранспортаОбластиДанных.КонечнаяТочкаКорреспондента) + |ГДЕ + | НастройкиТранспортаОбластиДанных.Корреспондент = &Корреспондент"; + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ТаблицаНастройкиТранспорта", "РегистрСведений." + ИмяРегистраНастроекТранспортаОбменаСообщениями); + + Запрос = Новый Запрос(ТекстЗапроса); + Запрос.УстановитьПараметр("Корреспондент", Корреспондент); + + УстановитьПривилегированныйРежим(Истина); + РезультатЗапроса = Запрос.Выполнить(); + УстановитьПривилегированныйРежим(Ложь); + + Если РезультатЗапроса.Пустой() Тогда + Возврат Неопределено; + КонецЕсли; + + Результат = ОбменДаннымиСервер.РезультатЗапросаВСтруктуру(РезультатЗапроса); + + УстановитьПривилегированныйРежим(Истина); + Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Корреспондент, "FTPСоединениеПарольОбластейДанных,WSПароль, ПарольАрхиваСообщенияОбменаОбластейДанных"); + УстановитьПривилегированныйРежим(Ложь); + + Результат.Вставить("WSПароль", Пароли.WSПароль); + Результат.Вставить("FTPСоединениеПароль", Пароли.FTPСоединениеПарольОбластейДанных); + Результат.Вставить("ПарольАрхиваСообщенияОбмена", Пароли.ПарольАрхиваСообщенияОбменаОбластейДанных); + + Результат.FILEКаталогОбменаИнформацией = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( + Результат.FILEОбщийКаталогОбменаИнформацией, + Результат.ОтносительныйКаталогОбменаИнформацией); + + Результат.FTPСоединениеПуть = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( + Результат.FTPОбщийКаталогОбменаИнформацией, + Результат.ОтносительныйКаталогОбменаИнформацией); + + Результат.Вставить("ИспользоватьВременныйКаталогДляОтправкиИПриемаСообщений", Истина); + + Если Результат.ВидТранспортаСообщенийОбменаПоУмолчанию = Перечисления.ВидыТранспортаСообщенийОбмена.FTP Тогда + + ПараметрыFTP = ОбменДаннымиСервер.FTPИмяСервераИПуть(Результат.FTPСоединениеПуть); + + Результат.Вставить("FTPСервер", ПараметрыFTP.Сервер); + Результат.Вставить("FTPПуть", ПараметрыFTP.Путь); + + Иначе + Результат.Вставить("FTPСервер", ""); + Результат.Вставить("FTPПуть", ""); + КонецЕсли; + + ОбменДаннымиСервер.ДополнитьНастройкиТранспортаКоличествомЭлементовВТранзакции(Результат); + + Возврат Результат; +КонецФункции + +Функция НастройкиТранспортаWS(Знач Корреспондент) Экспорт + + Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда + ВызватьИсключение НСтр("ru = 'Не определен менеджер настроек транспорта обмена сообщениями.'"); + КонецЕсли; + + ИмяРегистраНастроекТранспортаОбменаСообщениями = "НастройкиТранспортаОбменаСообщениями"; + + Запрос = Новый Запрос( + "ВЫБРАТЬ + | НастройкиТранспортаОбластиДанных.КонечнаяТочкаКорреспондента КАК КонечнаяТочкаКорреспондента + |ИЗ + | РегистрСведений.НастройкиТранспортаОбменаОбластиДанных КАК НастройкиТранспортаОбластиДанных + |ГДЕ + | НастройкиТранспортаОбластиДанных.Корреспондент = &Корреспондент"); + Запрос.УстановитьПараметр("Корреспондент", Корреспондент); + + Выборка = Запрос.Выполнить().Выбрать(); + Выборка.Следующий(); + + КонечнаяТочка = Выборка.КонечнаяТочкаКорреспондента; + + МенеджерНастройкиТранспорта = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени("РегистрСведений." + + ИмяРегистраНастроекТранспортаОбменаСообщениями); + СтруктураНастроек = МенеджерНастройкиТранспорта.НастройкиТранспортаWS(КонечнаяТочка); + + Если Не ЗначениеЗаполнено(СтруктураНастроек.WSURLВебСервиса) Тогда + ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Не заданы настройки подключения веб-сервиса для корреспондента ""%1"".'"), + Строка(Корреспондент)); + КонецЕсли; + + Возврат СтруктураНастроек; + +КонецФункции + +// Процедура обновляет запись в регистре по переданным значениям структуры +// +Процедура ОбновитьЗапись(СтруктураЗаписи) Экспорт + + ОбменДаннымиСлужебный.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиТранспортаОбменаОбластиДанных"); + +КонецПроцедуры + +#КонецОбласти + +#КонецЕсли diff --git a/SSL/src/InformationRegisters/УдалитьНаборыЗначенийДоступа/RecordSetModule.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/RecordSetModule.bsl similarity index 100% rename from SSL/src/InformationRegisters/УдалитьНаборыЗначенийДоступа/RecordSetModule.bsl rename to SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/RecordSetModule.bsl diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/НастройкиТранспортаОбменаОбластиДанных.mdo b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/НастройкиТранспортаОбменаОбластиДанных.mdo new file mode 100644 index 000000000..ffa67c30c --- /dev/null +++ b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаОбластиДанных/НастройкиТранспортаОбменаОбластиДанных.mdo @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mdclass:InformationRegister xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="bf428e7a-2970-4bab-8c8e-35ea16151c0e"> + <producedTypes> + <selectionType typeId="d442b63d-df3a-4ca9-83e4-c46bf1efc5ae" valueTypeId="ac112c59-3298-4375-b6fc-426f7fe8143d"/> + <listType typeId="9758ec82-d2b5-4d31-95a9-b3ba8cdf8f1e" valueTypeId="5d37b6da-0b5a-47b7-a07f-0a7a1ebe6025"/> + <managerType typeId="915285d2-9259-41da-87d6-ca8c6a0b2fc2" valueTypeId="d8232caf-1668-40b0-933b-54bf9075b84a"/> + <recordSetType typeId="5e5f7e30-549a-4b62-83e5-511f1d2dfd35" valueTypeId="2391a98d-e8b8-4dfc-a7b6-f22ce82609c3"/> + <recordKeyType typeId="8719be6a-a7c6-4b87-bc1f-ba44600aa7a0" valueTypeId="7d280e7f-d4ae-44c8-a069-bc30a22837c6"/> + <recordType typeId="377b6d8c-ada6-4b72-9916-1f96a15844bf" valueTypeId="2ec5885b-124c-4efa-b0b8-030f63e5d226"/> + <recordManagerType typeId="d4e2e359-c797-4a11-a005-541b6f5395e2" valueTypeId="c5afbdad-88aa-4b78-a92e-3620b2a3207f"/> + </producedTypes> + <name>НастройкиТранспортаОбменаОбластиДанных</name> + <synonym> + <key>ru</key> + <value>Настройки транспорта обмена области данных</value> + </synonym> + <comment>Хранит частные настройки транспорта сообщений обмена для каждой области данных.</comment> + <defaultRecordForm>InformationRegister.НастройкиТранспортаОбменаОбластиДанных.Form.ФормаЗаписи</defaultRecordForm> + <defaultListForm>InformationRegister.НастройкиТранспортаОбменаОбластиДанных.Form.ФормаСписка</defaultListForm> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>Active</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>LineNumber</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>Recorder</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <standardAttributes> + <dataHistory>Use</dataHistory> + <name>Period</name> + <fillValue xsi:type="core:UndefinedValue"/> + <fillChecking>ShowError</fillChecking> + <fullTextSearch>Use</fullTextSearch> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + </standardAttributes> + <dataLockControlMode>Managed</dataLockControlMode> + <resources uuid="232dbd5f-b7f1-4463-946c-b8fbf93ac466"> + <name>КонечнаяТочкаКорреспондента</name> + <synonym> + <key>ru</key> + <value>Конечная точка корреспондента</value> + </synonym> + <type> + <types>DefinedType.КонечнаяТочкаОбменаСообщениями</types> + </type> + <toolTip> + <key>ru</key> + <value>Конечная точка корреспондента.</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:ReferenceValue"/> + <indexing>Index</indexing> + </resources> + <resources uuid="a1a74b34-4174-4769-8f03-bd4a32e83418"> + <name>КаталогОбменаИнформацией</name> + <synonym> + <key>ru</key> + <value>Каталог обмена информацией (относительно основного каталога)</value> + </synonym> + <comment>Относительный путь к каталогу обмена на сервере или в локальной сети.</comment> + <type> + <types>String</types> + <stringQualifiers/> + </type> + <toolTip> + <key>ru</key> + <value>Каталог обмена информацией на сетевом ресурсе.</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:StringValue"/> + </resources> + <dimensions uuid="32fd1fe7-34d3-43ed-baba-16ccd43aa25a"> + <name>Корреспондент</name> + <synonym> + <key>ru</key> + <value>Корреспондент</value> + </synonym> + <type> + <types>ExchangePlanRef</types> + </type> + <toolTip> + <key>ru</key> + <value>Получатель</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <denyIncompleteValues>true</denyIncompleteValues> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:ReferenceValue"/> + <master>true</master> + <mainFilter>true</mainFilter> + </dimensions> + <forms uuid="8f4d1259-abdc-4495-8e1e-8c8abcd336ca"> + <name>ФормаЗаписи</name> + <synonym> + <key>ru</key> + <value>Форма записи</value> + </synonym> + <usePurposes>PersonalComputer</usePurposes> + <usePurposes>MobileDevice</usePurposes> + </forms> + <forms uuid="7086199b-20ec-4a74-a52f-71824134e8c5"> + <name>ФормаСписка</name> + <synonym> + <key>ru</key> + <value>Форма списка</value> + </synonym> + <usePurposes>PersonalComputer</usePurposes> + <usePurposes>MobileDevice</usePurposes> + </forms> +</mdclass:InformationRegister> diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаСообщениями/ManagerModule.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаСообщениями/ManagerModule.bsl deleted file mode 100644 index cdc9f83d9..000000000 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаСообщениями/ManagerModule.bsl +++ /dev/null @@ -1,158 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда - -#Область СлужебныйПрограммныйИнтерфейс - -// Процедура добавляет запись в регистр по переданным значениям структуры. -Процедура ДобавитьЗапись(СтруктураЗаписи) Экспорт - - НачатьТранзакцию(); - Попытка - НаборЗаписей = СоздатьНаборЗаписей(); - Если СтруктураЗаписи.Свойство("КонечнаяТочка") Тогда - НаборЗаписей.Отбор.КонечнаяТочка.Установить(СтруктураЗаписи.КонечнаяТочка); - КонецЕсли; - - НоваяЗапись = НаборЗаписей.Добавить(); - ЗаполнитьЗначенияСвойств(НоваяЗапись, СтруктураЗаписи); - НаборЗаписей.Записать(); - - ЗаписатьПароль("Пароль", "WSПароль", СтруктураЗаписи); - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -// Процедура обновляет запись в регистре по переданным значениям структуры. -Процедура ОбновитьЗапись(СтруктураЗаписи) Экспорт - - НачатьТранзакцию(); - Попытка - МенеджерЗаписи = СоздатьМенеджерЗаписи(); - Если СтруктураЗаписи.Свойство("КонечнаяТочка") Тогда - МенеджерЗаписи.КонечнаяТочка = СтруктураЗаписи.КонечнаяТочка; - КонецЕсли; - - МенеджерЗаписи.Прочитать(); - ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтруктураЗаписи); - МенеджерЗаписи.Записать(); - - ЗаписатьПароль("Пароль", "WSПароль", СтруктураЗаписи); - ЗафиксироватьТранзакцию(); - Исключение - ОтменитьТранзакцию(); - ВызватьИсключение; - КонецПопытки; - -КонецПроцедуры - -// Для внутреннего использования. -// -Функция НастройкиТранспортаWS(КонечнаяТочка, ПараметрыАутентификации = Неопределено) Экспорт - - Результат = Новый Структура; - Результат.Вставить("ВидТранспортаСообщенийОбменаПоУмолчанию", Перечисления.ВидыТранспортаСообщенийОбмена.WS); - Результат.Вставить("WSURLВебСервиса"); - Результат.Вставить("WSИмяПользователя"); - Результат.Вставить("WSЗапомнитьПароль"); - Результат.Вставить("WSПароль"); - - Запрос = Новый Запрос( - "ВЫБРАТЬ - | НастройкиТранспорта.АдресВебСервиса КАК WSURLВебСервиса, - | НастройкиТранспорта.ИмяПользователя КАК WSИмяПользователя, - | НастройкиТранспорта.ЗапомнитьПароль КАК WSЗапомнитьПароль - |ИЗ - | РегистрСведений.НастройкиТранспортаОбменаСообщениями КАК НастройкиТранспорта - |ГДЕ - | НастройкиТранспорта.КонечнаяТочка = &КонечнаяТочка"); - Запрос.УстановитьПараметр("КонечнаяТочка", КонечнаяТочка); - - Выборка = Запрос.Выполнить().Выбрать(); - Если Выборка.Следующий() Тогда - ЗаполнитьЗначенияСвойств(Результат, Выборка); - КонецЕсли; - - УстановитьПривилегированныйРежим(Истина); - WSПароль = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(КонечнаяТочка, "WSПароль", Истина); - УстановитьПривилегированныйРежим(Ложь); - - Если ТипЗнч(WSПароль) = Тип("Строка") - Или WSПароль = Неопределено Тогда - - Результат.Вставить("WSПароль", WSПароль); - Иначе - ВызватьИсключение НСтр("ru='Ошибка при извлечении пароля из безопасного хранилища.'"); - КонецЕсли; - - Если ТипЗнч(ПараметрыАутентификации) = Тип("Структура") Тогда // Инициация обмена пользователем с клиента. - - Если ПараметрыАутентификации.ИспользоватьТекущегоПользователя Тогда - - Результат.WSИмяПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().Имя; - - КонецЕсли; - - Пароль = Неопределено; - - Если ПараметрыАутентификации.Свойство("Пароль", Пароль) - И Пароль <> Неопределено Тогда // Ввели пароль на клиенте - - Результат.WSПароль = Пароль; - - Иначе // Пароль на клиенте не вводили. - - Пароль = ПарольСинхронизацииДанных(КонечнаяТочка); - Результат.WSПароль = ?(Пароль = Неопределено, "", Пароль); - - КонецЕсли; - - ИначеЕсли ТипЗнч(ПараметрыАутентификации) = Тип("Строка") Тогда - Результат.WSПароль = ПараметрыАутентификации; - КонецЕсли; - - Возврат Результат; - -КонецФункции - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Процедура ЗаписатьПароль(ИмяПароляВСтруктуре, ИмяПароляПриЗаписи, СтруктураЗаписи) - - Если СтруктураЗаписи.Свойство(ИмяПароляВСтруктуре) Тогда - УстановитьПривилегированныйРежим(Истина); - ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(СтруктураЗаписи.КонечнаяТочка, - СтруктураЗаписи[ИмяПароляВСтруктуре], ИмяПароляПриЗаписи); - УстановитьПривилегированныйРежим(Ложь); - КонецЕсли; - -КонецПроцедуры - -Функция ПарольСинхронизацииДанных(УзелИнформационнойБазы) - - Пароль = Неопределено; - - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда - УстановитьПривилегированныйРежим(Истина); - Пароль = ПараметрыСеанса.ПаролиСинхронизацииДанных.Получить(УзелИнформационнойБазы); - КонецЕсли; - - Возврат Пароль; - -КонецФункции - -#КонецОбласти - -#КонецЕсли \ No newline at end of file diff --git a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаСообщениями/RecordSetModule.bsl b/SSL/src/InformationRegisters/НастройкиТранспортаОбменаСообщениями/RecordSetModule.bsl deleted file mode 100644 index eb25930ad..000000000 --- a/SSL/src/InformationRegisters/НастройкиТранспортаОбменаСообщениями/RecordSetModule.bsl +++ /dev/null @@ -1,53 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда - -#Область ОбработчикиСобытий - -Процедура ПередЗаписью(Отказ, Замещение) - - Если ОбменДанными.Загрузка Тогда - Возврат; - КонецЕсли; - - Для Каждого СтрокаНабора Из ЭтотОбъект Цикл - // Удаляем незначащие символы (пробелы) слева и справа для строковых параметров. - СокрЛПЗначениеПоля(СтрокаНабора, "АдресВебСервиса"); - СокрЛПЗначениеПоля(СтрокаНабора, "ИмяПользователя"); - КонецЦикла; - -КонецПроцедуры - -Процедура ПриЗаписи(Отказ, Замещение) - - Если ОбменДанными.Загрузка Тогда - Возврат; - КонецЕсли; - - // Обновляем кэш платформы для зачитывания актуальных настроек транспорта - // сообщений обмена процедурой ОбменДаннымиПовтИсп.НастройкиОбменаДанными. - ОбновитьПовторноИспользуемыеЗначения(); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Процедура СокрЛПЗначениеПоля(Запись, Знач Поле) - - Запись[Поле] = СокрЛП(Запись[Поле]); - -КонецПроцедуры - -#КонецОбласти - -#Иначе -ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); -#КонецЕсли \ No newline at end of file diff --git a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Help/ru.html b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Help/ru.html index 9c3d1e02d..86425bdac 100644 --- a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Help/ru.html +++ b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Help/ru.html @@ -1,14 +1,14 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> <p>Предназначена для настройки параметров учетной записи электронной почты.</p> <p>Открывается по команде <strong>Настройки</strong> на панели навигации <a href="Catalog.УчетныеЗаписиЭлектроннойПочты.Form.ФормаЭлемента/Help">учетной записи электронной почты</a>. </p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300dacdd2ff5f">Настройка использования учетной записи во встроенном почтовом клиенте</a>.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#2">Коллективная учетная запись</a>.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#1">Использование коллективной учетной записи</a>.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300dda48a17ca">Флажок Удалять письма после отправки</a>.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300de86849f59">Флажок Помещать письма в папку письма основания</a>.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300df5bbfa46d">Флажок В представление включать имя пользователя</a>.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#3">Использование другого почтового клиента для обработки писем</a>.</p> -<p style="MARGIN-BOTTOM: 5px; MARGIN-LEFT: 20px; MARGIN-TOP: 0px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300e7facbd651">Настройка подписей к письму</a>.</p><a name="70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300dacdd2ff5f"> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300dacdd2ff5f">Настройка использования учетной записи во встроенном почтовом клиенте</a>.</p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#2">Коллективная учетная запись</a>.</p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#1">Использование коллективной учетной записи</a>.</p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300dda48a17ca">Флажок Удалять письма после отправки</a>.</p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300de86849f59">Флажок Помещать письма в папку письма основания</a>.</p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300df5bbfa46d">Флажок В представление включать имя пользователя</a>.</p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#3">Использование другого почтового клиента для обработки писем</a>.</p> +<p style="MARGIN-BOTTOM: 5px; MARGIN-TOP: 0px; MARGIN-LEFT: 20px"><a href="#70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300e7facbd651">Настройка подписей к письму</a>.</p><a name="70a6370b13ca43baa611bed9691c461119059afee61f135f174b11e300dacdd2ff5f"> <h3 style="MARGIN-LEFT: 0px">Настройка использования учетной записи во встроенном почтовом клиенте</h3></a> <ul style="MARGIN-LEFT: 40px"><li>Настройки производятся на вкладке <strong>Основное</strong> с помощью переключателя <strong>Использование для встроенного почтового клиента</strong>: <ul><li>Выберите значение <strong>Получать, сохранять и отправлять письма с этой учетной записи во встроенном почтовом клиенте</strong>, если с данной учетной записи электронной почты планируется переписка. diff --git a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Module.bsl index c63ab3324..5c9ea91f8 100644 --- a/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/НастройкиУчетныхЗаписейЭлектроннойПочты/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ПользовательУчетнойЗаписи = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Запись.УчетнаяЗаписьЭлектроннойПочты, "ВладелецУчетнойЗаписи"); ЭтоПерсональнаяУчетнаяЗапись = ЗначениеЗаполнено(ПользовательУчетнойЗаписи); Если Не ЭтоПерсональнаяУчетнаяЗапись Тогда @@ -133,7 +129,7 @@ &НаКлиенте Процедура ПриОткрытии(Отказ) - Если ТипЗнч(ВладелецФормы) = Тип("УправляемаяФорма") И ВладелецФормы.ИмяФормы = "Справочник.УчетныеЗаписиЭлектроннойПочты.Форма.ФормаЭлемента" Тогда + Если ТипЗнч(ВладелецФормы) = Тип("ФормаКлиентскогоПриложения") И ВладелецФормы.ИмяФормы = "Справочник.УчетныеЗаписиЭлектроннойПочты.Форма.ФормаЭлемента" Тогда ЭтоПерсональнаяУчетнаяЗапись = ВладелецФормы.ВидУчетнойЗаписи = "Персональная"; КонецЕсли; ОбновитьСостояниеЭлементовФормы(ЭтотОбъект); diff --git a/SSL/src/InformationRegisters/НеразделенныеПользователи/ManagerModule.bsl b/SSL/src/InformationRegisters/НеразделенныеПользователи/ManagerModule.bsl new file mode 100644 index 000000000..2ab5c7e94 --- /dev/null +++ b/SSL/src/InformationRegisters/НеразделенныеПользователи/ManagerModule.bsl @@ -0,0 +1,104 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда + +#Область СлужебныйПрограммныйИнтерфейс + +// Возвращает список неразделенных администраторов +// +// Возвращаемое значение: +// СписокЗначений – список уникальных идентификаторов с представлениями (имена пользователей). +// +Функция СписокАдминистраторов() Экспорт + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | НеразделенныеПользователи.ИдентификаторПользователяИБ + |ИЗ + | РегистрСведений.НеразделенныеПользователи КАК НеразделенныеПользователи"; + Выборка = Запрос.Выполнить().Выбрать(); + СписокАдминистраторов = Новый СписокЗначений; + Пока Выборка.Следующий() Цикл + ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору( + Выборка.ИдентификаторПользователяИБ); + Если ПользовательИБ = Неопределено Тогда + Продолжить; + КонецЕсли; + РольПользователя = Неопределено; + Для Каждого Роль Из ПользовательИБ.Роли Цикл + РольПользователя = Роль; + Прервать; + КонецЦикла; + Если РольПользователя = Неопределено Тогда + Продолжить; + КонецЕсли; + Если Не Пользователи.ЭтоПолноправныйПользователь(ПользовательИБ, Истина) Тогда + Продолжить; + КонецЕсли; + СписокАдминистраторов.Добавить(Выборка.ИдентификаторПользователяИБ, ПользовательИБ.Имя); + КонецЦикла; + СписокАдминистраторов.СортироватьПоПредставлению(); + Возврат СписокАдминистраторов; + +КонецФункции + +// Возвращает максимальный порядковый номер неразделенного пользователя в информационной базе. +// +// Возвращаемое значение: +// Число +Функция МаксимальныйПорядковыйНомер() Экспорт + + ТекстЗапроса = "ВЫБРАТЬ + | ЕСТЬNULL(МАКСИМУМ(НеразделенныеПользователи.ПорядковыйНомер), 0) КАК ПорядковыйНомер + |ИЗ + | РегистрСведений.НеразделенныеПользователи КАК НеразделенныеПользователи"; + Запрос = Новый Запрос(ТекстЗапроса); + Выборка = Запрос.Выполнить().Выбрать(); + Если Выборка.Следующий() Тогда + Возврат Выборка.ПорядковыйНомер; + Иначе + Возврат 0; + КонецЕсли; + +КонецФункции + +// Возвращает порядковый номер неразделенного пользователя информационной базы +// +// Параметры: +// Идентификатор - уникальный идентификатор пользователя информационной базы. +// +// Возвращаемое значение: +// Число +Функция ПорядковыйНомерПользователяИБ(Идентификатор) Экспорт + + Запрос = Новый Запрос; + Запрос.УстановитьПараметр("ИдентификаторПользователяИБ", Идентификатор); + Запрос.Текст = + "ВЫБРАТЬ + | НеразделенныеПользователи.ПорядковыйНомер КАК ПорядковыйНомер + |ИЗ + | РегистрСведений.НеразделенныеПользователи КАК НеразделенныеПользователи + |ГДЕ + | НеразделенныеПользователи.ИдентификаторПользователяИБ = &ИдентификаторПользователяИБ"; + + УстановитьПривилегированныйРежим(Истина); + Выборка = Запрос.Выполнить().Выбрать(); + УстановитьПривилегированныйРежим(Ложь); + Если Выборка.Следующий() Тогда + Возврат Выборка.ПорядковыйНомер; + Иначе + Возврат ""; + КонецЕсли; + +КонецФункции + +#КонецОбласти + +#КонецЕсли \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ПоставляемыеДанныеТребующиеОбработки/ПоставляемыеДанныеТребующиеОбработки.mdo b/SSL/src/InformationRegisters/НеразделенныеПользователи/НеразделенныеПользователи.mdo similarity index 58% rename from SSL/src/InformationRegisters/ПоставляемыеДанныеТребующиеОбработки/ПоставляемыеДанныеТребующиеОбработки.mdo rename to SSL/src/InformationRegisters/НеразделенныеПользователи/НеразделенныеПользователи.mdo index eaaf36241..b8f52f130 100644 --- a/SSL/src/InformationRegisters/ПоставляемыеДанныеТребующиеОбработки/ПоставляемыеДанныеТребующиеОбработки.mdo +++ b/SSL/src/InformationRegisters/НеразделенныеПользователи/НеразделенныеПользователи.mdo @@ -1,18 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> -<mdclass:InformationRegister xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="0544376f-461c-42c3-a102-e0ae65e3c0c6"> +<mdclass:InformationRegister xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="8e07a76d-db30-491c-b296-181c8e689382"> <producedTypes> - <selectionType typeId="794dac64-7fd8-4697-b1c5-ef320a4d01b6" valueTypeId="eeff7dc1-4ff8-45ac-9cbe-227bcb32038a"/> - <listType typeId="d62258de-1f9a-43cc-8c46-49af4e0ce1d4" valueTypeId="3ee55901-5ceb-499b-8b58-b624db9a608e"/> - <managerType typeId="1e6e8e8c-2e04-4b4c-a0be-d95175bfbcef" valueTypeId="46642e33-602a-4c69-957c-8658334b5ebe"/> - <recordSetType typeId="fe03a13d-5997-4097-a162-6f89e25eee43" valueTypeId="7a14feb6-273a-4d8e-8782-34051ffd16c0"/> - <recordKeyType typeId="978e90ad-960c-45e5-94cf-dc2cfd68db0a" valueTypeId="77f1d675-e2d4-41ac-9b29-d74a48c995a0"/> - <recordType typeId="6a1d944a-af21-4a7c-a8ab-ba2d8f82486c" valueTypeId="b0a7a0e8-2ca1-4207-847c-a3351ff6e651"/> - <recordManagerType typeId="5c2333fd-0499-4666-84e6-dfb56a9d03f0" valueTypeId="4b79c1b4-8a8f-4639-9a21-2974ec6367ea"/> + <selectionType typeId="0e28e785-6470-408d-869b-b92d30bb037f" valueTypeId="0b36d1b4-9348-4981-8df4-a53335056786"/> + <listType typeId="81fb15db-d7f8-419d-ad9f-014517e00ae6" valueTypeId="e93f378e-b9e2-464c-80ce-b86b423ee7f5"/> + <managerType typeId="eb8a2ce8-a613-454c-b220-fae8bec6d700" valueTypeId="a98ff107-4b2b-4705-8af5-1183e5183396"/> + <recordSetType typeId="6565db5f-3688-43c2-be94-e2a337d916d9" valueTypeId="e8d84d65-cf4b-42a5-9f20-fa2d29dda6af"/> + <recordKeyType typeId="624a7b90-4f03-4ea8-99be-b1c2a57e1c3f" valueTypeId="94d1e5f1-b380-46f6-a426-e149fdfe11d2"/> + <recordType typeId="71461dd2-7a15-4c28-a2fc-2c16055f68a3" valueTypeId="a803eb1b-4f02-4350-9661-e79e4f476f9e"/> + <recordManagerType typeId="99322678-9b43-4084-aca9-9068eb1979fd" valueTypeId="5864bb46-0c06-4615-9e12-fc820481ca19"/> </producedTypes> - <name>ПоставляемыеДанныеТребующиеОбработки</name> + <name>НеразделенныеПользователи</name> <synonym> <key>ru</key> - <value>Поставляемые данные требующие обработки</value> + <value>Неразделенные пользователи</value> </synonym> <useStandardCommands>true</useStandardCommands> <editType>InDialog</editType> @@ -50,21 +50,22 @@ <maxValue xsi:type="core:UndefinedValue"/> </standardAttributes> <dataLockControlMode>Managed</dataLockControlMode> - <resources uuid="6df8d316-6ac3-4626-8951-1ad36d7049ed"> - <name>КоличествоПопыток</name> + <resources uuid="4f1752ae-42d0-477d-854b-de143c428a85"> + <name>ПорядковыйНомер</name> <synonym> <key>ru</key> - <value>Количество попыток</value> + <value>Порядковый номер</value> </synonym> <type> <types>Number</types> <numberQualifiers> - <precision>10</precision> + <precision>5</precision> + <nonNegative>true</nonNegative> </numberQualifiers> </type> <toolTip> <key>ru</key> - <value>Количество неудачных попыток обработки</value> + <value>Порядковый номер неразделенного пользователя в пределах информационной базы</value> </toolTip> <minValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/> @@ -72,18 +73,40 @@ <dataHistory>Use</dataHistory> <fillValue xsi:type="core:UndefinedValue"/> </resources> - <dimensions uuid="f211b418-899d-4220-a14b-4a7302183e46"> - <name>ИдентификаторФайла</name> + <resources uuid="29674b66-c542-4a34-8caa-8e57a51bd190"> + <name>ИмяПользователя</name> <synonym> <key>ru</key> - <value>Идентификатор файла</value> + <value>Имя пользователя</value> + </synonym> + <type> + <types>String</types> + <stringQualifiers> + <length>255</length> + </stringQualifiers> + </type> + <toolTip> + <key>ru</key> + <value>Имя неразделенного пользователя</value> + </toolTip> + <minValue xsi:type="core:UndefinedValue"/> + <maxValue xsi:type="core:UndefinedValue"/> + <fullTextSearch>Use</fullTextSearch> + <dataHistory>Use</dataHistory> + <fillValue xsi:type="core:StringValue"/> + </resources> + <dimensions uuid="1a41acdd-3503-4c69-b93b-eb1cb6749712"> + <name>ИдентификаторПользователяИБ</name> + <synonym> + <key>ru</key> + <value>Идентификатор пользователя ИБ</value> </synonym> <type> <types>UUID</types> </type> <toolTip> <key>ru</key> - <value>Идентификатор файла с поставляемыми данными</value> + <value>Идентификатор неразделенного пользователя ИБ</value> </toolTip> <minValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/> @@ -91,27 +114,4 @@ <fillValue xsi:type="core:UndefinedValue"/> <mainFilter>true</mainFilter> </dimensions> - <dimensions uuid="e499629a-69ed-46b4-be5d-7b1f2f6a11d4"> - <name>КодОбработчика</name> - <synonym> - <key>ru</key> - <value>Код обработчика</value> - </synonym> - <type> - <types>String</types> - <stringQualifiers> - <length>150</length> - </stringQualifiers> - </type> - <toolTip> - <key>ru</key> - <value>Код обработчика поставляемых данных</value> - </toolTip> - <minValue xsi:type="core:UndefinedValue"/> - <maxValue xsi:type="core:UndefinedValue"/> - <fullTextSearch>Use</fullTextSearch> - <dataHistory>Use</dataHistory> - <fillValue xsi:type="core:StringValue"/> - <mainFilter>true</mainFilter> - </dimensions> </mdclass:InformationRegister> diff --git a/SSL/src/InformationRegisters/НомераОтсканированныхФайлов/Help/ru.html b/SSL/src/InformationRegisters/НомераОтсканированныхФайлов/Help/ru.html index 36018a381..85dde90ea 100644 --- a/SSL/src/InformationRegisters/НомераОтсканированныхФайлов/Help/ru.html +++ b/SSL/src/InformationRegisters/НомераОтсканированныхФайлов/Help/ru.html @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16476"></meta></head><body> <p>Предназначен для просмотра нумерации отсканированных документов и их владельцев.</p> <p>Список можно просмотреть по команде <strong>Настройка сканирования - </strong><strong>Открыть номера отсканированных файлов</strong> на закладке <strong>Работа с файлами </strong>в персональных настройках программы.</p> <p>Программа автоматически присваивает номер отсканированным файлам. В списке можно отследить движение файлов, увидеть, какие файлы были удалены. </p> diff --git a/SSL/src/InformationRegisters/ОбластиДанных/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/InformationRegisters/ОбластиДанных/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss deleted file mode 100644 index 61e6fb4bb..000000000 --- a/SSL/src/InformationRegisters/ОбластиДанных/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"> - <filter> - <viewMode>Normal</viewMode> - <userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID> - </filter> - <order> - <viewMode>Normal</viewMode> - <userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID> - </order> - <conditionalAppearance> - <viewMode>Normal</viewMode> - <userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID> - </conditionalAppearance> - <itemsViewMode>Normal</itemsViewMode> - <itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</itemsUserSettingID> -</Settings> diff --git a/SSL/src/InformationRegisters/ОбластиДанных/Forms/ФормаСписка/Form.form b/SSL/src/InformationRegisters/ОбластиДанных/Forms/ФормаСписка/Form.form deleted file mode 100644 index b5054cb89..000000000 --- a/SSL/src/InformationRegisters/ОбластиДанных/Forms/ФормаСписка/Form.form +++ /dev/null @@ -1,538 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form"> - <items xsi:type="form:Table"> - <name>Список</name> - <id>1</id> - <title> - <key>ru</key> - <value>Список</value> - - true - true - - true - - - Список - - true - None - - ОбластьДанных - 4 - - <key>ru</key> - <value>Область данных</value> - - true - true - - true - - - Список.ОбластьДанныхВспомогательныеДанные - - true - - ОбластьДанныхРасширеннаяПодсказка - 33 - Label - true - true - - Left - - - - ОбластьДанныхКонтекстноеМеню - 5 - true - - LabelField - Enter - true - Left - true - - true - true - - - - Представление - 16 - true - true - - true - - - Список.Представление - - - ПредставлениеРасширеннаяПодсказка - 34 - Label - true - true - - Left - - - - ПредставлениеКонтекстноеМеню - 17 - true - - LabelField - Enter - true - Left - true - - true - true - - - - Статус - 6 - true - true - - true - - - Список.Статус - - true - - СтатусРасширеннаяПодсказка - 35 - Label - true - true - - Left - - - - СтатусКонтекстноеМеню - 7 - true - - LabelField - Enter - true - Left - true - - true - true - - - - Повтор - 8 - true - true - - true - - - Список.Повтор - - true - - ПовторРасширеннаяПодсказка - 36 - Label - true - true - - Left - - - - ПовторКонтекстноеМеню - 9 - true - - LabelField - Enter - true - Left - true - - true - true - - - - ОшибкаОбработки - 12 - true - true - - true - - - Список.ОшибкаОбработки - - true - - ОшибкаОбработкиРасширеннаяПодсказка - 37 - Label - true - true - - Left - - - - ОшибкаОбработкиКонтекстноеМеню - 13 - true - - CheckBoxField - Enter - true - Left - true - - - - ЧасовойПояс - 19 - true - true - - true - - - Список.ЧасовойПояс - - - ЧасовойПоясРасширеннаяПодсказка - 38 - Label - true - true - - Left - - - - ЧасовойПоясКонтекстноеМеню - 20 - true - - LabelField - Enter - true - Left - true - - true - true - - - - Префикс - 21 - true - true - - true - - - Список.Префикс - - - ПрефиксРасширеннаяПодсказка - 39 - Label - true - true - - Left - - - - ПрефиксКонтекстноеМеню - 22 - true - - LabelField - Enter - true - Left - true - - true - true - - - - ИдентификаторВыгрузки - 10 - true - true - - true - - - Список.ИдентификаторВыгрузки - - true - - ИдентификаторВыгрузкиРасширеннаяПодсказка - 40 - Label - true - true - - Left - - - - ИдентификаторВыгрузкиКонтекстноеМеню - 11 - true - - LabelField - Enter - true - Left - true - - true - true - - - - Вариант - 14 - true - true - - true - - - Список.Вариант - - true - - ВариантРасширеннаяПодсказка - 41 - Label - true - true - - Left - - - - ВариантКонтекстноеМеню - 15 - true - - LabelField - Enter - true - Left - true - - true - true - - - None - - СписокКоманднаяПанель - 3 - Left - - - СписокСтрокаПоиска - 24 - - СписокСтрокаПоискаРасширеннаяПодсказка - 26 - Label - true - true - - Left - - - - СписокСтрокаПоискаКонтекстноеМеню - 25 - true - - Список - - true - - - - СписокСостояниеПросмотра - 27 - - СписокСостояниеПросмотраРасширеннаяПодсказка - 29 - Label - true - true - - Left - - - - СписокСостояниеПросмотраКонтекстноеМеню - 28 - true - - ViewStatusAddition - Список - - true - - - - СписокУправлениеПоиском - 30 - - СписокУправлениеПоискомРасширеннаяПодсказка - 32 - Label - true - true - - Left - - - - СписокУправлениеПоискомКонтекстноеМеню - 31 - true - - SearchControlAddition - Список - - true - - - - СписокРасширеннаяПодсказка - 23 - Label - true - true - - Left - - - - СписокКонтекстноеМеню - 2 - true - - true - true - true - true - true - MultiRow -
          true
          - 1 - 1 - AutoUse - AutoUse - true - true - Auto - Auto - ExpandTopLevel - true - true - true - - Список.DefaultPicture - - true - - 60 - - 0001-01-01T00:00:00 - 0001-01-01T00:00:00 - - - true - true - -
          - - ФормаКоманднаяПанель - -1 - Left - true - - DontBlock - true - true - true - Vertical - true - true - true - auto - true - - Список - 1 - - DynamicList - - - true - - - true - -
          true
          - - ВЫБРАТЬ - РегистрСведенийОбластиДанных.ОбластьДанныхВспомогательныеДанные, - РегистрСведенийОбластиДанных.Статус, - РегистрСведенийОбластиДанных.Повтор, - РегистрСведенийОбластиДанных.ИдентификаторВыгрузки, - РегистрСведенийОбластиДанных.ОшибкаОбработки, - РегистрСведенийОбластиДанных.Вариант, - ПредставлениеОбластиДанных.Значение КАК Представление, - ЧасовойПоясОбластиДанных.Значение КАК ЧасовойПояс, - ПрефиксОбластиДанных.Значение КАК Префикс -ИЗ - РегистрСведений.ОбластиДанных КАК РегистрСведенийОбластиДанных - ЛЕВОЕ СОЕДИНЕНИЕ Константа.ПредставлениеОбластиДанных КАК ПредставлениеОбластиДанных - ПО РегистрСведенийОбластиДанных.ОбластьДанныхВспомогательныеДанные = ПредставлениеОбластиДанных.ОбластьДанныхВспомогательныеДанные - ЛЕВОЕ СОЕДИНЕНИЕ Константа.ЧасовойПоясОбластиДанных КАК ЧасовойПоясОбластиДанных - ПО РегистрСведенийОбластиДанных.ОбластьДанныхВспомогательныеДанные = ЧасовойПоясОбластиДанных.ОбластьДанныхВспомогательныеДанные - ЛЕВОЕ СОЕДИНЕНИЕ Константа.ПрефиксОбластиДанных КАК ПрефиксОбластиДанных - ПО РегистрСведенийОбластиДанных.ОбластьДанныхВспомогательныеДанные = ПрефиксОбластиДанных.ОбластьДанныхВспомогательныеДанные - InformationRegister.ОбластиДанных - true - true - true - true - true - -
          - - - - - -
          diff --git a/SSL/src/InformationRegisters/ОбластиДанных/ОбластиДанных.mdo b/SSL/src/InformationRegisters/ОбластиДанных/ОбластиДанных.mdo deleted file mode 100644 index e2ede0ed5..000000000 --- a/SSL/src/InformationRegisters/ОбластиДанных/ОбластиДанных.mdo +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - - - - - - ОбластиДанных - - ru - Области данных - - true - InDialog - InformationRegister.ОбластиДанных.Form.ФормаСписка - - Use - Active - - Use - - - - - Use - LineNumber - - Use - - - - - Use - Recorder - - Use - - - - - Use - Period - - ShowError - Use - - - - Managed - - Статус - - ru - Статус - - - EnumRef.СтатусыОбластейДанных - - - ru - Статус области данных - - - - Use - Use - - - - Вариант - - ru - Вариант - - - String - - 20 - - - - ru - Вариант первоначального заполнения области данных - - - - Use - Use - - - - ИдентификаторВыгрузки - - ru - Идентификатор выгрузки - - - UUID - - - ru - Идентификатор файла выгрузки в хранилище менеджера сервиса для подготовки области - - - - Use - - - - ОшибкаОбработки - - ru - Ошибка обработки - - - Boolean - - - ru - Флаг возникновения невосстановимой ошибки при обработке области - - - - Use - Use - - - - Повтор - - ru - Повтор - - - Number - - 2 - true - - - - ru - Количество повторов при обработке области - - - - Use - Use - - - - ФормаСписка - - ru - Форма списка - - PersonalComputer - MobileDevice - - diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаНаУровнеЗаписей/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаНаУровнеЗаписей/Module.bsl index 659c3348a..1c951a9e5 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаНаУровнеЗаписей/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаНаУровнеЗаписей/Module.bsl @@ -19,10 +19,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - НавигационнаяСсылка = "e1cib/app/РегистрСведений.ОбновлениеКлючейДоступаКДанным.Форма.ОбновлениеДоступаНаУровнеЗаписей"; ПериодОбновленияПрогресса = 3; diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаРучноеУправление/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаРучноеУправление/Module.bsl index 7ddf9004c..8559778e8 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаРучноеУправление/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ОбновлениеДоступаРучноеУправление/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Не СтандартныеПодсистемыСервер.ВерсияПрограммыОбновленаДинамически() Тогда СпискиСОграничением = УправлениеДоступомСлужебныйПовтИсп.СпискиСОграничением(); Иначе diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ФормаЗаписи/Module.bsl index 4ca9e98b2..86cf23806 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Ключ.Пустой() Тогда ЭтоНоваяЗапись = Истина; Элементы.ДатаПоследнегоОбновленногоЭлемента.ТолькоПросмотр = Истина; diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ФормаСписка/Module.bsl index ff5a174c1..7efc62af7 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаКДанным/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаПользователей/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаПользователей/Forms/ФормаЗаписи/Module.bsl index 68da6a914..041d2a9ec 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаПользователей/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаПользователей/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Ключ.Пустой() Тогда ЭтоНоваяЗапись = Истина; Элементы.КлючУникальности.ТолькоПросмотр = Истина; diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаПользователей/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаПользователей/Forms/ФормаСписка/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаПользователей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаПользователей/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаТекущиеЗадания/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаТекущиеЗадания/Forms/ФормаЗаписи/Module.bsl index 266dc08c4..144d98dba 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаТекущиеЗадания/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаТекущиеЗадания/Forms/ФормаЗаписи/Module.bsl @@ -1,3 +1,10 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// #Область ОбработчикиСобытийФормы diff --git a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаТекущиеЗадания/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаТекущиеЗадания/Forms/ФормаСписка/Module.bsl index 59904586e..ecfb3a6ff 100644 --- a/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаТекущиеЗадания/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ОбновлениеКлючейДоступаТекущиеЗадания/Forms/ФормаСписка/Module.bsl @@ -1,3 +1,10 @@ +/////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2019, ООО 1С-Софт +// Все права защищены. Эта программа и сопроводительные материалы предоставляются +// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) +// Текст лицензии доступен по ссылке: +// https://creativecommons.org/licenses/by/4.0/legalcode +/////////////////////////////////////////////////////////////////////////////////////////////////////// #Область ОбработчикиСобытийФормы diff --git a/SSL/src/InformationRegisters/ОбработчикиСобытийСинхронизацииДанных/ManagerModule.bsl b/SSL/src/InformationRegisters/ОбработчикиСобытийСинхронизацииДанных/ManagerModule.bsl index 18c4f9a7c..0d7f5dec3 100644 --- a/SSL/src/InformationRegisters/ОбработчикиСобытийСинхронизацииДанных/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ОбработчикиСобытийСинхронизацииДанных/ManagerModule.bsl @@ -42,7 +42,7 @@ СтруктураЗаписи.Вставить("УзелИнформационнойБазы", ВыборкаУзлов.Ссылка); СтруктураЗаписи.Вставить("Событие", "ПослеПолученияДанных"); СтруктураЗаписи.Вставить("Обработчик", "ОбновлениеИнформационнойБазы"); - ОбменДаннымиСервер.ДобавитьЗаписьВРегистрСведений(СтруктураЗаписи, "ОбработчикиСобытийСинхронизацииДанных"); + ОбменДаннымиСлужебный.ДобавитьЗаписьВРегистрСведений(СтруктураЗаписи, "ОбработчикиСобытийСинхронизацииДанных"); КонецЦикла; КонецЦикла; @@ -83,7 +83,7 @@ СтруктураЗаписи.Вставить("УзелИнформационнойБазы", УзелИнформационнойБазы); СтруктураЗаписи.Вставить("Событие", "ПослеПолученияДанных"); СтруктураЗаписи.Вставить("Обработчик", "ОбновлениеИнформационнойБазы"); - ОбменДаннымиСервер.УдалитьНаборЗаписейВРегистреСведений(СтруктураЗаписи, "ОбработчикиСобытийСинхронизацииДанных"); + ОбменДаннымиСлужебный.УдалитьНаборЗаписейВРегистреСведений(СтруктураЗаписи, "ОбработчикиСобытийСинхронизацииДанных"); КонецЕсли; diff --git a/SSL/src/InformationRegisters/ОбщиеНастройкиУзловИнформационныхБаз/ManagerModule.bsl b/SSL/src/InformationRegisters/ОбщиеНастройкиУзловИнформационныхБаз/ManagerModule.bsl index b9156ee89..cad03fd83 100644 --- a/SSL/src/InformationRegisters/ОбщиеНастройкиУзловИнформационныхБаз/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ОбщиеНастройкиУзловИнформационныхБаз/ManagerModule.bsl @@ -14,6 +14,33 @@ // Добавлять записи в этот регистр наборами записей запрещено, // т.к. при этом будут утеряны настройки, не попавшие в набор записей. +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ОбновитьПрефиксы(УзелОбмена, Префикс = "", ПрефиксКорреспондента = "") Экспорт + + ЕстьПрефикс = Ложь; + + СтруктураЗаписи = Новый Структура; + СтруктураЗаписи.Вставить("УзелИнформационнойБазы", УзелОбмена); + + Если ЗначениеЗаполнено(Префикс) Тогда + СтруктураЗаписи.Вставить("Префикс", Префикс); + ЕстьПрефикс = Истина; + КонецЕсли; + + Если ЗначениеЗаполнено(ПрефиксКорреспондента) Тогда + СтруктураЗаписи.Вставить("ПрефиксКорреспондента", ПрефиксКорреспондента); + ЕстьПрефикс = Истина; + КонецЕсли; + + Если ЕстьПрефикс Тогда + ОбновитьЗапись(СтруктураЗаписи); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + #Область СлужебныеПроцедурыИФункции Процедура УстановитьПризнакНачальнойВыгрузкиДанных(Знач УзелИнформационнойБазы) Экспорт @@ -134,28 +161,6 @@ КонецПроцедуры -Процедура УстановитьНеобходимостьВыполненияКорректировкиИнформацииСопоставленияДляВсехУзловИнформационнойБазы() Экспорт - - Для Каждого ИмяПланаОбмена Из ОбменДаннымиПовтИсп.ПланыОбменаБСП() Цикл - - Если ОбменДаннымиПовтИсп.ЭтоПланОбменаРаспределеннойИнформационнойБазы(ИмяПланаОбмена) Тогда - Продолжить; - КонецЕсли; - - Для Каждого Узел Из ОбменДаннымиСервер.УзлыПланаОбмена(ИмяПланаОбмена) Цикл - - СтруктураЗаписи = Новый Структура; - СтруктураЗаписи.Вставить("УзелИнформационнойБазы", Узел); - СтруктураЗаписи.Вставить("ВыполнитьКорректировкуИнформацииСопоставления", Истина); - - ОбновитьЗапись(СтруктураЗаписи); - - КонецЦикла; - - КонецЦикла; - -КонецПроцедуры - Функция НеобходимоВыполнитьКорректировкуИнформацииСопоставления(УзелИнформационнойБазы, НомерОтправленного) Экспорт ТекстЗапроса = " @@ -370,29 +375,6 @@ КонецФункции -Процедура ОбновитьПрефиксы(УзелОбмена, Префикс = "", ПрефиксКорреспондента = "") Экспорт - - ЕстьПрефикс = Ложь; - - СтруктураЗаписи = Новый Структура; - СтруктураЗаписи.Вставить("УзелИнформационнойБазы", УзелОбмена); - - Если ЗначениеЗаполнено(Префикс) Тогда - СтруктураЗаписи.Вставить("Префикс", Префикс); - ЕстьПрефикс = Истина; - КонецЕсли; - - Если ЗначениеЗаполнено(ПрефиксКорреспондента) Тогда - СтруктураЗаписи.Вставить("ПрефиксКорреспондента", ПрефиксКорреспондента); - ЕстьПрефикс = Истина; - КонецЕсли; - - Если ЕстьПрефикс Тогда - ОбновитьЗапись(СтруктураЗаписи); - КонецЕсли; - -КонецПроцедуры - Функция ПрефиксыУзла(УзелОбмена) Экспорт Результат = Новый Структура; @@ -434,7 +416,7 @@ // Процедура ОбновитьЗапись(СтруктураЗаписи) - ОбменДаннымиСервер.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "ОбщиеНастройкиУзловИнформационныхБаз"); + ОбменДаннымиСлужебный.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "ОбщиеНастройкиУзловИнформационныхБаз"); КонецПроцедуры diff --git a/SSL/src/InformationRegisters/УдалитьСтраныМира/УдалитьСтраныМира.mdo b/SSL/src/InformationRegisters/ОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных/ОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных.mdo similarity index 53% rename from SSL/src/InformationRegisters/УдалитьСтраныМира/УдалитьСтраныМира.mdo rename to SSL/src/InformationRegisters/ОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных/ОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных.mdo index a7443eae4..14abef975 100644 --- a/SSL/src/InformationRegisters/УдалитьСтраныМира/УдалитьСтраныМира.mdo +++ b/SSL/src/InformationRegisters/ОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных/ОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных.mdo @@ -1,20 +1,19 @@ - + - - - - - - - + + + + + + + - УдалитьСтраныМира + ОчередьИнсталляцииПоставляемыхДополнительныхОтчетовИОбработокВОбластиДанных ru - (не используется) Страны мира + Очередь инсталляции поставляемых дополнительных отчетов и обработок в области данных - true InDialog Use @@ -50,44 +49,35 @@ Managed - - Значение + + ПараметрыИнсталляции ru - Значение + Параметры инсталляции ValueStorage - - ru - Значение для обновления - + Use Use - - ОбластьДанных + + ПоставляемаяОбработка ru - Область данных + Поставляемая обработка - Number - - 10 - + CatalogRef.ПоставляемыеДополнительныеОтчетыИОбработки - - ru - Область данных для обновления - + Use Use - true + true diff --git a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаЗаписи/Module.bsl index fea83bcd4..ed645f001 100644 --- a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.Ключ.Пустой() Тогда Отказ = Истина; Иначе diff --git a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаСписка/Module.bsl index 144d98dba..21e1a9dc6 100644 --- a/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ПараметрыОграниченияДоступа/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/ManagerModule.bsl b/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/ManagerModule.bsl index 67a9e83b7..5c27790f5 100644 --- a/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПараметрыРаботыВерсийРасширений/ManagerModule.bsl @@ -226,7 +226,7 @@ Если ЗначениеЗаполнено(ТекстДляАсинхронногоВызова) Тогда Возврат; КонецЕсли; - ФоновоеЗадание.ОжидатьЗавершения(); + ФоновоеЗадание.ОжидатьЗавершенияВыполнения(); Отбор = Новый Структура("УникальныйИдентификатор", ФоновоеЗадание.УникальныйИдентификатор); ФоновоеЗадание = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор)[0]; Если ФоновоеЗадание.ИнформацияОбОшибке <> Неопределено Тогда diff --git a/SSL/src/InformationRegisters/ПодпискиПолучателей/Forms/НастройкаПодписокЭтойКонечнойТочки/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/InformationRegisters/ПодпискиПолучателей/Forms/НастройкаПодписокЭтойКонечнойТочки/Attributes/Список/ExtInfo/ListSettings.dcss deleted file mode 100644 index 61e6fb4bb..000000000 --- a/SSL/src/InformationRegisters/ПодпискиПолучателей/Forms/НастройкаПодписокЭтойКонечнойТочки/Attributes/Список/ExtInfo/ListSettings.dcss +++ /dev/null @@ -1,17 +0,0 @@ - - - - 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 deleted file mode 100644 index 660869f5e..000000000 --- a/SSL/src/InformationRegisters/ПодпискиПолучателей/Forms/НастройкаПодписокЭтойКонечнойТочки/Form.form +++ /dev/null @@ -1,232 +0,0 @@ - - - - Список - 1 - - <key>ru</key> - <value>Список</value> - - true - true - - true - - - Список - - None - - КаналСообщений - 4 - true - true - - true - - - Список.КаналСообщений - - - КаналСообщенийExtendedTooltip - 7 - Label - true - true - - Left - - - - КаналСообщенийКонтекстноеМеню - 5 - true - - LabelField - Enter - true - Left - true - - true - true - - - None - - СписокКоманднаяПанель - 3 - Left - true - - - СписокСтрокаПоиска - 8 - - СписокСтрокаПоискаРасширеннаяПодсказка - 10 - Label - true - true - - Left - - - - СписокСтрокаПоискаКонтекстноеМеню - 9 - true - - Список - - true - - - - СписокСостояниеПросмотра - 11 - - СписокСостояниеПросмотраРасширеннаяПодсказка - 13 - Label - true - true - - Left - - - - СписокСостояниеПросмотраКонтекстноеМеню - 12 - true - - ViewStatusAddition - Список - - true - - - - СписокУправлениеПоиском - 14 - - СписокУправлениеПоискомРасширеннаяПодсказка - 16 - Label - true - true - - Left - - - - СписокУправлениеПоискомКонтекстноеМеню - 15 - true - - SearchControlAddition - Список - - true - - - - СписокExtendedTooltip - 6 - Label - true - true - - Left - - - - СписокКонтекстноеМеню - 2 - true - - HierarchicalList - true - true - true - true - true - MultiRow -
          true
          - 1 - 1 - AutoUse - AutoUse - true - true - Auto - Auto - true - true - true - - Список.DefaultPicture - - true - - 60 - - 0001-01-01T00:00:00 - 0001-01-01T00:00:00 - - - true - true - -
          - - ФормаКоманднаяПанель - -1 - Left - true - - - OnCreateAtServer - ПриСозданииНаСервере - - DontBlock - true - true - true - Vertical - true - true - true - auto - true - - Список - - <key>ru</key> - <value>Список</value> - - 1 - - DynamicList - - - true - - - true - -
          true
          - - InformationRegister.ПодпискиПолучателей - true - true - true - true - -
          - - - - - -
          diff --git a/SSL/src/InformationRegisters/ПодпискиПолучателей/Forms/НастройкаПодписокЭтойКонечнойТочки/Module.bsl b/SSL/src/InformationRegisters/ПодпискиПолучателей/Forms/НастройкаПодписокЭтойКонечнойТочки/Module.bsl deleted file mode 100644 index 4c58621a2..000000000 --- a/SSL/src/InformationRegisters/ПодпискиПолучателей/Forms/НастройкаПодписокЭтойКонечнойТочки/Module.bsl +++ /dev/null @@ -1,22 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - - ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, - "Получатель", ОбменСообщениямиВнутренний.ЭтотУзел() ); -КонецПроцедуры - -#КонецОбласти diff --git a/SSL/src/InformationRegisters/ПодпискиПолучателей/Forms/ФормаЗаписи/Form.form b/SSL/src/InformationRegisters/ПодпискиПолучателей/Forms/ФормаЗаписи/Form.form deleted file mode 100644 index f30094757..000000000 --- a/SSL/src/InformationRegisters/ПодпискиПолучателей/Forms/ФормаЗаписи/Form.form +++ /dev/null @@ -1,125 +0,0 @@ - - - - КаналСообщений - 1 - true - true - - true - - - Запись.КаналСообщений - - - КаналСообщенийExtendedTooltip - 5 - Label - true - true - - Left - - - - КаналСообщенийКонтекстноеМеню - 2 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - Получатель - 3 - true - true - - true - - - Запись.Получатель - - - ПолучательExtendedTooltip - 6 - Label - true - true - - Left - - - - ПолучательКонтекстноеМеню - 4 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - ФормаКоманднаяПанель - -1 - Left - true - - - OnCreateAtServer - ПриСозданииНаСервере - - LockOwner - true - true - true - Vertical - true - true - true - auto - true - - Запись - 1 - - InformationRegisterRecordManager.ПодпискиПолучателей - - - true - - - true - -
          true
          - true -
          - - - - - -
          diff --git a/SSL/src/InformationRegisters/ПодпискиПолучателей/ManagerModule.bsl b/SSL/src/InformationRegisters/ПодпискиПолучателей/ManagerModule.bsl deleted file mode 100644 index 47d0b1769..000000000 --- a/SSL/src/InformationRegisters/ПодпискиПолучателей/ManagerModule.bsl +++ /dev/null @@ -1,41 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 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/InformationRegisters/ПодпискиПолучателей/RecordSetModule.bsl b/SSL/src/InformationRegisters/ПодпискиПолучателей/RecordSetModule.bsl deleted file mode 100644 index 4111f1c75..000000000 --- a/SSL/src/InformationRegisters/ПодпискиПолучателей/RecordSetModule.bsl +++ /dev/null @@ -1,42 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////// -// Copyright (c) 2019, ООО 1С-Софт -// Все права защищены. Эта программа и сопроводительные материалы предоставляются -// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) -// Текст лицензии доступен по ссылке: -// https://creativecommons.org/licenses/by/4.0/legalcode -/////////////////////////////////////////////////////////////////////////////////////////////////////// - -#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда - -#Область ОбработчикиСобытий - -Процедура ПередЗаписью(Отказ, Замещение) - - Если ОбменДанными.Загрузка Тогда - Возврат; - КонецЕсли; - - Получатель = Отбор["Получатель"].Значение; - - Если Получатель <> Неопределено - И Получатель = ОбменСообщениямиВнутренний.ЭтотУзел() Тогда - - Получатели = ОбменСообщениямиВнутренний.ВсеПолучатели(); - - ОбменДанными.Получатели.Очистить(); - - Для Каждого Узел Из Получатели Цикл - - ОбменДанными.Получатели.Добавить(Узел); - - КонецЦикла; - - КонецЕсли; - -КонецПроцедуры - -#КонецОбласти - -#Иначе -ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'"); -#КонецЕсли \ No newline at end of file diff --git a/SSL/src/InformationRegisters/ПодпискиПолучателей/ПодпискиПолучателей.mdo b/SSL/src/InformationRegisters/ПодпискиПолучателей/ПодпискиПолучателей.mdo deleted file mode 100644 index 16cf60d4c..000000000 --- a/SSL/src/InformationRegisters/ПодпискиПолучателей/ПодпискиПолучателей.mdo +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - - - - - ПодпискиПолучателей - - ru - Подписки получателей - - InDialog - InformationRegister.ПодпискиПолучателей.Form.ФормаЗаписи - - Use - Active - - Use - - - - - Use - LineNumber - - Use - - - - - Use - Recorder - - Use - - - - - Use - Period - - ShowError - Use - - - - Managed - - КаналСообщений - - ru - Канал сообщений - - - String - - 150 - - - - ru - Имя канала сообщений - - - - Use - Use - - - - Получатель - - ru - Получатель - - - ExchangePlanRef.ОбменСообщениями - - - ru - Конечная точка (получатель сообщений из канала) - - - - true - Use - true - - true - true - - - ФормаЗаписи - - ru - Форма записи - - PersonalComputer - MobileDevice - - - НастройкаПодписокЭтойКонечнойТочки - - ru - Настройка подписок этой конечной точки - - PersonalComputer - MobileDevice - - diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/ВыбораРежимаОткрытияМакета/Help/ru.html b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/ВыбораРежимаОткрытияМакета/Help/ru.html index 27353367a..0bc886e01 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/ВыбораРежимаОткрытияМакета/Help/ru.html +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/ВыбораРежимаОткрытияМакета/Help/ru.html @@ -1,4 +1,4 @@ - +

          Предназначена для выбора режима открытия макета.

          Для открытия макета в списке Макеты печатных форм можно:

          • нажать клавишу Enter - необходимо выбрать режим открытия макета; diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/ВыбораРежимаОткрытияМакета/Module.bsl b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/ВыбораРежимаОткрытияМакета/Module.bsl index 771cb046a..546d33309 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/ВыбораРежимаОткрытияМакета/Module.bsl +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/ВыбораРежимаОткрытияМакета/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Значение = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить( "НастройкаОткрытияМакетов", "СпрашиватьРежимОткрытияМакета"); diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Help/ru.html b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Help/ru.html index 2e25d5908..03702036c 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Help/ru.html +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Help/ru.html @@ -1,4 +1,4 @@ - +

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

            Открыть список можно с помощью команды Макеты печатных форм раздела Администрирование - Печатные формы, отчеты и обработки.

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

            diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl index e05dd8ffc..715e7491c 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/МакетыПечатныхФорм/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ЗаполнитьТаблицуМакетовПечатныхФорм(); Если Параметры.Свойство("ПоказыватьТолькоПользовательскиеИзмененные") Тогда ОтборПоИспользованиюМакета = "ИспользуемыеИзмененные"; diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/РедактированиеМакета/Help/ru.html b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/РедактированиеМакета/Help/ru.html index bfd635b15..cdf1edb7b 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/РедактированиеМакета/Help/ru.html +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/РедактированиеМакета/Help/ru.html @@ -1,11 +1,11 @@ - +

            Макеты в виде табличного документа редактируются в самой программе, а для редактирования макетов в виде офисных документов в форматах Microsoft Word и OpenOffice.org Writer на компьютере должны быть установлены соответствующие офисные программы.

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

            Для редактирования макета в веб-клиенте могут потребоваться дополнительные настройки.

            Если программа уже установлена, нажмите Продолжить.

            Программа, с помощью которой можно отредактировать макет, определяется типом (форматом) макета:

            -
      Роль исполнителя Основной объект адресации
      (тип, значение)
      Дополнительный объект адресации
      (тип, значение)
      Пользователь
      +
      Тип макета
      diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/РедактированиеМакета/Module.bsl b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/РедактированиеМакета/Module.bsl index 619de2c68..2d4c389a0 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/РедактированиеМакета/Module.bsl +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Forms/РедактированиеМакета/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Если Параметры.ТабличныйДокумент <> Неопределено Тогда ИзменяемыйМакет = Параметры.ТабличныйДокумент; КонецЕсли; @@ -115,9 +111,12 @@ &НаКлиенте Процедура ЗавершитьИзменение(Команда) + #Если Вебклиент ИЛИ МобильныйКлиент Тогда - ОписаниеОповещения = Новый ОписаниеОповещения("ПоместитьФайлЗавершение", ЭтотОбъект); - НачатьПомещениеФайла(ОписаниеОповещения, АдресФайлаМакетаВоВременномХранилище, ИмяФайлаМакета); + ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗагрузкеФайла", ЭтотОбъект); + ПараметрыЗагрузки = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла(); + ПараметрыЗагрузки.ИдентификаторФормы = УникальныйИдентификатор; + ФайловаяСистемаКлиент.ЗагрузитьФайл(ОписаниеОповещения, ПараметрыЗагрузки); #Иначе Если НРег(ТипМакета) = "mxl" Тогда ИзменяемыйМакет.Скрыть(); @@ -328,12 +327,14 @@ КонецФункции &НаКлиенте -Процедура ПоместитьФайлЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт +Процедура ПриЗагрузкеФайла(Файл, ДополнительныеПараметры) Экспорт + + МакетЗагружен = Файл <> Неопределено; + Если МакетЗагружен Тогда + АдресФайлаМакетаВоВременномХранилище = Файл.Хранение; + ИмяФайлаМакета = Файл.Имя; + КонецЕсли; - МакетЗагружен = Результат; - АдресФайлаМакетаВоВременномХранилище = Адрес; - ИмяФайлаМакета = ВыбранноеИмяФайла; - ЗаписатьМакетИЗакрыть(); КонецПроцедуры diff --git a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Help/ru.html b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Help/ru.html index f2cb119d1..cb817b02f 100644 --- a/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Help/ru.html +++ b/SSL/src/InformationRegisters/ПользовательскиеМакетыПечати/Help/ru.html @@ -1,4 +1,4 @@ - +

      Многие документы, справочники и другие объекты программы имеют свои печатные формы. Печатные формы могут формироваться в виде табличных документов или офисных документов в форматах Microsoft Word, OpenOffice.org Writer, Adobe PDF, HTML, Microsoft Excel, а также в формате табличного документа 1С:Предприятие (.mxl). При этом не требуется, чтобы сами эти программы были установлены на компьютере.

      В то же время, для формирования печатных форм, которые сразу выводятся в форматах Microsoft Word и OpenOffice.org Writer, необходимо, чтобы на компьютере были установлены соответствующие офисные программы.

      Особенности формирования печатных форм в веб-клиенте

      diff --git a/SSL/src/InformationRegisters/ПраваРолей/Forms/ФормаЗаписи/Module.bsl b/SSL/src/InformationRegisters/ПраваРолей/Forms/ФормаЗаписи/Module.bsl index 4baacd2d1..dad5cb6b8 100644 --- a/SSL/src/InformationRegisters/ПраваРолей/Forms/ФормаЗаписи/Module.bsl +++ b/SSL/src/InformationRegisters/ПраваРолей/Forms/ФормаЗаписи/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - Чтение = Истина; ТолькоПросмотр = Истина; diff --git a/SSL/src/InformationRegisters/ПраваРолей/Forms/ФормаСписка/Module.bsl b/SSL/src/InformationRegisters/ПраваРолей/Forms/ФормаСписка/Module.bsl index 8931ab4e4..35c3dbe13 100644 --- a/SSL/src/InformationRegisters/ПраваРолей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/InformationRegisters/ПраваРолей/Forms/ФормаСписка/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ТолькоПросмотр = Истина; Список.Параметры.УстановитьЗначениеПараметра("ОбъектМетаданных", Параметры.ОбъектМетаданных); diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Help/ru.html b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Help/ru.html index 7e190c46f..a96becebd 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Help/ru.html +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Help/ru.html @@ -1,4 +1,4 @@ - +

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

      Открывается по кнопке Загрузить комплект правил из настройки синхронизации данных.

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

      diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Module.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Module.bsl index 0fc297cb4..945728843 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Module.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ЗагрузитьПравилаСинхронизацииДанных/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ИмяПланаОбмена = Параметры.ИмяПланаОбмена; Если Не ЗначениеЗаполнено(ИмяПланаОбмена) Тогда diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Help/ru.html b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Help/ru.html index 3425af2fb..3c2acf082 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Help/ru.html +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

      Правила конвертации объектов можно открыть из настройки синхронизации данных по команде Еще - Загрузить правила конвертации объектов.

      diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Module.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Module.bsl index 6c599e4a0..35855fd3e 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Module.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаКонвертацииОбъектов/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОбновитьСписокВыбораПлановОбмена(); ОбновитьСписокВыбораМакетаПравил(); diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Help/ru.html b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Help/ru.html index 3db24f24c..ba923444b 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Help/ru.html +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Help/ru.html @@ -1,4 +1,4 @@ - +

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

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

      Правила регистрации объектов можно открыть из настройки синхронизации данных по команде Еще - Загрузить правила регистрации объектов.

      diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Module.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Module.bsl index 673f5eed6..f4f76e0db 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Module.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/ПравилаРегистрацииОбъектов/Module.bsl @@ -18,10 +18,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа. - Возврат; - КонецЕсли; - ОбновитьСписокВыбораПлановОбмена(); ОбновитьСписокВыбораМакетаПравил(); diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/СообщениеОНеудачномОбновлении/Module.bsl b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/СообщениеОНеудачномОбновлении/Module.bsl index d04bfbdff..defb6394f 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/СообщениеОНеудачномОбновлении/Module.bsl +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Forms/СообщениеОНеудачномОбновлении/Module.bsl @@ -11,10 +11,6 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АвтоТест") Тогда - Возврат; - КонецЕсли; - ИмяПланаОбмена = Параметры.ИмяПланаОбмена; СинонимПланаОбмена = Метаданные.ПланыОбмена[ИмяПланаОбмена].Синоним; diff --git a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Help/ru.html b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Help/ru.html index ade605ea3..ab3c1581f 100644 --- a/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Help/ru.html +++ b/SSL/src/InformationRegisters/ПравилаДляОбменаДанными/Help/ru.html @@ -1,4 +1,4 @@ - +

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

      Типовые правила обмена состоят из правил конвертации объектов и правил регистрации объектов. Правила конвертации данных используются при синхронизации данных двух программ. Правила регистрации предусмотрены для всех видов синхронизации данных. Комплект актуальных правил обмена публикуется на сайте технической поддержки http://users.v8.1c.ru. Исправительные версии правил обмена также публикуются на данном сайте.

      Контроль актуальности правил синхронизации

      diff --git a/SSL/src/InformationRegisters/ПредметыПапкиВзаимодействий/ManagerModule.bsl b/SSL/src/InformationRegisters/ПредметыПапкиВзаимодействий/ManagerModule.bsl index 07df2466d..05f6707d5 100644 --- a/SSL/src/InformationRegisters/ПредметыПапкиВзаимодействий/ManagerModule.bsl +++ b/SSL/src/InformationRegisters/ПредметыПапкиВзаимодействий/ManagerModule.bsl @@ -39,115 +39,6 @@ //////////////////////////////////////////////////////////////////////////////// // Обработчики обновления -// Процедура обновления ИБ для версии БСП 2.2. -// Переносит Рассмотрено и РассмотретьПосле из реквизитов документов взаимодействий в регистр сведений -// ПредметыПапкиВзаимодействий. -// -Процедура ОбновитьХранениеРассмотреноРассмотретьПосле_2_2_0_0(Параметры) Экспорт - - Запрос = Новый Запрос; - Запрос.Текст = " - |ВЫБРАТЬ ПЕРВЫЕ 1000 - | Встреча.Ссылка, - | Встреча.Удалить_Рассмотрено КАК Рассмотрено, - | Встреча.Удалить_РассмотретьПосле КАК РассмотретьПосле - |ИЗ - | Документ.Встреча КАК Встреча - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий - | ПО (ПредметыПапкиВзаимодействий.Взаимодействие = Встреча.Ссылка) - |ГДЕ - | НЕ (НЕ Встреча.Удалить_Рассмотрено <> ПредметыПапкиВзаимодействий.Рассмотрено - | И НЕ Встреча.Удалить_РассмотретьПосле <> ПредметыПапкиВзаимодействий.РассмотретьПосле) - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ЗапланированноеВзаимодействие.Ссылка, - | ЗапланированноеВзаимодействие.Удалить_Рассмотрено, - | ЗапланированноеВзаимодействие.Удалить_РассмотретьПосле - |ИЗ - | Документ.ЗапланированноеВзаимодействие КАК ЗапланированноеВзаимодействие - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий - | ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЗапланированноеВзаимодействие.Ссылка) - |ГДЕ - | НЕ (НЕ ЗапланированноеВзаимодействие.Удалить_Рассмотрено <> ПредметыПапкиВзаимодействий.Рассмотрено - | И НЕ ЗапланированноеВзаимодействие.Удалить_РассмотретьПосле <> ПредметыПапкиВзаимодействий.РассмотретьПосле) - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ТелефонныйЗвонок.Ссылка, - | ТелефонныйЗвонок.Удалить_Рассмотрено, - | ТелефонныйЗвонок.Удалить_РассмотретьПосле - |ИЗ - | Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий - | ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ТелефонныйЗвонок.Ссылка) - |ГДЕ - | НЕ (НЕ ТелефонныйЗвонок.Удалить_Рассмотрено <> ПредметыПапкиВзаимодействий.Рассмотрено - | И НЕ ТелефонныйЗвонок.Удалить_РассмотретьПосле <> ПредметыПапкиВзаимодействий.РассмотретьПосле) - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ЭлектронноеПисьмоВходящее.Ссылка, - | ЭлектронноеПисьмоВходящее.Удалить_Рассмотрено, - | ЭлектронноеПисьмоВходящее.Удалить_РассмотретьПосле - |ИЗ - | Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий - | ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоВходящее.Ссылка) - |ГДЕ - | НЕ (НЕ ЭлектронноеПисьмоВходящее.Удалить_Рассмотрено <> ПредметыПапкиВзаимодействий.Рассмотрено - | И НЕ ЭлектронноеПисьмоВходящее.Удалить_РассмотретьПосле <> ПредметыПапкиВзаимодействий.РассмотретьПосле) - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | ЭлектронноеПисьмоИсходящее.Ссылка, - | ЭлектронноеПисьмоИсходящее.Удалить_Рассмотрено, - | ЭлектронноеПисьмоИсходящее.Удалить_РассмотретьПосле - |ИЗ - | Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий - | ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоИсходящее.Ссылка) - |ГДЕ - | НЕ (НЕ ЭлектронноеПисьмоИсходящее.Удалить_Рассмотрено <> ПредметыПапкиВзаимодействий.Рассмотрено - | И НЕ ЭлектронноеПисьмоИсходящее.Удалить_РассмотретьПосле <> ПредметыПапкиВзаимодействий.РассмотретьПосле) - | - |ОБЪЕДИНИТЬ ВСЕ - | - |ВЫБРАТЬ - | СообщениеSMS.Ссылка, - | СообщениеSMS.Удалить_Рассмотрено, - | СообщениеSMS.Удалить_РассмотретьПосле - |ИЗ - | Документ.СообщениеSMS КАК СообщениеSMS - | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыПапкиВзаимодействий - | ПО (ПредметыПапкиВзаимодействий.Взаимодействие = СообщениеSMS.Ссылка) - |ГДЕ - | НЕ (НЕ СообщениеSMS.Удалить_Рассмотрено <> ПредметыПапкиВзаимодействий.Рассмотрено - | И НЕ СообщениеSMS.Удалить_РассмотретьПосле <> ПредметыПапкиВзаимодействий.РассмотретьПосле)"; - - Выборка = Запрос.Выполнить().Выбрать(); - - Пока Выборка.Следующий() Цикл - - Реквизиты = РеквизитыВзаимодействия(); - Реквизиты.Рассмотрено = Выборка.Рассмотрено; - Реквизиты.РассмотретьПосле = Выборка.РассмотретьПосле; - - НаборЗаписей = СоздатьНаборЗаписей(); - НаборЗаписей.Отбор.Взаимодействие.Установить(Выборка.Ссылка); - ЗаписатьПредметыПапкиВзаимодействий(Выборка.Ссылка, Реквизиты, НаборЗаписей); - ОбновлениеИнформационнойБазы.ЗаписатьДанные(НаборЗаписей); - - КонецЦикла; - - Параметры.ОбработкаЗавершена = (Выборка.Количество() = 0); - -КонецПроцедуры - // Формирует пустую структуру для записи в регистр сведений ПредметыПапкиВзаимодействий. // Функция РеквизитыВзаимодействия() Экспорт diff --git a/SSL/src/InformationRegisters/ПроцессыДляЗапуска/Forms/НастройкаОтложенногоСтартаПроцесса/Help/ru.html b/SSL/src/InformationRegisters/ПроцессыДляЗапуска/Forms/НастройкаОтложенногоСтартаПроцесса/Help/ru.html index 7696e2f4e..518af2c35 100644 --- a/SSL/src/InformationRegisters/ПроцессыДляЗапуска/Forms/НастройкаОтложенногоСтартаПроцесса/Help/ru.html +++ b/SSL/src/InformationRegisters/ПроцессыДляЗапуска/Forms/НастройкаОтложенногоСтартаПроцесса/Help/ru.html @@ -1,4 +1,4 @@ - +

      Тип макета

      Программа

      .mxl 1С:Предприятие - Работа с файлами
      .doc